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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (348) hide show
  1. package/README.md +78 -77
  2. package/bin/icons.cjs +1 -1
  3. package/bin/icons.js +5 -5
  4. package/dist/Volver.d.ts +10 -10
  5. package/dist/components/VvAccordion/VvAccordion.es.js +11 -11
  6. package/dist/components/VvAccordion/VvAccordion.umd.js +1 -1
  7. package/dist/components/VvAccordionGroup/VvAccordionGroup.es.js +17 -17
  8. package/dist/components/VvAccordionGroup/VvAccordionGroup.umd.js +1 -1
  9. package/dist/components/VvAction/VvAction.es.js +6 -6
  10. package/dist/components/VvAction/VvAction.umd.js +1 -1
  11. package/dist/components/VvAlert/VvAlert.es.js +23 -21
  12. package/dist/components/VvAlert/VvAlert.umd.js +1 -1
  13. package/dist/components/VvAlert/index.d.ts +2 -2
  14. package/dist/components/VvAlertGroup/VvAlertGroup.es.js +351 -349
  15. package/dist/components/VvAlertGroup/VvAlertGroup.umd.js +1 -1
  16. package/dist/components/VvAlertGroup/VvAlertGroup.vue.d.ts +3 -3
  17. package/dist/components/VvAlertGroup/index.d.ts +1 -1
  18. package/dist/components/VvAvatar/VvAvatar.es.js +4 -1
  19. package/dist/components/VvAvatar/VvAvatar.umd.js +1 -1
  20. package/dist/components/VvAvatarGroup/VvAvatarGroup.es.js +11 -3
  21. package/dist/components/VvAvatarGroup/VvAvatarGroup.umd.js +1 -1
  22. package/dist/components/VvBreadcrumb/VvBreadcrumb.es.js +10 -10
  23. package/dist/components/VvBreadcrumb/VvBreadcrumb.umd.js +1 -1
  24. package/dist/components/VvButton/VvButton.es.js +31 -25
  25. package/dist/components/VvButton/VvButton.umd.js +1 -1
  26. package/dist/components/VvButtonGroup/VvButtonGroup.es.js +1 -1
  27. package/dist/components/VvButtonGroup/VvButtonGroup.umd.js +1 -1
  28. package/dist/components/VvCheckbox/VvCheckbox.es.js +208 -202
  29. package/dist/components/VvCheckbox/VvCheckbox.umd.js +1 -1
  30. package/dist/components/VvCheckbox/VvCheckbox.vue.d.ts +3 -3
  31. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.es.js +21 -15
  32. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.umd.js +1 -1
  33. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.vue.d.ts +2 -2
  34. package/dist/components/VvCombobox/VvCombobox.es.js +454 -446
  35. package/dist/components/VvCombobox/VvCombobox.umd.js +1 -1
  36. package/dist/components/VvCombobox/VvCombobox.vue.d.ts +5 -5
  37. package/dist/components/VvCombobox/index.d.ts +5 -10
  38. package/dist/components/VvDialog/VvDialog.es.js +11 -11
  39. package/dist/components/VvDialog/VvDialog.umd.js +1 -1
  40. package/dist/components/VvDropdown/VvDropdown.es.js +29 -25
  41. package/dist/components/VvDropdown/VvDropdown.umd.js +1 -1
  42. package/dist/components/VvDropdown/VvDropdown.vue.d.ts +12 -8
  43. package/dist/components/VvDropdownAction/VvDropdownAction.es.js +11 -14
  44. package/dist/components/VvDropdownAction/VvDropdownAction.umd.js +1 -1
  45. package/dist/components/VvIcon/VvIcon.es.js +1 -1
  46. package/dist/components/VvIcon/VvIcon.umd.js +1 -1
  47. package/dist/components/VvInputFile/VvInputFile.es.js +61 -55
  48. package/dist/components/VvInputFile/VvInputFile.umd.js +1 -1
  49. package/dist/components/VvInputFile/VvInputFile.vue.d.ts +2 -2
  50. package/dist/components/VvInputFile/index.d.ts +6 -6
  51. package/dist/components/VvInputText/VvInputText.es.js +287 -286
  52. package/dist/components/VvInputText/VvInputText.umd.js +1 -1
  53. package/dist/components/VvInputText/VvInputText.vue.d.ts +2 -2
  54. package/dist/components/VvInputText/index.d.ts +7 -2
  55. package/dist/components/VvNav/VvNav.es.js +23 -20
  56. package/dist/components/VvNav/VvNav.umd.js +1 -1
  57. package/dist/components/VvNavItem/VvNavItem.es.js +6 -6
  58. package/dist/components/VvNavItem/VvNavItem.umd.js +1 -1
  59. package/dist/components/VvRadio/VvRadio.es.js +208 -202
  60. package/dist/components/VvRadio/VvRadio.umd.js +1 -1
  61. package/dist/components/VvRadio/VvRadio.vue.d.ts +2 -2
  62. package/dist/components/VvRadioGroup/VvRadioGroup.es.js +21 -15
  63. package/dist/components/VvRadioGroup/VvRadioGroup.umd.js +1 -1
  64. package/dist/components/VvRadioGroup/VvRadioGroup.vue.d.ts +2 -2
  65. package/dist/components/VvSelect/VvSelect.es.js +22 -20
  66. package/dist/components/VvSelect/VvSelect.umd.js +1 -1
  67. package/dist/components/VvSelect/VvSelect.vue.d.ts +2 -2
  68. package/dist/components/VvTab/VvTab.es.js +29 -23
  69. package/dist/components/VvTab/VvTab.umd.js +1 -1
  70. package/dist/components/VvTextarea/VvTextarea.es.js +29 -27
  71. package/dist/components/VvTextarea/VvTextarea.umd.js +1 -1
  72. package/dist/components/VvTextarea/VvTextarea.vue.d.ts +2 -2
  73. package/dist/components/VvTooltip/VvTooltip.es.js +4 -1
  74. package/dist/components/VvTooltip/VvTooltip.umd.js +1 -1
  75. package/dist/components/common/HintSlot.d.ts +3 -4
  76. package/dist/components/index.es.js +893 -876
  77. package/dist/components/index.umd.js +1 -1
  78. package/dist/composables/alert/useAlert.d.ts +2 -2
  79. package/dist/composables/index.es.js +10 -10
  80. package/dist/composables/index.umd.js +1 -1
  81. package/dist/composables/useBlurhash.d.ts +1 -1
  82. package/dist/composables/usePersistence.d.ts +2 -1
  83. package/dist/composables/useUniqueId.d.ts +1 -1
  84. package/dist/directives/index.es.js +5 -2
  85. package/dist/directives/index.umd.js +1 -1
  86. package/dist/directives/v-contextmenu.es.js +1 -1
  87. package/dist/directives/v-contextmenu.umd.js +1 -1
  88. package/dist/directives/v-tooltip.es.js +4 -1
  89. package/dist/directives/v-tooltip.umd.js +1 -1
  90. package/dist/icons.es.js +3 -3
  91. package/dist/icons.umd.js +1 -1
  92. package/dist/index.es.js +2 -2
  93. package/dist/stories/Alert/AlertModifiers.stories.d.ts +1 -1
  94. package/dist/stories/Alert/AlertSlots.stories.d.ts +1 -1
  95. package/dist/stories/AlertGroup/AlertGroupPosition.stories.d.ts +1 -1
  96. package/dist/stories/AlertGroup/AlertGroupSlots.stories.d.ts +1 -1
  97. package/dist/stories/AlertGroup/AlertGroupWithComposable.stories.d.ts +1 -1
  98. package/dist/stories/Badge/Badge.test.d.ts +1 -1
  99. package/dist/stories/Combobox/Combobox.settings.d.ts +1 -1
  100. package/dist/test/options.d.ts +1 -1
  101. package/dist/test/sleep.d.ts +1 -1
  102. package/dist/types/alert.d.ts +1 -1
  103. package/dist/utils/ObjectUtilities.d.ts +7 -7
  104. package/package.json +232 -239
  105. package/src/Volver.ts +243 -243
  106. package/src/assets/icons/detailed.json +1 -1
  107. package/src/assets/icons/normal.json +1 -1
  108. package/src/assets/icons/simple.json +1 -1
  109. package/src/components/VvAccordion/VvAccordion.vue +155 -155
  110. package/src/components/VvAccordion/index.ts +62 -62
  111. package/src/components/VvAccordionGroup/VvAccordionGroup.vue +220 -219
  112. package/src/components/VvAccordionGroup/index.ts +41 -41
  113. package/src/components/VvAction/VvAction.vue +144 -142
  114. package/src/components/VvAlert/VvAlert.vue +72 -70
  115. package/src/components/VvAlert/index.ts +147 -150
  116. package/src/components/VvAlertGroup/VvAlertGroup.vue +56 -55
  117. package/src/components/VvAlertGroup/index.ts +99 -103
  118. package/src/components/VvAvatar/VvAvatar.vue +20 -14
  119. package/src/components/VvAvatar/index.ts +5 -5
  120. package/src/components/VvAvatarGroup/VvAvatarGroup.vue +58 -53
  121. package/src/components/VvAvatarGroup/index.ts +21 -21
  122. package/src/components/VvBadge/VvBadge.vue +15 -14
  123. package/src/components/VvBadge/index.ts +2 -2
  124. package/src/components/VvBreadcrumb/VvBreadcrumb.vue +49 -48
  125. package/src/components/VvBreadcrumb/index.ts +2 -2
  126. package/src/components/VvButton/VvButton.vue +163 -162
  127. package/src/components/VvButton/index.ts +102 -102
  128. package/src/components/VvButtonGroup/VvButtonGroup.vue +72 -72
  129. package/src/components/VvButtonGroup/index.ts +22 -22
  130. package/src/components/VvCard/VvCard.vue +30 -30
  131. package/src/components/VvCard/index.ts +2 -2
  132. package/src/components/VvCheckbox/VvCheckbox.vue +185 -180
  133. package/src/components/VvCheckbox/index.ts +44 -44
  134. package/src/components/VvCheckboxGroup/VvCheckboxGroup.vue +88 -86
  135. package/src/components/VvCombobox/VvCombobox.vue +633 -623
  136. package/src/components/VvCombobox/index.ts +166 -166
  137. package/src/components/VvDialog/VvDialog.vue +131 -129
  138. package/src/components/VvDialog/index.ts +35 -35
  139. package/src/components/VvDropdown/VvDropdown.vue +464 -452
  140. package/src/components/VvDropdown/VvDropdownAction.vue +37 -39
  141. package/src/components/VvDropdown/VvDropdownItem.vue +29 -28
  142. package/src/components/VvDropdown/VvDropdownOptgroup.vue +13 -12
  143. package/src/components/VvDropdown/VvDropdownOption.vue +47 -47
  144. package/src/components/VvDropdown/index.ts +53 -53
  145. package/src/components/VvIcon/README.md +1 -1
  146. package/src/components/VvIcon/VvIcon.vue +133 -133
  147. package/src/components/VvIcon/index.ts +77 -77
  148. package/src/components/VvInputFile/VvInputFile.vue +367 -363
  149. package/src/components/VvInputFile/index.ts +125 -125
  150. package/src/components/VvInputText/VvInputClearAction.ts +50 -50
  151. package/src/components/VvInputText/VvInputPasswordAction.ts +65 -65
  152. package/src/components/VvInputText/VvInputStepAction.ts +43 -43
  153. package/src/components/VvInputText/VvInputText.vue +636 -637
  154. package/src/components/VvInputText/VvInputTextActions.ts +86 -86
  155. package/src/components/VvInputText/index.ts +198 -198
  156. package/src/components/VvNav/VvNav.vue +40 -33
  157. package/src/components/VvNav/VvNavItem.vue +12 -12
  158. package/src/components/VvNav/VvNavSeparator.vue +6 -6
  159. package/src/components/VvNav/index.ts +2 -2
  160. package/src/components/VvProgress/VvProgress.vue +27 -26
  161. package/src/components/VvProgress/index.ts +28 -28
  162. package/src/components/VvRadio/VvRadio.vue +115 -112
  163. package/src/components/VvRadio/index.ts +27 -27
  164. package/src/components/VvRadioGroup/VvRadioGroup.vue +91 -89
  165. package/src/components/VvSelect/VvSelect.vue +241 -238
  166. package/src/components/VvSelect/index.ts +62 -62
  167. package/src/components/VvTab/VvTab.vue +79 -73
  168. package/src/components/VvTab/index.ts +12 -12
  169. package/src/components/VvTextarea/VvTextarea.vue +218 -216
  170. package/src/components/VvTextarea/index.ts +35 -35
  171. package/src/components/VvTooltip/VvTooltip.vue +22 -16
  172. package/src/components/VvTooltip/index.ts +12 -12
  173. package/src/components/common/HintSlot.ts +149 -150
  174. package/src/composables/alert/useAlert.ts +74 -74
  175. package/src/composables/alert/useInjectAlert.ts +1 -1
  176. package/src/composables/alert/useProvideAlert.ts +10 -10
  177. package/src/composables/dropdown/useInjectDropdown.ts +6 -6
  178. package/src/composables/dropdown/useProvideDropdown.ts +62 -62
  179. package/src/composables/group/useInjectedGroupState.ts +41 -41
  180. package/src/composables/group/useProvideGroupState.ts +1 -2
  181. package/src/composables/useBlurhash.ts +52 -60
  182. package/src/composables/useComponentFocus.ts +9 -9
  183. package/src/composables/useComponentIcon.ts +35 -35
  184. package/src/composables/useDebouncedInput.ts +25 -25
  185. package/src/composables/useDefaults.ts +77 -76
  186. package/src/composables/useModifiers.ts +29 -29
  187. package/src/composables/useOptions.ts +45 -43
  188. package/src/composables/usePersistence.ts +70 -72
  189. package/src/composables/useTextCount.ts +44 -44
  190. package/src/composables/useUniqueId.ts +3 -2
  191. package/src/composables/useVolver.ts +1 -1
  192. package/src/constants.ts +70 -70
  193. package/src/directives/v-contextmenu.ts +34 -34
  194. package/src/directives/v-tooltip.ts +17 -17
  195. package/src/index.ts +3 -3
  196. package/src/props/index.ts +453 -453
  197. package/src/resolvers/unplugin.ts +138 -138
  198. package/src/shims.d.ts +4 -5
  199. package/src/stories/Accordion/Accordion.settings.ts +49 -49
  200. package/src/stories/Accordion/Accordion.stories.ts +21 -21
  201. package/src/stories/Accordion/Accordion.test.ts +56 -54
  202. package/src/stories/Accordion/AccordionSlots.stories.ts +13 -13
  203. package/src/stories/AccordionGroup/AccordionGroup.settings.ts +69 -67
  204. package/src/stories/AccordionGroup/AccordionGroup.stories.ts +37 -37
  205. package/src/stories/AccordionGroup/AccordionGroup.test.ts +49 -47
  206. package/src/stories/AccordionGroup/AccordionGroupSlots.stories.ts +34 -34
  207. package/src/stories/Alert/Alert.settings.ts +115 -115
  208. package/src/stories/Alert/Alert.stories.ts +30 -30
  209. package/src/stories/Alert/Alert.test.ts +78 -78
  210. package/src/stories/Alert/AlertModifiers.stories.ts +45 -45
  211. package/src/stories/Alert/AlertSlots.stories.ts +35 -35
  212. package/src/stories/AlertGroup/AlertGroup.settings.ts +104 -104
  213. package/src/stories/AlertGroup/AlertGroup.stories.ts +25 -25
  214. package/src/stories/AlertGroup/AlertGroup.test.ts +67 -67
  215. package/src/stories/AlertGroup/AlertGroupPosition.stories.ts +68 -68
  216. package/src/stories/AlertGroup/AlertGroupSlots.stories.ts +23 -23
  217. package/src/stories/AlertGroup/AlertGroupWithComposable.stories.ts +57 -57
  218. package/src/stories/Avatar/Avatar.settings.ts +29 -29
  219. package/src/stories/Avatar/Avatar.stories.ts +23 -23
  220. package/src/stories/Avatar/Avatar.test.ts +22 -22
  221. package/src/stories/Avatar/AvatarBadge.stories.ts +15 -15
  222. package/src/stories/Avatar/AvatarModifiers.stories.ts +61 -61
  223. package/src/stories/Avatar/AvatarSlots.stories.ts +18 -18
  224. package/src/stories/AvatarGroup/AvatarGroup.settings.ts +53 -53
  225. package/src/stories/AvatarGroup/AvatarGroup.stories.ts +17 -17
  226. package/src/stories/AvatarGroup/AvatarGroup.test.ts +24 -24
  227. package/src/stories/AvatarGroup/AvatarGroupModifiers.stories.ts +15 -15
  228. package/src/stories/AvatarGroup/AvatarGroupSlotDefault.stories.ts +17 -17
  229. package/src/stories/Badge/Badge.settings.ts +20 -20
  230. package/src/stories/Badge/Badge.stories.ts +23 -23
  231. package/src/stories/Badge/Badge.test.ts +8 -8
  232. package/src/stories/Badge/BadgeSlots.stories.ts +10 -10
  233. package/src/stories/Blurhash/BlurhashComposable.stories.ts +77 -76
  234. package/src/stories/Breadcrumb/Breadcrumb.settings.ts +34 -34
  235. package/src/stories/Breadcrumb/Breadcrumb.stories.ts +22 -22
  236. package/src/stories/Breadcrumb/Breadcrumb.test.ts +44 -43
  237. package/src/stories/Breadcrumb/BreadcrumbSlots.stories.ts +17 -17
  238. package/src/stories/Button/Button.settings.ts +144 -144
  239. package/src/stories/Button/Button.stories.ts +18 -18
  240. package/src/stories/Button/Button.test.ts +41 -40
  241. package/src/stories/Button/ButtonIcon.stories.ts +42 -42
  242. package/src/stories/Button/ButtonLink.stories.ts +24 -24
  243. package/src/stories/Button/ButtonLoading.stories.ts +22 -22
  244. package/src/stories/Button/ButtonModifiers.stories.ts +91 -91
  245. package/src/stories/Button/ButtonSlots.stories.ts +47 -47
  246. package/src/stories/Button/ButtonState.stories.ts +23 -23
  247. package/src/stories/Button/ButtonToggle.stories.ts +30 -30
  248. package/src/stories/ButtonGroup/ButtonGroup.settings.ts +32 -32
  249. package/src/stories/ButtonGroup/ButtonGroup.stories.ts +19 -19
  250. package/src/stories/ButtonGroup/ButtonGroup.test.ts +23 -22
  251. package/src/stories/ButtonGroup/ButtonGroupModifiers.stories.ts +20 -20
  252. package/src/stories/ButtonGroup/ButtonGroupSlots.stories.ts +18 -18
  253. package/src/stories/ButtonGroup/ButtonGroupToggle.stories.ts +22 -22
  254. package/src/stories/Card/Card.settings.ts +48 -48
  255. package/src/stories/Card/Card.stories.ts +22 -22
  256. package/src/stories/Card/Card.test.ts +14 -14
  257. package/src/stories/Card/CardSlots.stories.ts +42 -42
  258. package/src/stories/Checkbox/Checkbox.settings.ts +35 -35
  259. package/src/stories/Checkbox/Checkbox.stories.ts +57 -57
  260. package/src/stories/Checkbox/Checkbox.test.ts +63 -62
  261. package/src/stories/Checkbox/CheckboxBinary.stories.ts +17 -17
  262. package/src/stories/Checkbox/CheckboxSlots.stories.ts +15 -15
  263. package/src/stories/CheckboxGroup/CheckboxGroup.settings.ts +9 -9
  264. package/src/stories/CheckboxGroup/CheckboxGroup.stories.ts +50 -50
  265. package/src/stories/CheckboxGroup/CheckboxGroup.test.ts +63 -63
  266. package/src/stories/CheckboxGroup/CheckboxGroupOptions.stories.ts +34 -34
  267. package/src/stories/CheckboxGroup/CheckboxGroupSlots.stories.ts +23 -23
  268. package/src/stories/Combobox/Combobox.settings.ts +390 -390
  269. package/src/stories/Combobox/Combobox.stories.ts +107 -107
  270. package/src/stories/Combobox/Combobox.test.ts +89 -87
  271. package/src/stories/Combobox/ComboboxIconPosition.stories.ts +24 -24
  272. package/src/stories/Combobox/ComboboxMultiple.stories.ts +22 -22
  273. package/src/stories/Combobox/ComboboxOptions.stories.ts +84 -84
  274. package/src/stories/Combobox/ComboboxSlots.stories.ts +55 -55
  275. package/src/stories/Dialog/Dialog.settings.ts +39 -39
  276. package/src/stories/Dialog/Dialog.stories.ts +28 -28
  277. package/src/stories/Dialog/Dialog.test.ts +49 -49
  278. package/src/stories/Dialog/DialogSlots.stories.ts +20 -20
  279. package/src/stories/Dropdown/Dropdown.settings.ts +62 -62
  280. package/src/stories/Dropdown/Dropdown.stories.ts +59 -59
  281. package/src/stories/Dropdown/Dropdown.test.ts +9 -9
  282. package/src/stories/Dropdown/DropdownContextmenuDirective.stories.ts +16 -16
  283. package/src/stories/Dropdown/DropdownMultilevel.stories.ts +18 -18
  284. package/src/stories/Dropdown/DropdownSlots.stories.ts +49 -49
  285. package/src/stories/Icon/Icon.settings.ts +64 -64
  286. package/src/stories/Icon/Icon.stories.ts +28 -28
  287. package/src/stories/Icon/IconsCollection.stories.ts +22 -22
  288. package/src/stories/InputFile/InputFile.settings.ts +29 -29
  289. package/src/stories/InputFile/InputFile.stories.ts +54 -54
  290. package/src/stories/InputFile/InputFileDropArea.stories.ts +34 -34
  291. package/src/stories/InputFile/InputFileIconPosition.stories.ts +24 -24
  292. package/src/stories/InputFile/InputFileSlots.stories.ts +17 -17
  293. package/src/stories/InputText/InputText.settings.ts +245 -246
  294. package/src/stories/InputText/InputText.stories.ts +67 -67
  295. package/src/stories/InputText/InputText.test.ts +118 -117
  296. package/src/stories/InputText/InputTextIconPosition.stories.ts +24 -24
  297. package/src/stories/InputText/InputTextLength.stories.ts +33 -33
  298. package/src/stories/InputText/InputTextMask.stories.ts +91 -91
  299. package/src/stories/InputText/InputTextMinMax.stories.ts +29 -29
  300. package/src/stories/InputText/InputTextSlots.stories.ts +20 -20
  301. package/src/stories/InputText/InputTextType.stories.ts +70 -70
  302. package/src/stories/Nav/Nav.settings.ts +25 -25
  303. package/src/stories/Nav/Nav.stories.ts +17 -17
  304. package/src/stories/Nav/Nav.test.ts +10 -10
  305. package/src/stories/Nav/NavModifiers.stories.ts +25 -25
  306. package/src/stories/Progress/Progress.settings.ts +23 -23
  307. package/src/stories/Progress/Progress.stories.ts +23 -23
  308. package/src/stories/Progress/Progress.test.ts +4 -4
  309. package/src/stories/Radio/Radio.settings.ts +9 -9
  310. package/src/stories/Radio/Radio.stories.ts +47 -47
  311. package/src/stories/Radio/Radio.test.ts +54 -53
  312. package/src/stories/Radio/RadioSlots.stories.ts +15 -15
  313. package/src/stories/RadioGroup/RadioGroup.settings.ts +9 -9
  314. package/src/stories/RadioGroup/RadioGroup.stories.ts +50 -50
  315. package/src/stories/RadioGroup/RadioGroup.test.ts +63 -63
  316. package/src/stories/RadioGroup/RadioGroupOptions.stories.ts +34 -34
  317. package/src/stories/RadioGroup/RadioGroupSlots.stories.ts +23 -23
  318. package/src/stories/Select/Select.settings.ts +70 -70
  319. package/src/stories/Select/Select.stories.ts +66 -66
  320. package/src/stories/Select/Select.test.ts +65 -64
  321. package/src/stories/Select/SelectIconPosition.stories.ts +24 -24
  322. package/src/stories/Select/SelectOptions.stories.ts +54 -54
  323. package/src/stories/Select/SelectSlots.stories.ts +20 -20
  324. package/src/stories/Tab/Tab.settings.ts +32 -32
  325. package/src/stories/Tab/Tab.stories.ts +17 -17
  326. package/src/stories/Tab/Tab.test.ts +17 -17
  327. package/src/stories/Textarea/Textarea.settings.ts +78 -79
  328. package/src/stories/Textarea/Textarea.stories.ts +63 -63
  329. package/src/stories/Textarea/Textarea.test.ts +70 -69
  330. package/src/stories/Textarea/TextareaLength.stories.ts +33 -33
  331. package/src/stories/Textarea/TextareaSlots.stories.ts +20 -20
  332. package/src/stories/Textarea/TextareatIconPosition.stories.ts +24 -24
  333. package/src/stories/Tooltip/Tooltip.settings.ts +16 -16
  334. package/src/stories/Tooltip/Tooltip.stories.ts +18 -18
  335. package/src/stories/Tooltip/Tooltip.test.ts +53 -52
  336. package/src/stories/Tooltip/TooltipDirective.stories.ts +37 -37
  337. package/src/stories/argTypes.ts +484 -485
  338. package/src/test/expect.ts +71 -74
  339. package/src/test/options.ts +17 -16
  340. package/src/test/sleep.ts +3 -2
  341. package/src/test/types.d.ts +11 -11
  342. package/src/types/alert.ts +18 -18
  343. package/src/types/blurhash.ts +18 -18
  344. package/src/types/generic.ts +1 -2
  345. package/src/types/group.ts +21 -21
  346. package/src/types/input-file.ts +17 -17
  347. package/src/types/nav.ts +13 -13
  348. package/src/utils/ObjectUtilities.ts +192 -177
@@ -5,6 +5,10 @@ import { uid } from "uid";
5
5
  import { useMutationObserver, useVModel, onClickOutside, useFocusWithin, useElementHover, onKeyStroke, useFocus, useElementVisibility, refDebounced, computedAsync } from "@vueuse/core";
6
6
  import mitt from "mitt";
7
7
  import { get } from "ts-dot-prop";
8
+ const VvIconPropsDefaults = {
9
+ prefix: "normal"
10
+ /* normal */
11
+ };
8
12
  var StorageType = /* @__PURE__ */ ((StorageType2) => {
9
13
  StorageType2["local"] = "local";
10
14
  StorageType2["session"] = "session";
@@ -80,6 +84,145 @@ const INJECTION_KEY_DROPDOWN_ITEM = Symbol.for(
80
84
  const INJECTION_KEY_DROPDOWN_ACTION = Symbol.for(
81
85
  "dropdownAction"
82
86
  );
87
+ function useVolver() {
88
+ return inject(INJECTION_KEY_VOLVER);
89
+ }
90
+ function useModifiers(prefix, modifiers, others) {
91
+ return computed(() => {
92
+ const toReturn = {
93
+ [prefix]: true
94
+ };
95
+ const modifiersArray = typeof (modifiers == null ? void 0 : modifiers.value) === "string" ? modifiers.value.split(" ") : modifiers == null ? void 0 : modifiers.value;
96
+ if (modifiersArray) {
97
+ if (Array.isArray(modifiersArray)) {
98
+ modifiersArray.forEach((modifier) => {
99
+ if (modifier) {
100
+ toReturn[`${prefix}--${modifier}`] = true;
101
+ }
102
+ });
103
+ }
104
+ }
105
+ if (others) {
106
+ Object.keys(others.value).forEach((key) => {
107
+ toReturn[`${prefix}--${key}`] = unref(others.value[key]);
108
+ });
109
+ }
110
+ return toReturn;
111
+ });
112
+ }
113
+ const __default__$9 = {
114
+ name: "VvIcon"
115
+ };
116
+ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
117
+ ...__default__$9,
118
+ props: /* @__PURE__ */ mergeDefaults({
119
+ name: {},
120
+ color: {},
121
+ width: {},
122
+ height: {},
123
+ provider: {},
124
+ prefix: {},
125
+ src: {},
126
+ horizontalFlip: { type: Boolean },
127
+ verticalFlip: { type: Boolean },
128
+ flip: {},
129
+ mode: {},
130
+ inline: { type: Boolean },
131
+ rotate: {},
132
+ onLoad: { type: Function },
133
+ svg: {},
134
+ modifiers: {}
135
+ }, VvIconPropsDefaults),
136
+ setup(__props) {
137
+ const props = __props;
138
+ const hasRotate = computed(() => {
139
+ if (typeof props.rotate === "string") {
140
+ return Number.parseFloat(props.rotate);
141
+ }
142
+ return props.rotate;
143
+ });
144
+ const show = ref(true);
145
+ const volver = useVolver();
146
+ const { modifiers } = toRefs(props);
147
+ const bemCssClasses = useModifiers("vv-icon", modifiers);
148
+ const provider = computed(() => {
149
+ return props.provider || (volver == null ? void 0 : volver.iconsProvider);
150
+ });
151
+ const icon = computed(() => {
152
+ const name = props.name ?? "";
153
+ const iconName = `@${provider.value}:${props.prefix}:${name}`;
154
+ if (iconExists(iconName)) {
155
+ return iconName;
156
+ }
157
+ const iconsCollection = volver == null ? void 0 : volver.iconsCollections.find(
158
+ (iconsCollection2) => {
159
+ const icon2 = `@${provider.value}:${iconsCollection2.prefix}:${name}`;
160
+ return iconExists(icon2);
161
+ }
162
+ );
163
+ if (iconsCollection) {
164
+ return `@${provider.value}:${iconsCollection.prefix}:${name}`;
165
+ }
166
+ return name;
167
+ });
168
+ function getSvgContent(svg) {
169
+ let dom;
170
+ if (typeof window === "undefined") {
171
+ const { JSDOM } = require("jsdom");
172
+ dom = new JSDOM().window;
173
+ }
174
+ const domParser = dom ? new dom.DOMParser() : new window.DOMParser();
175
+ const svgDomString = domParser.parseFromString(svg, "text/html");
176
+ const svgEl = svgDomString.querySelector("svg");
177
+ return svgEl;
178
+ }
179
+ function addIconFromSvg(svg) {
180
+ const svgContentEl = getSvgContent(svg);
181
+ const svgContent = (svgContentEl == null ? void 0 : svgContentEl.innerHTML.trim()) || "";
182
+ if (svgContentEl && svgContent) {
183
+ addIcon(`@${provider.value}:${props.prefix}:${props.name}`, {
184
+ body: svgContent,
185
+ // Set height and width from svg content
186
+ height: svgContentEl.viewBox.baseVal.height,
187
+ width: svgContentEl.viewBox.baseVal.width
188
+ });
189
+ }
190
+ }
191
+ if (volver) {
192
+ if (props.src && !iconExists(`@${provider.value}:${props.prefix}:${props.name}`)) {
193
+ show.value = false;
194
+ volver.fetchIcon(props.src).then((svg) => {
195
+ if (svg) {
196
+ addIconFromSvg(svg);
197
+ show.value = true;
198
+ }
199
+ }).catch((e) => {
200
+ throw new Error(`Error during fetch icon: ${e == null ? void 0 : e.message}`);
201
+ });
202
+ }
203
+ }
204
+ if (props.svg) {
205
+ addIconFromSvg(props.svg);
206
+ }
207
+ return (_ctx, _cache) => {
208
+ return unref(show) ? (openBlock(), createBlock(unref(Icon), mergeProps({
209
+ key: 0,
210
+ class: unref(bemCssClasses)
211
+ }, {
212
+ inline: _ctx.inline,
213
+ width: _ctx.width,
214
+ height: _ctx.height,
215
+ horizontalFlip: _ctx.horizontalFlip,
216
+ verticalFlip: _ctx.verticalFlip,
217
+ flip: _ctx.flip,
218
+ rotate: unref(hasRotate),
219
+ color: _ctx.color,
220
+ onLoad: _ctx.onLoad,
221
+ icon: unref(icon)
222
+ }), null, 16, ["class"])) : createCommentVNode("v-if", true);
223
+ };
224
+ }
225
+ });
83
226
  const LinkProps = {
84
227
  /**
85
228
  * The router-link/nuxt-link property, if it is defined the button is rendered as a ruouter-link or nuxt-link.
@@ -383,362 +526,66 @@ const DropdownProps = {
383
526
  const IdNameProps = {
384
527
  ...IdProps,
385
528
  /**
386
- * Input / Textarea name
387
- * Name of the form control. Submitted with the form as part of a name/value pair
388
- * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#name
389
- */
390
- name: { type: String, required: true }
391
- };
392
- const AutofocusProps = {
393
- /**
394
- * Global attribute autofocus
395
- * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autofocus
396
- */
397
- autofocus: {
398
- type: Boolean,
399
- default: false
400
- }
401
- };
402
- const AutocompleteProps = {
403
- /**
404
- * Global attribute autocomplete
405
- * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete
406
- */
407
- autocomplete: { type: String, default: "off" }
408
- };
409
- const ActionProps = {
410
- ...DisabledProps,
411
- ...LabelProps,
412
- ...PressedProps,
413
- ...ActiveProps,
414
- ...CurrentProps,
415
- ...LinkProps,
416
- /**
417
- * Button type
418
- */
419
- type: {
420
- type: String,
421
- default: ButtonType.button,
422
- validator: (value) => Object.values(ButtonType).includes(value)
423
- },
424
- /**
425
- * Button aria-label
426
- */
427
- ariaLabel: {
428
- type: String,
429
- default: void 0
430
- },
431
- /**
432
- * Default tag for the action
433
- */
434
- defaultTag: {
435
- type: String,
436
- default: ActionTag.button
437
- }
438
- };
439
- ({
440
- storageType: {
441
- type: String,
442
- default: StorageType.local,
443
- validator: (value) => Object.values(StorageType).includes(value)
444
- },
445
- storageKey: String
446
- });
447
- const VvComboboxEvents = [
448
- "update:modelValue",
449
- "update:search",
450
- /**
451
- * @deprecated change:search should not be used, use update:search instead
452
- */
453
- "change:search",
454
- "focus",
455
- "blur"
456
- ];
457
- const VvComboboxProps = {
458
- ...IdNameProps,
459
- ...TabindexProps,
460
- ...ValidProps,
461
- ...InvalidProps,
462
- ...HintProps,
463
- ...LoadingProps,
464
- ...DisabledProps,
465
- ...ReadonlyProps,
466
- ...ModifiersProps,
467
- ...OptionsProps,
468
- ...IconProps,
469
- ...FloatingLabelProps,
470
- ...UnselectableProps,
471
- ...DropdownProps,
472
- ...LabelProps,
473
- /**
474
- * Dropdown show / hide transition name
475
- */
476
- transitionName: {
477
- type: String,
478
- default: "vv-dropdown--mobile-fade-block"
479
- },
480
- /**
481
- * modelValue can be a string, number, boolean, object or array of string, number, boolean, object
482
- */
483
- modelValue: {
484
- type: [String, Number, Boolean, Object, Array],
485
- default: void 0
486
- },
487
- /**
488
- * Label for no search results
489
- */
490
- noResultsLabel: { type: String, default: "No results" },
491
- /**
492
- * Label for no options available
493
- */
494
- noOptionsLabel: { type: String, default: "No options available" },
495
- /**
496
- * Label for selected option hint
497
- */
498
- selectedHintLabel: { type: String, default: "Selected" },
499
- /**
500
- * Label for deselect action button
501
- */
502
- deselectActionLabel: { type: String, default: "Deselect" },
503
- /**
504
- * Label for select option hint
505
- */
506
- selectHintLabel: { type: String, default: "Press enter to select" },
507
- /**
508
- * Label for deselected option hint
509
- */
510
- deselectHintLabel: { type: String, default: "Press enter to remove" },
511
- /**
512
- * Label close button
513
- */
514
- closeLabel: { type: String, default: "Close" },
515
- /**
516
- * Select input placeholder
517
- */
518
- placeholder: String,
519
- /**
520
- * Use input text to search on options
521
- */
522
- searchable: Boolean,
523
- /**
524
- * Search function to filter options
525
- */
526
- searchFunction: {
527
- type: Function,
528
- default: void 0
529
- },
530
- /**
531
- * On searchable select is the input search placeholder
532
- */
533
- searchPlaceholder: {
534
- type: String,
535
- default: "Search..."
536
- },
537
- /**
538
- * The input search debounce time in ms
539
- */
540
- debounceSearch: {
541
- type: [Number, String],
542
- default: 0
543
- },
544
- /**
545
- * Manage modelValue as string[] or object[]
546
- */
547
- multiple: Boolean,
548
- /**
549
- * The max number of selected values
550
- */
551
- maxValues: [Number, String],
552
- /**
553
- * The select label separator visible to the user
554
- */
555
- separator: { type: String, default: ", " },
556
- /**
557
- * Show native select
558
- */
559
- native: Boolean,
560
- /**
561
- * Show badges
562
- */
563
- badges: Boolean,
564
- /**
565
- * Badge modifiers
566
- */
567
- badgeModifiers: {
568
- type: [String, Array],
569
- default: "action sm"
570
- },
571
- /**
572
- * Set dropdown width to the same as the trigger
573
- */
574
- triggerWidth: {
575
- ...DropdownProps.triggerWidth,
576
- default: true
577
- },
578
- /**
579
- * Dropdown modifiers
580
- */
581
- dropdownModifiers: {
582
- type: [String, Array],
583
- default: "mobile"
584
- },
585
- /**
586
- * Open dropdown on focus
587
- */
588
- autoOpen: {
589
- type: Boolean,
590
- default: false
591
- },
592
- /**
593
- * Keep open dropdown on single select
594
- */
595
- keepOpen: {
596
- type: Boolean,
597
- default: false
598
- }
599
- };
600
- const VvIconPropsDefaults = {
601
- prefix: "normal"
602
- /* normal */
603
- };
604
- function useVolver() {
605
- return inject(INJECTION_KEY_VOLVER);
606
- }
607
- function useModifiers(prefix, modifiers, others) {
608
- return computed(() => {
609
- const toReturn = {
610
- [prefix]: true
611
- };
612
- const modifiersArray = typeof (modifiers == null ? void 0 : modifiers.value) === "string" ? modifiers.value.split(" ") : modifiers == null ? void 0 : modifiers.value;
613
- if (modifiersArray) {
614
- if (Array.isArray(modifiersArray)) {
615
- modifiersArray.forEach((modifier) => {
616
- if (modifier) {
617
- toReturn[`${prefix}--${modifier}`] = true;
618
- }
619
- });
620
- }
621
- }
622
- if (others) {
623
- Object.keys(others.value).forEach((key) => {
624
- toReturn[`${prefix}--${key}`] = unref(others.value[key]);
625
- });
626
- }
627
- return toReturn;
628
- });
629
- }
630
- const __default__$9 = {
631
- name: "VvIcon"
632
- };
633
- const _sfc_main$9 = /* @__PURE__ */ defineComponent({
634
- ...__default__$9,
635
- props: /* @__PURE__ */ mergeDefaults({
636
- name: {},
637
- color: {},
638
- width: {},
639
- height: {},
640
- provider: {},
641
- prefix: {},
642
- src: {},
643
- horizontalFlip: { type: Boolean },
644
- verticalFlip: { type: Boolean },
645
- flip: {},
646
- mode: {},
647
- inline: { type: Boolean },
648
- rotate: {},
649
- onLoad: { type: Function },
650
- svg: {},
651
- modifiers: {}
652
- }, VvIconPropsDefaults),
653
- setup(__props) {
654
- const props = __props;
655
- const hasRotate = computed(() => {
656
- if (typeof props.rotate === "string") {
657
- return parseFloat(props.rotate);
658
- }
659
- return props.rotate;
660
- });
661
- const show = ref(true);
662
- const volver = useVolver();
663
- const { modifiers } = toRefs(props);
664
- const bemCssClasses = useModifiers("vv-icon", modifiers);
665
- const provider = computed(() => {
666
- return props.provider || (volver == null ? void 0 : volver.iconsProvider);
667
- });
668
- const icon = computed(() => {
669
- const name = props.name ?? "";
670
- const iconName = `@${provider.value}:${props.prefix}:${name}`;
671
- if (iconExists(iconName)) {
672
- return iconName;
673
- }
674
- const iconsCollection = volver == null ? void 0 : volver.iconsCollections.find(
675
- (iconsCollection2) => {
676
- const icon2 = `@${provider.value}:${iconsCollection2.prefix}:${name}`;
677
- return iconExists(icon2);
678
- }
679
- );
680
- if (iconsCollection) {
681
- return `@${provider.value}:${iconsCollection.prefix}:${name}`;
682
- }
683
- return name;
684
- });
685
- function getSvgContent(svg) {
686
- let dom;
687
- if (typeof window === "undefined") {
688
- const { JSDOM } = require("jsdom");
689
- dom = new JSDOM().window;
690
- }
691
- const domParser = dom ? new dom.DOMParser() : new window.DOMParser();
692
- const svgDomString = domParser.parseFromString(svg, "text/html");
693
- const svgEl = svgDomString.querySelector("svg");
694
- return svgEl;
695
- }
696
- function addIconFromSvg(svg) {
697
- const svgContentEl = getSvgContent(svg);
698
- const svgContent = (svgContentEl == null ? void 0 : svgContentEl.innerHTML.trim()) || "";
699
- if (svgContentEl && svgContent) {
700
- addIcon(`@${provider.value}:${props.prefix}:${props.name}`, {
701
- body: svgContent,
702
- // Set height and width from svg content
703
- height: svgContentEl.viewBox.baseVal.height,
704
- width: svgContentEl.viewBox.baseVal.width
705
- });
706
- }
707
- }
708
- if (volver) {
709
- if (props.src && !iconExists(`@${provider.value}:${props.prefix}:${props.name}`)) {
710
- show.value = false;
711
- volver.fetchIcon(props.src).then((svg) => {
712
- if (svg) {
713
- addIconFromSvg(svg);
714
- show.value = true;
715
- }
716
- }).catch((e) => {
717
- throw new Error(`Error during fetch icon: ${e == null ? void 0 : e.message}`);
718
- });
719
- }
720
- }
721
- if (props.svg) {
722
- addIconFromSvg(props.svg);
723
- }
724
- return (_ctx, _cache) => {
725
- return unref(show) ? (openBlock(), createBlock(unref(Icon), mergeProps({
726
- key: 0,
727
- class: unref(bemCssClasses)
728
- }, {
729
- inline: _ctx.inline,
730
- width: _ctx.width,
731
- height: _ctx.height,
732
- horizontalFlip: _ctx.horizontalFlip,
733
- verticalFlip: _ctx.verticalFlip,
734
- flip: _ctx.flip,
735
- rotate: unref(hasRotate),
736
- color: _ctx.color,
737
- onLoad: _ctx.onLoad,
738
- icon: unref(icon)
739
- }), null, 16, ["class"])) : createCommentVNode("v-if", true);
740
- };
529
+ * Input / Textarea name
530
+ * Name of the form control. Submitted with the form as part of a name/value pair
531
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#name
532
+ */
533
+ name: { type: String, required: true }
534
+ };
535
+ const AutofocusProps = {
536
+ /**
537
+ * Global attribute autofocus
538
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autofocus
539
+ */
540
+ autofocus: {
541
+ type: Boolean,
542
+ default: false
543
+ }
544
+ };
545
+ const AutocompleteProps = {
546
+ /**
547
+ * Global attribute autocomplete
548
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete
549
+ */
550
+ autocomplete: { type: String, default: "off" }
551
+ };
552
+ const ActionProps = {
553
+ ...DisabledProps,
554
+ ...LabelProps,
555
+ ...PressedProps,
556
+ ...ActiveProps,
557
+ ...CurrentProps,
558
+ ...LinkProps,
559
+ /**
560
+ * Button type
561
+ */
562
+ type: {
563
+ type: String,
564
+ default: ButtonType.button,
565
+ validator: (value) => Object.values(ButtonType).includes(value)
566
+ },
567
+ /**
568
+ * Button aria-label
569
+ */
570
+ ariaLabel: {
571
+ type: String,
572
+ default: void 0
573
+ },
574
+ /**
575
+ * Default tag for the action
576
+ */
577
+ defaultTag: {
578
+ type: String,
579
+ default: ActionTag.button
741
580
  }
581
+ };
582
+ ({
583
+ storageType: {
584
+ type: String,
585
+ default: StorageType.local,
586
+ validator: (value) => Object.values(StorageType).includes(value)
587
+ },
588
+ storageKey: String
742
589
  });
743
590
  const VvDropdownProps = {
744
591
  ...IdProps,
@@ -792,7 +639,9 @@ const VvDropdownOptionProps = {
792
639
  default: false
793
640
  }
794
641
  };
795
- const useUniqueId = (id) => computed(() => String((id == null ? void 0 : id.value) || uid()));
642
+ function useUniqueId(id) {
643
+ return computed(() => String((id == null ? void 0 : id.value) || uid()));
644
+ }
796
645
  function useProvideDropdownTrigger({
797
646
  reference,
798
647
  id,
@@ -852,6 +701,8 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
852
701
  props: VvDropdownProps,
853
702
  emits: [
854
703
  "update:modelValue",
704
+ "beforeEnter",
705
+ "afterLeave",
855
706
  "beforeExpand",
856
707
  "beforeCollapse",
857
708
  "afterExpand",
@@ -859,11 +710,11 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
859
710
  "before-enter",
860
711
  "after-leave",
861
712
  "enter",
862
- "after-enter",
863
- "enter-cancelled",
864
- "before-leave",
713
+ "afterEnter",
714
+ "enterCancelled",
715
+ "beforeLeave",
865
716
  "leave",
866
- "leave-cancelled"
717
+ "leaveCancelled"
867
718
  ],
868
719
  setup(__props, { expose: __expose, emit: __emit }) {
869
720
  const props = __props;
@@ -1022,18 +873,18 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
1022
873
  modelValue.value = newValue;
1023
874
  }
1024
875
  });
1025
- const show = () => {
876
+ function show() {
1026
877
  expanded.value = true;
1027
- };
1028
- const hide = () => {
878
+ }
879
+ function hide() {
1029
880
  expanded.value = false;
1030
- };
1031
- const toggle = () => {
881
+ }
882
+ function toggle() {
1032
883
  expanded.value = !expanded.value;
1033
- };
1034
- const init = (el) => {
884
+ }
885
+ function init(el) {
1035
886
  referenceEl.value = el;
1036
- };
887
+ }
1037
888
  __expose({
1038
889
  toggle,
1039
890
  show,
@@ -1101,7 +952,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
1101
952
  (el) => !el.hasAttribute("disabled") && !el.getAttribute("aria-hidden")
1102
953
  );
1103
954
  }
1104
- const focusNext = () => {
955
+ function focusNext() {
1105
956
  nextTick(() => {
1106
957
  if (focused.value) {
1107
958
  const focusableElements = getKeyboardFocusableElements(
@@ -1124,8 +975,8 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
1124
975
  }
1125
976
  }
1126
977
  });
1127
- };
1128
- const focusPrev = () => {
978
+ }
979
+ function focusPrev() {
1129
980
  nextTick(() => {
1130
981
  if (focused.value) {
1131
982
  const focusableElements = getKeyboardFocusableElements(
@@ -1148,7 +999,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
1148
999
  }
1149
1000
  }
1150
1001
  });
1151
- };
1002
+ }
1152
1003
  const hovered = useElementHover(floatingEl);
1153
1004
  const { itemRole } = useProvideDropdownItem({
1154
1005
  role,
@@ -1183,29 +1034,29 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
1183
1034
  const dropdownTransitionHandlers = {
1184
1035
  "before-enter": () => {
1185
1036
  emit(expanded.value ? "beforeExpand" : "beforeCollapse");
1186
- emit("before-enter");
1037
+ emit("beforeEnter");
1187
1038
  },
1188
1039
  "after-leave": () => {
1189
1040
  emit(expanded.value ? "afterExpand" : "afterCollapse");
1190
- emit("after-leave");
1041
+ emit("afterLeave");
1191
1042
  },
1192
- enter: () => {
1043
+ "enter": () => {
1193
1044
  emit("enter");
1194
1045
  },
1195
1046
  "after-enter": () => {
1196
- emit("after-enter");
1047
+ emit("afterEnter");
1197
1048
  },
1198
1049
  "enter-cancelled": () => {
1199
- emit("enter-cancelled");
1050
+ emit("enterCancelled");
1200
1051
  },
1201
1052
  "before-leave": () => {
1202
- emit("before-leave");
1053
+ emit("beforeLeave");
1203
1054
  },
1204
- leave: () => {
1055
+ "leave": () => {
1205
1056
  emit("leave");
1206
1057
  },
1207
1058
  "leave-cancelled": () => {
1208
- emit("leave-cancelled");
1059
+ emit("leaveCancelled");
1209
1060
  }
1210
1061
  };
1211
1062
  return (_ctx, _cache) => {
@@ -1419,32 +1270,36 @@ function deepEquals(a, b) {
1419
1270
  let i, length, key;
1420
1271
  if (arrA && arrB) {
1421
1272
  length = a.length;
1422
- if (length != b.length)
1273
+ if (length !== b.length)
1423
1274
  return false;
1424
- for (i = length; i-- !== 0; )
1275
+ for (i = length; i-- !== 0; ) {
1425
1276
  if (!deepEquals(a[i], b[i]))
1426
1277
  return false;
1278
+ }
1427
1279
  return true;
1428
1280
  }
1429
- if (arrA != arrB)
1281
+ if (arrA !== arrB)
1430
1282
  return false;
1431
- const dateA = a instanceof Date, dateB = b instanceof Date;
1432
- if (dateA != dateB)
1283
+ const dateA = a instanceof Date;
1284
+ const dateB = b instanceof Date;
1285
+ if (dateA !== dateB)
1433
1286
  return false;
1434
1287
  if (dateA && dateB)
1435
- return a.getTime() == b.getTime();
1436
- const regexpA = a instanceof RegExp, regexpB = b instanceof RegExp;
1437
- if (regexpA != regexpB)
1288
+ return a.getTime() === b.getTime();
1289
+ const regexpA = a instanceof RegExp;
1290
+ const regexpB = b instanceof RegExp;
1291
+ if (regexpA !== regexpB)
1438
1292
  return false;
1439
1293
  if (regexpA && regexpB)
1440
- return a.toString() == b.toString();
1294
+ return a.toString() === b.toString();
1441
1295
  const keys = Object.keys(a);
1442
1296
  length = keys.length;
1443
1297
  if (length !== Object.keys(b).length)
1444
1298
  return false;
1445
- for (i = length; i-- !== 0; )
1299
+ for (i = length; i-- !== 0; ) {
1446
1300
  if (!Object.prototype.hasOwnProperty.call(b, keys[i]))
1447
1301
  return false;
1302
+ }
1448
1303
  for (i = length; i-- !== 0; ) {
1449
1304
  key = keys[i];
1450
1305
  if (!deepEquals(a[key], b[key]))
@@ -1452,11 +1307,11 @@ function deepEquals(a, b) {
1452
1307
  }
1453
1308
  return true;
1454
1309
  }
1455
- return a !== a && b !== b;
1310
+ return Number.isNaN(a) && Number.isNaN(b);
1456
1311
  }
1457
1312
  function resolveFieldData(data, field) {
1458
1313
  if (data && Object.keys(data).length && field) {
1459
- if (field.indexOf(".") === -1) {
1314
+ if (!field.includes(".")) {
1460
1315
  return data[field];
1461
1316
  } else {
1462
1317
  const fields = field.split(".");
@@ -1885,28 +1740,28 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
1885
1740
  "vv-select",
1886
1741
  modifiers,
1887
1742
  computed(() => ({
1888
- valid: valid.value,
1889
- invalid: invalid.value,
1890
- loading: loading.value,
1891
- disabled: disabled.value,
1892
- readonly: readonly.value,
1743
+ "valid": valid.value,
1744
+ "invalid": invalid.value,
1745
+ "loading": loading.value,
1746
+ "disabled": disabled.value,
1747
+ "readonly": readonly.value,
1893
1748
  "icon-before": hasIconBefore.value !== void 0,
1894
1749
  "icon-after": hasIconAfter.value !== void 0,
1895
- dirty: isDirty.value,
1896
- focus: focused.value,
1897
- floating: floating.value,
1898
- multiple: multiple.value
1750
+ "dirty": isDirty.value,
1751
+ "focus": focused.value,
1752
+ "floating": floating.value,
1753
+ "multiple": multiple.value
1899
1754
  }))
1900
1755
  );
1901
1756
  const hasAttrs = computed(() => {
1902
1757
  return {
1903
- name: props.name,
1904
- tabindex: hasTabindex.value,
1905
- disabled: isDisabled.value,
1906
- required: props.required,
1907
- size: props.size,
1908
- autocomplete: props.autocomplete,
1909
- multiple: props.multiple,
1758
+ "name": props.name,
1759
+ "tabindex": hasTabindex.value,
1760
+ "disabled": isDisabled.value,
1761
+ "required": props.required,
1762
+ "size": props.size,
1763
+ "autocomplete": props.autocomplete,
1764
+ "multiple": props.multiple,
1910
1765
  "aria-invalid": isInvalid.value,
1911
1766
  "aria-describedby": hasHintLabelOrSlot.value ? hasHintId.value : void 0,
1912
1767
  "aria-errormessage": hasInvalidLabelOrSlot.value ? hasHintId.value : void 0
@@ -1934,11 +1789,11 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
1934
1789
  emit("update:modelValue", newValue);
1935
1790
  }
1936
1791
  });
1937
- const isGroup = (option) => {
1792
+ function isGroup(option) {
1938
1793
  if (typeof option === "string")
1939
1794
  return false;
1940
1795
  return option && option.options && option.options.length > 0;
1941
- };
1796
+ }
1942
1797
  return (_ctx, _cache) => {
1943
1798
  return openBlock(), createElementBlock(
1944
1799
  "div",
@@ -2184,7 +2039,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
2184
2039
  return toReturn;
2185
2040
  }
2186
2041
  });
2187
- const onClick = (e) => {
2042
+ function onClick(e) {
2188
2043
  var _a;
2189
2044
  if (props.disabled) {
2190
2045
  e.preventDefault();
@@ -2195,23 +2050,23 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
2195
2050
  return;
2196
2051
  }
2197
2052
  dropdownEventBus == null ? void 0 : dropdownEventBus.emit("click", e);
2198
- };
2199
- const onMouseover = (e) => {
2053
+ }
2054
+ function onMouseover(e) {
2200
2055
  var _a;
2201
2056
  if ((_a = instance == null ? void 0 : instance.vnode.props) == null ? void 0 : _a.onMouseover) {
2202
2057
  emit("mouseover", e);
2203
2058
  return;
2204
2059
  }
2205
2060
  dropdownEventBus == null ? void 0 : dropdownEventBus.emit("mouseover", e);
2206
- };
2207
- const onMouseleave = (e) => {
2061
+ }
2062
+ function onMouseleave(e) {
2208
2063
  var _a;
2209
2064
  if ((_a = instance == null ? void 0 : instance.vnode.props) == null ? void 0 : _a.onMouseleave) {
2210
2065
  emit("mouseleave", e);
2211
2066
  return;
2212
2067
  }
2213
2068
  dropdownEventBus == null ? void 0 : dropdownEventBus.emit("mouseleave", e);
2214
- };
2069
+ }
2215
2070
  return (_ctx, _cache) => {
2216
2071
  return openBlock(), createBlock(resolveDynamicComponent(unref(hasTag)), mergeProps(unref(hasProps), {
2217
2072
  ref_key: "element",
@@ -2387,9 +2242,9 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
2387
2242
  emits: VvButtonEvents,
2388
2243
  setup(__props, { expose: __expose, emit: __emit }) {
2389
2244
  const props = __props;
2245
+ const emit = __emit;
2390
2246
  const attrs = useAttrs();
2391
2247
  const slots = useSlots();
2392
- const emit = __emit;
2393
2248
  const {
2394
2249
  id,
2395
2250
  modifiers,
@@ -2422,10 +2277,10 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
2422
2277
  "vv-button",
2423
2278
  modifiers,
2424
2279
  computed(() => ({
2425
- reverse: [Side.right, Side.bottom].includes(
2280
+ "reverse": [Side.right, Side.bottom].includes(
2426
2281
  iconPosition.value
2427
2282
  ),
2428
- column: [Side.top, Side.bottom].includes(
2283
+ "column": [Side.top, Side.bottom].includes(
2429
2284
  iconPosition.value
2430
2285
  ),
2431
2286
  "icon-only": Boolean(
@@ -2445,7 +2300,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
2445
2300
  onClick
2446
2301
  };
2447
2302
  });
2448
- const onClick = () => {
2303
+ function onClick() {
2449
2304
  if (toggle.value) {
2450
2305
  if (Array.isArray(modelValue.value)) {
2451
2306
  if (contains(toggleValue.value, modelValue.value)) {
@@ -2465,7 +2320,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
2465
2320
  }
2466
2321
  modelValue.value = toggleValue.value;
2467
2322
  }
2468
- };
2323
+ }
2469
2324
  return (_ctx, _cache) => {
2470
2325
  return openBlock(), createBlock(_sfc_main$2, mergeProps({
2471
2326
  ...unref(attrs),
@@ -2534,6 +2389,159 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
2534
2389
  };
2535
2390
  }
2536
2391
  });
2392
+ const VvComboboxEvents = [
2393
+ "update:modelValue",
2394
+ "update:search",
2395
+ /**
2396
+ * @deprecated change:search should not be used, use update:search instead
2397
+ */
2398
+ "change:search",
2399
+ "focus",
2400
+ "blur"
2401
+ ];
2402
+ const VvComboboxProps = {
2403
+ ...IdNameProps,
2404
+ ...TabindexProps,
2405
+ ...ValidProps,
2406
+ ...InvalidProps,
2407
+ ...HintProps,
2408
+ ...LoadingProps,
2409
+ ...DisabledProps,
2410
+ ...ReadonlyProps,
2411
+ ...ModifiersProps,
2412
+ ...OptionsProps,
2413
+ ...IconProps,
2414
+ ...FloatingLabelProps,
2415
+ ...UnselectableProps,
2416
+ ...DropdownProps,
2417
+ ...LabelProps,
2418
+ /**
2419
+ * Dropdown show / hide transition name
2420
+ */
2421
+ transitionName: {
2422
+ type: String,
2423
+ default: "vv-dropdown--mobile-fade-block"
2424
+ },
2425
+ /**
2426
+ * modelValue can be a string, number, boolean, object or array of string, number, boolean, object
2427
+ */
2428
+ modelValue: {
2429
+ type: [String, Number, Boolean, Object, Array],
2430
+ default: void 0
2431
+ },
2432
+ /**
2433
+ * Label for no search results
2434
+ */
2435
+ noResultsLabel: { type: String, default: "No results" },
2436
+ /**
2437
+ * Label for no options available
2438
+ */
2439
+ noOptionsLabel: { type: String, default: "No options available" },
2440
+ /**
2441
+ * Label for selected option hint
2442
+ */
2443
+ selectedHintLabel: { type: String, default: "Selected" },
2444
+ /**
2445
+ * Label for deselect action button
2446
+ */
2447
+ deselectActionLabel: { type: String, default: "Deselect" },
2448
+ /**
2449
+ * Label for select option hint
2450
+ */
2451
+ selectHintLabel: { type: String, default: "Press enter to select" },
2452
+ /**
2453
+ * Label for deselected option hint
2454
+ */
2455
+ deselectHintLabel: { type: String, default: "Press enter to remove" },
2456
+ /**
2457
+ * Label close button
2458
+ */
2459
+ closeLabel: { type: String, default: "Close" },
2460
+ /**
2461
+ * Select input placeholder
2462
+ */
2463
+ placeholder: String,
2464
+ /**
2465
+ * Use input text to search on options
2466
+ */
2467
+ searchable: Boolean,
2468
+ /**
2469
+ * Search function to filter options
2470
+ */
2471
+ searchFunction: {
2472
+ type: Function,
2473
+ default: void 0
2474
+ },
2475
+ /**
2476
+ * On searchable select is the input search placeholder
2477
+ */
2478
+ searchPlaceholder: {
2479
+ type: String,
2480
+ default: "Search..."
2481
+ },
2482
+ /**
2483
+ * The input search debounce time in ms
2484
+ */
2485
+ debounceSearch: {
2486
+ type: [Number, String],
2487
+ default: 0
2488
+ },
2489
+ /**
2490
+ * Manage modelValue as string[] or object[]
2491
+ */
2492
+ multiple: Boolean,
2493
+ /**
2494
+ * The max number of selected values
2495
+ */
2496
+ maxValues: [Number, String],
2497
+ /**
2498
+ * The select label separator visible to the user
2499
+ */
2500
+ separator: { type: String, default: ", " },
2501
+ /**
2502
+ * Show native select
2503
+ */
2504
+ native: Boolean,
2505
+ /**
2506
+ * Show badges
2507
+ */
2508
+ badges: Boolean,
2509
+ /**
2510
+ * Badge modifiers
2511
+ */
2512
+ badgeModifiers: {
2513
+ type: [String, Array],
2514
+ default: "action sm"
2515
+ },
2516
+ /**
2517
+ * Set dropdown width to the same as the trigger
2518
+ */
2519
+ triggerWidth: {
2520
+ ...DropdownProps.triggerWidth,
2521
+ default: true
2522
+ },
2523
+ /**
2524
+ * Dropdown modifiers
2525
+ */
2526
+ dropdownModifiers: {
2527
+ type: [String, Array],
2528
+ default: "mobile"
2529
+ },
2530
+ /**
2531
+ * Open dropdown on focus
2532
+ */
2533
+ autoOpen: {
2534
+ type: Boolean,
2535
+ default: false
2536
+ },
2537
+ /**
2538
+ * Keep open dropdown on single select
2539
+ */
2540
+ keepOpen: {
2541
+ type: Boolean,
2542
+ default: false
2543
+ }
2544
+ };
2537
2545
  const _hoisted_1 = ["id"];
2538
2546
  const _hoisted_2 = ["id", "for"];
2539
2547
  const _hoisted_3 = ["id", "aria-controls", "placeholder"];
@@ -2574,12 +2582,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2574
2582
  VvComboboxProps,
2575
2583
  props
2576
2584
  );
2577
- const isGroup = (option) => {
2585
+ function isGroup(option) {
2578
2586
  if (typeof option === "string") {
2579
2587
  return false;
2580
2588
  }
2581
2589
  return option.options && option.options.length > 0;
2582
- };
2590
+ }
2583
2591
  const {
2584
2592
  HintSlot,
2585
2593
  hasHintLabelOrSlot,
@@ -2618,22 +2626,22 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2618
2626
  emit("change:search", debouncedSearchText.value);
2619
2627
  });
2620
2628
  const expanded = ref(false);
2621
- const toggleExpanded = () => {
2629
+ function toggleExpanded() {
2622
2630
  if (props.disabled || props.readonly)
2623
2631
  return;
2624
2632
  expanded.value = !expanded.value;
2625
- };
2626
- const expand = () => {
2633
+ }
2634
+ function expand() {
2627
2635
  if (props.disabled || props.readonly || expanded.value)
2628
2636
  return;
2629
2637
  expanded.value = true;
2630
- };
2631
- const collapse = () => {
2638
+ }
2639
+ function collapse() {
2632
2640
  if (props.disabled || props.readonly || !expanded.value)
2633
2641
  return;
2634
2642
  expanded.value = false;
2635
- };
2636
- const onAfterExpand = () => {
2643
+ }
2644
+ function onAfterExpand() {
2637
2645
  if (propsDefaults.value.searchable) {
2638
2646
  if (inputSearchEl.value) {
2639
2647
  inputSearchEl.value.focus({
@@ -2641,12 +2649,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2641
2649
  });
2642
2650
  }
2643
2651
  }
2644
- };
2645
- const onAfterCollapse = () => {
2652
+ }
2653
+ function onAfterCollapse() {
2646
2654
  if (propsDefaults.value.searchable) {
2647
2655
  searchText.value = "";
2648
2656
  }
2649
- };
2657
+ }
2650
2658
  const {
2651
2659
  id,
2652
2660
  icon,
@@ -2676,17 +2684,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2676
2684
  "vv-select",
2677
2685
  modifiers,
2678
2686
  computed(() => ({
2679
- disabled: disabled.value,
2680
- loading: isLoading.value,
2681
- readonly: readonly.value,
2687
+ "disabled": disabled.value,
2688
+ "loading": isLoading.value,
2689
+ "readonly": readonly.value,
2682
2690
  "icon-before": hasIconBefore.value !== void 0,
2683
2691
  "icon-after": hasIconAfter.value !== void 0,
2684
- valid: valid.value,
2685
- invalid: invalid.value,
2686
- dirty: isDirty.value,
2687
- focus: focused.value || focusedWithin.value || expanded.value,
2688
- floating: floating.value,
2689
- badges: props.badges
2692
+ "valid": valid.value,
2693
+ "invalid": invalid.value,
2694
+ "dirty": isDirty.value,
2695
+ "focus": focused.value || focusedWithin.value || expanded.value,
2696
+ "floating": floating.value,
2697
+ "badges": props.badges
2690
2698
  }))
2691
2699
  );
2692
2700
  const {
@@ -2735,10 +2743,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2735
2743
  const hasValue = computed(() => {
2736
2744
  return selectedOptions.value.map((option) => getOptionLabel(option)).join(props.separator);
2737
2745
  });
2738
- const onClickInput = () => {
2746
+ function onClickInput() {
2739
2747
  props.autoOpen ? expand() : toggleExpanded();
2740
- };
2741
- const onInput = (option) => {
2748
+ }
2749
+ function onInput(option) {
2742
2750
  var _a;
2743
2751
  if (props.disabled || props.readonly) {
2744
2752
  return;
@@ -2772,7 +2780,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2772
2780
  }
2773
2781
  }
2774
2782
  emit("update:modelValue", toReturn);
2775
- };
2783
+ }
2776
2784
  const selectProps = computed(() => ({
2777
2785
  id: hasId.value,
2778
2786
  name: props.name,