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

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 +1963 -1639
  64. package/dist/components/VvCombobox/VvCombobox.umd.js +1 -1
  65. package/dist/components/VvCombobox/VvCombobox.vue.d.ts +260 -672
  66. package/dist/components/VvCombobox/index.d.ts +385 -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 +1495 -548
  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 +278 -255
  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 +4303 -2228
  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 +288 -198
  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 +657 -619
  265. package/src/components/VvCombobox/index.ts +212 -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 +653 -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 +467 -383
  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, resolveDynamicComponent, withCtx, renderSlot, createTextVNode, toDisplayString, toRef, useAttrs, useSlots, createElementBlock, Fragment } from "vue";
1
+ import { inject, computed, toRef, toRefs, defineComponent, getCurrentInstance, ref, watch, openBlock, createBlock, resolveDynamicComponent, unref, mergeProps, withCtx, renderSlot, createTextVNode, toDisplayString, mergeDefaults, createCommentVNode, useId, useAttrs, useSlots, createElementBlock, Fragment } 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";
@@ -136,143 +46,16 @@ var ActionTag = /* @__PURE__ */ ((ActionTag2) => {
136
46
  ActionTag2["button"] = "button";
137
47
  return ActionTag2;
138
48
  })(ActionTag || {});
139
- var AnchorTarget = /* @__PURE__ */ ((AnchorTarget2) => {
140
- AnchorTarget2["_blank"] = "_blank";
141
- AnchorTarget2["_self"] = "_self";
142
- AnchorTarget2["_parent"] = "_parent";
143
- AnchorTarget2["_top"] = "_top";
144
- return AnchorTarget2;
145
- })(AnchorTarget || {});
146
49
  const INJECTION_KEY_VOLVER = Symbol.for("volver");
147
- const INJECTION_KEY_BUTTON_GROUP = Symbol.for("buttonGroup");
50
+ const INJECTION_KEY_BUTTON_GROUP = Symbol.for(
51
+ "buttonGroup"
52
+ );
148
53
  const INJECTION_KEY_DROPDOWN_TRIGGER = Symbol.for(
149
54
  "dropdownTrigger"
150
55
  );
151
56
  const INJECTION_KEY_DROPDOWN_ACTION = Symbol.for(
152
57
  "dropdownAction"
153
58
  );
154
- function useVolver() {
155
- return inject(INJECTION_KEY_VOLVER);
156
- }
157
- function useModifiers(prefix, modifiers, others) {
158
- return computed(() => {
159
- const toReturn = {
160
- [prefix]: true
161
- };
162
- const modifiersArray = typeof (modifiers == null ? void 0 : modifiers.value) === "string" ? modifiers.value.split(" ") : modifiers == null ? void 0 : modifiers.value;
163
- if (modifiersArray) {
164
- if (Array.isArray(modifiersArray)) {
165
- modifiersArray.forEach((modifier) => {
166
- if (modifier) {
167
- toReturn[`${prefix}--${modifier}`] = true;
168
- }
169
- });
170
- }
171
- }
172
- if (others) {
173
- Object.keys(others.value).forEach((key) => {
174
- toReturn[`${prefix}--${key}`] = unref(others.value[key]);
175
- });
176
- }
177
- return toReturn;
178
- });
179
- }
180
- const __default__$2 = {
181
- name: "VvIcon"
182
- };
183
- const _sfc_main$2 = /* @__PURE__ */ defineComponent({
184
- ...__default__$2,
185
- props: VvIconProps,
186
- setup(__props) {
187
- const props = __props;
188
- const hasRotate = computed(() => {
189
- if (typeof props.rotate === "string") {
190
- return parseFloat(props.rotate);
191
- }
192
- return props.rotate;
193
- });
194
- const show = ref(true);
195
- const volver = useVolver();
196
- const { modifiers } = toRefs(props);
197
- const bemCssClasses = useModifiers("vv-icon", modifiers);
198
- const provider = computed(() => {
199
- return props.provider || (volver == null ? void 0 : volver.iconsProvider);
200
- });
201
- const icon = computed(() => {
202
- const name = props.name ?? "";
203
- const iconName = `@${provider.value}:${props.prefix}:${name}`;
204
- if (iconExists(iconName)) {
205
- return iconName;
206
- }
207
- const iconsCollection = volver == null ? void 0 : volver.iconsCollections.find(
208
- (iconsCollection2) => {
209
- const icon2 = `@${provider.value}:${iconsCollection2.prefix}:${name}`;
210
- return iconExists(icon2);
211
- }
212
- );
213
- if (iconsCollection) {
214
- return `@${provider.value}:${iconsCollection.prefix}:${name}`;
215
- }
216
- return name;
217
- });
218
- function getSvgContent(svg) {
219
- let dom;
220
- if (typeof window === "undefined") {
221
- const { JSDOM } = require("jsdom");
222
- dom = new JSDOM().window;
223
- }
224
- const domParser = dom ? new dom.DOMParser() : new window.DOMParser();
225
- const svgDomString = domParser.parseFromString(svg, "text/html");
226
- const svgEl = svgDomString.querySelector("svg");
227
- return svgEl;
228
- }
229
- function addIconFromSvg(svg) {
230
- const svgContentEl = getSvgContent(svg);
231
- const svgContent = (svgContentEl == null ? void 0 : svgContentEl.innerHTML.trim()) || "";
232
- if (svgContentEl && svgContent) {
233
- addIcon(`@${provider.value}:${props.prefix}:${props.name}`, {
234
- body: svgContent,
235
- // Set height and width from svg content
236
- height: svgContentEl.viewBox.baseVal.height,
237
- width: svgContentEl.viewBox.baseVal.width
238
- });
239
- }
240
- }
241
- if (volver) {
242
- if (props.src && !iconExists(`@${provider.value}:${props.prefix}:${props.name}`)) {
243
- show.value = false;
244
- volver.fetchIcon(props.src).then((svg) => {
245
- if (svg) {
246
- addIconFromSvg(svg);
247
- show.value = true;
248
- }
249
- }).catch((e) => {
250
- throw new Error(`Error during fetch icon: ${e == null ? void 0 : e.message}`);
251
- });
252
- }
253
- }
254
- if (props.svg) {
255
- addIconFromSvg(props.svg);
256
- }
257
- return (_ctx, _cache) => {
258
- return unref(show) ? (openBlock(), createBlock(unref(Icon), mergeProps({
259
- key: 0,
260
- class: unref(bemCssClasses)
261
- }, {
262
- inline: _ctx.inline,
263
- width: _ctx.width,
264
- height: _ctx.height,
265
- horizontalFlip: _ctx.horizontalFlip,
266
- verticalFlip: _ctx.verticalFlip,
267
- flip: _ctx.flip,
268
- rotate: unref(hasRotate),
269
- color: _ctx.color,
270
- onLoad: _ctx.onLoad,
271
- icon: unref(icon)
272
- }), null, 16, ["class"])) : createCommentVNode("", true);
273
- };
274
- }
275
- });
276
59
  const LinkProps = {
277
60
  /**
278
61
  * The router-link/nuxt-link property, if it is defined the button is rendered as a ruouter-link or nuxt-link.
@@ -288,10 +71,7 @@ const LinkProps = {
288
71
  /**
289
72
  * Anchor target
290
73
  */
291
- target: {
292
- type: String,
293
- validator: (value) => Object.values(AnchorTarget).includes(value)
294
- },
74
+ target: String,
295
75
  /**
296
76
  * Anchor rel
297
77
  */
@@ -304,7 +84,10 @@ const LoadingProps = {
304
84
  /**
305
85
  * Loading status
306
86
  */
307
- loading: Boolean,
87
+ loading: {
88
+ type: Boolean,
89
+ default: false
90
+ },
308
91
  /**
309
92
  * Loading label
310
93
  */
@@ -317,44 +100,65 @@ const DisabledProps = {
317
100
  /**
318
101
  * Whether the form control is disabled
319
102
  */
320
- disabled: Boolean
103
+ disabled: {
104
+ type: Boolean,
105
+ default: false
106
+ }
321
107
  };
322
108
  const ActiveProps = {
323
109
  /**
324
110
  * Whether the item is active
325
111
  */
326
- active: Boolean
112
+ active: {
113
+ type: Boolean,
114
+ default: false
115
+ }
327
116
  };
328
117
  const CurrentProps = {
329
118
  /**
330
119
  * Whether the item is current
331
120
  */
332
- current: Boolean
121
+ current: {
122
+ type: Boolean,
123
+ default: false
124
+ }
333
125
  };
334
126
  const PressedProps = {
335
127
  /**
336
128
  * Whether the item is pressed
337
129
  */
338
- pressed: Boolean
130
+ pressed: {
131
+ type: Boolean,
132
+ default: false
133
+ }
339
134
  };
340
135
  const LabelProps = {
341
136
  /**
342
137
  * The item label
343
138
  */
344
- label: [String, Number]
139
+ label: {
140
+ type: [String, Number],
141
+ default: void 0
142
+ }
345
143
  };
346
144
  const ModifiersProps = {
347
145
  /**
348
146
  * Component BEM modifiers
349
147
  */
350
- modifiers: [String, Array]
148
+ modifiers: {
149
+ type: [String, Array],
150
+ default: void 0
151
+ }
351
152
  };
352
- ({
153
+ const IconProps = {
353
154
  /**
354
155
  * VvIcon name or props
355
156
  * @see VVIcon
356
157
  */
357
- icon: { type: [String, Object] },
158
+ icon: {
159
+ type: [String, Object],
160
+ default: void 0
161
+ },
358
162
  /**
359
163
  * VvIcon position
360
164
  */
@@ -363,7 +167,7 @@ const ModifiersProps = {
363
167
  default: Position.before,
364
168
  validation: (value) => Object.values(Position).includes(value)
365
169
  }
366
- });
170
+ };
367
171
  const UnselectableProps = {
368
172
  /**
369
173
  * If true the input will be unselectable
@@ -398,7 +202,8 @@ const IdProps = {
398
202
  * Dropdown show / hide transition name
399
203
  */
400
204
  transitionName: {
401
- type: String
205
+ type: String,
206
+ default: void 0
402
207
  },
403
208
  /**
404
209
  * Offset of the dropdown from the trigger
@@ -466,7 +271,8 @@ const IdProps = {
466
271
  * Set dropdown width to the same as the trigger
467
272
  */
468
273
  triggerWidth: {
469
- type: Boolean
274
+ type: Boolean,
275
+ default: false
470
276
  }
471
277
  });
472
278
  const ActionProps = {
@@ -490,56 +296,204 @@ const ActionProps = {
490
296
  ariaLabel: {
491
297
  type: String,
492
298
  default: void 0
299
+ },
300
+ /**
301
+ * Default tag for the action
302
+ */
303
+ defaultTag: {
304
+ type: String,
305
+ default: ActionTag.button
493
306
  }
494
307
  };
495
- const VvActionEvents = ["click", "mouseover", "mouseleave"];
496
- const VvActionProps = ActionProps;
497
- function useInjectedDropdownTrigger() {
498
- return inject(INJECTION_KEY_DROPDOWN_TRIGGER, {});
499
- }
500
- function useInjectedDropdownAction() {
501
- return inject(INJECTION_KEY_DROPDOWN_ACTION, {});
502
- }
503
- const __default__$1 = {
504
- name: "VvAction"
505
- };
506
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
507
- ...__default__$1,
508
- props: VvActionProps,
509
- emits: VvActionEvents,
510
- setup(__props, { expose: __expose, emit }) {
511
- const props = __props;
512
- const volver = useVolver();
513
- const element = ref(null);
514
- __expose({ $el: element });
515
- const {
516
- reference: dropdownTriggerReference,
517
- bus: dropdownEventBus,
518
- aria: dropdownAria,
519
- expanded: dropdownExpanded
520
- } = useInjectedDropdownTrigger();
521
- watch(
522
- () => element.value,
523
- (newValue) => {
524
- if (dropdownTriggerReference) {
525
- dropdownTriggerReference.value = newValue;
308
+ ({
309
+ storageType: {
310
+ type: String,
311
+ default: StorageType.local,
312
+ validator: (value) => Object.values(StorageType).includes(value)
313
+ },
314
+ storageKey: String
315
+ });
316
+ function useGroupStateInject(groupKey) {
317
+ const group = inject(groupKey, void 0);
318
+ const isInGroup = computed(() => group !== void 0);
319
+ function getGroupOrLocalRef(propName, props, emit) {
320
+ const groupPropValue = group == null ? void 0 : group[propName];
321
+ if (groupPropValue) {
322
+ return computed({
323
+ get() {
324
+ return groupPropValue.value;
325
+ },
326
+ set(value) {
327
+ groupPropValue.value = value;
328
+ }
329
+ });
330
+ }
331
+ const propRef = toRef(props, propName);
332
+ return computed({
333
+ get() {
334
+ return propRef.value;
335
+ },
336
+ set(value) {
337
+ if (emit) {
338
+ emit(`update:${propName}`, value);
526
339
  }
527
340
  }
528
- );
529
- const pressed = computed(() => {
530
- return props.pressed || (dropdownExpanded == null ? void 0 : dropdownExpanded.value);
531
341
  });
532
- const { role } = useInjectedDropdownAction();
533
- const hasTag = computed(() => {
534
- switch (true) {
535
- case props.disabled:
536
- return ActionTag.button;
342
+ }
343
+ return {
344
+ group,
345
+ isInGroup,
346
+ getGroupOrLocalRef
347
+ };
348
+ }
349
+ const VvButtonEvents = ["update:modelValue"];
350
+ const VvButtonProps = {
351
+ ...ActionProps,
352
+ ...IdProps,
353
+ ...ModifiersProps,
354
+ ...UnselectableProps,
355
+ ...LoadingProps,
356
+ ...IconProps,
357
+ /**
358
+ * Button icon position
359
+ */
360
+ iconPosition: {
361
+ type: String,
362
+ default: Side.left,
363
+ validator: (value) => Object.values(Side).includes(value)
364
+ },
365
+ /**
366
+ * Loading icon
367
+ */
368
+ loadingIcon: { type: String, default: "eos-icons:bubble-loading" },
369
+ /**
370
+ * Enable button toggle
371
+ */
372
+ toggle: {
373
+ type: Boolean,
374
+ default: false
375
+ },
376
+ /**
377
+ * Button toggle value
378
+ */
379
+ value: {
380
+ type: [String, Number, Boolean],
381
+ default: void 0
382
+ },
383
+ /**
384
+ * Value associated with the unchecked state
385
+ */
386
+ uncheckedValue: {
387
+ type: [String, Number, Boolean],
388
+ default: void 0
389
+ },
390
+ /**
391
+ * Button toggle model value
392
+ */
393
+ modelValue: {
394
+ type: [String, Number, Boolean],
395
+ default: void 0
396
+ }
397
+ };
398
+ function useGroupProps(props, emit) {
399
+ const { group, isInGroup, getGroupOrLocalRef } = useGroupStateInject(INJECTION_KEY_BUTTON_GROUP);
400
+ const { id, iconPosition, icon, label, pressed } = toRefs(props);
401
+ const modelValue = getGroupOrLocalRef("modelValue", props, emit);
402
+ const toggle = getGroupOrLocalRef("toggle", props);
403
+ const unselectable = getGroupOrLocalRef("unselectable", props);
404
+ const multiple = computed(() => (group == null ? void 0 : group.multiple.value) ?? false);
405
+ const modifiers = computed(() => {
406
+ let localModifiers = props.modifiers;
407
+ let groupModifiers = group == null ? void 0 : group.modifiers.value;
408
+ const toReturn = /* @__PURE__ */ new Set();
409
+ if (localModifiers) {
410
+ if (!Array.isArray(localModifiers)) {
411
+ localModifiers = localModifiers.split(" ");
412
+ }
413
+ localModifiers.forEach((modifier) => toReturn.add(modifier));
414
+ }
415
+ if (groupModifiers) {
416
+ if (!Array.isArray(groupModifiers)) {
417
+ groupModifiers = groupModifiers.split(" ");
418
+ }
419
+ groupModifiers.forEach((modifier) => toReturn.add(modifier));
420
+ }
421
+ return Array.from(toReturn);
422
+ });
423
+ const disabled = computed(
424
+ () => Boolean(props.disabled || (group == null ? void 0 : group.disabled.value))
425
+ );
426
+ return {
427
+ // group props
428
+ group,
429
+ isInGroup,
430
+ modelValue,
431
+ toggle,
432
+ unselectable,
433
+ multiple,
434
+ modifiers,
435
+ disabled,
436
+ // local props
437
+ id,
438
+ pressed,
439
+ iconPosition,
440
+ icon,
441
+ label
442
+ };
443
+ }
444
+ const VvActionEvents = ["click", "mouseover", "mouseleave"];
445
+ const VvActionProps = ActionProps;
446
+ function useVolver() {
447
+ return inject(INJECTION_KEY_VOLVER);
448
+ }
449
+ function useInjectedDropdownTrigger() {
450
+ return inject(INJECTION_KEY_DROPDOWN_TRIGGER, {});
451
+ }
452
+ function useInjectedDropdownAction() {
453
+ return inject(INJECTION_KEY_DROPDOWN_ACTION, {});
454
+ }
455
+ const __default__$2 = {
456
+ name: "VvAction"
457
+ };
458
+ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
459
+ ...__default__$2,
460
+ props: VvActionProps,
461
+ emits: VvActionEvents,
462
+ setup(__props, { expose: __expose, emit: __emit }) {
463
+ const props = __props;
464
+ const emit = __emit;
465
+ const instance = getCurrentInstance();
466
+ const volver = useVolver();
467
+ const element = ref(null);
468
+ __expose({ $el: element });
469
+ const {
470
+ reference: dropdownTriggerReference,
471
+ bus: dropdownEventBus,
472
+ aria: dropdownAria,
473
+ expanded: dropdownExpanded
474
+ } = useInjectedDropdownTrigger();
475
+ watch(
476
+ () => element.value,
477
+ (newValue) => {
478
+ if (dropdownTriggerReference) {
479
+ dropdownTriggerReference.value = newValue;
480
+ }
481
+ }
482
+ );
483
+ const pressed = computed(() => {
484
+ return props.pressed || (dropdownExpanded == null ? void 0 : dropdownExpanded.value);
485
+ });
486
+ const { role } = useInjectedDropdownAction();
487
+ const hasTag = computed(() => {
488
+ switch (true) {
489
+ case props.disabled:
490
+ return ActionTag.button;
537
491
  case props.to !== void 0:
538
492
  return (volver == null ? void 0 : volver.nuxt) ? ActionTag.nuxtLink : ActionTag.routerLink;
539
493
  case props.href !== void 0:
540
494
  return ActionTag.a;
541
495
  default:
542
- return ActionTag.button;
496
+ return props.defaultTag;
543
497
  }
544
498
  });
545
499
  const hasProps = computed(() => {
@@ -564,30 +518,44 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
564
518
  to: props.to,
565
519
  target: props.target
566
520
  };
567
- default:
521
+ case ActionTag.button:
568
522
  return {
569
523
  ...toReturn,
570
524
  type: props.type,
571
525
  disabled: props.disabled
572
526
  };
527
+ default:
528
+ return toReturn;
573
529
  }
574
530
  });
575
- const onClick = (e) => {
531
+ function onClick(e) {
532
+ var _a;
576
533
  if (props.disabled) {
577
534
  e.preventDefault();
578
535
  return;
579
536
  }
537
+ if ((_a = instance == null ? void 0 : instance.vnode.props) == null ? void 0 : _a.onClick) {
538
+ emit("click", e);
539
+ return;
540
+ }
580
541
  dropdownEventBus == null ? void 0 : dropdownEventBus.emit("click", e);
581
- emit("click", e);
582
- };
583
- const onMouseover = (e) => {
542
+ }
543
+ function onMouseover(e) {
544
+ var _a;
545
+ if ((_a = instance == null ? void 0 : instance.vnode.props) == null ? void 0 : _a.onMouseover) {
546
+ emit("mouseover", e);
547
+ return;
548
+ }
584
549
  dropdownEventBus == null ? void 0 : dropdownEventBus.emit("mouseover", e);
585
- emit("mouseover", e);
586
- };
587
- const onMouseleave = (e) => {
550
+ }
551
+ function onMouseleave(e) {
552
+ var _a;
553
+ if ((_a = instance == null ? void 0 : instance.vnode.props) == null ? void 0 : _a.onMouseleave) {
554
+ emit("mouseleave", e);
555
+ return;
556
+ }
588
557
  dropdownEventBus == null ? void 0 : dropdownEventBus.emit("mouseleave", e);
589
- emit("mouseleave", e);
590
- };
558
+ }
591
559
  return (_ctx, _cache) => {
592
560
  return openBlock(), createBlock(resolveDynamicComponent(unref(hasTag)), mergeProps(unref(hasProps), {
593
561
  ref_key: "element",
@@ -604,18 +572,163 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
604
572
  }), {
605
573
  default: withCtx(() => [
606
574
  renderSlot(_ctx.$slots, "default", {}, () => [
607
- createTextVNode(toDisplayString(_ctx.label), 1)
575
+ createTextVNode(
576
+ toDisplayString(_ctx.label),
577
+ 1
578
+ /* TEXT */
579
+ )
608
580
  ])
609
581
  ]),
610
582
  _: 3
583
+ /* FORWARDED */
611
584
  }, 16, ["class"]);
612
585
  };
613
586
  }
614
587
  });
615
- function equals(obj1, obj2, field) {
616
- if (field) {
617
- return resolveFieldData(obj1, field) === resolveFieldData(obj2, field);
588
+ const VvIconPropsDefaults = {
589
+ prefix: "normal"
590
+ /* normal */
591
+ };
592
+ function useModifiers(prefix, modifiers, others) {
593
+ return computed(() => {
594
+ const toReturn = {
595
+ [prefix]: true
596
+ };
597
+ const modifiersArray = typeof (modifiers == null ? void 0 : modifiers.value) === "string" ? modifiers.value.split(" ") : modifiers == null ? void 0 : modifiers.value;
598
+ if (modifiersArray) {
599
+ if (Array.isArray(modifiersArray)) {
600
+ modifiersArray.forEach((modifier) => {
601
+ if (modifier) {
602
+ toReturn[`${prefix}--${modifier}`] = true;
603
+ }
604
+ });
605
+ }
606
+ }
607
+ if (others) {
608
+ Object.keys(others.value).forEach((key) => {
609
+ toReturn[`${prefix}--${key}`] = unref(others.value[key]);
610
+ });
611
+ }
612
+ return toReturn;
613
+ });
614
+ }
615
+ const __default__$1 = {
616
+ name: "VvIcon"
617
+ };
618
+ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
619
+ ...__default__$1,
620
+ props: /* @__PURE__ */ mergeDefaults({
621
+ name: {},
622
+ color: {},
623
+ width: {},
624
+ height: {},
625
+ provider: {},
626
+ prefix: {},
627
+ src: {},
628
+ horizontalFlip: { type: Boolean },
629
+ verticalFlip: { type: Boolean },
630
+ flip: {},
631
+ mode: {},
632
+ inline: { type: Boolean },
633
+ rotate: {},
634
+ onLoad: { type: Function },
635
+ svg: {},
636
+ modifiers: {}
637
+ }, VvIconPropsDefaults),
638
+ setup(__props) {
639
+ const props = __props;
640
+ const hasRotate = computed(() => {
641
+ if (typeof props.rotate === "string") {
642
+ return Number.parseFloat(props.rotate);
643
+ }
644
+ return props.rotate;
645
+ });
646
+ const show = ref(true);
647
+ const volver = useVolver();
648
+ const { modifiers } = toRefs(props);
649
+ const bemCssClasses = useModifiers("vv-icon", modifiers);
650
+ const provider = computed(() => {
651
+ return props.provider || (volver == null ? void 0 : volver.iconsProvider);
652
+ });
653
+ const icon = computed(() => {
654
+ const name = props.name ?? "";
655
+ const iconName = `@${provider.value}:${props.prefix}:${name}`;
656
+ if (iconExists(iconName)) {
657
+ return iconName;
658
+ }
659
+ const iconsCollection = volver == null ? void 0 : volver.iconsCollections.find(
660
+ (iconsCollection2) => {
661
+ const icon2 = `@${provider.value}:${iconsCollection2.prefix}:${name}`;
662
+ return iconExists(icon2);
663
+ }
664
+ );
665
+ if (iconsCollection) {
666
+ return `@${provider.value}:${iconsCollection.prefix}:${name}`;
667
+ }
668
+ return name;
669
+ });
670
+ function getSvgContent(svg) {
671
+ let dom;
672
+ if (typeof window === "undefined") {
673
+ const { JSDOM } = require("jsdom");
674
+ dom = new JSDOM().window;
675
+ }
676
+ const domParser = dom ? new dom.DOMParser() : new window.DOMParser();
677
+ const svgDomString = domParser.parseFromString(svg, "text/html");
678
+ const svgEl = svgDomString.querySelector("svg");
679
+ return svgEl;
680
+ }
681
+ function addIconFromSvg(svg) {
682
+ const svgContentEl = getSvgContent(svg);
683
+ const svgContent = (svgContentEl == null ? void 0 : svgContentEl.innerHTML.trim()) || "";
684
+ if (svgContentEl && svgContent) {
685
+ addIcon(`@${provider.value}:${props.prefix}:${props.name}`, {
686
+ body: svgContent,
687
+ // Set height and width from svg content
688
+ height: svgContentEl.viewBox.baseVal.height,
689
+ width: svgContentEl.viewBox.baseVal.width
690
+ });
691
+ }
692
+ }
693
+ if (volver) {
694
+ if (props.src && !iconExists(`@${provider.value}:${props.prefix}:${props.name}`)) {
695
+ show.value = false;
696
+ volver.fetchIcon(props.src).then((svg) => {
697
+ if (svg) {
698
+ addIconFromSvg(svg);
699
+ show.value = true;
700
+ }
701
+ }).catch((e) => {
702
+ throw new Error(`Error during fetch icon: ${e == null ? void 0 : e.message}`);
703
+ });
704
+ }
705
+ }
706
+ if (props.svg) {
707
+ addIconFromSvg(props.svg);
708
+ }
709
+ return (_ctx, _cache) => {
710
+ return unref(show) ? (openBlock(), createBlock(unref(Icon), mergeProps({
711
+ key: 0,
712
+ class: unref(bemCssClasses)
713
+ }, {
714
+ inline: _ctx.inline,
715
+ width: _ctx.width,
716
+ height: _ctx.height,
717
+ horizontalFlip: _ctx.horizontalFlip,
718
+ verticalFlip: _ctx.verticalFlip,
719
+ flip: _ctx.flip,
720
+ rotate: unref(hasRotate),
721
+ color: _ctx.color,
722
+ onLoad: _ctx.onLoad,
723
+ icon: unref(icon)
724
+ }), null, 16, ["class"])) : createCommentVNode("v-if", true);
725
+ };
618
726
  }
727
+ });
728
+ function useUniqueId(id) {
729
+ return computed(() => String((id == null ? void 0 : id.value) || useId()));
730
+ }
731
+ function equals(obj1, obj2, field) {
619
732
  return deepEquals(obj1, obj2);
620
733
  }
621
734
  function deepEquals(a, b) {
@@ -627,32 +740,36 @@ function deepEquals(a, b) {
627
740
  let i, length, key;
628
741
  if (arrA && arrB) {
629
742
  length = a.length;
630
- if (length != b.length)
743
+ if (length !== b.length)
631
744
  return false;
632
- for (i = length; i-- !== 0; )
745
+ for (i = length; i-- !== 0; ) {
633
746
  if (!deepEquals(a[i], b[i]))
634
747
  return false;
748
+ }
635
749
  return true;
636
750
  }
637
- if (arrA != arrB)
751
+ if (arrA !== arrB)
638
752
  return false;
639
- const dateA = a instanceof Date, dateB = b instanceof Date;
640
- if (dateA != dateB)
753
+ const dateA = a instanceof Date;
754
+ const dateB = b instanceof Date;
755
+ if (dateA !== dateB)
641
756
  return false;
642
757
  if (dateA && dateB)
643
- return a.getTime() == b.getTime();
644
- const regexpA = a instanceof RegExp, regexpB = b instanceof RegExp;
645
- if (regexpA != regexpB)
758
+ return a.getTime() === b.getTime();
759
+ const regexpA = a instanceof RegExp;
760
+ const regexpB = b instanceof RegExp;
761
+ if (regexpA !== regexpB)
646
762
  return false;
647
763
  if (regexpA && regexpB)
648
- return a.toString() == b.toString();
764
+ return a.toString() === b.toString();
649
765
  const keys = Object.keys(a);
650
766
  length = keys.length;
651
767
  if (length !== Object.keys(b).length)
652
768
  return false;
653
- for (i = length; i-- !== 0; )
769
+ for (i = length; i-- !== 0; ) {
654
770
  if (!Object.prototype.hasOwnProperty.call(b, keys[i]))
655
771
  return false;
772
+ }
656
773
  for (i = length; i-- !== 0; ) {
657
774
  key = keys[i];
658
775
  if (!deepEquals(a[key], b[key]))
@@ -660,26 +777,7 @@ function deepEquals(a, b) {
660
777
  }
661
778
  return true;
662
779
  }
663
- return a !== a && b !== b;
664
- }
665
- function resolveFieldData(data, field) {
666
- if (data && Object.keys(data).length && field) {
667
- if (field.indexOf(".") === -1) {
668
- return data[field];
669
- } else {
670
- const fields = field.split(".");
671
- let value = data;
672
- for (let i = 0, len = fields.length; i < len; ++i) {
673
- if (data == null) {
674
- return null;
675
- }
676
- value = value[fields[i]];
677
- }
678
- return value;
679
- }
680
- } else {
681
- return null;
682
- }
780
+ return Number.isNaN(a) && Number.isNaN(b);
683
781
  }
684
782
  function contains(value, list) {
685
783
  if (value != null && list && list.length) {
@@ -691,146 +789,41 @@ function contains(value, list) {
691
789
  }
692
790
  return false;
693
791
  }
694
- function isEmpty(value) {
695
- return ((value2) => value2 === null || value2 === void 0 || value2 === "" || Array.isArray(value2) && value2.length === 0 || !(value2 instanceof Date) && typeof value2 === "object" && Object.keys(value2).length === 0)(unref(value));
696
- }
697
- function useInjectedGroupState(groupKey) {
698
- const group = inject(groupKey, void 0);
699
- const isInGroup = computed(() => !isEmpty(group));
700
- function getGroupOrLocalRef(propName, props, emit) {
701
- if (group == null ? void 0 : group.value) {
702
- const groupPropValue = unref(group.value)[propName];
703
- return computed({
704
- get() {
705
- return groupPropValue == null ? void 0 : groupPropValue.value;
706
- },
707
- set(value) {
708
- groupPropValue.value = value;
709
- }
710
- });
711
- }
712
- const propRef = toRef(props, propName);
713
- return computed({
714
- get() {
715
- return propRef.value;
716
- },
717
- set(value) {
718
- if (emit)
719
- emit(`update:${propName}`, value);
720
- }
721
- });
722
- }
723
- return {
724
- group,
725
- isInGroup,
726
- getGroupOrLocalRef
727
- };
728
- }
729
- const VvButtonEvents = ["update:modelValue"];
730
- const VvButtonProps = {
731
- ...ActionProps,
732
- ...IdProps,
733
- ...ModifiersProps,
734
- ...UnselectableProps,
735
- ...LoadingProps,
736
- /**
737
- * Button icon
738
- */
739
- icon: [String, Object],
740
- /**
741
- * Button icon position
742
- */
743
- iconPosition: {
744
- type: String,
745
- default: Side.left,
746
- validator: (value) => Object.values(Side).includes(value)
747
- },
748
- /**
749
- * Loading icon
750
- */
751
- loadingIcon: { type: String, default: "eos-icons:bubble-loading" },
752
- /**
753
- * Enable button toggle
754
- */
755
- toggle: {
756
- type: Boolean,
757
- default: false
758
- },
759
- /**
760
- * Button toggle value
761
- */
762
- value: {
763
- type: [String, Number, Boolean],
764
- default: void 0
765
- },
766
- /**
767
- * Value associated with the unchecked state
768
- */
769
- uncheckedValue: {
770
- type: [String, Number, Boolean],
771
- default: void 0
772
- },
773
- /**
774
- * Button toggle model value
775
- */
776
- modelValue: {
777
- type: [String, Number, Boolean],
778
- default: void 0
779
- }
780
- };
781
- function useGroupProps(props, emit) {
782
- const { group, isInGroup, getGroupOrLocalRef } = useInjectedGroupState(INJECTION_KEY_BUTTON_GROUP);
783
- const { id, iconPosition, icon, label, pressed } = toRefs(props);
784
- const modelValue = getGroupOrLocalRef("modelValue", props, emit);
785
- const toggle = getGroupOrLocalRef("toggle", props);
786
- const unselectable = getGroupOrLocalRef(
787
- "unselectable",
788
- props
789
- );
790
- const multiple = computed(() => (group == null ? void 0 : group.value.multiple.value) ?? false);
791
- const modifiers = computed(() => {
792
- let localModifiers = props.modifiers;
793
- let groupModifiers = group == null ? void 0 : group.value.modifiers.value;
794
- const toReturn = /* @__PURE__ */ new Set();
795
- if (localModifiers) {
796
- if (!Array.isArray(localModifiers)) {
797
- localModifiers = localModifiers.split(" ");
798
- }
799
- localModifiers.forEach((modifier) => toReturn.add(modifier));
800
- }
801
- if (groupModifiers) {
802
- if (!Array.isArray(groupModifiers)) {
803
- groupModifiers = groupModifiers.split(" ");
804
- }
805
- groupModifiers.forEach((modifier) => toReturn.add(modifier));
792
+ function useComponentIcon(icon, iconPosition) {
793
+ const hasIcon = computed(() => {
794
+ if (typeof (icon == null ? void 0 : icon.value) === "string") {
795
+ return { name: icon == null ? void 0 : icon.value };
806
796
  }
807
- return Array.from(toReturn);
797
+ return icon == null ? void 0 : icon.value;
808
798
  });
809
- const disabled = computed(
810
- () => {
811
- var _a;
812
- return Boolean(props.disabled || ((_a = group == null ? void 0 : group.value) == null ? void 0 : _a.disabled.value));
813
- }
799
+ const hasIconBefore = computed(
800
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Position.before ? hasIcon.value : void 0
801
+ );
802
+ const hasIconAfter = computed(
803
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Position.after ? hasIcon.value : void 0
804
+ );
805
+ const hasIconLeft = computed(
806
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Side.left ? hasIcon.value : void 0
807
+ );
808
+ const hasIconRight = computed(
809
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Side.right ? hasIcon.value : void 0
810
+ );
811
+ const hasIconTop = computed(
812
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Side.top ? hasIcon.value : void 0
813
+ );
814
+ const hasIconBottom = computed(
815
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Side.bottom ? hasIcon.value : void 0
814
816
  );
815
817
  return {
816
- // group props
817
- group,
818
- isInGroup,
819
- modelValue,
820
- toggle,
821
- unselectable,
822
- multiple,
823
- modifiers,
824
- disabled,
825
- // local props
826
- id,
827
- pressed,
828
- iconPosition,
829
- icon,
830
- label
818
+ hasIcon,
819
+ hasIconLeft,
820
+ hasIconRight,
821
+ hasIconTop,
822
+ hasIconBottom,
823
+ hasIconBefore,
824
+ hasIconAfter
831
825
  };
832
826
  }
833
- const useUniqueId = (id) => computed(() => String((id == null ? void 0 : id.value) || uid()));
834
827
  const _hoisted_1 = {
835
828
  key: 1,
836
829
  class: "vv-button__label"
@@ -840,14 +833,16 @@ const _hoisted_2 = {
840
833
  class: "vv-button__label"
841
834
  };
842
835
  const __default__ = {
843
- name: "VvButton"
836
+ name: "VvButton",
837
+ inheritAttrs: false
844
838
  };
845
839
  const _sfc_main = /* @__PURE__ */ defineComponent({
846
840
  ...__default__,
847
841
  props: VvButtonProps,
848
842
  emits: VvButtonEvents,
849
- setup(__props, { expose: __expose, emit }) {
843
+ setup(__props, { expose: __expose, emit: __emit }) {
850
844
  const props = __props;
845
+ const emit = __emit;
851
846
  const attrs = useAttrs();
852
847
  const slots = useSlots();
853
848
  const {
@@ -882,10 +877,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
882
877
  "vv-button",
883
878
  modifiers,
884
879
  computed(() => ({
885
- reverse: [Side.right, Side.bottom].includes(
880
+ "reverse": [Side.right, Side.bottom].includes(
886
881
  iconPosition.value
887
882
  ),
888
- column: [Side.top, Side.bottom].includes(
883
+ "column": [Side.top, Side.bottom].includes(
889
884
  iconPosition.value
890
885
  ),
891
886
  "icon-only": Boolean(
@@ -893,13 +888,19 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
893
888
  )
894
889
  }))
895
890
  );
896
- const hasIconProps = computed(
897
- () => typeof (icon == null ? void 0 : icon.value) === "string" ? { name: icon == null ? void 0 : icon.value } : icon == null ? void 0 : icon.value
898
- );
891
+ const { hasIcon } = useComponentIcon(icon);
899
892
  const toggleValue = computed(() => {
900
893
  return props.value !== void 0 ? props.value : name.value;
901
894
  });
902
- const onClick = () => {
895
+ const hasListeners = computed(() => {
896
+ if (!toggle.value) {
897
+ return void 0;
898
+ }
899
+ return {
900
+ onClick
901
+ };
902
+ });
903
+ function onClick() {
903
904
  if (toggle.value) {
904
905
  if (Array.isArray(modelValue.value)) {
905
906
  if (contains(toggleValue.value, modelValue.value)) {
@@ -919,9 +920,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
919
920
  }
920
921
  modelValue.value = toggleValue.value;
921
922
  }
922
- };
923
+ }
923
924
  return (_ctx, _cache) => {
924
- return openBlock(), createBlock(_sfc_main$1, mergeProps({
925
+ return openBlock(), createBlock(_sfc_main$2, mergeProps({
926
+ ...unref(attrs),
927
+ ...unref(hasListeners),
925
928
  disabled: unref(disabled),
926
929
  pressed: unref(pressed),
927
930
  active: _ctx.active,
@@ -935,34 +938,53 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
935
938
  id: unref(hasId),
936
939
  ref_key: "element",
937
940
  ref: element,
938
- class: unref(bemCssClasses),
939
- onClick
941
+ class: unref(bemCssClasses)
940
942
  }), {
941
943
  default: withCtx(() => [
942
944
  renderSlot(_ctx.$slots, "default", {}, () => [
943
945
  _ctx.loading ? renderSlot(_ctx.$slots, "loading", { key: 0 }, () => [
944
- _ctx.loadingIcon ? (openBlock(), createBlock(_sfc_main$2, {
946
+ _ctx.loadingIcon ? (openBlock(), createBlock(_sfc_main$1, {
945
947
  key: 0,
946
948
  class: "vv-button__loading-icon",
947
949
  name: _ctx.loadingIcon
948
- }, null, 8, ["name"])) : createCommentVNode("", true),
949
- _ctx.loadingLabel ? (openBlock(), createElementBlock("span", _hoisted_1, toDisplayString(_ctx.loadingLabel), 1)) : createCommentVNode("", true)
950
- ]) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
951
- renderSlot(_ctx.$slots, "before"),
952
- unref(icon) ? (openBlock(), createBlock(_sfc_main$2, mergeProps({
953
- key: 0,
954
- class: "vv-button__icon"
955
- }, unref(hasIconProps)), null, 16)) : createCommentVNode("", true),
956
- unref(label) ? (openBlock(), createElementBlock("span", _hoisted_2, [
957
- renderSlot(_ctx.$slots, "label", {}, () => [
958
- createTextVNode(toDisplayString(unref(label)), 1)
959
- ])
960
- ])) : createCommentVNode("", true),
961
- renderSlot(_ctx.$slots, "after")
962
- ], 64))
950
+ }, null, 8, ["name"])) : createCommentVNode("v-if", true),
951
+ _ctx.loadingLabel ? (openBlock(), createElementBlock(
952
+ "span",
953
+ _hoisted_1,
954
+ toDisplayString(_ctx.loadingLabel),
955
+ 1
956
+ /* TEXT */
957
+ )) : createCommentVNode("v-if", true)
958
+ ]) : (openBlock(), createElementBlock(
959
+ Fragment,
960
+ { key: 1 },
961
+ [
962
+ renderSlot(_ctx.$slots, "before"),
963
+ unref(hasIcon) ? (openBlock(), createBlock(
964
+ _sfc_main$1,
965
+ mergeProps({ key: 0 }, unref(hasIcon), { class: "vv-button__icon" }),
966
+ null,
967
+ 16
968
+ /* FULL_PROPS */
969
+ )) : createCommentVNode("v-if", true),
970
+ unref(label) ? (openBlock(), createElementBlock("span", _hoisted_2, [
971
+ renderSlot(_ctx.$slots, "label", {}, () => [
972
+ createTextVNode(
973
+ toDisplayString(unref(label)),
974
+ 1
975
+ /* TEXT */
976
+ )
977
+ ])
978
+ ])) : createCommentVNode("v-if", true),
979
+ renderSlot(_ctx.$slots, "after")
980
+ ],
981
+ 64
982
+ /* STABLE_FRAGMENT */
983
+ ))
963
984
  ])
964
985
  ]),
965
986
  _: 3
987
+ /* FORWARDED */
966
988
  }, 16, ["id", "class"]);
967
989
  };
968
990
  }