@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
@@ -1,9 +1,12 @@
1
1
  import { pick } from '../../dist/runtime/utils/index.js';
2
2
  import 'node:url';
3
- import { kebabCase } from 'scule';
3
+ import { pascalCase, kebabCase, camelCase } from 'scule';
4
4
  import { genExport } from 'knitwork';
5
5
  import colors from 'tailwindcss/colors';
6
- import { addTypeTemplate, addTemplate, hasNuxtModule } from '@nuxt/kit';
6
+ import { addTypeTemplate, addTemplate, updateTemplates, hasNuxtModule, logger } from '@nuxt/kit';
7
+ import { readFile } from 'node:fs/promises';
8
+ import { join } from 'pathe';
9
+ import { globSync } from 'tinyglobby';
7
10
  import { defuFn, defu } from 'defu';
8
11
 
9
12
  const icons = {
@@ -50,32 +53,173 @@ const icons = {
50
53
  warning: "i-lucide-triangle-alert"
51
54
  };
52
55
 
53
- const getDefaultUiConfig = (colors) => ({
54
- colors: pick({
55
- primary: "green",
56
- secondary: "blue",
57
- success: "green",
58
- info: "blue",
59
- warning: "yellow",
60
- error: "red",
61
- neutral: "slate"
62
- }, [...colors || [], "neutral"]),
63
- icons
64
- });
56
+ function resolveColors(colors) {
57
+ return colors?.length ? [.../* @__PURE__ */ new Set(["primary", ...colors])] : ["primary", "secondary", "success", "info", "warning", "error"];
58
+ }
59
+ function getDefaultConfig(theme) {
60
+ return {
61
+ colors: pick({
62
+ primary: "green",
63
+ secondary: "blue",
64
+ success: "green",
65
+ info: "blue",
66
+ warning: "yellow",
67
+ error: "red",
68
+ neutral: "slate"
69
+ }, [...theme?.colors || [], "neutral"]),
70
+ icons,
71
+ prefix: theme?.prefix,
72
+ tv: {
73
+ twMergeConfig: {
74
+ prefix: theme?.prefix
75
+ }
76
+ }
77
+ };
78
+ }
65
79
  const defaultOptions = {
66
80
  prefix: "U",
67
81
  fonts: true,
68
82
  colorMode: true,
69
83
  theme: {
70
84
  colors: void 0,
71
- transitions: true
85
+ transitions: true,
86
+ defaultVariants: {
87
+ color: void 0,
88
+ size: void 0
89
+ },
90
+ prefix: void 0
72
91
  },
73
92
  mdc: false,
74
93
  content: false
75
94
  };
76
- const resolveColors = (colors) => {
77
- return colors?.length ? [.../* @__PURE__ */ new Set(["primary", ...colors])] : ["primary", "secondary", "success", "info", "warning", "error"];
78
- };
95
+
96
+ function prefixClasses(classString, prefix) {
97
+ if (!prefix || !classString) {
98
+ return classString;
99
+ }
100
+ return classString.split(" ").filter(Boolean).map((cls) => `${prefix}:${cls}`).join(" ");
101
+ }
102
+ function isSizeValue(value) {
103
+ return /^(?:[23]x[sl]|xs|sm|md|lg|xl)$/.test(value.trim());
104
+ }
105
+ function applyPrefixToObject(obj, prefix, context = []) {
106
+ if (!obj || !prefix) {
107
+ return obj;
108
+ }
109
+ const currentKey = context[context.length - 1];
110
+ const compoundVariantsIndex = context.indexOf("compoundVariants");
111
+ const isInCompoundVariant = compoundVariantsIndex !== -1 && !context.slice(compoundVariantsIndex).includes("class");
112
+ const isInDefaultVariants = context.includes("defaultVariants");
113
+ const isComponentSizeValue = typeof obj === "string" && typeof currentKey === "string" && currentKey.endsWith("Size") && isSizeValue(obj);
114
+ if (typeof obj === "string" && (isInCompoundVariant || isInDefaultVariants || isComponentSizeValue)) {
115
+ return obj;
116
+ }
117
+ if (typeof obj === "string") {
118
+ return prefixClasses(obj, prefix);
119
+ }
120
+ if (Array.isArray(obj)) {
121
+ return obj.map((item, index) => applyPrefixToObject(item, prefix, [...context, String(index)]));
122
+ }
123
+ if (typeof obj === "object") {
124
+ const result = {};
125
+ for (const [key, value] of Object.entries(obj)) {
126
+ result[key] = applyPrefixToObject(value, prefix, [...context, key]);
127
+ }
128
+ return result;
129
+ }
130
+ return obj;
131
+ }
132
+ function applyDefaultVariants(result, defaultVariants) {
133
+ if (!result || !defaultVariants) {
134
+ return result;
135
+ }
136
+ if (result.defaultVariants?.color && defaultVariants.color) {
137
+ result.defaultVariants.color = defaultVariants.color;
138
+ }
139
+ if (result.defaultVariants?.size && defaultVariants.size) {
140
+ result.defaultVariants.size = defaultVariants.size;
141
+ }
142
+ return result;
143
+ }
144
+
145
+ async function buildComponentDependencyGraph(componentDir, componentPattern) {
146
+ const dependencyGraph = /* @__PURE__ */ new Map();
147
+ const componentFiles = globSync(["**/*.vue"], {
148
+ cwd: componentDir,
149
+ absolute: true
150
+ });
151
+ for (const componentFile of componentFiles) {
152
+ try {
153
+ const content = await readFile(componentFile, "utf-8");
154
+ const componentName = pascalCase(componentFile.split("/").pop().replace(".vue", ""));
155
+ const dependencies = /* @__PURE__ */ new Set();
156
+ const matches = content.matchAll(componentPattern);
157
+ for (const match of matches) {
158
+ const depName = match[1] || match[2];
159
+ if (depName && depName !== componentName) {
160
+ dependencies.add(depName);
161
+ }
162
+ }
163
+ dependencyGraph.set(componentName, dependencies);
164
+ } catch {
165
+ }
166
+ }
167
+ return dependencyGraph;
168
+ }
169
+ function resolveComponentDependencies(component, dependencyGraph, resolved = /* @__PURE__ */ new Set()) {
170
+ if (resolved.has(component)) {
171
+ return resolved;
172
+ }
173
+ resolved.add(component);
174
+ const dependencies = dependencyGraph.get(component);
175
+ if (dependencies) {
176
+ for (const dep of dependencies) {
177
+ resolveComponentDependencies(dep, dependencyGraph, resolved);
178
+ }
179
+ }
180
+ return resolved;
181
+ }
182
+ async function detectUsedComponents(dirs, prefix, componentDir, includeComponents) {
183
+ const detectedComponents = /* @__PURE__ */ new Set();
184
+ if (includeComponents && includeComponents.length > 0) {
185
+ for (const component of includeComponents) {
186
+ detectedComponents.add(component);
187
+ }
188
+ }
189
+ const componentPattern = new RegExp(`<(?:Lazy)?${prefix}([A-Z][a-zA-Z]+)|\\b(?:Lazy)?${prefix}([A-Z][a-zA-Z]+)\\b`, "g");
190
+ for (const dir of dirs) {
191
+ const appFiles = globSync(["**/*.{vue,ts,js,tsx,jsx}"], {
192
+ cwd: dir,
193
+ ignore: ["node_modules/**", ".nuxt/**", "dist/**"]
194
+ });
195
+ for (const file of appFiles) {
196
+ try {
197
+ const filePath = join(dir, file);
198
+ const content = await readFile(filePath, "utf-8");
199
+ const matches = content.matchAll(componentPattern);
200
+ for (const match of matches) {
201
+ const componentName = match[1] || match[2];
202
+ if (componentName) {
203
+ detectedComponents.add(componentName);
204
+ }
205
+ }
206
+ } catch {
207
+ }
208
+ }
209
+ }
210
+ if (detectedComponents.size === 0) {
211
+ return void 0;
212
+ }
213
+ const dependencyGraph = await buildComponentDependencyGraph(componentDir, componentPattern);
214
+ const allComponents = /* @__PURE__ */ new Set();
215
+ for (const component of detectedComponents) {
216
+ const resolved = resolveComponentDependencies(component, dependencyGraph);
217
+ for (const resolvedComponent of resolved) {
218
+ allComponents.add(resolvedComponent);
219
+ }
220
+ }
221
+ return allComponents;
222
+ }
79
223
 
80
224
  const accordion$1 = {
81
225
  slots: {
@@ -843,19 +987,25 @@ const calendar = (options) => ({
843
987
  gridBody: "grid",
844
988
  headCell: "rounded-md",
845
989
  cell: "relative text-center",
846
- cellTrigger: ["m-0.5 relative flex items-center justify-center rounded-full whitespace-nowrap focus-visible:ring-2 focus:outline-none data-disabled:text-muted data-unavailable:line-through data-unavailable:text-muted data-unavailable:pointer-events-none data-[selected]:text-inverted data-today:font-semibold data-[outside-view]:text-muted", options.theme.transitions && "transition"]
990
+ cellTrigger: ["m-0.5 relative flex items-center justify-center rounded-full whitespace-nowrap focus-visible:ring-2 focus:outline-none data-disabled:text-muted data-unavailable:line-through data-unavailable:text-muted data-unavailable:pointer-events-none data-today:font-semibold data-[outside-view]:text-muted", options.theme.transitions && "transition"]
847
991
  },
848
992
  variants: {
849
993
  color: {
850
994
  ...Object.fromEntries((options.theme.colors || []).map((color) => [color, {
851
995
  headCell: `text-${color}`,
852
- cellTrigger: `focus-visible:ring-${color} data-[selected]:bg-${color} data-today:not-data-[selected]:text-${color} data-[highlighted]:bg-${color}/20 hover:not-data-[selected]:bg-${color}/20`
996
+ cellTrigger: `focus-visible:ring-${color}`
853
997
  }])),
854
998
  neutral: {
855
999
  headCell: "text-highlighted",
856
- cellTrigger: "focus-visible:ring-inverted data-[selected]:bg-inverted data-today:not-data-[selected]:text-highlighted data-[highlighted]:bg-inverted/20 hover:not-data-[selected]:bg-inverted/10"
1000
+ cellTrigger: "focus-visible:ring-inverted"
857
1001
  }
858
1002
  },
1003
+ variant: {
1004
+ solid: "",
1005
+ outline: "",
1006
+ soft: "",
1007
+ subtle: ""
1008
+ },
859
1009
  size: {
860
1010
  xs: {
861
1011
  heading: "text-xs",
@@ -888,9 +1038,59 @@ const calendar = (options) => ({
888
1038
  }
889
1039
  }
890
1040
  },
1041
+ compoundVariants: [...(options.theme.colors || []).map((color) => ({
1042
+ color,
1043
+ variant: "solid",
1044
+ class: {
1045
+ cellTrigger: `data-[selected]:bg-${color} data-[selected]:text-inverted data-today:not-data-[selected]:text-${color} data-[highlighted]:bg-${color}/20 hover:not-data-[selected]:bg-${color}/20`
1046
+ }
1047
+ })), ...(options.theme.colors || []).map((color) => ({
1048
+ color,
1049
+ variant: "outline",
1050
+ class: {
1051
+ cellTrigger: `data-[selected]:ring data-[selected]:ring-inset data-[selected]:ring-${color}/50 data-[selected]:text-${color} data-today:not-data-[selected]:text-${color} data-[highlighted]:bg-${color}/10 hover:not-data-[selected]:bg-${color}/10`
1052
+ }
1053
+ })), ...(options.theme.colors || []).map((color) => ({
1054
+ color,
1055
+ variant: "soft",
1056
+ class: {
1057
+ cellTrigger: `data-[selected]:bg-${color}/10 data-[selected]:text-${color} data-today:not-data-[selected]:text-${color} data-[highlighted]:bg-${color}/20 hover:not-data-[selected]:bg-${color}/20`
1058
+ }
1059
+ })), ...(options.theme.colors || []).map((color) => ({
1060
+ color,
1061
+ variant: "subtle",
1062
+ class: {
1063
+ cellTrigger: `data-[selected]:bg-${color}/10 data-[selected]:text-${color} data-[selected]:ring data-[selected]:ring-inset data-[selected]:ring-${color}/25 data-today:not-data-[selected]:text-${color} data-[highlighted]:bg-${color}/20 hover:not-data-[selected]:bg-${color}/20`
1064
+ }
1065
+ })), {
1066
+ color: "neutral",
1067
+ variant: "solid",
1068
+ class: {
1069
+ cellTrigger: "data-[selected]:bg-inverted data-[selected]:text-inverted data-today:not-data-[selected]:text-highlighted data-[highlighted]:bg-inverted/20 hover:not-data-[selected]:bg-inverted/10"
1070
+ }
1071
+ }, {
1072
+ color: "neutral",
1073
+ variant: "outline",
1074
+ class: {
1075
+ cellTrigger: "data-[selected]:ring data-[selected]:ring-inset data-[selected]:ring-accented data-[selected]:text-default data-[selected]:bg-default data-today:not-data-[selected]:text-highlighted data-[highlighted]:bg-inverted/10 hover:not-data-[selected]:bg-inverted/10"
1076
+ }
1077
+ }, {
1078
+ color: "neutral",
1079
+ variant: "soft",
1080
+ class: {
1081
+ cellTrigger: "data-[selected]:bg-elevated data-[selected]:text-default data-today:not-data-[selected]:text-highlighted data-[highlighted]:bg-inverted/20 hover:not-data-[selected]:bg-inverted/10"
1082
+ }
1083
+ }, {
1084
+ color: "neutral",
1085
+ variant: "subtle",
1086
+ class: {
1087
+ cellTrigger: "data-[selected]:bg-elevated data-[selected]:text-default data-[selected]:ring data-[selected]:ring-inset data-[selected]:ring-accented data-today:not-data-[selected]:text-highlighted data-[highlighted]:bg-inverted/20 hover:not-data-[selected]:bg-inverted/10"
1088
+ }
1089
+ }],
891
1090
  defaultVariants: {
892
1091
  size: "md",
893
- color: "primary"
1092
+ color: "primary",
1093
+ variant: "solid"
894
1094
  }
895
1095
  });
896
1096
 
@@ -1012,12 +1212,12 @@ const changelogVersions = {
1012
1212
  const chatMessage = (options) => ({
1013
1213
  slots: {
1014
1214
  root: "group/message relative w-full",
1015
- container: "relative flex items-start group-data-[role=user]/message:max-w-[75%]",
1215
+ container: "relative flex items-start",
1016
1216
  leading: "inline-flex items-center justify-center min-h-6",
1017
1217
  leadingIcon: "shrink-0",
1018
1218
  leadingAvatar: "shrink-0",
1019
1219
  leadingAvatarSize: "",
1020
- content: "relative text-pretty min-w-0",
1220
+ content: "relative text-pretty min-w-0 *:first:mt-0 *:last:mb-0",
1021
1221
  actions: ["opacity-0 group-hover/message:opacity-100 absolute bottom-0 flex items-center", options.theme.transitions && "transition-opacity"]
1022
1222
  },
1023
1223
  variants: {
@@ -1043,7 +1243,7 @@ const chatMessage = (options) => ({
1043
1243
  container: "rtl:justify-end"
1044
1244
  },
1045
1245
  right: {
1046
- container: "ltr:justify-end ms-auto"
1246
+ container: "ltr:justify-end ms-auto max-w-[75%]"
1047
1247
  }
1048
1248
  },
1049
1249
  leading: {
@@ -1101,6 +1301,12 @@ const chatMessage = (options) => ({
1101
1301
  content: "px-2 py-1 rounded-lg min-h-8",
1102
1302
  leading: "mt-1"
1103
1303
  }
1304
+ }, {
1305
+ variant: "naked",
1306
+ side: "left",
1307
+ class: {
1308
+ content: "w-full"
1309
+ }
1104
1310
  }],
1105
1311
  defaultVariants: {
1106
1312
  variant: "naked"
@@ -1244,9 +1450,10 @@ const checkbox = (options) => ({
1244
1450
  },
1245
1451
  disabled: {
1246
1452
  true: {
1247
- base: "cursor-not-allowed opacity-75",
1248
- label: "cursor-not-allowed opacity-75",
1249
- description: "cursor-not-allowed opacity-75"
1453
+ root: "opacity-75",
1454
+ base: "cursor-not-allowed",
1455
+ label: "cursor-not-allowed",
1456
+ description: "cursor-not-allowed"
1250
1457
  }
1251
1458
  },
1252
1459
  checked: {
@@ -1277,7 +1484,7 @@ const checkbox = (options) => ({
1277
1484
  variant: "card",
1278
1485
  disabled: true,
1279
1486
  class: {
1280
- root: "cursor-not-allowed opacity-75"
1487
+ root: "cursor-not-allowed"
1281
1488
  }
1282
1489
  }
1283
1490
  ],
@@ -1342,6 +1549,9 @@ const checkboxGroup = (options) => ({
1342
1549
  true: {
1343
1550
  legend: "after:content-['*'] after:ms-0.5 after:text-error"
1344
1551
  }
1552
+ },
1553
+ disabled: {
1554
+ true: {}
1345
1555
  }
1346
1556
  },
1347
1557
  compoundVariants: [
@@ -1384,7 +1594,7 @@ const checkboxGroup = (options) => ({
1384
1594
  variant: "table",
1385
1595
  disabled: true,
1386
1596
  class: {
1387
- item: "cursor-not-allowed opacity-75"
1597
+ item: "cursor-not-allowed"
1388
1598
  }
1389
1599
  }
1390
1600
  ],
@@ -1466,9 +1676,9 @@ const colorPicker = {
1466
1676
  picker: "flex gap-4",
1467
1677
  selector: "rounded-md touch-none",
1468
1678
  selectorBackground: "w-full h-full relative rounded-md",
1469
- selectorThumb: "-translate-y-1/2 -translate-x-1/2 absolute size-4 ring-2 ring-(--color-white) rounded-full cursor-pointer data-[disabled]:cursor-not-allowed",
1679
+ selectorThumb: "-translate-y-1/2 -translate-x-1/2 absolute size-4 ring-2 ring-white rounded-full cursor-pointer data-[disabled]:cursor-not-allowed",
1470
1680
  track: "w-[8px] relative rounded-md touch-none",
1471
- trackThumb: "absolute transform -translate-y-1/2 -translate-x-[4px] rtl:translate-x-[4px] size-4 rounded-full ring-2 ring-(--color-white) cursor-pointer data-[disabled]:cursor-not-allowed"
1681
+ trackThumb: "absolute transform -translate-y-1/2 -translate-x-[4px] rtl:translate-x-[4px] size-4 rounded-full ring-2 ring-white cursor-pointer data-[disabled]:cursor-not-allowed"
1472
1682
  },
1473
1683
  variants: {
1474
1684
  size: {
@@ -1508,11 +1718,11 @@ const commandPalette = (options) => ({
1508
1718
  back: "p-0",
1509
1719
  content: "relative overflow-hidden flex flex-col",
1510
1720
  footer: "p-1",
1511
- viewport: "relative divide-y divide-default scroll-py-1 overflow-y-auto flex-1 focus:outline-none",
1721
+ viewport: "relative scroll-py-1 overflow-y-auto flex-1 focus:outline-none",
1512
1722
  group: "p-1 isolate",
1513
1723
  empty: "py-6 text-center text-sm text-muted",
1514
1724
  label: "p-1.5 text-xs font-semibold text-highlighted",
1515
- item: "group relative w-full flex items-center gap-1.5 p-1.5 text-sm select-none outline-none before:absolute before:z-[-1] before:inset-px before:rounded-md data-disabled:cursor-not-allowed data-disabled:opacity-75",
1725
+ item: "group relative w-full flex items-start gap-1.5 p-1.5 text-sm select-none outline-none before:absolute before:z-[-1] before:inset-px before:rounded-md data-disabled:cursor-not-allowed data-disabled:opacity-75",
1516
1726
  itemLeadingIcon: "shrink-0 size-5",
1517
1727
  itemLeadingAvatar: "shrink-0",
1518
1728
  itemLeadingAvatarSize: "2xs",
@@ -1523,12 +1733,22 @@ const commandPalette = (options) => ({
1523
1733
  itemTrailingHighlightedIcon: "shrink-0 size-5 text-dimmed hidden group-data-highlighted:inline-flex",
1524
1734
  itemTrailingKbds: "hidden lg:inline-flex items-center shrink-0 gap-0.5",
1525
1735
  itemTrailingKbdsSize: "md",
1736
+ itemWrapper: "flex-1 flex flex-col text-start min-w-0",
1526
1737
  itemLabel: "truncate space-x-1 text-dimmed",
1738
+ itemDescription: "truncate text-muted",
1527
1739
  itemLabelBase: "text-highlighted [&>mark]:text-inverted [&>mark]:bg-primary",
1528
1740
  itemLabelPrefix: "text-default",
1529
1741
  itemLabelSuffix: "text-dimmed [&>mark]:text-inverted [&>mark]:bg-primary"
1530
1742
  },
1531
1743
  variants: {
1744
+ virtualize: {
1745
+ true: {
1746
+ viewport: "p-1 isolate"
1747
+ },
1748
+ false: {
1749
+ viewport: "divide-y divide-default"
1750
+ }
1751
+ },
1532
1752
  active: {
1533
1753
  true: {
1534
1754
  item: "text-highlighted before:bg-elevated",
@@ -1558,7 +1778,7 @@ const contextMenu = (options) => ({
1558
1778
  group: "p-1 isolate",
1559
1779
  label: "w-full flex items-center font-semibold text-highlighted",
1560
1780
  separator: "-mx-1 my-1 h-px bg-border",
1561
- item: "group relative w-full flex items-center select-none outline-none before:absolute before:z-[-1] before:inset-px before:rounded-md data-disabled:cursor-not-allowed data-disabled:opacity-75",
1781
+ item: "group relative w-full flex items-start select-none outline-none before:absolute before:z-[-1] before:inset-px before:rounded-md data-disabled:cursor-not-allowed data-disabled:opacity-75",
1562
1782
  itemLeadingIcon: "shrink-0",
1563
1783
  itemLeadingAvatar: "shrink-0",
1564
1784
  itemLeadingAvatarSize: "",
@@ -1566,7 +1786,9 @@ const contextMenu = (options) => ({
1566
1786
  itemTrailingIcon: "shrink-0",
1567
1787
  itemTrailingKbds: "hidden lg:inline-flex items-center shrink-0",
1568
1788
  itemTrailingKbdsSize: "",
1789
+ itemWrapper: "flex-1 flex flex-col text-start min-w-0",
1569
1790
  itemLabel: "truncate",
1791
+ itemDescription: "truncate text-muted",
1570
1792
  itemLabelExternalIcon: "inline-block size-3 align-top text-dimmed"
1571
1793
  },
1572
1794
  variants: {
@@ -1722,7 +1944,16 @@ const dashboardSearch = {
1722
1944
  const dashboardSearchButton = {
1723
1945
  slots: {
1724
1946
  base: "",
1947
+ label: "",
1725
1948
  trailing: "hidden lg:flex items-center gap-0.5 ms-auto"
1949
+ },
1950
+ variants: {
1951
+ collapsed: {
1952
+ true: {
1953
+ label: "hidden",
1954
+ trailing: "lg:hidden"
1955
+ }
1956
+ }
1726
1957
  }
1727
1958
  };
1728
1959
 
@@ -1928,7 +2159,7 @@ const dropdownMenu = (options) => ({
1928
2159
  group: "p-1 isolate",
1929
2160
  label: "w-full flex items-center font-semibold text-highlighted",
1930
2161
  separator: "-mx-1 my-1 h-px bg-border",
1931
- item: "group relative w-full flex items-center select-none outline-none before:absolute before:z-[-1] before:inset-px before:rounded-md data-disabled:cursor-not-allowed data-disabled:opacity-75",
2162
+ item: "group relative w-full flex items-start select-none outline-none before:absolute before:z-[-1] before:inset-px before:rounded-md data-disabled:cursor-not-allowed data-disabled:opacity-75",
1932
2163
  itemLeadingIcon: "shrink-0",
1933
2164
  itemLeadingAvatar: "shrink-0",
1934
2165
  itemLeadingAvatarSize: "",
@@ -1936,7 +2167,9 @@ const dropdownMenu = (options) => ({
1936
2167
  itemTrailingIcon: "shrink-0",
1937
2168
  itemTrailingKbds: "hidden lg:inline-flex items-center shrink-0",
1938
2169
  itemTrailingKbdsSize: "",
2170
+ itemWrapper: "flex-1 flex flex-col text-start min-w-0",
1939
2171
  itemLabel: "truncate",
2172
+ itemDescription: "truncate text-muted",
1940
2173
  itemLabelExternalIcon: "inline-block size-3 align-top text-dimmed"
1941
2174
  },
1942
2175
  variants: {
@@ -2027,6 +2260,74 @@ const dropdownMenu = (options) => ({
2027
2260
  }
2028
2261
  });
2029
2262
 
2263
+ const empty = {
2264
+ slots: {
2265
+ root: "relative flex flex-col items-center justify-center gap-4 rounded-lg p-4 sm:p-6 lg:p-8 min-w-0",
2266
+ header: "flex flex-col items-center gap-2 max-w-sm text-center",
2267
+ avatar: "shrink-0 mb-2",
2268
+ title: "text-highlighted text-pretty font-medium",
2269
+ description: "text-balance text-center",
2270
+ body: "flex flex-col items-center gap-4 max-w-sm",
2271
+ actions: "flex flex-wrap justify-center gap-2 shrink-0",
2272
+ footer: "flex flex-col items-center gap-2 max-w-sm"
2273
+ },
2274
+ variants: {
2275
+ size: {
2276
+ xs: {
2277
+ avatar: "size-8 text-base",
2278
+ title: "text-sm",
2279
+ description: "text-xs"
2280
+ },
2281
+ sm: {
2282
+ avatar: "size-9 text-lg",
2283
+ title: "text-sm",
2284
+ description: "text-xs"
2285
+ },
2286
+ md: {
2287
+ avatar: "size-10 text-xl",
2288
+ title: "text-base",
2289
+ description: "text-sm"
2290
+ },
2291
+ lg: {
2292
+ avatar: "size-11 text-[22px]",
2293
+ title: "text-base",
2294
+ description: "text-sm"
2295
+ },
2296
+ xl: {
2297
+ avatar: "size-12 text-2xl",
2298
+ title: "text-lg",
2299
+ description: "text-base"
2300
+ }
2301
+ },
2302
+ variant: {
2303
+ solid: {
2304
+ root: "bg-inverted",
2305
+ title: "text-inverted",
2306
+ description: "text-dimmed"
2307
+ },
2308
+ outline: {
2309
+ root: "bg-default ring ring-default",
2310
+ description: "text-muted"
2311
+ },
2312
+ soft: {
2313
+ root: "bg-elevated/50",
2314
+ description: "text-toned"
2315
+ },
2316
+ subtle: {
2317
+ root: "bg-elevated/50 ring ring-default",
2318
+ description: "text-toned"
2319
+ },
2320
+ naked: {
2321
+ description: "text-muted"
2322
+ }
2323
+ }
2324
+ },
2325
+ defaultVariants: {
2326
+ variant: "outline",
2327
+ size: "md"
2328
+ }
2329
+ };
2330
+
2030
2331
  const error = {
2031
2332
  slots: {
2032
2333
  root: "min-h-[calc(100vh-var(--ui-header-height))] flex flex-col items-center justify-center text-center",
@@ -2487,6 +2788,67 @@ const input = (options) => ({
2487
2788
  }
2488
2789
  });
2489
2790
 
2791
+ const inputDate = (options) => {
2792
+ return defuFn({
2793
+ slots: {
2794
+ root: () => void 0,
2795
+ base: () => ["group relative inline-flex items-center rounded-md select-none", options.theme.transitions && "transition-colors"],
2796
+ segment: ["rounded text-center outline-hidden data-placeholder:text-dimmed data-[segment=literal]:text-muted data-invalid:text-error data-disabled:cursor-not-allowed data-disabled:opacity-75", options.theme.transitions && "transition-colors"],
2797
+ separatorIcon: "shrink-0 size-4 text-muted"
2798
+ },
2799
+ variants: {
2800
+ size: {
2801
+ xs: {
2802
+ base: (prev) => [prev, "gap-0.25"],
2803
+ segment: "data-[segment=day]:w-6 data-[segment=month]:w-6 data-[segment=year]:w-9"
2804
+ },
2805
+ sm: {
2806
+ base: (prev) => [prev, "gap-0.5"],
2807
+ segment: "data-[segment=day]:w-6 data-[segment=month]:w-6 data-[segment=year]:w-9"
2808
+ },
2809
+ md: {
2810
+ base: (prev) => [prev, "gap-0.5"],
2811
+ segment: "data-[segment=day]:w-7 data-[segment=month]:w-7 data-[segment=year]:w-11"
2812
+ },
2813
+ lg: {
2814
+ base: (prev) => [prev, "gap-0.75"],
2815
+ segment: "data-[segment=day]:w-7 data-[segment=month]:w-7 data-[segment=year]:w-11"
2816
+ },
2817
+ xl: {
2818
+ base: (prev) => [prev, "gap-0.75"],
2819
+ segment: "data-[segment=day]:w-8 data-[segment=month]:w-8 data-[segment=year]:w-13"
2820
+ }
2821
+ }
2822
+ },
2823
+ compoundVariants: [{
2824
+ variant: "outline",
2825
+ class: {
2826
+ segment: "focus:bg-elevated"
2827
+ }
2828
+ }, {
2829
+ variant: "soft",
2830
+ class: {
2831
+ segment: "focus:bg-accented/50 group-hover:focus:bg-accented"
2832
+ }
2833
+ }, {
2834
+ variant: "subtle",
2835
+ class: {
2836
+ segment: "focus:bg-accented"
2837
+ }
2838
+ }, {
2839
+ variant: "ghost",
2840
+ class: {
2841
+ segment: "focus:bg-elevated group-hover:focus:bg-accented"
2842
+ }
2843
+ }, {
2844
+ variant: "none",
2845
+ class: {
2846
+ segment: "focus:bg-elevated"
2847
+ }
2848
+ }]
2849
+ }, input(options));
2850
+ };
2851
+
2490
2852
  const inputMenu = (options) => {
2491
2853
  return defuFn({
2492
2854
  slots: {
@@ -2494,12 +2856,12 @@ const inputMenu = (options) => {
2494
2856
  trailing: "group absolute inset-y-0 end-0 flex items-center disabled:cursor-not-allowed disabled:opacity-75",
2495
2857
  arrow: "fill-default",
2496
2858
  content: "max-h-60 w-(--reka-combobox-trigger-width) bg-default shadow-lg rounded-md ring ring-default overflow-hidden data-[state=open]:animate-[scale-in_100ms_ease-out] data-[state=closed]:animate-[scale-out_100ms_ease-in] origin-(--reka-combobox-content-transform-origin) pointer-events-auto flex flex-col",
2497
- viewport: "relative divide-y divide-default scroll-py-1 overflow-y-auto flex-1",
2859
+ viewport: "relative scroll-py-1 overflow-y-auto flex-1",
2498
2860
  group: "p-1 isolate",
2499
2861
  empty: "text-center text-muted",
2500
2862
  label: "font-semibold text-highlighted",
2501
2863
  separator: "-mx-1 my-1 h-px bg-border",
2502
- item: ["group relative w-full flex items-center gap-1.5 p-1.5 text-sm select-none outline-none before:absolute before:z-[-1] before:inset-px before:rounded-md data-disabled:cursor-not-allowed data-disabled:opacity-75 text-default data-highlighted:not-data-disabled:text-highlighted data-highlighted:not-data-disabled:before:bg-elevated/50", options.theme.transitions && "transition-colors before:transition-colors"],
2864
+ item: ["group relative w-full flex items-start gap-1.5 p-1.5 text-sm select-none outline-none before:absolute before:z-[-1] before:inset-px before:rounded-md data-disabled:cursor-not-allowed data-disabled:opacity-75 text-default data-highlighted:not-data-disabled:text-highlighted data-highlighted:not-data-disabled:before:bg-elevated/50", options.theme.transitions && "transition-colors before:transition-colors"],
2503
2865
  itemLeadingIcon: ["shrink-0 text-dimmed group-data-highlighted:not-group-data-disabled:text-default", options.theme.transitions && "transition-colors"],
2504
2866
  itemLeadingAvatar: "shrink-0",
2505
2867
  itemLeadingAvatarSize: "",
@@ -2507,7 +2869,9 @@ const inputMenu = (options) => {
2507
2869
  itemLeadingChipSize: "",
2508
2870
  itemTrailing: "ms-auto inline-flex gap-1.5 items-center",
2509
2871
  itemTrailingIcon: "shrink-0",
2872
+ itemWrapper: "flex-1 flex flex-col min-w-0",
2510
2873
  itemLabel: "truncate",
2874
+ itemDescription: "truncate text-muted",
2511
2875
  tagsItem: "px-1.5 py-0.5 rounded-sm font-medium inline-flex items-center gap-0.5 ring ring-inset ring-accented bg-elevated text-default data-disabled:cursor-not-allowed data-disabled:opacity-75",
2512
2876
  tagsItemText: "truncate",
2513
2877
  tagsItemDelete: ["inline-flex items-center rounded-xs text-dimmed hover:text-default hover:bg-accented/75 disabled:pointer-events-none", options.theme.transitions && "transition-colors"],
@@ -2515,6 +2879,14 @@ const inputMenu = (options) => {
2515
2879
  tagsInput: "flex-1 border-0 bg-transparent placeholder:text-dimmed focus:outline-none disabled:cursor-not-allowed disabled:opacity-75"
2516
2880
  },
2517
2881
  variants: {
2882
+ virtualize: {
2883
+ true: {
2884
+ viewport: "p-1 isolate"
2885
+ },
2886
+ false: {
2887
+ viewport: "divide-y divide-default"
2888
+ }
2889
+ },
2518
2890
  multiple: {
2519
2891
  true: {
2520
2892
  root: "flex-wrap"
@@ -2652,6 +3024,12 @@ const inputNumber = (options) => {
2652
3024
  },
2653
3025
  highlight: {
2654
3026
  true: ""
3027
+ },
3028
+ increment: {
3029
+ false: ""
3030
+ },
3031
+ decrement: {
3032
+ false: ""
2655
3033
  }
2656
3034
  },
2657
3035
  compoundVariants: [...(options.theme.colors || []).map((color) => ({
@@ -2672,42 +3050,46 @@ const inputNumber = (options) => {
2672
3050
  class: "ring ring-inset ring-inverted"
2673
3051
  }, {
2674
3052
  orientation: "horizontal",
3053
+ decrement: false,
3054
+ class: "text-start"
3055
+ }, {
3056
+ decrement: true,
2675
3057
  size: "xs",
2676
- class: "px-7"
3058
+ class: "ps-7"
2677
3059
  }, {
2678
- orientation: "horizontal",
3060
+ decrement: true,
2679
3061
  size: "sm",
2680
- class: "px-8"
3062
+ class: "ps-8"
2681
3063
  }, {
2682
- orientation: "horizontal",
3064
+ decrement: true,
2683
3065
  size: "md",
2684
- class: "px-9"
3066
+ class: "ps-9"
2685
3067
  }, {
2686
- orientation: "horizontal",
3068
+ decrement: true,
2687
3069
  size: "lg",
2688
- class: "px-10"
3070
+ class: "ps-10"
2689
3071
  }, {
2690
- orientation: "horizontal",
3072
+ decrement: true,
2691
3073
  size: "xl",
2692
- class: "px-11"
3074
+ class: "ps-11"
2693
3075
  }, {
2694
- orientation: "vertical",
3076
+ increment: true,
2695
3077
  size: "xs",
2696
3078
  class: "pe-7"
2697
3079
  }, {
2698
- orientation: "vertical",
3080
+ increment: true,
2699
3081
  size: "sm",
2700
3082
  class: "pe-8"
2701
3083
  }, {
2702
- orientation: "vertical",
3084
+ increment: true,
2703
3085
  size: "md",
2704
3086
  class: "pe-9"
2705
3087
  }, {
2706
- orientation: "vertical",
3088
+ increment: true,
2707
3089
  size: "lg",
2708
3090
  class: "pe-10"
2709
3091
  }, {
2710
- orientation: "vertical",
3092
+ increment: true,
2711
3093
  size: "xl",
2712
3094
  class: "pe-11"
2713
3095
  }],
@@ -2767,8 +3149,68 @@ function replaceFocus$2(str) {
2767
3149
  return str.replace(/focus:/g, "has-focus:").replace(/focus-visible:/g, "has-focus-visible:");
2768
3150
  }
2769
3151
 
3152
+ const inputTime = (options) => {
3153
+ return defuFn({
3154
+ slots: {
3155
+ root: () => void 0,
3156
+ base: () => ["group relative inline-flex items-center rounded-md select-none", options.theme.transitions && "transition-colors"],
3157
+ segment: ["rounded text-center outline-hidden data-placeholder:text-dimmed data-[segment=literal]:text-muted data-invalid:text-error data-disabled:cursor-not-allowed data-disabled:opacity-75", options.theme.transitions && "transition-colors"]
3158
+ },
3159
+ variants: {
3160
+ size: {
3161
+ xs: {
3162
+ base: (prev) => [prev, "gap-0.25"],
3163
+ segment: "not-data-[segment=literal]:w-6"
3164
+ },
3165
+ sm: {
3166
+ base: (prev) => [prev, "gap-0.5"],
3167
+ segment: "not-data-[segment=literal]:w-6"
3168
+ },
3169
+ md: {
3170
+ base: (prev) => [prev, "gap-0.5"],
3171
+ segment: "not-data-[segment=literal]:w-7"
3172
+ },
3173
+ lg: {
3174
+ base: (prev) => [prev, "gap-0.75"],
3175
+ segment: "not-data-[segment=literal]:w-7"
3176
+ },
3177
+ xl: {
3178
+ base: (prev) => [prev, "gap-0.75"],
3179
+ segment: "not-data-[segment=literal]:w-8"
3180
+ }
3181
+ }
3182
+ },
3183
+ compoundVariants: [{
3184
+ variant: "outline",
3185
+ class: {
3186
+ segment: "focus:bg-elevated"
3187
+ }
3188
+ }, {
3189
+ variant: "soft",
3190
+ class: {
3191
+ segment: "focus:bg-accented/50 group-hover:focus:bg-accented"
3192
+ }
3193
+ }, {
3194
+ variant: "subtle",
3195
+ class: {
3196
+ segment: "focus:bg-accented"
3197
+ }
3198
+ }, {
3199
+ variant: "ghost",
3200
+ class: {
3201
+ segment: "focus:bg-elevated group-hover:focus:bg-accented"
3202
+ }
3203
+ }, {
3204
+ variant: "none",
3205
+ class: {
3206
+ segment: "focus:bg-elevated"
3207
+ }
3208
+ }]
3209
+ }, input(options));
3210
+ };
3211
+
2770
3212
  const kbd$1 = (options) => ({
2771
- base: "inline-flex items-center justify-center px-1 rounded-sm font-medium font-sans",
3213
+ base: "inline-flex items-center justify-center px-1 rounded-sm font-medium font-sans uppercase",
2772
3214
  variants: {
2773
3215
  color: {
2774
3216
  ...Object.fromEntries((options.theme.colors || []).map((color) => [color, ""])),
@@ -2907,11 +3349,11 @@ const marquee = {
2907
3349
 
2908
3350
  const modal = {
2909
3351
  slots: {
2910
- overlay: "fixed inset-0 bg-elevated/75",
2911
- content: "fixed bg-default divide-y divide-default flex flex-col focus:outline-none",
3352
+ overlay: "fixed inset-0",
3353
+ content: "bg-default divide-y divide-default flex flex-col focus:outline-none",
2912
3354
  header: "flex items-center gap-1.5 p-4 sm:px-6 min-h-16",
2913
3355
  wrapper: "",
2914
- body: "flex-1 overflow-y-auto p-4 sm:p-6",
3356
+ body: "flex-1 p-4 sm:p-6",
2915
3357
  footer: "flex items-center gap-1.5 p-4 sm:px-6",
2916
3358
  title: "text-highlighted font-semibold",
2917
3359
  description: "mt-1 text-muted text-sm",
@@ -2929,10 +3371,38 @@ const modal = {
2929
3371
  content: "inset-0"
2930
3372
  },
2931
3373
  false: {
2932
- content: "top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[calc(100vw-2rem)] max-w-lg max-h-[calc(100dvh-2rem)] sm:max-h-[calc(100dvh-4rem)] rounded-lg shadow-lg ring ring-default overflow-hidden"
3374
+ content: "w-[calc(100vw-2rem)] max-w-lg rounded-lg shadow-lg ring ring-default"
3375
+ }
3376
+ },
3377
+ overlay: {
3378
+ true: {
3379
+ overlay: "bg-elevated/75"
3380
+ }
3381
+ },
3382
+ scrollable: {
3383
+ true: {
3384
+ overlay: "overflow-y-auto",
3385
+ content: "relative"
3386
+ },
3387
+ false: {
3388
+ content: "fixed",
3389
+ body: "overflow-y-auto"
2933
3390
  }
2934
3391
  }
2935
- }
3392
+ },
3393
+ compoundVariants: [{
3394
+ scrollable: true,
3395
+ fullscreen: false,
3396
+ class: {
3397
+ overlay: "grid place-items-center p-4 sm:py-8"
3398
+ }
3399
+ }, {
3400
+ scrollable: false,
3401
+ fullscreen: false,
3402
+ class: {
3403
+ content: "top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 max-h-[calc(100dvh-2rem)] sm:max-h-[calc(100dvh-4rem)] overflow-hidden"
3404
+ }
3405
+ }]
2936
3406
  };
2937
3407
 
2938
3408
  const navigationMenu = (options) => ({
@@ -3066,6 +3536,8 @@ const navigationMenu = (options) => ({
3066
3536
  collapsed: true,
3067
3537
  class: {
3068
3538
  link: "px-1.5",
3539
+ linkLabel: "hidden",
3540
+ linkTrailing: "hidden",
3069
3541
  content: "shadow-sm rounded-sm min-h-6 p-1"
3070
3542
  }
3071
3543
  }, {
@@ -4274,8 +4746,10 @@ const radioGroup = (options) => ({
4274
4746
  },
4275
4747
  disabled: {
4276
4748
  true: {
4277
- base: "cursor-not-allowed opacity-75",
4278
- label: "cursor-not-allowed opacity-75"
4749
+ item: "opacity-75",
4750
+ base: "cursor-not-allowed",
4751
+ label: "cursor-not-allowed",
4752
+ description: "cursor-not-allowed"
4279
4753
  }
4280
4754
  },
4281
4755
  required: {
@@ -4338,7 +4812,7 @@ const radioGroup = (options) => ({
4338
4812
  variant: ["card", "table"],
4339
4813
  disabled: true,
4340
4814
  class: {
4341
- item: "cursor-not-allowed opacity-75"
4815
+ item: "cursor-not-allowed"
4342
4816
  }
4343
4817
  }
4344
4818
  ],
@@ -4365,7 +4839,7 @@ const select = (options) => {
4365
4839
  empty: "text-center text-muted",
4366
4840
  label: "font-semibold text-highlighted",
4367
4841
  separator: "-mx-1 my-1 h-px bg-border",
4368
- item: ["group relative w-full flex items-center select-none outline-none before:absolute before:z-[-1] before:inset-px before:rounded-md data-disabled:cursor-not-allowed data-disabled:opacity-75 text-default data-highlighted:not-data-disabled:text-highlighted data-highlighted:not-data-disabled:before:bg-elevated/50", options.theme.transitions && "transition-colors before:transition-colors"],
4842
+ item: ["group relative w-full flex items-start select-none outline-none before:absolute before:z-[-1] before:inset-px before:rounded-md data-disabled:cursor-not-allowed data-disabled:opacity-75 text-default data-highlighted:not-data-disabled:text-highlighted data-highlighted:not-data-disabled:before:bg-elevated/50", options.theme.transitions && "transition-colors before:transition-colors"],
4369
4843
  itemLeadingIcon: ["shrink-0 text-dimmed group-data-highlighted:not-group-data-disabled:text-default", options.theme.transitions && "transition-colors"],
4370
4844
  itemLeadingAvatar: "shrink-0",
4371
4845
  itemLeadingAvatarSize: "",
@@ -4373,7 +4847,9 @@ const select = (options) => {
4373
4847
  itemLeadingChipSize: "",
4374
4848
  itemTrailing: "ms-auto inline-flex gap-1.5 items-center",
4375
4849
  itemTrailingIcon: "shrink-0",
4376
- itemLabel: "truncate"
4850
+ itemWrapper: "flex-1 flex flex-col min-w-0",
4851
+ itemLabel: "truncate",
4852
+ itemDescription: "truncate text-muted"
4377
4853
  },
4378
4854
  variants: {
4379
4855
  ...fieldGroupVariant,
@@ -4445,8 +4921,19 @@ const selectMenu = (options) => {
4445
4921
  slots: {
4446
4922
  input: "border-b border-default",
4447
4923
  focusScope: "flex flex-col min-h-0",
4924
+ viewport: "relative scroll-py-1 overflow-y-auto flex-1",
4448
4925
  content: (content) => [content, "origin-(--reka-combobox-content-transform-origin) w-(--reka-combobox-trigger-width)"]
4449
4926
  },
4927
+ variants: {
4928
+ virtualize: {
4929
+ true: {
4930
+ viewport: "p-1 isolate"
4931
+ },
4932
+ false: {
4933
+ viewport: "divide-y divide-default"
4934
+ }
4935
+ }
4936
+ },
4450
4937
  compoundVariants: (prev) => prev.map((item) => ({
4451
4938
  ...item,
4452
4939
  class: typeof item.class === "string" ? replaceFocus(item.class) : item.class
@@ -4933,9 +5420,10 @@ const _switch = (options) => ({
4933
5420
  },
4934
5421
  disabled: {
4935
5422
  true: {
4936
- base: "cursor-not-allowed opacity-75",
4937
- label: "cursor-not-allowed opacity-75",
4938
- description: "cursor-not-allowed opacity-75"
5423
+ root: "opacity-75",
5424
+ base: "cursor-not-allowed",
5425
+ label: "cursor-not-allowed",
5426
+ description: "cursor-not-allowed"
4939
5427
  }
4940
5428
  }
4941
5429
  },
@@ -4948,10 +5436,10 @@ const _switch = (options) => ({
4948
5436
  const table$1 = (options) => ({
4949
5437
  slots: {
4950
5438
  root: "relative overflow-auto",
4951
- base: "min-w-full overflow-clip",
5439
+ base: "min-w-full",
4952
5440
  caption: "sr-only",
4953
5441
  thead: "relative",
4954
- tbody: "divide-y divide-default [&>tr]:data-[selectable=true]:hover:bg-elevated/50 [&>tr]:data-[selectable=true]:focus-visible:outline-primary",
5442
+ tbody: "[&>tr]:data-[selectable=true]:hover:bg-elevated/50 [&>tr]:data-[selectable=true]:focus-visible:outline-primary",
4955
5443
  tfoot: "relative",
4956
5444
  tr: "data-[selected=true]:bg-elevated/50",
4957
5445
  th: "px-4 py-3.5 text-sm text-highlighted text-left rtl:text-right font-semibold [&:has([role=checkbox])]:pe-0",
@@ -4961,6 +5449,12 @@ const table$1 = (options) => ({
4961
5449
  loading: "py-6 text-center"
4962
5450
  },
4963
5451
  variants: {
5452
+ virtualize: {
5453
+ false: {
5454
+ base: "overflow-clip",
5455
+ tbody: "divide-y divide-default"
5456
+ }
5457
+ },
4964
5458
  pinned: {
4965
5459
  true: {
4966
5460
  th: "sticky bg-default/75 data-[pinned=left]:left-0 data-[pinned=right]:right-0",
@@ -5512,16 +6006,21 @@ const tooltip = {
5512
6006
  const tree = (options) => ({
5513
6007
  slots: {
5514
6008
  root: "relative isolate",
5515
- item: "",
5516
- listWithChildren: "ms-4.5 border-s border-default",
6009
+ item: "w-full",
6010
+ listWithChildren: "border-s border-default",
5517
6011
  itemWithChildren: "ps-1.5 -ms-px",
5518
- link: "relative group w-full flex items-center text-sm before:absolute before:inset-y-px before:inset-x-0 before:z-[-1] before:rounded-md focus:outline-none focus-visible:outline-none focus-visible:before:ring-inset focus-visible:before:ring-2",
5519
- linkLeadingIcon: "shrink-0",
6012
+ link: "relative group w-full flex items-center text-sm select-none before:absolute before:inset-y-px before:inset-x-0 before:z-[-1] before:rounded-md focus:outline-none focus-visible:outline-none focus-visible:before:ring-inset focus-visible:before:ring-2",
6013
+ linkLeadingIcon: "shrink-0 relative",
5520
6014
  linkLabel: "truncate",
5521
6015
  linkTrailing: "ms-auto inline-flex gap-1.5 items-center",
5522
- linkTrailingIcon: "shrink-0 transform transition-transform duration-200 group-data-[expanded=true]:rotate-180"
6016
+ linkTrailingIcon: "shrink-0 transform transition-transform duration-200 group-data-expanded:rotate-180"
5523
6017
  },
5524
6018
  variants: {
6019
+ virtualize: {
6020
+ true: {
6021
+ root: "overflow-y-auto"
6022
+ }
6023
+ },
5525
6024
  color: {
5526
6025
  ...Object.fromEntries((options.theme.colors || []).map((color) => [color, {
5527
6026
  link: `focus-visible:before:ring-${color}`
@@ -5532,26 +6031,31 @@ const tree = (options) => ({
5532
6031
  },
5533
6032
  size: {
5534
6033
  xs: {
6034
+ listWithChildren: "ms-4",
5535
6035
  link: "px-2 py-1 text-xs gap-1",
5536
6036
  linkLeadingIcon: "size-4",
5537
6037
  linkTrailingIcon: "size-4"
5538
6038
  },
5539
6039
  sm: {
6040
+ listWithChildren: "ms-4.5",
5540
6041
  link: "px-2.5 py-1.5 text-xs gap-1.5",
5541
6042
  linkLeadingIcon: "size-4",
5542
6043
  linkTrailingIcon: "size-4"
5543
6044
  },
5544
6045
  md: {
6046
+ listWithChildren: "ms-5",
5545
6047
  link: "px-2.5 py-1.5 text-sm gap-1.5",
5546
6048
  linkLeadingIcon: "size-5",
5547
6049
  linkTrailingIcon: "size-5"
5548
6050
  },
5549
6051
  lg: {
6052
+ listWithChildren: "ms-5.5",
5550
6053
  link: "px-3 py-2 text-sm gap-2",
5551
6054
  linkLeadingIcon: "size-5",
5552
6055
  linkTrailingIcon: "size-5"
5553
6056
  },
5554
6057
  xl: {
6058
+ listWithChildren: "ms-6",
5555
6059
  link: "px-3 py-2 text-base gap-2",
5556
6060
  linkLeadingIcon: "size-6",
5557
6061
  linkTrailingIcon: "size-6"
@@ -5560,9 +6064,6 @@ const tree = (options) => ({
5560
6064
  selected: {
5561
6065
  true: {
5562
6066
  link: "before:bg-elevated"
5563
- },
5564
- false: {
5565
- link: ["hover:not-disabled:text-highlighted hover:not-disabled:before:bg-elevated/50", options.theme.transitions && "transition-colors before:transition-colors"]
5566
6067
  }
5567
6068
  },
5568
6069
  disabled: {
@@ -5583,6 +6084,12 @@ const tree = (options) => ({
5583
6084
  class: {
5584
6085
  link: "text-highlighted"
5585
6086
  }
6087
+ }, {
6088
+ selected: false,
6089
+ disabled: false,
6090
+ class: {
6091
+ link: ["hover:text-highlighted hover:before:bg-elevated/50", options.theme.transitions && "transition-colors before:transition-colors"]
6092
+ }
5586
6093
  }],
5587
6094
  defaultVariants: {
5588
6095
  color: "primary",
@@ -5717,6 +6224,7 @@ const theme = {
5717
6224
  dashboardToolbar: dashboardToolbar,
5718
6225
  drawer: drawer,
5719
6226
  dropdownMenu: dropdownMenu,
6227
+ empty: empty,
5720
6228
  error: error,
5721
6229
  fieldGroup: fieldGroup$1,
5722
6230
  fileUpload: fileUpload,
@@ -5726,9 +6234,11 @@ const theme = {
5726
6234
  formField: formField,
5727
6235
  header: header,
5728
6236
  input: input,
6237
+ inputDate: inputDate,
5729
6238
  inputMenu: inputMenu,
5730
6239
  inputNumber: inputNumber,
5731
6240
  inputTags: inputTags,
6241
+ inputTime: inputTime,
5732
6242
  kbd: kbd$1,
5733
6243
  link: link,
5734
6244
  main: main,
@@ -5803,7 +6313,7 @@ const blockquote = {
5803
6313
  const callout = (options) => ({
5804
6314
  slots: {
5805
6315
  base: ["group relative block px-4 py-3 rounded-md text-sm/6 my-5 last:mb-0 [&_code]:text-xs/5 [&_code]:bg-default [&_pre]:bg-default [&>div]:my-2.5 [&_ul]:my-2.5 [&_ol]:my-2.5 [&>*]:last:!mb-0 [&_ul]:ps-4.5 [&_ol]:ps-4.5 [&_li]:my-0", options.theme.transitions && "transition-colors"],
5806
- icon: ["size-4 shrink-0 align-sub me-1.5", options.theme.transitions && "transition-colors"],
6316
+ icon: ["size-4 shrink-0 align-sub me-1.5 inline-block", options.theme.transitions && "transition-colors"],
5807
6317
  externalIcon: ["size-4 align-top absolute right-2 top-2 pointer-events-none", options.theme.transitions && "transition-colors"]
5808
6318
  },
5809
6319
  variants: {
@@ -6030,7 +6540,7 @@ const codeTree = (options) => ({
6030
6540
  linkLeadingIcon: "size-4 shrink-0",
6031
6541
  linkLabel: "truncate",
6032
6542
  linkTrailing: "ms-auto inline-flex gap-1.5 items-center",
6033
- linkTrailingIcon: "size-5 transform transition-transform duration-200 shrink-0 group-data-[expanded=true]:rotate-180",
6543
+ linkTrailingIcon: "size-5 transform transition-transform duration-200 shrink-0 group-data-expanded:rotate-180",
6034
6544
  content: "overflow-hidden lg:col-span-2 flex flex-col [&>div]:my-0 [&>div]:flex-1 [&>div]:flex [&>div]:flex-col [&>div>div]:border-0 [&>div>pre]:border-b-0 [&>div>pre]:border-s-0 [&>div>pre]:border-e-0 [&>div>pre]:rounded-l-none [&>div>pre]:flex-1 [&>div]:overflow-y-auto"
6035
6545
  },
6036
6546
  variants: {
@@ -6119,7 +6629,8 @@ const img = {
6119
6629
  slots: {
6120
6630
  base: "rounded-md w-full",
6121
6631
  overlay: "fixed inset-0 bg-default/75 backdrop-blur-sm will-change-opacity",
6122
- content: "fixed inset-0 flex items-center justify-center cursor-zoom-out focus:outline-none p-4 sm:p-8"
6632
+ content: "fixed inset-0 flex items-center justify-center cursor-zoom-out focus:outline-none",
6633
+ zoomedImage: "w-full h-auto max-w-[95vw] max-h-[95vh] object-contain rounded-md"
6123
6634
  },
6124
6635
  variants: {
6125
6636
  zoom: {
@@ -6445,7 +6956,16 @@ const contentSearch = {
6445
6956
  const contentSearchButton = {
6446
6957
  slots: {
6447
6958
  base: "",
6959
+ label: "",
6448
6960
  trailing: "hidden lg:flex items-center gap-0.5 ms-auto"
6961
+ },
6962
+ variants: {
6963
+ collapsed: {
6964
+ true: {
6965
+ label: "hidden",
6966
+ trailing: "lg:hidden"
6967
+ }
6968
+ }
6449
6969
  }
6450
6970
  };
6451
6971
 
@@ -6550,10 +7070,11 @@ const themeContent = {
6550
7070
  contentToc: contentToc
6551
7071
  };
6552
7072
 
6553
- function getTemplates(options, uiConfig, nuxt) {
7073
+ function getTemplates(options, uiConfig, nuxt, resolve) {
6554
7074
  const templates = [];
6555
7075
  let hasProse = false;
6556
7076
  let hasContent = false;
7077
+ let previousDetectedComponents;
6557
7078
  function writeThemeTemplate(theme2, path) {
6558
7079
  for (const component in theme2) {
6559
7080
  templates.push({
@@ -6561,13 +7082,9 @@ function getTemplates(options, uiConfig, nuxt) {
6561
7082
  write: true,
6562
7083
  getContents: async () => {
6563
7084
  const template = theme2[component];
6564
- const result = typeof template === "function" ? template(options) : template;
6565
- if (result?.defaultVariants?.color && options.theme?.defaultVariants?.color) {
6566
- result.defaultVariants.color = options.theme.defaultVariants.color;
6567
- }
6568
- if (result?.defaultVariants?.size && options.theme?.defaultVariants?.size) {
6569
- result.defaultVariants.size = options.theme.defaultVariants.size;
6570
- }
7085
+ let result = typeof template === "function" ? template(options) : template;
7086
+ result = applyDefaultVariants(result, options.theme?.defaultVariants);
7087
+ result = applyPrefixToObject(result, options.theme?.prefix);
6571
7088
  const variants = Object.entries(result.variants || {}).filter(([_, values]) => {
6572
7089
  const keys = Object.keys(values);
6573
7090
  return keys.some((key) => key !== "true" && key !== "false");
@@ -6609,10 +7126,67 @@ function getTemplates(options, uiConfig, nuxt) {
6609
7126
  writeThemeTemplate(themeContent, "content");
6610
7127
  }
6611
7128
  writeThemeTemplate(theme);
7129
+ async function generateSources() {
7130
+ let sources = "";
7131
+ if (!!nuxt && !!resolve && options.experimental?.componentDetection) {
7132
+ const dirs = [.../* @__PURE__ */ new Set([
7133
+ nuxt.options.rootDir,
7134
+ ...nuxt.options._layers?.map((layer) => layer.config.rootDir).filter(Boolean) || []
7135
+ ])];
7136
+ const detectedComponents = await detectUsedComponents(
7137
+ dirs,
7138
+ options.prefix,
7139
+ resolve("./runtime/components"),
7140
+ Array.isArray(options.experimental.componentDetection) ? options.experimental.componentDetection : void 0
7141
+ );
7142
+ if (detectedComponents && detectedComponents.size > 0) {
7143
+ if (previousDetectedComponents) {
7144
+ const newComponents = Array.from(detectedComponents).filter(
7145
+ (component) => !previousDetectedComponents.has(component)
7146
+ );
7147
+ if (newComponents.length > 0) {
7148
+ logger.success(`Nuxt UI detected new components: ${newComponents.join(", ")}`);
7149
+ }
7150
+ } else {
7151
+ logger.success(`Nuxt UI detected ${detectedComponents.size} components in use (including dependencies)`);
7152
+ }
7153
+ previousDetectedComponents = detectedComponents;
7154
+ const sourcesList = [];
7155
+ if (hasProse) {
7156
+ sourcesList.push('@source "./ui/prose";');
7157
+ }
7158
+ for (const component of detectedComponents) {
7159
+ const kebabComponent = kebabCase(component);
7160
+ const camelComponent = camelCase(component);
7161
+ if (hasContent && themeContent[camelComponent]) {
7162
+ sourcesList.push(`@source "./ui/content/${kebabComponent}.ts";`);
7163
+ } else if (theme[camelComponent]) {
7164
+ sourcesList.push(`@source "./ui/${kebabComponent}.ts";`);
7165
+ }
7166
+ }
7167
+ sources = sourcesList.join("\n");
7168
+ } else {
7169
+ if (!previousDetectedComponents || previousDetectedComponents.size > 0) {
7170
+ logger.info("Nuxt UI detected no components in use, including all components");
7171
+ }
7172
+ previousDetectedComponents = /* @__PURE__ */ new Set();
7173
+ }
7174
+ }
7175
+ return sources || '@source "./ui";';
7176
+ }
6612
7177
  templates.push({
6613
7178
  filename: "ui.css",
6614
7179
  write: true,
6615
- getContents: () => `@source "./ui";
7180
+ getContents: async () => {
7181
+ const sources = await generateSources();
7182
+ const prefix = options.theme?.prefix ? `${options.theme.prefix}:` : "";
7183
+ return `${sources}
7184
+
7185
+ @layer base {
7186
+ body {
7187
+ @apply ${prefix}antialiased ${prefix}text-default ${prefix}bg-default ${prefix}scheme-light ${prefix}dark:scheme-dark;
7188
+ }
7189
+ }
6616
7190
 
6617
7191
  @theme static {
6618
7192
  --color-old-neutral-50: ${colors.neutral[50]};
@@ -6677,22 +7251,17 @@ function getTemplates(options, uiConfig, nuxt) {
6677
7251
  --fill-default: var(--ui-border);
6678
7252
  --fill-inverted: var(--ui-border-inverted);
6679
7253
  }
6680
- `
7254
+ `;
7255
+ }
6681
7256
  });
6682
7257
  templates.push({
6683
7258
  filename: "ui/index.ts",
6684
7259
  write: true,
6685
- getContents: () => {
6686
- let contents = Object.keys(theme).map((component) => `export { default as ${component} } from './${kebabCase(component)}'`).join("\n");
6687
- if (hasContent) {
6688
- contents += "\n";
6689
- contents += Object.keys(themeContent).map((component) => `export { default as ${component} } from './content/${kebabCase(component)}'`).join("\n");
6690
- }
6691
- if (hasProse) contents += `
6692
- export * as prose from './prose'
6693
- `;
6694
- return contents;
6695
- }
7260
+ getContents: () => [
7261
+ ...Object.keys(theme).map((component) => `export { default as ${component} } from './${kebabCase(component)}'`),
7262
+ ...hasContent ? Object.keys(themeContent).map((component) => `export { default as ${component} } from './content/${kebabCase(component)}'`) : [],
7263
+ ...hasProse ? [`export * as prose from './prose'`] : []
7264
+ ].join("\n")
6696
7265
  });
6697
7266
  templates.push({
6698
7267
  filename: "types/ui.d.ts",
@@ -6715,6 +7284,7 @@ type AppConfigUI = {
6715
7284
  neutral?: NeutralColor | (string & {})
6716
7285
  }
6717
7286
  icons?: Partial<IconsConfig>
7287
+ prefix?: string
6718
7288
  tv?: typeof defaultConfig
6719
7289
  } & TVConfig<typeof ui>
6720
7290
 
@@ -6743,7 +7313,7 @@ export {}
6743
7313
  return templates;
6744
7314
  }
6745
7315
  function addTemplates(options, nuxt, resolve) {
6746
- const templates = getTemplates(options, nuxt.options.appConfig.ui, nuxt);
7316
+ const templates = getTemplates(options, nuxt.options.appConfig.ui, nuxt, resolve);
6747
7317
  for (const template of templates) {
6748
7318
  if (template.filename.endsWith(".d.ts")) {
6749
7319
  addTypeTemplate(template);
@@ -6754,6 +7324,13 @@ function addTemplates(options, nuxt, resolve) {
6754
7324
  nuxt.hook("prepare:types", ({ references }) => {
6755
7325
  references.push({ path: resolve("./runtime/types/app.config.d.ts") });
6756
7326
  });
7327
+ if (options.experimental?.componentDetection && nuxt.options.dev) {
7328
+ nuxt.hook("builder:watch", async (_, path) => {
7329
+ if (/\.(?:vue|ts|js|tsx|jsx)$/.test(path)) {
7330
+ await updateTemplates({ filter: (template) => template.filename === "ui.css" });
7331
+ }
7332
+ });
7333
+ }
6757
7334
  }
6758
7335
 
6759
- export { getDefaultUiConfig as a, addTemplates as b, defaultOptions as d, getTemplates as g, resolveColors as r };
7336
+ export { getDefaultConfig as a, addTemplates as b, defaultOptions as d, getTemplates as g, resolveColors as r };