@volverjs/ui-vue 0.0.10-beta.5 → 0.0.10-beta.50

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 (496) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +148 -51
  3. package/auto-imports.d.ts +25 -12
  4. package/bin/icons.cjs +1 -1
  5. package/bin/icons.js +28 -20
  6. package/dist/Volver.d.ts +11 -11
  7. package/dist/components/VvAccordion/VvAccordion.es.js +192 -104
  8. package/dist/components/VvAccordion/VvAccordion.umd.js +1 -1
  9. package/dist/components/VvAccordion/VvAccordion.vue.d.ts +29 -10
  10. package/dist/components/VvAccordion/index.d.ts +8 -9
  11. package/dist/components/VvAccordionGroup/VvAccordionGroup.es.js +485 -206
  12. package/dist/components/VvAccordionGroup/VvAccordionGroup.umd.js +1 -1
  13. package/dist/components/VvAccordionGroup/VvAccordionGroup.vue.d.ts +61 -18
  14. package/dist/components/VvAccordionGroup/index.d.ts +16 -8
  15. package/dist/components/VvAction/VvAction.es.js +84 -33
  16. package/dist/components/VvAction/VvAction.umd.js +1 -1
  17. package/dist/components/VvAction/VvAction.vue.d.ts +61 -28
  18. package/dist/components/VvAction/index.d.ts +26 -10
  19. package/dist/components/VvAlert/VvAlert.es.js +350 -318
  20. package/dist/components/VvAlert/VvAlert.umd.js +1 -1
  21. package/dist/components/VvAlert/VvAlert.vue.d.ts +25 -17
  22. package/dist/components/VvAlert/index.d.ts +20 -11
  23. package/dist/components/VvAlertGroup/VvAlertGroup.es.js +388 -327
  24. package/dist/components/VvAlertGroup/VvAlertGroup.umd.js +1 -1
  25. package/dist/components/VvAlertGroup/VvAlertGroup.vue.d.ts +22 -17
  26. package/dist/components/VvAlertGroup/index.d.ts +10 -18
  27. package/dist/components/VvAvatar/VvAvatar.es.js +66 -28
  28. package/dist/components/VvAvatar/VvAvatar.umd.js +1 -1
  29. package/dist/components/VvAvatar/VvAvatar.vue.d.ts +13 -5
  30. package/dist/components/VvAvatar/index.d.ts +4 -1
  31. package/dist/components/VvAvatarGroup/VvAvatarGroup.es.js +147 -74
  32. package/dist/components/VvAvatarGroup/VvAvatarGroup.umd.js +1 -1
  33. package/dist/components/VvAvatarGroup/VvAvatarGroup.vue.d.ts +17 -10
  34. package/dist/components/VvAvatarGroup/index.d.ts +6 -3
  35. package/dist/components/VvBadge/VvBadge.es.js +78 -34
  36. package/dist/components/VvBadge/VvBadge.umd.js +1 -1
  37. package/dist/components/VvBadge/VvBadge.vue.d.ts +13 -5
  38. package/dist/components/VvBadge/index.d.ts +4 -1
  39. package/dist/components/VvBreadcrumb/VvBreadcrumb.es.js +294 -83
  40. package/dist/components/VvBreadcrumb/VvBreadcrumb.umd.js +1 -1
  41. package/dist/components/VvBreadcrumb/VvBreadcrumb.vue.d.ts +28 -8
  42. package/dist/components/VvBreadcrumb/index.d.ts +6 -10
  43. package/dist/components/VvButton/VvButton.es.js +510 -488
  44. package/dist/components/VvButton/VvButton.umd.js +1 -1
  45. package/dist/components/VvButton/VvButton.vue.d.ts +97 -45
  46. package/dist/components/VvButton/index.d.ts +52 -30
  47. package/dist/components/VvButtonGroup/VvButtonGroup.es.js +95 -45
  48. package/dist/components/VvButtonGroup/VvButtonGroup.umd.js +1 -1
  49. package/dist/components/VvButtonGroup/VvButtonGroup.vue.d.ts +35 -17
  50. package/dist/components/VvButtonGroup/index.d.ts +13 -4
  51. package/dist/components/VvCard/VvCard.es.js +87 -42
  52. package/dist/components/VvCard/VvCard.umd.js +1 -1
  53. package/dist/components/VvCard/VvCard.vue.d.ts +13 -5
  54. package/dist/components/VvCard/index.d.ts +4 -1
  55. package/dist/components/VvCheckbox/VvCheckbox.es.js +177 -136
  56. package/dist/components/VvCheckbox/VvCheckbox.umd.js +1 -1
  57. package/dist/components/VvCheckbox/VvCheckbox.vue.d.ts +105 -35
  58. package/dist/components/VvCheckbox/index.d.ts +52 -19
  59. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.es.js +408 -322
  60. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.umd.js +1 -1
  61. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.vue.d.ts +103 -34
  62. package/dist/components/VvCheckboxGroup/index.d.ts +45 -12
  63. package/dist/components/VvCombobox/VvCombobox.es.js +2304 -1992
  64. package/dist/components/VvCombobox/VvCombobox.umd.js +1 -1
  65. package/dist/components/VvCombobox/VvCombobox.vue.d.ts +258 -672
  66. package/dist/components/VvCombobox/index.d.ts +377 -135
  67. package/dist/components/VvDialog/VvDialog.es.js +177 -297
  68. package/dist/components/VvDialog/VvDialog.umd.js +1 -1
  69. package/dist/components/VvDialog/VvDialog.vue.d.ts +23 -7
  70. package/dist/components/VvDialog/index.d.ts +12 -0
  71. package/dist/components/VvDropdown/VvDropdown.es.js +172 -102
  72. package/dist/components/VvDropdown/VvDropdown.umd.js +1 -1
  73. package/dist/components/VvDropdown/VvDropdown.vue.d.ts +110 -315
  74. package/dist/components/VvDropdown/VvDropdownAction.vue.d.ts +77 -28
  75. package/dist/components/VvDropdown/VvDropdownItem.vue.d.ts +13 -1
  76. package/dist/components/VvDropdown/VvDropdownOptgroup.vue.d.ts +13 -5
  77. package/dist/components/VvDropdown/VvDropdownOption.vue.d.ts +38 -10
  78. package/dist/components/VvDropdown/index.d.ts +52 -118
  79. package/dist/components/VvDropdownAction/VvDropdownAction.es.js +165 -60
  80. package/dist/components/VvDropdownAction/VvDropdownAction.umd.js +1 -1
  81. package/dist/components/VvDropdownItem/VvDropdownItem.es.js +337 -10
  82. package/dist/components/VvDropdownItem/VvDropdownItem.umd.js +1 -1
  83. package/dist/components/VvDropdownOptgroup/VvDropdownOptgroup.es.js +63 -20
  84. package/dist/components/VvDropdownOptgroup/VvDropdownOptgroup.umd.js +1 -1
  85. package/dist/components/VvDropdownOption/VvDropdownOption.es.js +188 -80
  86. package/dist/components/VvDropdownOption/VvDropdownOption.umd.js +1 -1
  87. package/dist/components/VvIcon/VvIcon.es.js +24 -102
  88. package/dist/components/VvIcon/VvIcon.umd.js +1 -1
  89. package/dist/components/VvIcon/VvIcon.vue.d.ts +4 -68
  90. package/dist/components/VvIcon/index.d.ts +33 -48
  91. package/dist/components/VvInputFile/VvInputFile.es.js +1777 -0
  92. package/dist/components/VvInputFile/VvInputFile.umd.js +1 -0
  93. package/dist/components/VvInputFile/VvInputFile.vue.d.ts +317 -0
  94. package/dist/components/VvInputFile/index.d.ts +193 -0
  95. package/dist/components/VvInputText/VvInputClearAction.d.ts +16 -10
  96. package/dist/components/VvInputText/VvInputPasswordAction.d.ts +20 -14
  97. package/dist/components/VvInputText/VvInputStepAction.d.ts +11 -7
  98. package/dist/components/VvInputText/VvInputText.es.js +1491 -551
  99. package/dist/components/VvInputText/VvInputText.umd.js +1 -1
  100. package/dist/components/VvInputText/VvInputText.vue.d.ts +216 -68
  101. package/dist/components/VvInputText/index.d.ts +101 -31
  102. package/dist/components/VvNav/VvNav.es.js +155 -75
  103. package/dist/components/VvNav/VvNav.umd.js +1 -1
  104. package/dist/components/VvNav/VvNav.vue.d.ts +32 -11
  105. package/dist/components/VvNav/VvNavItem.vue.d.ts +1 -1
  106. package/dist/components/VvNav/VvNavSeparator.vue.d.ts +1 -1
  107. package/dist/components/VvNav/index.d.ts +5 -2
  108. package/dist/components/VvNavItem/VvNavItem.es.js +100 -39
  109. package/dist/components/VvNavItem/VvNavItem.umd.js +1 -1
  110. package/dist/components/VvProgress/VvProgress.es.js +73 -27
  111. package/dist/components/VvProgress/VvProgress.umd.js +1 -1
  112. package/dist/components/VvProgress/VvProgress.vue.d.ts +13 -6
  113. package/dist/components/VvProgress/index.d.ts +4 -1
  114. package/dist/components/VvRadio/VvRadio.es.js +175 -135
  115. package/dist/components/VvRadio/VvRadio.umd.js +1 -1
  116. package/dist/components/VvRadio/VvRadio.vue.d.ts +103 -33
  117. package/dist/components/VvRadio/index.d.ts +50 -17
  118. package/dist/components/VvRadioGroup/VvRadioGroup.es.js +406 -321
  119. package/dist/components/VvRadioGroup/VvRadioGroup.umd.js +1 -1
  120. package/dist/components/VvRadioGroup/VvRadioGroup.vue.d.ts +103 -34
  121. package/dist/components/VvRadioGroup/index.d.ts +45 -12
  122. package/dist/components/VvSelect/VvSelect.es.js +677 -611
  123. package/dist/components/VvSelect/VvSelect.umd.js +1 -1
  124. package/dist/components/VvSelect/VvSelect.vue.d.ts +107 -199
  125. package/dist/components/VvSelect/index.d.ts +196 -16
  126. package/dist/components/VvTab/VvTab.es.js +230 -110
  127. package/dist/components/VvTab/VvTab.umd.js +1 -1
  128. package/dist/components/VvTab/VvTab.vue.d.ts +34 -12
  129. package/dist/components/VvTab/index.d.ts +6 -3
  130. package/dist/components/VvTextarea/VvTextarea.es.js +606 -597
  131. package/dist/components/VvTextarea/VvTextarea.umd.js +1 -1
  132. package/dist/components/VvTextarea/VvTextarea.vue.d.ts +159 -54
  133. package/dist/components/VvTextarea/index.d.ts +69 -20
  134. package/dist/components/VvTooltip/VvTooltip.es.js +83 -30
  135. package/dist/components/VvTooltip/VvTooltip.umd.js +1 -1
  136. package/dist/components/VvTooltip/VvTooltip.vue.d.ts +16 -9
  137. package/dist/components/VvTooltip/index.d.ts +5 -2
  138. package/dist/components/common/HintSlot.d.ts +8 -9
  139. package/dist/components/index.d.ts +10 -0
  140. package/dist/components/index.es.js +4086 -2029
  141. package/dist/components/index.umd.js +1 -1
  142. package/dist/composables/alert/useAlerInject.d.ts +4 -0
  143. package/dist/composables/alert/useAlert.d.ts +71 -6
  144. package/dist/composables/alert/{useProvideAlert.d.ts → useAlertProvide.d.ts} +1 -1
  145. package/dist/composables/dropdown/useDropdownContextmenu.d.ts +18 -0
  146. package/dist/composables/dropdown/useDropdownInject.d.ts +12 -0
  147. package/dist/composables/dropdown/{useProvideDropdown.d.ts → useDropdownProvide.d.ts} +6 -7
  148. package/dist/composables/dropdown/useDropdownVirtualElement.d.ts +17 -0
  149. package/dist/composables/group/useGroupStateInject.d.ts +9 -0
  150. package/dist/composables/group/useGroupStateProvide.d.ts +6 -0
  151. package/dist/composables/index.d.ts +3 -0
  152. package/dist/composables/index.es.js +178 -6
  153. package/dist/composables/index.umd.js +1 -1
  154. package/dist/composables/useBlurhash.d.ts +7 -0
  155. package/dist/composables/useComponentFocus.d.ts +2 -2
  156. package/dist/composables/useComponentIcon.d.ts +9 -8
  157. package/dist/composables/useOptions.d.ts +5 -5
  158. package/dist/composables/usePersistence.d.ts +3 -0
  159. package/dist/composables/useUniqueId.d.ts +2 -2
  160. package/dist/composables/useVolver.d.ts +1 -1
  161. package/dist/constants.d.ts +35 -33
  162. package/dist/directives/index.d.ts +3 -5
  163. package/dist/directives/index.es.js +247 -82
  164. package/dist/directives/index.umd.js +1 -1
  165. package/dist/directives/v-contextmenu.es.js +137 -31
  166. package/dist/directives/v-contextmenu.umd.js +1 -1
  167. package/dist/directives/v-tooltip.es.js +101 -39
  168. package/dist/directives/v-tooltip.umd.js +1 -1
  169. package/dist/icons.d.ts +17 -17
  170. package/dist/icons.es.js +516 -516
  171. package/dist/icons.umd.js +1 -1
  172. package/dist/index.d.ts +3 -1
  173. package/dist/index.es.js +74 -6
  174. package/dist/index.umd.js +1 -1
  175. package/dist/props/index.d.ts +277 -193
  176. package/dist/resolvers/unplugin.d.ts +6 -1
  177. package/dist/resolvers/unplugin.es.js +87 -10
  178. package/dist/resolvers/unplugin.umd.js +1 -1
  179. package/dist/stories/Accordion/Accordion.settings.d.ts +2 -57
  180. package/dist/stories/AccordionGroup/AccordionGroup.settings.d.ts +2 -66
  181. package/dist/stories/AccordionGroup/AccordionGroup.stories.d.ts +2 -127
  182. package/dist/stories/AccordionGroup/AccordionGroupSlots.stories.d.ts +1304 -538
  183. package/dist/stories/Alert/Alert.settings.d.ts +2 -109
  184. package/dist/stories/AlertGroup/AlertGroup.settings.d.ts +2 -85
  185. package/dist/stories/AlertGroup/AlertGroupWithComposable.stories.d.ts +1 -1
  186. package/dist/stories/AvatarGroup/AvatarGroup.settings.d.ts +2 -38
  187. package/dist/stories/Badge/Badge.settings.d.ts +2 -26
  188. package/dist/stories/Badge/Badge.test.d.ts +1 -1
  189. package/dist/stories/Blurhash/BlurhashComposable.stories.d.ts +4 -0
  190. package/dist/stories/Breadcrumb/Breadcrumb.settings.d.ts +2 -18
  191. package/dist/stories/Breadcrumb/Breadcrumb.test.d.ts +1 -1
  192. package/dist/stories/Button/Button.settings.d.ts +2 -194
  193. package/dist/stories/ButtonGroup/ButtonGroup.settings.d.ts +2 -40
  194. package/dist/stories/Card/Card.settings.d.ts +2 -63
  195. package/dist/stories/Checkbox/Checkbox.settings.d.ts +2 -132
  196. package/dist/stories/CheckboxGroup/CheckboxGroup.settings.d.ts +1 -141
  197. package/dist/stories/Combobox/Combobox.settings.d.ts +2 -609
  198. package/dist/stories/Combobox/Combobox.stories.d.ts +1 -0
  199. package/dist/stories/Combobox/ComboboxMultiple.stories.d.ts +1 -0
  200. package/dist/stories/Dialog/Dialog.settings.d.ts +2 -47
  201. package/dist/stories/Dialog/DialogModifiers.stories.d.ts +8 -0
  202. package/dist/stories/Dropdown/Dropdown.settings.d.ts +2 -205
  203. package/dist/stories/Icon/Icon.settings.d.ts +3 -68
  204. package/dist/stories/InputFile/InputFile.settings.d.ts +6 -0
  205. package/dist/stories/InputFile/InputFile.stories.d.ts +13 -0
  206. package/dist/stories/InputFile/InputFileDropArea.stories.d.ts +9 -0
  207. package/dist/stories/InputFile/InputFileIconPosition.stories.d.ts +8 -0
  208. package/dist/stories/InputFile/InputFileSlots.stories.d.ts +7 -0
  209. package/dist/stories/InputText/InputText.settings.d.ts +2 -438
  210. package/dist/stories/Nav/Nav.settings.d.ts +2 -10
  211. package/dist/stories/Progress/Progress.settings.d.ts +2 -27
  212. package/dist/stories/Radio/Radio.settings.d.ts +1 -110
  213. package/dist/stories/RadioGroup/RadioGroup.settings.d.ts +1 -141
  214. package/dist/stories/Select/Select.settings.d.ts +2 -246
  215. package/dist/stories/Select/Select.stories.d.ts +1 -0
  216. package/dist/stories/Tab/Tab.settings.d.ts +2 -15
  217. package/dist/stories/Textarea/Textarea.settings.d.ts +2 -287
  218. package/dist/stories/argTypes.d.ts +27 -866
  219. package/dist/test/expect.d.ts +1 -2
  220. package/dist/test/options.d.ts +1 -1
  221. package/dist/test/sleep.d.ts +1 -1
  222. package/dist/types/alert.d.ts +9 -7
  223. package/dist/types/blurhash.d.ts +12 -0
  224. package/dist/types/floating-ui.d.ts +1 -1
  225. package/dist/types/generic.d.ts +1 -2
  226. package/dist/types/group.d.ts +37 -15
  227. package/dist/types/index.d.ts +7 -0
  228. package/dist/types/input-file.d.ts +9 -0
  229. package/dist/types/nav.d.ts +2 -2
  230. package/dist/utils/DomUtilities.d.ts +1 -0
  231. package/dist/utils/ObjectUtilities.d.ts +8 -9
  232. package/dist/workers/blurhash.d.ts +1 -0
  233. package/package.json +238 -246
  234. package/src/Volver.ts +251 -246
  235. package/src/assets/icons/detailed.json +1 -1
  236. package/src/assets/icons/normal.json +1 -1
  237. package/src/assets/icons/simple.json +1 -1
  238. package/src/components/VvAccordion/VvAccordion.vue +163 -100
  239. package/src/components/VvAccordion/index.ts +65 -80
  240. package/src/components/VvAccordionGroup/VvAccordionGroup.vue +224 -106
  241. package/src/components/VvAccordionGroup/index.ts +42 -42
  242. package/src/components/VvAction/VvAction.vue +144 -130
  243. package/src/components/VvAlert/VvAlert.vue +72 -70
  244. package/src/components/VvAlert/index.ts +149 -147
  245. package/src/components/VvAlertGroup/VvAlertGroup.vue +57 -56
  246. package/src/components/VvAlertGroup/index.ts +102 -118
  247. package/src/components/VvAvatar/VvAvatar.vue +20 -14
  248. package/src/components/VvAvatar/index.ts +5 -5
  249. package/src/components/VvAvatarGroup/VvAvatarGroup.vue +58 -53
  250. package/src/components/VvAvatarGroup/index.ts +21 -21
  251. package/src/components/VvBadge/VvBadge.vue +15 -14
  252. package/src/components/VvBadge/index.ts +2 -2
  253. package/src/components/VvBreadcrumb/VvBreadcrumb.vue +50 -48
  254. package/src/components/VvBreadcrumb/index.ts +3 -9
  255. package/src/components/VvButton/VvButton.vue +163 -152
  256. package/src/components/VvButton/index.ts +104 -111
  257. package/src/components/VvButtonGroup/VvButtonGroup.vue +73 -65
  258. package/src/components/VvButtonGroup/index.ts +23 -22
  259. package/src/components/VvCard/VvCard.vue +30 -30
  260. package/src/components/VvCard/index.ts +2 -2
  261. package/src/components/VvCheckbox/VvCheckbox.vue +186 -184
  262. package/src/components/VvCheckbox/index.ts +45 -45
  263. package/src/components/VvCheckboxGroup/VvCheckboxGroup.vue +88 -87
  264. package/src/components/VvCombobox/VvCombobox.vue +655 -619
  265. package/src/components/VvCombobox/index.ts +210 -168
  266. package/src/components/VvDialog/VvDialog.vue +139 -129
  267. package/src/components/VvDialog/index.ts +42 -36
  268. package/src/components/VvDropdown/VvDropdown.vue +466 -445
  269. package/src/components/VvDropdown/VvDropdownAction.vue +37 -39
  270. package/src/components/VvDropdown/VvDropdownItem.vue +30 -26
  271. package/src/components/VvDropdown/VvDropdownOptgroup.vue +13 -12
  272. package/src/components/VvDropdown/VvDropdownOption.vue +47 -64
  273. package/src/components/VvDropdown/index.ts +61 -27
  274. package/src/components/VvIcon/README.md +1 -1
  275. package/src/components/VvIcon/VvIcon.vue +133 -133
  276. package/src/components/VvIcon/index.ts +84 -97
  277. package/src/components/VvInputFile/VvInputFile.vue +413 -0
  278. package/src/components/VvInputFile/index.ts +143 -0
  279. package/src/components/VvInputText/VvInputClearAction.ts +51 -47
  280. package/src/components/VvInputText/VvInputPasswordAction.ts +66 -62
  281. package/src/components/VvInputText/VvInputStepAction.ts +43 -43
  282. package/src/components/VvInputText/VvInputText.vue +652 -516
  283. package/src/components/VvInputText/VvInputTextActions.ts +87 -87
  284. package/src/components/VvInputText/index.ts +201 -186
  285. package/src/components/VvNav/VvNav.vue +40 -36
  286. package/src/components/VvNav/VvNavItem.vue +12 -12
  287. package/src/components/VvNav/VvNavSeparator.vue +6 -6
  288. package/src/components/VvNav/index.ts +2 -2
  289. package/src/components/VvProgress/VvProgress.vue +27 -27
  290. package/src/components/VvProgress/index.ts +28 -28
  291. package/src/components/VvRadio/VvRadio.vue +115 -112
  292. package/src/components/VvRadio/index.ts +29 -29
  293. package/src/components/VvRadioGroup/VvRadioGroup.vue +91 -90
  294. package/src/components/VvSelect/VvSelect.vue +262 -241
  295. package/src/components/VvSelect/index.ts +88 -63
  296. package/src/components/VvTab/VvTab.vue +79 -69
  297. package/src/components/VvTab/index.ts +13 -13
  298. package/src/components/VvTextarea/VvTextarea.vue +218 -219
  299. package/src/components/VvTextarea/index.ts +35 -35
  300. package/src/components/VvTooltip/VvTooltip.vue +22 -16
  301. package/src/components/VvTooltip/index.ts +12 -12
  302. package/src/components/common/HintSlot.ts +151 -152
  303. package/src/components/index.ts +10 -0
  304. package/src/composables/alert/{useInjectAlert.ts → useAlerInject.ts} +1 -1
  305. package/src/composables/alert/useAlert.ts +76 -73
  306. package/src/composables/alert/{useProvideAlert.ts → useAlertProvide.ts} +12 -12
  307. package/src/composables/dropdown/useDropdownContextmenu.ts +22 -0
  308. package/src/composables/dropdown/{useInjectDropdown.ts → useDropdownInject.ts} +6 -6
  309. package/src/composables/dropdown/useDropdownProvide.ts +94 -0
  310. package/src/composables/dropdown/useDropdownVirtualElement.ts +53 -0
  311. package/src/composables/group/useGroupStateInject.ts +55 -0
  312. package/src/composables/group/useGroupStateProvide.ts +14 -0
  313. package/src/composables/index.ts +3 -0
  314. package/src/composables/useBlurhash.ts +68 -0
  315. package/src/composables/useComponentFocus.ts +9 -9
  316. package/src/composables/useComponentIcon.ts +36 -35
  317. package/src/composables/useDebouncedInput.ts +25 -25
  318. package/src/composables/useDefaults.ts +81 -80
  319. package/src/composables/useModifiers.ts +29 -29
  320. package/src/composables/useOptions.ts +51 -42
  321. package/src/composables/usePersistence.ts +74 -0
  322. package/src/composables/useTextCount.ts +46 -46
  323. package/src/composables/useUniqueId.ts +4 -4
  324. package/src/composables/useVolver.ts +1 -1
  325. package/src/constants.ts +98 -83
  326. package/src/directives/index.ts +3 -6
  327. package/src/directives/v-contextmenu.ts +26 -34
  328. package/src/directives/v-tooltip.ts +20 -11
  329. package/src/icons.ts +2 -2
  330. package/src/index.ts +6 -4
  331. package/src/props/index.ts +461 -384
  332. package/src/resolvers/unplugin.ts +154 -144
  333. package/src/shims.d.ts +4 -5
  334. package/src/stories/Accordion/Accordion.settings.ts +51 -50
  335. package/src/stories/Accordion/Accordion.stories.ts +21 -21
  336. package/src/stories/Accordion/Accordion.test.ts +56 -54
  337. package/src/stories/Accordion/AccordionSlots.stories.ts +13 -13
  338. package/src/stories/AccordionGroup/AccordionGroup.settings.ts +70 -67
  339. package/src/stories/AccordionGroup/AccordionGroup.stories.ts +41 -39
  340. package/src/stories/AccordionGroup/AccordionGroup.test.ts +49 -45
  341. package/src/stories/AccordionGroup/AccordionGroupSlots.stories.ts +36 -36
  342. package/src/stories/Alert/Alert.settings.ts +117 -116
  343. package/src/stories/Alert/Alert.stories.ts +30 -30
  344. package/src/stories/Alert/Alert.test.ts +78 -80
  345. package/src/stories/Alert/AlertModifiers.stories.ts +45 -45
  346. package/src/stories/Alert/AlertSlots.stories.ts +35 -35
  347. package/src/stories/AlertGroup/AlertGroup.settings.ts +107 -105
  348. package/src/stories/AlertGroup/AlertGroup.stories.ts +25 -25
  349. package/src/stories/AlertGroup/AlertGroup.test.ts +69 -71
  350. package/src/stories/AlertGroup/AlertGroupPosition.stories.ts +68 -68
  351. package/src/stories/AlertGroup/AlertGroupSlots.stories.ts +23 -23
  352. package/src/stories/AlertGroup/AlertGroupWithComposable.stories.ts +58 -58
  353. package/src/stories/Avatar/Avatar.settings.ts +29 -29
  354. package/src/stories/Avatar/Avatar.stories.ts +22 -22
  355. package/src/stories/Avatar/Avatar.test.ts +22 -24
  356. package/src/stories/Avatar/AvatarBadge.stories.ts +15 -15
  357. package/src/stories/Avatar/AvatarModifiers.stories.ts +60 -60
  358. package/src/stories/Avatar/AvatarSlots.stories.ts +17 -17
  359. package/src/stories/AvatarGroup/AvatarGroup.settings.ts +54 -53
  360. package/src/stories/AvatarGroup/AvatarGroup.stories.ts +17 -17
  361. package/src/stories/AvatarGroup/AvatarGroup.test.ts +24 -26
  362. package/src/stories/AvatarGroup/AvatarGroupModifiers.stories.ts +15 -15
  363. package/src/stories/AvatarGroup/AvatarGroupSlotDefault.stories.ts +17 -17
  364. package/src/stories/Badge/Badge.settings.ts +21 -20
  365. package/src/stories/Badge/Badge.stories.ts +24 -24
  366. package/src/stories/Badge/Badge.test.ts +8 -8
  367. package/src/stories/Badge/BadgeSlots.stories.ts +10 -10
  368. package/src/stories/Blurhash/BlurhashComposable.stories.ts +116 -0
  369. package/src/stories/Breadcrumb/Breadcrumb.settings.ts +35 -34
  370. package/src/stories/Breadcrumb/Breadcrumb.stories.ts +23 -23
  371. package/src/stories/Breadcrumb/Breadcrumb.test.ts +44 -43
  372. package/src/stories/Breadcrumb/BreadcrumbSlots.stories.ts +19 -19
  373. package/src/stories/Button/Button.settings.ts +147 -151
  374. package/src/stories/Button/Button.stories.ts +19 -19
  375. package/src/stories/Button/Button.test.ts +41 -42
  376. package/src/stories/Button/ButtonIcon.stories.ts +42 -42
  377. package/src/stories/Button/ButtonLink.stories.ts +24 -24
  378. package/src/stories/Button/ButtonLoading.stories.ts +22 -22
  379. package/src/stories/Button/ButtonModifiers.stories.ts +91 -91
  380. package/src/stories/Button/ButtonSlots.stories.ts +47 -47
  381. package/src/stories/Button/ButtonState.stories.ts +23 -23
  382. package/src/stories/Button/ButtonToggle.stories.ts +30 -30
  383. package/src/stories/ButtonGroup/ButtonGroup.settings.ts +33 -24
  384. package/src/stories/ButtonGroup/ButtonGroup.stories.ts +19 -19
  385. package/src/stories/ButtonGroup/ButtonGroup.test.ts +23 -26
  386. package/src/stories/ButtonGroup/ButtonGroupModifiers.stories.ts +20 -20
  387. package/src/stories/ButtonGroup/ButtonGroupSlots.stories.ts +17 -17
  388. package/src/stories/ButtonGroup/ButtonGroupToggle.stories.ts +22 -22
  389. package/src/stories/Card/Card.settings.ts +49 -48
  390. package/src/stories/Card/Card.stories.ts +22 -22
  391. package/src/stories/Card/Card.test.ts +14 -16
  392. package/src/stories/Card/CardSlots.stories.ts +42 -42
  393. package/src/stories/Checkbox/Checkbox.settings.ts +36 -35
  394. package/src/stories/Checkbox/Checkbox.stories.ts +57 -57
  395. package/src/stories/Checkbox/Checkbox.test.ts +63 -66
  396. package/src/stories/Checkbox/CheckboxBinary.stories.ts +18 -18
  397. package/src/stories/Checkbox/CheckboxSlots.stories.ts +15 -15
  398. package/src/stories/CheckboxGroup/CheckboxGroup.settings.ts +9 -9
  399. package/src/stories/CheckboxGroup/CheckboxGroup.stories.ts +50 -50
  400. package/src/stories/CheckboxGroup/CheckboxGroup.test.ts +64 -68
  401. package/src/stories/CheckboxGroup/CheckboxGroupOptions.stories.ts +34 -34
  402. package/src/stories/CheckboxGroup/CheckboxGroupSlots.stories.ts +23 -23
  403. package/src/stories/Combobox/Combobox.settings.ts +408 -385
  404. package/src/stories/Combobox/Combobox.stories.ts +116 -107
  405. package/src/stories/Combobox/Combobox.test.ts +92 -92
  406. package/src/stories/Combobox/ComboboxIconPosition.stories.ts +25 -24
  407. package/src/stories/Combobox/ComboboxMultiple.stories.ts +32 -22
  408. package/src/stories/Combobox/ComboboxOptions.stories.ts +81 -84
  409. package/src/stories/Combobox/ComboboxSlots.stories.ts +55 -54
  410. package/src/stories/Dialog/Dialog.settings.ts +49 -40
  411. package/src/stories/Dialog/Dialog.stories.ts +28 -28
  412. package/src/stories/Dialog/Dialog.test.ts +49 -54
  413. package/src/stories/Dialog/DialogModifiers.stories.ts +42 -0
  414. package/src/stories/Dialog/DialogSlots.stories.ts +20 -20
  415. package/src/stories/Dropdown/Dropdown.settings.ts +62 -61
  416. package/src/stories/Dropdown/Dropdown.stories.ts +60 -60
  417. package/src/stories/Dropdown/Dropdown.test.ts +9 -13
  418. package/src/stories/Dropdown/DropdownContextmenuDirective.stories.ts +18 -19
  419. package/src/stories/Dropdown/DropdownMultilevel.stories.ts +19 -19
  420. package/src/stories/Dropdown/DropdownSlots.stories.ts +51 -51
  421. package/src/stories/Icon/Icon.settings.ts +66 -65
  422. package/src/stories/Icon/Icon.stories.ts +29 -30
  423. package/src/stories/Icon/IconsCollection.stories.ts +24 -24
  424. package/src/stories/InputFile/InputFile.settings.ts +37 -0
  425. package/src/stories/InputFile/InputFile.stories.ts +97 -0
  426. package/src/stories/InputFile/InputFileDropArea.stories.ts +56 -0
  427. package/src/stories/InputFile/InputFileIconPosition.stories.ts +43 -0
  428. package/src/stories/InputFile/InputFileSlots.stories.ts +33 -0
  429. package/src/stories/InputText/InputText.settings.ts +248 -246
  430. package/src/stories/InputText/InputText.stories.ts +68 -68
  431. package/src/stories/InputText/InputText.test.ts +119 -122
  432. package/src/stories/InputText/InputTextIconPosition.stories.ts +24 -24
  433. package/src/stories/InputText/InputTextLength.stories.ts +33 -33
  434. package/src/stories/InputText/InputTextMask.stories.ts +91 -91
  435. package/src/stories/InputText/InputTextMinMax.stories.ts +30 -30
  436. package/src/stories/InputText/InputTextSlots.stories.ts +20 -20
  437. package/src/stories/InputText/InputTextType.stories.ts +70 -70
  438. package/src/stories/Nav/Nav.settings.ts +27 -27
  439. package/src/stories/Nav/Nav.stories.ts +18 -18
  440. package/src/stories/Nav/Nav.test.ts +10 -12
  441. package/src/stories/Nav/NavModifiers.stories.ts +25 -25
  442. package/src/stories/Progress/Progress.settings.ts +24 -23
  443. package/src/stories/Progress/Progress.stories.ts +23 -23
  444. package/src/stories/Progress/Progress.test.ts +5 -5
  445. package/src/stories/Radio/Radio.settings.ts +9 -9
  446. package/src/stories/Radio/Radio.stories.ts +47 -47
  447. package/src/stories/Radio/Radio.test.ts +54 -57
  448. package/src/stories/Radio/RadioSlots.stories.ts +15 -15
  449. package/src/stories/RadioGroup/RadioGroup.settings.ts +9 -9
  450. package/src/stories/RadioGroup/RadioGroup.stories.ts +51 -52
  451. package/src/stories/RadioGroup/RadioGroup.test.ts +64 -68
  452. package/src/stories/RadioGroup/RadioGroupOptions.stories.ts +35 -35
  453. package/src/stories/RadioGroup/RadioGroupSlots.stories.ts +23 -23
  454. package/src/stories/Select/Select.settings.ts +72 -71
  455. package/src/stories/Select/Select.stories.ts +75 -66
  456. package/src/stories/Select/Select.test.ts +67 -70
  457. package/src/stories/Select/SelectIconPosition.stories.ts +27 -26
  458. package/src/stories/Select/SelectOptions.stories.ts +55 -55
  459. package/src/stories/Select/SelectSlots.stories.ts +21 -20
  460. package/src/stories/Tab/Tab.settings.ts +34 -34
  461. package/src/stories/Tab/Tab.stories.ts +16 -16
  462. package/src/stories/Tab/Tab.test.ts +17 -19
  463. package/src/stories/Textarea/Textarea.settings.ts +80 -78
  464. package/src/stories/Textarea/Textarea.stories.ts +63 -63
  465. package/src/stories/Textarea/Textarea.test.ts +70 -73
  466. package/src/stories/Textarea/TextareaLength.stories.ts +33 -33
  467. package/src/stories/Textarea/TextareaSlots.stories.ts +20 -20
  468. package/src/stories/Textarea/TextareatIconPosition.stories.ts +24 -24
  469. package/src/stories/Tooltip/Tooltip.settings.ts +16 -17
  470. package/src/stories/Tooltip/Tooltip.stories.ts +18 -18
  471. package/src/stories/Tooltip/Tooltip.test.ts +53 -54
  472. package/src/stories/Tooltip/TooltipDirective.stories.ts +37 -37
  473. package/src/stories/argTypes.ts +506 -505
  474. package/src/test/expect.ts +74 -79
  475. package/src/test/options.ts +17 -16
  476. package/src/test/sleep.ts +3 -2
  477. package/src/test/types.d.ts +12 -12
  478. package/src/types/alert.ts +21 -17
  479. package/src/types/blurhash.ts +21 -0
  480. package/src/types/floating-ui.ts +1 -1
  481. package/src/types/generic.ts +2 -3
  482. package/src/types/group.ts +35 -27
  483. package/src/types/index.ts +7 -0
  484. package/src/types/input-file.ts +10 -0
  485. package/src/types/nav.ts +13 -14
  486. package/src/utils/DomUtilities.ts +15 -0
  487. package/src/utils/ObjectUtilities.ts +192 -188
  488. package/src/workers/blurhash.ts +9 -0
  489. package/dist/composables/alert/useInjectAlert.d.ts +0 -9
  490. package/dist/composables/dropdown/useInjectDropdown.d.ts +0 -32
  491. package/dist/composables/group/useInjectedGroupState.d.ts +0 -10
  492. package/dist/composables/group/useProvideGroupState.d.ts +0 -6
  493. package/src/composables/dropdown/useProvideDropdown.ts +0 -94
  494. package/src/composables/group/useInjectedGroupState.ts +0 -51
  495. package/src/composables/group/useProvideGroupState.ts +0 -20
  496. /package/src/assets/icons/normal/{dulicate.svg → duplicate.svg} +0 -0
package/src/Volver.ts CHANGED
@@ -1,172 +1,173 @@
1
+ import type { App, Component, Directive, Plugin, Ref } from 'vue'
1
2
  import {
2
- addCollection,
3
- addIcon,
4
- addAPIProvider,
5
- type IconifyIcon,
6
- type IconifyJSON,
7
- type PartialIconifyAPIConfig,
3
+ addAPIProvider,
4
+ addCollection,
5
+ addIcon,
6
+ type IconifyIcon,
7
+ type IconifyJSON,
8
+ type PartialIconifyAPIConfig,
8
9
  } from '@iconify/vue'
9
- import type { App, Component, Directive, Plugin, Ref } from 'vue'
10
+ import { kebabCase } from 'change-case'
10
11
  import { DEFAULT_ICONIFY_PROVIDER, INJECTION_KEY_VOLVER } from './constants'
11
12
 
12
13
  export function useDefaultProps(
13
- component: Component,
14
- defaults?: Record<string, unknown>,
15
- name?: string,
14
+ component: Component,
15
+ defaults?: Record<string, unknown>,
16
+ name?: string,
16
17
  ) {
17
- const componentName = name || component.name
18
+ const componentName = name || component.name
18
19
 
19
- if (!componentName) {
20
- return component
21
- }
20
+ if (!componentName) {
21
+ return component
22
+ }
22
23
 
23
- const componentDefaults = defaults?.[componentName] as Record<
24
- string,
25
- unknown
26
- >
27
- const props = (component as Record<string, unknown>).props as Record<
28
- string,
29
- unknown
30
- >
24
+ const componentDefaults = defaults?.[componentName] as Record<
25
+ string,
26
+ unknown
27
+ >
28
+ const props = (component as Record<string, unknown>).props as Record<
29
+ string,
30
+ unknown
31
+ >
31
32
 
32
- if (!componentDefaults || !props) {
33
- return { ...component, name: componentName }
34
- }
33
+ if (!componentDefaults || !props) {
34
+ return { ...component, name: componentName }
35
+ }
35
36
 
36
- return {
37
- ...component,
38
- name: componentName,
39
- props: Object.keys(props).reduce(
40
- (acc, key) => {
41
- if (!(key in componentDefaults)) {
42
- acc[key] = props[key]
43
- return acc
44
- }
45
- const customDefault = componentDefaults[key]
46
- if (
47
- typeof props[key] === 'function' ||
48
- Array.isArray(props[key])
49
- ) {
50
- acc[key] = {
51
- type: props[key],
52
- default: customDefault,
53
- }
54
- return acc
55
- }
56
- acc[key] = {
57
- ...(props[key] as Record<string, unknown>),
58
- default: customDefault,
59
- }
60
- return acc
61
- },
62
- {} as Record<string, unknown>,
63
- ),
64
- }
37
+ return {
38
+ ...component,
39
+ name: componentName,
40
+ props: Object.keys(props).reduce(
41
+ (acc, key) => {
42
+ if (!(key in componentDefaults)) {
43
+ acc[key] = props[key]
44
+ return acc
45
+ }
46
+ const customDefault = componentDefaults[key]
47
+ if (
48
+ typeof props[key] === 'function'
49
+ || Array.isArray(props[key])
50
+ ) {
51
+ acc[key] = {
52
+ type: props[key],
53
+ default: customDefault,
54
+ }
55
+ return acc
56
+ }
57
+ acc[key] = {
58
+ ...(props[key] as Record<string, unknown>),
59
+ default: customDefault,
60
+ }
61
+ return acc
62
+ },
63
+ {} as Record<string, unknown>,
64
+ ),
65
+ }
65
66
  }
66
67
 
67
68
  export type DefaultOptions = Record<string, Record<string, unknown>>
68
69
 
69
70
  export type VolverOptions = {
70
- /**
71
- * If true set "fetchOptions" with credentials: 'include'
72
- */
73
- fetchWithCredentials?: boolean
74
- /**
75
- * Optional fetch params
76
- */
77
- fetchOptions?: RequestInit
78
- /**
79
- * Array of iconify collections that will be added during plugin install
80
- * @see https://docs.iconify.design/types/iconify-json.html
81
- */
82
- iconsCollections?: IconifyJSON[]
83
- /**
84
- * Set true inside nuxt
85
- */
86
- nuxt?: boolean
87
- /**
88
- * Default iconify provider
89
- * @see https://docs.iconify.design/icon-components/vue/add-collection.html
90
- * @default 'vv'
91
- */
92
- iconsProvider?: string
93
- /**
94
- * Components to install
95
- */
96
- components?: Record<string, Component>
97
- /**
98
- * Alias to install
99
- */
100
- aliases?: Record<string, Component>
101
- /**
102
- * Directives to install
103
- */
104
- directives?: Record<string, Directive>
105
- /**
106
- * Default props for components
107
- */
108
- defaults?: DefaultOptions
71
+ /**
72
+ * If true set "fetchOptions" with credentials: 'include'
73
+ */
74
+ fetchWithCredentials?: boolean
75
+ /**
76
+ * Optional fetch params
77
+ */
78
+ fetchOptions?: RequestInit
79
+ /**
80
+ * Array of iconify collections that will be added during plugin install
81
+ * @see https://docs.iconify.design/types/iconify-json.html
82
+ */
83
+ iconsCollections?: IconifyJSON[]
84
+ /**
85
+ * Set true inside nuxt
86
+ */
87
+ nuxt?: boolean
88
+ /**
89
+ * Default iconify provider
90
+ * @see https://docs.iconify.design/icon-components/vue/add-collection.html
91
+ * @default 'vv'
92
+ */
93
+ iconsProvider?: string
94
+ /**
95
+ * Components to install
96
+ */
97
+ components?: Record<string, Component>
98
+ /**
99
+ * Alias to install
100
+ */
101
+ aliases?: Record<string, Component>
102
+ /**
103
+ * Directives to install
104
+ */
105
+ directives?: Record<string, Directive>
106
+ /**
107
+ * Default props for components
108
+ */
109
+ defaults?: DefaultOptions
109
110
  }
110
111
 
111
112
  export interface VolverInterface {
112
- /**
113
- * @param {String} src Icon source path (url)
114
- * @param {RequestInit} options
115
- * @returns {Promise<string | undefined>} String SVG if exist
116
- */
117
- fetchIcon(src: string, options?: RequestInit): Promise<string | undefined>
118
- /**
119
- * Add iconify collection to library
120
- * @see https://docs.iconify.design/icon-components/vue/add-collection.html
121
- * @param {IconifyJSON} collection
122
- * @param {String} providerName Optional provider name
123
- */
124
- addCollection(collection: IconifyJSON, providerName?: string): boolean
125
- /**
126
- * Add icon to collection
127
- * @see https://docs.iconify.design/icon-components/vue/add-icon.html
128
- * @param {String} name
129
- * @param {IconifyIcon} data
130
- * @returns {Boolean} true on success, false if something is wrong with data
131
- */
132
- addIcon(name: string, data: IconifyIcon): boolean
133
- /**
134
- * Add custom config for icons provider
135
- * @param {String} provider
136
- * @param {PartialIconifyAPIConfig} customConfig
137
- * @returns {Boolean} true on success, false if something is wrong with data
138
- */
139
- addIconsAPIProvider(
140
- provider: string,
141
- customConfig: PartialIconifyAPIConfig,
142
- ): boolean
143
- /**
144
- * Current provider
145
- */
146
- iconsProvider: string
147
- /**
148
- * Array of installed iconify collections
149
- * @see https://docs.iconify.design/types/iconify-json.html
150
- */
151
- iconsCollections: IconifyJSON[]
152
- /**
153
- * Set true inside nuxt
154
- */
155
- nuxt: boolean
156
- /**
157
- * Components defaults options
158
- */
159
- defaults: Ref<DefaultOptions>
113
+ /**
114
+ * @param {string} src Icon source path (url)
115
+ * @param {RequestInit} options
116
+ * @returns {Promise<string | undefined>} String SVG if exist
117
+ */
118
+ fetchIcon: (src: string, options?: RequestInit) => Promise<string | undefined>
119
+ /**
120
+ * Add iconify collection to library
121
+ * @see https://docs.iconify.design/icon-components/vue/add-collection.html
122
+ * @param {IconifyJSON} collection
123
+ * @param {string} providerName Optional provider name
124
+ */
125
+ addCollection: (collection: IconifyJSON, providerName?: string) => boolean
126
+ /**
127
+ * Add icon to collection
128
+ * @see https://docs.iconify.design/icon-components/vue/add-icon.html
129
+ * @param {string} name
130
+ * @param {IconifyIcon} data
131
+ * @returns {boolean} true on success, false if something is wrong with data
132
+ */
133
+ addIcon: (name: string, data: IconifyIcon) => boolean
134
+ /**
135
+ * Add custom config for icons provider
136
+ * @param {string} provider
137
+ * @param {PartialIconifyAPIConfig} customConfig
138
+ * @returns {boolean} true on success, false if something is wrong with data
139
+ */
140
+ addIconsAPIProvider: (
141
+ provider: string,
142
+ customConfig: PartialIconifyAPIConfig,
143
+ ) => boolean
144
+ /**
145
+ * Current provider
146
+ */
147
+ iconsProvider: string
148
+ /**
149
+ * Array of installed iconify collections
150
+ * @see https://docs.iconify.design/types/iconify-json.html
151
+ */
152
+ iconsCollections: IconifyJSON[]
153
+ /**
154
+ * Set true inside nuxt
155
+ */
156
+ nuxt: boolean
157
+ /**
158
+ * Components defaults options
159
+ */
160
+ defaults: Ref<DefaultOptions>
160
161
  }
161
162
 
162
163
  export class Volver implements VolverInterface {
163
- private _fetchOptions: RequestInit = {}
164
- private _iconsCollections: IconifyJSON[] = []
165
- private _iconsProvider = DEFAULT_ICONIFY_PROVIDER
166
- private _nuxt = false
167
- defaults: Ref<DefaultOptions> = ref({})
164
+ private _fetchOptions: RequestInit = {}
165
+ private _iconsCollections: IconifyJSON[] = []
166
+ private _iconsProvider = DEFAULT_ICONIFY_PROVIDER
167
+ private _nuxt = false
168
+ defaults: Ref<DefaultOptions> = ref({})
168
169
 
169
- constructor({
170
+ constructor({
170
171
  fetchWithCredentials,
171
172
  fetchOptions,
172
173
  iconsProvider,
@@ -174,122 +175,126 @@ export class Volver implements VolverInterface {
174
175
  iconsCollections,
175
176
  defaults,
176
177
  }: VolverOptions = {}) {
177
- // fetch options
178
- if (fetchOptions) {
179
- this._fetchOptions = fetchOptions
180
- }
181
- // fetch with credentials sugar syntax
182
- if (fetchWithCredentials) {
183
- this._fetchOptions = {
184
- ...this._fetchOptions,
185
- credentials: 'include',
186
- }
187
- }
188
- // default iconify provider
189
- if (iconsProvider) {
190
- this._iconsProvider = iconsProvider
191
- }
192
- // enable nuxt mode
193
- if (nuxt) {
194
- this._nuxt = nuxt
195
- }
196
- // add iconify collections
197
- if (iconsCollections && Array.isArray(iconsCollections)) {
198
- iconsCollections.forEach((iconsCollection) => {
199
- this.addCollection(iconsCollection, this._iconsProvider)
200
- })
201
- }
202
- if (defaults) {
203
- this.defaults.value = defaults
204
- }
205
- }
178
+ // fetch options
179
+ if (fetchOptions) {
180
+ this._fetchOptions = fetchOptions
181
+ }
182
+ // fetch with credentials sugar syntax
183
+ if (fetchWithCredentials) {
184
+ this._fetchOptions = {
185
+ ...this._fetchOptions,
186
+ credentials: 'include',
187
+ }
188
+ }
189
+ // default iconify provider
190
+ if (iconsProvider) {
191
+ this._iconsProvider = iconsProvider
192
+ }
193
+ // enable nuxt mode
194
+ if (nuxt) {
195
+ this._nuxt = nuxt
196
+ }
197
+ // add iconify collections
198
+ if (iconsCollections && Array.isArray(iconsCollections)) {
199
+ iconsCollections.forEach((iconsCollection) => {
200
+ this.addCollection(iconsCollection, this._iconsProvider)
201
+ })
202
+ }
203
+ if (defaults) {
204
+ this.defaults.value = defaults
205
+ }
206
+ }
206
207
 
207
- get nuxt(): boolean {
208
- return this._nuxt
209
- }
208
+ get nuxt(): boolean {
209
+ return this._nuxt
210
+ }
210
211
 
211
- get iconsProvider(): string {
212
- return this._iconsProvider
213
- }
212
+ get iconsProvider(): string {
213
+ return this._iconsProvider
214
+ }
214
215
 
215
- get iconsCollections(): IconifyJSON[] {
216
- return this._iconsCollections
217
- }
216
+ get iconsCollections(): IconifyJSON[] {
217
+ return this._iconsCollections
218
+ }
218
219
 
219
- addCollection(
220
- collection: IconifyJSON,
220
+ addCollection(
221
+ collection: IconifyJSON,
221
222
  providerName: string = this._iconsProvider,
222
- ): boolean {
223
- this._iconsCollections.push(collection)
224
- return addCollection(collection, providerName)
225
- }
223
+ ): boolean {
224
+ this._iconsCollections.push(collection)
225
+ return addCollection(collection, providerName)
226
+ }
226
227
 
227
- addIcon(name: string, data: IconifyIcon): boolean {
228
- return addIcon(name, data)
229
- }
228
+ addIcon(name: string, data: IconifyIcon): boolean {
229
+ return addIcon(name, data)
230
+ }
230
231
 
231
- addIconsAPIProvider(
232
- provider: string,
233
- customConfig: PartialIconifyAPIConfig,
234
- ): boolean {
235
- return addAPIProvider(provider, customConfig)
236
- }
232
+ addIconsAPIProvider(
233
+ provider: string,
234
+ customConfig: PartialIconifyAPIConfig,
235
+ ): boolean {
236
+ return addAPIProvider(provider, customConfig)
237
+ }
237
238
 
238
- fetchIcon(
239
- src: string,
239
+ fetchIcon(
240
+ src: string,
240
241
  options: RequestInit = { cache: 'force-cache' },
241
- ): Promise<string | undefined> {
242
- return new Promise((resolve, reject) => {
243
- fetch(src, { ...this._fetchOptions, ...options })
244
- .catch((e) => reject(e))
245
- .then((response) => response?.text())
246
- .then((svg?: string) => resolve(svg))
247
- })
248
- }
242
+ ): Promise<string | undefined> {
243
+ return new Promise((resolve, reject) => {
244
+ fetch(src, { ...this._fetchOptions, ...options })
245
+ .catch(e => reject(e))
246
+ .then(response => response?.text())
247
+ .then((svg?: string) => resolve(svg))
248
+ })
249
+ }
249
250
  }
250
251
 
251
252
  const VolverPlugin: Plugin = {
252
- /**
253
- * Vue.use() hook
254
- * @param {App} Vue
255
- * @param {Object} options
256
- */
257
- install(app: App, options: VolverOptions = {}) {
258
- const volver = new Volver(options)
253
+ /**
254
+ * Vue.use() hook
255
+ * @param {App} app
256
+ * @param {object} options
257
+ */
258
+ install(app: App, options: VolverOptions = {}) {
259
+ const volver = new Volver(options)
259
260
 
260
- // register global methods
261
- app.config.globalProperties.$vv = volver
261
+ // register global methods
262
+ app.config.globalProperties.$vv = volver
262
263
 
263
- // register components
264
- if (options.components) {
265
- Object.entries(options.components).forEach(([name, component]) => {
266
- app.component(
267
- name,
268
- useDefaultProps(component, options.defaults),
269
- )
270
- })
271
- }
264
+ // register components
265
+ if (options.components) {
266
+ Object.entries(options.components).forEach(([name, component]) => {
267
+ app.component(
268
+ name,
269
+ useDefaultProps(component, options.defaults),
270
+ )
271
+ })
272
+ }
272
273
 
273
- // register aliases
274
- if (options.aliases) {
275
- Object.entries(options.aliases).forEach(([name, component]) => {
276
- app.component(
277
- name,
278
- useDefaultProps(component, options.defaults, name),
279
- )
280
- })
281
- }
274
+ // register aliases
275
+ if (options.aliases) {
276
+ Object.entries(options.aliases).forEach(([name, component]) => {
277
+ app.component(
278
+ name,
279
+ useDefaultProps(component, options.defaults, name),
280
+ )
281
+ })
282
+ }
282
283
 
283
- // register directives
284
- if (options.directives) {
285
- Object.entries(options.directives).forEach(([name, directive]) => {
286
- app.directive(name, directive)
287
- })
288
- }
284
+ // register directives
285
+ if (options.directives) {
286
+ Object.entries(options.directives).forEach(([name, directive]) => {
287
+ const kebabName = kebabCase(name)
288
+ if (kebabName.startsWith('v-')) {
289
+ name = kebabName.substring(2).toLocaleLowerCase()
290
+ }
291
+ app.directive(name, directive)
292
+ })
293
+ }
289
294
 
290
- // provide volver to components
291
- app.provide(INJECTION_KEY_VOLVER, volver)
292
- },
295
+ // provide volver to components
296
+ app.provide(INJECTION_KEY_VOLVER, volver)
297
+ },
293
298
  }
294
299
 
295
300
  export default VolverPlugin