@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
@@ -1,7 +1,16 @@
1
- import { provide, computed, unref, inject, defineComponent, ref, toRefs, openBlock, createBlock, mergeProps, createCommentVNode, watch, withModifiers, createElementBlock, normalizeProps, guardReactiveProps, renderSlot, createTextVNode, toDisplayString, createElementVNode, createVNode, TransitionGroup, toHandlers, withCtx, Fragment, renderList } from "vue";
2
- import mitt from "mitt";
1
+ import { inject, computed, unref, defineComponent, mergeDefaults, ref, toRefs, openBlock, createBlock, mergeProps, createCommentVNode, watch, createElementBlock, normalizeProps, guardReactiveProps, renderSlot, createTextVNode, toDisplayString, withModifiers, createElementVNode, provide, createVNode, TransitionGroup, toHandlers, withCtx, Fragment, renderList } from "vue";
3
2
  import { iconExists, Icon, addIcon } from "@iconify/vue";
4
3
  import { uid } from "uid";
4
+ import mitt from "mitt";
5
+ const VvIconPropsDefaults = {
6
+ prefix: "normal"
7
+ /* normal */
8
+ };
9
+ var StorageType = /* @__PURE__ */ ((StorageType2) => {
10
+ StorageType2["local"] = "local";
11
+ StorageType2["session"] = "session";
12
+ return StorageType2;
13
+ })(StorageType || {});
5
14
  var Strategy = /* @__PURE__ */ ((Strategy2) => {
6
15
  Strategy2["absolute"] = "absolute";
7
16
  Strategy2["fixed"] = "fixed";
@@ -36,17 +45,161 @@ var ButtonType = /* @__PURE__ */ ((ButtonType2) => {
36
45
  ButtonType2["reset"] = "reset";
37
46
  return ButtonType2;
38
47
  })(ButtonType || {});
39
- var AnchorTarget = /* @__PURE__ */ ((AnchorTarget2) => {
40
- AnchorTarget2["_blank"] = "_blank";
41
- AnchorTarget2["_self"] = "_self";
42
- AnchorTarget2["_parent"] = "_parent";
43
- AnchorTarget2["_top"] = "_top";
44
- return AnchorTarget2;
45
- })(AnchorTarget || {});
48
+ var ActionTag = /* @__PURE__ */ ((ActionTag2) => {
49
+ ActionTag2["nuxtLink"] = "nuxt-link";
50
+ ActionTag2["routerLink"] = "router-link";
51
+ ActionTag2["a"] = "a";
52
+ ActionTag2["button"] = "button";
53
+ return ActionTag2;
54
+ })(ActionTag || {});
55
+ var AlertRole = /* @__PURE__ */ ((AlertRole2) => {
56
+ AlertRole2["alert"] = "alert";
57
+ AlertRole2["alertdialog"] = "alertdialog";
58
+ return AlertRole2;
59
+ })(AlertRole || {});
46
60
  const INJECTION_KEY_VOLVER = Symbol.for("volver");
47
61
  const INJECTION_KEY_ALERT_GROUP = Symbol.for(
48
62
  "alertGroup"
49
63
  );
64
+ function useVolver() {
65
+ return inject(INJECTION_KEY_VOLVER);
66
+ }
67
+ function useModifiers(prefix, modifiers, others) {
68
+ return computed(() => {
69
+ const toReturn = {
70
+ [prefix]: true
71
+ };
72
+ const modifiersArray = typeof (modifiers == null ? void 0 : modifiers.value) === "string" ? modifiers.value.split(" ") : modifiers == null ? void 0 : modifiers.value;
73
+ if (modifiersArray) {
74
+ if (Array.isArray(modifiersArray)) {
75
+ modifiersArray.forEach((modifier) => {
76
+ if (modifier) {
77
+ toReturn[`${prefix}--${modifier}`] = true;
78
+ }
79
+ });
80
+ }
81
+ }
82
+ if (others) {
83
+ Object.keys(others.value).forEach((key) => {
84
+ toReturn[`${prefix}--${key}`] = unref(others.value[key]);
85
+ });
86
+ }
87
+ return toReturn;
88
+ });
89
+ }
90
+ const __default__$2 = {
91
+ name: "VvIcon"
92
+ };
93
+ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
94
+ ...__default__$2,
95
+ props: /* @__PURE__ */ mergeDefaults({
96
+ name: {},
97
+ color: {},
98
+ width: {},
99
+ height: {},
100
+ provider: {},
101
+ prefix: {},
102
+ src: {},
103
+ horizontalFlip: { type: Boolean },
104
+ verticalFlip: { type: Boolean },
105
+ flip: {},
106
+ mode: {},
107
+ inline: { type: Boolean },
108
+ rotate: {},
109
+ onLoad: { type: Function },
110
+ svg: {},
111
+ modifiers: {}
112
+ }, VvIconPropsDefaults),
113
+ setup(__props) {
114
+ const props = __props;
115
+ const hasRotate = computed(() => {
116
+ if (typeof props.rotate === "string") {
117
+ return Number.parseFloat(props.rotate);
118
+ }
119
+ return props.rotate;
120
+ });
121
+ const show = ref(true);
122
+ const volver = useVolver();
123
+ const { modifiers } = toRefs(props);
124
+ const bemCssClasses = useModifiers("vv-icon", modifiers);
125
+ const provider = computed(() => {
126
+ return props.provider || (volver == null ? void 0 : volver.iconsProvider);
127
+ });
128
+ const icon = computed(() => {
129
+ const name = props.name ?? "";
130
+ const iconName = `@${provider.value}:${props.prefix}:${name}`;
131
+ if (iconExists(iconName)) {
132
+ return iconName;
133
+ }
134
+ const iconsCollection = volver == null ? void 0 : volver.iconsCollections.find(
135
+ (iconsCollection2) => {
136
+ const icon2 = `@${provider.value}:${iconsCollection2.prefix}:${name}`;
137
+ return iconExists(icon2);
138
+ }
139
+ );
140
+ if (iconsCollection) {
141
+ return `@${provider.value}:${iconsCollection.prefix}:${name}`;
142
+ }
143
+ return name;
144
+ });
145
+ function getSvgContent(svg) {
146
+ let dom;
147
+ if (typeof window === "undefined") {
148
+ const { JSDOM } = require("jsdom");
149
+ dom = new JSDOM().window;
150
+ }
151
+ const domParser = dom ? new dom.DOMParser() : new window.DOMParser();
152
+ const svgDomString = domParser.parseFromString(svg, "text/html");
153
+ const svgEl = svgDomString.querySelector("svg");
154
+ return svgEl;
155
+ }
156
+ function addIconFromSvg(svg) {
157
+ const svgContentEl = getSvgContent(svg);
158
+ const svgContent = (svgContentEl == null ? void 0 : svgContentEl.innerHTML.trim()) || "";
159
+ if (svgContentEl && svgContent) {
160
+ addIcon(`@${provider.value}:${props.prefix}:${props.name}`, {
161
+ body: svgContent,
162
+ // Set height and width from svg content
163
+ height: svgContentEl.viewBox.baseVal.height,
164
+ width: svgContentEl.viewBox.baseVal.width
165
+ });
166
+ }
167
+ }
168
+ if (volver) {
169
+ if (props.src && !iconExists(`@${provider.value}:${props.prefix}:${props.name}`)) {
170
+ show.value = false;
171
+ volver.fetchIcon(props.src).then((svg) => {
172
+ if (svg) {
173
+ addIconFromSvg(svg);
174
+ show.value = true;
175
+ }
176
+ }).catch((e) => {
177
+ throw new Error(`Error during fetch icon: ${e == null ? void 0 : e.message}`);
178
+ });
179
+ }
180
+ }
181
+ if (props.svg) {
182
+ addIconFromSvg(props.svg);
183
+ }
184
+ return (_ctx, _cache) => {
185
+ return unref(show) ? (openBlock(), createBlock(unref(Icon), mergeProps({
186
+ key: 0,
187
+ class: unref(bemCssClasses)
188
+ }, {
189
+ inline: _ctx.inline,
190
+ width: _ctx.width,
191
+ height: _ctx.height,
192
+ horizontalFlip: _ctx.horizontalFlip,
193
+ verticalFlip: _ctx.verticalFlip,
194
+ flip: _ctx.flip,
195
+ rotate: unref(hasRotate),
196
+ color: _ctx.color,
197
+ onLoad: _ctx.onLoad,
198
+ icon: unref(icon)
199
+ }), null, 16, ["class"])) : createCommentVNode("v-if", true);
200
+ };
201
+ }
202
+ });
50
203
  const LinkProps = {
51
204
  /**
52
205
  * The router-link/nuxt-link property, if it is defined the button is rendered as a ruouter-link or nuxt-link.
@@ -62,10 +215,7 @@ const LinkProps = {
62
215
  /**
63
216
  * Anchor target
64
217
  */
65
- target: {
66
- type: String,
67
- validator: (value) => Object.values(AnchorTarget).includes(value)
68
- },
218
+ target: String,
69
219
  /**
70
220
  * Anchor rel
71
221
  */
@@ -78,44 +228,65 @@ const DisabledProps = {
78
228
  /**
79
229
  * Whether the form control is disabled
80
230
  */
81
- disabled: Boolean
231
+ disabled: {
232
+ type: Boolean,
233
+ default: false
234
+ }
82
235
  };
83
236
  const ActiveProps = {
84
237
  /**
85
238
  * Whether the item is active
86
239
  */
87
- active: Boolean
240
+ active: {
241
+ type: Boolean,
242
+ default: false
243
+ }
88
244
  };
89
245
  const CurrentProps = {
90
246
  /**
91
247
  * Whether the item is current
92
248
  */
93
- current: Boolean
249
+ current: {
250
+ type: Boolean,
251
+ default: false
252
+ }
94
253
  };
95
254
  const PressedProps = {
96
255
  /**
97
256
  * Whether the item is pressed
98
257
  */
99
- pressed: Boolean
258
+ pressed: {
259
+ type: Boolean,
260
+ default: false
261
+ }
100
262
  };
101
263
  const LabelProps = {
102
264
  /**
103
265
  * The item label
104
266
  */
105
- label: [String, Number]
267
+ label: {
268
+ type: [String, Number],
269
+ default: void 0
270
+ }
106
271
  };
107
272
  const ModifiersProps = {
108
273
  /**
109
274
  * Component BEM modifiers
110
275
  */
111
- modifiers: [String, Array]
276
+ modifiers: {
277
+ type: [String, Array],
278
+ default: void 0
279
+ }
112
280
  };
113
281
  const IconProps = {
114
282
  /**
115
283
  * VvIcon name or props
116
284
  * @see VVIcon
117
285
  */
118
- icon: { type: [String, Object] },
286
+ icon: {
287
+ type: [String, Object],
288
+ default: void 0
289
+ },
119
290
  /**
120
291
  * VvIcon position
121
292
  */
@@ -153,7 +324,8 @@ const IdProps = {
153
324
  * Dropdown show / hide transition name
154
325
  */
155
326
  transitionName: {
156
- type: String
327
+ type: String,
328
+ default: void 0
157
329
  },
158
330
  /**
159
331
  * Offset of the dropdown from the trigger
@@ -221,7 +393,8 @@ const IdProps = {
221
393
  * Set dropdown width to the same as the trigger
222
394
  */
223
395
  triggerWidth: {
224
- type: Boolean
396
+ type: Boolean,
397
+ default: false
225
398
  }
226
399
  });
227
400
  ({
@@ -245,386 +418,116 @@ const IdProps = {
245
418
  ariaLabel: {
246
419
  type: String,
247
420
  default: void 0
421
+ },
422
+ /**
423
+ * Default tag for the action
424
+ */
425
+ defaultTag: {
426
+ type: String,
427
+ default: ActionTag.button
248
428
  }
249
429
  });
250
- function useProvideAlertGroup({
251
- name
252
- }) {
253
- const bus = mitt();
254
- provide(INJECTION_KEY_ALERT_GROUP, {
255
- name,
256
- bus
257
- });
258
- return bus;
430
+ ({
431
+ storageType: {
432
+ type: String,
433
+ default: StorageType.local,
434
+ validator: (value) => Object.values(StorageType).includes(value)
435
+ },
436
+ storageKey: String
437
+ });
438
+ function useInjectedAlertGroup() {
439
+ return inject(INJECTION_KEY_ALERT_GROUP, {});
259
440
  }
260
- function useModifiers(prefix, modifiers, others) {
261
- return computed(() => {
262
- const toReturn = {
263
- [prefix]: true
264
- };
265
- const modifiersArray = typeof (modifiers == null ? void 0 : modifiers.value) === "string" ? modifiers.value.split(" ") : modifiers == null ? void 0 : modifiers.value;
266
- if (modifiersArray) {
267
- if (Array.isArray(modifiersArray)) {
268
- modifiersArray.forEach((modifier) => {
269
- if (modifier) {
270
- toReturn[`${prefix}--${modifier}`] = true;
271
- }
272
- });
273
- }
274
- }
275
- if (others) {
276
- Object.keys(others.value).forEach((key) => {
277
- toReturn[`${prefix}--${key}`] = unref(others.value[key]);
278
- });
441
+ function useUniqueId(id) {
442
+ return computed(() => String((id == null ? void 0 : id.value) || uid()));
443
+ }
444
+ function useComponentIcon(icon, iconPosition) {
445
+ const hasIcon = computed(() => {
446
+ if (typeof (icon == null ? void 0 : icon.value) === "string") {
447
+ return { name: icon == null ? void 0 : icon.value };
279
448
  }
280
- return toReturn;
449
+ return icon == null ? void 0 : icon.value;
281
450
  });
451
+ const hasIconBefore = computed(
452
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Position.before ? hasIcon.value : void 0
453
+ );
454
+ const hasIconAfter = computed(
455
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Position.after ? hasIcon.value : void 0
456
+ );
457
+ const hasIconLeft = computed(
458
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Side.left ? hasIcon.value : void 0
459
+ );
460
+ const hasIconRight = computed(
461
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Side.right ? hasIcon.value : void 0
462
+ );
463
+ const hasIconTop = computed(
464
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Side.top ? hasIcon.value : void 0
465
+ );
466
+ const hasIconBottom = computed(
467
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Side.bottom ? hasIcon.value : void 0
468
+ );
469
+ return {
470
+ hasIcon,
471
+ hasIconLeft,
472
+ hasIconRight,
473
+ hasIconTop,
474
+ hasIconBottom,
475
+ hasIconBefore,
476
+ hasIconAfter
477
+ };
282
478
  }
283
- const VvAlertGroupProps = {
284
- ...ModifiersProps,
285
- name: {
286
- type: String,
287
- required: true
288
- },
289
- items: {
290
- type: Array,
291
- default: () => []
479
+ const VvAlertProps = {
480
+ ...IdProps,
481
+ ...IconProps,
482
+ /**
483
+ * Component BEM modifiers
484
+ */
485
+ modifiers: {
486
+ type: [String, Array],
487
+ default: void 0
292
488
  },
293
- stack: {
489
+ /**
490
+ * The alert is dismissable
491
+ * @default false
492
+ * @type boolean
493
+ */
494
+ dismissable: {
294
495
  type: Boolean,
295
496
  default: false
296
497
  },
297
- reverse: {
298
- type: Boolean,
299
- default: false
498
+ /**
499
+ * The alert auto close after the specified time in milliseconds
500
+ * @default 0
501
+ * @type number
502
+ */
503
+ autoClose: {
504
+ type: Number,
505
+ default: 0
300
506
  },
301
- inline: {
507
+ /**
508
+ * The alert close label
509
+ * @default 'Close'
510
+ * @type string
511
+ */
512
+ closeLabel: {
302
513
  type: String,
303
- default: void 0
514
+ default: "Close"
304
515
  },
305
- block: {
516
+ /**
517
+ * The alert title
518
+ * @default ''
519
+ * @type string
520
+ */
521
+ title: {
306
522
  type: String,
307
523
  default: void 0
308
524
  },
309
- position: {
310
- type: String,
311
- default: void 0
312
- },
313
- transition: {
314
- type: String,
315
- default: void 0
316
- }
317
- };
318
- const VvAlertGroupEvents = [
319
- "close",
320
- "before-enter",
321
- "after-leave",
322
- "enter",
323
- "after-enter",
324
- "enter-cancelled",
325
- "before-leave",
326
- "leave",
327
- "leave-cancelled"
328
- ];
329
- const useVvAlertGroup = (props, emit) => {
330
- const bus = useProvideAlertGroup({ name: computed(() => props.name) });
331
- if (props.block && !props.inline || !props.block && props.inline) {
332
- console.warn(
333
- `[VvAlertGroup]: block and inline props must coexist at the same time.`
334
- );
335
- }
336
- const hasClass = computed(() => {
337
- const toReturn = [
338
- useModifiers(
339
- "vv-alert-group",
340
- computed(() => props.modifiers),
341
- computed(() => ({
342
- stack: props.stack,
343
- reverse: props.reverse,
344
- absolute: props.position === "absolute",
345
- fixed: props.position === "fixed"
346
- }))
347
- ).value
348
- ];
349
- if (props.inline && props.block) {
350
- toReturn.push(`vv-alert-group--${props.block}-${props.inline}`);
351
- }
352
- return toReturn;
353
- });
354
- const hasTransition = computed(() => {
355
- if (props.transition) {
356
- return props.transition;
357
- }
358
- if (!props.position) {
359
- return "vv-alert--fade";
360
- }
361
- if (props.inline === "start") {
362
- return "vv-alert--fade-inline-start";
363
- }
364
- if (props.inline === "end") {
365
- return "vv-alert--fade-inline-end";
366
- }
367
- if (props.block === "top") {
368
- return "vv-alert--fade-block-top";
369
- }
370
- if (props.block === "bottom") {
371
- return "vv-alert--fade-block-bottom";
372
- }
373
- return "vv-alert--fade";
374
- });
375
- bus.on("close", (id) => {
376
- emit("close", id);
377
- });
378
- return {
379
- hasTransition,
380
- hasProps: computed(() => ({
381
- class: hasClass.value
382
- }))
383
- };
384
- };
385
- const VvIconProps = {
386
- /**
387
- * Color
388
- */
389
- color: String,
390
- /**
391
- * Width
392
- */
393
- width: {
394
- type: [String, Number]
395
- },
396
- /**
397
- * Height
398
- */
399
- height: {
400
- type: [String, Number]
401
- },
402
- /**
403
- * Icon name
404
- * Can be the full composition of iconify name "@{provider}:{prefix}:{name}" or "{prefix}:{name}" or "{name}"
405
- * https://docs.iconify.design/api/providers.html#provider-in-icon-name
406
- */
407
- name: {
408
- type: String,
409
- required: true
410
- },
411
- /**
412
- * By default 'vv'
413
- * If custom collection is not added with "addCollection" DS class method, this prop could not be used
414
- * Icon provider: https://docs.iconify.design/api/providers.html#provider-in-icon-name
415
- */
416
- provider: {
417
- type: String
418
- },
419
- /**
420
- * The name of icon set.
421
- * Icon default options prefix: simple | normal | detailed
422
- */
423
- prefix: {
424
- type: String,
425
- default: "normal"
426
- },
427
- /**
428
- * Url remote SVG icon
429
- */
430
- src: String,
431
- /**
432
- * Horizontal flip
433
- */
434
- horizontalFlip: Boolean,
435
- /**
436
- * Vertical flip
437
- */
438
- verticalFlip: Boolean,
439
- /**
440
- * String alternative to "horizontalFlip" and "verticalFlip".
441
- * Example: https://docs.iconify.design/icon-components/vue/transform.html
442
- */
443
- flip: String,
444
- /**
445
- * Icon render mode
446
- * 'style' = 'bg' or 'mask', depending on icon content
447
- * 'bg' = span with style using `background`
448
- * 'mask' = span with style using `mask`
449
- * 'svg' = svg
450
- * Iconify doc: https://docs.iconify.design/iconify-icon/modes.html
451
- */
452
- mode: String,
453
- /**
454
- * Toggles inline or block mode
455
- * Example https://docs.iconify.design/icon-components/vue/inline.html
456
- */
457
- inline: Boolean,
458
- /**
459
- * rotates icon
460
- * Example https://docs.iconify.design/icon-components/vue/transform.html
461
- */
462
- rotate: [Number, String],
463
- /**
464
- * A callback that is called when icon data has been loaded
465
- */
466
- onLoad: Function,
467
- /**
468
- * SVG icon string
469
- */
470
- svg: String,
471
- /**
472
- * Icon modifiers: vv-icon css helper classes, value/s are concatened with prefix 'vv-icon--'
473
- * @values string | string[]
474
- */
475
- modifiers: {
476
- type: [String, Array]
477
- }
478
- };
479
- function useVolver() {
480
- return inject(INJECTION_KEY_VOLVER);
481
- }
482
- const __default__$2 = {
483
- name: "VvIcon"
484
- };
485
- const _sfc_main$2 = /* @__PURE__ */ defineComponent({
486
- ...__default__$2,
487
- props: VvIconProps,
488
- setup(__props) {
489
- const props = __props;
490
- const hasRotate = computed(() => {
491
- if (typeof props.rotate === "string") {
492
- return parseFloat(props.rotate);
493
- }
494
- return props.rotate;
495
- });
496
- const show = ref(true);
497
- const volver = useVolver();
498
- const { modifiers } = toRefs(props);
499
- const bemCssClasses = useModifiers("vv-icon", modifiers);
500
- const provider = computed(() => {
501
- return props.provider || (volver == null ? void 0 : volver.iconsProvider);
502
- });
503
- const icon = computed(() => {
504
- const name = props.name ?? "";
505
- const iconName = `@${provider.value}:${props.prefix}:${name}`;
506
- if (iconExists(iconName)) {
507
- return iconName;
508
- }
509
- const iconsCollection = volver == null ? void 0 : volver.iconsCollections.find(
510
- (iconsCollection2) => {
511
- const icon2 = `@${provider.value}:${iconsCollection2.prefix}:${name}`;
512
- return iconExists(icon2);
513
- }
514
- );
515
- if (iconsCollection) {
516
- return `@${provider.value}:${iconsCollection.prefix}:${name}`;
517
- }
518
- return name;
519
- });
520
- function getSvgContent(svg) {
521
- let dom;
522
- if (typeof window === "undefined") {
523
- const { JSDOM } = require("jsdom");
524
- dom = new JSDOM().window;
525
- }
526
- const domParser = dom ? new dom.DOMParser() : new window.DOMParser();
527
- const svgDomString = domParser.parseFromString(svg, "text/html");
528
- const svgEl = svgDomString.querySelector("svg");
529
- return svgEl;
530
- }
531
- function addIconFromSvg(svg) {
532
- const svgContentEl = getSvgContent(svg);
533
- const svgContent = (svgContentEl == null ? void 0 : svgContentEl.innerHTML.trim()) || "";
534
- if (svgContentEl && svgContent) {
535
- addIcon(`@${provider.value}:${props.prefix}:${props.name}`, {
536
- body: svgContent,
537
- // Set height and width from svg content
538
- height: svgContentEl.viewBox.baseVal.height,
539
- width: svgContentEl.viewBox.baseVal.width
540
- });
541
- }
542
- }
543
- if (volver) {
544
- if (props.src && !iconExists(`@${provider.value}:${props.prefix}:${props.name}`)) {
545
- show.value = false;
546
- volver.fetchIcon(props.src).then((svg) => {
547
- if (svg) {
548
- addIconFromSvg(svg);
549
- show.value = true;
550
- }
551
- }).catch((e) => {
552
- throw new Error(`Error during fetch icon: ${e == null ? void 0 : e.message}`);
553
- });
554
- }
555
- }
556
- if (props.svg) {
557
- addIconFromSvg(props.svg);
558
- }
559
- return (_ctx, _cache) => {
560
- return unref(show) ? (openBlock(), createBlock(unref(Icon), mergeProps({
561
- key: 0,
562
- class: unref(bemCssClasses)
563
- }, {
564
- inline: _ctx.inline,
565
- width: _ctx.width,
566
- height: _ctx.height,
567
- horizontalFlip: _ctx.horizontalFlip,
568
- verticalFlip: _ctx.verticalFlip,
569
- flip: _ctx.flip,
570
- rotate: unref(hasRotate),
571
- color: _ctx.color,
572
- onLoad: _ctx.onLoad,
573
- icon: unref(icon)
574
- }), null, 16, ["class"])) : createCommentVNode("", true);
575
- };
576
- }
577
- });
578
- function useInjectedAlertGroup() {
579
- return inject(INJECTION_KEY_ALERT_GROUP, {});
580
- }
581
- const useUniqueId = (id) => computed(() => String((id == null ? void 0 : id.value) || uid()));
582
- const VvAlertProps = {
583
- ...IdProps,
584
- ...ModifiersProps,
585
- ...IconProps,
586
- /**
587
- * The alert is dismissable
588
- * @default false
589
- * @type boolean
590
- */
591
- dismissable: {
592
- type: Boolean,
593
- default: false
594
- },
595
- /**
596
- * The alert auto close after the specified time in milliseconds
597
- * @default 0
598
- * @type number
599
- */
600
- autoClose: {
601
- type: Number,
602
- default: 0
603
- },
604
- /**
605
- * The alert close label
606
- * @default 'Close'
607
- * @type string
608
- */
609
- closeLabel: {
610
- type: String,
611
- default: "Close"
612
- },
613
- /**
614
- * The alert title
615
- * @default ''
616
- * @type string
617
- */
618
- title: {
619
- type: String,
620
- default: void 0
621
- },
622
- /**
623
- * The alert content
624
- * @default ''
625
- * @type string
626
- */
627
- content: {
525
+ /**
526
+ * The alert content
527
+ * @default ''
528
+ * @type string
529
+ */
530
+ content: {
628
531
  type: String,
629
532
  default: void 0
630
533
  },
@@ -647,29 +550,15 @@ const VvAlertProps = {
647
550
  */
648
551
  role: {
649
552
  type: String,
650
- default: "alert"
553
+ default: AlertRole.alert
651
554
  }
652
555
  };
653
556
  const VvAlertEvents = ["close"];
654
- const useVvAlert = (props, emit) => {
557
+ function useVvAlert(props, emit) {
655
558
  const { bus } = useInjectedAlertGroup();
656
559
  const hasId = useUniqueId(computed(() => props.id));
657
560
  const hasTitleId = computed(() => `${hasId.value}-title`);
658
- const hasIcon = computed(
659
- () => typeof props.icon === "string" ? { name: props.icon } : props.icon
660
- );
661
- const hasClass = useModifiers(
662
- "vv-alert",
663
- computed(() => props.modifiers),
664
- computed(() => ({
665
- dismissable: props.autoClose > 0 || props.dismissable,
666
- "auto-close": props.autoClose > 0,
667
- hover: isMouseover.value
668
- }))
669
- );
670
- const hasStyle = computed(() => ({
671
- "--alert-duration": `${props.autoClose}ms`
672
- }));
561
+ let timeout;
673
562
  const close = () => {
674
563
  if (timeout) {
675
564
  clearTimeout(timeout);
@@ -677,7 +566,6 @@ const useVvAlert = (props, emit) => {
677
566
  emit("close", hasId.value);
678
567
  bus == null ? void 0 : bus.emit("close", hasId.value);
679
568
  };
680
- let timeout;
681
569
  watch(
682
570
  () => props.autoClose,
683
571
  (value) => {
@@ -694,18 +582,31 @@ const useVvAlert = (props, emit) => {
694
582
  }
695
583
  );
696
584
  const isMouseover = ref(false);
697
- const onMouseover = withModifiers(() => {
585
+ const onMouseover = () => {
698
586
  isMouseover.value = true;
699
587
  if (timeout) {
700
588
  clearTimeout(timeout);
701
589
  }
702
- }, ["passive"]);
703
- const onMouseleave = withModifiers(() => {
590
+ };
591
+ const onMouseleave = () => {
704
592
  isMouseover.value = false;
705
593
  if (props.autoClose > 0) {
706
594
  timeout = setTimeout(close, props.autoClose);
707
595
  }
708
- }, ["passive"]);
596
+ };
597
+ const { hasIcon } = useComponentIcon(computed(() => props.icon));
598
+ const hasClass = useModifiers(
599
+ "vv-alert",
600
+ computed(() => props.modifiers),
601
+ computed(() => ({
602
+ "dismissable": props.autoClose > 0 || props.dismissable,
603
+ "auto-close": props.autoClose > 0,
604
+ "hover": isMouseover.value
605
+ }))
606
+ );
607
+ const hasStyle = computed(() => ({
608
+ "--alert-duration": `${props.autoClose}ms`
609
+ }));
709
610
  return {
710
611
  close,
711
612
  hasIcon,
@@ -713,20 +614,26 @@ const useVvAlert = (props, emit) => {
713
614
  hasProps: computed(() => ({
714
615
  onMouseover,
715
616
  onMouseleave,
716
- class: hasClass.value,
717
- style: hasStyle.value,
718
- role: props.role,
617
+ "class": hasClass.value,
618
+ "style": hasStyle.value,
619
+ "role": props.role,
719
620
  "aria-labelledby": hasTitleId.value
720
621
  }))
721
622
  };
722
- };
623
+ }
723
624
  const _hoisted_1 = {
724
625
  key: 0,
725
626
  class: "vv-alert__header"
726
627
  };
727
628
  const _hoisted_2 = ["id"];
728
629
  const _hoisted_3 = ["aria-label"];
729
- const _hoisted_4 = /* @__PURE__ */ createElementVNode("div", { class: "vv-alert__close-mask" }, null, -1);
630
+ const _hoisted_4 = /* @__PURE__ */ createElementVNode(
631
+ "div",
632
+ { class: "vv-alert__close-mask" },
633
+ null,
634
+ -1
635
+ /* HOISTED */
636
+ );
730
637
  const _hoisted_5 = [
731
638
  _hoisted_4
732
639
  ];
@@ -745,55 +652,192 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
745
652
  ...__default__$1,
746
653
  props: VvAlertProps,
747
654
  emits: VvAlertEvents,
748
- setup(__props, { expose: __expose, emit }) {
655
+ setup(__props, { expose: __expose, emit: __emit }) {
749
656
  const props = __props;
657
+ const emit = __emit;
750
658
  const { hasProps, hasTitleId, hasIcon, close } = useVvAlert(props, emit);
751
659
  __expose({ close });
752
660
  return (_ctx, _cache) => {
753
- return openBlock(), createElementBlock("div", normalizeProps(guardReactiveProps(unref(hasProps))), [
754
- _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, [
755
- unref(hasIcon) ? (openBlock(), createBlock(_sfc_main$2, mergeProps({ key: 0 }, unref(hasIcon), { class: "vv-alert__icon" }), null, 16)) : createCommentVNode("", true),
756
- renderSlot(_ctx.$slots, "header", {}, () => [
757
- renderSlot(_ctx.$slots, "title::before"),
758
- _ctx.$slots.title || _ctx.title ? (openBlock(), createElementBlock("strong", {
759
- key: 0,
760
- id: unref(hasTitleId),
761
- class: "vv-alert__title"
762
- }, [
763
- renderSlot(_ctx.$slots, "title", {}, () => [
764
- createTextVNode(toDisplayString(_ctx.title), 1)
765
- ])
766
- ], 8, _hoisted_2)) : createCommentVNode("", true),
767
- renderSlot(_ctx.$slots, "title::after")
768
- ]),
769
- renderSlot(_ctx.$slots, "close", normalizeProps(guardReactiveProps({ close: unref(close) })), () => [
770
- _ctx.dismissable || _ctx.autoClose ? (openBlock(), createElementBlock("button", {
771
- key: 0,
772
- class: "vv-alert__close",
773
- type: "button",
774
- "aria-label": _ctx.closeLabel,
775
- onClick: _cache[0] || (_cache[0] = withModifiers(
776
- //@ts-ignore
777
- (...args) => unref(close) && unref(close)(...args),
778
- ["stop"]
779
- ))
780
- }, _hoisted_5, 8, _hoisted_3)) : createCommentVNode("", true)
781
- ])
782
- ])) : createCommentVNode("", true),
783
- _ctx.$slots.default || _ctx.content ? (openBlock(), createElementBlock("div", _hoisted_6, [
784
- renderSlot(_ctx.$slots, "default", {}, () => [
785
- createTextVNode(toDisplayString(_ctx.content), 1)
786
- ])
787
- ])) : createCommentVNode("", true),
788
- _ctx.$slots.footer || _ctx.footer ? (openBlock(), createElementBlock("div", _hoisted_7, [
789
- renderSlot(_ctx.$slots, "footer", {}, () => [
790
- createTextVNode(toDisplayString(_ctx.footer), 1)
791
- ])
792
- ])) : createCommentVNode("", true)
793
- ], 16);
661
+ return openBlock(), createElementBlock(
662
+ "div",
663
+ normalizeProps(guardReactiveProps(unref(hasProps))),
664
+ [
665
+ _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, [
666
+ unref(hasIcon) ? (openBlock(), createBlock(
667
+ _sfc_main$2,
668
+ mergeProps({ key: 0 }, unref(hasIcon), { class: "vv-alert__icon" }),
669
+ null,
670
+ 16
671
+ /* FULL_PROPS */
672
+ )) : createCommentVNode("v-if", true),
673
+ renderSlot(_ctx.$slots, "header", {}, () => [
674
+ renderSlot(_ctx.$slots, "title::before"),
675
+ _ctx.$slots.title || _ctx.title ? (openBlock(), createElementBlock("strong", {
676
+ key: 0,
677
+ id: unref(hasTitleId),
678
+ class: "vv-alert__title"
679
+ }, [
680
+ renderSlot(_ctx.$slots, "title", {}, () => [
681
+ createTextVNode(
682
+ toDisplayString(_ctx.title),
683
+ 1
684
+ /* TEXT */
685
+ )
686
+ ])
687
+ ], 8, _hoisted_2)) : createCommentVNode("v-if", true),
688
+ renderSlot(_ctx.$slots, "title::after")
689
+ ]),
690
+ renderSlot(_ctx.$slots, "close", normalizeProps(guardReactiveProps({ close: unref(close) })), () => [
691
+ _ctx.dismissable || _ctx.autoClose ? (openBlock(), createElementBlock("button", {
692
+ key: 0,
693
+ class: "vv-alert__close",
694
+ type: "button",
695
+ "aria-label": _ctx.closeLabel,
696
+ onClick: _cache[0] || (_cache[0] = withModifiers(
697
+ //@ts-ignore
698
+ (...args) => unref(close) && unref(close)(...args),
699
+ ["stop"]
700
+ ))
701
+ }, _hoisted_5, 8, _hoisted_3)) : createCommentVNode("v-if", true)
702
+ ])
703
+ ])) : createCommentVNode("v-if", true),
704
+ _ctx.$slots.default || _ctx.content ? (openBlock(), createElementBlock("div", _hoisted_6, [
705
+ renderSlot(_ctx.$slots, "default", {}, () => [
706
+ createTextVNode(
707
+ toDisplayString(_ctx.content),
708
+ 1
709
+ /* TEXT */
710
+ )
711
+ ])
712
+ ])) : createCommentVNode("v-if", true),
713
+ _ctx.$slots.footer || _ctx.footer ? (openBlock(), createElementBlock("div", _hoisted_7, [
714
+ renderSlot(_ctx.$slots, "footer", {}, () => [
715
+ createTextVNode(
716
+ toDisplayString(_ctx.footer),
717
+ 1
718
+ /* TEXT */
719
+ )
720
+ ])
721
+ ])) : createCommentVNode("v-if", true)
722
+ ],
723
+ 16
724
+ /* FULL_PROPS */
725
+ );
794
726
  };
795
727
  }
796
728
  });
729
+ function useProvideAlertGroup({
730
+ name
731
+ }) {
732
+ const bus = mitt();
733
+ provide(INJECTION_KEY_ALERT_GROUP, {
734
+ name,
735
+ bus
736
+ });
737
+ return bus;
738
+ }
739
+ const VvAlertGroupProps = {
740
+ ...ModifiersProps,
741
+ name: {
742
+ type: String,
743
+ required: true
744
+ },
745
+ items: {
746
+ type: Array,
747
+ default: () => []
748
+ },
749
+ stack: {
750
+ type: Boolean,
751
+ default: false
752
+ },
753
+ reverse: {
754
+ type: Boolean,
755
+ default: false
756
+ },
757
+ inline: {
758
+ type: String,
759
+ default: void 0
760
+ },
761
+ block: {
762
+ type: String,
763
+ default: void 0
764
+ },
765
+ position: {
766
+ type: String,
767
+ default: void 0
768
+ },
769
+ transition: {
770
+ type: String,
771
+ default: void 0
772
+ }
773
+ };
774
+ const VvAlertGroupEvents = [
775
+ "close",
776
+ "beforeEnter",
777
+ "afterLeave",
778
+ "enter",
779
+ "afterEnter",
780
+ "enterCancelled",
781
+ "beforeLeave",
782
+ "leave",
783
+ "leaveCancelled"
784
+ ];
785
+ function useVvAlertGroup(props, emit) {
786
+ const bus = useProvideAlertGroup({ name: computed(() => props.name) });
787
+ if (props.block && !props.inline || !props.block && props.inline) {
788
+ console.warn(
789
+ `[VvAlertGroup]: block and inline props must coexist at the same time.`
790
+ );
791
+ }
792
+ const hasClass = computed(() => {
793
+ const toReturn = [
794
+ useModifiers(
795
+ "vv-alert-group",
796
+ computed(() => props.modifiers),
797
+ computed(() => ({
798
+ stack: props.stack,
799
+ reverse: props.reverse,
800
+ absolute: props.position === "absolute",
801
+ fixed: props.position === "fixed"
802
+ }))
803
+ ).value
804
+ ];
805
+ if (props.inline && props.block) {
806
+ toReturn.push(`vv-alert-group--${props.block}-${props.inline}`);
807
+ }
808
+ return toReturn;
809
+ });
810
+ const hasTransition = computed(() => {
811
+ if (props.transition) {
812
+ return props.transition;
813
+ }
814
+ if (!props.position) {
815
+ return "vv-alert--fade";
816
+ }
817
+ if (props.inline === "start") {
818
+ return "vv-alert--fade-inline-start";
819
+ }
820
+ if (props.inline === "end") {
821
+ return "vv-alert--fade-inline-end";
822
+ }
823
+ if (props.block === "top") {
824
+ return "vv-alert--fade-block-top";
825
+ }
826
+ if (props.block === "bottom") {
827
+ return "vv-alert--fade-block-bottom";
828
+ }
829
+ return "vv-alert--fade";
830
+ });
831
+ bus.on("close", (id) => {
832
+ emit("close", id);
833
+ });
834
+ return {
835
+ hasTransition,
836
+ hasProps: computed(() => ({
837
+ class: hasClass.value
838
+ }))
839
+ };
840
+ }
797
841
  const __default__ = {
798
842
  name: "VvAlertGroup"
799
843
  };
@@ -801,57 +845,77 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
801
845
  ...__default__,
802
846
  props: VvAlertGroupProps,
803
847
  emits: VvAlertGroupEvents,
804
- setup(__props, { emit }) {
848
+ setup(__props, { emit: __emit }) {
805
849
  const props = __props;
850
+ const emit = __emit;
806
851
  const { hasProps, hasTransition } = useVvAlertGroup(props, emit);
807
852
  const alertGroupTransitionHandlers = {
808
853
  "before-enter": () => {
809
- emit("before-enter");
854
+ emit("beforeEnter");
810
855
  },
811
856
  "after-leave": () => {
812
- emit("after-leave");
857
+ emit("afterLeave");
813
858
  },
814
- enter: () => {
859
+ "enter": () => {
815
860
  emit("enter");
816
861
  },
817
862
  "after-enter": () => {
818
- emit("after-enter");
863
+ emit("afterEnter");
819
864
  },
820
865
  "enter-cancelled": () => {
821
- emit("enter-cancelled");
866
+ emit("enterCancelled");
822
867
  },
823
868
  "before-leave": () => {
824
- emit("before-leave");
869
+ emit("beforeLeave");
825
870
  },
826
- leave: () => {
871
+ "leave": () => {
827
872
  emit("leave");
828
873
  },
829
874
  "leave-cancelled": () => {
830
- emit("leave-cancelled");
875
+ emit("leaveCancelled");
831
876
  }
832
877
  };
833
878
  return (_ctx, _cache) => {
834
- return openBlock(), createElementBlock("div", normalizeProps(guardReactiveProps(unref(hasProps))), [
835
- renderSlot(_ctx.$slots, "before"),
836
- createVNode(TransitionGroup, mergeProps({
837
- tag: "div",
838
- role: "group",
839
- name: unref(hasTransition),
840
- class: "vv-alert-group__list"
841
- }, toHandlers(alertGroupTransitionHandlers)), {
842
- default: withCtx(() => [
843
- renderSlot(_ctx.$slots, "default", {}, () => [
844
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.items, (item) => {
845
- return openBlock(), createBlock(_sfc_main$1, mergeProps(item, {
846
- key: item.id
847
- }), null, 16);
848
- }), 128))
849
- ])
850
- ]),
851
- _: 3
852
- }, 16, ["name"]),
853
- renderSlot(_ctx.$slots, "after")
854
- ], 16);
879
+ return openBlock(), createElementBlock(
880
+ "div",
881
+ normalizeProps(guardReactiveProps(unref(hasProps))),
882
+ [
883
+ renderSlot(_ctx.$slots, "before"),
884
+ createVNode(TransitionGroup, mergeProps({
885
+ tag: "div",
886
+ role: "group",
887
+ name: unref(hasTransition),
888
+ class: "vv-alert-group__list"
889
+ }, toHandlers(alertGroupTransitionHandlers)), {
890
+ default: withCtx(() => [
891
+ renderSlot(_ctx.$slots, "default", {}, () => [
892
+ (openBlock(true), createElementBlock(
893
+ Fragment,
894
+ null,
895
+ renderList(_ctx.items, (item) => {
896
+ return openBlock(), createBlock(
897
+ _sfc_main$1,
898
+ mergeProps({ ref_for: true }, item, {
899
+ key: item.id
900
+ }),
901
+ null,
902
+ 16
903
+ /* FULL_PROPS */
904
+ );
905
+ }),
906
+ 128
907
+ /* KEYED_FRAGMENT */
908
+ ))
909
+ ])
910
+ ]),
911
+ _: 3
912
+ /* FORWARDED */
913
+ }, 16, ["name"]),
914
+ renderSlot(_ctx.$slots, "after")
915
+ ],
916
+ 16
917
+ /* FULL_PROPS */
918
+ );
855
919
  };
856
920
  }
857
921
  });