diff --git a/knip.config.ts b/knip.config.ts index 4d102262a8..81333a2c32 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 528306e4ad..896529bcbb 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 d34ea30f8f..acd8be2260 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 0000000000..1a38866f75 --- /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 0000000000..082da5a76b --- /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 0000000000..12aeba3cae --- /dev/null +++ b/src/components/button/IconTextButton.vue @@ -0,0 +1,44 @@ + + + + {{ label }} + + + + + diff --git a/src/components/button/MoreButton.vue b/src/components/button/MoreButton.vue new file mode 100644 index 0000000000..5f4f81607a --- /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 0000000000..fbbc6774c3 --- /dev/null +++ b/src/components/button/TextButton.vue @@ -0,0 +1,40 @@ + + + {{ label }} + + + + diff --git a/src/components/card/CardBottom.vue b/src/components/card/CardBottom.vue new file mode 100644 index 0000000000..7f35754e6c --- /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 0000000000..597429a9ee --- /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 0000000000..6085fcf8e3 --- /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 0000000000..ff0ed236ac --- /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 0000000000..24ad569717 --- /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 0000000000..3c3abee149 --- /dev/null +++ b/src/components/chip/SquareChip.vue @@ -0,0 +1,13 @@ + + + + {{ label }} + + + diff --git a/src/components/custom/button/IconButton.vue b/src/components/custom/button/IconButton.vue deleted file mode 100644 index 80e66f2d7e..0000000000 --- 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 ea25dac662..0000000000 --- a/src/components/custom/widget/ModelSelector.vue +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - {{ t('g.title') }} - - - - - - - - - - - - - - - - - - - diff --git a/src/components/input/MultiSelect.vue b/src/components/input/MultiSelect.vue new file mode 100644 index 0000000000..2dd01dcb57 --- /dev/null +++ b/src/components/input/MultiSelect.vue @@ -0,0 +1,123 @@ + + + + + + + {{ label }} + + + + + + + + + + + + + + + {{ slotProps.option.name }} + + + + + + + {{ selectedCount }} + + + + + diff --git a/src/components/input/SearchBox.vue b/src/components/input/SearchBox.vue new file mode 100644 index 0000000000..08075b18b1 --- /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 0000000000..b0c505471b --- /dev/null +++ b/src/components/input/SingleSelect.vue @@ -0,0 +1,132 @@ + + + + + + + + + {{ getLabel(slotProps.value) }} + + + {{ label }} + + + + + + + + + + + + + {{ option.name }} + + + + + + + + diff --git a/src/components/widget/ModelSelector.vue b/src/components/widget/ModelSelector.vue new file mode 100644 index 0000000000..3e9da5e9a2 --- /dev/null +++ b/src/components/widget/ModelSelector.vue @@ -0,0 +1,205 @@ + + + + + + + + + {{ t('g.title') }} + + + + + + + + + + + {}"> + + + + + + + { + close() + } + " + > + + + + + { + close() + } + " + > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {}" + > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 5c221c9af5..1be5b109c7 100644 --- a/src/components/custom/widget/layout/BaseWidgetLayout.vue +++ b/src/components/widget/layout/BaseWidgetLayout.vue @@ -1,6 +1,6 @@ - - + + - - + + + + + + {{ contentTitle }} + + + + - - - + @@ -76,10 +87,14 @@ import { useBreakpoints } from '@vueuse/core' import { computed, inject, ref, useSlots, watch } from 'vue' -import IconButton from '@/components/custom/button/IconButton.vue' -import { OnCloseKey } from '@/types/custom_components/widgetTypes' +import IconButton from '@/components/button/IconButton.vue' +import { OnCloseKey } from '@/types/widgetTypes' + +const { contentTitle } = defineProps<{ + contentTitle: string +}>() -const BREAKPOINTS = { sm: 480 } +const BREAKPOINTS = { md: 880 } const PANEL_SIZES = { width: 'w-1/3', minWidth: 'min-w-40', @@ -90,7 +105,7 @@ const slots = useSlots() const closeDialog = inject(OnCloseKey, () => {}) const breakpoints = useBreakpoints(BREAKPOINTS) -const notMobile = breakpoints.greater('sm') +const notMobile = breakpoints.greater('md') const isLeftPanelOpen = ref(true) const isRightPanelOpen = ref(false) @@ -160,17 +175,4 @@ const toggleRightPanel = () => { .slide-panel-leave-to { transform: translateX(-100%); } - -/* Slide transition for right panel */ -.slide-panel-right-enter-active, -.slide-panel-right-leave-active { - transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); - will-change: transform; - backface-visibility: hidden; -} - -.slide-panel-right-enter-from, -.slide-panel-right-leave-to { - transform: translateX(100%); -} diff --git a/src/components/custom/widget/nav/NavItem.vue b/src/components/widget/nav/NavItem.vue similarity index 69% rename from src/components/custom/widget/nav/NavItem.vue rename to src/components/widget/nav/NavItem.vue index fcf628cacc..586d16569f 100644 --- a/src/components/custom/widget/nav/NavItem.vue +++ b/src/components/widget/nav/NavItem.vue @@ -9,15 +9,20 @@ role="button" @click="onClick" > - - + +