@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
@@ -1,1496 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/vue3-vite';
2
- import {
3
- UiField,
4
- UiFieldContent,
5
- UiFieldDescription,
6
- UiFieldError,
7
- UiFieldGroup,
8
- UiFieldLabel,
9
- UiFieldLegend,
10
- UiFieldSeparator,
11
- UiFieldSet,
12
- UiFieldTitle,
13
- } from '.';
14
- import { UiCheckbox } from '../UiCheckbox';
15
- import { UiInput } from '../UiInput';
16
- import { UiRadioGroup, UiRadioGroupItem } from '../UiRadioGroup';
17
- import {
18
- UiSelect,
19
- UiSelectContent,
20
- UiSelectItem,
21
- UiSelectTrigger,
22
- UiSelectValue,
23
- } from '../UiSelect';
24
- import { UiSwitch } from '../UiSwitch';
25
- import { UiTextarea } from '../UiTextarea';
26
- import { UiButton } from '../UiButton';
27
- import { ref } from 'vue';
28
-
29
- /**
30
- * UiField composes label, description, and error messaging into a consistent form-field layout.
31
- * Use it to keep spacing, typography, and validation feedback consistent across inputs.
32
- *
33
- * @slot default - Content of the field (typically UiFieldLabel and UiFieldContent).
34
- */
35
- const meta: Meta<typeof UiField> = {
36
- title: 'Primitives/UiField',
37
- component: UiField,
38
- tags: ['autodocs'],
39
- argTypes: {
40
- orientation: {
41
- control: 'select',
42
- options: ['vertical', 'horizontal', 'responsive'],
43
- description:
44
- 'Layout orientation of the field. Use `responsive` to switch layout based on viewport size.',
45
- },
46
- },
47
- args: {
48
- orientation: 'vertical',
49
- },
50
- };
51
-
52
- export default meta;
53
- type Story = StoryObj<typeof UiField>;
54
-
55
- const defaultTemplateSource = `<script setup lang="ts">
56
- import { ref } from 'vue'
57
- import {
58
- UiField,
59
- UiFieldLabel,
60
- UiFieldContent,
61
- UiFieldDescription,
62
- UiFieldError,
63
- UiInput,
64
- } from '@aleph-alpha/ui-library'
65
-
66
- const value = ref('')
67
- const errors = ref<string[]>([])
68
- </script>
69
-
70
- <template>
71
- <UiField>
72
- <UiFieldLabel for="email">Email</UiFieldLabel>
73
- <UiFieldContent>
74
- <UiInput id="email" v-model="value" name="email" placeholder="name@company.com" />
75
- <UiFieldDescription>We'll never share your email.</UiFieldDescription>
76
- <UiFieldError :errors="errors" />
77
- </UiFieldContent>
78
- </UiField>
79
- </template>`;
80
-
81
- /**
82
- * Basic field composition (label + input + description + error slot).
83
- * Use this as the default pattern for a single input with optional helper text and validation.
84
- */
85
- export const Default: Story = {
86
- render: (args) => ({
87
- components: {
88
- UiField,
89
- UiFieldContent,
90
- UiFieldDescription,
91
- UiFieldError,
92
- UiFieldLabel,
93
- UiInput,
94
- },
95
- setup() {
96
- const value = ref('');
97
- const errors = ref<string[]>([]);
98
- return { args, value, errors };
99
- },
100
- template: `
101
- <UiField :orientation="args.orientation">
102
- <UiFieldLabel for="email">Email</UiFieldLabel>
103
- <UiFieldContent>
104
- <UiInput id="email" v-model="value" name="email" placeholder="name@company.com" />
105
- <UiFieldDescription>We'll never share your email.</UiFieldDescription>
106
- <UiFieldError :errors="errors" />
107
- </UiFieldContent>
108
- </UiField>
109
- `,
110
- }),
111
- parameters: {
112
- docs: { source: { code: defaultTemplateSource } },
113
- },
114
- };
115
-
116
- const withErrorTemplateSource = `<script setup lang="ts">
117
- import { ref } from 'vue'
118
- import {
119
- UiField,
120
- UiFieldLabel,
121
- UiFieldContent,
122
- UiFieldError,
123
- UiInput,
124
- } from '@aleph-alpha/ui-library'
125
-
126
- const value = ref('')
127
- const errors = ref(['Email is required'])
128
- </script>
129
-
130
- <template>
131
- <UiField>
132
- <UiFieldLabel for="email">Email</UiFieldLabel>
133
- <UiFieldContent>
134
- <UiInput id="email" v-model="value" name="email" placeholder="name@company.com" />
135
- <UiFieldError :errors="errors" />
136
- </UiFieldContent>
137
- </UiField>
138
- </template>`;
139
-
140
- /**
141
- * Field with a validation error.
142
- * Use this to show how errors are rendered under the input (e.g., form validation failures).
143
- */
144
- export const WithError: Story = {
145
- render: () => ({
146
- components: {
147
- UiField,
148
- UiFieldContent,
149
- UiFieldError,
150
- UiFieldLabel,
151
- UiInput,
152
- },
153
- setup() {
154
- const value = ref('');
155
- const errors = ref(['Email is required']);
156
- return { value, errors };
157
- },
158
- template: `
159
- <UiField>
160
- <UiFieldLabel for="email">Email</UiFieldLabel>
161
- <UiFieldContent>
162
- <UiInput id="email" v-model="value" name="email" placeholder="name@company.com" />
163
- <UiFieldError :errors="errors" />
164
- </UiFieldContent>
165
- </UiField>
166
- `,
167
- }),
168
- parameters: {
169
- controls: { disable: true },
170
- docs: { source: { code: withErrorTemplateSource } },
171
- },
172
- };
173
-
174
- const groupTemplateSource = `<script setup lang="ts">
175
- import { ref } from 'vue'
176
- import {
177
- UiField,
178
- UiFieldGroup,
179
- UiFieldLabel,
180
- UiFieldContent,
181
- UiFieldDescription,
182
- UiFieldSeparator,
183
- UiFieldSet,
184
- UiFieldTitle,
185
- UiInput,
186
- } from '@aleph-alpha/ui-library'
187
-
188
- const firstName = ref('')
189
- const lastName = ref('')
190
- </script>
191
-
192
- <template>
193
- <UiFieldGroup>
194
- <UiFieldSet>
195
- <UiFieldTitle>Profile</UiFieldTitle>
196
- <UiFieldDescription>Update your personal information.</UiFieldDescription>
197
- <UiFieldSeparator />
198
- <UiField>
199
- <UiFieldLabel for="firstName">First name</UiFieldLabel>
200
- <UiFieldContent>
201
- <UiInput id="firstName" v-model="firstName" name="firstName" />
202
- </UiFieldContent>
203
- </UiField>
204
- <UiField>
205
- <UiFieldLabel for="lastName">Last name</UiFieldLabel>
206
- <UiFieldContent>
207
- <UiInput id="lastName" v-model="lastName" name="lastName" />
208
- </UiFieldContent>
209
- </UiField>
210
- </UiFieldSet>
211
- </UiFieldGroup>
212
- </template>`;
213
-
214
- /**
215
- * Grouped fields using fieldset semantics (title/description/separator + multiple fields).
216
- * Use this to present related inputs as a single section (e.g., profile or billing details).
217
- */
218
- export const Group: Story = {
219
- render: () => ({
220
- components: {
221
- UiField,
222
- UiFieldContent,
223
- UiFieldDescription,
224
- UiFieldGroup,
225
- UiFieldLabel,
226
- UiFieldSeparator,
227
- UiFieldSet,
228
- UiFieldTitle,
229
- UiInput,
230
- },
231
- setup() {
232
- const firstName = ref('');
233
- const lastName = ref('');
234
- return { firstName, lastName };
235
- },
236
- template: `
237
- <UiFieldGroup>
238
- <UiFieldSet>
239
- <UiFieldTitle>Profile</UiFieldTitle>
240
- <UiFieldDescription>Update your personal information.</UiFieldDescription>
241
- <UiFieldSeparator />
242
- <UiField>
243
- <UiFieldLabel for="firstName">First name</UiFieldLabel>
244
- <UiFieldContent>
245
- <UiInput id="firstName" v-model="firstName" name="firstName" />
246
- </UiFieldContent>
247
- </UiField>
248
- <UiField>
249
- <UiFieldLabel for="lastName">Last name</UiFieldLabel>
250
- <UiFieldContent>
251
- <UiInput id="lastName" v-model="lastName" name="lastName" />
252
- </UiFieldContent>
253
- </UiField>
254
- </UiFieldSet>
255
- </UiFieldGroup>
256
- `,
257
- }),
258
- parameters: {
259
- controls: { disable: true },
260
- docs: { source: { code: groupTemplateSource } },
261
- },
262
- };
263
-
264
- const horizontalOrientationTemplateSource = `<script setup lang="ts">
265
- import { ref } from 'vue'
266
- import {
267
- UiField,
268
- UiFieldLabel,
269
- UiFieldContent,
270
- UiFieldDescription,
271
- UiInput,
272
- } from '@aleph-alpha/ui-library'
273
-
274
- const value = ref('')
275
- </script>
276
-
277
- <template>
278
- <UiField orientation="horizontal">
279
- <UiFieldLabel for="username">Username</UiFieldLabel>
280
- <UiFieldContent>
281
- <UiInput id="username" v-model="value" name="username" placeholder="shadcn" />
282
- <UiFieldDescription>This will be visible to other users.</UiFieldDescription>
283
- </UiFieldContent>
284
- </UiField>
285
- </template>`;
286
-
287
- /**
288
- * Field with horizontal layout.
289
- * Useful when you want labels aligned on the left and controls on the right.
290
- */
291
- export const HorizontalOrientation: Story = {
292
- args: { orientation: 'horizontal' },
293
- render: (args) => ({
294
- components: {
295
- UiField,
296
- UiFieldContent,
297
- UiFieldDescription,
298
- UiFieldLabel,
299
- UiInput,
300
- },
301
- setup() {
302
- const value = ref('');
303
- return { args, value };
304
- },
305
- template: `
306
- <UiField :orientation="args.orientation">
307
- <UiFieldLabel for="username">Username</UiFieldLabel>
308
- <UiFieldContent>
309
- <UiInput id="username" v-model="value" name="username" placeholder="shadcn" />
310
- <UiFieldDescription>This will be visible to other users.</UiFieldDescription>
311
- </UiFieldContent>
312
- </UiField>
313
- `,
314
- }),
315
- parameters: {
316
- docs: { source: { code: horizontalOrientationTemplateSource } },
317
- },
318
- };
319
-
320
- const responsiveOrientationTemplateSource = `<script setup lang="ts">
321
- import { ref } from 'vue'
322
- import {
323
- UiField,
324
- UiFieldLabel,
325
- UiFieldContent,
326
- UiFieldDescription,
327
- UiFieldGroup,
328
- UiFieldSet,
329
- UiFieldTitle,
330
- UiInput,
331
- } from '@aleph-alpha/ui-library'
332
-
333
- const value = ref('')
334
- </script>
335
-
336
- <template>
337
- <div class="max-w-xl">
338
- <UiFieldGroup>
339
- <UiFieldSet>
340
- <UiFieldTitle>Account</UiFieldTitle>
341
- <UiField orientation="responsive">
342
- <UiFieldLabel for="displayName">Display name</UiFieldLabel>
343
- <UiFieldContent>
344
- <UiInput id="displayName" v-model="value" name="displayName" placeholder="Jane Doe" />
345
- <UiFieldDescription>Shown on your profile.</UiFieldDescription>
346
- </UiFieldContent>
347
- </UiField>
348
- </UiFieldSet>
349
- </UiFieldGroup>
350
- </div>
351
- </template>`;
352
-
353
- /**
354
- * Responsive orientation switches layout based on the field-group container query.
355
- * Wrap in `UiFieldGroup` to enable the container query used by the field styles.
356
- */
357
- export const ResponsiveOrientation: Story = {
358
- render: () => ({
359
- components: {
360
- UiField,
361
- UiFieldContent,
362
- UiFieldDescription,
363
- UiFieldGroup,
364
- UiFieldLabel,
365
- UiFieldSet,
366
- UiFieldTitle,
367
- UiInput,
368
- },
369
- setup() {
370
- const value = ref('');
371
- return { value };
372
- },
373
- template: `
374
- <div class="max-w-xl">
375
- <UiFieldGroup>
376
- <UiFieldSet>
377
- <UiFieldTitle>Account</UiFieldTitle>
378
- <UiField orientation="responsive">
379
- <UiFieldLabel for="displayName">Display name</UiFieldLabel>
380
- <UiFieldContent>
381
- <UiInput id="displayName" v-model="value" name="displayName" placeholder="Jane Doe" />
382
- <UiFieldDescription>Shown on your profile.</UiFieldDescription>
383
- </UiFieldContent>
384
- </UiField>
385
- </UiFieldSet>
386
- </UiFieldGroup>
387
- </div>
388
- `,
389
- }),
390
- parameters: {
391
- controls: { disable: true },
392
- docs: { source: { code: responsiveOrientationTemplateSource } },
393
- },
394
- };
395
-
396
- const multipleErrorsTemplateSource = `<script setup lang="ts">
397
- import { ref } from 'vue'
398
- import {
399
- UiField,
400
- UiFieldLabel,
401
- UiFieldContent,
402
- UiFieldError,
403
- UiInput,
404
- } from '@aleph-alpha/ui-library'
405
-
406
- const value = ref('bad-email')
407
- const errors = ref([
408
- 'Must be a valid email address',
409
- { message: 'Domain is not allowed' },
410
- 'Must be a valid email address',
411
- ])
412
- </script>
413
-
414
- <template>
415
- <UiField data-invalid="true">
416
- <UiFieldLabel for="email">Email</UiFieldLabel>
417
- <UiFieldContent>
418
- <UiInput id="email" v-model="value" name="email" />
419
- <UiFieldError :errors="errors" />
420
- </UiFieldContent>
421
- </UiField>
422
- </template>`;
423
-
424
- /**
425
- * Field with multiple validation errors.
426
- * `UiFieldError` deduplicates identical messages and renders a list when there is more than one.
427
- */
428
- export const WithMultipleErrors: Story = {
429
- render: () => ({
430
- components: { UiField, UiFieldContent, UiFieldError, UiFieldLabel, UiInput },
431
- setup() {
432
- const value = ref('bad-email');
433
- const errors = ref([
434
- 'Must be a valid email address',
435
- { message: 'Domain is not allowed' },
436
- 'Must be a valid email address',
437
- ]);
438
- return { value, errors };
439
- },
440
- template: `
441
- <UiField data-invalid="true">
442
- <UiFieldLabel for="email-multi">Email</UiFieldLabel>
443
- <UiFieldContent>
444
- <UiInput id="email-multi" v-model="value" name="email" />
445
- <UiFieldError :errors="errors" />
446
- </UiFieldContent>
447
- </UiField>
448
- `,
449
- }),
450
- parameters: {
451
- controls: { disable: true },
452
- docs: { source: { code: multipleErrorsTemplateSource } },
453
- },
454
- };
455
-
456
- const customErrorSlotTemplateSource = `<script setup lang="ts">
457
- import { ref } from 'vue'
458
- import {
459
- UiField,
460
- UiFieldLabel,
461
- UiFieldContent,
462
- UiFieldError,
463
- UiInput,
464
- } from '@aleph-alpha/ui-library'
465
-
466
- const value = ref('')
467
- const errors = ref(['Email is required'])
468
- </script>
469
-
470
- <template>
471
- <UiField data-invalid="true">
472
- <UiFieldLabel for="email-custom">Email</UiFieldLabel>
473
- <UiFieldContent>
474
- <UiInput id="email-custom" v-model="value" name="email" />
475
- <UiFieldError :errors="errors">
476
- <span class="font-medium">Please provide a valid email.</span>
477
- </UiFieldError>
478
- </UiFieldContent>
479
- </UiField>
480
- </template>`;
481
-
482
- /**
483
- * Custom error rendering using the `UiFieldError` slot.
484
- * Slot content takes precedence over the `errors` prop.
485
- */
486
- export const CustomErrorSlot: Story = {
487
- render: () => ({
488
- components: { UiField, UiFieldContent, UiFieldError, UiFieldLabel, UiInput },
489
- setup() {
490
- const value = ref('');
491
- const errors = ref(['Email is required']);
492
- return { value, errors };
493
- },
494
- template: `
495
- <UiField data-invalid="true">
496
- <UiFieldLabel for="email-custom">Email</UiFieldLabel>
497
- <UiFieldContent>
498
- <UiInput id="email-custom" v-model="value" name="email" />
499
- <UiFieldError :errors="errors">
500
- <span class="font-medium">Please provide a valid email.</span>
501
- </UiFieldError>
502
- </UiFieldContent>
503
- </UiField>
504
- `,
505
- }),
506
- parameters: {
507
- controls: { disable: true },
508
- docs: { source: { code: customErrorSlotTemplateSource } },
509
- },
510
- };
511
-
512
- const textareaFieldTemplateSource = `<script setup lang="ts">
513
- import { ref } from 'vue'
514
- import {
515
- UiField,
516
- UiFieldLabel,
517
- UiFieldContent,
518
- UiFieldDescription,
519
- UiTextarea,
520
- } from '@aleph-alpha/ui-library'
521
-
522
- const bio = ref('')
523
- </script>
524
-
525
- <template>
526
- <UiField>
527
- <UiFieldLabel for="bio">Bio</UiFieldLabel>
528
- <UiFieldContent>
529
- <UiTextarea id="bio" v-model="bio" name="bio" placeholder="Tell us a little about yourself." />
530
- <UiFieldDescription>You can write up to 160 characters.</UiFieldDescription>
531
- </UiFieldContent>
532
- </UiField>
533
- </template>`;
534
-
535
- /**
536
- * Field with a textarea control.
537
- */
538
- export const Textarea: Story = {
539
- render: () => ({
540
- components: { UiField, UiFieldContent, UiFieldDescription, UiFieldLabel, UiTextarea },
541
- setup() {
542
- const bio = ref('');
543
- return { bio };
544
- },
545
- template: `
546
- <UiField>
547
- <UiFieldLabel for="bio">Bio</UiFieldLabel>
548
- <UiFieldContent>
549
- <UiTextarea id="bio" v-model="bio" name="bio" placeholder="Tell us a little about yourself." />
550
- <UiFieldDescription>You can write up to 160 characters.</UiFieldDescription>
551
- </UiFieldContent>
552
- </UiField>
553
- `,
554
- }),
555
- parameters: {
556
- controls: { disable: true },
557
- docs: { source: { code: textareaFieldTemplateSource } },
558
- },
559
- };
560
-
561
- const selectFieldTemplateSource = `<script setup lang="ts">
562
- import { ref } from 'vue'
563
- import {
564
- UiField,
565
- UiFieldLabel,
566
- UiFieldContent,
567
- UiFieldDescription,
568
- UiSelect,
569
- UiSelectTrigger,
570
- UiSelectValue,
571
- UiSelectContent,
572
- UiSelectItem,
573
- } from '@aleph-alpha/ui-library'
574
-
575
- const value = ref('')
576
- </script>
577
-
578
- <template>
579
- <UiField>
580
- <UiFieldLabel for="fruit">Favorite fruit</UiFieldLabel>
581
- <UiFieldContent>
582
- <UiSelect v-model="value">
583
- <UiSelectTrigger id="fruit">
584
- <UiSelectValue placeholder="Select a fruit" />
585
- </UiSelectTrigger>
586
- <UiSelectContent>
587
- <UiSelectItem value="apple">Apple</UiSelectItem>
588
- <UiSelectItem value="banana">Banana</UiSelectItem>
589
- <UiSelectItem value="orange">Orange</UiSelectItem>
590
- </UiSelectContent>
591
- </UiSelect>
592
- <UiFieldDescription>This is used to personalize suggestions.</UiFieldDescription>
593
- </UiFieldContent>
594
- </UiField>
595
- </template>`;
596
-
597
- /**
598
- * Field composed with `UiSelect`.
599
- */
600
- export const Select: Story = {
601
- render: () => ({
602
- components: {
603
- UiField,
604
- UiFieldContent,
605
- UiFieldDescription,
606
- UiFieldLabel,
607
- UiSelect,
608
- UiSelectContent,
609
- UiSelectItem,
610
- UiSelectTrigger,
611
- UiSelectValue,
612
- },
613
- setup() {
614
- const value = ref('');
615
- return { value };
616
- },
617
- template: `
618
- <UiField>
619
- <UiFieldLabel for="fruit">Favorite fruit</UiFieldLabel>
620
- <UiFieldContent>
621
- <UiSelect v-model="value">
622
- <UiSelectTrigger id="fruit">
623
- <UiSelectValue placeholder="Select a fruit" />
624
- </UiSelectTrigger>
625
- <UiSelectContent>
626
- <UiSelectItem value="apple">Apple</UiSelectItem>
627
- <UiSelectItem value="banana">Banana</UiSelectItem>
628
- <UiSelectItem value="orange">Orange</UiSelectItem>
629
- </UiSelectContent>
630
- </UiSelect>
631
- <UiFieldDescription>This is used to personalize suggestions.</UiFieldDescription>
632
- </UiFieldContent>
633
- </UiField>
634
- `,
635
- }),
636
- parameters: {
637
- controls: { disable: true },
638
- docs: { source: { code: selectFieldTemplateSource } },
639
- },
640
- };
641
-
642
- const checkboxFieldTemplateSource = `<script setup lang="ts">
643
- import { ref } from 'vue'
644
- import {
645
- UiField,
646
- UiFieldContent,
647
- UiFieldDescription,
648
- UiFieldLabel,
649
- UiCheckbox,
650
- } from '@aleph-alpha/ui-library'
651
-
652
- const enabled = ref(true)
653
- </script>
654
-
655
- <template>
656
- <UiField orientation="horizontal">
657
- <UiCheckbox id="notifications" v-model="enabled" name="notifications" />
658
- <UiFieldContent>
659
- <UiFieldLabel for="notifications">Enable notifications</UiFieldLabel>
660
- <UiFieldDescription>You can change this setting at any time.</UiFieldDescription>
661
- </UiFieldContent>
662
- </UiField>
663
- </template>`;
664
-
665
- /**
666
- * Checkbox field layout (checkbox + text content).
667
- * The checkbox is a direct child of `UiField` so the horizontal styles can align it nicely.
668
- */
669
- export const Checkbox: Story = {
670
- render: () => ({
671
- components: { UiCheckbox, UiField, UiFieldContent, UiFieldDescription, UiFieldLabel },
672
- setup() {
673
- const enabled = ref(true);
674
- return { enabled };
675
- },
676
- template: `
677
- <UiField orientation="horizontal">
678
- <UiCheckbox id="notifications" v-model="enabled" name="notifications" />
679
- <UiFieldContent>
680
- <UiFieldLabel for="notifications">Enable notifications</UiFieldLabel>
681
- <UiFieldDescription>You can change this setting at any time.</UiFieldDescription>
682
- </UiFieldContent>
683
- </UiField>
684
- `,
685
- }),
686
- parameters: {
687
- controls: { disable: true },
688
- docs: { source: { code: checkboxFieldTemplateSource } },
689
- },
690
- };
691
-
692
- const switchFieldTemplateSource = `<script setup lang="ts">
693
- import { ref } from 'vue'
694
- import {
695
- UiField,
696
- UiFieldContent,
697
- UiFieldDescription,
698
- UiFieldLabel,
699
- UiSwitch,
700
- } from '@aleph-alpha/ui-library'
701
-
702
- const enabled = ref(false)
703
- </script>
704
-
705
- <template>
706
- <UiField orientation="horizontal">
707
- <UiSwitch id="airplane" v-model="enabled" name="airplane" />
708
- <UiFieldContent>
709
- <UiFieldLabel for="airplane">Airplane mode</UiFieldLabel>
710
- <UiFieldDescription>Disable all wireless connections.</UiFieldDescription>
711
- </UiFieldContent>
712
- </UiField>
713
- </template>`;
714
-
715
- /**
716
- * Switch field layout (switch + text content).
717
- */
718
- export const Switch: Story = {
719
- render: () => ({
720
- components: { UiField, UiFieldContent, UiFieldDescription, UiFieldLabel, UiSwitch },
721
- setup() {
722
- const enabled = ref(false);
723
- return { enabled };
724
- },
725
- template: `
726
- <UiField orientation="horizontal">
727
- <UiSwitch id="airplane" v-model="enabled" name="airplane" />
728
- <UiFieldContent>
729
- <UiFieldLabel for="airplane">Airplane mode</UiFieldLabel>
730
- <UiFieldDescription>Disable all wireless connections.</UiFieldDescription>
731
- </UiFieldContent>
732
- </UiField>
733
- `,
734
- }),
735
- parameters: {
736
- controls: { disable: true },
737
- docs: { source: { code: switchFieldTemplateSource } },
738
- },
739
- };
740
-
741
- const radioGroupFieldSetTemplateSource = `<script setup lang="ts">
742
- import { ref } from 'vue'
743
- import {
744
- UiField,
745
- UiFieldContent,
746
- UiFieldDescription,
747
- UiFieldGroup,
748
- UiFieldLegend,
749
- UiFieldSet,
750
- UiFieldTitle,
751
- UiRadioGroup,
752
- UiRadioGroupItem,
753
- } from '@aleph-alpha/ui-library'
754
-
755
- const plan = ref('pro')
756
- </script>
757
-
758
- <template>
759
- <UiFieldGroup data-variant="outline" class="max-w-xl">
760
- <UiFieldSet>
761
- <UiFieldTitle>Plan</UiFieldTitle>
762
- <UiFieldLegend variant="label">Choose your plan</UiFieldLegend>
763
-
764
- <UiRadioGroup v-model="plan" name="plan">
765
- <UiField orientation="horizontal">
766
- <UiRadioGroupItem id="plan-free" value="free" />
767
- <UiFieldContent>
768
- <label for="plan-free" class="text-sm font-medium">Free</label>
769
- <UiFieldDescription>Basic features for personal use.</UiFieldDescription>
770
- </UiFieldContent>
771
- </UiField>
772
-
773
- <UiField orientation="horizontal">
774
- <UiRadioGroupItem id="plan-pro" value="pro" />
775
- <UiFieldContent>
776
- <label for="plan-pro" class="text-sm font-medium">Pro</label>
777
- <UiFieldDescription>Everything you need for work.</UiFieldDescription>
778
- </UiFieldContent>
779
- </UiField>
780
-
781
- <UiField orientation="horizontal" data-disabled="true">
782
- <UiRadioGroupItem id="plan-enterprise" value="enterprise" disabled />
783
- <UiFieldContent>
784
- <label for="plan-enterprise" class="text-sm font-medium text-muted-foreground">Enterprise</label>
785
- <UiFieldDescription>Contact sales for pricing.</UiFieldDescription>
786
- </UiFieldContent>
787
- </UiField>
788
- </UiRadioGroup>
789
- </UiFieldSet>
790
- </UiFieldGroup>
791
- </template>`;
792
-
793
- /**
794
- * Radio-group inside a fieldset, using `UiField` rows to align each option with its label/description.
795
- */
796
- export const RadioGroupInFieldSet: Story = {
797
- render: () => ({
798
- components: {
799
- UiField,
800
- UiFieldContent,
801
- UiFieldDescription,
802
- UiFieldGroup,
803
- UiFieldLegend,
804
- UiFieldSet,
805
- UiFieldTitle,
806
- UiRadioGroup,
807
- UiRadioGroupItem,
808
- },
809
- setup() {
810
- const plan = ref('pro');
811
- return { plan };
812
- },
813
- template: `
814
- <UiFieldGroup data-variant="outline" class="max-w-xl">
815
- <UiFieldSet>
816
- <UiFieldTitle>Plan</UiFieldTitle>
817
- <UiFieldLegend variant="label">Choose your plan</UiFieldLegend>
818
-
819
- <UiRadioGroup v-model="plan" name="plan">
820
- <UiField orientation="horizontal">
821
- <UiRadioGroupItem id="plan-free" value="free" />
822
- <UiFieldContent>
823
- <label for="plan-free" class="text-sm font-medium">Free</label>
824
- <UiFieldDescription>Basic features for personal use.</UiFieldDescription>
825
- </UiFieldContent>
826
- </UiField>
827
-
828
- <UiField orientation="horizontal">
829
- <UiRadioGroupItem id="plan-pro" value="pro" />
830
- <UiFieldContent>
831
- <label for="plan-pro" class="text-sm font-medium">Pro</label>
832
- <UiFieldDescription>Everything you need for work.</UiFieldDescription>
833
- </UiFieldContent>
834
- </UiField>
835
-
836
- <UiField orientation="horizontal" data-disabled="true">
837
- <UiRadioGroupItem id="plan-enterprise" value="enterprise" disabled />
838
- <UiFieldContent>
839
- <label for="plan-enterprise" class="text-sm font-medium text-muted-foreground">Enterprise</label>
840
- <UiFieldDescription>Contact sales for pricing.</UiFieldDescription>
841
- </UiFieldContent>
842
- </UiField>
843
- </UiRadioGroup>
844
- </UiFieldSet>
845
- </UiFieldGroup>
846
- `,
847
- }),
848
- parameters: {
849
- controls: { disable: true },
850
- docs: { source: { code: radioGroupFieldSetTemplateSource } },
851
- },
852
- };
853
-
854
- const separatorWithContentTemplateSource = `<script setup lang="ts">
855
- import { ref } from 'vue'
856
- import {
857
- UiField,
858
- UiFieldContent,
859
- UiFieldGroup,
860
- UiFieldLabel,
861
- UiFieldSeparator,
862
- UiFieldSet,
863
- UiInput,
864
- } from '@aleph-alpha/ui-library'
865
-
866
- const email = ref('')
867
- const phone = ref('')
868
- </script>
869
-
870
- <template>
871
- <UiFieldGroup class="max-w-xl">
872
- <UiFieldSet>
873
- <UiField>
874
- <UiFieldLabel for="email-2">Email</UiFieldLabel>
875
- <UiFieldContent>
876
- <UiInput id="email-2" v-model="email" name="email" />
877
- </UiFieldContent>
878
- </UiField>
879
-
880
- <UiFieldSeparator>or</UiFieldSeparator>
881
-
882
- <UiField>
883
- <UiFieldLabel for="phone">Phone</UiFieldLabel>
884
- <UiFieldContent>
885
- <UiInput id="phone" v-model="phone" name="phone" />
886
- </UiFieldContent>
887
- </UiField>
888
- </UiFieldSet>
889
- </UiFieldGroup>
890
- </template>`;
891
-
892
- /**
893
- * Separator with content (e.g., “or”) between related fields.
894
- */
895
- export const SeparatorWithContent: Story = {
896
- render: () => ({
897
- components: {
898
- UiField,
899
- UiFieldContent,
900
- UiFieldGroup,
901
- UiFieldLabel,
902
- UiFieldSeparator,
903
- UiFieldSet,
904
- UiInput,
905
- },
906
- setup() {
907
- const email = ref('');
908
- const phone = ref('');
909
- return { email, phone };
910
- },
911
- template: `
912
- <UiFieldGroup class="max-w-xl">
913
- <UiFieldSet>
914
- <UiField>
915
- <UiFieldLabel for="email-2">Email</UiFieldLabel>
916
- <UiFieldContent>
917
- <UiInput id="email-2" v-model="email" name="email" />
918
- </UiFieldContent>
919
- </UiField>
920
-
921
- <UiFieldSeparator>or</UiFieldSeparator>
922
-
923
- <UiField>
924
- <UiFieldLabel for="phone">Phone</UiFieldLabel>
925
- <UiFieldContent>
926
- <UiInput id="phone" v-model="phone" name="phone" />
927
- </UiFieldContent>
928
- </UiField>
929
- </UiFieldSet>
930
- </UiFieldGroup>
931
- `,
932
- }),
933
- parameters: {
934
- controls: { disable: true },
935
- docs: { source: { code: separatorWithContentTemplateSource } },
936
- },
937
- };
938
-
939
- const validationAndErrorsTemplateSource = `<script setup lang="ts">
940
- import { ref } from 'vue'
941
- import {
942
- UiField,
943
- UiFieldLabel,
944
- UiFieldError,
945
- UiInput,
946
- } from '@aleph-alpha/ui-library'
947
-
948
- const email = ref('not-an-email')
949
- </script>
950
-
951
- <template>
952
- <UiField data-invalid>
953
- <UiFieldLabel for="email-invalid">Email</UiFieldLabel>
954
- <UiInput id="email-invalid" v-model="email" name="email" type="email" aria-invalid />
955
- <UiFieldError>Enter a valid email address.</UiFieldError>
956
- </UiField>
957
- </template>`;
958
-
959
- /**
960
- * Validation styling + a11y: apply `data-invalid` to the field and `aria-invalid` to the control.
961
- * Mirrors the “Validation and Errors” section from shadcn-vue field docs.
962
- */
963
- export const ValidationAndErrors: Story = {
964
- render: () => ({
965
- components: { UiField, UiFieldError, UiFieldLabel, UiInput },
966
- setup() {
967
- const email = ref('not-an-email');
968
- return { email };
969
- },
970
- template: `
971
- <UiField data-invalid>
972
- <UiFieldLabel for="email-invalid">Email</UiFieldLabel>
973
- <UiInput id="email-invalid" v-model="email" name="email" type="email" aria-invalid />
974
- <UiFieldError>Enter a valid email address.</UiFieldError>
975
- </UiField>
976
- `,
977
- }),
978
- parameters: {
979
- controls: { disable: true },
980
- docs: { source: { code: validationAndErrorsTemplateSource } },
981
- },
982
- };
983
-
984
- const checkboxGroupTemplateSource = `<script setup lang="ts">
985
- import { ref } from 'vue'
986
- import {
987
- UiCheckbox,
988
- UiField,
989
- UiFieldDescription,
990
- UiFieldGroup,
991
- UiFieldLabel,
992
- UiFieldLegend,
993
- UiFieldSet,
994
- } from '@aleph-alpha/ui-library'
995
-
996
- const push = ref(true)
997
- const email = ref(false)
998
- </script>
999
-
1000
- <template>
1001
- <div class="max-w-xl">
1002
- <UiFieldSet>
1003
- <UiFieldLegend variant="legend">Tasks</UiFieldLegend>
1004
- <UiFieldDescription>
1005
- Get notified when tasks you've created have updates.
1006
- <a href="#">Manage tasks</a>
1007
- </UiFieldDescription>
1008
-
1009
- <UiFieldGroup data-slot="checkbox-group">
1010
- <UiField orientation="horizontal">
1011
- <UiCheckbox id="push-tasks" v-model="push" name="push-tasks" />
1012
- <UiFieldLabel for="push-tasks" class="font-normal">
1013
- Push notifications
1014
- </UiFieldLabel>
1015
- </UiField>
1016
-
1017
- <UiField orientation="horizontal">
1018
- <UiCheckbox id="email-tasks" v-model="email" name="email-tasks" />
1019
- <UiFieldLabel for="email-tasks" class="font-normal">
1020
- Email notifications
1021
- </UiFieldLabel>
1022
- </UiField>
1023
- </UiFieldGroup>
1024
- </UiFieldSet>
1025
- </div>
1026
- </template>`;
1027
-
1028
- /**
1029
- * Checkbox-group fieldset.
1030
- * Mirrors the “Anatomy” example patterns from shadcn-vue field docs (`data-slot="checkbox-group"` for spacing).
1031
- */
1032
- export const CheckboxGroup: Story = {
1033
- render: () => ({
1034
- components: {
1035
- UiCheckbox,
1036
- UiField,
1037
- UiFieldDescription,
1038
- UiFieldGroup,
1039
- UiFieldLabel,
1040
- UiFieldLegend,
1041
- UiFieldSet,
1042
- },
1043
- setup() {
1044
- const push = ref(true);
1045
- const email = ref(false);
1046
- return { push, email };
1047
- },
1048
- template: `
1049
- <div class="max-w-xl">
1050
- <UiFieldSet>
1051
- <UiFieldLegend variant="legend">Tasks</UiFieldLegend>
1052
- <UiFieldDescription>
1053
- Get notified when tasks you've created have updates.
1054
- <a href="#">Manage tasks</a>
1055
- </UiFieldDescription>
1056
-
1057
- <UiFieldGroup data-slot="checkbox-group">
1058
- <UiField orientation="horizontal">
1059
- <UiCheckbox id="push-tasks" v-model="push" name="push-tasks" />
1060
- <UiFieldLabel for="push-tasks" class="font-normal">
1061
- Push notifications
1062
- </UiFieldLabel>
1063
- </UiField>
1064
-
1065
- <UiField orientation="horizontal">
1066
- <UiCheckbox id="email-tasks" v-model="email" name="email-tasks" />
1067
- <UiFieldLabel for="email-tasks" class="font-normal">
1068
- Email notifications
1069
- </UiFieldLabel>
1070
- </UiField>
1071
- </UiFieldGroup>
1072
- </UiFieldSet>
1073
- </div>
1074
- `,
1075
- }),
1076
- parameters: {
1077
- controls: { disable: true },
1078
- docs: { source: { code: checkboxGroupTemplateSource } },
1079
- },
1080
- };
1081
-
1082
- const responsiveProfileFormTemplateSource = `<script setup lang="ts">
1083
- import { ref } from 'vue'
1084
- import {
1085
- UiButton,
1086
- UiField,
1087
- UiFieldContent,
1088
- UiFieldDescription,
1089
- UiFieldGroup,
1090
- UiFieldLabel,
1091
- UiFieldLegend,
1092
- UiFieldSeparator,
1093
- UiFieldSet,
1094
- UiInput,
1095
- UiTextarea,
1096
- } from '@aleph-alpha/ui-library'
1097
-
1098
- const name = ref('')
1099
- const message = ref('')
1100
- </script>
1101
-
1102
- <template>
1103
- <div class="w-full max-w-4xl">
1104
- <form>
1105
- <UiFieldSet>
1106
- <UiFieldLegend>Profile</UiFieldLegend>
1107
- <UiFieldDescription>Fill in your profile information.</UiFieldDescription>
1108
- <UiFieldSeparator />
1109
- <UiFieldGroup>
1110
- <UiField orientation="responsive">
1111
- <UiFieldContent>
1112
- <UiFieldLabel for="profile-name">Name</UiFieldLabel>
1113
- <UiFieldDescription>Provide your full name for identification</UiFieldDescription>
1114
- </UiFieldContent>
1115
- <UiInput id="profile-name" v-model="name" name="name" placeholder="Evil Rabbit" required />
1116
- </UiField>
1117
- <UiFieldSeparator />
1118
- <UiField orientation="responsive">
1119
- <UiFieldContent>
1120
- <UiFieldLabel for="profile-message">Message</UiFieldLabel>
1121
- <UiFieldDescription>
1122
- You can write your message here. Keep it short, preferably under 100 characters.
1123
- </UiFieldDescription>
1124
- </UiFieldContent>
1125
- <UiTextarea
1126
- id="profile-message"
1127
- v-model="message"
1128
- name="message"
1129
- placeholder="Hello, world!"
1130
- required
1131
- class="min-h-[100px] resize-none sm:min-w-[300px]"
1132
- />
1133
- </UiField>
1134
- <UiFieldSeparator />
1135
- <UiField orientation="responsive">
1136
- <UiButton type="submit">Submit</UiButton>
1137
- <UiButton type="button" variant="outline">Cancel</UiButton>
1138
- </UiField>
1139
- </UiFieldGroup>
1140
- </UiFieldSet>
1141
- </form>
1142
- </div>
1143
- </template>`;
1144
-
1145
- /**
1146
- * Full responsive form layout, mirroring the “Responsive Layout” example from shadcn-vue field docs.
1147
- * Uses `UiFieldContent` as the label/description column and keeps controls aligned responsively.
1148
- */
1149
- export const ResponsiveProfileForm: Story = {
1150
- render: () => ({
1151
- components: {
1152
- UiButton,
1153
- UiField,
1154
- UiFieldContent,
1155
- UiFieldDescription,
1156
- UiFieldGroup,
1157
- UiFieldLabel,
1158
- UiFieldLegend,
1159
- UiFieldSeparator,
1160
- UiFieldSet,
1161
- UiInput,
1162
- UiTextarea,
1163
- },
1164
- setup() {
1165
- const name = ref('');
1166
- const message = ref('');
1167
- return { name, message };
1168
- },
1169
- template: `
1170
- <div class="w-full max-w-4xl">
1171
- <form>
1172
- <UiFieldSet>
1173
- <UiFieldLegend>Profile</UiFieldLegend>
1174
- <UiFieldDescription>Fill in your profile information.</UiFieldDescription>
1175
- <UiFieldSeparator />
1176
- <UiFieldGroup>
1177
- <UiField orientation="responsive">
1178
- <UiFieldContent>
1179
- <UiFieldLabel for="profile-name">Name</UiFieldLabel>
1180
- <UiFieldDescription>Provide your full name for identification</UiFieldDescription>
1181
- </UiFieldContent>
1182
- <UiInput id="profile-name" v-model="name" name="name" placeholder="Evil Rabbit" required />
1183
- </UiField>
1184
- <UiFieldSeparator />
1185
- <UiField orientation="responsive">
1186
- <UiFieldContent>
1187
- <UiFieldLabel for="profile-message">Message</UiFieldLabel>
1188
- <UiFieldDescription>
1189
- You can write your message here. Keep it short, preferably under 100 characters.
1190
- </UiFieldDescription>
1191
- </UiFieldContent>
1192
- <UiTextarea
1193
- id="profile-message"
1194
- v-model="message"
1195
- name="message"
1196
- placeholder="Hello, world!"
1197
- required
1198
- class="min-h-[100px] resize-none sm:min-w-[300px]"
1199
- />
1200
- </UiField>
1201
- <UiFieldSeparator />
1202
- <UiField orientation="responsive">
1203
- <UiButton type="submit">Submit</UiButton>
1204
- <UiButton type="button" variant="outline">Cancel</UiButton>
1205
- </UiField>
1206
- </UiFieldGroup>
1207
- </UiFieldSet>
1208
- </form>
1209
- </div>
1210
- `,
1211
- }),
1212
- parameters: {
1213
- controls: { disable: true },
1214
- docs: { source: { code: responsiveProfileFormTemplateSource } },
1215
- },
1216
- };
1217
-
1218
- const checkoutPaymentFormTemplateSource = `<script setup lang="ts">
1219
- import { ref } from 'vue'
1220
- import {
1221
- UiButton,
1222
- UiCheckbox,
1223
- UiField,
1224
- UiFieldDescription,
1225
- UiFieldGroup,
1226
- UiFieldLabel,
1227
- UiFieldLegend,
1228
- UiFieldSeparator,
1229
- UiFieldSet,
1230
- UiInput,
1231
- UiSelect,
1232
- UiSelectContent,
1233
- UiSelectItem,
1234
- UiSelectTrigger,
1235
- UiSelectValue,
1236
- UiTextarea,
1237
- } from '@aleph-alpha/ui-library'
1238
-
1239
- const cardName = ref('')
1240
- const cardNumber = ref('')
1241
- const cvv = ref('')
1242
- const month = ref('')
1243
- const year = ref('')
1244
- const sameAsShipping = ref(true)
1245
- const comments = ref('')
1246
- </script>
1247
-
1248
- <template>
1249
- <div class="w-full max-w-md">
1250
- <form>
1251
- <UiFieldGroup>
1252
- <UiFieldSet>
1253
- <UiFieldLegend>Payment Method</UiFieldLegend>
1254
- <UiFieldDescription>All transactions are secure and encrypted</UiFieldDescription>
1255
-
1256
- <UiFieldGroup>
1257
- <UiField>
1258
- <UiFieldLabel for="card-name">Name on Card</UiFieldLabel>
1259
- <UiInput id="card-name" v-model="cardName" name="cardName" placeholder="Evil Rabbit" required />
1260
- </UiField>
1261
-
1262
- <UiField>
1263
- <UiFieldLabel for="card-number">Card Number</UiFieldLabel>
1264
- <UiInput id="card-number" v-model="cardNumber" name="cardNumber" placeholder="1234 5678 9012 3456" required />
1265
- <UiFieldDescription>Enter your 16-digit card number</UiFieldDescription>
1266
- </UiField>
1267
-
1268
- <div class="grid grid-cols-3 gap-4">
1269
- <UiField>
1270
- <UiFieldLabel for="exp-month">Month</UiFieldLabel>
1271
- <UiSelect v-model="month">
1272
- <UiSelectTrigger id="exp-month">
1273
- <UiSelectValue placeholder="MM" />
1274
- </UiSelectTrigger>
1275
- <UiSelectContent>
1276
- <UiSelectItem value="01">01</UiSelectItem>
1277
- <UiSelectItem value="02">02</UiSelectItem>
1278
- <UiSelectItem value="03">03</UiSelectItem>
1279
- <UiSelectItem value="04">04</UiSelectItem>
1280
- <UiSelectItem value="05">05</UiSelectItem>
1281
- <UiSelectItem value="06">06</UiSelectItem>
1282
- <UiSelectItem value="07">07</UiSelectItem>
1283
- <UiSelectItem value="08">08</UiSelectItem>
1284
- <UiSelectItem value="09">09</UiSelectItem>
1285
- <UiSelectItem value="10">10</UiSelectItem>
1286
- <UiSelectItem value="11">11</UiSelectItem>
1287
- <UiSelectItem value="12">12</UiSelectItem>
1288
- </UiSelectContent>
1289
- </UiSelect>
1290
- </UiField>
1291
-
1292
- <UiField>
1293
- <UiFieldLabel for="exp-year">Year</UiFieldLabel>
1294
- <UiSelect v-model="year">
1295
- <UiSelectTrigger id="exp-year">
1296
- <UiSelectValue placeholder="YYYY" />
1297
- </UiSelectTrigger>
1298
- <UiSelectContent>
1299
- <UiSelectItem value="2026">2026</UiSelectItem>
1300
- <UiSelectItem value="2027">2027</UiSelectItem>
1301
- <UiSelectItem value="2028">2028</UiSelectItem>
1302
- <UiSelectItem value="2029">2029</UiSelectItem>
1303
- <UiSelectItem value="2030">2030</UiSelectItem>
1304
- </UiSelectContent>
1305
- </UiSelect>
1306
- </UiField>
1307
-
1308
- <UiField>
1309
- <UiFieldLabel for="cvv">CVV</UiFieldLabel>
1310
- <UiInput id="cvv" v-model="cvv" name="cvv" placeholder="123" required />
1311
- </UiField>
1312
- </div>
1313
- </UiFieldGroup>
1314
- </UiFieldSet>
1315
-
1316
- <UiFieldSeparator />
1317
-
1318
- <UiFieldSet>
1319
- <UiFieldLegend>Billing Address</UiFieldLegend>
1320
- <UiFieldDescription>The billing address associated with your payment method</UiFieldDescription>
1321
- <UiFieldGroup>
1322
- <UiField orientation="horizontal">
1323
- <UiCheckbox id="same-as-shipping" v-model="sameAsShipping" name="same-as-shipping" />
1324
- <UiFieldLabel for="same-as-shipping" class="font-normal">Same as shipping address</UiFieldLabel>
1325
- </UiField>
1326
- </UiFieldGroup>
1327
- </UiFieldSet>
1328
-
1329
- <UiFieldSet>
1330
- <UiFieldGroup>
1331
- <UiField>
1332
- <UiFieldLabel for="comments">Comments</UiFieldLabel>
1333
- <UiTextarea
1334
- id="comments"
1335
- v-model="comments"
1336
- name="comments"
1337
- placeholder="Add any additional comments"
1338
- class="resize-none"
1339
- />
1340
- </UiField>
1341
- </UiFieldGroup>
1342
- </UiFieldSet>
1343
-
1344
- <UiField orientation="horizontal">
1345
- <UiButton type="submit">Submit</UiButton>
1346
- <UiButton variant="outline" type="button">Cancel</UiButton>
1347
- </UiField>
1348
- </UiFieldGroup>
1349
- </form>
1350
- </div>
1351
- </template>`;
1352
-
1353
- /**
1354
- * Full “checkout” composition (payment method + billing address + actions).
1355
- * Based on the main example in shadcn-vue field docs.
1356
- */
1357
- export const CheckoutPaymentForm: Story = {
1358
- render: () => ({
1359
- components: {
1360
- UiButton,
1361
- UiCheckbox,
1362
- UiField,
1363
- UiFieldDescription,
1364
- UiFieldGroup,
1365
- UiFieldLabel,
1366
- UiFieldLegend,
1367
- UiFieldSeparator,
1368
- UiFieldSet,
1369
- UiInput,
1370
- UiSelect,
1371
- UiSelectContent,
1372
- UiSelectItem,
1373
- UiSelectTrigger,
1374
- UiSelectValue,
1375
- UiTextarea,
1376
- },
1377
- setup() {
1378
- const cardName = ref('');
1379
- const cardNumber = ref('');
1380
- const cvv = ref('');
1381
- const month = ref('');
1382
- const year = ref('');
1383
- const sameAsShipping = ref(true);
1384
- const comments = ref('');
1385
- return { cardName, cardNumber, cvv, month, year, sameAsShipping, comments };
1386
- },
1387
- template: `
1388
- <div class="w-full max-w-md">
1389
- <form>
1390
- <UiFieldGroup>
1391
- <UiFieldSet>
1392
- <UiFieldLegend>Payment Method</UiFieldLegend>
1393
- <UiFieldDescription>All transactions are secure and encrypted</UiFieldDescription>
1394
-
1395
- <UiFieldGroup>
1396
- <UiField>
1397
- <UiFieldLabel for="card-name">Name on Card</UiFieldLabel>
1398
- <UiInput id="card-name" v-model="cardName" name="cardName" placeholder="Evil Rabbit" required />
1399
- </UiField>
1400
-
1401
- <UiField>
1402
- <UiFieldLabel for="card-number">Card Number</UiFieldLabel>
1403
- <UiInput id="card-number" v-model="cardNumber" name="cardNumber" placeholder="1234 5678 9012 3456" required />
1404
- <UiFieldDescription>Enter your 16-digit card number</UiFieldDescription>
1405
- </UiField>
1406
-
1407
- <div class="grid grid-cols-3 gap-4">
1408
- <UiField>
1409
- <UiFieldLabel for="exp-month">Month</UiFieldLabel>
1410
- <UiSelect v-model="month">
1411
- <UiSelectTrigger id="exp-month">
1412
- <UiSelectValue placeholder="MM" />
1413
- </UiSelectTrigger>
1414
- <UiSelectContent>
1415
- <UiSelectItem value="01">01</UiSelectItem>
1416
- <UiSelectItem value="02">02</UiSelectItem>
1417
- <UiSelectItem value="03">03</UiSelectItem>
1418
- <UiSelectItem value="04">04</UiSelectItem>
1419
- <UiSelectItem value="05">05</UiSelectItem>
1420
- <UiSelectItem value="06">06</UiSelectItem>
1421
- <UiSelectItem value="07">07</UiSelectItem>
1422
- <UiSelectItem value="08">08</UiSelectItem>
1423
- <UiSelectItem value="09">09</UiSelectItem>
1424
- <UiSelectItem value="10">10</UiSelectItem>
1425
- <UiSelectItem value="11">11</UiSelectItem>
1426
- <UiSelectItem value="12">12</UiSelectItem>
1427
- </UiSelectContent>
1428
- </UiSelect>
1429
- </UiField>
1430
-
1431
- <UiField>
1432
- <UiFieldLabel for="exp-year">Year</UiFieldLabel>
1433
- <UiSelect v-model="year">
1434
- <UiSelectTrigger id="exp-year">
1435
- <UiSelectValue placeholder="YYYY" />
1436
- </UiSelectTrigger>
1437
- <UiSelectContent>
1438
- <UiSelectItem value="2026">2026</UiSelectItem>
1439
- <UiSelectItem value="2027">2027</UiSelectItem>
1440
- <UiSelectItem value="2028">2028</UiSelectItem>
1441
- <UiSelectItem value="2029">2029</UiSelectItem>
1442
- <UiSelectItem value="2030">2030</UiSelectItem>
1443
- </UiSelectContent>
1444
- </UiSelect>
1445
- </UiField>
1446
-
1447
- <UiField>
1448
- <UiFieldLabel for="cvv">CVV</UiFieldLabel>
1449
- <UiInput id="cvv" v-model="cvv" name="cvv" placeholder="123" required />
1450
- </UiField>
1451
- </div>
1452
- </UiFieldGroup>
1453
- </UiFieldSet>
1454
-
1455
- <UiFieldSeparator />
1456
-
1457
- <UiFieldSet>
1458
- <UiFieldLegend>Billing Address</UiFieldLegend>
1459
- <UiFieldDescription>The billing address associated with your payment method</UiFieldDescription>
1460
- <UiFieldGroup>
1461
- <UiField orientation="horizontal">
1462
- <UiCheckbox id="same-as-shipping" v-model="sameAsShipping" name="same-as-shipping" />
1463
- <UiFieldLabel for="same-as-shipping" class="font-normal">Same as shipping address</UiFieldLabel>
1464
- </UiField>
1465
- </UiFieldGroup>
1466
- </UiFieldSet>
1467
-
1468
- <UiFieldSet>
1469
- <UiFieldGroup>
1470
- <UiField>
1471
- <UiFieldLabel for="comments">Comments</UiFieldLabel>
1472
- <UiTextarea
1473
- id="comments"
1474
- v-model="comments"
1475
- name="comments"
1476
- placeholder="Add any additional comments"
1477
- class="resize-none"
1478
- />
1479
- </UiField>
1480
- </UiFieldGroup>
1481
- </UiFieldSet>
1482
-
1483
- <UiField orientation="horizontal">
1484
- <UiButton type="submit">Submit</UiButton>
1485
- <UiButton variant="outline" type="button">Cancel</UiButton>
1486
- </UiField>
1487
- </UiFieldGroup>
1488
- </form>
1489
- </div>
1490
- `,
1491
- }),
1492
- parameters: {
1493
- controls: { disable: true },
1494
- docs: { source: { code: checkoutPaymentFormTemplateSource } },
1495
- },
1496
- };