@nuxt/ui 2.18.4 → 3.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (394) hide show
  1. package/README.md +19 -2
  2. package/cli/commands/init.mjs +83 -0
  3. package/cli/index.mjs +15 -0
  4. package/cli/node_modules/.ignored/citty/LICENSE +36 -0
  5. package/cli/node_modules/.ignored/citty/README.md +134 -0
  6. package/cli/node_modules/.ignored/citty/dist/index.cjs +475 -0
  7. package/cli/node_modules/.ignored/citty/dist/index.d.cts +80 -0
  8. package/cli/node_modules/.ignored/citty/dist/index.d.mts +80 -0
  9. package/cli/node_modules/.ignored/citty/dist/index.d.ts +80 -0
  10. package/cli/node_modules/.ignored/citty/dist/index.mjs +463 -0
  11. package/cli/node_modules/.ignored/citty/package.json +49 -0
  12. package/cli/node_modules/.ignored/consola/LICENSE +47 -0
  13. package/cli/node_modules/.ignored/consola/README.md +318 -0
  14. package/cli/node_modules/.ignored/consola/core.d.ts +1 -0
  15. package/cli/node_modules/.ignored/consola/dist/basic.cjs +32 -0
  16. package/cli/node_modules/.ignored/consola/dist/basic.d.ts +9 -0
  17. package/cli/node_modules/.ignored/consola/dist/basic.mjs +24 -0
  18. package/cli/node_modules/.ignored/consola/dist/browser.cjs +80 -0
  19. package/cli/node_modules/.ignored/consola/dist/browser.d.ts +7 -0
  20. package/cli/node_modules/.ignored/consola/dist/browser.mjs +72 -0
  21. package/cli/node_modules/.ignored/consola/dist/chunks/prompt.cjs +436 -0
  22. package/cli/node_modules/.ignored/consola/dist/chunks/prompt.mjs +429 -0
  23. package/cli/node_modules/.ignored/consola/dist/core.cjs +415 -0
  24. package/cli/node_modules/.ignored/consola/dist/core.d.ts +124 -0
  25. package/cli/node_modules/.ignored/consola/dist/core.mjs +410 -0
  26. package/cli/node_modules/.ignored/consola/dist/index.cjs +21 -0
  27. package/cli/node_modules/.ignored/consola/dist/index.d.ts +9 -0
  28. package/cli/node_modules/.ignored/consola/dist/index.mjs +8 -0
  29. package/cli/node_modules/.ignored/consola/dist/shared/consola.06ad8a64.mjs +62 -0
  30. package/cli/node_modules/.ignored/consola/dist/shared/consola.36c0034f.mjs +636 -0
  31. package/cli/node_modules/.ignored/consola/dist/shared/consola.4bbae468.cjs +645 -0
  32. package/cli/node_modules/.ignored/consola/dist/shared/consola.deac7d5a.cjs +65 -0
  33. package/cli/node_modules/.ignored/consola/dist/utils.cjs +308 -0
  34. package/cli/node_modules/.ignored/consola/dist/utils.d.ts +169 -0
  35. package/cli/node_modules/.ignored/consola/dist/utils.mjs +284 -0
  36. package/cli/node_modules/.ignored/consola/lib/index.cjs +9 -0
  37. package/cli/node_modules/.ignored/consola/package.json +101 -0
  38. package/cli/node_modules/.ignored/consola/utils.d.ts +1 -0
  39. package/cli/node_modules/.ignored/pathe/LICENSE +44 -0
  40. package/cli/node_modules/.ignored/pathe/README.md +69 -0
  41. package/cli/node_modules/.ignored/pathe/dist/index.cjs +23 -0
  42. package/cli/node_modules/.ignored/pathe/dist/index.d.cts +36 -0
  43. package/cli/node_modules/.ignored/pathe/dist/index.d.mts +36 -0
  44. package/cli/node_modules/.ignored/pathe/dist/index.d.ts +36 -0
  45. package/cli/node_modules/.ignored/pathe/dist/index.mjs +1 -0
  46. package/cli/node_modules/.ignored/pathe/dist/shared/pathe.1f0a373c.cjs +238 -0
  47. package/cli/node_modules/.ignored/pathe/dist/shared/pathe.ff20891b.mjs +221 -0
  48. package/cli/node_modules/.ignored/pathe/dist/utils.cjs +58 -0
  49. package/cli/node_modules/.ignored/pathe/dist/utils.d.cts +5 -0
  50. package/cli/node_modules/.ignored/pathe/dist/utils.d.mts +5 -0
  51. package/cli/node_modules/.ignored/pathe/dist/utils.d.ts +5 -0
  52. package/cli/node_modules/.ignored/pathe/dist/utils.mjs +54 -0
  53. package/cli/node_modules/.ignored/pathe/package.json +48 -0
  54. package/cli/node_modules/.ignored/pathe/utils.d.ts +1 -0
  55. package/cli/node_modules/.ignored/scule/LICENSE +21 -0
  56. package/cli/node_modules/.ignored/scule/README.md +149 -0
  57. package/cli/node_modules/.ignored/scule/dist/index.cjs +92 -0
  58. package/cli/node_modules/.ignored/scule/dist/index.d.cts +57 -0
  59. package/cli/node_modules/.ignored/scule/dist/index.d.mts +57 -0
  60. package/cli/node_modules/.ignored/scule/dist/index.d.ts +57 -0
  61. package/cli/node_modules/.ignored/scule/dist/index.mjs +80 -0
  62. package/cli/node_modules/.ignored/scule/package.json +43 -0
  63. package/cli/node_modules/.package-lock.json +33 -0
  64. package/cli/package.json +13 -0
  65. package/cli/templates.mjs +171 -0
  66. package/cli/utils.mjs +17 -0
  67. package/dist/module.d.mts +10 -26
  68. package/dist/module.d.ts +10 -26
  69. package/dist/module.json +4 -4
  70. package/dist/module.mjs +2574 -154
  71. package/dist/runtime/components/Accordion.vue +110 -0
  72. package/dist/runtime/components/Alert.vue +130 -0
  73. package/dist/runtime/components/App.vue +42 -0
  74. package/dist/runtime/components/Avatar.vue +69 -0
  75. package/dist/runtime/components/AvatarGroup.vue +98 -0
  76. package/dist/runtime/components/Badge.vue +46 -0
  77. package/dist/runtime/components/Breadcrumb.vue +98 -0
  78. package/dist/runtime/components/Button.vue +82 -0
  79. package/dist/runtime/components/ButtonGroup.vue +53 -0
  80. package/dist/runtime/components/Card.vue +52 -0
  81. package/dist/runtime/components/Checkbox.vue +128 -0
  82. package/dist/runtime/components/Chip.vue +76 -0
  83. package/dist/runtime/components/Collapsible.vue +54 -0
  84. package/dist/runtime/components/CommandPalette.vue +303 -0
  85. package/dist/runtime/components/Container.vue +36 -0
  86. package/dist/runtime/components/ContextMenu.vue +103 -0
  87. package/dist/runtime/components/ContextMenuContent.vue +122 -0
  88. package/dist/runtime/components/Drawer.vue +115 -0
  89. package/dist/runtime/components/DropdownMenu.vue +115 -0
  90. package/dist/runtime/components/DropdownMenuContent.vue +129 -0
  91. package/dist/runtime/components/Form.vue +227 -0
  92. package/dist/runtime/components/FormField.vue +107 -0
  93. package/dist/runtime/components/Icon.vue +26 -0
  94. package/dist/runtime/components/Input.vue +180 -0
  95. package/dist/runtime/components/InputMenu.vue +371 -0
  96. package/dist/runtime/components/Kbd.vue +49 -0
  97. package/dist/runtime/components/Link.vue +147 -0
  98. package/dist/runtime/components/LinkBase.vue +60 -0
  99. package/dist/runtime/components/Modal.vue +163 -0
  100. package/dist/runtime/components/ModalProvider.vue +12 -0
  101. package/dist/runtime/components/NavigationMenu.vue +195 -0
  102. package/dist/runtime/components/Pagination.vue +173 -0
  103. package/dist/runtime/components/Popover.vue +88 -0
  104. package/dist/runtime/components/Progress.vue +164 -0
  105. package/dist/runtime/components/RadioGroup.vue +159 -0
  106. package/dist/runtime/components/Select.vue +230 -0
  107. package/dist/runtime/components/SelectMenu.vue +306 -0
  108. package/dist/runtime/components/Separator.vue +82 -0
  109. package/dist/runtime/components/Skeleton.vue +31 -0
  110. package/dist/runtime/components/Slideover.vue +162 -0
  111. package/dist/runtime/components/SlideoverProvider.vue +12 -0
  112. package/dist/runtime/components/Slider.vue +113 -0
  113. package/dist/runtime/components/Switch.vue +124 -0
  114. package/dist/runtime/components/Tabs.vue +114 -0
  115. package/dist/runtime/components/Textarea.vue +189 -0
  116. package/dist/runtime/components/Toast.vue +161 -0
  117. package/dist/runtime/components/Toaster.vue +130 -0
  118. package/dist/runtime/components/Tooltip.vue +88 -0
  119. package/dist/runtime/composables/defineShortcuts.d.ts +7 -5
  120. package/dist/runtime/composables/defineShortcuts.js +94 -65
  121. package/dist/runtime/composables/useAvatarGroup.d.ts +10 -0
  122. package/dist/runtime/composables/useAvatarGroup.js +10 -0
  123. package/dist/runtime/composables/useButtonGroup.d.ts +12 -17
  124. package/dist/runtime/composables/useButtonGroup.js +6 -56
  125. package/dist/runtime/composables/useComponentIcons.d.ts +26 -0
  126. package/dist/runtime/composables/useComponentIcons.js +26 -0
  127. package/dist/runtime/composables/useFormField.d.ts +34 -0
  128. package/dist/runtime/composables/useFormField.js +54 -0
  129. package/dist/runtime/composables/useKbd.d.ts +28 -0
  130. package/dist/runtime/composables/useKbd.js +46 -0
  131. package/dist/runtime/composables/useModal.d.ts +8 -4
  132. package/dist/runtime/composables/useModal.js +1 -0
  133. package/dist/runtime/composables/useSlideover.d.ts +9 -5
  134. package/dist/runtime/composables/useSlideover.js +3 -2
  135. package/dist/runtime/composables/useToast.d.ts +9 -17
  136. package/dist/runtime/composables/useToast.js +27 -13
  137. package/dist/runtime/index.css +1 -0
  138. package/dist/runtime/plugins/colors.js +9 -17
  139. package/dist/runtime/plugins/{slideovers.js → slideover.js} +3 -3
  140. package/dist/runtime/types/app.config.d.ts +6 -0
  141. package/dist/runtime/types/component.d.ts +17 -14
  142. package/dist/runtime/types/component.js +0 -0
  143. package/dist/runtime/types/form.d.ts +62 -32
  144. package/dist/runtime/types/form.js +12 -0
  145. package/dist/runtime/types/index.d.ts +41 -30
  146. package/dist/runtime/types/index.js +42 -31
  147. package/dist/runtime/types/utils.d.ts +13 -32
  148. package/dist/runtime/types/utils.js +0 -0
  149. package/dist/runtime/utils/form.d.ts +15 -0
  150. package/dist/runtime/utils/form.js +66 -0
  151. package/dist/runtime/utils/fuse.d.ts +4 -0
  152. package/dist/runtime/utils/fuse.js +63 -0
  153. package/dist/runtime/utils/index.d.ts +4 -10
  154. package/dist/runtime/utils/index.js +40 -60
  155. package/dist/runtime/utils/link.d.ts +26 -71
  156. package/dist/runtime/utils/link.js +4 -124
  157. package/package.json +50 -49
  158. package/dist/runtime/components/data/Table.vue +0 -355
  159. package/dist/runtime/components/data/Table.vue.d.ts +0 -439
  160. package/dist/runtime/components/elements/Accordion.vue +0 -185
  161. package/dist/runtime/components/elements/Accordion.vue.d.ts +0 -223
  162. package/dist/runtime/components/elements/Alert.vue +0 -139
  163. package/dist/runtime/components/elements/Alert.vue.d.ts +0 -194
  164. package/dist/runtime/components/elements/Avatar.vue +0 -160
  165. package/dist/runtime/components/elements/Avatar.vue.d.ts +0 -255
  166. package/dist/runtime/components/elements/AvatarGroup.d.ts +0 -56
  167. package/dist/runtime/components/elements/AvatarGroup.js +0 -58
  168. package/dist/runtime/components/elements/Badge.vue +0 -75
  169. package/dist/runtime/components/elements/Badge.vue.d.ts +0 -109
  170. package/dist/runtime/components/elements/Button.vue +0 -193
  171. package/dist/runtime/components/elements/Button.vue.d.ts +0 -504
  172. package/dist/runtime/components/elements/ButtonGroup.d.ts +0 -153
  173. package/dist/runtime/components/elements/ButtonGroup.js +0 -51
  174. package/dist/runtime/components/elements/Carousel.vue +0 -165
  175. package/dist/runtime/components/elements/Carousel.vue.d.ts +0 -159
  176. package/dist/runtime/components/elements/Chip.vue +0 -85
  177. package/dist/runtime/components/elements/Chip.vue.d.ts +0 -162
  178. package/dist/runtime/components/elements/Dropdown.vue +0 -254
  179. package/dist/runtime/components/elements/Dropdown.vue.d.ts +0 -254
  180. package/dist/runtime/components/elements/Icon.vue +0 -30
  181. package/dist/runtime/components/elements/Icon.vue.d.ts +0 -47
  182. package/dist/runtime/components/elements/Kbd.vue +0 -59
  183. package/dist/runtime/components/elements/Kbd.vue.d.ts +0 -86
  184. package/dist/runtime/components/elements/Link.vue +0 -95
  185. package/dist/runtime/components/elements/Link.vue.d.ts +0 -225
  186. package/dist/runtime/components/elements/Meter.vue +0 -170
  187. package/dist/runtime/components/elements/Meter.vue.d.ts +0 -279
  188. package/dist/runtime/components/elements/MeterGroup.d.ts +0 -135
  189. package/dist/runtime/components/elements/MeterGroup.js +0 -159
  190. package/dist/runtime/components/elements/Progress.vue +0 -203
  191. package/dist/runtime/components/elements/Progress.vue.d.ts +0 -280
  192. package/dist/runtime/components/forms/Checkbox.vue +0 -143
  193. package/dist/runtime/components/forms/Checkbox.vue.d.ts +0 -179
  194. package/dist/runtime/components/forms/Form.vue +0 -219
  195. package/dist/runtime/components/forms/Form.vue.d.ts +0 -53
  196. package/dist/runtime/components/forms/FormGroup.vue +0 -128
  197. package/dist/runtime/components/forms/FormGroup.vue.d.ts +0 -169
  198. package/dist/runtime/components/forms/Input.vue +0 -300
  199. package/dist/runtime/components/forms/Input.vue.d.ts +0 -482
  200. package/dist/runtime/components/forms/InputMenu.vue +0 -439
  201. package/dist/runtime/components/forms/InputMenu.vue.d.ts +0 -700
  202. package/dist/runtime/components/forms/Radio.vue +0 -140
  203. package/dist/runtime/components/forms/Radio.vue.d.ts +0 -168
  204. package/dist/runtime/components/forms/RadioGroup.vue +0 -145
  205. package/dist/runtime/components/forms/RadioGroup.vue.d.ts +0 -176
  206. package/dist/runtime/components/forms/Range.vue +0 -173
  207. package/dist/runtime/components/forms/Range.vue.d.ts +0 -268
  208. package/dist/runtime/components/forms/Select.vue +0 -322
  209. package/dist/runtime/components/forms/Select.vue.d.ts +0 -471
  210. package/dist/runtime/components/forms/SelectMenu.vue +0 -546
  211. package/dist/runtime/components/forms/SelectMenu.vue.d.ts +0 -754
  212. package/dist/runtime/components/forms/Textarea.vue +0 -231
  213. package/dist/runtime/components/forms/Textarea.vue.d.ts +0 -436
  214. package/dist/runtime/components/forms/Toggle.vue +0 -171
  215. package/dist/runtime/components/forms/Toggle.vue.d.ts +0 -262
  216. package/dist/runtime/components/layout/Card.vue +0 -63
  217. package/dist/runtime/components/layout/Card.vue.d.ts +0 -89
  218. package/dist/runtime/components/layout/Container.vue +0 -48
  219. package/dist/runtime/components/layout/Container.vue.d.ts +0 -53
  220. package/dist/runtime/components/layout/Divider.vue +0 -108
  221. package/dist/runtime/components/layout/Divider.vue.d.ts +0 -198
  222. package/dist/runtime/components/layout/Skeleton.vue +0 -46
  223. package/dist/runtime/components/layout/Skeleton.vue.d.ts +0 -53
  224. package/dist/runtime/components/navigation/Breadcrumb.vue +0 -82
  225. package/dist/runtime/components/navigation/Breadcrumb.vue.d.ts +0 -95
  226. package/dist/runtime/components/navigation/CommandPalette.vue +0 -345
  227. package/dist/runtime/components/navigation/CommandPalette.vue.d.ts +0 -390
  228. package/dist/runtime/components/navigation/CommandPaletteGroup.vue +0 -152
  229. package/dist/runtime/components/navigation/CommandPaletteGroup.vue.d.ts +0 -60
  230. package/dist/runtime/components/navigation/HorizontalNavigation.vue +0 -102
  231. package/dist/runtime/components/navigation/HorizontalNavigation.vue.d.ts +0 -99
  232. package/dist/runtime/components/navigation/Pagination.vue +0 -270
  233. package/dist/runtime/components/navigation/Pagination.vue.d.ts +0 -260
  234. package/dist/runtime/components/navigation/Tabs.vue +0 -163
  235. package/dist/runtime/components/navigation/Tabs.vue.d.ts +0 -165
  236. package/dist/runtime/components/navigation/VerticalNavigation.vue +0 -105
  237. package/dist/runtime/components/navigation/VerticalNavigation.vue.d.ts +0 -113
  238. package/dist/runtime/components/overlays/ContextMenu.vue +0 -85
  239. package/dist/runtime/components/overlays/ContextMenu.vue.d.ts +0 -126
  240. package/dist/runtime/components/overlays/Modal.vue +0 -122
  241. package/dist/runtime/components/overlays/Modal.vue.d.ts +0 -166
  242. package/dist/runtime/components/overlays/Modals.client.vue +0 -18
  243. package/dist/runtime/components/overlays/Notification.vue +0 -212
  244. package/dist/runtime/components/overlays/Notification.vue.d.ts +0 -235
  245. package/dist/runtime/components/overlays/Notifications.vue +0 -69
  246. package/dist/runtime/components/overlays/Notifications.vue.d.ts +0 -66
  247. package/dist/runtime/components/overlays/Popover.vue +0 -213
  248. package/dist/runtime/components/overlays/Popover.vue.d.ts +0 -220
  249. package/dist/runtime/components/overlays/Slideover.vue +0 -152
  250. package/dist/runtime/components/overlays/Slideover.vue.d.ts +0 -167
  251. package/dist/runtime/components/overlays/Slideovers.client.vue +0 -18
  252. package/dist/runtime/components/overlays/Tooltip.vue +0 -127
  253. package/dist/runtime/components/overlays/Tooltip.vue.d.ts +0 -165
  254. package/dist/runtime/composables/useCarouselScroll.d.ts +0 -2
  255. package/dist/runtime/composables/useCarouselScroll.js +0 -37
  256. package/dist/runtime/composables/useCopyToClipboard.d.ts +0 -10
  257. package/dist/runtime/composables/useCopyToClipboard.js +0 -26
  258. package/dist/runtime/composables/useFormGroup.d.ts +0 -18
  259. package/dist/runtime/composables/useFormGroup.js +0 -45
  260. package/dist/runtime/composables/usePopper.d.ts +0 -268
  261. package/dist/runtime/composables/usePopper.js +0 -94
  262. package/dist/runtime/composables/useShortcuts.d.ts +0 -12
  263. package/dist/runtime/composables/useShortcuts.js +0 -26
  264. package/dist/runtime/composables/useTimer.d.ts +0 -8
  265. package/dist/runtime/composables/useTimer.js +0 -51
  266. package/dist/runtime/composables/useUI.d.ts +0 -10
  267. package/dist/runtime/composables/useUI.js +0 -24
  268. package/dist/runtime/types/accordion.d.ts +0 -9
  269. package/dist/runtime/types/alert.d.ts +0 -12
  270. package/dist/runtime/types/avatar.d.ts +0 -17
  271. package/dist/runtime/types/badge.d.ts +0 -15
  272. package/dist/runtime/types/breadcrumb.d.ts +0 -10
  273. package/dist/runtime/types/button.d.ts +0 -31
  274. package/dist/runtime/types/chip.d.ts +0 -15
  275. package/dist/runtime/types/clipboard.d.ts +0 -3
  276. package/dist/runtime/types/command-palette.d.ts +0 -29
  277. package/dist/runtime/types/divider.d.ts +0 -3
  278. package/dist/runtime/types/dropdown.d.ts +0 -15
  279. package/dist/runtime/types/form-group.d.ts +0 -5
  280. package/dist/runtime/types/horizontal-navigation.d.ts +0 -13
  281. package/dist/runtime/types/input.d.ts +0 -8
  282. package/dist/runtime/types/kbd.d.ts +0 -5
  283. package/dist/runtime/types/link.d.ts +0 -12
  284. package/dist/runtime/types/meter.d.ts +0 -5
  285. package/dist/runtime/types/modal.d.ts +0 -18
  286. package/dist/runtime/types/notification.d.ts +0 -24
  287. package/dist/runtime/types/popper.d.ts +0 -17
  288. package/dist/runtime/types/progress.d.ts +0 -6
  289. package/dist/runtime/types/range.d.ts +0 -7
  290. package/dist/runtime/types/select.d.ts +0 -8
  291. package/dist/runtime/types/slideover.d.ts +0 -16
  292. package/dist/runtime/types/tabs.d.ts +0 -8
  293. package/dist/runtime/types/textarea.d.ts +0 -8
  294. package/dist/runtime/types/toggle.d.ts +0 -7
  295. package/dist/runtime/types/tooltip.d.ts +0 -7
  296. package/dist/runtime/types/vertical-navigation.d.ts +0 -13
  297. package/dist/runtime/ui.config/data/table.d.ts +0 -81
  298. package/dist/runtime/ui.config/data/table.js +0 -80
  299. package/dist/runtime/ui.config/elements/accordion.d.ts +0 -23
  300. package/dist/runtime/ui.config/elements/accordion.js +0 -22
  301. package/dist/runtime/ui.config/elements/alert.d.ts +0 -41
  302. package/dist/runtime/ui.config/elements/alert.js +0 -40
  303. package/dist/runtime/ui.config/elements/avatar.d.ts +0 -60
  304. package/dist/runtime/ui.config/elements/avatar.js +0 -59
  305. package/dist/runtime/ui.config/elements/avatarGroup.d.ts +0 -6
  306. package/dist/runtime/ui.config/elements/avatarGroup.js +0 -5
  307. package/dist/runtime/ui.config/elements/badge.d.ts +0 -34
  308. package/dist/runtime/ui.config/elements/badge.js +0 -33
  309. package/dist/runtime/ui.config/elements/button.d.ts +0 -81
  310. package/dist/runtime/ui.config/elements/button.js +0 -80
  311. package/dist/runtime/ui.config/elements/buttonGroup.d.ts +0 -101
  312. package/dist/runtime/ui.config/elements/buttonGroup.js +0 -19
  313. package/dist/runtime/ui.config/elements/carousel.d.ts +0 -27
  314. package/dist/runtime/ui.config/elements/carousel.js +0 -26
  315. package/dist/runtime/ui.config/elements/chip.d.ts +0 -35
  316. package/dist/runtime/ui.config/elements/chip.js +0 -34
  317. package/dist/runtime/ui.config/elements/dropdown.d.ts +0 -59
  318. package/dist/runtime/ui.config/elements/dropdown.js +0 -57
  319. package/dist/runtime/ui.config/elements/kbd.d.ts +0 -17
  320. package/dist/runtime/ui.config/elements/kbd.js +0 -16
  321. package/dist/runtime/ui.config/elements/meter.d.ts +0 -77
  322. package/dist/runtime/ui.config/elements/meter.js +0 -76
  323. package/dist/runtime/ui.config/elements/meterGroup.d.ts +0 -52
  324. package/dist/runtime/ui.config/elements/meterGroup.js +0 -24
  325. package/dist/runtime/ui.config/elements/progress.d.ts +0 -75
  326. package/dist/runtime/ui.config/elements/progress.js +0 -74
  327. package/dist/runtime/ui.config/forms/checkbox.d.ts +0 -19
  328. package/dist/runtime/ui.config/forms/checkbox.js +0 -18
  329. package/dist/runtime/ui.config/forms/formGroup.d.ts +0 -26
  330. package/dist/runtime/ui.config/forms/formGroup.js +0 -26
  331. package/dist/runtime/ui.config/forms/input.d.ts +0 -110
  332. package/dist/runtime/ui.config/forms/input.js +0 -109
  333. package/dist/runtime/ui.config/forms/inputMenu.d.ts +0 -64
  334. package/dist/runtime/ui.config/forms/inputMenu.js +0 -62
  335. package/dist/runtime/ui.config/forms/radio.d.ts +0 -18
  336. package/dist/runtime/ui.config/forms/radio.js +0 -17
  337. package/dist/runtime/ui.config/forms/radioGroup.d.ts +0 -9
  338. package/dist/runtime/ui.config/forms/radioGroup.js +0 -8
  339. package/dist/runtime/ui.config/forms/range.d.ts +0 -64
  340. package/dist/runtime/ui.config/forms/range.js +0 -63
  341. package/dist/runtime/ui.config/forms/select.d.ts +0 -111
  342. package/dist/runtime/ui.config/forms/select.js +0 -13
  343. package/dist/runtime/ui.config/forms/selectMenu.d.ts +0 -70
  344. package/dist/runtime/ui.config/forms/selectMenu.js +0 -32
  345. package/dist/runtime/ui.config/forms/textarea.d.ts +0 -109
  346. package/dist/runtime/ui.config/forms/textarea.js +0 -10
  347. package/dist/runtime/ui.config/forms/toggle.d.ts +0 -63
  348. package/dist/runtime/ui.config/forms/toggle.js +0 -62
  349. package/dist/runtime/ui.config/index.d.ts +0 -43
  350. package/dist/runtime/ui.config/index.js +0 -43
  351. package/dist/runtime/ui.config/layout/card.d.ts +0 -24
  352. package/dist/runtime/ui.config/layout/card.js +0 -23
  353. package/dist/runtime/ui.config/layout/container.d.ts +0 -6
  354. package/dist/runtime/ui.config/layout/container.js +0 -5
  355. package/dist/runtime/ui.config/layout/divider.d.ts +0 -52
  356. package/dist/runtime/ui.config/layout/divider.js +0 -51
  357. package/dist/runtime/ui.config/layout/skeleton.d.ts +0 -6
  358. package/dist/runtime/ui.config/layout/skeleton.js +0 -5
  359. package/dist/runtime/ui.config/navigation/breadcrumb.d.ts +0 -21
  360. package/dist/runtime/ui.config/navigation/breadcrumb.js +0 -20
  361. package/dist/runtime/ui.config/navigation/commandPalette.d.ts +0 -72
  362. package/dist/runtime/ui.config/navigation/commandPalette.js +0 -71
  363. package/dist/runtime/ui.config/navigation/horizontalNavigation.d.ts +0 -27
  364. package/dist/runtime/ui.config/navigation/horizontalNavigation.js +0 -26
  365. package/dist/runtime/ui.config/navigation/pagination.d.ts +0 -35
  366. package/dist/runtime/ui.config/navigation/pagination.js +0 -34
  367. package/dist/runtime/ui.config/navigation/tabs.d.ts +0 -35
  368. package/dist/runtime/ui.config/navigation/tabs.js +0 -34
  369. package/dist/runtime/ui.config/navigation/verticalNavigation.d.ts +0 -34
  370. package/dist/runtime/ui.config/navigation/verticalNavigation.js +0 -33
  371. package/dist/runtime/ui.config/overlays/contextMenu.d.ts +0 -31
  372. package/dist/runtime/ui.config/overlays/contextMenu.js +0 -25
  373. package/dist/runtime/ui.config/overlays/modal.d.ts +0 -36
  374. package/dist/runtime/ui.config/overlays/modal.js +0 -37
  375. package/dist/runtime/ui.config/overlays/notification.d.ts +0 -50
  376. package/dist/runtime/ui.config/overlays/notification.js +0 -50
  377. package/dist/runtime/ui.config/overlays/notifications.d.ts +0 -7
  378. package/dist/runtime/ui.config/overlays/notifications.js +0 -6
  379. package/dist/runtime/ui.config/overlays/popover.d.ts +0 -47
  380. package/dist/runtime/ui.config/overlays/popover.js +0 -41
  381. package/dist/runtime/ui.config/overlays/slideover.d.ts +0 -35
  382. package/dist/runtime/ui.config/overlays/slideover.js +0 -36
  383. package/dist/runtime/ui.config/overlays/tooltip.d.ts +0 -37
  384. package/dist/runtime/ui.config/overlays/tooltip.js +0 -34
  385. package/dist/runtime/ui.config/popper.d.ts +0 -8
  386. package/dist/runtime/ui.config/popper.js +0 -9
  387. package/dist/runtime/ui.css +0 -1
  388. package/dist/runtime/utils/colors.d.ts +0 -11
  389. package/dist/runtime/utils/colors.js +0 -307
  390. package/dist/runtime/utils/lodash.d.ts +0 -2
  391. package/dist/runtime/utils/lodash.js +0 -23
  392. package/dist/runtime/plugins/{modals.d.ts → modal.d.ts} +0 -0
  393. package/dist/runtime/plugins/{modals.js → modal.js} +1 -1
  394. /package/dist/runtime/plugins/{slideovers.d.ts → slideover.d.ts} +0 -0
@@ -0,0 +1,130 @@
1
+ <script lang="ts">
2
+ import { tv, type VariantProps } from 'tailwind-variants'
3
+ import type { ToastProviderProps } from 'radix-vue'
4
+ import type { AppConfig } from '@nuxt/schema'
5
+ import _appConfig from '#build/app.config'
6
+ import theme from '#build/ui/toaster'
7
+
8
+ const appConfig = _appConfig as AppConfig & { ui: { toaster: Partial<typeof theme> } }
9
+
10
+ const toaster = tv({ extend: tv(theme), ...(appConfig.ui?.toaster || {}) })
11
+
12
+ type ToasterVariants = VariantProps<typeof toaster>
13
+
14
+ export interface ToasterProps extends Omit<ToastProviderProps, 'swipeDirection'> {
15
+ position?: ToasterVariants['position']
16
+ /**
17
+ * Expand the toasts to show multiple toasts at once.
18
+ * @defaultValue true
19
+ */
20
+ expand?: boolean
21
+ class?: any
22
+ ui?: Partial<typeof toaster.slots>
23
+ }
24
+
25
+ export interface ToasterSlots {
26
+ default(props?: {}): any
27
+ }
28
+ </script>
29
+
30
+ <script setup lang="ts">
31
+ import { ref, computed } from 'vue'
32
+ import { ToastProvider, ToastViewport, useForwardProps } from 'radix-vue'
33
+ import { reactivePick } from '@vueuse/core'
34
+ import { useToast } from '../composables/useToast'
35
+ import UToast from './Toast.vue'
36
+ import { omit } from '../utils'
37
+
38
+ const props = withDefaults(defineProps<ToasterProps>(), {
39
+ expand: true,
40
+ duration: 5000
41
+ })
42
+ defineSlots<ToasterSlots>()
43
+
44
+ const providerProps = useForwardProps(reactivePick(props, 'duration', 'label', 'swipeThreshold'))
45
+
46
+ const { toasts, remove } = useToast()
47
+
48
+ const swipeDirection = computed(() => {
49
+ switch (props.position) {
50
+ case 'top-center':
51
+ return 'up'
52
+ case 'top-right':
53
+ case 'bottom-right':
54
+ return 'right'
55
+ case 'bottom-center':
56
+ return 'down'
57
+ case 'top-left':
58
+ case 'bottom-left':
59
+ return 'left'
60
+ }
61
+ return 'right'
62
+ })
63
+
64
+ const ui = computed(() => toaster({
65
+ position: props.position,
66
+ swipeDirection: swipeDirection.value
67
+ }))
68
+
69
+ function onUpdateOpen(value: boolean, id: string | number) {
70
+ if (value) {
71
+ return
72
+ }
73
+
74
+ remove(id)
75
+ }
76
+
77
+ const hovered = ref(false)
78
+ const expanded = computed(() => props.expand || hovered.value)
79
+
80
+ const refs = ref<{ height: number }[]>([])
81
+
82
+ const height = computed(() => refs.value.reduce((acc, { height }) => acc + height + 16, 0))
83
+ const frontHeight = computed(() => refs.value[refs.value.length - 1]?.height || 0)
84
+
85
+ function getOffset(index: number) {
86
+ return refs.value.slice(index + 1).reduce((acc, { height }) => acc + height + 16, 0)
87
+ }
88
+ </script>
89
+
90
+ <template>
91
+ <ToastProvider :swipe-direction="swipeDirection" v-bind="providerProps">
92
+ <slot />
93
+
94
+ <UToast
95
+ v-for="(toast, index) of toasts"
96
+ :key="toast.id"
97
+ ref="refs"
98
+ v-bind="omit(toast, ['id'])"
99
+ :data-expanded="expanded"
100
+ :data-front="!expanded && index === toasts.length - 1"
101
+ :style="{
102
+ '--index': (index - toasts.length) + toasts.length,
103
+ '--before': toasts.length - 1 - index,
104
+ '--offset': getOffset(index),
105
+ '--scale': expanded ? '1' : 'calc(1 - var(--before) * var(--scale-factor))',
106
+ '--translate': expanded ? 'calc(var(--offset) * var(--translate-factor))' : 'calc(var(--before) * var(--gap))',
107
+ '--transform': 'translateY(var(--translate)) scale(var(--scale))'
108
+ }"
109
+ :class="[ui.base(), {
110
+ 'cursor-pointer': !!toast.click
111
+ }]"
112
+ @update:open="onUpdateOpen($event, toast.id)"
113
+ @click="toast.click && toast.click(toast)"
114
+ />
115
+
116
+ <ToastViewport
117
+ :data-expanded="expanded"
118
+ :class="ui.viewport({ class: props.class })"
119
+ :style="{
120
+ '--scale-factor': '0.05',
121
+ '--translate-factor': position?.startsWith('top') ? '1px' : '-1px',
122
+ '--gap': position?.startsWith('top') ? '16px' : '-16px',
123
+ '--front-height': `${frontHeight}px`,
124
+ '--height': `${height}px`
125
+ }"
126
+ @mouseenter="hovered = true"
127
+ @mouseleave="hovered = false"
128
+ />
129
+ </ToastProvider>
130
+ </template>
@@ -0,0 +1,88 @@
1
+ <script lang="ts">
2
+ import { tv } from 'tailwind-variants'
3
+ import type { TooltipRootProps, TooltipRootEmits, TooltipContentProps, TooltipArrowProps } from 'radix-vue'
4
+ import type { AppConfig } from '@nuxt/schema'
5
+ import _appConfig from '#build/app.config'
6
+ import theme from '#build/ui/tooltip'
7
+ import type { KbdProps } from '../types'
8
+
9
+ const appConfig = _appConfig as AppConfig & { ui: { tooltip: Partial<typeof theme> } }
10
+
11
+ const tooltip = tv({ extend: tv(theme), ...(appConfig.ui?.tooltip || {}) })
12
+
13
+ export interface TooltipProps extends TooltipRootProps {
14
+ /** The text content of the tooltip. */
15
+ text?: string
16
+ /** The keyboard keys to display in the tooltip. */
17
+ kbds?: KbdProps['value'][] | KbdProps[]
18
+ /**
19
+ * The content of the tooltip.
20
+ * @defaultValue { side: 'bottom', sideOffset: 8 }
21
+ */
22
+ content?: Omit<TooltipContentProps, 'as' | 'asChild'>
23
+ /**
24
+ * Display an arrow alongside the tooltip.
25
+ * @defaultValue false
26
+ */
27
+ arrow?: boolean | Omit<TooltipArrowProps, 'as' | 'asChild'>
28
+ /**
29
+ * Render the tooltip in a portal.
30
+ * @defaultValue true
31
+ */
32
+ portal?: boolean
33
+ class?: any
34
+ ui?: Partial<typeof tooltip.slots>
35
+ }
36
+
37
+ export interface TooltipEmits extends TooltipRootEmits {}
38
+
39
+ export interface TooltipSlots {
40
+ default(props: { open: boolean }): any
41
+ content(props?: {}): any
42
+ }
43
+ </script>
44
+
45
+ <script setup lang="ts">
46
+ import { computed, toRef } from 'vue'
47
+ import { defu } from 'defu'
48
+ import { TooltipRoot, TooltipTrigger, TooltipPortal, TooltipContent, TooltipArrow, useForwardPropsEmits } from 'radix-vue'
49
+ import { reactivePick } from '@vueuse/core'
50
+ import UKbd from './Kbd.vue'
51
+
52
+ const props = withDefaults(defineProps<TooltipProps>(), {
53
+ portal: true
54
+ })
55
+ const emits = defineEmits<TooltipEmits>()
56
+ const slots = defineSlots<TooltipSlots>()
57
+
58
+ const rootProps = useForwardPropsEmits(reactivePick(props, 'defaultOpen', 'open', 'delayDuration', 'disableHoverableContent', 'disableClosingTrigger', 'disabled', 'ignoreNonKeyboardFocus'), emits)
59
+ const contentProps = toRef(() => defu(props.content, { side: 'bottom', sideOffset: 8 }) as TooltipContentProps)
60
+ const arrowProps = toRef(() => props.arrow as TooltipArrowProps)
61
+
62
+ // eslint-disable-next-line vue/no-dupe-keys
63
+ const ui = computed(() => tooltip({
64
+ side: contentProps.value.side
65
+ }))
66
+ </script>
67
+
68
+ <template>
69
+ <TooltipRoot v-slot="{ open }" v-bind="rootProps">
70
+ <TooltipTrigger v-if="!!slots.default" as-child>
71
+ <slot :open="open" />
72
+ </TooltipTrigger>
73
+
74
+ <TooltipPortal :disabled="!portal">
75
+ <TooltipContent v-bind="contentProps" :class="ui.content({ class: [props.class, props.ui?.content] })">
76
+ <slot name="content">
77
+ <span v-if="text" :class="ui.text({ class: props.ui?.text })">{{ text }}</span>
78
+
79
+ <span v-if="kbds?.length" :class="ui.kbds({ class: props.ui?.kbds })">
80
+ <UKbd v-for="(kbd, index) in kbds" :key="index" :size="((props.ui?.kbdsSize || ui.kbdsSize()) as KbdProps['size'])" v-bind="typeof kbd === 'string' ? { value: kbd } : kbd" />
81
+ </span>
82
+ </slot>
83
+
84
+ <TooltipArrow v-if="!!arrow" v-bind="arrowProps" :class="ui.arrow({ class: props.ui?.arrow })" />
85
+ </TooltipContent>
86
+ </TooltipPortal>
87
+ </TooltipRoot>
88
+ </template>
@@ -1,13 +1,15 @@
1
- import type { WatchSource } from 'vue';
1
+ import type { MaybeRef } from 'vue';
2
+ type Handler = (e?: any) => void;
2
3
  export interface ShortcutConfig {
3
- handler: Function;
4
+ handler: Handler;
4
5
  usingInput?: string | boolean;
5
- whenever?: WatchSource<boolean>[];
6
6
  }
7
7
  export interface ShortcutsConfig {
8
- [key: string]: ShortcutConfig | Function;
8
+ [key: string]: ShortcutConfig | Handler | false | null | undefined;
9
9
  }
10
10
  export interface ShortcutsOptions {
11
11
  chainDelay?: number;
12
12
  }
13
- export declare const defineShortcuts: (config: ShortcutsConfig, options?: ShortcutsOptions) => void;
13
+ export declare function extractShortcuts(items: any[] | any[][]): Record<string, Handler>;
14
+ export declare function defineShortcuts(config: MaybeRef<ShortcutsConfig>, options?: ShortcutsOptions): void;
15
+ export {};
@@ -1,17 +1,35 @@
1
- import { ref, computed } from "vue";
2
- import { logicAnd, logicNot } from "@vueuse/math";
3
- import { useEventListener, useDebounceFn } from "@vueuse/core";
4
- import { useShortcuts } from "./useShortcuts.js";
1
+ import { ref, computed, toValue } from "vue";
2
+ import { useEventListener, useActiveElement, useDebounceFn } from "@vueuse/core";
3
+ import { useKbd } from "../composables/useKbd.js";
5
4
  const chainedShortcutRegex = /^[^-]+.*-.*[^-]+$/;
6
5
  const combinedShortcutRegex = /^[^_]+.*_.*[^_]+$/;
7
- export const defineShortcuts = (config, options = {}) => {
8
- const { macOS, usingInput } = useShortcuts();
9
- let shortcuts = [];
6
+ export function extractShortcuts(items) {
7
+ const shortcuts = {};
8
+ function traverse(items2) {
9
+ items2.forEach((item) => {
10
+ if (item.kbds?.length && (item.select || item.click)) {
11
+ const shortcutKey = item.kbds.join("_");
12
+ shortcuts[shortcutKey] = item.select || item.click;
13
+ }
14
+ if (item.children) {
15
+ traverse(item.children.flat());
16
+ }
17
+ if (item.items) {
18
+ traverse(item.items.flat());
19
+ }
20
+ });
21
+ }
22
+ traverse(items.flat());
23
+ return shortcuts;
24
+ }
25
+ export function defineShortcuts(config, options = {}) {
10
26
  const chainedInputs = ref([]);
11
27
  const clearChainedInput = () => {
12
28
  chainedInputs.value.splice(0, chainedInputs.value.length);
13
29
  };
14
30
  const debouncedClearChainedInput = useDebounceFn(clearChainedInput, options.chainDelay ?? 800);
31
+ const { macOS } = useKbd();
32
+ const activeElement = useActiveElement();
15
33
  const onKeyDown = (e) => {
16
34
  if (!e.key) {
17
35
  return;
@@ -21,19 +39,19 @@ export const defineShortcuts = (config, options = {}) => {
21
39
  chainedInputs.value.push(e.key);
22
40
  if (chainedInputs.value.length >= 2) {
23
41
  chainedKey = chainedInputs.value.slice(-2).join("-");
24
- for (const shortcut of shortcuts.filter((s) => s.chained)) {
42
+ for (const shortcut of shortcuts.value.filter((s) => s.chained)) {
25
43
  if (shortcut.key !== chainedKey) {
26
44
  continue;
27
45
  }
28
- if (shortcut.condition.value) {
46
+ if (shortcut.enabled) {
29
47
  e.preventDefault();
30
- shortcut.handler();
48
+ shortcut.handler(e);
31
49
  }
32
50
  clearChainedInput();
33
51
  return;
34
52
  }
35
53
  }
36
- for (const shortcut of shortcuts.filter((s) => !s.chained)) {
54
+ for (const shortcut of shortcuts.value.filter((s) => !s.chained)) {
37
55
  if (e.key.toLowerCase() !== shortcut.key) {
38
56
  continue;
39
57
  }
@@ -46,7 +64,7 @@ export const defineShortcuts = (config, options = {}) => {
46
64
  if (alphabeticalKey && e.shiftKey !== shortcut.shiftKey) {
47
65
  continue;
48
66
  }
49
- if (shortcut.condition.value) {
67
+ if (shortcut.enabled) {
50
68
  e.preventDefault();
51
69
  shortcut.handler();
52
70
  }
@@ -55,58 +73,69 @@ export const defineShortcuts = (config, options = {}) => {
55
73
  }
56
74
  debouncedClearChainedInput();
57
75
  };
58
- shortcuts = Object.entries(config).map(([key, shortcutConfig]) => {
59
- if (!shortcutConfig) {
60
- return null;
61
- }
62
- let shortcut;
63
- if (key.includes("-") && key !== "-" && !key.match(chainedShortcutRegex)?.length) {
64
- console.trace(`[Shortcut] Invalid key: "${key}"`);
65
- }
66
- if (key.includes("_") && key !== "_" && !key.match(combinedShortcutRegex)?.length) {
67
- console.trace(`[Shortcut] Invalid key: "${key}"`);
68
- }
69
- const chained = key.includes("-") && key !== "-";
70
- if (chained) {
71
- shortcut = {
72
- key: key.toLowerCase(),
73
- metaKey: false,
74
- ctrlKey: false,
75
- shiftKey: false,
76
- altKey: false
77
- };
78
- } else {
79
- const keySplit = key.toLowerCase().split("_").map((k) => k);
80
- shortcut = {
81
- key: keySplit.filter((k) => !["meta", "ctrl", "shift", "alt"].includes(k)).join("_"),
82
- metaKey: keySplit.includes("meta"),
83
- ctrlKey: keySplit.includes("ctrl"),
84
- shiftKey: keySplit.includes("shift"),
85
- altKey: keySplit.includes("alt")
86
- };
87
- }
88
- shortcut.chained = chained;
89
- if (!macOS.value && shortcut.metaKey && !shortcut.ctrlKey) {
90
- shortcut.metaKey = false;
91
- shortcut.ctrlKey = true;
92
- }
93
- if (typeof shortcutConfig === "function") {
94
- shortcut.handler = shortcutConfig;
95
- } else if (typeof shortcutConfig === "object") {
96
- shortcut = { ...shortcut, handler: shortcutConfig.handler };
97
- }
98
- if (!shortcut.handler) {
99
- console.trace("[Shortcut] Invalid value");
100
- return null;
76
+ const usingInput = computed(() => {
77
+ const tagName = activeElement.value?.tagName;
78
+ const contentEditable = activeElement.value?.contentEditable;
79
+ const usingInput2 = !!(tagName === "INPUT" || tagName === "TEXTAREA" || contentEditable === "true" || contentEditable === "plaintext-only");
80
+ if (usingInput2) {
81
+ return activeElement.value?.name || true;
101
82
  }
102
- const conditions = [];
103
- if (!shortcutConfig.usingInput) {
104
- conditions.push(logicNot(usingInput));
105
- } else if (typeof shortcutConfig.usingInput === "string") {
106
- conditions.push(computed(() => usingInput.value === shortcutConfig.usingInput));
107
- }
108
- shortcut.condition = logicAnd(...conditions, ...shortcutConfig.whenever || []);
109
- return shortcut;
110
- }).filter(Boolean);
83
+ return false;
84
+ });
85
+ const shortcuts = computed(() => {
86
+ return Object.entries(toValue(config)).map(([key, shortcutConfig]) => {
87
+ if (!shortcutConfig) {
88
+ return null;
89
+ }
90
+ let shortcut;
91
+ if (key.includes("-") && key !== "-" && !key.match(chainedShortcutRegex)?.length) {
92
+ console.trace(`[Shortcut] Invalid key: "${key}"`);
93
+ }
94
+ if (key.includes("_") && key !== "_" && !key.match(combinedShortcutRegex)?.length) {
95
+ console.trace(`[Shortcut] Invalid key: "${key}"`);
96
+ }
97
+ const chained = key.includes("-") && key !== "-";
98
+ if (chained) {
99
+ shortcut = {
100
+ key: key.toLowerCase(),
101
+ metaKey: false,
102
+ ctrlKey: false,
103
+ shiftKey: false,
104
+ altKey: false
105
+ };
106
+ } else {
107
+ const keySplit = key.toLowerCase().split("_").map((k) => k);
108
+ shortcut = {
109
+ key: keySplit.filter((k) => !["meta", "command", "ctrl", "shift", "alt", "option"].includes(k)).join("_"),
110
+ metaKey: keySplit.includes("meta") || keySplit.includes("command"),
111
+ ctrlKey: keySplit.includes("ctrl"),
112
+ shiftKey: keySplit.includes("shift"),
113
+ altKey: keySplit.includes("alt") || keySplit.includes("option")
114
+ };
115
+ }
116
+ shortcut.chained = chained;
117
+ if (!macOS.value && shortcut.metaKey && !shortcut.ctrlKey) {
118
+ shortcut.metaKey = false;
119
+ shortcut.ctrlKey = true;
120
+ }
121
+ if (typeof shortcutConfig === "function") {
122
+ shortcut.handler = shortcutConfig;
123
+ } else if (typeof shortcutConfig === "object") {
124
+ shortcut = { ...shortcut, handler: shortcutConfig.handler };
125
+ }
126
+ if (!shortcut.handler) {
127
+ console.trace("[Shortcut] Invalid value");
128
+ return null;
129
+ }
130
+ let enabled = true;
131
+ if (!shortcutConfig.usingInput) {
132
+ enabled = !usingInput.value;
133
+ } else if (typeof shortcutConfig.usingInput === "string") {
134
+ enabled = usingInput.value === shortcutConfig.usingInput;
135
+ }
136
+ shortcut.enabled = enabled;
137
+ return shortcut;
138
+ }).filter(Boolean);
139
+ });
111
140
  useEventListener("keydown", onKeyDown);
112
- };
141
+ }
@@ -0,0 +1,10 @@
1
+ import { type ComputedRef, type InjectionKey } from 'vue';
2
+ import type { AvatarGroupProps } from '../types/index.js';
3
+ export declare const avatarGroupInjectionKey: InjectionKey<ComputedRef<{
4
+ size: AvatarGroupProps['size'];
5
+ }>>;
6
+ export declare function useAvatarGroup(props: {
7
+ size: AvatarGroupProps['size'];
8
+ }): {
9
+ size: ComputedRef<any>;
10
+ };
@@ -0,0 +1,10 @@
1
+ import { inject, provide, computed } from "vue";
2
+ export const avatarGroupInjectionKey = Symbol("nuxt-ui.avatar-group");
3
+ export function useAvatarGroup(props) {
4
+ const avatarGroup = inject(avatarGroupInjectionKey, void 0);
5
+ const size = computed(() => props.size ?? avatarGroup?.value.size);
6
+ provide(avatarGroupInjectionKey, computed(() => ({ size: size.value })));
7
+ return {
8
+ size
9
+ };
10
+ }
@@ -1,20 +1,15 @@
1
- import type { Ref } from 'vue';
2
- import { buttonGroup } from '#ui/ui.config';
3
- type ButtonGroupProps = {
4
- orientation?: Ref<'horizontal' | 'vertical'>;
5
- size?: Ref<string>;
6
- ui?: Ref<Partial<typeof buttonGroup>>;
7
- rounded?: Ref<{
8
- start: string;
9
- end: string;
10
- }>;
1
+ import type { InjectionKey, ComputedRef } from 'vue';
2
+ import type { ButtonGroupProps } from '../components/ButtonGroup.vue.js';
3
+ import type { GetObjectField } from '../types/utils.js';
4
+ export declare const buttonGroupInjectionKey: InjectionKey<ComputedRef<{
5
+ size: ButtonGroupProps['size'];
6
+ orientation: ButtonGroupProps['orientation'];
7
+ }>>;
8
+ type Props<T> = {
9
+ size?: GetObjectField<T, 'size'>;
11
10
  };
12
- export declare function useProvideButtonGroup(buttonGroupProps: ButtonGroupProps): void;
13
- export declare function useInjectButtonGroup({ ui, props }: {
14
- ui: any;
15
- props: any;
16
- }): {
17
- size: import("vue").ComputedRef<any>;
18
- rounded: import("vue").ComputedRef<any>;
11
+ export declare function useButtonGroup<T>(props: Props<T>): {
12
+ orientation: ComputedRef<any>;
13
+ size: ComputedRef<any>;
19
14
  };
20
15
  export {};
@@ -1,59 +1,9 @@
1
- import { computed, ref, provide, inject, onMounted, onUnmounted, getCurrentInstance } from "vue";
2
- export function useProvideButtonGroup(buttonGroupProps) {
3
- const instance = getCurrentInstance();
4
- const groupKey = `group-${instance.uid}`;
5
- const state = ref({
6
- children: [],
7
- register(child) {
8
- this.children.push(child);
9
- },
10
- unregister(child) {
11
- const index = this.children.indexOf(child);
12
- if (index > -1) {
13
- this.children.splice(index, 1);
14
- }
15
- },
16
- ...buttonGroupProps
17
- });
18
- provide(groupKey, state);
19
- }
20
- export function useInjectButtonGroup({ ui, props }) {
21
- const instance = getCurrentInstance();
22
- provide("ButtonGroupContextConsumer", true);
23
- const isParentPartOfGroup = inject("ButtonGroupContextConsumer", false);
24
- if (isParentPartOfGroup) {
25
- return {
26
- size: computed(() => props.size),
27
- rounded: computed(() => ui.value.rounded)
28
- };
29
- }
30
- let parent = instance.parent;
31
- let groupContext;
32
- while (parent && !groupContext) {
33
- if (parent.type.name === "ButtonGroup") {
34
- groupContext = inject(`group-${parent.uid}`);
35
- break;
36
- }
37
- parent = parent.parent;
38
- }
39
- const positionInGroup = computed(() => groupContext?.value.children.indexOf(instance));
40
- onMounted(() => {
41
- groupContext?.value.register(instance);
42
- });
43
- onUnmounted(() => {
44
- groupContext?.value.unregister(instance);
45
- });
1
+ import { inject, computed } from "vue";
2
+ export const buttonGroupInjectionKey = Symbol("nuxt-ui.button-group");
3
+ export function useButtonGroup(props) {
4
+ const buttonGroup = inject(buttonGroupInjectionKey, void 0);
46
5
  return {
47
- size: computed(() => {
48
- if (!groupContext?.value) return props.size;
49
- return groupContext?.value.size ?? ui.value.default.size;
50
- }),
51
- rounded: computed(() => {
52
- if (!groupContext || positionInGroup.value === -1) return ui.value.rounded;
53
- if (groupContext.value.children.length === 1) return groupContext.value.ui.rounded;
54
- if (positionInGroup.value === 0) return groupContext.value.rounded.start;
55
- if (positionInGroup.value === groupContext.value.children.length - 1) return groupContext.value.rounded.end;
56
- return "rounded-none";
57
- })
6
+ orientation: computed(() => buttonGroup?.value.orientation),
7
+ size: computed(() => props?.size ?? buttonGroup?.value.size)
58
8
  };
59
9
  }
@@ -0,0 +1,26 @@
1
+ import { type MaybeRefOrGetter } from 'vue';
2
+ export interface UseComponentIconsProps {
3
+ /** Display an icon based on the `leading` and `trailing` props. */
4
+ icon?: string;
5
+ /** When `true`, the icon will be displayed on the left side. */
6
+ leading?: boolean;
7
+ /** Display an icon on the left side. */
8
+ leadingIcon?: string;
9
+ /** When `true`, the icon will be displayed on the right side. */
10
+ trailing?: boolean;
11
+ /** Display an icon on the right side. */
12
+ trailingIcon?: string;
13
+ /** When `true`, the loading icon will be displayed. */
14
+ loading?: boolean;
15
+ /**
16
+ * The icon when the `loading` prop is `true`.
17
+ * @defaultValue appConfig.ui.icons.loading
18
+ */
19
+ loadingIcon?: string;
20
+ }
21
+ export declare function useComponentIcons(componentProps: MaybeRefOrGetter<UseComponentIconsProps>): {
22
+ isLeading: import("vue").ComputedRef<boolean>;
23
+ isTrailing: import("vue").ComputedRef<boolean>;
24
+ leadingIconName: import("vue").ComputedRef<any>;
25
+ trailingIconName: import("vue").ComputedRef<any>;
26
+ };
@@ -0,0 +1,26 @@
1
+ import { computed, toValue } from "vue";
2
+ import { useAppConfig } from "#imports";
3
+ export function useComponentIcons(componentProps) {
4
+ const appConfig = useAppConfig();
5
+ const props = computed(() => toValue(componentProps));
6
+ const isLeading = computed(() => props.value.icon && props.value.leading || props.value.icon && !props.value.trailing || props.value.loading && !props.value.trailing || !!props.value.leadingIcon);
7
+ const isTrailing = computed(() => props.value.icon && props.value.trailing || props.value.loading && props.value.trailing || !!props.value.trailingIcon);
8
+ const leadingIconName = computed(() => {
9
+ if (props.value.loading) {
10
+ return props.value.loadingIcon || appConfig.ui.icons.loading;
11
+ }
12
+ return props.value.leadingIcon || props.value.icon;
13
+ });
14
+ const trailingIconName = computed(() => {
15
+ if (props.value.loading && !isLeading.value) {
16
+ return props.value.loadingIcon || appConfig.ui.icons.loading;
17
+ }
18
+ return props.value.trailingIcon || props.value.icon;
19
+ });
20
+ return {
21
+ isLeading,
22
+ isTrailing,
23
+ leadingIconName,
24
+ trailingIconName
25
+ };
26
+ }
@@ -0,0 +1,34 @@
1
+ import { type InjectionKey, type Ref, type ComputedRef } from 'vue';
2
+ import { type UseEventBusReturn } from '@vueuse/core';
3
+ import type { FormFieldProps } from '../types/index.js';
4
+ import type { FormEvent, FormFieldInjectedOptions, FormInjectedOptions } from '../types/form.js';
5
+ import type { GetObjectField } from '../types/utils.js';
6
+ type Props<T> = {
7
+ id?: string;
8
+ name?: string;
9
+ size?: GetObjectField<T, 'size'>;
10
+ color?: GetObjectField<T, 'color'>;
11
+ eagerValidation?: boolean;
12
+ legend?: string;
13
+ highlight?: boolean;
14
+ disabled?: boolean;
15
+ };
16
+ export declare const formOptionsInjectionKey: InjectionKey<ComputedRef<FormInjectedOptions>>;
17
+ export declare const formBusInjectionKey: InjectionKey<UseEventBusReturn<FormEvent, string>>;
18
+ export declare const formFieldInjectionKey: InjectionKey<ComputedRef<FormFieldInjectedOptions<FormFieldProps>>>;
19
+ export declare const inputIdInjectionKey: InjectionKey<Ref<string | undefined>>;
20
+ export declare const formInputsInjectionKey: InjectionKey<Ref<Record<string, string>>>;
21
+ export declare function useFormField<T>(props?: Props<T>, opts?: {
22
+ bind?: boolean;
23
+ }): {
24
+ id: ComputedRef<string | undefined>;
25
+ name: ComputedRef<string | undefined>;
26
+ size: ComputedRef<any>;
27
+ color: ComputedRef<"error" | GetObjectField<T, "color"> | undefined>;
28
+ highlight: ComputedRef<boolean | undefined>;
29
+ disabled: ComputedRef<boolean | undefined>;
30
+ emitFormBlur: () => void;
31
+ emitFormInput: import("@vueuse/core").PromisifyFn<() => void>;
32
+ emitFormChange: () => void;
33
+ };
34
+ export {};