@aleph-alpha/ui-library 1.12.0 → 1.14.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 +79 -2
- package/config.d.ts +185 -1
- package/config.js +582 -6
- package/dist/system/index.d.ts +2933 -739
- package/dist/system/lib.js +29220 -25434
- package/package.json +3 -2
- package/src/__tests__/test-utils.ts +46 -0
- package/src/components/UiAccordion/UiAccordion.stories.ts +500 -0
- package/src/components/UiAccordion/UiAccordion.vue +31 -0
- package/src/components/UiAccordion/UiAccordionContent.vue +16 -0
- package/src/components/UiAccordion/UiAccordionItem.vue +16 -0
- package/src/components/UiAccordion/UiAccordionTrigger.vue +23 -0
- package/src/components/UiAccordion/types.ts +94 -0
- package/src/components/UiAlert/UiAlert.stories.ts +199 -0
- package/src/components/UiAlert/UiAlert.vue +27 -0
- package/src/components/UiAlert/UiAlertDescription.vue +13 -0
- package/src/components/UiAlert/UiAlertTitle.vue +13 -0
- package/src/components/UiAlert/types.ts +15 -0
- package/src/components/UiAlertDialog/UiAlertDialog.stories.ts +186 -0
- package/src/components/UiAlertDialog/UiAlertDialog.vue +18 -0
- package/src/components/UiAlertDialog/UiAlertDialogAction.vue +16 -0
- package/src/components/UiAlertDialog/UiAlertDialogCancel.vue +16 -0
- package/src/components/UiAlertDialog/UiAlertDialogContent.vue +26 -0
- package/src/components/UiAlertDialog/UiAlertDialogDescription.vue +16 -0
- package/src/components/UiAlertDialog/UiAlertDialogFooter.vue +13 -0
- package/src/components/UiAlertDialog/UiAlertDialogHeader.vue +16 -0
- package/src/components/UiAlertDialog/UiAlertDialogTitle.vue +16 -0
- package/src/components/UiAlertDialog/UiAlertDialogTrigger.vue +17 -0
- package/src/components/UiAlertDialog/index.ts +10 -0
- package/src/components/UiAlertDialog/types.ts +83 -0
- package/src/components/UiAvatar/UiAvatar.stories.ts +194 -0
- package/src/components/UiAvatar/UiAvatar.vue +13 -0
- package/src/components/UiAvatar/UiAvatarFallback.vue +13 -0
- package/src/components/UiAvatar/UiAvatarImage.vue +14 -0
- package/src/components/UiAvatar/index.ts +4 -0
- package/src/components/UiAvatar/types.ts +20 -0
- package/src/components/UiBadge/UiBadge.stories.ts +373 -0
- package/src/components/UiBadge/UiBadge.vue +21 -0
- package/src/components/UiBadge/__tests__/UiBadge.test.ts +34 -0
- package/src/components/UiBadge/types.ts +47 -0
- package/src/components/UiButton/UiButton.stories.ts +537 -0
- package/src/components/UiButton/UiButton.vue +72 -0
- package/src/components/UiButton/__tests__/UiButton.test.ts +124 -0
- package/src/components/UiButton/types.ts +86 -0
- package/src/components/UiCalendar/UiCalendar.stories.ts +797 -0
- package/src/components/UiCalendar/UiCalendar.vue +67 -0
- package/src/components/UiCalendar/types.ts +235 -0
- package/src/components/UiCard/UiCard.stories.ts +197 -0
- package/src/components/UiCard/UiCard.vue +13 -0
- package/src/components/UiCard/UiCardAction.vue +13 -0
- package/src/components/UiCard/UiCardContent.vue +13 -0
- package/src/components/UiCard/UiCardDescription.vue +13 -0
- package/src/components/UiCard/UiCardFooter.vue +13 -0
- package/src/components/UiCard/UiCardHeader.vue +13 -0
- package/src/components/UiCard/UiCardTitle.vue +13 -0
- package/src/components/UiCard/index.ts +10 -0
- package/src/components/UiCard/types.ts +9 -0
- package/src/components/UiCheckbox/UiCheckbox.stories.ts +231 -0
- package/src/components/UiCheckbox/UiCheckbox.vue +19 -0
- package/src/components/UiCheckbox/types.ts +29 -0
- package/src/components/UiDrawer/UiDrawer.stories.ts +602 -0
- package/src/components/UiDrawer/UiDrawer.vue +19 -0
- package/src/components/UiDrawer/UiDrawerClose.vue +16 -0
- package/src/components/UiDrawer/UiDrawerContent.vue +29 -0
- package/src/components/UiDrawer/UiDrawerDescription.vue +16 -0
- package/src/components/UiDrawer/UiDrawerFooter.vue +16 -0
- package/src/components/UiDrawer/UiDrawerHeader.vue +16 -0
- package/src/components/UiDrawer/UiDrawerTitle.vue +16 -0
- package/src/components/UiDrawer/UiDrawerTrigger.vue +16 -0
- package/src/components/UiDrawer/index.ts +9 -0
- package/src/components/UiDrawer/types.ts +126 -0
- package/src/components/UiDropdownMenu/UiDropdownMenu.stories.ts +760 -0
- package/src/components/UiDropdownMenu/UiDropdownMenu.vue +25 -0
- package/src/components/UiDropdownMenu/UiDropdownMenuCheckboxItem.vue +30 -0
- package/src/components/UiDropdownMenu/UiDropdownMenuContent.vue +27 -0
- package/src/components/UiDropdownMenu/UiDropdownMenuGroup.vue +13 -0
- package/src/components/UiDropdownMenu/UiDropdownMenuItem.vue +26 -0
- package/src/components/UiDropdownMenu/UiDropdownMenuLabel.vue +18 -0
- package/src/components/UiDropdownMenu/UiDropdownMenuRadioGroup.vue +20 -0
- package/src/components/UiDropdownMenu/UiDropdownMenuRadioItem.vue +26 -0
- package/src/components/UiDropdownMenu/UiDropdownMenuSeparator.vue +11 -0
- package/src/components/UiDropdownMenu/UiDropdownMenuShortcut.vue +13 -0
- package/src/components/UiDropdownMenu/UiDropdownMenuSub.vue +26 -0
- package/src/components/UiDropdownMenu/UiDropdownMenuSubContent.vue +23 -0
- package/src/components/UiDropdownMenu/UiDropdownMenuSubTrigger.vue +24 -0
- package/src/components/UiDropdownMenu/UiDropdownMenuTrigger.vue +24 -0
- package/src/components/UiDropdownMenu/types.ts +279 -0
- 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/components/UiField/UiField.stories.ts +1495 -0
- package/src/components/UiField/UiField.vue +18 -0
- package/src/components/UiField/UiFieldContent.vue +13 -0
- package/src/components/UiField/UiFieldDescription.vue +13 -0
- package/src/components/UiField/UiFieldError.vue +20 -0
- package/src/components/UiField/UiFieldGroup.vue +13 -0
- package/src/components/UiField/UiFieldLabel.vue +16 -0
- package/src/components/UiField/UiFieldLegend.vue +13 -0
- package/src/components/UiField/UiFieldSeparator.vue +13 -0
- package/src/components/UiField/UiFieldSet.vue +13 -0
- package/src/components/UiField/UiFieldTitle.vue +13 -0
- package/src/components/UiField/index.ts +11 -0
- package/src/components/UiField/types.ts +52 -0
- package/src/components/UiIcon/UiIcon.stories.ts +140 -0
- package/src/components/UiIcon/UiIcon.vue +67 -0
- package/src/components/UiIcon/types.ts +33 -0
- package/src/components/UiIconButton/UiIconButton.stories.ts +446 -0
- package/src/components/UiIconButton/UiIconButton.vue +63 -0
- package/src/components/UiIconButton/__tests__/UiIconButton.test.ts +95 -0
- package/src/components/UiIconButton/types.ts +66 -0
- package/src/components/UiInput/UiInput.stories.ts +193 -0
- package/src/components/UiInput/UiInput.vue +19 -0
- package/src/components/UiInput/types.ts +30 -0
- 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/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/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/types.ts +109 -0
- package/src/components/UiNavigationMenu/UiNavigationMenu.stories.ts +1196 -0
- package/src/components/UiNavigationMenu/UiNavigationMenu.vue +39 -0
- package/src/components/UiNavigationMenu/UiNavigationMenuContent.vue +25 -0
- package/src/components/UiNavigationMenu/UiNavigationMenuIndicator.vue +14 -0
- package/src/components/UiNavigationMenu/UiNavigationMenuItem.vue +16 -0
- package/src/components/UiNavigationMenu/UiNavigationMenuLink.vue +27 -0
- package/src/components/UiNavigationMenu/UiNavigationMenuList.vue +16 -0
- package/src/components/UiNavigationMenu/UiNavigationMenuTrigger.vue +16 -0
- package/src/components/UiNavigationMenu/__tests__/UiNavigationMenu.test.ts +428 -0
- package/src/components/UiNavigationMenu/index.ts +11 -0
- package/src/components/UiNavigationMenu/types.ts +185 -0
- package/src/components/UiPopover/UiPopover.stories.ts +410 -0
- package/src/components/UiPopover/UiPopover.vue +17 -0
- package/src/components/UiPopover/UiPopoverContent.vue +27 -0
- package/src/components/UiPopover/UiPopoverTrigger.vue +16 -0
- package/src/components/UiPopover/types.ts +98 -0
- package/src/components/UiProgress/UiProgress.stories.ts +92 -0
- package/src/components/UiProgress/UiProgress.vue +25 -0
- package/src/components/UiProgress/types.ts +15 -0
- package/src/components/UiRadioGroup/UiRadioGroup.stories.ts +291 -0
- package/src/components/UiRadioGroup/UiRadioGroup.vue +43 -0
- package/src/components/UiRadioGroup/UiRadioGroupItem.vue +18 -0
- package/src/components/UiRadioGroup/types.ts +71 -0
- package/src/components/UiRangeCalendar/UiRangeCalendar.stories.ts +609 -0
- package/src/components/UiRangeCalendar/UiRangeCalendar.vue +50 -0
- package/src/components/UiRangeCalendar/types.ts +183 -0
- package/src/components/UiSelect/UiSelect.stories.ts +444 -0
- package/src/components/UiSelect/UiSelect.vue +47 -0
- package/src/components/UiSelect/UiSelectContent.vue +30 -0
- package/src/components/UiSelect/UiSelectGroup.vue +13 -0
- package/src/components/UiSelect/UiSelectItem.vue +19 -0
- package/src/components/UiSelect/UiSelectLabel.vue +13 -0
- package/src/components/UiSelect/UiSelectSeparator.vue +11 -0
- package/src/components/UiSelect/UiSelectTrigger.vue +30 -0
- package/src/components/UiSelect/UiSelectValue.vue +18 -0
- package/src/components/UiSelect/types.ts +92 -0
- package/src/components/UiSeparator/UiSeparator.stories.ts +177 -0
- package/src/components/UiSeparator/UiSeparator.vue +17 -0
- package/src/components/UiSeparator/types.ts +22 -0
- package/src/components/UiSheet/UiSheet.stories.ts +715 -0
- package/src/components/UiSheet/__tests__/UiSheet.test.ts +229 -0
- package/src/components/UiSheet/index.ts +12 -0
- package/src/components/UiSheet/types.ts +83 -0
- package/src/components/UiSidebar/UiSidebar.stories.ts +1010 -0
- package/src/components/UiSidebar/UiSidebar.vue +20 -0
- package/src/components/UiSidebar/UiSidebarGroupAction.vue +18 -0
- package/src/components/UiSidebar/UiSidebarGroupLabel.vue +18 -0
- package/src/components/UiSidebar/UiSidebarHeaderTrigger.vue +53 -0
- package/src/components/UiSidebar/UiSidebarInput.vue +14 -0
- package/src/components/UiSidebar/UiSidebarMenuAction.vue +19 -0
- package/src/components/UiSidebar/UiSidebarMenuButton.vue +27 -0
- package/src/components/UiSidebar/UiSidebarMenuSkeleton.vue +16 -0
- package/src/components/UiSidebar/UiSidebarMenuSubButton.vue +24 -0
- package/src/components/UiSidebar/UiSidebarProvider.vue +18 -0
- package/src/components/UiSidebar/UiSidebarSeparator.vue +13 -0
- package/src/components/UiSidebar/__tests__/UiSidebar.test.ts +221 -0
- package/src/components/UiSidebar/index.ts +34 -0
- package/src/components/UiSidebar/types.ts +168 -0
- package/src/components/UiSkeleton/UiSkeleton.stories.ts +247 -0
- package/src/components/UiSkeleton/UiSkeleton.vue +24 -0
- package/src/components/UiSkeleton/types.ts +25 -0
- package/src/components/UiSlider/UiSlider.stories.ts +226 -0
- package/src/components/UiSlider/UiSlider.vue +44 -0
- package/src/components/UiSlider/__tests__/UiSlider.test.ts +76 -0
- package/src/components/UiSlider/index.ts +2 -0
- package/src/components/UiSlider/types.ts +100 -0
- package/src/components/UiSpinner/UiSpinner.stories.ts +143 -0
- package/src/components/UiSpinner/UiSpinner.vue +16 -0
- package/src/components/UiSpinner/types.ts +15 -0
- package/src/components/UiStepper/UiStepper.stories.ts +425 -0
- package/src/components/UiStepper/UiStepper.vue +27 -0
- package/src/components/UiStepper/UiStepperDescription.vue +20 -0
- package/src/components/UiStepper/UiStepperIndicator.vue +13 -0
- package/src/components/UiStepper/UiStepperItem.vue +25 -0
- package/src/components/UiStepper/UiStepperSeparator.vue +17 -0
- package/src/components/UiStepper/UiStepperTitle.vue +19 -0
- package/src/components/UiStepper/UiStepperTrigger.vue +18 -0
- package/src/components/UiStepper/__tests__/UiStepper.test.ts +167 -0
- package/src/components/UiStepper/index.ts +9 -0
- package/src/components/UiStepper/types.ts +65 -0
- package/src/components/UiSwitch/UiSwitch.stories.ts +120 -0
- package/src/components/UiSwitch/UiSwitch.vue +21 -0
- package/src/components/UiSwitch/types.ts +24 -0
- package/src/components/UiTable/UiTable.stories.ts +505 -0
- package/src/components/UiTable/UiTable.vue +13 -0
- package/src/components/UiTable/UiTableBody.vue +13 -0
- package/src/components/UiTable/UiTableCaption.vue +13 -0
- package/src/components/UiTable/UiTableCell.vue +16 -0
- package/src/components/UiTable/UiTableEmpty.vue +18 -0
- package/src/components/UiTable/UiTableFooter.vue +13 -0
- package/src/components/UiTable/UiTableHead.vue +18 -0
- package/src/components/UiTable/UiTableHeader.vue +13 -0
- package/src/components/UiTable/UiTableRow.vue +18 -0
- package/src/components/UiTable/types.ts +67 -0
- package/src/components/UiTabs/UiTabs.stories.ts +475 -0
- package/src/components/UiTabs/UiTabs.vue +31 -0
- package/src/components/UiTabs/UiTabsContent.vue +16 -0
- package/src/components/UiTabs/UiTabsList.vue +16 -0
- package/src/components/UiTabs/UiTabsTrigger.vue +16 -0
- package/src/components/UiTabs/types.ts +67 -0
- 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/types.ts +51 -0
- package/src/components/UiTextarea/UiTextarea.stories.ts +107 -0
- package/src/components/UiTextarea/UiTextarea.vue +19 -0
- package/src/components/UiTextarea/types.ts +29 -0
- package/src/components/UiToggle/UiToggle.stories.ts +370 -0
- package/src/components/UiToggle/UiToggle.vue +28 -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/components/UiTooltip/UiTooltip.stories.ts +550 -0
- package/src/components/UiTooltip/UiTooltip.vue +42 -0
- package/src/components/UiTooltip/index.ts +10 -0
- package/src/components/UiTooltip/types.ts +52 -0
- package/src/components/core/accordion/Accordion.vue +15 -0
- package/src/components/core/accordion/AccordionItem.vue +24 -0
- package/src/components/core/accordion/AccordionTrigger.vue +36 -0
- package/src/components/core/alert/index.ts +24 -0
- package/src/components/core/alert-dialog/AlertDialogAction.vue +18 -0
- package/src/components/core/alert-dialog/AlertDialogCancel.vue +21 -0
- package/src/components/core/alert-dialog/AlertDialogContent.vue +44 -0
- package/src/components/core/badge/index.ts +24 -0
- package/src/components/core/button/index.ts +36 -0
- package/src/components/core/calendar/Calendar.vue +206 -0
- package/src/components/core/calendar/CalendarCellTrigger.vue +44 -0
- package/src/components/core/calendar/CalendarNextButton.vue +33 -0
- package/src/components/core/calendar/CalendarPrevButton.vue +33 -0
- package/src/components/core/card/Card.vue +22 -0
- package/src/components/core/checkbox/Checkbox.vue +38 -0
- package/src/components/core/drawer/DrawerContent.vue +52 -0
- package/src/components/core/dropdown-menu/DropdownMenuCheckboxItem.vue +41 -0
- package/src/components/core/dropdown-menu/DropdownMenuContent.vue +40 -0
- package/src/components/core/dropdown-menu/DropdownMenuItem.vue +41 -0
- package/src/components/core/dropdown-menu/DropdownMenuRadioItem.vue +38 -0
- package/src/components/core/dropdown-menu/DropdownMenuSubContent.vue +29 -0
- package/src/components/core/dropdown-menu/DropdownMenuSubTrigger.vue +31 -0
- package/src/components/core/field/FieldError.vue +69 -0
- package/src/components/core/field/FieldLabel.vue +28 -0
- package/src/components/core/field/FieldSeparator.vue +28 -0
- package/src/components/core/index.ts +4 -0
- package/src/components/core/input/Input.vue +35 -0
- 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/listbox/ListboxItem.vue +32 -0
- package/src/components/core/native-select/NativeSelect.vue +57 -0
- package/src/components/core/native-select/NativeSelectOptGroup.vue +18 -0
- package/src/components/core/native-select/NativeSelectOption.vue +18 -0
- package/src/components/core/navigation-menu/NavigationMenu.vue +40 -0
- package/src/components/core/navigation-menu/NavigationMenuContent.vue +28 -0
- package/src/components/core/navigation-menu/NavigationMenuIndicator.vue +26 -0
- package/src/components/core/navigation-menu/NavigationMenuItem.vue +19 -0
- package/src/components/core/navigation-menu/NavigationMenuLink.vue +27 -0
- package/src/components/core/navigation-menu/NavigationMenuList.vue +21 -0
- package/src/components/core/navigation-menu/NavigationMenuTrigger.vue +27 -0
- package/src/components/core/navigation-menu/NavigationMenuViewport.vue +26 -0
- package/src/components/core/navigation-menu/index.ts +14 -0
- package/src/components/core/popover/PopoverContent.vue +41 -0
- package/src/components/core/radio-group/RadioGroupItem.vue +37 -0
- package/src/components/core/range-calendar/RangeCalendar.vue +73 -0
- package/src/components/core/range-calendar/RangeCalendarCellTrigger.vue +48 -0
- package/src/components/core/range-calendar/RangeCalendarHeading.vue +30 -0
- package/src/components/core/range-calendar/RangeCalendarNextButton.vue +34 -0
- package/src/components/core/range-calendar/RangeCalendarPrevButton.vue +34 -0
- package/src/components/core/select/Select.vue +15 -0
- package/src/components/core/select/SelectContent.vue +55 -0
- package/src/components/core/select/SelectItem.vue +39 -0
- package/src/components/core/select/SelectScrollDownButton.vue +26 -0
- package/src/components/core/select/SelectScrollUpButton.vue +26 -0
- package/src/components/core/select/SelectTrigger.vue +37 -0
- package/src/components/core/sheet/Sheet.vue +15 -0
- package/src/components/core/sheet/SheetClose.vue +12 -0
- package/src/components/core/sheet/SheetContent.vue +56 -0
- package/src/components/core/sheet/SheetDescription.vue +19 -0
- package/src/components/core/sheet/SheetFooter.vue +9 -0
- package/src/components/core/sheet/SheetHeader.vue +9 -0
- package/src/components/core/sheet/SheetOverlay.vue +24 -0
- package/src/components/core/sheet/SheetTitle.vue +19 -0
- package/src/components/core/sheet/SheetTrigger.vue +12 -0
- package/src/components/core/sheet/index.ts +8 -0
- package/src/components/core/sidebar/Sidebar.vue +105 -0
- package/src/components/core/sidebar/SidebarContent.vue +21 -0
- package/src/components/core/sidebar/SidebarFooter.vue +16 -0
- package/src/components/core/sidebar/SidebarGroup.vue +16 -0
- package/src/components/core/sidebar/SidebarGroupAction.vue +25 -0
- package/src/components/core/sidebar/SidebarGroupContent.vue +16 -0
- package/src/components/core/sidebar/SidebarGroupLabel.vue +23 -0
- package/src/components/core/sidebar/SidebarHeader.vue +16 -0
- package/src/components/core/sidebar/SidebarInput.vue +17 -0
- package/src/components/core/sidebar/SidebarInset.vue +21 -0
- package/src/components/core/sidebar/SidebarMenu.vue +16 -0
- package/src/components/core/sidebar/SidebarMenuAction.vue +33 -0
- package/src/components/core/sidebar/SidebarMenuBadge.vue +26 -0
- package/src/components/core/sidebar/SidebarMenuButton.vue +49 -0
- package/src/components/core/sidebar/SidebarMenuButtonChild.vue +36 -0
- package/src/components/core/sidebar/SidebarMenuItem.vue +16 -0
- package/src/components/core/sidebar/SidebarMenuSkeleton.vue +32 -0
- package/src/components/core/sidebar/SidebarMenuSub.vue +22 -0
- package/src/components/core/sidebar/SidebarMenuSubButton.vue +38 -0
- package/src/components/core/sidebar/SidebarMenuSubItem.vue +16 -0
- package/src/components/core/sidebar/SidebarProvider.vue +102 -0
- package/src/components/core/sidebar/SidebarRail.vue +33 -0
- package/src/components/core/sidebar/SidebarSeparator.vue +17 -0
- package/src/components/core/sidebar/SidebarTrigger.vue +25 -0
- package/src/components/core/sidebar/index.ts +58 -0
- package/src/components/core/sidebar/utils.ts +19 -0
- package/src/components/core/spinner/Spinner.vue +19 -0
- package/src/components/core/stepper/Stepper.vue +20 -0
- package/src/components/core/stepper/StepperDescription.vue +23 -0
- package/src/components/core/stepper/StepperIndicator.vue +34 -0
- package/src/components/core/stepper/StepperItem.vue +23 -0
- package/src/components/core/stepper/StepperSeparator.vue +29 -0
- package/src/components/core/stepper/StepperTitle.vue +24 -0
- package/src/components/core/stepper/StepperTrigger.vue +22 -0
- package/src/components/core/stepper/index.ts +7 -0
- package/src/components/core/switch/Switch.vue +40 -0
- package/src/components/core/table/TableRow.vue +24 -0
- package/src/components/core/tabs/Tabs.vue +24 -0
- package/src/components/core/tabs/TabsTrigger.vue +28 -0
- package/src/components/core/tags-input/TagsInput.vue +33 -0
- package/src/components/core/textarea/Textarea.vue +33 -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/components/core/tooltip/TooltipContent.vue +40 -0
- package/src/components/index.ts +45 -0
- package/src/index.ts +6 -10
- package/src/patterns/UiDataTable/UiDataTable.stories.ts +1577 -0
- package/src/patterns/UiDataTable/UiDataTable.vue +129 -0
- package/src/patterns/UiDataTable/UiDataTableColumnHeader.vue +96 -0
- package/src/patterns/UiDataTable/UiDataTablePagination.vue +119 -0
- package/src/patterns/UiDataTable/UiDataTableToolbar.vue +60 -0
- package/src/patterns/UiDataTable/__tests__/UiDataTable.test.ts +372 -0
- package/src/patterns/UiDataTable/types.ts +116 -0
- package/src/patterns/UiDatePicker/UiDatePicker.stories.ts +976 -0
- package/src/patterns/UiDatePicker/UiDatePicker.vue +193 -0
- package/src/patterns/UiDatePicker/types.ts +219 -0
- package/src/patterns/UiPlaceholder/types.ts +7 -0
- 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 +274 -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 +11389 -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/UiDataTable.stories.ts +0 -1574
- package/src/compositions/UiDataTable/UiDataTable.vue +0 -129
- package/src/compositions/UiDataTable/UiDataTableColumnHeader.vue +0 -111
- package/src/compositions/UiDataTable/UiDataTablePagination.vue +0 -147
- package/src/compositions/UiDataTable/UiDataTableToolbar.vue +0 -85
- package/src/compositions/UiDataTable/__tests__/UiDataTable.test.ts +0 -372
- package/src/compositions/UiDataTable/types.ts +0 -39
- package/src/compositions/UiDatePicker/UiDatePicker.stories.ts +0 -976
- package/src/compositions/UiDatePicker/UiDatePicker.vue +0 -193
- package/src/compositions/UiDatePicker/types.ts +0 -220
- package/src/compositions/index.ts +0 -8
- package/src/foundations/UiPlaceholder/types.ts +0 -8
- package/src/foundations/index.ts +0 -6
- package/src/primitives/UiAccordion/UiAccordion.stories.ts +0 -476
- package/src/primitives/UiAccordion/UiAccordion.vue +0 -31
- package/src/primitives/UiAccordion/UiAccordionContent.vue +0 -16
- package/src/primitives/UiAccordion/UiAccordionItem.vue +0 -16
- package/src/primitives/UiAccordion/UiAccordionTrigger.vue +0 -23
- package/src/primitives/UiAccordion/types.ts +0 -95
- package/src/primitives/UiAlert/UiAlert.stories.ts +0 -199
- package/src/primitives/UiAlert/UiAlert.vue +0 -27
- package/src/primitives/UiAlert/UiAlertDescription.vue +0 -13
- package/src/primitives/UiAlert/UiAlertTitle.vue +0 -13
- package/src/primitives/UiAlert/types.ts +0 -14
- package/src/primitives/UiAlertDialog/UiAlertDialog.stories.ts +0 -186
- package/src/primitives/UiAlertDialog/UiAlertDialog.vue +0 -18
- package/src/primitives/UiAlertDialog/UiAlertDialogAction.vue +0 -16
- package/src/primitives/UiAlertDialog/UiAlertDialogCancel.vue +0 -16
- package/src/primitives/UiAlertDialog/UiAlertDialogContent.vue +0 -26
- package/src/primitives/UiAlertDialog/UiAlertDialogDescription.vue +0 -16
- package/src/primitives/UiAlertDialog/UiAlertDialogFooter.vue +0 -13
- package/src/primitives/UiAlertDialog/UiAlertDialogHeader.vue +0 -16
- package/src/primitives/UiAlertDialog/UiAlertDialogTitle.vue +0 -16
- package/src/primitives/UiAlertDialog/UiAlertDialogTrigger.vue +0 -17
- package/src/primitives/UiAlertDialog/index.ts +0 -9
- package/src/primitives/UiAlertDialog/types.ts +0 -83
- package/src/primitives/UiAvatar/UiAvatar.stories.ts +0 -194
- package/src/primitives/UiAvatar/UiAvatar.vue +0 -13
- package/src/primitives/UiAvatar/UiAvatarFallback.vue +0 -13
- package/src/primitives/UiAvatar/UiAvatarImage.vue +0 -14
- package/src/primitives/UiAvatar/index.ts +0 -3
- package/src/primitives/UiAvatar/types.ts +0 -17
- package/src/primitives/UiBadge/UiBadge.stories.ts +0 -373
- package/src/primitives/UiBadge/UiBadge.vue +0 -21
- package/src/primitives/UiBadge/__tests__/UiBadge.test.ts +0 -44
- package/src/primitives/UiBadge/types.ts +0 -48
- package/src/primitives/UiButton/UiButton.stories.ts +0 -537
- package/src/primitives/UiButton/UiButton.vue +0 -72
- package/src/primitives/UiButton/__tests__/UiButton.test.ts +0 -133
- package/src/primitives/UiButton/types.ts +0 -87
- package/src/primitives/UiCalendar/UiCalendar.stories.ts +0 -797
- package/src/primitives/UiCalendar/UiCalendar.vue +0 -67
- package/src/primitives/UiCalendar/types.ts +0 -236
- package/src/primitives/UiCard/UiCard.stories.ts +0 -197
- package/src/primitives/UiCard/UiCard.vue +0 -13
- package/src/primitives/UiCard/UiCardAction.vue +0 -13
- package/src/primitives/UiCard/UiCardContent.vue +0 -13
- package/src/primitives/UiCard/UiCardDescription.vue +0 -13
- package/src/primitives/UiCard/UiCardFooter.vue +0 -13
- package/src/primitives/UiCard/UiCardHeader.vue +0 -13
- package/src/primitives/UiCard/UiCardTitle.vue +0 -13
- package/src/primitives/UiCard/index.ts +0 -7
- package/src/primitives/UiCard/types.ts +0 -10
- package/src/primitives/UiCheckbox/UiCheckbox.stories.ts +0 -231
- package/src/primitives/UiCheckbox/UiCheckbox.vue +0 -19
- package/src/primitives/UiCheckbox/types.ts +0 -30
- package/src/primitives/UiDrawer/UiDrawer.stories.ts +0 -602
- package/src/primitives/UiDrawer/UiDrawer.vue +0 -19
- package/src/primitives/UiDrawer/UiDrawerClose.vue +0 -16
- package/src/primitives/UiDrawer/UiDrawerContent.vue +0 -29
- package/src/primitives/UiDrawer/UiDrawerDescription.vue +0 -16
- package/src/primitives/UiDrawer/UiDrawerFooter.vue +0 -16
- package/src/primitives/UiDrawer/UiDrawerHeader.vue +0 -16
- package/src/primitives/UiDrawer/UiDrawerTitle.vue +0 -16
- package/src/primitives/UiDrawer/UiDrawerTrigger.vue +0 -16
- package/src/primitives/UiDrawer/index.ts +0 -8
- package/src/primitives/UiDrawer/types.ts +0 -96
- package/src/primitives/UiDropdownMenu/UiDropdownMenu.stories.ts +0 -760
- package/src/primitives/UiDropdownMenu/UiDropdownMenu.vue +0 -25
- package/src/primitives/UiDropdownMenu/UiDropdownMenuCheckboxItem.vue +0 -29
- package/src/primitives/UiDropdownMenu/UiDropdownMenuContent.vue +0 -27
- package/src/primitives/UiDropdownMenu/UiDropdownMenuGroup.vue +0 -13
- package/src/primitives/UiDropdownMenu/UiDropdownMenuItem.vue +0 -26
- package/src/primitives/UiDropdownMenu/UiDropdownMenuLabel.vue +0 -18
- package/src/primitives/UiDropdownMenu/UiDropdownMenuRadioGroup.vue +0 -20
- package/src/primitives/UiDropdownMenu/UiDropdownMenuRadioItem.vue +0 -26
- package/src/primitives/UiDropdownMenu/UiDropdownMenuSeparator.vue +0 -11
- package/src/primitives/UiDropdownMenu/UiDropdownMenuShortcut.vue +0 -13
- package/src/primitives/UiDropdownMenu/UiDropdownMenuSub.vue +0 -26
- package/src/primitives/UiDropdownMenu/UiDropdownMenuSubContent.vue +0 -23
- package/src/primitives/UiDropdownMenu/UiDropdownMenuSubTrigger.vue +0 -24
- package/src/primitives/UiDropdownMenu/UiDropdownMenuTrigger.vue +0 -24
- package/src/primitives/UiDropdownMenu/types.ts +0 -219
- package/src/primitives/UiField/UiField.stories.ts +0 -1496
- package/src/primitives/UiField/UiField.vue +0 -18
- package/src/primitives/UiField/UiFieldContent.vue +0 -13
- package/src/primitives/UiField/UiFieldDescription.vue +0 -13
- package/src/primitives/UiField/UiFieldError.vue +0 -20
- package/src/primitives/UiField/UiFieldGroup.vue +0 -13
- package/src/primitives/UiField/UiFieldLabel.vue +0 -16
- package/src/primitives/UiField/UiFieldLegend.vue +0 -13
- package/src/primitives/UiField/UiFieldSeparator.vue +0 -13
- package/src/primitives/UiField/UiFieldSet.vue +0 -13
- package/src/primitives/UiField/UiFieldTitle.vue +0 -13
- package/src/primitives/UiField/index.ts +0 -10
- package/src/primitives/UiField/types.ts +0 -47
- package/src/primitives/UiIcon/UiIcon.stories.ts +0 -141
- package/src/primitives/UiIcon/UiIcon.vue +0 -52
- package/src/primitives/UiIcon/types.ts +0 -42
- package/src/primitives/UiIconButton/UiIconButton.stories.ts +0 -446
- package/src/primitives/UiIconButton/UiIconButton.vue +0 -63
- package/src/primitives/UiIconButton/__tests__/UiIconButton.test.ts +0 -102
- package/src/primitives/UiIconButton/types.ts +0 -67
- package/src/primitives/UiInput/UiInput.stories.ts +0 -193
- package/src/primitives/UiInput/UiInput.vue +0 -19
- package/src/primitives/UiInput/types.ts +0 -31
- package/src/primitives/UiKbd/UiKbd.stories.ts +0 -551
- package/src/primitives/UiKbd/UiKbd.vue +0 -62
- package/src/primitives/UiKbd/UiKbdGroup.vue +0 -16
- package/src/primitives/UiKbd/types.ts +0 -32
- package/src/primitives/UiLabel/UiLabel.stories.ts +0 -192
- package/src/primitives/UiLabel/UiLabel.vue +0 -16
- package/src/primitives/UiLabel/types.ts +0 -16
- package/src/primitives/UiListbox/UiListbox.stories.ts +0 -607
- package/src/primitives/UiListbox/UiListbox.vue +0 -30
- package/src/primitives/UiListbox/UiListboxContent.vue +0 -16
- package/src/primitives/UiListbox/UiListboxFilter.vue +0 -16
- package/src/primitives/UiListbox/UiListboxGroup.vue +0 -16
- package/src/primitives/UiListbox/UiListboxGroupLabel.vue +0 -16
- package/src/primitives/UiListbox/UiListboxItem.vue +0 -20
- package/src/primitives/UiListbox/UiListboxItemIndicator.vue +0 -16
- package/src/primitives/UiListbox/types.ts +0 -119
- package/src/primitives/UiPopover/UiPopover.stories.ts +0 -394
- package/src/primitives/UiPopover/UiPopover.vue +0 -17
- package/src/primitives/UiPopover/UiPopoverContent.vue +0 -27
- package/src/primitives/UiPopover/UiPopoverTrigger.vue +0 -16
- package/src/primitives/UiPopover/types.ts +0 -86
- package/src/primitives/UiProgress/UiProgress.stories.ts +0 -92
- package/src/primitives/UiProgress/UiProgress.vue +0 -25
- package/src/primitives/UiProgress/types.ts +0 -16
- package/src/primitives/UiRadioGroup/UiRadioGroup.stories.ts +0 -291
- package/src/primitives/UiRadioGroup/UiRadioGroup.vue +0 -43
- package/src/primitives/UiRadioGroup/UiRadioGroupItem.vue +0 -18
- package/src/primitives/UiRadioGroup/types.ts +0 -66
- package/src/primitives/UiRangeCalendar/UiRangeCalendar.stories.ts +0 -609
- package/src/primitives/UiRangeCalendar/UiRangeCalendar.vue +0 -50
- package/src/primitives/UiRangeCalendar/types.ts +0 -184
- package/src/primitives/UiSelect/UiSelect.stories.ts +0 -425
- package/src/primitives/UiSelect/UiSelect.vue +0 -47
- package/src/primitives/UiSelect/UiSelectContent.vue +0 -30
- package/src/primitives/UiSelect/UiSelectGroup.vue +0 -13
- package/src/primitives/UiSelect/UiSelectItem.vue +0 -19
- package/src/primitives/UiSelect/UiSelectLabel.vue +0 -13
- package/src/primitives/UiSelect/UiSelectSeparator.vue +0 -11
- package/src/primitives/UiSelect/UiSelectTrigger.vue +0 -30
- package/src/primitives/UiSelect/UiSelectValue.vue +0 -18
- package/src/primitives/UiSelect/types.ts +0 -93
- package/src/primitives/UiSeparator/UiSeparator.stories.ts +0 -177
- package/src/primitives/UiSeparator/UiSeparator.vue +0 -17
- package/src/primitives/UiSeparator/types.ts +0 -23
- package/src/primitives/UiSkeleton/UiSkeleton.stories.ts +0 -247
- package/src/primitives/UiSkeleton/UiSkeleton.vue +0 -24
- package/src/primitives/UiSkeleton/types.ts +0 -26
- package/src/primitives/UiSlider/UiSlider.stories.ts +0 -226
- package/src/primitives/UiSlider/UiSlider.vue +0 -44
- package/src/primitives/UiSlider/__tests__/UiSlider.test.ts +0 -76
- package/src/primitives/UiSlider/index.ts +0 -1
- package/src/primitives/UiSlider/types.ts +0 -101
- package/src/primitives/UiSpinner/UiSpinner.stories.ts +0 -143
- package/src/primitives/UiSpinner/UiSpinner.vue +0 -16
- package/src/primitives/UiSpinner/types.ts +0 -16
- package/src/primitives/UiSwitch/UiSwitch.stories.ts +0 -120
- package/src/primitives/UiSwitch/UiSwitch.vue +0 -21
- package/src/primitives/UiSwitch/types.ts +0 -25
- package/src/primitives/UiTable/UiTable.stories.ts +0 -505
- package/src/primitives/UiTable/UiTable.vue +0 -13
- package/src/primitives/UiTable/UiTableBody.vue +0 -13
- package/src/primitives/UiTable/UiTableCaption.vue +0 -13
- package/src/primitives/UiTable/UiTableCell.vue +0 -16
- package/src/primitives/UiTable/UiTableEmpty.vue +0 -18
- package/src/primitives/UiTable/UiTableFooter.vue +0 -13
- package/src/primitives/UiTable/UiTableHead.vue +0 -18
- package/src/primitives/UiTable/UiTableHeader.vue +0 -13
- package/src/primitives/UiTable/UiTableRow.vue +0 -18
- package/src/primitives/UiTable/types.ts +0 -68
- package/src/primitives/UiTabs/UiTabs.stories.ts +0 -456
- package/src/primitives/UiTabs/UiTabs.vue +0 -31
- package/src/primitives/UiTabs/UiTabsContent.vue +0 -16
- package/src/primitives/UiTabs/UiTabsList.vue +0 -16
- package/src/primitives/UiTabs/UiTabsTrigger.vue +0 -16
- package/src/primitives/UiTabs/types.ts +0 -68
- package/src/primitives/UiTagsInput/UiTagsInput.stories.ts +0 -538
- package/src/primitives/UiTagsInput/UiTagsInput.vue +0 -27
- package/src/primitives/UiTagsInput/UiTagsInputInput.vue +0 -14
- package/src/primitives/UiTagsInput/UiTagsInputItem.vue +0 -16
- package/src/primitives/UiTagsInput/UiTagsInputItemDelete.vue +0 -16
- package/src/primitives/UiTagsInput/UiTagsInputItemText.vue +0 -14
- package/src/primitives/UiTagsInput/types.ts +0 -60
- package/src/primitives/UiTextarea/UiTextarea.stories.ts +0 -107
- package/src/primitives/UiTextarea/UiTextarea.vue +0 -19
- package/src/primitives/UiTextarea/types.ts +0 -30
- package/src/primitives/UiToggle/UiToggle.stories.ts +0 -370
- package/src/primitives/UiToggle/UiToggle.vue +0 -28
- package/src/primitives/UiToggle/types.ts +0 -35
- package/src/primitives/UiTooltip/UiTooltip.stories.ts +0 -550
- package/src/primitives/UiTooltip/UiTooltip.vue +0 -42
- package/src/primitives/UiTooltip/index.ts +0 -2
- package/src/primitives/UiTooltip/types.ts +0 -53
- package/src/primitives/index.ts +0 -40
- package/src/primitives/shadcn/accordion/Accordion.vue +0 -15
- package/src/primitives/shadcn/accordion/AccordionItem.vue +0 -24
- package/src/primitives/shadcn/accordion/AccordionTrigger.vue +0 -36
- package/src/primitives/shadcn/alert/index.ts +0 -24
- package/src/primitives/shadcn/alert-dialog/AlertDialogAction.vue +0 -18
- package/src/primitives/shadcn/alert-dialog/AlertDialogCancel.vue +0 -21
- package/src/primitives/shadcn/alert-dialog/AlertDialogContent.vue +0 -44
- package/src/primitives/shadcn/badge/index.ts +0 -24
- package/src/primitives/shadcn/button/index.ts +0 -36
- package/src/primitives/shadcn/calendar/Calendar.vue +0 -206
- package/src/primitives/shadcn/calendar/CalendarCellTrigger.vue +0 -44
- package/src/primitives/shadcn/calendar/CalendarNextButton.vue +0 -33
- package/src/primitives/shadcn/calendar/CalendarPrevButton.vue +0 -33
- package/src/primitives/shadcn/card/Card.vue +0 -22
- package/src/primitives/shadcn/checkbox/Checkbox.vue +0 -38
- package/src/primitives/shadcn/drawer/DrawerContent.vue +0 -52
- package/src/primitives/shadcn/dropdown-menu/DropdownMenuCheckboxItem.vue +0 -41
- package/src/primitives/shadcn/dropdown-menu/DropdownMenuContent.vue +0 -40
- package/src/primitives/shadcn/dropdown-menu/DropdownMenuItem.vue +0 -41
- package/src/primitives/shadcn/dropdown-menu/DropdownMenuRadioItem.vue +0 -38
- package/src/primitives/shadcn/dropdown-menu/DropdownMenuSubContent.vue +0 -29
- package/src/primitives/shadcn/dropdown-menu/DropdownMenuSubTrigger.vue +0 -31
- package/src/primitives/shadcn/field/FieldError.vue +0 -69
- package/src/primitives/shadcn/field/FieldLabel.vue +0 -28
- package/src/primitives/shadcn/field/FieldSeparator.vue +0 -28
- package/src/primitives/shadcn/index.ts +0 -3
- package/src/primitives/shadcn/input/Input.vue +0 -35
- package/src/primitives/shadcn/listbox/ListboxItem.vue +0 -32
- package/src/primitives/shadcn/native-select/NativeSelect.vue +0 -57
- package/src/primitives/shadcn/native-select/NativeSelectOptGroup.vue +0 -18
- package/src/primitives/shadcn/native-select/NativeSelectOption.vue +0 -18
- package/src/primitives/shadcn/popover/PopoverContent.vue +0 -41
- package/src/primitives/shadcn/radio-group/RadioGroupItem.vue +0 -38
- package/src/primitives/shadcn/range-calendar/RangeCalendar.vue +0 -73
- package/src/primitives/shadcn/range-calendar/RangeCalendarCellTrigger.vue +0 -46
- package/src/primitives/shadcn/range-calendar/RangeCalendarHeading.vue +0 -30
- package/src/primitives/shadcn/range-calendar/RangeCalendarNextButton.vue +0 -34
- package/src/primitives/shadcn/range-calendar/RangeCalendarPrevButton.vue +0 -34
- package/src/primitives/shadcn/select/Select.vue +0 -15
- package/src/primitives/shadcn/select/SelectContent.vue +0 -55
- package/src/primitives/shadcn/select/SelectItem.vue +0 -39
- package/src/primitives/shadcn/select/SelectScrollDownButton.vue +0 -26
- package/src/primitives/shadcn/select/SelectScrollUpButton.vue +0 -26
- package/src/primitives/shadcn/select/SelectTrigger.vue +0 -37
- package/src/primitives/shadcn/spinner/Spinner.vue +0 -19
- package/src/primitives/shadcn/switch/Switch.vue +0 -40
- package/src/primitives/shadcn/table/TableRow.vue +0 -21
- package/src/primitives/shadcn/tabs/Tabs.vue +0 -24
- package/src/primitives/shadcn/tabs/TabsTrigger.vue +0 -28
- package/src/primitives/shadcn/tags-input/TagsInput.vue +0 -33
- package/src/primitives/shadcn/textarea/Textarea.vue +0 -33
- package/src/primitives/shadcn/toggle/index.ts +0 -27
- package/src/primitives/shadcn/tooltip/TooltipContent.vue +0 -40
- /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}/UiIcon/__tests__/UiIcon.test.ts +0 -0
- /package/src/{primitives → components}/UiIcon/index.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}/UiKbd/__tests__/UiKbd.test.ts +0 -0
- /package/src/{primitives → components}/UiKbd/index.ts +0 -0
- /package/src/{primitives → components}/UiLabel/__tests__/UiLabel.test.ts +0 -0
- /package/src/{primitives → components}/UiLabel/index.ts +0 -0
- /package/src/{primitives → components}/UiListbox/__tests__/UiListbox.test.ts +0 -0
- /package/src/{primitives → components}/UiListbox/index.ts +0 -0
- /package/src/{primitives → components}/UiPopover/__tests__/UiPopover.test.ts +0 -0
- /package/src/{primitives → components}/UiPopover/index.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}/UiSeparator/__tests__/UiSeparator.test.ts +0 -0
- /package/src/{primitives → components}/UiSeparator/index.ts +0 -0
- /package/src/{primitives → components}/UiSkeleton/__tests__/UiSkeleton.test.ts +0 -0
- /package/src/{primitives → components}/UiSkeleton/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}/UiTagsInput/__tests__/UiTagsInput.test.ts +0 -0
- /package/src/{primitives → components}/UiTagsInput/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}/UiToggle/__tests__/UiToggle.test.ts +0 -0
- /package/src/{primitives → components}/UiToggle/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/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/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}/kbd/Kbd.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/kbd/KbdGroup.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/kbd/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}/listbox/Listbox.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/listbox/ListboxContent.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/listbox/ListboxFilter.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/listbox/ListboxGroup.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/listbox/ListboxGroupLabel.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/listbox/ListboxItemIndicator.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/listbox/index.ts +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/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/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}/skeleton/Skeleton.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/skeleton/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}/tags-input/TagsInputInput.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/tags-input/TagsInputItem.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/tags-input/TagsInputItemDelete.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/tags-input/TagsInputItemText.vue +0 -0
- /package/src/{primitives/shadcn → components/core}/tags-input/index.ts +0 -0
- /package/src/{primitives/shadcn → components/core}/textarea/index.ts +0 -0
- /package/src/{primitives/shadcn → components/core}/toggle/Toggle.vue +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,309 @@
|
|
|
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/Content',
|
|
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
|
+
* Text colors for content displayed on surface backgrounds.
|
|
34
|
+
* Use these for headings, body text, links, and UI labels on standard backgrounds.
|
|
35
|
+
* Includes primary, secondary, tertiary, muted, link, and inverse variants.
|
|
36
|
+
*/
|
|
37
|
+
export const OnSurface: Story = {
|
|
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">on-surface</h2>
|
|
51
|
+
<p class="text-sm text-content-on-surface-muted">Text colors for content on surface backgrounds. Click class name to copy.</p>
|
|
52
|
+
</div>
|
|
53
|
+
|
|
54
|
+
<div class="flex flex-wrap gap-6">
|
|
55
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
56
|
+
<div class="w-16 h-16 rounded-md bg-background-surface-secondary border border-border-surface-default flex items-center justify-center">
|
|
57
|
+
<span class="text-content-on-surface-primary text-2xl font-bold">Aa</span>
|
|
58
|
+
</div>
|
|
59
|
+
<div class="text-center">
|
|
60
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">primary</span>
|
|
61
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('text-content-on-surface-primary', this)">text-content-on-surface-primary</code>
|
|
62
|
+
</div>
|
|
63
|
+
</div>
|
|
64
|
+
|
|
65
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
66
|
+
<div class="w-16 h-16 rounded-md bg-background-surface-secondary border border-border-surface-default flex items-center justify-center">
|
|
67
|
+
<span class="text-content-on-surface-secondary text-2xl font-bold">Aa</span>
|
|
68
|
+
</div>
|
|
69
|
+
<div class="text-center">
|
|
70
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">secondary</span>
|
|
71
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('text-content-on-surface-secondary', this)">text-content-on-surface-secondary</code>
|
|
72
|
+
</div>
|
|
73
|
+
</div>
|
|
74
|
+
|
|
75
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
76
|
+
<div class="w-16 h-16 rounded-md bg-background-surface-secondary border border-border-surface-default flex items-center justify-center">
|
|
77
|
+
<span class="text-content-on-surface-tertiary text-2xl font-bold">Aa</span>
|
|
78
|
+
</div>
|
|
79
|
+
<div class="text-center">
|
|
80
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">tertiary</span>
|
|
81
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('text-content-on-surface-tertiary', this)">text-content-on-surface-tertiary</code>
|
|
82
|
+
</div>
|
|
83
|
+
</div>
|
|
84
|
+
|
|
85
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
86
|
+
<div class="w-16 h-16 rounded-md bg-background-surface-secondary border border-border-surface-default flex items-center justify-center">
|
|
87
|
+
<span class="text-content-on-surface-muted text-2xl font-bold">Aa</span>
|
|
88
|
+
</div>
|
|
89
|
+
<div class="text-center">
|
|
90
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">muted</span>
|
|
91
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('text-content-on-surface-muted', this)">text-content-on-surface-muted</code>
|
|
92
|
+
</div>
|
|
93
|
+
</div>
|
|
94
|
+
|
|
95
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
96
|
+
<div class="w-16 h-16 rounded-md bg-background-surface-secondary border border-border-surface-default flex items-center justify-center">
|
|
97
|
+
<span class="text-content-on-surface-link text-2xl font-bold">Aa</span>
|
|
98
|
+
</div>
|
|
99
|
+
<div class="text-center">
|
|
100
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">link</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('text-content-on-surface-link', this)">text-content-on-surface-link</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-inverse border border-border-surface-default flex items-center justify-center">
|
|
107
|
+
<span class="text-content-on-surface-inverse text-2xl font-bold">Aa</span>
|
|
108
|
+
</div>
|
|
109
|
+
<div class="text-center">
|
|
110
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">inverse</span>
|
|
111
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('text-content-on-surface-inverse', this)">text-content-on-surface-inverse</code>
|
|
112
|
+
</div>
|
|
113
|
+
</div>
|
|
114
|
+
</div>
|
|
115
|
+
</div>
|
|
116
|
+
`,
|
|
117
|
+
}),
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Text colors for button labels and icons.
|
|
122
|
+
* Use these to ensure proper contrast on primary, secondary, no-fill, and danger button backgrounds.
|
|
123
|
+
*/
|
|
124
|
+
export const OnButton: Story = {
|
|
125
|
+
render: () => ({
|
|
126
|
+
template: `
|
|
127
|
+
<div class="p-8 bg-white dark:bg-background min-h-screen">
|
|
128
|
+
<style>
|
|
129
|
+
.copy-btn { cursor: pointer; transition: all 0.15s; }
|
|
130
|
+
.copy-btn:hover { background: rgba(0,0,0,0.05); }
|
|
131
|
+
.copy-btn.copied { background: #22c55e22; }
|
|
132
|
+
.copy-btn.copied::after { content: ' ✓'; color: #22c55e; }
|
|
133
|
+
</style>
|
|
134
|
+
<script>${copyScript}</script>
|
|
135
|
+
|
|
136
|
+
<div class="mb-6">
|
|
137
|
+
<h2 class="text-xl font-bold text-content-on-surface-primary mb-1">on-button</h2>
|
|
138
|
+
<p class="text-sm text-content-on-surface-muted">Text colors for content on button backgrounds. Click class name to copy.</p>
|
|
139
|
+
</div>
|
|
140
|
+
|
|
141
|
+
<div class="flex flex-wrap gap-6">
|
|
142
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
143
|
+
<div class="w-16 h-16 rounded-md bg-background-button-primary-button border border-border-surface-default flex items-center justify-center">
|
|
144
|
+
<span class="text-content-on-button-primary-button text-2xl font-bold">Aa</span>
|
|
145
|
+
</div>
|
|
146
|
+
<div class="text-center">
|
|
147
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">primary-button</span>
|
|
148
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('text-content-on-button-primary-button', this)">text-content-on-button-primary-button</code>
|
|
149
|
+
</div>
|
|
150
|
+
</div>
|
|
151
|
+
|
|
152
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
153
|
+
<div class="w-16 h-16 rounded-md bg-background-button-secondary-button border border-border-surface-default flex items-center justify-center">
|
|
154
|
+
<span class="text-content-on-button-secondary-button text-2xl font-bold">Aa</span>
|
|
155
|
+
</div>
|
|
156
|
+
<div class="text-center">
|
|
157
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">secondary-button</span>
|
|
158
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('text-content-on-button-secondary-button', this)">text-content-on-button-secondary-button</code>
|
|
159
|
+
</div>
|
|
160
|
+
</div>
|
|
161
|
+
|
|
162
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
163
|
+
<div class="w-16 h-16 rounded-md bg-background-surface-secondary border border-border-surface-default flex items-center justify-center">
|
|
164
|
+
<span class="text-content-on-button-no-fill-button text-2xl font-bold">Aa</span>
|
|
165
|
+
</div>
|
|
166
|
+
<div class="text-center">
|
|
167
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">no-fill-button</span>
|
|
168
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('text-content-on-button-no-fill-button', this)">text-content-on-button-no-fill-button</code>
|
|
169
|
+
</div>
|
|
170
|
+
</div>
|
|
171
|
+
|
|
172
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
173
|
+
<div class="w-16 h-16 rounded-md bg-background-button-danger-button border border-border-surface-default flex items-center justify-center">
|
|
174
|
+
<span class="text-content-on-button-danger-button text-2xl font-bold">Aa</span>
|
|
175
|
+
</div>
|
|
176
|
+
<div class="text-center">
|
|
177
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">danger-button</span>
|
|
178
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('text-content-on-button-danger-button', this)">text-content-on-button-danger-button</code>
|
|
179
|
+
</div>
|
|
180
|
+
</div>
|
|
181
|
+
</div>
|
|
182
|
+
</div>
|
|
183
|
+
`,
|
|
184
|
+
}),
|
|
185
|
+
};
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Text colors for content on accent-colored backgrounds.
|
|
189
|
+
* Use these for badges, chips, highlights, or selected states with accent backgrounds.
|
|
190
|
+
*/
|
|
191
|
+
export const OnAccent: Story = {
|
|
192
|
+
render: () => ({
|
|
193
|
+
template: `
|
|
194
|
+
<div class="p-8 bg-white dark:bg-background min-h-screen">
|
|
195
|
+
<style>
|
|
196
|
+
.copy-btn { cursor: pointer; transition: all 0.15s; }
|
|
197
|
+
.copy-btn:hover { background: rgba(0,0,0,0.05); }
|
|
198
|
+
.copy-btn.copied { background: #22c55e22; }
|
|
199
|
+
.copy-btn.copied::after { content: ' ✓'; color: #22c55e; }
|
|
200
|
+
</style>
|
|
201
|
+
<script>${copyScript}</script>
|
|
202
|
+
|
|
203
|
+
<div class="mb-6">
|
|
204
|
+
<h2 class="text-xl font-bold text-content-on-surface-primary mb-1">on-accent</h2>
|
|
205
|
+
<p class="text-sm text-content-on-surface-muted">Text colors for content on accent backgrounds. Click class name to copy.</p>
|
|
206
|
+
</div>
|
|
207
|
+
|
|
208
|
+
<div class="flex flex-wrap gap-6">
|
|
209
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
210
|
+
<div class="w-16 h-16 rounded-md bg-background-accent-default border border-border-surface-default flex items-center justify-center">
|
|
211
|
+
<span class="text-content-on-accent-default text-2xl font-bold">Aa</span>
|
|
212
|
+
</div>
|
|
213
|
+
<div class="text-center">
|
|
214
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">default</span>
|
|
215
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('text-content-on-accent-default', this)">text-content-on-accent-default</code>
|
|
216
|
+
</div>
|
|
217
|
+
</div>
|
|
218
|
+
|
|
219
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
220
|
+
<div class="w-16 h-16 rounded-md bg-background-accent-soft border border-border-surface-default flex items-center justify-center">
|
|
221
|
+
<span class="text-content-on-accent-soft text-2xl font-bold">Aa</span>
|
|
222
|
+
</div>
|
|
223
|
+
<div class="text-center">
|
|
224
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">soft</span>
|
|
225
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('text-content-on-accent-soft', this)">text-content-on-accent-soft</code>
|
|
226
|
+
</div>
|
|
227
|
+
</div>
|
|
228
|
+
</div>
|
|
229
|
+
</div>
|
|
230
|
+
`,
|
|
231
|
+
}),
|
|
232
|
+
};
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
* Semantic text colors for status indicators like success, warning, error, info, and neutral.
|
|
236
|
+
* Use these for validation messages, alerts, notifications, and status badges.
|
|
237
|
+
*/
|
|
238
|
+
export const OnStatus: Story = {
|
|
239
|
+
render: () => ({
|
|
240
|
+
template: `
|
|
241
|
+
<div class="p-8 bg-white dark:bg-background min-h-screen">
|
|
242
|
+
<style>
|
|
243
|
+
.copy-btn { cursor: pointer; transition: all 0.15s; }
|
|
244
|
+
.copy-btn:hover { background: rgba(0,0,0,0.05); }
|
|
245
|
+
.copy-btn.copied { background: #22c55e22; }
|
|
246
|
+
.copy-btn.copied::after { content: ' ✓'; color: #22c55e; }
|
|
247
|
+
</style>
|
|
248
|
+
<script>${copyScript}</script>
|
|
249
|
+
|
|
250
|
+
<div class="mb-6">
|
|
251
|
+
<h2 class="text-xl font-bold text-content-on-surface-primary mb-1">on-status</h2>
|
|
252
|
+
<p class="text-sm text-content-on-surface-muted">Text colors for status indicators. Click class name to copy.</p>
|
|
253
|
+
</div>
|
|
254
|
+
|
|
255
|
+
<div class="flex flex-wrap gap-6">
|
|
256
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
257
|
+
<div class="w-16 h-16 rounded-md bg-background-surface-secondary border border-border-surface-default flex items-center justify-center">
|
|
258
|
+
<span class="text-content-on-status-success text-2xl font-bold">Aa</span>
|
|
259
|
+
</div>
|
|
260
|
+
<div class="text-center">
|
|
261
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">success</span>
|
|
262
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('text-content-on-status-success', this)">text-content-on-status-success</code>
|
|
263
|
+
</div>
|
|
264
|
+
</div>
|
|
265
|
+
|
|
266
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
267
|
+
<div class="w-16 h-16 rounded-md bg-background-surface-secondary border border-border-surface-default flex items-center justify-center">
|
|
268
|
+
<span class="text-content-on-status-warning text-2xl font-bold">Aa</span>
|
|
269
|
+
</div>
|
|
270
|
+
<div class="text-center">
|
|
271
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">warning</span>
|
|
272
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('text-content-on-status-warning', this)">text-content-on-status-warning</code>
|
|
273
|
+
</div>
|
|
274
|
+
</div>
|
|
275
|
+
|
|
276
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
277
|
+
<div class="w-16 h-16 rounded-md bg-background-surface-secondary border border-border-surface-default flex items-center justify-center">
|
|
278
|
+
<span class="text-content-on-status-error text-2xl font-bold">Aa</span>
|
|
279
|
+
</div>
|
|
280
|
+
<div class="text-center">
|
|
281
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">error</span>
|
|
282
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('text-content-on-status-error', this)">text-content-on-status-error</code>
|
|
283
|
+
</div>
|
|
284
|
+
</div>
|
|
285
|
+
|
|
286
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
287
|
+
<div class="w-16 h-16 rounded-md bg-background-surface-secondary border border-border-surface-default flex items-center justify-center">
|
|
288
|
+
<span class="text-content-on-status-info text-2xl font-bold">Aa</span>
|
|
289
|
+
</div>
|
|
290
|
+
<div class="text-center">
|
|
291
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">info</span>
|
|
292
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('text-content-on-status-info', this)">text-content-on-status-info</code>
|
|
293
|
+
</div>
|
|
294
|
+
</div>
|
|
295
|
+
|
|
296
|
+
<div class="flex flex-col items-center gap-1.5">
|
|
297
|
+
<div class="w-16 h-16 rounded-md bg-background-surface-secondary border border-border-surface-default flex items-center justify-center">
|
|
298
|
+
<span class="text-content-on-status-neutral text-2xl font-bold">Aa</span>
|
|
299
|
+
</div>
|
|
300
|
+
<div class="text-center">
|
|
301
|
+
<span class="text-xs text-content-on-surface-primary block font-medium">neutral</span>
|
|
302
|
+
<code class="copy-btn text-[10px] text-content-on-surface-muted block mt-0.5 px-1 py-0.5 rounded" onclick="copyToClipboard('text-content-on-status-neutral', this)">text-content-on-status-neutral</code>
|
|
303
|
+
</div>
|
|
304
|
+
</div>
|
|
305
|
+
</div>
|
|
306
|
+
</div>
|
|
307
|
+
`,
|
|
308
|
+
}),
|
|
309
|
+
};
|
|
@@ -0,0 +1,230 @@
|
|
|
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/Typography',
|
|
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
|
+
* Heading typography styles from h1 to h6.
|
|
34
|
+
* Use these for page titles, section headings, and content hierarchy.
|
|
35
|
+
*/
|
|
36
|
+
export const Headings: 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-8">
|
|
49
|
+
<h2 class="text-xl font-bold text-content-on-surface-primary mb-1">Headings</h2>
|
|
50
|
+
<p class="text-sm text-content-on-surface-muted">Heading styles for content hierarchy. Click class name to copy.</p>
|
|
51
|
+
</div>
|
|
52
|
+
|
|
53
|
+
<div class="space-y-6">
|
|
54
|
+
<div class="flex items-baseline gap-4 pb-4 border-b border-border-surface-default">
|
|
55
|
+
<code class="copy-btn text-xs text-content-on-surface-muted w-24 flex-shrink-0 px-1 py-0.5 rounded" onclick="copyToClipboard('text-4xl font-bold', this)">text-4xl font-bold</code>
|
|
56
|
+
<span class="text-4xl font-bold text-content-on-surface-primary">Heading 1 — The quick brown fox</span>
|
|
57
|
+
</div>
|
|
58
|
+
|
|
59
|
+
<div class="flex items-baseline gap-4 pb-4 border-b border-border-surface-default">
|
|
60
|
+
<code class="copy-btn text-xs text-content-on-surface-muted w-24 flex-shrink-0 px-1 py-0.5 rounded" onclick="copyToClipboard('text-3xl font-bold', this)">text-3xl font-bold</code>
|
|
61
|
+
<span class="text-3xl font-bold text-content-on-surface-primary">Heading 2 — The quick brown fox</span>
|
|
62
|
+
</div>
|
|
63
|
+
|
|
64
|
+
<div class="flex items-baseline gap-4 pb-4 border-b border-border-surface-default">
|
|
65
|
+
<code class="copy-btn text-xs text-content-on-surface-muted w-24 flex-shrink-0 px-1 py-0.5 rounded" onclick="copyToClipboard('text-2xl font-bold', this)">text-2xl font-bold</code>
|
|
66
|
+
<span class="text-2xl font-bold text-content-on-surface-primary">Heading 3 — The quick brown fox</span>
|
|
67
|
+
</div>
|
|
68
|
+
|
|
69
|
+
<div class="flex items-baseline gap-4 pb-4 border-b border-border-surface-default">
|
|
70
|
+
<code class="copy-btn text-xs text-content-on-surface-muted w-24 flex-shrink-0 px-1 py-0.5 rounded" onclick="copyToClipboard('text-xl font-bold', this)">text-xl font-bold</code>
|
|
71
|
+
<span class="text-xl font-bold text-content-on-surface-primary">Heading 4 — The quick brown fox</span>
|
|
72
|
+
</div>
|
|
73
|
+
|
|
74
|
+
<div class="flex items-baseline gap-4 pb-4 border-b border-border-surface-default">
|
|
75
|
+
<code class="copy-btn text-xs text-content-on-surface-muted w-24 flex-shrink-0 px-1 py-0.5 rounded" onclick="copyToClipboard('text-lg font-bold', this)">text-lg font-bold</code>
|
|
76
|
+
<span class="text-lg font-bold text-content-on-surface-primary">Heading 5 — The quick brown fox</span>
|
|
77
|
+
</div>
|
|
78
|
+
|
|
79
|
+
<div class="flex items-baseline gap-4">
|
|
80
|
+
<code class="copy-btn text-xs text-content-on-surface-muted w-24 flex-shrink-0 px-1 py-0.5 rounded" onclick="copyToClipboard('text-base font-bold', this)">text-base font-bold</code>
|
|
81
|
+
<span class="text-base font-bold text-content-on-surface-primary">Heading 6 — The quick brown fox</span>
|
|
82
|
+
</div>
|
|
83
|
+
</div>
|
|
84
|
+
</div>
|
|
85
|
+
`,
|
|
86
|
+
}),
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Body text styles for paragraphs and general content.
|
|
91
|
+
* Use base for standard text, sm for secondary content, lg for emphasized paragraphs.
|
|
92
|
+
*/
|
|
93
|
+
export const Body: Story = {
|
|
94
|
+
render: () => ({
|
|
95
|
+
template: `
|
|
96
|
+
<div class="p-8 bg-white dark:bg-background min-h-screen">
|
|
97
|
+
<style>
|
|
98
|
+
.copy-btn { cursor: pointer; transition: all 0.15s; }
|
|
99
|
+
.copy-btn:hover { background: rgba(0,0,0,0.05); }
|
|
100
|
+
.copy-btn.copied { background: #22c55e22; }
|
|
101
|
+
.copy-btn.copied::after { content: ' ✓'; color: #22c55e; }
|
|
102
|
+
</style>
|
|
103
|
+
<script>${copyScript}</script>
|
|
104
|
+
|
|
105
|
+
<div class="mb-8">
|
|
106
|
+
<h2 class="text-xl font-bold text-content-on-surface-primary mb-1">Body</h2>
|
|
107
|
+
<p class="text-sm text-content-on-surface-muted">Body text styles for paragraphs and content. Click class name to copy.</p>
|
|
108
|
+
</div>
|
|
109
|
+
|
|
110
|
+
<div class="space-y-6">
|
|
111
|
+
<div class="pb-4 border-b border-border-surface-default">
|
|
112
|
+
<code class="copy-btn text-xs text-content-on-surface-muted block mb-2 px-1 py-0.5 rounded w-fit" onclick="copyToClipboard('text-lg', this)">text-lg</code>
|
|
113
|
+
<p class="text-lg text-content-on-surface-primary">Large body text. The quick brown fox jumps over the lazy dog. This size is good for lead paragraphs or introductions.</p>
|
|
114
|
+
</div>
|
|
115
|
+
|
|
116
|
+
<div class="pb-4 border-b border-border-surface-default">
|
|
117
|
+
<code class="copy-btn text-xs text-content-on-surface-muted block mb-2 px-1 py-0.5 rounded w-fit" onclick="copyToClipboard('text-base', this)">text-base</code>
|
|
118
|
+
<p class="text-base text-content-on-surface-primary">Base body text. The quick brown fox jumps over the lazy dog. This is the default paragraph size used for most content.</p>
|
|
119
|
+
</div>
|
|
120
|
+
|
|
121
|
+
<div class="pb-4 border-b border-border-surface-default">
|
|
122
|
+
<code class="copy-btn text-xs text-content-on-surface-muted block mb-2 px-1 py-0.5 rounded w-fit" onclick="copyToClipboard('text-sm', this)">text-sm</code>
|
|
123
|
+
<p class="text-sm text-content-on-surface-primary">Small body text. The quick brown fox jumps over the lazy dog. Use for captions, helper text, or secondary information.</p>
|
|
124
|
+
</div>
|
|
125
|
+
|
|
126
|
+
<div>
|
|
127
|
+
<code class="copy-btn text-xs text-content-on-surface-muted block mb-2 px-1 py-0.5 rounded w-fit" onclick="copyToClipboard('text-xs', this)">text-xs</code>
|
|
128
|
+
<p class="text-xs text-content-on-surface-primary">Extra small text. The quick brown fox jumps over the lazy dog. Use sparingly for labels, timestamps, or legal text.</p>
|
|
129
|
+
</div>
|
|
130
|
+
</div>
|
|
131
|
+
</div>
|
|
132
|
+
`,
|
|
133
|
+
}),
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Label and UI text styles for form labels, buttons, and interactive elements.
|
|
138
|
+
* Includes medium and semibold weights for different emphasis levels.
|
|
139
|
+
*/
|
|
140
|
+
export const Labels: Story = {
|
|
141
|
+
render: () => ({
|
|
142
|
+
template: `
|
|
143
|
+
<div class="p-8 bg-white dark:bg-background min-h-screen">
|
|
144
|
+
<style>
|
|
145
|
+
.copy-btn { cursor: pointer; transition: all 0.15s; }
|
|
146
|
+
.copy-btn:hover { background: rgba(0,0,0,0.05); }
|
|
147
|
+
.copy-btn.copied { background: #22c55e22; }
|
|
148
|
+
.copy-btn.copied::after { content: ' ✓'; color: #22c55e; }
|
|
149
|
+
</style>
|
|
150
|
+
<script>${copyScript}</script>
|
|
151
|
+
|
|
152
|
+
<div class="mb-8">
|
|
153
|
+
<h2 class="text-xl font-bold text-content-on-surface-primary mb-1">Labels</h2>
|
|
154
|
+
<p class="text-sm text-content-on-surface-muted">Label styles for forms and UI elements. Click class name to copy.</p>
|
|
155
|
+
</div>
|
|
156
|
+
|
|
157
|
+
<div class="space-y-6">
|
|
158
|
+
<div class="flex items-center gap-4 pb-4 border-b border-border-surface-default">
|
|
159
|
+
<code class="copy-btn text-xs text-content-on-surface-muted w-32 flex-shrink-0 px-1 py-0.5 rounded" onclick="copyToClipboard('text-sm font-medium', this)">text-sm font-medium</code>
|
|
160
|
+
<span class="text-sm font-medium text-content-on-surface-primary">Form Label</span>
|
|
161
|
+
</div>
|
|
162
|
+
|
|
163
|
+
<div class="flex items-center gap-4 pb-4 border-b border-border-surface-default">
|
|
164
|
+
<code class="copy-btn text-xs text-content-on-surface-muted w-32 flex-shrink-0 px-1 py-0.5 rounded" onclick="copyToClipboard('text-sm font-semibold', this)">text-sm font-semibold</code>
|
|
165
|
+
<span class="text-sm font-semibold text-content-on-surface-primary">Button Text</span>
|
|
166
|
+
</div>
|
|
167
|
+
|
|
168
|
+
<div class="flex items-center gap-4 pb-4 border-b border-border-surface-default">
|
|
169
|
+
<code class="copy-btn text-xs text-content-on-surface-muted w-32 flex-shrink-0 px-1 py-0.5 rounded" onclick="copyToClipboard('text-xs font-medium', this)">text-xs font-medium</code>
|
|
170
|
+
<span class="text-xs font-medium text-content-on-surface-primary">Small Label</span>
|
|
171
|
+
</div>
|
|
172
|
+
|
|
173
|
+
<div class="flex items-center gap-4">
|
|
174
|
+
<code class="copy-btn text-xs text-content-on-surface-muted w-32 flex-shrink-0 px-1 py-0.5 rounded" onclick="copyToClipboard('text-xs uppercase tracking-wider', this)">text-xs uppercase tracking-wider</code>
|
|
175
|
+
<span class="text-xs uppercase tracking-wider text-content-on-surface-primary">Overline Text</span>
|
|
176
|
+
</div>
|
|
177
|
+
</div>
|
|
178
|
+
</div>
|
|
179
|
+
`,
|
|
180
|
+
}),
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* Comprehensive article example showing typography hierarchy in context.
|
|
185
|
+
* Demonstrates how headings, body text, and other styles work together in real content.
|
|
186
|
+
*/
|
|
187
|
+
export const Article: Story = {
|
|
188
|
+
render: () => ({
|
|
189
|
+
template: `
|
|
190
|
+
<div class="p-8 bg-white dark:bg-background min-h-screen">
|
|
191
|
+
<div class="max-w-2xl mx-auto">
|
|
192
|
+
<article class="text-content-on-surface-primary">
|
|
193
|
+
<header class="mb-8">
|
|
194
|
+
<p class="text-xs uppercase tracking-wider text-content-on-surface-muted mb-2">Design System</p>
|
|
195
|
+
<h1 class="text-4xl font-bold mb-4">Building Consistent UI with Design Tokens</h1>
|
|
196
|
+
<p class="text-lg text-content-on-surface-secondary">A comprehensive guide to using design tokens for scalable and maintainable user interfaces.</p>
|
|
197
|
+
</header>
|
|
198
|
+
|
|
199
|
+
<div class="space-y-6">
|
|
200
|
+
<p class="text-base">Design tokens are the visual design atoms of the design system — specifically, they are named entities that store visual design attributes. We use them in place of hard-coded values in order to maintain a scalable and consistent visual system for UI development.</p>
|
|
201
|
+
|
|
202
|
+
<h2 class="text-2xl font-bold mt-8">Why Use Design Tokens?</h2>
|
|
203
|
+
|
|
204
|
+
<p class="text-base">Using design tokens brings several benefits to your development workflow:</p>
|
|
205
|
+
|
|
206
|
+
<ul class="list-disc list-inside space-y-2 text-base">
|
|
207
|
+
<li>Consistency across all UI components</li>
|
|
208
|
+
<li>Easy theming and brand customization</li>
|
|
209
|
+
<li>Single source of truth for design decisions</li>
|
|
210
|
+
<li>Simplified maintenance and updates</li>
|
|
211
|
+
</ul>
|
|
212
|
+
|
|
213
|
+
<h3 class="text-xl font-bold mt-6">Token Categories</h3>
|
|
214
|
+
|
|
215
|
+
<p class="text-base">Tokens are organized into categories based on their purpose:</p>
|
|
216
|
+
|
|
217
|
+
<div class="bg-background-surface-muted p-4 rounded-md mt-4">
|
|
218
|
+
<p class="text-sm font-medium">Color tokens for backgrounds, text, and borders</p>
|
|
219
|
+
<p class="text-sm font-medium">Typography tokens for font sizes and weights</p>
|
|
220
|
+
<p class="text-sm font-medium">Spacing tokens for margins and padding</p>
|
|
221
|
+
</div>
|
|
222
|
+
|
|
223
|
+
<p class="text-sm text-content-on-surface-muted mt-8">Last updated: February 2026</p>
|
|
224
|
+
</div>
|
|
225
|
+
</article>
|
|
226
|
+
</div>
|
|
227
|
+
</div>
|
|
228
|
+
`,
|
|
229
|
+
}),
|
|
230
|
+
};
|