@aleph-alpha/ui-library 1.11.0 → 1.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +78 -3
- package/config.d.ts +185 -1
- package/config.js +549 -6
- package/dist/system/index.d.ts +1788 -407
- package/dist/system/lib.js +48817 -24028
- package/package.json +3 -3
- package/src/__tests__/test-utils.ts +46 -0
- package/src/{primitives → components}/UiAccordion/UiAccordion.stories.ts +26 -2
- package/src/{primitives → components}/UiAccordion/UiAccordion.vue +1 -1
- package/src/{primitives → components}/UiAccordion/UiAccordionContent.vue +1 -1
- package/src/{primitives → components}/UiAccordion/UiAccordionItem.vue +1 -1
- package/src/{primitives → components}/UiAccordion/UiAccordionTrigger.vue +1 -1
- package/src/{primitives → components}/UiAccordion/types.ts +0 -1
- package/src/{primitives → components}/UiAlert/UiAlert.stories.ts +9 -9
- package/src/{primitives → components}/UiAlert/UiAlert.vue +1 -1
- package/src/{primitives → components}/UiAlert/UiAlertDescription.vue +1 -1
- package/src/{primitives → components}/UiAlert/UiAlertTitle.vue +1 -1
- package/src/{primitives → components}/UiAlert/types.ts +2 -1
- package/src/{primitives → components}/UiAlertDialog/UiAlertDialog.stories.ts +1 -1
- package/src/{primitives → components}/UiAlertDialog/UiAlertDialog.vue +1 -1
- package/src/{primitives → components}/UiAlertDialog/UiAlertDialogAction.vue +1 -1
- package/src/{primitives → components}/UiAlertDialog/UiAlertDialogCancel.vue +1 -1
- package/src/{primitives → components}/UiAlertDialog/UiAlertDialogContent.vue +1 -1
- package/src/{primitives → components}/UiAlertDialog/UiAlertDialogDescription.vue +1 -1
- package/src/{primitives → components}/UiAlertDialog/UiAlertDialogFooter.vue +1 -1
- package/src/{primitives → components}/UiAlertDialog/UiAlertDialogHeader.vue +1 -1
- package/src/{primitives → components}/UiAlertDialog/UiAlertDialogTitle.vue +1 -1
- package/src/{primitives → components}/UiAlertDialog/UiAlertDialogTrigger.vue +1 -1
- package/src/{primitives → components}/UiAlertDialog/index.ts +1 -0
- package/src/{primitives → components}/UiAlertDialog/types.ts +1 -1
- package/src/{primitives → components}/UiAvatar/UiAvatar.stories.ts +1 -1
- package/src/{primitives → components}/UiAvatar/UiAvatar.vue +1 -1
- package/src/{primitives → components}/UiAvatar/UiAvatarFallback.vue +1 -1
- package/src/{primitives → components}/UiAvatar/UiAvatarImage.vue +1 -1
- package/src/{primitives → components}/UiAvatar/index.ts +1 -0
- package/src/{primitives → components}/UiAvatar/types.ts +4 -1
- package/src/{primitives → components}/UiBadge/UiBadge.stories.ts +10 -10
- package/src/{primitives → components}/UiBadge/UiBadge.vue +1 -1
- package/src/{primitives → components}/UiBadge/__tests__/UiBadge.test.ts +3 -13
- package/src/{primitives → components}/UiBadge/types.ts +0 -1
- package/src/{primitives → components}/UiButton/UiButton.stories.ts +13 -13
- package/src/{primitives → components}/UiButton/UiButton.vue +2 -2
- package/src/{primitives → components}/UiButton/__tests__/UiButton.test.ts +1 -10
- package/src/{primitives → components}/UiButton/types.ts +0 -1
- package/src/{primitives → components}/UiCalendar/UiCalendar.stories.ts +5 -5
- package/src/{primitives → components}/UiCalendar/UiCalendar.vue +1 -1
- package/src/{primitives → components}/UiCalendar/types.ts +0 -1
- package/src/{primitives → components}/UiCard/UiCard.stories.ts +1 -1
- package/src/{primitives → components}/UiCard/UiCard.vue +1 -1
- package/src/{primitives → components}/UiCard/UiCardAction.vue +1 -1
- package/src/{primitives → components}/UiCard/UiCardContent.vue +1 -1
- package/src/{primitives → components}/UiCard/UiCardDescription.vue +1 -1
- package/src/{primitives → components}/UiCard/UiCardFooter.vue +1 -1
- package/src/{primitives → components}/UiCard/UiCardHeader.vue +1 -1
- package/src/{primitives → components}/UiCard/UiCardTitle.vue +1 -1
- package/src/components/UiCard/index.ts +10 -0
- package/src/{primitives → components}/UiCard/types.ts +0 -1
- package/src/{primitives → components}/UiCheckbox/UiCheckbox.stories.ts +1 -1
- package/src/{primitives → components}/UiCheckbox/UiCheckbox.vue +1 -1
- package/src/{primitives → components}/UiCheckbox/types.ts +0 -1
- package/src/{primitives → components}/UiDrawer/UiDrawer.stories.ts +1 -1
- package/src/{primitives → components}/UiDrawer/UiDrawer.vue +1 -1
- package/src/{primitives → components}/UiDrawer/UiDrawerClose.vue +1 -1
- package/src/{primitives → components}/UiDrawer/UiDrawerContent.vue +1 -1
- package/src/{primitives → components}/UiDrawer/UiDrawerDescription.vue +1 -1
- package/src/{primitives → components}/UiDrawer/UiDrawerFooter.vue +1 -1
- package/src/{primitives → components}/UiDrawer/UiDrawerHeader.vue +1 -1
- package/src/{primitives → components}/UiDrawer/UiDrawerTitle.vue +1 -1
- package/src/{primitives → components}/UiDrawer/UiDrawerTrigger.vue +1 -1
- package/src/{primitives → components}/UiDrawer/index.ts +1 -0
- package/src/{primitives → components}/UiDrawer/types.ts +31 -1
- package/src/{primitives → components}/UiDropdownMenu/UiDropdownMenu.stories.ts +3 -3
- package/src/{primitives → components}/UiDropdownMenu/UiDropdownMenu.vue +1 -1
- package/src/{primitives → components}/UiDropdownMenu/UiDropdownMenuCheckboxItem.vue +2 -1
- package/src/{primitives → components}/UiDropdownMenu/UiDropdownMenuContent.vue +1 -1
- package/src/{primitives → components}/UiDropdownMenu/UiDropdownMenuGroup.vue +1 -1
- package/src/{primitives → components}/UiDropdownMenu/UiDropdownMenuItem.vue +1 -1
- package/src/{primitives → components}/UiDropdownMenu/UiDropdownMenuLabel.vue +1 -1
- package/src/{primitives → components}/UiDropdownMenu/UiDropdownMenuRadioGroup.vue +1 -1
- package/src/{primitives → components}/UiDropdownMenu/UiDropdownMenuRadioItem.vue +1 -1
- package/src/{primitives → components}/UiDropdownMenu/UiDropdownMenuSeparator.vue +1 -1
- package/src/{primitives → components}/UiDropdownMenu/UiDropdownMenuShortcut.vue +1 -1
- package/src/{primitives → components}/UiDropdownMenu/UiDropdownMenuSub.vue +1 -1
- package/src/{primitives → components}/UiDropdownMenu/UiDropdownMenuSubContent.vue +1 -1
- package/src/{primitives → components}/UiDropdownMenu/UiDropdownMenuSubTrigger.vue +1 -1
- package/src/{primitives → components}/UiDropdownMenu/UiDropdownMenuTrigger.vue +1 -1
- package/src/{primitives → components}/UiDropdownMenu/types.ts +61 -1
- package/src/components/UiEmpty/UiEmpty.stories.ts +240 -0
- package/src/components/UiEmpty/UiEmpty.vue +35 -0
- package/src/components/UiEmpty/__tests__/UiEmpty.test.ts +67 -0
- package/src/components/UiEmpty/index.ts +2 -0
- package/src/components/UiEmpty/types.ts +26 -0
- package/src/{primitives → components}/UiField/UiField.stories.ts +1 -2
- package/src/{primitives → components}/UiField/UiField.vue +1 -1
- package/src/{primitives → components}/UiField/UiFieldContent.vue +1 -1
- package/src/{primitives → components}/UiField/UiFieldDescription.vue +1 -1
- package/src/{primitives → components}/UiField/UiFieldError.vue +1 -1
- package/src/{primitives → components}/UiField/UiFieldGroup.vue +1 -1
- package/src/{primitives → components}/UiField/UiFieldLabel.vue +1 -1
- package/src/{primitives → components}/UiField/UiFieldLegend.vue +1 -1
- package/src/{primitives → components}/UiField/UiFieldSeparator.vue +1 -1
- package/src/{primitives → components}/UiField/UiFieldSet.vue +1 -1
- package/src/{primitives → components}/UiField/UiFieldTitle.vue +1 -1
- package/src/{primitives → components}/UiField/index.ts +1 -0
- package/src/{primitives → components}/UiField/types.ts +7 -2
- package/src/components/UiIcon/UiIcon.stories.ts +140 -0
- package/src/components/UiIcon/UiIcon.vue +67 -0
- package/src/components/UiIcon/__tests__/UiIcon.test.ts +53 -0
- package/src/{primitives → components}/UiIcon/index.ts +1 -0
- package/src/components/UiIcon/types.ts +33 -0
- package/src/{primitives → components}/UiIconButton/UiIconButton.stories.ts +37 -37
- package/src/{primitives → components}/UiIconButton/UiIconButton.vue +2 -2
- package/src/{primitives → components}/UiIconButton/__tests__/UiIconButton.test.ts +2 -9
- package/src/{primitives → components}/UiIconButton/types.ts +0 -1
- package/src/{primitives → components}/UiInput/UiInput.stories.ts +1 -1
- package/src/{primitives → components}/UiInput/UiInput.vue +1 -1
- package/src/{primitives → components}/UiInput/types.ts +0 -1
- package/src/components/UiItem/UiItem.stories.ts +1029 -0
- package/src/components/UiItem/UiItem.vue +20 -0
- package/src/components/UiItem/UiItemMedia.vue +18 -0
- package/src/components/UiItem/__tests__/UiItem.test.ts +446 -0
- package/src/components/UiItem/constants.ts +13 -0
- package/src/components/UiItem/index.ts +15 -0
- package/src/components/UiItem/types.ts +114 -0
- package/src/components/UiKbd/UiKbd.stories.ts +546 -0
- package/src/components/UiKbd/UiKbd.vue +57 -0
- package/src/components/UiKbd/UiKbdGroup.vue +13 -0
- package/src/components/UiKbd/__tests__/UiKbd.test.ts +46 -0
- package/src/components/UiKbd/index.ts +3 -0
- package/src/components/UiKbd/types.ts +25 -0
- package/src/components/UiLabel/UiLabel.stories.ts +192 -0
- package/src/components/UiLabel/UiLabel.vue +16 -0
- package/src/components/UiLabel/__tests__/UiLabel.test.ts +43 -0
- package/src/components/UiLabel/index.ts +2 -0
- package/src/components/UiLabel/types.ts +15 -0
- package/src/components/UiListbox/UiListbox.stories.ts +607 -0
- package/src/components/UiListbox/UiListbox.vue +33 -0
- package/src/components/UiListbox/UiListboxContent.vue +13 -0
- package/src/components/UiListbox/UiListboxFilter.vue +16 -0
- package/src/components/UiListbox/UiListboxGroup.vue +13 -0
- package/src/components/UiListbox/UiListboxGroupLabel.vue +13 -0
- package/src/components/UiListbox/UiListboxItem.vue +21 -0
- package/src/components/UiListbox/UiListboxItemIndicator.vue +13 -0
- package/src/components/UiListbox/__tests__/UiListbox.test.ts +42 -0
- package/src/components/UiListbox/index.ts +8 -0
- package/src/components/UiListbox/types.ts +109 -0
- package/src/{primitives → components}/UiPopover/UiPopover.stories.ts +17 -1
- package/src/{primitives → components}/UiPopover/UiPopover.vue +1 -1
- package/src/{primitives → components}/UiPopover/UiPopoverContent.vue +1 -1
- package/src/{primitives → components}/UiPopover/UiPopoverTrigger.vue +1 -1
- package/src/{primitives → components}/UiPopover/index.ts +1 -0
- package/src/{primitives → components}/UiPopover/types.ts +13 -1
- package/src/{primitives → components}/UiProgress/UiProgress.stories.ts +1 -1
- package/src/{primitives → components}/UiProgress/UiProgress.vue +1 -1
- package/src/{primitives → components}/UiProgress/types.ts +3 -4
- package/src/{primitives → components}/UiRadioGroup/UiRadioGroup.stories.ts +1 -1
- package/src/{primitives → components}/UiRadioGroup/UiRadioGroup.vue +1 -1
- package/src/{primitives → components}/UiRadioGroup/UiRadioGroupItem.vue +1 -1
- package/src/{primitives → components}/UiRadioGroup/types.ts +6 -1
- package/src/{primitives → components}/UiRangeCalendar/UiRangeCalendar.stories.ts +1 -1
- package/src/{primitives → components}/UiRangeCalendar/UiRangeCalendar.vue +1 -1
- package/src/{primitives → components}/UiRangeCalendar/types.ts +0 -1
- package/src/{primitives → components}/UiSelect/UiSelect.stories.ts +20 -1
- package/src/{primitives → components}/UiSelect/UiSelect.vue +1 -1
- package/src/{primitives → components}/UiSelect/UiSelectContent.vue +1 -1
- package/src/{primitives → components}/UiSelect/UiSelectGroup.vue +1 -1
- package/src/{primitives → components}/UiSelect/UiSelectItem.vue +1 -1
- package/src/{primitives → components}/UiSelect/UiSelectLabel.vue +1 -1
- package/src/{primitives → components}/UiSelect/UiSelectSeparator.vue +1 -1
- package/src/{primitives → components}/UiSelect/UiSelectTrigger.vue +1 -1
- package/src/{primitives → components}/UiSelect/UiSelectValue.vue +1 -1
- package/src/{primitives → components}/UiSelect/types.ts +0 -1
- package/src/components/UiSeparator/UiSeparator.stories.ts +177 -0
- package/src/components/UiSeparator/UiSeparator.vue +17 -0
- package/src/components/UiSeparator/__tests__/UiSeparator.test.ts +34 -0
- package/src/components/UiSeparator/index.ts +2 -0
- package/src/components/UiSeparator/types.ts +22 -0
- package/src/components/UiSkeleton/UiSkeleton.stories.ts +247 -0
- package/src/components/UiSkeleton/UiSkeleton.vue +24 -0
- package/src/components/UiSkeleton/__tests__/UiSkeleton.test.ts +47 -0
- package/src/components/UiSkeleton/index.ts +2 -0
- package/src/components/UiSkeleton/types.ts +25 -0
- package/src/{primitives → components}/UiSlider/UiSlider.stories.ts +1 -1
- package/src/{primitives → components}/UiSlider/UiSlider.vue +1 -1
- package/src/{primitives → components}/UiSlider/__tests__/UiSlider.test.ts +1 -1
- package/src/{primitives → components}/UiSlider/index.ts +1 -0
- package/src/{primitives → components}/UiSlider/types.ts +0 -1
- package/src/{primitives → components}/UiSpinner/UiSpinner.stories.ts +1 -1
- package/src/{primitives → components}/UiSpinner/UiSpinner.vue +1 -1
- package/src/{primitives → components}/UiSpinner/types.ts +0 -1
- package/src/{primitives → components}/UiSwitch/UiSwitch.stories.ts +1 -1
- package/src/{primitives → components}/UiSwitch/UiSwitch.vue +1 -1
- package/src/{primitives → components}/UiSwitch/types.ts +0 -1
- package/src/{primitives → components}/UiTable/UiTable.stories.ts +3 -3
- package/src/{primitives → components}/UiTable/UiTable.vue +1 -1
- package/src/{primitives → components}/UiTable/UiTableBody.vue +1 -1
- package/src/{primitives → components}/UiTable/UiTableCaption.vue +1 -1
- package/src/{primitives → components}/UiTable/UiTableCell.vue +1 -1
- package/src/{primitives → components}/UiTable/UiTableEmpty.vue +1 -1
- package/src/{primitives → components}/UiTable/UiTableFooter.vue +1 -1
- package/src/{primitives → components}/UiTable/UiTableHead.vue +1 -1
- package/src/{primitives → components}/UiTable/UiTableHeader.vue +1 -1
- package/src/{primitives → components}/UiTable/UiTableRow.vue +1 -1
- package/src/{primitives → components}/UiTable/types.ts +0 -1
- package/src/{primitives → components}/UiTabs/UiTabs.stories.ts +22 -3
- package/src/{primitives → components}/UiTabs/UiTabs.vue +1 -1
- package/src/{primitives → components}/UiTabs/UiTabsContent.vue +1 -1
- package/src/{primitives → components}/UiTabs/UiTabsList.vue +1 -1
- package/src/{primitives → components}/UiTabs/UiTabsTrigger.vue +1 -1
- package/src/{primitives → components}/UiTabs/types.ts +0 -1
- package/src/components/UiTagsInput/UiTagsInput.stories.ts +538 -0
- package/src/components/UiTagsInput/UiTagsInput.vue +20 -0
- package/src/components/UiTagsInput/UiTagsInputInput.vue +14 -0
- package/src/components/UiTagsInput/UiTagsInputItem.vue +16 -0
- package/src/components/UiTagsInput/UiTagsInputItemDelete.vue +13 -0
- package/src/components/UiTagsInput/UiTagsInputItemText.vue +11 -0
- package/src/components/UiTagsInput/__tests__/UiTagsInput.test.ts +44 -0
- package/src/components/UiTagsInput/index.ts +6 -0
- package/src/components/UiTagsInput/types.ts +51 -0
- package/src/{primitives → components}/UiTextarea/UiTextarea.stories.ts +1 -1
- package/src/{primitives → components}/UiTextarea/UiTextarea.vue +1 -1
- package/src/{primitives → components}/UiTextarea/types.ts +0 -1
- package/src/components/UiToggle/UiToggle.stories.ts +370 -0
- package/src/components/UiToggle/UiToggle.vue +28 -0
- package/src/components/UiToggle/__tests__/UiToggle.test.ts +62 -0
- package/src/components/UiToggle/index.ts +2 -0
- package/src/components/UiToggle/types.ts +34 -0
- package/src/components/UiToggleGroup/UiToggleGroup.stories.ts +441 -0
- package/src/components/UiToggleGroup/UiToggleGroup.vue +52 -0
- package/src/components/UiToggleGroup/UiToggleGroupItem.vue +21 -0
- package/src/components/UiToggleGroup/__tests__/UiToggleGroup.test.ts +394 -0
- package/src/components/UiToggleGroup/index.ts +3 -0
- package/src/components/UiToggleGroup/types.ts +132 -0
- package/src/{primitives → components}/UiTooltip/UiTooltip.stories.ts +42 -42
- package/src/{primitives → components}/UiTooltip/UiTooltip.vue +1 -1
- package/src/components/UiTooltip/index.ts +10 -0
- package/src/{primitives → components}/UiTooltip/types.ts +0 -1
- package/src/{primitives/shadcn → components/core}/accordion/Accordion.vue +1 -1
- package/src/{primitives/shadcn → components/core}/accordion/AccordionItem.vue +1 -1
- package/src/{primitives/shadcn → components/core}/accordion/AccordionTrigger.vue +5 -4
- package/src/{primitives/shadcn → components/core}/alert/index.ts +2 -2
- package/src/{primitives/shadcn → components/core}/alert-dialog/AlertDialogAction.vue +1 -1
- package/src/{primitives/shadcn → components/core}/alert-dialog/AlertDialogCancel.vue +1 -1
- package/src/{primitives/shadcn → components/core}/alert-dialog/AlertDialogContent.vue +2 -2
- package/src/{primitives/shadcn → components/core}/badge/index.ts +1 -1
- package/src/{primitives/shadcn → components/core}/button/index.ts +4 -4
- package/src/{primitives/shadcn → components/core}/calendar/Calendar.vue +1 -1
- package/src/{primitives/shadcn → components/core}/calendar/CalendarCellTrigger.vue +3 -3
- package/src/{primitives/shadcn → components/core}/calendar/CalendarNextButton.vue +3 -3
- package/src/{primitives/shadcn → components/core}/calendar/CalendarPrevButton.vue +3 -3
- package/src/{primitives/shadcn → components/core}/card/Card.vue +1 -1
- package/src/{primitives/shadcn → components/core}/checkbox/Checkbox.vue +3 -3
- package/src/{primitives/shadcn → components/core}/drawer/DrawerContent.vue +2 -2
- package/src/{primitives/shadcn → components/core}/dropdown-menu/DropdownMenuCheckboxItem.vue +3 -3
- package/src/{primitives/shadcn → components/core}/dropdown-menu/DropdownMenuItem.vue +1 -1
- package/src/{primitives/shadcn → components/core}/dropdown-menu/DropdownMenuRadioItem.vue +1 -1
- package/src/{primitives/shadcn → components/core}/dropdown-menu/DropdownMenuSubTrigger.vue +3 -3
- package/src/{primitives/shadcn → components/core}/field/FieldError.vue +1 -1
- package/src/{primitives/shadcn → components/core}/field/FieldLabel.vue +1 -1
- package/src/{primitives/shadcn → components/core}/field/FieldSeparator.vue +1 -1
- package/src/{primitives/shadcn → components/core}/index.ts +1 -0
- package/src/{primitives/shadcn → components/core}/input/Input.vue +1 -1
- package/src/components/core/item/Item.vue +33 -0
- package/src/components/core/item/ItemActions.vue +14 -0
- package/src/components/core/item/ItemContent.vue +17 -0
- package/src/components/core/item/ItemDescription.vue +23 -0
- package/src/components/core/item/ItemFooter.vue +17 -0
- package/src/components/core/item/ItemGroup.vue +18 -0
- package/src/components/core/item/ItemHeader.vue +17 -0
- package/src/components/core/item/ItemMedia.vue +21 -0
- package/src/components/core/item/ItemSeparator.vue +12 -0
- package/src/components/core/item/ItemTitle.vue +17 -0
- package/src/components/core/item/index.ts +53 -0
- package/src/components/core/kbd/Kbd.vue +20 -0
- package/src/components/core/kbd/KbdGroup.vue +12 -0
- package/src/components/core/kbd/index.ts +2 -0
- package/src/components/core/listbox/Listbox.vue +23 -0
- package/src/components/core/listbox/ListboxContent.vue +26 -0
- package/src/components/core/listbox/ListboxFilter.vue +30 -0
- package/src/components/core/listbox/ListboxGroup.vue +26 -0
- package/src/components/core/listbox/ListboxGroupLabel.vue +26 -0
- package/src/components/core/listbox/ListboxItem.vue +32 -0
- package/src/components/core/listbox/ListboxItemIndicator.vue +40 -0
- package/src/components/core/listbox/index.ts +7 -0
- package/src/{primitives/shadcn → components/core}/native-select/NativeSelect.vue +6 -5
- package/src/{primitives/shadcn → components/core}/radio-group/RadioGroupItem.vue +3 -4
- package/src/{primitives/shadcn → components/core}/range-calendar/RangeCalendar.vue +1 -1
- package/src/{primitives/shadcn → components/core}/range-calendar/RangeCalendarCellTrigger.vue +8 -6
- package/src/{primitives/shadcn → components/core}/range-calendar/RangeCalendarHeading.vue +1 -1
- package/src/{primitives/shadcn → components/core}/range-calendar/RangeCalendarNextButton.vue +3 -3
- package/src/{primitives/shadcn → components/core}/range-calendar/RangeCalendarPrevButton.vue +3 -3
- package/src/{primitives/shadcn → components/core}/select/Select.vue +1 -1
- package/src/{primitives/shadcn → components/core}/select/SelectItem.vue +3 -3
- package/src/{primitives/shadcn → components/core}/select/SelectScrollDownButton.vue +2 -2
- package/src/{primitives/shadcn → components/core}/select/SelectScrollUpButton.vue +2 -2
- package/src/{primitives/shadcn → components/core}/select/SelectTrigger.vue +3 -3
- package/src/components/core/skeleton/Skeleton.vue +10 -0
- package/src/components/core/skeleton/index.ts +1 -0
- package/src/{primitives/shadcn → components/core}/spinner/Spinner.vue +5 -4
- package/src/{primitives/shadcn → components/core}/switch/Switch.vue +1 -1
- package/src/{primitives/shadcn → components/core}/table/TableRow.vue +4 -1
- package/src/{primitives/shadcn → components/core}/tabs/Tabs.vue +1 -1
- package/src/components/core/tabs/TabsTrigger.vue +28 -0
- package/src/components/core/tags-input/TagsInput.vue +33 -0
- package/src/components/core/tags-input/TagsInputInput.vue +24 -0
- package/src/components/core/tags-input/TagsInputItem.vue +31 -0
- package/src/components/core/tags-input/TagsInputItemDelete.vue +46 -0
- package/src/components/core/tags-input/TagsInputItemText.vue +24 -0
- package/src/components/core/tags-input/index.ts +5 -0
- package/src/{primitives/shadcn → components/core}/textarea/Textarea.vue +1 -1
- package/src/components/core/toggle/Toggle.vue +34 -0
- package/src/components/core/toggle/index.ts +26 -0
- package/src/components/core/toggle-group/ToggleGroup.vue +38 -0
- package/src/components/core/toggle-group/ToggleGroupItem.vue +37 -0
- package/src/components/core/toggle-group/context.ts +11 -0
- package/src/components/core/toggle-group/index.ts +28 -0
- package/src/{primitives/shadcn → components/core}/tooltip/TooltipContent.vue +1 -1
- package/src/{primitives → components}/index.ts +13 -5
- package/src/index.ts +6 -10
- package/src/{compositions → patterns}/UiDataTable/UiDataTable.stories.ts +13 -11
- package/src/{compositions → patterns}/UiDataTable/UiDataTable.vue +2 -2
- package/src/{compositions → patterns}/UiDataTable/UiDataTableColumnHeader.vue +27 -28
- package/src/{compositions → patterns}/UiDataTable/UiDataTablePagination.vue +10 -38
- package/src/{compositions → patterns}/UiDataTable/UiDataTableToolbar.vue +4 -29
- package/src/{compositions → patterns}/UiDataTable/__tests__/UiDataTable.test.ts +1 -1
- package/src/patterns/UiDataTable/types.ts +116 -0
- package/src/{compositions → patterns}/UiDatePicker/UiDatePicker.stories.ts +1 -1
- package/src/{compositions → patterns}/UiDatePicker/UiDatePicker.vue +7 -7
- package/src/{compositions → patterns}/UiDatePicker/types.ts +0 -1
- package/src/{foundations → patterns}/UiPlaceholder/types.ts +0 -1
- package/src/patterns/index.ts +7 -0
- package/src/templates/UiTemplatePlaceholder/types.ts +0 -1
- package/src/templates/index.ts +4 -5
- package/src/theme/Background.stories.ts +225 -0
- package/src/theme/Border.stories.ts +158 -0
- package/src/theme/Extended.stories.ts +268 -0
- package/src/theme/Flex.stories.ts +313 -0
- package/src/theme/Grid.stories.ts +302 -0
- package/src/theme/Overlay.stories.ts +124 -0
- package/src/theme/Theme.stories.ts +309 -0
- package/src/theme/Typography.stories.ts +230 -0
- package/tokens.json +11252 -0
- package/src/compositions/UiCompositionPlaceholder/UiCompositionPlaceholder.vue +0 -9
- package/src/compositions/UiCompositionPlaceholder/index.ts +0 -1
- package/src/compositions/UiCompositionPlaceholder/types.ts +0 -8
- package/src/compositions/UiDataTable/types.ts +0 -39
- package/src/compositions/index.ts +0 -8
- package/src/foundations/index.ts +0 -6
- package/src/primitives/UiCard/index.ts +0 -7
- package/src/primitives/UiIcon/UiIcon.stories.ts +0 -95
- package/src/primitives/UiIcon/UiIcon.vue +0 -14
- package/src/primitives/UiIcon/__tests__/UiIcon.test.ts +0 -24
- package/src/primitives/UiIcon/types.ts +0 -23
- package/src/primitives/UiTooltip/index.ts +0 -2
- package/src/primitives/shadcn/tabs/TabsTrigger.vue +0 -28
- /package/src/{primitives → components}/UiAccordion/__tests__/UiAccordion.test.ts +0 -0
- /package/src/{primitives → components}/UiAccordion/index.ts +0 -0
- /package/src/{primitives → components}/UiAlert/__tests__/UiAlert.test.ts +0 -0
- /package/src/{primitives → components}/UiAlert/constants.ts +0 -0
- /package/src/{primitives → components}/UiAlert/index.ts +0 -0
- /package/src/{primitives → components}/UiAlertDialog/__tests__/UiAlertDialog.test.ts +0 -0
- /package/src/{primitives → components}/UiAvatar/__tests__/UiAvatar.test.ts +0 -0
- /package/src/{primitives → components}/UiBadge/constants.ts +0 -0
- /package/src/{primitives → components}/UiBadge/index.ts +0 -0
- /package/src/{primitives → components}/UiButton/index.ts +0 -0
- /package/src/{primitives → components}/UiCalendar/__tests__/UiCalendar.test.ts +0 -0
- /package/src/{primitives → components}/UiCalendar/index.ts +0 -0
- /package/src/{primitives → components}/UiCard/__tests__/UiCard.test.ts +0 -0
- /package/src/{primitives → components}/UiCard/__tests__/UiCardAction.test.ts +0 -0
- /package/src/{primitives → components}/UiCard/__tests__/UiCardContent.test.ts +0 -0
- /package/src/{primitives → components}/UiCard/__tests__/UiCardDescription.test.ts +0 -0
- /package/src/{primitives → components}/UiCard/__tests__/UiCardFooter.test.ts +0 -0
- /package/src/{primitives → components}/UiCard/__tests__/UiCardHeader.test.ts +0 -0
- /package/src/{primitives → components}/UiCard/__tests__/UiCardTitle.test.ts +0 -0
- /package/src/{primitives → components}/UiCheckbox/__tests__/UiCheckbox.test.ts +0 -0
- /package/src/{primitives → components}/UiCheckbox/index.ts +0 -0
- /package/src/{primitives → components}/UiDrawer/__tests__/UiDrawer.test.ts +0 -0
- /package/src/{primitives → components}/UiDropdownMenu/__tests__/UiDropdownMenu.test.ts +0 -0
- /package/src/{primitives → components}/UiDropdownMenu/index.ts +0 -0
- /package/src/{primitives → components}/UiField/__tests__/UiFieldError.test.ts +0 -0
- /package/src/{primitives → components}/UiIconButton/index.ts +0 -0
- /package/src/{primitives → components}/UiInput/__tests__/UiInput.test.ts +0 -0
- /package/src/{primitives → components}/UiInput/index.ts +0 -0
- /package/src/{primitives → components}/UiPopover/__tests__/UiPopover.test.ts +0 -0
- /package/src/{primitives → components}/UiProgress/__tests__/UiProgress.test.ts +0 -0
- /package/src/{primitives → components}/UiProgress/index.ts +0 -0
- /package/src/{primitives → components}/UiRadioGroup/__tests__/UiRadioGroup.test.ts +0 -0
- /package/src/{primitives → components}/UiRadioGroup/index.ts +0 -0
- /package/src/{primitives → components}/UiRangeCalendar/__tests__/UiRangeCalendar.test.ts +0 -0
- /package/src/{primitives → components}/UiRangeCalendar/index.ts +0 -0
- /package/src/{primitives → components}/UiSelect/__tests__/UiSelect.test.ts +0 -0
- /package/src/{primitives → components}/UiSelect/__tests__/UiSelectContent.test.ts +0 -0
- /package/src/{primitives → components}/UiSelect/__tests__/UiSelectGroup.test.ts +0 -0
- /package/src/{primitives → components}/UiSelect/__tests__/UiSelectItem.test.ts +0 -0
- /package/src/{primitives → components}/UiSelect/__tests__/UiSelectLabel.test.ts +0 -0
- /package/src/{primitives → components}/UiSelect/__tests__/UiSelectSeparator.test.ts +0 -0
- /package/src/{primitives → components}/UiSelect/__tests__/UiSelectTrigger.test.ts +0 -0
- /package/src/{primitives → components}/UiSelect/__tests__/UiSelectValue.test.ts +0 -0
- /package/src/{primitives → components}/UiSelect/index.ts +0 -0
- /package/src/{primitives → components}/UiSpinner/__tests__/UiSpinner.test.ts +0 -0
- /package/src/{primitives → components}/UiSpinner/index.ts +0 -0
- /package/src/{primitives → components}/UiSwitch/__tests__/UiSwitch.test.ts +0 -0
- /package/src/{primitives → components}/UiSwitch/index.ts +0 -0
- /package/src/{primitives → components}/UiTable/__tests__/UiTable.test.ts +0 -0
- /package/src/{primitives → components}/UiTable/__tests__/UiTableBody.test.ts +0 -0
- /package/src/{primitives → components}/UiTable/__tests__/UiTableCaption.test.ts +0 -0
- /package/src/{primitives → components}/UiTable/__tests__/UiTableCell.test.ts +0 -0
- /package/src/{primitives → components}/UiTable/__tests__/UiTableEmpty.test.ts +0 -0
- /package/src/{primitives → components}/UiTable/__tests__/UiTableFooter.test.ts +0 -0
- /package/src/{primitives → components}/UiTable/__tests__/UiTableHead.test.ts +0 -0
- /package/src/{primitives → components}/UiTable/__tests__/UiTableHeader.test.ts +0 -0
- /package/src/{primitives → components}/UiTable/__tests__/UiTableRow.test.ts +0 -0
- /package/src/{primitives → components}/UiTable/index.ts +0 -0
- /package/src/{primitives → components}/UiTabs/__tests__/UiTabs.test.ts +0 -0
- /package/src/{primitives → components}/UiTabs/index.ts +0 -0
- /package/src/{primitives → components}/UiTextarea/__tests__/UiTextarea.test.ts +0 -0
- /package/src/{primitives → components}/UiTextarea/index.ts +0 -0
- /package/src/{primitives → components}/UiTooltip/__tests__/UiTooltip.test.ts +0 -0
- /package/src/{primitives/shadcn → components/core}/accordion/AccordionContent.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/accordion/index.ts +0 -0
- /package/src/{primitives/shadcn → components/core}/alert/Alert.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/alert/AlertDescription.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/alert/AlertTitle.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/alert-dialog/AlertDialog.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/alert-dialog/AlertDialogDescription.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/alert-dialog/AlertDialogFooter.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/alert-dialog/AlertDialogHeader.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/alert-dialog/AlertDialogTitle.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/alert-dialog/AlertDialogTrigger.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/alert-dialog/index.ts +0 -0
- /package/src/{primitives/shadcn → components/core}/avatar/Avatar.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/avatar/AvatarFallback.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/avatar/AvatarImage.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/avatar/index.ts +0 -0
- /package/src/{primitives/shadcn → components/core}/badge/Badge.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/button/Button.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/calendar/CalendarCell.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/calendar/CalendarGrid.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/calendar/CalendarGridBody.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/calendar/CalendarGridHead.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/calendar/CalendarGridRow.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/calendar/CalendarHeadCell.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/calendar/CalendarHeader.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/calendar/CalendarHeading.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/calendar/index.ts +0 -0
- /package/src/{primitives/shadcn → components/core}/card/CardAction.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/card/CardContent.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/card/CardDescription.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/card/CardFooter.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/card/CardHeader.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/card/CardTitle.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/card/index.ts +0 -0
- /package/src/{primitives/shadcn → components/core}/checkbox/index.ts +0 -0
- /package/src/{primitives/shadcn → components/core}/drawer/Drawer.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/drawer/DrawerClose.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/drawer/DrawerDescription.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/drawer/DrawerFooter.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/drawer/DrawerHeader.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/drawer/DrawerTitle.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/drawer/DrawerTrigger.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/drawer/index.ts +0 -0
- /package/src/{primitives/shadcn → components/core}/dropdown-menu/DropdownMenu.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/dropdown-menu/DropdownMenuContent.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/dropdown-menu/DropdownMenuGroup.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/dropdown-menu/DropdownMenuLabel.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/dropdown-menu/DropdownMenuRadioGroup.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/dropdown-menu/DropdownMenuSeparator.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/dropdown-menu/DropdownMenuShortcut.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/dropdown-menu/DropdownMenuSub.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/dropdown-menu/DropdownMenuSubContent.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/dropdown-menu/DropdownMenuTrigger.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/dropdown-menu/index.ts +0 -0
- /package/src/{primitives/shadcn → components/core}/field/Field.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/field/FieldContent.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/field/FieldDescription.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/field/FieldGroup.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/field/FieldLegend.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/field/FieldSet.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/field/FieldTitle.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/field/index.ts +0 -0
- /package/src/{primitives/shadcn → components/core}/icon/Icon.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/icon/index.ts +0 -0
- /package/src/{primitives/shadcn → components/core}/input/index.ts +0 -0
- /package/src/{primitives/shadcn → components/core}/label/Label.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/label/index.ts +0 -0
- /package/src/{primitives/shadcn → components/core}/native-select/NativeSelectOptGroup.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/native-select/NativeSelectOption.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/native-select/index.ts +0 -0
- /package/src/{primitives/shadcn → components/core}/popover/Popover.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/popover/PopoverContent.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/popover/PopoverTrigger.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/popover/index.ts +0 -0
- /package/src/{primitives/shadcn → components/core}/progress/Progress.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/progress/index.ts +0 -0
- /package/src/{primitives/shadcn → components/core}/radio-group/RadioGroup.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/radio-group/index.ts +0 -0
- /package/src/{primitives/shadcn → components/core}/range-calendar/RangeCalendarCell.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/range-calendar/RangeCalendarGrid.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/range-calendar/RangeCalendarGridBody.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/range-calendar/RangeCalendarGridHead.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/range-calendar/RangeCalendarGridRow.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/range-calendar/RangeCalendarHeadCell.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/range-calendar/RangeCalendarHeader.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/range-calendar/index.ts +0 -0
- /package/src/{primitives/shadcn → components/core}/select/SelectContent.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/select/SelectGroup.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/select/SelectItemText.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/select/SelectLabel.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/select/SelectSeparator.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/select/SelectValue.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/select/index.ts +0 -0
- /package/src/{primitives/shadcn → components/core}/separator/Separator.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/separator/index.ts +0 -0
- /package/src/{primitives/shadcn → components/core}/slider/Slider.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/slider/index.ts +0 -0
- /package/src/{primitives/shadcn → components/core}/spinner/index.ts +0 -0
- /package/src/{primitives/shadcn → components/core}/switch/index.ts +0 -0
- /package/src/{primitives/shadcn → components/core}/table/Table.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/table/TableBody.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/table/TableCaption.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/table/TableCell.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/table/TableEmpty.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/table/TableFooter.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/table/TableHead.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/table/TableHeader.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/table/index.ts +0 -0
- /package/src/{primitives/shadcn → components/core}/table/utils.ts +0 -0
- /package/src/{primitives/shadcn → components/core}/tabs/TabsContent.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/tabs/TabsList.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/tabs/index.ts +0 -0
- /package/src/{primitives/shadcn → components/core}/textarea/index.ts +0 -0
- /package/src/{primitives/shadcn → components/core}/tooltip/Tooltip.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/tooltip/TooltipProvider.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/tooltip/TooltipTrigger.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/tooltip/index.ts +0 -0
- /package/src/{compositions → patterns}/UiDataTable/UiDataTable.mock.ts +0 -0
- /package/src/{compositions → patterns}/UiDataTable/__tests__/UiDataTableColumnHeader.test.ts +0 -0
- /package/src/{compositions → patterns}/UiDataTable/__tests__/UiDataTablePagination.test.ts +0 -0
- /package/src/{compositions → patterns}/UiDataTable/__tests__/UiDataTableToolbar.test.ts +0 -0
- /package/src/{compositions → patterns}/UiDataTable/constants.ts +0 -0
- /package/src/{compositions → patterns}/UiDataTable/index.ts +0 -0
- /package/src/{compositions → patterns}/UiDatePicker/__tests__/UiDatePicker.test.ts +0 -0
- /package/src/{compositions → patterns}/UiDatePicker/index.ts +0 -0
- /package/src/{foundations → patterns}/UiPlaceholder/UiPlaceholder.vue +0 -0
- /package/src/{foundations → patterns}/UiPlaceholder/index.ts +0 -0
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/vue3-vite';
|
|
2
|
+
import { defineComponent, h } from 'vue';
|
|
3
|
+
|
|
4
|
+
const ThemePlaceholder = defineComponent({
|
|
5
|
+
name: 'ThemePlaceholder',
|
|
6
|
+
render() {
|
|
7
|
+
return h('div');
|
|
8
|
+
},
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
const meta: Meta<typeof ThemePlaceholder> = {
|
|
12
|
+
title: 'Theme/Background',
|
|
13
|
+
component: ThemePlaceholder,
|
|
14
|
+
tags: ['autodocs'],
|
|
15
|
+
parameters: {
|
|
16
|
+
layout: 'fullscreen',
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export default meta;
|
|
21
|
+
type Story = StoryObj<typeof ThemePlaceholder>;
|
|
22
|
+
|
|
23
|
+
const copyScript = `
|
|
24
|
+
function copyToClipboard(text, el) {
|
|
25
|
+
navigator.clipboard.writeText(text).then(() => {
|
|
26
|
+
el.classList.add('copied');
|
|
27
|
+
setTimeout(() => el.classList.remove('copied'), 1500);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
`;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Surface backgrounds for main application areas like pages, cards, and panels.
|
|
34
|
+
* Primary is the main app background, secondary for elevated surfaces, muted for de-emphasized areas.
|
|
35
|
+
*/
|
|
36
|
+
export const Surface: Story = {
|
|
37
|
+
render: () => ({
|
|
38
|
+
template: `
|
|
39
|
+
<div class="p-8 bg-white dark:bg-background min-h-screen">
|
|
40
|
+
<style>
|
|
41
|
+
.copy-btn { cursor: pointer; transition: all 0.15s; }
|
|
42
|
+
.copy-btn:hover { background: rgba(0,0,0,0.05); }
|
|
43
|
+
.copy-btn.copied { background: #22c55e22; }
|
|
44
|
+
.copy-btn.copied::after { content: ' ✓'; color: #22c55e; }
|
|
45
|
+
</style>
|
|
46
|
+
<script>${copyScript}</script>
|
|
47
|
+
|
|
48
|
+
<div class="mb-6">
|
|
49
|
+
<h2 class="text-xl font-bold text-content-on-surface-primary mb-1">surface</h2>
|
|
50
|
+
<p class="text-sm text-content-on-surface-muted">Background colors for main application surfaces. Click class name to copy.</p>
|
|
51
|
+
</div>
|
|
52
|
+
|
|
53
|
+
<div class="flex flex-wrap gap-6">
|
|
54
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
55
|
+
<div class="w-16 h-16 rounded-md bg-background-surface-primary border border-border-surface-default"></div>
|
|
56
|
+
<div class="text-center">
|
|
57
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">primary</span>
|
|
58
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('bg-background-surface-primary', this)">bg-background-surface-primary</code>
|
|
59
|
+
</div>
|
|
60
|
+
</div>
|
|
61
|
+
|
|
62
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
63
|
+
<div class="w-16 h-16 rounded-md bg-background-surface-secondary border border-border-surface-default"></div>
|
|
64
|
+
<div class="text-center">
|
|
65
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">secondary</span>
|
|
66
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('bg-background-surface-secondary', this)">bg-background-surface-secondary</code>
|
|
67
|
+
</div>
|
|
68
|
+
</div>
|
|
69
|
+
|
|
70
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
71
|
+
<div class="w-16 h-16 rounded-md bg-background-surface-muted border border-border-surface-default"></div>
|
|
72
|
+
<div class="text-center">
|
|
73
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">muted</span>
|
|
74
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('bg-background-surface-muted', this)">bg-background-surface-muted</code>
|
|
75
|
+
</div>
|
|
76
|
+
</div>
|
|
77
|
+
|
|
78
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
79
|
+
<div class="w-16 h-16 rounded-md bg-background-surface-selected border border-border-surface-default"></div>
|
|
80
|
+
<div class="text-center">
|
|
81
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">selected</span>
|
|
82
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('bg-background-surface-selected', this)">bg-background-surface-selected</code>
|
|
83
|
+
</div>
|
|
84
|
+
</div>
|
|
85
|
+
|
|
86
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
87
|
+
<div class="w-16 h-16 rounded-md bg-background-surface-inverse border border-border-surface-default"></div>
|
|
88
|
+
<div class="text-center">
|
|
89
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">inverse</span>
|
|
90
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('bg-background-surface-inverse', this)">bg-background-surface-inverse</code>
|
|
91
|
+
</div>
|
|
92
|
+
</div>
|
|
93
|
+
</div>
|
|
94
|
+
</div>
|
|
95
|
+
`,
|
|
96
|
+
}),
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Button background colors for different button types.
|
|
101
|
+
* Use primary for main actions, secondary for less prominent actions, danger for destructive actions.
|
|
102
|
+
*/
|
|
103
|
+
export const Button: Story = {
|
|
104
|
+
render: () => ({
|
|
105
|
+
template: `
|
|
106
|
+
<div class="p-8 bg-white dark:bg-background min-h-screen">
|
|
107
|
+
<style>
|
|
108
|
+
.copy-btn { cursor: pointer; transition: all 0.15s; }
|
|
109
|
+
.copy-btn:hover { background: rgba(0,0,0,0.05); }
|
|
110
|
+
.copy-btn.copied { background: #22c55e22; }
|
|
111
|
+
.copy-btn.copied::after { content: ' ✓'; color: #22c55e; }
|
|
112
|
+
</style>
|
|
113
|
+
<script>${copyScript}</script>
|
|
114
|
+
|
|
115
|
+
<div class="mb-6">
|
|
116
|
+
<h2 class="text-xl font-bold text-content-on-surface-primary mb-1">button</h2>
|
|
117
|
+
<p class="text-sm text-content-on-surface-muted">Background colors for buttons. Click class name to copy.</p>
|
|
118
|
+
</div>
|
|
119
|
+
|
|
120
|
+
<div class="flex flex-wrap gap-6">
|
|
121
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
122
|
+
<div class="w-16 h-16 rounded-md bg-background-button-primary-button border border-border-surface-default"></div>
|
|
123
|
+
<div class="text-center">
|
|
124
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">primary-button</span>
|
|
125
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('bg-background-button-primary-button', this)">bg-background-button-primary-button</code>
|
|
126
|
+
</div>
|
|
127
|
+
</div>
|
|
128
|
+
|
|
129
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
130
|
+
<div class="w-16 h-16 rounded-md bg-background-button-secondary-button border border-border-surface-default"></div>
|
|
131
|
+
<div class="text-center">
|
|
132
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">secondary-button</span>
|
|
133
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('bg-background-button-secondary-button', this)">bg-background-button-secondary-button</code>
|
|
134
|
+
</div>
|
|
135
|
+
</div>
|
|
136
|
+
|
|
137
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
138
|
+
<div class="w-16 h-16 rounded-md bg-background-button-danger-button border border-border-surface-default"></div>
|
|
139
|
+
<div class="text-center">
|
|
140
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">danger-button</span>
|
|
141
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('bg-background-button-danger-button', this)">bg-background-button-danger-button</code>
|
|
142
|
+
</div>
|
|
143
|
+
</div>
|
|
144
|
+
</div>
|
|
145
|
+
</div>
|
|
146
|
+
`,
|
|
147
|
+
}),
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Input field background color for form elements like text inputs, selects, and textareas.
|
|
152
|
+
*/
|
|
153
|
+
export const Input: Story = {
|
|
154
|
+
render: () => ({
|
|
155
|
+
template: `
|
|
156
|
+
<div class="p-8 bg-white dark:bg-background min-h-screen">
|
|
157
|
+
<style>
|
|
158
|
+
.copy-btn { cursor: pointer; transition: all 0.15s; }
|
|
159
|
+
.copy-btn:hover { background: rgba(0,0,0,0.05); }
|
|
160
|
+
.copy-btn.copied { background: #22c55e22; }
|
|
161
|
+
.copy-btn.copied::after { content: ' ✓'; color: #22c55e; }
|
|
162
|
+
</style>
|
|
163
|
+
<script>${copyScript}</script>
|
|
164
|
+
|
|
165
|
+
<div class="mb-6">
|
|
166
|
+
<h2 class="text-xl font-bold text-content-on-surface-primary mb-1">input</h2>
|
|
167
|
+
<p class="text-sm text-content-on-surface-muted">Background colors for input fields. Click class name to copy.</p>
|
|
168
|
+
</div>
|
|
169
|
+
|
|
170
|
+
<div class="flex flex-wrap gap-6">
|
|
171
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
172
|
+
<div class="w-16 h-16 rounded-md bg-background-input-default border border-border-surface-default"></div>
|
|
173
|
+
<div class="text-center">
|
|
174
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">default</span>
|
|
175
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('bg-background-input-default', this)">bg-background-input-default</code>
|
|
176
|
+
</div>
|
|
177
|
+
</div>
|
|
178
|
+
</div>
|
|
179
|
+
</div>
|
|
180
|
+
`,
|
|
181
|
+
}),
|
|
182
|
+
};
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* Accent backgrounds for highlighting selected items, focus states, or branded elements.
|
|
186
|
+
* Default is more prominent, soft is subtle for less emphasis.
|
|
187
|
+
*/
|
|
188
|
+
export const Accent: Story = {
|
|
189
|
+
render: () => ({
|
|
190
|
+
template: `
|
|
191
|
+
<div class="p-8 bg-white dark:bg-background min-h-screen">
|
|
192
|
+
<style>
|
|
193
|
+
.copy-btn { cursor: pointer; transition: all 0.15s; }
|
|
194
|
+
.copy-btn:hover { background: rgba(0,0,0,0.05); }
|
|
195
|
+
.copy-btn.copied { background: #22c55e22; }
|
|
196
|
+
.copy-btn.copied::after { content: ' ✓'; color: #22c55e; }
|
|
197
|
+
</style>
|
|
198
|
+
<script>${copyScript}</script>
|
|
199
|
+
|
|
200
|
+
<div class="mb-6">
|
|
201
|
+
<h2 class="text-xl font-bold text-content-on-surface-primary mb-1">accent</h2>
|
|
202
|
+
<p class="text-sm text-content-on-surface-muted">Background colors for accents and highlights. Click class name to copy.</p>
|
|
203
|
+
</div>
|
|
204
|
+
|
|
205
|
+
<div class="flex flex-wrap gap-6">
|
|
206
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
207
|
+
<div class="w-16 h-16 rounded-md bg-background-accent-default border border-border-surface-default"></div>
|
|
208
|
+
<div class="text-center">
|
|
209
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">default</span>
|
|
210
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('bg-background-accent-default', this)">bg-background-accent-default</code>
|
|
211
|
+
</div>
|
|
212
|
+
</div>
|
|
213
|
+
|
|
214
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
215
|
+
<div class="w-16 h-16 rounded-md bg-background-accent-soft border border-border-surface-default"></div>
|
|
216
|
+
<div class="text-center">
|
|
217
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">soft</span>
|
|
218
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('bg-background-accent-soft', this)">bg-background-accent-soft</code>
|
|
219
|
+
</div>
|
|
220
|
+
</div>
|
|
221
|
+
</div>
|
|
222
|
+
</div>
|
|
223
|
+
`,
|
|
224
|
+
}),
|
|
225
|
+
};
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/vue3-vite';
|
|
2
|
+
import { defineComponent, h } from 'vue';
|
|
3
|
+
|
|
4
|
+
const ThemePlaceholder = defineComponent({
|
|
5
|
+
name: 'ThemePlaceholder',
|
|
6
|
+
render() {
|
|
7
|
+
return h('div');
|
|
8
|
+
},
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
const meta: Meta<typeof ThemePlaceholder> = {
|
|
12
|
+
title: 'Theme/Border',
|
|
13
|
+
component: ThemePlaceholder,
|
|
14
|
+
tags: ['autodocs'],
|
|
15
|
+
parameters: {
|
|
16
|
+
layout: 'fullscreen',
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export default meta;
|
|
21
|
+
type Story = StoryObj<typeof ThemePlaceholder>;
|
|
22
|
+
|
|
23
|
+
const copyScript = `
|
|
24
|
+
function copyToClipboard(text, el) {
|
|
25
|
+
navigator.clipboard.writeText(text).then(() => {
|
|
26
|
+
el.classList.add('copied');
|
|
27
|
+
setTimeout(() => el.classList.remove('copied'), 1500);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
`;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Surface border colors for general UI elements like cards, panels, and dividers.
|
|
34
|
+
* Default is for standard borders, focus-ring for keyboard focus indicators.
|
|
35
|
+
*/
|
|
36
|
+
export const Surface: Story = {
|
|
37
|
+
render: () => ({
|
|
38
|
+
template: `
|
|
39
|
+
<div class="p-8 bg-white dark:bg-background min-h-screen">
|
|
40
|
+
<style>
|
|
41
|
+
.copy-btn { cursor: pointer; transition: all 0.15s; }
|
|
42
|
+
.copy-btn:hover { background: rgba(0,0,0,0.05); }
|
|
43
|
+
.copy-btn.copied { background: #22c55e22; }
|
|
44
|
+
.copy-btn.copied::after { content: ' ✓'; color: #22c55e; }
|
|
45
|
+
</style>
|
|
46
|
+
<script>${copyScript}</script>
|
|
47
|
+
|
|
48
|
+
<div class="mb-6">
|
|
49
|
+
<h2 class="text-xl font-bold text-content-on-surface-primary mb-1">surface</h2>
|
|
50
|
+
<p class="text-sm text-content-on-surface-muted">Border colors for general UI elements and focus rings. Click class name to copy.</p>
|
|
51
|
+
</div>
|
|
52
|
+
|
|
53
|
+
<div class="flex flex-wrap gap-6">
|
|
54
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
55
|
+
<div class="w-16 h-16 rounded-md bg-background-surface-primary border-4 border-border-surface-default"></div>
|
|
56
|
+
<div class="text-center">
|
|
57
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">default</span>
|
|
58
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('border-border-surface-default', this)">border-border-surface-default</code>
|
|
59
|
+
</div>
|
|
60
|
+
</div>
|
|
61
|
+
|
|
62
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
63
|
+
<div class="w-16 h-16 rounded-md bg-background-surface-primary border-4 border-border-surface-focus-ring"></div>
|
|
64
|
+
<div class="text-center">
|
|
65
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">focus-ring</span>
|
|
66
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('border-border-surface-focus-ring', this)">border-border-surface-focus-ring</code>
|
|
67
|
+
</div>
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
70
|
+
</div>
|
|
71
|
+
`,
|
|
72
|
+
}),
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Input border colors for form fields in different states.
|
|
77
|
+
* Default for resting state, hover for mouse interaction, error for validation feedback.
|
|
78
|
+
*/
|
|
79
|
+
export const Input: Story = {
|
|
80
|
+
render: () => ({
|
|
81
|
+
template: `
|
|
82
|
+
<div class="p-8 bg-white dark:bg-background min-h-screen">
|
|
83
|
+
<style>
|
|
84
|
+
.copy-btn { cursor: pointer; transition: all 0.15s; }
|
|
85
|
+
.copy-btn:hover { background: rgba(0,0,0,0.05); }
|
|
86
|
+
.copy-btn.copied { background: #22c55e22; }
|
|
87
|
+
.copy-btn.copied::after { content: ' ✓'; color: #22c55e; }
|
|
88
|
+
</style>
|
|
89
|
+
<script>${copyScript}</script>
|
|
90
|
+
|
|
91
|
+
<div class="mb-6">
|
|
92
|
+
<h2 class="text-xl font-bold text-content-on-surface-primary mb-1">input</h2>
|
|
93
|
+
<p class="text-sm text-content-on-surface-muted">Border colors for input fields and form elements. Click class name to copy.</p>
|
|
94
|
+
</div>
|
|
95
|
+
|
|
96
|
+
<div class="flex flex-wrap gap-6">
|
|
97
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
98
|
+
<div class="w-16 h-16 rounded-md bg-background-surface-primary border-4 border-border-input-default"></div>
|
|
99
|
+
<div class="text-center">
|
|
100
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">default</span>
|
|
101
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('border-border-input-default', this)">border-border-input-default</code>
|
|
102
|
+
</div>
|
|
103
|
+
</div>
|
|
104
|
+
|
|
105
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
106
|
+
<div class="w-16 h-16 rounded-md bg-background-surface-primary border-4 border-border-input-hover"></div>
|
|
107
|
+
<div class="text-center">
|
|
108
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">hover</span>
|
|
109
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('border-border-input-hover', this)">border-border-input-hover</code>
|
|
110
|
+
</div>
|
|
111
|
+
</div>
|
|
112
|
+
|
|
113
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
114
|
+
<div class="w-16 h-16 rounded-md bg-background-surface-primary border-4 border-border-input-error"></div>
|
|
115
|
+
<div class="text-center">
|
|
116
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">error</span>
|
|
117
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('border-border-input-error', this)">border-border-input-error</code>
|
|
118
|
+
</div>
|
|
119
|
+
</div>
|
|
120
|
+
</div>
|
|
121
|
+
</div>
|
|
122
|
+
`,
|
|
123
|
+
}),
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Button border color for outlined button variants that need visible boundaries.
|
|
128
|
+
*/
|
|
129
|
+
export const Button: Story = {
|
|
130
|
+
render: () => ({
|
|
131
|
+
template: `
|
|
132
|
+
<div class="p-8 bg-white dark:bg-background min-h-screen">
|
|
133
|
+
<style>
|
|
134
|
+
.copy-btn { cursor: pointer; transition: all 0.15s; }
|
|
135
|
+
.copy-btn:hover { background: rgba(0,0,0,0.05); }
|
|
136
|
+
.copy-btn.copied { background: #22c55e22; }
|
|
137
|
+
.copy-btn.copied::after { content: ' ✓'; color: #22c55e; }
|
|
138
|
+
</style>
|
|
139
|
+
<script>${copyScript}</script>
|
|
140
|
+
|
|
141
|
+
<div class="mb-6">
|
|
142
|
+
<h2 class="text-xl font-bold text-content-on-surface-primary mb-1">button</h2>
|
|
143
|
+
<p class="text-sm text-content-on-surface-muted">Border colors for outlined buttons. Click class name to copy.</p>
|
|
144
|
+
</div>
|
|
145
|
+
|
|
146
|
+
<div class="flex flex-wrap gap-6">
|
|
147
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
148
|
+
<div class="w-16 h-16 rounded-md bg-background-surface-primary border-4 border-border-button-outlined"></div>
|
|
149
|
+
<div class="text-center">
|
|
150
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">outlined</span>
|
|
151
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('border-border-button-outlined', this)">border-border-button-outlined</code>
|
|
152
|
+
</div>
|
|
153
|
+
</div>
|
|
154
|
+
</div>
|
|
155
|
+
</div>
|
|
156
|
+
`,
|
|
157
|
+
}),
|
|
158
|
+
};
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/vue3-vite';
|
|
2
|
+
import { defineComponent, h } from 'vue';
|
|
3
|
+
|
|
4
|
+
const ThemePlaceholder = defineComponent({
|
|
5
|
+
name: 'ThemePlaceholder',
|
|
6
|
+
render() {
|
|
7
|
+
return h('div');
|
|
8
|
+
},
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
const meta: Meta<typeof ThemePlaceholder> = {
|
|
12
|
+
title: 'Theme/Extended',
|
|
13
|
+
component: ThemePlaceholder,
|
|
14
|
+
tags: ['autodocs'],
|
|
15
|
+
parameters: {
|
|
16
|
+
layout: 'fullscreen',
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export default meta;
|
|
21
|
+
type Story = StoryObj<typeof ThemePlaceholder>;
|
|
22
|
+
|
|
23
|
+
const copyScript = `
|
|
24
|
+
function copyToClipboard(text, el) {
|
|
25
|
+
navigator.clipboard.writeText(text).then(() => {
|
|
26
|
+
el.classList.add('copied');
|
|
27
|
+
setTimeout(() => el.classList.remove('copied'), 1500);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
`;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Extended color 1 for charts, data visualizations, and non-semantic color needs.
|
|
34
|
+
* Use for the first data series in charts or categorical distinctions.
|
|
35
|
+
*/
|
|
36
|
+
export const Extended1: Story = {
|
|
37
|
+
name: '1',
|
|
38
|
+
render: () => ({
|
|
39
|
+
template: `
|
|
40
|
+
<div class="p-8 bg-white dark:bg-background min-h-screen">
|
|
41
|
+
<style>
|
|
42
|
+
.copy-btn { cursor: pointer; transition: all 0.15s; }
|
|
43
|
+
.copy-btn:hover { background: rgba(0,0,0,0.05); }
|
|
44
|
+
.copy-btn.copied { background: #22c55e22; }
|
|
45
|
+
.copy-btn.copied::after { content: ' ✓'; color: #22c55e; }
|
|
46
|
+
</style>
|
|
47
|
+
<script>${copyScript}</script>
|
|
48
|
+
|
|
49
|
+
<div class="mb-6">
|
|
50
|
+
<h2 class="text-xl font-bold text-content-on-surface-primary mb-1">extended-1</h2>
|
|
51
|
+
<p class="text-sm text-content-on-surface-muted">Extended color for charts and non-semantic visualizations. Click class name to copy.</p>
|
|
52
|
+
</div>
|
|
53
|
+
|
|
54
|
+
<div class="flex flex-col items-start gap-1.5">
|
|
55
|
+
<div class="w-16 h-16 rounded-md bg-extended-extended-1 border border-border-surface-default"></div>
|
|
56
|
+
<div class="text-left">
|
|
57
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">extended-1</span>
|
|
58
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('bg-extended-extended-1', this)">bg-extended-extended-1</code>
|
|
59
|
+
</div>
|
|
60
|
+
</div>
|
|
61
|
+
</div>
|
|
62
|
+
`,
|
|
63
|
+
}),
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Extended color 2 for charts, data visualizations, and non-semantic color needs.
|
|
68
|
+
* Use for the second data series in charts or categorical distinctions.
|
|
69
|
+
*/
|
|
70
|
+
export const Extended2: Story = {
|
|
71
|
+
name: '2',
|
|
72
|
+
render: () => ({
|
|
73
|
+
template: `
|
|
74
|
+
<div class="p-8 bg-white dark:bg-background min-h-screen">
|
|
75
|
+
<style>
|
|
76
|
+
.copy-btn { cursor: pointer; transition: all 0.15s; }
|
|
77
|
+
.copy-btn:hover { background: rgba(0,0,0,0.05); }
|
|
78
|
+
.copy-btn.copied { background: #22c55e22; }
|
|
79
|
+
.copy-btn.copied::after { content: ' ✓'; color: #22c55e; }
|
|
80
|
+
</style>
|
|
81
|
+
<script>${copyScript}</script>
|
|
82
|
+
|
|
83
|
+
<div class="mb-6">
|
|
84
|
+
<h2 class="text-xl font-bold text-content-on-surface-primary mb-1">extended-2</h2>
|
|
85
|
+
<p class="text-sm text-content-on-surface-muted">Extended color for charts and non-semantic visualizations. Click class name to copy.</p>
|
|
86
|
+
</div>
|
|
87
|
+
|
|
88
|
+
<div class="flex flex-col items-start gap-1.5">
|
|
89
|
+
<div class="w-16 h-16 rounded-md bg-extended-extended-2 border border-border-surface-default"></div>
|
|
90
|
+
<div class="text-left">
|
|
91
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">extended-2</span>
|
|
92
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('bg-extended-extended-2', this)">bg-extended-extended-2</code>
|
|
93
|
+
</div>
|
|
94
|
+
</div>
|
|
95
|
+
</div>
|
|
96
|
+
`,
|
|
97
|
+
}),
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Extended color 3 for charts, data visualizations, and non-semantic color needs.
|
|
102
|
+
* Use for the third data series in charts or categorical distinctions.
|
|
103
|
+
*/
|
|
104
|
+
export const Extended3: Story = {
|
|
105
|
+
name: '3',
|
|
106
|
+
render: () => ({
|
|
107
|
+
template: `
|
|
108
|
+
<div class="p-8 bg-white dark:bg-background min-h-screen">
|
|
109
|
+
<style>
|
|
110
|
+
.copy-btn { cursor: pointer; transition: all 0.15s; }
|
|
111
|
+
.copy-btn:hover { background: rgba(0,0,0,0.05); }
|
|
112
|
+
.copy-btn.copied { background: #22c55e22; }
|
|
113
|
+
.copy-btn.copied::after { content: ' ✓'; color: #22c55e; }
|
|
114
|
+
</style>
|
|
115
|
+
<script>${copyScript}</script>
|
|
116
|
+
|
|
117
|
+
<div class="mb-6">
|
|
118
|
+
<h2 class="text-xl font-bold text-content-on-surface-primary mb-1">extended-3</h2>
|
|
119
|
+
<p class="text-sm text-content-on-surface-muted">Extended color for charts and non-semantic visualizations. Click class name to copy.</p>
|
|
120
|
+
</div>
|
|
121
|
+
|
|
122
|
+
<div class="flex flex-col items-start gap-1.5">
|
|
123
|
+
<div class="w-16 h-16 rounded-md bg-extended-extended-3 border border-border-surface-default"></div>
|
|
124
|
+
<div class="text-left">
|
|
125
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">extended-3</span>
|
|
126
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('bg-extended-extended-3', this)">bg-extended-extended-3</code>
|
|
127
|
+
</div>
|
|
128
|
+
</div>
|
|
129
|
+
</div>
|
|
130
|
+
`,
|
|
131
|
+
}),
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Extended color 4 for charts, data visualizations, and non-semantic color needs.
|
|
136
|
+
* Use for the fourth data series in charts or categorical distinctions.
|
|
137
|
+
*/
|
|
138
|
+
export const Extended4: Story = {
|
|
139
|
+
name: '4',
|
|
140
|
+
render: () => ({
|
|
141
|
+
template: `
|
|
142
|
+
<div class="p-8 bg-white dark:bg-background min-h-screen">
|
|
143
|
+
<style>
|
|
144
|
+
.copy-btn { cursor: pointer; transition: all 0.15s; }
|
|
145
|
+
.copy-btn:hover { background: rgba(0,0,0,0.05); }
|
|
146
|
+
.copy-btn.copied { background: #22c55e22; }
|
|
147
|
+
.copy-btn.copied::after { content: ' ✓'; color: #22c55e; }
|
|
148
|
+
</style>
|
|
149
|
+
<script>${copyScript}</script>
|
|
150
|
+
|
|
151
|
+
<div class="mb-6">
|
|
152
|
+
<h2 class="text-xl font-bold text-content-on-surface-primary mb-1">extended-4</h2>
|
|
153
|
+
<p class="text-sm text-content-on-surface-muted">Extended color for charts and non-semantic visualizations. Click class name to copy.</p>
|
|
154
|
+
</div>
|
|
155
|
+
|
|
156
|
+
<div class="flex flex-col items-start gap-1.5">
|
|
157
|
+
<div class="w-16 h-16 rounded-md bg-extended-extended-4 border border-border-surface-default"></div>
|
|
158
|
+
<div class="text-left">
|
|
159
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">extended-4</span>
|
|
160
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('bg-extended-extended-4', this)">bg-extended-extended-4</code>
|
|
161
|
+
</div>
|
|
162
|
+
</div>
|
|
163
|
+
</div>
|
|
164
|
+
`,
|
|
165
|
+
}),
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Extended color 5 for charts, data visualizations, and non-semantic color needs.
|
|
170
|
+
* Use for the fifth data series in charts or categorical distinctions.
|
|
171
|
+
*/
|
|
172
|
+
export const Extended5: Story = {
|
|
173
|
+
name: '5',
|
|
174
|
+
render: () => ({
|
|
175
|
+
template: `
|
|
176
|
+
<div class="p-8 bg-white dark:bg-background min-h-screen">
|
|
177
|
+
<style>
|
|
178
|
+
.copy-btn { cursor: pointer; transition: all 0.15s; }
|
|
179
|
+
.copy-btn:hover { background: rgba(0,0,0,0.05); }
|
|
180
|
+
.copy-btn.copied { background: #22c55e22; }
|
|
181
|
+
.copy-btn.copied::after { content: ' ✓'; color: #22c55e; }
|
|
182
|
+
</style>
|
|
183
|
+
<script>${copyScript}</script>
|
|
184
|
+
|
|
185
|
+
<div class="mb-6">
|
|
186
|
+
<h2 class="text-xl font-bold text-content-on-surface-primary mb-1">extended-5</h2>
|
|
187
|
+
<p class="text-sm text-content-on-surface-muted">Extended color for charts and non-semantic visualizations. Click class name to copy.</p>
|
|
188
|
+
</div>
|
|
189
|
+
|
|
190
|
+
<div class="flex flex-col items-start gap-1.5">
|
|
191
|
+
<div class="w-16 h-16 rounded-md bg-extended-extended-53 border border-border-surface-default"></div>
|
|
192
|
+
<div class="text-left">
|
|
193
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">extended-5</span>
|
|
194
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('bg-extended-extended-53', this)">bg-extended-extended-53</code>
|
|
195
|
+
</div>
|
|
196
|
+
</div>
|
|
197
|
+
</div>
|
|
198
|
+
`,
|
|
199
|
+
}),
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* All extended colors displayed together for comparison.
|
|
204
|
+
* Use this palette for multi-series charts or when you need several distinct non-semantic colors.
|
|
205
|
+
*/
|
|
206
|
+
export const AllExtended: Story = {
|
|
207
|
+
name: 'All',
|
|
208
|
+
render: () => ({
|
|
209
|
+
template: `
|
|
210
|
+
<div class="p-8 bg-white dark:bg-background min-h-screen">
|
|
211
|
+
<style>
|
|
212
|
+
.copy-btn { cursor: pointer; transition: all 0.15s; }
|
|
213
|
+
.copy-btn:hover { background: rgba(0,0,0,0.05); }
|
|
214
|
+
.copy-btn.copied { background: #22c55e22; }
|
|
215
|
+
.copy-btn.copied::after { content: ' ✓'; color: #22c55e; }
|
|
216
|
+
</style>
|
|
217
|
+
<script>${copyScript}</script>
|
|
218
|
+
|
|
219
|
+
<div class="mb-6">
|
|
220
|
+
<h2 class="text-xl font-bold text-content-on-surface-primary mb-1">extended</h2>
|
|
221
|
+
<p class="text-sm text-content-on-surface-muted">Extended colors are used for charts and other non-semantic visualizations. Click class name to copy.</p>
|
|
222
|
+
</div>
|
|
223
|
+
|
|
224
|
+
<div class="flex flex-wrap gap-6">
|
|
225
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
226
|
+
<div class="w-16 h-16 rounded-md bg-extended-extended-1 border border-border-surface-default"></div>
|
|
227
|
+
<div class="text-center">
|
|
228
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">extended-1</span>
|
|
229
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('bg-extended-extended-1', this)">bg-extended-extended-1</code>
|
|
230
|
+
</div>
|
|
231
|
+
</div>
|
|
232
|
+
|
|
233
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
234
|
+
<div class="w-16 h-16 rounded-md bg-extended-extended-2 border border-border-surface-default"></div>
|
|
235
|
+
<div class="text-center">
|
|
236
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">extended-2</span>
|
|
237
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('bg-extended-extended-2', this)">bg-extended-extended-2</code>
|
|
238
|
+
</div>
|
|
239
|
+
</div>
|
|
240
|
+
|
|
241
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
242
|
+
<div class="w-16 h-16 rounded-md bg-extended-extended-3 border border-border-surface-default"></div>
|
|
243
|
+
<div class="text-center">
|
|
244
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">extended-3</span>
|
|
245
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('bg-extended-extended-3', this)">bg-extended-extended-3</code>
|
|
246
|
+
</div>
|
|
247
|
+
</div>
|
|
248
|
+
|
|
249
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
250
|
+
<div class="w-16 h-16 rounded-md bg-extended-extended-4 border border-border-surface-default"></div>
|
|
251
|
+
<div class="text-center">
|
|
252
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">extended-4</span>
|
|
253
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('bg-extended-extended-4', this)">bg-extended-extended-4</code>
|
|
254
|
+
</div>
|
|
255
|
+
</div>
|
|
256
|
+
|
|
257
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
258
|
+
<div class="w-16 h-16 rounded-md bg-extended-extended-53 border border-border-surface-default"></div>
|
|
259
|
+
<div class="text-center">
|
|
260
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">extended-5</span>
|
|
261
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('bg-extended-extended-53', this)">bg-extended-extended-53</code>
|
|
262
|
+
</div>
|
|
263
|
+
</div>
|
|
264
|
+
</div>
|
|
265
|
+
</div>
|
|
266
|
+
`,
|
|
267
|
+
}),
|
|
268
|
+
};
|