@volverjs/ui-vue 0.0.10-beta.8 → 0.0.10

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 +150 -270
  7. package/dist/components/VvAccordion/VvAccordion.umd.js +1 -1
  8. package/dist/components/VvAccordion/VvAccordion.vue.d.ts +35 -15
  9. package/dist/components/VvAccordion/index.d.ts +8 -9
  10. package/dist/components/VvAccordionGroup/VvAccordionGroup.es.js +406 -350
  11. package/dist/components/VvAccordionGroup/VvAccordionGroup.umd.js +1 -1
  12. package/dist/components/VvAccordionGroup/VvAccordionGroup.vue.d.ts +66 -19
  13. package/dist/components/VvAccordionGroup/index.d.ts +16 -8
  14. package/dist/components/VvAction/VvAction.es.js +74 -146
  15. package/dist/components/VvAction/VvAction.umd.js +1 -1
  16. package/dist/components/VvAction/VvAction.vue.d.ts +63 -30
  17. package/dist/components/VvAction/index.d.ts +26 -10
  18. package/dist/components/VvAlert/VvAlert.es.js +260 -449
  19. package/dist/components/VvAlert/VvAlert.umd.js +1 -1
  20. package/dist/components/VvAlert/VvAlert.vue.d.ts +40 -26
  21. package/dist/components/VvAlert/index.d.ts +20 -11
  22. package/dist/components/VvAlertGroup/VvAlertGroup.es.js +263 -442
  23. package/dist/components/VvAlertGroup/VvAlertGroup.umd.js +1 -1
  24. package/dist/components/VvAlertGroup/VvAlertGroup.vue.d.ts +28 -21
  25. package/dist/components/VvAlertGroup/index.d.ts +10 -18
  26. package/dist/components/VvAvatar/VvAvatar.es.js +33 -195
  27. package/dist/components/VvAvatar/VvAvatar.umd.js +1 -1
  28. package/dist/components/VvAvatar/VvAvatar.vue.d.ts +15 -7
  29. package/dist/components/VvAvatar/index.d.ts +4 -1
  30. package/dist/components/VvAvatarGroup/VvAvatarGroup.es.js +64 -222
  31. package/dist/components/VvAvatarGroup/VvAvatarGroup.umd.js +1 -1
  32. package/dist/components/VvAvatarGroup/VvAvatarGroup.vue.d.ts +19 -12
  33. package/dist/components/VvAvatarGroup/index.d.ts +6 -3
  34. package/dist/components/VvBadge/VvBadge.es.js +30 -196
  35. package/dist/components/VvBadge/VvBadge.umd.js +1 -1
  36. package/dist/components/VvBadge/VvBadge.vue.d.ts +15 -7
  37. package/dist/components/VvBadge/index.d.ts +4 -1
  38. package/dist/components/VvBreadcrumb/VvBreadcrumb.es.js +234 -167
  39. package/dist/components/VvBreadcrumb/VvBreadcrumb.umd.js +1 -1
  40. package/dist/components/VvBreadcrumb/VvBreadcrumb.vue.d.ts +31 -11
  41. package/dist/components/VvBreadcrumb/index.d.ts +6 -10
  42. package/dist/components/VvButton/VvButton.es.js +436 -554
  43. package/dist/components/VvButton/VvButton.umd.js +1 -1
  44. package/dist/components/VvButton/VvButton.vue.d.ts +107 -57
  45. package/dist/components/VvButton/index.d.ts +52 -30
  46. package/dist/components/VvButtonGroup/VvButtonGroup.es.js +56 -203
  47. package/dist/components/VvButtonGroup/VvButtonGroup.umd.js +1 -1
  48. package/dist/components/VvButtonGroup/VvButtonGroup.vue.d.ts +38 -19
  49. package/dist/components/VvButtonGroup/index.d.ts +13 -4
  50. package/dist/components/VvCard/VvCard.es.js +29 -194
  51. package/dist/components/VvCard/VvCard.umd.js +1 -1
  52. package/dist/components/VvCard/VvCard.vue.d.ts +21 -10
  53. package/dist/components/VvCard/index.d.ts +4 -1
  54. package/dist/components/VvCheckbox/VvCheckbox.es.js +149 -299
  55. package/dist/components/VvCheckbox/VvCheckbox.umd.js +1 -1
  56. package/dist/components/VvCheckbox/VvCheckbox.vue.d.ts +119 -45
  57. package/dist/components/VvCheckbox/index.d.ts +52 -19
  58. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.es.js +318 -440
  59. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.umd.js +1 -1
  60. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.vue.d.ts +126 -44
  61. package/dist/components/VvCheckboxGroup/index.d.ts +49 -12
  62. package/dist/components/VvCombobox/VvCombobox.es.js +2404 -2126
  63. package/dist/components/VvCombobox/VvCombobox.umd.js +1 -1
  64. package/dist/components/VvCombobox/VvCombobox.vue.d.ts +292 -672
  65. package/dist/components/VvCombobox/index.d.ts +467 -138
  66. package/dist/components/VvDialog/VvDialog.es.js +139 -478
  67. package/dist/components/VvDialog/VvDialog.umd.js +1 -1
  68. package/dist/components/VvDialog/VvDialog.vue.d.ts +29 -11
  69. package/dist/components/VvDialog/index.d.ts +12 -0
  70. package/dist/components/VvDropdown/VvDropdown.es.js +127 -161
  71. package/dist/components/VvDropdown/VvDropdown.umd.js +1 -1
  72. package/dist/components/VvDropdown/VvDropdown.vue.d.ts +119 -332
  73. package/dist/components/VvDropdown/VvDropdownAction.vue.d.ts +73 -29
  74. package/dist/components/VvDropdown/VvDropdownItem.vue.d.ts +15 -3
  75. package/dist/components/VvDropdown/VvDropdownOptgroup.vue.d.ts +13 -5
  76. package/dist/components/VvDropdown/VvDropdownOption.vue.d.ts +43 -14
  77. package/dist/components/VvDropdown/index.d.ts +52 -118
  78. package/dist/components/VvDropdownAction/VvDropdownAction.es.js +108 -164
  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 +28 -182
  83. package/dist/components/VvDropdownOptgroup/VvDropdownOptgroup.umd.js +1 -1
  84. package/dist/components/VvDropdownOption/VvDropdownOption.es.js +123 -243
  85. package/dist/components/VvDropdownOption/VvDropdownOption.umd.js +1 -1
  86. package/dist/components/VvIcon/VvIcon.es.js +34 -113
  87. package/dist/components/VvIcon/VvIcon.umd.js +1 -1
  88. package/dist/components/VvIcon/VvIcon.vue.d.ts +4 -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 +330 -0
  93. package/dist/components/VvInputFile/index.d.ts +197 -0
  94. package/dist/components/VvInputText/VvInputText.es.js +1629 -634
  95. package/dist/components/VvInputText/VvInputText.umd.js +1 -1
  96. package/dist/components/VvInputText/VvInputText.vue.d.ts +255 -90
  97. package/dist/components/VvInputText/VvInputTextActions.d.ts +4 -3
  98. package/dist/components/VvInputText/index.d.ts +113 -35
  99. package/dist/components/VvNav/VvNav.es.js +113 -175
  100. package/dist/components/VvNav/VvNav.umd.js +1 -1
  101. package/dist/components/VvNav/VvNav.vue.d.ts +35 -13
  102. package/dist/components/VvNav/VvNavItem.vue.d.ts +7 -3
  103. package/dist/components/VvNav/VvNavSeparator.vue.d.ts +1 -1
  104. package/dist/components/VvNav/index.d.ts +5 -2
  105. package/dist/components/VvNavItem/VvNavItem.es.js +81 -148
  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 +31 -191
  110. package/dist/components/VvProgress/VvProgress.umd.js +1 -1
  111. package/dist/components/VvProgress/VvProgress.vue.d.ts +13 -6
  112. package/dist/components/VvProgress/index.d.ts +4 -1
  113. package/dist/components/VvRadio/VvRadio.es.js +147 -298
  114. package/dist/components/VvRadio/VvRadio.umd.js +1 -1
  115. package/dist/components/VvRadio/VvRadio.vue.d.ts +117 -43
  116. package/dist/components/VvRadio/index.d.ts +50 -17
  117. package/dist/components/VvRadioGroup/VvRadioGroup.es.js +316 -439
  118. package/dist/components/VvRadioGroup/VvRadioGroup.umd.js +1 -1
  119. package/dist/components/VvRadioGroup/VvRadioGroup.vue.d.ts +126 -44
  120. package/dist/components/VvRadioGroup/index.d.ts +49 -12
  121. package/dist/components/VvSelect/VvSelect.es.js +645 -690
  122. package/dist/components/VvSelect/VvSelect.umd.js +1 -1
  123. package/dist/components/VvSelect/VvSelect.vue.d.ts +117 -199
  124. package/dist/components/VvSelect/index.d.ts +221 -16
  125. package/dist/components/VvTab/VvTab.es.js +144 -198
  126. package/dist/components/VvTab/VvTab.umd.js +1 -1
  127. package/dist/components/VvTab/VvTab.vue.d.ts +37 -13
  128. package/dist/components/VvTab/index.d.ts +6 -3
  129. package/dist/components/VvTextarea/VvTextarea.es.js +1406 -582
  130. package/dist/components/VvTextarea/VvTextarea.umd.js +1 -1
  131. package/dist/components/VvTextarea/VvTextarea.vue.d.ts +230 -66
  132. package/dist/components/VvTextarea/index.d.ts +105 -20
  133. package/dist/components/VvTooltip/VvTooltip.es.js +33 -190
  134. package/dist/components/VvTooltip/VvTooltip.umd.js +1 -1
  135. package/dist/components/VvTooltip/VvTooltip.vue.d.ts +18 -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 +3874 -1890
  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 +171 -228
  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 +34 -191
  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 +321 -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 -146
  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 -54
  946. package/src/components/VvBreadcrumb/index.ts +0 -13
  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 -479
  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";
@@ -255,188 +238,83 @@ var ButtonType = /* @__PURE__ */ ((ButtonType2) => {
255
238
  ButtonType2["reset"] = "reset";
256
239
  return ButtonType2;
257
240
  })(ButtonType || {});
258
- var AnchorTarget = /* @__PURE__ */ ((AnchorTarget2) => {
259
- AnchorTarget2["_blank"] = "_blank";
260
- AnchorTarget2["_self"] = "_self";
261
- AnchorTarget2["_parent"] = "_parent";
262
- AnchorTarget2["_top"] = "_top";
263
- return AnchorTarget2;
264
- })(AnchorTarget || {});
241
+ var ActionTag = /* @__PURE__ */ ((ActionTag2) => {
242
+ ActionTag2["nuxtLink"] = "nuxt-link";
243
+ ActionTag2["routerLink"] = "router-link";
244
+ ActionTag2["a"] = "a";
245
+ ActionTag2["button"] = "button";
246
+ return ActionTag2;
247
+ })(ActionTag || {});
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 || {});
265
264
  const INJECTION_KEY_VOLVER = Symbol.for("volver");
266
- function useVolver() {
267
- return inject(INJECTION_KEY_VOLVER);
268
- }
269
- function useModifiers(prefix, modifiers, others) {
270
- return computed(() => {
271
- const toReturn = {
272
- [prefix]: true
273
- };
274
- const modifiersArray = typeof (modifiers == null ? void 0 : modifiers.value) === "string" ? modifiers.value.split(" ") : modifiers == null ? void 0 : modifiers.value;
275
- if (modifiersArray) {
276
- if (Array.isArray(modifiersArray)) {
277
- modifiersArray.forEach((modifier) => {
278
- if (modifier) {
279
- toReturn[`${prefix}--${modifier}`] = true;
280
- }
281
- });
282
- }
283
- }
284
- if (others) {
285
- Object.keys(others.value).forEach((key) => {
286
- toReturn[`${prefix}--${key}`] = unref(others.value[key]);
287
- });
288
- }
289
- return toReturn;
290
- });
291
- }
292
- const __default__$1 = {
293
- 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"
294
282
  };
295
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
296
- ...__default__$1,
297
- props: VvIconProps,
298
- setup(__props) {
299
- const props = __props;
300
- const hasRotate = computed(() => {
301
- if (typeof props.rotate === "string") {
302
- return parseFloat(props.rotate);
303
- }
304
- return props.rotate;
305
- });
306
- const show = ref(true);
307
- const volver = useVolver();
308
- const { modifiers } = toRefs(props);
309
- const bemCssClasses = useModifiers("vv-icon", modifiers);
310
- const provider = computed(() => {
311
- return props.provider || (volver == null ? void 0 : volver.iconsProvider);
312
- });
313
- const icon = computed(() => {
314
- const name = props.name ?? "";
315
- const iconName = `@${provider.value}:${props.prefix}:${name}`;
316
- if (iconExists(iconName)) {
317
- return iconName;
318
- }
319
- const iconsCollection = volver == null ? void 0 : volver.iconsCollections.find(
320
- (iconsCollection2) => {
321
- const icon2 = `@${provider.value}:${iconsCollection2.prefix}:${name}`;
322
- return iconExists(icon2);
323
- }
324
- );
325
- if (iconsCollection) {
326
- return `@${provider.value}:${iconsCollection.prefix}:${name}`;
327
- }
328
- return name;
329
- });
330
- function getSvgContent(svg) {
331
- let dom;
332
- if (typeof window === "undefined") {
333
- const { JSDOM } = require("jsdom");
334
- dom = new JSDOM().window;
335
- }
336
- const domParser = dom ? new dom.DOMParser() : new window.DOMParser();
337
- const svgDomString = domParser.parseFromString(svg, "text/html");
338
- const svgEl = svgDomString.querySelector("svg");
339
- return svgEl;
340
- }
341
- function addIconFromSvg(svg) {
342
- const svgContentEl = getSvgContent(svg);
343
- const svgContent = (svgContentEl == null ? void 0 : svgContentEl.innerHTML.trim()) || "";
344
- if (svgContentEl && svgContent) {
345
- addIcon(`@${provider.value}:${props.prefix}:${props.name}`, {
346
- body: svgContent,
347
- // Set height and width from svg content
348
- height: svgContentEl.viewBox.baseVal.height,
349
- width: svgContentEl.viewBox.baseVal.width
350
- });
351
- }
352
- }
353
- if (volver) {
354
- if (props.src && !iconExists(`@${provider.value}:${props.prefix}:${props.name}`)) {
355
- show.value = false;
356
- volver.fetchIcon(props.src).then((svg) => {
357
- if (svg) {
358
- addIconFromSvg(svg);
359
- show.value = true;
360
- }
361
- }).catch((e) => {
362
- throw new Error(`Error during fetch icon: ${e == null ? void 0 : e.message}`);
363
- });
364
- }
365
- }
366
- if (props.svg) {
367
- addIconFromSvg(props.svg);
368
- }
369
- return (_ctx, _cache) => {
370
- return unref(show) ? (openBlock(), createBlock(unref(Icon), mergeProps({
371
- key: 0,
372
- class: unref(bemCssClasses)
373
- }, {
374
- inline: _ctx.inline,
375
- width: _ctx.width,
376
- height: _ctx.height,
377
- horizontalFlip: _ctx.horizontalFlip,
378
- verticalFlip: _ctx.verticalFlip,
379
- flip: _ctx.flip,
380
- rotate: unref(hasRotate),
381
- color: _ctx.color,
382
- onLoad: _ctx.onLoad,
383
- icon: unref(icon)
384
- }), null, 16, ["class"])) : createCommentVNode("v-if", true);
385
- };
386
- }
387
- });
388
- const LinkProps = {
389
- /**
390
- * The router-link/nuxt-link property, if it is defined the button is rendered as a ruouter-link or nuxt-link.
391
- * @see Documentation of [router-link](https://router.vuejs.org/api/#router-link) and [nuxt-link](https://nuxtjs.org/api/components-nuxt-link/)
392
- */
393
- to: {
394
- type: [String, Object]
395
- },
396
- /**
397
- * Anchor href
398
- */
399
- href: String,
400
- /**
401
- * Anchor target
402
- */
403
- target: {
404
- type: String,
405
- validator: (value) => Object.values(AnchorTarget).includes(value)
406
- },
407
- /**
408
- * Anchor rel
409
- */
410
- rel: {
411
- type: String,
412
- default: "noopener noreferrer"
413
- }
283
+ const VvIconPropsDefaults = {
284
+ prefix: "normal"
285
+ /* normal */
414
286
  };
415
287
  const ValidProps = {
416
288
  /**
417
289
  * Valid status
418
290
  */
419
- valid: Boolean,
291
+ valid: { type: Boolean, default: false },
420
292
  /**
421
293
  * Valid label
422
294
  */
423
- validLabel: [String, Array]
295
+ validLabel: { type: [String, Array], default: void 0 }
424
296
  };
425
297
  const InvalidProps = {
426
298
  /**
427
299
  * Invalid status
428
300
  */
429
- invalid: Boolean,
301
+ invalid: {
302
+ type: Boolean,
303
+ default: false
304
+ },
430
305
  /**
431
306
  * Invalid label
432
307
  */
433
- invalidLabel: [String, Array]
308
+ invalidLabel: { type: [String, Array], default: void 0 }
434
309
  };
435
310
  const LoadingProps = {
436
311
  /**
437
312
  * Loading status
438
313
  */
439
- loading: Boolean,
314
+ loading: {
315
+ type: Boolean,
316
+ default: false
317
+ },
440
318
  /**
441
319
  * Loading label
442
320
  */
@@ -449,43 +327,55 @@ const DisabledProps = {
449
327
  /**
450
328
  * Whether the form control is disabled
451
329
  */
452
- disabled: Boolean
453
- };
454
- const ActiveProps = {
455
- /**
456
- * Whether the item is active
457
- */
458
- active: Boolean
330
+ disabled: {
331
+ type: Boolean,
332
+ default: false
333
+ }
459
334
  };
460
- const CurrentProps = {
335
+ const RequiredProps = {
461
336
  /**
462
- * Whether the item is current
337
+ * Whether the form control is required
463
338
  */
464
- current: Boolean
339
+ required: {
340
+ type: Boolean,
341
+ default: false
342
+ }
465
343
  };
466
- const PressedProps = {
344
+ const SelectedProps = {
467
345
  /**
468
- * Whether the item is pressed
346
+ * Whether the item is selected
469
347
  */
470
- pressed: Boolean
348
+ selected: {
349
+ type: Boolean,
350
+ default: false
351
+ }
471
352
  };
472
353
  const LabelProps = {
473
354
  /**
474
355
  * The item label
475
356
  */
476
- label: [String, Number]
357
+ label: {
358
+ type: [String, Number],
359
+ default: void 0
360
+ }
477
361
  };
478
362
  const ReadonlyProps = {
479
363
  /**
480
364
  * The value is not editable
481
365
  */
482
- readonly: Boolean
366
+ readonly: {
367
+ type: Boolean,
368
+ default: false
369
+ }
483
370
  };
484
371
  const ModifiersProps = {
485
372
  /**
486
373
  * Component BEM modifiers
487
374
  */
488
- modifiers: [String, Array]
375
+ modifiers: {
376
+ type: [String, Array],
377
+ default: void 0
378
+ }
489
379
  };
490
380
  const HintProps = {
491
381
  hintLabel: { type: String, default: "" }
@@ -504,14 +394,20 @@ const DebounceProps = {
504
394
  /**
505
395
  * Milliseconds to wait before emitting the input event
506
396
  */
507
- debounce: [Number, String]
397
+ debounce: {
398
+ type: [Number, String],
399
+ default: void 0
400
+ }
508
401
  };
509
402
  const IconProps = {
510
403
  /**
511
404
  * VvIcon name or props
512
- * @see VVIcon
405
+ * @see VvIcon
513
406
  */
514
- icon: { type: [String, Object] },
407
+ icon: {
408
+ type: [String, Object],
409
+ default: void 0
410
+ },
515
411
  /**
516
412
  * VvIcon position
517
413
  */
@@ -532,7 +428,16 @@ const FloatingLabelProps = {
532
428
  /**
533
429
  * If true the label will be floating
534
430
  */
535
- 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 }
536
441
  };
537
442
  const IdProps = {
538
443
  /**
@@ -541,7 +446,7 @@ const IdProps = {
541
446
  */
542
447
  id: [String, Number]
543
448
  };
544
- ({
449
+ const DropdownProps = {
545
450
  /**
546
451
  * Dropdown placement
547
452
  */
@@ -562,7 +467,8 @@ const IdProps = {
562
467
  * Dropdown show / hide transition name
563
468
  */
564
469
  transitionName: {
565
- type: String
470
+ type: String,
471
+ default: void 0
566
472
  },
567
473
  /**
568
474
  * Offset of the dropdown from the trigger
@@ -630,9 +536,10 @@ const IdProps = {
630
536
  * Set dropdown width to the same as the trigger
631
537
  */
632
538
  triggerWidth: {
633
- type: Boolean
539
+ type: Boolean,
540
+ default: false
634
541
  }
635
- });
542
+ };
636
543
  const IdNameProps = {
637
544
  ...IdProps,
638
545
  /**
@@ -647,7 +554,10 @@ const AutofocusProps = {
647
554
  * Global attribute autofocus
648
555
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autofocus
649
556
  */
650
- autofocus: Boolean
557
+ autofocus: {
558
+ type: Boolean,
559
+ default: false
560
+ }
651
561
  };
652
562
  const AutocompleteProps = {
653
563
  /**
@@ -679,74 +589,856 @@ const InputTextareaProps = {
679
589
  * Available for input types: text, search, url, tel, email, password
680
590
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#minlength
681
591
  */
682
- minlength: [String, Number],
592
+ minlength: { type: [String, Number], default: void 0 },
683
593
  /**
684
594
  * Input / Textarea maxlength
685
595
  * Maximum length (number of characters) of value
686
596
  * Available for input types: text, search, url, tel, email, password
687
597
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#maxlength
688
598
  */
689
- maxlength: [String, Number],
599
+ maxlength: { type: [String, Number], default: void 0 },
690
600
  /**
691
601
  * Input / Textarea placeholder
692
602
  * Text that appears in the form control when it has no value set
693
603
  * Available for input types: text, search, url, tel, email, password, number
694
604
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#placeholder
695
605
  */
696
- placeholder: String,
606
+ placeholder: {
607
+ type: String,
608
+ default: void 0
609
+ },
697
610
  /**
698
611
  * Input / Textarea required
699
612
  * A value is required or must be check for the form to be submittable
700
613
  * Available for all input types except color
701
614
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#required
702
615
  */
703
- required: Boolean
616
+ ...RequiredProps
704
617
  };
705
618
  ({
706
- ...DisabledProps,
707
- ...LabelProps,
708
- ...PressedProps,
709
- ...ActiveProps,
710
- ...CurrentProps,
711
- ...LinkProps,
712
619
  /**
713
620
  * Button type
714
621
  */
715
622
  type: {
716
- type: String,
717
- default: ButtonType.button,
718
- validator: (value) => Object.values(ButtonType).includes(value)
623
+ default: ButtonType.button
719
624
  },
720
625
  /**
721
- * Button aria-label
626
+ * Default tag for the action
722
627
  */
723
- ariaLabel: {
724
- type: String,
725
- default: void 0
628
+ defaultTag: {
629
+ default: ActionTag.button
726
630
  }
727
631
  });
728
- const INPUT_TYPES = {
729
- TEXT: "text",
730
- PASSWORD: "password",
731
- NUMBER: "number",
732
- EMAIL: "email",
733
- TEL: "tel",
734
- URL: "url",
735
- COLOR: "color",
736
- SEARCH: "search",
737
- DATE: "date",
738
- TIME: "time",
739
- DATETIME_LOCAL: "datetime-local",
740
- MONTH: "month",
741
- WEEK: "week"
632
+ const StorageProps = {
633
+ storageType: {
634
+ type: String,
635
+ default: StorageType.local,
636
+ validator: (value) => Object.values(StorageType).includes(value)
637
+ },
638
+ storageKey: String
742
639
  };
743
- const TYPES_ICON = {
744
- PASSWORD_SHOW: "eye-on",
745
- PASSWORD_HIDE: "eye-off",
746
- DATE: "calendar",
747
- TIME: "time",
640
+ const VvDropdownProps = {
641
+ ...IdProps,
642
+ ...DropdownProps,
643
+ ...ModifiersProps,
644
+ /**
645
+ * Show / hide dropdown programmatically
646
+ */
647
+ modelValue: {
648
+ type: Boolean,
649
+ default: void 0
650
+ },
651
+ /**
652
+ * Dropdown trigger element
653
+ */
654
+ reference: {
655
+ type: Object,
656
+ default: null
657
+ },
658
+ /**
659
+ * Dropdown role
660
+ */
661
+ role: {
662
+ type: String,
663
+ default: DropdownRole.menu,
664
+ validator: (value) => Object.values(DropdownRole).includes(value)
665
+ }
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: _ctx.inline,
1416
+ width: _ctx.width,
1417
+ height: _ctx.height,
1418
+ horizontalFlip: _ctx.horizontalFlip,
1419
+ verticalFlip: _ctx.verticalFlip,
1420
+ flip: _ctx.flip,
1421
+ rotate: unref(hasRotate),
1422
+ color: _ctx.color,
1423
+ icon: unref(icon)
1424
+ }, { onLoad: _ctx.onLoad }), null, 16, ["class", "onLoad"])) : createCommentVNode("v-if", true);
1425
+ };
1426
+ }
1427
+ });
1428
+ const INPUT_TYPES = {
1429
+ TEXT: "text",
1430
+ PASSWORD: "password",
1431
+ NUMBER: "number",
1432
+ EMAIL: "email",
1433
+ TEL: "tel",
1434
+ URL: "url",
748
1435
  COLOR: "color",
749
- SEARCH: "close"
1436
+ SEARCH: "search",
1437
+ DATE: "date",
1438
+ TIME: "time",
1439
+ DATETIME_LOCAL: "datetime-local",
1440
+ MONTH: "month",
1441
+ WEEK: "week"
750
1442
  };
751
1443
  const VvInputTextEvents = [
752
1444
  "update:modelValue",
@@ -759,19 +1451,23 @@ const VvInputTextEvents = [
759
1451
  "complete:typed",
760
1452
  "complete:masked",
761
1453
  "complete:unmasked",
1454
+ "suggestion:selected",
1455
+ "suggestion:removed",
762
1456
  "focus",
763
1457
  "blur",
764
1458
  "keyup",
765
1459
  "keydown",
766
- "keypress"
1460
+ "keypress",
1461
+ "clear"
767
1462
  ];
768
1463
  const VvInputTextProps = {
769
1464
  ...InputTextareaProps,
1465
+ ...StorageProps,
770
1466
  /**
771
1467
  * Input value
772
1468
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#value
773
1469
  */
774
- modelValue: [String, Number],
1470
+ modelValue: [String, Number, Date],
775
1471
  /**
776
1472
  * Type of form control
777
1473
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#type
@@ -813,27 +1509,35 @@ const VvInputTextProps = {
813
1509
  multiple: Boolean,
814
1510
  /**
815
1511
  * VvIcon name for show password button
816
- * @see VVIcon
1512
+ * @see VvIcon
817
1513
  */
818
1514
  iconShowPassword: {
819
- type: String,
820
- default: TYPES_ICON.PASSWORD_SHOW
1515
+ type: [String, Object],
1516
+ default: ACTION_ICONS.showPassword
821
1517
  },
822
1518
  /**
823
1519
  * VvIcon name for hide password button
824
- * @see VVIcon
1520
+ * @see VvIcon
825
1521
  */
826
1522
  iconHidePassword: {
827
- type: String,
828
- default: TYPES_ICON.PASSWORD_HIDE
1523
+ type: [String, Object],
1524
+ default: ACTION_ICONS.hidePassword
829
1525
  },
830
1526
  /**
831
1527
  * VvIcon name for clear button
832
- * @see VVIcon
1528
+ * @see VvIcon
833
1529
  */
834
1530
  iconClear: {
835
- type: String,
836
- 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
837
1541
  },
838
1542
  /**
839
1543
  * Label for step up button
@@ -870,6 +1574,13 @@ const VvInputTextProps = {
870
1574
  type: String,
871
1575
  default: "Clear"
872
1576
  },
1577
+ /**
1578
+ * Label for remove suggestion button
1579
+ */
1580
+ labelRemoveSuggestion: {
1581
+ type: String,
1582
+ default: "Remove suggestion"
1583
+ },
873
1584
  /**
874
1585
  * iMask options
875
1586
  * @see https://imask.js.org/guide.html
@@ -892,32 +1603,140 @@ const VvInputTextProps = {
892
1603
  type: Boolean,
893
1604
  default: false
894
1605
  },
895
- /**
896
- * Hide type number, password and search actions
897
- */
898
- hideActions: {
899
- type: Boolean,
900
- 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
+ }
901
1698
  },
902
- /**
903
- * Add unit label to input
904
- */
905
- unit: {
906
- 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
+ };
907
1712
  },
908
- /**
909
- * Select input text on focus
910
- */
911
- selectOnFocus: {
912
- type: Boolean,
913
- 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
+ );
914
1729
  }
915
- };
1730
+ });
916
1731
  const VvInputPasswordAction = defineComponent({
917
1732
  components: {
918
1733
  VvIcon: _sfc_main$1
919
1734
  },
920
1735
  props: {
1736
+ inputType: {
1737
+ type: String,
1738
+ default: "input-text"
1739
+ },
921
1740
  disabled: {
922
1741
  type: Boolean,
923
1742
  default: false
@@ -931,12 +1750,12 @@ const VvInputPasswordAction = defineComponent({
931
1750
  default: "Hide password"
932
1751
  },
933
1752
  iconShow: {
934
- type: String,
935
- default: TYPES_ICON.PASSWORD_SHOW
1753
+ type: [String, Object],
1754
+ default: ACTION_ICONS.showPassword
936
1755
  },
937
1756
  iconHide: {
938
- type: String,
939
- default: TYPES_ICON.PASSWORD_HIDE
1757
+ type: [String, Object],
1758
+ default: ACTION_ICONS.hidePassword
940
1759
  }
941
1760
  },
942
1761
  emits: ["toggle-password"],
@@ -945,8 +1764,9 @@ const VvInputPasswordAction = defineComponent({
945
1764
  const activeIcon = computed(
946
1765
  () => active.value ? props.iconHide : props.iconShow
947
1766
  );
1767
+ const { hasIcon } = useComponentIcon(activeIcon);
948
1768
  function onClick(e) {
949
- e == null ? void 0 : e.stopPropagation();
1769
+ e?.stopPropagation();
950
1770
  if (!props.disabled) {
951
1771
  active.value = !active.value;
952
1772
  emit("toggle-password", active.value);
@@ -955,19 +1775,20 @@ const VvInputPasswordAction = defineComponent({
955
1775
  return {
956
1776
  active,
957
1777
  activeIcon,
1778
+ hasIcon,
958
1779
  onClick
959
1780
  };
960
1781
  },
961
1782
  render() {
962
- const icon = h(_sfc_main$1, {
963
- name: this.activeIcon,
964
- class: "vv-input-text__icon"
965
- });
1783
+ const icon = this.hasIcon ? h(_sfc_main$1, {
1784
+ ...this.hasIcon,
1785
+ class: `vv-${this.inputType}__icon`
1786
+ }) : void 0;
966
1787
  return h(
967
1788
  "button",
968
1789
  {
969
1790
  disabled: this.disabled,
970
- class: "vv-input-text__action",
1791
+ class: `vv-${this.inputType}__action`,
971
1792
  ariaLabel: this.active ? this.labelHide : this.labelShow,
972
1793
  type: "button",
973
1794
  onClick: this.onClick
@@ -981,6 +1802,10 @@ const VvInputStepAction = defineComponent({
981
1802
  VvIcon: _sfc_main$1
982
1803
  },
983
1804
  props: {
1805
+ inputType: {
1806
+ type: String,
1807
+ default: "input-text"
1808
+ },
984
1809
  disabled: {
985
1810
  type: Boolean,
986
1811
  default: false
@@ -998,7 +1823,7 @@ const VvInputStepAction = defineComponent({
998
1823
  setup(props, { emit }) {
999
1824
  const isUp = computed(() => props.mode === "up");
1000
1825
  const onClick = (e) => {
1001
- e == null ? void 0 : e.stopPropagation();
1826
+ e?.stopPropagation();
1002
1827
  if (!props.disabled) {
1003
1828
  emit(isUp.value ? "step-up" : "step-down");
1004
1829
  }
@@ -1011,8 +1836,9 @@ const VvInputStepAction = defineComponent({
1011
1836
  render() {
1012
1837
  return h("button", {
1013
1838
  class: [
1014
- "vv-input-text__action vv-input-text__action-chevron",
1015
- 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
1016
1842
  ],
1017
1843
  disabled: this.disabled,
1018
1844
  ariaLabel: this.label,
@@ -1021,55 +1847,7 @@ const VvInputStepAction = defineComponent({
1021
1847
  });
1022
1848
  }
1023
1849
  });
1024
- const VvInputClearAction = defineComponent({
1025
- components: {
1026
- VvIcon: _sfc_main$1
1027
- },
1028
- props: {
1029
- disabled: {
1030
- type: Boolean,
1031
- default: false
1032
- },
1033
- label: {
1034
- type: String,
1035
- default: "Clear"
1036
- },
1037
- icon: {
1038
- type: String,
1039
- default: "close"
1040
- }
1041
- },
1042
- emits: ["clear"],
1043
- setup(props, { emit }) {
1044
- function onClick(e) {
1045
- e == null ? void 0 : e.stopPropagation();
1046
- if (!props.disabled) {
1047
- emit("clear");
1048
- }
1049
- }
1050
- return {
1051
- onClick
1052
- };
1053
- },
1054
- render() {
1055
- const icon = h(_sfc_main$1, {
1056
- name: this.icon,
1057
- class: "vv-input-text__icon"
1058
- });
1059
- return h(
1060
- "button",
1061
- {
1062
- disabled: this.disabled,
1063
- class: "vv-input-text__action",
1064
- ariaLabel: this.label,
1065
- type: "button",
1066
- onClick: this.onClick
1067
- },
1068
- icon
1069
- );
1070
- }
1071
- });
1072
- function VvInputTextActionsFactory(type, parentProps) {
1850
+ function VvInputTextActionsFactory(type, parentProps, isDirty) {
1073
1851
  return {
1074
1852
  name: "VvInputTextActions",
1075
1853
  components: {
@@ -1083,6 +1861,7 @@ function VvInputTextActionsFactory(type, parentProps) {
1083
1861
  return parentProps.disabled || parentProps.readonly;
1084
1862
  });
1085
1863
  return {
1864
+ isDirty,
1086
1865
  isDisabled,
1087
1866
  labelStepUp: parentProps.labelStepUp,
1088
1867
  labelStepDown: parentProps.labelStepDown,
@@ -1100,8 +1879,8 @@ function VvInputTextActionsFactory(type, parentProps) {
1100
1879
  const { onClear } = this.$attrs;
1101
1880
  actions = [
1102
1881
  h(VvInputClearAction, {
1103
- disabled: this.isDisabled,
1104
- label: this.labelShowPassword,
1882
+ disabled: this.isDisabled || !this.isDirty,
1883
+ label: this.labelClear,
1105
1884
  onClear
1106
1885
  })
1107
1886
  ];
@@ -1149,8 +1928,7 @@ function VvInputTextActionsFactory(type, parentProps) {
1149
1928
  function useDefaults(componentName, propsDefinition, props) {
1150
1929
  const volver = useVolver();
1151
1930
  const volverComponentDefaults = computed(() => {
1152
- var _a;
1153
- if (!volver || !((_a = volver.defaults.value) == null ? void 0 : _a[componentName])) {
1931
+ if (!volver || !volver.defaults.value?.[componentName]) {
1154
1932
  return void 0;
1155
1933
  }
1156
1934
  return volver.defaults.value[componentName];
@@ -1199,17 +1977,16 @@ function useDefaults(componentName, propsDefinition, props) {
1199
1977
  }, {});
1200
1978
  });
1201
1979
  }
1202
- const useUniqueId = (id) => computed(() => String((id == null ? void 0 : id.value) || uid()));
1203
1980
  function useDebouncedInput(modelValue, emit, ms = 0, {
1204
1981
  getter = (value) => value,
1205
1982
  setter = (value) => value
1206
1983
  } = {}) {
1207
1984
  let timeout;
1208
1985
  if (typeof ms === "string") {
1209
- ms = parseInt(ms);
1986
+ ms = Number.parseInt(ms);
1210
1987
  }
1211
1988
  return computed({
1212
- get: () => getter(modelValue == null ? void 0 : modelValue.value),
1989
+ get: () => getter(modelValue?.value),
1213
1990
  set: (value) => {
1214
1991
  if (timeout) {
1215
1992
  clearTimeout(timeout);
@@ -1229,62 +2006,27 @@ function useComponentFocus(inputTemplateRef, emit) {
1229
2006
  focused
1230
2007
  };
1231
2008
  }
1232
- function useComponentIcon(icon, iconPosition) {
1233
- const hasIconBefore = computed(
1234
- () => Boolean((icon == null ? void 0 : icon.value) && iconPosition.value === Position.before)
1235
- );
1236
- const hasIconAfter = computed(
1237
- () => Boolean((icon == null ? void 0 : icon.value) && iconPosition.value === Position.after)
1238
- );
1239
- const hasIconLeft = computed(
1240
- () => Boolean((icon == null ? void 0 : icon.value) && iconPosition.value === Side.left)
1241
- );
1242
- const hasIconRight = computed(
1243
- () => Boolean((icon == null ? void 0 : icon.value) && iconPosition.value === Side.right)
1244
- );
1245
- const hasIconTop = computed(
1246
- () => Boolean((icon == null ? void 0 : icon.value) && iconPosition.value === Side.top)
1247
- );
1248
- const hasIconBottom = computed(
1249
- () => Boolean((icon == null ? void 0 : icon.value) && iconPosition.value === Side.bottom)
1250
- );
1251
- const hasIcon = computed(() => {
1252
- if (typeof (icon == null ? void 0 : icon.value) === "string") {
1253
- return { name: icon == null ? void 0 : icon.value };
1254
- }
1255
- return icon == null ? void 0 : icon.value;
1256
- });
1257
- return {
1258
- hasIcon,
1259
- hasIconLeft,
1260
- hasIconRight,
1261
- hasIconTop,
1262
- hasIconBottom,
1263
- hasIconBefore,
1264
- hasIconAfter
1265
- };
1266
- }
1267
2009
  function useTextCount(text, options) {
1268
2010
  const length = computed(() => {
1269
2011
  return (unref(text) ?? "").length;
1270
2012
  });
1271
2013
  const gap = computed(() => {
1272
- 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) {
1273
2015
  return length.value - options.lowerLimit;
1274
2016
  }
1275
- 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) {
1276
2018
  return options.upperLimit - length.value;
1277
2019
  }
1278
2020
  return 0;
1279
2021
  });
1280
2022
  const formatted = computed(() => {
1281
- if ((options == null ? void 0 : options.mode) === false) {
2023
+ if (options?.mode === false) {
1282
2024
  return "";
1283
2025
  }
1284
- if ((options == null ? void 0 : options.mode) === "limit" && (options == null ? void 0 : options.upperLimit)) {
2026
+ if (options?.mode === "limit" && options?.upperLimit) {
1285
2027
  return `${length.value} / ${options.lowerLimit ? `${options.lowerLimit}-` : ""}${options.upperLimit}`;
1286
2028
  }
1287
- if ((options == null ? void 0 : options.mode) === "countdown") {
2029
+ if (options?.mode === "countdown") {
1288
2030
  if (gap.value === 0) {
1289
2031
  return void 0;
1290
2032
  }
@@ -1298,26 +2040,88 @@ function useTextCount(text, options) {
1298
2040
  formatted
1299
2041
  };
1300
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
+ }
1301
2105
  const _hoisted_1 = ["for"];
1302
- const _hoisted_2 = { class: "vv-input-text__wrapper" };
1303
- const _hoisted_3 = {
2106
+ const _hoisted_2 = {
1304
2107
  key: 0,
1305
2108
  class: "vv-input-text__input-before"
1306
2109
  };
1307
- const _hoisted_4 = ["onClick"];
1308
- const _hoisted_5 = ["id"];
1309
- const _hoisted_6 = {
2110
+ const _hoisted_3 = ["id"];
2111
+ const _hoisted_4 = {
1310
2112
  key: 1,
1311
2113
  class: "vv-input-text__unit"
1312
2114
  };
1313
- const _hoisted_7 = {
2115
+ const _hoisted_5 = {
1314
2116
  key: 5,
1315
2117
  class: "vv-input-text__input-after"
1316
2118
  };
1317
- const _hoisted_8 = {
2119
+ const _hoisted_6 = {
1318
2120
  key: 6,
1319
2121
  class: "vv-input-text__limit"
1320
2122
  };
2123
+ const _hoisted_7 = { class: "flex-1" };
2124
+ const _hoisted_8 = ["title", "onClick"];
1321
2125
  const __default__ = {
1322
2126
  name: "VvInputText"
1323
2127
  };
@@ -1325,41 +2129,74 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1325
2129
  ...__default__,
1326
2130
  props: VvInputTextProps,
1327
2131
  emits: VvInputTextEvents,
1328
- setup(__props, { expose: __expose, emit }) {
2132
+ setup(__props, { expose: __expose, emit: __emit }) {
1329
2133
  const props = __props;
2134
+ const emit = __emit;
1330
2135
  const slots = useSlots();
2136
+ const volver = useVolver();
1331
2137
  const propsDefaults = useDefaults(
1332
2138
  "VvInputText",
1333
2139
  VvInputTextProps,
1334
2140
  props
1335
2141
  );
1336
2142
  const {
1337
- id,
2143
+ count,
2144
+ debounce,
1338
2145
  icon,
1339
2146
  iconPosition,
1340
- label,
1341
- modelValue,
1342
- count,
1343
- valid,
2147
+ iconRemoveSuggestion,
2148
+ id,
1344
2149
  invalid,
2150
+ label,
1345
2151
  loading,
1346
- debounce,
1347
2152
  maxlength,
1348
2153
  minlength,
2154
+ modelValue,
2155
+ step,
2156
+ storageType,
1349
2157
  type,
1350
- iMask,
1351
- step
2158
+ valid
1352
2159
  } = toRefs(props);
1353
2160
  const hasId = useUniqueId(id);
1354
2161
  const hasHintId = computed(() => `${hasId.value}-hint`);
1355
2162
  const inputTextPlaceholder = computed(
1356
2163
  () => props.floating && isEmpty(props.placeholder) ? " " : props.placeholder
1357
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*]?$/;
1358
2178
  const maskReady = ref(false);
2179
+ const modelValueDate = ref();
2180
+ const modelValueDateIsoString = ref();
1359
2181
  const { el, mask, typed, masked, unmasked } = useIMask(
1360
2182
  computed(
1361
- () => (iMask == null ? void 0 : iMask.value) ?? {
1362
- 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;
1363
2200
  }
1364
2201
  ),
1365
2202
  {
@@ -1370,13 +2207,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1370
2207
  }
1371
2208
  emit("update:masked", masked.value);
1372
2209
  if (type.value === INPUT_TYPES.NUMBER) {
1373
- if (masked.value === "") {
2210
+ if (/^-$|^$/.test(unmasked.value)) {
1374
2211
  if (localModelValue.value === null || localModelValue.value === void 0) {
1375
2212
  return;
1376
2213
  }
1377
2214
  localModelValue.value = void 0;
1378
2215
  return;
1379
2216
  }
2217
+ if (NEGATIVE_ZERO_REGEX.test(unmasked.value)) {
2218
+ localModelValue.value = 0;
2219
+ return;
2220
+ }
1380
2221
  if (typeof typed.value !== "number") {
1381
2222
  localModelValue.value = Number(typed.value);
1382
2223
  return;
@@ -1384,42 +2225,51 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1384
2225
  localModelValue.value = typed.value;
1385
2226
  return;
1386
2227
  }
1387
- if (type.value === INPUT_TYPES.DATE) {
1388
- if (el.value instanceof HTMLInputElement && el.value.type === "date") {
1389
- localModelValue.value = el.value.value;
1390
- return;
1391
- }
1392
- let date = typed.value;
1393
- 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) {
1394
2230
  if (!localModelValue.value) {
1395
2231
  return;
1396
2232
  }
2233
+ if (modelValueDate.value) {
2234
+ localModelValue.value = void 0;
2235
+ return;
2236
+ }
1397
2237
  localModelValue.value = "";
1398
2238
  return;
1399
2239
  }
1400
- if (!(date instanceof Date)) {
1401
- date = new Date(date);
1402
- }
1403
- localModelValue.value = `${date.getFullYear()}-${("0" + (date.getMonth() + 1)).slice(-2)}-${("0" + date.getDate()).slice(-2)}`;
1404
- return;
1405
- }
1406
- if (type.value === INPUT_TYPES.DATETIME_LOCAL) {
1407
- if (el.value instanceof HTMLInputElement && el.value.type === "datetime-local") {
1408
- localModelValue.value = el.value.value;
2240
+ if (!(typed.value instanceof Date) && !modelValueDate.value && !modelValueDateIsoString.value) {
2241
+ localModelValue.value = typed.value;
1409
2242
  return;
1410
2243
  }
1411
2244
  let date = typed.value;
1412
- if (date === null || date === "") {
1413
- 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;
1414
2267
  return;
1415
2268
  }
1416
- localModelValue.value = "";
2269
+ localModelValue.value = toReturn.toISOString();
1417
2270
  return;
1418
2271
  }
1419
- if (!(typed.value instanceof Date)) {
1420
- date = new Date(date);
1421
- }
1422
- 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);
1423
2273
  return;
1424
2274
  }
1425
2275
  if (!localModelValue.value && !unmasked.value) {
@@ -1429,18 +2279,50 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1429
2279
  }
1430
2280
  }
1431
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
+ }
1432
2315
  onMounted(() => {
1433
2316
  if (mask.value) {
1434
2317
  maskReady.value = true;
1435
- typed.value = localModelValue.value ?? "";
2318
+ updateMaskValue(props.modelValue);
1436
2319
  }
1437
2320
  });
1438
2321
  watch(
1439
2322
  () => props.modelValue,
1440
2323
  (newValue) => {
1441
- var _a;
1442
2324
  if (mask.value) {
1443
- typed.value = newValue && ((_a = iMask == null ? void 0 : iMask.value) == null ? void 0 : _a.mask) === Date ? new Date(newValue) : newValue ?? "";
2325
+ updateMaskValue(newValue);
1444
2326
  }
1445
2327
  }
1446
2328
  );
@@ -1452,12 +2334,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1452
2334
  );
1453
2335
  const inputEl = el;
1454
2336
  const innerEl = ref();
2337
+ const wrapperEl = ref();
2338
+ const suggestionsDropdownEl = ref();
1455
2339
  __expose({ $inner: innerEl });
1456
- const localModelValue = useDebouncedInput(
1457
- modelValue,
1458
- emit,
1459
- (debounce == null ? void 0 : debounce.value) ?? 0
1460
- );
1461
2340
  const { focused } = useComponentFocus(inputEl, emit);
1462
2341
  const isFocused = computed(
1463
2342
  () => focused.value && !props.disabled && !props.readonly
@@ -1466,6 +2345,21 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1466
2345
  if (newValue && propsDefaults.value.selectOnFocus && inputEl.value) {
1467
2346
  inputEl.value.select();
1468
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
+ }
1469
2363
  });
1470
2364
  const isVisible = useElementVisibility(inputEl);
1471
2365
  watch(isVisible, (newValue) => {
@@ -1475,65 +2369,66 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1475
2369
  });
1476
2370
  const showPassword = ref(false);
1477
2371
  const isPassword = computed(() => props.type === INPUT_TYPES.PASSWORD);
1478
- const onTogglePassword = () => {
2372
+ function onTogglePassword() {
1479
2373
  showPassword.value = !showPassword.value;
1480
- };
2374
+ }
1481
2375
  const isDateTime = computed(
1482
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
1483
2377
  );
1484
2378
  const isNumber = computed(() => props.type === INPUT_TYPES.NUMBER);
1485
- const onStepUp = () => {
1486
- if (isClickable.value) {
1487
- if (iMask == null ? void 0 : iMask.value) {
1488
- 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);
1489
2383
  return;
1490
2384
  }
1491
2385
  inputEl.value.stepUp();
1492
2386
  localModelValue.value = Number(unref(inputEl).value);
1493
2387
  }
1494
- };
1495
- const onStepDown = () => {
1496
- if (isClickable.value) {
1497
- if (iMask == null ? void 0 : iMask.value) {
1498
- 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);
1499
2393
  return;
1500
2394
  }
1501
2395
  inputEl.value.stepDown();
1502
2396
  localModelValue.value = Number(unref(inputEl).value);
1503
2397
  }
1504
- };
2398
+ }
1505
2399
  const isSearch = computed(() => props.type === INPUT_TYPES.SEARCH);
1506
- const onClear = () => {
2400
+ function onClear() {
1507
2401
  localModelValue.value = "";
1508
- };
1509
- const { hasIcon, hasIconBefore, hasIconAfter } = useComponentIcon(
1510
- icon,
1511
- iconPosition
1512
- );
1513
- 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
+ }
1514
2409
  switch (props.type) {
1515
2410
  case INPUT_TYPES.COLOR:
1516
- return { name: TYPES_ICON.COLOR };
2411
+ return { name: ACTION_ICONS.showColorPicker };
1517
2412
  case INPUT_TYPES.DATE:
1518
2413
  case INPUT_TYPES.DATETIME_LOCAL:
1519
2414
  case INPUT_TYPES.WEEK:
1520
2415
  case INPUT_TYPES.MONTH:
1521
- return { name: TYPES_ICON.DATE };
2416
+ return { name: ACTION_ICONS.showDatePicker };
1522
2417
  case INPUT_TYPES.TIME:
1523
- return { name: TYPES_ICON.TIME };
1524
- default:
1525
- return "";
2418
+ return { name: ACTION_ICONS.showTimePicker };
1526
2419
  }
2420
+ return void 0;
1527
2421
  });
2422
+ const { hasIcon: hasIconRemoveSuggestion } = useComponentIcon(iconRemoveSuggestion);
1528
2423
  const { formatted: countFormatted } = useTextCount(localModelValue, {
1529
2424
  mode: count.value,
1530
- upperLimit: Number(maxlength == null ? void 0 : maxlength.value),
1531
- 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;
1532
2431
  });
1533
- const isClickable = computed(() => !props.disabled && !props.readonly);
1534
- const hasTabindex = computed(
1535
- () => isClickable.value ? props.tabindex : -1
1536
- );
1537
2432
  const isDirty = computed(() => !isEmpty(modelValue));
1538
2433
  const isInvalid = computed(() => {
1539
2434
  if (invalid.value === true) {
@@ -1544,21 +2439,48 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1544
2439
  }
1545
2440
  return void 0;
1546
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
+ }
1547
2468
  const { modifiers } = toRefs(props);
1548
2469
  const bemCssClasses = useModifiers(
1549
2470
  "vv-input-text",
1550
2471
  modifiers,
1551
2472
  computed(() => ({
1552
- valid: valid.value,
1553
- invalid: invalid.value,
1554
- loading: loading.value,
1555
- disabled: props.disabled,
1556
- readonly: props.readonly,
1557
- "icon-before": hasIconBefore.value,
1558
- "icon-after": hasIconAfter.value || !isEmpty(defaultAfterIcon),
1559
- floating: props.floating && !isEmpty(props.label),
1560
- dirty: isDirty.value,
1561
- 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,
1562
2484
  "auto-width": props.autoWidth
1563
2485
  }))
1564
2486
  );
@@ -1570,26 +2492,31 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1570
2492
  if (isDateTime.value && !isDirty.value && !focused.value) {
1571
2493
  return INPUT_TYPES.TEXT;
1572
2494
  }
1573
- if (iMask == null ? void 0 : iMask.value) {
2495
+ if (props.iMask) {
1574
2496
  return INPUT_TYPES.TEXT;
1575
2497
  }
1576
2498
  return props.type;
1577
2499
  })();
1578
2500
  const toReturn = {
1579
2501
  type: type2,
1580
- name: props.name,
1581
- tabindex: hasTabindex.value,
1582
- disabled: props.disabled,
1583
- readonly: props.readonly,
1584
- required: props.required,
1585
- 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,
1586
2508
  "aria-invalid": isInvalid.value,
1587
2509
  "aria-describedby": hasHintLabelOrSlot.value ? hasHintId.value : void 0,
1588
- "aria-errormessage": hasInvalidLabelOrSlot.value ? hasHintId.value : void 0
2510
+ "aria-errormessage": hasInvalidLabelOrSlot.value ? hasHintId.value : void 0,
2511
+ "inputMode": props.inputMode
1589
2512
  };
1590
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
+ }
1591
2518
  toReturn.step = props.step;
1592
- toReturn.max = props.max !== void 0 ? String(props.max) : void 0;
2519
+ toReturn.max = max !== void 0 ? String(max) : void 0;
1593
2520
  toReturn.min = props.min !== void 0 ? String(props.min) : void 0;
1594
2521
  }
1595
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) {
@@ -1622,21 +2549,24 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1622
2549
  } = HintSlotFactory(propsDefaults, slots);
1623
2550
  const PasswordInputActions = VvInputTextActionsFactory(
1624
2551
  INPUT_TYPES.PASSWORD,
1625
- props
2552
+ props,
2553
+ isDirty
1626
2554
  );
1627
2555
  const NumberInputActions = VvInputTextActionsFactory(
1628
2556
  INPUT_TYPES.NUMBER,
1629
- props
2557
+ props,
2558
+ isDirty
1630
2559
  );
1631
2560
  const SearchInputActions = VvInputTextActionsFactory(
1632
2561
  INPUT_TYPES.SEARCH,
1633
- props
2562
+ props,
2563
+ isDirty
1634
2564
  );
1635
- const onClickInner = () => {
1636
- if (isClickable.value) {
2565
+ function onClickInner() {
2566
+ if (!isDisabledOrReadonly.value) {
1637
2567
  focused.value = true;
1638
2568
  }
1639
- };
2569
+ }
1640
2570
  const hasStyle = computed(() => {
1641
2571
  if (!props.autoWidth) {
1642
2572
  return void 0;
@@ -1645,7 +2575,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1645
2575
  width: localModelValue.value !== void 0 ? `${String(localModelValue.value).length + 1}ch` : void 0
1646
2576
  };
1647
2577
  });
1648
- const onKeyDown = (event) => {
2578
+ function onKeyDown(event) {
1649
2579
  switch (event.code) {
1650
2580
  case "ArrowUp":
1651
2581
  if (isNumber.value) {
@@ -1661,7 +2591,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1661
2591
  break;
1662
2592
  }
1663
2593
  emit("keydown", event);
1664
- };
2594
+ }
1665
2595
  return (_ctx, _cache) => {
1666
2596
  return openBlock(), createElementBlock(
1667
2597
  "div",
@@ -1674,79 +2604,89 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1674
2604
  for: unref(hasId),
1675
2605
  class: "vv-input-text__label"
1676
2606
  }, toDisplayString(unref(label)), 9, _hoisted_1)) : createCommentVNode("v-if", true),
1677
- createElementVNode("div", _hoisted_2, [
1678
- _ctx.$slots.before ? (openBlock(), createElementBlock("div", _hoisted_3, [
1679
- renderSlot(_ctx.$slots, "before", normalizeProps(guardReactiveProps(unref(slotProps))))
1680
- ])) : createCommentVNode("v-if", true),
1681
- createElementVNode("div", {
1682
- ref_key: "innerEl",
1683
- ref: innerEl,
1684
- class: "vv-input-text__inner",
1685
- onClick: withModifiers(onClickInner, ["stop"])
1686
- }, [
1687
- 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(
1688
2658
  _sfc_main$1,
1689
- mergeProps({
1690
- key: 0,
1691
- class: "vv-input-text__icon"
1692
- }, unref(hasIcon)),
2659
+ mergeProps({ key: 1 }, unref(iconAfter), { class: "vv-input-text__icon vv-input-text__icon-after" }),
1693
2660
  null,
1694
2661
  16
1695
2662
  /* FULL_PROPS */
1696
- )) : createCommentVNode("v-if", true),
1697
- createElementVNode("input", mergeProps({
1698
- id: unref(hasId),
1699
- ref_key: "inputEl",
1700
- ref: inputEl
1701
- }, unref(hasAttrs), {
1702
- style: unref(hasStyle),
1703
- onKeyup: _cache[0] || (_cache[0] = ($event) => emit("keyup", $event)),
1704
- onKeydown: onKeyDown,
1705
- onKeypress: _cache[1] || (_cache[1] = ($event) => emit("keypress", $event))
1706
- }), null, 16, _hoisted_5),
1707
- (_ctx.unit || _ctx.$slots.unit) && unref(isDirty) ? (openBlock(), createElementBlock("div", _hoisted_6, [
1708
- 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))), () => [
1709
2679
  createTextVNode(
1710
- toDisplayString(_ctx.unit),
2680
+ toDisplayString(unref(countFormatted)),
1711
2681
  1
1712
2682
  /* TEXT */
1713
2683
  )
1714
2684
  ])
1715
2685
  ])) : createCommentVNode("v-if", true)
1716
- ], 8, _hoisted_4),
1717
- unref(hasIconAfter) || unref(defaultAfterIcon) ? (openBlock(), createBlock(
1718
- _sfc_main$1,
1719
- mergeProps({
1720
- key: 1,
1721
- class: "vv-input-text__icon vv-input-text__icon-after"
1722
- }, unref(hasIconAfter) ? unref(hasIcon) : unref(defaultAfterIcon)),
1723
- null,
1724
- 16
1725
- /* FULL_PROPS */
1726
- )) : unref(isPassword) && !_ctx.hideActions && unref(isClickable) ? (openBlock(), createBlock(unref(PasswordInputActions), {
1727
- key: 2,
1728
- onTogglePassword
1729
- })) : unref(isNumber) && !_ctx.hideActions && unref(isClickable) ? (openBlock(), createBlock(unref(NumberInputActions), {
1730
- key: 3,
1731
- onStepUp,
1732
- onStepDown
1733
- })) : unref(isSearch) && !_ctx.hideActions && unref(isClickable) ? (openBlock(), createBlock(unref(SearchInputActions), {
1734
- key: 4,
1735
- onClear
1736
- })) : createCommentVNode("v-if", true),
1737
- _ctx.$slots.after ? (openBlock(), createElementBlock("div", _hoisted_7, [
1738
- renderSlot(_ctx.$slots, "after", normalizeProps(guardReactiveProps(unref(slotProps))))
1739
- ])) : createCommentVNode("v-if", true),
1740
- unref(count) ? (openBlock(), createElementBlock("span", _hoisted_8, [
1741
- renderSlot(_ctx.$slots, "count", normalizeProps(guardReactiveProps(unref(slotProps))), () => [
1742
- createTextVNode(
1743
- toDisplayString(unref(countFormatted)),
1744
- 1
1745
- /* TEXT */
1746
- )
1747
- ])
1748
- ])) : createCommentVNode("v-if", true)
1749
- ]),
2686
+ ],
2687
+ 512
2688
+ /* NEED_PATCH */
2689
+ ),
1750
2690
  createVNode(unref(HintSlot), {
1751
2691
  id: unref(hasHintId),
1752
2692
  class: "vv-input-text__hint"
@@ -1782,7 +2722,62 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1782
2722
  ]),
1783
2723
  key: "3"
1784
2724
  } : void 0
1785
- ]), 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)
1786
2781
  ],
1787
2782
  2
1788
2783
  /* CLASS */