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

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