@volverjs/ui-vue 0.0.10-beta.34 → 0.0.10-beta.36

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 (348) hide show
  1. package/README.md +78 -77
  2. package/bin/icons.cjs +1 -1
  3. package/bin/icons.js +5 -5
  4. package/dist/Volver.d.ts +10 -10
  5. package/dist/components/VvAccordion/VvAccordion.es.js +11 -11
  6. package/dist/components/VvAccordion/VvAccordion.umd.js +1 -1
  7. package/dist/components/VvAccordionGroup/VvAccordionGroup.es.js +17 -17
  8. package/dist/components/VvAccordionGroup/VvAccordionGroup.umd.js +1 -1
  9. package/dist/components/VvAction/VvAction.es.js +6 -6
  10. package/dist/components/VvAction/VvAction.umd.js +1 -1
  11. package/dist/components/VvAlert/VvAlert.es.js +23 -21
  12. package/dist/components/VvAlert/VvAlert.umd.js +1 -1
  13. package/dist/components/VvAlert/index.d.ts +2 -2
  14. package/dist/components/VvAlertGroup/VvAlertGroup.es.js +351 -349
  15. package/dist/components/VvAlertGroup/VvAlertGroup.umd.js +1 -1
  16. package/dist/components/VvAlertGroup/VvAlertGroup.vue.d.ts +3 -3
  17. package/dist/components/VvAlertGroup/index.d.ts +1 -1
  18. package/dist/components/VvAvatar/VvAvatar.es.js +4 -1
  19. package/dist/components/VvAvatar/VvAvatar.umd.js +1 -1
  20. package/dist/components/VvAvatarGroup/VvAvatarGroup.es.js +11 -3
  21. package/dist/components/VvAvatarGroup/VvAvatarGroup.umd.js +1 -1
  22. package/dist/components/VvBreadcrumb/VvBreadcrumb.es.js +10 -10
  23. package/dist/components/VvBreadcrumb/VvBreadcrumb.umd.js +1 -1
  24. package/dist/components/VvButton/VvButton.es.js +31 -25
  25. package/dist/components/VvButton/VvButton.umd.js +1 -1
  26. package/dist/components/VvButtonGroup/VvButtonGroup.es.js +1 -1
  27. package/dist/components/VvButtonGroup/VvButtonGroup.umd.js +1 -1
  28. package/dist/components/VvCheckbox/VvCheckbox.es.js +208 -202
  29. package/dist/components/VvCheckbox/VvCheckbox.umd.js +1 -1
  30. package/dist/components/VvCheckbox/VvCheckbox.vue.d.ts +3 -3
  31. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.es.js +21 -15
  32. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.umd.js +1 -1
  33. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.vue.d.ts +2 -2
  34. package/dist/components/VvCombobox/VvCombobox.es.js +454 -446
  35. package/dist/components/VvCombobox/VvCombobox.umd.js +1 -1
  36. package/dist/components/VvCombobox/VvCombobox.vue.d.ts +5 -5
  37. package/dist/components/VvCombobox/index.d.ts +5 -10
  38. package/dist/components/VvDialog/VvDialog.es.js +11 -11
  39. package/dist/components/VvDialog/VvDialog.umd.js +1 -1
  40. package/dist/components/VvDropdown/VvDropdown.es.js +29 -25
  41. package/dist/components/VvDropdown/VvDropdown.umd.js +1 -1
  42. package/dist/components/VvDropdown/VvDropdown.vue.d.ts +12 -8
  43. package/dist/components/VvDropdownAction/VvDropdownAction.es.js +11 -14
  44. package/dist/components/VvDropdownAction/VvDropdownAction.umd.js +1 -1
  45. package/dist/components/VvIcon/VvIcon.es.js +1 -1
  46. package/dist/components/VvIcon/VvIcon.umd.js +1 -1
  47. package/dist/components/VvInputFile/VvInputFile.es.js +61 -55
  48. package/dist/components/VvInputFile/VvInputFile.umd.js +1 -1
  49. package/dist/components/VvInputFile/VvInputFile.vue.d.ts +2 -2
  50. package/dist/components/VvInputFile/index.d.ts +6 -6
  51. package/dist/components/VvInputText/VvInputText.es.js +287 -286
  52. package/dist/components/VvInputText/VvInputText.umd.js +1 -1
  53. package/dist/components/VvInputText/VvInputText.vue.d.ts +2 -2
  54. package/dist/components/VvInputText/index.d.ts +7 -2
  55. package/dist/components/VvNav/VvNav.es.js +23 -20
  56. package/dist/components/VvNav/VvNav.umd.js +1 -1
  57. package/dist/components/VvNavItem/VvNavItem.es.js +6 -6
  58. package/dist/components/VvNavItem/VvNavItem.umd.js +1 -1
  59. package/dist/components/VvRadio/VvRadio.es.js +208 -202
  60. package/dist/components/VvRadio/VvRadio.umd.js +1 -1
  61. package/dist/components/VvRadio/VvRadio.vue.d.ts +2 -2
  62. package/dist/components/VvRadioGroup/VvRadioGroup.es.js +21 -15
  63. package/dist/components/VvRadioGroup/VvRadioGroup.umd.js +1 -1
  64. package/dist/components/VvRadioGroup/VvRadioGroup.vue.d.ts +2 -2
  65. package/dist/components/VvSelect/VvSelect.es.js +22 -20
  66. package/dist/components/VvSelect/VvSelect.umd.js +1 -1
  67. package/dist/components/VvSelect/VvSelect.vue.d.ts +2 -2
  68. package/dist/components/VvTab/VvTab.es.js +29 -23
  69. package/dist/components/VvTab/VvTab.umd.js +1 -1
  70. package/dist/components/VvTextarea/VvTextarea.es.js +29 -27
  71. package/dist/components/VvTextarea/VvTextarea.umd.js +1 -1
  72. package/dist/components/VvTextarea/VvTextarea.vue.d.ts +2 -2
  73. package/dist/components/VvTooltip/VvTooltip.es.js +4 -1
  74. package/dist/components/VvTooltip/VvTooltip.umd.js +1 -1
  75. package/dist/components/common/HintSlot.d.ts +3 -4
  76. package/dist/components/index.es.js +893 -876
  77. package/dist/components/index.umd.js +1 -1
  78. package/dist/composables/alert/useAlert.d.ts +2 -2
  79. package/dist/composables/index.es.js +10 -10
  80. package/dist/composables/index.umd.js +1 -1
  81. package/dist/composables/useBlurhash.d.ts +1 -1
  82. package/dist/composables/usePersistence.d.ts +2 -1
  83. package/dist/composables/useUniqueId.d.ts +1 -1
  84. package/dist/directives/index.es.js +5 -2
  85. package/dist/directives/index.umd.js +1 -1
  86. package/dist/directives/v-contextmenu.es.js +1 -1
  87. package/dist/directives/v-contextmenu.umd.js +1 -1
  88. package/dist/directives/v-tooltip.es.js +4 -1
  89. package/dist/directives/v-tooltip.umd.js +1 -1
  90. package/dist/icons.es.js +3 -3
  91. package/dist/icons.umd.js +1 -1
  92. package/dist/index.es.js +2 -2
  93. package/dist/stories/Alert/AlertModifiers.stories.d.ts +1 -1
  94. package/dist/stories/Alert/AlertSlots.stories.d.ts +1 -1
  95. package/dist/stories/AlertGroup/AlertGroupPosition.stories.d.ts +1 -1
  96. package/dist/stories/AlertGroup/AlertGroupSlots.stories.d.ts +1 -1
  97. package/dist/stories/AlertGroup/AlertGroupWithComposable.stories.d.ts +1 -1
  98. package/dist/stories/Badge/Badge.test.d.ts +1 -1
  99. package/dist/stories/Combobox/Combobox.settings.d.ts +1 -1
  100. package/dist/test/options.d.ts +1 -1
  101. package/dist/test/sleep.d.ts +1 -1
  102. package/dist/types/alert.d.ts +1 -1
  103. package/dist/utils/ObjectUtilities.d.ts +7 -7
  104. package/package.json +232 -239
  105. package/src/Volver.ts +243 -243
  106. package/src/assets/icons/detailed.json +1 -1
  107. package/src/assets/icons/normal.json +1 -1
  108. package/src/assets/icons/simple.json +1 -1
  109. package/src/components/VvAccordion/VvAccordion.vue +155 -155
  110. package/src/components/VvAccordion/index.ts +62 -62
  111. package/src/components/VvAccordionGroup/VvAccordionGroup.vue +220 -219
  112. package/src/components/VvAccordionGroup/index.ts +41 -41
  113. package/src/components/VvAction/VvAction.vue +144 -142
  114. package/src/components/VvAlert/VvAlert.vue +72 -70
  115. package/src/components/VvAlert/index.ts +147 -150
  116. package/src/components/VvAlertGroup/VvAlertGroup.vue +56 -55
  117. package/src/components/VvAlertGroup/index.ts +99 -103
  118. package/src/components/VvAvatar/VvAvatar.vue +20 -14
  119. package/src/components/VvAvatar/index.ts +5 -5
  120. package/src/components/VvAvatarGroup/VvAvatarGroup.vue +58 -53
  121. package/src/components/VvAvatarGroup/index.ts +21 -21
  122. package/src/components/VvBadge/VvBadge.vue +15 -14
  123. package/src/components/VvBadge/index.ts +2 -2
  124. package/src/components/VvBreadcrumb/VvBreadcrumb.vue +49 -48
  125. package/src/components/VvBreadcrumb/index.ts +2 -2
  126. package/src/components/VvButton/VvButton.vue +163 -162
  127. package/src/components/VvButton/index.ts +102 -102
  128. package/src/components/VvButtonGroup/VvButtonGroup.vue +72 -72
  129. package/src/components/VvButtonGroup/index.ts +22 -22
  130. package/src/components/VvCard/VvCard.vue +30 -30
  131. package/src/components/VvCard/index.ts +2 -2
  132. package/src/components/VvCheckbox/VvCheckbox.vue +185 -180
  133. package/src/components/VvCheckbox/index.ts +44 -44
  134. package/src/components/VvCheckboxGroup/VvCheckboxGroup.vue +88 -86
  135. package/src/components/VvCombobox/VvCombobox.vue +633 -623
  136. package/src/components/VvCombobox/index.ts +166 -166
  137. package/src/components/VvDialog/VvDialog.vue +131 -129
  138. package/src/components/VvDialog/index.ts +35 -35
  139. package/src/components/VvDropdown/VvDropdown.vue +464 -452
  140. package/src/components/VvDropdown/VvDropdownAction.vue +37 -39
  141. package/src/components/VvDropdown/VvDropdownItem.vue +29 -28
  142. package/src/components/VvDropdown/VvDropdownOptgroup.vue +13 -12
  143. package/src/components/VvDropdown/VvDropdownOption.vue +47 -47
  144. package/src/components/VvDropdown/index.ts +53 -53
  145. package/src/components/VvIcon/README.md +1 -1
  146. package/src/components/VvIcon/VvIcon.vue +133 -133
  147. package/src/components/VvIcon/index.ts +77 -77
  148. package/src/components/VvInputFile/VvInputFile.vue +367 -363
  149. package/src/components/VvInputFile/index.ts +125 -125
  150. package/src/components/VvInputText/VvInputClearAction.ts +50 -50
  151. package/src/components/VvInputText/VvInputPasswordAction.ts +65 -65
  152. package/src/components/VvInputText/VvInputStepAction.ts +43 -43
  153. package/src/components/VvInputText/VvInputText.vue +636 -637
  154. package/src/components/VvInputText/VvInputTextActions.ts +86 -86
  155. package/src/components/VvInputText/index.ts +198 -198
  156. package/src/components/VvNav/VvNav.vue +40 -33
  157. package/src/components/VvNav/VvNavItem.vue +12 -12
  158. package/src/components/VvNav/VvNavSeparator.vue +6 -6
  159. package/src/components/VvNav/index.ts +2 -2
  160. package/src/components/VvProgress/VvProgress.vue +27 -26
  161. package/src/components/VvProgress/index.ts +28 -28
  162. package/src/components/VvRadio/VvRadio.vue +115 -112
  163. package/src/components/VvRadio/index.ts +27 -27
  164. package/src/components/VvRadioGroup/VvRadioGroup.vue +91 -89
  165. package/src/components/VvSelect/VvSelect.vue +241 -238
  166. package/src/components/VvSelect/index.ts +62 -62
  167. package/src/components/VvTab/VvTab.vue +79 -73
  168. package/src/components/VvTab/index.ts +12 -12
  169. package/src/components/VvTextarea/VvTextarea.vue +218 -216
  170. package/src/components/VvTextarea/index.ts +35 -35
  171. package/src/components/VvTooltip/VvTooltip.vue +22 -16
  172. package/src/components/VvTooltip/index.ts +12 -12
  173. package/src/components/common/HintSlot.ts +149 -150
  174. package/src/composables/alert/useAlert.ts +74 -74
  175. package/src/composables/alert/useInjectAlert.ts +1 -1
  176. package/src/composables/alert/useProvideAlert.ts +10 -10
  177. package/src/composables/dropdown/useInjectDropdown.ts +6 -6
  178. package/src/composables/dropdown/useProvideDropdown.ts +62 -62
  179. package/src/composables/group/useInjectedGroupState.ts +41 -41
  180. package/src/composables/group/useProvideGroupState.ts +1 -2
  181. package/src/composables/useBlurhash.ts +52 -60
  182. package/src/composables/useComponentFocus.ts +9 -9
  183. package/src/composables/useComponentIcon.ts +35 -35
  184. package/src/composables/useDebouncedInput.ts +25 -25
  185. package/src/composables/useDefaults.ts +77 -76
  186. package/src/composables/useModifiers.ts +29 -29
  187. package/src/composables/useOptions.ts +45 -43
  188. package/src/composables/usePersistence.ts +70 -72
  189. package/src/composables/useTextCount.ts +44 -44
  190. package/src/composables/useUniqueId.ts +3 -2
  191. package/src/composables/useVolver.ts +1 -1
  192. package/src/constants.ts +70 -70
  193. package/src/directives/v-contextmenu.ts +34 -34
  194. package/src/directives/v-tooltip.ts +17 -17
  195. package/src/index.ts +3 -3
  196. package/src/props/index.ts +453 -453
  197. package/src/resolvers/unplugin.ts +138 -138
  198. package/src/shims.d.ts +4 -5
  199. package/src/stories/Accordion/Accordion.settings.ts +49 -49
  200. package/src/stories/Accordion/Accordion.stories.ts +21 -21
  201. package/src/stories/Accordion/Accordion.test.ts +56 -54
  202. package/src/stories/Accordion/AccordionSlots.stories.ts +13 -13
  203. package/src/stories/AccordionGroup/AccordionGroup.settings.ts +69 -67
  204. package/src/stories/AccordionGroup/AccordionGroup.stories.ts +37 -37
  205. package/src/stories/AccordionGroup/AccordionGroup.test.ts +49 -47
  206. package/src/stories/AccordionGroup/AccordionGroupSlots.stories.ts +34 -34
  207. package/src/stories/Alert/Alert.settings.ts +115 -115
  208. package/src/stories/Alert/Alert.stories.ts +30 -30
  209. package/src/stories/Alert/Alert.test.ts +78 -78
  210. package/src/stories/Alert/AlertModifiers.stories.ts +45 -45
  211. package/src/stories/Alert/AlertSlots.stories.ts +35 -35
  212. package/src/stories/AlertGroup/AlertGroup.settings.ts +104 -104
  213. package/src/stories/AlertGroup/AlertGroup.stories.ts +25 -25
  214. package/src/stories/AlertGroup/AlertGroup.test.ts +67 -67
  215. package/src/stories/AlertGroup/AlertGroupPosition.stories.ts +68 -68
  216. package/src/stories/AlertGroup/AlertGroupSlots.stories.ts +23 -23
  217. package/src/stories/AlertGroup/AlertGroupWithComposable.stories.ts +57 -57
  218. package/src/stories/Avatar/Avatar.settings.ts +29 -29
  219. package/src/stories/Avatar/Avatar.stories.ts +23 -23
  220. package/src/stories/Avatar/Avatar.test.ts +22 -22
  221. package/src/stories/Avatar/AvatarBadge.stories.ts +15 -15
  222. package/src/stories/Avatar/AvatarModifiers.stories.ts +61 -61
  223. package/src/stories/Avatar/AvatarSlots.stories.ts +18 -18
  224. package/src/stories/AvatarGroup/AvatarGroup.settings.ts +53 -53
  225. package/src/stories/AvatarGroup/AvatarGroup.stories.ts +17 -17
  226. package/src/stories/AvatarGroup/AvatarGroup.test.ts +24 -24
  227. package/src/stories/AvatarGroup/AvatarGroupModifiers.stories.ts +15 -15
  228. package/src/stories/AvatarGroup/AvatarGroupSlotDefault.stories.ts +17 -17
  229. package/src/stories/Badge/Badge.settings.ts +20 -20
  230. package/src/stories/Badge/Badge.stories.ts +23 -23
  231. package/src/stories/Badge/Badge.test.ts +8 -8
  232. package/src/stories/Badge/BadgeSlots.stories.ts +10 -10
  233. package/src/stories/Blurhash/BlurhashComposable.stories.ts +77 -76
  234. package/src/stories/Breadcrumb/Breadcrumb.settings.ts +34 -34
  235. package/src/stories/Breadcrumb/Breadcrumb.stories.ts +22 -22
  236. package/src/stories/Breadcrumb/Breadcrumb.test.ts +44 -43
  237. package/src/stories/Breadcrumb/BreadcrumbSlots.stories.ts +17 -17
  238. package/src/stories/Button/Button.settings.ts +144 -144
  239. package/src/stories/Button/Button.stories.ts +18 -18
  240. package/src/stories/Button/Button.test.ts +41 -40
  241. package/src/stories/Button/ButtonIcon.stories.ts +42 -42
  242. package/src/stories/Button/ButtonLink.stories.ts +24 -24
  243. package/src/stories/Button/ButtonLoading.stories.ts +22 -22
  244. package/src/stories/Button/ButtonModifiers.stories.ts +91 -91
  245. package/src/stories/Button/ButtonSlots.stories.ts +47 -47
  246. package/src/stories/Button/ButtonState.stories.ts +23 -23
  247. package/src/stories/Button/ButtonToggle.stories.ts +30 -30
  248. package/src/stories/ButtonGroup/ButtonGroup.settings.ts +32 -32
  249. package/src/stories/ButtonGroup/ButtonGroup.stories.ts +19 -19
  250. package/src/stories/ButtonGroup/ButtonGroup.test.ts +23 -22
  251. package/src/stories/ButtonGroup/ButtonGroupModifiers.stories.ts +20 -20
  252. package/src/stories/ButtonGroup/ButtonGroupSlots.stories.ts +18 -18
  253. package/src/stories/ButtonGroup/ButtonGroupToggle.stories.ts +22 -22
  254. package/src/stories/Card/Card.settings.ts +48 -48
  255. package/src/stories/Card/Card.stories.ts +22 -22
  256. package/src/stories/Card/Card.test.ts +14 -14
  257. package/src/stories/Card/CardSlots.stories.ts +42 -42
  258. package/src/stories/Checkbox/Checkbox.settings.ts +35 -35
  259. package/src/stories/Checkbox/Checkbox.stories.ts +57 -57
  260. package/src/stories/Checkbox/Checkbox.test.ts +63 -62
  261. package/src/stories/Checkbox/CheckboxBinary.stories.ts +17 -17
  262. package/src/stories/Checkbox/CheckboxSlots.stories.ts +15 -15
  263. package/src/stories/CheckboxGroup/CheckboxGroup.settings.ts +9 -9
  264. package/src/stories/CheckboxGroup/CheckboxGroup.stories.ts +50 -50
  265. package/src/stories/CheckboxGroup/CheckboxGroup.test.ts +63 -63
  266. package/src/stories/CheckboxGroup/CheckboxGroupOptions.stories.ts +34 -34
  267. package/src/stories/CheckboxGroup/CheckboxGroupSlots.stories.ts +23 -23
  268. package/src/stories/Combobox/Combobox.settings.ts +390 -390
  269. package/src/stories/Combobox/Combobox.stories.ts +107 -107
  270. package/src/stories/Combobox/Combobox.test.ts +89 -87
  271. package/src/stories/Combobox/ComboboxIconPosition.stories.ts +24 -24
  272. package/src/stories/Combobox/ComboboxMultiple.stories.ts +22 -22
  273. package/src/stories/Combobox/ComboboxOptions.stories.ts +84 -84
  274. package/src/stories/Combobox/ComboboxSlots.stories.ts +55 -55
  275. package/src/stories/Dialog/Dialog.settings.ts +39 -39
  276. package/src/stories/Dialog/Dialog.stories.ts +28 -28
  277. package/src/stories/Dialog/Dialog.test.ts +49 -49
  278. package/src/stories/Dialog/DialogSlots.stories.ts +20 -20
  279. package/src/stories/Dropdown/Dropdown.settings.ts +62 -62
  280. package/src/stories/Dropdown/Dropdown.stories.ts +59 -59
  281. package/src/stories/Dropdown/Dropdown.test.ts +9 -9
  282. package/src/stories/Dropdown/DropdownContextmenuDirective.stories.ts +16 -16
  283. package/src/stories/Dropdown/DropdownMultilevel.stories.ts +18 -18
  284. package/src/stories/Dropdown/DropdownSlots.stories.ts +49 -49
  285. package/src/stories/Icon/Icon.settings.ts +64 -64
  286. package/src/stories/Icon/Icon.stories.ts +28 -28
  287. package/src/stories/Icon/IconsCollection.stories.ts +22 -22
  288. package/src/stories/InputFile/InputFile.settings.ts +29 -29
  289. package/src/stories/InputFile/InputFile.stories.ts +54 -54
  290. package/src/stories/InputFile/InputFileDropArea.stories.ts +34 -34
  291. package/src/stories/InputFile/InputFileIconPosition.stories.ts +24 -24
  292. package/src/stories/InputFile/InputFileSlots.stories.ts +17 -17
  293. package/src/stories/InputText/InputText.settings.ts +245 -246
  294. package/src/stories/InputText/InputText.stories.ts +67 -67
  295. package/src/stories/InputText/InputText.test.ts +118 -117
  296. package/src/stories/InputText/InputTextIconPosition.stories.ts +24 -24
  297. package/src/stories/InputText/InputTextLength.stories.ts +33 -33
  298. package/src/stories/InputText/InputTextMask.stories.ts +91 -91
  299. package/src/stories/InputText/InputTextMinMax.stories.ts +29 -29
  300. package/src/stories/InputText/InputTextSlots.stories.ts +20 -20
  301. package/src/stories/InputText/InputTextType.stories.ts +70 -70
  302. package/src/stories/Nav/Nav.settings.ts +25 -25
  303. package/src/stories/Nav/Nav.stories.ts +17 -17
  304. package/src/stories/Nav/Nav.test.ts +10 -10
  305. package/src/stories/Nav/NavModifiers.stories.ts +25 -25
  306. package/src/stories/Progress/Progress.settings.ts +23 -23
  307. package/src/stories/Progress/Progress.stories.ts +23 -23
  308. package/src/stories/Progress/Progress.test.ts +4 -4
  309. package/src/stories/Radio/Radio.settings.ts +9 -9
  310. package/src/stories/Radio/Radio.stories.ts +47 -47
  311. package/src/stories/Radio/Radio.test.ts +54 -53
  312. package/src/stories/Radio/RadioSlots.stories.ts +15 -15
  313. package/src/stories/RadioGroup/RadioGroup.settings.ts +9 -9
  314. package/src/stories/RadioGroup/RadioGroup.stories.ts +50 -50
  315. package/src/stories/RadioGroup/RadioGroup.test.ts +63 -63
  316. package/src/stories/RadioGroup/RadioGroupOptions.stories.ts +34 -34
  317. package/src/stories/RadioGroup/RadioGroupSlots.stories.ts +23 -23
  318. package/src/stories/Select/Select.settings.ts +70 -70
  319. package/src/stories/Select/Select.stories.ts +66 -66
  320. package/src/stories/Select/Select.test.ts +65 -64
  321. package/src/stories/Select/SelectIconPosition.stories.ts +24 -24
  322. package/src/stories/Select/SelectOptions.stories.ts +54 -54
  323. package/src/stories/Select/SelectSlots.stories.ts +20 -20
  324. package/src/stories/Tab/Tab.settings.ts +32 -32
  325. package/src/stories/Tab/Tab.stories.ts +17 -17
  326. package/src/stories/Tab/Tab.test.ts +17 -17
  327. package/src/stories/Textarea/Textarea.settings.ts +78 -79
  328. package/src/stories/Textarea/Textarea.stories.ts +63 -63
  329. package/src/stories/Textarea/Textarea.test.ts +70 -69
  330. package/src/stories/Textarea/TextareaLength.stories.ts +33 -33
  331. package/src/stories/Textarea/TextareaSlots.stories.ts +20 -20
  332. package/src/stories/Textarea/TextareatIconPosition.stories.ts +24 -24
  333. package/src/stories/Tooltip/Tooltip.settings.ts +16 -16
  334. package/src/stories/Tooltip/Tooltip.stories.ts +18 -18
  335. package/src/stories/Tooltip/Tooltip.test.ts +53 -52
  336. package/src/stories/Tooltip/TooltipDirective.stories.ts +37 -37
  337. package/src/stories/argTypes.ts +484 -485
  338. package/src/test/expect.ts +71 -74
  339. package/src/test/options.ts +17 -16
  340. package/src/test/sleep.ts +3 -2
  341. package/src/test/types.d.ts +11 -11
  342. package/src/types/alert.ts +18 -18
  343. package/src/types/blurhash.ts +18 -18
  344. package/src/types/generic.ts +1 -2
  345. package/src/types/group.ts +21 -21
  346. package/src/types/input-file.ts +17 -17
  347. package/src/types/nav.ts +13 -13
  348. package/src/utils/ObjectUtilities.ts +192 -177
@@ -317,11 +317,11 @@ function useInjectedDropdownItem() {
317
317
  function useInjectedDropdownAction() {
318
318
  return inject(INJECTION_KEY_DROPDOWN_ACTION, {});
319
319
  }
320
- const __default__$2 = {
320
+ const __default__$1 = {
321
321
  name: "VvAction"
322
322
  };
323
323
  const _sfc_main$2 = /* @__PURE__ */ defineComponent({
324
- ...__default__$2,
324
+ ...__default__$1,
325
325
  props: VvActionProps,
326
326
  emits: VvActionEvents,
327
327
  setup(__props, { expose: __expose, emit: __emit }) {
@@ -393,7 +393,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
393
393
  return toReturn;
394
394
  }
395
395
  });
396
- const onClick = (e) => {
396
+ function onClick(e) {
397
397
  var _a;
398
398
  if (props.disabled) {
399
399
  e.preventDefault();
@@ -404,23 +404,23 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
404
404
  return;
405
405
  }
406
406
  dropdownEventBus == null ? void 0 : dropdownEventBus.emit("click", e);
407
- };
408
- const onMouseover = (e) => {
407
+ }
408
+ function onMouseover(e) {
409
409
  var _a;
410
410
  if ((_a = instance == null ? void 0 : instance.vnode.props) == null ? void 0 : _a.onMouseover) {
411
411
  emit("mouseover", e);
412
412
  return;
413
413
  }
414
414
  dropdownEventBus == null ? void 0 : dropdownEventBus.emit("mouseover", e);
415
- };
416
- const onMouseleave = (e) => {
415
+ }
416
+ function onMouseleave(e) {
417
417
  var _a;
418
418
  if ((_a = instance == null ? void 0 : instance.vnode.props) == null ? void 0 : _a.onMouseleave) {
419
419
  emit("mouseleave", e);
420
420
  return;
421
421
  }
422
422
  dropdownEventBus == null ? void 0 : dropdownEventBus.emit("mouseleave", e);
423
- };
423
+ }
424
424
  return (_ctx, _cache) => {
425
425
  return openBlock(), createBlock(resolveDynamicComponent(unref(hasTag)), mergeProps(unref(hasProps), {
426
426
  ref_key: "element",
@@ -491,11 +491,11 @@ function useProvideDropdownAction({
491
491
  expanded
492
492
  });
493
493
  }
494
- const __default__$1 = {
494
+ const __default__ = {
495
495
  name: "VvDropdownItem"
496
496
  };
497
497
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
498
- ...__default__$1,
498
+ ...__default__,
499
499
  props: VvDropdownItemProps,
500
500
  setup(__props) {
501
501
  const props = __props;
@@ -550,11 +550,8 @@ function useModifiers(prefix, modifiers, others) {
550
550
  return toReturn;
551
551
  });
552
552
  }
553
- const __default__ = {
554
- name: "VvDropdownAction"
555
- };
556
553
  const _sfc_main = /* @__PURE__ */ defineComponent({
557
- ...__default__,
554
+ __name: "VvDropdownAction",
558
555
  props: {
559
556
  ...ActionProps,
560
557
  ...ModifiersProps
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("vue"),require("mitt"),require("@vueuse/core")):"function"==typeof define&&define.amd?define(["vue","mitt","@vueuse/core"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).VvDropdownAction=t(e.vue,null,e.core)}(this,(function(e,t,o){"use strict";var r=(e=>(e.local="local",e.session="session",e))(r||{}),n=(e=>(e.absolute="absolute",e.fixed="fixed",e))(n||{}),l=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(l||{}),a=(e=>(e.topStart="top-start",e.topEnd="top-end",e.bottomStart="bottom-start",e.bottomEnd="bottom-end",e.leftStart="left-start",e.leftEnd="left-end",e.rightStart="right-start",e.rightEnd="right-end",e))(a||{}),u=(e=>(e.before="before",e.after="after",e))(u||{}),i=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(i||{}),s=(e=>(e.nuxtLink="nuxt-link",e.routerLink="router-link",e.a="a",e.button="button",e))(s||{}),d=(e=>(e.button="button",e.link="link",e.menuitem="menuitem",e))(d||{}),c=(e=>(e.listbox="listbox",e.menu="menu",e))(c||{});const f=Symbol.for("volver"),p=Symbol.for("dropdownTrigger"),v=Symbol.for("dropdownItem"),m=Symbol.for("dropdownAction"),b={to:{type:[String,Object]},href:String,target:String,rel:{type:String,default:"noopener noreferrer"}},g={disabled:{type:Boolean,default:!1}},y={active:{type:Boolean,default:!1}},h={current:{type:Boolean,default:!1}},k={pressed:{type:Boolean,default:!1}},x={label:{type:[String,Number],default:void 0}},S={modifiers:{type:[String,Array],default:void 0}};u.before;l.bottom,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean;const B={...g,...x,...k,...y,...h,...b,type:{type:String,default:i.button,validator:e=>Object.values(i).includes(e)},ariaLabel:{type:String,default:void 0},defaultTag:{type:String,default:s.button}};r.local;const w=B;const C=e.defineComponent({name:"VvAction",props:w,emits:["click","mouseover","mouseleave"],setup(t,{expose:o,emit:r}){const n=t,l=r,a=e.getCurrentInstance(),u=e.inject(f),i=e.ref(null);o({$el:i});const{reference:d,bus:c,aria:v,expanded:b}=e.inject(p,{});e.watch((()=>i.value),(e=>{d&&(d.value=e)}));const g=e.computed((()=>n.pressed||(null==b?void 0:b.value))),{role:y}=e.inject(m,{}),h=e.computed((()=>{switch(!0){case n.disabled:return s.button;case void 0!==n.to:return(null==u?void 0:u.nuxt)?s.nuxtLink:s.routerLink;case void 0!==n.href:return s.a;default:return n.defaultTag}})),k=e.computed((()=>{const e={...null==v?void 0:v.value,ariaPressed:!!g.value||void 0,ariaLabel:n.ariaLabel,role:null==y?void 0:y.value};switch(h.value){case s.a:return{...e,href:n.href,target:n.target,rel:n.rel};case s.routerLink:case s.nuxtLink:return{...e,to:n.to,target:n.target};case s.button:return{...e,type:n.type,disabled:n.disabled};default:return e}})),x=e=>{var t;n.disabled?e.preventDefault():(null==(t=null==a?void 0:a.vnode.props)?void 0:t.onClick)?l("click",e):null==c||c.emit("click",e)},S=e=>{var t;(null==(t=null==a?void 0:a.vnode.props)?void 0:t.onMouseover)?l("mouseover",e):null==c||c.emit("mouseover",e)},B=e=>{var t;(null==(t=null==a?void 0:a.vnode.props)?void 0:t.onMouseleave)?l("mouseleave",e):null==c||c.emit("mouseleave",e)};return(t,o)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(h)),e.mergeProps(e.unref(k),{ref_key:"element",ref:i,class:{active:t.active,pressed:e.unref(g),disabled:t.disabled,current:t.current},onClickPassive:x,onMouseoverPassive:S,onMouseleavePassive:B}),{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default",{},(()=>[e.createTextVNode(e.toDisplayString(t.label),1)]))])),_:3},16,["class"]))}});Boolean,c.menu;const L={focusOnHover:{type:Boolean,default:!1}};const j=e.defineComponent({name:"VvDropdownItem",props:L,setup(t){const r=t,{role:n,expanded:l}=e.inject(v,{}),a=e.ref(null);!function({expanded:t}){e.provide(m,{role:e.ref(d.menuitem),expanded:t})}({expanded:l});const u=o.useElementHover(a),{focused:i}=o.useFocus(a),{focused:s}=o.useFocusWithin(a);return e.watch(u,(e=>{e&&r.focusOnHover&&(i.value=!0)})),(t,o)=>(e.openBlock(),e.createElementBlock("div",e.mergeProps({role:e.unref(n)},{ref_key:"element",ref:a,class:["vv-dropdown__item",{"focus-visible":e.unref(i)||e.unref(s)}]}),[e.renderSlot(t.$slots,"default")],16))}});return e.defineComponent({name:"VvDropdownAction",props:{...B,...S},setup(t){const o=t,{modifiers:r}=e.toRefs(o),n=function(t,o,r){return e.computed((()=>{const n={[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&&(n[`${t}--${e}`]=!0)})),r&&Object.keys(r.value).forEach((o=>{n[`${t}--${o}`]=e.unref(r.value[o])})),n}))}("vv-dropdown-action",r);return(t,o)=>(e.openBlock(),e.createBlock(j,null,{default:e.withCtx((()=>[e.createVNode(C,e.mergeProps({disabled:t.disabled,pressed:t.pressed,active:t.active,type:t.type,to:t.to,href:t.href,target:t.target,rel:t.rel},{class:e.unref(n)}),{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default",{},(()=>[e.createTextVNode(e.toDisplayString(t.label),1)]))])),_:3},16,["class"])])),_:3}))}})}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("vue"),require("mitt"),require("@vueuse/core")):"function"==typeof define&&define.amd?define(["vue","mitt","@vueuse/core"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).VvDropdownAction=t(e.vue,null,e.core)}(this,(function(e,t,o){"use strict";var n=(e=>(e.local="local",e.session="session",e))(n||{}),r=(e=>(e.absolute="absolute",e.fixed="fixed",e))(r||{}),l=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(l||{}),a=(e=>(e.topStart="top-start",e.topEnd="top-end",e.bottomStart="bottom-start",e.bottomEnd="bottom-end",e.leftStart="left-start",e.leftEnd="left-end",e.rightStart="right-start",e.rightEnd="right-end",e))(a||{}),u=(e=>(e.before="before",e.after="after",e))(u||{}),i=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(i||{}),s=(e=>(e.nuxtLink="nuxt-link",e.routerLink="router-link",e.a="a",e.button="button",e))(s||{}),d=(e=>(e.button="button",e.link="link",e.menuitem="menuitem",e))(d||{}),c=(e=>(e.listbox="listbox",e.menu="menu",e))(c||{});const f=Symbol.for("volver"),p=Symbol.for("dropdownTrigger"),v=Symbol.for("dropdownItem"),m=Symbol.for("dropdownAction"),b={to:{type:[String,Object]},href:String,target:String,rel:{type:String,default:"noopener noreferrer"}},g={disabled:{type:Boolean,default:!1}},y={active:{type:Boolean,default:!1}},h={current:{type:Boolean,default:!1}},k={pressed:{type:Boolean,default:!1}},x={label:{type:[String,Number],default:void 0}},S={modifiers:{type:[String,Array],default:void 0}};u.before;l.bottom,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean;const B={...g,...x,...k,...y,...h,...b,type:{type:String,default:i.button,validator:e=>Object.values(i).includes(e)},ariaLabel:{type:String,default:void 0},defaultTag:{type:String,default:s.button}};n.local;const w=B;const C=e.defineComponent({name:"VvAction",props:w,emits:["click","mouseover","mouseleave"],setup(t,{expose:o,emit:n}){const r=t,l=n,a=e.getCurrentInstance(),u=e.inject(f),i=e.ref(null);o({$el:i});const{reference:d,bus:c,aria:v,expanded:b}=e.inject(p,{});e.watch((()=>i.value),(e=>{d&&(d.value=e)}));const g=e.computed((()=>r.pressed||(null==b?void 0:b.value))),{role:y}=e.inject(m,{}),h=e.computed((()=>{switch(!0){case r.disabled:return s.button;case void 0!==r.to:return(null==u?void 0:u.nuxt)?s.nuxtLink:s.routerLink;case void 0!==r.href:return s.a;default:return r.defaultTag}})),k=e.computed((()=>{const e={...null==v?void 0:v.value,ariaPressed:!!g.value||void 0,ariaLabel:r.ariaLabel,role:null==y?void 0:y.value};switch(h.value){case s.a:return{...e,href:r.href,target:r.target,rel:r.rel};case s.routerLink:case s.nuxtLink:return{...e,to:r.to,target:r.target};case s.button:return{...e,type:r.type,disabled:r.disabled};default:return e}}));function x(e){var t;r.disabled?e.preventDefault():(null==(t=null==a?void 0:a.vnode.props)?void 0:t.onClick)?l("click",e):null==c||c.emit("click",e)}function S(e){var t;(null==(t=null==a?void 0:a.vnode.props)?void 0:t.onMouseover)?l("mouseover",e):null==c||c.emit("mouseover",e)}function B(e){var t;(null==(t=null==a?void 0:a.vnode.props)?void 0:t.onMouseleave)?l("mouseleave",e):null==c||c.emit("mouseleave",e)}return(t,o)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(h)),e.mergeProps(e.unref(k),{ref_key:"element",ref:i,class:{active:t.active,pressed:e.unref(g),disabled:t.disabled,current:t.current},onClickPassive:x,onMouseoverPassive:S,onMouseleavePassive:B}),{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default",{},(()=>[e.createTextVNode(e.toDisplayString(t.label),1)]))])),_:3},16,["class"]))}});Boolean,c.menu;const L={focusOnHover:{type:Boolean,default:!1}};const _=e.defineComponent({name:"VvDropdownItem",props:L,setup(t){const n=t,{role:r,expanded:l}=e.inject(v,{}),a=e.ref(null);!function({expanded:t}){e.provide(m,{role:e.ref(d.menuitem),expanded:t})}({expanded:l});const u=o.useElementHover(a),{focused:i}=o.useFocus(a),{focused:s}=o.useFocusWithin(a);return e.watch(u,(e=>{e&&n.focusOnHover&&(i.value=!0)})),(t,o)=>(e.openBlock(),e.createElementBlock("div",e.mergeProps({role:e.unref(r)},{ref_key:"element",ref:a,class:["vv-dropdown__item",{"focus-visible":e.unref(i)||e.unref(s)}]}),[e.renderSlot(t.$slots,"default")],16))}});return e.defineComponent({__name:"VvDropdownAction",props:{...B,...S},setup(t){const o=t,{modifiers:n}=e.toRefs(o),r=function(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}))}("vv-dropdown-action",n);return(t,o)=>(e.openBlock(),e.createBlock(_,null,{default:e.withCtx((()=>[e.createVNode(C,e.mergeProps({disabled:t.disabled,pressed:t.pressed,active:t.active,type:t.type,to:t.to,href:t.href,target:t.target,rel:t.rel},{class:e.unref(r)}),{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default",{},(()=>[e.createTextVNode(e.toDisplayString(t.label),1)]))])),_:3},16,["class"])])),_:3}))}})}));
@@ -58,7 +58,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
58
58
  const props = __props;
59
59
  const hasRotate = computed(() => {
60
60
  if (typeof props.rotate === "string") {
61
- return parseFloat(props.rotate);
61
+ return Number.parseFloat(props.rotate);
62
62
  }
63
63
  return props.rotate;
64
64
  });
@@ -1 +1 @@
1
- !function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o(require("vue"),require("@iconify/vue")):"function"==typeof define&&define.amd?define(["vue","@iconify/vue"],o):(e="undefined"!=typeof globalThis?globalThis:e||self).VvIcon=o(e.vue,e.vue$1)}(this,(function(e,o){"use strict";const n={prefix:"normal"},i=Symbol.for("volver");return 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(n){const r=n,t=e.computed((()=>"string"==typeof r.rotate?parseFloat(r.rotate):r.rotate)),l=e.ref(!0),u=e.inject(i),{modifiers:c}=e.toRefs(r),a=function(o,n,i){return e.computed((()=>{const r={[o]:!0},t="string"==typeof(null==n?void 0:n.value)?n.value.split(" "):null==n?void 0:n.value;return t&&Array.isArray(t)&&t.forEach((e=>{e&&(r[`${o}--${e}`]=!0)})),i&&Object.keys(i.value).forEach((n=>{r[`${o}--${n}`]=e.unref(i.value[n])})),r}))}("vv-icon",c),s=e.computed((()=>r.provider||(null==u?void 0:u.iconsProvider))),f=e.computed((()=>{const e=r.name??"",n=`@${s.value}:${r.prefix}:${e}`;if(o.iconExists(n))return n;const i=null==u?void 0:u.iconsCollections.find((n=>{const i=`@${s.value}:${n.prefix}:${e}`;return o.iconExists(i)}));return i?`@${s.value}:${i.prefix}:${e}`:e}));function d(e){const n=function(e){let o;if("undefined"==typeof window){const{JSDOM:e}=require("jsdom");o=(new e).window}return(o?new o.DOMParser:new window.DOMParser).parseFromString(e,"text/html").querySelector("svg")}(e),i=(null==n?void 0:n.innerHTML.trim())||"";n&&i&&o.addIcon(`@${s.value}:${r.prefix}:${r.name}`,{body:i,height:n.viewBox.baseVal.height,width:n.viewBox.baseVal.width})}return u&&r.src&&!o.iconExists(`@${s.value}:${r.prefix}:${r.name}`)&&(l.value=!1,u.fetchIcon(r.src).then((e=>{e&&(d(e),l.value=!0)})).catch((e=>{throw new Error(`Error during fetch icon: ${null==e?void 0:e.message}`)}))),r.svg&&d(r.svg),(n,i)=>e.unref(l)?(e.openBlock(),e.createBlock(e.unref(o.Icon),e.mergeProps({key:0,class:e.unref(a)},{inline:n.inline,width:n.width,height:n.height,horizontalFlip:n.horizontalFlip,verticalFlip:n.verticalFlip,flip:n.flip,rotate:e.unref(t),color:n.color,onLoad:n.onLoad,icon:e.unref(f)}),null,16,["class"])):e.createCommentVNode("v-if",!0)}})}));
1
+ !function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o(require("vue"),require("@iconify/vue")):"function"==typeof define&&define.amd?define(["vue","@iconify/vue"],o):(e="undefined"!=typeof globalThis?globalThis:e||self).VvIcon=o(e.vue,e.vue$1)}(this,(function(e,o){"use strict";const n={prefix:"normal"},i=Symbol.for("volver");return 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(n){const r=n,t=e.computed((()=>"string"==typeof r.rotate?Number.parseFloat(r.rotate):r.rotate)),l=e.ref(!0),u=e.inject(i),{modifiers:c}=e.toRefs(r),a=function(o,n,i){return e.computed((()=>{const r={[o]:!0},t="string"==typeof(null==n?void 0:n.value)?n.value.split(" "):null==n?void 0:n.value;return t&&Array.isArray(t)&&t.forEach((e=>{e&&(r[`${o}--${e}`]=!0)})),i&&Object.keys(i.value).forEach((n=>{r[`${o}--${n}`]=e.unref(i.value[n])})),r}))}("vv-icon",c),s=e.computed((()=>r.provider||(null==u?void 0:u.iconsProvider))),f=e.computed((()=>{const e=r.name??"",n=`@${s.value}:${r.prefix}:${e}`;if(o.iconExists(n))return n;const i=null==u?void 0:u.iconsCollections.find((n=>{const i=`@${s.value}:${n.prefix}:${e}`;return o.iconExists(i)}));return i?`@${s.value}:${i.prefix}:${e}`:e}));function d(e){const n=function(e){let o;if("undefined"==typeof window){const{JSDOM:e}=require("jsdom");o=(new e).window}return(o?new o.DOMParser:new window.DOMParser).parseFromString(e,"text/html").querySelector("svg")}(e),i=(null==n?void 0:n.innerHTML.trim())||"";n&&i&&o.addIcon(`@${s.value}:${r.prefix}:${r.name}`,{body:i,height:n.viewBox.baseVal.height,width:n.viewBox.baseVal.width})}return u&&r.src&&!o.iconExists(`@${s.value}:${r.prefix}:${r.name}`)&&(l.value=!1,u.fetchIcon(r.src).then((e=>{e&&(d(e),l.value=!0)})).catch((e=>{throw new Error(`Error during fetch icon: ${null==e?void 0:e.message}`)}))),r.svg&&d(r.svg),(n,i)=>e.unref(l)?(e.openBlock(),e.createBlock(e.unref(o.Icon),e.mergeProps({key:0,class:e.unref(a)},{inline:n.inline,width:n.width,height:n.height,horizontalFlip:n.horizontalFlip,verticalFlip:n.verticalFlip,flip:n.flip,rotate:e.unref(t),color:n.color,onLoad:n.onLoad,icon:e.unref(f)}),null,16,["class"])):e.createCommentVNode("v-if",!0)}})}));
@@ -1,8 +1,8 @@
1
1
  import { inject, computed, unref, defineComponent, mergeDefaults, ref, toRefs, openBlock, createBlock, mergeProps, createCommentVNode, getCurrentInstance, watch, resolveDynamicComponent, withCtx, renderSlot, createTextVNode, toDisplayString, toRef, useAttrs, useSlots, createElementBlock, Fragment, isRef, h, onBeforeUnmount, normalizeClass, withModifiers, createElementVNode, normalizeProps, createVNode, guardReactiveProps, createSlots } from "vue";
2
2
  import { useVModel } from "@vueuse/core";
3
+ import Sortable from "vuedraggable";
3
4
  import { iconExists, Icon, addIcon } from "@iconify/vue";
4
5
  import { uid } from "uid";
5
- import Sortable from "vuedraggable";
6
6
  const ACTION_ICONS = {
7
7
  showPassword: "eye-on",
8
8
  hidePassword: "eye-off",
@@ -128,7 +128,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
128
128
  const props = __props;
129
129
  const hasRotate = computed(() => {
130
130
  if (typeof props.rotate === "string") {
131
- return parseFloat(props.rotate);
131
+ return Number.parseFloat(props.rotate);
132
132
  }
133
133
  return props.rotate;
134
134
  });
@@ -599,7 +599,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
599
599
  return toReturn;
600
600
  }
601
601
  });
602
- const onClick = (e) => {
602
+ function onClick(e) {
603
603
  var _a;
604
604
  if (props.disabled) {
605
605
  e.preventDefault();
@@ -610,23 +610,23 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
610
610
  return;
611
611
  }
612
612
  dropdownEventBus == null ? void 0 : dropdownEventBus.emit("click", e);
613
- };
614
- const onMouseover = (e) => {
613
+ }
614
+ function onMouseover(e) {
615
615
  var _a;
616
616
  if ((_a = instance == null ? void 0 : instance.vnode.props) == null ? void 0 : _a.onMouseover) {
617
617
  emit("mouseover", e);
618
618
  return;
619
619
  }
620
620
  dropdownEventBus == null ? void 0 : dropdownEventBus.emit("mouseover", e);
621
- };
622
- const onMouseleave = (e) => {
621
+ }
622
+ function onMouseleave(e) {
623
623
  var _a;
624
624
  if ((_a = instance == null ? void 0 : instance.vnode.props) == null ? void 0 : _a.onMouseleave) {
625
625
  emit("mouseleave", e);
626
626
  return;
627
627
  }
628
628
  dropdownEventBus == null ? void 0 : dropdownEventBus.emit("mouseleave", e);
629
- };
629
+ }
630
630
  return (_ctx, _cache) => {
631
631
  return openBlock(), createBlock(resolveDynamicComponent(unref(hasTag)), mergeProps(unref(hasProps), {
632
632
  ref_key: "element",
@@ -784,7 +784,9 @@ function useGroupProps(props, emit) {
784
784
  label
785
785
  };
786
786
  }
787
- const useUniqueId = (id) => computed(() => String((id == null ? void 0 : id.value) || uid()));
787
+ function useUniqueId(id) {
788
+ return computed(() => String((id == null ? void 0 : id.value) || uid()));
789
+ }
788
790
  function equals(obj1, obj2, field) {
789
791
  if (field) {
790
792
  return resolveFieldData(obj1, field) === resolveFieldData(obj2, field);
@@ -800,32 +802,36 @@ function deepEquals(a, b) {
800
802
  let i, length, key;
801
803
  if (arrA && arrB) {
802
804
  length = a.length;
803
- if (length != b.length)
805
+ if (length !== b.length)
804
806
  return false;
805
- for (i = length; i-- !== 0; )
807
+ for (i = length; i-- !== 0; ) {
806
808
  if (!deepEquals(a[i], b[i]))
807
809
  return false;
810
+ }
808
811
  return true;
809
812
  }
810
- if (arrA != arrB)
813
+ if (arrA !== arrB)
811
814
  return false;
812
- const dateA = a instanceof Date, dateB = b instanceof Date;
813
- if (dateA != dateB)
815
+ const dateA = a instanceof Date;
816
+ const dateB = b instanceof Date;
817
+ if (dateA !== dateB)
814
818
  return false;
815
819
  if (dateA && dateB)
816
- return a.getTime() == b.getTime();
817
- const regexpA = a instanceof RegExp, regexpB = b instanceof RegExp;
818
- if (regexpA != regexpB)
820
+ return a.getTime() === b.getTime();
821
+ const regexpA = a instanceof RegExp;
822
+ const regexpB = b instanceof RegExp;
823
+ if (regexpA !== regexpB)
819
824
  return false;
820
825
  if (regexpA && regexpB)
821
- return a.toString() == b.toString();
826
+ return a.toString() === b.toString();
822
827
  const keys = Object.keys(a);
823
828
  length = keys.length;
824
829
  if (length !== Object.keys(b).length)
825
830
  return false;
826
- for (i = length; i-- !== 0; )
831
+ for (i = length; i-- !== 0; ) {
827
832
  if (!Object.prototype.hasOwnProperty.call(b, keys[i]))
828
833
  return false;
834
+ }
829
835
  for (i = length; i-- !== 0; ) {
830
836
  key = keys[i];
831
837
  if (!deepEquals(a[key], b[key]))
@@ -833,11 +839,11 @@ function deepEquals(a, b) {
833
839
  }
834
840
  return true;
835
841
  }
836
- return a !== a && b !== b;
842
+ return Number.isNaN(a) && Number.isNaN(b);
837
843
  }
838
844
  function resolveFieldData(data, field) {
839
845
  if (data && Object.keys(data).length && field) {
840
- if (field.indexOf(".") === -1) {
846
+ if (!field.includes(".")) {
841
847
  return data[field];
842
848
  } else {
843
849
  const fields = field.split(".");
@@ -920,9 +926,9 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
920
926
  emits: VvButtonEvents,
921
927
  setup(__props, { expose: __expose, emit: __emit }) {
922
928
  const props = __props;
929
+ const emit = __emit;
923
930
  const attrs = useAttrs();
924
931
  const slots = useSlots();
925
- const emit = __emit;
926
932
  const {
927
933
  id,
928
934
  modifiers,
@@ -955,10 +961,10 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
955
961
  "vv-button",
956
962
  modifiers,
957
963
  computed(() => ({
958
- reverse: [Side.right, Side.bottom].includes(
964
+ "reverse": [Side.right, Side.bottom].includes(
959
965
  iconPosition.value
960
966
  ),
961
- column: [Side.top, Side.bottom].includes(
967
+ "column": [Side.top, Side.bottom].includes(
962
968
  iconPosition.value
963
969
  ),
964
970
  "icon-only": Boolean(
@@ -978,7 +984,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
978
984
  onClick
979
985
  };
980
986
  });
981
- const onClick = () => {
987
+ function onClick() {
982
988
  if (toggle.value) {
983
989
  if (Array.isArray(modelValue.value)) {
984
990
  if (contains(toggleValue.value, modelValue.value)) {
@@ -998,7 +1004,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
998
1004
  }
999
1005
  modelValue.value = toggleValue.value;
1000
1006
  }
1001
- };
1007
+ }
1002
1008
  return (_ctx, _cache) => {
1003
1009
  return openBlock(), createBlock(_sfc_main$2, mergeProps({
1004
1010
  ...unref(attrs),
@@ -1387,7 +1393,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1387
1393
  if (!props.progress) {
1388
1394
  return false;
1389
1395
  }
1390
- const progress = typeof props.progress === "string" ? parseInt(props.progress) : props.progress;
1396
+ const progress = typeof props.progress === "string" ? Number.parseInt(props.progress) : props.progress;
1391
1397
  return progress > 0 && progress < 100;
1392
1398
  });
1393
1399
  const { hasIconBefore, hasIconAfter } = useComponentIcon(icon, iconPosition);
@@ -1396,10 +1402,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1396
1402
  "vv-input-file",
1397
1403
  modifiers,
1398
1404
  computed(() => ({
1399
- dragging: isDragging.value,
1400
- loading: props.loading && !hasProgress.value,
1401
- valid: props.valid === true,
1402
- invalid: props.invalid === true,
1405
+ "dragging": isDragging.value,
1406
+ "loading": props.loading && !hasProgress.value,
1407
+ "valid": props.valid === true,
1408
+ "invalid": props.invalid === true,
1403
1409
  "icon-before": !!hasIconBefore.value,
1404
1410
  "icon-after": !!hasIconAfter.value,
1405
1411
  "drop-area": hasDropArea.value
@@ -1429,7 +1435,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1429
1435
  }
1430
1436
  });
1431
1437
  const hasMax = computed(() => {
1432
- return typeof props.max === "string" ? parseInt(props.max) : props.max;
1438
+ return typeof props.max === "string" ? Number.parseInt(props.max) : props.max;
1433
1439
  });
1434
1440
  const hasDropArea = computed(() => {
1435
1441
  return props.dropArea && !readonly.value;
@@ -1445,29 +1451,29 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1445
1451
  });
1446
1452
  const isDragging = ref(false);
1447
1453
  const inputEl = ref();
1448
- const onDragenter = () => {
1454
+ function onDragenter() {
1449
1455
  isDragging.value = true;
1450
- };
1451
- const onDragleave = () => {
1456
+ }
1457
+ function onDragleave() {
1452
1458
  isDragging.value = false;
1453
- };
1454
- const onDrop = (event) => {
1459
+ }
1460
+ function onDrop(event) {
1455
1461
  var _a, _b;
1456
1462
  if (!((_a = event.dataTransfer) == null ? void 0 : _a.files)) {
1457
1463
  return;
1458
1464
  }
1459
1465
  isDragging.value = false;
1460
1466
  addFiles((_b = event.dataTransfer) == null ? void 0 : _b.files);
1461
- };
1462
- const onChange = () => {
1467
+ }
1468
+ function onChange() {
1463
1469
  var _a;
1464
1470
  if (!((_a = inputEl.value) == null ? void 0 : _a.files)) {
1465
1471
  return;
1466
1472
  }
1467
1473
  addFiles(inputEl.value.files);
1468
1474
  inputEl.value.value = "";
1469
- };
1470
- const addFiles = (uploadedFiles) => {
1475
+ }
1476
+ function addFiles(uploadedFiles) {
1471
1477
  if (!props.multiple) {
1472
1478
  if (Array.isArray(localModelValue.value)) {
1473
1479
  localModelValue.value = [...uploadedFiles];
@@ -1490,16 +1496,16 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1490
1496
  }
1491
1497
  localModelValue.value = toReturn;
1492
1498
  selectedFileIndex.value = toReturn.length - 1;
1493
- };
1494
- const onClickDropArea = () => {
1499
+ }
1500
+ function onClickDropArea() {
1495
1501
  if (!inputEl.value) {
1496
1502
  return;
1497
1503
  }
1498
1504
  if (!readonly.value) {
1499
1505
  inputEl.value.click();
1500
1506
  }
1501
- };
1502
- const onClickRemoveFile = (index) => {
1507
+ }
1508
+ function onClickRemoveFile(index) {
1503
1509
  if (!Array.isArray(localModelValue.value)) {
1504
1510
  localModelValue.value = void 0;
1505
1511
  return;
@@ -1510,7 +1516,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1510
1516
  const toReturn = [...localModelValue.value];
1511
1517
  toReturn.splice(index, 1);
1512
1518
  localModelValue.value = toReturn;
1513
- };
1519
+ }
1514
1520
  const selectedFileIndex = ref(0);
1515
1521
  const PREVIEW_MIME_TYPES = ["image/jpeg", "image/png"];
1516
1522
  const previewSrc = computed(() => {
@@ -1546,13 +1552,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1546
1552
  URL.revokeObjectURL(previewSrc.value);
1547
1553
  }
1548
1554
  });
1549
- const sizeInKiB = (size) => {
1555
+ function sizeInKiB(size) {
1550
1556
  if (!size) {
1551
1557
  return;
1552
1558
  }
1553
1559
  return Math.floor(size / 1024);
1554
- };
1555
- const onClickDownloadFile = (file) => {
1560
+ }
1561
+ function onClickDownloadFile(file) {
1556
1562
  const link = document.createElement("a");
1557
1563
  if (file instanceof File) {
1558
1564
  link.href = URL.createObjectURL(file);
@@ -1564,10 +1570,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1564
1570
  link.click();
1565
1571
  document.body.removeChild(link);
1566
1572
  URL.revokeObjectURL(link.href);
1567
- };
1568
- const onClickSelectFile = (index) => {
1573
+ }
1574
+ function onClickSelectFile(index) {
1569
1575
  selectedFileIndex.value = index;
1570
- };
1576
+ }
1571
1577
  const dropdAreaActionLabel = computed(() => {
1572
1578
  if (files.value.length === 0 || isMultiple.value) {
1573
1579
  return props.labelAdd;
@@ -1580,11 +1586,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1580
1586
  }
1581
1587
  return props.iconReplace;
1582
1588
  });
1583
- const onSortEnd = ({ newIndex }) => {
1589
+ function onSortEnd({ newIndex }) {
1584
1590
  if (newIndex !== null) {
1585
1591
  selectedFileIndex.value = newIndex;
1586
1592
  }
1587
- };
1593
+ }
1588
1594
  return (_ctx, _cache) => {
1589
1595
  return openBlock(), createElementBlock(
1590
1596
  "div",
@@ -1683,7 +1689,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1683
1689
  item: withCtx(({ element: file, index }) => [
1684
1690
  createElementVNode("li", {
1685
1691
  class: normalizeClass(["vv-input-file__item", {
1686
- active: index === selectedFileIndex.value && hasDropArea.value && files.value.length > 1,
1692
+ "active": index === selectedFileIndex.value && hasDropArea.value && files.value.length > 1,
1687
1693
  "cursor-move": _ctx.sortable
1688
1694
  }]),
1689
1695
  onClick: withModifiers(($event) => onClickSelectFile(index), ["stop"])
@@ -1 +1 @@
1
- !function(e,l){"object"==typeof exports&&"undefined"!=typeof module?module.exports=l(require("vue"),require("@vueuse/core"),require("@iconify/vue"),require("uid"),require("vuedraggable")):"function"==typeof define&&define.amd?define(["vue","@vueuse/core","@iconify/vue","uid","vuedraggable"],l):(e="undefined"!=typeof globalThis?globalThis:e||self).VvInputFile=l(e.vue,e.core,e.vue$1,e.uid,e.Sortable)}(this,(function(e,l,t,o,a){"use strict";const n="add",r="edit",i="download",u={prefix:"normal"};var d=(e=>(e.local="local",e.session="session",e))(d||{}),s=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(s||{}),v=(e=>(e.before="before",e.after="after",e))(v||{}),c=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(c||{}),p=(e=>(e.nuxtLink="nuxt-link",e.routerLink="router-link",e.a="a",e.button="button",e))(p||{});const f=Symbol.for("volver"),m=Symbol.for("buttonGroup"),g=Symbol.for("dropdownTrigger"),b=Symbol.for("dropdownAction");function y(){return e.inject(f)}function h(l,t,o){return e.computed((()=>{const a={[l]:!0},n="string"==typeof(null==t?void 0:t.value)?t.value.split(" "):null==t?void 0:t.value;return n&&Array.isArray(n)&&n.forEach((e=>{e&&(a[`${l}--${e}`]=!0)})),o&&Object.keys(o.value).forEach((t=>{a[`${l}--${t}`]=e.unref(o.value[t])})),a}))}const k=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:{}},u),setup(l){const o=l,a=e.computed((()=>"string"==typeof o.rotate?parseFloat(o.rotate):o.rotate)),n=e.ref(!0),r=y(),{modifiers:i}=e.toRefs(o),u=h("vv-icon",i),d=e.computed((()=>o.provider||(null==r?void 0:r.iconsProvider))),s=e.computed((()=>{const e=o.name??"",l=`@${d.value}:${o.prefix}:${e}`;if(t.iconExists(l))return l;const a=null==r?void 0:r.iconsCollections.find((l=>{const o=`@${d.value}:${l.prefix}:${e}`;return t.iconExists(o)}));return a?`@${d.value}:${a.prefix}:${e}`:e}));function v(e){const l=function(e){let l;if("undefined"==typeof window){const{JSDOM:e}=require("jsdom");l=(new e).window}return(l?new l.DOMParser:new window.DOMParser).parseFromString(e,"text/html").querySelector("svg")}(e),a=(null==l?void 0:l.innerHTML.trim())||"";l&&a&&t.addIcon(`@${d.value}:${o.prefix}:${o.name}`,{body:a,height:l.viewBox.baseVal.height,width:l.viewBox.baseVal.width})}return r&&o.src&&!t.iconExists(`@${d.value}:${o.prefix}:${o.name}`)&&(n.value=!1,r.fetchIcon(o.src).then((e=>{e&&(v(e),n.value=!0)})).catch((e=>{throw new Error(`Error during fetch icon: ${null==e?void 0:e.message}`)}))),o.svg&&v(o.svg),(l,o)=>e.unref(n)?(e.openBlock(),e.createBlock(e.unref(t.Icon),e.mergeProps({key:0,class:e.unref(u)},{inline:l.inline,width:l.width,height:l.height,horizontalFlip:l.horizontalFlip,verticalFlip:l.verticalFlip,flip:l.flip,rotate:e.unref(a),color:l.color,onLoad:l.onLoad,icon:e.unref(s)}),null,16,["class"])):e.createCommentVNode("v-if",!0)}}),S={to:{type:[String,Object]},href:String,target:String,rel:{type:String,default:"noopener noreferrer"}},B={valid:{type:Boolean,default:!1},validLabel:{type:[String,Array],default:void 0}},L={invalid:{type:Boolean,default:!1},invalidLabel:{type:[String,Array],default:void 0}},V={loading:{type:Boolean,default:!1},loadingLabel:{type:String,default:"Loading..."}},w={disabled:{type:Boolean,default:!1}},A={active:{type:Boolean,default:!1}},$={current:{type:Boolean,default:!1}},C={pressed:{type:Boolean,default:!1}},O={label:{type:[String,Number],default:void 0}},x={readonly:{type:Boolean,default:!1}},_={modifiers:{type:[String,Array],default:void 0}},N={hintLabel:{type:String,default:""}},I={icon:{type:[String,Object],default:void 0},iconPosition:{type:String,default:v.before,validation:e=>Object.values(v).includes(e)}},R={unselectable:{type:Boolean,default:!0}},j={id:[String,Number]};s.bottom,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean;const P={...j,name:{type:String,required:!0}},E={...w,...O,...C,...A,...$,...S,type:{type:String,default:c.button,validator:e=>Object.values(c).includes(e)},ariaLabel:{type:String,default:void 0},defaultTag:{type:String,default:p.button}};d.local;const D=E;const M=e.defineComponent({name:"VvAction",props:D,emits:["click","mouseover","mouseleave"],setup(l,{expose:t,emit:o}){const a=l,n=o,r=e.getCurrentInstance(),i=y(),u=e.ref(null);t({$el:u});const{reference:d,bus:s,aria:v,expanded:c}=e.inject(g,{});e.watch((()=>u.value),(e=>{d&&(d.value=e)}));const f=e.computed((()=>a.pressed||(null==c?void 0:c.value))),{role:m}=e.inject(b,{}),h=e.computed((()=>{switch(!0){case a.disabled:return p.button;case void 0!==a.to:return(null==i?void 0:i.nuxt)?p.nuxtLink:p.routerLink;case void 0!==a.href:return p.a;default:return a.defaultTag}})),k=e.computed((()=>{const e={...null==v?void 0:v.value,ariaPressed:!!f.value||void 0,ariaLabel:a.ariaLabel,role:null==m?void 0:m.value};switch(h.value){case p.a:return{...e,href:a.href,target:a.target,rel:a.rel};case p.routerLink:case p.nuxtLink:return{...e,to:a.to,target:a.target};case p.button:return{...e,type:a.type,disabled:a.disabled};default:return e}})),S=e=>{var l;a.disabled?e.preventDefault():(null==(l=null==r?void 0:r.vnode.props)?void 0:l.onClick)?n("click",e):null==s||s.emit("click",e)},B=e=>{var l;(null==(l=null==r?void 0:r.vnode.props)?void 0:l.onMouseover)?n("mouseover",e):null==s||s.emit("mouseover",e)},L=e=>{var l;(null==(l=null==r?void 0:r.vnode.props)?void 0:l.onMouseleave)?n("mouseleave",e):null==s||s.emit("mouseleave",e)};return(l,t)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(h)),e.mergeProps(e.unref(k),{ref_key:"element",ref:u,class:{active:l.active,pressed:e.unref(f),disabled:l.disabled,current:l.current},onClickPassive:S,onMouseoverPassive:B,onMouseleavePassive:L}),{default:e.withCtx((()=>[e.renderSlot(l.$slots,"default",{},(()=>[e.createTextVNode(e.toDisplayString(l.label),1)]))])),_:3},16,["class"]))}});const F={...E,...j,..._,...R,...V,...I,iconPosition:{type:String,default:s.left,validator:e=>Object.values(s).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 z(l,t){const{group:o,isInGroup:a,getGroupOrLocalRef:n}=function(l){const t=e.inject(l,void 0),o=e.computed((()=>void 0!==t));return{group:t,isInGroup:o,getGroupOrLocalRef:function(l,o,a){const n=null==t?void 0:t[l];if(n)return e.computed({get:()=>n.value,set(e){n.value=e}});const r=e.toRef(o,l);return e.computed({get:()=>r.value,set(e){a&&a(`update:${l}`,e)}})}}}(m),{id:r,iconPosition:i,icon:u,label:d,pressed:s}=e.toRefs(l),v=n("modelValue",l,t),c=n("toggle",l),p=n("unselectable",l),f=e.computed((()=>(null==o?void 0:o.multiple.value)??!1)),g=e.computed((()=>{let e=l.modifiers,t=null==o?void 0:o.modifiers.value;const a=new Set;return e&&(Array.isArray(e)||(e=e.split(" ")),e.forEach((e=>a.add(e)))),t&&(Array.isArray(t)||(t=t.split(" ")),t.forEach((e=>a.add(e)))),Array.from(a)})),b=e.computed((()=>Boolean(l.disabled||(null==o?void 0:o.disabled.value))));return{group:o,isInGroup:a,modelValue:v,toggle:c,unselectable:p,multiple:f,modifiers:g,disabled:b,id:r,pressed:s,iconPosition:i,icon:u,label:d}}const U=l=>e.computed((()=>String((null==l?void 0:l.value)||o.uid())));function T(e,l,t){return t?H(e,t)===H(l,t):q(e,l)}function q(e,l){if(e===l)return!0;if(e&&l&&"object"==typeof e&&"object"==typeof l){const t=Array.isArray(e),o=Array.isArray(l);let a,n,r;if(t&&o){if(n=e.length,n!=l.length)return!1;for(a=n;0!=a--;)if(!q(e[a],l[a]))return!1;return!0}if(t!=o)return!1;const i=e instanceof Date,u=l instanceof Date;if(i!=u)return!1;if(i&&u)return e.getTime()==l.getTime();const d=e instanceof RegExp,s=l instanceof RegExp;if(d!=s)return!1;if(d&&s)return e.toString()==l.toString();const v=Object.keys(e);if(n=v.length,n!==Object.keys(l).length)return!1;for(a=n;0!=a--;)if(!Object.prototype.hasOwnProperty.call(l,v[a]))return!1;for(a=n;0!=a--;)if(r=v[a],!q(e[r],l[r]))return!1;return!0}return e!=e&&l!=l}function H(e,l){if(e&&Object.keys(e).length&&l){if(-1===l.indexOf("."))return e[l];{const t=l.split(".");let o=e;for(let l=0,a=t.length;l<a;++l){if(null==e)return null;o=o[t[l]]}return o}}return null}function G(e,l){if(null!=e&&l&&l.length)for(const t of l)if(T(e,t))return!0;return!1}function J(l,t){const o=e.computed((()=>"string"==typeof(null==l?void 0:l.value)?{name:null==l?void 0:l.value}:null==l?void 0:l.value)),a=e.computed((()=>(null==t?void 0:t.value)===v.before?o.value:void 0)),n=e.computed((()=>(null==t?void 0:t.value)===v.after?o.value:void 0)),r=e.computed((()=>(null==t?void 0:t.value)===s.left?o.value:void 0)),i=e.computed((()=>(null==t?void 0:t.value)===s.right?o.value:void 0)),u=e.computed((()=>(null==t?void 0:t.value)===s.top?o.value:void 0)),d=e.computed((()=>(null==t?void 0:t.value)===s.bottom?o.value:void 0));return{hasIcon:o,hasIconLeft:r,hasIconRight:i,hasIconTop:u,hasIconBottom:d,hasIconBefore:a,hasIconAfter:n}}const K={key:1,class:"vv-button__label"},Q={key:1,class:"vv-button__label"},W=e.defineComponent({name:"VvButton",inheritAttrs:!1,props:F,emits:["update:modelValue"],setup(l,{expose:t,emit:o}){const a=l,n=e.useAttrs(),r=e.useSlots(),i=o,{id:u,modifiers:d,iconPosition:v,icon:c,label:p,modelValue:f,disabled:m,toggle:g,unselectable:b}=z(a,i),y=U(u),S=e.computed((()=>(null==n?void 0:n.name)||y.value)),B=e.ref(null);t({$el:e.computed((()=>{var e;return null==(e=B.value)?void 0:e.$el}))});const L=e.computed((()=>g.value?Array.isArray(f.value)?G(S.value,f.value):T(S.value,f.value):a.pressed)),V=h("vv-button",d,e.computed((()=>({reverse:[s.right,s.bottom].includes(v.value),column:[s.top,s.bottom].includes(v.value),"icon-only":Boolean((null==c?void 0:c.value)&&!(null==p?void 0:p.value)&&!r.default)})))),{hasIcon:w}=J(c),A=e.computed((()=>void 0!==a.value?a.value:S.value)),$=e.computed((()=>{if(g.value)return{onClick:C}})),C=()=>{if(g.value){if(Array.isArray(f.value))return G(A.value,f.value)?void(b.value&&(f.value=f.value.filter((e=>e!==A.value)))):void f.value.push(A.value);if(A.value===f.value&&b.value)return void(f.value=a.uncheckedValue);f.value=A.value}};return(l,t)=>(e.openBlock(),e.createBlock(M,e.mergeProps({...e.unref(n),...e.unref($),disabled:e.unref(m),pressed:e.unref(L),active:l.active,type:l.type,to:l.to,href:l.href,target:l.target,rel:l.rel,ariaLabel:l.ariaLabel},{id:e.unref(y),ref_key:"element",ref:B,class:e.unref(V)}),{default:e.withCtx((()=>[e.renderSlot(l.$slots,"default",{},(()=>[l.loading?e.renderSlot(l.$slots,"loading",{key:0},(()=>[l.loadingIcon?(e.openBlock(),e.createBlock(k,{key:0,class:"vv-button__loading-icon",name:l.loadingIcon},null,8,["name"])):e.createCommentVNode("v-if",!0),l.loadingLabel?(e.openBlock(),e.createElementBlock("span",K,e.toDisplayString(l.loadingLabel),1)):e.createCommentVNode("v-if",!0)])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.renderSlot(l.$slots,"before"),e.unref(w)?(e.openBlock(),e.createBlock(k,e.mergeProps({key:0},e.unref(w),{class:"vv-button__icon"}),null,16)):e.createCommentVNode("v-if",!0),e.unref(p)?(e.openBlock(),e.createElementBlock("span",Q,[e.renderSlot(l.$slots,"label",{},(()=>[e.createTextVNode(e.toDisplayString(e.unref(p)),1)]))])):e.createCommentVNode("v-if",!0),e.renderSlot(l.$slots,"after")],64))]))])),_:3},16,["id","class"]))}});function X(e){return Array.isArray(e)?e.filter((e=>{return"string"==typeof(l=e)||l instanceof String;var l})).join(" "):e}const Y={...P,..._,...B,...L,...N,...O,...V,...x,...I,modelValue:{type:Object},progress:{type:[Number,String],default:void 0},placeholder:{type:String,default:void 0},accept:{type:String,default:"*"},multiple:{type:Boolean,default:!1},capture:{type:String,default:void 0,validation:e=>void 0===e||["user","environment"].includes(e)},max:{type:[Number,String],default:void 0},dropArea:{type:Boolean,default:!1},sortable:{type:Boolean,default:!1},labelAdd:{type:String,default:"Add file"},iconAdd:{type:[String,Object],default:n},labelReplace:{type:String,default:"Replace file"},iconReplace:{type:[String,Object],default:r},labelDownload:{type:String,default:"Downlaod file"},iconDownload:{type:[String,Object],default:i},labelRemove:{type:String,default:"Remove file"}};const Z=["for"],ee={class:"vv-input-file__preview"},le=["src","alt"],te={class:"vv-input-file__wrapper"},oe=["id","readonly","placeholder","aria-describedby","aria-invalid","aria-errormessage","multiple","accept","capture","name"],ae=["value"],ne=["onClick"],re=["title","onClick"],ie={class:"vv-input-file__item-name"},ue={class:"vv-input-file__item-info"},de=["title","onClick"];return e.defineComponent({name:"VvInputFile",props:Y,emits:["update:modelValue"],setup(t,{emit:o}){const n=t,r=o,i=e.useSlots(),u=function(l,t,o){const a=y(),n=e.computed((()=>{var e;if(a&&(null==(e=a.defaults.value)?void 0:e[l]))return a.defaults.value[l]}));return e.computed((()=>{if(void 0===n.value)return o;const e=n.value,l=t,a=o;return Object.keys(l).reduce(((t,o)=>{const n=a[o];if(t[o]=n,o in e){if(Array.isArray(l[o])){const a=l[o];a.length&&a[0]===n&&(t[o]=e[o])}if("function"==typeof l[o]&&(0,l[o])()===n&&(t[o]=e[o]),"object"==typeof l[o]){let a=l[o].default;"function"==typeof a&&(a=a()),"object"==typeof a?JSON.stringify(a)===JSON.stringify(n)&&(t[o]=e[o]):a===n&&(t[o]=e[o])}}return t}),{})}))}("VvInputFile",Y,n),{modifiers:d,id:s,readonly:v,icon:c,iconPosition:p,iconDownload:f}=e.toRefs(n),m=U(s),g=e.computed((()=>`${m.value}-hint`)),b=e.computed((()=>{if(!n.progress)return!1;const e="string"==typeof n.progress?parseInt(n.progress):n.progress;return e>0&&e<100})),{hasIconBefore:S,hasIconAfter:B}=J(c,p),{hasIcon:L}=J(f),V=h("vv-input-file",d,e.computed((()=>({dragging:R.value,loading:n.loading&&!b.value,valid:!0===n.valid,invalid:!0===n.invalid,"icon-before":!!S.value,"icon-after":!!B.value,"drop-area":N.value})))),{HintSlot:w,hasHintLabelOrSlot:A,hasInvalidLabelOrSlot:$,hintSlotScope:C}=function(l,t){const o=e.computed((()=>e.isRef(l)?l.value:l)),a=e.computed((()=>X(o.value.invalidLabel))),n=e.computed((()=>X(o.value.validLabel))),r=e.computed((()=>o.value.loadingLabel)),i=e.computed((()=>o.value.hintLabel)),u=e.computed((()=>Boolean(o.value.loading&&(t.loading||r.value)))),d=e.computed((()=>!u.value&&Boolean(o.value.invalid&&(t.invalid||a.value)))),s=e.computed((()=>!u.value&&!d.value&&Boolean(o.value.valid&&(t.valid||n.value)))),v=e.computed((()=>!u.value&&!d.value&&!s.value&&Boolean(t.hint||i.value))),c=e.computed((()=>d.value||s.value||u.value||v.value)),p=e.computed((()=>({modelValue:o.value.modelValue,valid:o.value.valid,invalid:o.value.invalid,loading:o.value.loading}))),f=e.defineComponent({name:"HintSlot",props:{tag:{type:String,default:"small"}},setup:()=>({isVisible:c,invalidLabel:a,validLabel:n,loadingLabel:r,hintLabel:i,hasInvalidLabelOrSlot:d,hasValidLabelOrSlot:s,hasLoadingLabelOrSlot:u,hasHintLabelOrSlot:v}),render(){var l,t,o,a,n,r,i,u;if(this.isVisible){let d;return this.hasInvalidLabelOrSlot&&(d="alert"),this.hasValidLabelOrSlot&&(d="status"),this.hasLoadingLabelOrSlot?e.h(this.tag,{role:d},(null==(t=(l=this.$slots).loading)?void 0:t.call(l))??this.loadingLabel):this.hasInvalidLabelOrSlot?e.h(this.tag,{role:d},(null==(a=(o=this.$slots).invalid)?void 0:a.call(o))??this.$slots.invalid??this.invalidLabel):this.hasValidLabelOrSlot?e.h(this.tag,{role:d},(null==(r=(n=this.$slots).valid)?void 0:r.call(n))??this.validLabel):e.h(this.tag,{role:d},(null==(u=(i=this.$slots).hint)?void 0:u.call(i))??this.$slots.hint??this.hintLabel)}return null}});return{hasInvalidLabelOrSlot:d,hasHintLabelOrSlot:v,hasValidLabelOrSlot:s,hasLoadingLabelOrSlot:u,hintSlotScope:p,HintSlot:f}}(u,i),O=l.useVModel(n,"modelValue",r),x=e.computed({get:()=>{var e;return O.value&&(Array.isArray(O.value)||(null==(e=O.value)?void 0:e.name))?Array.isArray(O.value)?O.value:[O.value]:[]},set:e=>{I.value?O.value=e:O.value=null==e?void 0:e[0]}}),_=e.computed((()=>"string"==typeof n.max?parseInt(n.max):n.max)),N=e.computed((()=>n.dropArea&&!v.value)),I=e.computed((()=>!!n.multiple&&(!_.value||_.value-x.value.length>1))),R=e.ref(!1),j=e.ref(),P=()=>{R.value=!0},E=()=>{R.value=!1},D=e=>{var l,t;(null==(l=e.dataTransfer)?void 0:l.files)&&(R.value=!1,F(null==(t=e.dataTransfer)?void 0:t.files))},M=()=>{var e;(null==(e=j.value)?void 0:e.files)&&(F(j.value.files),j.value.value="")},F=e=>{if(!n.multiple)return Array.isArray(O.value)?void(O.value=[...e]):void(O.value=e[0]);let l=[];l=!Array.isArray(O.value)&&O.value?[O.value]:O.value&&Array.isArray(O.value)?[...O.value]:l;for(const t of e){if(_.value&&l.length>=_.value)break;l.push(t)}O.value=l,T.value=l.length-1},z=()=>{j.value&&(v.value||j.value.click())},T=e.ref(0),q=["image/jpeg","image/png"],H=e.computed((()=>{if(0===x.value.length)return;if(!x.value[T.value])return;if(x.value[T.value]instanceof File){const e=x.value[T.value];if(!q.includes(e.type))return;return URL.createObjectURL(e)}const e=x.value[T.value];return e.thumbnailUrl?e.thumbnailUrl:q.includes(e.type)?e.url:void 0}));e.watch(H,((e,l)=>{l&&URL.revokeObjectURL(l)})),e.onBeforeUnmount((()=>{H.value&&URL.revokeObjectURL(H.value)}));const G=e=>{if(e)return Math.floor(e/1024)},K=e.computed((()=>0===x.value.length||I.value?n.labelAdd:n.labelReplace)),Q=e.computed((()=>0===x.value.length||I.value?n.iconAdd:n.iconReplace)),se=({newIndex:e})=>{null!==e&&(T.value=e)};return(l,t)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(V))},[l.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:e.unref(m)},e.toDisplayString(l.label),9,Z)):e.createCommentVNode("v-if",!0),N.value?(e.openBlock(),e.createElementBlock("div",{key:1,class:"vv-input-file__drop-area",onDragenter:e.withModifiers(P,["prevent","stop"]),onDragleave:e.withModifiers(E,["prevent","stop"]),onDrop:e.withModifiers(D,["prevent","stop"]),onDragover:t[0]||(t[0]=e.withModifiers((()=>{}),["prevent","stop"])),onClick:e.withModifiers(z,["stop"])},[e.renderSlot(l.$slots,"drop-area",{},(()=>[e.createElementVNode("picture",ee,[H.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:H.value,alt:x.value[T.value].name},null,8,le)):e.createCommentVNode("v-if",!0)]),e.unref(v)?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createBlock(W,{key:0,modifiers:"action",label:H.value?void 0:K.value,title:H.value?K.value:void 0,class:e.normalizeClass({"vv-input-file__drop-area-action":H.value}),icon:Q.value,onClick:e.withModifiers(z,["stop"])},null,8,["label","title","class","icon"]))]))],32)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",te,[e.unref(S)?(e.openBlock(),e.createBlock(k,e.normalizeProps(e.mergeProps({key:0},e.unref(S))),null,16)):e.createCommentVNode("v-if",!0),e.createElementVNode("input",{id:e.unref(m),ref_key:"inputEl",ref:j,type:"file",readonly:e.unref(v),placeholder:l.placeholder,"aria-describedby":e.unref(A)?g.value:void 0,"aria-invalid":l.invalid,"aria-errormessage":e.unref($)?g.value:void 0,multiple:I.value,accept:l.accept,capture:l.capture,name:l.name,onChange:M},null,40,oe),b.value?(e.openBlock(),e.createElementBlock("progress",{key:1,class:"vv-input-file__progress",value:l.progress,max:"100"},e.toDisplayString(l.progress)+"% ",9,ae)):e.createCommentVNode("v-if",!0),e.unref(B)?(e.openBlock(),e.createBlock(k,e.normalizeProps(e.mergeProps({key:2},e.unref(B))),null,16)):e.createCommentVNode("v-if",!0)]),e.createVNode(e.unref(a),{modelValue:x.value,"onUpdate:modelValue":t[1]||(t[1]=e=>x.value=e),tag:"ul",class:"vv-input-file__list","item-key":"name",move:()=>l.sortable,onEnd:se},{item:e.withCtx((({element:t,index:o})=>[e.createElementVNode("li",{class:e.normalizeClass(["vv-input-file__item",{active:o===T.value&&N.value&&x.value.length>1,"cursor-move":l.sortable}]),onClick:e.withModifiers((e=>(e=>{T.value=e})(o)),["stop"])},[e.unref(L)?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"vv-input-file__item-action",title:l.labelDownload,onClick:e.withModifiers((e=>(e=>{const l=document.createElement("a");e instanceof File?l.href=URL.createObjectURL(e):e.url&&(l.href=e.url),l.setAttribute("download",e.name),document.body.appendChild(l),l.click(),document.body.removeChild(l),URL.revokeObjectURL(l.href)})(t)),["stop"])},[e.createVNode(k,e.normalizeProps(e.guardReactiveProps(e.unref(L))),null,16)],8,re)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",ie,e.toDisplayString(t.name),1),e.createElementVNode("small",ue,e.toDisplayString(G(t.size))+" KB ",1),e.unref(v)?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"vv-input-file__item-remove",title:l.labelRemove,onClick:e.withModifiers((e=>(e=>{if(!Array.isArray(O.value))return void(O.value=void 0);T.value===e&&(T.value=0);const l=[...O.value];l.splice(e,1),O.value=l})(o)),["stop"])},null,8,de))],10,ne)])),_:1},8,["modelValue","move"]),e.createVNode(e.unref(w),{id:g.value,class:"vv-input-file__hint"},e.createSlots({_:2},[l.$slots.hint?{name:"hint",fn:e.withCtx((()=>[e.renderSlot(l.$slots,"hint",e.normalizeProps(e.guardReactiveProps(e.unref(C))))])),key:"0"}:void 0,l.$slots.loading?{name:"loading",fn:e.withCtx((()=>[e.renderSlot(l.$slots,"loading",e.normalizeProps(e.guardReactiveProps(e.unref(C))))])),key:"1"}:void 0,l.$slots.valid?{name:"valid",fn:e.withCtx((()=>[e.renderSlot(l.$slots,"valid",e.normalizeProps(e.guardReactiveProps(e.unref(C))))])),key:"2"}:void 0,l.$slots.invalid?{name:"invalid",fn:e.withCtx((()=>[e.renderSlot(l.$slots,"invalid",e.normalizeProps(e.guardReactiveProps(e.unref(C))))])),key:"3"}:void 0]),1032,["id"])],2))}})}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("vue"),require("@vueuse/core"),require("vuedraggable"),require("@iconify/vue"),require("uid")):"function"==typeof define&&define.amd?define(["vue","@vueuse/core","vuedraggable","@iconify/vue","uid"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).VvInputFile=t(e.vue,e.core,e.Sortable,e.vue$1,e.uid)}(this,(function(e,t,l,o,a){"use strict";const n="add",i="edit",r="download",u={prefix:"normal"};var d=(e=>(e.local="local",e.session="session",e))(d||{}),s=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(s||{}),c=(e=>(e.before="before",e.after="after",e))(c||{}),v=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(v||{}),f=(e=>(e.nuxtLink="nuxt-link",e.routerLink="router-link",e.a="a",e.button="button",e))(f||{});const p=Symbol.for("volver"),m=Symbol.for("buttonGroup"),g=Symbol.for("dropdownTrigger"),b=Symbol.for("dropdownAction");function y(){return e.inject(p)}function h(t,l,o){return e.computed((()=>{const a={[t]:!0},n="string"==typeof(null==l?void 0:l.value)?l.value.split(" "):null==l?void 0:l.value;return n&&Array.isArray(n)&&n.forEach((e=>{e&&(a[`${t}--${e}`]=!0)})),o&&Object.keys(o.value).forEach((l=>{a[`${t}--${l}`]=e.unref(o.value[l])})),a}))}const k=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:{}},u),setup(t){const l=t,a=e.computed((()=>"string"==typeof l.rotate?Number.parseFloat(l.rotate):l.rotate)),n=e.ref(!0),i=y(),{modifiers:r}=e.toRefs(l),u=h("vv-icon",r),d=e.computed((()=>l.provider||(null==i?void 0:i.iconsProvider))),s=e.computed((()=>{const e=l.name??"",t=`@${d.value}:${l.prefix}:${e}`;if(o.iconExists(t))return t;const a=null==i?void 0:i.iconsCollections.find((t=>{const l=`@${d.value}:${t.prefix}:${e}`;return o.iconExists(l)}));return a?`@${d.value}:${a.prefix}:${e}`:e}));function c(e){const t=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),a=(null==t?void 0:t.innerHTML.trim())||"";t&&a&&o.addIcon(`@${d.value}:${l.prefix}:${l.name}`,{body:a,height:t.viewBox.baseVal.height,width:t.viewBox.baseVal.width})}return i&&l.src&&!o.iconExists(`@${d.value}:${l.prefix}:${l.name}`)&&(n.value=!1,i.fetchIcon(l.src).then((e=>{e&&(c(e),n.value=!0)})).catch((e=>{throw new Error(`Error during fetch icon: ${null==e?void 0:e.message}`)}))),l.svg&&c(l.svg),(t,l)=>e.unref(n)?(e.openBlock(),e.createBlock(e.unref(o.Icon),e.mergeProps({key:0,class:e.unref(u)},{inline:t.inline,width:t.width,height:t.height,horizontalFlip:t.horizontalFlip,verticalFlip:t.verticalFlip,flip:t.flip,rotate:e.unref(a),color:t.color,onLoad:t.onLoad,icon:e.unref(s)}),null,16,["class"])):e.createCommentVNode("v-if",!0)}}),S={to:{type:[String,Object]},href:String,target:String,rel:{type:String,default:"noopener noreferrer"}},B={valid:{type:Boolean,default:!1},validLabel:{type:[String,Array],default:void 0}},L={invalid:{type:Boolean,default:!1},invalidLabel:{type:[String,Array],default:void 0}},V={loading:{type:Boolean,default:!1},loadingLabel:{type:String,default:"Loading..."}},w={disabled:{type:Boolean,default:!1}},A={active:{type:Boolean,default:!1}},$={current:{type:Boolean,default:!1}},C={pressed:{type:Boolean,default:!1}},N={label:{type:[String,Number],default:void 0}},O={readonly:{type:Boolean,default:!1}},x={modifiers:{type:[String,Array],default:void 0}},_={hintLabel:{type:String,default:""}},I={icon:{type:[String,Object],default:void 0},iconPosition:{type:String,default:c.before,validation:e=>Object.values(c).includes(e)}},R={unselectable:{type:Boolean,default:!0}},j={id:[String,Number]};s.bottom,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean;const P={...j,name:{type:String,required:!0}},E={...w,...N,...C,...A,...$,...S,type:{type:String,default:v.button,validator:e=>Object.values(v).includes(e)},ariaLabel:{type:String,default:void 0},defaultTag:{type:String,default:f.button}};d.local;const D=E;const M=e.defineComponent({name:"VvAction",props:D,emits:["click","mouseover","mouseleave"],setup(t,{expose:l,emit:o}){const a=t,n=o,i=e.getCurrentInstance(),r=y(),u=e.ref(null);l({$el:u});const{reference:d,bus:s,aria:c,expanded:v}=e.inject(g,{});e.watch((()=>u.value),(e=>{d&&(d.value=e)}));const p=e.computed((()=>a.pressed||(null==v?void 0:v.value))),{role:m}=e.inject(b,{}),h=e.computed((()=>{switch(!0){case a.disabled:return f.button;case void 0!==a.to:return(null==r?void 0:r.nuxt)?f.nuxtLink:f.routerLink;case void 0!==a.href:return f.a;default:return a.defaultTag}})),k=e.computed((()=>{const e={...null==c?void 0:c.value,ariaPressed:!!p.value||void 0,ariaLabel:a.ariaLabel,role:null==m?void 0:m.value};switch(h.value){case f.a:return{...e,href:a.href,target:a.target,rel:a.rel};case f.routerLink:case f.nuxtLink:return{...e,to:a.to,target:a.target};case f.button:return{...e,type:a.type,disabled:a.disabled};default:return e}}));function S(e){var t;a.disabled?e.preventDefault():(null==(t=null==i?void 0:i.vnode.props)?void 0:t.onClick)?n("click",e):null==s||s.emit("click",e)}function B(e){var t;(null==(t=null==i?void 0:i.vnode.props)?void 0:t.onMouseover)?n("mouseover",e):null==s||s.emit("mouseover",e)}function L(e){var t;(null==(t=null==i?void 0:i.vnode.props)?void 0:t.onMouseleave)?n("mouseleave",e):null==s||s.emit("mouseleave",e)}return(t,l)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(h)),e.mergeProps(e.unref(k),{ref_key:"element",ref:u,class:{active:t.active,pressed:e.unref(p),disabled:t.disabled,current:t.current},onClickPassive:S,onMouseoverPassive:B,onMouseleavePassive:L}),{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default",{},(()=>[e.createTextVNode(e.toDisplayString(t.label),1)]))])),_:3},16,["class"]))}});const F={...E,...j,...x,...R,...V,...I,iconPosition:{type:String,default:s.left,validator:e=>Object.values(s).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 z(t,l){const{group:o,isInGroup:a,getGroupOrLocalRef:n}=function(t){const l=e.inject(t,void 0),o=e.computed((()=>void 0!==l));return{group:l,isInGroup:o,getGroupOrLocalRef:function(t,o,a){const n=null==l?void 0:l[t];if(n)return e.computed({get:()=>n.value,set(e){n.value=e}});const i=e.toRef(o,t);return e.computed({get:()=>i.value,set(e){a&&a(`update:${t}`,e)}})}}}(m),{id:i,iconPosition:r,icon:u,label:d,pressed:s}=e.toRefs(t),c=n("modelValue",t,l),v=n("toggle",t),f=n("unselectable",t),p=e.computed((()=>(null==o?void 0:o.multiple.value)??!1)),g=e.computed((()=>{let e=t.modifiers,l=null==o?void 0:o.modifiers.value;const a=new Set;return e&&(Array.isArray(e)||(e=e.split(" ")),e.forEach((e=>a.add(e)))),l&&(Array.isArray(l)||(l=l.split(" ")),l.forEach((e=>a.add(e)))),Array.from(a)})),b=e.computed((()=>Boolean(t.disabled||(null==o?void 0:o.disabled.value))));return{group:o,isInGroup:a,modelValue:c,toggle:v,unselectable:f,multiple:p,modifiers:g,disabled:b,id:i,pressed:s,iconPosition:r,icon:u,label:d}}function U(t){return e.computed((()=>String((null==t?void 0:t.value)||a.uid())))}function T(e,t,l){return l?H(e,l)===H(t,l):q(e,t)}function q(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){const l=Array.isArray(e),o=Array.isArray(t);let a,n,i;if(l&&o){if(n=e.length,n!==t.length)return!1;for(a=n;0!=a--;)if(!q(e[a],t[a]))return!1;return!0}if(l!==o)return!1;const r=e instanceof Date,u=t instanceof Date;if(r!==u)return!1;if(r&&u)return e.getTime()===t.getTime();const d=e instanceof RegExp,s=t instanceof RegExp;if(d!==s)return!1;if(d&&s)return e.toString()===t.toString();const c=Object.keys(e);if(n=c.length,n!==Object.keys(t).length)return!1;for(a=n;0!=a--;)if(!Object.prototype.hasOwnProperty.call(t,c[a]))return!1;for(a=n;0!=a--;)if(i=c[a],!q(e[i],t[i]))return!1;return!0}return Number.isNaN(e)&&Number.isNaN(t)}function H(e,t){if(e&&Object.keys(e).length&&t){if(t.includes(".")){const l=t.split(".");let o=e;for(let t=0,a=l.length;t<a;++t){if(null==e)return null;o=o[l[t]]}return o}return e[t]}return null}function G(e,t){if(null!=e&&t&&t.length)for(const l of t)if(T(e,l))return!0;return!1}function J(t,l){const o=e.computed((()=>"string"==typeof(null==t?void 0:t.value)?{name:null==t?void 0:t.value}:null==t?void 0:t.value)),a=e.computed((()=>(null==l?void 0:l.value)===c.before?o.value:void 0)),n=e.computed((()=>(null==l?void 0:l.value)===c.after?o.value:void 0)),i=e.computed((()=>(null==l?void 0:l.value)===s.left?o.value:void 0)),r=e.computed((()=>(null==l?void 0:l.value)===s.right?o.value:void 0)),u=e.computed((()=>(null==l?void 0:l.value)===s.top?o.value:void 0)),d=e.computed((()=>(null==l?void 0:l.value)===s.bottom?o.value:void 0));return{hasIcon:o,hasIconLeft:i,hasIconRight:r,hasIconTop:u,hasIconBottom:d,hasIconBefore:a,hasIconAfter:n}}const K={key:1,class:"vv-button__label"},Q={key:1,class:"vv-button__label"},W=e.defineComponent({name:"VvButton",inheritAttrs:!1,props:F,emits:["update:modelValue"],setup(t,{expose:l,emit:o}){const a=t,n=o,i=e.useAttrs(),r=e.useSlots(),{id:u,modifiers:d,iconPosition:c,icon:v,label:f,modelValue:p,disabled:m,toggle:g,unselectable:b}=z(a,n),y=U(u),S=e.computed((()=>(null==i?void 0:i.name)||y.value)),B=e.ref(null);l({$el:e.computed((()=>{var e;return null==(e=B.value)?void 0:e.$el}))});const L=e.computed((()=>g.value?Array.isArray(p.value)?G(S.value,p.value):T(S.value,p.value):a.pressed)),V=h("vv-button",d,e.computed((()=>({reverse:[s.right,s.bottom].includes(c.value),column:[s.top,s.bottom].includes(c.value),"icon-only":Boolean((null==v?void 0:v.value)&&!(null==f?void 0:f.value)&&!r.default)})))),{hasIcon:w}=J(v),A=e.computed((()=>void 0!==a.value?a.value:S.value)),$=e.computed((()=>{if(g.value)return{onClick:C}}));function C(){if(g.value){if(Array.isArray(p.value))return G(A.value,p.value)?void(b.value&&(p.value=p.value.filter((e=>e!==A.value)))):void p.value.push(A.value);if(A.value===p.value&&b.value)return void(p.value=a.uncheckedValue);p.value=A.value}}return(t,l)=>(e.openBlock(),e.createBlock(M,e.mergeProps({...e.unref(i),...e.unref($),disabled:e.unref(m),pressed:e.unref(L),active:t.active,type:t.type,to:t.to,href:t.href,target:t.target,rel:t.rel,ariaLabel:t.ariaLabel},{id:e.unref(y),ref_key:"element",ref:B,class:e.unref(V)}),{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default",{},(()=>[t.loading?e.renderSlot(t.$slots,"loading",{key:0},(()=>[t.loadingIcon?(e.openBlock(),e.createBlock(k,{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",K,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(w)?(e.openBlock(),e.createBlock(k,e.mergeProps({key:0},e.unref(w),{class:"vv-button__icon"}),null,16)):e.createCommentVNode("v-if",!0),e.unref(f)?(e.openBlock(),e.createElementBlock("span",Q,[e.renderSlot(t.$slots,"label",{},(()=>[e.createTextVNode(e.toDisplayString(e.unref(f)),1)]))])):e.createCommentVNode("v-if",!0),e.renderSlot(t.$slots,"after")],64))]))])),_:3},16,["id","class"]))}});function X(e){return Array.isArray(e)?e.filter((e=>{return"string"==typeof(t=e)||t instanceof String;var t})).join(" "):e}const Y={...P,...x,...B,...L,..._,...N,...V,...O,...I,modelValue:{type:Object},progress:{type:[Number,String],default:void 0},placeholder:{type:String,default:void 0},accept:{type:String,default:"*"},multiple:{type:Boolean,default:!1},capture:{type:String,default:void 0,validation:e=>void 0===e||["user","environment"].includes(e)},max:{type:[Number,String],default:void 0},dropArea:{type:Boolean,default:!1},sortable:{type:Boolean,default:!1},labelAdd:{type:String,default:"Add file"},iconAdd:{type:[String,Object],default:n},labelReplace:{type:String,default:"Replace file"},iconReplace:{type:[String,Object],default:i},labelDownload:{type:String,default:"Downlaod file"},iconDownload:{type:[String,Object],default:r},labelRemove:{type:String,default:"Remove file"}};const Z=["for"],ee={class:"vv-input-file__preview"},te=["src","alt"],le={class:"vv-input-file__wrapper"},oe=["id","readonly","placeholder","aria-describedby","aria-invalid","aria-errormessage","multiple","accept","capture","name"],ae=["value"],ne=["onClick"],ie=["title","onClick"],re={class:"vv-input-file__item-name"},ue={class:"vv-input-file__item-info"},de=["title","onClick"];return e.defineComponent({name:"VvInputFile",props:Y,emits:["update:modelValue"],setup(o,{emit:a}){const n=o,i=a,r=e.useSlots(),u=function(t,l,o){const a=y(),n=e.computed((()=>{var e;if(a&&(null==(e=a.defaults.value)?void 0:e[t]))return a.defaults.value[t]}));return e.computed((()=>{if(void 0===n.value)return o;const e=n.value,t=l,a=o;return Object.keys(t).reduce(((l,o)=>{const n=a[o];if(l[o]=n,o in e){if(Array.isArray(t[o])){const a=t[o];a.length&&a[0]===n&&(l[o]=e[o])}if("function"==typeof t[o]&&(0,t[o])()===n&&(l[o]=e[o]),"object"==typeof t[o]){let a=t[o].default;"function"==typeof a&&(a=a()),"object"==typeof a?JSON.stringify(a)===JSON.stringify(n)&&(l[o]=e[o]):a===n&&(l[o]=e[o])}}return l}),{})}))}("VvInputFile",Y,n),{modifiers:d,id:s,readonly:c,icon:v,iconPosition:f,iconDownload:p}=e.toRefs(n),m=U(s),g=e.computed((()=>`${m.value}-hint`)),b=e.computed((()=>{if(!n.progress)return!1;const e="string"==typeof n.progress?Number.parseInt(n.progress):n.progress;return e>0&&e<100})),{hasIconBefore:S,hasIconAfter:B}=J(v,f),{hasIcon:L}=J(p),V=h("vv-input-file",d,e.computed((()=>({dragging:R.value,loading:n.loading&&!b.value,valid:!0===n.valid,invalid:!0===n.invalid,"icon-before":!!S.value,"icon-after":!!B.value,"drop-area":_.value})))),{HintSlot:w,hasHintLabelOrSlot:A,hasInvalidLabelOrSlot:$,hintSlotScope:C}=function(t,l){const o=e.computed((()=>e.isRef(t)?t.value:t)),a=e.computed((()=>X(o.value.invalidLabel))),n=e.computed((()=>X(o.value.validLabel))),i=e.computed((()=>o.value.loadingLabel)),r=e.computed((()=>o.value.hintLabel)),u=e.computed((()=>Boolean(o.value.loading&&(l.loading||i.value)))),d=e.computed((()=>!u.value&&Boolean(o.value.invalid&&(l.invalid||a.value)))),s=e.computed((()=>!u.value&&!d.value&&Boolean(o.value.valid&&(l.valid||n.value)))),c=e.computed((()=>!u.value&&!d.value&&!s.value&&Boolean(l.hint||r.value))),v=e.computed((()=>d.value||s.value||u.value||c.value)),f=e.computed((()=>({modelValue:o.value.modelValue,valid:o.value.valid,invalid:o.value.invalid,loading:o.value.loading}))),p=e.defineComponent({name:"HintSlot",props:{tag:{type:String,default:"small"}},setup:()=>({isVisible:v,invalidLabel:a,validLabel:n,loadingLabel:i,hintLabel:r,hasInvalidLabelOrSlot:d,hasValidLabelOrSlot:s,hasLoadingLabelOrSlot:u,hasHintLabelOrSlot:c}),render(){var t,l,o,a,n,i,r,u;if(this.isVisible){let d;return this.hasInvalidLabelOrSlot&&(d="alert"),this.hasValidLabelOrSlot&&(d="status"),this.hasLoadingLabelOrSlot?e.h(this.tag,{role:d},(null==(l=(t=this.$slots).loading)?void 0:l.call(t))??this.loadingLabel):this.hasInvalidLabelOrSlot?e.h(this.tag,{role:d},(null==(a=(o=this.$slots).invalid)?void 0:a.call(o))??this.$slots.invalid??this.invalidLabel):this.hasValidLabelOrSlot?e.h(this.tag,{role:d},(null==(i=(n=this.$slots).valid)?void 0:i.call(n))??this.validLabel):e.h(this.tag,{role:d},(null==(u=(r=this.$slots).hint)?void 0:u.call(r))??this.$slots.hint??this.hintLabel)}return null}});return{hasInvalidLabelOrSlot:d,hasHintLabelOrSlot:c,hasValidLabelOrSlot:s,hasLoadingLabelOrSlot:u,hintSlotScope:f,HintSlot:p}}(u,r),N=t.useVModel(n,"modelValue",i),O=e.computed({get:()=>{var e;return N.value&&(Array.isArray(N.value)||(null==(e=N.value)?void 0:e.name))?Array.isArray(N.value)?N.value:[N.value]:[]},set:e=>{I.value?N.value=e:N.value=null==e?void 0:e[0]}}),x=e.computed((()=>"string"==typeof n.max?Number.parseInt(n.max):n.max)),_=e.computed((()=>n.dropArea&&!c.value)),I=e.computed((()=>!!n.multiple&&(!x.value||x.value-O.value.length>1))),R=e.ref(!1),j=e.ref();function P(){R.value=!0}function E(){R.value=!1}function D(e){var t,l;(null==(t=e.dataTransfer)?void 0:t.files)&&(R.value=!1,F(null==(l=e.dataTransfer)?void 0:l.files))}function M(){var e;(null==(e=j.value)?void 0:e.files)&&(F(j.value.files),j.value.value="")}function F(e){if(!n.multiple)return Array.isArray(N.value)?void(N.value=[...e]):void(N.value=e[0]);let t=[];t=!Array.isArray(N.value)&&N.value?[N.value]:N.value&&Array.isArray(N.value)?[...N.value]:t;for(const l of e){if(x.value&&t.length>=x.value)break;t.push(l)}N.value=t,T.value=t.length-1}function z(){j.value&&(c.value||j.value.click())}const T=e.ref(0),q=["image/jpeg","image/png"],H=e.computed((()=>{if(0===O.value.length)return;if(!O.value[T.value])return;if(O.value[T.value]instanceof File){const e=O.value[T.value];if(!q.includes(e.type))return;return URL.createObjectURL(e)}const e=O.value[T.value];return e.thumbnailUrl?e.thumbnailUrl:q.includes(e.type)?e.url:void 0}));function G(e){if(e)return Math.floor(e/1024)}e.watch(H,((e,t)=>{t&&URL.revokeObjectURL(t)})),e.onBeforeUnmount((()=>{H.value&&URL.revokeObjectURL(H.value)}));const K=e.computed((()=>0===O.value.length||I.value?n.labelAdd:n.labelReplace)),Q=e.computed((()=>0===O.value.length||I.value?n.iconAdd:n.iconReplace));function se({newIndex:e}){null!==e&&(T.value=e)}return(t,o)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(V))},[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:e.unref(m)},e.toDisplayString(t.label),9,Z)):e.createCommentVNode("v-if",!0),_.value?(e.openBlock(),e.createElementBlock("div",{key:1,class:"vv-input-file__drop-area",onDragenter:e.withModifiers(P,["prevent","stop"]),onDragleave:e.withModifiers(E,["prevent","stop"]),onDrop:e.withModifiers(D,["prevent","stop"]),onDragover:o[0]||(o[0]=e.withModifiers((()=>{}),["prevent","stop"])),onClick:e.withModifiers(z,["stop"])},[e.renderSlot(t.$slots,"drop-area",{},(()=>[e.createElementVNode("picture",ee,[H.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:H.value,alt:O.value[T.value].name},null,8,te)):e.createCommentVNode("v-if",!0)]),e.unref(c)?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createBlock(W,{key:0,modifiers:"action",label:H.value?void 0:K.value,title:H.value?K.value:void 0,class:e.normalizeClass({"vv-input-file__drop-area-action":H.value}),icon:Q.value,onClick:e.withModifiers(z,["stop"])},null,8,["label","title","class","icon"]))]))],32)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",le,[e.unref(S)?(e.openBlock(),e.createBlock(k,e.normalizeProps(e.mergeProps({key:0},e.unref(S))),null,16)):e.createCommentVNode("v-if",!0),e.createElementVNode("input",{id:e.unref(m),ref_key:"inputEl",ref:j,type:"file",readonly:e.unref(c),placeholder:t.placeholder,"aria-describedby":e.unref(A)?g.value:void 0,"aria-invalid":t.invalid,"aria-errormessage":e.unref($)?g.value:void 0,multiple:I.value,accept:t.accept,capture:t.capture,name:t.name,onChange:M},null,40,oe),b.value?(e.openBlock(),e.createElementBlock("progress",{key:1,class:"vv-input-file__progress",value:t.progress,max:"100"},e.toDisplayString(t.progress)+"% ",9,ae)):e.createCommentVNode("v-if",!0),e.unref(B)?(e.openBlock(),e.createBlock(k,e.normalizeProps(e.mergeProps({key:2},e.unref(B))),null,16)):e.createCommentVNode("v-if",!0)]),e.createVNode(e.unref(l),{modelValue:O.value,"onUpdate:modelValue":o[1]||(o[1]=e=>O.value=e),tag:"ul",class:"vv-input-file__list","item-key":"name",move:()=>t.sortable,onEnd:se},{item:e.withCtx((({element:l,index:o})=>[e.createElementVNode("li",{class:e.normalizeClass(["vv-input-file__item",{active:o===T.value&&_.value&&O.value.length>1,"cursor-move":t.sortable}]),onClick:e.withModifiers((e=>function(e){T.value=e}(o)),["stop"])},[e.unref(L)?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"vv-input-file__item-action",title:t.labelDownload,onClick:e.withModifiers((e=>function(e){const t=document.createElement("a");e instanceof File?t.href=URL.createObjectURL(e):e.url&&(t.href=e.url),t.setAttribute("download",e.name),document.body.appendChild(t),t.click(),document.body.removeChild(t),URL.revokeObjectURL(t.href)}(l)),["stop"])},[e.createVNode(k,e.normalizeProps(e.guardReactiveProps(e.unref(L))),null,16)],8,ie)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",re,e.toDisplayString(l.name),1),e.createElementVNode("small",ue,e.toDisplayString(G(l.size))+" KB ",1),e.unref(c)?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"vv-input-file__item-remove",title:t.labelRemove,onClick:e.withModifiers((e=>function(e){if(!Array.isArray(N.value))return void(N.value=void 0);T.value===e&&(T.value=0);const t=[...N.value];t.splice(e,1),N.value=t}(o)),["stop"])},null,8,de))],10,ne)])),_:1},8,["modelValue","move"]),e.createVNode(e.unref(w),{id:g.value,class:"vv-input-file__hint"},e.createSlots({_:2},[t.$slots.hint?{name:"hint",fn:e.withCtx((()=>[e.renderSlot(t.$slots,"hint",e.normalizeProps(e.guardReactiveProps(e.unref(C))))])),key:"0"}:void 0,t.$slots.loading?{name:"loading",fn:e.withCtx((()=>[e.renderSlot(t.$slots,"loading",e.normalizeProps(e.guardReactiveProps(e.unref(C))))])),key:"1"}:void 0,t.$slots.valid?{name:"valid",fn:e.withCtx((()=>[e.renderSlot(t.$slots,"valid",e.normalizeProps(e.guardReactiveProps(e.unref(C))))])),key:"2"}:void 0,t.$slots.invalid?{name:"invalid",fn:e.withCtx((()=>[e.renderSlot(t.$slots,"invalid",e.normalizeProps(e.guardReactiveProps(e.unref(C))))])),key:"3"}:void 0]),1032,["id"])],2))}})}));
@@ -307,10 +307,10 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
307
307
  loadingLabel: string;
308
308
  multiple: boolean;
309
309
  hintLabel: string;
310
- invalid: boolean;
311
- invalidLabel: string | unknown[];
312
310
  valid: boolean;
313
311
  validLabel: string | unknown[];
312
+ invalid: boolean;
313
+ invalidLabel: string | unknown[];
314
314
  placeholder: string;
315
315
  accept: string;
316
316
  max: string | number;
@@ -1,5 +1,5 @@
1
- import type { UploadedFile } from '@/types';
2
1
  import { type VvIconProps } from '../VvIcon';
2
+ import type { UploadedFile } from '@/types';
3
3
  export type VvInputFileEvents = {
4
4
  'update:modelValue': [
5
5
  File | UploadedFile | (File | UploadedFile)[] | undefined
@@ -162,7 +162,10 @@ export declare const VvInputFileProps: {
162
162
  default: string;
163
163
  };
164
164
  label: {
165
- type: (StringConstructor | NumberConstructor)[];
165
+ type: (StringConstructor | NumberConstructor)[]; /**
166
+ * VvIcon name for replace button
167
+ * @see VVIcon
168
+ */
166
169
  default: undefined;
167
170
  };
168
171
  hintLabel: {
@@ -187,10 +190,7 @@ export declare const VvInputFileProps: {
187
190
  };
188
191
  modifiers: {
189
192
  type: globalThis.PropType<string | string[]>;
190
- default: undefined; /**
191
- * VvIcon name for download button
192
- * @see VVIcon
193
- */
193
+ default: undefined;
194
194
  };
195
195
  name: {
196
196
  type: StringConstructor;