From 9368c6a63955a2e6c2f4f900a9b91c61bb2e5a72 Mon Sep 17 00:00:00 2001 From: Benjamin Canac Date: Mon, 7 Oct 2024 14:48:02 +0200 Subject: [PATCH] refactor(module)!: implement design system with CSS variables (#2298) --- README.md | 6 +- docs/app/app.config.ts | 2 +- docs/app/app.vue | 15 +- docs/app/components/Footer.vue | 18 +- docs/app/components/Header.vue | 4 +- docs/app/components/Logo.vue | 6 +- .../components/color-mode/ColorModeButton.vue | 2 +- .../components/color-picker/ColorPicker.vue | 36 +- .../color-picker/ColorPickerPill.vue | 2 +- docs/app/components/content/ComponentCode.vue | 16 +- .../components/content/ComponentExample.vue | 14 +- .../app/components/content/ComponentProps.vue | 2 +- .../content/ComponentPropsSchema.vue | 2 +- .../app/components/content/ComponentSlots.vue | 2 +- .../app/components/content/ComponentTheme.vue | 8 +- docs/app/components/content/IconsTheme.vue | 8 +- docs/app/components/content/Placeholder.vue | 4 +- .../accordion/AccordionContentSlotExample.vue | 2 +- .../accordion/AccordionCustomSlotExample.vue | 4 +- .../accordion/AccordionModelValueExample.vue | 2 +- .../avatar-group/AvatarGroupChipExample.vue | 6 +- .../avatar-group/AvatarGroupLinkExample.vue | 6 +- .../BreadcrumbCustomSlotExample.vue | 2 +- .../BreadcrumbSeparatorSlotExample.vue | 2 +- .../ButtonGroupDropdownExample.vue | 4 +- .../ButtonGroupTooltipExample.vue | 4 +- .../content/examples/chip/ChipShowExample.vue | 2 +- .../collapsible/CollapsibleIconExample.vue | 2 +- .../collapsible/CollapsibleOpenExample.vue | 2 +- .../CommandPaletteOpenExample.vue | 2 +- .../ContextMenuCustomSlotExample.vue | 4 +- .../drawer/DrawerCommandPaletteExample.vue | 4 +- .../drawer/DrawerFooterSlotExample.vue | 6 +- .../examples/drawer/DrawerOpenExample.vue | 2 +- .../DropdownMenuCustomSlotExample.vue | 4 +- .../dropdown-menu/DropdownMenuOpenExample.vue | 2 +- .../examples/form/FormExampleBasic.vue | 2 +- .../examples/form/FormExampleElements.vue | 6 +- .../content/examples/form/FormExampleJoi.vue | 2 +- .../examples/form/FormExampleNested.vue | 2 +- .../examples/form/FormExampleNestedList.vue | 6 +- .../examples/form/FormExampleOnError.vue | 2 +- .../examples/form/FormExampleValibot.vue | 2 +- .../content/examples/form/FormExampleYup.vue | 2 +- .../content/examples/form/FormExampleZod.vue | 2 +- .../InputMenuFilterFieldsExample.vue | 2 +- .../input-menu/InputMenuItemsChipExample.vue | 18 +- .../modal/ModalCommandPaletteExample.vue | 2 +- .../content/examples/modal/ModalExample.vue | 2 +- .../examples/modal/ModalFooterSlotExample.vue | 6 +- .../examples/modal/ModalNestedExample.vue | 8 +- .../examples/modal/ModalOpenExample.vue | 2 +- .../modal/ModalProgrammaticExample.vue | 2 +- .../NavigationMenuModelValueExample.vue | 2 +- .../popover/PopoverCommandPaletteExample.vue | 41 +- .../examples/popover/PopoverOpenExample.vue | 2 +- .../SelectMenuFilterFieldsExample.vue | 2 +- .../SelectMenuItemsChipExample.vue | 18 +- .../select/SelectItemsChipExample.vue | 18 +- .../examples/slideover/SlideoverExample.vue | 2 +- .../slideover/SlideoverFooterSlotExample.vue | 6 +- .../slideover/SlideoverNestedExample.vue | 8 +- .../slideover/SlideoverOpenExample.vue | 2 +- .../SlideoverProgrammaticExample.vue | 2 +- .../examples/tabs/TabsCustomSlotExample.vue | 4 +- .../examples/toast/ToastActionsExample.vue | 4 +- .../examples/toast/ToastAvatarExample.vue | 2 +- .../examples/toast/ToastCloseExample.vue | 2 +- .../examples/toast/ToastCloseIconExample.vue | 2 +- .../examples/toast/ToastColorExample.vue | 2 +- .../toast/ToastDescriptionExample.vue | 2 +- .../content/examples/toast/ToastExample.vue | 2 +- .../examples/toast/ToastIconExample.vue | 2 +- .../examples/toast/ToastTitleExample.vue | 2 +- .../toaster/ToasterDurationExample.vue | 8 +- .../examples/toaster/ToasterExpandExample.vue | 8 +- .../toaster/ToasterPositionExample.vue | 8 +- .../examples/tooltip/TooltipOpenExample.vue | 2 +- docs/app/pages/roadmap.vue | 2 +- docs/app/plugins/colors.ts | 30 +- .../1.getting-started/2.installation.md | 34 +- docs/content/1.getting-started/3.theme.md | 286 ++- docs/content/1.getting-started/4.colors.md | 168 -- .../{5.icons.md => 4.icons.md} | 0 .../{6.fonts.md => 5.fonts.md} | 13 - .../{7.color-mode.md => 6.color-mode.md} | 0 docs/content/2.composables/use-toast.md | 2 +- docs/content/3.components/accordion.md | 14 +- docs/content/3.components/alert.md | 6 +- docs/content/3.components/badge.md | 4 +- docs/content/3.components/button-group.md | 32 +- docs/content/3.components/button.md | 8 +- docs/content/3.components/carousel.md | 2 +- docs/content/3.components/checkbox.md | 2 +- docs/content/3.components/chip.md | 22 +- docs/content/3.components/collapsible.md | 8 +- docs/content/3.components/command-palette.md | 2 +- docs/content/3.components/context-menu.md | 12 +- docs/content/3.components/drawer.md | 38 +- docs/content/3.components/dropdown-menu.md | 22 +- docs/content/3.components/form-field.md | 2 +- docs/content/3.components/form.md | 12 +- docs/content/3.components/icon.md | 2 +- docs/content/3.components/input-menu.md | 4 +- docs/content/3.components/input.md | 4 +- docs/content/3.components/link.md | 2 +- docs/content/3.components/modal.md | 38 +- docs/content/3.components/navigation-menu.md | 18 +- docs/content/3.components/pagination.md | 102 +- docs/content/3.components/popover.md | 20 +- docs/content/3.components/progress.md | 2 +- docs/content/3.components/radio-group.md | 4 +- docs/content/3.components/select-menu.md | 6 +- docs/content/3.components/select.md | 8 +- docs/content/3.components/separator.md | 6 +- docs/content/3.components/slideover.md | 38 +- docs/content/3.components/slider.md | 2 +- docs/content/3.components/switch.md | 2 +- docs/content/3.components/table.md | 2 +- docs/content/3.components/tabs.md | 4 +- docs/content/3.components/textarea.md | 4 +- docs/content/3.components/toast.md | 28 +- docs/content/3.components/tooltip.md | 26 +- docs/nuxt.config.ts | 2 +- docs/package.json | 2 +- package.json | 3 +- playground/app/app.config.ts | 2 +- playground/app/app.vue | 4 +- .../app/components/FormElementsExample.vue | 4 +- .../app/components/FormNestedExample.vue | 2 +- .../app/components/FormNestedListExample.vue | 6 +- playground/app/components/ModalExample.vue | 2 +- playground/app/components/Placeholder.vue | 4 +- .../app/components/SlideoverExample.vue | 2 +- playground/app/pages/components/accordion.vue | 4 +- playground/app/pages/components/alert.vue | 4 +- playground/app/pages/components/badge.vue | 2 +- .../app/pages/components/breadcrumb.vue | 2 +- .../app/pages/components/button-group.vue | 14 +- playground/app/pages/components/button.vue | 2 +- playground/app/pages/components/checkbox.vue | 2 +- playground/app/pages/components/chip.vue | 4 +- .../app/pages/components/collapsible.vue | 2 +- .../app/pages/components/command-palette.vue | 14 +- .../app/pages/components/context-menu.vue | 2 +- playground/app/pages/components/drawer.vue | 16 +- .../app/pages/components/dropdown-menu.vue | 4 +- playground/app/pages/components/form.vue | 4 +- .../app/pages/components/input-menu.vue | 4 +- playground/app/pages/components/input.vue | 2 +- playground/app/pages/components/link.vue | 8 +- playground/app/pages/components/modal.vue | 22 +- .../app/pages/components/navigation-menu.vue | 2 +- playground/app/pages/components/popover.vue | 20 +- playground/app/pages/components/progress.vue | 2 +- .../app/pages/components/radio-group.vue | 2 +- .../app/pages/components/select-menu.vue | 2 +- playground/app/pages/components/select.vue | 2 +- playground/app/pages/components/separator.vue | 2 +- playground/app/pages/components/shortcuts.vue | 2 +- playground/app/pages/components/slideover.vue | 26 +- playground/app/pages/components/slider.vue | 2 +- playground/app/pages/components/switch.vue | 2 +- playground/app/pages/components/tabs.vue | 2 +- playground/app/pages/components/textarea.vue | 2 +- playground/app/pages/components/toast.vue | 10 +- playground/nuxt.config.ts | 8 - pnpm-lock.yaml | 2270 +++++++---------- src/module.ts | 30 +- src/runtime/components/Alert.vue | 4 +- src/runtime/components/CommandPalette.vue | 4 +- src/runtime/components/Modal.vue | 4 +- src/runtime/components/NavigationMenu.vue | 2 +- src/runtime/components/Pagination.vue | 4 +- src/runtime/components/Slideover.vue | 4 +- src/runtime/components/Toast.vue | 4 +- src/runtime/index.css | 87 +- src/runtime/plugins/colors.ts | 19 +- src/templates.ts | 10 +- src/theme/accordion.ts | 4 +- src/theme/alert.ts | 26 +- src/theme/avatar-group.ts | 2 +- src/theme/avatar.ts | 6 +- src/theme/badge.ts | 26 +- src/theme/breadcrumb.ts | 10 +- src/theme/button.ts | 38 +- src/theme/card.ts | 2 +- src/theme/checkbox.ts | 18 +- src/theme/chip.ts | 6 +- src/theme/command-palette.ts | 18 +- src/theme/context-menu.ts | 16 +- src/theme/drawer.ts | 10 +- src/theme/dropdown-menu.ts | 18 +- src/theme/form-field.ts | 12 +- src/theme/input-menu.ts | 28 +- src/theme/input.ts | 32 +- src/theme/kbd.ts | 6 +- src/theme/link.ts | 6 +- src/theme/modal.ts | 10 +- src/theme/navigation-menu.ts | 74 +- src/theme/popover.ts | 4 +- src/theme/progress.ts | 16 +- src/theme/radio-group.ts | 22 +- src/theme/select-menu.ts | 2 +- src/theme/select.ts | 16 +- src/theme/separator.ts | 8 +- src/theme/skeleton.ts | 2 +- src/theme/slideover.ts | 8 +- src/theme/slider.ts | 14 +- src/theme/switch.ts | 22 +- src/theme/tabs.ts | 28 +- src/theme/toast.ts | 20 +- src/theme/tooltip.ts | 4 +- test/components/Accordion.spec.ts | 2 +- test/components/Alert.spec.ts | 2 +- test/components/Avatar.spec.ts | 2 +- test/components/Badge.spec.ts | 2 +- test/components/Button.spec.ts | 2 +- test/components/Checkbox.spec.ts | 2 +- test/components/Chip.spec.ts | 4 +- test/components/Collapsible.spec.ts | 2 +- test/components/CommandPalette.spec.ts | 8 +- test/components/Drawer.spec.ts | 2 +- test/components/FormField.spec.ts | 2 +- test/components/Input.spec.ts | 2 +- test/components/InputMenu.spec.ts | 2 +- test/components/Link.spec.ts | 4 +- test/components/Modal.spec.ts | 2 +- test/components/NavigationMenu.spec.ts | 6 +- test/components/Pagination.spec.ts | 4 +- test/components/Progress.spec.ts | 4 +- test/components/RadioGroup.spec.ts | 2 +- test/components/Select.spec.ts | 2 +- test/components/SelectMenu.spec.ts | 2 +- test/components/Slideover.spec.ts | 2 +- test/components/Slider.spec.ts | 4 +- test/components/Switch.spec.ts | 2 +- test/components/Tabs.spec.ts | 4 +- test/components/Textarea.spec.ts | 2 +- test/components/Toast.spec.ts | 4 +- .../__snapshots__/Accordion.spec.ts.snap | 408 +-- .../__snapshots__/Alert.spec.ts.snap | 134 +- .../__snapshots__/Avatar.spec.ts.snap | 30 +- .../__snapshots__/AvatarGroup.spec.ts.snap | 28 +- .../__snapshots__/Badge.spec.ts.snap | 30 +- .../__snapshots__/Breadcrumb.spec.ts.snap | 96 +- .../__snapshots__/Button.spec.ts.snap | 140 +- .../__snapshots__/ButtonGroup.spec.ts.snap | 28 +- .../__snapshots__/Card.spec.ts.snap | 12 +- .../__snapshots__/Checkbox.spec.ts.snap | 56 +- .../__snapshots__/Chip.spec.ts.snap | 42 +- .../__snapshots__/Collapsible.spec.ts.snap | 2 +- .../__snapshots__/CommandPalette.spec.ts.snap | 634 ++--- .../__snapshots__/Drawer.spec.ts.snap | 122 +- .../__snapshots__/DropdownMenu.spec.ts.snap | 370 +-- .../__snapshots__/Form.spec.ts.snap | 60 +- .../__snapshots__/FormField.spec.ts.snap | 38 +- .../__snapshots__/Input.spec.ts.snap | 132 +- .../__snapshots__/InputMenu.spec.ts.snap | 978 +++---- .../components/__snapshots__/Kbd.spec.ts.snap | 20 +- .../__snapshots__/Link.spec.ts.snap | 16 +- .../__snapshots__/Modal.spec.ts.snap | 114 +- .../__snapshots__/NavigationMenu.spec.ts.snap | 614 ++--- .../__snapshots__/Pagination.spec.ts.snap | 1484 +++++------ .../__snapshots__/Popover.spec.ts.snap | 8 +- .../__snapshots__/Progress.spec.ts.snap | 104 +- .../__snapshots__/RadioGroup.spec.ts.snap | 202 +- .../__snapshots__/Select.spec.ts.snap | 1150 ++++----- .../__snapshots__/SelectMenu.spec.ts.snap | 1078 ++++---- .../__snapshots__/Separator.spec.ts.snap | 46 +- .../__snapshots__/Skeleton.spec.ts.snap | 4 +- .../__snapshots__/Slideover.spec.ts.snap | 130 +- .../__snapshots__/Slider.spec.ts.snap | 70 +- .../__snapshots__/Switch.spec.ts.snap | 60 +- .../__snapshots__/Tabs.spec.ts.snap | 126 +- .../__snapshots__/Textarea.spec.ts.snap | 48 +- .../__snapshots__/Toast.spec.ts.snap | 136 +- .../__snapshots__/Tooltip.spec.ts.snap | 12 +- test/nuxt/nuxt.config.ts | 7 +- 279 files changed, 6533 insertions(+), 6994 deletions(-) delete mode 100644 docs/content/1.getting-started/4.colors.md rename docs/content/1.getting-started/{5.icons.md => 4.icons.md} (100%) rename docs/content/1.getting-started/{6.fonts.md => 5.fonts.md} (85%) rename docs/content/1.getting-started/{7.color-mode.md => 6.color-mode.md} (100%) diff --git a/README.md b/README.md index efb48b92..e677b940 100644 --- a/README.md +++ b/README.md @@ -40,11 +40,13 @@ export default defineNuxtConfig({ }) ``` -3. Import Tailwind and Nuxt UI in your `app.vue` or in your [CSS](https://nuxt.com/docs/getting-started/styling#the-css-property): +3. Import Tailwind CSS and Nuxt UI in your `app.vue` or [CSS](https://nuxt.com/docs/getting-started/styling#the-css-property): -```css [main.css] +```vue [app.vue] + ``` ## Documentation diff --git a/docs/app/app.config.ts b/docs/app/app.config.ts index 334a5535..7056ebb4 100644 --- a/docs/app/app.config.ts +++ b/docs/app/app.config.ts @@ -7,7 +7,7 @@ export default defineAppConfig({ ui: { colors: { primary: 'green', - gray: 'slate' + neutral: 'slate' } } }) diff --git a/docs/app/app.vue b/docs/app/app.vue index 44b88abc..8b9fb4b9 100644 --- a/docs/app/app.vue +++ b/docs/app/app.vue @@ -1,16 +1,17 @@ diff --git a/docs/app/components/color-picker/ColorPickerPill.vue b/docs/app/components/color-picker/ColorPickerPill.vue index 7d9c72c7..d4df0b37 100644 --- a/docs/app/components/color-picker/ColorPickerPill.vue +++ b/docs/app/components/color-picker/ColorPickerPill.vue @@ -1,7 +1,7 @@