@eslamdevui/ui 3.3.3 → 4.0.0-beta

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 (622) hide show
  1. package/.nuxt/ui/alert.ts +0 -5
  2. package/.nuxt/ui/badge.ts +1 -6
  3. package/.nuxt/ui/banner.ts +4 -1
  4. package/.nuxt/ui/blog-post.ts +3 -1
  5. package/.nuxt/ui/blog-posts.ts +0 -5
  6. package/.nuxt/ui/button.ts +1 -6
  7. package/.nuxt/ui/carousel.ts +0 -5
  8. package/.nuxt/ui/changelog-version.ts +1 -1
  9. package/.nuxt/ui/changelog-versions.ts +2 -2
  10. package/.nuxt/ui/chat-message.ts +1 -1
  11. package/.nuxt/ui/content/content-navigation.ts +110 -83
  12. package/.nuxt/ui/content/content-surround.ts +0 -5
  13. package/.nuxt/ui/content/content-toc.ts +12 -7
  14. package/.nuxt/ui/dashboard-navbar.ts +0 -5
  15. package/.nuxt/ui/dashboard-sidebar-collapse.ts +0 -5
  16. package/.nuxt/ui/dashboard-sidebar-toggle.ts +0 -5
  17. package/.nuxt/ui/dashboard-sidebar.ts +0 -10
  18. package/.nuxt/ui/drawer.ts +1 -1
  19. package/.nuxt/ui/{button-group.ts → field-group.ts} +0 -13
  20. package/.nuxt/ui/file-upload.ts +0 -5
  21. package/.nuxt/ui/header.ts +0 -5
  22. package/.nuxt/ui/index.ts +10 -11
  23. package/.nuxt/ui/input-menu.ts +1 -10
  24. package/.nuxt/ui/input-number.ts +1 -6
  25. package/.nuxt/ui/input-tags.ts +1 -10
  26. package/.nuxt/ui/input.ts +2 -11
  27. package/.nuxt/ui/{page-marquee.ts → marquee.ts} +1 -1
  28. package/.nuxt/ui/page-card.ts +23 -20
  29. package/.nuxt/ui/page-cta.ts +4 -6
  30. package/.nuxt/ui/page-feature.ts +0 -5
  31. package/.nuxt/ui/page-hero.ts +4 -6
  32. package/.nuxt/ui/page-section.ts +0 -4
  33. package/.nuxt/ui/pricing-plans.ts +0 -5
  34. package/.nuxt/ui/progress.ts +3 -3
  35. package/.nuxt/ui/prose/code-tree.ts +1 -1
  36. package/.nuxt/ui/prose/img.ts +20 -1
  37. package/.nuxt/ui/select-menu.ts +1 -10
  38. package/.nuxt/ui/select.ts +8 -17
  39. package/.nuxt/ui/table.ts +0 -6
  40. package/.nuxt/ui/textarea.ts +2 -11
  41. package/.nuxt/ui/toast.ts +0 -5
  42. package/.nuxt/ui/tree.ts +1 -1
  43. package/.nuxt/ui/user.ts +0 -5
  44. package/README.md +21 -12
  45. package/cli/commands/make/component.mjs +2 -15
  46. package/cli/templates.mjs +32 -48
  47. package/dist/module.d.mts +8 -8
  48. package/dist/module.json +4 -4
  49. package/dist/module.mjs +48 -60
  50. package/dist/runtime/components/Accordion.d.vue.ts +79 -0
  51. package/dist/runtime/components/Accordion.vue +4 -4
  52. package/dist/runtime/components/Accordion.vue.d.ts +8 -6
  53. package/dist/runtime/components/Alert.d.vue.ts +81 -0
  54. package/dist/runtime/components/Alert.vue +2 -2
  55. package/dist/runtime/components/Alert.vue.d.ts +5 -5
  56. package/dist/runtime/components/App.d.vue.ts +25 -0
  57. package/dist/runtime/components/App.vue +1 -1
  58. package/dist/runtime/components/App.vue.d.ts +3 -2
  59. package/dist/runtime/components/AuthForm.d.vue.ts +128 -0
  60. package/dist/runtime/components/AuthForm.vue +31 -12
  61. package/dist/runtime/components/AuthForm.vue.d.ts +63 -20
  62. package/dist/runtime/components/Avatar.d.vue.ts +41 -0
  63. package/dist/runtime/components/Avatar.vue +1 -1
  64. package/dist/runtime/components/Avatar.vue.d.ts +4 -4
  65. package/dist/runtime/components/AvatarGroup.d.vue.ts +31 -0
  66. package/dist/runtime/components/AvatarGroup.vue.d.ts +2 -2
  67. package/dist/runtime/components/Badge.d.vue.ts +43 -0
  68. package/dist/runtime/components/Badge.vue +7 -7
  69. package/dist/runtime/components/Badge.vue.d.ts +2 -2
  70. package/dist/runtime/components/Banner.d.vue.ts +72 -0
  71. package/dist/runtime/components/Banner.vue +9 -5
  72. package/dist/runtime/components/Banner.vue.d.ts +13 -5
  73. package/dist/runtime/components/BlogPost.d.vue.ts +60 -0
  74. package/dist/runtime/components/BlogPost.vue +5 -1
  75. package/dist/runtime/components/BlogPost.vue.d.ts +4 -3
  76. package/dist/runtime/components/BlogPosts.d.vue.ts +31 -0
  77. package/dist/runtime/components/BlogPosts.vue.d.ts +4 -3
  78. package/dist/runtime/components/Breadcrumb.d.vue.ts +67 -0
  79. package/dist/runtime/components/Breadcrumb.vue +2 -2
  80. package/dist/runtime/components/Breadcrumb.vue.d.ts +7 -6
  81. package/dist/runtime/components/Button.d.vue.ts +44 -0
  82. package/dist/runtime/components/Button.vue +7 -7
  83. package/dist/runtime/components/Button.vue.d.ts +2 -2
  84. package/dist/runtime/components/Calendar.d.vue.ts +112 -0
  85. package/dist/runtime/components/Calendar.vue +5 -5
  86. package/dist/runtime/components/Calendar.vue.d.ts +9 -8
  87. package/dist/runtime/components/Card.d.vue.ts +29 -0
  88. package/dist/runtime/components/Card.vue.d.ts +2 -2
  89. package/dist/runtime/components/Carousel.d.vue.ts +127 -0
  90. package/dist/runtime/components/Carousel.vue +3 -3
  91. package/dist/runtime/components/Carousel.vue.d.ts +15 -15
  92. package/dist/runtime/components/ChangelogVersion.d.vue.ts +59 -0
  93. package/dist/runtime/components/ChangelogVersion.vue +3 -2
  94. package/dist/runtime/components/ChangelogVersion.vue.d.ts +4 -3
  95. package/dist/runtime/components/ChangelogVersions.d.vue.ts +78 -0
  96. package/dist/runtime/components/ChangelogVersions.vue +7 -6
  97. package/dist/runtime/components/ChangelogVersions.vue.d.ts +15 -11
  98. package/dist/runtime/components/ChatMessage.d.vue.ts +67 -0
  99. package/dist/runtime/components/ChatMessage.vue +58 -56
  100. package/dist/runtime/components/ChatMessage.vue.d.ts +25 -84
  101. package/dist/runtime/components/ChatMessages.d.vue.ts +83 -0
  102. package/dist/runtime/components/ChatMessages.vue +20 -36
  103. package/dist/runtime/components/ChatMessages.vue.d.ts +10 -9
  104. package/dist/runtime/components/ChatPalette.d.vue.ts +24 -0
  105. package/dist/runtime/components/ChatPalette.vue.d.ts +3 -3
  106. package/dist/runtime/components/ChatPrompt.d.vue.ts +61 -0
  107. package/dist/runtime/components/ChatPrompt.vue +25 -22
  108. package/dist/runtime/components/ChatPrompt.vue.d.ts +8 -7
  109. package/dist/runtime/components/ChatPromptSubmit.d.vue.ts +100 -0
  110. package/dist/runtime/components/ChatPromptSubmit.vue +43 -38
  111. package/dist/runtime/components/ChatPromptSubmit.vue.d.ts +15 -14
  112. package/dist/runtime/components/Checkbox.d.vue.ts +74 -0
  113. package/dist/runtime/components/Checkbox.vue +2 -2
  114. package/dist/runtime/components/Checkbox.vue.d.ts +8 -7
  115. package/dist/runtime/components/CheckboxGroup.d.vue.ts +89 -0
  116. package/dist/runtime/components/CheckboxGroup.vue +9 -9
  117. package/dist/runtime/components/CheckboxGroup.vue.d.ts +23 -18
  118. package/dist/runtime/components/Chip.d.vue.ts +57 -0
  119. package/dist/runtime/components/Chip.vue.d.ts +3 -3
  120. package/dist/runtime/components/Collapsible.d.vue.ts +35 -0
  121. package/dist/runtime/components/Collapsible.vue.d.ts +2 -2
  122. package/dist/runtime/components/ColorPicker.d.vue.ts +48 -0
  123. package/dist/runtime/components/ColorPicker.vue.d.ts +3 -3
  124. package/dist/runtime/components/CommandPalette.d.vue.ts +193 -0
  125. package/dist/runtime/components/CommandPalette.vue +11 -10
  126. package/dist/runtime/components/CommandPalette.vue.d.ts +12 -11
  127. package/dist/runtime/components/Container.d.vue.ts +18 -0
  128. package/dist/runtime/components/Container.vue.d.ts +1 -1
  129. package/dist/runtime/components/ContextMenu.d.vue.ts +110 -0
  130. package/dist/runtime/components/ContextMenu.vue +6 -5
  131. package/dist/runtime/components/ContextMenu.vue.d.ts +9 -8
  132. package/dist/runtime/components/ContextMenuContent.d.vue.ts +50 -0
  133. package/dist/runtime/components/ContextMenuContent.vue +10 -8
  134. package/dist/runtime/components/ContextMenuContent.vue.d.ts +8 -7
  135. package/dist/runtime/components/DashboardGroup.d.vue.ts +24 -0
  136. package/dist/runtime/components/DashboardGroup.vue +14 -12
  137. package/dist/runtime/components/DashboardGroup.vue.d.ts +2 -5
  138. package/dist/runtime/components/DashboardNavbar.d.vue.ts +52 -0
  139. package/dist/runtime/components/DashboardNavbar.vue +21 -23
  140. package/dist/runtime/components/DashboardNavbar.vue.d.ts +7 -8
  141. package/dist/runtime/components/DashboardPanel.d.vue.ts +30 -0
  142. package/dist/runtime/components/DashboardPanel.vue +19 -13
  143. package/dist/runtime/components/DashboardPanel.vue.d.ts +5 -3
  144. package/dist/runtime/components/DashboardResizeHandle.d.vue.ts +18 -0
  145. package/dist/runtime/components/DashboardResizeHandle.vue +1 -6
  146. package/dist/runtime/components/DashboardResizeHandle.vue.d.ts +1 -5
  147. package/dist/runtime/components/DashboardSearch.d.vue.ts +91 -0
  148. package/dist/runtime/components/DashboardSearch.vue +58 -57
  149. package/dist/runtime/components/DashboardSearch.vue.d.ts +53 -10
  150. package/dist/runtime/components/DashboardSearchButton.d.vue.ts +59 -0
  151. package/dist/runtime/components/DashboardSearchButton.vue +35 -47
  152. package/dist/runtime/components/DashboardSearchButton.vue.d.ts +7 -6
  153. package/dist/runtime/components/DashboardSidebar.d.vue.ts +75 -0
  154. package/dist/runtime/components/DashboardSidebar.vue +58 -66
  155. package/dist/runtime/components/DashboardSidebar.vue.d.ts +41 -38
  156. package/dist/runtime/components/DashboardSidebarCollapse.d.vue.ts +19 -0
  157. package/dist/runtime/components/DashboardSidebarCollapse.vue +9 -19
  158. package/dist/runtime/components/DashboardSidebarCollapse.vue.d.ts +8 -4
  159. package/dist/runtime/components/DashboardSidebarToggle.d.vue.ts +19 -0
  160. package/dist/runtime/components/DashboardSidebarToggle.vue +6 -4
  161. package/dist/runtime/components/DashboardSidebarToggle.vue.d.ts +3 -6
  162. package/dist/runtime/components/DashboardToolbar.d.vue.ts +25 -0
  163. package/dist/runtime/components/DashboardToolbar.vue.d.ts +3 -3
  164. package/dist/runtime/components/Drawer.d.vue.ts +84 -0
  165. package/dist/runtime/components/Drawer.vue.d.ts +3 -2
  166. package/dist/runtime/components/DropdownMenu.d.vue.ts +120 -0
  167. package/dist/runtime/components/DropdownMenu.vue +5 -5
  168. package/dist/runtime/components/DropdownMenu.vue.d.ts +9 -8
  169. package/dist/runtime/components/DropdownMenuContent.d.vue.ts +56 -0
  170. package/dist/runtime/components/DropdownMenuContent.vue +10 -8
  171. package/dist/runtime/components/DropdownMenuContent.vue.d.ts +8 -7
  172. package/dist/runtime/components/Error.d.vue.ts +47 -0
  173. package/dist/runtime/components/Error.vue +34 -31
  174. package/dist/runtime/components/Error.vue.d.ts +5 -10
  175. package/dist/runtime/components/FieldGroup.d.vue.ts +34 -0
  176. package/dist/runtime/components/{ButtonGroup.vue → FieldGroup.vue} +4 -4
  177. package/dist/runtime/components/FieldGroup.vue.d.ts +34 -0
  178. package/dist/runtime/components/FileUpload.d.vue.ts +166 -0
  179. package/dist/runtime/components/FileUpload.vue +12 -5
  180. package/dist/runtime/components/FileUpload.vue.d.ts +10 -11
  181. package/dist/runtime/components/Footer.d.vue.ts +29 -0
  182. package/dist/runtime/components/Footer.vue +1 -0
  183. package/dist/runtime/components/Footer.vue.d.ts +3 -3
  184. package/dist/runtime/components/FooterColumns.d.vue.ts +57 -0
  185. package/dist/runtime/components/FooterColumns.vue +4 -1
  186. package/dist/runtime/components/FooterColumns.vue.d.ts +16 -11
  187. package/dist/runtime/components/Form.d.vue.ts +114 -0
  188. package/dist/runtime/components/Form.vue +145 -61
  189. package/dist/runtime/components/Form.vue.d.ts +60 -17
  190. package/dist/runtime/components/FormField.d.vue.ts +61 -0
  191. package/dist/runtime/components/FormField.vue +10 -4
  192. package/dist/runtime/components/FormField.vue.d.ts +2 -2
  193. package/dist/runtime/components/Header.d.vue.ts +68 -0
  194. package/dist/runtime/components/Header.vue +12 -8
  195. package/dist/runtime/components/Header.vue.d.ts +19 -23
  196. package/dist/runtime/components/Icon.d.vue.ts +8 -0
  197. package/dist/runtime/components/Icon.vue +3 -2
  198. package/dist/runtime/components/Icon.vue.d.ts +2 -2
  199. package/dist/runtime/components/Input.d.vue.ts +74 -0
  200. package/dist/runtime/components/Input.vue +12 -9
  201. package/dist/runtime/components/Input.vue.d.ts +12 -15
  202. package/dist/runtime/components/InputMenu.d.vue.ts +330 -0
  203. package/dist/runtime/components/InputMenu.vue +24 -19
  204. package/dist/runtime/components/InputMenu.vue.d.ts +24 -231
  205. package/dist/runtime/components/InputNumber.d.vue.ts +188 -0
  206. package/dist/runtime/components/InputNumber.vue +16 -9
  207. package/dist/runtime/components/InputNumber.vue.d.ts +15 -87
  208. package/dist/runtime/components/InputTags.d.vue.ts +186 -0
  209. package/dist/runtime/components/InputTags.vue +11 -11
  210. package/dist/runtime/components/InputTags.vue.d.ts +8 -7
  211. package/dist/runtime/components/Kbd.d.vue.ts +38 -0
  212. package/dist/runtime/components/Kbd.vue.d.ts +2 -2
  213. package/dist/runtime/components/Link.d.vue.ts +91 -0
  214. package/dist/runtime/components/Link.vue.d.ts +1 -1
  215. package/dist/runtime/components/LinkBase.d.vue.ts +25 -0
  216. package/dist/runtime/components/LinkBase.vue.d.ts +1 -1
  217. package/dist/runtime/components/Main.d.vue.ts +20 -0
  218. package/dist/runtime/components/Main.vue.d.ts +1 -1
  219. package/dist/runtime/components/Marquee.d.vue.ts +32 -0
  220. package/dist/runtime/components/{PageMarquee.vue → Marquee.vue} +4 -4
  221. package/dist/runtime/components/Marquee.vue.d.ts +32 -0
  222. package/dist/runtime/components/Modal.d.vue.ts +107 -0
  223. package/dist/runtime/components/Modal.vue +1 -1
  224. package/dist/runtime/components/Modal.vue.d.ts +6 -5
  225. package/dist/runtime/components/NavigationMenu.d.vue.ts +171 -0
  226. package/dist/runtime/components/NavigationMenu.vue +2 -2
  227. package/dist/runtime/components/NavigationMenu.vue.d.ts +9 -8
  228. package/dist/runtime/components/OverlayProvider.d.vue.ts +2 -0
  229. package/dist/runtime/components/OverlayProvider.vue.d.ts +1 -1
  230. package/dist/runtime/components/Page.d.vue.ts +25 -0
  231. package/dist/runtime/components/Page.vue.d.ts +3 -3
  232. package/dist/runtime/components/PageAnchors.d.vue.ts +47 -0
  233. package/dist/runtime/components/PageAnchors.vue +4 -1
  234. package/dist/runtime/components/PageAnchors.vue.d.ts +16 -11
  235. package/dist/runtime/components/PageAside.d.vue.ts +27 -0
  236. package/dist/runtime/components/PageAside.vue.d.ts +3 -3
  237. package/dist/runtime/components/PageBody.d.vue.ts +18 -0
  238. package/dist/runtime/components/PageBody.vue.d.ts +1 -1
  239. package/dist/runtime/components/PageCTA.d.vue.ts +56 -0
  240. package/dist/runtime/components/PageCTA.vue +31 -13
  241. package/dist/runtime/components/PageCTA.vue.d.ts +11 -4
  242. package/dist/runtime/components/PageCard.d.vue.ts +72 -0
  243. package/dist/runtime/components/PageCard.vue +4 -3
  244. package/dist/runtime/components/PageCard.vue.d.ts +5 -4
  245. package/dist/runtime/components/PageColumns.d.vue.ts +18 -0
  246. package/dist/runtime/components/PageColumns.vue.d.ts +1 -1
  247. package/dist/runtime/components/PageFeature.d.vue.ts +44 -0
  248. package/dist/runtime/components/PageFeature.vue +4 -2
  249. package/dist/runtime/components/PageFeature.vue.d.ts +5 -4
  250. package/dist/runtime/components/PageGrid.d.vue.ts +18 -0
  251. package/dist/runtime/components/PageGrid.vue.d.ts +1 -1
  252. package/dist/runtime/components/PageHeader.d.vue.ts +36 -0
  253. package/dist/runtime/components/PageHeader.vue +1 -0
  254. package/dist/runtime/components/PageHeader.vue.d.ts +4 -3
  255. package/dist/runtime/components/PageHero.d.vue.ts +53 -0
  256. package/dist/runtime/components/PageHero.vue +31 -17
  257. package/dist/runtime/components/PageHero.vue.d.ts +9 -5
  258. package/dist/runtime/components/PageLinks.d.vue.ts +49 -0
  259. package/dist/runtime/components/PageLinks.vue +4 -1
  260. package/dist/runtime/components/PageLinks.vue.d.ts +16 -11
  261. package/dist/runtime/components/PageList.d.vue.ts +21 -0
  262. package/dist/runtime/components/PageList.vue.d.ts +1 -1
  263. package/dist/runtime/components/PageLogos.d.vue.ts +33 -0
  264. package/dist/runtime/components/PageLogos.vue +5 -4
  265. package/dist/runtime/components/PageLogos.vue.d.ts +6 -5
  266. package/dist/runtime/components/PageSection.d.vue.ts +68 -0
  267. package/dist/runtime/components/PageSection.vue +49 -33
  268. package/dist/runtime/components/PageSection.vue.d.ts +12 -8
  269. package/dist/runtime/components/Pagination.d.vue.ts +118 -0
  270. package/dist/runtime/components/Pagination.vue +5 -5
  271. package/dist/runtime/components/Pagination.vue.d.ts +10 -10
  272. package/dist/runtime/components/PinInput.d.vue.ts +60 -0
  273. package/dist/runtime/components/PinInput.vue +3 -1
  274. package/dist/runtime/components/PinInput.vue.d.ts +10 -10
  275. package/dist/runtime/components/Popover.d.vue.ts +71 -0
  276. package/dist/runtime/components/Popover.vue.d.ts +3 -2
  277. package/dist/runtime/components/PricingPlan.d.vue.ts +112 -0
  278. package/dist/runtime/components/PricingPlan.vue +17 -9
  279. package/dist/runtime/components/PricingPlan.vue.d.ts +7 -4
  280. package/dist/runtime/components/PricingPlans.d.vue.ts +44 -0
  281. package/dist/runtime/components/PricingPlans.vue +2 -2
  282. package/dist/runtime/components/PricingPlans.vue.d.ts +6 -3
  283. package/dist/runtime/components/PricingTable.d.vue.ts +105 -0
  284. package/dist/runtime/components/PricingTable.vue +22 -77
  285. package/dist/runtime/components/PricingTable.vue.d.ts +15 -8
  286. package/dist/runtime/components/Progress.d.vue.ts +66 -0
  287. package/dist/runtime/components/Progress.vue +2 -3
  288. package/dist/runtime/components/Progress.vue.d.ts +2 -2
  289. package/dist/runtime/components/RadioGroup.d.vue.ts +99 -0
  290. package/dist/runtime/components/RadioGroup.vue +13 -11
  291. package/dist/runtime/components/RadioGroup.vue.d.ts +21 -16
  292. package/dist/runtime/components/Select.d.vue.ts +254 -0
  293. package/dist/runtime/components/Select.vue +28 -18
  294. package/dist/runtime/components/Select.vue.d.ts +22 -21
  295. package/dist/runtime/components/SelectMenu.d.vue.ts +303 -0
  296. package/dist/runtime/components/SelectMenu.vue +19 -14
  297. package/dist/runtime/components/SelectMenu.vue.d.ts +22 -21
  298. package/dist/runtime/components/Separator.d.vue.ts +54 -0
  299. package/dist/runtime/components/Separator.vue +1 -1
  300. package/dist/runtime/components/Separator.vue.d.ts +4 -4
  301. package/dist/runtime/components/Skeleton.d.vue.ts +17 -0
  302. package/dist/runtime/components/Skeleton.vue.d.ts +1 -1
  303. package/dist/runtime/components/Slideover.d.vue.ts +108 -0
  304. package/dist/runtime/components/Slideover.vue +1 -1
  305. package/dist/runtime/components/Slideover.vue.d.ts +6 -5
  306. package/dist/runtime/components/Slider.d.vue.ts +57 -0
  307. package/dist/runtime/components/Slider.vue +1 -1
  308. package/dist/runtime/components/Slider.vue.d.ts +7 -8
  309. package/dist/runtime/components/Stepper.d.vue.ts +87 -0
  310. package/dist/runtime/components/Stepper.vue.d.ts +11 -9
  311. package/dist/runtime/components/Switch.d.vue.ts +71 -0
  312. package/dist/runtime/components/Switch.vue +3 -3
  313. package/dist/runtime/components/Switch.vue.d.ts +9 -8
  314. package/dist/runtime/components/Table.d.vue.ts +201 -0
  315. package/dist/runtime/components/Table.vue +2 -2
  316. package/dist/runtime/components/Table.vue.d.ts +28 -28
  317. package/dist/runtime/components/Tabs.d.vue.ts +99 -0
  318. package/dist/runtime/components/Tabs.vue +17 -30
  319. package/dist/runtime/components/Tabs.vue.d.ts +6 -5
  320. package/dist/runtime/components/Textarea.d.vue.ts +74 -0
  321. package/dist/runtime/components/Textarea.vue +8 -5
  322. package/dist/runtime/components/Textarea.vue.d.ts +7 -12
  323. package/dist/runtime/components/Timeline.d.vue.ts +71 -0
  324. package/dist/runtime/components/Timeline.vue.d.ts +5 -4
  325. package/dist/runtime/components/Toast.d.vue.ts +165 -0
  326. package/dist/runtime/components/Toast.vue +2 -2
  327. package/dist/runtime/components/Toast.vue.d.ts +9 -8
  328. package/dist/runtime/components/Toaster.d.vue.ts +44 -0
  329. package/dist/runtime/components/Toaster.vue.d.ts +2 -2
  330. package/dist/runtime/components/Tooltip.d.vue.ts +57 -0
  331. package/dist/runtime/components/Tooltip.vue +2 -2
  332. package/dist/runtime/components/Tooltip.vue.d.ts +3 -2
  333. package/dist/runtime/components/Tree.d.vue.ts +112 -0
  334. package/dist/runtime/components/Tree.vue +77 -34
  335. package/dist/runtime/components/Tree.vue.d.ts +27 -28
  336. package/dist/runtime/components/User.d.vue.ts +47 -0
  337. package/dist/runtime/components/User.vue +3 -0
  338. package/dist/runtime/components/User.vue.d.ts +4 -3
  339. package/dist/runtime/components/color-mode/ColorModeAvatar.d.vue.ts +7 -0
  340. package/dist/runtime/components/color-mode/ColorModeAvatar.vue +1 -0
  341. package/dist/runtime/components/color-mode/ColorModeAvatar.vue.d.ts +2 -2
  342. package/dist/runtime/components/color-mode/ColorModeButton.d.vue.ts +23 -0
  343. package/dist/runtime/components/color-mode/ColorModeButton.vue +3 -2
  344. package/dist/runtime/components/color-mode/ColorModeButton.vue.d.ts +6 -7
  345. package/dist/runtime/components/color-mode/ColorModeImage.d.vue.ts +6 -0
  346. package/dist/runtime/components/color-mode/ColorModeImage.vue +0 -4
  347. package/dist/runtime/components/color-mode/ColorModeImage.vue.d.ts +3 -3
  348. package/dist/runtime/components/color-mode/ColorModeSelect.d.vue.ts +5 -0
  349. package/dist/runtime/components/color-mode/ColorModeSelect.vue +5 -3
  350. package/dist/runtime/components/color-mode/ColorModeSelect.vue.d.ts +3 -5
  351. package/dist/runtime/components/color-mode/ColorModeSwitch.d.vue.ts +5 -0
  352. package/dist/runtime/components/color-mode/ColorModeSwitch.vue +3 -2
  353. package/dist/runtime/components/color-mode/ColorModeSwitch.vue.d.ts +3 -5
  354. package/dist/runtime/components/content/ContentNavigation.d.vue.ts +102 -0
  355. package/dist/runtime/components/content/ContentNavigation.vue +44 -81
  356. package/dist/runtime/components/content/ContentNavigation.vue.d.ts +76 -27
  357. package/dist/runtime/components/content/ContentSearch.d.vue.ts +114 -0
  358. package/dist/runtime/components/content/ContentSearch.vue +40 -58
  359. package/dist/runtime/components/content/ContentSearch.vue.d.ts +28 -29
  360. package/dist/runtime/components/content/ContentSearchButton.d.vue.ts +59 -0
  361. package/dist/runtime/components/content/ContentSearchButton.vue +21 -35
  362. package/dist/runtime/components/content/ContentSearchButton.vue.d.ts +6 -5
  363. package/dist/runtime/components/content/ContentSurround.d.vue.ts +59 -0
  364. package/dist/runtime/components/content/ContentSurround.vue +15 -14
  365. package/dist/runtime/components/content/ContentSurround.vue.d.ts +18 -11
  366. package/dist/runtime/components/content/ContentToc.d.vue.ts +88 -0
  367. package/dist/runtime/components/content/ContentToc.vue +18 -28
  368. package/dist/runtime/components/content/ContentToc.vue.d.ts +19 -17
  369. package/dist/runtime/components/locale/LocaleSelect.d.vue.ts +15 -0
  370. package/dist/runtime/components/locale/LocaleSelect.vue +34 -5
  371. package/dist/runtime/components/locale/LocaleSelect.vue.d.ts +6 -7
  372. package/dist/runtime/components/prose/A.d.vue.ts +15 -0
  373. package/dist/runtime/components/prose/A.vue.d.ts +1 -1
  374. package/dist/runtime/components/prose/Accordion.d.vue.ts +16 -0
  375. package/dist/runtime/components/prose/Accordion.vue +2 -1
  376. package/dist/runtime/components/prose/Accordion.vue.d.ts +1 -1
  377. package/dist/runtime/components/prose/AccordionItem.d.vue.ts +15 -0
  378. package/dist/runtime/components/prose/AccordionItem.vue.d.ts +1 -1
  379. package/dist/runtime/components/prose/Badge.d.vue.ts +13 -0
  380. package/dist/runtime/components/prose/Badge.vue +1 -0
  381. package/dist/runtime/components/prose/Badge.vue.d.ts +1 -1
  382. package/dist/runtime/components/prose/Blockquote.d.vue.ts +13 -0
  383. package/dist/runtime/components/prose/Blockquote.vue.d.ts +1 -1
  384. package/dist/runtime/components/prose/Callout.d.vue.ts +26 -0
  385. package/dist/runtime/components/prose/Callout.vue +5 -19
  386. package/dist/runtime/components/prose/Callout.vue.d.ts +9 -9
  387. package/dist/runtime/components/prose/Card.d.vue.ts +29 -0
  388. package/dist/runtime/components/prose/Card.vue +15 -37
  389. package/dist/runtime/components/prose/Card.vue.d.ts +7 -8
  390. package/dist/runtime/components/prose/CardGroup.d.vue.ts +13 -0
  391. package/dist/runtime/components/prose/CardGroup.vue.d.ts +1 -1
  392. package/dist/runtime/components/prose/Code.d.vue.ts +22 -0
  393. package/dist/runtime/components/prose/Code.vue.d.ts +3 -3
  394. package/dist/runtime/components/prose/CodeCollapse.d.vue.ts +47 -0
  395. package/dist/runtime/components/prose/CodeCollapse.vue +4 -3
  396. package/dist/runtime/components/prose/CodeCollapse.vue.d.ts +7 -6
  397. package/dist/runtime/components/prose/CodeGroup.d.vue.ts +37 -0
  398. package/dist/runtime/components/prose/CodeGroup.vue +3 -3
  399. package/dist/runtime/components/prose/CodeGroup.vue.d.ts +5 -5
  400. package/dist/runtime/components/prose/CodeIcon.d.vue.ts +7 -0
  401. package/dist/runtime/components/prose/CodeIcon.vue +11 -7
  402. package/dist/runtime/components/prose/CodeIcon.vue.d.ts +3 -20
  403. package/dist/runtime/components/prose/CodePreview.d.vue.ts +19 -0
  404. package/dist/runtime/components/prose/CodePreview.vue.d.ts +3 -3
  405. package/dist/runtime/components/prose/CodeTree.d.vue.ts +28 -0
  406. package/dist/runtime/components/prose/CodeTree.vue +74 -78
  407. package/dist/runtime/components/prose/CodeTree.vue.d.ts +3 -5
  408. package/dist/runtime/components/prose/Collapsible.d.vue.ts +39 -0
  409. package/dist/runtime/components/prose/Collapsible.vue +5 -3
  410. package/dist/runtime/components/prose/Collapsible.vue.d.ts +5 -4
  411. package/dist/runtime/components/prose/Em.d.vue.ts +13 -0
  412. package/dist/runtime/components/prose/Em.vue.d.ts +1 -1
  413. package/dist/runtime/components/prose/Field.d.vue.ts +39 -0
  414. package/dist/runtime/components/prose/Field.vue.d.ts +3 -3
  415. package/dist/runtime/components/prose/FieldGroup.d.vue.ts +18 -0
  416. package/dist/runtime/components/prose/FieldGroup.vue.d.ts +1 -1
  417. package/dist/runtime/components/prose/H1.d.vue.ts +19 -0
  418. package/dist/runtime/components/prose/H1.vue +1 -1
  419. package/dist/runtime/components/prose/H1.vue.d.ts +3 -3
  420. package/dist/runtime/components/prose/H2.d.vue.ts +19 -0
  421. package/dist/runtime/components/prose/H2.vue +2 -1
  422. package/dist/runtime/components/prose/H2.vue.d.ts +3 -3
  423. package/dist/runtime/components/prose/H3.d.vue.ts +19 -0
  424. package/dist/runtime/components/prose/H3.vue +2 -1
  425. package/dist/runtime/components/prose/H3.vue.d.ts +3 -3
  426. package/dist/runtime/components/prose/H4.d.vue.ts +19 -0
  427. package/dist/runtime/components/prose/H4.vue +1 -1
  428. package/dist/runtime/components/prose/H4.vue.d.ts +3 -3
  429. package/dist/runtime/components/prose/Hr.d.vue.ts +5 -0
  430. package/dist/runtime/components/prose/Hr.vue.d.ts +1 -1
  431. package/dist/runtime/components/prose/Icon.d.vue.ts +6 -0
  432. package/dist/runtime/components/prose/Icon.vue +1 -0
  433. package/dist/runtime/components/prose/Icon.vue.d.ts +1 -1
  434. package/dist/runtime/components/prose/Img.d.vue.ts +21 -0
  435. package/dist/runtime/components/prose/Img.vue +53 -11
  436. package/dist/runtime/components/prose/Img.vue.d.ts +13 -1
  437. package/dist/runtime/components/prose/Kbd.d.vue.ts +6 -0
  438. package/dist/runtime/components/prose/Kbd.vue +1 -0
  439. package/dist/runtime/components/prose/Kbd.vue.d.ts +1 -1
  440. package/dist/runtime/components/prose/Li.d.vue.ts +13 -0
  441. package/dist/runtime/components/prose/Li.vue.d.ts +1 -1
  442. package/dist/runtime/components/prose/Ol.d.vue.ts +13 -0
  443. package/dist/runtime/components/prose/Ol.vue.d.ts +1 -1
  444. package/dist/runtime/components/prose/P.d.vue.ts +13 -0
  445. package/dist/runtime/components/prose/P.vue.d.ts +1 -1
  446. package/dist/runtime/components/prose/Pre.d.vue.ts +26 -0
  447. package/dist/runtime/components/prose/Pre.vue +9 -16
  448. package/dist/runtime/components/prose/Pre.vue.d.ts +4 -3
  449. package/dist/runtime/components/prose/Script.d.vue.ts +5 -0
  450. package/dist/runtime/components/prose/Script.vue.d.ts +4 -11
  451. package/dist/runtime/components/prose/Steps.d.vue.ts +22 -0
  452. package/dist/runtime/components/prose/Steps.vue.d.ts +2 -2
  453. package/dist/runtime/components/prose/Strong.d.vue.ts +13 -0
  454. package/dist/runtime/components/prose/Strong.vue.d.ts +1 -1
  455. package/dist/runtime/components/prose/Table.d.vue.ts +18 -0
  456. package/dist/runtime/components/prose/Table.vue.d.ts +3 -3
  457. package/dist/runtime/components/prose/Tabs.d.vue.ts +36 -0
  458. package/dist/runtime/components/prose/Tabs.vue +2 -1
  459. package/dist/runtime/components/prose/Tabs.vue.d.ts +3 -3
  460. package/dist/runtime/components/prose/TabsItem.d.vue.ts +15 -0
  461. package/dist/runtime/components/prose/TabsItem.vue.d.ts +1 -1
  462. package/dist/runtime/components/prose/Tbody.d.vue.ts +13 -0
  463. package/dist/runtime/components/prose/Tbody.vue.d.ts +1 -1
  464. package/dist/runtime/components/prose/Td.d.vue.ts +13 -0
  465. package/dist/runtime/components/prose/Td.vue.d.ts +1 -1
  466. package/dist/runtime/components/prose/Th.d.vue.ts +13 -0
  467. package/dist/runtime/components/prose/Th.vue.d.ts +1 -1
  468. package/dist/runtime/components/prose/Thead.d.vue.ts +13 -0
  469. package/dist/runtime/components/prose/Thead.vue.d.ts +1 -1
  470. package/dist/runtime/components/prose/Tr.d.vue.ts +13 -0
  471. package/dist/runtime/components/prose/Tr.vue.d.ts +1 -1
  472. package/dist/runtime/components/prose/Ul.d.vue.ts +13 -0
  473. package/dist/runtime/components/prose/Ul.vue.d.ts +1 -1
  474. package/dist/runtime/components/prose/callout/Caution.d.vue.ts +14 -0
  475. package/dist/runtime/components/prose/callout/Caution.vue.d.ts +1 -1
  476. package/dist/runtime/components/prose/callout/Note.d.vue.ts +14 -0
  477. package/dist/runtime/components/prose/callout/Note.vue.d.ts +1 -1
  478. package/dist/runtime/components/prose/callout/Tip.d.vue.ts +14 -0
  479. package/dist/runtime/components/prose/callout/Tip.vue.d.ts +1 -1
  480. package/dist/runtime/components/prose/callout/Warning.d.vue.ts +14 -0
  481. package/dist/runtime/components/prose/callout/Warning.vue.d.ts +1 -1
  482. package/dist/runtime/composables/useAvatarGroup.js +1 -1
  483. package/dist/runtime/composables/useComponentIcons.d.ts +5 -5
  484. package/dist/runtime/composables/useContentSearch.d.ts +1 -2
  485. package/dist/runtime/composables/{useButtonGroup.d.ts → useFieldGroup.d.ts} +5 -5
  486. package/dist/runtime/composables/useFieldGroup.js +9 -0
  487. package/dist/runtime/composables/useFileUpload.js +7 -1
  488. package/dist/runtime/composables/useFormField.d.ts +3 -1
  489. package/dist/runtime/composables/useFormField.js +8 -10
  490. package/dist/runtime/composables/useLocale.js +1 -1
  491. package/dist/runtime/composables/useOverlay.d.ts +1 -1
  492. package/dist/runtime/composables/useOverlay.js +4 -3
  493. package/dist/runtime/composables/usePortal.js +1 -1
  494. package/dist/runtime/composables/useResizable.d.ts +49 -0
  495. package/dist/runtime/composables/useResizable.js +77 -47
  496. package/dist/runtime/composables/useScrollspy.d.ts +2 -3
  497. package/dist/runtime/composables/useScrollspy.js +16 -13
  498. package/dist/runtime/index.css +1 -1
  499. package/dist/runtime/inertia/components/Link.d.vue.ts +63 -0
  500. package/dist/runtime/inertia/components/Link.vue +3 -0
  501. package/dist/runtime/inertia/components/Link.vue.d.ts +1 -1
  502. package/dist/runtime/inertia/components/LinkBase.d.vue.ts +25 -0
  503. package/dist/runtime/inertia/components/LinkBase.vue.d.ts +1 -1
  504. package/dist/runtime/inertia/stubs.d.ts +1 -1
  505. package/dist/runtime/locale/ar.js +101 -28
  506. package/dist/runtime/locale/az.js +101 -28
  507. package/dist/runtime/locale/bg.js +101 -28
  508. package/dist/runtime/locale/bn.js +101 -28
  509. package/dist/runtime/locale/ca.js +101 -28
  510. package/dist/runtime/locale/ckb.js +101 -28
  511. package/dist/runtime/locale/cs.js +101 -28
  512. package/dist/runtime/locale/da.js +101 -28
  513. package/dist/runtime/locale/de.js +101 -28
  514. package/dist/runtime/locale/de_ch.d.ts +3 -0
  515. package/dist/runtime/locale/de_ch.js +129 -0
  516. package/dist/runtime/locale/el.js +101 -28
  517. package/dist/runtime/locale/en.js +60 -57
  518. package/dist/runtime/locale/es.js +101 -28
  519. package/dist/runtime/locale/et.js +101 -28
  520. package/dist/runtime/locale/fa_ir.js +101 -28
  521. package/dist/runtime/locale/fi.js +101 -28
  522. package/dist/runtime/locale/fr.js +101 -28
  523. package/dist/runtime/locale/he.js +101 -26
  524. package/dist/runtime/locale/hi.js +101 -28
  525. package/dist/runtime/locale/hu.js +101 -28
  526. package/dist/runtime/locale/hy.js +101 -28
  527. package/dist/runtime/locale/id.js +102 -29
  528. package/dist/runtime/locale/index.d.ts +2 -0
  529. package/dist/runtime/locale/index.js +2 -0
  530. package/dist/runtime/locale/it.js +101 -28
  531. package/dist/runtime/locale/ja.js +101 -28
  532. package/dist/runtime/locale/ka.d.ts +3 -0
  533. package/dist/runtime/locale/ka.js +132 -0
  534. package/dist/runtime/locale/kk.js +100 -27
  535. package/dist/runtime/locale/km.js +101 -28
  536. package/dist/runtime/locale/ko.js +101 -28
  537. package/dist/runtime/locale/ky.js +101 -28
  538. package/dist/runtime/locale/lb.js +101 -28
  539. package/dist/runtime/locale/lt.js +101 -28
  540. package/dist/runtime/locale/mn.js +101 -28
  541. package/dist/runtime/locale/ms.js +101 -28
  542. package/dist/runtime/locale/nb_no.js +101 -28
  543. package/dist/runtime/locale/nl.js +101 -28
  544. package/dist/runtime/locale/pl.js +101 -28
  545. package/dist/runtime/locale/pt.js +101 -28
  546. package/dist/runtime/locale/pt_br.js +101 -28
  547. package/dist/runtime/locale/ro.js +101 -28
  548. package/dist/runtime/locale/ru.js +101 -28
  549. package/dist/runtime/locale/sk.js +101 -28
  550. package/dist/runtime/locale/sl.js +101 -28
  551. package/dist/runtime/locale/sv.js +101 -28
  552. package/dist/runtime/locale/th.js +101 -28
  553. package/dist/runtime/locale/tj.js +101 -28
  554. package/dist/runtime/locale/tr.js +101 -28
  555. package/dist/runtime/locale/ug_cn.js +100 -27
  556. package/dist/runtime/locale/uk.js +101 -28
  557. package/dist/runtime/locale/ur.js +101 -28
  558. package/dist/runtime/locale/uz.js +101 -28
  559. package/dist/runtime/locale/vi.js +101 -28
  560. package/dist/runtime/locale/zh_cn.js +101 -28
  561. package/dist/runtime/locale/zh_tw.js +101 -28
  562. package/dist/runtime/plugins/colors.js +3 -3
  563. package/dist/runtime/types/form.d.ts +12 -13
  564. package/dist/runtime/types/form.js +1 -3
  565. package/dist/runtime/types/index.d.ts +12 -15
  566. package/dist/runtime/types/index.js +12 -15
  567. package/dist/runtime/types/input.d.ts +8 -0
  568. package/dist/runtime/types/input.js +0 -0
  569. package/dist/runtime/types/locale.d.ts +84 -71
  570. package/dist/runtime/types/tv.d.ts +9 -2
  571. package/dist/runtime/types/utils.d.ts +9 -5
  572. package/dist/runtime/types/utils.js +0 -1
  573. package/dist/runtime/utils/ai.d.ts +2 -0
  574. package/dist/runtime/utils/ai.js +3 -0
  575. package/dist/runtime/utils/content.d.ts +2 -13
  576. package/dist/runtime/utils/content.js +7 -59
  577. package/dist/runtime/utils/dashboard.js +1 -4
  578. package/dist/runtime/utils/form.d.ts +2 -6
  579. package/dist/runtime/utils/form.js +28 -60
  580. package/dist/runtime/utils/fuse.d.ts +2 -1
  581. package/dist/runtime/utils/index.d.ts +8 -4
  582. package/dist/runtime/utils/index.js +59 -27
  583. package/dist/runtime/utils/tv.d.ts +1 -1
  584. package/dist/runtime/vue/components/Icon.d.vue.ts +6 -0
  585. package/dist/runtime/vue/components/Icon.vue +3 -2
  586. package/dist/runtime/vue/components/Icon.vue.d.ts +3 -2
  587. package/dist/runtime/vue/components/Link.d.vue.ts +93 -0
  588. package/dist/runtime/vue/components/Link.vue.d.ts +1 -1
  589. package/dist/runtime/vue/components/color-mode/ColorModeButton.d.vue.ts +16 -0
  590. package/dist/runtime/vue/components/color-mode/ColorModeButton.vue +3 -2
  591. package/dist/runtime/vue/components/color-mode/ColorModeButton.vue.d.ts +4 -26
  592. package/dist/runtime/vue/components/color-mode/ColorModeSelect.d.vue.ts +5 -0
  593. package/dist/runtime/vue/components/color-mode/ColorModeSelect.vue +4 -3
  594. package/dist/runtime/vue/components/color-mode/ColorModeSelect.vue.d.ts +1 -1
  595. package/dist/runtime/vue/components/color-mode/ColorModeSwitch.d.vue.ts +5 -0
  596. package/dist/runtime/vue/components/color-mode/ColorModeSwitch.vue +3 -2
  597. package/dist/runtime/vue/components/color-mode/ColorModeSwitch.vue.d.ts +1 -1
  598. package/dist/runtime/vue/stubs.d.ts +1 -1
  599. package/dist/shared/{ui.CgUuvRXi.mjs → ui.BBlr3wu_.mjs} +1053 -1166
  600. package/dist/unplugin.d.mts +14 -14
  601. package/dist/unplugin.mjs +51 -32
  602. package/dist/vite.mjs +4 -4
  603. package/package.json +47 -68
  604. package/.nuxt/ui/content/index.ts +0 -5
  605. package/.nuxt/ui/content-navigation.ts +0 -341
  606. package/.nuxt/ui/content-search-button.ts +0 -6
  607. package/.nuxt/ui/content-search.ts +0 -6
  608. package/.nuxt/ui/content-surround.ts +0 -39
  609. package/.nuxt/ui/content-toc.ts +0 -150
  610. package/.nuxt/ui/page-accordion.ts +0 -7
  611. package/.nuxt/ui/scroll-to-section.ts +0 -3
  612. package/dist/runtime/components/ButtonGroup.vue.d.ts +0 -34
  613. package/dist/runtime/components/PageAccordion.vue +0 -26
  614. package/dist/runtime/components/PageAccordion.vue.d.ts +0 -21
  615. package/dist/runtime/components/PageMarquee.vue.d.ts +0 -32
  616. package/dist/runtime/components/ScrollToSection.vue +0 -62
  617. package/dist/runtime/components/ScrollToSection.vue.d.ts +0 -36
  618. package/dist/runtime/composables/useBreakpoint.d.ts +0 -11
  619. package/dist/runtime/composables/useBreakpoint.js +0 -53
  620. package/dist/runtime/composables/useButtonGroup.js +0 -9
  621. package/dist/runtime/composables/useLocalePro.d.ts +0 -3
  622. package/dist/runtime/composables/useLocalePro.js +0 -11
@@ -6,22 +6,23 @@ import theme from "#build/ui/form";
6
6
  import { provide, inject, nextTick, ref, onUnmounted, onMounted, computed, useId, readonly, reactive } from "vue";
7
7
  import { useEventBus } from "@vueuse/core";
8
8
  import { useAppConfig } from "#imports";
9
- import { formOptionsInjectionKey, formInputsInjectionKey, formBusInjectionKey, formLoadingInjectionKey } from "../composables/useFormField";
9
+ import { formOptionsInjectionKey, formInputsInjectionKey, formBusInjectionKey, formLoadingInjectionKey, formErrorsInjectionKey, formStateInjectionKey } from "../composables/useFormField";
10
10
  import { tv } from "../utils/tv";
11
- import { validateSchema } from "../utils/form";
11
+ import { validateSchema, getAtPath, setAtPath } from "../utils/form";
12
12
  import { FormValidationException } from "../types/form";
13
13
  const props = defineProps({
14
14
  id: { type: [String, Number], required: false },
15
15
  schema: { type: null, required: false },
16
- state: { type: Object, required: true },
16
+ state: { type: null, required: false },
17
17
  validate: { type: Function, required: false },
18
18
  validateOn: { type: Array, required: false, default() {
19
19
  return ["input", "blur", "change"];
20
20
  } },
21
21
  disabled: { type: Boolean, required: false },
22
+ name: { type: null, required: false },
22
23
  validateOnInputDelay: { type: Number, required: false, default: 300 },
23
24
  transform: { type: null, required: false, default: () => true },
24
- attach: { type: Boolean, required: false, default: true },
25
+ nested: { type: null, required: false },
25
26
  loadingAuto: { type: Boolean, required: false, default: true },
26
27
  class: { type: null, required: false },
27
28
  onSubmit: { type: Function, required: false }
@@ -32,16 +33,37 @@ const appConfig = useAppConfig();
32
33
  const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.form || {} }));
33
34
  const formId = props.id ?? useId();
34
35
  const bus = useEventBus(`form-${formId}`);
35
- const parentBus = props.attach && inject(
36
+ const isNested = props.nested?.toString() === "" || props.nested === true;
37
+ const parentBus = isNested && inject(
36
38
  formBusInjectionKey,
37
39
  void 0
38
40
  );
41
+ const parentState = isNested ? inject(formStateInjectionKey, void 0) : void 0;
42
+ const state = computed(() => {
43
+ if (parentState?.value) {
44
+ return props.name ? getAtPath(parentState.value, props.name) : parentState.value;
45
+ }
46
+ return props.state;
47
+ });
39
48
  provide(formBusInjectionKey, bus);
49
+ provide(formStateInjectionKey, state);
40
50
  const nestedForms = ref(/* @__PURE__ */ new Map());
51
+ onMounted(async () => {
52
+ if (parentBus) {
53
+ await nextTick();
54
+ parentBus.emit({ type: "attach", validate: _validate, formId, name: props.name, api });
55
+ }
56
+ });
57
+ onUnmounted(() => {
58
+ bus.reset();
59
+ if (parentBus) {
60
+ parentBus.emit({ type: "detach", formId });
61
+ }
62
+ });
41
63
  onMounted(async () => {
42
64
  bus.on(async (event) => {
43
65
  if (event.type === "attach") {
44
- nestedForms.value.set(event.formId, { validate: event.validate });
66
+ nestedForms.value.set(event.formId, { validate: event.validate, name: event.name, api: event.api });
45
67
  } else if (event.type === "detach") {
46
68
  nestedForms.value.delete(event.formId);
47
69
  } else if (props.validateOn?.includes(event.type) && !loading.value) {
@@ -62,22 +84,8 @@ onMounted(async () => {
62
84
  }
63
85
  });
64
86
  });
65
- onUnmounted(() => {
66
- bus.reset();
67
- });
68
- onMounted(async () => {
69
- if (parentBus) {
70
- await nextTick();
71
- parentBus.emit({ type: "attach", validate: _validate, formId });
72
- }
73
- });
74
- onUnmounted(() => {
75
- if (parentBus) {
76
- parentBus.emit({ type: "detach", formId });
77
- }
78
- });
79
87
  const errors = ref([]);
80
- provide("form-errors", errors);
88
+ provide(formErrorsInjectionKey, errors);
81
89
  const inputs = ref({});
82
90
  provide(formInputsInjectionKey, inputs);
83
91
  const dirtyFields = reactive(/* @__PURE__ */ new Set());
@@ -91,9 +99,9 @@ function resolveErrorIds(errs) {
91
99
  }
92
100
  const transformedState = ref(null);
93
101
  async function getErrors() {
94
- let errs = props.validate ? await props.validate(props.state) ?? [] : [];
102
+ let errs = props.validate ? await props.validate(state.value) ?? [] : [];
95
103
  if (props.schema) {
96
- const { errors: errors2, result } = await validateSchema(props.state, props.schema);
104
+ const { errors: errors2, result } = await validateSchema(state.value, props.schema);
97
105
  if (errors2) {
98
106
  errs = errs.concat(errors2);
99
107
  } else {
@@ -102,38 +110,40 @@ async function getErrors() {
102
110
  }
103
111
  return resolveErrorIds(errs);
104
112
  }
105
- async function _validate(opts = { silent: false, nested: true, transform: false }) {
113
+ async function _validate(opts = { silent: false, nested: false, transform: false }) {
106
114
  const names = opts.name && !Array.isArray(opts.name) ? [opts.name] : opts.name;
107
- const nestedValidatePromises = !names && opts.nested ? Array.from(nestedForms.value.values()).map(
108
- ({ validate }) => validate(opts).then(() => void 0).catch((error) => {
109
- if (!(error instanceof FormValidationException)) {
110
- throw error;
111
- }
112
- return error;
113
- })
114
- ) : [];
115
+ let nestedResults = [];
116
+ let nestedErrors = [];
117
+ if (!names && opts.nested) {
118
+ const validations = Array.from(nestedForms.value.values()).map(
119
+ (form) => validateNestedForm(form, opts)
120
+ );
121
+ const results = await Promise.all(validations);
122
+ nestedErrors = results.filter((r) => r.error).flatMap((r) => r.error.errors.map((e) => addFormPath(e, r.name)));
123
+ nestedResults = results.filter((r) => r.output !== void 0);
124
+ }
125
+ const currentErrors = await getErrors();
126
+ const allErrors = [...currentErrors, ...nestedErrors];
115
127
  if (names) {
116
- const otherErrors = errors.value.filter((error) => !names.some((name) => {
117
- const pattern = inputs.value?.[name]?.pattern;
118
- return name === error.name || pattern && error.name?.match(pattern);
119
- }));
120
- const pathErrors = (await getErrors()).filter((error) => names.some((name) => {
121
- const pattern = inputs.value?.[name]?.pattern;
122
- return name === error.name || pattern && error.name?.match(pattern);
123
- }));
124
- errors.value = otherErrors.concat(pathErrors);
128
+ errors.value = filterErrorsByNames(allErrors, names);
125
129
  } else {
126
- errors.value = await getErrors();
130
+ errors.value = allErrors;
127
131
  }
128
- const childErrors = (await Promise.all(nestedValidatePromises)).filter((val) => val !== void 0);
129
- if (errors.value.length + childErrors.length > 0) {
132
+ if (errors.value?.length) {
130
133
  if (opts.silent) return false;
131
- throw new FormValidationException(formId, errors.value, childErrors);
134
+ throw new FormValidationException(formId, errors.value);
132
135
  }
133
136
  if (opts.transform) {
134
- Object.assign(props.state, transformedState.value);
137
+ nestedResults.forEach((result) => {
138
+ if (result.name) {
139
+ setAtPath(transformedState.value, result.name, result.output);
140
+ } else {
141
+ Object.assign(transformedState.value, result.output);
142
+ }
143
+ });
144
+ return transformedState.value ?? state.value;
135
145
  }
136
- return props.state;
146
+ return state.value;
137
147
  }
138
148
  const loading = ref(false);
139
149
  provide(formLoadingInjectionKey, readonly(loading));
@@ -150,8 +160,7 @@ async function onSubmitWrapper(payload) {
150
160
  }
151
161
  const errorEvent = {
152
162
  ...event,
153
- errors: error.errors,
154
- children: error.children
163
+ errors: error.errors
155
164
  };
156
165
  emits("error", errorEvent);
157
166
  } finally {
@@ -163,31 +172,105 @@ provide(formOptionsInjectionKey, computed(() => ({
163
172
  disabled: disabled.value,
164
173
  validateOnInputDelay: props.validateOnInputDelay
165
174
  })));
166
- defineExpose({
175
+ async function validateNestedForm(form, opts) {
176
+ try {
177
+ const result = await form.validate({ ...opts, silent: false });
178
+ return { name: form.name, output: result };
179
+ } catch (error) {
180
+ if (!(error instanceof FormValidationException)) throw error;
181
+ return { name: form.name, error };
182
+ }
183
+ }
184
+ function addFormPath(error, formPath) {
185
+ if (!formPath || !error.name) return error;
186
+ return { ...error, name: formPath + "." + error.name };
187
+ }
188
+ function stripFormPath(error, formPath) {
189
+ const prefix = formPath + ".";
190
+ const name = error?.name?.startsWith(prefix) ? error.name.substring(prefix.length) : error.name;
191
+ return { ...error, name };
192
+ }
193
+ function filterFormErrors(errors2, formPath) {
194
+ if (!formPath) return errors2;
195
+ return errors2.filter((e) => e?.name?.startsWith(formPath + ".")).map((e) => stripFormPath(e, formPath));
196
+ }
197
+ function getFormErrors(form) {
198
+ return form.api.getErrors().map(
199
+ (e) => form.name ? { ...e, name: form.name + "." + e.name } : e
200
+ );
201
+ }
202
+ function matchesTarget(target, path) {
203
+ if (!target || !path) return true;
204
+ if (target instanceof RegExp) return target.test(path);
205
+ return path === target || typeof target === "string" && target.startsWith(path + ".");
206
+ }
207
+ function getNestedTarget(target, formPath) {
208
+ if (!target || target instanceof RegExp) return target;
209
+ if (formPath === target) return void 0;
210
+ if (typeof target === "string" && target.startsWith(formPath + ".")) {
211
+ return target.substring(formPath.length + 1);
212
+ }
213
+ return target;
214
+ }
215
+ function filterErrorsByNames(allErrors, names) {
216
+ const nameSet = new Set(names);
217
+ const patterns = names.map((name) => inputs.value?.[name]?.pattern).filter(Boolean);
218
+ const matchesNames = (error) => {
219
+ if (!error.name) return false;
220
+ if (nameSet.has(error.name)) return true;
221
+ return patterns.some((pattern) => pattern.test(error.name));
222
+ };
223
+ const keepErrors = errors.value.filter((error) => !matchesNames(error));
224
+ const newErrors = allErrors.filter(matchesNames);
225
+ return [...keepErrors, ...newErrors];
226
+ }
227
+ function filterErrorsByTarget(currentErrors, target) {
228
+ return currentErrors.filter(
229
+ (err) => target instanceof RegExp ? !(err.name && target.test(err.name)) : !err.name || err.name !== target
230
+ );
231
+ }
232
+ function isLocalError(error) {
233
+ return !error.name || !!inputs.value[error.name];
234
+ }
235
+ const api = {
167
236
  validate: _validate,
168
237
  errors,
169
238
  setErrors(errs, name) {
239
+ const localErrors = resolveErrorIds(errs.filter(isLocalError));
240
+ const nestedErrors = [];
241
+ for (const form of nestedForms.value.values()) {
242
+ if (matchesTarget(name, form.name)) {
243
+ const formErrors = filterFormErrors(errs, form.name);
244
+ form.api.setErrors(formErrors, getNestedTarget(name, form.name || ""));
245
+ nestedErrors.push(...getFormErrors(form));
246
+ }
247
+ }
170
248
  if (name) {
171
- errors.value = errors.value.filter((error) => error.name !== name).concat(resolveErrorIds(errs));
249
+ const keepErrors = filterErrorsByTarget(errors.value, name);
250
+ errors.value = [...keepErrors, ...localErrors, ...nestedErrors];
172
251
  } else {
173
- errors.value = resolveErrorIds(errs);
252
+ errors.value = [...localErrors, ...nestedErrors];
174
253
  }
175
254
  },
176
255
  async submit() {
177
256
  await onSubmitWrapper(new Event("submit"));
178
257
  },
179
258
  getErrors(name) {
180
- if (name) {
181
- return errors.value.filter((err) => err.name === name);
182
- }
183
- return errors.value;
259
+ if (!name) return errors.value;
260
+ return errors.value.filter(
261
+ (err) => name instanceof RegExp ? err.name && name.test(err.name) : err.name === name
262
+ );
184
263
  },
185
264
  clear(name) {
186
- if (name) {
187
- errors.value = errors.value.filter((err) => err.name !== name);
188
- } else {
189
- errors.value = [];
265
+ const localErrors = name ? errors.value.filter(
266
+ (err) => isLocalError(err) && (name instanceof RegExp ? !(err.name && name.test(err.name)) : err.name !== name)
267
+ ) : [];
268
+ const nestedErrors = [];
269
+ for (const form of nestedForms.value.values()) {
270
+ if (matchesTarget(name, form.name)) form.api.clear();
271
+ nestedErrors.push(...getFormErrors(form));
190
272
  }
273
+ errors.value = [...localErrors, ...nestedErrors];
191
274
  },
192
275
  disabled,
193
276
  loading,
@@ -195,7 +278,8 @@ defineExpose({
195
278
  dirtyFields: readonly(dirtyFields),
196
279
  blurredFields: readonly(blurredFields),
197
280
  touchedFields: readonly(touchedFields)
198
- });
281
+ };
282
+ defineExpose(api);
199
283
  </script>
200
284
 
201
285
  <template>
@@ -1,10 +1,10 @@
1
- import type { FormSchema, FormError, FormInputEvents, FormErrorEvent, FormSubmitEvent, Form, InferInput, FormData } from '../types/form';
2
- export interface FormProps<S extends FormSchema, T extends boolean = true> {
1
+ import type { FormSchema, FormError, FormInputEvents, FormErrorEvent, FormSubmitEvent, FormErrorWithId, InferInput, FormData } from '../types/form';
2
+ export type FormProps<S extends FormSchema, T extends boolean = true, N extends boolean = false> = {
3
3
  id?: string | number;
4
4
  /** Schema to validate the form state. Supports Standard Schema objects, Yup, Joi, and Superstructs. */
5
5
  schema?: S;
6
6
  /** An object representing the current state of the form. */
7
- state: Partial<InferInput<S>>;
7
+ state?: N extends false ? Partial<InferInput<S>> : never;
8
8
  /**
9
9
  * Custom validation function to validate the form state.
10
10
  * @param state - The current state of the form.
@@ -19,21 +19,26 @@ export interface FormProps<S extends FormSchema, T extends boolean = true> {
19
19
  validateOn?: FormInputEvents[];
20
20
  /** Disable all inputs inside the form. */
21
21
  disabled?: boolean;
22
+ /**
23
+ * Path of the form's state within it's parent form.
24
+ * Used for nesting forms. Only available if `nested` is true.
25
+ */
26
+ name?: N extends true ? string : never;
22
27
  /**
23
28
  * Delay in milliseconds before validating the form on input events.
24
29
  * @defaultValue `300`
25
30
  */
26
31
  validateOnInputDelay?: number;
27
32
  /**
28
- * If true, schema transformations will be applied to the state on submit.
33
+ * If true, applies schema transformations on submit.
29
34
  * @defaultValue `true`
30
35
  */
31
36
  transform?: T;
32
37
  /**
33
- * If true, this form will attach to its parent Form (if any) and validate at the same time.
34
- * @defaultValue `true`
38
+ * If true, this form will attach to its parent Form and validate at the same time.
39
+ * @defaultValue `false`
35
40
  */
36
- attach?: boolean;
41
+ nested?: N;
37
42
  /**
38
43
  * When `true`, all form elements will be disabled on `@submit` event.
39
44
  * This will cause any focused input elements to lose their focus state.
@@ -42,26 +47,64 @@ export interface FormProps<S extends FormSchema, T extends boolean = true> {
42
47
  loadingAuto?: boolean;
43
48
  class?: any;
44
49
  onSubmit?: ((event: FormSubmitEvent<FormData<S, T>>) => void | Promise<void>) | (() => void | Promise<void>);
45
- }
50
+ };
46
51
  export interface FormEmits<S extends FormSchema, T extends boolean = true> {
47
- submit: [payload: FormSubmitEvent<FormData<S, T>>];
48
- error: [payload: FormErrorEvent];
52
+ submit: [event: FormSubmitEvent<FormData<S, T>>];
53
+ error: [event: FormErrorEvent];
49
54
  }
50
55
  export interface FormSlots {
51
- default(props?: {
56
+ default(props: {
52
57
  errors: FormError[];
53
58
  loading: boolean;
54
59
  }): any;
55
60
  }
56
- declare const _default: <S extends FormSchema, T extends boolean = true>(__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<{
61
+ declare const _default: <S extends FormSchema, T extends boolean = true, N extends boolean = false>(__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<{
57
62
  props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
58
- readonly onError?: ((payload: FormErrorEvent) => any) | undefined;
59
- readonly onSubmit?: ((payload: FormSubmitEvent<FormData<S, T>>) => any) | undefined;
60
- } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onError" | "onSubmit"> & FormProps<S, T> & Partial<{}>> & import("vue").PublicProps;
61
- expose(exposed: import("vue").ShallowUnwrapRef<Form<S>>): void;
63
+ readonly onError?: ((event: FormErrorEvent) => any) | undefined;
64
+ readonly onSubmit?: ((event: FormSubmitEvent<FormData<S, T>>) => any) | undefined;
65
+ } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onSubmit" | "onError"> & FormProps<S, T, N> & {}> & import("vue").PublicProps;
66
+ expose(exposed: import("vue").ShallowUnwrapRef<{
67
+ validate: {
68
+ <T_1 extends boolean>(opts: {
69
+ name?: keyof InferInput<S> | (keyof InferInput<S>)[] | undefined;
70
+ silent?: false | undefined;
71
+ nested?: boolean;
72
+ transform?: T_1 | undefined;
73
+ }): Promise<FormData<S, T_1>>;
74
+ <T_1 extends boolean>(opts: {
75
+ name?: keyof InferInput<S> | (keyof InferInput<S>)[] | undefined;
76
+ silent?: true | undefined;
77
+ nested?: boolean;
78
+ transform?: T_1 | undefined;
79
+ }): Promise<FormData<S, T_1> | false>;
80
+ };
81
+ errors: import("vue").Ref<{
82
+ id?: string | undefined;
83
+ name?: string | undefined;
84
+ message: string;
85
+ }[], FormErrorWithId[] | {
86
+ id?: string | undefined;
87
+ name?: string | undefined;
88
+ message: string;
89
+ }[]>;
90
+ setErrors(errs: FormError[], name?: keyof InferInput<S> | string | RegExp): void;
91
+ submit(): Promise<void>;
92
+ getErrors(name?: keyof InferInput<S> | string | RegExp): {
93
+ id?: string | undefined;
94
+ name?: string | undefined;
95
+ message: string;
96
+ }[];
97
+ clear(name?: keyof InferInput<S> | string | RegExp): void;
98
+ disabled: import("vue").ComputedRef<boolean>;
99
+ loading: import("vue").Ref<boolean, boolean>;
100
+ dirty: import("vue").ComputedRef<boolean>;
101
+ dirtyFields: ReadonlySet<import("vue").DeepReadonly<import("@vue/reactivity").UnwrapRefSimple<keyof InferInput<S>>>>;
102
+ blurredFields: ReadonlySet<import("vue").DeepReadonly<import("@vue/reactivity").UnwrapRefSimple<keyof InferInput<S>>>>;
103
+ touchedFields: ReadonlySet<import("vue").DeepReadonly<import("@vue/reactivity").UnwrapRefSimple<keyof InferInput<S>>>>;
104
+ }>): void;
62
105
  attrs: any;
63
106
  slots: FormSlots;
64
- emit: ((evt: "error", payload: FormErrorEvent) => void) & ((evt: "submit", payload: FormSubmitEvent<FormData<S, T>>) => void);
107
+ emit: ((evt: "error", event: FormErrorEvent) => void) & ((evt: "submit", event: FormSubmitEvent<FormData<S, T>>) => void);
65
108
  }>) => import("vue").VNode & {
66
109
  __ctx?: Awaited<typeof __VLS_setup>;
67
110
  };
@@ -0,0 +1,61 @@
1
+ import type { AppConfig } from '@nuxt/schema';
2
+ import theme from '#build/ui/form-field';
3
+ import type { ComponentConfig } from '../types/tv';
4
+ type FormField = ComponentConfig<typeof theme, AppConfig, 'formField'>;
5
+ export interface FormFieldProps {
6
+ /**
7
+ * The element or component this component should render as.
8
+ * @defaultValue 'div'
9
+ */
10
+ as?: any;
11
+ /** The name of the FormField. Also used to match form errors. */
12
+ name?: string;
13
+ /** A regular expression to match form error names. */
14
+ errorPattern?: RegExp;
15
+ label?: string;
16
+ description?: string;
17
+ help?: string;
18
+ error?: boolean | string;
19
+ hint?: string;
20
+ /**
21
+ * @defaultValue 'md'
22
+ */
23
+ size?: FormField['variants']['size'];
24
+ required?: boolean;
25
+ /** If true, validation on input will be active immediately instead of waiting for a blur event. */
26
+ eagerValidation?: boolean;
27
+ /**
28
+ * Delay in milliseconds before validating the form on input events.
29
+ * @defaultValue `300`
30
+ */
31
+ validateOnInputDelay?: number;
32
+ class?: any;
33
+ ui?: FormField['slots'];
34
+ }
35
+ export interface FormFieldSlots {
36
+ label(props: {
37
+ label?: string;
38
+ }): any;
39
+ hint(props: {
40
+ hint?: string;
41
+ }): any;
42
+ description(props: {
43
+ description?: string;
44
+ }): any;
45
+ help(props: {
46
+ help?: string;
47
+ }): any;
48
+ error(props: {
49
+ error?: boolean | string;
50
+ }): any;
51
+ default(props: {
52
+ error?: boolean | string;
53
+ }): any;
54
+ }
55
+ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<FormFieldProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<FormFieldProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, FormFieldSlots>;
56
+ export default _default;
57
+ type __VLS_WithSlots<T, S> = T & {
58
+ new (): {
59
+ $slots: S;
60
+ };
61
+ };
@@ -3,10 +3,10 @@ import theme from "#build/ui/form-field";
3
3
  </script>
4
4
 
5
5
  <script setup>
6
- import { computed, ref, inject, provide, useId } from "vue";
6
+ import { computed, ref, inject, provide, useId, watch } from "vue";
7
7
  import { Primitive, Label } from "reka-ui";
8
8
  import { useAppConfig } from "#imports";
9
- import { formFieldInjectionKey, inputIdInjectionKey } from "../composables/useFormField";
9
+ import { formFieldInjectionKey, inputIdInjectionKey, formErrorsInjectionKey, formInputsInjectionKey } from "../composables/useFormField";
10
10
  import { tv } from "../utils/tv";
11
11
  const props = defineProps({
12
12
  as: { type: null, required: false },
@@ -30,10 +30,16 @@ const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.formField ||
30
30
  size: props.size,
31
31
  required: props.required
32
32
  }));
33
- const formErrors = inject("form-errors", null);
34
- const error = computed(() => props.error || formErrors?.value?.find((error2) => error2.name && (error2.name === props.name || props.errorPattern && error2.name.match(props.errorPattern)))?.message);
33
+ const formErrors = inject(formErrorsInjectionKey, null);
34
+ const error = computed(() => props.error || formErrors?.value?.find((error2) => error2.name === props.name || props.errorPattern && error2.name?.match(props.errorPattern))?.message);
35
35
  const id = ref(useId());
36
36
  const ariaId = id.value;
37
+ const formInputs = inject(formInputsInjectionKey, void 0);
38
+ watch(id, () => {
39
+ if (formInputs && props.name) {
40
+ formInputs.value[props.name] = { id: id.value, pattern: props.errorPattern };
41
+ }
42
+ }, { immediate: true });
37
43
  provide(inputIdInjectionKey, id);
38
44
  provide(formFieldInjectionKey, computed(() => ({
39
45
  error: error.value,
@@ -1,6 +1,6 @@
1
1
  import type { AppConfig } from '@nuxt/schema';
2
2
  import theme from '#build/ui/form-field';
3
- import type { ComponentConfig } from '../types/utils';
3
+ import type { ComponentConfig } from '../types/tv';
4
4
  type FormField = ComponentConfig<typeof theme, AppConfig, 'formField'>;
5
5
  export interface FormFieldProps {
6
6
  /**
@@ -52,7 +52,7 @@ export interface FormFieldSlots {
52
52
  error?: boolean | string;
53
53
  }): any;
54
54
  }
55
- declare const _default: __VLS_WithSlots<import("vue").DefineComponent<FormFieldProps, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<FormFieldProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, FormFieldSlots>;
55
+ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<FormFieldProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<FormFieldProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, FormFieldSlots>;
56
56
  export default _default;
57
57
  type __VLS_WithSlots<T, S> = T & {
58
58
  new (): {
@@ -0,0 +1,68 @@
1
+ import type { AppConfig } from '@nuxt/schema';
2
+ import theme from '#build/ui/header';
3
+ import type { ButtonProps, DrawerProps, ModalProps, SlideoverProps } from '../types';
4
+ import type { ComponentConfig } from '../types/tv';
5
+ type Header = ComponentConfig<typeof theme, AppConfig, 'header'>;
6
+ type HeaderMode = 'modal' | 'slideover' | 'drawer';
7
+ type HeaderMenu<T> = T extends 'modal' ? ModalProps : T extends 'slideover' ? SlideoverProps : T extends 'drawer' ? DrawerProps : never;
8
+ export interface HeaderProps<T extends HeaderMode = HeaderMode> {
9
+ /**
10
+ * The element or component this component should render as.
11
+ * @defaultValue 'header'
12
+ */
13
+ as?: any;
14
+ title?: string;
15
+ to?: string;
16
+ /**
17
+ * The mode of the header menu.
18
+ * @defaultValue 'modal'
19
+ */
20
+ mode?: T;
21
+ /**
22
+ * The props for the header menu component.
23
+ */
24
+ menu?: HeaderMenu<T>;
25
+ /**
26
+ * Customize the toggle button to open the header menu displayed when the `content` slot is used.
27
+ * `{ color: 'neutral', variant: 'ghost' }`{lang="ts-type"}
28
+ */
29
+ toggle?: boolean | Partial<ButtonProps>;
30
+ /**
31
+ * The side to render the toggle button on.
32
+ * @defaultValue 'right'
33
+ */
34
+ toggleSide?: 'left' | 'right';
35
+ class?: any;
36
+ ui?: Header['slots'];
37
+ }
38
+ export interface HeaderSlots {
39
+ title(props?: {}): any;
40
+ left(props?: {}): any;
41
+ default(props?: {}): any;
42
+ right(props?: {}): any;
43
+ toggle(props: {
44
+ open: boolean;
45
+ toggle: () => void;
46
+ }): any;
47
+ top(props?: {}): any;
48
+ bottom(props?: {}): any;
49
+ body(props?: {}): any;
50
+ content(props?: {}): any;
51
+ }
52
+ declare const _default: <T extends HeaderMode>(__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<{
53
+ props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
54
+ readonly "onUpdate:open"?: ((value: boolean) => any) | undefined;
55
+ } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onUpdate:open"> & (HeaderProps<T> & {
56
+ open?: boolean;
57
+ }) & {}> & import("vue").PublicProps;
58
+ expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
59
+ attrs: any;
60
+ slots: HeaderSlots;
61
+ emit: (evt: "update:open", value: boolean) => void;
62
+ }>) => import("vue").VNode & {
63
+ __ctx?: Awaited<typeof __VLS_setup>;
64
+ };
65
+ export default _default;
66
+ type __VLS_PrettifyLocal<T> = {
67
+ [K in keyof T as K]: T[K];
68
+ } & {};
@@ -7,16 +7,20 @@ import { computed, watch, toRef } from "vue";
7
7
  import { Primitive } from "reka-ui";
8
8
  import { defu } from "defu";
9
9
  import { createReusableTemplate } from "@vueuse/core";
10
- import USlideover from "./Slideover.vue";
11
- import UModal from "./Modal.vue";
12
- import UDrawer from "./Drawer.vue";
13
10
  import { useAppConfig, useRoute } from "#imports";
14
- import { useLocalePro } from "../composables/useLocalePro";
11
+ import { useLocale } from "../composables/useLocale";
15
12
  import { getSlotChildrenText } from "../utils";
16
13
  import { tv } from "../utils/tv";
14
+ import UButton from "./Button.vue";
15
+ import ULink from "./Link.vue";
16
+ import UContainer from "./Container.vue";
17
+ import USlideover from "./Slideover.vue";
18
+ import UModal from "./Modal.vue";
19
+ import UDrawer from "./Drawer.vue";
20
+ defineOptions({ inheritAttrs: false });
17
21
  const props = defineProps({
18
22
  as: { type: null, required: false, default: "header" },
19
- title: { type: String, required: false, default: "Nuxt UI Pro" },
23
+ title: { type: String, required: false, default: "Nuxt UI" },
20
24
  to: { type: String, required: false, default: "/" },
21
25
  mode: { type: null, required: false, default: "modal" },
22
26
  menu: { type: null, required: false },
@@ -28,14 +32,14 @@ const props = defineProps({
28
32
  const slots = defineSlots();
29
33
  const open = defineModel("open", { type: Boolean, ...{ default: false } });
30
34
  const route = useRoute();
31
- const { t } = useLocalePro();
35
+ const { t } = useLocale();
32
36
  const appConfig = useAppConfig();
33
37
  const [DefineLeftTemplate, ReuseLeftTemplate] = createReusableTemplate();
34
38
  const [DefineRightTemplate, ReuseRightTemplate] = createReusableTemplate();
35
39
  const [DefineToggleTemplate, ReuseToggleTemplate] = createReusableTemplate();
36
40
  const ariaLabel = computed(() => {
37
41
  const slotText = slots.title && getSlotChildrenText(slots.title());
38
- return (slotText || props.title || "Nuxt UI Pro").trim();
42
+ return (slotText || props.title || "Nuxt UI").trim();
39
43
  });
40
44
  watch(() => route.fullPath, () => {
41
45
  open.value = false;
@@ -94,7 +98,7 @@ function toggleOpen() {
94
98
  </div>
95
99
  </DefineRightTemplate>
96
100
 
97
- <Primitive :as="as" :class="ui.root({ class: [props.ui?.root, props.class] })">
101
+ <Primitive :as="as" v-bind="$attrs" :class="ui.root({ class: [props.ui?.root, props.class] })">
98
102
  <slot name="top" />
99
103
 
100
104
  <UContainer :class="ui.container({ class: props.ui?.container })">