@nuxt/ui 4.1.0 → 4.2.1

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 (406) hide show
  1. package/.nuxt/ui.css +6 -0
  2. package/cli/templates.mjs +2 -2
  3. package/dist/module.d.mts +10 -0
  4. package/dist/module.json +1 -1
  5. package/dist/module.mjs +7 -7
  6. package/dist/runtime/components/Accordion.vue +10 -9
  7. package/dist/runtime/components/Alert.vue +11 -10
  8. package/dist/runtime/components/App.d.vue.ts +1 -1
  9. package/dist/runtime/components/App.vue +2 -1
  10. package/dist/runtime/components/App.vue.d.ts +1 -1
  11. package/dist/runtime/components/AuthForm.d.vue.ts +9 -8
  12. package/dist/runtime/components/AuthForm.vue +29 -21
  13. package/dist/runtime/components/AuthForm.vue.d.ts +9 -8
  14. package/dist/runtime/components/Avatar.d.vue.ts +2 -1
  15. package/dist/runtime/components/Avatar.vue +5 -3
  16. package/dist/runtime/components/Avatar.vue.d.ts +2 -1
  17. package/dist/runtime/components/AvatarGroup.vue +3 -3
  18. package/dist/runtime/components/Badge.vue +8 -8
  19. package/dist/runtime/components/Banner.vue +11 -10
  20. package/dist/runtime/components/BlogPost.vue +19 -10
  21. package/dist/runtime/components/Breadcrumb.vue +10 -10
  22. package/dist/runtime/components/Button.vue +10 -8
  23. package/dist/runtime/components/Calendar.vue +16 -12
  24. package/dist/runtime/components/Card.vue +4 -4
  25. package/dist/runtime/components/Carousel.vue +12 -7
  26. package/dist/runtime/components/ChangelogVersion.vue +22 -14
  27. package/dist/runtime/components/ChangelogVersions.vue +4 -4
  28. package/dist/runtime/components/ChatMessage.vue +8 -8
  29. package/dist/runtime/components/ChatMessages.vue +5 -3
  30. package/dist/runtime/components/ChatPalette.vue +3 -3
  31. package/dist/runtime/components/ChatPrompt.d.vue.ts +3 -6
  32. package/dist/runtime/components/ChatPrompt.vue +23 -14
  33. package/dist/runtime/components/ChatPrompt.vue.d.ts +3 -6
  34. package/dist/runtime/components/ChatPromptSubmit.d.vue.ts +10 -10
  35. package/dist/runtime/components/ChatPromptSubmit.vue +61 -14
  36. package/dist/runtime/components/ChatPromptSubmit.vue.d.ts +10 -10
  37. package/dist/runtime/components/Checkbox.d.vue.ts +2 -1
  38. package/dist/runtime/components/Checkbox.vue +11 -10
  39. package/dist/runtime/components/Checkbox.vue.d.ts +2 -1
  40. package/dist/runtime/components/CheckboxGroup.vue +8 -5
  41. package/dist/runtime/components/Chip.vue +2 -2
  42. package/dist/runtime/components/Collapsible.vue +2 -2
  43. package/dist/runtime/components/ColorPicker.vue +7 -3
  44. package/dist/runtime/components/CommandPalette.vue +69 -44
  45. package/dist/runtime/components/ContextMenu.vue +3 -3
  46. package/dist/runtime/components/ContextMenuContent.vue +22 -20
  47. package/dist/runtime/components/DashboardNavbar.vue +8 -7
  48. package/dist/runtime/components/DashboardPanel.vue +3 -1
  49. package/dist/runtime/components/DashboardSearch.vue +5 -4
  50. package/dist/runtime/components/DashboardSearchButton.d.vue.ts +2 -3
  51. package/dist/runtime/components/DashboardSearchButton.vue +48 -10
  52. package/dist/runtime/components/DashboardSearchButton.vue.d.ts +2 -3
  53. package/dist/runtime/components/DashboardSidebar.vue +9 -6
  54. package/dist/runtime/components/DashboardSidebarCollapse.d.vue.ts +7 -4
  55. package/dist/runtime/components/DashboardSidebarCollapse.vue +51 -7
  56. package/dist/runtime/components/DashboardSidebarCollapse.vue.d.ts +7 -4
  57. package/dist/runtime/components/DashboardSidebarToggle.d.vue.ts +7 -4
  58. package/dist/runtime/components/DashboardSidebarToggle.vue +52 -7
  59. package/dist/runtime/components/DashboardSidebarToggle.vue.d.ts +7 -4
  60. package/dist/runtime/components/DashboardToolbar.vue +3 -3
  61. package/dist/runtime/components/Drawer.d.vue.ts +1 -1
  62. package/dist/runtime/components/Drawer.vue +9 -9
  63. package/dist/runtime/components/Drawer.vue.d.ts +1 -1
  64. package/dist/runtime/components/DropdownMenu.vue +4 -4
  65. package/dist/runtime/components/DropdownMenuContent.vue +22 -20
  66. package/dist/runtime/components/Empty.vue +9 -9
  67. package/dist/runtime/components/Error.d.vue.ts +1 -1
  68. package/dist/runtime/components/Error.vue +5 -5
  69. package/dist/runtime/components/Error.vue.d.ts +1 -1
  70. package/dist/runtime/components/FileUpload.d.vue.ts +8 -2
  71. package/dist/runtime/components/FileUpload.vue +37 -27
  72. package/dist/runtime/components/FileUpload.vue.d.ts +8 -2
  73. package/dist/runtime/components/Footer.vue +7 -7
  74. package/dist/runtime/components/FooterColumns.vue +11 -11
  75. package/dist/runtime/components/Form.d.vue.ts +3 -2
  76. package/dist/runtime/components/Form.vue +3 -4
  77. package/dist/runtime/components/Form.vue.d.ts +3 -2
  78. package/dist/runtime/components/FormField.vue +8 -8
  79. package/dist/runtime/components/Header.vue +9 -8
  80. package/dist/runtime/components/Icon.d.vue.ts +1 -1
  81. package/dist/runtime/components/Icon.vue +1 -1
  82. package/dist/runtime/components/Icon.vue.d.ts +1 -1
  83. package/dist/runtime/components/Input.d.vue.ts +6 -6
  84. package/dist/runtime/components/Input.vue +13 -12
  85. package/dist/runtime/components/Input.vue.d.ts +6 -6
  86. package/dist/runtime/components/InputDate.d.vue.ts +89 -0
  87. package/dist/runtime/components/InputDate.vue +161 -0
  88. package/dist/runtime/components/InputDate.vue.d.ts +89 -0
  89. package/dist/runtime/components/InputMenu.d.vue.ts +6 -127
  90. package/dist/runtime/components/InputMenu.vue +56 -48
  91. package/dist/runtime/components/InputMenu.vue.d.ts +6 -127
  92. package/dist/runtime/components/InputNumber.d.vue.ts +24 -127
  93. package/dist/runtime/components/InputNumber.vue +10 -11
  94. package/dist/runtime/components/InputNumber.vue.d.ts +24 -127
  95. package/dist/runtime/components/InputTags.d.vue.ts +5 -108
  96. package/dist/runtime/components/InputTags.vue +24 -20
  97. package/dist/runtime/components/InputTags.vue.d.ts +5 -108
  98. package/dist/runtime/components/InputTime.d.vue.ts +72 -0
  99. package/dist/runtime/components/InputTime.vue +137 -0
  100. package/dist/runtime/components/InputTime.vue.d.ts +72 -0
  101. package/dist/runtime/components/Link.d.vue.ts +8 -3
  102. package/dist/runtime/components/Link.vue +1 -0
  103. package/dist/runtime/components/Link.vue.d.ts +8 -3
  104. package/dist/runtime/components/Marquee.d.vue.ts +1 -1
  105. package/dist/runtime/components/Marquee.vue +2 -6
  106. package/dist/runtime/components/Marquee.vue.d.ts +1 -1
  107. package/dist/runtime/components/Modal.d.vue.ts +7 -2
  108. package/dist/runtime/components/Modal.vue +53 -17
  109. package/dist/runtime/components/Modal.vue.d.ts +7 -2
  110. package/dist/runtime/components/NavigationMenu.d.vue.ts +44 -9
  111. package/dist/runtime/components/NavigationMenu.vue +75 -45
  112. package/dist/runtime/components/NavigationMenu.vue.d.ts +44 -9
  113. package/dist/runtime/components/Page.vue +4 -4
  114. package/dist/runtime/components/PageAnchors.vue +8 -8
  115. package/dist/runtime/components/PageAside.vue +6 -6
  116. package/dist/runtime/components/PageCTA.vue +9 -9
  117. package/dist/runtime/components/PageCard.vue +12 -11
  118. package/dist/runtime/components/PageFeature.vue +7 -7
  119. package/dist/runtime/components/PageHeader.vue +7 -7
  120. package/dist/runtime/components/PageHero.vue +10 -10
  121. package/dist/runtime/components/PageLinks.vue +8 -8
  122. package/dist/runtime/components/PageLogos.vue +6 -3
  123. package/dist/runtime/components/PageSection.vue +14 -14
  124. package/dist/runtime/components/Pagination.d.vue.ts +2 -2
  125. package/dist/runtime/components/Pagination.vue +13 -13
  126. package/dist/runtime/components/Pagination.vue.d.ts +2 -2
  127. package/dist/runtime/components/PinInput.d.vue.ts +2 -2
  128. package/dist/runtime/components/PinInput.vue +2 -0
  129. package/dist/runtime/components/PinInput.vue.d.ts +2 -2
  130. package/dist/runtime/components/Popover.vue +2 -2
  131. package/dist/runtime/components/PricingPlan.vue +28 -21
  132. package/dist/runtime/components/PricingTable.vue +35 -31
  133. package/dist/runtime/components/Progress.d.vue.ts +1 -1
  134. package/dist/runtime/components/Progress.vue +6 -6
  135. package/dist/runtime/components/Progress.vue.d.ts +1 -1
  136. package/dist/runtime/components/RadioGroup.d.vue.ts +5 -5
  137. package/dist/runtime/components/RadioGroup.vue +13 -11
  138. package/dist/runtime/components/RadioGroup.vue.d.ts +5 -5
  139. package/dist/runtime/components/Select.d.vue.ts +5 -106
  140. package/dist/runtime/components/Select.vue +31 -28
  141. package/dist/runtime/components/Select.vue.d.ts +5 -106
  142. package/dist/runtime/components/SelectMenu.d.vue.ts +6 -105
  143. package/dist/runtime/components/SelectMenu.vue +59 -45
  144. package/dist/runtime/components/SelectMenu.vue.d.ts +6 -105
  145. package/dist/runtime/components/Separator.vue +8 -8
  146. package/dist/runtime/components/Slideover.d.vue.ts +2 -2
  147. package/dist/runtime/components/Slideover.vue +10 -8
  148. package/dist/runtime/components/Slideover.vue.d.ts +2 -2
  149. package/dist/runtime/components/Slider.vue +5 -4
  150. package/dist/runtime/components/Stepper.vue +12 -10
  151. package/dist/runtime/components/Switch.d.vue.ts +2 -1
  152. package/dist/runtime/components/Switch.vue +13 -12
  153. package/dist/runtime/components/Switch.vue.d.ts +2 -1
  154. package/dist/runtime/components/Table.d.vue.ts +7 -6
  155. package/dist/runtime/components/Table.vue +37 -18
  156. package/dist/runtime/components/Table.vue.d.ts +7 -6
  157. package/dist/runtime/components/Tabs.vue +10 -7
  158. package/dist/runtime/components/Textarea.d.vue.ts +6 -5
  159. package/dist/runtime/components/Textarea.vue +13 -12
  160. package/dist/runtime/components/Textarea.vue.d.ts +6 -5
  161. package/dist/runtime/components/Timeline.vue +16 -7
  162. package/dist/runtime/components/Toast.vue +17 -14
  163. package/dist/runtime/components/Toaster.d.vue.ts +1 -1
  164. package/dist/runtime/components/Toaster.vue +2 -0
  165. package/dist/runtime/components/Toaster.vue.d.ts +1 -1
  166. package/dist/runtime/components/Tooltip.vue +4 -4
  167. package/dist/runtime/components/Tree.d.vue.ts +1 -1
  168. package/dist/runtime/components/Tree.vue +21 -14
  169. package/dist/runtime/components/Tree.vue.d.ts +1 -1
  170. package/dist/runtime/components/User.vue +13 -6
  171. package/dist/runtime/components/color-mode/ColorModeAvatar.d.vue.ts +3 -3
  172. package/dist/runtime/components/color-mode/ColorModeAvatar.vue +16 -4
  173. package/dist/runtime/components/color-mode/ColorModeAvatar.vue.d.ts +3 -3
  174. package/dist/runtime/components/color-mode/ColorModeButton.d.vue.ts +6 -13
  175. package/dist/runtime/components/color-mode/ColorModeButton.vue +60 -18
  176. package/dist/runtime/components/color-mode/ColorModeButton.vue.d.ts +6 -13
  177. package/dist/runtime/components/color-mode/ColorModeImage.d.vue.ts +4 -3
  178. package/dist/runtime/components/color-mode/ColorModeImage.vue +4 -0
  179. package/dist/runtime/components/color-mode/ColorModeImage.vue.d.ts +4 -3
  180. package/dist/runtime/components/color-mode/ColorModeSelect.d.vue.ts +5 -3
  181. package/dist/runtime/components/color-mode/ColorModeSelect.vue +45 -5
  182. package/dist/runtime/components/color-mode/ColorModeSelect.vue.d.ts +5 -3
  183. package/dist/runtime/components/color-mode/ColorModeSwitch.d.vue.ts +2 -2
  184. package/dist/runtime/components/color-mode/ColorModeSwitch.vue +29 -5
  185. package/dist/runtime/components/color-mode/ColorModeSwitch.vue.d.ts +2 -2
  186. package/dist/runtime/components/content/ContentNavigation.vue +14 -13
  187. package/dist/runtime/components/content/ContentSearch.vue +63 -68
  188. package/dist/runtime/components/content/ContentSearchButton.d.vue.ts +2 -3
  189. package/dist/runtime/components/content/ContentSearchButton.vue +48 -10
  190. package/dist/runtime/components/content/ContentSearchButton.vue.d.ts +2 -3
  191. package/dist/runtime/components/content/ContentSurround.vue +8 -8
  192. package/dist/runtime/components/content/ContentToc.vue +16 -16
  193. package/dist/runtime/components/locale/LocaleSelect.d.vue.ts +10 -6
  194. package/dist/runtime/components/locale/LocaleSelect.vue +54 -6
  195. package/dist/runtime/components/locale/LocaleSelect.vue.d.ts +10 -6
  196. package/dist/runtime/components/prose/Callout.vue +1 -1
  197. package/dist/runtime/components/prose/Card.vue +1 -1
  198. package/dist/runtime/components/prose/CodeCollapse.vue +1 -1
  199. package/dist/runtime/components/prose/CodeIcon.vue +1 -1
  200. package/dist/runtime/components/prose/Collapsible.vue +1 -1
  201. package/dist/runtime/components/prose/Pre.vue +1 -1
  202. package/dist/runtime/composables/index.d.ts +8 -0
  203. package/dist/runtime/composables/index.js +8 -0
  204. package/dist/runtime/composables/useAvatarGroup.d.ts +1 -1
  205. package/dist/runtime/composables/useComponentIcons.d.ts +2 -2
  206. package/dist/runtime/composables/useContentSearch.d.ts +5 -0
  207. package/dist/runtime/composables/useContentSearch.js +31 -1
  208. package/dist/runtime/composables/useFieldGroup.d.ts +1 -1
  209. package/dist/runtime/composables/useFileUpload.d.ts +2 -1
  210. package/dist/runtime/composables/useFileUpload.js +13 -4
  211. package/dist/runtime/composables/useFormField.d.ts +1 -1
  212. package/dist/runtime/index.css +1 -1
  213. package/dist/runtime/inertia/components/Link.d.vue.ts +21 -11
  214. package/dist/runtime/inertia/components/Link.vue +30 -10
  215. package/dist/runtime/inertia/components/Link.vue.d.ts +21 -11
  216. package/dist/runtime/inertia/components/LinkBase.d.vue.ts +1 -0
  217. package/dist/runtime/inertia/components/LinkBase.vue +5 -2
  218. package/dist/runtime/inertia/components/LinkBase.vue.d.ts +1 -0
  219. package/dist/runtime/inertia/stubs.js +1 -1
  220. package/dist/runtime/keyframes.css +1 -1
  221. package/dist/runtime/locale/gl.d.ts +3 -0
  222. package/dist/runtime/locale/gl.js +129 -0
  223. package/dist/runtime/locale/index.d.ts +2 -0
  224. package/dist/runtime/locale/index.js +2 -0
  225. package/dist/runtime/locale/sq.d.ts +3 -0
  226. package/dist/runtime/locale/sq.js +129 -0
  227. package/dist/runtime/plugins/colors.js +8 -6
  228. package/dist/runtime/types/html.d.ts +8 -0
  229. package/dist/runtime/types/html.js +0 -0
  230. package/dist/runtime/types/index.d.ts +5 -0
  231. package/dist/runtime/types/index.js +5 -0
  232. package/dist/runtime/types/input.d.ts +5 -5
  233. package/dist/runtime/types/utils.d.ts +2 -0
  234. package/dist/runtime/utils/content.d.ts +2 -2
  235. package/dist/runtime/utils/link.d.ts +1 -0
  236. package/dist/runtime/utils/link.js +40 -24
  237. package/dist/runtime/utils/virtualizer.d.ts +6 -0
  238. package/dist/runtime/utils/virtualizer.js +30 -0
  239. package/dist/runtime/vue/components/Icon.vue +1 -1
  240. package/dist/runtime/vue/components/Link.d.vue.ts +8 -35
  241. package/dist/runtime/vue/components/Link.vue +36 -18
  242. package/dist/runtime/vue/components/Link.vue.d.ts +8 -35
  243. package/dist/runtime/vue/components/color-mode/ColorModeSelect.d.vue.ts +5 -3
  244. package/dist/runtime/vue/components/color-mode/ColorModeSelect.vue +44 -3
  245. package/dist/runtime/vue/components/color-mode/ColorModeSelect.vue.d.ts +5 -3
  246. package/dist/runtime/vue/components/color-mode/ColorModeSwitch.d.vue.ts +1 -1
  247. package/dist/runtime/vue/components/color-mode/ColorModeSwitch.vue +24 -3
  248. package/dist/runtime/vue/components/color-mode/ColorModeSwitch.vue.d.ts +1 -1
  249. package/dist/runtime/vue/stubs.d.ts +1 -1
  250. package/dist/runtime/vue/stubs.js +1 -1
  251. package/dist/shared/{ui.Cmctwxv6.mjs → ui.B77q-Dvh.mjs} +397 -153
  252. package/dist/unplugin.d.mts +1 -0
  253. package/dist/unplugin.mjs +31 -3
  254. package/dist/vite.mjs +5 -3
  255. package/package.json +39 -30
  256. package/.nuxt/ui/accordion.ts +0 -20
  257. package/.nuxt/ui/alert.ts +0 -264
  258. package/.nuxt/ui/auth-form.ts +0 -20
  259. package/.nuxt/ui/avatar-group.ts +0 -52
  260. package/.nuxt/ui/avatar.ts +0 -54
  261. package/.nuxt/ui/badge.ts +0 -263
  262. package/.nuxt/ui/banner.ts +0 -108
  263. package/.nuxt/ui/blog-post.ts +0 -142
  264. package/.nuxt/ui/blog-posts.ts +0 -9
  265. package/.nuxt/ui/breadcrumb.ts +0 -45
  266. package/.nuxt/ui/button.ts +0 -378
  267. package/.nuxt/ui/calendar.ts +0 -315
  268. package/.nuxt/ui/card.ts +0 -34
  269. package/.nuxt/ui/carousel.ts +0 -38
  270. package/.nuxt/ui/changelog-version.ts +0 -41
  271. package/.nuxt/ui/changelog-versions.ts +0 -8
  272. package/.nuxt/ui/chat-message.ts +0 -136
  273. package/.nuxt/ui/chat-messages.ts +0 -14
  274. package/.nuxt/ui/chat-palette.ts +0 -8
  275. package/.nuxt/ui/chat-prompt-submit.ts +0 -5
  276. package/.nuxt/ui/chat-prompt.ts +0 -35
  277. package/.nuxt/ui/checkbox-group.ts +0 -204
  278. package/.nuxt/ui/checkbox.ts +0 -236
  279. package/.nuxt/ui/chip.ts +0 -96
  280. package/.nuxt/ui/collapsible.ts +0 -6
  281. package/.nuxt/ui/color-picker.ts +0 -47
  282. package/.nuxt/ui/command-palette.ts +0 -62
  283. package/.nuxt/ui/container.ts +0 -3
  284. package/.nuxt/ui/content/content-navigation.ts +0 -368
  285. package/.nuxt/ui/content/content-search-button.ts +0 -6
  286. package/.nuxt/ui/content/content-search.ts +0 -13
  287. package/.nuxt/ui/content/content-surround.ts +0 -34
  288. package/.nuxt/ui/content/content-toc.ts +0 -155
  289. package/.nuxt/ui/context-menu.ts +0 -219
  290. package/.nuxt/ui/dashboard-group.ts +0 -3
  291. package/.nuxt/ui/dashboard-navbar.ts +0 -21
  292. package/.nuxt/ui/dashboard-panel.ts +0 -17
  293. package/.nuxt/ui/dashboard-resize-handle.ts +0 -3
  294. package/.nuxt/ui/dashboard-search-button.ts +0 -6
  295. package/.nuxt/ui/dashboard-search.ts +0 -13
  296. package/.nuxt/ui/dashboard-sidebar-collapse.ts +0 -9
  297. package/.nuxt/ui/dashboard-sidebar-toggle.ts +0 -9
  298. package/.nuxt/ui/dashboard-sidebar.ts +0 -37
  299. package/.nuxt/ui/dashboard-toolbar.ts +0 -7
  300. package/.nuxt/ui/drawer.ts +0 -149
  301. package/.nuxt/ui/dropdown-menu.ts +0 -220
  302. package/.nuxt/ui/empty.ts +0 -83
  303. package/.nuxt/ui/error.ts +0 -9
  304. package/.nuxt/ui/field-group.ts +0 -16
  305. package/.nuxt/ui/file-upload.ts +0 -290
  306. package/.nuxt/ui/footer-columns.ts +0 -28
  307. package/.nuxt/ui/footer.ts +0 -11
  308. package/.nuxt/ui/form-field.ts +0 -48
  309. package/.nuxt/ui/form.ts +0 -3
  310. package/.nuxt/ui/header.ts +0 -25
  311. package/.nuxt/ui/index.ts +0 -106
  312. package/.nuxt/ui/input-menu.ts +0 -460
  313. package/.nuxt/ui/input-number.ts +0 -256
  314. package/.nuxt/ui/input-tags.ts +0 -310
  315. package/.nuxt/ui/input.ts +0 -289
  316. package/.nuxt/ui/kbd.ts +0 -195
  317. package/.nuxt/ui/link.ts +0 -22
  318. package/.nuxt/ui/main.ts +0 -3
  319. package/.nuxt/ui/marquee.ts +0 -66
  320. package/.nuxt/ui/modal.ts +0 -29
  321. package/.nuxt/ui/navigation-menu.ts +0 -510
  322. package/.nuxt/ui/page-anchors.ts +0 -30
  323. package/.nuxt/ui/page-aside.ts +0 -10
  324. package/.nuxt/ui/page-body.ts +0 -3
  325. package/.nuxt/ui/page-card.ts +0 -279
  326. package/.nuxt/ui/page-columns.ts +0 -3
  327. package/.nuxt/ui/page-cta.ts +0 -70
  328. package/.nuxt/ui/page-feature.ts +0 -26
  329. package/.nuxt/ui/page-grid.ts +0 -3
  330. package/.nuxt/ui/page-header.ts +0 -18
  331. package/.nuxt/ui/page-hero.ts +0 -44
  332. package/.nuxt/ui/page-links.ts +0 -25
  333. package/.nuxt/ui/page-list.ts +0 -8
  334. package/.nuxt/ui/page-logos.ts +0 -15
  335. package/.nuxt/ui/page-section.ts +0 -84
  336. package/.nuxt/ui/page.ts +0 -32
  337. package/.nuxt/ui/pagination.ts +0 -13
  338. package/.nuxt/ui/pin-input.ts +0 -171
  339. package/.nuxt/ui/popover.ts +0 -6
  340. package/.nuxt/ui/pricing-plan.ts +0 -101
  341. package/.nuxt/ui/pricing-plans.ts +0 -22
  342. package/.nuxt/ui/pricing-table.ts +0 -51
  343. package/.nuxt/ui/progress.ts +0 -297
  344. package/.nuxt/ui/prose/a.ts +0 -6
  345. package/.nuxt/ui/prose/accordion-item.ts +0 -3
  346. package/.nuxt/ui/prose/accordion.ts +0 -6
  347. package/.nuxt/ui/prose/badge.ts +0 -3
  348. package/.nuxt/ui/prose/blockquote.ts +0 -3
  349. package/.nuxt/ui/prose/callout.ts +0 -129
  350. package/.nuxt/ui/prose/card-group.ts +0 -3
  351. package/.nuxt/ui/prose/card.ts +0 -119
  352. package/.nuxt/ui/prose/code-collapse.ts +0 -19
  353. package/.nuxt/ui/prose/code-group.ts +0 -13
  354. package/.nuxt/ui/prose/code-icon.ts +0 -66
  355. package/.nuxt/ui/prose/code-preview.ts +0 -14
  356. package/.nuxt/ui/prose/code-tree.ts +0 -28
  357. package/.nuxt/ui/prose/code.ts +0 -27
  358. package/.nuxt/ui/prose/collapsible.ts +0 -12
  359. package/.nuxt/ui/prose/em.ts +0 -3
  360. package/.nuxt/ui/prose/field-group.ts +0 -3
  361. package/.nuxt/ui/prose/field.ts +0 -11
  362. package/.nuxt/ui/prose/h1.ts +0 -6
  363. package/.nuxt/ui/prose/h2.ts +0 -14
  364. package/.nuxt/ui/prose/h3.ts +0 -14
  365. package/.nuxt/ui/prose/h4.ts +0 -6
  366. package/.nuxt/ui/prose/hr.ts +0 -3
  367. package/.nuxt/ui/prose/icon.ts +0 -3
  368. package/.nuxt/ui/prose/img.ts +0 -23
  369. package/.nuxt/ui/prose/index.ts +0 -41
  370. package/.nuxt/ui/prose/kbd.ts +0 -3
  371. package/.nuxt/ui/prose/li.ts +0 -3
  372. package/.nuxt/ui/prose/ol.ts +0 -3
  373. package/.nuxt/ui/prose/p.ts +0 -3
  374. package/.nuxt/ui/prose/pre.ts +0 -17
  375. package/.nuxt/ui/prose/steps.ts +0 -19
  376. package/.nuxt/ui/prose/strong.ts +0 -3
  377. package/.nuxt/ui/prose/table.ts +0 -6
  378. package/.nuxt/ui/prose/tabs-item.ts +0 -3
  379. package/.nuxt/ui/prose/tabs.ts +0 -5
  380. package/.nuxt/ui/prose/tbody.ts +0 -3
  381. package/.nuxt/ui/prose/td.ts +0 -3
  382. package/.nuxt/ui/prose/th.ts +0 -3
  383. package/.nuxt/ui/prose/thead.ts +0 -3
  384. package/.nuxt/ui/prose/tr.ts +0 -3
  385. package/.nuxt/ui/prose/ul.ts +0 -3
  386. package/.nuxt/ui/radio-group.ts +0 -350
  387. package/.nuxt/ui/select-menu.ts +0 -361
  388. package/.nuxt/ui/select.ts +0 -348
  389. package/.nuxt/ui/separator.ts +0 -172
  390. package/.nuxt/ui/skeleton.ts +0 -3
  391. package/.nuxt/ui/slideover.ts +0 -71
  392. package/.nuxt/ui/slider.ts +0 -171
  393. package/.nuxt/ui/stepper.ts +0 -202
  394. package/.nuxt/ui/switch.ts +0 -131
  395. package/.nuxt/ui/table.ts +0 -162
  396. package/.nuxt/ui/tabs.ts +0 -258
  397. package/.nuxt/ui/textarea.ts +0 -294
  398. package/.nuxt/ui/timeline.ts +0 -321
  399. package/.nuxt/ui/toast.ts +0 -74
  400. package/.nuxt/ui/toaster.ts +0 -91
  401. package/.nuxt/ui/tooltip.ts +0 -9
  402. package/.nuxt/ui/tree.ts +0 -168
  403. package/.nuxt/ui/user.ts +0 -101
  404. package/dist/runtime/vue/components/color-mode/ColorModeButton.d.vue.ts +0 -17
  405. package/dist/runtime/vue/components/color-mode/ColorModeButton.vue +0 -35
  406. package/dist/runtime/vue/components/color-mode/ColorModeButton.vue.d.ts +0 -17
@@ -0,0 +1,72 @@
1
+ import type { ComponentPublicInstance } from 'vue';
2
+ import type { TimeFieldRootProps, TimeFieldRootEmits } from 'reka-ui';
3
+ import type { AppConfig } from '@nuxt/schema';
4
+ import theme from '#build/ui/input-time';
5
+ import type { UseComponentIconsProps } from '../composables/useComponentIcons';
6
+ import type { ComponentConfig } from '../types/tv';
7
+ type InputTime = ComponentConfig<typeof theme, AppConfig, 'inputTime'>;
8
+ export interface InputTimeProps extends Omit<TimeFieldRootProps, 'as' | 'asChild' | 'locale' | 'dir'>, UseComponentIconsProps {
9
+ /**
10
+ * The element or component this component should render as.
11
+ * @defaultValue 'div'
12
+ */
13
+ as?: any;
14
+ /**
15
+ * @defaultValue 'primary'
16
+ */
17
+ color?: InputTime['variants']['color'];
18
+ /**
19
+ * @defaultValue 'outline'
20
+ */
21
+ variant?: InputTime['variants']['variant'];
22
+ /**
23
+ * @defaultValue 'md'
24
+ */
25
+ size?: InputTime['variants']['size'];
26
+ /** Highlight the ring color like a focus state. */
27
+ highlight?: boolean;
28
+ autofocus?: boolean;
29
+ autofocusDelay?: number;
30
+ class?: any;
31
+ ui?: InputTime['slots'];
32
+ }
33
+ export interface InputTimeEmits extends TimeFieldRootEmits {
34
+ change: [event: Event];
35
+ blur: [event: FocusEvent];
36
+ focus: [event: FocusEvent];
37
+ }
38
+ export interface InputTimeSlots {
39
+ leading(props: {
40
+ ui: InputTime['ui'];
41
+ }): any;
42
+ default(props: {
43
+ ui: InputTime['ui'];
44
+ }): any;
45
+ trailing(props: {
46
+ ui: InputTime['ui'];
47
+ }): any;
48
+ }
49
+ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<InputTimeProps, {
50
+ inputsRef: import("vue").Ref<ComponentPublicInstance[], ComponentPublicInstance[]>;
51
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
52
+ change: (event: Event) => any;
53
+ blur: (event: FocusEvent) => any;
54
+ focus: (event: FocusEvent) => any;
55
+ "update:modelValue": (date: (import("@internationalized/date").CalendarDateTime | import("@internationalized/date").ZonedDateTime | import("@internationalized/date").Time) | undefined) => any;
56
+ "update:placeholder": (date: import("@internationalized/date").CalendarDateTime | import("@internationalized/date").ZonedDateTime | import("@internationalized/date").Time) => any;
57
+ }, string, import("vue").PublicProps, Readonly<InputTimeProps> & Readonly<{
58
+ onChange?: ((event: Event) => any) | undefined;
59
+ onBlur?: ((event: FocusEvent) => any) | undefined;
60
+ onFocus?: ((event: FocusEvent) => any) | undefined;
61
+ "onUpdate:modelValue"?: ((date: (import("@internationalized/date").CalendarDateTime | import("@internationalized/date").ZonedDateTime | import("@internationalized/date").Time) | undefined) => any) | undefined;
62
+ "onUpdate:placeholder"?: ((date: import("@internationalized/date").CalendarDateTime | import("@internationalized/date").ZonedDateTime | import("@internationalized/date").Time) => any) | undefined;
63
+ }>, {
64
+ autofocusDelay: number;
65
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, InputTimeSlots>;
66
+ declare const _default: typeof __VLS_export;
67
+ export default _default;
68
+ type __VLS_WithSlots<T, S> = T & {
69
+ new (): {
70
+ $slots: S;
71
+ };
72
+ };
@@ -1,5 +1,5 @@
1
- import type { ButtonHTMLAttributes } from 'vue';
2
1
  import type { RouterLinkProps, RouteLocationRaw } from 'vue-router';
2
+ import type { ButtonHTMLAttributes, AnchorHTMLAttributes } from '../types/html';
3
3
  interface NuxtLinkProps extends Omit<RouterLinkProps, 'to'> {
4
4
  /**
5
5
  * Route Location the link should navigate to when clicked on.
@@ -44,8 +44,13 @@ interface NuxtLinkProps extends Omit<RouterLinkProps, 'to'> {
44
44
  * Escape hatch to disable `prefetch` attribute.
45
45
  */
46
46
  noPrefetch?: boolean;
47
+ /**
48
+ * An option to either add or remove trailing slashes in the `href` for this specific link.
49
+ * Overrides the global `trailingSlash` option if provided.
50
+ */
51
+ trailingSlash?: 'append' | 'remove';
47
52
  }
48
- export interface LinkProps extends NuxtLinkProps {
53
+ export interface LinkProps extends NuxtLinkProps, /** @vue-ignore */ Omit<ButtonHTMLAttributes, 'type' | 'disabled'>, /** @vue-ignore */ Omit<AnchorHTMLAttributes, 'href' | 'target' | 'rel' | 'type'> {
49
54
  /**
50
55
  * The element or component this component should render as when not a link.
51
56
  * @defaultValue 'button'
@@ -80,8 +85,8 @@ export interface LinkSlots {
80
85
  declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<LinkProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<LinkProps> & Readonly<{}>, {
81
86
  type: "reset" | "submit" | "button";
82
87
  as: any;
83
- ariaCurrentValue: "page" | "step" | "location" | "date" | "time" | "true" | "false";
84
88
  active: boolean;
89
+ ariaCurrentValue: "page" | "step" | "location" | "date" | "time" | "true" | "false";
85
90
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, LinkSlots>;
86
91
  declare const _default: typeof __VLS_export;
87
92
  export default _default;
@@ -36,6 +36,7 @@ const props = defineProps({
36
36
  prefetch: { type: Boolean, required: false },
37
37
  prefetchOn: { type: [String, Object], required: false },
38
38
  noPrefetch: { type: Boolean, required: false },
39
+ trailingSlash: { type: String, required: false },
39
40
  activeClass: { type: String, required: false },
40
41
  exactActiveClass: { type: String, required: false },
41
42
  ariaCurrentValue: { type: String, required: false, default: "page" },
@@ -1,5 +1,5 @@
1
- import type { ButtonHTMLAttributes } from 'vue';
2
1
  import type { RouterLinkProps, RouteLocationRaw } from 'vue-router';
2
+ import type { ButtonHTMLAttributes, AnchorHTMLAttributes } from '../types/html';
3
3
  interface NuxtLinkProps extends Omit<RouterLinkProps, 'to'> {
4
4
  /**
5
5
  * Route Location the link should navigate to when clicked on.
@@ -44,8 +44,13 @@ interface NuxtLinkProps extends Omit<RouterLinkProps, 'to'> {
44
44
  * Escape hatch to disable `prefetch` attribute.
45
45
  */
46
46
  noPrefetch?: boolean;
47
+ /**
48
+ * An option to either add or remove trailing slashes in the `href` for this specific link.
49
+ * Overrides the global `trailingSlash` option if provided.
50
+ */
51
+ trailingSlash?: 'append' | 'remove';
47
52
  }
48
- export interface LinkProps extends NuxtLinkProps {
53
+ export interface LinkProps extends NuxtLinkProps, /** @vue-ignore */ Omit<ButtonHTMLAttributes, 'type' | 'disabled'>, /** @vue-ignore */ Omit<AnchorHTMLAttributes, 'href' | 'target' | 'rel' | 'type'> {
49
54
  /**
50
55
  * The element or component this component should render as when not a link.
51
56
  * @defaultValue 'button'
@@ -80,8 +85,8 @@ export interface LinkSlots {
80
85
  declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<LinkProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<LinkProps> & Readonly<{}>, {
81
86
  type: "reset" | "submit" | "button";
82
87
  as: any;
83
- ariaCurrentValue: "page" | "step" | "location" | "date" | "time" | "true" | "false";
84
88
  active: boolean;
89
+ ariaCurrentValue: "page" | "step" | "location" | "date" | "time" | "true" | "false";
85
90
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, LinkSlots>;
86
91
  declare const _default: typeof __VLS_export;
87
92
  export default _default;
@@ -40,9 +40,9 @@ export interface MarqueeSlots {
40
40
  default(props?: {}): any;
41
41
  }
42
42
  declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<MarqueeProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MarqueeProps> & Readonly<{}>, {
43
+ overlay: boolean;
43
44
  repeat: number;
44
45
  orientation: Marquee["variants"]["orientation"];
45
- overlay: boolean;
46
46
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, MarqueeSlots>;
47
47
  declare const _default: typeof __VLS_export;
48
48
  export default _default;
@@ -28,13 +28,9 @@ const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.marquee || {}
28
28
  </script>
29
29
 
30
30
  <template>
31
- <Primitive :as="as" :data-orientation="orientation" :class="ui.root({ class: [props.ui?.root, props.class] })">
32
- <div v-for="i in repeat" :key="i" :class="ui.content({ class: [props.ui?.content] })">
31
+ <Primitive :as="as" :data-orientation="orientation" data-slot="root" :class="ui.root({ class: [props.ui?.root, props.class] })">
32
+ <div v-for="i in repeat" :key="i" data-slot="content" :class="ui.content({ class: [props.ui?.content] })">
33
33
  <slot />
34
34
  </div>
35
35
  </Primitive>
36
36
  </template>
37
-
38
- <style>
39
- @keyframes marquee{0%{transform:translateZ(0);will-change:transform}to{transform:translate3d(calc(-100% - var(--gap)),0,0);will-change:transform}}@keyframes marquee-rtl{0%{transform:translateZ(0);will-change:transform}to{transform:translate3d(calc(100% + var(--gap)),0,0);will-change:transform}}@keyframes marquee-vertical{0%{transform:translateZ(0);will-change:transform}to{transform:translate3d(0,calc(-100% - var(--gap)),0);will-change:transform}}@keyframes marquee-vertical-rtl{0%{transform:translate3d(0,calc(-100% - var(--gap)),0);will-change:transform}to{transform:translate3d(0,calc(-100%*var(--gap)),0);will-change:transform}}
40
- </style>
@@ -40,9 +40,9 @@ export interface MarqueeSlots {
40
40
  default(props?: {}): any;
41
41
  }
42
42
  declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<MarqueeProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MarqueeProps> & Readonly<{}>, {
43
+ overlay: boolean;
43
44
  repeat: number;
44
45
  orientation: Marquee["variants"]["orientation"];
45
- overlay: boolean;
46
46
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, MarqueeSlots>;
47
47
  declare const _default: typeof __VLS_export;
48
48
  export default _default;
@@ -15,6 +15,11 @@ export interface ModalProps extends DialogRootProps {
15
15
  * @defaultValue true
16
16
  */
17
17
  overlay?: boolean;
18
+ /**
19
+ * When `true`, enables scrollable overlay mode where content scrolls within the overlay.
20
+ * @defaultValue false
21
+ */
22
+ scrollable?: boolean;
18
23
  /**
19
24
  * Animate the modal when opening or closing.
20
25
  * @defaultValue true
@@ -89,11 +94,11 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<ModalP
89
94
  "onAfter:enter"?: (() => any) | undefined;
90
95
  "onClose:prevent"?: (() => any) | undefined;
91
96
  }>, {
97
+ overlay: boolean;
92
98
  close: boolean | Partial<ButtonProps>;
93
- modal: boolean;
94
99
  transition: boolean;
100
+ modal: boolean;
95
101
  portal: boolean | string | HTMLElement;
96
- overlay: boolean;
97
102
  dismissible: boolean;
98
103
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, ModalSlots>;
99
104
  declare const _default: typeof __VLS_export;
@@ -5,7 +5,7 @@ import theme from "#build/ui/modal";
5
5
  <script setup>
6
6
  import { computed, toRef } from "vue";
7
7
  import { DialogRoot, DialogTrigger, DialogPortal, DialogOverlay, DialogContent, DialogTitle, DialogDescription, DialogClose, VisuallyHidden, useForwardPropsEmits } from "reka-ui";
8
- import { reactivePick } from "@vueuse/core";
8
+ import { reactivePick, createReusableTemplate } from "@vueuse/core";
9
9
  import { useAppConfig } from "#imports";
10
10
  import { useLocale } from "../composables/useLocale";
11
11
  import { usePortal } from "../composables/usePortal";
@@ -16,11 +16,12 @@ const props = defineProps({
16
16
  description: { type: String, required: false },
17
17
  content: { type: Object, required: false },
18
18
  overlay: { type: Boolean, required: false, default: true },
19
+ scrollable: { type: Boolean, required: false },
19
20
  transition: { type: Boolean, required: false, default: true },
20
21
  fullscreen: { type: Boolean, required: false },
21
22
  portal: { type: [Boolean, String], required: false, skipCheck: true, default: true },
22
23
  close: { type: [Boolean, Object], required: false, default: true },
23
- closeIcon: { type: [String, Object], required: false },
24
+ closeIcon: { type: null, required: false },
24
25
  dismissible: { type: Boolean, required: false, default: true },
25
26
  class: { type: null, required: false },
26
27
  ui: { type: null, required: false },
@@ -46,24 +47,40 @@ const contentEvents = computed(() => {
46
47
  return acc;
47
48
  }, {});
48
49
  }
50
+ if (props.scrollable) {
51
+ return {
52
+ // FIXME: This is a workaround to prevent the modal from closing when clicking on the scrollbar https://reka-ui.com/docs/components/dialog#scrollable-overlay but it's not working on Mac OS.
53
+ pointerDownOutside: (e) => {
54
+ const originalEvent = e.detail.originalEvent;
55
+ const target = originalEvent.target;
56
+ if (originalEvent.offsetX > target.clientWidth || originalEvent.offsetY > target.clientHeight) {
57
+ e.preventDefault();
58
+ }
59
+ }
60
+ };
61
+ }
49
62
  return {};
50
63
  });
64
+ const [DefineContentTemplate, ReuseContentTemplate] = createReusableTemplate();
51
65
  const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.modal || {} })({
52
66
  transition: props.transition,
53
- fullscreen: props.fullscreen
67
+ fullscreen: props.fullscreen,
68
+ overlay: props.overlay,
69
+ scrollable: props.scrollable
54
70
  }));
55
71
  </script>
56
72
 
57
73
  <template>
58
74
  <DialogRoot v-slot="{ open, close }" v-bind="rootProps">
59
- <DialogTrigger v-if="!!slots.default" as-child :class="props.class">
60
- <slot :open="open" />
61
- </DialogTrigger>
62
-
63
- <DialogPortal v-bind="portalProps">
64
- <DialogOverlay v-if="overlay" :class="ui.overlay({ class: props.ui?.overlay })" />
65
-
66
- <DialogContent :class="ui.content({ class: [!slots.default && props.class, props.ui?.content] })" v-bind="contentProps" @after-enter="emits('after:enter')" @after-leave="emits('after:leave')" v-on="contentEvents">
75
+ <DefineContentTemplate>
76
+ <DialogContent
77
+ data-slot="content"
78
+ :class="ui.content({ class: [!slots.default && props.class, props.ui?.content] })"
79
+ v-bind="contentProps"
80
+ @after-enter="emits('after:enter')"
81
+ @after-leave="emits('after:leave')"
82
+ v-on="contentEvents"
83
+ >
67
84
  <VisuallyHidden v-if="!!slots.content && (title || !!slots.title || (description || !!slots.description))">
68
85
  <DialogTitle v-if="title || !!slots.title">
69
86
  <slot name="title">
@@ -79,16 +96,16 @@ const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.modal || {} }
79
96
  </VisuallyHidden>
80
97
 
81
98
  <slot name="content" :close="close">
82
- <div v-if="!!slots.header || (title || !!slots.title) || (description || !!slots.description) || (props.close || !!slots.close)" :class="ui.header({ class: props.ui?.header })">
99
+ <div v-if="!!slots.header || (title || !!slots.title) || (description || !!slots.description) || (props.close || !!slots.close)" data-slot="header" :class="ui.header({ class: props.ui?.header })">
83
100
  <slot name="header" :close="close">
84
- <div :class="ui.wrapper({ class: props.ui?.wrapper })">
85
- <DialogTitle v-if="title || !!slots.title" :class="ui.title({ class: props.ui?.title })">
101
+ <div data-slot="wrapper" :class="ui.wrapper({ class: props.ui?.wrapper })">
102
+ <DialogTitle v-if="title || !!slots.title" data-slot="title" :class="ui.title({ class: props.ui?.title })">
86
103
  <slot name="title">
87
104
  {{ title }}
88
105
  </slot>
89
106
  </DialogTitle>
90
107
 
91
- <DialogDescription v-if="description || !!slots.description" :class="ui.description({ class: props.ui?.description })">
108
+ <DialogDescription v-if="description || !!slots.description" data-slot="description" :class="ui.description({ class: props.ui?.description })">
92
109
  <slot name="description">
93
110
  {{ description }}
94
111
  </slot>
@@ -106,6 +123,7 @@ const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.modal || {} }
106
123
  variant="ghost"
107
124
  :aria-label="t('modal.close')"
108
125
  v-bind="typeof props.close === 'object' ? props.close : {}"
126
+ data-slot="close"
109
127
  :class="ui.close({ class: props.ui?.close })"
110
128
  />
111
129
  </slot>
@@ -113,15 +131,33 @@ const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.modal || {} }
113
131
  </slot>
114
132
  </div>
115
133
 
116
- <div v-if="!!slots.body" :class="ui.body({ class: props.ui?.body })">
134
+ <div v-if="!!slots.body" data-slot="body" :class="ui.body({ class: props.ui?.body })">
117
135
  <slot name="body" :close="close" />
118
136
  </div>
119
137
 
120
- <div v-if="!!slots.footer" :class="ui.footer({ class: props.ui?.footer })">
138
+ <div v-if="!!slots.footer" data-slot="footer" :class="ui.footer({ class: props.ui?.footer })">
121
139
  <slot name="footer" :close="close" />
122
140
  </div>
123
141
  </slot>
124
142
  </DialogContent>
143
+ </DefineContentTemplate>
144
+
145
+ <DialogTrigger v-if="!!slots.default" as-child :class="props.class">
146
+ <slot :open="open" />
147
+ </DialogTrigger>
148
+
149
+ <DialogPortal v-bind="portalProps">
150
+ <template v-if="scrollable">
151
+ <DialogOverlay data-slot="overlay" :class="ui.overlay({ class: props.ui?.overlay })">
152
+ <ReuseContentTemplate />
153
+ </DialogOverlay>
154
+ </template>
155
+
156
+ <template v-else>
157
+ <DialogOverlay v-if="overlay" data-slot="overlay" :class="ui.overlay({ class: props.ui?.overlay })" />
158
+
159
+ <ReuseContentTemplate />
160
+ </template>
125
161
  </DialogPortal>
126
162
  </DialogRoot>
127
163
  </template>
@@ -15,6 +15,11 @@ export interface ModalProps extends DialogRootProps {
15
15
  * @defaultValue true
16
16
  */
17
17
  overlay?: boolean;
18
+ /**
19
+ * When `true`, enables scrollable overlay mode where content scrolls within the overlay.
20
+ * @defaultValue false
21
+ */
22
+ scrollable?: boolean;
18
23
  /**
19
24
  * Animate the modal when opening or closing.
20
25
  * @defaultValue true
@@ -89,11 +94,11 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<ModalP
89
94
  "onAfter:enter"?: (() => any) | undefined;
90
95
  "onClose:prevent"?: (() => any) | undefined;
91
96
  }>, {
97
+ overlay: boolean;
92
98
  close: boolean | Partial<ButtonProps>;
93
- modal: boolean;
94
99
  transition: boolean;
100
+ modal: boolean;
95
101
  portal: boolean | string | HTMLElement;
96
- overlay: boolean;
97
102
  dismissible: boolean;
98
103
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, ModalSlots>;
99
104
  declare const _default: typeof __VLS_export;
@@ -1,4 +1,4 @@
1
- import type { NavigationMenuRootProps, NavigationMenuRootEmits, NavigationMenuContentProps, NavigationMenuContentEmits, AccordionRootProps } from 'reka-ui';
1
+ import type { NavigationMenuRootProps, NavigationMenuContentProps, NavigationMenuContentEmits, AccordionRootProps } from 'reka-ui';
2
2
  import type { AppConfig } from '@nuxt/schema';
3
3
  import theme from '#build/ui/navigation-menu';
4
4
  import type { AvatarProps, BadgeProps, IconProps, LinkProps, PopoverProps, TooltipProps } from '../types';
@@ -57,12 +57,40 @@ export interface NavigationMenuItem extends Omit<LinkProps, 'type' | 'raw' | 'cu
57
57
  ui?: Pick<NavigationMenu['slots'], 'item' | 'linkLeadingAvatarSize' | 'linkLeadingAvatar' | 'linkLeadingIcon' | 'linkLabel' | 'linkLabelExternalIcon' | 'linkTrailing' | 'linkTrailingBadgeSize' | 'linkTrailingBadge' | 'linkTrailingIcon' | 'label' | 'link' | 'content' | 'childList' | 'childLabel' | 'childItem' | 'childLink' | 'childLinkIcon' | 'childLinkWrapper' | 'childLinkLabel' | 'childLinkLabelExternalIcon' | 'childLinkDescription'>;
58
58
  [key: string]: any;
59
59
  }
60
- export interface NavigationMenuProps<T extends ArrayOrNested<NavigationMenuItem> = ArrayOrNested<NavigationMenuItem>> extends Pick<NavigationMenuRootProps, 'modelValue' | 'defaultValue' | 'delayDuration' | 'disableClickTrigger' | 'disableHoverTrigger' | 'skipDelayDuration' | 'disablePointerLeaveClose' | 'unmountOnHide'>, Pick<AccordionRootProps, 'disabled' | 'type' | 'collapsible'> {
60
+ type SingleOrMultipleType = 'single' | 'multiple';
61
+ type Orientation = NavigationMenuRootProps['orientation'];
62
+ type NavigationMenuModelValue<K extends SingleOrMultipleType = SingleOrMultipleType, O extends Orientation = Orientation> = O extends 'horizontal' ? string : K extends 'single' ? string : K extends 'multiple' ? string[] : string | string[];
63
+ export interface NavigationMenuProps<T extends ArrayOrNested<NavigationMenuItem> = ArrayOrNested<NavigationMenuItem>, K extends SingleOrMultipleType = SingleOrMultipleType, O extends Orientation = Orientation> extends Pick<NavigationMenuRootProps, 'delayDuration' | 'disableClickTrigger' | 'disableHoverTrigger' | 'skipDelayDuration' | 'disablePointerLeaveClose' | 'unmountOnHide'>, Pick<AccordionRootProps, 'disabled' | 'collapsible'> {
61
64
  /**
62
65
  * The element or component this component should render as.
63
66
  * @defaultValue 'div'
64
67
  */
65
68
  as?: any;
69
+ /**
70
+ * Determines whether a "single" or "multiple" items can be selected at a time.
71
+ *
72
+ * Only works when `orientation` is `vertical`.
73
+ * @defaultValue 'multiple'
74
+ */
75
+ type?: K;
76
+ /**
77
+ * The controlled value of the active item(s).
78
+ * - In horizontal orientation: always `string`
79
+ * - In vertical orientation with `type="single"`: `string`
80
+ * - In vertical orientation with `type="multiple"`: `string[]`
81
+ *
82
+ * Use this when you need to control the state of the items. Can be binded with `v-model`
83
+ */
84
+ modelValue?: NavigationMenuModelValue<K, O>;
85
+ /**
86
+ * The default active value of the item(s).
87
+ * - In horizontal orientation: always `string`
88
+ * - In vertical orientation with `type="single"`: `string`
89
+ * - In vertical orientation with `type="multiple"`: `string[]`
90
+ *
91
+ * Use when you do not need to control the state of the item(s).
92
+ */
93
+ defaultValue?: NavigationMenuModelValue<K, O>;
66
94
  /**
67
95
  * The icon displayed to open the menu.
68
96
  * @defaultValue appConfig.ui.icons.chevronDown
@@ -89,7 +117,7 @@ export interface NavigationMenuProps<T extends ArrayOrNested<NavigationMenuItem>
89
117
  * The orientation of the menu.
90
118
  * @defaultValue 'horizontal'
91
119
  */
92
- orientation?: NavigationMenuRootProps['orientation'];
120
+ orientation?: O;
93
121
  /**
94
122
  * Collapse the navigation menu to only show icons.
95
123
  * Only works when `orientation` is `vertical`.
@@ -135,8 +163,15 @@ export interface NavigationMenuProps<T extends ArrayOrNested<NavigationMenuItem>
135
163
  class?: any;
136
164
  ui?: NavigationMenu['slots'];
137
165
  }
138
- export interface NavigationMenuEmits extends NavigationMenuRootEmits {
139
- }
166
+ export type NavigationMenuEmits<K extends SingleOrMultipleType = SingleOrMultipleType, O extends Orientation = Orientation> = {
167
+ /**
168
+ * Event handler called when the value changes.
169
+ * - In horizontal orientation: emits `string`
170
+ * - In vertical orientation with `type="single"`: emits `string | undefined`
171
+ * - In vertical orientation with `type="multiple"`: emits `string[] | undefined`
172
+ */
173
+ 'update:modelValue': [value: NavigationMenuModelValue<K, O> | undefined];
174
+ };
140
175
  type SlotProps<T extends NavigationMenuItem> = (props: {
141
176
  item: T;
142
177
  index: number;
@@ -166,14 +201,14 @@ export type NavigationMenuSlots<A extends ArrayOrNested<NavigationMenuItem> = Ar
166
201
  active?: boolean;
167
202
  ui: NavigationMenu['ui'];
168
203
  }>;
169
- declare const __VLS_export: <T extends ArrayOrNested<NavigationMenuItem>>(__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<{
170
- props: __VLS_PrettifyLocal<NavigationMenuProps<T> & {
171
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
204
+ declare const __VLS_export: <T extends ArrayOrNested<NavigationMenuItem>, K extends SingleOrMultipleType = SingleOrMultipleType, O extends Orientation = Orientation>(__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<{
205
+ props: __VLS_PrettifyLocal<NavigationMenuProps<T, K, O> & {
206
+ "onUpdate:modelValue"?: ((value: NavigationMenuModelValue<K, O> | undefined) => any) | undefined;
172
207
  }> & import("vue").PublicProps;
173
208
  expose: (exposed: {}) => void;
174
209
  attrs: any;
175
210
  slots: NavigationMenuSlots<T, NestedItem<T>>;
176
- emit: (evt: "update:modelValue", value: string) => void;
211
+ emit: (evt: "update:modelValue", value: NavigationMenuModelValue<K, O> | undefined) => void;
177
212
  }>) => import("vue").VNode & {
178
213
  __ctx?: Awaited<typeof __VLS_setup>;
179
214
  };