@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
package/README.md
CHANGED
|
@@ -33,11 +33,88 @@ export default defineConfig({
|
|
|
33
33
|
presets: [
|
|
34
34
|
presetWind(),
|
|
35
35
|
presetAnimations(),
|
|
36
|
-
presetShadcn({ color: 'neutral' }),
|
|
36
|
+
presetShadcn({ color: 'neutral', darkSelector: 'html.dark' }),
|
|
37
|
+
],
|
|
38
|
+
})
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Custom theme (via design tokens)
|
|
42
|
+
|
|
43
|
+
`@aleph-alpha/ui-library` uses shadcn-style semantic utilities such as `bg-background`, `text-foreground`, `bg-primary`, `border-input`, etc.
|
|
44
|
+
These resolve through CSS variables (e.g. `--background`, `--primary`).
|
|
45
|
+
|
|
46
|
+
#### Option A: Use the built-in `tokens.json` shipped with the library (recommended)
|
|
47
|
+
|
|
48
|
+
If you added/maintain tokens in `packages/ui-library/tokens.json`, you can load them directly:
|
|
49
|
+
|
|
50
|
+
```typescript
|
|
51
|
+
// uno.config.ts
|
|
52
|
+
import { defineConfig } from 'unocss'
|
|
53
|
+
import { getUiLibraryContentConfig, presetUiLibraryThemeFromTokens } from '@aleph-alpha/ui-library/config'
|
|
54
|
+
import presetWind from '@unocss/preset-wind4'
|
|
55
|
+
import presetAnimations from 'unocss-preset-animations'
|
|
56
|
+
import presetShadcn from 'unocss-preset-shadcn'
|
|
57
|
+
|
|
58
|
+
export default defineConfig({
|
|
59
|
+
...getUiLibraryContentConfig(),
|
|
60
|
+
presets: [
|
|
61
|
+
presetWind(),
|
|
62
|
+
presetAnimations(),
|
|
63
|
+
presetShadcn({ color: 'neutral', darkSelector: 'html.dark' }),
|
|
64
|
+
// Put the theme preset AFTER shadcn so it overrides shadcn's default CSS vars
|
|
65
|
+
presetUiLibraryThemeFromTokens(),
|
|
37
66
|
],
|
|
38
67
|
})
|
|
39
68
|
```
|
|
40
69
|
|
|
70
|
+
#### Option B: Provide your own shadcn vars explicitly
|
|
71
|
+
|
|
72
|
+
To implement a custom theme from your token values, add `presetUiLibraryTheme()` **after** `presetShadcn()` so it overrides shadcn's default CSS vars:
|
|
73
|
+
|
|
74
|
+
```typescript
|
|
75
|
+
// uno.config.ts
|
|
76
|
+
import { defineConfig } from 'unocss'
|
|
77
|
+
import { getUiLibraryContentConfig, presetUiLibraryTheme } from '@aleph-alpha/ui-library/config'
|
|
78
|
+
import presetWind from '@unocss/preset-wind4'
|
|
79
|
+
import presetAnimations from 'unocss-preset-animations'
|
|
80
|
+
import presetShadcn from 'unocss-preset-shadcn'
|
|
81
|
+
|
|
82
|
+
export default defineConfig({
|
|
83
|
+
...getUiLibraryContentConfig(),
|
|
84
|
+
presets: [
|
|
85
|
+
presetWind(),
|
|
86
|
+
presetAnimations(),
|
|
87
|
+
presetShadcn({ color: 'neutral', darkSelector: 'html.dark' }),
|
|
88
|
+
presetUiLibraryTheme({
|
|
89
|
+
light: {
|
|
90
|
+
// shadcn vars (keys without the leading `--`)
|
|
91
|
+
background: '0 0% 100%',
|
|
92
|
+
foreground: '240 10% 3.9%',
|
|
93
|
+
primary: '222.2 47.4% 11.2%',
|
|
94
|
+
'primary-foreground': '210 40% 98%',
|
|
95
|
+
border: '240 5.9% 90%',
|
|
96
|
+
input: '240 5.9% 90%',
|
|
97
|
+
ring: '240 5.9% 10%',
|
|
98
|
+
},
|
|
99
|
+
dark: {
|
|
100
|
+
background: '240 10% 3.9%',
|
|
101
|
+
foreground: '0 0% 98%',
|
|
102
|
+
primary: '210 40% 98%',
|
|
103
|
+
'primary-foreground': '222.2 47.4% 11.2%',
|
|
104
|
+
border: '240 3.7% 15.9%',
|
|
105
|
+
input: '240 3.7% 15.9%',
|
|
106
|
+
ring: '240 4.9% 83.9%',
|
|
107
|
+
},
|
|
108
|
+
}),
|
|
109
|
+
],
|
|
110
|
+
})
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Notes:
|
|
114
|
+
|
|
115
|
+
- **Value formats**: You can pass OKLCH components, or `hex`/`rgb(...)`/`hsl(...)` — they will be converted to shadcn-compatible OKLCH components.
|
|
116
|
+
- **Dark mode selector**: Defaults to `html.dark`. If your app uses `.dark` on another element, pass `{ darkSelector: '.dark' }` as the second argument.
|
|
117
|
+
|
|
41
118
|
### 2. Configure Vite
|
|
42
119
|
|
|
43
120
|
```typescript
|
|
@@ -87,7 +164,6 @@ If you're using both `ui-library` and `ds-components-vue`, configure UnoCSS to i
|
|
|
87
164
|
// uno.config.ts
|
|
88
165
|
import { defineConfig } from 'unocss'
|
|
89
166
|
import { presetsAlephAlpha, getDesignSystemContentPathConfig } from '@aleph-alpha/config-css'
|
|
90
|
-
import { presetAlephAlphaIcons } from '@aleph-alpha/ds-icons'
|
|
91
167
|
import { getUiLibraryContentConfig } from '@aleph-alpha/ui-library/config'
|
|
92
168
|
import presetShadcn from 'unocss-preset-shadcn'
|
|
93
169
|
|
|
@@ -98,7 +174,6 @@ export default defineConfig({
|
|
|
98
174
|
presets: [
|
|
99
175
|
// DS presets (already includes presetWind + presetAnimations)
|
|
100
176
|
...presetsAlephAlpha(),
|
|
101
|
-
presetAlephAlphaIcons(),
|
|
102
177
|
// UI Library preset (for shadcn CSS variables only)
|
|
103
178
|
presetShadcn({ color: 'neutral' }),
|
|
104
179
|
],
|
package/config.d.ts
CHANGED
|
@@ -1,11 +1,195 @@
|
|
|
1
|
+
import type { Preset } from 'unocss';
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* UnoCSS content configuration for scanning ui-library components.
|
|
5
|
+
* Use this to ensure classes inside `@aleph-alpha/ui-library` are scanned.
|
|
3
6
|
*/
|
|
4
7
|
export declare const getUiLibraryContentConfig: () => {
|
|
8
|
+
/** UnoCSS content configuration object */
|
|
5
9
|
content: {
|
|
10
|
+
/** Paths to scan for class usage in node_modules */
|
|
6
11
|
filesystem: string[];
|
|
12
|
+
/** Pipeline configuration for class extraction */
|
|
7
13
|
pipeline: {
|
|
8
|
-
|
|
14
|
+
/** File patterns to extract classes from */
|
|
15
|
+
include: (string | RegExp)[];
|
|
9
16
|
};
|
|
10
17
|
};
|
|
11
18
|
};
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Theme variable record where keys are CSS variable names (without `--` prefix)
|
|
22
|
+
* and values are color strings (hex, rgb, hsl, or oklch).
|
|
23
|
+
*/
|
|
24
|
+
export type UiLibraryThemeVars = Record<string, string>;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Theme configuration with light and dark mode variables.
|
|
28
|
+
*/
|
|
29
|
+
export interface UiLibraryTheme {
|
|
30
|
+
/** Light mode CSS variables */
|
|
31
|
+
light: UiLibraryThemeVars;
|
|
32
|
+
/** Dark mode CSS variables */
|
|
33
|
+
dark?: UiLibraryThemeVars;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Options for CSS selector customization.
|
|
38
|
+
*/
|
|
39
|
+
export interface UiLibraryThemeOptions {
|
|
40
|
+
/**
|
|
41
|
+
* CSS selector for the root (light) theme block.
|
|
42
|
+
* @default ':root'
|
|
43
|
+
*/
|
|
44
|
+
rootSelector?: string;
|
|
45
|
+
/**
|
|
46
|
+
* CSS selector for the dark theme block.
|
|
47
|
+
* @default 'html.dark'
|
|
48
|
+
*/
|
|
49
|
+
darkSelector?: string;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Configuration for customizing the theme.
|
|
54
|
+
*/
|
|
55
|
+
export interface UiLibraryThemeConfig {
|
|
56
|
+
/** Completely override the default theme */
|
|
57
|
+
theme?: UiLibraryTheme;
|
|
58
|
+
/** Extend/override specific variables while keeping defaults */
|
|
59
|
+
extend?: Partial<UiLibraryTheme>;
|
|
60
|
+
/**
|
|
61
|
+
* Include all token-based CSS variables in addition to shadcn variables.
|
|
62
|
+
* This enables classes like bg-background-surface-secondary, text-content-on-surface-primary, etc.
|
|
63
|
+
* @default false
|
|
64
|
+
*/
|
|
65
|
+
includeAllTokens?: boolean;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Combined options for `presetUiLibraryThemeFromTokens`.
|
|
70
|
+
*/
|
|
71
|
+
export type UiLibraryPresetOptions = UiLibraryThemeOptions & UiLibraryThemeConfig;
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* UnoCSS theme colors record where keys are color names
|
|
75
|
+
* and values are oklch CSS variable references.
|
|
76
|
+
*/
|
|
77
|
+
export type UiLibraryTokenColors = Record<string, string>;
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Helper function for type-safe theme configuration files.
|
|
81
|
+
* Similar to Tailwind's `defineConfig`.
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```ts
|
|
85
|
+
* // tokens.config.ts
|
|
86
|
+
* import { defineThemeConfig } from '@aleph-alpha/ui-library/config';
|
|
87
|
+
*
|
|
88
|
+
* export default defineThemeConfig({
|
|
89
|
+
* extend: {
|
|
90
|
+
* light: { primary: '#ff5500' },
|
|
91
|
+
* },
|
|
92
|
+
* });
|
|
93
|
+
* ```
|
|
94
|
+
*/
|
|
95
|
+
export declare const defineThemeConfig: <T extends UiLibraryThemeConfig>(config: T) => T;
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Returns the default theme derived from the library's `tokens.json`.
|
|
99
|
+
*/
|
|
100
|
+
export declare const getUiLibraryThemeFromTokens: () => UiLibraryTheme;
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Get all token-based CSS variables for light and dark modes.
|
|
104
|
+
* These map directly to the token structure, e.g.:
|
|
105
|
+
* - background.surface.secondary -> --background-surface-secondary
|
|
106
|
+
* - content.on-surface.primary -> --content-on-surface-primary
|
|
107
|
+
*/
|
|
108
|
+
export declare const getUiLibraryTokenVars: () => UiLibraryTheme;
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Get UnoCSS theme colors config for all token-based colors.
|
|
112
|
+
* This allows using classes like bg-background-surface-secondary, text-content-on-surface-primary, etc.
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* ```ts
|
|
116
|
+
* // uno.config.ts
|
|
117
|
+
* import { getUiLibraryTokenColors } from '@aleph-alpha/ui-library/config';
|
|
118
|
+
*
|
|
119
|
+
* export default defineConfig({
|
|
120
|
+
* theme: {
|
|
121
|
+
* colors: {
|
|
122
|
+
* ...getUiLibraryTokenColors(),
|
|
123
|
+
* },
|
|
124
|
+
* },
|
|
125
|
+
* });
|
|
126
|
+
* ```
|
|
127
|
+
*/
|
|
128
|
+
export declare const getUiLibraryTokenColors: () => UiLibraryTokenColors;
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Creates an UnoCSS preset with custom theme variables.
|
|
132
|
+
* Use this when you want full control over the theme.
|
|
133
|
+
*
|
|
134
|
+
* @param theme - The complete theme object with light/dark variables.
|
|
135
|
+
* @param options - CSS selector options.
|
|
136
|
+
*/
|
|
137
|
+
export declare const presetUiLibraryTheme: (
|
|
138
|
+
theme: UiLibraryTheme,
|
|
139
|
+
options?: UiLibraryThemeOptions,
|
|
140
|
+
) => Preset;
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Creates an UnoCSS preset using the library's design tokens.
|
|
144
|
+
* Supports extending or overriding the default theme.
|
|
145
|
+
*
|
|
146
|
+
* **Important:** Place this preset AFTER `presetShadcn()` to override its CSS variables.
|
|
147
|
+
*
|
|
148
|
+
* @example
|
|
149
|
+
* ```ts
|
|
150
|
+
* // Use defaults
|
|
151
|
+
* presetUiLibraryThemeFromTokens({ darkSelector: 'html.dark' })
|
|
152
|
+
*
|
|
153
|
+
* // Extend defaults
|
|
154
|
+
* presetUiLibraryThemeFromTokens({
|
|
155
|
+
* darkSelector: 'html.dark',
|
|
156
|
+
* extend: { light: { primary: '#ff5500' } },
|
|
157
|
+
* })
|
|
158
|
+
*
|
|
159
|
+
* // With external config file
|
|
160
|
+
* import themeConfig from './tokens.config';
|
|
161
|
+
* presetUiLibraryThemeFromTokens({ ...themeConfig, darkSelector: 'html.dark' })
|
|
162
|
+
* ```
|
|
163
|
+
*/
|
|
164
|
+
export declare const presetUiLibraryThemeFromTokens: (options?: UiLibraryPresetOptions) => Preset;
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Typography shortcut tuple: [className, cssProperties]
|
|
168
|
+
*/
|
|
169
|
+
export type UiLibraryTypographyShortcut = [string, string];
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Get typography shortcuts for UnoCSS rules.
|
|
173
|
+
* Returns an array of [className, cssProperties] tuples that can be used with UnoCSS rules.
|
|
174
|
+
*
|
|
175
|
+
* Available typography classes:
|
|
176
|
+
* - Headings: heading-48-bold, heading-30-bold, heading-24-semi-bold, heading-20-bold
|
|
177
|
+
* - Body: body-16-normal, body-16-normal-compact, body-16-bold, body-14-normal, body-14-medium, body-14-bold
|
|
178
|
+
* - Labels: label-12-normal, label-12-medium, label-12-bold
|
|
179
|
+
*
|
|
180
|
+
* @example
|
|
181
|
+
* ```ts
|
|
182
|
+
* // uno.config.ts
|
|
183
|
+
* import { getUiLibraryTypographyShortcuts } from '@aleph-alpha/ui-library/config';
|
|
184
|
+
*
|
|
185
|
+
* const typographyShortcuts = getUiLibraryTypographyShortcuts();
|
|
186
|
+
*
|
|
187
|
+
* export default defineConfig({
|
|
188
|
+
* rules: typographyShortcuts.map(([name, css]) => [
|
|
189
|
+
* new RegExp(`^${name}$`),
|
|
190
|
+
* () => Object.fromEntries(css.split(';').map(p => p.split(':').map(s => s.trim()))),
|
|
191
|
+
* ]),
|
|
192
|
+
* });
|
|
193
|
+
* ```
|
|
194
|
+
*/
|
|
195
|
+
export declare const getUiLibraryTypographyShortcuts: () => UiLibraryTypographyShortcut[];
|