@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,1029 @@
1
+ import type { Meta, StoryObj } from '@storybook/vue3-vite';
2
+ import UiItem from './UiItem.vue';
3
+ import {
4
+ UiItemGroup,
5
+ UiItemSeparator,
6
+ UiItemMedia,
7
+ UiItemContent,
8
+ UiItemTitle,
9
+ UiItemDescription,
10
+ UiItemActions,
11
+ UiItemHeader,
12
+ UiItemFooter,
13
+ } from './index';
14
+
15
+ import { ItemVariants, ItemSizes } from './constants';
16
+ import { UiIcon } from '../UiIcon';
17
+ import { UiButton } from '../UiButton';
18
+ import { UiAvatar, UiAvatarImage, UiAvatarFallback } from '../UiAvatar';
19
+
20
+ const meta: Meta<typeof UiItem> = {
21
+ title: 'Components/UiItem',
22
+ component: UiItem,
23
+ subcomponents: {
24
+ UiItemGroup,
25
+ UiItemSeparator,
26
+ UiItemMedia,
27
+ UiItemContent,
28
+ UiItemTitle,
29
+ UiItemDescription,
30
+ UiItemActions,
31
+ UiItemHeader,
32
+ UiItemFooter,
33
+ },
34
+ tags: ['autodocs'],
35
+ argTypes: {
36
+ variant: {
37
+ control: 'select',
38
+ options: ItemVariants,
39
+ description:
40
+ 'The visual style of the item. Use `default` for standard styling, `outline` for bordered appearance, or `muted` for subdued secondary content.',
41
+ },
42
+ size: {
43
+ control: 'select',
44
+ options: ItemSizes,
45
+ description:
46
+ 'The size of the item. Use `default` for standard spacing or `sm` for compact dense layouts.',
47
+ },
48
+ asChild: {
49
+ control: 'boolean',
50
+ description:
51
+ 'Whether to render as a child element using Radix asChild pattern. Useful for rendering as links or custom components while preserving hover/focus states.',
52
+ },
53
+ },
54
+ args: {
55
+ variant: 'default',
56
+ size: 'default',
57
+ asChild: false,
58
+ },
59
+ };
60
+
61
+ export default meta;
62
+
63
+ type Story = StoryObj<typeof UiItem>;
64
+
65
+ /**
66
+ * ## Basic Item
67
+ *
68
+ * The most basic usage of the Item component. It displays a title, description,
69
+ * and an action button in a flexible layout. This is the foundation for building
70
+ * more complex item patterns.
71
+ *
72
+ * **Key features demonstrated:**
73
+ * - `UiItemContent` wraps the title and description
74
+ * - `UiItemTitle` displays the main heading
75
+ * - `UiItemDescription` shows supporting text
76
+ * - `UiItemActions` contains interactive elements
77
+ */
78
+ export const Basic: Story = {
79
+ render: (args) => ({
80
+ components: {
81
+ UiItem,
82
+ UiItemContent,
83
+ UiItemTitle,
84
+ UiItemDescription,
85
+ UiItemActions,
86
+ UiButton,
87
+ },
88
+ setup() {
89
+ return { args };
90
+ },
91
+ template: `
92
+ <div class="w-full max-w-md">
93
+ <UiItem v-bind="args" variant="outline">
94
+ <UiItemContent>
95
+ <UiItemTitle>Basic Item</UiItemTitle>
96
+ <UiItemDescription>
97
+ A simple item with title and description.
98
+ </UiItemDescription>
99
+ </UiItemContent>
100
+ <UiItemActions>
101
+ <UiButton variant="outline" size="sm">Action</UiButton>
102
+ </UiItemActions>
103
+ </UiItem>
104
+ </div>
105
+ `,
106
+ }),
107
+ };
108
+
109
+ /**
110
+ * ## Variants
111
+ *
112
+ * The Item component supports three visual variants to match different UI contexts:
113
+ *
114
+ * - **Default**: Standard styling with subtle background. Best for primary content areas.
115
+ * - **Outline**: Clear bordered style with transparent background. Ideal for lists and menus.
116
+ * - **Muted**: Subdued appearance for secondary or less important content.
117
+ *
118
+ * Choose the variant that best fits your design context and content hierarchy.
119
+ */
120
+ export const Variants: Story = {
121
+ render: () => ({
122
+ components: {
123
+ UiItem,
124
+ UiItemContent,
125
+ UiItemTitle,
126
+ UiItemDescription,
127
+ UiItemActions,
128
+ UiButton,
129
+ },
130
+ template: `
131
+ <div class="flex flex-col gap-4 w-full max-w-lg">
132
+ <UiItem>
133
+ <UiItemContent>
134
+ <UiItemTitle>Default Variant</UiItemTitle>
135
+ <UiItemDescription>
136
+ Standard styling with subtle background and borders.
137
+ </UiItemDescription>
138
+ </UiItemContent>
139
+ <UiItemActions>
140
+ <UiButton variant="outline" size="sm">Open</UiButton>
141
+ </UiItemActions>
142
+ </UiItem>
143
+
144
+ <UiItem variant="outline">
145
+ <UiItemContent>
146
+ <UiItemTitle>Outline Variant</UiItemTitle>
147
+ <UiItemDescription>
148
+ Outlined style with clear borders and transparent background.
149
+ </UiItemDescription>
150
+ </UiItemContent>
151
+ <UiItemActions>
152
+ <UiButton variant="outline" size="sm">Open</UiButton>
153
+ </UiItemActions>
154
+ </UiItem>
155
+
156
+ <UiItem variant="muted">
157
+ <UiItemContent>
158
+ <UiItemTitle>Muted Variant</UiItemTitle>
159
+ <UiItemDescription>
160
+ Subdued appearance with muted colors for secondary content.
161
+ </UiItemDescription>
162
+ </UiItemContent>
163
+ <UiItemActions>
164
+ <UiButton variant="outline" size="sm">Open</UiButton>
165
+ </UiItemActions>
166
+ </UiItem>
167
+ </div>
168
+ `,
169
+ }),
170
+ };
171
+
172
+ /**
173
+ * ## Sizes
174
+ *
175
+ * The Item component supports two sizes for different layout needs:
176
+ *
177
+ * - **Default**: Standard size with comfortable padding (p-3). Use for primary content.
178
+ * - **Small (sm)**: Compact size with reduced padding (p-2). Perfect for dense lists,
179
+ * menus, or when space is limited.
180
+ *
181
+ * The small size is particularly useful for notification items, dropdown menus,
182
+ * or navigation lists where you need to display many items in a limited space.
183
+ */
184
+ export const Sizes: Story = {
185
+ render: () => ({
186
+ components: {
187
+ UiItem,
188
+ UiItemContent,
189
+ UiItemTitle,
190
+ UiItemDescription,
191
+ UiItemActions,
192
+ UiItemMedia,
193
+ UiButton,
194
+ UiIcon,
195
+ },
196
+ template: `
197
+ <div class="flex flex-col gap-4 w-full max-w-md">
198
+ <UiItem variant="outline">
199
+ <UiItemContent>
200
+ <UiItemTitle>Default Size Item</UiItemTitle>
201
+ <UiItemDescription>
202
+ Standard padding for comfortable spacing.
203
+ </UiItemDescription>
204
+ </UiItemContent>
205
+ <UiItemActions>
206
+ <UiButton variant="outline" size="sm">Action</UiButton>
207
+ </UiItemActions>
208
+ </UiItem>
209
+
210
+ <UiItem variant="outline" size="sm">
211
+ <UiItemMedia variant="icon">
212
+ <UiIcon name="badge-check" :size="20" />
213
+ </UiItemMedia>
214
+ <UiItemContent>
215
+ <UiItemTitle>Small Size Item</UiItemTitle>
216
+ </UiItemContent>
217
+ <UiItemActions>
218
+ <UiIcon name="chevron-right" :size="16" />
219
+ </UiItemActions>
220
+ </UiItem>
221
+ </div>
222
+ `,
223
+ }),
224
+ };
225
+
226
+ /**
227
+ * ## With Icon
228
+ *
229
+ * Use `UiItemMedia` with `variant="icon"` to display an icon at the start of the item.
230
+ * This is perfect for notification items, settings entries, or any content that
231
+ * benefits from visual categorization.
232
+ *
233
+ * **Best practices:**
234
+ * - Use meaningful icons that reinforce the content
235
+ * - Keep icon colors consistent with the design system
236
+ * - Consider using different icon variants (outlined/filled) for visual hierarchy
237
+ */
238
+ export const WithIcon: Story = {
239
+ render: () => ({
240
+ components: {
241
+ UiItem,
242
+ UiItemContent,
243
+ UiItemTitle,
244
+ UiItemDescription,
245
+ UiItemActions,
246
+ UiItemMedia,
247
+ UiButton,
248
+ UiIcon,
249
+ },
250
+ template: `
251
+ <div class="w-full max-w-lg">
252
+ <UiItem variant="outline">
253
+ <UiItemMedia variant="icon">
254
+ <UiIcon name="shield-alert" :size="20" />
255
+ </UiItemMedia>
256
+ <UiItemContent>
257
+ <UiItemTitle>Security Alert</UiItemTitle>
258
+ <UiItemDescription>
259
+ New login detected from unknown device.
260
+ </UiItemDescription>
261
+ </UiItemContent>
262
+ <UiItemActions>
263
+ <UiButton size="sm" variant="outline">Review</UiButton>
264
+ </UiItemActions>
265
+ </UiItem>
266
+ </div>
267
+ `,
268
+ }),
269
+ };
270
+
271
+ /**
272
+ * ## With Avatar
273
+ *
274
+ * Use `UiItemMedia` with the default variant to display avatars or profile images.
275
+ * This pattern is ideal for user lists, contact directories, or any content
276
+ * that represents a person or entity.
277
+ *
278
+ * **Use cases:**
279
+ * - User/team member lists
280
+ * - Contact directories
281
+ * - Comment threads
282
+ * - Notification items showing who triggered an action
283
+ */
284
+ export const WithAvatar: Story = {
285
+ render: () => ({
286
+ components: {
287
+ UiItem,
288
+ UiItemContent,
289
+ UiItemTitle,
290
+ UiItemDescription,
291
+ UiItemMedia,
292
+ UiAvatar,
293
+ UiAvatarImage,
294
+ UiAvatarFallback,
295
+ },
296
+ template: `
297
+ <div class="w-full max-w-md">
298
+ <UiItem variant="outline">
299
+ <UiItemMedia>
300
+ <UiAvatar>
301
+ <UiAvatarImage src="https://github.com/shadcn.png" />
302
+ <UiAvatarFallback>SC</UiAvatarFallback>
303
+ </UiAvatar>
304
+ </UiItemMedia>
305
+ <UiItemContent>
306
+ <UiItemTitle>shadcn</UiItemTitle>
307
+ <UiItemDescription>Last seen 5 months ago</UiItemDescription>
308
+ </UiItemContent>
309
+ </UiItem>
310
+ </div>
311
+ `,
312
+ }),
313
+ };
314
+
315
+ /**
316
+ * ## With Image
317
+ *
318
+ * Use `UiItemMedia` with `variant="image"` to display images or thumbnails.
319
+ * The image variant provides appropriate sizing and rounded corners for
320
+ * visual content.
321
+ *
322
+ * **Use cases:**
323
+ * - Product listings
324
+ * - Media galleries
325
+ * - Article/blog post previews
326
+ * - File browser with thumbnails
327
+ */
328
+ export const WithImage: Story = {
329
+ render: () => ({
330
+ components: {
331
+ UiItem,
332
+ UiItemContent,
333
+ UiItemTitle,
334
+ UiItemDescription,
335
+ UiItemMedia,
336
+ },
337
+ template: `
338
+ <div class="w-full max-w-md">
339
+ <UiItem variant="outline">
340
+ <UiItemMedia variant="image">
341
+ <img
342
+ src="https://images.unsplash.com/photo-1506905925346-21bda4d32df4?w=100&h=100&fit=crop"
343
+ alt="Mountain landscape"
344
+ class="size-full object-cover"
345
+ />
346
+ </UiItemMedia>
347
+ <UiItemContent>
348
+ <UiItemTitle>Mountain Expedition</UiItemTitle>
349
+ <UiItemDescription>
350
+ Explore the breathtaking alpine landscapes.
351
+ </UiItemDescription>
352
+ </UiItemContent>
353
+ </UiItem>
354
+ </div>
355
+ `,
356
+ }),
357
+ };
358
+
359
+ /**
360
+ * ## Item Group
361
+ *
362
+ * Use `UiItemGroup` to group related items together with consistent styling.
363
+ * Add `UiItemSeparator` between items to create visual separation.
364
+ *
365
+ * **Key features:**
366
+ * - `UiItemGroup` provides consistent spacing between items
367
+ * - `UiItemSeparator` creates a subtle divider line
368
+ * - Great for settings panels, menus, and navigation lists
369
+ *
370
+ * **Best practices:**
371
+ * - Group logically related items together
372
+ * - Use separators sparingly to avoid visual clutter
373
+ * - Consider using headers to label different groups
374
+ */
375
+ export const Group: Story = {
376
+ render: () => ({
377
+ components: {
378
+ UiItem,
379
+ UiItemGroup,
380
+ UiItemSeparator,
381
+ UiItemContent,
382
+ UiItemTitle,
383
+ UiItemDescription,
384
+ UiItemMedia,
385
+ UiItemActions,
386
+ UiIcon,
387
+ },
388
+ template: `
389
+ <div class="w-full max-w-md">
390
+ <UiItemGroup class="rounded-lg border p-2">
391
+ <UiItem>
392
+ <UiItemMedia variant="icon">
393
+ <UiIcon name="user" :size="20" />
394
+ </UiItemMedia>
395
+ <UiItemContent>
396
+ <UiItemTitle>Profile</UiItemTitle>
397
+ <UiItemDescription>Manage your profile settings</UiItemDescription>
398
+ </UiItemContent>
399
+ <UiItemActions>
400
+ <UiIcon name="chevron-right" :size="16" />
401
+ </UiItemActions>
402
+ </UiItem>
403
+
404
+ <UiItemSeparator />
405
+
406
+ <UiItem>
407
+ <UiItemMedia variant="icon">
408
+ <UiIcon name="bell" :size="20" />
409
+ </UiItemMedia>
410
+ <UiItemContent>
411
+ <UiItemTitle>Notifications</UiItemTitle>
412
+ <UiItemDescription>Configure notification preferences</UiItemDescription>
413
+ </UiItemContent>
414
+ <UiItemActions>
415
+ <UiIcon name="chevron-right" :size="16" />
416
+ </UiItemActions>
417
+ </UiItem>
418
+
419
+ <UiItemSeparator />
420
+
421
+ <UiItem>
422
+ <UiItemMedia variant="icon">
423
+ <UiIcon name="settings" :size="20" />
424
+ </UiItemMedia>
425
+ <UiItemContent>
426
+ <UiItemTitle>Settings</UiItemTitle>
427
+ <UiItemDescription>App preferences and configuration</UiItemDescription>
428
+ </UiItemContent>
429
+ <UiItemActions>
430
+ <UiIcon name="chevron-right" :size="16" />
431
+ </UiItemActions>
432
+ </UiItem>
433
+ </UiItemGroup>
434
+ </div>
435
+ `,
436
+ }),
437
+ };
438
+
439
+ /**
440
+ * ## With Header and Footer
441
+ *
442
+ * Use `UiItemHeader` and `UiItemFooter` to add contextual information above
443
+ * and below the main content. This is useful for categorization, metadata,
444
+ * or additional details.
445
+ *
446
+ * **Use cases:**
447
+ * - File listings with type labels and metadata
448
+ * - Activity feeds with timestamps
449
+ * - Product cards with category and price info
450
+ * - Notification items with time and source
451
+ */
452
+ export const WithHeaderAndFooter: Story = {
453
+ render: () => ({
454
+ components: {
455
+ UiItem,
456
+ UiItemContent,
457
+ UiItemTitle,
458
+ UiItemDescription,
459
+ UiItemHeader,
460
+ UiItemFooter,
461
+ UiItemMedia,
462
+ UiIcon,
463
+ },
464
+ template: `
465
+ <div class="w-full max-w-md">
466
+ <UiItem variant="outline">
467
+ <UiItemMedia variant="icon">
468
+ <UiIcon name="file-text" :size="20" />
469
+ </UiItemMedia>
470
+ <UiItemContent>
471
+ <UiItemHeader>DOCUMENT</UiItemHeader>
472
+ <UiItemTitle>Project Proposal.pdf</UiItemTitle>
473
+ <UiItemDescription>
474
+ Final version of the Q4 project proposal
475
+ </UiItemDescription>
476
+ <UiItemFooter>Updated 2 hours ago • 2.4 MB</UiItemFooter>
477
+ </UiItemContent>
478
+ </UiItem>
479
+ </div>
480
+ `,
481
+ }),
482
+ };
483
+
484
+ /**
485
+ * ## As Link
486
+ *
487
+ * Use the `as-child` prop to render the item as a custom element like an anchor tag.
488
+ * The hover and focus states will be applied to the anchor element, making
489
+ * the entire item clickable.
490
+ *
491
+ * **Key benefits:**
492
+ * - Semantic HTML with proper `<a>` tags
493
+ * - Full keyboard navigation support
494
+ * - Screen reader friendly
495
+ * - Proper link behavior (right-click, cmd+click, etc.)
496
+ *
497
+ * **Use cases:**
498
+ * - Navigation menus
499
+ * - Resource links
500
+ * - External links (with appropriate icons)
501
+ */
502
+ export const AsLink: Story = {
503
+ render: () => ({
504
+ components: {
505
+ UiItem,
506
+ UiItemContent,
507
+ UiItemTitle,
508
+ UiItemDescription,
509
+ UiItemActions,
510
+ UiIcon,
511
+ },
512
+ template: `
513
+ <div class="flex flex-col gap-4 w-full max-w-md">
514
+ <UiItem as-child>
515
+ <a href="#">
516
+ <UiItemContent>
517
+ <UiItemTitle>Visit our documentation</UiItemTitle>
518
+ <UiItemDescription>
519
+ Learn how to get started with our components.
520
+ </UiItemDescription>
521
+ </UiItemContent>
522
+ <UiItemActions>
523
+ <UiIcon name="chevron-right" :size="16" />
524
+ </UiItemActions>
525
+ </a>
526
+ </UiItem>
527
+
528
+ <UiItem variant="outline" as-child>
529
+ <a href="#" target="_blank" rel="noopener noreferrer">
530
+ <UiItemContent>
531
+ <UiItemTitle>External resource</UiItemTitle>
532
+ <UiItemDescription>
533
+ Opens in a new tab with security attributes.
534
+ </UiItemDescription>
535
+ </UiItemContent>
536
+ <UiItemActions>
537
+ <UiIcon name="external-link" :size="16" />
538
+ </UiItemActions>
539
+ </a>
540
+ </UiItem>
541
+ </div>
542
+ `,
543
+ }),
544
+ };
545
+
546
+ /**
547
+ * ## Team Members List
548
+ *
549
+ * A practical example showing a list of team members with avatars.
550
+ * This pattern combines avatars with user information and action buttons.
551
+ *
552
+ * **Common variations:**
553
+ * - Add online/offline status indicators
554
+ * - Include role badges
555
+ * - Add dropdown menus for more actions
556
+ * - Show last activity time
557
+ */
558
+ export const TeamMembersList: Story = {
559
+ render: () => ({
560
+ components: {
561
+ UiItem,
562
+ UiItemGroup,
563
+ UiItemContent,
564
+ UiItemTitle,
565
+ UiItemDescription,
566
+ UiItemMedia,
567
+ UiItemActions,
568
+ UiAvatar,
569
+ UiAvatarImage,
570
+ UiAvatarFallback,
571
+ UiButton,
572
+ },
573
+ setup() {
574
+ const teamMembers = [
575
+ {
576
+ name: 'Sarah Chen',
577
+ role: 'Engineering Lead',
578
+ avatar: 'https://i.pravatar.cc/150?u=sarah',
579
+ },
580
+ {
581
+ name: 'Marcus Johnson',
582
+ role: 'Senior Developer',
583
+ avatar: 'https://i.pravatar.cc/150?u=marcus',
584
+ },
585
+ {
586
+ name: 'Emily Rodriguez',
587
+ role: 'UX Designer',
588
+ avatar: 'https://i.pravatar.cc/150?u=emily',
589
+ },
590
+ ];
591
+ return { teamMembers };
592
+ },
593
+ template: `
594
+ <div class="w-full max-w-md">
595
+ <UiItemGroup class="rounded-lg border">
596
+ <UiItem v-for="member in teamMembers" :key="member.name" size="sm" class="p-3">
597
+ <UiItemMedia>
598
+ <UiAvatar>
599
+ <UiAvatarImage :src="member.avatar" />
600
+ <UiAvatarFallback>{{ member.name.split(' ').map(n => n[0]).join('') }}</UiAvatarFallback>
601
+ </UiAvatar>
602
+ </UiItemMedia>
603
+ <UiItemContent>
604
+ <UiItemTitle>{{ member.name }}</UiItemTitle>
605
+ <UiItemDescription>{{ member.role }}</UiItemDescription>
606
+ </UiItemContent>
607
+ <UiItemActions>
608
+ <UiButton variant="outline" size="sm">Message</UiButton>
609
+ </UiItemActions>
610
+ </UiItem>
611
+ </UiItemGroup>
612
+ </div>
613
+ `,
614
+ }),
615
+ };
616
+
617
+ /**
618
+ * ## Notification List
619
+ *
620
+ * A notification center pattern showing different types of notifications
621
+ * with color-coded icons, timestamps, and read/unread states.
622
+ *
623
+ * **Features demonstrated:**
624
+ * - Color-coded icons for different notification types
625
+ * - Footer with timestamps
626
+ * - Muted variant for read notifications
627
+ * - Separators between items
628
+ */
629
+ export const NotificationList: Story = {
630
+ render: () => ({
631
+ components: {
632
+ UiItem,
633
+ UiItemGroup,
634
+ UiItemSeparator,
635
+ UiItemContent,
636
+ UiItemTitle,
637
+ UiItemDescription,
638
+ UiItemMedia,
639
+ UiItemFooter,
640
+ UiIcon,
641
+ },
642
+ template: `
643
+ <div class="w-full max-w-md">
644
+ <UiItemGroup class="rounded-lg border p-2">
645
+ <UiItem>
646
+ <UiItemMedia variant="icon" class="text-blue-500">
647
+ <UiIcon name="mail" :size="20" />
648
+ </UiItemMedia>
649
+ <UiItemContent>
650
+ <UiItemTitle>New message from Sarah</UiItemTitle>
651
+ <UiItemDescription>Hey, can you review the latest PR?</UiItemDescription>
652
+ <UiItemFooter>2 minutes ago</UiItemFooter>
653
+ </UiItemContent>
654
+ </UiItem>
655
+
656
+ <UiItemSeparator />
657
+
658
+ <UiItem>
659
+ <UiItemMedia variant="icon" class="text-yellow-500">
660
+ <UiIcon name="alert-circle" :size="20" />
661
+ </UiItemMedia>
662
+ <UiItemContent>
663
+ <UiItemTitle>System warning</UiItemTitle>
664
+ <UiItemDescription>Your storage is almost full (95% used)</UiItemDescription>
665
+ <UiItemFooter>1 hour ago</UiItemFooter>
666
+ </UiItemContent>
667
+ </UiItem>
668
+
669
+ <UiItemSeparator />
670
+
671
+ <UiItem variant="muted">
672
+ <UiItemMedia variant="icon" class="text-green-500">
673
+ <UiIcon name="check-circle" :size="20" />
674
+ </UiItemMedia>
675
+ <UiItemContent>
676
+ <UiItemTitle>Deployment successful</UiItemTitle>
677
+ <UiItemDescription>v2.4.1 deployed to production</UiItemDescription>
678
+ <UiItemFooter>Yesterday</UiItemFooter>
679
+ </UiItemContent>
680
+ </UiItem>
681
+ </UiItemGroup>
682
+ </div>
683
+ `,
684
+ }),
685
+ };
686
+
687
+ /**
688
+ * ## Empty State with Invite
689
+ *
690
+ * An empty state pattern using the Item component. Perfect for showing
691
+ * a call-to-action when a list is empty.
692
+ *
693
+ * **Use cases:**
694
+ * - Empty team member lists
695
+ * - No notifications state
696
+ * - Empty file lists
697
+ * - First-time user experiences
698
+ */
699
+ export const EmptyStateWithInvite: Story = {
700
+ render: () => ({
701
+ components: {
702
+ UiItem,
703
+ UiItemContent,
704
+ UiItemTitle,
705
+ UiItemDescription,
706
+ UiItemMedia,
707
+ UiItemActions,
708
+ UiButton,
709
+ UiAvatar,
710
+ UiAvatarFallback,
711
+ UiIcon,
712
+ },
713
+ template: `
714
+ <div class="w-full max-w-md">
715
+ <UiItem variant="outline">
716
+ <UiItemMedia>
717
+ <UiAvatar class="bg-muted">
718
+ <UiAvatarFallback>
719
+ <UiIcon name="users" :size="20" class="text-muted-foreground" />
720
+ </UiAvatarFallback>
721
+ </UiAvatar>
722
+ </UiItemMedia>
723
+ <UiItemContent>
724
+ <UiItemTitle>No Team Members</UiItemTitle>
725
+ <UiItemDescription>
726
+ Invite your team to collaborate on this project.
727
+ </UiItemDescription>
728
+ </UiItemContent>
729
+ <UiItemActions>
730
+ <UiButton size="sm">Invite</UiButton>
731
+ </UiItemActions>
732
+ </UiItem>
733
+ </div>
734
+ `,
735
+ }),
736
+ };
737
+
738
+ /**
739
+ * ## All States
740
+ *
741
+ * A comprehensive showcase of all Item component states and variations
742
+ * in a single view. This is useful for:
743
+ *
744
+ * - **Visual QA**: Quickly verify all states look correct
745
+ * - **Design review**: See all variations side by side
746
+ * - **Documentation**: Reference for available options
747
+ *
748
+ * ### Variants
749
+ * - Default, Outline, Muted
750
+ *
751
+ * ### Sizes
752
+ * - Default, Small
753
+ *
754
+ * ### Media Variants
755
+ * - Default (avatar), Icon, Image
756
+ *
757
+ * ### Sub-components
758
+ * - UiItemGroup, UiItemSeparator
759
+ * - UiItemMedia, UiItemContent
760
+ * - UiItemTitle, UiItemDescription
761
+ * - UiItemActions, UiItemHeader, UiItemFooter
762
+ */
763
+ export const AllStates: Story = {
764
+ render: () => ({
765
+ components: {
766
+ UiItem,
767
+ UiItemGroup,
768
+ UiItemSeparator,
769
+ UiItemContent,
770
+ UiItemTitle,
771
+ UiItemDescription,
772
+ UiItemMedia,
773
+ UiItemActions,
774
+ UiItemHeader,
775
+ UiItemFooter,
776
+ UiButton,
777
+ UiAvatar,
778
+ UiAvatarImage,
779
+ UiAvatarFallback,
780
+ UiIcon,
781
+ },
782
+ template: `
783
+ <div class="flex flex-col gap-8 w-full max-w-2xl">
784
+ <!-- VARIANTS SECTION -->
785
+ <section>
786
+ <h3 class="text-lg font-semibold mb-4">Variants</h3>
787
+ <div class="flex flex-col gap-3">
788
+ <UiItem>
789
+ <UiItemContent>
790
+ <UiItemTitle>Default Variant</UiItemTitle>
791
+ <UiItemDescription>Standard styling with subtle background</UiItemDescription>
792
+ </UiItemContent>
793
+ </UiItem>
794
+
795
+ <UiItem variant="outline">
796
+ <UiItemContent>
797
+ <UiItemTitle>Outline Variant</UiItemTitle>
798
+ <UiItemDescription>Bordered style with transparent background</UiItemDescription>
799
+ </UiItemContent>
800
+ </UiItem>
801
+
802
+ <UiItem variant="muted">
803
+ <UiItemContent>
804
+ <UiItemTitle>Muted Variant</UiItemTitle>
805
+ <UiItemDescription>Subdued appearance for secondary content</UiItemDescription>
806
+ </UiItemContent>
807
+ </UiItem>
808
+ </div>
809
+ </section>
810
+
811
+ <!-- SIZES SECTION -->
812
+ <section>
813
+ <h3 class="text-lg font-semibold mb-4">Sizes</h3>
814
+ <div class="flex flex-col gap-3">
815
+ <UiItem variant="outline">
816
+ <UiItemMedia variant="icon">
817
+ <UiIcon name="layout-grid" :size="20" />
818
+ </UiItemMedia>
819
+ <UiItemContent>
820
+ <UiItemTitle>Default Size</UiItemTitle>
821
+ <UiItemDescription>Comfortable padding for primary content</UiItemDescription>
822
+ </UiItemContent>
823
+ </UiItem>
824
+
825
+ <UiItem variant="outline" size="sm">
826
+ <UiItemMedia variant="icon">
827
+ <UiIcon name="layout-list" :size="20" />
828
+ </UiItemMedia>
829
+ <UiItemContent>
830
+ <UiItemTitle>Small Size</UiItemTitle>
831
+ <UiItemDescription>Compact padding for dense layouts</UiItemDescription>
832
+ </UiItemContent>
833
+ </UiItem>
834
+ </div>
835
+ </section>
836
+
837
+ <!-- MEDIA VARIANTS SECTION -->
838
+ <section>
839
+ <h3 class="text-lg font-semibold mb-4">Media Variants</h3>
840
+ <div class="flex flex-col gap-3">
841
+ <UiItem variant="outline">
842
+ <UiItemMedia>
843
+ <UiAvatar>
844
+ <UiAvatarImage src="https://i.pravatar.cc/150?u=demo" />
845
+ <UiAvatarFallback>DM</UiAvatarFallback>
846
+ </UiAvatar>
847
+ </UiItemMedia>
848
+ <UiItemContent>
849
+ <UiItemTitle>Default Media (Avatar)</UiItemTitle>
850
+ <UiItemDescription>Standard sizing for avatars</UiItemDescription>
851
+ </UiItemContent>
852
+ </UiItem>
853
+
854
+ <UiItem variant="outline">
855
+ <UiItemMedia variant="icon">
856
+ <UiIcon name="star" :size="20" />
857
+ </UiItemMedia>
858
+ <UiItemContent>
859
+ <UiItemTitle>Icon Media</UiItemTitle>
860
+ <UiItemDescription>Compact sizing for icons</UiItemDescription>
861
+ </UiItemContent>
862
+ </UiItem>
863
+
864
+ <UiItem variant="outline">
865
+ <UiItemMedia variant="image">
866
+ <img
867
+ src="https://images.unsplash.com/photo-1506905925346-21bda4d32df4?w=100&h=100&fit=crop"
868
+ alt="Demo image"
869
+ class="size-full object-cover"
870
+ />
871
+ </UiItemMedia>
872
+ <UiItemContent>
873
+ <UiItemTitle>Image Media</UiItemTitle>
874
+ <UiItemDescription>Larger sizing for thumbnails</UiItemDescription>
875
+ </UiItemContent>
876
+ </UiItem>
877
+ </div>
878
+ </section>
879
+
880
+ <!-- WITH ACTIONS SECTION -->
881
+ <section>
882
+ <h3 class="text-lg font-semibold mb-4">With Actions</h3>
883
+ <div class="flex flex-col gap-3">
884
+ <UiItem variant="outline">
885
+ <UiItemMedia variant="icon">
886
+ <UiIcon name="folder" :size="20" />
887
+ </UiItemMedia>
888
+ <UiItemContent>
889
+ <UiItemTitle>With Button Action</UiItemTitle>
890
+ <UiItemDescription>Click the button to perform an action</UiItemDescription>
891
+ </UiItemContent>
892
+ <UiItemActions>
893
+ <UiButton variant="outline" size="sm">Action</UiButton>
894
+ </UiItemActions>
895
+ </UiItem>
896
+
897
+ <UiItem variant="outline">
898
+ <UiItemMedia variant="icon">
899
+ <UiIcon name="file" :size="20" />
900
+ </UiItemMedia>
901
+ <UiItemContent>
902
+ <UiItemTitle>With Icon Action</UiItemTitle>
903
+ <UiItemDescription>Navigate to see more details</UiItemDescription>
904
+ </UiItemContent>
905
+ <UiItemActions>
906
+ <UiIcon name="chevron-right" :size="16" />
907
+ </UiItemActions>
908
+ </UiItem>
909
+
910
+ <UiItem variant="outline">
911
+ <UiItemMedia variant="icon">
912
+ <UiIcon name="inbox" :size="20" />
913
+ </UiItemMedia>
914
+ <UiItemContent>
915
+ <UiItemTitle>With Multiple Actions</UiItemTitle>
916
+ <UiItemDescription>Multiple buttons in actions area</UiItemDescription>
917
+ </UiItemContent>
918
+ <UiItemActions>
919
+ <UiButton variant="ghost" size="sm">Cancel</UiButton>
920
+ <UiButton size="sm">Confirm</UiButton>
921
+ </UiItemActions>
922
+ </UiItem>
923
+ </div>
924
+ </section>
925
+
926
+ <!-- WITH HEADER AND FOOTER SECTION -->
927
+ <section>
928
+ <h3 class="text-lg font-semibold mb-4">With Header and Footer</h3>
929
+ <UiItem variant="outline">
930
+ <UiItemMedia variant="icon">
931
+ <UiIcon name="calendar" :size="20" />
932
+ </UiItemMedia>
933
+ <UiItemContent>
934
+ <UiItemHeader>SCHEDULED EVENT</UiItemHeader>
935
+ <UiItemTitle>Team Standup Meeting</UiItemTitle>
936
+ <UiItemDescription>Daily sync with the engineering team</UiItemDescription>
937
+ <UiItemFooter>Tomorrow at 9:00 AM • 30 min</UiItemFooter>
938
+ </UiItemContent>
939
+ <UiItemActions>
940
+ <UiButton variant="outline" size="sm">Join</UiButton>
941
+ </UiItemActions>
942
+ </UiItem>
943
+ </section>
944
+
945
+ <!-- GROUPED ITEMS SECTION -->
946
+ <section>
947
+ <h3 class="text-lg font-semibold mb-4">Grouped Items with Separator</h3>
948
+ <UiItemGroup class="rounded-lg border p-2">
949
+ <UiItem>
950
+ <UiItemMedia variant="icon">
951
+ <UiIcon name="home" :size="20" />
952
+ </UiItemMedia>
953
+ <UiItemContent>
954
+ <UiItemTitle>Dashboard</UiItemTitle>
955
+ </UiItemContent>
956
+ <UiItemActions>
957
+ <UiIcon name="chevron-right" :size="16" />
958
+ </UiItemActions>
959
+ </UiItem>
960
+
961
+ <UiItemSeparator />
962
+
963
+ <UiItem>
964
+ <UiItemMedia variant="icon">
965
+ <UiIcon name="bar-chart-2" :size="20" />
966
+ </UiItemMedia>
967
+ <UiItemContent>
968
+ <UiItemTitle>Analytics</UiItemTitle>
969
+ </UiItemContent>
970
+ <UiItemActions>
971
+ <UiIcon name="chevron-right" :size="16" />
972
+ </UiItemActions>
973
+ </UiItem>
974
+
975
+ <UiItemSeparator />
976
+
977
+ <UiItem>
978
+ <UiItemMedia variant="icon">
979
+ <UiIcon name="cog" :size="20" />
980
+ </UiItemMedia>
981
+ <UiItemContent>
982
+ <UiItemTitle>Settings</UiItemTitle>
983
+ </UiItemContent>
984
+ <UiItemActions>
985
+ <UiIcon name="chevron-right" :size="16" />
986
+ </UiItemActions>
987
+ </UiItem>
988
+ </UiItemGroup>
989
+ </section>
990
+
991
+ <!-- AS LINK SECTION -->
992
+ <section>
993
+ <h3 class="text-lg font-semibold mb-4">As Link (as-child)</h3>
994
+ <div class="flex flex-col gap-3">
995
+ <UiItem as-child>
996
+ <a href="#" class="flex items-center gap-3">
997
+ <UiItemMedia variant="icon">
998
+ <UiIcon name="link" :size="20" />
999
+ </UiItemMedia>
1000
+ <UiItemContent>
1001
+ <UiItemTitle>Internal Link</UiItemTitle>
1002
+ <UiItemDescription>Rendered as an anchor tag</UiItemDescription>
1003
+ </UiItemContent>
1004
+ <UiItemActions>
1005
+ <UiIcon name="chevron-right" :size="16" />
1006
+ </UiItemActions>
1007
+ </a>
1008
+ </UiItem>
1009
+
1010
+ <UiItem variant="outline" as-child>
1011
+ <a href="#" target="_blank" rel="noopener noreferrer" class="flex items-center gap-3">
1012
+ <UiItemMedia variant="icon">
1013
+ <UiIcon name="external-link" :size="20" />
1014
+ </UiItemMedia>
1015
+ <UiItemContent>
1016
+ <UiItemTitle>External Link</UiItemTitle>
1017
+ <UiItemDescription>Opens in new tab</UiItemDescription>
1018
+ </UiItemContent>
1019
+ <UiItemActions>
1020
+ <UiIcon name="arrow-up-right" :size="16" />
1021
+ </UiItemActions>
1022
+ </a>
1023
+ </UiItem>
1024
+ </div>
1025
+ </section>
1026
+ </div>
1027
+ `,
1028
+ }),
1029
+ };