@volverjs/ui-vue 0.0.10-beta.4 → 0.0.10-beta.41

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