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

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 (478) 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 +226 -126
  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 +1215 -955
  64. package/dist/components/VvCombobox/VvCombobox.umd.js +1 -1
  65. package/dist/components/VvCombobox/VvCombobox.vue.d.ts +600 -680
  66. package/dist/components/VvCombobox/index.d.ts +454 -24
  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 +224 -125
  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 +301 -267
  123. package/dist/components/VvSelect/VvSelect.umd.js +1 -1
  124. package/dist/components/VvSelect/VvSelect.vue.d.ts +229 -203
  125. package/dist/components/VvSelect/index.d.ts +181 -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 +4241 -2261
  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/Dialog/Dialog.settings.d.ts +2 -47
  199. package/dist/stories/Dialog/DialogModifiers.stories.d.ts +8 -0
  200. package/dist/stories/Dropdown/Dropdown.settings.d.ts +2 -205
  201. package/dist/stories/Icon/Icon.settings.d.ts +3 -68
  202. package/dist/stories/InputFile/InputFile.settings.d.ts +6 -0
  203. package/dist/stories/InputFile/InputFile.stories.d.ts +12 -0
  204. package/dist/stories/InputFile/InputFileDropArea.stories.d.ts +9 -0
  205. package/dist/stories/InputFile/InputFileIconPosition.stories.d.ts +8 -0
  206. package/dist/stories/InputFile/InputFileSlots.stories.d.ts +7 -0
  207. package/dist/stories/InputText/InputText.settings.d.ts +2 -438
  208. package/dist/stories/Nav/Nav.settings.d.ts +2 -10
  209. package/dist/stories/Progress/Progress.settings.d.ts +2 -27
  210. package/dist/stories/Radio/Radio.settings.d.ts +1 -110
  211. package/dist/stories/RadioGroup/RadioGroup.settings.d.ts +1 -141
  212. package/dist/stories/Select/Select.settings.d.ts +2 -246
  213. package/dist/stories/Tab/Tab.settings.d.ts +2 -15
  214. package/dist/stories/Textarea/Textarea.settings.d.ts +2 -287
  215. package/dist/stories/argTypes.d.ts +27 -866
  216. package/dist/test/expect.d.ts +1 -1
  217. package/dist/test/options.d.ts +1 -1
  218. package/dist/test/sleep.d.ts +1 -1
  219. package/dist/types/alert.d.ts +9 -7
  220. package/dist/types/blurhash.d.ts +12 -0
  221. package/dist/types/generic.d.ts +1 -2
  222. package/dist/types/group.d.ts +37 -15
  223. package/dist/types/index.d.ts +7 -0
  224. package/dist/types/input-file.d.ts +16 -0
  225. package/dist/types/nav.d.ts +2 -2
  226. package/dist/utils/ObjectUtilities.d.ts +7 -8
  227. package/dist/workers/blurhash.d.ts +1 -0
  228. package/package.json +239 -246
  229. package/src/Volver.ts +245 -234
  230. package/src/assets/icons/detailed.json +1 -1
  231. package/src/assets/icons/normal.json +1 -1
  232. package/src/assets/icons/simple.json +1 -1
  233. package/src/components/VvAccordion/VvAccordion.vue +163 -100
  234. package/src/components/VvAccordion/index.ts +64 -79
  235. package/src/components/VvAccordionGroup/VvAccordionGroup.vue +223 -105
  236. package/src/components/VvAccordionGroup/index.ts +42 -42
  237. package/src/components/VvAction/VvAction.vue +144 -130
  238. package/src/components/VvAlert/VvAlert.vue +72 -70
  239. package/src/components/VvAlert/index.ts +149 -147
  240. package/src/components/VvAlertGroup/VvAlertGroup.vue +57 -56
  241. package/src/components/VvAlertGroup/index.ts +101 -117
  242. package/src/components/VvAvatar/VvAvatar.vue +20 -14
  243. package/src/components/VvAvatar/index.ts +5 -5
  244. package/src/components/VvAvatarGroup/VvAvatarGroup.vue +58 -53
  245. package/src/components/VvAvatarGroup/index.ts +21 -21
  246. package/src/components/VvBadge/VvBadge.vue +15 -14
  247. package/src/components/VvBadge/index.ts +2 -2
  248. package/src/components/VvBreadcrumb/VvBreadcrumb.vue +50 -48
  249. package/src/components/VvBreadcrumb/index.ts +3 -9
  250. package/src/components/VvButton/VvButton.vue +163 -152
  251. package/src/components/VvButton/index.ts +103 -110
  252. package/src/components/VvButtonGroup/VvButtonGroup.vue +72 -64
  253. package/src/components/VvButtonGroup/index.ts +22 -21
  254. package/src/components/VvCard/VvCard.vue +30 -30
  255. package/src/components/VvCard/index.ts +2 -2
  256. package/src/components/VvCheckbox/VvCheckbox.vue +185 -183
  257. package/src/components/VvCheckbox/index.ts +44 -44
  258. package/src/components/VvCheckboxGroup/VvCheckboxGroup.vue +88 -87
  259. package/src/components/VvCombobox/VvCombobox.vue +631 -619
  260. package/src/components/VvCombobox/index.ts +189 -164
  261. package/src/components/VvDialog/VvDialog.vue +141 -129
  262. package/src/components/VvDialog/index.ts +38 -36
  263. package/src/components/VvDropdown/VvDropdown.vue +466 -445
  264. package/src/components/VvDropdown/VvDropdownAction.vue +37 -39
  265. package/src/components/VvDropdown/VvDropdownItem.vue +30 -26
  266. package/src/components/VvDropdown/VvDropdownOptgroup.vue +13 -12
  267. package/src/components/VvDropdown/VvDropdownOption.vue +47 -64
  268. package/src/components/VvDropdown/index.ts +61 -27
  269. package/src/components/VvIcon/README.md +1 -1
  270. package/src/components/VvIcon/VvIcon.vue +133 -133
  271. package/src/components/VvIcon/index.ts +84 -97
  272. package/src/components/VvInputFile/VvInputFile.vue +402 -0
  273. package/src/components/VvInputFile/index.ts +141 -0
  274. package/src/components/VvInputText/VvInputClearAction.ts +51 -47
  275. package/src/components/VvInputText/VvInputPasswordAction.ts +66 -62
  276. package/src/components/VvInputText/VvInputStepAction.ts +43 -43
  277. package/src/components/VvInputText/VvInputText.vue +638 -516
  278. package/src/components/VvInputText/VvInputTextActions.ts +86 -86
  279. package/src/components/VvInputText/index.ts +200 -185
  280. package/src/components/VvNav/VvNav.vue +40 -36
  281. package/src/components/VvNav/VvNavItem.vue +12 -12
  282. package/src/components/VvNav/VvNavSeparator.vue +6 -6
  283. package/src/components/VvNav/index.ts +2 -2
  284. package/src/components/VvProgress/VvProgress.vue +27 -27
  285. package/src/components/VvProgress/index.ts +28 -28
  286. package/src/components/VvRadio/VvRadio.vue +115 -112
  287. package/src/components/VvRadio/index.ts +28 -28
  288. package/src/components/VvRadioGroup/VvRadioGroup.vue +91 -90
  289. package/src/components/VvSelect/VvSelect.vue +242 -241
  290. package/src/components/VvSelect/index.ts +81 -63
  291. package/src/components/VvTab/VvTab.vue +79 -69
  292. package/src/components/VvTab/index.ts +12 -12
  293. package/src/components/VvTextarea/VvTextarea.vue +218 -219
  294. package/src/components/VvTextarea/index.ts +35 -35
  295. package/src/components/VvTooltip/VvTooltip.vue +22 -16
  296. package/src/components/VvTooltip/index.ts +12 -12
  297. package/src/components/common/HintSlot.ts +149 -150
  298. package/src/components/index.ts +10 -0
  299. package/src/composables/alert/useAlert.ts +76 -73
  300. package/src/composables/alert/useInjectAlert.ts +1 -1
  301. package/src/composables/alert/useProvideAlert.ts +10 -10
  302. package/src/composables/dropdown/useInjectDropdown.ts +6 -6
  303. package/src/composables/dropdown/useProvideDropdown.ts +63 -63
  304. package/src/composables/group/useInjectedGroupState.ts +46 -42
  305. package/src/composables/group/useProvideGroupState.ts +9 -15
  306. package/src/composables/index.ts +1 -0
  307. package/src/composables/useBlurhash.ts +68 -0
  308. package/src/composables/useComponentFocus.ts +9 -9
  309. package/src/composables/useComponentIcon.ts +36 -35
  310. package/src/composables/useDebouncedInput.ts +25 -25
  311. package/src/composables/useDefaults.ts +77 -76
  312. package/src/composables/useModifiers.ts +29 -29
  313. package/src/composables/useOptions.ts +51 -43
  314. package/src/composables/usePersistence.ts +74 -0
  315. package/src/composables/useTextCount.ts +44 -44
  316. package/src/composables/useUniqueId.ts +3 -2
  317. package/src/composables/useVolver.ts +1 -1
  318. package/src/constants.ts +97 -82
  319. package/src/directives/index.ts +3 -6
  320. package/src/directives/v-contextmenu.ts +34 -34
  321. package/src/directives/v-tooltip.ts +18 -9
  322. package/src/index.ts +6 -4
  323. package/src/props/index.ts +457 -380
  324. package/src/resolvers/unplugin.ts +146 -136
  325. package/src/shims.d.ts +4 -5
  326. package/src/stories/Accordion/Accordion.settings.ts +51 -50
  327. package/src/stories/Accordion/Accordion.stories.ts +21 -21
  328. package/src/stories/Accordion/Accordion.test.ts +56 -54
  329. package/src/stories/Accordion/AccordionSlots.stories.ts +13 -13
  330. package/src/stories/AccordionGroup/AccordionGroup.settings.ts +70 -67
  331. package/src/stories/AccordionGroup/AccordionGroup.stories.ts +41 -39
  332. package/src/stories/AccordionGroup/AccordionGroup.test.ts +49 -45
  333. package/src/stories/AccordionGroup/AccordionGroupSlots.stories.ts +35 -35
  334. package/src/stories/Alert/Alert.settings.ts +117 -116
  335. package/src/stories/Alert/Alert.stories.ts +30 -30
  336. package/src/stories/Alert/Alert.test.ts +78 -80
  337. package/src/stories/Alert/AlertModifiers.stories.ts +45 -45
  338. package/src/stories/Alert/AlertSlots.stories.ts +35 -35
  339. package/src/stories/AlertGroup/AlertGroup.settings.ts +107 -105
  340. package/src/stories/AlertGroup/AlertGroup.stories.ts +25 -25
  341. package/src/stories/AlertGroup/AlertGroup.test.ts +67 -69
  342. package/src/stories/AlertGroup/AlertGroupPosition.stories.ts +68 -68
  343. package/src/stories/AlertGroup/AlertGroupSlots.stories.ts +23 -23
  344. package/src/stories/AlertGroup/AlertGroupWithComposable.stories.ts +58 -58
  345. package/src/stories/Avatar/Avatar.settings.ts +29 -29
  346. package/src/stories/Avatar/Avatar.stories.ts +23 -23
  347. package/src/stories/Avatar/Avatar.test.ts +22 -24
  348. package/src/stories/Avatar/AvatarBadge.stories.ts +15 -15
  349. package/src/stories/Avatar/AvatarModifiers.stories.ts +61 -61
  350. package/src/stories/Avatar/AvatarSlots.stories.ts +18 -18
  351. package/src/stories/AvatarGroup/AvatarGroup.settings.ts +54 -53
  352. package/src/stories/AvatarGroup/AvatarGroup.stories.ts +17 -17
  353. package/src/stories/AvatarGroup/AvatarGroup.test.ts +24 -26
  354. package/src/stories/AvatarGroup/AvatarGroupModifiers.stories.ts +15 -15
  355. package/src/stories/AvatarGroup/AvatarGroupSlotDefault.stories.ts +17 -17
  356. package/src/stories/Badge/Badge.settings.ts +21 -20
  357. package/src/stories/Badge/Badge.stories.ts +24 -24
  358. package/src/stories/Badge/Badge.test.ts +8 -8
  359. package/src/stories/Badge/BadgeSlots.stories.ts +10 -10
  360. package/src/stories/Blurhash/BlurhashComposable.stories.ts +196 -0
  361. package/src/stories/Breadcrumb/Breadcrumb.settings.ts +35 -34
  362. package/src/stories/Breadcrumb/Breadcrumb.stories.ts +23 -23
  363. package/src/stories/Breadcrumb/Breadcrumb.test.ts +44 -43
  364. package/src/stories/Breadcrumb/BreadcrumbSlots.stories.ts +17 -17
  365. package/src/stories/Button/Button.settings.ts +146 -150
  366. package/src/stories/Button/Button.stories.ts +19 -19
  367. package/src/stories/Button/Button.test.ts +41 -42
  368. package/src/stories/Button/ButtonIcon.stories.ts +42 -42
  369. package/src/stories/Button/ButtonLink.stories.ts +24 -24
  370. package/src/stories/Button/ButtonLoading.stories.ts +22 -22
  371. package/src/stories/Button/ButtonModifiers.stories.ts +91 -91
  372. package/src/stories/Button/ButtonSlots.stories.ts +47 -47
  373. package/src/stories/Button/ButtonState.stories.ts +23 -23
  374. package/src/stories/Button/ButtonToggle.stories.ts +30 -30
  375. package/src/stories/ButtonGroup/ButtonGroup.settings.ts +33 -24
  376. package/src/stories/ButtonGroup/ButtonGroup.stories.ts +20 -20
  377. package/src/stories/ButtonGroup/ButtonGroup.test.ts +23 -26
  378. package/src/stories/ButtonGroup/ButtonGroupModifiers.stories.ts +20 -20
  379. package/src/stories/ButtonGroup/ButtonGroupSlots.stories.ts +18 -18
  380. package/src/stories/ButtonGroup/ButtonGroupToggle.stories.ts +22 -22
  381. package/src/stories/Card/Card.settings.ts +49 -48
  382. package/src/stories/Card/Card.stories.ts +22 -22
  383. package/src/stories/Card/Card.test.ts +14 -16
  384. package/src/stories/Card/CardSlots.stories.ts +42 -42
  385. package/src/stories/Checkbox/Checkbox.settings.ts +36 -35
  386. package/src/stories/Checkbox/Checkbox.stories.ts +57 -57
  387. package/src/stories/Checkbox/Checkbox.test.ts +63 -66
  388. package/src/stories/Checkbox/CheckboxBinary.stories.ts +18 -18
  389. package/src/stories/Checkbox/CheckboxSlots.stories.ts +15 -15
  390. package/src/stories/CheckboxGroup/CheckboxGroup.settings.ts +9 -9
  391. package/src/stories/CheckboxGroup/CheckboxGroup.stories.ts +50 -50
  392. package/src/stories/CheckboxGroup/CheckboxGroup.test.ts +63 -67
  393. package/src/stories/CheckboxGroup/CheckboxGroupOptions.stories.ts +34 -34
  394. package/src/stories/CheckboxGroup/CheckboxGroupSlots.stories.ts +23 -23
  395. package/src/stories/Combobox/Combobox.settings.ts +391 -383
  396. package/src/stories/Combobox/Combobox.stories.ts +108 -107
  397. package/src/stories/Combobox/Combobox.test.ts +89 -91
  398. package/src/stories/Combobox/ComboboxIconPosition.stories.ts +25 -24
  399. package/src/stories/Combobox/ComboboxMultiple.stories.ts +23 -22
  400. package/src/stories/Combobox/ComboboxOptions.stories.ts +85 -84
  401. package/src/stories/Combobox/ComboboxSlots.stories.ts +56 -55
  402. package/src/stories/Dialog/Dialog.settings.ts +49 -40
  403. package/src/stories/Dialog/Dialog.stories.ts +28 -28
  404. package/src/stories/Dialog/Dialog.test.ts +49 -54
  405. package/src/stories/Dialog/DialogModifiers.stories.ts +42 -0
  406. package/src/stories/Dialog/DialogSlots.stories.ts +20 -20
  407. package/src/stories/Dropdown/Dropdown.settings.ts +63 -62
  408. package/src/stories/Dropdown/Dropdown.stories.ts +59 -59
  409. package/src/stories/Dropdown/Dropdown.test.ts +9 -13
  410. package/src/stories/Dropdown/DropdownContextmenuDirective.stories.ts +16 -16
  411. package/src/stories/Dropdown/DropdownMultilevel.stories.ts +18 -18
  412. package/src/stories/Dropdown/DropdownSlots.stories.ts +50 -50
  413. package/src/stories/Icon/Icon.settings.ts +66 -65
  414. package/src/stories/Icon/Icon.stories.ts +28 -29
  415. package/src/stories/Icon/IconsCollection.stories.ts +22 -22
  416. package/src/stories/InputFile/InputFile.settings.ts +37 -0
  417. package/src/stories/InputFile/InputFile.stories.ts +89 -0
  418. package/src/stories/InputFile/InputFileDropArea.stories.ts +56 -0
  419. package/src/stories/InputFile/InputFileIconPosition.stories.ts +43 -0
  420. package/src/stories/InputFile/InputFileSlots.stories.ts +33 -0
  421. package/src/stories/InputText/InputText.settings.ts +246 -244
  422. package/src/stories/InputText/InputText.stories.ts +67 -67
  423. package/src/stories/InputText/InputText.test.ts +118 -121
  424. package/src/stories/InputText/InputTextIconPosition.stories.ts +24 -24
  425. package/src/stories/InputText/InputTextLength.stories.ts +33 -33
  426. package/src/stories/InputText/InputTextMask.stories.ts +91 -91
  427. package/src/stories/InputText/InputTextMinMax.stories.ts +30 -30
  428. package/src/stories/InputText/InputTextSlots.stories.ts +20 -20
  429. package/src/stories/InputText/InputTextType.stories.ts +70 -70
  430. package/src/stories/Nav/Nav.settings.ts +27 -27
  431. package/src/stories/Nav/Nav.stories.ts +18 -18
  432. package/src/stories/Nav/Nav.test.ts +10 -12
  433. package/src/stories/Nav/NavModifiers.stories.ts +25 -25
  434. package/src/stories/Progress/Progress.settings.ts +24 -23
  435. package/src/stories/Progress/Progress.stories.ts +23 -23
  436. package/src/stories/Progress/Progress.test.ts +4 -4
  437. package/src/stories/Radio/Radio.settings.ts +9 -9
  438. package/src/stories/Radio/Radio.stories.ts +47 -47
  439. package/src/stories/Radio/Radio.test.ts +54 -57
  440. package/src/stories/Radio/RadioSlots.stories.ts +15 -15
  441. package/src/stories/RadioGroup/RadioGroup.settings.ts +9 -9
  442. package/src/stories/RadioGroup/RadioGroup.stories.ts +51 -52
  443. package/src/stories/RadioGroup/RadioGroup.test.ts +63 -67
  444. package/src/stories/RadioGroup/RadioGroupOptions.stories.ts +35 -35
  445. package/src/stories/RadioGroup/RadioGroupSlots.stories.ts +23 -23
  446. package/src/stories/Select/Select.settings.ts +71 -70
  447. package/src/stories/Select/Select.stories.ts +67 -66
  448. package/src/stories/Select/Select.test.ts +65 -70
  449. package/src/stories/Select/SelectIconPosition.stories.ts +27 -26
  450. package/src/stories/Select/SelectOptions.stories.ts +55 -55
  451. package/src/stories/Select/SelectSlots.stories.ts +21 -20
  452. package/src/stories/Tab/Tab.settings.ts +34 -34
  453. package/src/stories/Tab/Tab.stories.ts +17 -17
  454. package/src/stories/Tab/Tab.test.ts +17 -19
  455. package/src/stories/Textarea/Textarea.settings.ts +79 -77
  456. package/src/stories/Textarea/Textarea.stories.ts +63 -63
  457. package/src/stories/Textarea/Textarea.test.ts +70 -73
  458. package/src/stories/Textarea/TextareaLength.stories.ts +33 -33
  459. package/src/stories/Textarea/TextareaSlots.stories.ts +20 -20
  460. package/src/stories/Textarea/TextareatIconPosition.stories.ts +24 -24
  461. package/src/stories/Tooltip/Tooltip.settings.ts +16 -17
  462. package/src/stories/Tooltip/Tooltip.stories.ts +18 -18
  463. package/src/stories/Tooltip/Tooltip.test.ts +53 -54
  464. package/src/stories/Tooltip/TooltipDirective.stories.ts +37 -37
  465. package/src/stories/argTypes.ts +506 -505
  466. package/src/test/expect.ts +72 -77
  467. package/src/test/options.ts +17 -16
  468. package/src/test/sleep.ts +3 -2
  469. package/src/test/types.d.ts +11 -11
  470. package/src/types/alert.ts +21 -17
  471. package/src/types/blurhash.ts +21 -0
  472. package/src/types/generic.ts +2 -3
  473. package/src/types/group.ts +34 -26
  474. package/src/types/index.ts +7 -0
  475. package/src/types/input-file.ts +18 -0
  476. package/src/types/nav.ts +13 -14
  477. package/src/utils/ObjectUtilities.ts +192 -188
  478. package/src/workers/blurhash.ts +9 -0
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("vue"),require("@iconify/vue"),require("uid")):"function"==typeof define&&define.amd?define(["vue","@iconify/vue","uid"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).VvButton=t(e.vue,e.vue$1,e.uid)}(this,(function(e,t,o){"use strict";const n={color:String,width:{type:[String,Number]},height:{type:[String,Number]},name:{type:String,required:!0},provider:{type:String},prefix:{type:String,default:"normal"},src:String,horizontalFlip:Boolean,verticalFlip:Boolean,flip:String,mode:String,inline:Boolean,rotate:[Number,String],onLoad:Function,svg:String,modifiers:{type:[String,Array]}};var r=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(r||{}),l=(e=>(e.before="before",e.after="after",e))(l||{}),i=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(i||{}),a=(e=>(e.nuxtLink="nuxt-link",e.routerLink="router-link",e.a="a",e.button="button",e))(a||{}),u=(e=>(e._blank="_blank",e._self="_self",e._parent="_parent",e._top="_top",e))(u||{});const s=Symbol.for("volver"),c=Symbol.for("buttonGroup"),d=Symbol.for("dropdownTrigger"),f=Symbol.for("dropdownAction");function v(){return e.inject(s)}function p(t,o,n){return e.computed((()=>{const r={[t]:!0},l="string"==typeof(null==o?void 0:o.value)?o.value.split(" "):null==o?void 0:o.value;return l&&Array.isArray(l)&&l.forEach((e=>{e&&(r[`${t}--${e}`]=!0)})),n&&Object.keys(n.value).forEach((o=>{r[`${t}--${o}`]=e.unref(n.value[o])})),r}))}const m=e.defineComponent({name:"VvIcon",props:n,setup(o){const n=o,r=e.computed((()=>"string"==typeof n.rotate?parseFloat(n.rotate):n.rotate)),l=e.ref(!0),i=v(),{modifiers:a}=e.toRefs(n),u=p("vv-icon",a),s=e.computed((()=>n.provider||(null==i?void 0:i.iconsProvider))),c=e.computed((()=>{const e=n.name??"",o=`@${s.value}:${n.prefix}:${e}`;if(t.iconExists(o))return o;const r=null==i?void 0:i.iconsCollections.find((o=>{const n=`@${s.value}:${o.prefix}:${e}`;return t.iconExists(n)}));return r?`@${s.value}:${r.prefix}:${e}`:e}));function d(e){const o=function(e){let t;if("undefined"==typeof window){const{JSDOM:e}=require("jsdom");t=(new e).window}return(t?new t.DOMParser:new window.DOMParser).parseFromString(e,"text/html").querySelector("svg")}(e),r=(null==o?void 0:o.innerHTML.trim())||"";o&&r&&t.addIcon(`@${s.value}:${n.prefix}:${n.name}`,{body:r,height:o.viewBox.baseVal.height,width:o.viewBox.baseVal.width})}return i&&n.src&&!t.iconExists(`@${s.value}:${n.prefix}:${n.name}`)&&(l.value=!1,i.fetchIcon(n.src).then((e=>{e&&(d(e),l.value=!0)})).catch((e=>{throw new Error(`Error during fetch icon: ${null==e?void 0:e.message}`)}))),n.svg&&d(n.svg),(o,n)=>e.unref(l)?(e.openBlock(),e.createBlock(e.unref(t.Icon),e.mergeProps({key:0,class:e.unref(u)},{inline:o.inline,width:o.width,height:o.height,horizontalFlip:o.horizontalFlip,verticalFlip:o.verticalFlip,flip:o.flip,rotate:e.unref(r),color:o.color,onLoad:o.onLoad,icon:e.unref(c)}),null,16,["class"])):e.createCommentVNode("",!0)}}),g={to:{type:[String,Object]},href:String,target:{type:String,validator:e=>Object.values(u).includes(e)},rel:{type:String,default:"noopener noreferrer"}},b={loading:Boolean,loadingLabel:{type:String,default:"Loading..."}},y={disabled:Boolean},h={active:Boolean},S={current:Boolean},k={pressed:Boolean},B={label:[String,Number]},$={modifiers:[String,Array]};l.before;const x={unselectable:{type:Boolean,default:!0}},w={id:[String,Number]};r.bottom,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean;const A={...y,...B,...k,...h,...S,...g,type:{type:String,default:i.button,validator:e=>Object.values(i).includes(e)},ariaLabel:{type:String,default:void 0}},L=A;const j=e.defineComponent({name:"VvAction",props:L,emits:["click","mouseover","mouseleave"],setup(t,{expose:o,emit:n}){const r=t,l=v(),i=e.ref(null);o({$el:i});const{reference:u,bus:s,aria:c,expanded:p}=e.inject(d,{});e.watch((()=>i.value),(e=>{u&&(u.value=e)}));const m=e.computed((()=>r.pressed||(null==p?void 0:p.value))),{role:g}=e.inject(f,{}),b=e.computed((()=>{switch(!0){case r.disabled:return a.button;case void 0!==r.to:return(null==l?void 0:l.nuxt)?a.nuxtLink:a.routerLink;case void 0!==r.href:return a.a;default:return a.button}})),y=e.computed((()=>{const e={...null==c?void 0:c.value,ariaPressed:!!m.value||void 0,ariaLabel:r.ariaLabel,role:null==g?void 0:g.value};switch(b.value){case a.a:return{...e,href:r.href,target:r.target,rel:r.rel};case a.routerLink:case a.nuxtLink:return{...e,to:r.to,target:r.target};default:return{...e,type:r.type,disabled:r.disabled}}})),h=e=>{r.disabled?e.preventDefault():(null==s||s.emit("click",e),n("click",e))},S=e=>{null==s||s.emit("mouseover",e),n("mouseover",e)},k=e=>{null==s||s.emit("mouseleave",e),n("mouseleave",e)};return(t,o)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(b)),e.mergeProps(e.unref(y),{ref_key:"element",ref:i,class:{active:t.active,pressed:e.unref(m),disabled:t.disabled,current:t.current},onClickPassive:h,onMouseoverPassive:S,onMouseleavePassive:k}),{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default",{},(()=>[e.createTextVNode(e.toDisplayString(t.label),1)]))])),_:3},16,["class"]))}});function V(e,t,o){return o?O(e,o)===O(t,o):_(e,t)}function _(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){const o=Array.isArray(e),n=Array.isArray(t);let r,l,i;if(o&&n){if(l=e.length,l!=t.length)return!1;for(r=l;0!=r--;)if(!_(e[r],t[r]))return!1;return!0}if(o!=n)return!1;const a=e instanceof Date,u=t instanceof Date;if(a!=u)return!1;if(a&&u)return e.getTime()==t.getTime();const s=e instanceof RegExp,c=t instanceof RegExp;if(s!=c)return!1;if(s&&c)return e.toString()==t.toString();const d=Object.keys(e);if(l=d.length,l!==Object.keys(t).length)return!1;for(r=l;0!=r--;)if(!Object.prototype.hasOwnProperty.call(t,d[r]))return!1;for(r=l;0!=r--;)if(i=d[r],!_(e[i],t[i]))return!1;return!0}return e!=e&&t!=t}function O(e,t){if(e&&Object.keys(e).length&&t){if(-1===t.indexOf("."))return e[t];{const o=t.split(".");let n=e;for(let t=0,r=o.length;t<r;++t){if(null==e)return null;n=n[o[t]]}return n}}return null}function P(e,t){if(null!=e&&t&&t.length)for(const o of t)if(V(e,o))return!0;return!1}function N(t){const o=e.inject(t,void 0),n=e.computed((()=>{return t=o,!(null==(n=e.unref(t))||""===n||Array.isArray(n)&&0===n.length||!(n instanceof Date)&&"object"==typeof n&&0===Object.keys(n).length);var t,n}));return{group:o,isInGroup:n,getGroupOrLocalRef:function(t,n,r){if(null==o?void 0:o.value){const n=e.unref(o.value)[t];return e.computed({get:()=>null==n?void 0:n.value,set(e){n.value=e}})}const l=e.toRef(n,t);return e.computed({get:()=>l.value,set(e){r&&r(`update:${t}`,e)}})}}}const C={...A,...w,...$,...x,...b,icon:[String,Object],iconPosition:{type:String,default:r.left,validator:e=>Object.values(r).includes(e)},loadingIcon:{type:String,default:"eos-icons:bubble-loading"},toggle:{type:Boolean,default:!1},value:{type:[String,Number,Boolean],default:void 0},uncheckedValue:{type:[String,Number,Boolean],default:void 0},modelValue:{type:[String,Number,Boolean],default:void 0}};const E={key:1,class:"vv-button__label"},D={key:1,class:"vv-button__label"};return e.defineComponent({name:"VvButton",props:C,emits:["update:modelValue"],setup(t,{expose:n,emit:l}){const i=t,a=e.useAttrs(),u=e.useSlots(),{id:s,modifiers:d,iconPosition:f,icon:v,label:g,modelValue:b,disabled:y,toggle:h,unselectable:S}=function(t,o){const{group:n,isInGroup:r,getGroupOrLocalRef:l}=N(c),{id:i,iconPosition:a,icon:u,label:s,pressed:d}=e.toRefs(t),f=l("modelValue",t,o),v=l("toggle",t),p=l("unselectable",t),m=e.computed((()=>(null==n?void 0:n.value.multiple.value)??!1)),g=e.computed((()=>{let e=t.modifiers,o=null==n?void 0:n.value.modifiers.value;const r=new Set;return e&&(Array.isArray(e)||(e=e.split(" ")),e.forEach((e=>r.add(e)))),o&&(Array.isArray(o)||(o=o.split(" ")),o.forEach((e=>r.add(e)))),Array.from(r)})),b=e.computed((()=>{var e;return Boolean(t.disabled||(null==(e=null==n?void 0:n.value)?void 0:e.disabled.value))}));return{group:n,isInGroup:r,modelValue:f,toggle:v,unselectable:p,multiple:m,modifiers:g,disabled:b,id:i,pressed:d,iconPosition:a,icon:u,label:s}}(i,l),k=(t=>e.computed((()=>String((null==t?void 0:t.value)||o.uid()))))(s),B=e.computed((()=>(null==a?void 0:a.name)||k.value)),$=e.ref(null);n({$el:e.computed((()=>{var e;return null==(e=$.value)?void 0:e.$el}))});const x=e.computed((()=>h.value?Array.isArray(b.value)?P(B.value,b.value):V(B.value,b.value):i.pressed)),w=p("vv-button",d,e.computed((()=>({reverse:[r.right,r.bottom].includes(f.value),column:[r.top,r.bottom].includes(f.value),"icon-only":Boolean((null==v?void 0:v.value)&&!(null==g?void 0:g.value)&&!u.default)})))),A=e.computed((()=>"string"==typeof(null==v?void 0:v.value)?{name:null==v?void 0:v.value}:null==v?void 0:v.value)),L=e.computed((()=>void 0!==i.value?i.value:B.value)),_=()=>{if(h.value){if(Array.isArray(b.value))return P(L.value,b.value)?void(S.value&&(b.value=b.value.filter((e=>e!==L.value)))):void b.value.push(L.value);if(L.value===b.value&&S.value)return void(b.value=i.uncheckedValue);b.value=L.value}};return(t,o)=>(e.openBlock(),e.createBlock(j,e.mergeProps({disabled:e.unref(y),pressed:e.unref(x),active:t.active,type:t.type,to:t.to,href:t.href,target:t.target,rel:t.rel,ariaLabel:t.ariaLabel},{id:e.unref(k),ref_key:"element",ref:$,class:e.unref(w),onClick:_}),{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default",{},(()=>[t.loading?e.renderSlot(t.$slots,"loading",{key:0},(()=>[t.loadingIcon?(e.openBlock(),e.createBlock(m,{key:0,class:"vv-button__loading-icon",name:t.loadingIcon},null,8,["name"])):e.createCommentVNode("",!0),t.loadingLabel?(e.openBlock(),e.createElementBlock("span",E,e.toDisplayString(t.loadingLabel),1)):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.renderSlot(t.$slots,"before"),e.unref(v)?(e.openBlock(),e.createBlock(m,e.mergeProps({key:0,class:"vv-button__icon"},e.unref(A)),null,16)):e.createCommentVNode("",!0),e.unref(g)?(e.openBlock(),e.createElementBlock("span",D,[e.renderSlot(t.$slots,"label",{},(()=>[e.createTextVNode(e.toDisplayString(e.unref(g)),1)]))])):e.createCommentVNode("",!0),e.renderSlot(t.$slots,"after")],64))]))])),_:3},16,["id","class"]))}})}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("vue"),require("@iconify/vue"),require("uid")):"function"==typeof define&&define.amd?define(["vue","@iconify/vue","uid"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).VvButton=t(e.vue,e.vue$1,e.uid)}(this,(function(e,t,o){"use strict";const n={prefix:"normal"};var l=(e=>(e.local="local",e.session="session",e))(l||{}),r=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(r||{}),i=(e=>(e.before="before",e.after="after",e))(i||{}),u=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(u||{}),a=(e=>(e.nuxtLink="nuxt-link",e.routerLink="router-link",e.a="a",e.button="button",e))(a||{});const s=Symbol.for("volver"),c=Symbol.for("buttonGroup"),d=Symbol.for("dropdownTrigger"),v=Symbol.for("dropdownAction");function f(){return e.inject(s)}function p(t,o,n){return e.computed((()=>{const l={[t]:!0},r="string"==typeof(null==o?void 0:o.value)?o.value.split(" "):null==o?void 0:o.value;return r&&Array.isArray(r)&&r.forEach((e=>{e&&(l[`${t}--${e}`]=!0)})),n&&Object.keys(n.value).forEach((o=>{l[`${t}--${o}`]=e.unref(n.value[o])})),l}))}const m=e.defineComponent({name:"VvIcon",props:e.mergeDefaults({name:{},color:{},width:{},height:{},provider:{},prefix:{},src:{},horizontalFlip:{type:Boolean},verticalFlip:{type:Boolean},flip:{},mode:{},inline:{type:Boolean},rotate:{},onLoad:{type:Function},svg:{},modifiers:{}},n),setup(o){const n=o,l=e.computed((()=>"string"==typeof n.rotate?Number.parseFloat(n.rotate):n.rotate)),r=e.ref(!0),i=f(),{modifiers:u}=e.toRefs(n),a=p("vv-icon",u),s=e.computed((()=>n.provider||(null==i?void 0:i.iconsProvider))),c=e.computed((()=>{const e=n.name??"",o=`@${s.value}:${n.prefix}:${e}`;if(t.iconExists(o))return o;const l=null==i?void 0:i.iconsCollections.find((o=>{const n=`@${s.value}:${o.prefix}:${e}`;return t.iconExists(n)}));return l?`@${s.value}:${l.prefix}:${e}`:e}));function d(e){const o=function(e){let t;if("undefined"==typeof window){const{JSDOM:e}=require("jsdom");t=(new e).window}return(t?new t.DOMParser:new window.DOMParser).parseFromString(e,"text/html").querySelector("svg")}(e),l=(null==o?void 0:o.innerHTML.trim())||"";o&&l&&t.addIcon(`@${s.value}:${n.prefix}:${n.name}`,{body:l,height:o.viewBox.baseVal.height,width:o.viewBox.baseVal.width})}return i&&n.src&&!t.iconExists(`@${s.value}:${n.prefix}:${n.name}`)&&(r.value=!1,i.fetchIcon(n.src).then((e=>{e&&(d(e),r.value=!0)})).catch((e=>{throw new Error(`Error during fetch icon: ${null==e?void 0:e.message}`)}))),n.svg&&d(n.svg),(o,n)=>e.unref(r)?(e.openBlock(),e.createBlock(e.unref(t.Icon),e.mergeProps({key:0,class:e.unref(a)},{inline:o.inline,width:o.width,height:o.height,horizontalFlip:o.horizontalFlip,verticalFlip:o.verticalFlip,flip:o.flip,rotate:e.unref(l),color:o.color,onLoad:o.onLoad,icon:e.unref(c)}),null,16,["class"])):e.createCommentVNode("v-if",!0)}}),g={to:{type:[String,Object]},href:String,target:String,rel:{type:String,default:"noopener noreferrer"}},b={loading:{type:Boolean,default:!1},loadingLabel:{type:String,default:"Loading..."}},y={disabled:{type:Boolean,default:!1}},h={active:{type:Boolean,default:!1}},k={current:{type:Boolean,default:!1}},B={pressed:{type:Boolean,default:!1}},S={label:{type:[String,Number],default:void 0}},$={modifiers:{type:[String,Array],default:void 0}},x={icon:{type:[String,Object],default:void 0},iconPosition:{type:String,default:i.before,validation:e=>Object.values(i).includes(e)}},w={unselectable:{type:Boolean,default:!0}},L={id:[String,Number]};r.bottom,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean;const A={...y,...S,...B,...h,...k,...g,type:{type:String,default:u.button,validator:e=>Object.values(u).includes(e)},ariaLabel:{type:String,default:void 0},defaultTag:{type:String,default:a.button}};l.local;const V=A;const I=e.defineComponent({name:"VvAction",props:V,emits:["click","mouseover","mouseleave"],setup(t,{expose:o,emit:n}){const l=t,r=n,i=e.getCurrentInstance(),u=f(),s=e.ref(null);o({$el:s});const{reference:c,bus:p,aria:m,expanded:g}=e.inject(d,{});e.watch((()=>s.value),(e=>{c&&(c.value=e)}));const b=e.computed((()=>l.pressed||(null==g?void 0:g.value))),{role:y}=e.inject(v,{}),h=e.computed((()=>{switch(!0){case l.disabled:return a.button;case void 0!==l.to:return(null==u?void 0:u.nuxt)?a.nuxtLink:a.routerLink;case void 0!==l.href:return a.a;default:return l.defaultTag}})),k=e.computed((()=>{const e={...null==m?void 0:m.value,ariaPressed:!!b.value||void 0,ariaLabel:l.ariaLabel,role:null==y?void 0:y.value};switch(h.value){case a.a:return{...e,href:l.href,target:l.target,rel:l.rel};case a.routerLink:case a.nuxtLink:return{...e,to:l.to,target:l.target};case a.button:return{...e,type:l.type,disabled:l.disabled};default:return e}}));function B(e){var t;l.disabled?e.preventDefault():(null==(t=null==i?void 0:i.vnode.props)?void 0:t.onClick)?r("click",e):null==p||p.emit("click",e)}function S(e){var t;(null==(t=null==i?void 0:i.vnode.props)?void 0:t.onMouseover)?r("mouseover",e):null==p||p.emit("mouseover",e)}function $(e){var t;(null==(t=null==i?void 0:i.vnode.props)?void 0:t.onMouseleave)?r("mouseleave",e):null==p||p.emit("mouseleave",e)}return(t,o)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(h)),e.mergeProps(e.unref(k),{ref_key:"element",ref:s,class:{active:t.active,pressed:e.unref(b),disabled:t.disabled,current:t.current},onClickPassive:B,onMouseoverPassive:S,onMouseleavePassive:$}),{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default",{},(()=>[e.createTextVNode(e.toDisplayString(t.label),1)]))])),_:3},16,["class"]))}});const N={...A,...L,...$,...w,...b,...x,iconPosition:{type:String,default:r.left,validator:e=>Object.values(r).includes(e)},loadingIcon:{type:String,default:"eos-icons:bubble-loading"},toggle:{type:Boolean,default:!1},value:{type:[String,Number,Boolean],default:void 0},uncheckedValue:{type:[String,Number,Boolean],default:void 0},modelValue:{type:[String,Number,Boolean],default:void 0}};function j(t,o){const{group:n,isInGroup:l,getGroupOrLocalRef:r}=function(t){const o=e.inject(t,void 0),n=e.computed((()=>void 0!==o));return{group:o,isInGroup:n,getGroupOrLocalRef:function(t,n,l){const r=null==o?void 0:o[t];if(r)return e.computed({get:()=>r.value,set(e){r.value=e}});const i=e.toRef(n,t);return e.computed({get:()=>i.value,set(e){l&&l(`update:${t}`,e)}})}}}(c),{id:i,iconPosition:u,icon:a,label:s,pressed:d}=e.toRefs(t),v=r("modelValue",t,o),f=r("toggle",t),p=r("unselectable",t),m=e.computed((()=>(null==n?void 0:n.multiple.value)??!1)),g=e.computed((()=>{let e=t.modifiers,o=null==n?void 0:n.modifiers.value;const l=new Set;return e&&(Array.isArray(e)||(e=e.split(" ")),e.forEach((e=>l.add(e)))),o&&(Array.isArray(o)||(o=o.split(" ")),o.forEach((e=>l.add(e)))),Array.from(l)})),b=e.computed((()=>Boolean(t.disabled||(null==n?void 0:n.disabled.value))));return{group:n,isInGroup:l,modelValue:v,toggle:f,unselectable:p,multiple:m,modifiers:g,disabled:b,id:i,pressed:d,iconPosition:u,icon:a,label:s}}function P(e,t,o){return o?O(e,o)===O(t,o):C(e,t)}function C(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){const o=Array.isArray(e),n=Array.isArray(t);let l,r,i;if(o&&n){if(r=e.length,r!==t.length)return!1;for(l=r;0!=l--;)if(!C(e[l],t[l]))return!1;return!0}if(o!==n)return!1;const u=e instanceof Date,a=t instanceof Date;if(u!==a)return!1;if(u&&a)return e.getTime()===t.getTime();const s=e instanceof RegExp,c=t instanceof RegExp;if(s!==c)return!1;if(s&&c)return e.toString()===t.toString();const d=Object.keys(e);if(r=d.length,r!==Object.keys(t).length)return!1;for(l=r;0!=l--;)if(!Object.prototype.hasOwnProperty.call(t,d[l]))return!1;for(l=r;0!=l--;)if(i=d[l],!C(e[i],t[i]))return!1;return!0}return Number.isNaN(e)&&Number.isNaN(t)}function O(e,t){if(e&&Object.keys(e).length&&t){if(t.includes(".")){const o=t.split(".");let n=e;for(let t=0,l=o.length;t<l;++t){if(null==e)return null;n=n[o[t]]}return n}return e[t]}return null}function E(e,t){if(null!=e&&t&&t.length)for(const o of t)if(P(e,o))return!0;return!1}const _={key:1,class:"vv-button__label"},D={key:1,class:"vv-button__label"};return e.defineComponent({name:"VvButton",inheritAttrs:!1,props:N,emits:["update:modelValue"],setup(t,{expose:n,emit:l}){const u=t,a=l,s=e.useAttrs(),c=e.useSlots(),{id:d,modifiers:v,iconPosition:f,icon:g,label:b,modelValue:y,disabled:h,toggle:k,unselectable:B}=j(u,a),S=function(t){return e.computed((()=>String((null==t?void 0:t.value)||o.uid())))}(d),$=e.computed((()=>(null==s?void 0:s.name)||S.value)),x=e.ref(null);n({$el:e.computed((()=>{var e;return null==(e=x.value)?void 0:e.$el}))});const w=e.computed((()=>k.value?Array.isArray(y.value)?E($.value,y.value):P($.value,y.value):u.pressed)),L=p("vv-button",v,e.computed((()=>({reverse:[r.right,r.bottom].includes(f.value),column:[r.top,r.bottom].includes(f.value),"icon-only":Boolean((null==g?void 0:g.value)&&!(null==b?void 0:b.value)&&!c.default)})))),{hasIcon:A}=function(t,o){const n=e.computed((()=>"string"==typeof(null==t?void 0:t.value)?{name:null==t?void 0:t.value}:null==t?void 0:t.value)),l=e.computed((()=>(null==o?void 0:o.value)===i.before?n.value:void 0)),u=e.computed((()=>(null==o?void 0:o.value)===i.after?n.value:void 0)),a=e.computed((()=>(null==o?void 0:o.value)===r.left?n.value:void 0)),s=e.computed((()=>(null==o?void 0:o.value)===r.right?n.value:void 0)),c=e.computed((()=>(null==o?void 0:o.value)===r.top?n.value:void 0)),d=e.computed((()=>(null==o?void 0:o.value)===r.bottom?n.value:void 0));return{hasIcon:n,hasIconLeft:a,hasIconRight:s,hasIconTop:c,hasIconBottom:d,hasIconBefore:l,hasIconAfter:u}}(g),V=e.computed((()=>void 0!==u.value?u.value:$.value)),N=e.computed((()=>{if(k.value)return{onClick:C}}));function C(){if(k.value){if(Array.isArray(y.value))return E(V.value,y.value)?void(B.value&&(y.value=y.value.filter((e=>e!==V.value)))):void y.value.push(V.value);if(V.value===y.value&&B.value)return void(y.value=u.uncheckedValue);y.value=V.value}}return(t,o)=>(e.openBlock(),e.createBlock(I,e.mergeProps({...e.unref(s),...e.unref(N),disabled:e.unref(h),pressed:e.unref(w),active:t.active,type:t.type,to:t.to,href:t.href,target:t.target,rel:t.rel,ariaLabel:t.ariaLabel},{id:e.unref(S),ref_key:"element",ref:x,class:e.unref(L)}),{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default",{},(()=>[t.loading?e.renderSlot(t.$slots,"loading",{key:0},(()=>[t.loadingIcon?(e.openBlock(),e.createBlock(m,{key:0,class:"vv-button__loading-icon",name:t.loadingIcon},null,8,["name"])):e.createCommentVNode("v-if",!0),t.loadingLabel?(e.openBlock(),e.createElementBlock("span",_,e.toDisplayString(t.loadingLabel),1)):e.createCommentVNode("v-if",!0)])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.renderSlot(t.$slots,"before"),e.unref(A)?(e.openBlock(),e.createBlock(m,e.mergeProps({key:0},e.unref(A),{class:"vv-button__icon"}),null,16)):e.createCommentVNode("v-if",!0),e.unref(b)?(e.openBlock(),e.createElementBlock("span",D,[e.renderSlot(t.$slots,"label",{},(()=>[e.createTextVNode(e.toDisplayString(e.unref(b)),1)]))])):e.createCommentVNode("v-if",!0),e.renderSlot(t.$slots,"after")],64))]))])),_:3},16,["id","class"]))}})}));
@@ -1,8 +1,7 @@
1
1
  import { Side } from '../../constants';
2
2
  declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
3
- icon: (ObjectConstructor | StringConstructor)[];
4
3
  iconPosition: {
5
- type: globalThis.PropType<"left" | "right" | "top" | "bottom">;
4
+ type: globalThis.PropType<"top" | "right" | "bottom" | "left">;
6
5
  default: Side;
7
6
  validator: (value: Side) => boolean;
8
7
  };
@@ -15,18 +14,25 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
15
14
  default: boolean;
16
15
  };
17
16
  value: {
18
- type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
17
+ type: (BooleanConstructor | StringConstructor | NumberConstructor)[];
19
18
  default: undefined;
20
19
  };
21
20
  uncheckedValue: {
22
- type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
21
+ type: (BooleanConstructor | StringConstructor | NumberConstructor)[];
23
22
  default: undefined;
24
23
  };
25
24
  modelValue: {
26
- type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
25
+ type: (BooleanConstructor | StringConstructor | NumberConstructor)[];
27
26
  default: undefined;
28
27
  };
29
- loading: BooleanConstructor;
28
+ icon: {
29
+ type: globalThis.PropType<string | import("../VvIcon/index.js").VvIconProps>;
30
+ default: undefined;
31
+ };
32
+ loading: {
33
+ type: BooleanConstructor;
34
+ default: boolean;
35
+ };
30
36
  loadingLabel: {
31
37
  type: StringConstructor;
32
38
  default: string;
@@ -35,7 +41,10 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
35
41
  type: BooleanConstructor;
36
42
  default: boolean;
37
43
  };
38
- modifiers: globalThis.PropType<string | string[]>;
44
+ modifiers: {
45
+ type: globalThis.PropType<string | string[]>;
46
+ default: undefined;
47
+ };
39
48
  id: (StringConstructor | NumberConstructor)[];
40
49
  type: {
41
50
  type: globalThis.PropType<"button" | "submit" | "reset">;
@@ -46,29 +55,46 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
46
55
  type: StringConstructor;
47
56
  default: undefined;
48
57
  };
58
+ defaultTag: {
59
+ type: StringConstructor;
60
+ default: import("../../constants").ActionTag;
61
+ };
49
62
  to: {
50
63
  type: (ObjectConstructor | StringConstructor)[];
51
64
  };
52
65
  href: StringConstructor;
53
- target: {
54
- type: globalThis.PropType<"_blank" | "_self" | "_parent" | "_top">;
55
- validator: (value: import("../../constants").AnchorTarget) => boolean;
56
- };
66
+ target: StringConstructor;
57
67
  rel: {
58
68
  type: StringConstructor;
59
69
  default: string;
60
70
  };
61
- current: BooleanConstructor;
62
- active: BooleanConstructor;
63
- pressed: BooleanConstructor;
64
- label: (StringConstructor | NumberConstructor)[];
65
- disabled: BooleanConstructor;
71
+ current: {
72
+ type: BooleanConstructor;
73
+ default: boolean;
74
+ };
75
+ active: {
76
+ type: BooleanConstructor;
77
+ default: boolean;
78
+ };
79
+ pressed: {
80
+ type: BooleanConstructor;
81
+ default: boolean;
82
+ };
83
+ label: {
84
+ type: (StringConstructor | NumberConstructor)[];
85
+ default: undefined;
86
+ };
87
+ disabled: {
88
+ type: BooleanConstructor;
89
+ default: boolean;
90
+ };
66
91
  }, {
67
92
  $el: globalThis.ComputedRef<HTMLElement | undefined>;
68
- }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, string[], string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
69
- icon: (ObjectConstructor | StringConstructor)[];
93
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
94
+ [x: string]: (...args: any[]) => void;
95
+ }, string, import("vue").PublicProps, Readonly<globalThis.ExtractPropTypes<{
70
96
  iconPosition: {
71
- type: globalThis.PropType<"left" | "right" | "top" | "bottom">;
97
+ type: globalThis.PropType<"top" | "right" | "bottom" | "left">;
72
98
  default: Side;
73
99
  validator: (value: Side) => boolean;
74
100
  };
@@ -81,18 +107,25 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
81
107
  default: boolean;
82
108
  };
83
109
  value: {
84
- type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
110
+ type: (BooleanConstructor | StringConstructor | NumberConstructor)[];
85
111
  default: undefined;
86
112
  };
87
113
  uncheckedValue: {
88
- type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
114
+ type: (BooleanConstructor | StringConstructor | NumberConstructor)[];
89
115
  default: undefined;
90
116
  };
91
117
  modelValue: {
92
- type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
118
+ type: (BooleanConstructor | StringConstructor | NumberConstructor)[];
93
119
  default: undefined;
94
120
  };
95
- loading: BooleanConstructor;
121
+ icon: {
122
+ type: globalThis.PropType<string | import("../VvIcon/index.js").VvIconProps>;
123
+ default: undefined;
124
+ };
125
+ loading: {
126
+ type: BooleanConstructor;
127
+ default: boolean;
128
+ };
96
129
  loadingLabel: {
97
130
  type: StringConstructor;
98
131
  default: string;
@@ -101,7 +134,10 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
101
134
  type: BooleanConstructor;
102
135
  default: boolean;
103
136
  };
104
- modifiers: globalThis.PropType<string | string[]>;
137
+ modifiers: {
138
+ type: globalThis.PropType<string | string[]>;
139
+ default: undefined;
140
+ };
105
141
  id: (StringConstructor | NumberConstructor)[];
106
142
  type: {
107
143
  type: globalThis.PropType<"button" | "submit" | "reset">;
@@ -112,42 +148,60 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
112
148
  type: StringConstructor;
113
149
  default: undefined;
114
150
  };
151
+ defaultTag: {
152
+ type: StringConstructor;
153
+ default: import("../../constants").ActionTag;
154
+ };
115
155
  to: {
116
156
  type: (ObjectConstructor | StringConstructor)[];
117
157
  };
118
158
  href: StringConstructor;
119
- target: {
120
- type: globalThis.PropType<"_blank" | "_self" | "_parent" | "_top">;
121
- validator: (value: import("../../constants").AnchorTarget) => boolean;
122
- };
159
+ target: StringConstructor;
123
160
  rel: {
124
161
  type: StringConstructor;
125
162
  default: string;
126
163
  };
127
- current: BooleanConstructor;
128
- active: BooleanConstructor;
129
- pressed: BooleanConstructor;
130
- label: (StringConstructor | NumberConstructor)[];
131
- disabled: BooleanConstructor;
132
- }>> & {
133
- [x: `on${Capitalize<string>}`]: ((...args: any[]) => any) | undefined;
134
- }, {
135
- disabled: boolean;
136
- modelValue: string | number | boolean;
164
+ current: {
165
+ type: BooleanConstructor;
166
+ default: boolean;
167
+ };
168
+ active: {
169
+ type: BooleanConstructor;
170
+ default: boolean;
171
+ };
172
+ pressed: {
173
+ type: BooleanConstructor;
174
+ default: boolean;
175
+ };
176
+ label: {
177
+ type: (StringConstructor | NumberConstructor)[];
178
+ default: undefined;
179
+ };
180
+ disabled: {
181
+ type: BooleanConstructor;
182
+ default: boolean;
183
+ };
184
+ }>>, {
137
185
  toggle: boolean;
138
- unselectable: boolean;
186
+ label: string | number;
139
187
  value: string | number | boolean;
188
+ disabled: boolean;
189
+ modelValue: string | number | boolean;
190
+ modifiers: string | string[];
140
191
  type: "button" | "submit" | "reset";
141
192
  ariaLabel: string;
193
+ defaultTag: string;
142
194
  rel: string;
143
195
  current: boolean;
144
196
  active: boolean;
145
197
  pressed: boolean;
146
- iconPosition: "left" | "right" | "top" | "bottom";
198
+ icon: string | import("../VvIcon/index.js").VvIconProps;
199
+ iconPosition: "top" | "right" | "bottom" | "left";
147
200
  loadingIcon: string;
148
201
  uncheckedValue: string | number | boolean;
149
202
  loading: boolean;
150
203
  loadingLabel: string;
204
+ unselectable: boolean;
151
205
  }, {}>, {
152
206
  default?(_: {}): any;
153
207
  loading?(_: {}): any;
@@ -1,17 +1,13 @@
1
- import type { Ref, PropType, ExtractPropTypes } from 'vue';
1
+ import type { PropType, ExtractPropTypes } from 'vue';
2
2
  import type { ButtonGroupState } from '../../types/group';
3
3
  import { Side } from '../../constants';
4
4
  export declare const VvButtonEvents: string[];
5
5
  export declare const VvButtonProps: {
6
- /**
7
- * Button icon
8
- */
9
- icon: (ObjectConstructor | StringConstructor)[];
10
6
  /**
11
7
  * Button icon position
12
8
  */
13
9
  iconPosition: {
14
- type: PropType<"left" | "right" | "top" | "bottom">;
10
+ type: PropType<"top" | "right" | "bottom" | "left">;
15
11
  default: Side;
16
12
  validator: (value: Side) => boolean;
17
13
  };
@@ -33,24 +29,31 @@ export declare const VvButtonProps: {
33
29
  * Button toggle value
34
30
  */
35
31
  value: {
36
- type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
32
+ type: (BooleanConstructor | StringConstructor | NumberConstructor)[];
37
33
  default: undefined;
38
34
  };
39
35
  /**
40
36
  * Value associated with the unchecked state
41
37
  */
42
38
  uncheckedValue: {
43
- type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
39
+ type: (BooleanConstructor | StringConstructor | NumberConstructor)[];
44
40
  default: undefined;
45
41
  };
46
42
  /**
47
43
  * Button toggle model value
48
44
  */
49
45
  modelValue: {
50
- type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
46
+ type: (BooleanConstructor | StringConstructor | NumberConstructor)[];
47
+ default: undefined;
48
+ };
49
+ icon: {
50
+ type: PropType<string | import("../VvIcon").VvIconProps>;
51
51
  default: undefined;
52
52
  };
53
- loading: BooleanConstructor;
53
+ loading: {
54
+ type: BooleanConstructor;
55
+ default: boolean;
56
+ };
54
57
  loadingLabel: {
55
58
  type: StringConstructor;
56
59
  default: string;
@@ -59,7 +62,10 @@ export declare const VvButtonProps: {
59
62
  type: BooleanConstructor;
60
63
  default: boolean;
61
64
  };
62
- modifiers: PropType<string | string[]>;
65
+ modifiers: {
66
+ type: PropType<string | string[]>;
67
+ default: undefined;
68
+ };
63
69
  id: (StringConstructor | NumberConstructor)[];
64
70
  type: {
65
71
  type: PropType<"button" | "submit" | "reset">;
@@ -70,40 +76,56 @@ export declare const VvButtonProps: {
70
76
  type: StringConstructor;
71
77
  default: undefined;
72
78
  };
79
+ defaultTag: {
80
+ type: StringConstructor;
81
+ default: import("../../constants").ActionTag;
82
+ };
73
83
  to: {
74
84
  type: (ObjectConstructor | StringConstructor)[];
75
85
  };
76
86
  href: StringConstructor;
77
- target: {
78
- type: PropType<"_blank" | "_self" | "_parent" | "_top">;
79
- validator: (value: import("../../constants").AnchorTarget) => boolean;
80
- };
87
+ target: StringConstructor;
81
88
  rel: {
82
89
  type: StringConstructor;
83
90
  default: string;
84
91
  };
85
- current: BooleanConstructor;
86
- active: BooleanConstructor;
87
- pressed: BooleanConstructor;
88
- label: (StringConstructor | NumberConstructor)[];
89
- disabled: BooleanConstructor;
92
+ current: {
93
+ type: BooleanConstructor;
94
+ default: boolean;
95
+ };
96
+ active: {
97
+ type: BooleanConstructor;
98
+ default: boolean;
99
+ };
100
+ pressed: {
101
+ type: BooleanConstructor;
102
+ default: boolean;
103
+ };
104
+ label: {
105
+ type: (StringConstructor | NumberConstructor)[];
106
+ default: undefined;
107
+ };
108
+ disabled: {
109
+ type: BooleanConstructor;
110
+ default: boolean;
111
+ };
90
112
  };
91
113
  export type VvButtonPropsTypes = ExtractPropTypes<typeof VvButtonProps>;
92
114
  /**
93
115
  * Merges local and group props
94
116
  */
95
117
  export declare function useGroupProps(props: VvButtonPropsTypes, emit: (event: (typeof VvButtonEvents)[number], value: unknown) => void): {
96
- group: Ref<ButtonGroupState> | undefined;
118
+ group: ButtonGroupState | undefined;
97
119
  isInGroup: globalThis.ComputedRef<boolean>;
98
- modelValue: Ref<string | number | boolean | (string | number | boolean)[] | undefined>;
99
- toggle: Ref<boolean>;
100
- unselectable: Ref<boolean>;
120
+ modelValue: globalThis.Ref<string | number | boolean | (string | number | boolean)[] | undefined>;
121
+ toggle: globalThis.Ref<boolean>;
122
+ unselectable: globalThis.Ref<boolean>;
101
123
  multiple: globalThis.ComputedRef<boolean>;
102
124
  modifiers: globalThis.ComputedRef<string[]>;
103
125
  disabled: globalThis.ComputedRef<boolean>;
104
- id: Ref<string | number | undefined> | undefined;
105
- pressed: Ref<boolean>;
106
- iconPosition: Ref<"left" | "right" | "top" | "bottom">;
107
- icon: Ref<string | Record<string, any> | undefined> | undefined;
108
- label: Ref<string | number | undefined> | undefined;
126
+ id: globalThis.Ref<string | number | undefined> | undefined;
127
+ pressed: globalThis.Ref<boolean>;
128
+ iconPosition: globalThis.Ref<"top" | "right" | "bottom" | "left">;
129
+ icon: globalThis.Ref<string | import("../VvIcon").VvIconProps | undefined> | undefined;
130
+ label: globalThis.Ref<string | number | undefined> | undefined;
109
131
  };
@@ -1,4 +1,9 @@
1
- import { isRef, provide, computed, unref, defineComponent, toRefs, watchEffect, openBlock, createElementBlock, normalizeClass, renderSlot } from "vue";
1
+ import { provide, computed, unref, defineComponent, toRefs, watchEffect, openBlock, createElementBlock, normalizeClass, renderSlot, createTextVNode, toDisplayString, createCommentVNode } from "vue";
2
+ var StorageType = /* @__PURE__ */ ((StorageType2) => {
3
+ StorageType2["local"] = "local";
4
+ StorageType2["session"] = "session";
5
+ return StorageType2;
6
+ })(StorageType || {});
2
7
  var Strategy = /* @__PURE__ */ ((Strategy2) => {
3
8
  Strategy2["absolute"] = "absolute";
4
9
  Strategy2["fixed"] = "fixed";
@@ -33,14 +38,16 @@ var ButtonType = /* @__PURE__ */ ((ButtonType2) => {
33
38
  ButtonType2["reset"] = "reset";
34
39
  return ButtonType2;
35
40
  })(ButtonType || {});
36
- var AnchorTarget = /* @__PURE__ */ ((AnchorTarget2) => {
37
- AnchorTarget2["_blank"] = "_blank";
38
- AnchorTarget2["_self"] = "_self";
39
- AnchorTarget2["_parent"] = "_parent";
40
- AnchorTarget2["_top"] = "_top";
41
- return AnchorTarget2;
42
- })(AnchorTarget || {});
43
- const INJECTION_KEY_BUTTON_GROUP = Symbol.for("buttonGroup");
41
+ var ActionTag = /* @__PURE__ */ ((ActionTag2) => {
42
+ ActionTag2["nuxtLink"] = "nuxt-link";
43
+ ActionTag2["routerLink"] = "router-link";
44
+ ActionTag2["a"] = "a";
45
+ ActionTag2["button"] = "button";
46
+ return ActionTag2;
47
+ })(ActionTag || {});
48
+ const INJECTION_KEY_BUTTON_GROUP = Symbol.for(
49
+ "buttonGroup"
50
+ );
44
51
  const LinkProps = {
45
52
  /**
46
53
  * The router-link/nuxt-link property, if it is defined the button is rendered as a ruouter-link or nuxt-link.
@@ -56,10 +63,7 @@ const LinkProps = {
56
63
  /**
57
64
  * Anchor target
58
65
  */
59
- target: {
60
- type: String,
61
- validator: (value) => Object.values(AnchorTarget).includes(value)
62
- },
66
+ target: String,
63
67
  /**
64
68
  * Anchor rel
65
69
  */
@@ -72,44 +76,65 @@ const DisabledProps = {
72
76
  /**
73
77
  * Whether the form control is disabled
74
78
  */
75
- disabled: Boolean
79
+ disabled: {
80
+ type: Boolean,
81
+ default: false
82
+ }
76
83
  };
77
84
  const ActiveProps = {
78
85
  /**
79
86
  * Whether the item is active
80
87
  */
81
- active: Boolean
88
+ active: {
89
+ type: Boolean,
90
+ default: false
91
+ }
82
92
  };
83
93
  const CurrentProps = {
84
94
  /**
85
95
  * Whether the item is current
86
96
  */
87
- current: Boolean
97
+ current: {
98
+ type: Boolean,
99
+ default: false
100
+ }
88
101
  };
89
102
  const PressedProps = {
90
103
  /**
91
104
  * Whether the item is pressed
92
105
  */
93
- pressed: Boolean
106
+ pressed: {
107
+ type: Boolean,
108
+ default: false
109
+ }
94
110
  };
95
111
  const LabelProps = {
96
112
  /**
97
113
  * The item label
98
114
  */
99
- label: [String, Number]
115
+ label: {
116
+ type: [String, Number],
117
+ default: void 0
118
+ }
100
119
  };
101
120
  const ModifiersProps = {
102
121
  /**
103
122
  * Component BEM modifiers
104
123
  */
105
- modifiers: [String, Array]
124
+ modifiers: {
125
+ type: [String, Array],
126
+ default: void 0
127
+ }
106
128
  };
107
129
  ({
108
130
  /**
109
131
  * VvIcon name or props
110
132
  * @see VVIcon
111
133
  */
112
- icon: { type: [String, Object] },
134
+ icon: {
135
+ type: [String, Object],
136
+ default: void 0
137
+ },
113
138
  /**
114
139
  * VvIcon position
115
140
  */
@@ -146,7 +171,8 @@ const UnselectableProps = {
146
171
  * Dropdown show / hide transition name
147
172
  */
148
173
  transitionName: {
149
- type: String
174
+ type: String,
175
+ default: void 0
150
176
  },
151
177
  /**
152
178
  * Offset of the dropdown from the trigger
@@ -214,7 +240,8 @@ const UnselectableProps = {
214
240
  * Set dropdown width to the same as the trigger
215
241
  */
216
242
  triggerWidth: {
217
- type: Boolean
243
+ type: Boolean,
244
+ default: false
218
245
  }
219
246
  });
220
247
  ({
@@ -238,12 +265,28 @@ const UnselectableProps = {
238
265
  ariaLabel: {
239
266
  type: String,
240
267
  default: void 0
268
+ },
269
+ /**
270
+ * Default tag for the action
271
+ */
272
+ defaultTag: {
273
+ type: String,
274
+ default: ActionTag.button
241
275
  }
242
276
  });
277
+ ({
278
+ storageType: {
279
+ type: String,
280
+ default: StorageType.local,
281
+ validator: (value) => Object.values(StorageType).includes(value)
282
+ },
283
+ storageKey: String
284
+ });
243
285
  const VvButtonGroupProps = {
244
286
  ...ModifiersProps,
245
287
  ...DisabledProps,
246
288
  ...UnselectableProps,
289
+ legendLabel: { type: String },
247
290
  /**
248
291
  * String or String[] of css classes (modifiers) that will be provided to each button'
249
292
  */
@@ -259,15 +302,8 @@ const VvButtonGroupProps = {
259
302
  }
260
303
  };
261
304
  const VvButtonGroupEvents = ["update:modelValue"];
262
- function useProvideGroupState(groupState) {
263
- if (Object.keys(groupState).some(
264
- (k) => k !== "key" && !isRef(groupState[k])
265
- ))
266
- throw Error("One or more groupState props aren't ref.");
267
- provide(
268
- groupState.key,
269
- computed(() => groupState)
270
- );
305
+ function useProvideGroupState(key, groupState) {
306
+ provide(key, groupState);
271
307
  }
272
308
  function useModifiers(prefix, modifiers, others) {
273
309
  return computed(() => {
@@ -292,6 +328,10 @@ function useModifiers(prefix, modifiers, others) {
292
328
  return toReturn;
293
329
  });
294
330
  }
331
+ const _hoisted_1 = {
332
+ key: 0,
333
+ class: "vv-button-group__legend"
334
+ };
295
335
  const __default__ = {
296
336
  name: "VvButtonGroup"
297
337
  };
@@ -299,8 +339,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
299
339
  ...__default__,
300
340
  props: VvButtonGroupProps,
301
341
  emits: VvButtonGroupEvents,
302
- setup(__props, { emit }) {
342
+ setup(__props, { emit: __emit }) {
303
343
  const props = __props;
344
+ const emit = __emit;
304
345
  const {
305
346
  disabled,
306
347
  toggle,
@@ -330,8 +371,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
330
371
  return emit("update:modelValue", newValue);
331
372
  }
332
373
  });
333
- useProvideGroupState({
334
- key: INJECTION_KEY_BUTTON_GROUP,
374
+ useProvideGroupState(INJECTION_KEY_BUTTON_GROUP, {
335
375
  modelValue,
336
376
  disabled,
337
377
  toggle,
@@ -341,12 +381,27 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
341
381
  });
342
382
  const bemCssClasses = useModifiers("vv-button-group", modifiers);
343
383
  return (_ctx, _cache) => {
344
- return openBlock(), createElementBlock("div", {
345
- class: normalizeClass(unref(bemCssClasses)),
346
- role: "group"
347
- }, [
348
- renderSlot(_ctx.$slots, "default")
349
- ], 2);
384
+ return openBlock(), createElementBlock(
385
+ "fieldset",
386
+ {
387
+ class: normalizeClass(unref(bemCssClasses)),
388
+ role: "group"
389
+ },
390
+ [
391
+ _ctx.$slots.legend || _ctx.legendLabel ? (openBlock(), createElementBlock("legend", _hoisted_1, [
392
+ renderSlot(_ctx.$slots, "legend", {}, () => [
393
+ createTextVNode(
394
+ toDisplayString(_ctx.legendLabel),
395
+ 1
396
+ /* TEXT */
397
+ )
398
+ ])
399
+ ])) : createCommentVNode("v-if", true),
400
+ renderSlot(_ctx.$slots, "default")
401
+ ],
402
+ 2
403
+ /* CLASS */
404
+ );
350
405
  };
351
406
  }
352
407
  });