@nuxt/ui 4.0.1 → 4.2.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 (499) hide show
  1. package/cli/templates.mjs +16 -4
  2. package/dist/module.d.mts +25 -0
  3. package/dist/module.json +2 -2
  4. package/dist/module.mjs +7 -4
  5. package/dist/runtime/components/Accordion.d.vue.ts +7 -1
  6. package/dist/runtime/components/Accordion.vue +13 -12
  7. package/dist/runtime/components/Accordion.vue.d.ts +7 -1
  8. package/dist/runtime/components/Alert.d.vue.ts +4 -4
  9. package/dist/runtime/components/Alert.vue +10 -9
  10. package/dist/runtime/components/Alert.vue.d.ts +4 -4
  11. package/dist/runtime/components/App.d.vue.ts +1 -1
  12. package/dist/runtime/components/App.vue +2 -1
  13. package/dist/runtime/components/App.vue.d.ts +1 -1
  14. package/dist/runtime/components/AuthForm.d.vue.ts +12 -9
  15. package/dist/runtime/components/AuthForm.vue +29 -21
  16. package/dist/runtime/components/AuthForm.vue.d.ts +12 -9
  17. package/dist/runtime/components/Avatar.d.vue.ts +7 -5
  18. package/dist/runtime/components/Avatar.vue +14 -5
  19. package/dist/runtime/components/Avatar.vue.d.ts +7 -5
  20. package/dist/runtime/components/AvatarGroup.vue +3 -3
  21. package/dist/runtime/components/Badge.d.vue.ts +9 -3
  22. package/dist/runtime/components/Badge.vue +8 -8
  23. package/dist/runtime/components/Badge.vue.d.ts +9 -3
  24. package/dist/runtime/components/Banner.d.vue.ts +4 -2
  25. package/dist/runtime/components/Banner.vue +10 -9
  26. package/dist/runtime/components/Banner.vue.d.ts +4 -2
  27. package/dist/runtime/components/BlogPost.d.vue.ts +9 -3
  28. package/dist/runtime/components/BlogPost.vue +21 -12
  29. package/dist/runtime/components/BlogPost.vue.d.ts +9 -3
  30. package/dist/runtime/components/BlogPosts.d.vue.ts +22 -13
  31. package/dist/runtime/components/BlogPosts.vue +8 -2
  32. package/dist/runtime/components/BlogPosts.vue.d.ts +22 -13
  33. package/dist/runtime/components/Breadcrumb.d.vue.ts +19 -4
  34. package/dist/runtime/components/Breadcrumb.vue +14 -14
  35. package/dist/runtime/components/Breadcrumb.vue.d.ts +19 -4
  36. package/dist/runtime/components/Button.d.vue.ts +9 -3
  37. package/dist/runtime/components/Button.vue +9 -7
  38. package/dist/runtime/components/Button.vue.d.ts +9 -3
  39. package/dist/runtime/components/Calendar.d.vue.ts +4 -0
  40. package/dist/runtime/components/Calendar.vue +15 -9
  41. package/dist/runtime/components/Calendar.vue.d.ts +4 -0
  42. package/dist/runtime/components/Card.vue +4 -4
  43. package/dist/runtime/components/Carousel.vue +10 -5
  44. package/dist/runtime/components/ChangelogVersion.d.vue.ts +12 -4
  45. package/dist/runtime/components/ChangelogVersion.vue +25 -17
  46. package/dist/runtime/components/ChangelogVersion.vue.d.ts +12 -4
  47. package/dist/runtime/components/ChangelogVersions.d.vue.ts +8 -36
  48. package/dist/runtime/components/ChangelogVersions.vue +6 -6
  49. package/dist/runtime/components/ChangelogVersions.vue.d.ts +8 -36
  50. package/dist/runtime/components/ChatMessage.d.vue.ts +1 -0
  51. package/dist/runtime/components/ChatMessage.vue +8 -8
  52. package/dist/runtime/components/ChatMessage.vue.d.ts +1 -0
  53. package/dist/runtime/components/ChatMessages.d.vue.ts +14 -15
  54. package/dist/runtime/components/ChatMessages.vue +28 -10
  55. package/dist/runtime/components/ChatMessages.vue.d.ts +14 -15
  56. package/dist/runtime/components/ChatPalette.vue +3 -3
  57. package/dist/runtime/components/ChatPrompt.d.vue.ts +3 -6
  58. package/dist/runtime/components/ChatPrompt.vue +23 -14
  59. package/dist/runtime/components/ChatPrompt.vue.d.ts +3 -6
  60. package/dist/runtime/components/ChatPromptSubmit.d.vue.ts +4 -4
  61. package/dist/runtime/components/ChatPromptSubmit.vue +51 -4
  62. package/dist/runtime/components/ChatPromptSubmit.vue.d.ts +4 -4
  63. package/dist/runtime/components/Checkbox.d.vue.ts +2 -1
  64. package/dist/runtime/components/Checkbox.vue +9 -8
  65. package/dist/runtime/components/Checkbox.vue.d.ts +2 -1
  66. package/dist/runtime/components/CheckboxGroup.vue +7 -4
  67. package/dist/runtime/components/Chip.vue +2 -2
  68. package/dist/runtime/components/Collapsible.vue +2 -2
  69. package/dist/runtime/components/ColorPicker.vue +7 -3
  70. package/dist/runtime/components/CommandPalette.d.vue.ts +43 -12
  71. package/dist/runtime/components/CommandPalette.vue +175 -84
  72. package/dist/runtime/components/CommandPalette.vue.d.ts +43 -12
  73. package/dist/runtime/components/ContextMenu.d.vue.ts +28 -6
  74. package/dist/runtime/components/ContextMenu.vue +2 -0
  75. package/dist/runtime/components/ContextMenu.vue.d.ts +28 -6
  76. package/dist/runtime/components/ContextMenuContent.d.vue.ts +2 -3
  77. package/dist/runtime/components/ContextMenuContent.vue +35 -23
  78. package/dist/runtime/components/ContextMenuContent.vue.d.ts +2 -3
  79. package/dist/runtime/components/DashboardNavbar.d.vue.ts +9 -3
  80. package/dist/runtime/components/DashboardNavbar.vue +10 -9
  81. package/dist/runtime/components/DashboardNavbar.vue.d.ts +9 -3
  82. package/dist/runtime/components/DashboardPanel.vue +3 -1
  83. package/dist/runtime/components/DashboardSearch.d.vue.ts +3 -1
  84. package/dist/runtime/components/DashboardSearch.vue +4 -3
  85. package/dist/runtime/components/DashboardSearch.vue.d.ts +3 -1
  86. package/dist/runtime/components/DashboardSearchButton.d.vue.ts +2 -3
  87. package/dist/runtime/components/DashboardSearchButton.vue +48 -10
  88. package/dist/runtime/components/DashboardSearchButton.vue.d.ts +2 -3
  89. package/dist/runtime/components/DashboardSidebar.d.vue.ts +5 -1
  90. package/dist/runtime/components/DashboardSidebar.vue +13 -10
  91. package/dist/runtime/components/DashboardSidebar.vue.d.ts +5 -1
  92. package/dist/runtime/components/DashboardSidebarCollapse.d.vue.ts +7 -4
  93. package/dist/runtime/components/DashboardSidebarCollapse.vue +51 -7
  94. package/dist/runtime/components/DashboardSidebarCollapse.vue.d.ts +7 -4
  95. package/dist/runtime/components/DashboardSidebarToggle.d.vue.ts +7 -4
  96. package/dist/runtime/components/DashboardSidebarToggle.vue +52 -7
  97. package/dist/runtime/components/DashboardSidebarToggle.vue.d.ts +7 -4
  98. package/dist/runtime/components/DashboardToolbar.vue +3 -3
  99. package/dist/runtime/components/Drawer.d.vue.ts +1 -1
  100. package/dist/runtime/components/Drawer.vue +11 -14
  101. package/dist/runtime/components/Drawer.vue.d.ts +1 -1
  102. package/dist/runtime/components/DropdownMenu.d.vue.ts +28 -6
  103. package/dist/runtime/components/DropdownMenu.vue +3 -1
  104. package/dist/runtime/components/DropdownMenu.vue.d.ts +28 -6
  105. package/dist/runtime/components/DropdownMenuContent.d.vue.ts +8 -5
  106. package/dist/runtime/components/DropdownMenuContent.vue +35 -23
  107. package/dist/runtime/components/DropdownMenuContent.vue.d.ts +8 -5
  108. package/dist/runtime/components/Empty.d.vue.ts +53 -0
  109. package/dist/runtime/components/Empty.vue +68 -0
  110. package/dist/runtime/components/Empty.vue.d.ts +53 -0
  111. package/dist/runtime/components/Error.d.vue.ts +1 -2
  112. package/dist/runtime/components/Error.vue +6 -6
  113. package/dist/runtime/components/Error.vue.d.ts +1 -2
  114. package/dist/runtime/components/FileUpload.d.vue.ts +14 -3
  115. package/dist/runtime/components/FileUpload.vue +41 -30
  116. package/dist/runtime/components/FileUpload.vue.d.ts +14 -3
  117. package/dist/runtime/components/Footer.vue +7 -7
  118. package/dist/runtime/components/FooterColumns.d.vue.ts +9 -2
  119. package/dist/runtime/components/FooterColumns.vue +13 -13
  120. package/dist/runtime/components/FooterColumns.vue.d.ts +9 -2
  121. package/dist/runtime/components/Form.d.vue.ts +3 -2
  122. package/dist/runtime/components/Form.vue +3 -4
  123. package/dist/runtime/components/Form.vue.d.ts +3 -2
  124. package/dist/runtime/components/FormField.vue +8 -8
  125. package/dist/runtime/components/Header.d.vue.ts +4 -1
  126. package/dist/runtime/components/Header.vue +12 -11
  127. package/dist/runtime/components/Header.vue.d.ts +4 -1
  128. package/dist/runtime/components/Input.d.vue.ts +15 -9
  129. package/dist/runtime/components/Input.vue +12 -11
  130. package/dist/runtime/components/Input.vue.d.ts +15 -9
  131. package/dist/runtime/components/InputDate.d.vue.ts +89 -0
  132. package/dist/runtime/components/InputDate.vue +161 -0
  133. package/dist/runtime/components/InputDate.vue.d.ts +89 -0
  134. package/dist/runtime/components/InputMenu.d.vue.ts +46 -137
  135. package/dist/runtime/components/InputMenu.vue +143 -83
  136. package/dist/runtime/components/InputMenu.vue.d.ts +46 -137
  137. package/dist/runtime/components/InputNumber.d.vue.ts +26 -127
  138. package/dist/runtime/components/InputNumber.vue +13 -12
  139. package/dist/runtime/components/InputNumber.vue.d.ts +26 -127
  140. package/dist/runtime/components/InputTags.d.vue.ts +15 -111
  141. package/dist/runtime/components/InputTags.vue +24 -20
  142. package/dist/runtime/components/InputTags.vue.d.ts +15 -111
  143. package/dist/runtime/components/InputTime.d.vue.ts +72 -0
  144. package/dist/runtime/components/InputTime.vue +137 -0
  145. package/dist/runtime/components/InputTime.vue.d.ts +72 -0
  146. package/dist/runtime/components/Link.d.vue.ts +4 -49
  147. package/dist/runtime/components/Link.vue +1 -0
  148. package/dist/runtime/components/Link.vue.d.ts +4 -49
  149. package/dist/runtime/components/Main.d.vue.ts +2 -4
  150. package/dist/runtime/components/Main.vue +1 -1
  151. package/dist/runtime/components/Main.vue.d.ts +2 -4
  152. package/dist/runtime/components/Marquee.d.vue.ts +1 -1
  153. package/dist/runtime/components/Marquee.vue +2 -6
  154. package/dist/runtime/components/Marquee.vue.d.ts +1 -1
  155. package/dist/runtime/components/Modal.d.vue.ts +8 -6
  156. package/dist/runtime/components/Modal.vue +55 -22
  157. package/dist/runtime/components/Modal.vue.d.ts +8 -6
  158. package/dist/runtime/components/NavigationMenu.d.vue.ts +60 -13
  159. package/dist/runtime/components/NavigationMenu.vue +86 -49
  160. package/dist/runtime/components/NavigationMenu.vue.d.ts +60 -13
  161. package/dist/runtime/components/Page.vue +4 -4
  162. package/dist/runtime/components/PageAnchors.d.vue.ts +9 -2
  163. package/dist/runtime/components/PageAnchors.vue +10 -10
  164. package/dist/runtime/components/PageAnchors.vue.d.ts +9 -2
  165. package/dist/runtime/components/PageAside.vue +6 -6
  166. package/dist/runtime/components/PageCTA.vue +9 -9
  167. package/dist/runtime/components/PageCard.d.vue.ts +3 -1
  168. package/dist/runtime/components/PageCard.vue +12 -11
  169. package/dist/runtime/components/PageCard.vue.d.ts +3 -1
  170. package/dist/runtime/components/PageFeature.d.vue.ts +3 -1
  171. package/dist/runtime/components/PageFeature.vue +7 -7
  172. package/dist/runtime/components/PageFeature.vue.d.ts +3 -1
  173. package/dist/runtime/components/PageHeader.vue +7 -7
  174. package/dist/runtime/components/PageHero.vue +10 -10
  175. package/dist/runtime/components/PageLinks.d.vue.ts +9 -2
  176. package/dist/runtime/components/PageLinks.vue +10 -10
  177. package/dist/runtime/components/PageLinks.vue.d.ts +9 -2
  178. package/dist/runtime/components/PageLogos.vue +6 -3
  179. package/dist/runtime/components/PageSection.d.vue.ts +3 -1
  180. package/dist/runtime/components/PageSection.vue +14 -14
  181. package/dist/runtime/components/PageSection.vue.d.ts +3 -1
  182. package/dist/runtime/components/Pagination.d.vue.ts +5 -3
  183. package/dist/runtime/components/Pagination.vue +9 -9
  184. package/dist/runtime/components/Pagination.vue.d.ts +5 -3
  185. package/dist/runtime/components/PinInput.d.vue.ts +2 -2
  186. package/dist/runtime/components/PinInput.vue +2 -0
  187. package/dist/runtime/components/PinInput.vue.d.ts +2 -2
  188. package/dist/runtime/components/Popover.d.vue.ts +24 -23
  189. package/dist/runtime/components/Popover.vue +6 -6
  190. package/dist/runtime/components/Popover.vue.d.ts +24 -23
  191. package/dist/runtime/components/PricingPlan.d.vue.ts +9 -3
  192. package/dist/runtime/components/PricingPlan.vue +31 -24
  193. package/dist/runtime/components/PricingPlan.vue.d.ts +9 -3
  194. package/dist/runtime/components/PricingPlans.d.vue.ts +20 -13
  195. package/dist/runtime/components/PricingPlans.vue +7 -1
  196. package/dist/runtime/components/PricingPlans.vue.d.ts +20 -13
  197. package/dist/runtime/components/PricingTable.vue +35 -31
  198. package/dist/runtime/components/Progress.d.vue.ts +1 -1
  199. package/dist/runtime/components/Progress.vue +6 -6
  200. package/dist/runtime/components/Progress.vue.d.ts +1 -1
  201. package/dist/runtime/components/RadioGroup.d.vue.ts +5 -5
  202. package/dist/runtime/components/RadioGroup.vue +13 -11
  203. package/dist/runtime/components/RadioGroup.vue.d.ts +5 -5
  204. package/dist/runtime/components/Select.d.vue.ts +25 -115
  205. package/dist/runtime/components/Select.vue +41 -29
  206. package/dist/runtime/components/Select.vue.d.ts +25 -115
  207. package/dist/runtime/components/SelectMenu.d.vue.ts +43 -114
  208. package/dist/runtime/components/SelectMenu.vue +145 -78
  209. package/dist/runtime/components/SelectMenu.vue.d.ts +43 -114
  210. package/dist/runtime/components/Separator.d.vue.ts +3 -1
  211. package/dist/runtime/components/Separator.vue +8 -8
  212. package/dist/runtime/components/Separator.vue.d.ts +3 -1
  213. package/dist/runtime/components/Slideover.d.vue.ts +3 -6
  214. package/dist/runtime/components/Slideover.vue +12 -13
  215. package/dist/runtime/components/Slideover.vue.d.ts +3 -6
  216. package/dist/runtime/components/Slider.vue +5 -4
  217. package/dist/runtime/components/Stepper.d.vue.ts +4 -1
  218. package/dist/runtime/components/Stepper.vue +13 -11
  219. package/dist/runtime/components/Stepper.vue.d.ts +4 -1
  220. package/dist/runtime/components/Switch.d.vue.ts +2 -1
  221. package/dist/runtime/components/Switch.vue +10 -9
  222. package/dist/runtime/components/Switch.vue.d.ts +2 -1
  223. package/dist/runtime/components/Table.d.vue.ts +25 -4
  224. package/dist/runtime/components/Table.vue +156 -71
  225. package/dist/runtime/components/Table.vue.d.ts +25 -4
  226. package/dist/runtime/components/Tabs.d.vue.ts +8 -3
  227. package/dist/runtime/components/Tabs.vue +13 -10
  228. package/dist/runtime/components/Tabs.vue.d.ts +8 -3
  229. package/dist/runtime/components/Textarea.d.vue.ts +15 -8
  230. package/dist/runtime/components/Textarea.vue +12 -11
  231. package/dist/runtime/components/Textarea.vue.d.ts +15 -8
  232. package/dist/runtime/components/Timeline.vue +16 -7
  233. package/dist/runtime/components/Toast.d.vue.ts +4 -4
  234. package/dist/runtime/components/Toast.vue +16 -13
  235. package/dist/runtime/components/Toast.vue.d.ts +4 -4
  236. package/dist/runtime/components/Toaster.d.vue.ts +6 -0
  237. package/dist/runtime/components/Toaster.vue +8 -3
  238. package/dist/runtime/components/Toaster.vue.d.ts +6 -0
  239. package/dist/runtime/components/Tooltip.d.vue.ts +3 -1
  240. package/dist/runtime/components/Tooltip.vue +5 -5
  241. package/dist/runtime/components/Tooltip.vue.d.ts +3 -1
  242. package/dist/runtime/components/Tree.d.vue.ts +43 -5
  243. package/dist/runtime/components/Tree.vue +176 -81
  244. package/dist/runtime/components/Tree.vue.d.ts +43 -5
  245. package/dist/runtime/components/User.d.vue.ts +3 -1
  246. package/dist/runtime/components/User.vue +14 -7
  247. package/dist/runtime/components/User.vue.d.ts +3 -1
  248. package/dist/runtime/components/color-mode/ColorModeAvatar.d.vue.ts +3 -3
  249. package/dist/runtime/components/color-mode/ColorModeAvatar.vue +16 -4
  250. package/dist/runtime/components/color-mode/ColorModeAvatar.vue.d.ts +3 -3
  251. package/dist/runtime/components/color-mode/ColorModeButton.d.vue.ts +6 -13
  252. package/dist/runtime/components/color-mode/ColorModeButton.vue +59 -18
  253. package/dist/runtime/components/color-mode/ColorModeButton.vue.d.ts +6 -13
  254. package/dist/runtime/components/color-mode/ColorModeImage.d.vue.ts +4 -3
  255. package/dist/runtime/components/color-mode/ColorModeImage.vue +4 -0
  256. package/dist/runtime/components/color-mode/ColorModeImage.vue.d.ts +4 -3
  257. package/dist/runtime/components/color-mode/ColorModeSelect.d.vue.ts +5 -3
  258. package/dist/runtime/components/color-mode/ColorModeSelect.vue +45 -5
  259. package/dist/runtime/components/color-mode/ColorModeSelect.vue.d.ts +5 -3
  260. package/dist/runtime/components/color-mode/ColorModeSwitch.d.vue.ts +2 -2
  261. package/dist/runtime/components/color-mode/ColorModeSwitch.vue +29 -5
  262. package/dist/runtime/components/color-mode/ColorModeSwitch.vue.d.ts +2 -2
  263. package/dist/runtime/components/content/ContentNavigation.d.vue.ts +1 -0
  264. package/dist/runtime/components/content/ContentNavigation.vue +18 -17
  265. package/dist/runtime/components/content/ContentNavigation.vue.d.ts +1 -0
  266. package/dist/runtime/components/content/ContentSearch.d.vue.ts +3 -1
  267. package/dist/runtime/components/content/ContentSearch.vue +64 -67
  268. package/dist/runtime/components/content/ContentSearch.vue.d.ts +3 -1
  269. package/dist/runtime/components/content/ContentSearchButton.d.vue.ts +2 -3
  270. package/dist/runtime/components/content/ContentSearchButton.vue +48 -10
  271. package/dist/runtime/components/content/ContentSearchButton.vue.d.ts +2 -3
  272. package/dist/runtime/components/content/ContentSurround.d.vue.ts +1 -0
  273. package/dist/runtime/components/content/ContentSurround.vue +10 -10
  274. package/dist/runtime/components/content/ContentSurround.vue.d.ts +1 -0
  275. package/dist/runtime/components/content/ContentToc.d.vue.ts +2 -0
  276. package/dist/runtime/components/content/ContentToc.vue +17 -17
  277. package/dist/runtime/components/content/ContentToc.vue.d.ts +2 -0
  278. package/dist/runtime/components/locale/LocaleSelect.d.vue.ts +10 -6
  279. package/dist/runtime/components/locale/LocaleSelect.vue +54 -6
  280. package/dist/runtime/components/locale/LocaleSelect.vue.d.ts +10 -6
  281. package/dist/runtime/components/prose/Accordion.d.vue.ts +6 -0
  282. package/dist/runtime/components/prose/Accordion.vue +3 -2
  283. package/dist/runtime/components/prose/Accordion.vue.d.ts +6 -0
  284. package/dist/runtime/components/prose/CodeTree.vue +40 -36
  285. package/dist/runtime/components/prose/Collapsible.d.vue.ts +2 -2
  286. package/dist/runtime/components/prose/Collapsible.vue +2 -2
  287. package/dist/runtime/components/prose/Collapsible.vue.d.ts +2 -2
  288. package/dist/runtime/components/prose/Field.d.vue.ts +1 -1
  289. package/dist/runtime/components/prose/Field.vue.d.ts +1 -1
  290. package/dist/runtime/components/prose/Img.vue +14 -3
  291. package/dist/runtime/components/prose/Tabs.d.vue.ts +6 -0
  292. package/dist/runtime/components/prose/Tabs.vue +3 -2
  293. package/dist/runtime/components/prose/Tabs.vue.d.ts +6 -0
  294. package/dist/runtime/composables/index.d.ts +8 -0
  295. package/dist/runtime/composables/index.js +8 -0
  296. package/dist/runtime/composables/useAvatarGroup.d.ts +1 -1
  297. package/dist/runtime/composables/useContentSearch.d.ts +5 -0
  298. package/dist/runtime/composables/useContentSearch.js +31 -1
  299. package/dist/runtime/composables/useFieldGroup.d.ts +1 -1
  300. package/dist/runtime/composables/useFileUpload.d.ts +2 -1
  301. package/dist/runtime/composables/useFileUpload.js +13 -4
  302. package/dist/runtime/composables/useFormField.d.ts +1 -1
  303. package/dist/runtime/composables/useKbd.js +1 -1
  304. package/dist/runtime/composables/useToast.d.ts +3 -1
  305. package/dist/runtime/composables/useToast.js +4 -3
  306. package/dist/runtime/index.css +1 -1
  307. package/dist/runtime/inertia/components/Link.d.vue.ts +17 -10
  308. package/dist/runtime/inertia/components/Link.vue +19 -13
  309. package/dist/runtime/inertia/components/Link.vue.d.ts +17 -10
  310. package/dist/runtime/inertia/stubs.js +1 -1
  311. package/dist/runtime/keyframes.css +1 -1
  312. package/dist/runtime/locale/gl.d.ts +3 -0
  313. package/dist/runtime/locale/gl.js +129 -0
  314. package/dist/runtime/locale/hr.d.ts +3 -0
  315. package/dist/runtime/locale/hr.js +129 -0
  316. package/dist/runtime/locale/index.d.ts +3 -0
  317. package/dist/runtime/locale/index.js +3 -0
  318. package/dist/runtime/locale/sq.d.ts +3 -0
  319. package/dist/runtime/locale/sq.js +129 -0
  320. package/dist/runtime/plugins/colors.js +8 -6
  321. package/dist/runtime/types/html.d.ts +8 -0
  322. package/dist/runtime/types/html.js +0 -0
  323. package/dist/runtime/types/index.d.ts +7 -1
  324. package/dist/runtime/types/index.js +7 -1
  325. package/dist/runtime/types/input.d.ts +5 -5
  326. package/dist/runtime/types/tv.d.ts +6 -0
  327. package/dist/runtime/types/utils.d.ts +2 -0
  328. package/dist/runtime/utils/content.d.ts +2 -2
  329. package/dist/runtime/utils/link.d.ts +1 -0
  330. package/dist/runtime/utils/link.js +40 -24
  331. package/dist/runtime/utils/virtualizer.d.ts +6 -0
  332. package/dist/runtime/utils/virtualizer.js +30 -0
  333. package/dist/runtime/vue/components/Link.d.vue.ts +8 -37
  334. package/dist/runtime/vue/components/Link.vue +5 -10
  335. package/dist/runtime/vue/components/Link.vue.d.ts +8 -37
  336. package/dist/runtime/vue/components/color-mode/ColorModeSelect.d.vue.ts +5 -3
  337. package/dist/runtime/vue/components/color-mode/ColorModeSelect.vue +44 -3
  338. package/dist/runtime/vue/components/color-mode/ColorModeSelect.vue.d.ts +5 -3
  339. package/dist/runtime/vue/components/color-mode/ColorModeSwitch.d.vue.ts +1 -1
  340. package/dist/runtime/vue/components/color-mode/ColorModeSwitch.vue +24 -3
  341. package/dist/runtime/vue/components/color-mode/ColorModeSwitch.vue.d.ts +1 -1
  342. package/dist/runtime/vue/stubs.d.ts +1 -1
  343. package/dist/runtime/vue/stubs.js +1 -1
  344. package/dist/shared/{ui.D-FDXAUi.mjs → ui.B77q-Dvh.mjs} +679 -102
  345. package/dist/unplugin.d.mts +1 -0
  346. package/dist/unplugin.mjs +31 -2
  347. package/dist/vite.mjs +5 -2
  348. package/package.json +46 -40
  349. package/.nuxt/ui/accordion.ts +0 -20
  350. package/.nuxt/ui/alert.ts +0 -264
  351. package/.nuxt/ui/auth-form.ts +0 -20
  352. package/.nuxt/ui/avatar-group.ts +0 -52
  353. package/.nuxt/ui/avatar.ts +0 -54
  354. package/.nuxt/ui/badge.ts +0 -263
  355. package/.nuxt/ui/banner.ts +0 -108
  356. package/.nuxt/ui/blog-post.ts +0 -142
  357. package/.nuxt/ui/blog-posts.ts +0 -9
  358. package/.nuxt/ui/breadcrumb.ts +0 -45
  359. package/.nuxt/ui/button.ts +0 -378
  360. package/.nuxt/ui/calendar.ts +0 -103
  361. package/.nuxt/ui/card.ts +0 -34
  362. package/.nuxt/ui/carousel.ts +0 -38
  363. package/.nuxt/ui/changelog-version.ts +0 -41
  364. package/.nuxt/ui/changelog-versions.ts +0 -8
  365. package/.nuxt/ui/chat-message.ts +0 -129
  366. package/.nuxt/ui/chat-messages.ts +0 -14
  367. package/.nuxt/ui/chat-palette.ts +0 -8
  368. package/.nuxt/ui/chat-prompt-submit.ts +0 -5
  369. package/.nuxt/ui/chat-prompt.ts +0 -35
  370. package/.nuxt/ui/checkbox-group.ts +0 -204
  371. package/.nuxt/ui/checkbox.ts +0 -236
  372. package/.nuxt/ui/chip.ts +0 -96
  373. package/.nuxt/ui/collapsible.ts +0 -6
  374. package/.nuxt/ui/color-picker.ts +0 -47
  375. package/.nuxt/ui/command-palette.ts +0 -52
  376. package/.nuxt/ui/container.ts +0 -3
  377. package/.nuxt/ui/content/content-navigation.ts +0 -368
  378. package/.nuxt/ui/content/content-search-button.ts +0 -6
  379. package/.nuxt/ui/content/content-search.ts +0 -13
  380. package/.nuxt/ui/content/content-surround.ts +0 -34
  381. package/.nuxt/ui/content/content-toc.ts +0 -155
  382. package/.nuxt/ui/context-menu.ts +0 -217
  383. package/.nuxt/ui/dashboard-group.ts +0 -3
  384. package/.nuxt/ui/dashboard-navbar.ts +0 -21
  385. package/.nuxt/ui/dashboard-panel.ts +0 -17
  386. package/.nuxt/ui/dashboard-resize-handle.ts +0 -3
  387. package/.nuxt/ui/dashboard-search-button.ts +0 -6
  388. package/.nuxt/ui/dashboard-search.ts +0 -13
  389. package/.nuxt/ui/dashboard-sidebar-collapse.ts +0 -9
  390. package/.nuxt/ui/dashboard-sidebar-toggle.ts +0 -9
  391. package/.nuxt/ui/dashboard-sidebar.ts +0 -37
  392. package/.nuxt/ui/dashboard-toolbar.ts +0 -7
  393. package/.nuxt/ui/drawer.ts +0 -149
  394. package/.nuxt/ui/dropdown-menu.ts +0 -218
  395. package/.nuxt/ui/error.ts +0 -9
  396. package/.nuxt/ui/field-group.ts +0 -16
  397. package/.nuxt/ui/file-upload.ts +0 -290
  398. package/.nuxt/ui/footer-columns.ts +0 -28
  399. package/.nuxt/ui/footer.ts +0 -11
  400. package/.nuxt/ui/form-field.ts +0 -48
  401. package/.nuxt/ui/form.ts +0 -3
  402. package/.nuxt/ui/header.ts +0 -25
  403. package/.nuxt/ui/index.ts +0 -105
  404. package/.nuxt/ui/input-menu.ts +0 -450
  405. package/.nuxt/ui/input-number.ts +0 -245
  406. package/.nuxt/ui/input-tags.ts +0 -310
  407. package/.nuxt/ui/input.ts +0 -289
  408. package/.nuxt/ui/kbd.ts +0 -195
  409. package/.nuxt/ui/link.ts +0 -22
  410. package/.nuxt/ui/main.ts +0 -3
  411. package/.nuxt/ui/marquee.ts +0 -66
  412. package/.nuxt/ui/modal.ts +0 -29
  413. package/.nuxt/ui/navigation-menu.ts +0 -510
  414. package/.nuxt/ui/page-anchors.ts +0 -30
  415. package/.nuxt/ui/page-aside.ts +0 -10
  416. package/.nuxt/ui/page-body.ts +0 -3
  417. package/.nuxt/ui/page-card.ts +0 -279
  418. package/.nuxt/ui/page-columns.ts +0 -3
  419. package/.nuxt/ui/page-cta.ts +0 -70
  420. package/.nuxt/ui/page-feature.ts +0 -26
  421. package/.nuxt/ui/page-grid.ts +0 -3
  422. package/.nuxt/ui/page-header.ts +0 -18
  423. package/.nuxt/ui/page-hero.ts +0 -44
  424. package/.nuxt/ui/page-links.ts +0 -25
  425. package/.nuxt/ui/page-list.ts +0 -8
  426. package/.nuxt/ui/page-logos.ts +0 -15
  427. package/.nuxt/ui/page-section.ts +0 -84
  428. package/.nuxt/ui/page.ts +0 -32
  429. package/.nuxt/ui/pagination.ts +0 -13
  430. package/.nuxt/ui/pin-input.ts +0 -171
  431. package/.nuxt/ui/popover.ts +0 -6
  432. package/.nuxt/ui/pricing-plan.ts +0 -101
  433. package/.nuxt/ui/pricing-plans.ts +0 -22
  434. package/.nuxt/ui/pricing-table.ts +0 -51
  435. package/.nuxt/ui/progress.ts +0 -297
  436. package/.nuxt/ui/prose/a.ts +0 -6
  437. package/.nuxt/ui/prose/accordion-item.ts +0 -3
  438. package/.nuxt/ui/prose/accordion.ts +0 -6
  439. package/.nuxt/ui/prose/badge.ts +0 -3
  440. package/.nuxt/ui/prose/blockquote.ts +0 -3
  441. package/.nuxt/ui/prose/callout.ts +0 -129
  442. package/.nuxt/ui/prose/card-group.ts +0 -3
  443. package/.nuxt/ui/prose/card.ts +0 -119
  444. package/.nuxt/ui/prose/code-collapse.ts +0 -19
  445. package/.nuxt/ui/prose/code-group.ts +0 -13
  446. package/.nuxt/ui/prose/code-icon.ts +0 -66
  447. package/.nuxt/ui/prose/code-preview.ts +0 -14
  448. package/.nuxt/ui/prose/code-tree.ts +0 -28
  449. package/.nuxt/ui/prose/code.ts +0 -27
  450. package/.nuxt/ui/prose/collapsible.ts +0 -12
  451. package/.nuxt/ui/prose/em.ts +0 -3
  452. package/.nuxt/ui/prose/field-group.ts +0 -3
  453. package/.nuxt/ui/prose/field.ts +0 -11
  454. package/.nuxt/ui/prose/h1.ts +0 -6
  455. package/.nuxt/ui/prose/h2.ts +0 -14
  456. package/.nuxt/ui/prose/h3.ts +0 -14
  457. package/.nuxt/ui/prose/h4.ts +0 -6
  458. package/.nuxt/ui/prose/hr.ts +0 -3
  459. package/.nuxt/ui/prose/icon.ts +0 -3
  460. package/.nuxt/ui/prose/img.ts +0 -22
  461. package/.nuxt/ui/prose/index.ts +0 -41
  462. package/.nuxt/ui/prose/kbd.ts +0 -3
  463. package/.nuxt/ui/prose/li.ts +0 -3
  464. package/.nuxt/ui/prose/ol.ts +0 -3
  465. package/.nuxt/ui/prose/p.ts +0 -3
  466. package/.nuxt/ui/prose/pre.ts +0 -17
  467. package/.nuxt/ui/prose/steps.ts +0 -19
  468. package/.nuxt/ui/prose/strong.ts +0 -3
  469. package/.nuxt/ui/prose/table.ts +0 -6
  470. package/.nuxt/ui/prose/tabs-item.ts +0 -3
  471. package/.nuxt/ui/prose/tabs.ts +0 -5
  472. package/.nuxt/ui/prose/tbody.ts +0 -3
  473. package/.nuxt/ui/prose/td.ts +0 -3
  474. package/.nuxt/ui/prose/th.ts +0 -3
  475. package/.nuxt/ui/prose/thead.ts +0 -3
  476. package/.nuxt/ui/prose/tr.ts +0 -3
  477. package/.nuxt/ui/prose/ul.ts +0 -3
  478. package/.nuxt/ui/radio-group.ts +0 -350
  479. package/.nuxt/ui/select-menu.ts +0 -351
  480. package/.nuxt/ui/select.ts +0 -346
  481. package/.nuxt/ui/separator.ts +0 -172
  482. package/.nuxt/ui/skeleton.ts +0 -3
  483. package/.nuxt/ui/slideover.ts +0 -71
  484. package/.nuxt/ui/slider.ts +0 -171
  485. package/.nuxt/ui/stepper.ts +0 -202
  486. package/.nuxt/ui/switch.ts +0 -131
  487. package/.nuxt/ui/table.ts +0 -156
  488. package/.nuxt/ui/tabs.ts +0 -258
  489. package/.nuxt/ui/textarea.ts +0 -294
  490. package/.nuxt/ui/timeline.ts +0 -321
  491. package/.nuxt/ui/toast.ts +0 -74
  492. package/.nuxt/ui/toaster.ts +0 -91
  493. package/.nuxt/ui/tooltip.ts +0 -9
  494. package/.nuxt/ui/tree.ts +0 -154
  495. package/.nuxt/ui/user.ts +0 -101
  496. package/.nuxt/ui.css +0 -146
  497. package/dist/runtime/vue/components/color-mode/ColorModeButton.d.vue.ts +0 -17
  498. package/dist/runtime/vue/components/color-mode/ColorModeButton.vue +0 -35
  499. package/dist/runtime/vue/components/color-mode/ColorModeButton.vue.d.ts +0 -17
@@ -2,17 +2,19 @@ import type { AppConfig } from '@nuxt/schema';
2
2
  import theme from '#build/ui/auth-form';
3
3
  import type { ButtonProps, FormProps, FormFieldProps, SeparatorProps, InputProps, CheckboxProps, SelectMenuProps, PinInputProps, IconProps } from '../types';
4
4
  import type { FormSchema, FormSubmitEvent, InferInput } from '../types/form';
5
+ import type { FormHTMLAttributes } from '../types/html';
6
+ import type { NonUnion } from '../types/utils';
5
7
  import type { ComponentConfig } from '../types/tv';
6
8
  type AuthForm = ComponentConfig<typeof theme, AppConfig, 'authForm'>;
7
- type AuthFormCheckboxField = Omit<FormFieldProps, 'name'> & CheckboxProps & {
9
+ export type AuthFormCheckboxField = Omit<FormFieldProps, 'name'> & CheckboxProps & {
8
10
  name: string;
9
11
  type: 'checkbox';
10
12
  };
11
- type AuthFormSelectField = Omit<FormFieldProps, 'name'> & SelectMenuProps & {
13
+ export type AuthFormSelectField = Omit<FormFieldProps, 'name'> & SelectMenuProps & {
12
14
  name: string;
13
15
  type: 'select';
14
16
  };
15
- type AuthFormOtpField = Omit<FormFieldProps, 'name'> & Omit<PinInputProps, 'type' | 'otp'> & {
17
+ export type AuthFormOtpField = Omit<FormFieldProps, 'name'> & Omit<PinInputProps, 'type' | 'otp'> & {
16
18
  name: string;
17
19
  type: 'otp';
18
20
  /**
@@ -22,14 +24,13 @@ type AuthFormOtpField = Omit<FormFieldProps, 'name'> & Omit<PinInputProps, 'type
22
24
  */
23
25
  otp?: boolean | PinInputProps;
24
26
  };
25
- type AuthFormInputFieldType = 'password' | 'text' | 'email' | 'number';
26
- type AuthFormInputField<T extends AuthFormInputFieldType = AuthFormInputFieldType> = Omit<FormFieldProps, 'name'> & InputProps & {
27
+ export type AuthFormInputFieldType = 'password' | 'text' | 'email' | 'number';
28
+ export type AuthFormInputField<T extends AuthFormInputFieldType & NonUnion<T> = 'text'> = Omit<FormFieldProps, 'name'> & Omit<InputProps, 'type'> & {
27
29
  name: string;
28
30
  type: T;
29
31
  };
30
- type AuthFormFieldType = 'checkbox' | 'select' | 'otp' | 'password' | 'text' | 'email' | 'number';
31
- export type AuthFormField<T extends AuthFormFieldType = AuthFormFieldType> = T extends 'checkbox' ? AuthFormCheckboxField : T extends 'select' ? AuthFormSelectField : T extends 'otp' ? AuthFormOtpField : T extends AuthFormInputFieldType ? AuthFormInputField<T> : never;
32
- export interface AuthFormProps<T extends FormSchema = FormSchema<object>, F extends AuthFormField = AuthFormField> {
32
+ export type AuthFormField = AuthFormCheckboxField | AuthFormSelectField | AuthFormOtpField | AuthFormInputField<'password'> | AuthFormInputField<'text'> | AuthFormInputField<'email'> | AuthFormInputField<'number'>;
33
+ export interface AuthFormProps<T extends FormSchema = FormSchema<object>, F extends AuthFormField = AuthFormField> extends /** @vue-ignore */ FormHTMLAttributes {
33
34
  /**
34
35
  * The element or component this component should render as.
35
36
  * @defaultValue 'div'
@@ -79,7 +80,9 @@ type DynamicFieldSlots<T, F, SlotProps = {
79
80
  type DynamicFormFieldSlots<T> = Record<string, (props?: {}) => any> & Record<`${keyof T extends string ? keyof T : never}-${'label' | 'description' | 'hint' | 'help' | 'error'}`, (props?: {}) => any>;
80
81
  export type AuthFormSlots<T extends object = object, F extends AuthFormField = AuthFormField> = {
81
82
  header(props?: {}): any;
82
- leading(props?: {}): any;
83
+ leading(props: {
84
+ ui: AuthForm['ui'];
85
+ }): any;
83
86
  title(props?: {}): any;
84
87
  description(props?: {}): any;
85
88
  providers(props?: {}): any;
@@ -1,14 +1,18 @@
1
1
  import type { AppConfig } from '@nuxt/schema';
2
2
  import theme from '#build/ui/avatar';
3
3
  import type { ChipProps, IconProps } from '../types';
4
+ import type { ImgHTMLAttributes } from '../types/html';
4
5
  import type { ComponentConfig } from '../types/tv';
5
6
  type Avatar = ComponentConfig<typeof theme, AppConfig, 'avatar'>;
6
- export interface AvatarProps {
7
+ export interface AvatarProps extends /** @vue-ignore */ Omit<ImgHTMLAttributes, 'src' | 'alt'> {
7
8
  /**
8
9
  * The element or component this component should render as.
9
10
  * @defaultValue 'span'
10
11
  */
11
- as?: any;
12
+ as?: any | {
13
+ root?: any;
14
+ img?: any;
15
+ };
12
16
  src?: string;
13
17
  alt?: string;
14
18
  /**
@@ -28,9 +32,7 @@ export interface AvatarProps {
28
32
  export interface AvatarSlots {
29
33
  default(props?: {}): any;
30
34
  }
31
- declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<AvatarProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<AvatarProps> & Readonly<{}>, {
32
- as: any;
33
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
35
+ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<AvatarProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<AvatarProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
34
36
  default?: (props: {}) => any;
35
37
  }>;
36
38
  declare const _default: typeof __VLS_export;
@@ -5,6 +5,7 @@ import theme from "#build/ui/avatar";
5
5
  <script setup>
6
6
  import { ref, computed, watch } from "vue";
7
7
  import { Primitive, Slot } from "reka-ui";
8
+ import { defu } from "defu";
8
9
  import { useAppConfig } from "#imports";
9
10
  import ImageComponent from "#build/ui-image-component";
10
11
  import { useAvatarGroup } from "../composables/useAvatarGroup";
@@ -13,7 +14,7 @@ import UIcon from "./Icon.vue";
13
14
  import UChip from "./Chip.vue";
14
15
  defineOptions({ inheritAttrs: false });
15
16
  const props = defineProps({
16
- as: { type: null, required: false, default: "span" },
17
+ as: { type: null, required: false },
17
18
  src: { type: String, required: false },
18
19
  alt: { type: String, required: false },
19
20
  icon: { type: [String, Object], required: false },
@@ -24,6 +25,12 @@ const props = defineProps({
24
25
  style: { type: null, required: false },
25
26
  ui: { type: null, required: false }
26
27
  });
28
+ const as = computed(() => {
29
+ if (typeof props.as === "string" || typeof props.as?.render === "function") {
30
+ return { root: props.as };
31
+ }
32
+ return defu(props.as, { root: "span" });
33
+ });
27
34
  const fallback = computed(() => props.text || (props.alt || "").split(" ").map((word) => word.charAt(0)).join("").substring(0, 2));
28
35
  const appConfig = useAppConfig();
29
36
  const { size } = useAvatarGroup(props);
@@ -55,27 +62,29 @@ function onError() {
55
62
  <template>
56
63
  <component
57
64
  :is="props.chip ? UChip : Primitive"
58
- :as="as"
65
+ :as="as.root"
59
66
  v-bind="props.chip ? typeof props.chip === 'object' ? { inset: true, ...props.chip } : { inset: true } : {}"
67
+ data-slot="root"
60
68
  :class="ui.root({ class: [props.ui?.root, props.class] })"
61
69
  :style="props.style"
62
70
  >
63
71
  <component
64
- :is="ImageComponent"
72
+ :is="as.img || ImageComponent"
65
73
  v-if="src && !error"
66
74
  :src="src"
67
75
  :alt="alt"
68
76
  :width="sizePx"
69
77
  :height="sizePx"
70
78
  v-bind="$attrs"
79
+ data-slot="image"
71
80
  :class="ui.image({ class: props.ui?.image })"
72
81
  @error="onError"
73
82
  />
74
83
 
75
84
  <Slot v-else v-bind="$attrs">
76
85
  <slot>
77
- <UIcon v-if="icon" :name="icon" :class="ui.icon({ class: props.ui?.icon })" />
78
- <span v-else :class="ui.fallback({ class: props.ui?.fallback })">{{ fallback || "\xA0" }}</span>
86
+ <UIcon v-if="icon" :name="icon" data-slot="icon" :class="ui.icon({ class: props.ui?.icon })" />
87
+ <span v-else data-slot="fallback" :class="ui.fallback({ class: props.ui?.fallback })">{{ fallback || "\xA0" }}</span>
79
88
  </slot>
80
89
  </Slot>
81
90
  </component>
@@ -1,14 +1,18 @@
1
1
  import type { AppConfig } from '@nuxt/schema';
2
2
  import theme from '#build/ui/avatar';
3
3
  import type { ChipProps, IconProps } from '../types';
4
+ import type { ImgHTMLAttributes } from '../types/html';
4
5
  import type { ComponentConfig } from '../types/tv';
5
6
  type Avatar = ComponentConfig<typeof theme, AppConfig, 'avatar'>;
6
- export interface AvatarProps {
7
+ export interface AvatarProps extends /** @vue-ignore */ Omit<ImgHTMLAttributes, 'src' | 'alt'> {
7
8
  /**
8
9
  * The element or component this component should render as.
9
10
  * @defaultValue 'span'
10
11
  */
11
- as?: any;
12
+ as?: any | {
13
+ root?: any;
14
+ img?: any;
15
+ };
12
16
  src?: string;
13
17
  alt?: string;
14
18
  /**
@@ -28,9 +32,7 @@ export interface AvatarProps {
28
32
  export interface AvatarSlots {
29
33
  default(props?: {}): any;
30
34
  }
31
- declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<AvatarProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<AvatarProps> & Readonly<{}>, {
32
- as: any;
33
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
35
+ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<AvatarProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<AvatarProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
34
36
  default?: (props: {}) => any;
35
37
  }>;
36
38
  declare const _default: typeof __VLS_export;
@@ -58,8 +58,8 @@ provide(avatarGroupInjectionKey, computed(() => ({
58
58
  </script>
59
59
 
60
60
  <template>
61
- <Primitive :as="as" :class="ui.root({ class: [props.ui?.root, props.class] })">
62
- <UAvatar v-if="hiddenCount > 0" :text="`+${hiddenCount}`" :class="ui.base({ class: props.ui?.base })" />
63
- <component :is="avatar" v-for="(avatar, count) in visibleAvatars" :key="count" :class="ui.base({ class: props.ui?.base })" />
61
+ <Primitive :as="as" data-slot="root" :class="ui.root({ class: [props.ui?.root, props.class] })">
62
+ <UAvatar v-if="hiddenCount > 0" :text="`+${hiddenCount}`" data-slot="base" :class="ui.base({ class: props.ui?.base })" />
63
+ <component :is="avatar" v-for="(avatar, count) in visibleAvatars" :key="count" data-slot="base" :class="ui.base({ class: props.ui?.base })" />
64
64
  </Primitive>
65
65
  </template>
@@ -28,9 +28,15 @@ export interface BadgeProps extends Omit<UseComponentIconsProps, 'loading' | 'lo
28
28
  ui?: Badge['slots'];
29
29
  }
30
30
  export interface BadgeSlots {
31
- leading(props?: {}): any;
32
- default(props?: {}): any;
33
- trailing(props?: {}): any;
31
+ leading(props: {
32
+ ui: Badge['ui'];
33
+ }): any;
34
+ default(props: {
35
+ ui: Badge['ui'];
36
+ }): any;
37
+ trailing(props: {
38
+ ui: Badge['ui'];
39
+ }): any;
34
40
  }
35
41
  declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<BadgeProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<BadgeProps> & Readonly<{}>, {
36
42
  as: any;
@@ -41,20 +41,20 @@ const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.badge || {} }
41
41
  </script>
42
42
 
43
43
  <template>
44
- <Primitive :as="as" :class="ui.base({ class: [props.ui?.base, props.class] })">
45
- <slot name="leading">
46
- <UIcon v-if="isLeading && leadingIconName" :name="leadingIconName" :class="ui.leadingIcon({ class: props.ui?.leadingIcon })" />
47
- <UAvatar v-else-if="!!avatar" :size="props.ui?.leadingAvatarSize || ui.leadingAvatarSize()" v-bind="avatar" :class="ui.leadingAvatar({ class: props.ui?.leadingAvatar })" />
44
+ <Primitive :as="as" data-slot="base" :class="ui.base({ class: [props.ui?.base, props.class] })">
45
+ <slot name="leading" :ui="ui">
46
+ <UIcon v-if="isLeading && leadingIconName" :name="leadingIconName" data-slot="leadingIcon" :class="ui.leadingIcon({ class: props.ui?.leadingIcon })" />
47
+ <UAvatar v-else-if="!!avatar" :size="props.ui?.leadingAvatarSize || ui.leadingAvatarSize()" v-bind="avatar" data-slot="leadingAvatar" :class="ui.leadingAvatar({ class: props.ui?.leadingAvatar })" />
48
48
  </slot>
49
49
 
50
- <slot>
51
- <span v-if="label !== void 0 && label !== null" :class="ui.label({ class: props.ui?.label })">
50
+ <slot :ui="ui">
51
+ <span v-if="label !== void 0 && label !== null" data-slot="label" :class="ui.label({ class: props.ui?.label })">
52
52
  {{ label }}
53
53
  </span>
54
54
  </slot>
55
55
 
56
- <slot name="trailing">
57
- <UIcon v-if="isTrailing && trailingIconName" :name="trailingIconName" :class="ui.trailingIcon({ class: props.ui?.trailingIcon })" />
56
+ <slot name="trailing" :ui="ui">
57
+ <UIcon v-if="isTrailing && trailingIconName" :name="trailingIconName" data-slot="trailingIcon" :class="ui.trailingIcon({ class: props.ui?.trailingIcon })" />
58
58
  </slot>
59
59
  </Primitive>
60
60
  </template>
@@ -28,9 +28,15 @@ export interface BadgeProps extends Omit<UseComponentIconsProps, 'loading' | 'lo
28
28
  ui?: Badge['slots'];
29
29
  }
30
30
  export interface BadgeSlots {
31
- leading(props?: {}): any;
32
- default(props?: {}): any;
33
- trailing(props?: {}): any;
31
+ leading(props: {
32
+ ui: Badge['ui'];
33
+ }): any;
34
+ default(props: {
35
+ ui: Badge['ui'];
36
+ }): any;
37
+ trailing(props: {
38
+ ui: Badge['ui'];
39
+ }): any;
34
40
  }
35
41
  declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<BadgeProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<BadgeProps> & Readonly<{}>, {
36
42
  as: any;
@@ -49,11 +49,13 @@ export interface BannerProps {
49
49
  ui?: Banner['slots'];
50
50
  }
51
51
  export interface BannerSlots {
52
- leading(props?: {}): any;
52
+ leading(props: {
53
+ ui: Banner['ui'];
54
+ }): any;
53
55
  title(props?: {}): any;
54
56
  actions(props?: {}): any;
55
57
  close(props: {
56
- ui: any;
58
+ ui: Banner['ui'];
57
59
  }): any;
58
60
  }
59
61
  export interface BannerEmits {
@@ -60,7 +60,7 @@ function onClose() {
60
60
  </script>
61
61
 
62
62
  <template>
63
- <Primitive :as="as" class="banner" :class="ui.root({ class: [props.ui?.root, props.class] })">
63
+ <Primitive :as="as" class="banner" data-slot="root" :class="ui.root({ class: [props.ui?.root, props.class] })">
64
64
  <ULink
65
65
  v-if="to"
66
66
  :aria-label="title"
@@ -72,28 +72,28 @@ function onClose() {
72
72
  <span class="absolute inset-0 " aria-hidden="true" />
73
73
  </ULink>
74
74
 
75
- <UContainer :class="ui.container({ class: props.ui?.container })">
76
- <div :class="ui.left({ class: props.ui?.left })" />
75
+ <UContainer data-slot="container" :class="ui.container({ class: props.ui?.container })">
76
+ <div data-slot="left" :class="ui.left({ class: props.ui?.left })" />
77
77
 
78
- <div :class="ui.center({ class: props.ui?.center })">
79
- <slot name="leading">
80
- <UIcon v-if="icon" :name="icon" :class="ui.icon({ class: props.ui?.icon })" />
78
+ <div data-slot="center" :class="ui.center({ class: props.ui?.center })">
79
+ <slot name="leading" :ui="ui">
80
+ <UIcon v-if="icon" :name="icon" data-slot="icon" :class="ui.icon({ class: props.ui?.icon })" />
81
81
  </slot>
82
82
 
83
- <div v-if="title || !!slots.title" :class="ui.title({ class: props.ui?.title })">
83
+ <div v-if="title || !!slots.title" data-slot="title" :class="ui.title({ class: props.ui?.title })">
84
84
  <slot name="title">
85
85
  {{ title }}
86
86
  </slot>
87
87
  </div>
88
88
 
89
- <div v-if="actions?.length || !!slots.actions" :class="ui.actions({ class: props.ui?.actions })">
89
+ <div v-if="actions?.length || !!slots.actions" data-slot="actions" :class="ui.actions({ class: props.ui?.actions })">
90
90
  <slot name="actions">
91
91
  <UButton v-for="(action, index) in actions" :key="index" color="neutral" size="xs" v-bind="action" />
92
92
  </slot>
93
93
  </div>
94
94
  </div>
95
95
 
96
- <div :class="ui.right({ class: props.ui?.right })">
96
+ <div data-slot="right" :class="ui.right({ class: props.ui?.right })">
97
97
  <slot name="close" :ui="ui">
98
98
  <UButton
99
99
  v-if="close"
@@ -103,6 +103,7 @@ function onClose() {
103
103
  variant="ghost"
104
104
  :aria-label="t('banner.close')"
105
105
  v-bind="typeof close === 'object' ? close : {}"
106
+ data-slot="close"
106
107
  :class="ui.close({ class: props.ui?.close })"
107
108
  @click="onClose"
108
109
  />
@@ -49,11 +49,13 @@ export interface BannerProps {
49
49
  ui?: Banner['slots'];
50
50
  }
51
51
  export interface BannerSlots {
52
- leading(props?: {}): any;
52
+ leading(props: {
53
+ ui: Banner['ui'];
54
+ }): any;
53
55
  title(props?: {}): any;
54
56
  actions(props?: {}): any;
55
57
  close(props: {
56
- ui: any;
58
+ ui: Banner['ui'];
57
59
  }): any;
58
60
  }
59
61
  export interface BannerEmits {
@@ -22,7 +22,9 @@ export interface BlogPostProps {
22
22
  /** The authors of the blog post. */
23
23
  authors?: UserProps[];
24
24
  /** The image of the blog post. Can be a string or an object. */
25
- image?: string | Partial<HTMLImageElement>;
25
+ image?: string | (Partial<HTMLImageElement> & {
26
+ [key: string]: any;
27
+ });
26
28
  /**
27
29
  * The orientation of the blog post.
28
30
  * @defaultValue 'vertical'
@@ -43,8 +45,12 @@ export interface BlogPostSlots {
43
45
  badge(props?: {}): any;
44
46
  title(props?: {}): any;
45
47
  description(props?: {}): any;
46
- authors(props?: {}): any;
47
- header(props?: {}): any;
48
+ authors(props: {
49
+ ui: BlogPost['ui'];
50
+ }): any;
51
+ header(props: {
52
+ ui: BlogPost['ui'];
53
+ }): any;
48
54
  body(props?: {}): any;
49
55
  footer(props?: {}): any;
50
56
  }
@@ -68,18 +68,19 @@ const ariaLabel = computed(() => {
68
68
  </script>
69
69
 
70
70
  <template>
71
- <Primitive :as="as" :data-orientation="orientation" :class="ui.root({ class: [props.ui?.root, props.class] })" @click="onClick">
72
- <div v-if="image || !!slots.header" :class="ui.header({ class: props.ui?.header })">
73
- <slot name="header">
71
+ <Primitive :as="as" :data-orientation="orientation" data-slot="root" :class="ui.root({ class: [props.ui?.root, props.class] })" @click="onClick">
72
+ <div v-if="image || !!slots.header" data-slot="header" :class="ui.header({ class: props.ui?.header })">
73
+ <slot name="header" :ui="ui">
74
74
  <component
75
75
  :is="ImageComponent"
76
76
  v-bind="typeof image === 'string' ? { src: image, alt: title } : { alt: title, ...image }"
77
+ data-slot="image"
77
78
  :class="ui.image({ class: props.ui?.image, to: !!to })"
78
79
  />
79
80
  </slot>
80
81
  </div>
81
82
 
82
- <div :class="ui.body({ class: props.ui?.body })">
83
+ <div data-slot="body" :class="ui.body({ class: props.ui?.body })">
83
84
  <ULink
84
85
  v-if="to"
85
86
  :aria-label="ariaLabel"
@@ -92,32 +93,39 @@ const ariaLabel = computed(() => {
92
93
  </ULink>
93
94
 
94
95
  <slot name="body">
95
- <div v-if="date || !!slots.date || (badge || !!slots.badge)" :class="ui.meta({ class: props.ui?.meta })">
96
+ <div v-if="date || !!slots.date || (badge || !!slots.badge)" data-slot="meta" :class="ui.meta({ class: props.ui?.meta })">
96
97
  <slot name="badge">
97
- <UBadge v-if="badge" color="neutral" variant="subtle" v-bind="typeof badge === 'string' ? { label: badge } : badge" :class="ui.badge({ class: props.ui?.badge })" />
98
+ <UBadge
99
+ v-if="badge"
100
+ color="neutral"
101
+ variant="subtle"
102
+ v-bind="typeof badge === 'string' ? { label: badge } : badge"
103
+ data-slot="badge"
104
+ :class="ui.badge({ class: props.ui?.badge })"
105
+ />
98
106
  </slot>
99
107
 
100
- <time v-if="date || !!slots.date" :datetime="datetime" :class="ui.date({ class: props.ui?.date })">
108
+ <time v-if="date || !!slots.date" :datetime="datetime" data-slot="date" :class="ui.date({ class: props.ui?.date })">
101
109
  <slot name="date">
102
110
  {{ date }}
103
111
  </slot>
104
112
  </time>
105
113
  </div>
106
114
 
107
- <h2 v-if="title || !!slots.title" :class="ui.title({ class: props.ui?.title })">
115
+ <h2 v-if="title || !!slots.title" data-slot="title" :class="ui.title({ class: props.ui?.title })">
108
116
  <slot name="title">
109
117
  {{ title }}
110
118
  </slot>
111
119
  </h2>
112
120
 
113
- <div v-if="description || !!slots.description" :class="ui.description({ class: props.ui?.description })">
121
+ <div v-if="description || !!slots.description" data-slot="description" :class="ui.description({ class: props.ui?.description })">
114
122
  <slot name="description">
115
123
  {{ description }}
116
124
  </slot>
117
125
  </div>
118
126
 
119
- <div v-if="authors?.length || !!slots.authors" :class="ui.authors({ class: props.ui?.authors })">
120
- <slot name="authors">
127
+ <div v-if="authors?.length || !!slots.authors" data-slot="authors" :class="ui.authors({ class: props.ui?.authors })">
128
+ <slot name="authors" :ui="ui">
121
129
  <template v-if="authors?.length">
122
130
  <UAvatarGroup v-if="authors.length > 1">
123
131
  <ULink
@@ -125,6 +133,7 @@ const ariaLabel = computed(() => {
125
133
  :key="index"
126
134
  :to="author.to"
127
135
  :target="author.target"
136
+ data-slot="avatar"
128
137
  :class="ui.avatar({ class: props.ui?.avatar, to: !!author.to })"
129
138
  raw
130
139
  >
@@ -138,7 +147,7 @@ const ariaLabel = computed(() => {
138
147
  </slot>
139
148
  </div>
140
149
 
141
- <div v-if="!!slots.footer" :class="ui.footer({ class: props.ui?.footer })">
150
+ <div v-if="!!slots.footer" data-slot="footer" :class="ui.footer({ class: props.ui?.footer })">
142
151
  <slot name="footer" />
143
152
  </div>
144
153
  </Primitive>
@@ -22,7 +22,9 @@ export interface BlogPostProps {
22
22
  /** The authors of the blog post. */
23
23
  authors?: UserProps[];
24
24
  /** The image of the blog post. Can be a string or an object. */
25
- image?: string | Partial<HTMLImageElement>;
25
+ image?: string | (Partial<HTMLImageElement> & {
26
+ [key: string]: any;
27
+ });
26
28
  /**
27
29
  * The orientation of the blog post.
28
30
  * @defaultValue 'vertical'
@@ -43,8 +45,12 @@ export interface BlogPostSlots {
43
45
  badge(props?: {}): any;
44
46
  title(props?: {}): any;
45
47
  description(props?: {}): any;
46
- authors(props?: {}): any;
47
- header(props?: {}): any;
48
+ authors(props: {
49
+ ui: BlogPost['ui'];
50
+ }): any;
51
+ header(props: {
52
+ ui: BlogPost['ui'];
53
+ }): any;
48
54
  body(props?: {}): any;
49
55
  footer(props?: {}): any;
50
56
  }
@@ -1,15 +1,15 @@
1
1
  import type { AppConfig } from '@nuxt/schema';
2
2
  import theme from '#build/ui/blog-posts';
3
- import type { BlogPostProps } from '../types';
3
+ import type { BlogPostProps, BlogPostSlots } from '../types';
4
4
  import type { ComponentConfig } from '../types/tv';
5
5
  type BlogPosts = ComponentConfig<typeof theme, AppConfig, 'blogPosts'>;
6
- export interface BlogPostsProps {
6
+ export interface BlogPostsProps<T extends BlogPostProps = BlogPostProps> {
7
7
  /**
8
8
  * The element or component this component should render as.
9
9
  * @defaultValue 'div'
10
10
  */
11
11
  as?: any;
12
- posts?: BlogPostProps[];
12
+ posts?: T[];
13
13
  /**
14
14
  * The orientation of the blog posts.
15
15
  * @defaultValue 'horizontal'
@@ -17,16 +17,25 @@ export interface BlogPostsProps {
17
17
  orientation?: BlogPosts['variants']['orientation'];
18
18
  class?: any;
19
19
  }
20
- export interface BlogPostsSlots {
20
+ type ExtendSlotWithPost<T extends BlogPostProps, K extends keyof BlogPostSlots> = BlogPostSlots[K] extends (props: infer P) => any ? (props: P & {
21
+ post: T;
22
+ }) => any : BlogPostSlots[K];
23
+ export type BlogPostsSlots<T extends BlogPostProps = BlogPostProps> = {
24
+ [K in keyof BlogPostSlots]: ExtendSlotWithPost<T, K>;
25
+ } & {
21
26
  default(props?: {}): any;
22
- }
23
- declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<BlogPostsProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<BlogPostsProps> & Readonly<{}>, {
24
- orientation: BlogPosts["variants"]["orientation"];
25
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, BlogPostsSlots>;
27
+ };
28
+ declare const __VLS_export: <T extends BlogPostProps>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
29
+ props: __VLS_PrettifyLocal<BlogPostsProps<BlogPostProps>> & import("vue").PublicProps;
30
+ expose: (exposed: {}) => void;
31
+ attrs: any;
32
+ slots: BlogPostsSlots<T>;
33
+ emit: {};
34
+ }>) => import("vue").VNode & {
35
+ __ctx?: Awaited<typeof __VLS_setup>;
36
+ };
26
37
  declare const _default: typeof __VLS_export;
27
38
  export default _default;
28
- type __VLS_WithSlots<T, S> = T & {
29
- new (): {
30
- $slots: S;
31
- };
32
- };
39
+ type __VLS_PrettifyLocal<T> = {
40
+ [K in keyof T as K]: T[K];
41
+ } & {};
@@ -6,6 +6,7 @@ import theme from "#build/ui/blog-posts";
6
6
  import { computed } from "vue";
7
7
  import { Primitive } from "reka-ui";
8
8
  import { useAppConfig } from "#imports";
9
+ import { omit } from "../utils";
9
10
  import { tv } from "../utils/tv";
10
11
  import UBlogPost from "./BlogPost.vue";
11
12
  const props = defineProps({
@@ -14,7 +15,8 @@ const props = defineProps({
14
15
  orientation: { type: null, required: false, default: "horizontal" },
15
16
  class: { type: null, required: false }
16
17
  });
17
- defineSlots();
18
+ const slots = defineSlots();
19
+ const getProxySlots = () => omit(slots, ["default"]);
18
20
  const appConfig = useAppConfig();
19
21
  const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.blogPosts || {} }));
20
22
  </script>
@@ -27,7 +29,11 @@ const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.blogPosts ||
27
29
  :key="index"
28
30
  :orientation="orientation === 'vertical' ? 'horizontal' : 'vertical'"
29
31
  v-bind="post"
30
- />
32
+ >
33
+ <template v-for="(_, name) in getProxySlots()" #[name]="slotData">
34
+ <slot :name="name" v-bind="slotData" :post="post" />
35
+ </template>
36
+ </UBlogPost>
31
37
  </slot>
32
38
  </Primitive>
33
39
  </template>
@@ -1,15 +1,15 @@
1
1
  import type { AppConfig } from '@nuxt/schema';
2
2
  import theme from '#build/ui/blog-posts';
3
- import type { BlogPostProps } from '../types';
3
+ import type { BlogPostProps, BlogPostSlots } from '../types';
4
4
  import type { ComponentConfig } from '../types/tv';
5
5
  type BlogPosts = ComponentConfig<typeof theme, AppConfig, 'blogPosts'>;
6
- export interface BlogPostsProps {
6
+ export interface BlogPostsProps<T extends BlogPostProps = BlogPostProps> {
7
7
  /**
8
8
  * The element or component this component should render as.
9
9
  * @defaultValue 'div'
10
10
  */
11
11
  as?: any;
12
- posts?: BlogPostProps[];
12
+ posts?: T[];
13
13
  /**
14
14
  * The orientation of the blog posts.
15
15
  * @defaultValue 'horizontal'
@@ -17,16 +17,25 @@ export interface BlogPostsProps {
17
17
  orientation?: BlogPosts['variants']['orientation'];
18
18
  class?: any;
19
19
  }
20
- export interface BlogPostsSlots {
20
+ type ExtendSlotWithPost<T extends BlogPostProps, K extends keyof BlogPostSlots> = BlogPostSlots[K] extends (props: infer P) => any ? (props: P & {
21
+ post: T;
22
+ }) => any : BlogPostSlots[K];
23
+ export type BlogPostsSlots<T extends BlogPostProps = BlogPostProps> = {
24
+ [K in keyof BlogPostSlots]: ExtendSlotWithPost<T, K>;
25
+ } & {
21
26
  default(props?: {}): any;
22
- }
23
- declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<BlogPostsProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<BlogPostsProps> & Readonly<{}>, {
24
- orientation: BlogPosts["variants"]["orientation"];
25
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, BlogPostsSlots>;
27
+ };
28
+ declare const __VLS_export: <T extends BlogPostProps>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
29
+ props: __VLS_PrettifyLocal<BlogPostsProps<BlogPostProps>> & import("vue").PublicProps;
30
+ expose: (exposed: {}) => void;
31
+ attrs: any;
32
+ slots: BlogPostsSlots<T>;
33
+ emit: {};
34
+ }>) => import("vue").VNode & {
35
+ __ctx?: Awaited<typeof __VLS_setup>;
36
+ };
26
37
  declare const _default: typeof __VLS_export;
27
38
  export default _default;
28
- type __VLS_WithSlots<T, S> = T & {
29
- new (): {
30
- $slots: S;
31
- };
32
- };
39
+ type __VLS_PrettifyLocal<T> = {
40
+ [K in keyof T as K]: T[K];
41
+ } & {};