@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
@@ -1,100 +1,10 @@
1
- import { inject, computed, unref, defineComponent, ref, toRefs, openBlock, createBlock, mergeProps, createCommentVNode, watch, withModifiers, createElementBlock, normalizeProps, guardReactiveProps, renderSlot, createTextVNode, toDisplayString, createElementVNode } from "vue";
1
+ import { inject, computed, useId, unref, watch, ref, defineComponent, mergeDefaults, toRefs, openBlock, createBlock, mergeProps, createCommentVNode, createElementBlock, normalizeProps, guardReactiveProps, renderSlot, createTextVNode, toDisplayString, withModifiers, createElementVNode } from "vue";
2
2
  import { iconExists, Icon, addIcon } from "@iconify/vue";
3
- import { uid } from "uid";
4
- const VvIconProps = {
5
- /**
6
- * Color
7
- */
8
- color: String,
9
- /**
10
- * Width
11
- */
12
- width: {
13
- type: [String, Number]
14
- },
15
- /**
16
- * Height
17
- */
18
- height: {
19
- type: [String, Number]
20
- },
21
- /**
22
- * Icon name
23
- * Can be the full composition of iconify name "@{provider}:{prefix}:{name}" or "{prefix}:{name}" or "{name}"
24
- * https://docs.iconify.design/api/providers.html#provider-in-icon-name
25
- */
26
- name: {
27
- type: String,
28
- required: true
29
- },
30
- /**
31
- * By default 'vv'
32
- * If custom collection is not added with "addCollection" DS class method, this prop could not be used
33
- * Icon provider: https://docs.iconify.design/api/providers.html#provider-in-icon-name
34
- */
35
- provider: {
36
- type: String
37
- },
38
- /**
39
- * The name of icon set.
40
- * Icon default options prefix: simple | normal | detailed
41
- */
42
- prefix: {
43
- type: String,
44
- default: "normal"
45
- },
46
- /**
47
- * Url remote SVG icon
48
- */
49
- src: String,
50
- /**
51
- * Horizontal flip
52
- */
53
- horizontalFlip: Boolean,
54
- /**
55
- * Vertical flip
56
- */
57
- verticalFlip: Boolean,
58
- /**
59
- * String alternative to "horizontalFlip" and "verticalFlip".
60
- * Example: https://docs.iconify.design/icon-components/vue/transform.html
61
- */
62
- flip: String,
63
- /**
64
- * Icon render mode
65
- * 'style' = 'bg' or 'mask', depending on icon content
66
- * 'bg' = span with style using `background`
67
- * 'mask' = span with style using `mask`
68
- * 'svg' = svg
69
- * Iconify doc: https://docs.iconify.design/iconify-icon/modes.html
70
- */
71
- mode: String,
72
- /**
73
- * Toggles inline or block mode
74
- * Example https://docs.iconify.design/icon-components/vue/inline.html
75
- */
76
- inline: Boolean,
77
- /**
78
- * rotates icon
79
- * Example https://docs.iconify.design/icon-components/vue/transform.html
80
- */
81
- rotate: [Number, String],
82
- /**
83
- * A callback that is called when icon data has been loaded
84
- */
85
- onLoad: Function,
86
- /**
87
- * SVG icon string
88
- */
89
- svg: String,
90
- /**
91
- * Icon modifiers: vv-icon css helper classes, value/s are concatened with prefix 'vv-icon--'
92
- * @values string | string[]
93
- */
94
- modifiers: {
95
- type: [String, Array]
96
- }
97
- };
3
+ var StorageType = /* @__PURE__ */ ((StorageType2) => {
4
+ StorageType2["local"] = "local";
5
+ StorageType2["session"] = "session";
6
+ return StorageType2;
7
+ })(StorageType || {});
98
8
  var Strategy = /* @__PURE__ */ ((Strategy2) => {
99
9
  Strategy2["absolute"] = "absolute";
100
10
  Strategy2["fixed"] = "fixed";
@@ -129,139 +39,22 @@ var ButtonType = /* @__PURE__ */ ((ButtonType2) => {
129
39
  ButtonType2["reset"] = "reset";
130
40
  return ButtonType2;
131
41
  })(ButtonType || {});
132
- var AnchorTarget = /* @__PURE__ */ ((AnchorTarget2) => {
133
- AnchorTarget2["_blank"] = "_blank";
134
- AnchorTarget2["_self"] = "_self";
135
- AnchorTarget2["_parent"] = "_parent";
136
- AnchorTarget2["_top"] = "_top";
137
- return AnchorTarget2;
138
- })(AnchorTarget || {});
42
+ var ActionTag = /* @__PURE__ */ ((ActionTag2) => {
43
+ ActionTag2["nuxtLink"] = "nuxt-link";
44
+ ActionTag2["routerLink"] = "router-link";
45
+ ActionTag2["a"] = "a";
46
+ ActionTag2["button"] = "button";
47
+ return ActionTag2;
48
+ })(ActionTag || {});
49
+ var AlertRole = /* @__PURE__ */ ((AlertRole2) => {
50
+ AlertRole2["alert"] = "alert";
51
+ AlertRole2["alertdialog"] = "alertdialog";
52
+ return AlertRole2;
53
+ })(AlertRole || {});
139
54
  const INJECTION_KEY_VOLVER = Symbol.for("volver");
140
55
  const INJECTION_KEY_ALERT_GROUP = Symbol.for(
141
56
  "alertGroup"
142
57
  );
143
- function useVolver() {
144
- return inject(INJECTION_KEY_VOLVER);
145
- }
146
- function useModifiers(prefix, modifiers, others) {
147
- return computed(() => {
148
- const toReturn = {
149
- [prefix]: true
150
- };
151
- const modifiersArray = typeof (modifiers == null ? void 0 : modifiers.value) === "string" ? modifiers.value.split(" ") : modifiers == null ? void 0 : modifiers.value;
152
- if (modifiersArray) {
153
- if (Array.isArray(modifiersArray)) {
154
- modifiersArray.forEach((modifier) => {
155
- if (modifier) {
156
- toReturn[`${prefix}--${modifier}`] = true;
157
- }
158
- });
159
- }
160
- }
161
- if (others) {
162
- Object.keys(others.value).forEach((key) => {
163
- toReturn[`${prefix}--${key}`] = unref(others.value[key]);
164
- });
165
- }
166
- return toReturn;
167
- });
168
- }
169
- const __default__$1 = {
170
- name: "VvIcon"
171
- };
172
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
173
- ...__default__$1,
174
- props: VvIconProps,
175
- setup(__props) {
176
- const props = __props;
177
- const hasRotate = computed(() => {
178
- if (typeof props.rotate === "string") {
179
- return parseFloat(props.rotate);
180
- }
181
- return props.rotate;
182
- });
183
- const show = ref(true);
184
- const volver = useVolver();
185
- const { modifiers } = toRefs(props);
186
- const bemCssClasses = useModifiers("vv-icon", modifiers);
187
- const provider = computed(() => {
188
- return props.provider || (volver == null ? void 0 : volver.iconsProvider);
189
- });
190
- const icon = computed(() => {
191
- const name = props.name ?? "";
192
- const iconName = `@${provider.value}:${props.prefix}:${name}`;
193
- if (iconExists(iconName)) {
194
- return iconName;
195
- }
196
- const iconsCollection = volver == null ? void 0 : volver.iconsCollections.find(
197
- (iconsCollection2) => {
198
- const icon2 = `@${provider.value}:${iconsCollection2.prefix}:${name}`;
199
- return iconExists(icon2);
200
- }
201
- );
202
- if (iconsCollection) {
203
- return `@${provider.value}:${iconsCollection.prefix}:${name}`;
204
- }
205
- return name;
206
- });
207
- function getSvgContent(svg) {
208
- let dom;
209
- if (typeof window === "undefined") {
210
- const { JSDOM } = require("jsdom");
211
- dom = new JSDOM().window;
212
- }
213
- const domParser = dom ? new dom.DOMParser() : new window.DOMParser();
214
- const svgDomString = domParser.parseFromString(svg, "text/html");
215
- const svgEl = svgDomString.querySelector("svg");
216
- return svgEl;
217
- }
218
- function addIconFromSvg(svg) {
219
- const svgContentEl = getSvgContent(svg);
220
- const svgContent = (svgContentEl == null ? void 0 : svgContentEl.innerHTML.trim()) || "";
221
- if (svgContentEl && svgContent) {
222
- addIcon(`@${provider.value}:${props.prefix}:${props.name}`, {
223
- body: svgContent,
224
- // Set height and width from svg content
225
- height: svgContentEl.viewBox.baseVal.height,
226
- width: svgContentEl.viewBox.baseVal.width
227
- });
228
- }
229
- }
230
- if (volver) {
231
- if (props.src && !iconExists(`@${provider.value}:${props.prefix}:${props.name}`)) {
232
- show.value = false;
233
- volver.fetchIcon(props.src).then((svg) => {
234
- if (svg) {
235
- addIconFromSvg(svg);
236
- show.value = true;
237
- }
238
- }).catch((e) => {
239
- throw new Error(`Error during fetch icon: ${e == null ? void 0 : e.message}`);
240
- });
241
- }
242
- }
243
- if (props.svg) {
244
- addIconFromSvg(props.svg);
245
- }
246
- return (_ctx, _cache) => {
247
- return unref(show) ? (openBlock(), createBlock(unref(Icon), mergeProps({
248
- key: 0,
249
- class: unref(bemCssClasses)
250
- }, {
251
- inline: _ctx.inline,
252
- width: _ctx.width,
253
- height: _ctx.height,
254
- horizontalFlip: _ctx.horizontalFlip,
255
- verticalFlip: _ctx.verticalFlip,
256
- flip: _ctx.flip,
257
- rotate: unref(hasRotate),
258
- color: _ctx.color,
259
- onLoad: _ctx.onLoad,
260
- icon: unref(icon)
261
- }), null, 16, ["class"])) : createCommentVNode("", true);
262
- };
263
- }
264
- });
265
58
  const LinkProps = {
266
59
  /**
267
60
  * The router-link/nuxt-link property, if it is defined the button is rendered as a ruouter-link or nuxt-link.
@@ -277,10 +70,7 @@ const LinkProps = {
277
70
  /**
278
71
  * Anchor target
279
72
  */
280
- target: {
281
- type: String,
282
- validator: (value) => Object.values(AnchorTarget).includes(value)
283
- },
73
+ target: String,
284
74
  /**
285
75
  * Anchor rel
286
76
  */
@@ -293,44 +83,56 @@ const DisabledProps = {
293
83
  /**
294
84
  * Whether the form control is disabled
295
85
  */
296
- disabled: Boolean
86
+ disabled: {
87
+ type: Boolean,
88
+ default: false
89
+ }
297
90
  };
298
91
  const ActiveProps = {
299
92
  /**
300
93
  * Whether the item is active
301
94
  */
302
- active: Boolean
95
+ active: {
96
+ type: Boolean,
97
+ default: false
98
+ }
303
99
  };
304
100
  const CurrentProps = {
305
101
  /**
306
102
  * Whether the item is current
307
103
  */
308
- current: Boolean
104
+ current: {
105
+ type: Boolean,
106
+ default: false
107
+ }
309
108
  };
310
109
  const PressedProps = {
311
110
  /**
312
111
  * Whether the item is pressed
313
112
  */
314
- pressed: Boolean
113
+ pressed: {
114
+ type: Boolean,
115
+ default: false
116
+ }
315
117
  };
316
118
  const LabelProps = {
317
119
  /**
318
120
  * The item label
319
121
  */
320
- label: [String, Number]
321
- };
322
- const ModifiersProps = {
323
- /**
324
- * Component BEM modifiers
325
- */
326
- modifiers: [String, Array]
122
+ label: {
123
+ type: [String, Number],
124
+ default: void 0
125
+ }
327
126
  };
328
127
  const IconProps = {
329
128
  /**
330
129
  * VvIcon name or props
331
130
  * @see VVIcon
332
131
  */
333
- icon: { type: [String, Object] },
132
+ icon: {
133
+ type: [String, Object],
134
+ default: void 0
135
+ },
334
136
  /**
335
137
  * VvIcon position
336
138
  */
@@ -368,7 +170,8 @@ const IdProps = {
368
170
  * Dropdown show / hide transition name
369
171
  */
370
172
  transitionName: {
371
- type: String
173
+ type: String,
174
+ default: void 0
372
175
  },
373
176
  /**
374
177
  * Offset of the dropdown from the trigger
@@ -436,7 +239,8 @@ const IdProps = {
436
239
  * Set dropdown width to the same as the trigger
437
240
  */
438
241
  triggerWidth: {
439
- type: Boolean
242
+ type: Boolean,
243
+ default: false
440
244
  }
441
245
  });
442
246
  ({
@@ -460,16 +264,97 @@ const IdProps = {
460
264
  ariaLabel: {
461
265
  type: String,
462
266
  default: void 0
267
+ },
268
+ /**
269
+ * Default tag for the action
270
+ */
271
+ defaultTag: {
272
+ type: String,
273
+ default: ActionTag.button
463
274
  }
464
275
  });
276
+ ({
277
+ storageType: {
278
+ type: String,
279
+ default: StorageType.local,
280
+ validator: (value) => Object.values(StorageType).includes(value)
281
+ },
282
+ storageKey: String
283
+ });
465
284
  function useInjectedAlertGroup() {
466
285
  return inject(INJECTION_KEY_ALERT_GROUP, {});
467
286
  }
468
- const useUniqueId = (id) => computed(() => String((id == null ? void 0 : id.value) || uid()));
287
+ function useUniqueId(id) {
288
+ return computed(() => String((id == null ? void 0 : id.value) || useId()));
289
+ }
290
+ function useComponentIcon(icon, iconPosition) {
291
+ const hasIcon = computed(() => {
292
+ if (typeof (icon == null ? void 0 : icon.value) === "string") {
293
+ return { name: icon == null ? void 0 : icon.value };
294
+ }
295
+ return icon == null ? void 0 : icon.value;
296
+ });
297
+ const hasIconBefore = computed(
298
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Position.before ? hasIcon.value : void 0
299
+ );
300
+ const hasIconAfter = computed(
301
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Position.after ? hasIcon.value : void 0
302
+ );
303
+ const hasIconLeft = computed(
304
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Side.left ? hasIcon.value : void 0
305
+ );
306
+ const hasIconRight = computed(
307
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Side.right ? hasIcon.value : void 0
308
+ );
309
+ const hasIconTop = computed(
310
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Side.top ? hasIcon.value : void 0
311
+ );
312
+ const hasIconBottom = computed(
313
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Side.bottom ? hasIcon.value : void 0
314
+ );
315
+ return {
316
+ hasIcon,
317
+ hasIconLeft,
318
+ hasIconRight,
319
+ hasIconTop,
320
+ hasIconBottom,
321
+ hasIconBefore,
322
+ hasIconAfter
323
+ };
324
+ }
325
+ function useModifiers(prefix, modifiers, others) {
326
+ return computed(() => {
327
+ const toReturn = {
328
+ [prefix]: true
329
+ };
330
+ const modifiersArray = typeof (modifiers == null ? void 0 : modifiers.value) === "string" ? modifiers.value.split(" ") : modifiers == null ? void 0 : modifiers.value;
331
+ if (modifiersArray) {
332
+ if (Array.isArray(modifiersArray)) {
333
+ modifiersArray.forEach((modifier) => {
334
+ if (modifier) {
335
+ toReturn[`${prefix}--${modifier}`] = true;
336
+ }
337
+ });
338
+ }
339
+ }
340
+ if (others) {
341
+ Object.keys(others.value).forEach((key) => {
342
+ toReturn[`${prefix}--${key}`] = unref(others.value[key]);
343
+ });
344
+ }
345
+ return toReturn;
346
+ });
347
+ }
469
348
  const VvAlertProps = {
470
349
  ...IdProps,
471
- ...ModifiersProps,
472
350
  ...IconProps,
351
+ /**
352
+ * Component BEM modifiers
353
+ */
354
+ modifiers: {
355
+ type: [String, Array],
356
+ default: void 0
357
+ },
473
358
  /**
474
359
  * The alert is dismissable
475
360
  * @default false
@@ -534,29 +419,15 @@ const VvAlertProps = {
534
419
  */
535
420
  role: {
536
421
  type: String,
537
- default: "alert"
422
+ default: AlertRole.alert
538
423
  }
539
424
  };
540
425
  const VvAlertEvents = ["close"];
541
- const useVvAlert = (props, emit) => {
426
+ function useVvAlert(props, emit) {
542
427
  const { bus } = useInjectedAlertGroup();
543
428
  const hasId = useUniqueId(computed(() => props.id));
544
429
  const hasTitleId = computed(() => `${hasId.value}-title`);
545
- const hasIcon = computed(
546
- () => typeof props.icon === "string" ? { name: props.icon } : props.icon
547
- );
548
- const hasClass = useModifiers(
549
- "vv-alert",
550
- computed(() => props.modifiers),
551
- computed(() => ({
552
- dismissable: props.autoClose > 0 || props.dismissable,
553
- "auto-close": props.autoClose > 0,
554
- hover: isMouseover.value
555
- }))
556
- );
557
- const hasStyle = computed(() => ({
558
- "--alert-duration": `${props.autoClose}ms`
559
- }));
430
+ let timeout;
560
431
  const close = () => {
561
432
  if (timeout) {
562
433
  clearTimeout(timeout);
@@ -564,7 +435,6 @@ const useVvAlert = (props, emit) => {
564
435
  emit("close", hasId.value);
565
436
  bus == null ? void 0 : bus.emit("close", hasId.value);
566
437
  };
567
- let timeout;
568
438
  watch(
569
439
  () => props.autoClose,
570
440
  (value) => {
@@ -581,18 +451,31 @@ const useVvAlert = (props, emit) => {
581
451
  }
582
452
  );
583
453
  const isMouseover = ref(false);
584
- const onMouseover = withModifiers(() => {
454
+ const onMouseover = () => {
585
455
  isMouseover.value = true;
586
456
  if (timeout) {
587
457
  clearTimeout(timeout);
588
458
  }
589
- }, ["passive"]);
590
- const onMouseleave = withModifiers(() => {
459
+ };
460
+ const onMouseleave = () => {
591
461
  isMouseover.value = false;
592
462
  if (props.autoClose > 0) {
593
463
  timeout = setTimeout(close, props.autoClose);
594
464
  }
595
- }, ["passive"]);
465
+ };
466
+ const { hasIcon } = useComponentIcon(computed(() => props.icon));
467
+ const hasClass = useModifiers(
468
+ "vv-alert",
469
+ computed(() => props.modifiers),
470
+ computed(() => ({
471
+ "dismissable": props.autoClose > 0 || props.dismissable,
472
+ "auto-close": props.autoClose > 0,
473
+ "hover": isMouseover.value
474
+ }))
475
+ );
476
+ const hasStyle = computed(() => ({
477
+ "--alert-duration": `${props.autoClose}ms`
478
+ }));
596
479
  return {
597
480
  close,
598
481
  hasIcon,
@@ -600,28 +483,144 @@ const useVvAlert = (props, emit) => {
600
483
  hasProps: computed(() => ({
601
484
  onMouseover,
602
485
  onMouseleave,
603
- class: hasClass.value,
604
- style: hasStyle.value,
605
- role: props.role,
486
+ "class": hasClass.value,
487
+ "style": hasStyle.value,
488
+ "role": props.role,
606
489
  "aria-labelledby": hasTitleId.value
607
490
  }))
608
491
  };
492
+ }
493
+ const VvIconPropsDefaults = {
494
+ prefix: "normal"
495
+ /* normal */
609
496
  };
497
+ function useVolver() {
498
+ return inject(INJECTION_KEY_VOLVER);
499
+ }
500
+ const __default__$1 = {
501
+ name: "VvIcon"
502
+ };
503
+ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
504
+ ...__default__$1,
505
+ props: /* @__PURE__ */ mergeDefaults({
506
+ name: {},
507
+ color: {},
508
+ width: {},
509
+ height: {},
510
+ provider: {},
511
+ prefix: {},
512
+ src: {},
513
+ horizontalFlip: { type: Boolean },
514
+ verticalFlip: { type: Boolean },
515
+ flip: {},
516
+ mode: {},
517
+ inline: { type: Boolean },
518
+ rotate: {},
519
+ onLoad: { type: Function },
520
+ svg: {},
521
+ modifiers: {}
522
+ }, VvIconPropsDefaults),
523
+ setup(__props) {
524
+ const props = __props;
525
+ const hasRotate = computed(() => {
526
+ if (typeof props.rotate === "string") {
527
+ return Number.parseFloat(props.rotate);
528
+ }
529
+ return props.rotate;
530
+ });
531
+ const show = ref(true);
532
+ const volver = useVolver();
533
+ const { modifiers } = toRefs(props);
534
+ const bemCssClasses = useModifiers("vv-icon", modifiers);
535
+ const provider = computed(() => {
536
+ return props.provider || (volver == null ? void 0 : volver.iconsProvider);
537
+ });
538
+ const icon = computed(() => {
539
+ const name = props.name ?? "";
540
+ const iconName = `@${provider.value}:${props.prefix}:${name}`;
541
+ if (iconExists(iconName)) {
542
+ return iconName;
543
+ }
544
+ const iconsCollection = volver == null ? void 0 : volver.iconsCollections.find(
545
+ (iconsCollection2) => {
546
+ const icon2 = `@${provider.value}:${iconsCollection2.prefix}:${name}`;
547
+ return iconExists(icon2);
548
+ }
549
+ );
550
+ if (iconsCollection) {
551
+ return `@${provider.value}:${iconsCollection.prefix}:${name}`;
552
+ }
553
+ return name;
554
+ });
555
+ function getSvgContent(svg) {
556
+ let dom;
557
+ if (typeof window === "undefined") {
558
+ const { JSDOM } = require("jsdom");
559
+ dom = new JSDOM().window;
560
+ }
561
+ const domParser = dom ? new dom.DOMParser() : new window.DOMParser();
562
+ const svgDomString = domParser.parseFromString(svg, "text/html");
563
+ const svgEl = svgDomString.querySelector("svg");
564
+ return svgEl;
565
+ }
566
+ function addIconFromSvg(svg) {
567
+ const svgContentEl = getSvgContent(svg);
568
+ const svgContent = (svgContentEl == null ? void 0 : svgContentEl.innerHTML.trim()) || "";
569
+ if (svgContentEl && svgContent) {
570
+ addIcon(`@${provider.value}:${props.prefix}:${props.name}`, {
571
+ body: svgContent,
572
+ // Set height and width from svg content
573
+ height: svgContentEl.viewBox.baseVal.height,
574
+ width: svgContentEl.viewBox.baseVal.width
575
+ });
576
+ }
577
+ }
578
+ if (volver) {
579
+ if (props.src && !iconExists(`@${provider.value}:${props.prefix}:${props.name}`)) {
580
+ show.value = false;
581
+ volver.fetchIcon(props.src).then((svg) => {
582
+ if (svg) {
583
+ addIconFromSvg(svg);
584
+ show.value = true;
585
+ }
586
+ }).catch((e) => {
587
+ throw new Error(`Error during fetch icon: ${e == null ? void 0 : e.message}`);
588
+ });
589
+ }
590
+ }
591
+ if (props.svg) {
592
+ addIconFromSvg(props.svg);
593
+ }
594
+ return (_ctx, _cache) => {
595
+ return unref(show) ? (openBlock(), createBlock(unref(Icon), mergeProps({
596
+ key: 0,
597
+ class: unref(bemCssClasses)
598
+ }, {
599
+ inline: _ctx.inline,
600
+ width: _ctx.width,
601
+ height: _ctx.height,
602
+ horizontalFlip: _ctx.horizontalFlip,
603
+ verticalFlip: _ctx.verticalFlip,
604
+ flip: _ctx.flip,
605
+ rotate: unref(hasRotate),
606
+ color: _ctx.color,
607
+ onLoad: _ctx.onLoad,
608
+ icon: unref(icon)
609
+ }), null, 16, ["class"])) : createCommentVNode("v-if", true);
610
+ };
611
+ }
612
+ });
610
613
  const _hoisted_1 = {
611
614
  key: 0,
612
615
  class: "vv-alert__header"
613
616
  };
614
617
  const _hoisted_2 = ["id"];
615
618
  const _hoisted_3 = ["aria-label"];
616
- const _hoisted_4 = /* @__PURE__ */ createElementVNode("div", { class: "vv-alert__close-mask" }, null, -1);
617
- const _hoisted_5 = [
618
- _hoisted_4
619
- ];
620
- const _hoisted_6 = {
619
+ const _hoisted_4 = {
621
620
  key: 1,
622
621
  class: "vv-alert__content"
623
622
  };
624
- const _hoisted_7 = {
623
+ const _hoisted_5 = {
625
624
  key: 2,
626
625
  class: "vv-alert__footer"
627
626
  };
@@ -632,52 +631,85 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
632
631
  ...__default__,
633
632
  props: VvAlertProps,
634
633
  emits: VvAlertEvents,
635
- setup(__props, { expose: __expose, emit }) {
634
+ setup(__props, { expose: __expose, emit: __emit }) {
636
635
  const props = __props;
636
+ const emit = __emit;
637
637
  const { hasProps, hasTitleId, hasIcon, close } = useVvAlert(props, emit);
638
638
  __expose({ close });
639
639
  return (_ctx, _cache) => {
640
- return openBlock(), createElementBlock("div", normalizeProps(guardReactiveProps(unref(hasProps))), [
641
- _ctx.$slots.header || _ctx.$slots.title || _ctx.$slots.close || _ctx.$slots["title::before"] || _ctx.$slots["title::after"] || _ctx.title || _ctx.dismissable || _ctx.autoClose ? (openBlock(), createElementBlock("div", _hoisted_1, [
642
- unref(hasIcon) ? (openBlock(), createBlock(_sfc_main$1, mergeProps({ key: 0 }, unref(hasIcon), { class: "vv-alert__icon" }), null, 16)) : createCommentVNode("", true),
643
- renderSlot(_ctx.$slots, "header", {}, () => [
644
- renderSlot(_ctx.$slots, "title::before"),
645
- _ctx.$slots.title || _ctx.title ? (openBlock(), createElementBlock("strong", {
646
- key: 0,
647
- id: unref(hasTitleId),
648
- class: "vv-alert__title"
649
- }, [
650
- renderSlot(_ctx.$slots, "title", {}, () => [
651
- createTextVNode(toDisplayString(_ctx.title), 1)
652
- ])
653
- ], 8, _hoisted_2)) : createCommentVNode("", true),
654
- renderSlot(_ctx.$slots, "title::after")
655
- ]),
656
- renderSlot(_ctx.$slots, "close", normalizeProps(guardReactiveProps({ close: unref(close) })), () => [
657
- _ctx.dismissable || _ctx.autoClose ? (openBlock(), createElementBlock("button", {
658
- key: 0,
659
- class: "vv-alert__close",
660
- type: "button",
661
- "aria-label": _ctx.closeLabel,
662
- onClick: _cache[0] || (_cache[0] = withModifiers(
663
- //@ts-ignore
664
- (...args) => unref(close) && unref(close)(...args),
665
- ["stop"]
666
- ))
667
- }, _hoisted_5, 8, _hoisted_3)) : createCommentVNode("", true)
668
- ])
669
- ])) : createCommentVNode("", true),
670
- _ctx.$slots.default || _ctx.content ? (openBlock(), createElementBlock("div", _hoisted_6, [
671
- renderSlot(_ctx.$slots, "default", {}, () => [
672
- createTextVNode(toDisplayString(_ctx.content), 1)
673
- ])
674
- ])) : createCommentVNode("", true),
675
- _ctx.$slots.footer || _ctx.footer ? (openBlock(), createElementBlock("div", _hoisted_7, [
676
- renderSlot(_ctx.$slots, "footer", {}, () => [
677
- createTextVNode(toDisplayString(_ctx.footer), 1)
678
- ])
679
- ])) : createCommentVNode("", true)
680
- ], 16);
640
+ return openBlock(), createElementBlock(
641
+ "div",
642
+ normalizeProps(guardReactiveProps(unref(hasProps))),
643
+ [
644
+ _ctx.$slots.header || _ctx.$slots.title || _ctx.$slots.close || _ctx.$slots["title::before"] || _ctx.$slots["title::after"] || _ctx.title || _ctx.dismissable || _ctx.autoClose ? (openBlock(), createElementBlock("div", _hoisted_1, [
645
+ unref(hasIcon) ? (openBlock(), createBlock(
646
+ _sfc_main$1,
647
+ mergeProps({ key: 0 }, unref(hasIcon), { class: "vv-alert__icon" }),
648
+ null,
649
+ 16
650
+ /* FULL_PROPS */
651
+ )) : createCommentVNode("v-if", true),
652
+ renderSlot(_ctx.$slots, "header", {}, () => [
653
+ renderSlot(_ctx.$slots, "title::before"),
654
+ _ctx.$slots.title || _ctx.title ? (openBlock(), createElementBlock("strong", {
655
+ key: 0,
656
+ id: unref(hasTitleId),
657
+ class: "vv-alert__title"
658
+ }, [
659
+ renderSlot(_ctx.$slots, "title", {}, () => [
660
+ createTextVNode(
661
+ toDisplayString(_ctx.title),
662
+ 1
663
+ /* TEXT */
664
+ )
665
+ ])
666
+ ], 8, _hoisted_2)) : createCommentVNode("v-if", true),
667
+ renderSlot(_ctx.$slots, "title::after")
668
+ ]),
669
+ renderSlot(_ctx.$slots, "close", normalizeProps(guardReactiveProps({ close: unref(close) })), () => [
670
+ _ctx.dismissable || _ctx.autoClose ? (openBlock(), createElementBlock("button", {
671
+ key: 0,
672
+ class: "vv-alert__close",
673
+ type: "button",
674
+ "aria-label": _ctx.closeLabel,
675
+ onClick: _cache[0] || (_cache[0] = withModifiers(
676
+ //@ts-ignore
677
+ (...args) => unref(close) && unref(close)(...args),
678
+ ["stop"]
679
+ ))
680
+ }, _cache[1] || (_cache[1] = [
681
+ createElementVNode(
682
+ "div",
683
+ { class: "vv-alert__close-mask" },
684
+ null,
685
+ -1
686
+ /* HOISTED */
687
+ )
688
+ ]), 8, _hoisted_3)) : createCommentVNode("v-if", true)
689
+ ])
690
+ ])) : createCommentVNode("v-if", true),
691
+ _ctx.$slots.default || _ctx.content ? (openBlock(), createElementBlock("div", _hoisted_4, [
692
+ renderSlot(_ctx.$slots, "default", {}, () => [
693
+ createTextVNode(
694
+ toDisplayString(_ctx.content),
695
+ 1
696
+ /* TEXT */
697
+ )
698
+ ])
699
+ ])) : createCommentVNode("v-if", true),
700
+ _ctx.$slots.footer || _ctx.footer ? (openBlock(), createElementBlock("div", _hoisted_5, [
701
+ renderSlot(_ctx.$slots, "footer", {}, () => [
702
+ createTextVNode(
703
+ toDisplayString(_ctx.footer),
704
+ 1
705
+ /* TEXT */
706
+ )
707
+ ])
708
+ ])) : createCommentVNode("v-if", true)
709
+ ],
710
+ 16
711
+ /* FULL_PROPS */
712
+ );
681
713
  };
682
714
  }
683
715
  });