@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
@@ -1,18 +1,19 @@
1
1
  <script lang="ts">
2
2
  import { tv, type VariantProps } from 'tailwind-variants'
3
- import type { SelectRootProps, SelectRootEmits, SelectContentProps, SelectArrowProps, SelectItemProps } from 'radix-vue'
3
+ import type { SelectRootProps, SelectRootEmits, SelectContentProps, SelectArrowProps, AcceptableValue } from 'reka-ui'
4
4
  import type { AppConfig } from '@nuxt/schema'
5
5
  import _appConfig from '#build/app.config'
6
6
  import theme from '#build/ui/select'
7
7
  import type { UseComponentIconsProps } from '../composables/useComponentIcons'
8
+ import { extendDevtoolsMeta } from '../composables/extendDevtoolsMeta'
8
9
  import type { AvatarProps, ChipProps, InputProps } from '../types'
9
- import type { AcceptableValue, PartialString } from '../types/utils'
10
+ import type { PartialString, MaybeArrayOfArray, MaybeArrayOfArrayItem, SelectModelValue, SelectModelValueEmits, SelectItemKey } from '../types/utils'
10
11
 
11
12
  const appConfig = _appConfig as AppConfig & { ui: { select: Partial<typeof theme> } }
12
13
 
13
14
  const select = tv({ extend: tv(theme), ...(appConfig.ui?.select || {}) })
14
15
 
15
- export interface SelectItem extends Pick<SelectItemProps, 'disabled' | 'value'> {
16
+ export interface SelectItem {
16
17
  label?: string
17
18
  icon?: string
18
19
  avatar?: AvatarProps
@@ -22,11 +23,13 @@ export interface SelectItem extends Pick<SelectItemProps, 'disabled' | 'value'>
22
23
  * @defaultValue 'item'
23
24
  */
24
25
  type?: 'label' | 'separator' | 'item'
26
+ value?: string
27
+ disabled?: boolean
25
28
  }
26
29
 
27
30
  type SelectVariants = VariantProps<typeof select>
28
31
 
29
- export interface SelectProps<T> extends Omit<SelectRootProps, 'dir'>, UseComponentIconsProps {
32
+ export interface SelectProps<T extends MaybeArrayOfArrayItem<I>, I extends MaybeArrayOfArray<SelectItem | AcceptableValue | boolean> = MaybeArrayOfArray<SelectItem | AcceptableValue | boolean>, V extends SelectItemKey<T> | undefined = undefined, M extends boolean = false> extends Omit<SelectRootProps<T>, 'dir' | 'multiple' | 'modelValue' | 'defaultValue' | 'by'>, UseComponentIconsProps {
30
33
  id?: string
31
34
  /** The placeholder text when the select is empty. */
32
35
  placeholder?: string
@@ -45,7 +48,7 @@ export interface SelectProps<T> extends Omit<SelectRootProps, 'dir'>, UseCompone
45
48
  selectedIcon?: string
46
49
  /**
47
50
  * The content of the menu.
48
- * @defaultValue { side: 'bottom', sideOffset: 8, position: 'popper' }
51
+ * @defaultValue { side: 'bottom', sideOffset: 8, collisionPadding: 8, position: 'popper' }
49
52
  */
50
53
  content?: Omit<SelectContentProps, 'as' | 'asChild' | 'forceMount'>
51
54
  /**
@@ -62,55 +65,72 @@ export interface SelectProps<T> extends Omit<SelectRootProps, 'dir'>, UseCompone
62
65
  * When `items` is an array of objects, select the field to use as the value.
63
66
  * @defaultValue 'value'
64
67
  */
65
- valueKey?: string
66
- items?: T[] | T[][]
68
+ valueKey?: V
69
+ /**
70
+ * When `items` is an array of objects, select the field to use as the label.
71
+ * @defaultValue 'label'
72
+ */
73
+ labelKey?: V
74
+ items?: I
75
+ /** The value of the Select when initially rendered. Use when you do not need to control the state of the Select. */
76
+ defaultValue?: SelectModelValue<T, V, M, T extends { value: infer U } ? U : never>
77
+ /** The controlled value of the Select. Can be bind as `v-model`. */
78
+ modelValue?: SelectModelValue<T, V, M, T extends { value: infer U } ? U : never>
79
+ /** Whether multiple options can be selected or not. */
80
+ multiple?: M & boolean
67
81
  /** Highlight the ring color like a focus state. */
68
82
  highlight?: boolean
69
83
  class?: any
70
84
  ui?: PartialString<typeof select.slots>
71
85
  }
72
86
 
73
- export type SelectEmits = SelectRootEmits & {
87
+ export type SelectEmits<T, V, M extends boolean> = Omit<SelectRootEmits<T>, 'update:modelValue'> & {
74
88
  change: [payload: Event]
75
89
  blur: [payload: FocusEvent]
76
90
  focus: [payload: FocusEvent]
77
- }
91
+ } & SelectModelValueEmits<T, V, M, T extends { value: infer U } ? U : never>
78
92
 
79
93
  type SlotProps<T> = (props: { item: T, index: number }) => any
80
94
 
81
- export interface SelectSlots<T> {
82
- 'leading'(props: { modelValue: string, open: boolean, ui: any }): any
83
- 'trailing'(props: { modelValue: string, open: boolean, ui: any }): any
95
+ export interface SelectSlots<T, M extends boolean> {
96
+ 'leading'(props: { modelValue?: M extends true ? AcceptableValue[] : AcceptableValue, open: boolean, ui: any }): any
97
+ 'default'(props: { modelValue?: M extends true ? AcceptableValue[] : AcceptableValue, open: boolean }): any
98
+ 'trailing'(props: { modelValue?: M extends true ? AcceptableValue[] : AcceptableValue, open: boolean, ui: any }): any
84
99
  'item': SlotProps<T>
85
100
  'item-leading': SlotProps<T>
86
101
  'item-label': SlotProps<T>
87
102
  'item-trailing': SlotProps<T>
88
103
  }
104
+
105
+ extendDevtoolsMeta({ defaultProps: { items: ['Option 1', 'Option 2', 'Option 3'] } })
89
106
  </script>
90
107
 
91
- <script setup lang="ts" generic="T extends SelectItem | AcceptableValue">
108
+ <script setup lang="ts" generic="T extends MaybeArrayOfArrayItem<I>, I extends MaybeArrayOfArray<SelectItem | AcceptableValue | boolean> = MaybeArrayOfArray<SelectItem | AcceptableValue | boolean>, V extends SelectItemKey<T> | undefined = undefined, M extends boolean = false">
92
109
  import { computed, toRef } from 'vue'
93
- import { SelectRoot, SelectTrigger, SelectValue, SelectPortal, SelectContent, SelectViewport, SelectLabel, SelectGroup, SelectItem, SelectItemIndicator, SelectItemText, SelectSeparator, useForwardPropsEmits } from 'radix-vue'
110
+ import { SelectRoot, SelectArrow, SelectTrigger, SelectPortal, SelectContent, SelectViewport, SelectLabel, SelectGroup, SelectItem, SelectItemIndicator, SelectItemText, SelectSeparator, useForwardPropsEmits } from 'reka-ui'
94
111
  import { defu } from 'defu'
95
112
  import { reactivePick } from '@vueuse/core'
96
113
  import { useAppConfig } from '#imports'
97
114
  import { useButtonGroup } from '../composables/useButtonGroup'
98
115
  import { useComponentIcons } from '../composables/useComponentIcons'
99
116
  import { useFormField } from '../composables/useFormField'
117
+ import { get, compare } from '../utils'
100
118
  import UIcon from './Icon.vue'
101
119
  import UAvatar from './Avatar.vue'
102
120
  import UChip from './Chip.vue'
103
121
 
104
- const props = withDefaults(defineProps<SelectProps<T>>(), {
105
- valueKey: 'value',
122
+ const props = withDefaults(defineProps<SelectProps<T, I, V, M>>(), {
123
+ valueKey: 'value' as never,
124
+ labelKey: 'label' as never,
106
125
  portal: true
107
126
  })
108
- const emits = defineEmits<SelectEmits>()
109
- const slots = defineSlots<SelectSlots<T>>()
127
+ const emits = defineEmits<SelectEmits<T, V, M>>()
128
+ const slots = defineSlots<SelectSlots<T, M>>()
110
129
 
111
130
  const appConfig = useAppConfig()
112
- const rootProps = useForwardPropsEmits(reactivePick(props, 'modelValue', 'defaultValue', 'open', 'defaultOpen', 'disabled', 'autocomplete', 'required'), emits)
113
- const contentProps = toRef(() => defu(props.content, { side: 'bottom', sideOffset: 8, position: 'popper' }) as SelectContentProps)
131
+ const rootProps = useForwardPropsEmits(reactivePick(props, 'modelValue', 'defaultValue', 'open', 'defaultOpen', 'disabled', 'autocomplete', 'required', 'multiple'), emits)
132
+ const contentProps = toRef(() => defu(props.content, { side: 'bottom', sideOffset: 8, collisionPadding: 8, position: 'popper' }) as SelectContentProps)
133
+ const arrowProps = toRef(() => props.arrow as SelectArrowProps)
114
134
 
115
135
  const { emitFormChange, emitFormInput, emitFormBlur, size: formGroupSize, color, id, name, highlight, disabled } = useFormField<InputProps>(props)
116
136
  const { orientation, size: buttonGroupSize } = useButtonGroup<InputProps>(props)
@@ -124,12 +144,23 @@ const ui = computed(() => select({
124
144
  size: selectSize?.value,
125
145
  loading: props.loading,
126
146
  highlight: highlight.value,
127
- leading: isLeading.value || !!slots.leading,
147
+ leading: isLeading.value || !!props.avatar || !!slots.leading,
128
148
  trailing: isTrailing.value || !!slots.trailing,
129
149
  buttonGroup: orientation.value
130
150
  }))
131
151
 
132
152
  const groups = computed(() => props.items?.length ? (Array.isArray(props.items[0]) ? props.items : [props.items]) as SelectItem[][] : [])
153
+ // eslint-disable-next-line vue/no-dupe-keys
154
+ const items = computed(() => groups.value.flatMap(group => group) as T[])
155
+
156
+ function displayValue(value?: AcceptableValue | AcceptableValue[]): string | undefined {
157
+ if (props.multiple && Array.isArray(value)) {
158
+ return value.map(v => displayValue(v)).filter(Boolean).join(', ')
159
+ }
160
+
161
+ const item = items.value.find(item => compare(typeof item === 'object' ? get(item, props.valueKey as string) : item, value))
162
+ return item && (typeof item === 'object' ? get(item, props.labelKey as string) : item)
163
+ }
133
164
 
134
165
  function onUpdate(value: any) {
135
166
  // @ts-expect-error - 'target' does not exist in type 'EventInit'
@@ -151,27 +182,39 @@ function onUpdateOpen(value: boolean) {
151
182
  }
152
183
  </script>
153
184
 
185
+ <!-- eslint-disable vue/no-template-shadow -->
154
186
  <template>
155
187
  <SelectRoot
156
188
  :id="id"
157
189
  v-slot="{ modelValue, open }"
158
190
  v-bind="rootProps"
159
191
  :name="name"
192
+ :autocomplete="autocomplete"
160
193
  :disabled="disabled"
161
194
  @update:model-value="onUpdate"
162
195
  @update:open="onUpdateOpen"
163
196
  >
164
- <SelectTrigger :class="ui.base({ class: props.class })">
165
- <span v-if="isLeading || !!slots.leading" :class="ui.leading({ class: props.ui?.leading })">
166
- <slot name="leading" :model-value="modelValue" :open="open" :ui="ui">
167
- <UIcon v-if="leadingIconName" :name="leadingIconName" :class="ui.leadingIcon({ class: props.ui?.leadingIcon })" />
197
+ <SelectTrigger :class="ui.base({ class: [props.class, props.ui?.base] })">
198
+ <span v-if="isLeading || !!avatar || !!slots.leading" :class="ui.leading({ class: props.ui?.leading })">
199
+ <slot name="leading" :model-value="(modelValue as M extends true ? AcceptableValue[] : AcceptableValue)" :open="open" :ui="ui">
200
+ <UIcon v-if="isLeading && leadingIconName" :name="leadingIconName" :class="ui.leadingIcon({ class: props.ui?.leadingIcon })" />
201
+ <UAvatar v-else-if="!!avatar" :size="((props.ui?.itemLeadingAvatarSize || ui.itemLeadingAvatarSize()) as AvatarProps['size'])" v-bind="avatar" :class="ui.itemLeadingAvatar({ class: props.ui?.itemLeadingAvatar })" />
168
202
  </slot>
169
203
  </span>
170
204
 
171
- <SelectValue :placeholder="placeholder ?? '&nbsp;'" :class="ui.value({ class: props.ui?.value })" />
205
+ <slot :model-value="(modelValue as M extends true ? AcceptableValue[] : AcceptableValue)" :open="open">
206
+ <template v-for="displayedModelValue in [displayValue(modelValue)]" :key="displayedModelValue">
207
+ <span v-if="displayedModelValue" :class="ui.value({ class: props.ui?.value })">
208
+ {{ displayedModelValue }}
209
+ </span>
210
+ <span v-else :class="ui.placeholder({ class: props.ui?.placeholder })">
211
+ {{ placeholder ?? '&nbsp;' }}
212
+ </span>
213
+ </template>
214
+ </slot>
172
215
 
173
216
  <span v-if="isTrailing || !!slots.trailing" :class="ui.trailing({ class: props.ui?.trailing })">
174
- <slot name="trailing" :model-value="modelValue" :open="open" :ui="ui">
217
+ <slot name="trailing" :model-value="(modelValue as M extends true ? AcceptableValue[] : AcceptableValue)" :open="open" :ui="ui">
175
218
  <UIcon v-if="trailingIconName" :name="trailingIconName" :class="ui.trailingIcon({ class: props.ui?.trailingIcon })" />
176
219
  </slot>
177
220
  </span>
@@ -183,19 +226,21 @@ function onUpdateOpen(value: boolean) {
183
226
  <SelectGroup v-for="(group, groupIndex) in groups" :key="`group-${groupIndex}`" :class="ui.group({ class: props.ui?.group })">
184
227
  <template v-for="(item, index) in group" :key="`group-${groupIndex}-${index}`">
185
228
  <SelectLabel v-if="item?.type === 'label'" :class="ui.label({ class: props.ui?.label })">
186
- {{ item.label }}
229
+ {{ get(item, props.labelKey as string) }}
187
230
  </SelectLabel>
231
+
188
232
  <SelectSeparator v-else-if="item?.type === 'separator'" :class="ui.separator({ class: props.ui?.separator })" />
233
+
189
234
  <SelectItem
190
235
  v-else
191
236
  :class="ui.item({ class: props.ui?.item })"
192
237
  :disabled="item.disabled"
193
- :value="typeof item === 'object' ? (item[valueKey as keyof SelectItem] as string) : item"
238
+ :value="typeof item === 'object' ? get(item, props.valueKey as string) : item"
194
239
  >
195
240
  <slot name="item" :item="(item as T)" :index="index">
196
241
  <slot name="item-leading" :item="(item as T)" :index="index">
197
- <UAvatar v-if="item.avatar" :size="((props.ui?.itemLeadingAvatarSize || ui.itemLeadingAvatarSize()) as AvatarProps['size'])" v-bind="item.avatar" :class="ui.itemLeadingAvatar({ class: props.ui?.itemLeadingAvatar })" />
198
- <UIcon v-else-if="item.icon" :name="item.icon" :class="ui.itemLeadingIcon({ class: props.ui?.itemLeadingIcon })" />
242
+ <UIcon v-if="item.icon" :name="item.icon" :class="ui.itemLeadingIcon({ class: props.ui?.itemLeadingIcon })" />
243
+ <UAvatar v-else-if="item.avatar" :size="((props.ui?.itemLeadingAvatarSize || ui.itemLeadingAvatarSize()) as AvatarProps['size'])" v-bind="item.avatar" :class="ui.itemLeadingAvatar({ class: props.ui?.itemLeadingAvatar })" />
199
244
  <UChip
200
245
  v-else-if="item.chip"
201
246
  :size="((props.ui?.itemLeadingChipSize || ui.itemLeadingChipSize()) as ChipProps['size'])"
@@ -208,7 +253,7 @@ function onUpdateOpen(value: boolean) {
208
253
 
209
254
  <SelectItemText :class="ui.itemLabel({ class: props.ui?.itemLabel })">
210
255
  <slot name="item-label" :item="(item as T)" :index="index">
211
- {{ typeof item === 'object' ? item.label : item }}
256
+ {{ typeof item === 'object' ? get(item, props.labelKey as string) : item }}
212
257
  </slot>
213
258
  </SelectItemText>
214
259
 
@@ -224,6 +269,8 @@ function onUpdateOpen(value: boolean) {
224
269
  </template>
225
270
  </SelectGroup>
226
271
  </SelectViewport>
272
+
273
+ <SelectArrow v-if="!!arrow" v-bind="arrowProps" :class="ui.arrow({ class: props.ui?.arrow })" />
227
274
  </SelectContent>
228
275
  </SelectPortal>
229
276
  </SelectRoot>