@volverjs/ui-vue 0.0.10-beta.7 → 0.0.10-beta.70

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