From 727a3494e043b3540aed50dd368c0a93c1f08f88 Mon Sep 17 00:00:00 2001 From: Jin Yi Date: Tue, 19 Aug 2025 11:56:17 +0900 Subject: [PATCH] Modal Component & Custom UI Components (#4908) --- knip.config.ts | 9 +- package-lock.json | 2 +- package.json | 2 +- src/components/button/IconButton.vue | 38 ++++ src/components/button/IconGroup.vue | 7 + src/components/button/IconTextButton.vue | 44 ++++ src/components/button/MoreButton.vue | 51 +++++ src/components/button/TextButton.vue | 40 ++++ src/components/card/CardBottom.vue | 7 + src/components/card/CardContainer.vue | 38 ++++ src/components/card/CardDescription.vue | 7 + src/components/card/CardTitle.vue | 7 + src/components/card/CardTop.vue | 40 ++++ src/components/chip/SquareChip.vue | 13 ++ src/components/custom/button/IconButton.vue | 15 -- .../custom/widget/ModelSelector.vue | 67 ------ src/components/input/MultiSelect.vue | 123 +++++++++++ src/components/input/SearchBox.vue | 24 ++ src/components/input/SingleSelect.vue | 132 +++++++++++ src/components/widget/ModelSelector.vue | 205 ++++++++++++++++++ .../widget/layout/BaseWidgetLayout.vue | 62 +++--- .../{custom => }/widget/nav/NavItem.vue | 11 +- .../{custom => }/widget/nav/NavTitle.vue | 2 +- .../widget/panel/LeftSidePanel.vue | 8 +- .../{custom => }/widget/panel/PanelHeader.vue | 0 .../widget/panel/RightSidePanel.vue | 0 src/composables/useModelSelectorDialog.ts | 2 +- src/services/dialogService.ts | 11 +- src/types/buttonTypes.ts | 42 ++++ src/types/custom_components/index.d.ts | 2 - src/types/{custom_components => }/navTypes.ts | 0 .../{custom_components => }/widgetTypes.ts | 0 tailwind.config.js | 3 +- 33 files changed, 884 insertions(+), 130 deletions(-) create mode 100644 src/components/button/IconButton.vue create mode 100644 src/components/button/IconGroup.vue create mode 100644 src/components/button/IconTextButton.vue create mode 100644 src/components/button/MoreButton.vue create mode 100644 src/components/button/TextButton.vue create mode 100644 src/components/card/CardBottom.vue create mode 100644 src/components/card/CardContainer.vue create mode 100644 src/components/card/CardDescription.vue create mode 100644 src/components/card/CardTitle.vue create mode 100644 src/components/card/CardTop.vue create mode 100644 src/components/chip/SquareChip.vue delete mode 100644 src/components/custom/button/IconButton.vue delete mode 100644 src/components/custom/widget/ModelSelector.vue create mode 100644 src/components/input/MultiSelect.vue create mode 100644 src/components/input/SearchBox.vue create mode 100644 src/components/input/SingleSelect.vue create mode 100644 src/components/widget/ModelSelector.vue rename src/components/{custom => }/widget/layout/BaseWidgetLayout.vue (76%) rename src/components/{custom => }/widget/nav/NavItem.vue (69%) rename src/components/{custom => }/widget/nav/NavTitle.vue (58%) rename src/components/{custom => }/widget/panel/LeftSidePanel.vue (88%) rename src/components/{custom => }/widget/panel/PanelHeader.vue (100%) rename src/components/{custom => }/widget/panel/RightSidePanel.vue (100%) create mode 100644 src/types/buttonTypes.ts delete mode 100644 src/types/custom_components/index.d.ts rename src/types/{custom_components => }/navTypes.ts (100%) rename src/types/{custom_components => }/widgetTypes.ts (100%) diff --git a/knip.config.ts b/knip.config.ts index 4d102262a..81333a2c3 100644 --- a/knip.config.ts +++ b/knip.config.ts @@ -42,7 +42,14 @@ const config: KnipConfig = { 'vite.electron.config.mts', 'vite.types.config.mts', // Auto generated manager types - 'src/types/generatedManagerTypes.ts' + 'src/types/generatedManagerTypes.ts', + // Design system components (may not be used immediately) + 'src/components/button/IconGroup.vue', + 'src/components/button/MoreButton.vue', + 'src/components/button/TextButton.vue', + 'src/components/card/CardTitle.vue', + 'src/components/card/CardDescription.vue', + 'src/components/input/SingleSelect.vue' ], ignoreExportsUsedInFile: true, // Vue-specific configuration diff --git a/package-lock.json b/package-lock.json index 528306e4a..896529bcb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18556,4 +18556,4 @@ } } } -} +} \ No newline at end of file diff --git a/package.json b/package.json index d34ea30f8..acd8be226 100644 --- a/package.json +++ b/package.json @@ -120,4 +120,4 @@ "zod": "^3.23.8", "zod-validation-error": "^3.3.0" } -} +} \ No newline at end of file diff --git a/src/components/button/IconButton.vue b/src/components/button/IconButton.vue new file mode 100644 index 000000000..1a38866f7 --- /dev/null +++ b/src/components/button/IconButton.vue @@ -0,0 +1,38 @@ + + + diff --git a/src/components/button/IconGroup.vue b/src/components/button/IconGroup.vue new file mode 100644 index 000000000..082da5a76 --- /dev/null +++ b/src/components/button/IconGroup.vue @@ -0,0 +1,7 @@ + diff --git a/src/components/button/IconTextButton.vue b/src/components/button/IconTextButton.vue new file mode 100644 index 000000000..12aeba3ca --- /dev/null +++ b/src/components/button/IconTextButton.vue @@ -0,0 +1,44 @@ + + + diff --git a/src/components/button/MoreButton.vue b/src/components/button/MoreButton.vue new file mode 100644 index 000000000..5f4f81607 --- /dev/null +++ b/src/components/button/MoreButton.vue @@ -0,0 +1,51 @@ + + + diff --git a/src/components/button/TextButton.vue b/src/components/button/TextButton.vue new file mode 100644 index 000000000..fbbc6774c --- /dev/null +++ b/src/components/button/TextButton.vue @@ -0,0 +1,40 @@ + + + diff --git a/src/components/card/CardBottom.vue b/src/components/card/CardBottom.vue new file mode 100644 index 000000000..7f35754e6 --- /dev/null +++ b/src/components/card/CardBottom.vue @@ -0,0 +1,7 @@ + + + diff --git a/src/components/card/CardContainer.vue b/src/components/card/CardContainer.vue new file mode 100644 index 000000000..597429a9e --- /dev/null +++ b/src/components/card/CardContainer.vue @@ -0,0 +1,38 @@ + + + diff --git a/src/components/card/CardDescription.vue b/src/components/card/CardDescription.vue new file mode 100644 index 000000000..6085fcf8e --- /dev/null +++ b/src/components/card/CardDescription.vue @@ -0,0 +1,7 @@ + + + diff --git a/src/components/card/CardTitle.vue b/src/components/card/CardTitle.vue new file mode 100644 index 000000000..ff0ed236a --- /dev/null +++ b/src/components/card/CardTitle.vue @@ -0,0 +1,7 @@ + + + diff --git a/src/components/card/CardTop.vue b/src/components/card/CardTop.vue new file mode 100644 index 000000000..24ad56971 --- /dev/null +++ b/src/components/card/CardTop.vue @@ -0,0 +1,40 @@ + + + diff --git a/src/components/chip/SquareChip.vue b/src/components/chip/SquareChip.vue new file mode 100644 index 000000000..3c3abee14 --- /dev/null +++ b/src/components/chip/SquareChip.vue @@ -0,0 +1,13 @@ + + diff --git a/src/components/custom/button/IconButton.vue b/src/components/custom/button/IconButton.vue deleted file mode 100644 index 80e66f2d7..000000000 --- a/src/components/custom/button/IconButton.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - diff --git a/src/components/custom/widget/ModelSelector.vue b/src/components/custom/widget/ModelSelector.vue deleted file mode 100644 index ea25dac66..000000000 --- a/src/components/custom/widget/ModelSelector.vue +++ /dev/null @@ -1,67 +0,0 @@ - - - diff --git a/src/components/input/MultiSelect.vue b/src/components/input/MultiSelect.vue new file mode 100644 index 000000000..2dd01dcb5 --- /dev/null +++ b/src/components/input/MultiSelect.vue @@ -0,0 +1,123 @@ + + + diff --git a/src/components/input/SearchBox.vue b/src/components/input/SearchBox.vue new file mode 100644 index 000000000..08075b18b --- /dev/null +++ b/src/components/input/SearchBox.vue @@ -0,0 +1,24 @@ + + + diff --git a/src/components/input/SingleSelect.vue b/src/components/input/SingleSelect.vue new file mode 100644 index 000000000..b0c505471 --- /dev/null +++ b/src/components/input/SingleSelect.vue @@ -0,0 +1,132 @@ + + + diff --git a/src/components/widget/ModelSelector.vue b/src/components/widget/ModelSelector.vue new file mode 100644 index 000000000..3e9da5e9a --- /dev/null +++ b/src/components/widget/ModelSelector.vue @@ -0,0 +1,205 @@ + + + diff --git a/src/components/custom/widget/layout/BaseWidgetLayout.vue b/src/components/widget/layout/BaseWidgetLayout.vue similarity index 76% rename from src/components/custom/widget/layout/BaseWidgetLayout.vue rename to src/components/widget/layout/BaseWidgetLayout.vue index 5c221c9af..1be5b109c 100644 --- a/src/components/custom/widget/layout/BaseWidgetLayout.vue +++ b/src/components/widget/layout/BaseWidgetLayout.vue @@ -1,6 +1,6 @@