@nuxt/ui 3.0.0-alpha.1 → 3.0.0-alpha.10

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 (332) hide show
  1. package/.nuxt/ui/accordion.ts +20 -0
  2. package/.nuxt/ui/alert.ts +242 -0
  3. package/.nuxt/ui/avatar-group.ts +40 -0
  4. package/.nuxt/ui/avatar.ts +42 -0
  5. package/.nuxt/ui/badge.ts +194 -0
  6. package/.nuxt/ui/breadcrumb.ts +45 -0
  7. package/.nuxt/ui/button-group.ts +16 -0
  8. package/.nuxt/ui/button.ts +344 -0
  9. package/.nuxt/ui/calendar.ts +85 -0
  10. package/.nuxt/ui/card.ts +8 -0
  11. package/.nuxt/ui/carousel.ts +41 -0
  12. package/.nuxt/ui/checkbox.ts +105 -0
  13. package/.nuxt/ui/chip.ts +67 -0
  14. package/.nuxt/ui/collapsible.ts +6 -0
  15. package/.nuxt/ui/color-picker.ts +39 -0
  16. package/.nuxt/ui/command-palette.ts +50 -0
  17. package/.nuxt/ui/container.ts +3 -0
  18. package/.nuxt/ui/context-menu.ts +198 -0
  19. package/.nuxt/ui/drawer.ts +55 -0
  20. package/.nuxt/ui/dropdown-menu.ts +199 -0
  21. package/.nuxt/ui/form-field.ts +40 -0
  22. package/.nuxt/ui/form.ts +3 -0
  23. package/.nuxt/ui/index.ts +48 -0
  24. package/.nuxt/ui/input-menu.ts +410 -0
  25. package/.nuxt/ui/input-number.ts +204 -0
  26. package/.nuxt/ui/input.ts +263 -0
  27. package/.nuxt/ui/kbd.ts +19 -0
  28. package/.nuxt/ui/link.ts +15 -0
  29. package/.nuxt/ui/modal.ts +28 -0
  30. package/.nuxt/ui/navigation-menu.ts +390 -0
  31. package/.nuxt/ui/pagination.ts +8 -0
  32. package/.nuxt/ui/pin-input.ts +145 -0
  33. package/.nuxt/ui/popover.ts +6 -0
  34. package/.nuxt/ui/progress.ts +258 -0
  35. package/.nuxt/ui/radio-group.ts +112 -0
  36. package/.nuxt/ui/select-menu.ts +316 -0
  37. package/.nuxt/ui/select.ts +315 -0
  38. package/.nuxt/ui/separator.ts +143 -0
  39. package/.nuxt/ui/skeleton.ts +3 -0
  40. package/.nuxt/ui/slideover.ts +63 -0
  41. package/.nuxt/ui/slider.ts +148 -0
  42. package/.nuxt/ui/stepper.ts +180 -0
  43. package/.nuxt/ui/switch.ts +113 -0
  44. package/.nuxt/ui/table.ts +129 -0
  45. package/.nuxt/ui/tabs.ts +227 -0
  46. package/.nuxt/ui/textarea.ts +263 -0
  47. package/.nuxt/ui/toast.ts +66 -0
  48. package/.nuxt/ui/toaster.ts +75 -0
  49. package/.nuxt/ui/tooltip.ts +9 -0
  50. package/README.md +75 -54
  51. package/cli/commands/{init.mjs → make/component.mjs} +5 -5
  52. package/cli/commands/make/index.mjs +14 -0
  53. package/cli/commands/make/locale.mjs +64 -0
  54. package/cli/index.mjs +2 -2
  55. package/cli/templates.mjs +52 -7
  56. package/cli/utils.mjs +14 -0
  57. package/dist/chunks/component-meta.cjs +82802 -0
  58. package/dist/chunks/component-meta.mjs +82800 -0
  59. package/dist/client/devtools/200.html +1 -0
  60. package/dist/client/devtools/404.html +1 -0
  61. package/dist/client/devtools/_fonts/rP2Wp2ywxg089UriCZaSExd86J3t9jz86MvyyKK58UfivUw4aw-SK92LTmKP0.woff2 +0 -0
  62. package/dist/client/devtools/_fonts/rP2Wp2ywxg089UriCZaSExd86J3t9jz86MvyyKy58UfivUw-9uYm8d48E4.woff2 +0 -0
  63. package/dist/client/devtools/_fonts/rP2Yp2ywxg089UriI5-g4vlH9VoD8Cmcqbu0-K6z9mXg-VNw7NHvqnp.woff2 +0 -0
  64. package/dist/client/devtools/_fonts/rP2Yp2ywxg089UriI5-g4vlH9VoD8Cmcqbu6-K6z9mXgjU0-EkYdMs3MAX.woff2 +0 -0
  65. package/dist/client/devtools/_fonts/rP2rp2ywxg089UriCZaSExd86J3t9jz86Mvy4qCRAL19DksVat-7DW3w-R7n06NbhGy.woff +0 -0
  66. package/dist/client/devtools/_fonts/rP2rp2ywxg089UriCZaSExd86J3t9jz86Mvy4qCRAL19DksVat-JDG3w-leGNfkTmsj.woff +0 -0
  67. package/dist/client/devtools/_fonts/rP2rp2ywxg089UriCZaSExd86J3t9jz86Mvy4qCRAL19DksVat-JDW3w-ciElMF03ku.woff +0 -0
  68. package/dist/client/devtools/_fonts/rP2rp2ywxg089UriCZaSExd86J3t9jz86Mvy4qCRAL19DksVat8JCm3w-sB722Uoa0f.woff +0 -0
  69. package/dist/client/devtools/_fonts/rP2rp2ywxg089UriCZaSExd86J3t9jz86Mvy4qCRAL19DksVat8JDW3w-PBDI1JDjwV.woff +0 -0
  70. package/dist/client/devtools/_fonts/rP2rp2ywxg089UriCZaSExd86J3t9jz86Mvy4qCRAL19DksVat8gCm3w-0q1hqVn09O.woff +0 -0
  71. package/dist/client/devtools/_fonts/rP2rp2ywxg089UriCZaSExd86J3t9jz86Mvy4qCRAL19DksVat9XCm3w-ByvzuLy2fa.woff +0 -0
  72. package/dist/client/devtools/_fonts/rP2rp2ywxg089UriCZaSExd86J3t9jz86Mvy4qCRAL19DksVat9uCm3w-5TKCIs6EEw.woff +0 -0
  73. package/dist/client/devtools/_fonts/rP2rp2ywxg089UriCZaSExd86J3t9jz86Mvy4qCRAL19DksVat_XDW3w-r2swRDGfn2.woff +0 -0
  74. package/dist/client/devtools/_fonts/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAC5thTQ-ldB60l5U8r.woff +0 -0
  75. package/dist/client/devtools/_fonts/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAIpthTQ-wbFKGFDrgo.woff +0 -0
  76. package/dist/client/devtools/_fonts/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAIpxhTQ-LLUBv5jskj.woff +0 -0
  77. package/dist/client/devtools/_fonts/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwARZthTQ-F71RdTRbNg.woff +0 -0
  78. package/dist/client/devtools/_fonts/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwA_JxhTQ-6nh65gZkc0.woff +0 -0
  79. package/dist/client/devtools/_fonts/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAfJthTQ-aMoWEJLmTt.woff +0 -0
  80. package/dist/client/devtools/_fonts/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAkJxhTQ-WMBvmLOgKm.woff +0 -0
  81. package/dist/client/devtools/_fonts/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAop1hTQ-utGC2hnWq2.woff +0 -0
  82. package/dist/client/devtools/_fonts/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAopxhTQ-YpyTieVa5B.woff +0 -0
  83. package/dist/client/devtools/_nuxt/B1fTd_Rf.js +1 -0
  84. package/dist/client/devtools/_nuxt/CSUxkedg.js +1 -0
  85. package/dist/client/devtools/_nuxt/CbRTGpb7.js +1 -0
  86. package/dist/client/devtools/_nuxt/YQTlxbcT.js +53 -0
  87. package/dist/client/devtools/_nuxt/builds/latest.json +1 -0
  88. package/dist/client/devtools/_nuxt/builds/meta/b3465abc-0a92-4ee7-ba6b-e5174891fcc0.json +1 -0
  89. package/dist/client/devtools/_nuxt/entry.DXXceQev.css +1 -0
  90. package/dist/client/devtools/_nuxt/error-404.BJpkZFyY.css +1 -0
  91. package/dist/client/devtools/_nuxt/error-500.D3i9VDlt.css +1 -0
  92. package/dist/client/devtools/favicon.svg +1 -0
  93. package/dist/client/devtools/index.html +1 -0
  94. package/dist/devtools/runtime/DevtoolsRenderer.vue +54 -0
  95. package/dist/devtools/runtime/examples/AvatarGroupExample.vue +7 -0
  96. package/dist/devtools/runtime/examples/ButtonGroupExample.vue +8 -0
  97. package/dist/devtools/runtime/examples/CardExample.vue +13 -0
  98. package/dist/devtools/runtime/examples/CarouselExample.vue +13 -0
  99. package/dist/devtools/runtime/examples/ChipExample.vue +5 -0
  100. package/dist/devtools/runtime/examples/CollapsibleExample.vue +8 -0
  101. package/dist/devtools/runtime/examples/CommandPaletteExample.vue +29 -0
  102. package/dist/devtools/runtime/examples/ContainerExample.vue +5 -0
  103. package/dist/devtools/runtime/examples/ContextMenuExample.vue +5 -0
  104. package/dist/devtools/runtime/examples/DrawerExample.vue +8 -0
  105. package/dist/devtools/runtime/examples/DropdownMenuExample.vue +5 -0
  106. package/dist/devtools/runtime/examples/FormExample.vue +30 -0
  107. package/dist/devtools/runtime/examples/FormFieldExample.vue +5 -0
  108. package/dist/devtools/runtime/examples/LinkExample.vue +5 -0
  109. package/dist/devtools/runtime/examples/ModalExample.vue +8 -0
  110. package/dist/devtools/runtime/examples/PopoverExample.vue +8 -0
  111. package/dist/devtools/runtime/examples/SkeletonExample.vue +3 -0
  112. package/dist/devtools/runtime/examples/SlideoverExample.vue +8 -0
  113. package/dist/devtools/runtime/examples/StepperExample.vue +44 -0
  114. package/dist/devtools/runtime/examples/ToasterExample.vue +11 -0
  115. package/dist/devtools/runtime/examples/TooltipExample.vue +5 -0
  116. package/dist/module.cjs +223 -4
  117. package/dist/module.d.cts +54 -0
  118. package/dist/module.d.mts +38 -7
  119. package/dist/module.d.ts +38 -7
  120. package/dist/module.json +2 -1
  121. package/dist/module.mjs +179 -2568
  122. package/dist/runtime/components/Accordion.vue +49 -8
  123. package/dist/runtime/components/Alert.vue +13 -6
  124. package/dist/runtime/components/App.vue +20 -7
  125. package/dist/runtime/components/Avatar.vue +33 -9
  126. package/dist/runtime/components/AvatarGroup.vue +4 -1
  127. package/dist/runtime/components/Badge.vue +34 -4
  128. package/dist/runtime/components/Breadcrumb.vue +52 -13
  129. package/dist/runtime/components/Button.vue +45 -6
  130. package/dist/runtime/components/ButtonGroup.vue +5 -2
  131. package/dist/runtime/components/Calendar.vue +190 -0
  132. package/dist/runtime/components/Card.vue +4 -1
  133. package/dist/runtime/components/Carousel.vue +322 -0
  134. package/dist/runtime/components/Checkbox.vue +28 -33
  135. package/dist/runtime/components/Chip.vue +9 -2
  136. package/dist/runtime/components/Collapsible.vue +7 -4
  137. package/dist/runtime/components/ColorPicker.vue +265 -0
  138. package/dist/runtime/components/CommandPalette.vue +122 -96
  139. package/dist/runtime/components/Container.vue +4 -1
  140. package/dist/runtime/components/ContextMenu.vue +101 -14
  141. package/dist/runtime/components/ContextMenuContent.vue +48 -18
  142. package/dist/runtime/components/Drawer.vue +22 -11
  143. package/dist/runtime/components/DropdownMenu.vue +91 -16
  144. package/dist/runtime/components/DropdownMenuContent.vue +50 -18
  145. package/dist/runtime/components/Form.vue +49 -32
  146. package/dist/runtime/components/FormField.vue +18 -6
  147. package/dist/runtime/components/Icon.vue +1 -1
  148. package/dist/runtime/components/Input.vue +15 -6
  149. package/dist/runtime/components/InputMenu.vue +152 -65
  150. package/dist/runtime/components/InputNumber.vue +192 -0
  151. package/dist/runtime/components/Kbd.vue +3 -1
  152. package/dist/runtime/components/Link.vue +71 -8
  153. package/dist/runtime/components/LinkBase.vue +10 -7
  154. package/dist/runtime/components/Modal.vue +23 -11
  155. package/dist/runtime/components/NavigationMenu.vue +170 -75
  156. package/dist/runtime/components/Pagination.vue +31 -15
  157. package/dist/runtime/components/PinInput.vue +96 -0
  158. package/dist/runtime/components/Popover.vue +26 -7
  159. package/dist/runtime/components/Progress.vue +25 -8
  160. package/dist/runtime/components/RadioGroup.vue +28 -7
  161. package/dist/runtime/components/Select.vue +79 -32
  162. package/dist/runtime/components/SelectMenu.vue +164 -80
  163. package/dist/runtime/components/Separator.vue +3 -3
  164. package/dist/runtime/components/Skeleton.vue +4 -1
  165. package/dist/runtime/components/Slideover.vue +23 -11
  166. package/dist/runtime/components/Slider.vue +3 -3
  167. package/dist/runtime/components/Stepper.vue +171 -0
  168. package/dist/runtime/components/Switch.vue +16 -16
  169. package/dist/runtime/components/Table.vue +262 -0
  170. package/dist/runtime/components/Tabs.vue +42 -15
  171. package/dist/runtime/components/Textarea.vue +9 -3
  172. package/dist/runtime/components/Toast.vue +13 -5
  173. package/dist/runtime/components/Toaster.vue +31 -16
  174. package/dist/runtime/components/Tooltip.vue +9 -6
  175. package/dist/runtime/composables/defineLocale.d.ts +9 -0
  176. package/dist/runtime/composables/defineLocale.js +4 -0
  177. package/dist/runtime/composables/defineShortcuts.d.ts +1 -1
  178. package/dist/runtime/composables/defineShortcuts.js +2 -8
  179. package/dist/runtime/composables/extendDevtoolsMeta.d.ts +7 -0
  180. package/dist/runtime/composables/extendDevtoolsMeta.js +2 -0
  181. package/dist/runtime/composables/useAvatarGroup.d.ts +1 -1
  182. package/dist/runtime/composables/useButtonGroup.d.ts +2 -2
  183. package/dist/runtime/composables/useComponentIcons.d.ts +3 -0
  184. package/dist/runtime/composables/useFormField.d.ts +8 -4
  185. package/dist/runtime/composables/useFormField.js +2 -1
  186. package/dist/runtime/composables/useKbd.d.ts +10 -3
  187. package/dist/runtime/composables/useKbd.js +14 -8
  188. package/dist/runtime/composables/useLocale.d.ts +4 -0
  189. package/dist/runtime/composables/useLocale.js +10 -0
  190. package/dist/runtime/composables/useModal.d.ts +2 -2
  191. package/dist/runtime/composables/useSlideover.d.ts +2 -2
  192. package/dist/runtime/composables/useToast.d.ts +2 -2
  193. package/dist/runtime/index.css +1 -1
  194. package/dist/runtime/keyframes.css +1 -0
  195. package/dist/runtime/locale/ar.d.ts +2 -0
  196. package/dist/runtime/locale/ar.js +53 -0
  197. package/dist/runtime/locale/cs.d.ts +2 -0
  198. package/dist/runtime/locale/cs.js +52 -0
  199. package/dist/runtime/locale/de.d.ts +2 -0
  200. package/dist/runtime/locale/de.js +52 -0
  201. package/dist/runtime/locale/en.d.ts +2 -0
  202. package/dist/runtime/locale/en.js +52 -0
  203. package/dist/runtime/locale/es.d.ts +2 -0
  204. package/dist/runtime/locale/es.js +52 -0
  205. package/dist/runtime/locale/fa_ir.d.ts +2 -0
  206. package/dist/runtime/locale/fa_ir.js +53 -0
  207. package/dist/runtime/locale/fr.d.ts +2 -0
  208. package/dist/runtime/locale/fr.js +52 -0
  209. package/dist/runtime/locale/index.d.ts +19 -0
  210. package/dist/runtime/locale/index.js +19 -0
  211. package/dist/runtime/locale/it.d.ts +2 -0
  212. package/dist/runtime/locale/it.js +52 -0
  213. package/dist/runtime/locale/ja.d.ts +2 -0
  214. package/dist/runtime/locale/ja.js +52 -0
  215. package/dist/runtime/locale/ko.d.ts +2 -0
  216. package/dist/runtime/locale/ko.js +52 -0
  217. package/dist/runtime/locale/nl.d.ts +2 -0
  218. package/dist/runtime/locale/nl.js +52 -0
  219. package/dist/runtime/locale/pl.d.ts +2 -0
  220. package/dist/runtime/locale/pl.js +52 -0
  221. package/dist/runtime/locale/pt.d.ts +2 -0
  222. package/dist/runtime/locale/pt.js +52 -0
  223. package/dist/runtime/locale/pt_br.d.ts +2 -0
  224. package/dist/runtime/locale/pt_br.js +52 -0
  225. package/dist/runtime/locale/ru.d.ts +2 -0
  226. package/dist/runtime/locale/ru.js +52 -0
  227. package/dist/runtime/locale/sk.d.ts +2 -0
  228. package/dist/runtime/locale/sk.js +52 -0
  229. package/dist/runtime/locale/tr.d.ts +2 -0
  230. package/dist/runtime/locale/tr.js +52 -0
  231. package/dist/runtime/locale/zh_hans.d.ts +2 -0
  232. package/dist/runtime/locale/zh_hans.js +52 -0
  233. package/dist/runtime/locale/zh_hant.d.ts +2 -0
  234. package/dist/runtime/locale/zh_hant.js +52 -0
  235. package/dist/runtime/plugins/colors.js +12 -8
  236. package/dist/runtime/types/form.d.ts +9 -2
  237. package/dist/runtime/types/index.d.ts +50 -42
  238. package/dist/runtime/types/index.js +8 -0
  239. package/dist/runtime/types/locale.d.ts +54 -0
  240. package/dist/runtime/types/utils.d.ts +8 -3
  241. package/dist/runtime/utils/form.d.ts +7 -5
  242. package/dist/runtime/utils/form.js +117 -28
  243. package/dist/runtime/utils/index.d.ts +2 -1
  244. package/dist/runtime/utils/index.js +16 -0
  245. package/dist/runtime/utils/link.d.ts +5 -3
  246. package/dist/runtime/utils/link.js +1 -1
  247. package/dist/runtime/utils/locale.d.ts +15 -0
  248. package/dist/runtime/utils/locale.js +25 -0
  249. package/dist/runtime/vue/components/Icon.vue +15 -0
  250. package/dist/runtime/vue/components/Link.vue +208 -0
  251. package/dist/runtime/vue/plugins/color-mode.d.ts +4 -0
  252. package/dist/runtime/vue/plugins/color-mode.js +6 -0
  253. package/dist/runtime/vue/plugins/head.d.ts +4 -0
  254. package/dist/runtime/vue/plugins/head.js +6 -0
  255. package/dist/runtime/vue/stubs.d.ts +15 -0
  256. package/dist/runtime/vue/stubs.js +27 -0
  257. package/dist/shared/ui.CwmIkD_Y.cjs +3269 -0
  258. package/dist/shared/ui.D_93iuwH.mjs +3262 -0
  259. package/dist/unplugin.cjs +192 -0
  260. package/dist/unplugin.d.cts +49 -0
  261. package/dist/unplugin.d.mts +49 -0
  262. package/dist/unplugin.d.ts +49 -0
  263. package/dist/unplugin.mjs +181 -0
  264. package/dist/vite.cjs +22 -0
  265. package/dist/vite.d.cts +13 -0
  266. package/dist/vite.d.mts +13 -0
  267. package/dist/vite.d.ts +13 -0
  268. package/dist/vite.mjs +20 -0
  269. package/package.json +98 -31
  270. package/vue-plugin.d.ts +5 -0
  271. package/cli/node_modules/.ignored/citty/LICENSE +0 -36
  272. package/cli/node_modules/.ignored/citty/README.md +0 -134
  273. package/cli/node_modules/.ignored/citty/dist/index.cjs +0 -475
  274. package/cli/node_modules/.ignored/citty/dist/index.d.cts +0 -80
  275. package/cli/node_modules/.ignored/citty/dist/index.d.mts +0 -80
  276. package/cli/node_modules/.ignored/citty/dist/index.d.ts +0 -80
  277. package/cli/node_modules/.ignored/citty/dist/index.mjs +0 -463
  278. package/cli/node_modules/.ignored/citty/package.json +0 -49
  279. package/cli/node_modules/.ignored/consola/LICENSE +0 -47
  280. package/cli/node_modules/.ignored/consola/README.md +0 -318
  281. package/cli/node_modules/.ignored/consola/core.d.ts +0 -1
  282. package/cli/node_modules/.ignored/consola/dist/basic.cjs +0 -32
  283. package/cli/node_modules/.ignored/consola/dist/basic.d.ts +0 -9
  284. package/cli/node_modules/.ignored/consola/dist/basic.mjs +0 -24
  285. package/cli/node_modules/.ignored/consola/dist/browser.cjs +0 -80
  286. package/cli/node_modules/.ignored/consola/dist/browser.d.ts +0 -7
  287. package/cli/node_modules/.ignored/consola/dist/browser.mjs +0 -72
  288. package/cli/node_modules/.ignored/consola/dist/chunks/prompt.cjs +0 -436
  289. package/cli/node_modules/.ignored/consola/dist/chunks/prompt.mjs +0 -429
  290. package/cli/node_modules/.ignored/consola/dist/core.cjs +0 -415
  291. package/cli/node_modules/.ignored/consola/dist/core.d.ts +0 -124
  292. package/cli/node_modules/.ignored/consola/dist/core.mjs +0 -410
  293. package/cli/node_modules/.ignored/consola/dist/index.cjs +0 -21
  294. package/cli/node_modules/.ignored/consola/dist/index.d.ts +0 -9
  295. package/cli/node_modules/.ignored/consola/dist/index.mjs +0 -8
  296. package/cli/node_modules/.ignored/consola/dist/shared/consola.06ad8a64.mjs +0 -62
  297. package/cli/node_modules/.ignored/consola/dist/shared/consola.36c0034f.mjs +0 -636
  298. package/cli/node_modules/.ignored/consola/dist/shared/consola.4bbae468.cjs +0 -645
  299. package/cli/node_modules/.ignored/consola/dist/shared/consola.deac7d5a.cjs +0 -65
  300. package/cli/node_modules/.ignored/consola/dist/utils.cjs +0 -308
  301. package/cli/node_modules/.ignored/consola/dist/utils.d.ts +0 -169
  302. package/cli/node_modules/.ignored/consola/dist/utils.mjs +0 -284
  303. package/cli/node_modules/.ignored/consola/lib/index.cjs +0 -9
  304. package/cli/node_modules/.ignored/consola/package.json +0 -101
  305. package/cli/node_modules/.ignored/consola/utils.d.ts +0 -1
  306. package/cli/node_modules/.ignored/pathe/LICENSE +0 -44
  307. package/cli/node_modules/.ignored/pathe/README.md +0 -69
  308. package/cli/node_modules/.ignored/pathe/dist/index.cjs +0 -23
  309. package/cli/node_modules/.ignored/pathe/dist/index.d.cts +0 -36
  310. package/cli/node_modules/.ignored/pathe/dist/index.d.mts +0 -36
  311. package/cli/node_modules/.ignored/pathe/dist/index.d.ts +0 -36
  312. package/cli/node_modules/.ignored/pathe/dist/index.mjs +0 -1
  313. package/cli/node_modules/.ignored/pathe/dist/shared/pathe.1f0a373c.cjs +0 -238
  314. package/cli/node_modules/.ignored/pathe/dist/shared/pathe.ff20891b.mjs +0 -221
  315. package/cli/node_modules/.ignored/pathe/dist/utils.cjs +0 -58
  316. package/cli/node_modules/.ignored/pathe/dist/utils.d.cts +0 -5
  317. package/cli/node_modules/.ignored/pathe/dist/utils.d.mts +0 -5
  318. package/cli/node_modules/.ignored/pathe/dist/utils.d.ts +0 -5
  319. package/cli/node_modules/.ignored/pathe/dist/utils.mjs +0 -54
  320. package/cli/node_modules/.ignored/pathe/package.json +0 -48
  321. package/cli/node_modules/.ignored/pathe/utils.d.ts +0 -1
  322. package/cli/node_modules/.ignored/scule/LICENSE +0 -21
  323. package/cli/node_modules/.ignored/scule/README.md +0 -149
  324. package/cli/node_modules/.ignored/scule/dist/index.cjs +0 -92
  325. package/cli/node_modules/.ignored/scule/dist/index.d.cts +0 -57
  326. package/cli/node_modules/.ignored/scule/dist/index.d.mts +0 -57
  327. package/cli/node_modules/.ignored/scule/dist/index.d.ts +0 -57
  328. package/cli/node_modules/.ignored/scule/dist/index.mjs +0 -80
  329. package/cli/node_modules/.ignored/scule/package.json +0 -43
  330. package/cli/node_modules/.package-lock.json +0 -33
  331. package/dist/runtime/types/component.d.ts +0 -17
  332. /package/dist/runtime/types/{component.js → locale.js} +0 -0
@@ -3,6 +3,7 @@ import { tv } from 'tailwind-variants'
3
3
  import type { AppConfig } from '@nuxt/schema'
4
4
  import _appConfig from '#build/app.config'
5
5
  import theme from '#build/ui/form'
6
+ import { extendDevtoolsMeta } from '../composables/extendDevtoolsMeta'
6
7
  import type { FormSchema, FormError, FormInputEvents, FormErrorEvent, FormSubmitEvent, FormEvent, Form, FormErrorWithId } from '../types/form'
7
8
 
8
9
  const appConfig = _appConfig as AppConfig & { ui: { form: Partial<typeof theme> } }
@@ -13,11 +14,12 @@ export interface FormProps<T extends object> {
13
14
  id?: string | number
14
15
  schema?: FormSchema<T>
15
16
  state: Partial<T>
16
- validate?: (state: Partial<T>) => Promise<FormError[]>
17
+ validate?: (state: Partial<T>) => Promise<FormError[]> | FormError[]
17
18
  validateOn?: FormInputEvents[]
18
19
  disabled?: boolean
19
20
  validateOnInputDelay?: number
20
21
  class?: any
22
+ onSubmit?: ((event: FormSubmitEvent<T>) => void | Promise<void>) | (() => void | Promise<void>)
21
23
  }
22
24
 
23
25
  export interface FormEmits<T extends object> {
@@ -28,13 +30,15 @@ export interface FormEmits<T extends object> {
28
30
  export interface FormSlots {
29
31
  default(props?: {}): any
30
32
  }
33
+
34
+ extendDevtoolsMeta({ example: 'FormExample' })
31
35
  </script>
32
36
 
33
37
  <script lang="ts" setup generic="T extends object">
34
- import { provide, inject, nextTick, ref, onUnmounted, onMounted, computed, useId } from 'vue'
38
+ import { provide, inject, nextTick, ref, onUnmounted, onMounted, computed, useId, readonly } from 'vue'
35
39
  import { useEventBus } from '@vueuse/core'
36
- import { formOptionsInjectionKey, formInputsInjectionKey, formBusInjectionKey } from '../composables/useFormField'
37
- import { getYupErrors, isYupSchema, getValibotError, isValibotSchema, getZodErrors, isZodSchema, getJoiErrors, isJoiSchema } from '../utils/form'
40
+ import { formOptionsInjectionKey, formInputsInjectionKey, formBusInjectionKey, formLoadingInjectionKey } from '../composables/useFormField'
41
+ import { parseSchema } from '../utils/form'
38
42
  import { FormValidationException } from '../types/form'
39
43
 
40
44
  const props = withDefaults(defineProps<FormProps<T>>(), {
@@ -53,6 +57,7 @@ const parentBus = inject(
53
57
  formBusInjectionKey,
54
58
  undefined
55
59
  )
60
+
56
61
  provide(formBusInjectionKey, bus)
57
62
 
58
63
  const nestedForms = ref<Map<string | number, { validate: () => any }>>(new Map())
@@ -86,38 +91,29 @@ onUnmounted(() => {
86
91
  }
87
92
  })
88
93
 
89
- provide(formOptionsInjectionKey, computed(() => ({
90
- disabled: props.disabled,
91
- validateOnInputDelay: props.validateOnInputDelay
92
- })))
93
-
94
94
  const errors = ref<FormErrorWithId[]>([])
95
95
  provide('form-errors', errors)
96
96
 
97
- const inputs = ref<Record<string, string>>({})
97
+ const inputs = ref<Record<string, { id?: string, pattern?: RegExp }>>({})
98
98
  provide(formInputsInjectionKey, inputs)
99
99
 
100
100
  function resolveErrorIds(errs: FormError[]): FormErrorWithId[] {
101
101
  return errs.map(err => ({
102
102
  ...err,
103
- id: inputs.value[err.name]
103
+ id: inputs.value[err.name]?.id
104
104
  }))
105
105
  }
106
106
 
107
+ const parsedValue = ref<T | null>(null)
107
108
  async function getErrors(): Promise<FormErrorWithId[]> {
108
109
  let errs = props.validate ? (await props.validate(props.state)) ?? [] : []
109
110
 
110
111
  if (props.schema) {
111
- if (isZodSchema(props.schema)) {
112
- errs = errs.concat(await getZodErrors(props.state, props.schema))
113
- } else if (isYupSchema(props.schema)) {
114
- errs = errs.concat(await getYupErrors(props.state, props.schema))
115
- } else if (isJoiSchema(props.schema)) {
116
- errs = errs.concat(await getJoiErrors(props.state, props.schema))
117
- } else if (isValibotSchema(props.schema)) {
118
- errs = errs.concat(await getValibotError(props.state, props.schema))
112
+ const { errors, result } = await parseSchema(props.state, props.schema as FormSchema<typeof props.state>)
113
+ if (errors) {
114
+ errs = errs.concat(errors)
119
115
  } else {
120
- throw new Error('Form validation failed: Unsupported form schema')
116
+ parsedValue.value = result
121
117
  }
122
118
  }
123
119
 
@@ -125,7 +121,7 @@ async function getErrors(): Promise<FormErrorWithId[]> {
125
121
  }
126
122
 
127
123
  async function _validate(opts: { name?: string | string[], silent?: boolean, nested?: boolean } = { silent: false, nested: true }): Promise<T | false> {
128
- const names = opts.name && !Array.isArray(opts.name) ? [opts.name] : opts.name
124
+ const names = opts.name && !Array.isArray(opts.name) ? [opts.name] : opts.name as string[]
129
125
 
130
126
  const nestedValidatePromises = !names && opts.nested
131
127
  ? Array.from(nestedForms.value.values()).map(
@@ -139,15 +135,23 @@ async function _validate(opts: { name?: string | string[], silent?: boolean, nes
139
135
  : []
140
136
 
141
137
  if (names) {
142
- const otherErrors = errors.value.filter(error => !names!.includes(error.name))
143
- const pathErrors = (await getErrors()).filter(error => names!.includes(error.name)
144
- )
138
+ const otherErrors = errors.value.filter(error => !names.some((name) => {
139
+ const pattern = inputs.value?.[name]?.pattern
140
+ return name === error.name || (pattern && error.name.match(pattern))
141
+ }))
142
+
143
+ const pathErrors = (await getErrors()).filter(error => names.some((name) => {
144
+ const pattern = inputs.value?.[name]?.pattern
145
+ return name === error.name || (pattern && error.name.match(pattern))
146
+ }))
147
+
145
148
  errors.value = otherErrors.concat(pathErrors)
146
149
  } else {
147
150
  errors.value = await getErrors()
148
151
  }
149
152
 
150
- const childErrors = nestedValidatePromises ? await Promise.all(nestedValidatePromises) : []
153
+ const childErrors = (await Promise.all(nestedValidatePromises)).filter(val => val)
154
+
151
155
  if (errors.value.length + childErrors.length > 0) {
152
156
  if (opts.silent) return false
153
157
  throw new FormValidationException(formId, errors.value, childErrors)
@@ -156,13 +160,18 @@ async function _validate(opts: { name?: string | string[], silent?: boolean, nes
156
160
  return props.state as T
157
161
  }
158
162
 
159
- async function onSubmit(payload: Event) {
163
+ const loading = ref(false)
164
+ provide(formLoadingInjectionKey, readonly(loading))
165
+
166
+ async function onSubmitWrapper(payload: Event) {
167
+ loading.value = true
168
+
160
169
  const event = payload as FormSubmitEvent<any>
161
170
 
162
171
  try {
163
172
  await _validate({ nested: true })
164
- event.data = props.state
165
- emits('submit', event)
173
+ event.data = props.schema ? parsedValue.value : props.state
174
+ await props.onSubmit?.(event)
166
175
  } catch (error) {
167
176
  if (!(error instanceof FormValidationException)) {
168
177
  throw error
@@ -173,11 +182,19 @@ async function onSubmit(payload: Event) {
173
182
  errors: error.errors,
174
183
  childrens: error.childrens
175
184
  }
176
-
177
185
  emits('error', errorEvent)
178
186
  }
187
+
188
+ loading.value = false
179
189
  }
180
190
 
191
+ const disabled = computed(() => props.disabled || loading.value)
192
+
193
+ provide(formOptionsInjectionKey, computed(() => ({
194
+ disabled: disabled.value,
195
+ validateOnInputDelay: props.validateOnInputDelay
196
+ })))
197
+
181
198
  defineExpose<Form<T>>({
182
199
  validate: _validate,
183
200
  errors,
@@ -193,7 +210,7 @@ defineExpose<Form<T>>({
193
210
  },
194
211
 
195
212
  async submit() {
196
- await onSubmit(new Event('submit'))
213
+ await onSubmitWrapper(new Event('submit'))
197
214
  },
198
215
 
199
216
  getErrors(name?: string) {
@@ -211,7 +228,7 @@ defineExpose<Form<T>>({
211
228
  }
212
229
  },
213
230
 
214
- disabled: computed(() => props.disabled)
231
+ disabled
215
232
  })
216
233
  </script>
217
234
 
@@ -220,7 +237,7 @@ defineExpose<Form<T>>({
220
237
  :is="parentBus ? 'div' : 'form'"
221
238
  :id="formId"
222
239
  :class="form({ class: props.class })"
223
- @submit.prevent="onSubmit"
240
+ @submit.prevent="onSubmitWrapper"
224
241
  >
225
242
  <slot />
226
243
  </component>
@@ -3,6 +3,7 @@ import { tv, type VariantProps } from 'tailwind-variants'
3
3
  import type { AppConfig } from '@nuxt/schema'
4
4
  import _appConfig from '#build/app.config'
5
5
  import theme from '#build/ui/form-field'
6
+ import { extendDevtoolsMeta } from '../composables/extendDevtoolsMeta'
6
7
 
7
8
  const appConfig = _appConfig as AppConfig & { ui: { formField: Partial<typeof theme> } }
8
9
 
@@ -11,7 +12,15 @@ const formField = tv({ extend: tv(theme), ...(appConfig.ui?.formField || {}) })
11
12
  type FormFieldVariants = VariantProps<typeof formField>
12
13
 
13
14
  export interface FormFieldProps {
15
+ /**
16
+ * The element or component this component should render as.
17
+ * @defaultValue 'div'
18
+ */
19
+ as?: any
20
+ /** The name of the FormField. Also used to match form errors. */
14
21
  name?: string
22
+ /** A regular expression to match form error names. */
23
+ errorPattern?: RegExp
15
24
  label?: string
16
25
  description?: string
17
26
  help?: string
@@ -33,11 +42,13 @@ export interface FormFieldSlots {
33
42
  error(props: { error?: string | boolean }): any
34
43
  default(props: { error?: string | boolean }): any
35
44
  }
45
+
46
+ extendDevtoolsMeta({ example: 'FormFieldExample', defaultProps: { label: 'Label' } })
36
47
  </script>
37
48
 
38
49
  <script setup lang="ts">
39
50
  import { computed, ref, inject, provide, type Ref, useId } from 'vue'
40
- import { Label } from 'radix-vue'
51
+ import { Primitive, Label } from 'reka-ui'
41
52
  import { formFieldInjectionKey, inputIdInjectionKey } from '../composables/useFormField'
42
53
  import type { FormError, FormFieldInjectedOptions } from '../types/form'
43
54
 
@@ -51,7 +62,7 @@ const ui = computed(() => formField({
51
62
 
52
63
  const formErrors = inject<Ref<FormError[]> | null>('form-errors', null)
53
64
 
54
- const error = computed(() => props.error || formErrors?.value?.find(error => error.name === props.name)?.message)
65
+ const error = computed(() => props.error || formErrors?.value?.find(error => error.name === props.name || (props.errorPattern && error.name.match(props.errorPattern)))?.message)
55
66
 
56
67
  const id = ref(useId())
57
68
 
@@ -62,12 +73,13 @@ provide(formFieldInjectionKey, computed(() => ({
62
73
  name: props.name,
63
74
  size: props.size,
64
75
  eagerValidation: props.eagerValidation,
65
- validateOnInputDelay: props.validateOnInputDelay
76
+ validateOnInputDelay: props.validateOnInputDelay,
77
+ errorPattern: props.errorPattern
66
78
  }) as FormFieldInjectedOptions<FormFieldProps>))
67
79
  </script>
68
80
 
69
81
  <template>
70
- <div :class="ui.root({ class: [props.class, props.ui?.root] })">
82
+ <Primitive :as="as" :class="ui.root({ class: [props.class, props.ui?.root] })">
71
83
  <div :class="ui.wrapper({ class: props.ui?.wrapper })">
72
84
  <div v-if="label || !!slots.label" :class="ui.labelWrapper({ class: props.ui?.labelWrapper })">
73
85
  <Label :for="id" :class="ui.label({ class: props.ui?.label })">
@@ -89,7 +101,7 @@ provide(formFieldInjectionKey, computed(() => ({
89
101
  </p>
90
102
  </div>
91
103
 
92
- <div :class="[label && ui.container({ class: props.ui?.container })]">
104
+ <div :class="[(label || !!slots.label || description || !!slots.description) && ui.container({ class: props.ui?.container })]">
93
105
  <slot :error="error" />
94
106
 
95
107
  <p v-if="(typeof error === 'string' && error) || !!slots.error" :class="ui.error({ class: props.ui?.error })">
@@ -103,5 +115,5 @@ provide(formFieldInjectionKey, computed(() => ({
103
115
  </slot>
104
116
  </p>
105
117
  </div>
106
- </div>
118
+ </Primitive>
107
119
  </template>
@@ -13,7 +13,7 @@ export interface IconProps {
13
13
  </script>
14
14
 
15
15
  <script setup lang="ts">
16
- import { useForwardProps } from 'radix-vue'
16
+ import { useForwardProps } from 'reka-ui'
17
17
  import { reactivePick } from '@vueuse/core'
18
18
 
19
19
  const props = defineProps<IconProps>()
@@ -5,6 +5,7 @@ import type { AppConfig } from '@nuxt/schema'
5
5
  import _appConfig from '#build/app.config'
6
6
  import theme from '#build/ui/input'
7
7
  import type { UseComponentIconsProps } from '../composables/useComponentIcons'
8
+ import type { AvatarProps } from '../types'
8
9
  import type { PartialString } from '../types/utils'
9
10
 
10
11
  const appConfig = _appConfig as AppConfig & { ui: { input: Partial<typeof theme> } }
@@ -14,6 +15,11 @@ const input = tv({ extend: tv(theme), ...(appConfig.ui?.input || {}) })
14
15
  type InputVariants = VariantProps<typeof input>
15
16
 
16
17
  export interface InputProps extends UseComponentIconsProps {
18
+ /**
19
+ * The element or component this component should render as.
20
+ * @defaultValue 'div'
21
+ */
22
+ as?: any
17
23
  id?: string
18
24
  name?: string
19
25
  type?: InputHTMLAttributes['type']
@@ -48,11 +54,13 @@ export interface InputSlots {
48
54
 
49
55
  <script setup lang="ts">
50
56
  import { ref, computed, onMounted } from 'vue'
57
+ import { Primitive } from 'reka-ui'
51
58
  import { useButtonGroup } from '../composables/useButtonGroup'
52
59
  import { useComponentIcons } from '../composables/useComponentIcons'
53
60
  import { useFormField } from '../composables/useFormField'
54
- import UIcon from './Icon.vue'
55
61
  import { looseToNumber } from '../utils'
62
+ import UIcon from './Icon.vue'
63
+ import UAvatar from './Avatar.vue'
56
64
 
57
65
  defineOptions({ inheritAttrs: false })
58
66
 
@@ -79,7 +87,7 @@ const ui = computed(() => input({
79
87
  size: inputSize?.value,
80
88
  loading: props.loading,
81
89
  highlight: highlight.value,
82
- leading: isLeading.value || !!slots.leading,
90
+ leading: isLeading.value || !!props.avatar || !!slots.leading,
83
91
  trailing: isTrailing.value || !!slots.trailing,
84
92
  buttonGroup: orientation.value
85
93
  }))
@@ -145,7 +153,7 @@ onMounted(() => {
145
153
  </script>
146
154
 
147
155
  <template>
148
- <div :class="ui.root({ class: [props.class, props.ui?.root] })">
156
+ <Primitive :as="as" :class="ui.root({ class: [props.class, props.ui?.root] })">
149
157
  <input
150
158
  :id="id"
151
159
  ref="inputRef"
@@ -165,9 +173,10 @@ onMounted(() => {
165
173
 
166
174
  <slot />
167
175
 
168
- <span v-if="isLeading || !!slots.leading" :class="ui.leading({ class: props.ui?.leading })">
176
+ <span v-if="isLeading || !!avatar || !!slots.leading" :class="ui.leading({ class: props.ui?.leading })">
169
177
  <slot name="leading">
170
- <UIcon v-if="leadingIconName" :name="leadingIconName" :class="ui.leadingIcon({ class: props.ui?.leadingIcon })" />
178
+ <UIcon v-if="isLeading && leadingIconName" :name="leadingIconName" :class="ui.leadingIcon({ class: props.ui?.leadingIcon })" />
179
+ <UAvatar v-else-if="!!avatar" :size="((props.ui?.leadingAvatarSize || ui.leadingAvatarSize()) as AvatarProps['size'])" v-bind="avatar" :class="ui.leadingAvatar({ class: props.ui?.leadingAvatar })" />
171
180
  </slot>
172
181
  </span>
173
182
 
@@ -176,5 +185,5 @@ onMounted(() => {
176
185
  <UIcon v-if="trailingIconName" :name="trailingIconName" :class="ui.trailingIcon({ class: props.ui?.trailingIcon })" />
177
186
  </slot>
178
187
  </span>
179
- </div>
188
+ </Primitive>
180
189
  </template>