@volverjs/ui-vue 0.0.10-beta.9 → 0.0.11

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 (1165) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +150 -54
  3. package/bin/icons.cjs +1 -1
  4. package/bin/icons.js +26 -22
  5. package/dist/Volver.d.ts +24 -12
  6. package/dist/components/VvAccordion/VvAccordion.es.js +140 -274
  7. package/dist/components/VvAccordion/VvAccordion.umd.js +1 -1
  8. package/dist/components/VvAccordion/VvAccordion.vue.d.ts +36 -15
  9. package/dist/components/VvAccordion/index.d.ts +8 -9
  10. package/dist/components/VvAccordionGroup/VvAccordionGroup.es.js +399 -357
  11. package/dist/components/VvAccordionGroup/VvAccordionGroup.umd.js +1 -1
  12. package/dist/components/VvAccordionGroup/VvAccordionGroup.vue.d.ts +67 -19
  13. package/dist/components/VvAccordionGroup/index.d.ts +16 -8
  14. package/dist/components/VvAction/VvAction.es.js +63 -144
  15. package/dist/components/VvAction/VvAction.umd.js +1 -1
  16. package/dist/components/VvAction/VvAction.vue.d.ts +54 -30
  17. package/dist/components/VvAction/index.d.ts +22 -10
  18. package/dist/components/VvAlert/VvAlert.es.js +250 -453
  19. package/dist/components/VvAlert/VvAlert.umd.js +1 -1
  20. package/dist/components/VvAlert/VvAlert.vue.d.ts +41 -26
  21. package/dist/components/VvAlert/index.d.ts +20 -11
  22. package/dist/components/VvAlertGroup/VvAlertGroup.es.js +253 -446
  23. package/dist/components/VvAlertGroup/VvAlertGroup.umd.js +1 -1
  24. package/dist/components/VvAlertGroup/VvAlertGroup.vue.d.ts +29 -21
  25. package/dist/components/VvAlertGroup/index.d.ts +10 -18
  26. package/dist/components/VvAvatar/VvAvatar.es.js +23 -199
  27. package/dist/components/VvAvatar/VvAvatar.umd.js +1 -1
  28. package/dist/components/VvAvatar/VvAvatar.vue.d.ts +16 -7
  29. package/dist/components/VvAvatar/index.d.ts +4 -1
  30. package/dist/components/VvAvatarGroup/VvAvatarGroup.es.js +54 -226
  31. package/dist/components/VvAvatarGroup/VvAvatarGroup.umd.js +1 -1
  32. package/dist/components/VvAvatarGroup/VvAvatarGroup.vue.d.ts +20 -12
  33. package/dist/components/VvAvatarGroup/index.d.ts +6 -3
  34. package/dist/components/VvBadge/VvBadge.es.js +20 -200
  35. package/dist/components/VvBadge/VvBadge.umd.js +1 -1
  36. package/dist/components/VvBadge/VvBadge.vue.d.ts +16 -7
  37. package/dist/components/VvBadge/index.d.ts +4 -1
  38. package/dist/components/VvBreadcrumb/VvBreadcrumb.es.js +88 -174
  39. package/dist/components/VvBreadcrumb/VvBreadcrumb.umd.js +1 -1
  40. package/dist/components/VvBreadcrumb/VvBreadcrumb.vue.d.ts +32 -22
  41. package/dist/components/VvBreadcrumb/index.d.ts +5 -2
  42. package/dist/components/VvButton/VvButton.es.js +427 -554
  43. package/dist/components/VvButton/VvButton.umd.js +1 -1
  44. package/dist/components/VvButton/VvButton.vue.d.ts +99 -55
  45. package/dist/components/VvButton/index.d.ts +48 -30
  46. package/dist/components/VvButtonGroup/VvButtonGroup.es.js +46 -207
  47. package/dist/components/VvButtonGroup/VvButtonGroup.umd.js +1 -1
  48. package/dist/components/VvButtonGroup/VvButtonGroup.vue.d.ts +39 -19
  49. package/dist/components/VvButtonGroup/index.d.ts +13 -4
  50. package/dist/components/VvCard/VvCard.es.js +19 -198
  51. package/dist/components/VvCard/VvCard.umd.js +1 -1
  52. package/dist/components/VvCard/VvCard.vue.d.ts +22 -10
  53. package/dist/components/VvCard/index.d.ts +4 -1
  54. package/dist/components/VvCheckbox/VvCheckbox.es.js +139 -303
  55. package/dist/components/VvCheckbox/VvCheckbox.umd.js +1 -1
  56. package/dist/components/VvCheckbox/VvCheckbox.vue.d.ts +120 -45
  57. package/dist/components/VvCheckbox/index.d.ts +52 -19
  58. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.es.js +308 -444
  59. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.umd.js +1 -1
  60. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.vue.d.ts +127 -44
  61. package/dist/components/VvCheckboxGroup/index.d.ts +49 -12
  62. package/dist/components/VvCombobox/VvCombobox.es.js +2402 -2133
  63. package/dist/components/VvCombobox/VvCombobox.umd.js +1 -1
  64. package/dist/components/VvCombobox/VvCombobox.vue.d.ts +333 -774
  65. package/dist/components/VvCombobox/index.d.ts +468 -132
  66. package/dist/components/VvDialog/VvDialog.es.js +129 -482
  67. package/dist/components/VvDialog/VvDialog.umd.js +1 -1
  68. package/dist/components/VvDialog/VvDialog.vue.d.ts +30 -11
  69. package/dist/components/VvDialog/index.d.ts +12 -0
  70. package/dist/components/VvDropdown/VvDropdown.es.js +117 -165
  71. package/dist/components/VvDropdown/VvDropdown.umd.js +1 -1
  72. package/dist/components/VvDropdown/VvDropdown.vue.d.ts +120 -332
  73. package/dist/components/VvDropdown/VvDropdownAction.vue.d.ts +65 -29
  74. package/dist/components/VvDropdown/VvDropdownItem.vue.d.ts +16 -3
  75. package/dist/components/VvDropdown/VvDropdownOptgroup.vue.d.ts +14 -5
  76. package/dist/components/VvDropdown/VvDropdownOption.vue.d.ts +44 -14
  77. package/dist/components/VvDropdown/index.d.ts +52 -118
  78. package/dist/components/VvDropdownAction/VvDropdownAction.es.js +97 -162
  79. package/dist/components/VvDropdownAction/VvDropdownAction.umd.js +1 -1
  80. package/dist/components/VvDropdownItem/VvDropdownItem.es.js +90 -4
  81. package/dist/components/VvDropdownItem/VvDropdownItem.umd.js +1 -1
  82. package/dist/components/VvDropdownOptgroup/VvDropdownOptgroup.es.js +18 -186
  83. package/dist/components/VvDropdownOptgroup/VvDropdownOptgroup.umd.js +1 -1
  84. package/dist/components/VvDropdownOption/VvDropdownOption.es.js +116 -250
  85. package/dist/components/VvDropdownOption/VvDropdownOption.umd.js +1 -1
  86. package/dist/components/VvIcon/VvIcon.es.js +41 -120
  87. package/dist/components/VvIcon/VvIcon.umd.js +1 -1
  88. package/dist/components/VvIcon/VvIcon.vue.d.ts +5 -68
  89. package/dist/components/VvIcon/index.d.ts +34 -49
  90. package/dist/components/VvInputFile/VvInputFile.es.js +1704 -0
  91. package/dist/components/VvInputFile/VvInputFile.umd.js +1 -0
  92. package/dist/components/VvInputFile/VvInputFile.vue.d.ts +331 -0
  93. package/dist/components/VvInputFile/index.d.ts +197 -0
  94. package/dist/components/VvInputText/VvInputText.es.js +1607 -626
  95. package/dist/components/VvInputText/VvInputText.umd.js +1 -1
  96. package/dist/components/VvInputText/VvInputText.vue.d.ts +256 -90
  97. package/dist/components/VvInputText/VvInputTextActions.d.ts +4 -3
  98. package/dist/components/VvInputText/index.d.ts +116 -44
  99. package/dist/components/VvNav/VvNav.es.js +102 -173
  100. package/dist/components/VvNav/VvNav.umd.js +1 -1
  101. package/dist/components/VvNav/VvNav.vue.d.ts +36 -13
  102. package/dist/components/VvNav/VvNavItem.vue.d.ts +8 -3
  103. package/dist/components/VvNav/VvNavSeparator.vue.d.ts +2 -1
  104. package/dist/components/VvNav/index.d.ts +5 -2
  105. package/dist/components/VvNavItem/VvNavItem.es.js +70 -146
  106. package/dist/components/VvNavItem/VvNavItem.umd.js +1 -1
  107. package/dist/components/VvNavSeparator/VvNavSeparator.es.js +1 -1
  108. package/dist/components/VvNavSeparator/VvNavSeparator.umd.js +1 -1
  109. package/dist/components/VvProgress/VvProgress.es.js +21 -195
  110. package/dist/components/VvProgress/VvProgress.umd.js +1 -1
  111. package/dist/components/VvProgress/VvProgress.vue.d.ts +14 -6
  112. package/dist/components/VvProgress/index.d.ts +4 -1
  113. package/dist/components/VvRadio/VvRadio.es.js +137 -302
  114. package/dist/components/VvRadio/VvRadio.umd.js +1 -1
  115. package/dist/components/VvRadio/VvRadio.vue.d.ts +118 -43
  116. package/dist/components/VvRadio/index.d.ts +50 -17
  117. package/dist/components/VvRadioGroup/VvRadioGroup.es.js +306 -443
  118. package/dist/components/VvRadioGroup/VvRadioGroup.umd.js +1 -1
  119. package/dist/components/VvRadioGroup/VvRadioGroup.vue.d.ts +127 -44
  120. package/dist/components/VvRadioGroup/index.d.ts +49 -12
  121. package/dist/components/VvSelect/VvSelect.es.js +644 -703
  122. package/dist/components/VvSelect/VvSelect.umd.js +1 -1
  123. package/dist/components/VvSelect/VvSelect.vue.d.ts +178 -203
  124. package/dist/components/VvSelect/index.d.ts +221 -16
  125. package/dist/components/VvTab/VvTab.es.js +133 -196
  126. package/dist/components/VvTab/VvTab.umd.js +1 -1
  127. package/dist/components/VvTab/VvTab.vue.d.ts +38 -13
  128. package/dist/components/VvTab/index.d.ts +6 -3
  129. package/dist/components/VvTextarea/VvTextarea.es.js +1395 -585
  130. package/dist/components/VvTextarea/VvTextarea.umd.js +1 -1
  131. package/dist/components/VvTextarea/VvTextarea.vue.d.ts +231 -66
  132. package/dist/components/VvTextarea/index.d.ts +105 -20
  133. package/dist/components/VvTooltip/VvTooltip.es.js +23 -194
  134. package/dist/components/VvTooltip/VvTooltip.umd.js +1 -1
  135. package/dist/components/VvTooltip/VvTooltip.vue.d.ts +19 -11
  136. package/dist/components/VvTooltip/index.d.ts +5 -2
  137. package/dist/components/common/HintSlot.d.ts +8 -9
  138. package/dist/components/common/VvInputClearAction.d.ts +52 -0
  139. package/dist/components/common/VvInputPasswordAction.d.ts +71 -0
  140. package/dist/components/common/VvInputStepAction.d.ts +50 -0
  141. package/dist/components/index.d.ts +10 -0
  142. package/dist/components/index.es.js +3860 -1887
  143. package/dist/components/index.umd.js +1 -1
  144. package/dist/composables/alert/useAlerInject.d.ts +4 -0
  145. package/dist/composables/alert/useAlert.d.ts +71 -6
  146. package/dist/composables/alert/{useProvideAlert.d.ts → useAlertProvide.d.ts} +1 -1
  147. package/dist/composables/dropdown/useDropdownContextmenu.d.ts +18 -0
  148. package/dist/composables/dropdown/useDropdownInject.d.ts +12 -0
  149. package/dist/composables/dropdown/{useProvideDropdown.d.ts → useDropdownProvide.d.ts} +8 -8
  150. package/dist/composables/dropdown/useDropdownVirtualElement.d.ts +17 -0
  151. package/dist/composables/group/useGroupStateInject.d.ts +9 -0
  152. package/dist/composables/group/useGroupStateProvide.d.ts +6 -0
  153. package/dist/composables/index.d.ts +3 -0
  154. package/dist/composables/index.es.js +175 -9
  155. package/dist/composables/index.umd.js +1 -1
  156. package/dist/composables/useBlurhash.d.ts +7 -0
  157. package/dist/composables/useComponentFocus.d.ts +2 -2
  158. package/dist/composables/useComponentIcon.d.ts +9 -8
  159. package/dist/composables/useOptions.d.ts +5 -5
  160. package/dist/composables/usePersistence.d.ts +3 -0
  161. package/dist/composables/useUniqueId.d.ts +1 -1
  162. package/dist/composables/useVolver.d.ts +3 -0
  163. package/dist/constants.d.ts +35 -33
  164. package/dist/directives/index.d.ts +3 -3
  165. package/dist/directives/index.es.js +161 -232
  166. package/dist/directives/index.umd.js +1 -1
  167. package/dist/directives/v-contextmenu.es.js +131 -31
  168. package/dist/directives/v-contextmenu.umd.js +1 -1
  169. package/dist/directives/v-tooltip.d.ts +1 -1
  170. package/dist/directives/v-tooltip.es.js +24 -195
  171. package/dist/directives/v-tooltip.umd.js +1 -1
  172. package/dist/icons.d.ts +17 -17
  173. package/dist/icons.es.js +14 -1884
  174. package/dist/icons.umd.js +1 -1
  175. package/dist/index.d.ts +1 -1
  176. package/dist/index.es.js +89 -16
  177. package/dist/index.umd.js +1 -1
  178. package/dist/props/index.d.ts +314 -200
  179. package/dist/resolvers/unplugin.d.ts +7 -2
  180. package/dist/resolvers/unplugin.es.js +91 -14
  181. package/dist/resolvers/unplugin.umd.js +1 -1
  182. package/dist/stories/Accordion/Accordion.settings.d.ts +2 -57
  183. package/dist/stories/Accordion/Accordion.stories.d.ts +1 -1
  184. package/dist/stories/Accordion/AccordionSlots.stories.d.ts +1 -1
  185. package/dist/stories/AccordionGroup/AccordionGroup.settings.d.ts +2 -66
  186. package/dist/stories/AccordionGroup/AccordionGroup.stories.d.ts +3 -163
  187. package/dist/stories/AccordionGroup/AccordionGroupSlots.stories.d.ts +1648 -788
  188. package/dist/stories/Alert/Alert.settings.d.ts +2 -109
  189. package/dist/stories/Alert/Alert.stories.d.ts +1 -1
  190. package/dist/stories/Alert/AlertModifiers.stories.d.ts +2 -2
  191. package/dist/stories/Alert/AlertSlots.stories.d.ts +2 -2
  192. package/dist/stories/AlertGroup/AlertGroup.settings.d.ts +2 -85
  193. package/dist/stories/AlertGroup/AlertGroup.stories.d.ts +1 -1
  194. package/dist/stories/AlertGroup/AlertGroupPosition.stories.d.ts +2 -2
  195. package/dist/stories/AlertGroup/AlertGroupSlots.stories.d.ts +2 -2
  196. package/dist/stories/AlertGroup/AlertGroupWithComposable.stories.d.ts +3 -3
  197. package/dist/stories/Avatar/Avatar.settings.d.ts +1 -1
  198. package/dist/stories/Avatar/Avatar.stories.d.ts +1 -1
  199. package/dist/stories/Avatar/AvatarBadge.stories.d.ts +1 -1
  200. package/dist/stories/Avatar/AvatarModifiers.stories.d.ts +1 -1
  201. package/dist/stories/Avatar/AvatarSlots.stories.d.ts +1 -1
  202. package/dist/stories/AvatarGroup/AvatarGroup.settings.d.ts +2 -38
  203. package/dist/stories/AvatarGroup/AvatarGroup.stories.d.ts +1 -1
  204. package/dist/stories/AvatarGroup/AvatarGroupModifiers.stories.d.ts +1 -1
  205. package/dist/stories/AvatarGroup/AvatarGroupSlotDefault.stories.d.ts +1 -1
  206. package/dist/stories/Badge/Badge.settings.d.ts +2 -26
  207. package/dist/stories/Badge/Badge.stories.d.ts +1 -1
  208. package/dist/stories/Badge/Badge.test.d.ts +1 -1
  209. package/dist/stories/Badge/BadgeSlots.stories.d.ts +1 -1
  210. package/dist/stories/Blurhash/BlurhashComposable.stories.d.ts +4 -0
  211. package/dist/stories/Breadcrumb/Breadcrumb.settings.d.ts +2 -18
  212. package/dist/stories/Breadcrumb/Breadcrumb.stories.d.ts +1 -1
  213. package/dist/stories/Breadcrumb/Breadcrumb.test.d.ts +1 -1
  214. package/dist/stories/Breadcrumb/BreadcrumbSlots.stories.d.ts +1 -1
  215. package/dist/stories/Button/Button.settings.d.ts +2 -194
  216. package/dist/stories/Button/Button.stories.d.ts +1 -1
  217. package/dist/stories/Button/ButtonIcon.stories.d.ts +1 -1
  218. package/dist/stories/Button/ButtonLink.stories.d.ts +1 -1
  219. package/dist/stories/Button/ButtonLoading.stories.d.ts +1 -1
  220. package/dist/stories/Button/ButtonModifiers.stories.d.ts +1 -1
  221. package/dist/stories/Button/ButtonSlots.stories.d.ts +1 -1
  222. package/dist/stories/Button/ButtonState.stories.d.ts +1 -1
  223. package/dist/stories/Button/ButtonToggle.stories.d.ts +1 -1
  224. package/dist/stories/ButtonGroup/ButtonGroup.settings.d.ts +2 -40
  225. package/dist/stories/ButtonGroup/ButtonGroup.stories.d.ts +1 -1
  226. package/dist/stories/ButtonGroup/ButtonGroupModifiers.stories.d.ts +1 -1
  227. package/dist/stories/ButtonGroup/ButtonGroupSlots.stories.d.ts +1 -1
  228. package/dist/stories/ButtonGroup/ButtonGroupToggle.stories.d.ts +1 -1
  229. package/dist/stories/Card/Card.settings.d.ts +2 -63
  230. package/dist/stories/Card/Card.stories.d.ts +1 -1
  231. package/dist/stories/Card/Card.test.d.ts +1 -1
  232. package/dist/stories/Card/CardSlots.stories.d.ts +1 -1
  233. package/dist/stories/Checkbox/Checkbox.settings.d.ts +2 -132
  234. package/dist/stories/Checkbox/Checkbox.stories.d.ts +1 -1
  235. package/dist/stories/Checkbox/CheckboxBinary.stories.d.ts +1 -1
  236. package/dist/stories/Checkbox/CheckboxSlots.stories.d.ts +1 -1
  237. package/dist/stories/CheckboxGroup/CheckboxGroup.settings.d.ts +1 -141
  238. package/dist/stories/CheckboxGroup/CheckboxGroup.stories.d.ts +1 -1
  239. package/dist/stories/CheckboxGroup/CheckboxGroupOptions.stories.d.ts +1 -1
  240. package/dist/stories/CheckboxGroup/CheckboxGroupSlots.stories.d.ts +1 -1
  241. package/dist/stories/Combobox/Combobox.settings.d.ts +2 -617
  242. package/dist/stories/Combobox/Combobox.stories.d.ts +4 -1
  243. package/dist/stories/Combobox/ComboboxIconPosition.stories.d.ts +1 -1
  244. package/dist/stories/Combobox/ComboboxMultiple.stories.d.ts +2 -1
  245. package/dist/stories/Combobox/ComboboxOptions.stories.d.ts +1 -1
  246. package/dist/stories/Combobox/ComboboxSlots.stories.d.ts +1 -1
  247. package/dist/stories/Dialog/Dialog.settings.d.ts +2 -47
  248. package/dist/stories/Dialog/Dialog.stories.d.ts +1 -1
  249. package/dist/stories/Dialog/DialogModifiers.stories.d.ts +8 -0
  250. package/dist/stories/Dialog/DialogSlots.stories.d.ts +1 -1
  251. package/dist/stories/Dropdown/Dropdown.settings.d.ts +2 -205
  252. package/dist/stories/Dropdown/Dropdown.stories.d.ts +1 -1
  253. package/dist/stories/Dropdown/DropdownContextmenuDirective.stories.d.ts +1 -1
  254. package/dist/stories/Dropdown/DropdownMultilevel.stories.d.ts +1 -1
  255. package/dist/stories/Dropdown/DropdownSlots.stories.d.ts +1 -1
  256. package/dist/stories/Icon/Icon.settings.d.ts +3 -68
  257. package/dist/stories/Icon/Icon.stories.d.ts +1 -1
  258. package/dist/stories/Icon/IconsCollection.stories.d.ts +1 -1
  259. package/dist/stories/InputFile/InputFile.settings.d.ts +6 -0
  260. package/dist/stories/InputFile/InputFile.stories.d.ts +13 -0
  261. package/dist/stories/InputFile/InputFileDropArea.stories.d.ts +9 -0
  262. package/dist/stories/InputFile/InputFileIconPosition.stories.d.ts +8 -0
  263. package/dist/stories/InputFile/InputFileSlots.stories.d.ts +7 -0
  264. package/dist/stories/InputText/InputText.settings.d.ts +2 -438
  265. package/dist/stories/InputText/InputText.stories.d.ts +3 -1
  266. package/dist/stories/InputText/InputText.test.d.ts +3 -0
  267. package/dist/stories/InputText/InputTextIconPosition.stories.d.ts +1 -1
  268. package/dist/stories/InputText/InputTextIso.stories.d.ts +10 -0
  269. package/dist/stories/InputText/InputTextLength.stories.d.ts +1 -1
  270. package/dist/stories/InputText/InputTextMask.stories.d.ts +1 -1
  271. package/dist/stories/InputText/InputTextMinMax.stories.d.ts +1 -1
  272. package/dist/stories/InputText/InputTextSlots.stories.d.ts +1 -1
  273. package/dist/stories/InputText/InputTextType.stories.d.ts +1 -1
  274. package/dist/stories/Nav/Nav.settings.d.ts +2 -10
  275. package/dist/stories/Nav/Nav.stories.d.ts +1 -1
  276. package/dist/stories/Nav/NavModifiers.stories.d.ts +1 -1
  277. package/dist/stories/Progress/Progress.settings.d.ts +2 -27
  278. package/dist/stories/Progress/Progress.stories.d.ts +1 -1
  279. package/dist/stories/Radio/Radio.settings.d.ts +1 -110
  280. package/dist/stories/Radio/Radio.stories.d.ts +1 -1
  281. package/dist/stories/Radio/RadioSlots.stories.d.ts +1 -1
  282. package/dist/stories/RadioGroup/RadioGroup.settings.d.ts +1 -141
  283. package/dist/stories/RadioGroup/RadioGroup.stories.d.ts +1 -1
  284. package/dist/stories/RadioGroup/RadioGroupOptions.stories.d.ts +1 -1
  285. package/dist/stories/RadioGroup/RadioGroupSlots.stories.d.ts +1 -1
  286. package/dist/stories/Select/Select.settings.d.ts +2 -246
  287. package/dist/stories/Select/Select.stories.d.ts +2 -1
  288. package/dist/stories/Select/SelectIconPosition.stories.d.ts +1 -1
  289. package/dist/stories/Select/SelectOptions.stories.d.ts +1 -1
  290. package/dist/stories/Select/SelectSlots.stories.d.ts +1 -1
  291. package/dist/stories/Tab/Tab.settings.d.ts +1 -1
  292. package/dist/stories/Tab/Tab.stories.d.ts +1 -1
  293. package/dist/stories/Textarea/Textarea.settings.d.ts +2 -287
  294. package/dist/stories/Textarea/Textarea.stories.d.ts +1 -1
  295. package/dist/stories/Textarea/TextareaLength.stories.d.ts +1 -1
  296. package/dist/stories/Textarea/TextareaSlots.stories.d.ts +1 -1
  297. package/dist/stories/Textarea/TextareatIconPosition.stories.d.ts +1 -1
  298. package/dist/stories/Tooltip/Tooltip.settings.d.ts +1 -1
  299. package/dist/stories/Tooltip/Tooltip.stories.d.ts +1 -1
  300. package/dist/stories/Tooltip/TooltipDirective.stories.d.ts +1 -1
  301. package/dist/stories/argTypes.d.ts +27 -866
  302. package/dist/test/expect.d.ts +1 -2
  303. package/dist/test/options.d.ts +1 -1
  304. package/dist/test/sleep.d.ts +1 -1
  305. package/dist/types/alert.d.ts +9 -7
  306. package/dist/types/blurhash.d.ts +12 -0
  307. package/dist/types/floating-ui.d.ts +1 -1
  308. package/dist/types/group.d.ts +37 -15
  309. package/dist/types/index.d.ts +2 -0
  310. package/dist/types/input-file.d.ts +9 -0
  311. package/dist/types/nav.d.ts +2 -2
  312. package/dist/utils/DateUtilities.d.ts +31 -0
  313. package/dist/utils/DomUtilities.d.ts +1 -0
  314. package/dist/utils/FileUtilities.d.ts +14 -0
  315. package/dist/utils/ObjectUtilities.d.ts +8 -9
  316. package/dist/workers/blurhash.d.ts +1 -0
  317. package/package.json +360 -379
  318. package/auto-imports.d.ts +0 -316
  319. package/dist/components/VvInputText/VvInputClearAction.d.ts +0 -36
  320. package/dist/components/VvInputText/VvInputPasswordAction.d.ts +0 -56
  321. package/dist/components/VvInputText/VvInputStepAction.d.ts +0 -37
  322. package/dist/composables/alert/useInjectAlert.d.ts +0 -9
  323. package/dist/composables/dropdown/useInjectDropdown.d.ts +0 -32
  324. package/dist/composables/group/useInjectedGroupState.d.ts +0 -10
  325. package/dist/composables/group/useProvideGroupState.d.ts +0 -6
  326. package/env.d.ts +0 -1
  327. package/src/Volver.ts +0 -295
  328. package/src/assets/icons/detailed/add-circle.svg +0 -12
  329. package/src/assets/icons/detailed/add.svg +0 -8
  330. package/src/assets/icons/detailed/align-center.svg +0 -12
  331. package/src/assets/icons/detailed/align-justify.svg +0 -12
  332. package/src/assets/icons/detailed/align-left.svg +0 -12
  333. package/src/assets/icons/detailed/align-right.svg +0 -12
  334. package/src/assets/icons/detailed/analysis-2.svg +0 -20
  335. package/src/assets/icons/detailed/analysis-3.svg +0 -8
  336. package/src/assets/icons/detailed/analysis.svg +0 -16
  337. package/src/assets/icons/detailed/apple.svg +0 -16
  338. package/src/assets/icons/detailed/arrow-down.svg +0 -8
  339. package/src/assets/icons/detailed/arrow-left.svg +0 -8
  340. package/src/assets/icons/detailed/arrow-right.svg +0 -8
  341. package/src/assets/icons/detailed/arrow-up.svg +0 -8
  342. package/src/assets/icons/detailed/attachment.svg +0 -8
  343. package/src/assets/icons/detailed/back-to-front.svg +0 -17
  344. package/src/assets/icons/detailed/bell-active.svg +0 -14
  345. package/src/assets/icons/detailed/bell.svg +0 -14
  346. package/src/assets/icons/detailed/bold.svg +0 -8
  347. package/src/assets/icons/detailed/bookmark-active.svg +0 -12
  348. package/src/assets/icons/detailed/bookmark.svg +0 -12
  349. package/src/assets/icons/detailed/building.svg +0 -26
  350. package/src/assets/icons/detailed/bullet-list.svg +0 -22
  351. package/src/assets/icons/detailed/calendar.svg +0 -26
  352. package/src/assets/icons/detailed/camera-off.svg +0 -12
  353. package/src/assets/icons/detailed/camera-on.svg +0 -17
  354. package/src/assets/icons/detailed/catalog.svg +0 -15
  355. package/src/assets/icons/detailed/certificate.svg +0 -10
  356. package/src/assets/icons/detailed/chat.svg +0 -6
  357. package/src/assets/icons/detailed/check-badge.svg +0 -9
  358. package/src/assets/icons/detailed/check-circle.svg +0 -10
  359. package/src/assets/icons/detailed/check.svg +0 -6
  360. package/src/assets/icons/detailed/checkbox.svg +0 -8
  361. package/src/assets/icons/detailed/chevron-down-circle.svg +0 -10
  362. package/src/assets/icons/detailed/chevron-down.svg +0 -6
  363. package/src/assets/icons/detailed/chevron-left-circle.svg +0 -10
  364. package/src/assets/icons/detailed/chevron-left.svg +0 -6
  365. package/src/assets/icons/detailed/chevron-right-circle.svg +0 -7
  366. package/src/assets/icons/detailed/chevron-up-circle.svg +0 -10
  367. package/src/assets/icons/detailed/chevron-up.svg +0 -6
  368. package/src/assets/icons/detailed/circle.svg +0 -8
  369. package/src/assets/icons/detailed/classroom.svg +0 -38
  370. package/src/assets/icons/detailed/clear-field.svg +0 -14
  371. package/src/assets/icons/detailed/clear-style.svg +0 -9
  372. package/src/assets/icons/detailed/close-circle.svg +0 -14
  373. package/src/assets/icons/detailed/close-loader.svg +0 -6
  374. package/src/assets/icons/detailed/close.svg +0 -8
  375. package/src/assets/icons/detailed/coffee.svg +0 -21
  376. package/src/assets/icons/detailed/color.svg +0 -20
  377. package/src/assets/icons/detailed/contact-us.svg +0 -27
  378. package/src/assets/icons/detailed/copy.svg +0 -10
  379. package/src/assets/icons/detailed/courses.svg +0 -22
  380. package/src/assets/icons/detailed/dashboard.svg +0 -20
  381. package/src/assets/icons/detailed/download.svg +0 -10
  382. package/src/assets/icons/detailed/drag.svg +0 -10
  383. package/src/assets/icons/detailed/duplicate.svg +0 -23
  384. package/src/assets/icons/detailed/edit.svg +0 -16
  385. package/src/assets/icons/detailed/elearning.svg +0 -13
  386. package/src/assets/icons/detailed/email.svg +0 -11
  387. package/src/assets/icons/detailed/error-2.svg +0 -8
  388. package/src/assets/icons/detailed/error.svg +0 -12
  389. package/src/assets/icons/detailed/exercise.svg +0 -26
  390. package/src/assets/icons/detailed/external-link.svg +0 -11
  391. package/src/assets/icons/detailed/extract.svg +0 -20
  392. package/src/assets/icons/detailed/eye-off.svg +0 -15
  393. package/src/assets/icons/detailed/eye-on.svg +0 -8
  394. package/src/assets/icons/detailed/fail.svg +0 -11
  395. package/src/assets/icons/detailed/fast-back.svg +0 -20
  396. package/src/assets/icons/detailed/fast-forward.svg +0 -20
  397. package/src/assets/icons/detailed/file-add.svg +0 -19
  398. package/src/assets/icons/detailed/file-duplicate.svg +0 -16
  399. package/src/assets/icons/detailed/file-remove.svg +0 -17
  400. package/src/assets/icons/detailed/file-required.svg +0 -23
  401. package/src/assets/icons/detailed/file.svg +0 -13
  402. package/src/assets/icons/detailed/filter-2.svg +0 -22
  403. package/src/assets/icons/detailed/filter-active.svg +0 -12
  404. package/src/assets/icons/detailed/filter.svg +0 -12
  405. package/src/assets/icons/detailed/flag.svg +0 -11
  406. package/src/assets/icons/detailed/folder.svg +0 -14
  407. package/src/assets/icons/detailed/full-width.svg +0 -11
  408. package/src/assets/icons/detailed/go-to-back.svg +0 -19
  409. package/src/assets/icons/detailed/grid.svg +0 -20
  410. package/src/assets/icons/detailed/group-add.svg +0 -24
  411. package/src/assets/icons/detailed/group.svg +0 -16
  412. package/src/assets/icons/detailed/heart-active.svg +0 -12
  413. package/src/assets/icons/detailed/heart.svg +0 -12
  414. package/src/assets/icons/detailed/highlighter.svg +0 -10
  415. package/src/assets/icons/detailed/home.svg +0 -12
  416. package/src/assets/icons/detailed/hourglass.svg +0 -12
  417. package/src/assets/icons/detailed/image.svg +0 -15
  418. package/src/assets/icons/detailed/info-badge.svg +0 -9
  419. package/src/assets/icons/detailed/information.svg +0 -12
  420. package/src/assets/icons/detailed/italic.svg +0 -10
  421. package/src/assets/icons/detailed/key.svg +0 -5
  422. package/src/assets/icons/detailed/language.svg +0 -14
  423. package/src/assets/icons/detailed/learning-path.svg +0 -7
  424. package/src/assets/icons/detailed/light-off.svg +0 -10
  425. package/src/assets/icons/detailed/light-on.svg +0 -18
  426. package/src/assets/icons/detailed/link.svg +0 -12
  427. package/src/assets/icons/detailed/lock.svg +0 -13
  428. package/src/assets/icons/detailed/login.svg +0 -11
  429. package/src/assets/icons/detailed/logout.svg +0 -11
  430. package/src/assets/icons/detailed/maximaze.svg +0 -12
  431. package/src/assets/icons/detailed/menu.svg +0 -9
  432. package/src/assets/icons/detailed/merge.svg +0 -20
  433. package/src/assets/icons/detailed/minimize.svg +0 -14
  434. package/src/assets/icons/detailed/mixed-class.svg +0 -40
  435. package/src/assets/icons/detailed/more-horizontal.svg +0 -7
  436. package/src/assets/icons/detailed/more-vertical.svg +0 -7
  437. package/src/assets/icons/detailed/news.svg +0 -12
  438. package/src/assets/icons/detailed/no-prerequisites.svg +0 -13
  439. package/src/assets/icons/detailed/notes.svg +0 -14
  440. package/src/assets/icons/detailed/number-code.svg +0 -34
  441. package/src/assets/icons/detailed/numbered-list.svg +0 -18
  442. package/src/assets/icons/detailed/on-site.svg +0 -22
  443. package/src/assets/icons/detailed/order-down.svg +0 -12
  444. package/src/assets/icons/detailed/order-up.svg +0 -12
  445. package/src/assets/icons/detailed/paste.svg +0 -14
  446. package/src/assets/icons/detailed/pausa.svg +0 -8
  447. package/src/assets/icons/detailed/pdf.svg +0 -12
  448. package/src/assets/icons/detailed/phone.svg +0 -10
  449. package/src/assets/icons/detailed/pin-map.svg +0 -12
  450. package/src/assets/icons/detailed/pin.svg +0 -15
  451. package/src/assets/icons/detailed/pizza.svg +0 -17
  452. package/src/assets/icons/detailed/play.svg +0 -11
  453. package/src/assets/icons/detailed/plug-in.svg +0 -10
  454. package/src/assets/icons/detailed/pointer.svg +0 -12
  455. package/src/assets/icons/detailed/printer.svg +0 -26
  456. package/src/assets/icons/detailed/profile-add.svg +0 -20
  457. package/src/assets/icons/detailed/profile.svg +0 -10
  458. package/src/assets/icons/detailed/push-pin-off.svg +0 -11
  459. package/src/assets/icons/detailed/push-pin-on.svg +0 -9
  460. package/src/assets/icons/detailed/qrcode.svg +0 -28
  461. package/src/assets/icons/detailed/question-badge.svg +0 -10
  462. package/src/assets/icons/detailed/radio.svg +0 -8
  463. package/src/assets/icons/detailed/redo.svg +0 -9
  464. package/src/assets/icons/detailed/relations.svg +0 -32
  465. package/src/assets/icons/detailed/reload.svg +0 -13
  466. package/src/assets/icons/detailed/remove-circle.svg +0 -10
  467. package/src/assets/icons/detailed/remove.svg +0 -5
  468. package/src/assets/icons/detailed/reorder.svg +0 -12
  469. package/src/assets/icons/detailed/repeat.svg +0 -12
  470. package/src/assets/icons/detailed/repository.svg +0 -18
  471. package/src/assets/icons/detailed/request-form.svg +0 -18
  472. package/src/assets/icons/detailed/resize-100%.svg +0 -15
  473. package/src/assets/icons/detailed/resize-height.svg +0 -12
  474. package/src/assets/icons/detailed/resize-width.svg +0 -12
  475. package/src/assets/icons/detailed/search.svg +0 -12
  476. package/src/assets/icons/detailed/sequential-prerequisites.svg +0 -20
  477. package/src/assets/icons/detailed/settings.svg +0 -14
  478. package/src/assets/icons/detailed/share.svg +0 -20
  479. package/src/assets/icons/detailed/sketch.svg +0 -12
  480. package/src/assets/icons/detailed/skills.svg +0 -20
  481. package/src/assets/icons/detailed/skip-back.svg +0 -12
  482. package/src/assets/icons/detailed/skip-forward.svg +0 -13
  483. package/src/assets/icons/detailed/sms.svg +0 -18
  484. package/src/assets/icons/detailed/sso-access.svg +0 -18
  485. package/src/assets/icons/detailed/star-active.svg +0 -6
  486. package/src/assets/icons/detailed/star.svg +0 -6
  487. package/src/assets/icons/detailed/success.svg +0 -10
  488. package/src/assets/icons/detailed/sun.svg +0 -24
  489. package/src/assets/icons/detailed/sunrise.svg +0 -18
  490. package/src/assets/icons/detailed/support.svg +0 -18
  491. package/src/assets/icons/detailed/survey.svg +0 -24
  492. package/src/assets/icons/detailed/table.svg +0 -11
  493. package/src/assets/icons/detailed/tematic-channels.svg +0 -12
  494. package/src/assets/icons/detailed/test.svg +0 -14
  495. package/src/assets/icons/detailed/text-body.svg +0 -8
  496. package/src/assets/icons/detailed/text-edit.svg +0 -11
  497. package/src/assets/icons/detailed/text-style.svg +0 -10
  498. package/src/assets/icons/detailed/time.svg +0 -10
  499. package/src/assets/icons/detailed/toilet-piper.svg +0 -15
  500. package/src/assets/icons/detailed/training-points.svg +0 -16
  501. package/src/assets/icons/detailed/trash.svg +0 -19
  502. package/src/assets/icons/detailed/underline.svg +0 -8
  503. package/src/assets/icons/detailed/undo.svg +0 -9
  504. package/src/assets/icons/detailed/unlock.svg +0 -13
  505. package/src/assets/icons/detailed/upload.svg +0 -10
  506. package/src/assets/icons/detailed/user-add.svg +0 -16
  507. package/src/assets/icons/detailed/user-badge.svg +0 -11
  508. package/src/assets/icons/detailed/user.svg +0 -8
  509. package/src/assets/icons/detailed/video-off.svg +0 -17
  510. package/src/assets/icons/detailed/video-on.svg +0 -16
  511. package/src/assets/icons/detailed/video-rec.svg +0 -19
  512. package/src/assets/icons/detailed/view-card.svg +0 -12
  513. package/src/assets/icons/detailed/view-list.svg +0 -20
  514. package/src/assets/icons/detailed/view.svg +0 -7
  515. package/src/assets/icons/detailed/voice-off.svg +0 -14
  516. package/src/assets/icons/detailed/voice-on.svg +0 -16
  517. package/src/assets/icons/detailed/volume-down.svg +0 -14
  518. package/src/assets/icons/detailed/volume-off.svg +0 -19
  519. package/src/assets/icons/detailed/volume-up.svg +0 -16
  520. package/src/assets/icons/detailed/warning.svg +0 -16
  521. package/src/assets/icons/detailed/webinar.svg +0 -57
  522. package/src/assets/icons/detailed/whiteboard.svg +0 -16
  523. package/src/assets/icons/detailed/wine.svg +0 -22
  524. package/src/assets/icons/detailed/zip.svg +0 -17
  525. package/src/assets/icons/detailed/zoom-in.svg +0 -18
  526. package/src/assets/icons/detailed/zoom-out.svg +0 -16
  527. package/src/assets/icons/detailed.json +0 -1
  528. package/src/assets/icons/normal/add-circle.svg +0 -12
  529. package/src/assets/icons/normal/add.svg +0 -4
  530. package/src/assets/icons/normal/align-center.svg +0 -11
  531. package/src/assets/icons/normal/align-justify.svg +0 -11
  532. package/src/assets/icons/normal/align-left.svg +0 -11
  533. package/src/assets/icons/normal/align-right.svg +0 -11
  534. package/src/assets/icons/normal/analysis-2.svg +0 -18
  535. package/src/assets/icons/normal/analysis-3.svg +0 -8
  536. package/src/assets/icons/normal/analysis.svg +0 -14
  537. package/src/assets/icons/normal/apple.svg +0 -16
  538. package/src/assets/icons/normal/arrow-down.svg +0 -8
  539. package/src/assets/icons/normal/arrow-left.svg +0 -8
  540. package/src/assets/icons/normal/arrow-right.svg +0 -8
  541. package/src/assets/icons/normal/arrow-up.svg +0 -8
  542. package/src/assets/icons/normal/attachment.svg +0 -6
  543. package/src/assets/icons/normal/back-to-front.svg +0 -15
  544. package/src/assets/icons/normal/bell-active.svg +0 -14
  545. package/src/assets/icons/normal/bell.svg +0 -14
  546. package/src/assets/icons/normal/bold.svg +0 -8
  547. package/src/assets/icons/normal/bookmark active.svg +0 -12
  548. package/src/assets/icons/normal/bookmark.svg +0 -10
  549. package/src/assets/icons/normal/building.svg +0 -21
  550. package/src/assets/icons/normal/bulleted-list.svg +0 -23
  551. package/src/assets/icons/normal/calendar.svg +0 -20
  552. package/src/assets/icons/normal/camera-off.svg +0 -17
  553. package/src/assets/icons/normal/camera-on.svg +0 -16
  554. package/src/assets/icons/normal/catalog.svg +0 -13
  555. package/src/assets/icons/normal/certificate.svg +0 -12
  556. package/src/assets/icons/normal/chat.svg +0 -6
  557. package/src/assets/icons/normal/check-badge.svg +0 -9
  558. package/src/assets/icons/normal/check-circle.svg +0 -10
  559. package/src/assets/icons/normal/check.svg +0 -4
  560. package/src/assets/icons/normal/checkbox.svg +0 -8
  561. package/src/assets/icons/normal/chevron-down-circle.svg +0 -10
  562. package/src/assets/icons/normal/chevron-down.svg +0 -6
  563. package/src/assets/icons/normal/chevron-left-circle.svg +0 -10
  564. package/src/assets/icons/normal/chevron-left.svg +0 -6
  565. package/src/assets/icons/normal/chevron-right-circle.svg +0 -10
  566. package/src/assets/icons/normal/chevron-right.svg +0 -7
  567. package/src/assets/icons/normal/chevron-up-circle.svg +0 -10
  568. package/src/assets/icons/normal/chevron-up.svg +0 -6
  569. package/src/assets/icons/normal/circle.svg +0 -8
  570. package/src/assets/icons/normal/classroom.svg +0 -36
  571. package/src/assets/icons/normal/clear-field.svg +0 -14
  572. package/src/assets/icons/normal/clear-style.svg +0 -18
  573. package/src/assets/icons/normal/close-circle.svg +0 -14
  574. package/src/assets/icons/normal/close-loader.svg +0 -6
  575. package/src/assets/icons/normal/close.svg +0 -8
  576. package/src/assets/icons/normal/coffee.svg +0 -26
  577. package/src/assets/icons/normal/color.svg +0 -18
  578. package/src/assets/icons/normal/contact-us.svg +0 -29
  579. package/src/assets/icons/normal/copy.svg +0 -10
  580. package/src/assets/icons/normal/courses.svg +0 -22
  581. package/src/assets/icons/normal/dashboard.svg +0 -18
  582. package/src/assets/icons/normal/download.svg +0 -10
  583. package/src/assets/icons/normal/drag.svg +0 -5
  584. package/src/assets/icons/normal/dulicate.svg +0 -22
  585. package/src/assets/icons/normal/edit.svg +0 -16
  586. package/src/assets/icons/normal/elearning.svg +0 -16
  587. package/src/assets/icons/normal/email.svg +0 -11
  588. package/src/assets/icons/normal/error-2.svg +0 -8
  589. package/src/assets/icons/normal/error.svg +0 -12
  590. package/src/assets/icons/normal/exercise.svg +0 -26
  591. package/src/assets/icons/normal/external-link.svg +0 -11
  592. package/src/assets/icons/normal/extract.svg +0 -14
  593. package/src/assets/icons/normal/eye-off.svg +0 -14
  594. package/src/assets/icons/normal/eye-on.svg +0 -16
  595. package/src/assets/icons/normal/fail.svg +0 -11
  596. package/src/assets/icons/normal/fast-back.svg +0 -19
  597. package/src/assets/icons/normal/fast-forward.svg +0 -17
  598. package/src/assets/icons/normal/file-add.svg +0 -16
  599. package/src/assets/icons/normal/file-duplicate.svg +0 -22
  600. package/src/assets/icons/normal/file-remove.svg +0 -14
  601. package/src/assets/icons/normal/file-required.svg +0 -24
  602. package/src/assets/icons/normal/file.svg +0 -13
  603. package/src/assets/icons/normal/filter-2.svg +0 -20
  604. package/src/assets/icons/normal/filter-active.svg +0 -12
  605. package/src/assets/icons/normal/filter.svg +0 -12
  606. package/src/assets/icons/normal/flag.svg +0 -10
  607. package/src/assets/icons/normal/folder.svg +0 -12
  608. package/src/assets/icons/normal/full-width.svg +0 -9
  609. package/src/assets/icons/normal/go-to-back.svg +0 -19
  610. package/src/assets/icons/normal/grid.svg +0 -20
  611. package/src/assets/icons/normal/group-add.svg +0 -18
  612. package/src/assets/icons/normal/group.svg +0 -14
  613. package/src/assets/icons/normal/heart-active.svg +0 -10
  614. package/src/assets/icons/normal/heart.svg +0 -10
  615. package/src/assets/icons/normal/highlighter.svg +0 -11
  616. package/src/assets/icons/normal/home.svg +0 -12
  617. package/src/assets/icons/normal/hourglass.svg +0 -8
  618. package/src/assets/icons/normal/image.svg +0 -15
  619. package/src/assets/icons/normal/info-badge.svg +0 -9
  620. package/src/assets/icons/normal/information.svg +0 -12
  621. package/src/assets/icons/normal/italic.svg +0 -10
  622. package/src/assets/icons/normal/key.svg +0 -8
  623. package/src/assets/icons/normal/language.svg +0 -14
  624. package/src/assets/icons/normal/learning-path.svg +0 -7
  625. package/src/assets/icons/normal/light-off.svg +0 -10
  626. package/src/assets/icons/normal/light-on.svg +0 -17
  627. package/src/assets/icons/normal/link.svg +0 -12
  628. package/src/assets/icons/normal/lock.svg +0 -12
  629. package/src/assets/icons/normal/login.svg +0 -10
  630. package/src/assets/icons/normal/logout.svg +0 -10
  631. package/src/assets/icons/normal/maximize.svg +0 -10
  632. package/src/assets/icons/normal/menu.svg +0 -8
  633. package/src/assets/icons/normal/merge.svg +0 -20
  634. package/src/assets/icons/normal/minimize.svg +0 -12
  635. package/src/assets/icons/normal/mixed-class.svg +0 -36
  636. package/src/assets/icons/normal/more-horizontal.svg +0 -7
  637. package/src/assets/icons/normal/more-vertical.svg +0 -7
  638. package/src/assets/icons/normal/news.svg +0 -9
  639. package/src/assets/icons/normal/no-prerequisites.svg +0 -12
  640. package/src/assets/icons/normal/notes.svg +0 -15
  641. package/src/assets/icons/normal/number-code.svg +0 -34
  642. package/src/assets/icons/normal/numbered-list.svg +0 -19
  643. package/src/assets/icons/normal/on-site.svg +0 -18
  644. package/src/assets/icons/normal/order-down.svg +0 -12
  645. package/src/assets/icons/normal/order-up.svg +0 -11
  646. package/src/assets/icons/normal/paste.svg +0 -14
  647. package/src/assets/icons/normal/pausa.svg +0 -7
  648. package/src/assets/icons/normal/pdf.svg +0 -12
  649. package/src/assets/icons/normal/phone.svg +0 -10
  650. package/src/assets/icons/normal/pin-map.svg +0 -10
  651. package/src/assets/icons/normal/pin.svg +0 -12
  652. package/src/assets/icons/normal/pizza.svg +0 -17
  653. package/src/assets/icons/normal/play.svg +0 -9
  654. package/src/assets/icons/normal/plug-in.svg +0 -10
  655. package/src/assets/icons/normal/pointer.svg +0 -12
  656. package/src/assets/icons/normal/printer.svg +0 -28
  657. package/src/assets/icons/normal/profile-add.svg +0 -28
  658. package/src/assets/icons/normal/profile.svg +0 -15
  659. package/src/assets/icons/normal/push pin on.svg +0 -9
  660. package/src/assets/icons/normal/push-pin-off.svg +0 -23
  661. package/src/assets/icons/normal/qrcode.svg +0 -26
  662. package/src/assets/icons/normal/question-badge.svg +0 -10
  663. package/src/assets/icons/normal/radio.svg +0 -8
  664. package/src/assets/icons/normal/redo.svg +0 -9
  665. package/src/assets/icons/normal/relations.svg +0 -28
  666. package/src/assets/icons/normal/reload.svg +0 -12
  667. package/src/assets/icons/normal/remove-circle.svg +0 -10
  668. package/src/assets/icons/normal/remove.svg +0 -4
  669. package/src/assets/icons/normal/reorder.svg +0 -12
  670. package/src/assets/icons/normal/repeat.svg +0 -12
  671. package/src/assets/icons/normal/repository.svg +0 -18
  672. package/src/assets/icons/normal/request-form.svg +0 -18
  673. package/src/assets/icons/normal/resize-100%.svg +0 -17
  674. package/src/assets/icons/normal/resize-height.svg +0 -12
  675. package/src/assets/icons/normal/resize-width.svg +0 -12
  676. package/src/assets/icons/normal/search.svg +0 -10
  677. package/src/assets/icons/normal/sequential-prerequisites.svg +0 -20
  678. package/src/assets/icons/normal/settings.svg +0 -14
  679. package/src/assets/icons/normal/share.svg +0 -20
  680. package/src/assets/icons/normal/sketch.svg +0 -11
  681. package/src/assets/icons/normal/skills.svg +0 -16
  682. package/src/assets/icons/normal/skip-back.svg +0 -12
  683. package/src/assets/icons/normal/skip-forward.svg +0 -13
  684. package/src/assets/icons/normal/sms.svg +0 -20
  685. package/src/assets/icons/normal/sso-access.svg +0 -20
  686. package/src/assets/icons/normal/star-active.svg +0 -4
  687. package/src/assets/icons/normal/star.svg +0 -4
  688. package/src/assets/icons/normal/success.svg +0 -10
  689. package/src/assets/icons/normal/sun.svg +0 -24
  690. package/src/assets/icons/normal/sunrise.svg +0 -18
  691. package/src/assets/icons/normal/support.svg +0 -18
  692. package/src/assets/icons/normal/survey.svg +0 -24
  693. package/src/assets/icons/normal/table.svg +0 -11
  694. package/src/assets/icons/normal/tematic-channels.svg +0 -10
  695. package/src/assets/icons/normal/test.svg +0 -15
  696. package/src/assets/icons/normal/text-body.svg +0 -8
  697. package/src/assets/icons/normal/text-edit.svg +0 -11
  698. package/src/assets/icons/normal/text-style.svg +0 -10
  699. package/src/assets/icons/normal/time.svg +0 -10
  700. package/src/assets/icons/normal/toilet-paper.svg +0 -15
  701. package/src/assets/icons/normal/training-points.svg +0 -16
  702. package/src/assets/icons/normal/trash.svg +0 -19
  703. package/src/assets/icons/normal/underline.svg +0 -8
  704. package/src/assets/icons/normal/undo.svg +0 -9
  705. package/src/assets/icons/normal/unlock.svg +0 -13
  706. package/src/assets/icons/normal/upload.svg +0 -10
  707. package/src/assets/icons/normal/user-add.svg +0 -14
  708. package/src/assets/icons/normal/user-badge.svg +0 -11
  709. package/src/assets/icons/normal/user.svg +0 -5
  710. package/src/assets/icons/normal/video-off.svg +0 -11
  711. package/src/assets/icons/normal/video-on.svg +0 -20
  712. package/src/assets/icons/normal/video-rec.svg +0 -23
  713. package/src/assets/icons/normal/view-card.svg +0 -10
  714. package/src/assets/icons/normal/view-list.svg +0 -18
  715. package/src/assets/icons/normal/view.svg +0 -8
  716. package/src/assets/icons/normal/voice-off.svg +0 -18
  717. package/src/assets/icons/normal/voice-on.svg +0 -15
  718. package/src/assets/icons/normal/volume-down.svg +0 -14
  719. package/src/assets/icons/normal/volume-off.svg +0 -18
  720. package/src/assets/icons/normal/volume-up.svg +0 -16
  721. package/src/assets/icons/normal/warning.svg +0 -16
  722. package/src/assets/icons/normal/webinar.svg +0 -36
  723. package/src/assets/icons/normal/whiteboard.svg +0 -17
  724. package/src/assets/icons/normal/wine.svg +0 -22
  725. package/src/assets/icons/normal/zip.svg +0 -19
  726. package/src/assets/icons/normal/zoom-in.svg +0 -16
  727. package/src/assets/icons/normal/zoom-out.svg +0 -14
  728. package/src/assets/icons/normal.json +0 -1
  729. package/src/assets/icons/simple/add-circle.svg +0 -12
  730. package/src/assets/icons/simple/add.svg +0 -8
  731. package/src/assets/icons/simple/align-center.svg +0 -12
  732. package/src/assets/icons/simple/align-justify.svg +0 -12
  733. package/src/assets/icons/simple/align-left.svg +0 -12
  734. package/src/assets/icons/simple/align-right.svg +0 -12
  735. package/src/assets/icons/simple/analysis-2.svg +0 -21
  736. package/src/assets/icons/simple/analysis-3.svg +0 -8
  737. package/src/assets/icons/simple/analysis.svg +0 -16
  738. package/src/assets/icons/simple/apple.svg +0 -18
  739. package/src/assets/icons/simple/arrow-down.svg +0 -8
  740. package/src/assets/icons/simple/arrow-left.svg +0 -8
  741. package/src/assets/icons/simple/arrow-right.svg +0 -8
  742. package/src/assets/icons/simple/arrow-up.svg +0 -8
  743. package/src/assets/icons/simple/attachment.svg +0 -10
  744. package/src/assets/icons/simple/bck-to-front.svg +0 -19
  745. package/src/assets/icons/simple/bell-active.svg +0 -14
  746. package/src/assets/icons/simple/bell.svg +0 -14
  747. package/src/assets/icons/simple/bold.svg +0 -8
  748. package/src/assets/icons/simple/bookmark-active.svg +0 -12
  749. package/src/assets/icons/simple/bookmark.svg +0 -12
  750. package/src/assets/icons/simple/building.svg +0 -25
  751. package/src/assets/icons/simple/bulleted-list.svg +0 -22
  752. package/src/assets/icons/simple/calendar.svg +0 -22
  753. package/src/assets/icons/simple/camera-off.svg +0 -12
  754. package/src/assets/icons/simple/camera-on.svg +0 -16
  755. package/src/assets/icons/simple/catalog.svg +0 -14
  756. package/src/assets/icons/simple/certificate.svg +0 -15
  757. package/src/assets/icons/simple/chat.svg +0 -9
  758. package/src/assets/icons/simple/check-badge.svg +0 -9
  759. package/src/assets/icons/simple/check-circle.svg +0 -10
  760. package/src/assets/icons/simple/check.svg +0 -6
  761. package/src/assets/icons/simple/checkbox.svg +0 -6
  762. package/src/assets/icons/simple/chevron-down-circle.svg +0 -10
  763. package/src/assets/icons/simple/chevron-down.svg +0 -6
  764. package/src/assets/icons/simple/chevron-left-circle.svg +0 -10
  765. package/src/assets/icons/simple/chevron-left.svg +0 -6
  766. package/src/assets/icons/simple/chevron-right-circle.svg +0 -10
  767. package/src/assets/icons/simple/chevron-right.svg +0 -7
  768. package/src/assets/icons/simple/chevron-up-circle.svg +0 -10
  769. package/src/assets/icons/simple/chevron-up.svg +0 -6
  770. package/src/assets/icons/simple/circle.svg +0 -8
  771. package/src/assets/icons/simple/classroom.svg +0 -38
  772. package/src/assets/icons/simple/clear-field.svg +0 -11
  773. package/src/assets/icons/simple/clear-style.svg +0 -15
  774. package/src/assets/icons/simple/close-circle.svg +0 -14
  775. package/src/assets/icons/simple/close-loader.svg +0 -6
  776. package/src/assets/icons/simple/close.svg +0 -10
  777. package/src/assets/icons/simple/coffee.svg +0 -28
  778. package/src/assets/icons/simple/color.svg +0 -20
  779. package/src/assets/icons/simple/contact-us.svg +0 -26
  780. package/src/assets/icons/simple/copy.svg +0 -10
  781. package/src/assets/icons/simple/courses.svg +0 -21
  782. package/src/assets/icons/simple/dashboard.svg +0 -20
  783. package/src/assets/icons/simple/download.svg +0 -10
  784. package/src/assets/icons/simple/drag.svg +0 -10
  785. package/src/assets/icons/simple/duplicate.svg +0 -24
  786. package/src/assets/icons/simple/edit.svg +0 -17
  787. package/src/assets/icons/simple/elearning.svg +0 -17
  788. package/src/assets/icons/simple/email.svg +0 -11
  789. package/src/assets/icons/simple/error-2.svg +0 -8
  790. package/src/assets/icons/simple/error.svg +0 -12
  791. package/src/assets/icons/simple/exercise.svg +0 -30
  792. package/src/assets/icons/simple/external-link.svg +0 -13
  793. package/src/assets/icons/simple/extract.svg +0 -17
  794. package/src/assets/icons/simple/eye-off.svg +0 -13
  795. package/src/assets/icons/simple/eye-on.svg +0 -11
  796. package/src/assets/icons/simple/fail.svg +0 -11
  797. package/src/assets/icons/simple/fast-back.svg +0 -20
  798. package/src/assets/icons/simple/fast-forward.svg +0 -19
  799. package/src/assets/icons/simple/file-add.svg +0 -20
  800. package/src/assets/icons/simple/file-duplicate.svg +0 -22
  801. package/src/assets/icons/simple/file-remove.svg +0 -18
  802. package/src/assets/icons/simple/file-required.svg +0 -24
  803. package/src/assets/icons/simple/file.svg +0 -14
  804. package/src/assets/icons/simple/filter-2.svg +0 -24
  805. package/src/assets/icons/simple/filter-active.svg +0 -13
  806. package/src/assets/icons/simple/filter.svg +0 -12
  807. package/src/assets/icons/simple/flag.svg +0 -12
  808. package/src/assets/icons/simple/folder.svg +0 -14
  809. package/src/assets/icons/simple/full-width.svg +0 -11
  810. package/src/assets/icons/simple/go-to-back.svg +0 -18
  811. package/src/assets/icons/simple/grid.svg +0 -20
  812. package/src/assets/icons/simple/group-add.svg +0 -24
  813. package/src/assets/icons/simple/group.svg +0 -18
  814. package/src/assets/icons/simple/heart-active.svg +0 -12
  815. package/src/assets/icons/simple/heart.svg +0 -12
  816. package/src/assets/icons/simple/highlighter.svg +0 -12
  817. package/src/assets/icons/simple/home.svg +0 -13
  818. package/src/assets/icons/simple/hourglass.svg +0 -11
  819. package/src/assets/icons/simple/image.svg +0 -15
  820. package/src/assets/icons/simple/info-badge.svg +0 -9
  821. package/src/assets/icons/simple/information.svg +0 -12
  822. package/src/assets/icons/simple/italic.svg +0 -12
  823. package/src/assets/icons/simple/key.svg +0 -11
  824. package/src/assets/icons/simple/language.svg +0 -12
  825. package/src/assets/icons/simple/learning-path.svg +0 -9
  826. package/src/assets/icons/simple/light-off.svg +0 -7
  827. package/src/assets/icons/simple/light-on.svg +0 -18
  828. package/src/assets/icons/simple/link.svg +0 -14
  829. package/src/assets/icons/simple/lock.svg +0 -13
  830. package/src/assets/icons/simple/login.svg +0 -11
  831. package/src/assets/icons/simple/logout.svg +0 -11
  832. package/src/assets/icons/simple/maximaze.svg +0 -12
  833. package/src/assets/icons/simple/menu.svg +0 -10
  834. package/src/assets/icons/simple/merge.svg +0 -20
  835. package/src/assets/icons/simple/minimaze.svg +0 -12
  836. package/src/assets/icons/simple/mixed-class.svg +0 -40
  837. package/src/assets/icons/simple/more-horizontal.svg +0 -8
  838. package/src/assets/icons/simple/more-vertical.svg +0 -8
  839. package/src/assets/icons/simple/news.svg +0 -12
  840. package/src/assets/icons/simple/no-prerequisites.svg +0 -17
  841. package/src/assets/icons/simple/notes.svg +0 -14
  842. package/src/assets/icons/simple/number-code.svg +0 -29
  843. package/src/assets/icons/simple/numbered-list.svg +0 -18
  844. package/src/assets/icons/simple/on-site.svg +0 -18
  845. package/src/assets/icons/simple/order-down.svg +0 -12
  846. package/src/assets/icons/simple/order-up.svg +0 -12
  847. package/src/assets/icons/simple/paste.svg +0 -14
  848. package/src/assets/icons/simple/pausa.svg +0 -8
  849. package/src/assets/icons/simple/pdf.svg +0 -12
  850. package/src/assets/icons/simple/phone.svg +0 -10
  851. package/src/assets/icons/simple/pin-map.svg +0 -13
  852. package/src/assets/icons/simple/pin.svg +0 -14
  853. package/src/assets/icons/simple/pizza.svg +0 -17
  854. package/src/assets/icons/simple/play.svg +0 -10
  855. package/src/assets/icons/simple/plug-in.svg +0 -10
  856. package/src/assets/icons/simple/pointer.svg +0 -6
  857. package/src/assets/icons/simple/printer.svg +0 -28
  858. package/src/assets/icons/simple/profile-add.svg +0 -28
  859. package/src/assets/icons/simple/profile.svg +0 -13
  860. package/src/assets/icons/simple/push-pin-off.svg +0 -11
  861. package/src/assets/icons/simple/push-pin-on.svg +0 -12
  862. package/src/assets/icons/simple/qrcode.svg +0 -26
  863. package/src/assets/icons/simple/question-badge.svg +0 -10
  864. package/src/assets/icons/simple/radio.svg +0 -8
  865. package/src/assets/icons/simple/redo.svg +0 -9
  866. package/src/assets/icons/simple/relations.svg +0 -28
  867. package/src/assets/icons/simple/reload.svg +0 -12
  868. package/src/assets/icons/simple/remove-circle.svg +0 -10
  869. package/src/assets/icons/simple/remove.svg +0 -6
  870. package/src/assets/icons/simple/repeart.svg +0 -14
  871. package/src/assets/icons/simple/repository.svg +0 -18
  872. package/src/assets/icons/simple/request-form.svg +0 -20
  873. package/src/assets/icons/simple/resize-100%.svg +0 -15
  874. package/src/assets/icons/simple/resize-height.svg +0 -12
  875. package/src/assets/icons/simple/resize-width.svg +0 -14
  876. package/src/assets/icons/simple/search.svg +0 -10
  877. package/src/assets/icons/simple/sequential-prerequisites.svg +0 -22
  878. package/src/assets/icons/simple/settings.svg +0 -17
  879. package/src/assets/icons/simple/share.svg +0 -21
  880. package/src/assets/icons/simple/sketch.svg +0 -13
  881. package/src/assets/icons/simple/skills.svg +0 -17
  882. package/src/assets/icons/simple/skip-back.svg +0 -14
  883. package/src/assets/icons/simple/skip-forward.svg +0 -14
  884. package/src/assets/icons/simple/sms.svg +0 -22
  885. package/src/assets/icons/simple/sso-access.svg +0 -20
  886. package/src/assets/icons/simple/star-active.svg +0 -6
  887. package/src/assets/icons/simple/star.svg +0 -6
  888. package/src/assets/icons/simple/success.svg +0 -12
  889. package/src/assets/icons/simple/sun.svg +0 -22
  890. package/src/assets/icons/simple/sunrise.svg +0 -18
  891. package/src/assets/icons/simple/support.svg +0 -18
  892. package/src/assets/icons/simple/survey.svg +0 -32
  893. package/src/assets/icons/simple/table.svg +0 -11
  894. package/src/assets/icons/simple/tematic-channels.svg +0 -15
  895. package/src/assets/icons/simple/test.svg +0 -23
  896. package/src/assets/icons/simple/text-body.svg +0 -7
  897. package/src/assets/icons/simple/text-edit.svg +0 -11
  898. package/src/assets/icons/simple/text-style.svg +0 -10
  899. package/src/assets/icons/simple/time.svg +0 -10
  900. package/src/assets/icons/simple/toilet-paper.svg +0 -17
  901. package/src/assets/icons/simple/training-points.svg +0 -18
  902. package/src/assets/icons/simple/trash.svg +0 -20
  903. package/src/assets/icons/simple/underline.svg +0 -9
  904. package/src/assets/icons/simple/undo.svg +0 -9
  905. package/src/assets/icons/simple/unlock.svg +0 -15
  906. package/src/assets/icons/simple/upload.svg +0 -10
  907. package/src/assets/icons/simple/user-add.svg +0 -18
  908. package/src/assets/icons/simple/user-badge.svg +0 -12
  909. package/src/assets/icons/simple/user.svg +0 -8
  910. package/src/assets/icons/simple/video-off.svg +0 -17
  911. package/src/assets/icons/simple/video-on.svg +0 -17
  912. package/src/assets/icons/simple/video-rec.svg +0 -20
  913. package/src/assets/icons/simple/view-card.svg +0 -12
  914. package/src/assets/icons/simple/view-list.svg +0 -20
  915. package/src/assets/icons/simple/view.svg +0 -17
  916. package/src/assets/icons/simple/voice-off.svg +0 -16
  917. package/src/assets/icons/simple/voice-on.svg +0 -16
  918. package/src/assets/icons/simple/volume-down.svg +0 -15
  919. package/src/assets/icons/simple/volume-off.svg +0 -16
  920. package/src/assets/icons/simple/volume-up.svg +0 -16
  921. package/src/assets/icons/simple/warning.svg +0 -14
  922. package/src/assets/icons/simple/webinar.svg +0 -19
  923. package/src/assets/icons/simple/whiteboard.svg +0 -16
  924. package/src/assets/icons/simple/wine.svg +0 -24
  925. package/src/assets/icons/simple/zip.svg +0 -22
  926. package/src/assets/icons/simple/zoom-in.svg +0 -18
  927. package/src/assets/icons/simple/zoom-out.svg +0 -17
  928. package/src/assets/icons/simple.json +0 -1
  929. package/src/components/VvAccordion/VvAccordion.vue +0 -109
  930. package/src/components/VvAccordion/index.ts +0 -96
  931. package/src/components/VvAccordionGroup/VvAccordionGroup.vue +0 -115
  932. package/src/components/VvAccordionGroup/index.ts +0 -50
  933. package/src/components/VvAction/VvAction.vue +0 -148
  934. package/src/components/VvAction/index.ts +0 -5
  935. package/src/components/VvAlert/VvAlert.vue +0 -76
  936. package/src/components/VvAlert/index.ts +0 -162
  937. package/src/components/VvAlertGroup/VvAlertGroup.vue +0 -64
  938. package/src/components/VvAlertGroup/index.ts +0 -132
  939. package/src/components/VvAvatar/VvAvatar.vue +0 -21
  940. package/src/components/VvAvatar/index.ts +0 -9
  941. package/src/components/VvAvatarGroup/VvAvatarGroup.vue +0 -65
  942. package/src/components/VvAvatarGroup/index.ts +0 -28
  943. package/src/components/VvBadge/VvBadge.vue +0 -20
  944. package/src/components/VvBadge/index.ts +0 -6
  945. package/src/components/VvBreadcrumb/VvBreadcrumb.vue +0 -55
  946. package/src/components/VvBreadcrumb/index.ts +0 -7
  947. package/src/components/VvButton/VvButton.vue +0 -164
  948. package/src/components/VvButton/index.ts +0 -132
  949. package/src/components/VvButtonGroup/VvButtonGroup.vue +0 -74
  950. package/src/components/VvButtonGroup/index.ts +0 -28
  951. package/src/components/VvCard/VvCard.vue +0 -37
  952. package/src/components/VvCard/index.ts +0 -6
  953. package/src/components/VvCheckbox/VvCheckbox.vue +0 -198
  954. package/src/components/VvCheckbox/index.ts +0 -65
  955. package/src/components/VvCheckboxGroup/VvCheckboxGroup.vue +0 -99
  956. package/src/components/VvCheckboxGroup/index.ts +0 -5
  957. package/src/components/VvCombobox/VvCombobox.vue +0 -629
  958. package/src/components/VvCombobox/index.ts +0 -179
  959. package/src/components/VvDialog/VvDialog.vue +0 -144
  960. package/src/components/VvDialog/index.ts +0 -42
  961. package/src/components/VvDropdown/VvDropdown.vue +0 -475
  962. package/src/components/VvDropdown/VvDropdownAction.vue +0 -46
  963. package/src/components/VvDropdown/VvDropdownItem.vue +0 -32
  964. package/src/components/VvDropdown/VvDropdownOptgroup.vue +0 -18
  965. package/src/components/VvDropdown/VvDropdownOption.vue +0 -72
  966. package/src/components/VvDropdown/index.ts +0 -32
  967. package/src/components/VvIcon/README.md +0 -64
  968. package/src/components/VvIcon/VvIcon.vue +0 -139
  969. package/src/components/VvIcon/index.ts +0 -103
  970. package/src/components/VvInputText/VvInputClearAction.ts +0 -52
  971. package/src/components/VvInputText/VvInputPasswordAction.ts +0 -68
  972. package/src/components/VvInputText/VvInputStepAction.ts +0 -49
  973. package/src/components/VvInputText/VvInputText.vue +0 -547
  974. package/src/components/VvInputText/VvInputTextActions.ts +0 -97
  975. package/src/components/VvInputText/index.ts +0 -199
  976. package/src/components/VvNav/VvNav.vue +0 -44
  977. package/src/components/VvNav/VvNavItem.vue +0 -18
  978. package/src/components/VvNav/VvNavSeparator.vue +0 -11
  979. package/src/components/VvNav/index.ts +0 -8
  980. package/src/components/VvProgress/VvProgress.vue +0 -34
  981. package/src/components/VvProgress/index.ts +0 -32
  982. package/src/components/VvRadio/VvRadio.vue +0 -124
  983. package/src/components/VvRadio/index.ts +0 -46
  984. package/src/components/VvRadioGroup/VvRadioGroup.vue +0 -103
  985. package/src/components/VvRadioGroup/index.ts +0 -5
  986. package/src/components/VvSelect/VvSelect.vue +0 -247
  987. package/src/components/VvSelect/index.ts +0 -69
  988. package/src/components/VvTab/VvTab.vue +0 -77
  989. package/src/components/VvTab/index.ts +0 -19
  990. package/src/components/VvTextarea/VvTextarea.vue +0 -225
  991. package/src/components/VvTextarea/index.ts +0 -50
  992. package/src/components/VvTooltip/VvTooltip.vue +0 -23
  993. package/src/components/VvTooltip/index.ts +0 -18
  994. package/src/components/common/HintSlot.ts +0 -175
  995. package/src/components/index.ts +0 -24
  996. package/src/composables/alert/useAlert.ts +0 -103
  997. package/src/composables/alert/useInjectAlert.ts +0 -8
  998. package/src/composables/alert/useProvideAlert.ts +0 -23
  999. package/src/composables/dropdown/useInjectDropdown.ts +0 -26
  1000. package/src/composables/dropdown/useProvideDropdown.ts +0 -94
  1001. package/src/composables/group/useInjectedGroupState.ts +0 -51
  1002. package/src/composables/group/useProvideGroupState.ts +0 -20
  1003. package/src/composables/index.ts +0 -1
  1004. package/src/composables/useComponentFocus.ts +0 -16
  1005. package/src/composables/useComponentIcon.ts +0 -41
  1006. package/src/composables/useDebouncedInput.ts +0 -32
  1007. package/src/composables/useDefaults.ts +0 -89
  1008. package/src/composables/useModifiers.ts +0 -36
  1009. package/src/composables/useOptions.ts +0 -47
  1010. package/src/composables/useTextCount.ts +0 -57
  1011. package/src/composables/useUniqueId.ts +0 -5
  1012. package/src/composables/useVolver.ts +0 -5
  1013. package/src/constants.ts +0 -138
  1014. package/src/directives/index.ts +0 -4
  1015. package/src/directives/v-contextmenu.ts +0 -40
  1016. package/src/directives/v-tooltip.ts +0 -24
  1017. package/src/icons.ts +0 -7
  1018. package/src/index.ts +0 -14
  1019. package/src/props/index.ts +0 -487
  1020. package/src/resolvers/unplugin.ts +0 -169
  1021. package/src/shims.d.ts +0 -13
  1022. package/src/stories/Accordion/Accordion.settings.ts +0 -57
  1023. package/src/stories/Accordion/Accordion.stories.ts +0 -45
  1024. package/src/stories/Accordion/Accordion.test.ts +0 -67
  1025. package/src/stories/Accordion/AccordionSlots.stories.ts +0 -29
  1026. package/src/stories/AccordionGroup/AccordionGroup.settings.ts +0 -77
  1027. package/src/stories/AccordionGroup/AccordionGroup.stories.ts +0 -62
  1028. package/src/stories/AccordionGroup/AccordionGroup.test.ts +0 -56
  1029. package/src/stories/AccordionGroup/AccordionGroupSlots.stories.ts +0 -53
  1030. package/src/stories/Alert/Alert.settings.ts +0 -122
  1031. package/src/stories/Alert/Alert.stories.ts +0 -60
  1032. package/src/stories/Alert/Alert.test.ts +0 -99
  1033. package/src/stories/Alert/AlertModifiers.stories.ts +0 -77
  1034. package/src/stories/Alert/AlertSlots.stories.ts +0 -74
  1035. package/src/stories/AlertGroup/AlertGroup.settings.ts +0 -110
  1036. package/src/stories/AlertGroup/AlertGroup.stories.ts +0 -50
  1037. package/src/stories/AlertGroup/AlertGroup.test.ts +0 -89
  1038. package/src/stories/AlertGroup/AlertGroupPosition.stories.ts +0 -103
  1039. package/src/stories/AlertGroup/AlertGroupSlots.stories.ts +0 -67
  1040. package/src/stories/AlertGroup/AlertGroupWithComposable.stories.ts +0 -118
  1041. package/src/stories/Avatar/Avatar.settings.ts +0 -37
  1042. package/src/stories/Avatar/Avatar.stories.ts +0 -42
  1043. package/src/stories/Avatar/Avatar.test.ts +0 -34
  1044. package/src/stories/Avatar/AvatarBadge.stories.ts +0 -36
  1045. package/src/stories/Avatar/AvatarModifiers.stories.ts +0 -100
  1046. package/src/stories/Avatar/AvatarSlots.stories.ts +0 -34
  1047. package/src/stories/AvatarGroup/AvatarGroup.settings.ts +0 -60
  1048. package/src/stories/AvatarGroup/AvatarGroup.stories.ts +0 -35
  1049. package/src/stories/AvatarGroup/AvatarGroup.test.ts +0 -36
  1050. package/src/stories/AvatarGroup/AvatarGroupModifiers.stories.ts +0 -31
  1051. package/src/stories/AvatarGroup/AvatarGroupSlotDefault.stories.ts +0 -39
  1052. package/src/stories/Badge/Badge.settings.ts +0 -26
  1053. package/src/stories/Badge/Badge.stories.ts +0 -43
  1054. package/src/stories/Badge/Badge.test.ts +0 -12
  1055. package/src/stories/Badge/BadgeSlots.stories.ts +0 -23
  1056. package/src/stories/Breadcrumb/Breadcrumb.settings.ts +0 -40
  1057. package/src/stories/Breadcrumb/Breadcrumb.stories.ts +0 -41
  1058. package/src/stories/Breadcrumb/Breadcrumb.test.ts +0 -52
  1059. package/src/stories/Breadcrumb/BreadcrumbSlots.stories.ts +0 -37
  1060. package/src/stories/Button/Button.settings.ts +0 -159
  1061. package/src/stories/Button/Button.stories.ts +0 -38
  1062. package/src/stories/Button/Button.test.ts +0 -48
  1063. package/src/stories/Button/ButtonIcon.stories.ts +0 -67
  1064. package/src/stories/Button/ButtonLink.stories.ts +0 -40
  1065. package/src/stories/Button/ButtonLoading.stories.ts +0 -41
  1066. package/src/stories/Button/ButtonModifiers.stories.ts +0 -148
  1067. package/src/stories/Button/ButtonSlots.stories.ts +0 -87
  1068. package/src/stories/Button/ButtonState.stories.ts +0 -42
  1069. package/src/stories/Button/ButtonToggle.stories.ts +0 -52
  1070. package/src/stories/ButtonGroup/ButtonGroup.settings.ts +0 -32
  1071. package/src/stories/ButtonGroup/ButtonGroup.stories.ts +0 -39
  1072. package/src/stories/ButtonGroup/ButtonGroup.test.ts +0 -35
  1073. package/src/stories/ButtonGroup/ButtonGroupModifiers.stories.ts +0 -39
  1074. package/src/stories/ButtonGroup/ButtonGroupSlots.stories.ts +0 -38
  1075. package/src/stories/ButtonGroup/ButtonGroupToggle.stories.ts +0 -41
  1076. package/src/stories/Card/Card.settings.ts +0 -55
  1077. package/src/stories/Card/Card.stories.ts +0 -46
  1078. package/src/stories/Card/Card.test.ts +0 -23
  1079. package/src/stories/Card/CardSlots.stories.ts +0 -81
  1080. package/src/stories/Checkbox/Checkbox.settings.ts +0 -41
  1081. package/src/stories/Checkbox/Checkbox.stories.ts +0 -97
  1082. package/src/stories/Checkbox/Checkbox.test.ts +0 -81
  1083. package/src/stories/Checkbox/CheckboxBinary.stories.ts +0 -33
  1084. package/src/stories/Checkbox/CheckboxSlots.stories.ts +0 -31
  1085. package/src/stories/CheckboxGroup/CheckboxGroup.settings.ts +0 -15
  1086. package/src/stories/CheckboxGroup/CheckboxGroup.stories.ts +0 -87
  1087. package/src/stories/CheckboxGroup/CheckboxGroup.test.ts +0 -83
  1088. package/src/stories/CheckboxGroup/CheckboxGroupOptions.stories.ts +0 -53
  1089. package/src/stories/CheckboxGroup/CheckboxGroupSlots.stories.ts +0 -47
  1090. package/src/stories/Combobox/Combobox.settings.ts +0 -403
  1091. package/src/stories/Combobox/Combobox.stories.ts +0 -176
  1092. package/src/stories/Combobox/Combobox.test.ts +0 -110
  1093. package/src/stories/Combobox/ComboboxIconPosition.stories.ts +0 -43
  1094. package/src/stories/Combobox/ComboboxMultiple.stories.ts +0 -41
  1095. package/src/stories/Combobox/ComboboxOptions.stories.ts +0 -114
  1096. package/src/stories/Combobox/ComboboxSlots.stories.ts +0 -104
  1097. package/src/stories/Dialog/Dialog.settings.ts +0 -45
  1098. package/src/stories/Dialog/Dialog.stories.ts +0 -51
  1099. package/src/stories/Dialog/Dialog.test.ts +0 -69
  1100. package/src/stories/Dialog/DialogSlots.stories.ts +0 -39
  1101. package/src/stories/Dropdown/Dropdown.settings.ts +0 -69
  1102. package/src/stories/Dropdown/Dropdown.stories.ts +0 -107
  1103. package/src/stories/Dropdown/Dropdown.test.ts +0 -21
  1104. package/src/stories/Dropdown/DropdownContextmenuDirective.stories.ts +0 -49
  1105. package/src/stories/Dropdown/DropdownMultilevel.stories.ts +0 -61
  1106. package/src/stories/Dropdown/DropdownSlots.stories.ts +0 -95
  1107. package/src/stories/Icon/Icon.settings.ts +0 -72
  1108. package/src/stories/Icon/Icon.stories.ts +0 -48
  1109. package/src/stories/Icon/IconsCollection.stories.ts +0 -53
  1110. package/src/stories/InputText/InputText.settings.ts +0 -259
  1111. package/src/stories/InputText/InputText.stories.ts +0 -113
  1112. package/src/stories/InputText/InputText.test.ts +0 -144
  1113. package/src/stories/InputText/InputTextIconPosition.stories.ts +0 -43
  1114. package/src/stories/InputText/InputTextLength.stories.ts +0 -58
  1115. package/src/stories/InputText/InputTextMask.stories.ts +0 -122
  1116. package/src/stories/InputText/InputTextMinMax.stories.ts +0 -51
  1117. package/src/stories/InputText/InputTextSlots.stories.ts +0 -39
  1118. package/src/stories/InputText/InputTextType.stories.ts +0 -119
  1119. package/src/stories/Nav/Nav.settings.ts +0 -35
  1120. package/src/stories/Nav/Nav.stories.ts +0 -33
  1121. package/src/stories/Nav/Nav.test.ts +0 -21
  1122. package/src/stories/Nav/NavModifiers.stories.ts +0 -47
  1123. package/src/stories/Progress/Progress.settings.ts +0 -30
  1124. package/src/stories/Progress/Progress.stories.ts +0 -41
  1125. package/src/stories/Progress/Progress.test.ts +0 -9
  1126. package/src/stories/Radio/Radio.settings.ts +0 -15
  1127. package/src/stories/Radio/Radio.stories.ts +0 -81
  1128. package/src/stories/Radio/Radio.test.ts +0 -70
  1129. package/src/stories/Radio/RadioSlots.stories.ts +0 -31
  1130. package/src/stories/RadioGroup/RadioGroup.settings.ts +0 -15
  1131. package/src/stories/RadioGroup/RadioGroup.stories.ts +0 -88
  1132. package/src/stories/RadioGroup/RadioGroup.test.ts +0 -83
  1133. package/src/stories/RadioGroup/RadioGroupOptions.stories.ts +0 -53
  1134. package/src/stories/RadioGroup/RadioGroupSlots.stories.ts +0 -47
  1135. package/src/stories/Select/Select.settings.ts +0 -80
  1136. package/src/stories/Select/Select.stories.ts +0 -113
  1137. package/src/stories/Select/Select.test.ts +0 -85
  1138. package/src/stories/Select/SelectIconPosition.stories.ts +0 -43
  1139. package/src/stories/Select/SelectOptions.stories.ts +0 -77
  1140. package/src/stories/Select/SelectSlots.stories.ts +0 -39
  1141. package/src/stories/Tab/Tab.settings.ts +0 -41
  1142. package/src/stories/Tab/Tab.stories.ts +0 -70
  1143. package/src/stories/Tab/Tab.test.ts +0 -29
  1144. package/src/stories/Textarea/Textarea.settings.ts +0 -88
  1145. package/src/stories/Textarea/Textarea.stories.ts +0 -107
  1146. package/src/stories/Textarea/Textarea.test.ts +0 -90
  1147. package/src/stories/Textarea/TextareaLength.stories.ts +0 -58
  1148. package/src/stories/Textarea/TextareaSlots.stories.ts +0 -39
  1149. package/src/stories/Textarea/TextareatIconPosition.stories.ts +0 -43
  1150. package/src/stories/Tooltip/Tooltip.settings.ts +0 -25
  1151. package/src/stories/Tooltip/Tooltip.stories.ts +0 -40
  1152. package/src/stories/Tooltip/Tooltip.test.ts +0 -60
  1153. package/src/stories/Tooltip/TooltipDirective.stories.ts +0 -68
  1154. package/src/stories/argTypes.ts +0 -562
  1155. package/src/test/expect.ts +0 -88
  1156. package/src/test/options.ts +0 -17
  1157. package/src/test/sleep.ts +0 -2
  1158. package/src/test/types.d.ts +0 -17
  1159. package/src/types/alert.ts +0 -20
  1160. package/src/types/floating-ui.ts +0 -7
  1161. package/src/types/generic.ts +0 -6
  1162. package/src/types/group.ts +0 -44
  1163. package/src/types/index.ts +0 -5
  1164. package/src/types/nav.ts +0 -19
  1165. package/src/utils/ObjectUtilities.ts +0 -288
@@ -1,13 +1,86 @@
1
- import { unref, computed, isRef, defineComponent, h, inject, ref, toRefs, openBlock, createBlock, mergeProps, createCommentVNode, watch, useSlots, onMounted, createElementBlock, normalizeClass, toDisplayString, createElementVNode, renderSlot, normalizeProps, guardReactiveProps, withModifiers, createTextVNode, createVNode, createSlots, withCtx } from "vue";
1
+ import { unref, computed, isRef, defineComponent, h, useId, Fragment, provide, ref, toRefs, useAttrs, onMounted, watch, createElementBlock, openBlock, createVNode, withCtx, renderSlot, normalizeProps, guardReactiveProps, Transition, mergeProps, toHandlers, withDirectives, createElementVNode, normalizeClass, normalizeStyle, createCommentVNode, vShow, nextTick, inject, createBlock, createTextVNode, toDisplayString, mergeDefaults, useSlots, withModifiers, createSlots, renderList } from "vue";
2
2
  import { useIMask } from "vue-imask";
3
- import { iconExists, Icon, addIcon } from "@iconify/vue";
4
- import { uid } from "uid";
5
- import { useFocus, useElementVisibility } from "@vueuse/core";
3
+ import { autoPlacement, flip, shift, size, offset, arrow, useFloating, autoUpdate } from "@floating-ui/vue";
4
+ import { useMutationObserver, useVModel, onClickOutside, useFocusWithin, useElementHover, onKeyStroke, useFocus, useStorage, useElementVisibility } from "@vueuse/core";
5
+ import mitt from "mitt";
6
+ import { iconLoaded, Icon, addIcon } from "@iconify/vue";
7
+ const padTwoDigits = (num) => num.toString().padStart(2, "0");
8
+ function isDateIsoString(dateString) {
9
+ if (typeof dateString !== "string") {
10
+ return false;
11
+ }
12
+ if (!/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?(?:Z|[+-]\d{2}:?\d{2})?$/.test(dateString)) {
13
+ return false;
14
+ }
15
+ const d = new Date(dateString);
16
+ return !Number.isNaN(d.getTime()) && d.toISOString() === dateString;
17
+ }
18
+ function getInputValueFromDate(date, typeOfInput = "date", withSeconds) {
19
+ if (typeof date === "string") {
20
+ if (!isDateIsoString(date)) {
21
+ return "";
22
+ }
23
+ }
24
+ const currentDate = new Date(date);
25
+ if (Number.isNaN(currentDate.getTime())) {
26
+ return "";
27
+ }
28
+ let toReturn = `${currentDate.getFullYear()}-${padTwoDigits(currentDate.getMonth() + 1)}`;
29
+ if (typeOfInput === "month") {
30
+ return toReturn;
31
+ }
32
+ toReturn += `-${padTwoDigits(currentDate.getDate())}`;
33
+ if (typeOfInput === "date") {
34
+ return toReturn;
35
+ }
36
+ const time = withSeconds ? `${padTwoDigits(currentDate.getHours())}:${padTwoDigits(currentDate.getMinutes())}:${padTwoDigits(currentDate.getSeconds())}` : `${padTwoDigits(currentDate.getHours())}:${padTwoDigits(currentDate.getMinutes())}`;
37
+ if (typeOfInput === "time") {
38
+ return time;
39
+ }
40
+ return `${toReturn}T${time}`;
41
+ }
42
+ function getDateFromInputValue(value, typeOfInput = "date") {
43
+ if (!value?.trim()) {
44
+ return null;
45
+ }
46
+ const today = /* @__PURE__ */ new Date();
47
+ const currentYear = today.getFullYear();
48
+ const currentMonth = today.getMonth();
49
+ const currentDate = today.getDate();
50
+ if (typeOfInput === "date") {
51
+ if (!/^\d{4}-\d{2}-\d{2}$/.test(value)) {
52
+ throw new Error("Invalid date format. Expected: YYYY-MM-DD");
53
+ }
54
+ return /* @__PURE__ */ new Date(`${value}T00:00:00`);
55
+ }
56
+ if (typeOfInput === "month") {
57
+ if (!/^\d{4}-\d{2}$/.test(value)) {
58
+ throw new Error("Invalid month format. Expected: YYYY-MM");
59
+ }
60
+ return /* @__PURE__ */ new Date(`${value}-01T00:00:00`);
61
+ }
62
+ if (typeOfInput === "time") {
63
+ if (!/^(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?$/.test(value)) {
64
+ throw new Error("Invalid time format. Expected: HH:mm or HH:mm:ss");
65
+ }
66
+ if (value.length === 8) {
67
+ return /* @__PURE__ */ new Date(`${currentYear}-${padTwoDigits(currentMonth + 1)}-${padTwoDigits(currentDate)}T${value}`);
68
+ }
69
+ return /* @__PURE__ */ new Date(`${currentYear}-${padTwoDigits(currentMonth + 1)}-${padTwoDigits(currentDate)}T${value}:00`);
70
+ }
71
+ if (!/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2})?$/.test(value)) {
72
+ throw new Error("Invalid datetime format. Expected: YYYY-MM-DDThh:mm or YYYY-MM-DDThh:mm:ss");
73
+ }
74
+ if (value.length === 16) {
75
+ return /* @__PURE__ */ new Date(`${value}:00`);
76
+ }
77
+ return /* @__PURE__ */ new Date(`${value}`);
78
+ }
6
79
  function isEmpty(value) {
7
80
  return ((value2) => value2 === null || value2 === void 0 || value2 === "" || Array.isArray(value2) && value2.length === 0 || !(value2 instanceof Date) && typeof value2 === "object" && Object.keys(value2).length === 0)(unref(value));
8
81
  }
9
82
  function isString(value) {
10
- return typeof value === "string" || value instanceof String;
83
+ return typeof value === "string";
11
84
  }
12
85
  function joinLines(items) {
13
86
  if (Array.isArray(items)) {
@@ -71,7 +144,6 @@ function HintSlotFactory(propsOrRef, slots) {
71
144
  };
72
145
  },
73
146
  render() {
74
- var _a, _b, _c, _d, _e, _f, _g, _h;
75
147
  if (this.isVisible) {
76
148
  let role;
77
149
  if (this.hasInvalidLabelOrSlot) {
@@ -86,7 +158,7 @@ function HintSlotFactory(propsOrRef, slots) {
86
158
  {
87
159
  role
88
160
  },
89
- ((_b = (_a = this.$slots).loading) == null ? void 0 : _b.call(_a)) ?? this.loadingLabel
161
+ this.$slots.loading?.() ?? this.loadingLabel
90
162
  );
91
163
  }
92
164
  if (this.hasInvalidLabelOrSlot) {
@@ -95,7 +167,7 @@ function HintSlotFactory(propsOrRef, slots) {
95
167
  {
96
168
  role
97
169
  },
98
- ((_d = (_c = this.$slots).invalid) == null ? void 0 : _d.call(_c)) ?? this.$slots.invalid ?? this.invalidLabel
170
+ this.$slots.invalid?.() ?? this.$slots.invalid ?? this.invalidLabel
99
171
  );
100
172
  }
101
173
  if (this.hasValidLabelOrSlot) {
@@ -104,7 +176,7 @@ function HintSlotFactory(propsOrRef, slots) {
104
176
  {
105
177
  role
106
178
  },
107
- ((_f = (_e = this.$slots).valid) == null ? void 0 : _f.call(_e)) ?? this.validLabel
179
+ this.$slots.valid?.() ?? this.validLabel
108
180
  );
109
181
  }
110
182
  return h(
@@ -112,7 +184,7 @@ function HintSlotFactory(propsOrRef, slots) {
112
184
  {
113
185
  role
114
186
  },
115
- ((_h = (_g = this.$slots).hint) == null ? void 0 : _h.call(_g)) ?? this.$slots.hint ?? this.hintLabel
187
+ this.$slots.hint?.() ?? this.$slots.hint ?? this.hintLabel
116
188
  );
117
189
  }
118
190
  return null;
@@ -127,100 +199,11 @@ function HintSlotFactory(propsOrRef, slots) {
127
199
  HintSlot
128
200
  };
129
201
  }
130
- const VvIconProps = {
131
- /**
132
- * Color
133
- */
134
- color: String,
135
- /**
136
- * Width
137
- */
138
- width: {
139
- type: [String, Number]
140
- },
141
- /**
142
- * Height
143
- */
144
- height: {
145
- type: [String, Number]
146
- },
147
- /**
148
- * Icon name
149
- * Can be the full composition of iconify name "@{provider}:{prefix}:{name}" or "{prefix}:{name}" or "{name}"
150
- * https://docs.iconify.design/api/providers.html#provider-in-icon-name
151
- */
152
- name: {
153
- type: String,
154
- required: true
155
- },
156
- /**
157
- * By default 'vv'
158
- * If custom collection is not added with "addCollection" DS class method, this prop could not be used
159
- * Icon provider: https://docs.iconify.design/api/providers.html#provider-in-icon-name
160
- */
161
- provider: {
162
- type: String
163
- },
164
- /**
165
- * The name of icon set.
166
- * Icon default options prefix: simple | normal | detailed
167
- */
168
- prefix: {
169
- type: String,
170
- default: "normal"
171
- },
172
- /**
173
- * Url remote SVG icon
174
- */
175
- src: String,
176
- /**
177
- * Horizontal flip
178
- */
179
- horizontalFlip: Boolean,
180
- /**
181
- * Vertical flip
182
- */
183
- verticalFlip: Boolean,
184
- /**
185
- * String alternative to "horizontalFlip" and "verticalFlip".
186
- * Example: https://docs.iconify.design/icon-components/vue/transform.html
187
- */
188
- flip: String,
189
- /**
190
- * Icon render mode
191
- * 'style' = 'bg' or 'mask', depending on icon content
192
- * 'bg' = span with style using `background`
193
- * 'mask' = span with style using `mask`
194
- * 'svg' = svg
195
- * Iconify doc: https://docs.iconify.design/iconify-icon/modes.html
196
- */
197
- mode: String,
198
- /**
199
- * Toggles inline or block mode
200
- * Example https://docs.iconify.design/icon-components/vue/inline.html
201
- */
202
- inline: Boolean,
203
- /**
204
- * rotates icon
205
- * Example https://docs.iconify.design/icon-components/vue/transform.html
206
- */
207
- rotate: [Number, String],
208
- /**
209
- * A callback that is called when icon data has been loaded
210
- */
211
- onLoad: Function,
212
- /**
213
- * SVG icon string
214
- */
215
- svg: String,
216
- /**
217
- * Icon modifiers: vv-icon css helper classes, value/s are concatened with prefix 'vv-icon--'
218
- * @values string | string[]
219
- */
220
- modifiers: {
221
- type: [String, Array]
222
- }
223
- };
202
+ var StorageType = /* @__PURE__ */ ((StorageType2) => {
203
+ StorageType2["local"] = "local";
204
+ StorageType2["session"] = "session";
205
+ return StorageType2;
206
+ })(StorageType || {});
224
207
  var Strategy = /* @__PURE__ */ ((Strategy2) => {
225
208
  Strategy2["absolute"] = "absolute";
226
209
  Strategy2["fixed"] = "fixed";
@@ -262,188 +245,76 @@ var ActionTag = /* @__PURE__ */ ((ActionTag2) => {
262
245
  ActionTag2["button"] = "button";
263
246
  return ActionTag2;
264
247
  })(ActionTag || {});
265
- var AnchorTarget = /* @__PURE__ */ ((AnchorTarget2) => {
266
- AnchorTarget2["_blank"] = "_blank";
267
- AnchorTarget2["_self"] = "_self";
268
- AnchorTarget2["_parent"] = "_parent";
269
- AnchorTarget2["_top"] = "_top";
270
- return AnchorTarget2;
271
- })(AnchorTarget || {});
248
+ var ActionRoles = /* @__PURE__ */ ((ActionRoles2) => {
249
+ ActionRoles2["button"] = "button";
250
+ ActionRoles2["link"] = "link";
251
+ ActionRoles2["menuitem"] = "menuitem";
252
+ return ActionRoles2;
253
+ })(ActionRoles || {});
254
+ var DropdownRole = /* @__PURE__ */ ((DropdownRole2) => {
255
+ DropdownRole2["listbox"] = "listbox";
256
+ DropdownRole2["menu"] = "menu";
257
+ return DropdownRole2;
258
+ })(DropdownRole || {});
259
+ var DropdownItemRole = /* @__PURE__ */ ((DropdownItemRole2) => {
260
+ DropdownItemRole2["option"] = "option";
261
+ DropdownItemRole2["presentation"] = "presentation";
262
+ return DropdownItemRole2;
263
+ })(DropdownItemRole || {});
272
264
  const INJECTION_KEY_VOLVER = Symbol.for("volver");
273
- function useVolver() {
274
- return inject(INJECTION_KEY_VOLVER);
275
- }
276
- function useModifiers(prefix, modifiers, others) {
277
- return computed(() => {
278
- const toReturn = {
279
- [prefix]: true
280
- };
281
- const modifiersArray = typeof (modifiers == null ? void 0 : modifiers.value) === "string" ? modifiers.value.split(" ") : modifiers == null ? void 0 : modifiers.value;
282
- if (modifiersArray) {
283
- if (Array.isArray(modifiersArray)) {
284
- modifiersArray.forEach((modifier) => {
285
- if (modifier) {
286
- toReturn[`${prefix}--${modifier}`] = true;
287
- }
288
- });
289
- }
290
- }
291
- if (others) {
292
- Object.keys(others.value).forEach((key) => {
293
- toReturn[`${prefix}--${key}`] = unref(others.value[key]);
294
- });
295
- }
296
- return toReturn;
297
- });
298
- }
299
- const __default__$1 = {
300
- name: "VvIcon"
265
+ const INJECTION_KEY_DROPDOWN_TRIGGER = Symbol.for(
266
+ "dropdownTrigger"
267
+ );
268
+ const INJECTION_KEY_DROPDOWN_ITEM = Symbol.for(
269
+ "dropdownItem"
270
+ );
271
+ const INJECTION_KEY_DROPDOWN_ACTION = Symbol.for(
272
+ "dropdownAction"
273
+ );
274
+ const ACTION_ICONS = {
275
+ showPassword: "eye-on",
276
+ hidePassword: "eye-off",
277
+ showDatePicker: "calendar",
278
+ showTimePicker: "time",
279
+ showColorPicker: "color",
280
+ clear: "close",
281
+ remove: "trash"
301
282
  };
302
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
303
- ...__default__$1,
304
- props: VvIconProps,
305
- setup(__props) {
306
- const props = __props;
307
- const hasRotate = computed(() => {
308
- if (typeof props.rotate === "string") {
309
- return parseFloat(props.rotate);
310
- }
311
- return props.rotate;
312
- });
313
- const show = ref(true);
314
- const volver = useVolver();
315
- const { modifiers } = toRefs(props);
316
- const bemCssClasses = useModifiers("vv-icon", modifiers);
317
- const provider = computed(() => {
318
- return props.provider || (volver == null ? void 0 : volver.iconsProvider);
319
- });
320
- const icon = computed(() => {
321
- const name = props.name ?? "";
322
- const iconName = `@${provider.value}:${props.prefix}:${name}`;
323
- if (iconExists(iconName)) {
324
- return iconName;
325
- }
326
- const iconsCollection = volver == null ? void 0 : volver.iconsCollections.find(
327
- (iconsCollection2) => {
328
- const icon2 = `@${provider.value}:${iconsCollection2.prefix}:${name}`;
329
- return iconExists(icon2);
330
- }
331
- );
332
- if (iconsCollection) {
333
- return `@${provider.value}:${iconsCollection.prefix}:${name}`;
334
- }
335
- return name;
336
- });
337
- function getSvgContent(svg) {
338
- let dom;
339
- if (typeof window === "undefined") {
340
- const { JSDOM } = require("jsdom");
341
- dom = new JSDOM().window;
342
- }
343
- const domParser = dom ? new dom.DOMParser() : new window.DOMParser();
344
- const svgDomString = domParser.parseFromString(svg, "text/html");
345
- const svgEl = svgDomString.querySelector("svg");
346
- return svgEl;
347
- }
348
- function addIconFromSvg(svg) {
349
- const svgContentEl = getSvgContent(svg);
350
- const svgContent = (svgContentEl == null ? void 0 : svgContentEl.innerHTML.trim()) || "";
351
- if (svgContentEl && svgContent) {
352
- addIcon(`@${provider.value}:${props.prefix}:${props.name}`, {
353
- body: svgContent,
354
- // Set height and width from svg content
355
- height: svgContentEl.viewBox.baseVal.height,
356
- width: svgContentEl.viewBox.baseVal.width
357
- });
358
- }
359
- }
360
- if (volver) {
361
- if (props.src && !iconExists(`@${provider.value}:${props.prefix}:${props.name}`)) {
362
- show.value = false;
363
- volver.fetchIcon(props.src).then((svg) => {
364
- if (svg) {
365
- addIconFromSvg(svg);
366
- show.value = true;
367
- }
368
- }).catch((e) => {
369
- throw new Error(`Error during fetch icon: ${e == null ? void 0 : e.message}`);
370
- });
371
- }
372
- }
373
- if (props.svg) {
374
- addIconFromSvg(props.svg);
375
- }
376
- return (_ctx, _cache) => {
377
- return unref(show) ? (openBlock(), createBlock(unref(Icon), mergeProps({
378
- key: 0,
379
- class: unref(bemCssClasses)
380
- }, {
381
- inline: _ctx.inline,
382
- width: _ctx.width,
383
- height: _ctx.height,
384
- horizontalFlip: _ctx.horizontalFlip,
385
- verticalFlip: _ctx.verticalFlip,
386
- flip: _ctx.flip,
387
- rotate: unref(hasRotate),
388
- color: _ctx.color,
389
- onLoad: _ctx.onLoad,
390
- icon: unref(icon)
391
- }), null, 16, ["class"])) : createCommentVNode("v-if", true);
392
- };
393
- }
394
- });
395
- const LinkProps = {
396
- /**
397
- * The router-link/nuxt-link property, if it is defined the button is rendered as a ruouter-link or nuxt-link.
398
- * @see Documentation of [router-link](https://router.vuejs.org/api/#router-link) and [nuxt-link](https://nuxtjs.org/api/components-nuxt-link/)
399
- */
400
- to: {
401
- type: [String, Object]
402
- },
403
- /**
404
- * Anchor href
405
- */
406
- href: String,
407
- /**
408
- * Anchor target
409
- */
410
- target: {
411
- type: String,
412
- validator: (value) => Object.values(AnchorTarget).includes(value)
413
- },
414
- /**
415
- * Anchor rel
416
- */
417
- rel: {
418
- type: String,
419
- default: "noopener noreferrer"
420
- }
283
+ const VvIconPropsDefaults = {
284
+ prefix: "normal"
285
+ /* normal */
421
286
  };
422
287
  const ValidProps = {
423
288
  /**
424
289
  * Valid status
425
290
  */
426
- valid: Boolean,
291
+ valid: { type: Boolean, default: false },
427
292
  /**
428
293
  * Valid label
429
294
  */
430
- validLabel: [String, Array]
295
+ validLabel: { type: [String, Array], default: void 0 }
431
296
  };
432
297
  const InvalidProps = {
433
298
  /**
434
299
  * Invalid status
435
300
  */
436
- invalid: Boolean,
301
+ invalid: {
302
+ type: Boolean,
303
+ default: false
304
+ },
437
305
  /**
438
306
  * Invalid label
439
307
  */
440
- invalidLabel: [String, Array]
308
+ invalidLabel: { type: [String, Array], default: void 0 }
441
309
  };
442
310
  const LoadingProps = {
443
311
  /**
444
312
  * Loading status
445
313
  */
446
- loading: Boolean,
314
+ loading: {
315
+ type: Boolean,
316
+ default: false
317
+ },
447
318
  /**
448
319
  * Loading label
449
320
  */
@@ -456,43 +327,55 @@ const DisabledProps = {
456
327
  /**
457
328
  * Whether the form control is disabled
458
329
  */
459
- disabled: Boolean
460
- };
461
- const ActiveProps = {
462
- /**
463
- * Whether the item is active
464
- */
465
- active: Boolean
330
+ disabled: {
331
+ type: Boolean,
332
+ default: false
333
+ }
466
334
  };
467
- const CurrentProps = {
335
+ const RequiredProps = {
468
336
  /**
469
- * Whether the item is current
337
+ * Whether the form control is required
470
338
  */
471
- current: Boolean
339
+ required: {
340
+ type: Boolean,
341
+ default: false
342
+ }
472
343
  };
473
- const PressedProps = {
344
+ const SelectedProps = {
474
345
  /**
475
- * Whether the item is pressed
346
+ * Whether the item is selected
476
347
  */
477
- pressed: Boolean
348
+ selected: {
349
+ type: Boolean,
350
+ default: false
351
+ }
478
352
  };
479
353
  const LabelProps = {
480
354
  /**
481
355
  * The item label
482
356
  */
483
- label: [String, Number]
357
+ label: {
358
+ type: [String, Number],
359
+ default: void 0
360
+ }
484
361
  };
485
362
  const ReadonlyProps = {
486
363
  /**
487
364
  * The value is not editable
488
365
  */
489
- readonly: Boolean
366
+ readonly: {
367
+ type: Boolean,
368
+ default: false
369
+ }
490
370
  };
491
371
  const ModifiersProps = {
492
372
  /**
493
373
  * Component BEM modifiers
494
374
  */
495
- modifiers: [String, Array]
375
+ modifiers: {
376
+ type: [String, Array],
377
+ default: void 0
378
+ }
496
379
  };
497
380
  const HintProps = {
498
381
  hintLabel: { type: String, default: "" }
@@ -511,14 +394,20 @@ const DebounceProps = {
511
394
  /**
512
395
  * Milliseconds to wait before emitting the input event
513
396
  */
514
- debounce: [Number, String]
397
+ debounce: {
398
+ type: [Number, String],
399
+ default: void 0
400
+ }
515
401
  };
516
402
  const IconProps = {
517
403
  /**
518
404
  * VvIcon name or props
519
- * @see VVIcon
405
+ * @see VvIcon
520
406
  */
521
- icon: { type: [String, Object] },
407
+ icon: {
408
+ type: [String, Object],
409
+ default: void 0
410
+ },
522
411
  /**
523
412
  * VvIcon position
524
413
  */
@@ -539,7 +428,16 @@ const FloatingLabelProps = {
539
428
  /**
540
429
  * If true the label will be floating
541
430
  */
542
- floating: Boolean
431
+ floating: {
432
+ type: Boolean,
433
+ default: false
434
+ }
435
+ };
436
+ const UnselectableProps = {
437
+ /**
438
+ * If true the input will be unselectable
439
+ */
440
+ unselectable: { type: Boolean, default: true }
543
441
  };
544
442
  const IdProps = {
545
443
  /**
@@ -548,7 +446,7 @@ const IdProps = {
548
446
  */
549
447
  id: [String, Number]
550
448
  };
551
- ({
449
+ const DropdownProps = {
552
450
  /**
553
451
  * Dropdown placement
554
452
  */
@@ -569,7 +467,8 @@ const IdProps = {
569
467
  * Dropdown show / hide transition name
570
468
  */
571
469
  transitionName: {
572
- type: String
470
+ type: String,
471
+ default: void 0
573
472
  },
574
473
  /**
575
474
  * Offset of the dropdown from the trigger
@@ -637,9 +536,10 @@ const IdProps = {
637
536
  * Set dropdown width to the same as the trigger
638
537
  */
639
538
  triggerWidth: {
640
- type: Boolean
539
+ type: Boolean,
540
+ default: false
641
541
  }
642
- });
542
+ };
643
543
  const IdNameProps = {
644
544
  ...IdProps,
645
545
  /**
@@ -654,7 +554,10 @@ const AutofocusProps = {
654
554
  * Global attribute autofocus
655
555
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autofocus
656
556
  */
657
- autofocus: Boolean
557
+ autofocus: {
558
+ type: Boolean,
559
+ default: false
560
+ }
658
561
  };
659
562
  const AutocompleteProps = {
660
563
  /**
@@ -686,61 +589,844 @@ const InputTextareaProps = {
686
589
  * Available for input types: text, search, url, tel, email, password
687
590
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#minlength
688
591
  */
689
- minlength: [String, Number],
592
+ minlength: { type: [String, Number], default: void 0 },
690
593
  /**
691
594
  * Input / Textarea maxlength
692
595
  * Maximum length (number of characters) of value
693
596
  * Available for input types: text, search, url, tel, email, password
694
597
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#maxlength
695
598
  */
696
- maxlength: [String, Number],
599
+ maxlength: { type: [String, Number], default: void 0 },
697
600
  /**
698
601
  * Input / Textarea placeholder
699
602
  * Text that appears in the form control when it has no value set
700
603
  * Available for input types: text, search, url, tel, email, password, number
701
604
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#placeholder
702
605
  */
703
- placeholder: String,
606
+ placeholder: {
607
+ type: String,
608
+ default: void 0
609
+ },
704
610
  /**
705
611
  * Input / Textarea required
706
612
  * A value is required or must be check for the form to be submittable
707
613
  * Available for all input types except color
708
614
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#required
709
615
  */
710
- required: Boolean
616
+ ...RequiredProps
711
617
  };
712
618
  ({
713
- ...DisabledProps,
714
- ...LabelProps,
715
- ...PressedProps,
716
- ...ActiveProps,
717
- ...CurrentProps,
718
- ...LinkProps,
719
619
  /**
720
620
  * Button type
721
621
  */
722
622
  type: {
723
- type: String,
724
- default: ButtonType.button,
725
- validator: (value) => Object.values(ButtonType).includes(value)
623
+ default: ButtonType.button
726
624
  },
727
625
  /**
728
- * Button aria-label
626
+ * Default tag for the action
729
627
  */
730
- ariaLabel: {
628
+ defaultTag: {
629
+ default: ActionTag.button
630
+ }
631
+ });
632
+ const StorageProps = {
633
+ storageType: {
731
634
  type: String,
635
+ default: StorageType.local,
636
+ validator: (value) => Object.values(StorageType).includes(value)
637
+ },
638
+ storageKey: String
639
+ };
640
+ const VvDropdownProps = {
641
+ ...IdProps,
642
+ ...DropdownProps,
643
+ ...ModifiersProps,
644
+ /**
645
+ * Show / hide dropdown programmatically
646
+ */
647
+ modelValue: {
648
+ type: Boolean,
732
649
  default: void 0
733
650
  },
734
651
  /**
735
- * Default tag for the action
652
+ * Dropdown trigger element
736
653
  */
737
- defaultTag: {
654
+ reference: {
655
+ type: Object,
656
+ default: null
657
+ },
658
+ /**
659
+ * Dropdown role
660
+ */
661
+ role: {
738
662
  type: String,
739
- default: ActionTag.button
663
+ default: DropdownRole.menu,
664
+ validator: (value) => Object.values(DropdownRole).includes(value)
740
665
  }
741
- });
742
- const INPUT_TYPES = {
743
- TEXT: "text",
666
+ };
667
+ const VvDropdownItemProps = {
668
+ focusOnHover: {
669
+ type: Boolean,
670
+ default: false
671
+ }
672
+ };
673
+ const VvDropdownOptionProps = {
674
+ ...DisabledProps,
675
+ ...SelectedProps,
676
+ ...UnselectableProps,
677
+ ...ModifiersProps,
678
+ deselectHintLabel: {
679
+ type: String
680
+ },
681
+ selectHintLabel: {
682
+ type: String
683
+ },
684
+ selectedHintLabel: {
685
+ type: String
686
+ },
687
+ focusOnHover: {
688
+ type: Boolean,
689
+ default: false
690
+ }
691
+ };
692
+ function useUniqueId(id) {
693
+ return computed(() => String(id?.value || useId()));
694
+ }
695
+ function useDropdownProvideTrigger({
696
+ reference,
697
+ id,
698
+ expanded,
699
+ aria
700
+ }) {
701
+ const bus = mitt();
702
+ const component = defineComponent({
703
+ name: "VvDropdownTriggerProvider",
704
+ setup() {
705
+ provide(INJECTION_KEY_DROPDOWN_TRIGGER, {
706
+ reference,
707
+ id,
708
+ expanded,
709
+ aria,
710
+ bus
711
+ });
712
+ },
713
+ render() {
714
+ return h(Fragment, {}, this.$slots.default?.());
715
+ }
716
+ });
717
+ return {
718
+ bus,
719
+ component
720
+ };
721
+ }
722
+ function useDropdownProvideItem({
723
+ role,
724
+ ...others
725
+ }) {
726
+ const itemRole = computed(
727
+ () => role.value === DropdownRole.listbox ? DropdownItemRole.option : DropdownItemRole.presentation
728
+ );
729
+ provide(INJECTION_KEY_DROPDOWN_ITEM, {
730
+ role: itemRole,
731
+ ...others
732
+ });
733
+ return { itemRole };
734
+ }
735
+ function useDropdownProvideAction({
736
+ expanded
737
+ }) {
738
+ provide(INJECTION_KEY_DROPDOWN_ACTION, {
739
+ role: ref(ActionRoles.menuitem),
740
+ expanded
741
+ });
742
+ }
743
+ function useModifiers(prefix, modifiers, others) {
744
+ return computed(() => {
745
+ const toReturn = {
746
+ [prefix]: true
747
+ };
748
+ const modifiersArray = typeof modifiers?.value === "string" ? modifiers.value.split(" ") : modifiers?.value;
749
+ if (modifiersArray) {
750
+ if (Array.isArray(modifiersArray)) {
751
+ modifiersArray.forEach((modifier) => {
752
+ if (modifier) {
753
+ toReturn[`${prefix}--${modifier}`] = true;
754
+ }
755
+ });
756
+ }
757
+ }
758
+ if (others) {
759
+ Object.keys(others.value).forEach((key) => {
760
+ toReturn[`${prefix}--${key}`] = unref(others.value[key]);
761
+ });
762
+ }
763
+ return toReturn;
764
+ });
765
+ }
766
+ const _hoisted_1$2 = ["id", "tabindex", "role", "aria-labelledby"];
767
+ const __default__$4 = {
768
+ name: "VvDropdown",
769
+ inheritAttrs: false
770
+ };
771
+ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
772
+ ...__default__$4,
773
+ props: VvDropdownProps,
774
+ emits: [
775
+ "update:modelValue",
776
+ "beforeEnter",
777
+ "afterLeave",
778
+ "beforeExpand",
779
+ "beforeCollapse",
780
+ "afterExpand",
781
+ "afterCollapse",
782
+ "before-enter",
783
+ "after-leave",
784
+ "enter",
785
+ "afterEnter",
786
+ "enterCancelled",
787
+ "beforeLeave",
788
+ "leave",
789
+ "leaveCancelled"
790
+ ],
791
+ setup(__props, { expose: __expose, emit: __emit }) {
792
+ const props = __props;
793
+ const emit = __emit;
794
+ const { id } = toRefs(props);
795
+ const hasId = useUniqueId(id);
796
+ const attrs = useAttrs();
797
+ const maxWidth = ref("auto");
798
+ const maxHeight = ref("auto");
799
+ const localReferenceEl = ref();
800
+ const floatingEl = ref();
801
+ const arrowEl = ref();
802
+ const listEl = ref();
803
+ const referenceEl = computed({
804
+ get: () => props.reference ?? localReferenceEl.value,
805
+ set: (newValue) => {
806
+ localReferenceEl.value = newValue;
807
+ }
808
+ });
809
+ const hasCustomPosition = ref(false);
810
+ onMounted(() => {
811
+ useMutationObserver(
812
+ floatingEl.value,
813
+ () => {
814
+ hasCustomPosition.value = window.getComputedStyle(floatingEl.value).getPropertyValue("--dropdown-custom-position")?.trim() === "true";
815
+ },
816
+ {
817
+ attributeFilter: ["style"],
818
+ window
819
+ }
820
+ );
821
+ });
822
+ const middleware = computed(() => {
823
+ const toReturn = [];
824
+ if (props.autoPlacement) {
825
+ if (typeof props.autoPlacement === "boolean") {
826
+ toReturn.push(autoPlacement());
827
+ } else {
828
+ toReturn.push(
829
+ autoPlacement(props.autoPlacement)
830
+ );
831
+ }
832
+ } else if (props.flip) {
833
+ if (typeof props.flip === "boolean") {
834
+ toReturn.push(flip({ fallbackStrategy: "initialPlacement" }));
835
+ } else {
836
+ toReturn.push(flip(props.flip));
837
+ }
838
+ }
839
+ if (props.shift) {
840
+ if (typeof props.shift === "boolean") {
841
+ toReturn.push(shift());
842
+ } else {
843
+ toReturn.push(shift(props.shift));
844
+ }
845
+ }
846
+ if (props.size) {
847
+ const apply = ({
848
+ availableWidth,
849
+ availableHeight
850
+ }) => {
851
+ maxWidth.value = `${availableWidth}px`;
852
+ maxHeight.value = `${availableHeight}px`;
853
+ };
854
+ if (typeof props.size === "boolean") {
855
+ toReturn.push(
856
+ size({
857
+ apply
858
+ })
859
+ );
860
+ } else {
861
+ toReturn.push(
862
+ size({
863
+ ...props.size,
864
+ apply
865
+ })
866
+ );
867
+ }
868
+ }
869
+ if (props.offset) {
870
+ toReturn.push(offset(Number(props.offset)));
871
+ if (["string", "number"].includes(typeof props.offset)) {
872
+ toReturn.push(offset(Number(props.offset)));
873
+ } else {
874
+ toReturn.push(offset(props.offset));
875
+ }
876
+ }
877
+ if (props.arrow) {
878
+ toReturn.push(
879
+ arrow({
880
+ element: arrowEl
881
+ })
882
+ );
883
+ }
884
+ return toReturn;
885
+ });
886
+ const { x, y, middlewareData, placement, strategy } = useFloating(
887
+ referenceEl,
888
+ floatingEl,
889
+ {
890
+ whileElementsMounted: (...args) => {
891
+ return autoUpdate(...args, {
892
+ animationFrame: props.strategy === Strategy.fixed
893
+ });
894
+ },
895
+ placement: computed(() => props.placement),
896
+ strategy: computed(() => props.strategy),
897
+ middleware
898
+ }
899
+ );
900
+ const dropdownPlacement = computed(() => {
901
+ if (hasCustomPosition.value) {
902
+ return void 0;
903
+ }
904
+ const width = props.triggerWidth && referenceEl.value ? `${referenceEl.value?.offsetWidth}px` : void 0;
905
+ return {
906
+ position: strategy.value,
907
+ top: `${y.value ?? 0}px`,
908
+ left: `${x.value ?? 0}px`,
909
+ maxWidth: width ? void 0 : maxWidth.value,
910
+ maxHeight: maxHeight.value,
911
+ width
912
+ };
913
+ });
914
+ const side = computed(
915
+ () => placement.value.split("-")[0]
916
+ );
917
+ const arrowPlacement = computed(() => {
918
+ if (hasCustomPosition.value) {
919
+ return void 0;
920
+ }
921
+ const staticSide = {
922
+ [Side.top]: Side.bottom,
923
+ [Side.right]: Side.left,
924
+ [Side.bottom]: Side.top,
925
+ [Side.left]: Side.right
926
+ }[side.value];
927
+ return {
928
+ left: middlewareData.value.arrow?.x !== void 0 ? `${middlewareData.value.arrow?.x}px` : void 0,
929
+ top: middlewareData.value.arrow?.y !== void 0 ? `${middlewareData.value.arrow?.y}px` : void 0,
930
+ [staticSide]: `${-(arrowEl.value?.offsetWidth ?? 0) / 2}px`
931
+ };
932
+ });
933
+ const modelValue = useVModel(props, "modelValue", emit);
934
+ const localModelValue = ref(false);
935
+ const expanded = computed({
936
+ get: () => modelValue.value ?? localModelValue.value,
937
+ set: (newValue) => {
938
+ if (modelValue.value === void 0) {
939
+ localModelValue.value = newValue;
940
+ return;
941
+ }
942
+ modelValue.value = newValue;
943
+ }
944
+ });
945
+ function show() {
946
+ expanded.value = true;
947
+ }
948
+ function hide() {
949
+ expanded.value = false;
950
+ }
951
+ function toggle() {
952
+ expanded.value = !expanded.value;
953
+ }
954
+ function init(el) {
955
+ referenceEl.value = el;
956
+ }
957
+ onClickOutside(
958
+ floatingEl,
959
+ () => {
960
+ if (!props.keepOpen && expanded.value) {
961
+ expanded.value = false;
962
+ }
963
+ },
964
+ { ignore: [referenceEl] }
965
+ );
966
+ const hasAriaLabelledby = computed(() => {
967
+ return referenceEl.value?.getAttribute?.("id") ?? void 0;
968
+ });
969
+ const referenceAria = computed(() => ({
970
+ "aria-controls": hasId.value,
971
+ "aria-haspopup": true,
972
+ "aria-expanded": expanded.value
973
+ }));
974
+ const { component: VvDropdownTriggerProvider, bus } = useDropdownProvideTrigger({
975
+ reference: referenceEl,
976
+ id: hasId,
977
+ expanded,
978
+ aria: referenceAria
979
+ });
980
+ bus.on("click", toggle);
981
+ const { role, modifiers } = toRefs(props);
982
+ const bemCssClasses = useModifiers(
983
+ "vv-dropdown",
984
+ modifiers,
985
+ computed(() => ({
986
+ arrow: props.arrow
987
+ }))
988
+ );
989
+ const { focused } = useFocusWithin(floatingEl);
990
+ function getKeyboardFocusableElements(element) {
991
+ if (!element) {
992
+ return [];
993
+ }
994
+ return [
995
+ ...element.querySelectorAll(
996
+ 'a[href], button, input, textarea, select, details, [tabindex]:not([tabindex="-1"])'
997
+ )
998
+ ].filter(
999
+ (el) => !el.hasAttribute("disabled") && !el.getAttribute("aria-hidden")
1000
+ );
1001
+ }
1002
+ function focusFirst() {
1003
+ nextTick(() => {
1004
+ const focusableElements = getKeyboardFocusableElements(
1005
+ floatingEl.value
1006
+ );
1007
+ if (focusableElements.length > 0) {
1008
+ focusableElements[0].focus({
1009
+ preventScroll: true
1010
+ });
1011
+ }
1012
+ });
1013
+ }
1014
+ function focusFirstListElement() {
1015
+ nextTick(() => {
1016
+ const focusableElements = getKeyboardFocusableElements(
1017
+ listEl.value
1018
+ );
1019
+ if (focusableElements.length > 0) {
1020
+ focusableElements[0].focus({
1021
+ preventScroll: true
1022
+ });
1023
+ }
1024
+ });
1025
+ }
1026
+ function focusNext() {
1027
+ nextTick(() => {
1028
+ if (focused.value) {
1029
+ const focusableElements = getKeyboardFocusableElements(
1030
+ floatingEl.value
1031
+ );
1032
+ if (focusableElements.length === 0 || !document.activeElement) {
1033
+ return;
1034
+ }
1035
+ const activeElementIndex = focusableElements.indexOf(
1036
+ document.activeElement
1037
+ );
1038
+ if (activeElementIndex < focusableElements.length - 1) {
1039
+ focusableElements[activeElementIndex + 1].focus({
1040
+ preventScroll: true
1041
+ });
1042
+ } else {
1043
+ focusableElements[0].focus({
1044
+ preventScroll: true
1045
+ });
1046
+ }
1047
+ }
1048
+ });
1049
+ }
1050
+ function focusPrev() {
1051
+ nextTick(() => {
1052
+ if (focused.value) {
1053
+ const focusableElements = getKeyboardFocusableElements(
1054
+ floatingEl.value
1055
+ );
1056
+ if (focusableElements.length === 0 || !document.activeElement) {
1057
+ return;
1058
+ }
1059
+ const activeElementIndex = focusableElements.indexOf(
1060
+ document.activeElement
1061
+ );
1062
+ if (activeElementIndex > 0) {
1063
+ focusableElements[activeElementIndex - 1].focus({
1064
+ preventScroll: true
1065
+ });
1066
+ } else {
1067
+ focusableElements[focusableElements.length - 1].focus({
1068
+ preventScroll: true
1069
+ });
1070
+ }
1071
+ }
1072
+ });
1073
+ }
1074
+ watch(expanded, (newValue) => {
1075
+ if (newValue && props.autofocusFirst) {
1076
+ focusFirst();
1077
+ }
1078
+ });
1079
+ __expose({
1080
+ toggle,
1081
+ show,
1082
+ hide,
1083
+ init,
1084
+ focusFirst,
1085
+ focusFirstListElement,
1086
+ focusNext,
1087
+ focusPrev,
1088
+ customPosition: hasCustomPosition
1089
+ });
1090
+ const hovered = useElementHover(floatingEl);
1091
+ const { itemRole } = useDropdownProvideItem({
1092
+ role,
1093
+ expanded,
1094
+ focused,
1095
+ hovered
1096
+ });
1097
+ onKeyStroke("Escape", (e) => {
1098
+ if (expanded.value) {
1099
+ e.preventDefault();
1100
+ hide();
1101
+ }
1102
+ });
1103
+ onKeyStroke("ArrowDown", (e) => {
1104
+ if (expanded.value && focused.value) {
1105
+ e.preventDefault();
1106
+ focusNext();
1107
+ }
1108
+ });
1109
+ onKeyStroke("ArrowUp", (e) => {
1110
+ if (expanded.value && focused.value) {
1111
+ e.preventDefault();
1112
+ focusPrev();
1113
+ }
1114
+ });
1115
+ onKeyStroke([" ", "Enter"], (e) => {
1116
+ const htmlEl = e.target;
1117
+ if (expanded.value && focused.value && htmlEl) {
1118
+ htmlEl?.click();
1119
+ }
1120
+ });
1121
+ const dropdownTransitionHandlers = {
1122
+ "before-enter": () => {
1123
+ emit(expanded.value ? "beforeExpand" : "beforeCollapse");
1124
+ emit("beforeEnter");
1125
+ },
1126
+ "after-leave": () => {
1127
+ emit(expanded.value ? "afterExpand" : "afterCollapse");
1128
+ emit("afterLeave");
1129
+ },
1130
+ "enter": () => {
1131
+ emit("enter");
1132
+ },
1133
+ "after-enter": () => {
1134
+ emit("afterEnter");
1135
+ },
1136
+ "enter-cancelled": () => {
1137
+ emit("enterCancelled");
1138
+ },
1139
+ "before-leave": () => {
1140
+ emit("beforeLeave");
1141
+ },
1142
+ "leave": () => {
1143
+ emit("leave");
1144
+ },
1145
+ "leave-cancelled": () => {
1146
+ emit("leaveCancelled");
1147
+ }
1148
+ };
1149
+ return (_ctx, _cache) => {
1150
+ return openBlock(), createElementBlock(
1151
+ Fragment,
1152
+ null,
1153
+ [
1154
+ createVNode(unref(VvDropdownTriggerProvider), null, {
1155
+ default: withCtx(() => [
1156
+ renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps({ init, show, hide, toggle, expanded: unref(expanded), aria: unref(referenceAria) })))
1157
+ ]),
1158
+ _: 3
1159
+ /* FORWARDED */
1160
+ }),
1161
+ createVNode(Transition, mergeProps({ name: _ctx.transitionName }, toHandlers(dropdownTransitionHandlers), { persisted: "" }), {
1162
+ default: withCtx(() => [
1163
+ withDirectives(createElementVNode(
1164
+ "div",
1165
+ {
1166
+ ref_key: "floatingEl",
1167
+ ref: floatingEl,
1168
+ style: normalizeStyle(unref(dropdownPlacement)),
1169
+ class: normalizeClass(unref(bemCssClasses))
1170
+ },
1171
+ [
1172
+ props.arrow ? (openBlock(), createElementBlock(
1173
+ "div",
1174
+ {
1175
+ key: 0,
1176
+ ref_key: "arrowEl",
1177
+ ref: arrowEl,
1178
+ style: normalizeStyle(unref(arrowPlacement)),
1179
+ class: "vv-dropdown__arrow"
1180
+ },
1181
+ null,
1182
+ 4
1183
+ /* STYLE */
1184
+ )) : createCommentVNode("v-if", true),
1185
+ renderSlot(_ctx.$slots, "before", normalizeProps(guardReactiveProps({ expanded: unref(expanded) }))),
1186
+ createElementVNode("div", mergeProps(unref(attrs), {
1187
+ id: unref(hasId),
1188
+ ref_key: "listEl",
1189
+ ref: listEl,
1190
+ tabindex: !unref(expanded) ? -1 : void 0,
1191
+ role: unref(role),
1192
+ "aria-labelledby": unref(hasAriaLabelledby),
1193
+ class: "vv-dropdown__list"
1194
+ }), [
1195
+ renderSlot(_ctx.$slots, "items", normalizeProps(guardReactiveProps({
1196
+ role: unref(itemRole)
1197
+ })))
1198
+ ], 16, _hoisted_1$2),
1199
+ renderSlot(_ctx.$slots, "after", normalizeProps(guardReactiveProps({ expanded: unref(expanded) })))
1200
+ ],
1201
+ 6
1202
+ /* CLASS, STYLE */
1203
+ ), [
1204
+ [vShow, unref(expanded)]
1205
+ ])
1206
+ ]),
1207
+ _: 3
1208
+ /* FORWARDED */
1209
+ }, 16, ["name"])
1210
+ ],
1211
+ 64
1212
+ /* STABLE_FRAGMENT */
1213
+ );
1214
+ };
1215
+ }
1216
+ });
1217
+ function useInjectedDropdownItem() {
1218
+ return inject(INJECTION_KEY_DROPDOWN_ITEM, {});
1219
+ }
1220
+ const __default__$3 = {
1221
+ name: "VvDropdownItem"
1222
+ };
1223
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
1224
+ ...__default__$3,
1225
+ props: VvDropdownItemProps,
1226
+ setup(__props) {
1227
+ const props = __props;
1228
+ const { role, expanded } = useInjectedDropdownItem();
1229
+ const element = ref(null);
1230
+ useDropdownProvideAction({ expanded });
1231
+ const hovered = useElementHover(element);
1232
+ const { focused } = useFocus(element);
1233
+ const { focused: focusedWithin } = useFocusWithin(element);
1234
+ watch(hovered, (newValue) => {
1235
+ if (newValue && props.focusOnHover) {
1236
+ focused.value = true;
1237
+ }
1238
+ });
1239
+ return (_ctx, _cache) => {
1240
+ return openBlock(), createElementBlock(
1241
+ "div",
1242
+ mergeProps({ role: unref(role) }, {
1243
+ ref_key: "element",
1244
+ ref: element,
1245
+ class: ["vv-dropdown__item", { "focus-visible": unref(focused) || unref(focusedWithin) }]
1246
+ }),
1247
+ [
1248
+ renderSlot(_ctx.$slots, "default")
1249
+ ],
1250
+ 16
1251
+ /* FULL_PROPS */
1252
+ );
1253
+ };
1254
+ }
1255
+ });
1256
+ const _hoisted_1$1 = ["title"];
1257
+ const __default__$2 = {
1258
+ name: "VvDropdownOption"
1259
+ };
1260
+ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1261
+ ...__default__$2,
1262
+ props: VvDropdownOptionProps,
1263
+ setup(__props) {
1264
+ const props = __props;
1265
+ const { modifiers } = toRefs(props);
1266
+ const bemCssClasses = useModifiers(
1267
+ "vv-dropdown-option",
1268
+ modifiers,
1269
+ computed(() => ({
1270
+ disabled: props.disabled,
1271
+ selected: props.selected,
1272
+ unselectable: props.unselectable && props.selected
1273
+ }))
1274
+ );
1275
+ const hintLabel = computed(() => {
1276
+ if (props.selected) {
1277
+ return props.unselectable ? props.deselectHintLabel : props.selectedHintLabel;
1278
+ }
1279
+ if (!props.disabled) {
1280
+ return props.selectHintLabel;
1281
+ }
1282
+ return "";
1283
+ });
1284
+ return (_ctx, _cache) => {
1285
+ return openBlock(), createBlock(_sfc_main$3, {
1286
+ class: normalizeClass(unref(bemCssClasses)),
1287
+ tabindex: _ctx.disabled ? -1 : 0,
1288
+ "aria-selected": _ctx.selected,
1289
+ "aria-disabled": _ctx.disabled,
1290
+ "focus-on-hover": _ctx.focusOnHover
1291
+ }, {
1292
+ default: withCtx(() => [
1293
+ renderSlot(_ctx.$slots, "default"),
1294
+ createElementVNode("span", {
1295
+ class: "vv-dropdown-option__hint",
1296
+ title: unref(hintLabel)
1297
+ }, [
1298
+ renderSlot(_ctx.$slots, "hint", normalizeProps(guardReactiveProps({ disabled: _ctx.disabled, selected: _ctx.selected, unselectable: _ctx.unselectable })), () => [
1299
+ createTextVNode(
1300
+ toDisplayString(unref(hintLabel)),
1301
+ 1
1302
+ /* TEXT */
1303
+ )
1304
+ ])
1305
+ ], 8, _hoisted_1$1)
1306
+ ]),
1307
+ _: 3
1308
+ /* FORWARDED */
1309
+ }, 8, ["class", "tabindex", "aria-selected", "aria-disabled", "focus-on-hover"]);
1310
+ };
1311
+ }
1312
+ });
1313
+ function useVolver() {
1314
+ return inject(INJECTION_KEY_VOLVER, void 0);
1315
+ }
1316
+ const __default__$1 = {
1317
+ name: "VvIcon"
1318
+ };
1319
+ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1320
+ ...__default__$1,
1321
+ props: /* @__PURE__ */ mergeDefaults({
1322
+ name: {},
1323
+ color: {},
1324
+ width: {},
1325
+ height: {},
1326
+ provider: {},
1327
+ prefix: {},
1328
+ src: {},
1329
+ horizontalFlip: { type: Boolean },
1330
+ verticalFlip: { type: Boolean },
1331
+ flip: {},
1332
+ mode: {},
1333
+ inline: { type: Boolean },
1334
+ rotate: {},
1335
+ onLoad: { type: Function },
1336
+ svg: {},
1337
+ modifiers: {}
1338
+ }, VvIconPropsDefaults),
1339
+ setup(__props) {
1340
+ const props = __props;
1341
+ const hasRotate = computed(() => {
1342
+ if (typeof props.rotate === "string") {
1343
+ return Number.parseFloat(props.rotate);
1344
+ }
1345
+ return props.rotate;
1346
+ });
1347
+ const show = ref(true);
1348
+ const volver = useVolver();
1349
+ const { modifiers } = toRefs(props);
1350
+ const bemCssClasses = useModifiers("vv-icon", modifiers);
1351
+ const provider = computed(() => {
1352
+ return props.provider || volver?.iconsProvider;
1353
+ });
1354
+ const icon = computed(() => {
1355
+ const name = props.name ?? "";
1356
+ const iconName = `@${provider.value}:${props.prefix}:${name}`;
1357
+ if (iconLoaded(iconName)) {
1358
+ return iconName;
1359
+ }
1360
+ const iconsCollection = volver?.iconsCollections.find(
1361
+ (iconsCollection2) => {
1362
+ const icon2 = `@${provider.value}:${iconsCollection2.prefix}:${name}`;
1363
+ return iconLoaded(icon2);
1364
+ }
1365
+ );
1366
+ if (iconsCollection) {
1367
+ return `@${provider.value}:${iconsCollection.prefix}:${name}`;
1368
+ }
1369
+ return name;
1370
+ });
1371
+ function getSvgContent(svg) {
1372
+ let dom;
1373
+ if (typeof window === "undefined") {
1374
+ const { JSDOM } = require("jsdom");
1375
+ dom = new JSDOM().window;
1376
+ }
1377
+ const domParser = dom ? new dom.DOMParser() : new window.DOMParser();
1378
+ const svgDomString = domParser.parseFromString(svg, "text/html");
1379
+ const svgEl = svgDomString.querySelector("svg");
1380
+ return svgEl;
1381
+ }
1382
+ function addIconFromSvg(svg) {
1383
+ const svgContentEl = getSvgContent(svg);
1384
+ const svgContent = svgContentEl?.innerHTML.trim() || "";
1385
+ if (svgContentEl && svgContent) {
1386
+ addIcon(`@${provider.value}:${props.prefix}:${props.name}`, {
1387
+ body: svgContent,
1388
+ // Set height and width from svg content
1389
+ height: svgContentEl.viewBox.baseVal.height,
1390
+ width: svgContentEl.viewBox.baseVal.width
1391
+ });
1392
+ }
1393
+ }
1394
+ if (volver) {
1395
+ if (props.src && !iconLoaded(`@${provider.value}:${props.prefix}:${props.name}`)) {
1396
+ show.value = false;
1397
+ volver.fetchIcon(props.src).then((svg) => {
1398
+ if (svg) {
1399
+ addIconFromSvg(svg);
1400
+ show.value = true;
1401
+ }
1402
+ }).catch((e) => {
1403
+ throw new Error(`Error during fetch icon: ${e?.message}`);
1404
+ });
1405
+ }
1406
+ }
1407
+ if (props.svg) {
1408
+ addIconFromSvg(props.svg);
1409
+ }
1410
+ return (_ctx, _cache) => {
1411
+ return unref(show) ? (openBlock(), createBlock(unref(Icon), mergeProps({
1412
+ key: 0,
1413
+ class: unref(bemCssClasses)
1414
+ }, {
1415
+ inline: __props.inline,
1416
+ width: __props.width,
1417
+ height: __props.height,
1418
+ horizontalFlip: __props.horizontalFlip,
1419
+ verticalFlip: __props.verticalFlip,
1420
+ flip: __props.flip,
1421
+ rotate: unref(hasRotate),
1422
+ color: __props.color,
1423
+ icon: unref(icon)
1424
+ }, { onLoad: __props.onLoad }), null, 16, ["class", "onLoad"])) : createCommentVNode("v-if", true);
1425
+ };
1426
+ }
1427
+ });
1428
+ const INPUT_TYPES = {
1429
+ TEXT: "text",
744
1430
  PASSWORD: "password",
745
1431
  NUMBER: "number",
746
1432
  EMAIL: "email",
@@ -754,14 +1440,6 @@ const INPUT_TYPES = {
754
1440
  MONTH: "month",
755
1441
  WEEK: "week"
756
1442
  };
757
- const TYPES_ICON = {
758
- PASSWORD_SHOW: "eye-on",
759
- PASSWORD_HIDE: "eye-off",
760
- DATE: "calendar",
761
- TIME: "time",
762
- COLOR: "color",
763
- SEARCH: "close"
764
- };
765
1443
  const VvInputTextEvents = [
766
1444
  "update:modelValue",
767
1445
  "update:masked",
@@ -773,19 +1451,23 @@ const VvInputTextEvents = [
773
1451
  "complete:typed",
774
1452
  "complete:masked",
775
1453
  "complete:unmasked",
1454
+ "suggestion:selected",
1455
+ "suggestion:removed",
776
1456
  "focus",
777
1457
  "blur",
778
1458
  "keyup",
779
1459
  "keydown",
780
- "keypress"
1460
+ "keypress",
1461
+ "clear"
781
1462
  ];
782
1463
  const VvInputTextProps = {
783
1464
  ...InputTextareaProps,
1465
+ ...StorageProps,
784
1466
  /**
785
1467
  * Input value
786
1468
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#value
787
1469
  */
788
- modelValue: [String, Number],
1470
+ modelValue: [String, Number, Date],
789
1471
  /**
790
1472
  * Type of form control
791
1473
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#type
@@ -827,27 +1509,35 @@ const VvInputTextProps = {
827
1509
  multiple: Boolean,
828
1510
  /**
829
1511
  * VvIcon name for show password button
830
- * @see VVIcon
1512
+ * @see VvIcon
831
1513
  */
832
1514
  iconShowPassword: {
833
- type: String,
834
- default: TYPES_ICON.PASSWORD_SHOW
1515
+ type: [String, Object],
1516
+ default: ACTION_ICONS.showPassword
835
1517
  },
836
1518
  /**
837
1519
  * VvIcon name for hide password button
838
- * @see VVIcon
1520
+ * @see VvIcon
839
1521
  */
840
1522
  iconHidePassword: {
841
- type: String,
842
- default: TYPES_ICON.PASSWORD_HIDE
1523
+ type: [String, Object],
1524
+ default: ACTION_ICONS.hidePassword
843
1525
  },
844
1526
  /**
845
1527
  * VvIcon name for clear button
846
- * @see VVIcon
1528
+ * @see VvIcon
847
1529
  */
848
1530
  iconClear: {
849
- type: String,
850
- default: TYPES_ICON.SEARCH
1531
+ type: [String, Object],
1532
+ default: ACTION_ICONS.clear
1533
+ },
1534
+ /**
1535
+ * VvIcon name for remove suggestion button
1536
+ * @see VvIcon
1537
+ */
1538
+ iconRemoveSuggestion: {
1539
+ type: [String, Object],
1540
+ default: ACTION_ICONS.remove
851
1541
  },
852
1542
  /**
853
1543
  * Label for step up button
@@ -884,6 +1574,13 @@ const VvInputTextProps = {
884
1574
  type: String,
885
1575
  default: "Clear"
886
1576
  },
1577
+ /**
1578
+ * Label for remove suggestion button
1579
+ */
1580
+ labelRemoveSuggestion: {
1581
+ type: String,
1582
+ default: "Remove suggestion"
1583
+ },
887
1584
  /**
888
1585
  * iMask options
889
1586
  * @see https://imask.js.org/guide.html
@@ -906,32 +1603,140 @@ const VvInputTextProps = {
906
1603
  type: Boolean,
907
1604
  default: false
908
1605
  },
909
- /**
910
- * Hide type number, password and search actions
911
- */
912
- hideActions: {
913
- type: Boolean,
914
- default: false
1606
+ /**
1607
+ * Hide type number, password and search actions
1608
+ */
1609
+ hideActions: {
1610
+ type: Boolean,
1611
+ default: false
1612
+ },
1613
+ /**
1614
+ * Add unit label to input
1615
+ */
1616
+ unit: {
1617
+ type: String
1618
+ },
1619
+ /**
1620
+ * Select input text on focus
1621
+ */
1622
+ selectOnFocus: {
1623
+ type: Boolean,
1624
+ default: false
1625
+ },
1626
+ /**
1627
+ * Maximum number of suggestions
1628
+ */
1629
+ maxSuggestions: {
1630
+ type: Number,
1631
+ default: 5
1632
+ },
1633
+ /**
1634
+ * The input mode to use for the input
1635
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/inputmode
1636
+ */
1637
+ inputMode: {
1638
+ type: String,
1639
+ default: "text"
1640
+ }
1641
+ };
1642
+ function useComponentIcon(icon, iconPosition) {
1643
+ const hasIcon = computed(() => {
1644
+ if (typeof icon?.value === "string") {
1645
+ return { name: icon?.value };
1646
+ }
1647
+ return icon?.value;
1648
+ });
1649
+ const hasIconBefore = computed(
1650
+ () => iconPosition?.value === Position.before ? hasIcon.value : void 0
1651
+ );
1652
+ const hasIconAfter = computed(
1653
+ () => iconPosition?.value === Position.after ? hasIcon.value : void 0
1654
+ );
1655
+ const hasIconLeft = computed(
1656
+ () => iconPosition?.value === Side.left ? hasIcon.value : void 0
1657
+ );
1658
+ const hasIconRight = computed(
1659
+ () => iconPosition?.value === Side.right ? hasIcon.value : void 0
1660
+ );
1661
+ const hasIconTop = computed(
1662
+ () => iconPosition?.value === Side.top ? hasIcon.value : void 0
1663
+ );
1664
+ const hasIconBottom = computed(
1665
+ () => iconPosition?.value === Side.bottom ? hasIcon.value : void 0
1666
+ );
1667
+ return {
1668
+ hasIcon,
1669
+ hasIconLeft,
1670
+ hasIconRight,
1671
+ hasIconTop,
1672
+ hasIconBottom,
1673
+ hasIconBefore,
1674
+ hasIconAfter
1675
+ };
1676
+ }
1677
+ const VvInputClearAction = defineComponent({
1678
+ components: {
1679
+ VvIcon: _sfc_main$1
1680
+ },
1681
+ props: {
1682
+ inputType: {
1683
+ type: String,
1684
+ default: "input-text"
1685
+ },
1686
+ disabled: {
1687
+ type: Boolean,
1688
+ default: false
1689
+ },
1690
+ label: {
1691
+ type: String,
1692
+ default: "Clear"
1693
+ },
1694
+ icon: {
1695
+ type: [String, Object],
1696
+ default: "close"
1697
+ }
915
1698
  },
916
- /**
917
- * Add unit label to input
918
- */
919
- unit: {
920
- type: String
1699
+ emits: ["clear"],
1700
+ setup(props, { emit }) {
1701
+ const { hasIcon } = useComponentIcon(computed(() => props.icon));
1702
+ function onClick(e) {
1703
+ e?.stopPropagation();
1704
+ if (!props.disabled) {
1705
+ emit("clear");
1706
+ }
1707
+ }
1708
+ return {
1709
+ hasIcon,
1710
+ onClick
1711
+ };
921
1712
  },
922
- /**
923
- * Select input text on focus
924
- */
925
- selectOnFocus: {
926
- type: Boolean,
927
- default: false
1713
+ render() {
1714
+ const icon = this.hasIcon ? h(_sfc_main$1, {
1715
+ ...this.hasIcon,
1716
+ class: `vv-${this.inputType}__icon`
1717
+ }) : void 0;
1718
+ return h(
1719
+ "button",
1720
+ {
1721
+ disabled: this.disabled,
1722
+ class: `vv-${this.inputType}__action`,
1723
+ ariaLabel: this.label,
1724
+ type: "button",
1725
+ onClick: this.onClick
1726
+ },
1727
+ icon
1728
+ );
928
1729
  }
929
- };
1730
+ });
930
1731
  const VvInputPasswordAction = defineComponent({
931
1732
  components: {
932
1733
  VvIcon: _sfc_main$1
933
1734
  },
934
1735
  props: {
1736
+ inputType: {
1737
+ type: String,
1738
+ default: "input-text"
1739
+ },
935
1740
  disabled: {
936
1741
  type: Boolean,
937
1742
  default: false
@@ -945,12 +1750,12 @@ const VvInputPasswordAction = defineComponent({
945
1750
  default: "Hide password"
946
1751
  },
947
1752
  iconShow: {
948
- type: String,
949
- default: TYPES_ICON.PASSWORD_SHOW
1753
+ type: [String, Object],
1754
+ default: ACTION_ICONS.showPassword
950
1755
  },
951
1756
  iconHide: {
952
- type: String,
953
- default: TYPES_ICON.PASSWORD_HIDE
1757
+ type: [String, Object],
1758
+ default: ACTION_ICONS.hidePassword
954
1759
  }
955
1760
  },
956
1761
  emits: ["toggle-password"],
@@ -959,8 +1764,9 @@ const VvInputPasswordAction = defineComponent({
959
1764
  const activeIcon = computed(
960
1765
  () => active.value ? props.iconHide : props.iconShow
961
1766
  );
1767
+ const { hasIcon } = useComponentIcon(activeIcon);
962
1768
  function onClick(e) {
963
- e == null ? void 0 : e.stopPropagation();
1769
+ e?.stopPropagation();
964
1770
  if (!props.disabled) {
965
1771
  active.value = !active.value;
966
1772
  emit("toggle-password", active.value);
@@ -969,19 +1775,20 @@ const VvInputPasswordAction = defineComponent({
969
1775
  return {
970
1776
  active,
971
1777
  activeIcon,
1778
+ hasIcon,
972
1779
  onClick
973
1780
  };
974
1781
  },
975
1782
  render() {
976
- const icon = h(_sfc_main$1, {
977
- name: this.activeIcon,
978
- class: "vv-input-text__icon"
979
- });
1783
+ const icon = this.hasIcon ? h(_sfc_main$1, {
1784
+ ...this.hasIcon,
1785
+ class: `vv-${this.inputType}__icon`
1786
+ }) : void 0;
980
1787
  return h(
981
1788
  "button",
982
1789
  {
983
1790
  disabled: this.disabled,
984
- class: "vv-input-text__action",
1791
+ class: `vv-${this.inputType}__action`,
985
1792
  ariaLabel: this.active ? this.labelHide : this.labelShow,
986
1793
  type: "button",
987
1794
  onClick: this.onClick
@@ -995,6 +1802,10 @@ const VvInputStepAction = defineComponent({
995
1802
  VvIcon: _sfc_main$1
996
1803
  },
997
1804
  props: {
1805
+ inputType: {
1806
+ type: String,
1807
+ default: "input-text"
1808
+ },
998
1809
  disabled: {
999
1810
  type: Boolean,
1000
1811
  default: false
@@ -1012,7 +1823,7 @@ const VvInputStepAction = defineComponent({
1012
1823
  setup(props, { emit }) {
1013
1824
  const isUp = computed(() => props.mode === "up");
1014
1825
  const onClick = (e) => {
1015
- e == null ? void 0 : e.stopPropagation();
1826
+ e?.stopPropagation();
1016
1827
  if (!props.disabled) {
1017
1828
  emit(isUp.value ? "step-up" : "step-down");
1018
1829
  }
@@ -1025,8 +1836,9 @@ const VvInputStepAction = defineComponent({
1025
1836
  render() {
1026
1837
  return h("button", {
1027
1838
  class: [
1028
- "vv-input-text__action vv-input-text__action-chevron",
1029
- this.isUp && "vv-input-text__action-chevron-up"
1839
+ `vv-${this.inputType}__action`,
1840
+ `vv-${this.inputType}__action-chevron`,
1841
+ this.isUp ? `vv-${this.inputType}__action-chevron-up` : void 0
1030
1842
  ],
1031
1843
  disabled: this.disabled,
1032
1844
  ariaLabel: this.label,
@@ -1035,55 +1847,7 @@ const VvInputStepAction = defineComponent({
1035
1847
  });
1036
1848
  }
1037
1849
  });
1038
- const VvInputClearAction = defineComponent({
1039
- components: {
1040
- VvIcon: _sfc_main$1
1041
- },
1042
- props: {
1043
- disabled: {
1044
- type: Boolean,
1045
- default: false
1046
- },
1047
- label: {
1048
- type: String,
1049
- default: "Clear"
1050
- },
1051
- icon: {
1052
- type: String,
1053
- default: "close"
1054
- }
1055
- },
1056
- emits: ["clear"],
1057
- setup(props, { emit }) {
1058
- function onClick(e) {
1059
- e == null ? void 0 : e.stopPropagation();
1060
- if (!props.disabled) {
1061
- emit("clear");
1062
- }
1063
- }
1064
- return {
1065
- onClick
1066
- };
1067
- },
1068
- render() {
1069
- const icon = h(_sfc_main$1, {
1070
- name: this.icon,
1071
- class: "vv-input-text__icon"
1072
- });
1073
- return h(
1074
- "button",
1075
- {
1076
- disabled: this.disabled,
1077
- class: "vv-input-text__action",
1078
- ariaLabel: this.label,
1079
- type: "button",
1080
- onClick: this.onClick
1081
- },
1082
- icon
1083
- );
1084
- }
1085
- });
1086
- function VvInputTextActionsFactory(type, parentProps) {
1850
+ function VvInputTextActionsFactory(type, parentProps, isDirty) {
1087
1851
  return {
1088
1852
  name: "VvInputTextActions",
1089
1853
  components: {
@@ -1097,6 +1861,7 @@ function VvInputTextActionsFactory(type, parentProps) {
1097
1861
  return parentProps.disabled || parentProps.readonly;
1098
1862
  });
1099
1863
  return {
1864
+ isDirty,
1100
1865
  isDisabled,
1101
1866
  labelStepUp: parentProps.labelStepUp,
1102
1867
  labelStepDown: parentProps.labelStepDown,
@@ -1114,8 +1879,8 @@ function VvInputTextActionsFactory(type, parentProps) {
1114
1879
  const { onClear } = this.$attrs;
1115
1880
  actions = [
1116
1881
  h(VvInputClearAction, {
1117
- disabled: this.isDisabled,
1118
- label: this.labelShowPassword,
1882
+ disabled: this.isDisabled || !this.isDirty,
1883
+ label: this.labelClear,
1119
1884
  onClear
1120
1885
  })
1121
1886
  ];
@@ -1163,8 +1928,7 @@ function VvInputTextActionsFactory(type, parentProps) {
1163
1928
  function useDefaults(componentName, propsDefinition, props) {
1164
1929
  const volver = useVolver();
1165
1930
  const volverComponentDefaults = computed(() => {
1166
- var _a;
1167
- if (!volver || !((_a = volver.defaults.value) == null ? void 0 : _a[componentName])) {
1931
+ if (!volver || !volver.defaults.value?.[componentName]) {
1168
1932
  return void 0;
1169
1933
  }
1170
1934
  return volver.defaults.value[componentName];
@@ -1213,17 +1977,16 @@ function useDefaults(componentName, propsDefinition, props) {
1213
1977
  }, {});
1214
1978
  });
1215
1979
  }
1216
- const useUniqueId = (id) => computed(() => String((id == null ? void 0 : id.value) || uid()));
1217
1980
  function useDebouncedInput(modelValue, emit, ms = 0, {
1218
1981
  getter = (value) => value,
1219
1982
  setter = (value) => value
1220
1983
  } = {}) {
1221
1984
  let timeout;
1222
1985
  if (typeof ms === "string") {
1223
- ms = parseInt(ms);
1986
+ ms = Number.parseInt(ms);
1224
1987
  }
1225
1988
  return computed({
1226
- get: () => getter(modelValue == null ? void 0 : modelValue.value),
1989
+ get: () => getter(modelValue?.value),
1227
1990
  set: (value) => {
1228
1991
  if (timeout) {
1229
1992
  clearTimeout(timeout);
@@ -1243,62 +2006,27 @@ function useComponentFocus(inputTemplateRef, emit) {
1243
2006
  focused
1244
2007
  };
1245
2008
  }
1246
- function useComponentIcon(icon, iconPosition) {
1247
- const hasIconBefore = computed(
1248
- () => Boolean((icon == null ? void 0 : icon.value) && iconPosition.value === Position.before)
1249
- );
1250
- const hasIconAfter = computed(
1251
- () => Boolean((icon == null ? void 0 : icon.value) && iconPosition.value === Position.after)
1252
- );
1253
- const hasIconLeft = computed(
1254
- () => Boolean((icon == null ? void 0 : icon.value) && iconPosition.value === Side.left)
1255
- );
1256
- const hasIconRight = computed(
1257
- () => Boolean((icon == null ? void 0 : icon.value) && iconPosition.value === Side.right)
1258
- );
1259
- const hasIconTop = computed(
1260
- () => Boolean((icon == null ? void 0 : icon.value) && iconPosition.value === Side.top)
1261
- );
1262
- const hasIconBottom = computed(
1263
- () => Boolean((icon == null ? void 0 : icon.value) && iconPosition.value === Side.bottom)
1264
- );
1265
- const hasIcon = computed(() => {
1266
- if (typeof (icon == null ? void 0 : icon.value) === "string") {
1267
- return { name: icon == null ? void 0 : icon.value };
1268
- }
1269
- return icon == null ? void 0 : icon.value;
1270
- });
1271
- return {
1272
- hasIcon,
1273
- hasIconLeft,
1274
- hasIconRight,
1275
- hasIconTop,
1276
- hasIconBottom,
1277
- hasIconBefore,
1278
- hasIconAfter
1279
- };
1280
- }
1281
2009
  function useTextCount(text, options) {
1282
2010
  const length = computed(() => {
1283
2011
  return (unref(text) ?? "").length;
1284
2012
  });
1285
2013
  const gap = computed(() => {
1286
- if ((options == null ? void 0 : options.lowerLimit) !== void 0 && length.value < (options == null ? void 0 : options.lowerLimit)) {
2014
+ if (options?.lowerLimit !== void 0 && length.value < options?.lowerLimit) {
1287
2015
  return length.value - options.lowerLimit;
1288
2016
  }
1289
- if ((options == null ? void 0 : options.upperLimit) !== void 0 && length.value < (options == null ? void 0 : options.upperLimit)) {
2017
+ if (options?.upperLimit !== void 0 && length.value < options?.upperLimit) {
1290
2018
  return options.upperLimit - length.value;
1291
2019
  }
1292
2020
  return 0;
1293
2021
  });
1294
2022
  const formatted = computed(() => {
1295
- if ((options == null ? void 0 : options.mode) === false) {
2023
+ if (options?.mode === false) {
1296
2024
  return "";
1297
2025
  }
1298
- if ((options == null ? void 0 : options.mode) === "limit" && (options == null ? void 0 : options.upperLimit)) {
2026
+ if (options?.mode === "limit" && options?.upperLimit) {
1299
2027
  return `${length.value} / ${options.lowerLimit ? `${options.lowerLimit}-` : ""}${options.upperLimit}`;
1300
2028
  }
1301
- if ((options == null ? void 0 : options.mode) === "countdown") {
2029
+ if (options?.mode === "countdown") {
1302
2030
  if (gap.value === 0) {
1303
2031
  return void 0;
1304
2032
  }
@@ -1312,26 +2040,88 @@ function useTextCount(text, options) {
1312
2040
  formatted
1313
2041
  };
1314
2042
  }
2043
+ function usePersistence(storageKey, storageType = StorageType.local, defaultValue) {
2044
+ const localValue = ref();
2045
+ if (defaultValue) {
2046
+ localValue.value = defaultValue;
2047
+ }
2048
+ let storageValue;
2049
+ onMounted(() => {
2050
+ if (storageKey) {
2051
+ watch(
2052
+ storageKey,
2053
+ (newKey, oldKey) => {
2054
+ const storage = unref(storageType) === StorageType.session ? sessionStorage : localStorage;
2055
+ if (oldKey && oldKey !== newKey) {
2056
+ storage.removeItem(oldKey);
2057
+ }
2058
+ if (newKey) {
2059
+ storageValue = useStorage(
2060
+ newKey,
2061
+ storageValue?.value ?? localValue.value,
2062
+ storage
2063
+ );
2064
+ if (storageValue.value) {
2065
+ localValue.value = storageValue.value;
2066
+ }
2067
+ return;
2068
+ }
2069
+ storageValue = void 0;
2070
+ },
2071
+ {
2072
+ immediate: true
2073
+ }
2074
+ );
2075
+ }
2076
+ if (isRef(storageType)) {
2077
+ watch(storageType, (newType, oldType) => {
2078
+ if (storageKey?.value) {
2079
+ if (newType) {
2080
+ const storage = newType === StorageType.session ? sessionStorage : localStorage;
2081
+ storageValue = useStorage(
2082
+ storageKey.value,
2083
+ storageValue?.value ?? localValue.value,
2084
+ storage
2085
+ );
2086
+ }
2087
+ if (oldType && oldType !== newType) {
2088
+ const oldStorage = oldType === StorageType.session ? sessionStorage : localStorage;
2089
+ oldStorage.removeItem(storageKey.value);
2090
+ }
2091
+ }
2092
+ });
2093
+ }
2094
+ });
2095
+ watch(localValue, (newValue) => {
2096
+ if (storageValue) {
2097
+ storageValue.value = newValue;
2098
+ }
2099
+ }, {
2100
+ deep: true,
2101
+ immediate: true
2102
+ });
2103
+ return localValue;
2104
+ }
1315
2105
  const _hoisted_1 = ["for"];
1316
- const _hoisted_2 = { class: "vv-input-text__wrapper" };
1317
- const _hoisted_3 = {
2106
+ const _hoisted_2 = {
1318
2107
  key: 0,
1319
2108
  class: "vv-input-text__input-before"
1320
2109
  };
1321
- const _hoisted_4 = ["onClick"];
1322
- const _hoisted_5 = ["id"];
1323
- const _hoisted_6 = {
2110
+ const _hoisted_3 = ["id"];
2111
+ const _hoisted_4 = {
1324
2112
  key: 1,
1325
2113
  class: "vv-input-text__unit"
1326
2114
  };
1327
- const _hoisted_7 = {
2115
+ const _hoisted_5 = {
1328
2116
  key: 5,
1329
2117
  class: "vv-input-text__input-after"
1330
2118
  };
1331
- const _hoisted_8 = {
2119
+ const _hoisted_6 = {
1332
2120
  key: 6,
1333
2121
  class: "vv-input-text__limit"
1334
2122
  };
2123
+ const _hoisted_7 = { class: "flex-1" };
2124
+ const _hoisted_8 = ["title", "onClick"];
1335
2125
  const __default__ = {
1336
2126
  name: "VvInputText"
1337
2127
  };
@@ -1339,41 +2129,74 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1339
2129
  ...__default__,
1340
2130
  props: VvInputTextProps,
1341
2131
  emits: VvInputTextEvents,
1342
- setup(__props, { expose: __expose, emit }) {
2132
+ setup(__props, { expose: __expose, emit: __emit }) {
1343
2133
  const props = __props;
2134
+ const emit = __emit;
1344
2135
  const slots = useSlots();
2136
+ const volver = useVolver();
1345
2137
  const propsDefaults = useDefaults(
1346
2138
  "VvInputText",
1347
2139
  VvInputTextProps,
1348
2140
  props
1349
2141
  );
1350
2142
  const {
1351
- id,
2143
+ count,
2144
+ debounce,
1352
2145
  icon,
1353
2146
  iconPosition,
1354
- label,
1355
- modelValue,
1356
- count,
1357
- valid,
2147
+ iconRemoveSuggestion,
2148
+ id,
1358
2149
  invalid,
2150
+ label,
1359
2151
  loading,
1360
- debounce,
1361
2152
  maxlength,
1362
2153
  minlength,
2154
+ modelValue,
2155
+ step,
2156
+ storageType,
1363
2157
  type,
1364
- iMask,
1365
- step
2158
+ valid
1366
2159
  } = toRefs(props);
1367
2160
  const hasId = useUniqueId(id);
1368
2161
  const hasHintId = computed(() => `${hasId.value}-hint`);
1369
2162
  const inputTextPlaceholder = computed(
1370
2163
  () => props.floating && isEmpty(props.placeholder) ? " " : props.placeholder
1371
2164
  );
2165
+ const localModelValue = useDebouncedInput(
2166
+ modelValue,
2167
+ emit,
2168
+ debounce?.value ?? 0
2169
+ );
2170
+ const hasSeconds = computed(() => {
2171
+ const stepValue = typeof step.value === "number" ? step.value : Number.parseInt(step.value);
2172
+ if (Number.isNaN(stepValue)) {
2173
+ return false;
2174
+ }
2175
+ return stepValue % 60 !== 0;
2176
+ });
2177
+ const NEGATIVE_ZERO_REGEX = /^-0?[.,]?[0*]?$/;
1372
2178
  const maskReady = ref(false);
2179
+ const modelValueDate = ref();
2180
+ const modelValueDateIsoString = ref();
1373
2181
  const { el, mask, typed, masked, unmasked } = useIMask(
1374
2182
  computed(
1375
- () => (iMask == null ? void 0 : iMask.value) ?? {
1376
- mask: /./
2183
+ () => {
2184
+ if (!props.iMask) {
2185
+ return {
2186
+ mask: /./
2187
+ };
2188
+ }
2189
+ if (props.iMask.mask === Number) {
2190
+ const toReturn = { ...props.iMask };
2191
+ if (props.min) {
2192
+ toReturn.min = Number(props.min);
2193
+ }
2194
+ if (props.max) {
2195
+ toReturn.max = Number(props.max);
2196
+ }
2197
+ return toReturn;
2198
+ }
2199
+ return props.iMask;
1377
2200
  }
1378
2201
  ),
1379
2202
  {
@@ -1384,13 +2207,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1384
2207
  }
1385
2208
  emit("update:masked", masked.value);
1386
2209
  if (type.value === INPUT_TYPES.NUMBER) {
1387
- if (masked.value === "") {
2210
+ if (/^-$|^$/.test(unmasked.value)) {
1388
2211
  if (localModelValue.value === null || localModelValue.value === void 0) {
1389
2212
  return;
1390
2213
  }
1391
2214
  localModelValue.value = void 0;
1392
2215
  return;
1393
2216
  }
2217
+ if (NEGATIVE_ZERO_REGEX.test(unmasked.value)) {
2218
+ localModelValue.value = 0;
2219
+ return;
2220
+ }
1394
2221
  if (typeof typed.value !== "number") {
1395
2222
  localModelValue.value = Number(typed.value);
1396
2223
  return;
@@ -1398,42 +2225,51 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1398
2225
  localModelValue.value = typed.value;
1399
2226
  return;
1400
2227
  }
1401
- if (type.value === INPUT_TYPES.DATE) {
1402
- if (el.value instanceof HTMLInputElement && el.value.type === "date") {
1403
- localModelValue.value = el.value.value;
1404
- return;
1405
- }
1406
- let date = typed.value;
1407
- if (date === null || date === "") {
2228
+ if (type.value === INPUT_TYPES.DATETIME_LOCAL || type.value === INPUT_TYPES.DATE || type.value === INPUT_TYPES.TIME || type.value === INPUT_TYPES.MONTH) {
2229
+ if (!typed.value) {
1408
2230
  if (!localModelValue.value) {
1409
2231
  return;
1410
2232
  }
2233
+ if (modelValueDate.value) {
2234
+ localModelValue.value = void 0;
2235
+ return;
2236
+ }
1411
2237
  localModelValue.value = "";
1412
2238
  return;
1413
2239
  }
1414
- if (!(date instanceof Date)) {
1415
- date = new Date(date);
1416
- }
1417
- localModelValue.value = `${date.getFullYear()}-${("0" + (date.getMonth() + 1)).slice(-2)}-${("0" + date.getDate()).slice(-2)}`;
1418
- return;
1419
- }
1420
- if (type.value === INPUT_TYPES.DATETIME_LOCAL) {
1421
- if (el.value instanceof HTMLInputElement && el.value.type === "datetime-local") {
1422
- localModelValue.value = el.value.value;
2240
+ if (!(typed.value instanceof Date) && !modelValueDate.value && !modelValueDateIsoString.value) {
2241
+ localModelValue.value = typed.value;
1423
2242
  return;
1424
2243
  }
1425
2244
  let date = typed.value;
1426
- if (date === null || date === "") {
1427
- if (!localModelValue.value) {
2245
+ if (!(date instanceof Date)) {
2246
+ date = getDateFromInputValue(typed.value, type.value);
2247
+ }
2248
+ if (modelValueDate.value || modelValueDateIsoString.value) {
2249
+ const toReturn = new Date(modelValueDate.value || modelValueDateIsoString.value);
2250
+ if (type.value === INPUT_TYPES.DATETIME_LOCAL || type.value === INPUT_TYPES.DATE || type.value === INPUT_TYPES.MONTH) {
2251
+ toReturn.setFullYear(date.getFullYear());
2252
+ toReturn.setMonth(date.getMonth());
2253
+ }
2254
+ if (type.value === INPUT_TYPES.DATETIME_LOCAL || type.value === INPUT_TYPES.DATE) {
2255
+ toReturn.setDate(date.getDate());
2256
+ }
2257
+ if (type.value === INPUT_TYPES.DATETIME_LOCAL || type.value === INPUT_TYPES.TIME) {
2258
+ toReturn.setHours(date.getHours());
2259
+ toReturn.setMinutes(date.getMinutes());
2260
+ toReturn.setSeconds(date.getSeconds());
2261
+ }
2262
+ if (modelValueDate.value instanceof Date) {
2263
+ if (localModelValue.value?.getTime() === toReturn.getTime()) {
2264
+ return;
2265
+ }
2266
+ localModelValue.value = toReturn;
1428
2267
  return;
1429
2268
  }
1430
- localModelValue.value = "";
2269
+ localModelValue.value = toReturn.toISOString();
1431
2270
  return;
1432
2271
  }
1433
- if (!(typed.value instanceof Date)) {
1434
- date = new Date(date);
1435
- }
1436
- localModelValue.value = `${date.getFullYear()}-${("0" + (date.getMonth() + 1)).slice(-2)}-${("0" + date.getDate()).slice(-2)}T${("0" + date.getHours()).slice(-2)}:${("0" + date.getMinutes()).slice(-2)}`;
2272
+ localModelValue.value = getInputValueFromDate(date, type.value, hasSeconds.value);
1437
2273
  return;
1438
2274
  }
1439
2275
  if (!localModelValue.value && !unmasked.value) {
@@ -1443,18 +2279,50 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1443
2279
  }
1444
2280
  }
1445
2281
  );
2282
+ function updateMaskValue(newValue) {
2283
+ if (newValue === void 0 || newValue === null) {
2284
+ typed.value = "";
2285
+ unmasked.value = "";
2286
+ return;
2287
+ }
2288
+ if (props.iMask?.mask === Date) {
2289
+ typed.value = newValue instanceof Date ? newValue : new Date(newValue);
2290
+ return;
2291
+ }
2292
+ if (type.value === INPUT_TYPES.NUMBER && NEGATIVE_ZERO_REGEX.test(unmasked.value) && newValue === 0) {
2293
+ return;
2294
+ }
2295
+ if (type.value === INPUT_TYPES.DATE || type.value === INPUT_TYPES.MONTH || type.value === INPUT_TYPES.DATETIME_LOCAL || type.value === INPUT_TYPES.TIME) {
2296
+ if (newValue instanceof Date || isDateIsoString(newValue)) {
2297
+ if (newValue instanceof Date) {
2298
+ modelValueDate.value = newValue;
2299
+ modelValueDateIsoString.value = void 0;
2300
+ } else {
2301
+ modelValueDateIsoString.value = newValue;
2302
+ modelValueDate.value = void 0;
2303
+ }
2304
+ const newDate = new Date(newValue);
2305
+ typed.value = getInputValueFromDate(newDate, type.value, hasSeconds.value);
2306
+ unmasked.value = typed.value;
2307
+ return;
2308
+ }
2309
+ modelValueDate.value = void 0;
2310
+ modelValueDateIsoString.value = void 0;
2311
+ }
2312
+ typed.value = newValue;
2313
+ unmasked.value = `${typed.value}`;
2314
+ }
1446
2315
  onMounted(() => {
1447
2316
  if (mask.value) {
1448
2317
  maskReady.value = true;
1449
- typed.value = localModelValue.value ?? "";
2318
+ updateMaskValue(props.modelValue);
1450
2319
  }
1451
2320
  });
1452
2321
  watch(
1453
2322
  () => props.modelValue,
1454
2323
  (newValue) => {
1455
- var _a;
1456
2324
  if (mask.value) {
1457
- typed.value = newValue && ((_a = iMask == null ? void 0 : iMask.value) == null ? void 0 : _a.mask) === Date ? new Date(newValue) : newValue ?? "";
2325
+ updateMaskValue(newValue);
1458
2326
  }
1459
2327
  }
1460
2328
  );
@@ -1466,12 +2334,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1466
2334
  );
1467
2335
  const inputEl = el;
1468
2336
  const innerEl = ref();
2337
+ const wrapperEl = ref();
2338
+ const suggestionsDropdownEl = ref();
1469
2339
  __expose({ $inner: innerEl });
1470
- const localModelValue = useDebouncedInput(
1471
- modelValue,
1472
- emit,
1473
- (debounce == null ? void 0 : debounce.value) ?? 0
1474
- );
1475
2340
  const { focused } = useComponentFocus(inputEl, emit);
1476
2341
  const isFocused = computed(
1477
2342
  () => focused.value && !props.disabled && !props.readonly
@@ -1480,6 +2345,21 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1480
2345
  if (newValue && propsDefaults.value.selectOnFocus && inputEl.value) {
1481
2346
  inputEl.value.select();
1482
2347
  }
2348
+ if (newValue && suggestions.value?.size) {
2349
+ suggestionsDropdownEl.value?.show();
2350
+ return;
2351
+ }
2352
+ if (isDirty.value && suggestions.value) {
2353
+ const suggestionsLimit = props.maxSuggestions;
2354
+ if (suggestions.value.size >= suggestionsLimit && !suggestions.value.has(localModelValue.value)) {
2355
+ suggestions.value = new Set(
2356
+ [...suggestions.value].slice(
2357
+ suggestions.value.size - suggestionsLimit + 1
2358
+ )
2359
+ );
2360
+ }
2361
+ suggestions.value.add(localModelValue.value);
2362
+ }
1483
2363
  });
1484
2364
  const isVisible = useElementVisibility(inputEl);
1485
2365
  watch(isVisible, (newValue) => {
@@ -1489,65 +2369,66 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1489
2369
  });
1490
2370
  const showPassword = ref(false);
1491
2371
  const isPassword = computed(() => props.type === INPUT_TYPES.PASSWORD);
1492
- const onTogglePassword = () => {
2372
+ function onTogglePassword() {
1493
2373
  showPassword.value = !showPassword.value;
1494
- };
2374
+ }
1495
2375
  const isDateTime = computed(
1496
2376
  () => props.type === INPUT_TYPES.TIME || props.type === INPUT_TYPES.DATETIME_LOCAL || props.type === INPUT_TYPES.DATE || props.type === INPUT_TYPES.WEEK || props.type === INPUT_TYPES.MONTH
1497
2377
  );
1498
2378
  const isNumber = computed(() => props.type === INPUT_TYPES.NUMBER);
1499
- const onStepUp = () => {
1500
- if (isClickable.value) {
1501
- if (iMask == null ? void 0 : iMask.value) {
1502
- typed.value = typed.value + Number((step == null ? void 0 : step.value) ?? 1);
2379
+ function onStepUp() {
2380
+ if (!isDisabledOrReadonly.value) {
2381
+ if (props.iMask) {
2382
+ typed.value = Number(typed.value) + Number(step?.value ?? 1);
1503
2383
  return;
1504
2384
  }
1505
2385
  inputEl.value.stepUp();
1506
2386
  localModelValue.value = Number(unref(inputEl).value);
1507
2387
  }
1508
- };
1509
- const onStepDown = () => {
1510
- if (isClickable.value) {
1511
- if (iMask == null ? void 0 : iMask.value) {
1512
- typed.value = typed.value - Number((step == null ? void 0 : step.value) ?? 1);
2388
+ }
2389
+ function onStepDown() {
2390
+ if (!isDisabledOrReadonly.value) {
2391
+ if (props.iMask) {
2392
+ typed.value = Number(typed.value) - Number(step?.value ?? 1);
1513
2393
  return;
1514
2394
  }
1515
2395
  inputEl.value.stepDown();
1516
2396
  localModelValue.value = Number(unref(inputEl).value);
1517
2397
  }
1518
- };
2398
+ }
1519
2399
  const isSearch = computed(() => props.type === INPUT_TYPES.SEARCH);
1520
- const onClear = () => {
2400
+ function onClear() {
1521
2401
  localModelValue.value = "";
1522
- };
1523
- const { hasIcon, hasIconBefore, hasIconAfter } = useComponentIcon(
1524
- icon,
1525
- iconPosition
1526
- );
1527
- const defaultAfterIcon = computed(() => {
2402
+ emit("clear");
2403
+ }
2404
+ const { hasIconBefore, hasIconAfter } = useComponentIcon(icon, iconPosition);
2405
+ const iconAfter = computed(() => {
2406
+ if (hasIconAfter.value !== void 0) {
2407
+ return hasIconAfter.value;
2408
+ }
1528
2409
  switch (props.type) {
1529
2410
  case INPUT_TYPES.COLOR:
1530
- return { name: TYPES_ICON.COLOR };
2411
+ return { name: ACTION_ICONS.showColorPicker };
1531
2412
  case INPUT_TYPES.DATE:
1532
2413
  case INPUT_TYPES.DATETIME_LOCAL:
1533
2414
  case INPUT_TYPES.WEEK:
1534
2415
  case INPUT_TYPES.MONTH:
1535
- return { name: TYPES_ICON.DATE };
2416
+ return { name: ACTION_ICONS.showDatePicker };
1536
2417
  case INPUT_TYPES.TIME:
1537
- return { name: TYPES_ICON.TIME };
1538
- default:
1539
- return "";
2418
+ return { name: ACTION_ICONS.showTimePicker };
1540
2419
  }
2420
+ return void 0;
1541
2421
  });
2422
+ const { hasIcon: hasIconRemoveSuggestion } = useComponentIcon(iconRemoveSuggestion);
1542
2423
  const { formatted: countFormatted } = useTextCount(localModelValue, {
1543
2424
  mode: count.value,
1544
- upperLimit: Number(maxlength == null ? void 0 : maxlength.value),
1545
- lowerLimit: Number(minlength == null ? void 0 : minlength.value)
2425
+ upperLimit: Number(maxlength?.value),
2426
+ lowerLimit: Number(minlength?.value)
2427
+ });
2428
+ const isDisabledOrReadonly = computed(() => props.disabled || props.readonly);
2429
+ const hasTabindex = computed(() => {
2430
+ return isDisabledOrReadonly.value ? -1 : props.tabindex;
1546
2431
  });
1547
- const isClickable = computed(() => !props.disabled && !props.readonly);
1548
- const hasTabindex = computed(
1549
- () => isClickable.value ? props.tabindex : -1
1550
- );
1551
2432
  const isDirty = computed(() => !isEmpty(modelValue));
1552
2433
  const isInvalid = computed(() => {
1553
2434
  if (invalid.value === true) {
@@ -1558,21 +2439,48 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1558
2439
  }
1559
2440
  return void 0;
1560
2441
  });
2442
+ const storageKey = computed(() => props.storageKey ?? (volver?.experimentalFeatures.forceInputSuggestions ? props.name : void 0));
2443
+ const suggestions = usePersistence(
2444
+ storageKey,
2445
+ storageType,
2446
+ /* @__PURE__ */ new Set()
2447
+ );
2448
+ const filteredSuggestions = computed(() => {
2449
+ if (!suggestions.value) {
2450
+ return [];
2451
+ }
2452
+ return [...suggestions.value].filter(
2453
+ (suggestion) => isEmpty(localModelValue.value) || `${suggestion}`.toLowerCase().includes(`${localModelValue.value}`.toLowerCase()) && suggestion !== localModelValue.value
2454
+ ).reverse();
2455
+ });
2456
+ const hasSuggestions = computed(
2457
+ () => storageKey?.value && suggestions.value && suggestions.value.size > 0
2458
+ );
2459
+ function onSuggestionSelect(suggestion) {
2460
+ localModelValue.value = suggestion;
2461
+ suggestionsDropdownEl.value?.hide();
2462
+ emit("suggestion:selected", suggestion);
2463
+ }
2464
+ function onSuggestionRemove(suggestion) {
2465
+ suggestions.value?.delete(suggestion);
2466
+ emit("suggestion:removed", suggestion);
2467
+ }
1561
2468
  const { modifiers } = toRefs(props);
1562
2469
  const bemCssClasses = useModifiers(
1563
2470
  "vv-input-text",
1564
2471
  modifiers,
1565
2472
  computed(() => ({
1566
- valid: valid.value,
1567
- invalid: invalid.value,
1568
- loading: loading.value,
1569
- disabled: props.disabled,
1570
- readonly: props.readonly,
1571
- "icon-before": hasIconBefore.value,
1572
- "icon-after": hasIconAfter.value || !isEmpty(defaultAfterIcon),
1573
- floating: props.floating && !isEmpty(props.label),
1574
- dirty: isDirty.value,
1575
- focus: isFocused.value,
2473
+ "valid": valid.value,
2474
+ "invalid": invalid.value,
2475
+ "loading": loading.value,
2476
+ "disabled": props.disabled,
2477
+ "required": props.required,
2478
+ "readonly": props.readonly,
2479
+ "icon-before": !!hasIconBefore.value,
2480
+ "icon-after": !!iconAfter.value,
2481
+ "floating": props.floating && !isEmpty(props.label),
2482
+ "dirty": isDirty.value,
2483
+ "focus": isFocused.value && !isDisabledOrReadonly.value,
1576
2484
  "auto-width": props.autoWidth
1577
2485
  }))
1578
2486
  );
@@ -1584,26 +2492,31 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1584
2492
  if (isDateTime.value && !isDirty.value && !focused.value) {
1585
2493
  return INPUT_TYPES.TEXT;
1586
2494
  }
1587
- if (iMask == null ? void 0 : iMask.value) {
2495
+ if (props.iMask) {
1588
2496
  return INPUT_TYPES.TEXT;
1589
2497
  }
1590
2498
  return props.type;
1591
2499
  })();
1592
2500
  const toReturn = {
1593
2501
  type: type2,
1594
- name: props.name,
1595
- tabindex: hasTabindex.value,
1596
- disabled: props.disabled,
1597
- readonly: props.readonly,
1598
- required: props.required,
1599
- autocomplete: props.autocomplete,
2502
+ "name": props.name,
2503
+ "tabindex": hasTabindex.value,
2504
+ "disabled": props.disabled,
2505
+ "readonly": props.readonly,
2506
+ "required": props.required,
2507
+ "autocomplete": props.autocomplete,
1600
2508
  "aria-invalid": isInvalid.value,
1601
2509
  "aria-describedby": hasHintLabelOrSlot.value ? hasHintId.value : void 0,
1602
- "aria-errormessage": hasInvalidLabelOrSlot.value ? hasHintId.value : void 0
2510
+ "aria-errormessage": hasInvalidLabelOrSlot.value ? hasHintId.value : void 0,
2511
+ "inputMode": props.inputMode
1603
2512
  };
1604
2513
  if (type2 === INPUT_TYPES.DATE || type2 === INPUT_TYPES.MONTH || type2 === INPUT_TYPES.WEEK || type2 === INPUT_TYPES.TIME || type2 === INPUT_TYPES.DATETIME_LOCAL || type2 === INPUT_TYPES.NUMBER) {
2514
+ let max = props.max;
2515
+ if (type2 === INPUT_TYPES.DATE && !max) {
2516
+ max = "9999-12-31";
2517
+ }
1605
2518
  toReturn.step = props.step;
1606
- toReturn.max = props.max !== void 0 ? String(props.max) : void 0;
2519
+ toReturn.max = max !== void 0 ? String(max) : void 0;
1607
2520
  toReturn.min = props.min !== void 0 ? String(props.min) : void 0;
1608
2521
  }
1609
2522
  if (type2 === INPUT_TYPES.TEXT || type2 === INPUT_TYPES.SEARCH || type2 === INPUT_TYPES.URL || type2 === INPUT_TYPES.TEL || type2 === INPUT_TYPES.EMAIL || type2 === INPUT_TYPES.PASSWORD || type2 === INPUT_TYPES.NUMBER) {
@@ -1636,21 +2549,24 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1636
2549
  } = HintSlotFactory(propsDefaults, slots);
1637
2550
  const PasswordInputActions = VvInputTextActionsFactory(
1638
2551
  INPUT_TYPES.PASSWORD,
1639
- props
2552
+ props,
2553
+ isDirty
1640
2554
  );
1641
2555
  const NumberInputActions = VvInputTextActionsFactory(
1642
2556
  INPUT_TYPES.NUMBER,
1643
- props
2557
+ props,
2558
+ isDirty
1644
2559
  );
1645
2560
  const SearchInputActions = VvInputTextActionsFactory(
1646
2561
  INPUT_TYPES.SEARCH,
1647
- props
2562
+ props,
2563
+ isDirty
1648
2564
  );
1649
- const onClickInner = () => {
1650
- if (isClickable.value) {
2565
+ function onClickInner() {
2566
+ if (!isDisabledOrReadonly.value) {
1651
2567
  focused.value = true;
1652
2568
  }
1653
- };
2569
+ }
1654
2570
  const hasStyle = computed(() => {
1655
2571
  if (!props.autoWidth) {
1656
2572
  return void 0;
@@ -1659,7 +2575,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1659
2575
  width: localModelValue.value !== void 0 ? `${String(localModelValue.value).length + 1}ch` : void 0
1660
2576
  };
1661
2577
  });
1662
- const onKeyDown = (event) => {
2578
+ function onKeyDown(event) {
1663
2579
  switch (event.code) {
1664
2580
  case "ArrowUp":
1665
2581
  if (isNumber.value) {
@@ -1675,7 +2591,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1675
2591
  break;
1676
2592
  }
1677
2593
  emit("keydown", event);
1678
- };
2594
+ }
1679
2595
  return (_ctx, _cache) => {
1680
2596
  return openBlock(), createElementBlock(
1681
2597
  "div",
@@ -1688,79 +2604,89 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1688
2604
  for: unref(hasId),
1689
2605
  class: "vv-input-text__label"
1690
2606
  }, toDisplayString(unref(label)), 9, _hoisted_1)) : createCommentVNode("v-if", true),
1691
- createElementVNode("div", _hoisted_2, [
1692
- _ctx.$slots.before ? (openBlock(), createElementBlock("div", _hoisted_3, [
1693
- renderSlot(_ctx.$slots, "before", normalizeProps(guardReactiveProps(unref(slotProps))))
1694
- ])) : createCommentVNode("v-if", true),
1695
- createElementVNode("div", {
1696
- ref_key: "innerEl",
1697
- ref: innerEl,
1698
- class: "vv-input-text__inner",
1699
- onClick: withModifiers(onClickInner, ["stop"])
1700
- }, [
1701
- unref(hasIconBefore) ? (openBlock(), createBlock(
2607
+ createElementVNode(
2608
+ "div",
2609
+ {
2610
+ ref_key: "wrapperEl",
2611
+ ref: wrapperEl,
2612
+ class: "vv-input-text__wrapper"
2613
+ },
2614
+ [
2615
+ _ctx.$slots.before ? (openBlock(), createElementBlock("div", _hoisted_2, [
2616
+ renderSlot(_ctx.$slots, "before", normalizeProps(guardReactiveProps(unref(slotProps))))
2617
+ ])) : createCommentVNode("v-if", true),
2618
+ createElementVNode(
2619
+ "div",
2620
+ {
2621
+ ref_key: "innerEl",
2622
+ ref: innerEl,
2623
+ class: "vv-input-text__inner",
2624
+ onClick: withModifiers(onClickInner, ["stop"])
2625
+ },
2626
+ [
2627
+ unref(hasIconBefore) ? (openBlock(), createBlock(
2628
+ _sfc_main$1,
2629
+ mergeProps({ key: 0 }, unref(hasIconBefore), { class: "vv-input-text__icon" }),
2630
+ null,
2631
+ 16
2632
+ /* FULL_PROPS */
2633
+ )) : createCommentVNode("v-if", true),
2634
+ createElementVNode("input", mergeProps({
2635
+ id: unref(hasId),
2636
+ ref_key: "inputEl",
2637
+ ref: inputEl
2638
+ }, unref(hasAttrs), {
2639
+ style: unref(hasStyle),
2640
+ onKeyup: _cache[0] || (_cache[0] = ($event) => emit("keyup", $event)),
2641
+ onKeydown: onKeyDown,
2642
+ onKeypress: _cache[1] || (_cache[1] = ($event) => emit("keypress", $event))
2643
+ }), null, 16, _hoisted_3),
2644
+ (_ctx.unit || _ctx.$slots.unit) && unref(isDirty) ? (openBlock(), createElementBlock("div", _hoisted_4, [
2645
+ renderSlot(_ctx.$slots, "unit", normalizeProps(guardReactiveProps(unref(slotProps))), () => [
2646
+ createTextVNode(
2647
+ toDisplayString(_ctx.unit),
2648
+ 1
2649
+ /* TEXT */
2650
+ )
2651
+ ])
2652
+ ])) : createCommentVNode("v-if", true)
2653
+ ],
2654
+ 512
2655
+ /* NEED_PATCH */
2656
+ ),
2657
+ unref(iconAfter) ? (openBlock(), createBlock(
1702
2658
  _sfc_main$1,
1703
- mergeProps({
1704
- key: 0,
1705
- class: "vv-input-text__icon"
1706
- }, unref(hasIcon)),
2659
+ mergeProps({ key: 1 }, unref(iconAfter), { class: "vv-input-text__icon vv-input-text__icon-after" }),
1707
2660
  null,
1708
2661
  16
1709
2662
  /* FULL_PROPS */
1710
- )) : createCommentVNode("v-if", true),
1711
- createElementVNode("input", mergeProps({
1712
- id: unref(hasId),
1713
- ref_key: "inputEl",
1714
- ref: inputEl
1715
- }, unref(hasAttrs), {
1716
- style: unref(hasStyle),
1717
- onKeyup: _cache[0] || (_cache[0] = ($event) => emit("keyup", $event)),
1718
- onKeydown: onKeyDown,
1719
- onKeypress: _cache[1] || (_cache[1] = ($event) => emit("keypress", $event))
1720
- }), null, 16, _hoisted_5),
1721
- (_ctx.unit || _ctx.$slots.unit) && unref(isDirty) ? (openBlock(), createElementBlock("div", _hoisted_6, [
1722
- renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(unref(slotProps))), () => [
2663
+ )) : unref(isPassword) && !_ctx.hideActions && !unref(isDisabledOrReadonly) ? (openBlock(), createBlock(unref(PasswordInputActions), {
2664
+ key: 2,
2665
+ onTogglePassword
2666
+ })) : unref(isNumber) && !_ctx.hideActions && !unref(isDisabledOrReadonly) ? (openBlock(), createBlock(unref(NumberInputActions), {
2667
+ key: 3,
2668
+ onStepUp,
2669
+ onStepDown
2670
+ })) : unref(isSearch) && !_ctx.hideActions && !unref(isDisabledOrReadonly) ? (openBlock(), createBlock(unref(SearchInputActions), {
2671
+ key: 4,
2672
+ onClear
2673
+ })) : createCommentVNode("v-if", true),
2674
+ _ctx.$slots.after ? (openBlock(), createElementBlock("div", _hoisted_5, [
2675
+ renderSlot(_ctx.$slots, "after", normalizeProps(guardReactiveProps(unref(slotProps))))
2676
+ ])) : createCommentVNode("v-if", true),
2677
+ unref(count) ? (openBlock(), createElementBlock("span", _hoisted_6, [
2678
+ renderSlot(_ctx.$slots, "count", normalizeProps(guardReactiveProps(unref(slotProps))), () => [
1723
2679
  createTextVNode(
1724
- toDisplayString(_ctx.unit),
2680
+ toDisplayString(unref(countFormatted)),
1725
2681
  1
1726
2682
  /* TEXT */
1727
2683
  )
1728
2684
  ])
1729
2685
  ])) : createCommentVNode("v-if", true)
1730
- ], 8, _hoisted_4),
1731
- unref(hasIconAfter) || unref(defaultAfterIcon) ? (openBlock(), createBlock(
1732
- _sfc_main$1,
1733
- mergeProps({
1734
- key: 1,
1735
- class: "vv-input-text__icon vv-input-text__icon-after"
1736
- }, unref(hasIconAfter) ? unref(hasIcon) : unref(defaultAfterIcon)),
1737
- null,
1738
- 16
1739
- /* FULL_PROPS */
1740
- )) : unref(isPassword) && !_ctx.hideActions && unref(isClickable) ? (openBlock(), createBlock(unref(PasswordInputActions), {
1741
- key: 2,
1742
- onTogglePassword
1743
- })) : unref(isNumber) && !_ctx.hideActions && unref(isClickable) ? (openBlock(), createBlock(unref(NumberInputActions), {
1744
- key: 3,
1745
- onStepUp,
1746
- onStepDown
1747
- })) : unref(isSearch) && !_ctx.hideActions && unref(isClickable) ? (openBlock(), createBlock(unref(SearchInputActions), {
1748
- key: 4,
1749
- onClear
1750
- })) : createCommentVNode("v-if", true),
1751
- _ctx.$slots.after ? (openBlock(), createElementBlock("div", _hoisted_7, [
1752
- renderSlot(_ctx.$slots, "after", normalizeProps(guardReactiveProps(unref(slotProps))))
1753
- ])) : createCommentVNode("v-if", true),
1754
- unref(count) ? (openBlock(), createElementBlock("span", _hoisted_8, [
1755
- renderSlot(_ctx.$slots, "count", normalizeProps(guardReactiveProps(unref(slotProps))), () => [
1756
- createTextVNode(
1757
- toDisplayString(unref(countFormatted)),
1758
- 1
1759
- /* TEXT */
1760
- )
1761
- ])
1762
- ])) : createCommentVNode("v-if", true)
1763
- ]),
2686
+ ],
2687
+ 512
2688
+ /* NEED_PATCH */
2689
+ ),
1764
2690
  createVNode(unref(HintSlot), {
1765
2691
  id: unref(hasHintId),
1766
2692
  class: "vv-input-text__hint"
@@ -1796,7 +2722,62 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1796
2722
  ]),
1797
2723
  key: "3"
1798
2724
  } : void 0
1799
- ]), 1032, ["id"])
2725
+ ]), 1032, ["id"]),
2726
+ unref(hasSuggestions) ? (openBlock(), createBlock(_sfc_main$4, {
2727
+ key: 1,
2728
+ ref_key: "suggestionsDropdownEl",
2729
+ ref: suggestionsDropdownEl,
2730
+ reference: unref(wrapperEl),
2731
+ "autofocus-first": false,
2732
+ "trigger-width": true
2733
+ }, {
2734
+ items: withCtx(() => [
2735
+ (openBlock(true), createElementBlock(
2736
+ Fragment,
2737
+ null,
2738
+ renderList(unref(filteredSuggestions), (value) => {
2739
+ return openBlock(), createBlock(_sfc_main$2, {
2740
+ key: value,
2741
+ onClick: withModifiers(($event) => onSuggestionSelect(value), ["stop"])
2742
+ }, {
2743
+ default: withCtx(() => [
2744
+ createElementVNode("div", _hoisted_7, [
2745
+ renderSlot(_ctx.$slots, "suggestion", mergeProps({ ref_for: true }, { value }), () => [
2746
+ createTextVNode(
2747
+ toDisplayString(value),
2748
+ 1
2749
+ /* TEXT */
2750
+ )
2751
+ ])
2752
+ ]),
2753
+ unref(suggestions) && unref(hasIconRemoveSuggestion) ? (openBlock(), createElementBlock("button", {
2754
+ key: 0,
2755
+ type: "button",
2756
+ tabindex: "-1",
2757
+ class: "cursor-pointer",
2758
+ title: _ctx.labelRemoveSuggestion,
2759
+ onClick: withModifiers(($event) => onSuggestionRemove(value), ["stop"])
2760
+ }, [
2761
+ createVNode(
2762
+ _sfc_main$1,
2763
+ mergeProps({ ref_for: true }, unref(hasIconRemoveSuggestion)),
2764
+ null,
2765
+ 16
2766
+ /* FULL_PROPS */
2767
+ )
2768
+ ], 8, _hoisted_8)) : createCommentVNode("v-if", true)
2769
+ ]),
2770
+ _: 2
2771
+ /* DYNAMIC */
2772
+ }, 1032, ["onClick"]);
2773
+ }),
2774
+ 128
2775
+ /* KEYED_FRAGMENT */
2776
+ ))
2777
+ ]),
2778
+ _: 3
2779
+ /* FORWARDED */
2780
+ }, 8, ["reference"])) : createCommentVNode("v-if", true)
1800
2781
  ],
1801
2782
  2
1802
2783
  /* CLASS */