@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.
Files changed (891) hide show
  1. package/README.md +79 -2
  2. package/config.d.ts +185 -1
  3. package/config.js +582 -6
  4. package/dist/system/index.d.ts +2933 -739
  5. package/dist/system/lib.js +29220 -25434
  6. package/package.json +3 -2
  7. package/src/__tests__/test-utils.ts +46 -0
  8. package/src/components/UiAccordion/UiAccordion.stories.ts +500 -0
  9. package/src/components/UiAccordion/UiAccordion.vue +31 -0
  10. package/src/components/UiAccordion/UiAccordionContent.vue +16 -0
  11. package/src/components/UiAccordion/UiAccordionItem.vue +16 -0
  12. package/src/components/UiAccordion/UiAccordionTrigger.vue +23 -0
  13. package/src/components/UiAccordion/types.ts +94 -0
  14. package/src/components/UiAlert/UiAlert.stories.ts +199 -0
  15. package/src/components/UiAlert/UiAlert.vue +27 -0
  16. package/src/components/UiAlert/UiAlertDescription.vue +13 -0
  17. package/src/components/UiAlert/UiAlertTitle.vue +13 -0
  18. package/src/components/UiAlert/types.ts +15 -0
  19. package/src/components/UiAlertDialog/UiAlertDialog.stories.ts +186 -0
  20. package/src/components/UiAlertDialog/UiAlertDialog.vue +18 -0
  21. package/src/components/UiAlertDialog/UiAlertDialogAction.vue +16 -0
  22. package/src/components/UiAlertDialog/UiAlertDialogCancel.vue +16 -0
  23. package/src/components/UiAlertDialog/UiAlertDialogContent.vue +26 -0
  24. package/src/components/UiAlertDialog/UiAlertDialogDescription.vue +16 -0
  25. package/src/components/UiAlertDialog/UiAlertDialogFooter.vue +13 -0
  26. package/src/components/UiAlertDialog/UiAlertDialogHeader.vue +16 -0
  27. package/src/components/UiAlertDialog/UiAlertDialogTitle.vue +16 -0
  28. package/src/components/UiAlertDialog/UiAlertDialogTrigger.vue +17 -0
  29. package/src/components/UiAlertDialog/index.ts +10 -0
  30. package/src/components/UiAlertDialog/types.ts +83 -0
  31. package/src/components/UiAvatar/UiAvatar.stories.ts +194 -0
  32. package/src/components/UiAvatar/UiAvatar.vue +13 -0
  33. package/src/components/UiAvatar/UiAvatarFallback.vue +13 -0
  34. package/src/components/UiAvatar/UiAvatarImage.vue +14 -0
  35. package/src/components/UiAvatar/index.ts +4 -0
  36. package/src/components/UiAvatar/types.ts +20 -0
  37. package/src/components/UiBadge/UiBadge.stories.ts +373 -0
  38. package/src/components/UiBadge/UiBadge.vue +21 -0
  39. package/src/components/UiBadge/__tests__/UiBadge.test.ts +34 -0
  40. package/src/components/UiBadge/types.ts +47 -0
  41. package/src/components/UiButton/UiButton.stories.ts +537 -0
  42. package/src/components/UiButton/UiButton.vue +72 -0
  43. package/src/components/UiButton/__tests__/UiButton.test.ts +124 -0
  44. package/src/components/UiButton/types.ts +86 -0
  45. package/src/components/UiCalendar/UiCalendar.stories.ts +797 -0
  46. package/src/components/UiCalendar/UiCalendar.vue +67 -0
  47. package/src/components/UiCalendar/types.ts +235 -0
  48. package/src/components/UiCard/UiCard.stories.ts +197 -0
  49. package/src/components/UiCard/UiCard.vue +13 -0
  50. package/src/components/UiCard/UiCardAction.vue +13 -0
  51. package/src/components/UiCard/UiCardContent.vue +13 -0
  52. package/src/components/UiCard/UiCardDescription.vue +13 -0
  53. package/src/components/UiCard/UiCardFooter.vue +13 -0
  54. package/src/components/UiCard/UiCardHeader.vue +13 -0
  55. package/src/components/UiCard/UiCardTitle.vue +13 -0
  56. package/src/components/UiCard/index.ts +10 -0
  57. package/src/components/UiCard/types.ts +9 -0
  58. package/src/components/UiCheckbox/UiCheckbox.stories.ts +231 -0
  59. package/src/components/UiCheckbox/UiCheckbox.vue +19 -0
  60. package/src/components/UiCheckbox/types.ts +29 -0
  61. package/src/components/UiDrawer/UiDrawer.stories.ts +602 -0
  62. package/src/components/UiDrawer/UiDrawer.vue +19 -0
  63. package/src/components/UiDrawer/UiDrawerClose.vue +16 -0
  64. package/src/components/UiDrawer/UiDrawerContent.vue +29 -0
  65. package/src/components/UiDrawer/UiDrawerDescription.vue +16 -0
  66. package/src/components/UiDrawer/UiDrawerFooter.vue +16 -0
  67. package/src/components/UiDrawer/UiDrawerHeader.vue +16 -0
  68. package/src/components/UiDrawer/UiDrawerTitle.vue +16 -0
  69. package/src/components/UiDrawer/UiDrawerTrigger.vue +16 -0
  70. package/src/components/UiDrawer/index.ts +9 -0
  71. package/src/components/UiDrawer/types.ts +126 -0
  72. package/src/components/UiDropdownMenu/UiDropdownMenu.stories.ts +760 -0
  73. package/src/components/UiDropdownMenu/UiDropdownMenu.vue +25 -0
  74. package/src/components/UiDropdownMenu/UiDropdownMenuCheckboxItem.vue +30 -0
  75. package/src/components/UiDropdownMenu/UiDropdownMenuContent.vue +27 -0
  76. package/src/components/UiDropdownMenu/UiDropdownMenuGroup.vue +13 -0
  77. package/src/components/UiDropdownMenu/UiDropdownMenuItem.vue +26 -0
  78. package/src/components/UiDropdownMenu/UiDropdownMenuLabel.vue +18 -0
  79. package/src/components/UiDropdownMenu/UiDropdownMenuRadioGroup.vue +20 -0
  80. package/src/components/UiDropdownMenu/UiDropdownMenuRadioItem.vue +26 -0
  81. package/src/components/UiDropdownMenu/UiDropdownMenuSeparator.vue +11 -0
  82. package/src/components/UiDropdownMenu/UiDropdownMenuShortcut.vue +13 -0
  83. package/src/components/UiDropdownMenu/UiDropdownMenuSub.vue +26 -0
  84. package/src/components/UiDropdownMenu/UiDropdownMenuSubContent.vue +23 -0
  85. package/src/components/UiDropdownMenu/UiDropdownMenuSubTrigger.vue +24 -0
  86. package/src/components/UiDropdownMenu/UiDropdownMenuTrigger.vue +24 -0
  87. package/src/components/UiDropdownMenu/types.ts +279 -0
  88. package/src/components/UiEmpty/UiEmpty.stories.ts +240 -0
  89. package/src/components/UiEmpty/UiEmpty.vue +35 -0
  90. package/src/components/UiEmpty/__tests__/UiEmpty.test.ts +67 -0
  91. package/src/components/UiEmpty/index.ts +2 -0
  92. package/src/components/UiEmpty/types.ts +26 -0
  93. package/src/components/UiField/UiField.stories.ts +1495 -0
  94. package/src/components/UiField/UiField.vue +18 -0
  95. package/src/components/UiField/UiFieldContent.vue +13 -0
  96. package/src/components/UiField/UiFieldDescription.vue +13 -0
  97. package/src/components/UiField/UiFieldError.vue +20 -0
  98. package/src/components/UiField/UiFieldGroup.vue +13 -0
  99. package/src/components/UiField/UiFieldLabel.vue +16 -0
  100. package/src/components/UiField/UiFieldLegend.vue +13 -0
  101. package/src/components/UiField/UiFieldSeparator.vue +13 -0
  102. package/src/components/UiField/UiFieldSet.vue +13 -0
  103. package/src/components/UiField/UiFieldTitle.vue +13 -0
  104. package/src/components/UiField/index.ts +11 -0
  105. package/src/components/UiField/types.ts +52 -0
  106. package/src/components/UiIcon/UiIcon.stories.ts +140 -0
  107. package/src/components/UiIcon/UiIcon.vue +67 -0
  108. package/src/components/UiIcon/types.ts +33 -0
  109. package/src/components/UiIconButton/UiIconButton.stories.ts +446 -0
  110. package/src/components/UiIconButton/UiIconButton.vue +63 -0
  111. package/src/components/UiIconButton/__tests__/UiIconButton.test.ts +95 -0
  112. package/src/components/UiIconButton/types.ts +66 -0
  113. package/src/components/UiInput/UiInput.stories.ts +193 -0
  114. package/src/components/UiInput/UiInput.vue +19 -0
  115. package/src/components/UiInput/types.ts +30 -0
  116. package/src/components/UiItem/UiItem.stories.ts +1029 -0
  117. package/src/components/UiItem/UiItem.vue +20 -0
  118. package/src/components/UiItem/UiItemMedia.vue +18 -0
  119. package/src/components/UiItem/__tests__/UiItem.test.ts +446 -0
  120. package/src/components/UiItem/constants.ts +13 -0
  121. package/src/components/UiItem/index.ts +15 -0
  122. package/src/components/UiItem/types.ts +114 -0
  123. package/src/components/UiKbd/UiKbd.stories.ts +546 -0
  124. package/src/components/UiKbd/UiKbd.vue +57 -0
  125. package/src/components/UiKbd/UiKbdGroup.vue +13 -0
  126. package/src/components/UiKbd/types.ts +25 -0
  127. package/src/components/UiLabel/UiLabel.stories.ts +192 -0
  128. package/src/components/UiLabel/UiLabel.vue +16 -0
  129. package/src/components/UiLabel/types.ts +15 -0
  130. package/src/components/UiListbox/UiListbox.stories.ts +607 -0
  131. package/src/components/UiListbox/UiListbox.vue +33 -0
  132. package/src/components/UiListbox/UiListboxContent.vue +13 -0
  133. package/src/components/UiListbox/UiListboxFilter.vue +16 -0
  134. package/src/components/UiListbox/UiListboxGroup.vue +13 -0
  135. package/src/components/UiListbox/UiListboxGroupLabel.vue +13 -0
  136. package/src/components/UiListbox/UiListboxItem.vue +21 -0
  137. package/src/components/UiListbox/UiListboxItemIndicator.vue +13 -0
  138. package/src/components/UiListbox/types.ts +109 -0
  139. package/src/components/UiNavigationMenu/UiNavigationMenu.stories.ts +1196 -0
  140. package/src/components/UiNavigationMenu/UiNavigationMenu.vue +39 -0
  141. package/src/components/UiNavigationMenu/UiNavigationMenuContent.vue +25 -0
  142. package/src/components/UiNavigationMenu/UiNavigationMenuIndicator.vue +14 -0
  143. package/src/components/UiNavigationMenu/UiNavigationMenuItem.vue +16 -0
  144. package/src/components/UiNavigationMenu/UiNavigationMenuLink.vue +27 -0
  145. package/src/components/UiNavigationMenu/UiNavigationMenuList.vue +16 -0
  146. package/src/components/UiNavigationMenu/UiNavigationMenuTrigger.vue +16 -0
  147. package/src/components/UiNavigationMenu/__tests__/UiNavigationMenu.test.ts +428 -0
  148. package/src/components/UiNavigationMenu/index.ts +11 -0
  149. package/src/components/UiNavigationMenu/types.ts +185 -0
  150. package/src/components/UiPopover/UiPopover.stories.ts +410 -0
  151. package/src/components/UiPopover/UiPopover.vue +17 -0
  152. package/src/components/UiPopover/UiPopoverContent.vue +27 -0
  153. package/src/components/UiPopover/UiPopoverTrigger.vue +16 -0
  154. package/src/components/UiPopover/types.ts +98 -0
  155. package/src/components/UiProgress/UiProgress.stories.ts +92 -0
  156. package/src/components/UiProgress/UiProgress.vue +25 -0
  157. package/src/components/UiProgress/types.ts +15 -0
  158. package/src/components/UiRadioGroup/UiRadioGroup.stories.ts +291 -0
  159. package/src/components/UiRadioGroup/UiRadioGroup.vue +43 -0
  160. package/src/components/UiRadioGroup/UiRadioGroupItem.vue +18 -0
  161. package/src/components/UiRadioGroup/types.ts +71 -0
  162. package/src/components/UiRangeCalendar/UiRangeCalendar.stories.ts +609 -0
  163. package/src/components/UiRangeCalendar/UiRangeCalendar.vue +50 -0
  164. package/src/components/UiRangeCalendar/types.ts +183 -0
  165. package/src/components/UiSelect/UiSelect.stories.ts +444 -0
  166. package/src/components/UiSelect/UiSelect.vue +47 -0
  167. package/src/components/UiSelect/UiSelectContent.vue +30 -0
  168. package/src/components/UiSelect/UiSelectGroup.vue +13 -0
  169. package/src/components/UiSelect/UiSelectItem.vue +19 -0
  170. package/src/components/UiSelect/UiSelectLabel.vue +13 -0
  171. package/src/components/UiSelect/UiSelectSeparator.vue +11 -0
  172. package/src/components/UiSelect/UiSelectTrigger.vue +30 -0
  173. package/src/components/UiSelect/UiSelectValue.vue +18 -0
  174. package/src/components/UiSelect/types.ts +92 -0
  175. package/src/components/UiSeparator/UiSeparator.stories.ts +177 -0
  176. package/src/components/UiSeparator/UiSeparator.vue +17 -0
  177. package/src/components/UiSeparator/types.ts +22 -0
  178. package/src/components/UiSheet/UiSheet.stories.ts +715 -0
  179. package/src/components/UiSheet/__tests__/UiSheet.test.ts +229 -0
  180. package/src/components/UiSheet/index.ts +12 -0
  181. package/src/components/UiSheet/types.ts +83 -0
  182. package/src/components/UiSidebar/UiSidebar.stories.ts +1010 -0
  183. package/src/components/UiSidebar/UiSidebar.vue +20 -0
  184. package/src/components/UiSidebar/UiSidebarGroupAction.vue +18 -0
  185. package/src/components/UiSidebar/UiSidebarGroupLabel.vue +18 -0
  186. package/src/components/UiSidebar/UiSidebarHeaderTrigger.vue +53 -0
  187. package/src/components/UiSidebar/UiSidebarInput.vue +14 -0
  188. package/src/components/UiSidebar/UiSidebarMenuAction.vue +19 -0
  189. package/src/components/UiSidebar/UiSidebarMenuButton.vue +27 -0
  190. package/src/components/UiSidebar/UiSidebarMenuSkeleton.vue +16 -0
  191. package/src/components/UiSidebar/UiSidebarMenuSubButton.vue +24 -0
  192. package/src/components/UiSidebar/UiSidebarProvider.vue +18 -0
  193. package/src/components/UiSidebar/UiSidebarSeparator.vue +13 -0
  194. package/src/components/UiSidebar/__tests__/UiSidebar.test.ts +221 -0
  195. package/src/components/UiSidebar/index.ts +34 -0
  196. package/src/components/UiSidebar/types.ts +168 -0
  197. package/src/components/UiSkeleton/UiSkeleton.stories.ts +247 -0
  198. package/src/components/UiSkeleton/UiSkeleton.vue +24 -0
  199. package/src/components/UiSkeleton/types.ts +25 -0
  200. package/src/components/UiSlider/UiSlider.stories.ts +226 -0
  201. package/src/components/UiSlider/UiSlider.vue +44 -0
  202. package/src/components/UiSlider/__tests__/UiSlider.test.ts +76 -0
  203. package/src/components/UiSlider/index.ts +2 -0
  204. package/src/components/UiSlider/types.ts +100 -0
  205. package/src/components/UiSpinner/UiSpinner.stories.ts +143 -0
  206. package/src/components/UiSpinner/UiSpinner.vue +16 -0
  207. package/src/components/UiSpinner/types.ts +15 -0
  208. package/src/components/UiStepper/UiStepper.stories.ts +425 -0
  209. package/src/components/UiStepper/UiStepper.vue +27 -0
  210. package/src/components/UiStepper/UiStepperDescription.vue +20 -0
  211. package/src/components/UiStepper/UiStepperIndicator.vue +13 -0
  212. package/src/components/UiStepper/UiStepperItem.vue +25 -0
  213. package/src/components/UiStepper/UiStepperSeparator.vue +17 -0
  214. package/src/components/UiStepper/UiStepperTitle.vue +19 -0
  215. package/src/components/UiStepper/UiStepperTrigger.vue +18 -0
  216. package/src/components/UiStepper/__tests__/UiStepper.test.ts +167 -0
  217. package/src/components/UiStepper/index.ts +9 -0
  218. package/src/components/UiStepper/types.ts +65 -0
  219. package/src/components/UiSwitch/UiSwitch.stories.ts +120 -0
  220. package/src/components/UiSwitch/UiSwitch.vue +21 -0
  221. package/src/components/UiSwitch/types.ts +24 -0
  222. package/src/components/UiTable/UiTable.stories.ts +505 -0
  223. package/src/components/UiTable/UiTable.vue +13 -0
  224. package/src/components/UiTable/UiTableBody.vue +13 -0
  225. package/src/components/UiTable/UiTableCaption.vue +13 -0
  226. package/src/components/UiTable/UiTableCell.vue +16 -0
  227. package/src/components/UiTable/UiTableEmpty.vue +18 -0
  228. package/src/components/UiTable/UiTableFooter.vue +13 -0
  229. package/src/components/UiTable/UiTableHead.vue +18 -0
  230. package/src/components/UiTable/UiTableHeader.vue +13 -0
  231. package/src/components/UiTable/UiTableRow.vue +18 -0
  232. package/src/components/UiTable/types.ts +67 -0
  233. package/src/components/UiTabs/UiTabs.stories.ts +475 -0
  234. package/src/components/UiTabs/UiTabs.vue +31 -0
  235. package/src/components/UiTabs/UiTabsContent.vue +16 -0
  236. package/src/components/UiTabs/UiTabsList.vue +16 -0
  237. package/src/components/UiTabs/UiTabsTrigger.vue +16 -0
  238. package/src/components/UiTabs/types.ts +67 -0
  239. package/src/components/UiTagsInput/UiTagsInput.stories.ts +538 -0
  240. package/src/components/UiTagsInput/UiTagsInput.vue +20 -0
  241. package/src/components/UiTagsInput/UiTagsInputInput.vue +14 -0
  242. package/src/components/UiTagsInput/UiTagsInputItem.vue +16 -0
  243. package/src/components/UiTagsInput/UiTagsInputItemDelete.vue +13 -0
  244. package/src/components/UiTagsInput/UiTagsInputItemText.vue +11 -0
  245. package/src/components/UiTagsInput/types.ts +51 -0
  246. package/src/components/UiTextarea/UiTextarea.stories.ts +107 -0
  247. package/src/components/UiTextarea/UiTextarea.vue +19 -0
  248. package/src/components/UiTextarea/types.ts +29 -0
  249. package/src/components/UiToggle/UiToggle.stories.ts +370 -0
  250. package/src/components/UiToggle/UiToggle.vue +28 -0
  251. package/src/components/UiToggle/types.ts +34 -0
  252. package/src/components/UiToggleGroup/UiToggleGroup.stories.ts +441 -0
  253. package/src/components/UiToggleGroup/UiToggleGroup.vue +52 -0
  254. package/src/components/UiToggleGroup/UiToggleGroupItem.vue +21 -0
  255. package/src/components/UiToggleGroup/__tests__/UiToggleGroup.test.ts +394 -0
  256. package/src/components/UiToggleGroup/index.ts +3 -0
  257. package/src/components/UiToggleGroup/types.ts +132 -0
  258. package/src/components/UiTooltip/UiTooltip.stories.ts +550 -0
  259. package/src/components/UiTooltip/UiTooltip.vue +42 -0
  260. package/src/components/UiTooltip/index.ts +10 -0
  261. package/src/components/UiTooltip/types.ts +52 -0
  262. package/src/components/core/accordion/Accordion.vue +15 -0
  263. package/src/components/core/accordion/AccordionItem.vue +24 -0
  264. package/src/components/core/accordion/AccordionTrigger.vue +36 -0
  265. package/src/components/core/alert/index.ts +24 -0
  266. package/src/components/core/alert-dialog/AlertDialogAction.vue +18 -0
  267. package/src/components/core/alert-dialog/AlertDialogCancel.vue +21 -0
  268. package/src/components/core/alert-dialog/AlertDialogContent.vue +44 -0
  269. package/src/components/core/badge/index.ts +24 -0
  270. package/src/components/core/button/index.ts +36 -0
  271. package/src/components/core/calendar/Calendar.vue +206 -0
  272. package/src/components/core/calendar/CalendarCellTrigger.vue +44 -0
  273. package/src/components/core/calendar/CalendarNextButton.vue +33 -0
  274. package/src/components/core/calendar/CalendarPrevButton.vue +33 -0
  275. package/src/components/core/card/Card.vue +22 -0
  276. package/src/components/core/checkbox/Checkbox.vue +38 -0
  277. package/src/components/core/drawer/DrawerContent.vue +52 -0
  278. package/src/components/core/dropdown-menu/DropdownMenuCheckboxItem.vue +41 -0
  279. package/src/components/core/dropdown-menu/DropdownMenuContent.vue +40 -0
  280. package/src/components/core/dropdown-menu/DropdownMenuItem.vue +41 -0
  281. package/src/components/core/dropdown-menu/DropdownMenuRadioItem.vue +38 -0
  282. package/src/components/core/dropdown-menu/DropdownMenuSubContent.vue +29 -0
  283. package/src/components/core/dropdown-menu/DropdownMenuSubTrigger.vue +31 -0
  284. package/src/components/core/field/FieldError.vue +69 -0
  285. package/src/components/core/field/FieldLabel.vue +28 -0
  286. package/src/components/core/field/FieldSeparator.vue +28 -0
  287. package/src/components/core/index.ts +4 -0
  288. package/src/components/core/input/Input.vue +35 -0
  289. package/src/components/core/item/Item.vue +33 -0
  290. package/src/components/core/item/ItemActions.vue +14 -0
  291. package/src/components/core/item/ItemContent.vue +17 -0
  292. package/src/components/core/item/ItemDescription.vue +23 -0
  293. package/src/components/core/item/ItemFooter.vue +17 -0
  294. package/src/components/core/item/ItemGroup.vue +18 -0
  295. package/src/components/core/item/ItemHeader.vue +17 -0
  296. package/src/components/core/item/ItemMedia.vue +21 -0
  297. package/src/components/core/item/ItemSeparator.vue +12 -0
  298. package/src/components/core/item/ItemTitle.vue +17 -0
  299. package/src/components/core/item/index.ts +53 -0
  300. package/src/components/core/listbox/ListboxItem.vue +32 -0
  301. package/src/components/core/native-select/NativeSelect.vue +57 -0
  302. package/src/components/core/native-select/NativeSelectOptGroup.vue +18 -0
  303. package/src/components/core/native-select/NativeSelectOption.vue +18 -0
  304. package/src/components/core/navigation-menu/NavigationMenu.vue +40 -0
  305. package/src/components/core/navigation-menu/NavigationMenuContent.vue +28 -0
  306. package/src/components/core/navigation-menu/NavigationMenuIndicator.vue +26 -0
  307. package/src/components/core/navigation-menu/NavigationMenuItem.vue +19 -0
  308. package/src/components/core/navigation-menu/NavigationMenuLink.vue +27 -0
  309. package/src/components/core/navigation-menu/NavigationMenuList.vue +21 -0
  310. package/src/components/core/navigation-menu/NavigationMenuTrigger.vue +27 -0
  311. package/src/components/core/navigation-menu/NavigationMenuViewport.vue +26 -0
  312. package/src/components/core/navigation-menu/index.ts +14 -0
  313. package/src/components/core/popover/PopoverContent.vue +41 -0
  314. package/src/components/core/radio-group/RadioGroupItem.vue +37 -0
  315. package/src/components/core/range-calendar/RangeCalendar.vue +73 -0
  316. package/src/components/core/range-calendar/RangeCalendarCellTrigger.vue +48 -0
  317. package/src/components/core/range-calendar/RangeCalendarHeading.vue +30 -0
  318. package/src/components/core/range-calendar/RangeCalendarNextButton.vue +34 -0
  319. package/src/components/core/range-calendar/RangeCalendarPrevButton.vue +34 -0
  320. package/src/components/core/select/Select.vue +15 -0
  321. package/src/components/core/select/SelectContent.vue +55 -0
  322. package/src/components/core/select/SelectItem.vue +39 -0
  323. package/src/components/core/select/SelectScrollDownButton.vue +26 -0
  324. package/src/components/core/select/SelectScrollUpButton.vue +26 -0
  325. package/src/components/core/select/SelectTrigger.vue +37 -0
  326. package/src/components/core/sheet/Sheet.vue +15 -0
  327. package/src/components/core/sheet/SheetClose.vue +12 -0
  328. package/src/components/core/sheet/SheetContent.vue +56 -0
  329. package/src/components/core/sheet/SheetDescription.vue +19 -0
  330. package/src/components/core/sheet/SheetFooter.vue +9 -0
  331. package/src/components/core/sheet/SheetHeader.vue +9 -0
  332. package/src/components/core/sheet/SheetOverlay.vue +24 -0
  333. package/src/components/core/sheet/SheetTitle.vue +19 -0
  334. package/src/components/core/sheet/SheetTrigger.vue +12 -0
  335. package/src/components/core/sheet/index.ts +8 -0
  336. package/src/components/core/sidebar/Sidebar.vue +105 -0
  337. package/src/components/core/sidebar/SidebarContent.vue +21 -0
  338. package/src/components/core/sidebar/SidebarFooter.vue +16 -0
  339. package/src/components/core/sidebar/SidebarGroup.vue +16 -0
  340. package/src/components/core/sidebar/SidebarGroupAction.vue +25 -0
  341. package/src/components/core/sidebar/SidebarGroupContent.vue +16 -0
  342. package/src/components/core/sidebar/SidebarGroupLabel.vue +23 -0
  343. package/src/components/core/sidebar/SidebarHeader.vue +16 -0
  344. package/src/components/core/sidebar/SidebarInput.vue +17 -0
  345. package/src/components/core/sidebar/SidebarInset.vue +21 -0
  346. package/src/components/core/sidebar/SidebarMenu.vue +16 -0
  347. package/src/components/core/sidebar/SidebarMenuAction.vue +33 -0
  348. package/src/components/core/sidebar/SidebarMenuBadge.vue +26 -0
  349. package/src/components/core/sidebar/SidebarMenuButton.vue +49 -0
  350. package/src/components/core/sidebar/SidebarMenuButtonChild.vue +36 -0
  351. package/src/components/core/sidebar/SidebarMenuItem.vue +16 -0
  352. package/src/components/core/sidebar/SidebarMenuSkeleton.vue +32 -0
  353. package/src/components/core/sidebar/SidebarMenuSub.vue +22 -0
  354. package/src/components/core/sidebar/SidebarMenuSubButton.vue +38 -0
  355. package/src/components/core/sidebar/SidebarMenuSubItem.vue +16 -0
  356. package/src/components/core/sidebar/SidebarProvider.vue +102 -0
  357. package/src/components/core/sidebar/SidebarRail.vue +33 -0
  358. package/src/components/core/sidebar/SidebarSeparator.vue +17 -0
  359. package/src/components/core/sidebar/SidebarTrigger.vue +25 -0
  360. package/src/components/core/sidebar/index.ts +58 -0
  361. package/src/components/core/sidebar/utils.ts +19 -0
  362. package/src/components/core/spinner/Spinner.vue +19 -0
  363. package/src/components/core/stepper/Stepper.vue +20 -0
  364. package/src/components/core/stepper/StepperDescription.vue +23 -0
  365. package/src/components/core/stepper/StepperIndicator.vue +34 -0
  366. package/src/components/core/stepper/StepperItem.vue +23 -0
  367. package/src/components/core/stepper/StepperSeparator.vue +29 -0
  368. package/src/components/core/stepper/StepperTitle.vue +24 -0
  369. package/src/components/core/stepper/StepperTrigger.vue +22 -0
  370. package/src/components/core/stepper/index.ts +7 -0
  371. package/src/components/core/switch/Switch.vue +40 -0
  372. package/src/components/core/table/TableRow.vue +24 -0
  373. package/src/components/core/tabs/Tabs.vue +24 -0
  374. package/src/components/core/tabs/TabsTrigger.vue +28 -0
  375. package/src/components/core/tags-input/TagsInput.vue +33 -0
  376. package/src/components/core/textarea/Textarea.vue +33 -0
  377. package/src/components/core/toggle/index.ts +26 -0
  378. package/src/components/core/toggle-group/ToggleGroup.vue +38 -0
  379. package/src/components/core/toggle-group/ToggleGroupItem.vue +37 -0
  380. package/src/components/core/toggle-group/context.ts +11 -0
  381. package/src/components/core/toggle-group/index.ts +28 -0
  382. package/src/components/core/tooltip/TooltipContent.vue +40 -0
  383. package/src/components/index.ts +45 -0
  384. package/src/index.ts +6 -10
  385. package/src/patterns/UiDataTable/UiDataTable.stories.ts +1577 -0
  386. package/src/patterns/UiDataTable/UiDataTable.vue +129 -0
  387. package/src/patterns/UiDataTable/UiDataTableColumnHeader.vue +96 -0
  388. package/src/patterns/UiDataTable/UiDataTablePagination.vue +119 -0
  389. package/src/patterns/UiDataTable/UiDataTableToolbar.vue +60 -0
  390. package/src/patterns/UiDataTable/__tests__/UiDataTable.test.ts +372 -0
  391. package/src/patterns/UiDataTable/types.ts +116 -0
  392. package/src/patterns/UiDatePicker/UiDatePicker.stories.ts +976 -0
  393. package/src/patterns/UiDatePicker/UiDatePicker.vue +193 -0
  394. package/src/patterns/UiDatePicker/types.ts +219 -0
  395. package/src/patterns/UiPlaceholder/types.ts +7 -0
  396. package/src/patterns/index.ts +7 -0
  397. package/src/templates/UiTemplatePlaceholder/types.ts +0 -1
  398. package/src/templates/index.ts +4 -5
  399. package/src/theme/Background.stories.ts +274 -0
  400. package/src/theme/Border.stories.ts +158 -0
  401. package/src/theme/Extended.stories.ts +268 -0
  402. package/src/theme/Flex.stories.ts +313 -0
  403. package/src/theme/Grid.stories.ts +302 -0
  404. package/src/theme/Overlay.stories.ts +124 -0
  405. package/src/theme/Theme.stories.ts +309 -0
  406. package/src/theme/Typography.stories.ts +230 -0
  407. package/tokens.json +11389 -0
  408. package/src/compositions/UiCompositionPlaceholder/UiCompositionPlaceholder.vue +0 -9
  409. package/src/compositions/UiCompositionPlaceholder/index.ts +0 -1
  410. package/src/compositions/UiCompositionPlaceholder/types.ts +0 -8
  411. package/src/compositions/UiDataTable/UiDataTable.stories.ts +0 -1574
  412. package/src/compositions/UiDataTable/UiDataTable.vue +0 -129
  413. package/src/compositions/UiDataTable/UiDataTableColumnHeader.vue +0 -111
  414. package/src/compositions/UiDataTable/UiDataTablePagination.vue +0 -147
  415. package/src/compositions/UiDataTable/UiDataTableToolbar.vue +0 -85
  416. package/src/compositions/UiDataTable/__tests__/UiDataTable.test.ts +0 -372
  417. package/src/compositions/UiDataTable/types.ts +0 -39
  418. package/src/compositions/UiDatePicker/UiDatePicker.stories.ts +0 -976
  419. package/src/compositions/UiDatePicker/UiDatePicker.vue +0 -193
  420. package/src/compositions/UiDatePicker/types.ts +0 -220
  421. package/src/compositions/index.ts +0 -8
  422. package/src/foundations/UiPlaceholder/types.ts +0 -8
  423. package/src/foundations/index.ts +0 -6
  424. package/src/primitives/UiAccordion/UiAccordion.stories.ts +0 -476
  425. package/src/primitives/UiAccordion/UiAccordion.vue +0 -31
  426. package/src/primitives/UiAccordion/UiAccordionContent.vue +0 -16
  427. package/src/primitives/UiAccordion/UiAccordionItem.vue +0 -16
  428. package/src/primitives/UiAccordion/UiAccordionTrigger.vue +0 -23
  429. package/src/primitives/UiAccordion/types.ts +0 -95
  430. package/src/primitives/UiAlert/UiAlert.stories.ts +0 -199
  431. package/src/primitives/UiAlert/UiAlert.vue +0 -27
  432. package/src/primitives/UiAlert/UiAlertDescription.vue +0 -13
  433. package/src/primitives/UiAlert/UiAlertTitle.vue +0 -13
  434. package/src/primitives/UiAlert/types.ts +0 -14
  435. package/src/primitives/UiAlertDialog/UiAlertDialog.stories.ts +0 -186
  436. package/src/primitives/UiAlertDialog/UiAlertDialog.vue +0 -18
  437. package/src/primitives/UiAlertDialog/UiAlertDialogAction.vue +0 -16
  438. package/src/primitives/UiAlertDialog/UiAlertDialogCancel.vue +0 -16
  439. package/src/primitives/UiAlertDialog/UiAlertDialogContent.vue +0 -26
  440. package/src/primitives/UiAlertDialog/UiAlertDialogDescription.vue +0 -16
  441. package/src/primitives/UiAlertDialog/UiAlertDialogFooter.vue +0 -13
  442. package/src/primitives/UiAlertDialog/UiAlertDialogHeader.vue +0 -16
  443. package/src/primitives/UiAlertDialog/UiAlertDialogTitle.vue +0 -16
  444. package/src/primitives/UiAlertDialog/UiAlertDialogTrigger.vue +0 -17
  445. package/src/primitives/UiAlertDialog/index.ts +0 -9
  446. package/src/primitives/UiAlertDialog/types.ts +0 -83
  447. package/src/primitives/UiAvatar/UiAvatar.stories.ts +0 -194
  448. package/src/primitives/UiAvatar/UiAvatar.vue +0 -13
  449. package/src/primitives/UiAvatar/UiAvatarFallback.vue +0 -13
  450. package/src/primitives/UiAvatar/UiAvatarImage.vue +0 -14
  451. package/src/primitives/UiAvatar/index.ts +0 -3
  452. package/src/primitives/UiAvatar/types.ts +0 -17
  453. package/src/primitives/UiBadge/UiBadge.stories.ts +0 -373
  454. package/src/primitives/UiBadge/UiBadge.vue +0 -21
  455. package/src/primitives/UiBadge/__tests__/UiBadge.test.ts +0 -44
  456. package/src/primitives/UiBadge/types.ts +0 -48
  457. package/src/primitives/UiButton/UiButton.stories.ts +0 -537
  458. package/src/primitives/UiButton/UiButton.vue +0 -72
  459. package/src/primitives/UiButton/__tests__/UiButton.test.ts +0 -133
  460. package/src/primitives/UiButton/types.ts +0 -87
  461. package/src/primitives/UiCalendar/UiCalendar.stories.ts +0 -797
  462. package/src/primitives/UiCalendar/UiCalendar.vue +0 -67
  463. package/src/primitives/UiCalendar/types.ts +0 -236
  464. package/src/primitives/UiCard/UiCard.stories.ts +0 -197
  465. package/src/primitives/UiCard/UiCard.vue +0 -13
  466. package/src/primitives/UiCard/UiCardAction.vue +0 -13
  467. package/src/primitives/UiCard/UiCardContent.vue +0 -13
  468. package/src/primitives/UiCard/UiCardDescription.vue +0 -13
  469. package/src/primitives/UiCard/UiCardFooter.vue +0 -13
  470. package/src/primitives/UiCard/UiCardHeader.vue +0 -13
  471. package/src/primitives/UiCard/UiCardTitle.vue +0 -13
  472. package/src/primitives/UiCard/index.ts +0 -7
  473. package/src/primitives/UiCard/types.ts +0 -10
  474. package/src/primitives/UiCheckbox/UiCheckbox.stories.ts +0 -231
  475. package/src/primitives/UiCheckbox/UiCheckbox.vue +0 -19
  476. package/src/primitives/UiCheckbox/types.ts +0 -30
  477. package/src/primitives/UiDrawer/UiDrawer.stories.ts +0 -602
  478. package/src/primitives/UiDrawer/UiDrawer.vue +0 -19
  479. package/src/primitives/UiDrawer/UiDrawerClose.vue +0 -16
  480. package/src/primitives/UiDrawer/UiDrawerContent.vue +0 -29
  481. package/src/primitives/UiDrawer/UiDrawerDescription.vue +0 -16
  482. package/src/primitives/UiDrawer/UiDrawerFooter.vue +0 -16
  483. package/src/primitives/UiDrawer/UiDrawerHeader.vue +0 -16
  484. package/src/primitives/UiDrawer/UiDrawerTitle.vue +0 -16
  485. package/src/primitives/UiDrawer/UiDrawerTrigger.vue +0 -16
  486. package/src/primitives/UiDrawer/index.ts +0 -8
  487. package/src/primitives/UiDrawer/types.ts +0 -96
  488. package/src/primitives/UiDropdownMenu/UiDropdownMenu.stories.ts +0 -760
  489. package/src/primitives/UiDropdownMenu/UiDropdownMenu.vue +0 -25
  490. package/src/primitives/UiDropdownMenu/UiDropdownMenuCheckboxItem.vue +0 -29
  491. package/src/primitives/UiDropdownMenu/UiDropdownMenuContent.vue +0 -27
  492. package/src/primitives/UiDropdownMenu/UiDropdownMenuGroup.vue +0 -13
  493. package/src/primitives/UiDropdownMenu/UiDropdownMenuItem.vue +0 -26
  494. package/src/primitives/UiDropdownMenu/UiDropdownMenuLabel.vue +0 -18
  495. package/src/primitives/UiDropdownMenu/UiDropdownMenuRadioGroup.vue +0 -20
  496. package/src/primitives/UiDropdownMenu/UiDropdownMenuRadioItem.vue +0 -26
  497. package/src/primitives/UiDropdownMenu/UiDropdownMenuSeparator.vue +0 -11
  498. package/src/primitives/UiDropdownMenu/UiDropdownMenuShortcut.vue +0 -13
  499. package/src/primitives/UiDropdownMenu/UiDropdownMenuSub.vue +0 -26
  500. package/src/primitives/UiDropdownMenu/UiDropdownMenuSubContent.vue +0 -23
  501. package/src/primitives/UiDropdownMenu/UiDropdownMenuSubTrigger.vue +0 -24
  502. package/src/primitives/UiDropdownMenu/UiDropdownMenuTrigger.vue +0 -24
  503. package/src/primitives/UiDropdownMenu/types.ts +0 -219
  504. package/src/primitives/UiField/UiField.stories.ts +0 -1496
  505. package/src/primitives/UiField/UiField.vue +0 -18
  506. package/src/primitives/UiField/UiFieldContent.vue +0 -13
  507. package/src/primitives/UiField/UiFieldDescription.vue +0 -13
  508. package/src/primitives/UiField/UiFieldError.vue +0 -20
  509. package/src/primitives/UiField/UiFieldGroup.vue +0 -13
  510. package/src/primitives/UiField/UiFieldLabel.vue +0 -16
  511. package/src/primitives/UiField/UiFieldLegend.vue +0 -13
  512. package/src/primitives/UiField/UiFieldSeparator.vue +0 -13
  513. package/src/primitives/UiField/UiFieldSet.vue +0 -13
  514. package/src/primitives/UiField/UiFieldTitle.vue +0 -13
  515. package/src/primitives/UiField/index.ts +0 -10
  516. package/src/primitives/UiField/types.ts +0 -47
  517. package/src/primitives/UiIcon/UiIcon.stories.ts +0 -141
  518. package/src/primitives/UiIcon/UiIcon.vue +0 -52
  519. package/src/primitives/UiIcon/types.ts +0 -42
  520. package/src/primitives/UiIconButton/UiIconButton.stories.ts +0 -446
  521. package/src/primitives/UiIconButton/UiIconButton.vue +0 -63
  522. package/src/primitives/UiIconButton/__tests__/UiIconButton.test.ts +0 -102
  523. package/src/primitives/UiIconButton/types.ts +0 -67
  524. package/src/primitives/UiInput/UiInput.stories.ts +0 -193
  525. package/src/primitives/UiInput/UiInput.vue +0 -19
  526. package/src/primitives/UiInput/types.ts +0 -31
  527. package/src/primitives/UiKbd/UiKbd.stories.ts +0 -551
  528. package/src/primitives/UiKbd/UiKbd.vue +0 -62
  529. package/src/primitives/UiKbd/UiKbdGroup.vue +0 -16
  530. package/src/primitives/UiKbd/types.ts +0 -32
  531. package/src/primitives/UiLabel/UiLabel.stories.ts +0 -192
  532. package/src/primitives/UiLabel/UiLabel.vue +0 -16
  533. package/src/primitives/UiLabel/types.ts +0 -16
  534. package/src/primitives/UiListbox/UiListbox.stories.ts +0 -607
  535. package/src/primitives/UiListbox/UiListbox.vue +0 -30
  536. package/src/primitives/UiListbox/UiListboxContent.vue +0 -16
  537. package/src/primitives/UiListbox/UiListboxFilter.vue +0 -16
  538. package/src/primitives/UiListbox/UiListboxGroup.vue +0 -16
  539. package/src/primitives/UiListbox/UiListboxGroupLabel.vue +0 -16
  540. package/src/primitives/UiListbox/UiListboxItem.vue +0 -20
  541. package/src/primitives/UiListbox/UiListboxItemIndicator.vue +0 -16
  542. package/src/primitives/UiListbox/types.ts +0 -119
  543. package/src/primitives/UiPopover/UiPopover.stories.ts +0 -394
  544. package/src/primitives/UiPopover/UiPopover.vue +0 -17
  545. package/src/primitives/UiPopover/UiPopoverContent.vue +0 -27
  546. package/src/primitives/UiPopover/UiPopoverTrigger.vue +0 -16
  547. package/src/primitives/UiPopover/types.ts +0 -86
  548. package/src/primitives/UiProgress/UiProgress.stories.ts +0 -92
  549. package/src/primitives/UiProgress/UiProgress.vue +0 -25
  550. package/src/primitives/UiProgress/types.ts +0 -16
  551. package/src/primitives/UiRadioGroup/UiRadioGroup.stories.ts +0 -291
  552. package/src/primitives/UiRadioGroup/UiRadioGroup.vue +0 -43
  553. package/src/primitives/UiRadioGroup/UiRadioGroupItem.vue +0 -18
  554. package/src/primitives/UiRadioGroup/types.ts +0 -66
  555. package/src/primitives/UiRangeCalendar/UiRangeCalendar.stories.ts +0 -609
  556. package/src/primitives/UiRangeCalendar/UiRangeCalendar.vue +0 -50
  557. package/src/primitives/UiRangeCalendar/types.ts +0 -184
  558. package/src/primitives/UiSelect/UiSelect.stories.ts +0 -425
  559. package/src/primitives/UiSelect/UiSelect.vue +0 -47
  560. package/src/primitives/UiSelect/UiSelectContent.vue +0 -30
  561. package/src/primitives/UiSelect/UiSelectGroup.vue +0 -13
  562. package/src/primitives/UiSelect/UiSelectItem.vue +0 -19
  563. package/src/primitives/UiSelect/UiSelectLabel.vue +0 -13
  564. package/src/primitives/UiSelect/UiSelectSeparator.vue +0 -11
  565. package/src/primitives/UiSelect/UiSelectTrigger.vue +0 -30
  566. package/src/primitives/UiSelect/UiSelectValue.vue +0 -18
  567. package/src/primitives/UiSelect/types.ts +0 -93
  568. package/src/primitives/UiSeparator/UiSeparator.stories.ts +0 -177
  569. package/src/primitives/UiSeparator/UiSeparator.vue +0 -17
  570. package/src/primitives/UiSeparator/types.ts +0 -23
  571. package/src/primitives/UiSkeleton/UiSkeleton.stories.ts +0 -247
  572. package/src/primitives/UiSkeleton/UiSkeleton.vue +0 -24
  573. package/src/primitives/UiSkeleton/types.ts +0 -26
  574. package/src/primitives/UiSlider/UiSlider.stories.ts +0 -226
  575. package/src/primitives/UiSlider/UiSlider.vue +0 -44
  576. package/src/primitives/UiSlider/__tests__/UiSlider.test.ts +0 -76
  577. package/src/primitives/UiSlider/index.ts +0 -1
  578. package/src/primitives/UiSlider/types.ts +0 -101
  579. package/src/primitives/UiSpinner/UiSpinner.stories.ts +0 -143
  580. package/src/primitives/UiSpinner/UiSpinner.vue +0 -16
  581. package/src/primitives/UiSpinner/types.ts +0 -16
  582. package/src/primitives/UiSwitch/UiSwitch.stories.ts +0 -120
  583. package/src/primitives/UiSwitch/UiSwitch.vue +0 -21
  584. package/src/primitives/UiSwitch/types.ts +0 -25
  585. package/src/primitives/UiTable/UiTable.stories.ts +0 -505
  586. package/src/primitives/UiTable/UiTable.vue +0 -13
  587. package/src/primitives/UiTable/UiTableBody.vue +0 -13
  588. package/src/primitives/UiTable/UiTableCaption.vue +0 -13
  589. package/src/primitives/UiTable/UiTableCell.vue +0 -16
  590. package/src/primitives/UiTable/UiTableEmpty.vue +0 -18
  591. package/src/primitives/UiTable/UiTableFooter.vue +0 -13
  592. package/src/primitives/UiTable/UiTableHead.vue +0 -18
  593. package/src/primitives/UiTable/UiTableHeader.vue +0 -13
  594. package/src/primitives/UiTable/UiTableRow.vue +0 -18
  595. package/src/primitives/UiTable/types.ts +0 -68
  596. package/src/primitives/UiTabs/UiTabs.stories.ts +0 -456
  597. package/src/primitives/UiTabs/UiTabs.vue +0 -31
  598. package/src/primitives/UiTabs/UiTabsContent.vue +0 -16
  599. package/src/primitives/UiTabs/UiTabsList.vue +0 -16
  600. package/src/primitives/UiTabs/UiTabsTrigger.vue +0 -16
  601. package/src/primitives/UiTabs/types.ts +0 -68
  602. package/src/primitives/UiTagsInput/UiTagsInput.stories.ts +0 -538
  603. package/src/primitives/UiTagsInput/UiTagsInput.vue +0 -27
  604. package/src/primitives/UiTagsInput/UiTagsInputInput.vue +0 -14
  605. package/src/primitives/UiTagsInput/UiTagsInputItem.vue +0 -16
  606. package/src/primitives/UiTagsInput/UiTagsInputItemDelete.vue +0 -16
  607. package/src/primitives/UiTagsInput/UiTagsInputItemText.vue +0 -14
  608. package/src/primitives/UiTagsInput/types.ts +0 -60
  609. package/src/primitives/UiTextarea/UiTextarea.stories.ts +0 -107
  610. package/src/primitives/UiTextarea/UiTextarea.vue +0 -19
  611. package/src/primitives/UiTextarea/types.ts +0 -30
  612. package/src/primitives/UiToggle/UiToggle.stories.ts +0 -370
  613. package/src/primitives/UiToggle/UiToggle.vue +0 -28
  614. package/src/primitives/UiToggle/types.ts +0 -35
  615. package/src/primitives/UiTooltip/UiTooltip.stories.ts +0 -550
  616. package/src/primitives/UiTooltip/UiTooltip.vue +0 -42
  617. package/src/primitives/UiTooltip/index.ts +0 -2
  618. package/src/primitives/UiTooltip/types.ts +0 -53
  619. package/src/primitives/index.ts +0 -40
  620. package/src/primitives/shadcn/accordion/Accordion.vue +0 -15
  621. package/src/primitives/shadcn/accordion/AccordionItem.vue +0 -24
  622. package/src/primitives/shadcn/accordion/AccordionTrigger.vue +0 -36
  623. package/src/primitives/shadcn/alert/index.ts +0 -24
  624. package/src/primitives/shadcn/alert-dialog/AlertDialogAction.vue +0 -18
  625. package/src/primitives/shadcn/alert-dialog/AlertDialogCancel.vue +0 -21
  626. package/src/primitives/shadcn/alert-dialog/AlertDialogContent.vue +0 -44
  627. package/src/primitives/shadcn/badge/index.ts +0 -24
  628. package/src/primitives/shadcn/button/index.ts +0 -36
  629. package/src/primitives/shadcn/calendar/Calendar.vue +0 -206
  630. package/src/primitives/shadcn/calendar/CalendarCellTrigger.vue +0 -44
  631. package/src/primitives/shadcn/calendar/CalendarNextButton.vue +0 -33
  632. package/src/primitives/shadcn/calendar/CalendarPrevButton.vue +0 -33
  633. package/src/primitives/shadcn/card/Card.vue +0 -22
  634. package/src/primitives/shadcn/checkbox/Checkbox.vue +0 -38
  635. package/src/primitives/shadcn/drawer/DrawerContent.vue +0 -52
  636. package/src/primitives/shadcn/dropdown-menu/DropdownMenuCheckboxItem.vue +0 -41
  637. package/src/primitives/shadcn/dropdown-menu/DropdownMenuContent.vue +0 -40
  638. package/src/primitives/shadcn/dropdown-menu/DropdownMenuItem.vue +0 -41
  639. package/src/primitives/shadcn/dropdown-menu/DropdownMenuRadioItem.vue +0 -38
  640. package/src/primitives/shadcn/dropdown-menu/DropdownMenuSubContent.vue +0 -29
  641. package/src/primitives/shadcn/dropdown-menu/DropdownMenuSubTrigger.vue +0 -31
  642. package/src/primitives/shadcn/field/FieldError.vue +0 -69
  643. package/src/primitives/shadcn/field/FieldLabel.vue +0 -28
  644. package/src/primitives/shadcn/field/FieldSeparator.vue +0 -28
  645. package/src/primitives/shadcn/index.ts +0 -3
  646. package/src/primitives/shadcn/input/Input.vue +0 -35
  647. package/src/primitives/shadcn/listbox/ListboxItem.vue +0 -32
  648. package/src/primitives/shadcn/native-select/NativeSelect.vue +0 -57
  649. package/src/primitives/shadcn/native-select/NativeSelectOptGroup.vue +0 -18
  650. package/src/primitives/shadcn/native-select/NativeSelectOption.vue +0 -18
  651. package/src/primitives/shadcn/popover/PopoverContent.vue +0 -41
  652. package/src/primitives/shadcn/radio-group/RadioGroupItem.vue +0 -38
  653. package/src/primitives/shadcn/range-calendar/RangeCalendar.vue +0 -73
  654. package/src/primitives/shadcn/range-calendar/RangeCalendarCellTrigger.vue +0 -46
  655. package/src/primitives/shadcn/range-calendar/RangeCalendarHeading.vue +0 -30
  656. package/src/primitives/shadcn/range-calendar/RangeCalendarNextButton.vue +0 -34
  657. package/src/primitives/shadcn/range-calendar/RangeCalendarPrevButton.vue +0 -34
  658. package/src/primitives/shadcn/select/Select.vue +0 -15
  659. package/src/primitives/shadcn/select/SelectContent.vue +0 -55
  660. package/src/primitives/shadcn/select/SelectItem.vue +0 -39
  661. package/src/primitives/shadcn/select/SelectScrollDownButton.vue +0 -26
  662. package/src/primitives/shadcn/select/SelectScrollUpButton.vue +0 -26
  663. package/src/primitives/shadcn/select/SelectTrigger.vue +0 -37
  664. package/src/primitives/shadcn/spinner/Spinner.vue +0 -19
  665. package/src/primitives/shadcn/switch/Switch.vue +0 -40
  666. package/src/primitives/shadcn/table/TableRow.vue +0 -21
  667. package/src/primitives/shadcn/tabs/Tabs.vue +0 -24
  668. package/src/primitives/shadcn/tabs/TabsTrigger.vue +0 -28
  669. package/src/primitives/shadcn/tags-input/TagsInput.vue +0 -33
  670. package/src/primitives/shadcn/textarea/Textarea.vue +0 -33
  671. package/src/primitives/shadcn/toggle/index.ts +0 -27
  672. package/src/primitives/shadcn/tooltip/TooltipContent.vue +0 -40
  673. /package/src/{primitives → components}/UiAccordion/__tests__/UiAccordion.test.ts +0 -0
  674. /package/src/{primitives → components}/UiAccordion/index.ts +0 -0
  675. /package/src/{primitives → components}/UiAlert/__tests__/UiAlert.test.ts +0 -0
  676. /package/src/{primitives → components}/UiAlert/constants.ts +0 -0
  677. /package/src/{primitives → components}/UiAlert/index.ts +0 -0
  678. /package/src/{primitives → components}/UiAlertDialog/__tests__/UiAlertDialog.test.ts +0 -0
  679. /package/src/{primitives → components}/UiAvatar/__tests__/UiAvatar.test.ts +0 -0
  680. /package/src/{primitives → components}/UiBadge/constants.ts +0 -0
  681. /package/src/{primitives → components}/UiBadge/index.ts +0 -0
  682. /package/src/{primitives → components}/UiButton/index.ts +0 -0
  683. /package/src/{primitives → components}/UiCalendar/__tests__/UiCalendar.test.ts +0 -0
  684. /package/src/{primitives → components}/UiCalendar/index.ts +0 -0
  685. /package/src/{primitives → components}/UiCard/__tests__/UiCard.test.ts +0 -0
  686. /package/src/{primitives → components}/UiCard/__tests__/UiCardAction.test.ts +0 -0
  687. /package/src/{primitives → components}/UiCard/__tests__/UiCardContent.test.ts +0 -0
  688. /package/src/{primitives → components}/UiCard/__tests__/UiCardDescription.test.ts +0 -0
  689. /package/src/{primitives → components}/UiCard/__tests__/UiCardFooter.test.ts +0 -0
  690. /package/src/{primitives → components}/UiCard/__tests__/UiCardHeader.test.ts +0 -0
  691. /package/src/{primitives → components}/UiCard/__tests__/UiCardTitle.test.ts +0 -0
  692. /package/src/{primitives → components}/UiCheckbox/__tests__/UiCheckbox.test.ts +0 -0
  693. /package/src/{primitives → components}/UiCheckbox/index.ts +0 -0
  694. /package/src/{primitives → components}/UiDrawer/__tests__/UiDrawer.test.ts +0 -0
  695. /package/src/{primitives → components}/UiDropdownMenu/__tests__/UiDropdownMenu.test.ts +0 -0
  696. /package/src/{primitives → components}/UiDropdownMenu/index.ts +0 -0
  697. /package/src/{primitives → components}/UiField/__tests__/UiFieldError.test.ts +0 -0
  698. /package/src/{primitives → components}/UiIcon/__tests__/UiIcon.test.ts +0 -0
  699. /package/src/{primitives → components}/UiIcon/index.ts +0 -0
  700. /package/src/{primitives → components}/UiIconButton/index.ts +0 -0
  701. /package/src/{primitives → components}/UiInput/__tests__/UiInput.test.ts +0 -0
  702. /package/src/{primitives → components}/UiInput/index.ts +0 -0
  703. /package/src/{primitives → components}/UiKbd/__tests__/UiKbd.test.ts +0 -0
  704. /package/src/{primitives → components}/UiKbd/index.ts +0 -0
  705. /package/src/{primitives → components}/UiLabel/__tests__/UiLabel.test.ts +0 -0
  706. /package/src/{primitives → components}/UiLabel/index.ts +0 -0
  707. /package/src/{primitives → components}/UiListbox/__tests__/UiListbox.test.ts +0 -0
  708. /package/src/{primitives → components}/UiListbox/index.ts +0 -0
  709. /package/src/{primitives → components}/UiPopover/__tests__/UiPopover.test.ts +0 -0
  710. /package/src/{primitives → components}/UiPopover/index.ts +0 -0
  711. /package/src/{primitives → components}/UiProgress/__tests__/UiProgress.test.ts +0 -0
  712. /package/src/{primitives → components}/UiProgress/index.ts +0 -0
  713. /package/src/{primitives → components}/UiRadioGroup/__tests__/UiRadioGroup.test.ts +0 -0
  714. /package/src/{primitives → components}/UiRadioGroup/index.ts +0 -0
  715. /package/src/{primitives → components}/UiRangeCalendar/__tests__/UiRangeCalendar.test.ts +0 -0
  716. /package/src/{primitives → components}/UiRangeCalendar/index.ts +0 -0
  717. /package/src/{primitives → components}/UiSelect/__tests__/UiSelect.test.ts +0 -0
  718. /package/src/{primitives → components}/UiSelect/__tests__/UiSelectContent.test.ts +0 -0
  719. /package/src/{primitives → components}/UiSelect/__tests__/UiSelectGroup.test.ts +0 -0
  720. /package/src/{primitives → components}/UiSelect/__tests__/UiSelectItem.test.ts +0 -0
  721. /package/src/{primitives → components}/UiSelect/__tests__/UiSelectLabel.test.ts +0 -0
  722. /package/src/{primitives → components}/UiSelect/__tests__/UiSelectSeparator.test.ts +0 -0
  723. /package/src/{primitives → components}/UiSelect/__tests__/UiSelectTrigger.test.ts +0 -0
  724. /package/src/{primitives → components}/UiSelect/__tests__/UiSelectValue.test.ts +0 -0
  725. /package/src/{primitives → components}/UiSelect/index.ts +0 -0
  726. /package/src/{primitives → components}/UiSeparator/__tests__/UiSeparator.test.ts +0 -0
  727. /package/src/{primitives → components}/UiSeparator/index.ts +0 -0
  728. /package/src/{primitives → components}/UiSkeleton/__tests__/UiSkeleton.test.ts +0 -0
  729. /package/src/{primitives → components}/UiSkeleton/index.ts +0 -0
  730. /package/src/{primitives → components}/UiSpinner/__tests__/UiSpinner.test.ts +0 -0
  731. /package/src/{primitives → components}/UiSpinner/index.ts +0 -0
  732. /package/src/{primitives → components}/UiSwitch/__tests__/UiSwitch.test.ts +0 -0
  733. /package/src/{primitives → components}/UiSwitch/index.ts +0 -0
  734. /package/src/{primitives → components}/UiTable/__tests__/UiTable.test.ts +0 -0
  735. /package/src/{primitives → components}/UiTable/__tests__/UiTableBody.test.ts +0 -0
  736. /package/src/{primitives → components}/UiTable/__tests__/UiTableCaption.test.ts +0 -0
  737. /package/src/{primitives → components}/UiTable/__tests__/UiTableCell.test.ts +0 -0
  738. /package/src/{primitives → components}/UiTable/__tests__/UiTableEmpty.test.ts +0 -0
  739. /package/src/{primitives → components}/UiTable/__tests__/UiTableFooter.test.ts +0 -0
  740. /package/src/{primitives → components}/UiTable/__tests__/UiTableHead.test.ts +0 -0
  741. /package/src/{primitives → components}/UiTable/__tests__/UiTableHeader.test.ts +0 -0
  742. /package/src/{primitives → components}/UiTable/__tests__/UiTableRow.test.ts +0 -0
  743. /package/src/{primitives → components}/UiTable/index.ts +0 -0
  744. /package/src/{primitives → components}/UiTabs/__tests__/UiTabs.test.ts +0 -0
  745. /package/src/{primitives → components}/UiTabs/index.ts +0 -0
  746. /package/src/{primitives → components}/UiTagsInput/__tests__/UiTagsInput.test.ts +0 -0
  747. /package/src/{primitives → components}/UiTagsInput/index.ts +0 -0
  748. /package/src/{primitives → components}/UiTextarea/__tests__/UiTextarea.test.ts +0 -0
  749. /package/src/{primitives → components}/UiTextarea/index.ts +0 -0
  750. /package/src/{primitives → components}/UiToggle/__tests__/UiToggle.test.ts +0 -0
  751. /package/src/{primitives → components}/UiToggle/index.ts +0 -0
  752. /package/src/{primitives → components}/UiTooltip/__tests__/UiTooltip.test.ts +0 -0
  753. /package/src/{primitives/shadcn → components/core}/accordion/AccordionContent.vue +0 -0
  754. /package/src/{primitives/shadcn → components/core}/accordion/index.ts +0 -0
  755. /package/src/{primitives/shadcn → components/core}/alert/Alert.vue +0 -0
  756. /package/src/{primitives/shadcn → components/core}/alert/AlertDescription.vue +0 -0
  757. /package/src/{primitives/shadcn → components/core}/alert/AlertTitle.vue +0 -0
  758. /package/src/{primitives/shadcn → components/core}/alert-dialog/AlertDialog.vue +0 -0
  759. /package/src/{primitives/shadcn → components/core}/alert-dialog/AlertDialogDescription.vue +0 -0
  760. /package/src/{primitives/shadcn → components/core}/alert-dialog/AlertDialogFooter.vue +0 -0
  761. /package/src/{primitives/shadcn → components/core}/alert-dialog/AlertDialogHeader.vue +0 -0
  762. /package/src/{primitives/shadcn → components/core}/alert-dialog/AlertDialogTitle.vue +0 -0
  763. /package/src/{primitives/shadcn → components/core}/alert-dialog/AlertDialogTrigger.vue +0 -0
  764. /package/src/{primitives/shadcn → components/core}/alert-dialog/index.ts +0 -0
  765. /package/src/{primitives/shadcn → components/core}/avatar/Avatar.vue +0 -0
  766. /package/src/{primitives/shadcn → components/core}/avatar/AvatarFallback.vue +0 -0
  767. /package/src/{primitives/shadcn → components/core}/avatar/AvatarImage.vue +0 -0
  768. /package/src/{primitives/shadcn → components/core}/avatar/index.ts +0 -0
  769. /package/src/{primitives/shadcn → components/core}/badge/Badge.vue +0 -0
  770. /package/src/{primitives/shadcn → components/core}/button/Button.vue +0 -0
  771. /package/src/{primitives/shadcn → components/core}/calendar/CalendarCell.vue +0 -0
  772. /package/src/{primitives/shadcn → components/core}/calendar/CalendarGrid.vue +0 -0
  773. /package/src/{primitives/shadcn → components/core}/calendar/CalendarGridBody.vue +0 -0
  774. /package/src/{primitives/shadcn → components/core}/calendar/CalendarGridHead.vue +0 -0
  775. /package/src/{primitives/shadcn → components/core}/calendar/CalendarGridRow.vue +0 -0
  776. /package/src/{primitives/shadcn → components/core}/calendar/CalendarHeadCell.vue +0 -0
  777. /package/src/{primitives/shadcn → components/core}/calendar/CalendarHeader.vue +0 -0
  778. /package/src/{primitives/shadcn → components/core}/calendar/CalendarHeading.vue +0 -0
  779. /package/src/{primitives/shadcn → components/core}/calendar/index.ts +0 -0
  780. /package/src/{primitives/shadcn → components/core}/card/CardAction.vue +0 -0
  781. /package/src/{primitives/shadcn → components/core}/card/CardContent.vue +0 -0
  782. /package/src/{primitives/shadcn → components/core}/card/CardDescription.vue +0 -0
  783. /package/src/{primitives/shadcn → components/core}/card/CardFooter.vue +0 -0
  784. /package/src/{primitives/shadcn → components/core}/card/CardHeader.vue +0 -0
  785. /package/src/{primitives/shadcn → components/core}/card/CardTitle.vue +0 -0
  786. /package/src/{primitives/shadcn → components/core}/card/index.ts +0 -0
  787. /package/src/{primitives/shadcn → components/core}/checkbox/index.ts +0 -0
  788. /package/src/{primitives/shadcn → components/core}/drawer/Drawer.vue +0 -0
  789. /package/src/{primitives/shadcn → components/core}/drawer/DrawerClose.vue +0 -0
  790. /package/src/{primitives/shadcn → components/core}/drawer/DrawerDescription.vue +0 -0
  791. /package/src/{primitives/shadcn → components/core}/drawer/DrawerFooter.vue +0 -0
  792. /package/src/{primitives/shadcn → components/core}/drawer/DrawerHeader.vue +0 -0
  793. /package/src/{primitives/shadcn → components/core}/drawer/DrawerTitle.vue +0 -0
  794. /package/src/{primitives/shadcn → components/core}/drawer/DrawerTrigger.vue +0 -0
  795. /package/src/{primitives/shadcn → components/core}/drawer/index.ts +0 -0
  796. /package/src/{primitives/shadcn → components/core}/dropdown-menu/DropdownMenu.vue +0 -0
  797. /package/src/{primitives/shadcn → components/core}/dropdown-menu/DropdownMenuGroup.vue +0 -0
  798. /package/src/{primitives/shadcn → components/core}/dropdown-menu/DropdownMenuLabel.vue +0 -0
  799. /package/src/{primitives/shadcn → components/core}/dropdown-menu/DropdownMenuRadioGroup.vue +0 -0
  800. /package/src/{primitives/shadcn → components/core}/dropdown-menu/DropdownMenuSeparator.vue +0 -0
  801. /package/src/{primitives/shadcn → components/core}/dropdown-menu/DropdownMenuShortcut.vue +0 -0
  802. /package/src/{primitives/shadcn → components/core}/dropdown-menu/DropdownMenuSub.vue +0 -0
  803. /package/src/{primitives/shadcn → components/core}/dropdown-menu/DropdownMenuTrigger.vue +0 -0
  804. /package/src/{primitives/shadcn → components/core}/dropdown-menu/index.ts +0 -0
  805. /package/src/{primitives/shadcn → components/core}/field/Field.vue +0 -0
  806. /package/src/{primitives/shadcn → components/core}/field/FieldContent.vue +0 -0
  807. /package/src/{primitives/shadcn → components/core}/field/FieldDescription.vue +0 -0
  808. /package/src/{primitives/shadcn → components/core}/field/FieldGroup.vue +0 -0
  809. /package/src/{primitives/shadcn → components/core}/field/FieldLegend.vue +0 -0
  810. /package/src/{primitives/shadcn → components/core}/field/FieldSet.vue +0 -0
  811. /package/src/{primitives/shadcn → components/core}/field/FieldTitle.vue +0 -0
  812. /package/src/{primitives/shadcn → components/core}/field/index.ts +0 -0
  813. /package/src/{primitives/shadcn → components/core}/icon/Icon.vue +0 -0
  814. /package/src/{primitives/shadcn → components/core}/icon/index.ts +0 -0
  815. /package/src/{primitives/shadcn → components/core}/input/index.ts +0 -0
  816. /package/src/{primitives/shadcn → components/core}/kbd/Kbd.vue +0 -0
  817. /package/src/{primitives/shadcn → components/core}/kbd/KbdGroup.vue +0 -0
  818. /package/src/{primitives/shadcn → components/core}/kbd/index.ts +0 -0
  819. /package/src/{primitives/shadcn → components/core}/label/Label.vue +0 -0
  820. /package/src/{primitives/shadcn → components/core}/label/index.ts +0 -0
  821. /package/src/{primitives/shadcn → components/core}/listbox/Listbox.vue +0 -0
  822. /package/src/{primitives/shadcn → components/core}/listbox/ListboxContent.vue +0 -0
  823. /package/src/{primitives/shadcn → components/core}/listbox/ListboxFilter.vue +0 -0
  824. /package/src/{primitives/shadcn → components/core}/listbox/ListboxGroup.vue +0 -0
  825. /package/src/{primitives/shadcn → components/core}/listbox/ListboxGroupLabel.vue +0 -0
  826. /package/src/{primitives/shadcn → components/core}/listbox/ListboxItemIndicator.vue +0 -0
  827. /package/src/{primitives/shadcn → components/core}/listbox/index.ts +0 -0
  828. /package/src/{primitives/shadcn → components/core}/native-select/index.ts +0 -0
  829. /package/src/{primitives/shadcn → components/core}/popover/Popover.vue +0 -0
  830. /package/src/{primitives/shadcn → components/core}/popover/PopoverTrigger.vue +0 -0
  831. /package/src/{primitives/shadcn → components/core}/popover/index.ts +0 -0
  832. /package/src/{primitives/shadcn → components/core}/progress/Progress.vue +0 -0
  833. /package/src/{primitives/shadcn → components/core}/progress/index.ts +0 -0
  834. /package/src/{primitives/shadcn → components/core}/radio-group/RadioGroup.vue +0 -0
  835. /package/src/{primitives/shadcn → components/core}/radio-group/index.ts +0 -0
  836. /package/src/{primitives/shadcn → components/core}/range-calendar/RangeCalendarCell.vue +0 -0
  837. /package/src/{primitives/shadcn → components/core}/range-calendar/RangeCalendarGrid.vue +0 -0
  838. /package/src/{primitives/shadcn → components/core}/range-calendar/RangeCalendarGridBody.vue +0 -0
  839. /package/src/{primitives/shadcn → components/core}/range-calendar/RangeCalendarGridHead.vue +0 -0
  840. /package/src/{primitives/shadcn → components/core}/range-calendar/RangeCalendarGridRow.vue +0 -0
  841. /package/src/{primitives/shadcn → components/core}/range-calendar/RangeCalendarHeadCell.vue +0 -0
  842. /package/src/{primitives/shadcn → components/core}/range-calendar/RangeCalendarHeader.vue +0 -0
  843. /package/src/{primitives/shadcn → components/core}/range-calendar/index.ts +0 -0
  844. /package/src/{primitives/shadcn → components/core}/select/SelectGroup.vue +0 -0
  845. /package/src/{primitives/shadcn → components/core}/select/SelectItemText.vue +0 -0
  846. /package/src/{primitives/shadcn → components/core}/select/SelectLabel.vue +0 -0
  847. /package/src/{primitives/shadcn → components/core}/select/SelectSeparator.vue +0 -0
  848. /package/src/{primitives/shadcn → components/core}/select/SelectValue.vue +0 -0
  849. /package/src/{primitives/shadcn → components/core}/select/index.ts +0 -0
  850. /package/src/{primitives/shadcn → components/core}/separator/Separator.vue +0 -0
  851. /package/src/{primitives/shadcn → components/core}/separator/index.ts +0 -0
  852. /package/src/{primitives/shadcn → components/core}/skeleton/Skeleton.vue +0 -0
  853. /package/src/{primitives/shadcn → components/core}/skeleton/index.ts +0 -0
  854. /package/src/{primitives/shadcn → components/core}/slider/Slider.vue +0 -0
  855. /package/src/{primitives/shadcn → components/core}/slider/index.ts +0 -0
  856. /package/src/{primitives/shadcn → components/core}/spinner/index.ts +0 -0
  857. /package/src/{primitives/shadcn → components/core}/switch/index.ts +0 -0
  858. /package/src/{primitives/shadcn → components/core}/table/Table.vue +0 -0
  859. /package/src/{primitives/shadcn → components/core}/table/TableBody.vue +0 -0
  860. /package/src/{primitives/shadcn → components/core}/table/TableCaption.vue +0 -0
  861. /package/src/{primitives/shadcn → components/core}/table/TableCell.vue +0 -0
  862. /package/src/{primitives/shadcn → components/core}/table/TableEmpty.vue +0 -0
  863. /package/src/{primitives/shadcn → components/core}/table/TableFooter.vue +0 -0
  864. /package/src/{primitives/shadcn → components/core}/table/TableHead.vue +0 -0
  865. /package/src/{primitives/shadcn → components/core}/table/TableHeader.vue +0 -0
  866. /package/src/{primitives/shadcn → components/core}/table/index.ts +0 -0
  867. /package/src/{primitives/shadcn → components/core}/table/utils.ts +0 -0
  868. /package/src/{primitives/shadcn → components/core}/tabs/TabsContent.vue +0 -0
  869. /package/src/{primitives/shadcn → components/core}/tabs/TabsList.vue +0 -0
  870. /package/src/{primitives/shadcn → components/core}/tabs/index.ts +0 -0
  871. /package/src/{primitives/shadcn → components/core}/tags-input/TagsInputInput.vue +0 -0
  872. /package/src/{primitives/shadcn → components/core}/tags-input/TagsInputItem.vue +0 -0
  873. /package/src/{primitives/shadcn → components/core}/tags-input/TagsInputItemDelete.vue +0 -0
  874. /package/src/{primitives/shadcn → components/core}/tags-input/TagsInputItemText.vue +0 -0
  875. /package/src/{primitives/shadcn → components/core}/tags-input/index.ts +0 -0
  876. /package/src/{primitives/shadcn → components/core}/textarea/index.ts +0 -0
  877. /package/src/{primitives/shadcn → components/core}/toggle/Toggle.vue +0 -0
  878. /package/src/{primitives/shadcn → components/core}/tooltip/Tooltip.vue +0 -0
  879. /package/src/{primitives/shadcn → components/core}/tooltip/TooltipProvider.vue +0 -0
  880. /package/src/{primitives/shadcn → components/core}/tooltip/TooltipTrigger.vue +0 -0
  881. /package/src/{primitives/shadcn → components/core}/tooltip/index.ts +0 -0
  882. /package/src/{compositions → patterns}/UiDataTable/UiDataTable.mock.ts +0 -0
  883. /package/src/{compositions → patterns}/UiDataTable/__tests__/UiDataTableColumnHeader.test.ts +0 -0
  884. /package/src/{compositions → patterns}/UiDataTable/__tests__/UiDataTablePagination.test.ts +0 -0
  885. /package/src/{compositions → patterns}/UiDataTable/__tests__/UiDataTableToolbar.test.ts +0 -0
  886. /package/src/{compositions → patterns}/UiDataTable/constants.ts +0 -0
  887. /package/src/{compositions → patterns}/UiDataTable/index.ts +0 -0
  888. /package/src/{compositions → patterns}/UiDatePicker/__tests__/UiDatePicker.test.ts +0 -0
  889. /package/src/{compositions → patterns}/UiDatePicker/index.ts +0 -0
  890. /package/src/{foundations → patterns}/UiPlaceholder/UiPlaceholder.vue +0 -0
  891. /package/src/{foundations → patterns}/UiPlaceholder/index.ts +0 -0
@@ -0,0 +1,1010 @@
1
+ import { ref, computed } from 'vue';
2
+ import type { Meta, StoryObj } from '@storybook/vue3-vite';
3
+ import {
4
+ UiSidebar,
5
+ UiSidebarContent,
6
+ UiSidebarFooter,
7
+ UiSidebarGroup,
8
+ UiSidebarGroupAction,
9
+ UiSidebarGroupContent,
10
+ UiSidebarGroupLabel,
11
+ UiSidebarHeader,
12
+ UiSidebarHeaderTrigger,
13
+ UiSidebarInput,
14
+ UiSidebarInset,
15
+ UiSidebarMenu,
16
+ UiSidebarMenuAction,
17
+ UiSidebarMenuBadge,
18
+ UiSidebarMenuButton,
19
+ UiSidebarMenuItem,
20
+ UiSidebarMenuSkeleton,
21
+ UiSidebarMenuSub,
22
+ UiSidebarMenuSubButton,
23
+ UiSidebarMenuSubItem,
24
+ UiSidebarProvider,
25
+ UiSidebarRail,
26
+ UiSidebarSeparator,
27
+ UiSidebarTrigger,
28
+ } from '.';
29
+ import { CollapsibleRoot, CollapsibleContent, CollapsibleTrigger } from 'reka-ui';
30
+ import {
31
+ Bot,
32
+ Database,
33
+ BarChart3,
34
+ MessageSquare,
35
+ Settings,
36
+ Command,
37
+ Plus,
38
+ MoreHorizontal,
39
+ FlaskConical,
40
+ Key,
41
+ Activity,
42
+ ChevronRight,
43
+ } from 'lucide-vue-next';
44
+
45
+ const meta: Meta<typeof UiSidebar> = {
46
+ title: 'Components/UiSidebar',
47
+ component: UiSidebar,
48
+ tags: ['autodocs'],
49
+ argTypes: {
50
+ side: {
51
+ control: 'select',
52
+ options: ['left', 'right'],
53
+ },
54
+ variant: {
55
+ control: 'select',
56
+ options: ['sidebar', 'floating', 'inset'],
57
+ description:
58
+ '`sidebar`: fixed with border. `floating`: shadow and rounded corners. `inset`: shares background with content.',
59
+ },
60
+ collapsible: {
61
+ control: 'select',
62
+ options: ['offcanvas', 'icon', 'none'],
63
+ description:
64
+ '`offcanvas`: slides completely off screen. `icon`: collapses to icon-only width. `none`: always expanded.',
65
+ },
66
+ },
67
+ args: {
68
+ side: 'left',
69
+ variant: 'sidebar',
70
+ collapsible: 'icon',
71
+ },
72
+ parameters: {
73
+ layout: 'fullscreen',
74
+ },
75
+ decorators: [
76
+ () => ({
77
+ template: '<div class="-m-4"><story /></div>',
78
+ }),
79
+ ],
80
+ };
81
+
82
+ export default meta;
83
+ type Story = StoryObj<typeof UiSidebar>;
84
+
85
+ const defaultTemplateSource = `<script setup lang="ts">
86
+ import {
87
+ UiSidebar,
88
+ UiSidebarContent,
89
+ UiSidebarFooter,
90
+ UiSidebarGroup,
91
+ UiSidebarGroupContent,
92
+ UiSidebarGroupLabel,
93
+ UiSidebarHeaderTrigger,
94
+ UiSidebarInset,
95
+ UiSidebarMenu,
96
+ UiSidebarMenuBadge,
97
+ UiSidebarMenuButton,
98
+ UiSidebarMenuItem,
99
+ UiSidebarProvider,
100
+ UiSidebarRail,
101
+ } from '@aleph-alpha/ui-library'
102
+ import { Bot, Database, BarChart3, MessageSquare, Settings, Command } from 'lucide-vue-next'
103
+
104
+ const items = [
105
+ { title: 'Playground', url: '#', icon: Bot, badge: null },
106
+ { title: 'Models', url: '#', icon: Database, badge: '5' },
107
+ { title: 'Evaluations', url: '#', icon: BarChart3, badge: '3' },
108
+ { title: 'Conversations', url: '#', icon: MessageSquare, badge: null },
109
+ ]
110
+ </script>
111
+
112
+ <template>
113
+ <UiSidebarProvider :default-open="false">
114
+ <UiSidebar>
115
+ <UiSidebarHeaderTrigger>
116
+ <template #logo>
117
+ <div class="flex aspect-square size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground">
118
+ <Command class="size-4" />
119
+ </div>
120
+ </template>
121
+ <span class="truncate font-semibold">Acme AI</span>
122
+ <span class="truncate text-xs">Enterprise</span>
123
+ </UiSidebarHeaderTrigger>
124
+ <UiSidebarContent>
125
+ <UiSidebarGroup>
126
+ <UiSidebarGroupLabel>Platform</UiSidebarGroupLabel>
127
+ <UiSidebarGroupContent>
128
+ <UiSidebarMenu>
129
+ <UiSidebarMenuItem v-for="item in items" :key="item.title">
130
+ <UiSidebarMenuButton :tooltip="item.title">
131
+ <component :is="item.icon" />
132
+ <span>{{ item.title }}</span>
133
+ </UiSidebarMenuButton>
134
+ <UiSidebarMenuBadge v-if="item.badge">
135
+ {{ item.badge }}
136
+ </UiSidebarMenuBadge>
137
+ </UiSidebarMenuItem>
138
+ </UiSidebarMenu>
139
+ </UiSidebarGroupContent>
140
+ </UiSidebarGroup>
141
+ </UiSidebarContent>
142
+ <UiSidebarFooter>
143
+ <UiSidebarMenu>
144
+ <UiSidebarMenuItem>
145
+ <UiSidebarMenuButton>
146
+ <Settings />
147
+ <span>Settings</span>
148
+ </UiSidebarMenuButton>
149
+ </UiSidebarMenuItem>
150
+ </UiSidebarMenu>
151
+ </UiSidebarFooter>
152
+ <UiSidebarRail />
153
+ </UiSidebar>
154
+ <UiSidebarInset>
155
+ <header class="flex h-16 shrink-0 items-center gap-2 border-b px-4">
156
+ <div class="flex items-center gap-1.5 text-sm">
157
+ <span class="text-muted-foreground">Platform</span>
158
+ <span class="text-muted-foreground">/</span>
159
+ <span class="font-medium">Playground</span>
160
+ </div>
161
+ </header>
162
+ <div class="flex flex-1 flex-col gap-4 p-4">
163
+ <div class="grid auto-rows-min gap-4 md:grid-cols-3">
164
+ <div class="aspect-video rounded-xl bg-muted" />
165
+ <div class="aspect-video rounded-xl bg-muted" />
166
+ <div class="aspect-video rounded-xl bg-muted" />
167
+ </div>
168
+ <div class="min-h-[50vh] flex-1 rounded-xl bg-muted" />
169
+ </div>
170
+ </UiSidebarInset>
171
+ </UiSidebarProvider>
172
+ </template>`;
173
+
174
+ /**
175
+ * AI platform sidebar with a company header, icon-based navigation group with `UiSidebarMenuBadge` counters, footer, and inset content area with breadcrumb header.
176
+ * Uses `collapsible="icon"` — the sidebar collapses to a narrow icon-only rail. Menu items show only their icon with a tooltip on hover. Badges auto-hide in collapsed mode.
177
+ */
178
+ export const Default: Story = {
179
+ render: (args) => ({
180
+ components: {
181
+ UiSidebar,
182
+ UiSidebarContent,
183
+ UiSidebarFooter,
184
+ UiSidebarGroup,
185
+ UiSidebarGroupContent,
186
+ UiSidebarGroupLabel,
187
+ UiSidebarHeaderTrigger,
188
+ UiSidebarInset,
189
+ UiSidebarMenu,
190
+ UiSidebarMenuBadge,
191
+ UiSidebarMenuButton,
192
+ UiSidebarMenuItem,
193
+ UiSidebarProvider,
194
+ UiSidebarRail,
195
+ Bot,
196
+ Database,
197
+ BarChart3,
198
+ MessageSquare,
199
+ Settings,
200
+ Command,
201
+ },
202
+ setup() {
203
+ const items = [
204
+ { title: 'Playground', url: '#', icon: Bot, badge: null },
205
+ { title: 'Models', url: '#', icon: Database, badge: '5' },
206
+ { title: 'Evaluations', url: '#', icon: BarChart3, badge: '3' },
207
+ { title: 'Conversations', url: '#', icon: MessageSquare, badge: null },
208
+ ];
209
+ return { args, items };
210
+ },
211
+ template: `
212
+ <UiSidebarProvider :default-open="false">
213
+ <UiSidebar :side="args.side" :variant="args.variant" :collapsible="args.collapsible">
214
+ <UiSidebarHeaderTrigger>
215
+ <template #logo>
216
+ <div class="flex aspect-square size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground">
217
+ <Command class="size-4" />
218
+ </div>
219
+ </template>
220
+ <span class="truncate font-semibold">Acme AI</span>
221
+ <span class="truncate text-xs">Enterprise</span>
222
+ </UiSidebarHeaderTrigger>
223
+ <UiSidebarContent>
224
+ <UiSidebarGroup>
225
+ <UiSidebarGroupLabel>Platform</UiSidebarGroupLabel>
226
+ <UiSidebarGroupContent>
227
+ <UiSidebarMenu>
228
+ <UiSidebarMenuItem v-for="item in items" :key="item.title">
229
+ <UiSidebarMenuButton :tooltip="item.title">
230
+ <component :is="item.icon" />
231
+ <span>{{ item.title }}</span>
232
+ </UiSidebarMenuButton>
233
+ <UiSidebarMenuBadge v-if="item.badge">
234
+ {{ item.badge }}
235
+ </UiSidebarMenuBadge>
236
+ </UiSidebarMenuItem>
237
+ </UiSidebarMenu>
238
+ </UiSidebarGroupContent>
239
+ </UiSidebarGroup>
240
+ </UiSidebarContent>
241
+ <UiSidebarFooter>
242
+ <UiSidebarMenu>
243
+ <UiSidebarMenuItem>
244
+ <UiSidebarMenuButton>
245
+ <Settings />
246
+ <span>Settings</span>
247
+ </UiSidebarMenuButton>
248
+ </UiSidebarMenuItem>
249
+ </UiSidebarMenu>
250
+ </UiSidebarFooter>
251
+ <UiSidebarRail />
252
+ </UiSidebar>
253
+ <UiSidebarInset>
254
+ <header class="flex h-16 shrink-0 items-center gap-2 border-b px-4">
255
+ <div class="flex items-center gap-1.5 text-sm">
256
+ <span class="text-muted-foreground">Platform</span>
257
+ <span class="text-muted-foreground">/</span>
258
+ <span class="font-medium">Playground</span>
259
+ </div>
260
+ </header>
261
+ <div class="flex flex-1 flex-col gap-4 p-4">
262
+ <div class="grid auto-rows-min gap-4 md:grid-cols-3">
263
+ <div class="aspect-video rounded-xl bg-muted" />
264
+ <div class="aspect-video rounded-xl bg-muted" />
265
+ <div class="aspect-video rounded-xl bg-muted" />
266
+ </div>
267
+ <div class="min-h-[50vh] flex-1 rounded-xl bg-muted" />
268
+ </div>
269
+ </UiSidebarInset>
270
+ </UiSidebarProvider>
271
+ `,
272
+ }),
273
+ parameters: {
274
+ docs: {
275
+ source: {
276
+ code: defaultTemplateSource,
277
+ },
278
+ },
279
+ },
280
+ };
281
+
282
+ const withSearchTemplateSource = `<script setup lang="ts">
283
+ import { ref, computed } from 'vue'
284
+ import {
285
+ UiSidebar,
286
+ UiSidebarContent,
287
+ UiSidebarGroup,
288
+ UiSidebarGroupContent,
289
+ UiSidebarGroupLabel,
290
+ UiSidebarHeader,
291
+ UiSidebarInput,
292
+ UiSidebarInset,
293
+ UiSidebarMenu,
294
+ UiSidebarMenuButton,
295
+ UiSidebarMenuItem,
296
+ UiSidebarProvider,
297
+ UiSidebarTrigger,
298
+ } from '@aleph-alpha/ui-library'
299
+ import { Command } from 'lucide-vue-next'
300
+
301
+ const groups = [
302
+ {
303
+ label: 'Getting Started',
304
+ items: ['Quick Start', 'Authentication', 'API Keys'],
305
+ },
306
+ {
307
+ label: 'Models',
308
+ items: ['Completions', 'Embeddings', 'Chat', 'Multimodal'],
309
+ },
310
+ {
311
+ label: 'Advanced',
312
+ items: ['Fine-tuning', 'Prompt Engineering', 'Evaluation', 'RAG'],
313
+ },
314
+ ]
315
+
316
+ const query = ref('')
317
+ const filteredGroups = computed(() =>
318
+ groups
319
+ .map(group => ({
320
+ ...group,
321
+ items: group.items.filter(item =>
322
+ item.toLowerCase().includes(query.value.toLowerCase())
323
+ ),
324
+ }))
325
+ .filter(group => group.items.length > 0)
326
+ )
327
+ </script>
328
+
329
+ <template>
330
+ <UiSidebarProvider :default-open="true">
331
+ <UiSidebar>
332
+ <UiSidebarHeader>
333
+ <UiSidebarMenu>
334
+ <UiSidebarMenuItem>
335
+ <UiSidebarMenuButton size="lg">
336
+ <div class="flex aspect-square size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground">
337
+ <Command class="size-4" />
338
+ </div>
339
+ <div class="grid flex-1 text-left text-sm leading-tight">
340
+ <span class="truncate font-semibold">API Docs</span>
341
+ <span class="truncate text-xs">v2.0.0</span>
342
+ </div>
343
+ </UiSidebarMenuButton>
344
+ </UiSidebarMenuItem>
345
+ </UiSidebarMenu>
346
+ <UiSidebarInput v-model="query" placeholder="Search the docs..." />
347
+ </UiSidebarHeader>
348
+ <UiSidebarContent>
349
+ <UiSidebarGroup v-for="group in filteredGroups" :key="group.label">
350
+ <UiSidebarGroupLabel>{{ group.label }}</UiSidebarGroupLabel>
351
+ <UiSidebarGroupContent>
352
+ <UiSidebarMenu>
353
+ <UiSidebarMenuItem v-for="item in group.items" :key="item">
354
+ <UiSidebarMenuButton>{{ item }}</UiSidebarMenuButton>
355
+ </UiSidebarMenuItem>
356
+ </UiSidebarMenu>
357
+ </UiSidebarGroupContent>
358
+ </UiSidebarGroup>
359
+ </UiSidebarContent>
360
+ </UiSidebar>
361
+ <UiSidebarInset>
362
+ <header class="flex h-16 shrink-0 items-center gap-2 border-b px-4">
363
+ <UiSidebarTrigger class="-ml-1" />
364
+ <span class="text-sm font-medium">API Documentation</span>
365
+ </header>
366
+ </UiSidebarInset>
367
+ </UiSidebarProvider>
368
+ </template>`;
369
+
370
+ /**
371
+ * Documentation-style sidebar with `UiSidebarInput` that filters navigation items across multiple groups (Models, Advanced, etc.).
372
+ * Uses `collapsible="offcanvas"` — the sidebar slides completely off screen when closed, since text-only items have no icon representation for icon-collapse mode.
373
+ */
374
+ export const WithSearch: Story = {
375
+ render: (args) => ({
376
+ components: {
377
+ UiSidebar,
378
+ UiSidebarContent,
379
+ UiSidebarGroup,
380
+ UiSidebarGroupContent,
381
+ UiSidebarGroupLabel,
382
+ UiSidebarHeader,
383
+ UiSidebarInput,
384
+ UiSidebarInset,
385
+ UiSidebarMenu,
386
+ UiSidebarMenuButton,
387
+ UiSidebarMenuItem,
388
+ UiSidebarProvider,
389
+ UiSidebarTrigger,
390
+ Command,
391
+ },
392
+ setup() {
393
+ const groups = [
394
+ {
395
+ label: 'Getting Started',
396
+ items: ['Quick Start', 'Authentication', 'API Keys'],
397
+ },
398
+ {
399
+ label: 'Models',
400
+ items: ['Completions', 'Embeddings', 'Chat', 'Multimodal'],
401
+ },
402
+ {
403
+ label: 'Advanced',
404
+ items: ['Fine-tuning', 'Prompt Engineering', 'Evaluation', 'RAG'],
405
+ },
406
+ ];
407
+ const query = ref('');
408
+ const matchesQuery = (item: string) => item.toLowerCase().includes(query.value.toLowerCase());
409
+ const filteredGroups = computed(() =>
410
+ groups
411
+ .map((group) => ({ ...group, items: group.items.filter(matchesQuery) }))
412
+ .filter((group) => group.items.length > 0),
413
+ );
414
+ return { args, query, filteredGroups };
415
+ },
416
+ template: `
417
+ <UiSidebarProvider :default-open="true">
418
+ <UiSidebar :side="args.side" :variant="args.variant" :collapsible="args.collapsible">
419
+ <UiSidebarHeader>
420
+ <UiSidebarMenu>
421
+ <UiSidebarMenuItem>
422
+ <UiSidebarMenuButton size="lg">
423
+ <div class="flex aspect-square size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground">
424
+ <Command class="size-4" />
425
+ </div>
426
+ <div class="grid flex-1 text-left text-sm leading-tight">
427
+ <span class="truncate font-semibold">API Docs</span>
428
+ <span class="truncate text-xs">v2.0.0</span>
429
+ </div>
430
+ </UiSidebarMenuButton>
431
+ </UiSidebarMenuItem>
432
+ </UiSidebarMenu>
433
+ <UiSidebarInput v-model="query" placeholder="Search the docs..." class="group-data-[collapsible=icon]:hidden" />
434
+ </UiSidebarHeader>
435
+ <UiSidebarContent>
436
+ <UiSidebarGroup v-for="group in filteredGroups" :key="group.label">
437
+ <UiSidebarGroupLabel>{{ group.label }}</UiSidebarGroupLabel>
438
+ <UiSidebarGroupContent>
439
+ <UiSidebarMenu>
440
+ <UiSidebarMenuItem v-for="item in group.items" :key="item">
441
+ <UiSidebarMenuButton>{{ item }}</UiSidebarMenuButton>
442
+ </UiSidebarMenuItem>
443
+ </UiSidebarMenu>
444
+ </UiSidebarGroupContent>
445
+ </UiSidebarGroup>
446
+ </UiSidebarContent>
447
+ </UiSidebar>
448
+ <UiSidebarInset>
449
+ <header class="flex h-16 shrink-0 items-center gap-2 border-b px-4">
450
+ <UiSidebarTrigger class="-ml-1" />
451
+ <span class="text-sm font-medium">API Documentation</span>
452
+ </header>
453
+ </UiSidebarInset>
454
+ </UiSidebarProvider>
455
+ `,
456
+ }),
457
+ args: {
458
+ collapsible: 'offcanvas',
459
+ },
460
+ parameters: {
461
+ docs: {
462
+ source: {
463
+ code: withSearchTemplateSource,
464
+ },
465
+ },
466
+ },
467
+ };
468
+
469
+ const withActionsTemplateSource = `<script setup lang="ts">
470
+ import { ref } from 'vue'
471
+ import {
472
+ UiSidebar,
473
+ UiSidebarContent,
474
+ UiSidebarGroup,
475
+ UiSidebarGroupAction,
476
+ UiSidebarGroupContent,
477
+ UiSidebarGroupLabel,
478
+ UiSidebarHeaderTrigger,
479
+ UiSidebarInset,
480
+ UiSidebarMenu,
481
+ UiSidebarMenuAction,
482
+ UiSidebarMenuButton,
483
+ UiSidebarMenuItem,
484
+ UiSidebarProvider,
485
+ UiSidebarRail,
486
+ UiSidebarSeparator,
487
+ } from '@aleph-alpha/ui-library'
488
+ import { FlaskConical, MessageSquare, BarChart3, Database, Key, Activity, Settings, Command, Plus, MoreHorizontal } from 'lucide-vue-next'
489
+
490
+ const pipelineItems = ref([
491
+ { title: 'Summarization', icon: FlaskConical },
492
+ { title: 'RAG Chatbot', icon: MessageSquare },
493
+ { title: 'Sentiment Analysis', icon: BarChart3 },
494
+ { title: 'Data Extraction', icon: Database },
495
+ ])
496
+
497
+ let counter = 0
498
+ function addPipeline() {
499
+ counter++
500
+ pipelineItems.value.push({ title: \\\`New Pipeline \\\${counter}\\\`, icon: FlaskConical })
501
+ }
502
+
503
+ const adminItems = [
504
+ { title: 'API Keys', icon: Key },
505
+ { title: 'Usage', icon: Activity },
506
+ { title: 'Settings', icon: Settings },
507
+ ]
508
+ </script>
509
+
510
+ <template>
511
+ <UiSidebarProvider :default-open="true">
512
+ <UiSidebar>
513
+ <UiSidebarHeaderTrigger>
514
+ <template #logo>
515
+ <div class="flex aspect-square size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground">
516
+ <Command class="size-4" />
517
+ </div>
518
+ </template>
519
+ <span class="truncate font-semibold">Acme AI</span>
520
+ <span class="truncate text-xs">Enterprise</span>
521
+ </UiSidebarHeaderTrigger>
522
+ <UiSidebarContent>
523
+ <UiSidebarGroup>
524
+ <UiSidebarGroupLabel>Pipelines</UiSidebarGroupLabel>
525
+ <UiSidebarGroupAction title="New Pipeline" @click="addPipeline">
526
+ <Plus />
527
+ </UiSidebarGroupAction>
528
+ <UiSidebarGroupContent>
529
+ <UiSidebarMenu>
530
+ <UiSidebarMenuItem v-for="item in pipelineItems" :key="item.title">
531
+ <UiSidebarMenuButton :tooltip="item.title">
532
+ <component :is="item.icon" />
533
+ <span>{{ item.title }}</span>
534
+ </UiSidebarMenuButton>
535
+ <UiSidebarMenuAction :show-on-hover="true" title="More options">
536
+ <MoreHorizontal />
537
+ </UiSidebarMenuAction>
538
+ </UiSidebarMenuItem>
539
+ </UiSidebarMenu>
540
+ </UiSidebarGroupContent>
541
+ </UiSidebarGroup>
542
+ <UiSidebarSeparator />
543
+ <UiSidebarGroup>
544
+ <UiSidebarGroupLabel>Administration</UiSidebarGroupLabel>
545
+ <UiSidebarGroupContent>
546
+ <UiSidebarMenu>
547
+ <UiSidebarMenuItem v-for="item in adminItems" :key="item.title">
548
+ <UiSidebarMenuButton :tooltip="item.title">
549
+ <component :is="item.icon" />
550
+ <span>{{ item.title }}</span>
551
+ </UiSidebarMenuButton>
552
+ </UiSidebarMenuItem>
553
+ </UiSidebarMenu>
554
+ </UiSidebarGroupContent>
555
+ </UiSidebarGroup>
556
+ </UiSidebarContent>
557
+ <UiSidebarRail />
558
+ </UiSidebar>
559
+ <UiSidebarInset>
560
+ <header class="flex h-16 shrink-0 items-center gap-2 border-b px-4">
561
+ <span class="text-sm font-medium">Pipelines</span>
562
+ </header>
563
+ </UiSidebarInset>
564
+ </UiSidebarProvider>
565
+ </template>`;
566
+
567
+ /**
568
+ * Sidebar with `UiSidebarGroupAction` (a "+" button on the "Pipelines" group label), `UiSidebarMenuAction` (a "..." button on each pipeline item),
569
+ * and a `UiSidebarSeparator` dividing the "Pipelines" group from an "Administration" group.
570
+ * Menu actions use `show-on-hover` so they only appear when hovering the item. Both action types auto-hide in icon-collapse mode.
571
+ */
572
+ export const WithActions: Story = {
573
+ render: (args) => ({
574
+ components: {
575
+ UiSidebar,
576
+ UiSidebarContent,
577
+ UiSidebarGroup,
578
+ UiSidebarGroupAction,
579
+ UiSidebarGroupContent,
580
+ UiSidebarGroupLabel,
581
+ UiSidebarHeaderTrigger,
582
+ UiSidebarInset,
583
+ UiSidebarMenu,
584
+ UiSidebarMenuAction,
585
+ UiSidebarMenuButton,
586
+ UiSidebarMenuItem,
587
+ UiSidebarProvider,
588
+ UiSidebarRail,
589
+ UiSidebarSeparator,
590
+ FlaskConical,
591
+ MessageSquare,
592
+ BarChart3,
593
+ Database,
594
+ Key,
595
+ Activity,
596
+ Settings,
597
+ Command,
598
+ Plus,
599
+ MoreHorizontal,
600
+ },
601
+ setup() {
602
+ const pipelineItems = ref([
603
+ { title: 'Summarization', icon: FlaskConical },
604
+ { title: 'RAG Chatbot', icon: MessageSquare },
605
+ { title: 'Sentiment Analysis', icon: BarChart3 },
606
+ { title: 'Data Extraction', icon: Database },
607
+ ]);
608
+ let counter = 0;
609
+ const addPipeline = () => {
610
+ counter++;
611
+ pipelineItems.value.push({ title: `New Pipeline ${counter}`, icon: FlaskConical });
612
+ };
613
+ const adminItems = [
614
+ { title: 'API Keys', icon: Key },
615
+ { title: 'Usage', icon: Activity },
616
+ { title: 'Settings', icon: Settings },
617
+ ];
618
+ return { args, pipelineItems, addPipeline, adminItems };
619
+ },
620
+ template: `
621
+ <UiSidebarProvider :default-open="true">
622
+ <UiSidebar :side="args.side" :variant="args.variant" :collapsible="args.collapsible">
623
+ <UiSidebarHeaderTrigger>
624
+ <template #logo>
625
+ <div class="flex aspect-square size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground">
626
+ <Command class="size-4" />
627
+ </div>
628
+ </template>
629
+ <span class="truncate font-semibold">Acme AI</span>
630
+ <span class="truncate text-xs">Enterprise</span>
631
+ </UiSidebarHeaderTrigger>
632
+ <UiSidebarContent>
633
+ <UiSidebarGroup>
634
+ <UiSidebarGroupLabel>Pipelines</UiSidebarGroupLabel>
635
+ <UiSidebarGroupAction title="New Pipeline" @click="addPipeline">
636
+ <Plus />
637
+ </UiSidebarGroupAction>
638
+ <UiSidebarGroupContent>
639
+ <UiSidebarMenu>
640
+ <UiSidebarMenuItem v-for="item in pipelineItems" :key="item.title">
641
+ <UiSidebarMenuButton :tooltip="item.title">
642
+ <component :is="item.icon" />
643
+ <span>{{ item.title }}</span>
644
+ </UiSidebarMenuButton>
645
+ <UiSidebarMenuAction :show-on-hover="true" title="More options">
646
+ <MoreHorizontal />
647
+ </UiSidebarMenuAction>
648
+ </UiSidebarMenuItem>
649
+ </UiSidebarMenu>
650
+ </UiSidebarGroupContent>
651
+ </UiSidebarGroup>
652
+ <UiSidebarSeparator />
653
+ <UiSidebarGroup>
654
+ <UiSidebarGroupLabel>Administration</UiSidebarGroupLabel>
655
+ <UiSidebarGroupContent>
656
+ <UiSidebarMenu>
657
+ <UiSidebarMenuItem v-for="item in adminItems" :key="item.title">
658
+ <UiSidebarMenuButton :tooltip="item.title">
659
+ <component :is="item.icon" />
660
+ <span>{{ item.title }}</span>
661
+ </UiSidebarMenuButton>
662
+ </UiSidebarMenuItem>
663
+ </UiSidebarMenu>
664
+ </UiSidebarGroupContent>
665
+ </UiSidebarGroup>
666
+ </UiSidebarContent>
667
+ <UiSidebarRail />
668
+ </UiSidebar>
669
+ <UiSidebarInset>
670
+ <header class="flex h-16 shrink-0 items-center gap-2 border-b px-4">
671
+ <span class="text-sm font-medium">Pipelines</span>
672
+ </header>
673
+ </UiSidebarInset>
674
+ </UiSidebarProvider>
675
+ `,
676
+ }),
677
+ parameters: {
678
+ docs: {
679
+ source: {
680
+ code: withActionsTemplateSource,
681
+ },
682
+ },
683
+ },
684
+ };
685
+
686
+ const withSubmenuTemplateSource = `<script setup lang="ts">
687
+ import {
688
+ UiSidebar,
689
+ UiSidebarContent,
690
+ UiSidebarGroup,
691
+ UiSidebarGroupContent,
692
+ UiSidebarGroupLabel,
693
+ UiSidebarHeaderTrigger,
694
+ UiSidebarInset,
695
+ UiSidebarMenu,
696
+ UiSidebarMenuButton,
697
+ UiSidebarMenuItem,
698
+ UiSidebarMenuSub,
699
+ UiSidebarMenuSubButton,
700
+ UiSidebarMenuSubItem,
701
+ UiSidebarProvider,
702
+ UiSidebarRail,
703
+ } from '@aleph-alpha/ui-library'
704
+ import { CollapsibleRoot, CollapsibleContent, CollapsibleTrigger } from 'reka-ui'
705
+ import { Bot, Database, BarChart3, MessageSquare, Command, ChevronRight } from 'lucide-vue-next'
706
+
707
+ const navItems = [
708
+ {
709
+ title: 'Models',
710
+ icon: Database,
711
+ children: ['Completions', 'Embeddings', 'Chat', 'Multimodal'],
712
+ },
713
+ {
714
+ title: 'Evaluations',
715
+ icon: BarChart3,
716
+ children: ['Benchmarks', 'Custom Tests', 'Reports'],
717
+ },
718
+ {
719
+ title: 'Playground',
720
+ icon: Bot,
721
+ children: [],
722
+ },
723
+ {
724
+ title: 'Conversations',
725
+ icon: MessageSquare,
726
+ children: [],
727
+ },
728
+ ]
729
+ </script>
730
+
731
+ <template>
732
+ <UiSidebarProvider :default-open="true">
733
+ <UiSidebar>
734
+ <UiSidebarHeaderTrigger>
735
+ <template #logo>
736
+ <div class="flex aspect-square size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground">
737
+ <Command class="size-4" />
738
+ </div>
739
+ </template>
740
+ <span class="truncate font-semibold">Acme AI</span>
741
+ <span class="truncate text-xs">Enterprise</span>
742
+ </UiSidebarHeaderTrigger>
743
+ <UiSidebarContent>
744
+ <UiSidebarGroup>
745
+ <UiSidebarGroupLabel>Platform</UiSidebarGroupLabel>
746
+ <UiSidebarGroupContent>
747
+ <UiSidebarMenu>
748
+ <template v-for="item in navItems" :key="item.title">
749
+ <CollapsibleRoot v-if="item.children.length" as-child class="group/collapsible">
750
+ <UiSidebarMenuItem>
751
+ <CollapsibleTrigger as-child>
752
+ <UiSidebarMenuButton :tooltip="item.title">
753
+ <component :is="item.icon" />
754
+ <span>{{ item.title }}</span>
755
+ <ChevronRight class="ml-auto transition-transform group-data-[state=open]/collapsible:rotate-90" />
756
+ </UiSidebarMenuButton>
757
+ </CollapsibleTrigger>
758
+ <CollapsibleContent>
759
+ <UiSidebarMenuSub>
760
+ <UiSidebarMenuSubItem v-for="child in item.children" :key="child">
761
+ <UiSidebarMenuSubButton>{{ child }}</UiSidebarMenuSubButton>
762
+ </UiSidebarMenuSubItem>
763
+ </UiSidebarMenuSub>
764
+ </CollapsibleContent>
765
+ </UiSidebarMenuItem>
766
+ </CollapsibleRoot>
767
+ <UiSidebarMenuItem v-else>
768
+ <UiSidebarMenuButton :tooltip="item.title">
769
+ <component :is="item.icon" />
770
+ <span>{{ item.title }}</span>
771
+ </UiSidebarMenuButton>
772
+ </UiSidebarMenuItem>
773
+ </template>
774
+ </UiSidebarMenu>
775
+ </UiSidebarGroupContent>
776
+ </UiSidebarGroup>
777
+ </UiSidebarContent>
778
+ <UiSidebarRail />
779
+ </UiSidebar>
780
+ <UiSidebarInset>
781
+ <header class="flex h-16 shrink-0 items-center gap-2 border-b px-4">
782
+ <span class="text-sm font-medium">Platform</span>
783
+ </header>
784
+ </UiSidebarInset>
785
+ </UiSidebarProvider>
786
+ </template>`;
787
+
788
+ /**
789
+ * Sidebar with collapsible `UiSidebarMenuSub` submenus using `Collapsible` from reka-ui. "Models" and "Evaluations" expand to reveal nested items via `UiSidebarMenuSubButton`.
790
+ * Submenu items are hidden in icon-collapse mode. A chevron icon rotates to indicate the open/closed state.
791
+ */
792
+ export const WithSubmenu: Story = {
793
+ render: (args) => ({
794
+ components: {
795
+ UiSidebar,
796
+ UiSidebarContent,
797
+ UiSidebarGroup,
798
+ UiSidebarGroupContent,
799
+ UiSidebarGroupLabel,
800
+ UiSidebarHeaderTrigger,
801
+ UiSidebarInset,
802
+ UiSidebarMenu,
803
+ UiSidebarMenuButton,
804
+ UiSidebarMenuItem,
805
+ UiSidebarMenuSub,
806
+ UiSidebarMenuSubButton,
807
+ UiSidebarMenuSubItem,
808
+ UiSidebarProvider,
809
+ UiSidebarRail,
810
+ CollapsibleRoot,
811
+ CollapsibleContent,
812
+ CollapsibleTrigger,
813
+ Bot,
814
+ Database,
815
+ BarChart3,
816
+ MessageSquare,
817
+ Command,
818
+ ChevronRight,
819
+ },
820
+ setup() {
821
+ const navItems = [
822
+ {
823
+ title: 'Models',
824
+ icon: Database,
825
+ children: ['Completions', 'Embeddings', 'Chat', 'Multimodal'],
826
+ },
827
+ {
828
+ title: 'Evaluations',
829
+ icon: BarChart3,
830
+ children: ['Benchmarks', 'Custom Tests', 'Reports'],
831
+ },
832
+ {
833
+ title: 'Playground',
834
+ icon: Bot,
835
+ children: [],
836
+ },
837
+ {
838
+ title: 'Conversations',
839
+ icon: MessageSquare,
840
+ children: [],
841
+ },
842
+ ];
843
+ return { args, navItems };
844
+ },
845
+ template: `
846
+ <UiSidebarProvider :default-open="true">
847
+ <UiSidebar :side="args.side" :variant="args.variant" :collapsible="args.collapsible">
848
+ <UiSidebarHeaderTrigger>
849
+ <template #logo>
850
+ <div class="flex aspect-square size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground">
851
+ <Command class="size-4" />
852
+ </div>
853
+ </template>
854
+ <span class="truncate font-semibold">Acme AI</span>
855
+ <span class="truncate text-xs">Enterprise</span>
856
+ </UiSidebarHeaderTrigger>
857
+ <UiSidebarContent>
858
+ <UiSidebarGroup>
859
+ <UiSidebarGroupLabel>Platform</UiSidebarGroupLabel>
860
+ <UiSidebarGroupContent>
861
+ <UiSidebarMenu>
862
+ <template v-for="item in navItems" :key="item.title">
863
+ <CollapsibleRoot v-if="item.children.length" as-child class="group/collapsible">
864
+ <UiSidebarMenuItem>
865
+ <CollapsibleTrigger as-child>
866
+ <UiSidebarMenuButton :tooltip="item.title">
867
+ <component :is="item.icon" />
868
+ <span>{{ item.title }}</span>
869
+ <ChevronRight class="ml-auto transition-transform group-data-[state=open]/collapsible:rotate-90" />
870
+ </UiSidebarMenuButton>
871
+ </CollapsibleTrigger>
872
+ <CollapsibleContent>
873
+ <UiSidebarMenuSub>
874
+ <UiSidebarMenuSubItem v-for="child in item.children" :key="child">
875
+ <UiSidebarMenuSubButton>{{ child }}</UiSidebarMenuSubButton>
876
+ </UiSidebarMenuSubItem>
877
+ </UiSidebarMenuSub>
878
+ </CollapsibleContent>
879
+ </UiSidebarMenuItem>
880
+ </CollapsibleRoot>
881
+ <UiSidebarMenuItem v-else>
882
+ <UiSidebarMenuButton :tooltip="item.title">
883
+ <component :is="item.icon" />
884
+ <span>{{ item.title }}</span>
885
+ </UiSidebarMenuButton>
886
+ </UiSidebarMenuItem>
887
+ </template>
888
+ </UiSidebarMenu>
889
+ </UiSidebarGroupContent>
890
+ </UiSidebarGroup>
891
+ </UiSidebarContent>
892
+ <UiSidebarRail />
893
+ </UiSidebar>
894
+ <UiSidebarInset>
895
+ <header class="flex h-16 shrink-0 items-center gap-2 border-b px-4">
896
+ <span class="text-sm font-medium">Platform</span>
897
+ </header>
898
+ </UiSidebarInset>
899
+ </UiSidebarProvider>
900
+ `,
901
+ }),
902
+ parameters: {
903
+ docs: {
904
+ source: {
905
+ code: withSubmenuTemplateSource,
906
+ },
907
+ },
908
+ },
909
+ };
910
+
911
+ const withSkeletonTemplateSource = `<script setup lang="ts">
912
+ import {
913
+ UiSidebar,
914
+ UiSidebarContent,
915
+ UiSidebarGroup,
916
+ UiSidebarGroupContent,
917
+ UiSidebarGroupLabel,
918
+ UiSidebarInset,
919
+ UiSidebarMenu,
920
+ UiSidebarMenuItem,
921
+ UiSidebarMenuSkeleton,
922
+ UiSidebarProvider,
923
+ UiSidebarRail,
924
+ UiSidebarTrigger,
925
+ } from '@aleph-alpha/ui-library'
926
+ </script>
927
+
928
+ <template>
929
+ <UiSidebarProvider :default-open="true">
930
+ <UiSidebar>
931
+ <UiSidebarContent>
932
+ <UiSidebarGroup>
933
+ <UiSidebarGroupLabel>Platform</UiSidebarGroupLabel>
934
+ <UiSidebarGroupContent>
935
+ <UiSidebarMenu>
936
+ <UiSidebarMenuItem v-for="i in 4" :key="i">
937
+ <UiSidebarMenuSkeleton :show-icon="true" />
938
+ </UiSidebarMenuItem>
939
+ </UiSidebarMenu>
940
+ </UiSidebarGroupContent>
941
+ </UiSidebarGroup>
942
+ </UiSidebarContent>
943
+ <UiSidebarRail />
944
+ </UiSidebar>
945
+ <UiSidebarInset>
946
+ <header class="flex h-16 shrink-0 items-center gap-2 border-b px-4">
947
+ <UiSidebarTrigger class="-ml-1" />
948
+ <span class="text-sm font-medium">Platform</span>
949
+ </header>
950
+ </UiSidebarInset>
951
+ </UiSidebarProvider>
952
+ </template>`;
953
+
954
+ /**
955
+ * Sidebar with `UiSidebarMenuSkeleton` placeholders showing a loading state.
956
+ * Use `show-icon` to include an icon-sized skeleton circle alongside the text bar. Each skeleton renders a random width for a natural staggered look.
957
+ */
958
+ export const WithSkeleton: Story = {
959
+ render: (args) => ({
960
+ components: {
961
+ UiSidebar,
962
+ UiSidebarContent,
963
+ UiSidebarGroup,
964
+ UiSidebarGroupContent,
965
+ UiSidebarGroupLabel,
966
+ UiSidebarInset,
967
+ UiSidebarMenu,
968
+ UiSidebarMenuItem,
969
+ UiSidebarMenuSkeleton,
970
+ UiSidebarProvider,
971
+ UiSidebarRail,
972
+ UiSidebarTrigger,
973
+ },
974
+ setup() {
975
+ return { args };
976
+ },
977
+ template: `
978
+ <UiSidebarProvider :default-open="true">
979
+ <UiSidebar :side="args.side" :variant="args.variant" :collapsible="args.collapsible">
980
+ <UiSidebarContent>
981
+ <UiSidebarGroup>
982
+ <UiSidebarGroupLabel>Platform</UiSidebarGroupLabel>
983
+ <UiSidebarGroupContent>
984
+ <UiSidebarMenu>
985
+ <UiSidebarMenuItem v-for="i in 4" :key="i">
986
+ <UiSidebarMenuSkeleton :show-icon="true" />
987
+ </UiSidebarMenuItem>
988
+ </UiSidebarMenu>
989
+ </UiSidebarGroupContent>
990
+ </UiSidebarGroup>
991
+ </UiSidebarContent>
992
+ <UiSidebarRail />
993
+ </UiSidebar>
994
+ <UiSidebarInset>
995
+ <header class="flex h-16 shrink-0 items-center gap-2 border-b px-4">
996
+ <UiSidebarTrigger class="-ml-1" />
997
+ <span class="text-sm font-medium">Platform</span>
998
+ </header>
999
+ </UiSidebarInset>
1000
+ </UiSidebarProvider>
1001
+ `,
1002
+ }),
1003
+ parameters: {
1004
+ docs: {
1005
+ source: {
1006
+ code: withSkeletonTemplateSource,
1007
+ },
1008
+ },
1009
+ },
1010
+ };