@volverjs/ui-vue 0.0.10-beta.4 → 0.0.10-beta.40

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 (478) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +146 -49
  3. package/auto-imports.d.ts +7 -2
  4. package/bin/icons.cjs +1 -1
  5. package/bin/icons.js +27 -20
  6. package/dist/Volver.d.ts +11 -11
  7. package/dist/components/VvAccordion/VvAccordion.es.js +190 -101
  8. package/dist/components/VvAccordion/VvAccordion.umd.js +1 -1
  9. package/dist/components/VvAccordion/VvAccordion.vue.d.ts +30 -8
  10. package/dist/components/VvAccordion/index.d.ts +8 -9
  11. package/dist/components/VvAccordionGroup/VvAccordionGroup.es.js +450 -170
  12. package/dist/components/VvAccordionGroup/VvAccordionGroup.umd.js +1 -1
  13. package/dist/components/VvAccordionGroup/VvAccordionGroup.vue.d.ts +58 -13
  14. package/dist/components/VvAccordionGroup/index.d.ts +14 -6
  15. package/dist/components/VvAction/VvAction.es.js +84 -33
  16. package/dist/components/VvAction/VvAction.umd.js +1 -1
  17. package/dist/components/VvAction/VvAction.vue.d.ts +57 -22
  18. package/dist/components/VvAction/index.d.ts +25 -9
  19. package/dist/components/VvAlert/VvAlert.es.js +228 -193
  20. package/dist/components/VvAlert/VvAlert.umd.js +1 -1
  21. package/dist/components/VvAlert/VvAlert.vue.d.ts +24 -14
  22. package/dist/components/VvAlert/index.d.ts +17 -9
  23. package/dist/components/VvAlertGroup/VvAlertGroup.es.js +549 -485
  24. package/dist/components/VvAlertGroup/VvAlertGroup.umd.js +1 -1
  25. package/dist/components/VvAlertGroup/VvAlertGroup.vue.d.ts +16 -9
  26. package/dist/components/VvAlertGroup/index.d.ts +7 -15
  27. package/dist/components/VvAvatar/VvAvatar.es.js +65 -22
  28. package/dist/components/VvAvatar/VvAvatar.umd.js +1 -1
  29. package/dist/components/VvAvatar/VvAvatar.vue.d.ts +12 -4
  30. package/dist/components/VvAvatar/index.d.ts +4 -1
  31. package/dist/components/VvAvatarGroup/VvAvatarGroup.es.js +128 -49
  32. package/dist/components/VvAvatarGroup/VvAvatarGroup.umd.js +1 -1
  33. package/dist/components/VvAvatarGroup/VvAvatarGroup.vue.d.ts +10 -3
  34. package/dist/components/VvAvatarGroup/index.d.ts +4 -1
  35. package/dist/components/VvBadge/VvBadge.es.js +77 -28
  36. package/dist/components/VvBadge/VvBadge.umd.js +1 -1
  37. package/dist/components/VvBadge/VvBadge.vue.d.ts +12 -4
  38. package/dist/components/VvBadge/index.d.ts +4 -1
  39. package/dist/components/VvBreadcrumb/VvBreadcrumb.es.js +276 -60
  40. package/dist/components/VvBreadcrumb/VvBreadcrumb.umd.js +1 -1
  41. package/dist/components/VvBreadcrumb/VvBreadcrumb.vue.d.ts +27 -7
  42. package/dist/components/VvBreadcrumb/index.d.ts +6 -10
  43. package/dist/components/VvButton/VvButton.es.js +307 -262
  44. package/dist/components/VvButton/VvButton.umd.js +1 -1
  45. package/dist/components/VvButton/VvButton.vue.d.ts +94 -40
  46. package/dist/components/VvButton/index.d.ts +51 -29
  47. package/dist/components/VvButtonGroup/VvButtonGroup.es.js +95 -40
  48. package/dist/components/VvButtonGroup/VvButtonGroup.umd.js +1 -1
  49. package/dist/components/VvButtonGroup/VvButtonGroup.vue.d.ts +31 -11
  50. package/dist/components/VvButtonGroup/index.d.ts +11 -2
  51. package/dist/components/VvCard/VvCard.es.js +86 -36
  52. package/dist/components/VvCard/VvCard.umd.js +1 -1
  53. package/dist/components/VvCard/VvCard.vue.d.ts +12 -4
  54. package/dist/components/VvCard/index.d.ts +4 -1
  55. package/dist/components/VvCheckbox/VvCheckbox.es.js +315 -251
  56. package/dist/components/VvCheckbox/VvCheckbox.umd.js +1 -1
  57. package/dist/components/VvCheckbox/VvCheckbox.vue.d.ts +106 -34
  58. package/dist/components/VvCheckbox/index.d.ts +47 -14
  59. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.es.js +226 -126
  60. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.umd.js +1 -1
  61. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.vue.d.ts +101 -30
  62. package/dist/components/VvCheckboxGroup/index.d.ts +45 -12
  63. package/dist/components/VvCombobox/VvCombobox.es.js +1215 -955
  64. package/dist/components/VvCombobox/VvCombobox.umd.js +1 -1
  65. package/dist/components/VvCombobox/VvCombobox.vue.d.ts +600 -680
  66. package/dist/components/VvCombobox/index.d.ts +454 -24
  67. package/dist/components/VvDialog/VvDialog.es.js +180 -176
  68. package/dist/components/VvDialog/VvDialog.umd.js +1 -1
  69. package/dist/components/VvDialog/VvDialog.vue.d.ts +13 -4
  70. package/dist/components/VvDialog/index.d.ts +5 -0
  71. package/dist/components/VvDropdown/VvDropdown.es.js +165 -94
  72. package/dist/components/VvDropdown/VvDropdown.umd.js +1 -1
  73. package/dist/components/VvDropdown/VvDropdown.vue.d.ts +111 -81
  74. package/dist/components/VvDropdown/VvDropdownAction.vue.d.ts +66 -25
  75. package/dist/components/VvDropdown/VvDropdownItem.vue.d.ts +13 -1
  76. package/dist/components/VvDropdown/VvDropdownOptgroup.vue.d.ts +12 -4
  77. package/dist/components/VvDropdown/VvDropdownOption.vue.d.ts +35 -7
  78. package/dist/components/VvDropdown/index.d.ts +52 -10
  79. package/dist/components/VvDropdownAction/VvDropdownAction.es.js +163 -53
  80. package/dist/components/VvDropdownAction/VvDropdownAction.umd.js +1 -1
  81. package/dist/components/VvDropdownItem/VvDropdownItem.es.js +335 -8
  82. package/dist/components/VvDropdownItem/VvDropdownItem.umd.js +1 -1
  83. package/dist/components/VvDropdownOptgroup/VvDropdownOptgroup.es.js +63 -20
  84. package/dist/components/VvDropdownOptgroup/VvDropdownOptgroup.umd.js +1 -1
  85. package/dist/components/VvDropdownOption/VvDropdownOption.es.js +188 -80
  86. package/dist/components/VvDropdownOption/VvDropdownOption.umd.js +1 -1
  87. package/dist/components/VvIcon/VvIcon.es.js +24 -97
  88. package/dist/components/VvIcon/VvIcon.umd.js +1 -1
  89. package/dist/components/VvIcon/VvIcon.vue.d.ts +23 -66
  90. package/dist/components/VvIcon/index.d.ts +33 -48
  91. package/dist/components/VvInputFile/VvInputFile.es.js +1789 -0
  92. package/dist/components/VvInputFile/VvInputFile.umd.js +1 -0
  93. package/dist/components/VvInputFile/VvInputFile.vue.d.ts +391 -0
  94. package/dist/components/VvInputFile/index.d.ts +210 -0
  95. package/dist/components/VvInputText/VvInputClearAction.d.ts +7 -5
  96. package/dist/components/VvInputText/VvInputPasswordAction.d.ts +10 -8
  97. package/dist/components/VvInputText/VvInputStepAction.d.ts +2 -2
  98. package/dist/components/VvInputText/VvInputText.es.js +1489 -563
  99. package/dist/components/VvInputText/VvInputText.umd.js +1 -1
  100. package/dist/components/VvInputText/VvInputText.vue.d.ts +207 -57
  101. package/dist/components/VvInputText/index.d.ts +105 -30
  102. package/dist/components/VvNav/VvNav.es.js +160 -75
  103. package/dist/components/VvNav/VvNav.umd.js +1 -1
  104. package/dist/components/VvNav/VvNav.vue.d.ts +32 -9
  105. package/dist/components/VvNav/VvNavItem.vue.d.ts +1 -1
  106. package/dist/components/VvNav/VvNavSeparator.vue.d.ts +1 -1
  107. package/dist/components/VvNav/index.d.ts +5 -2
  108. package/dist/components/VvNavItem/VvNavItem.es.js +100 -39
  109. package/dist/components/VvNavItem/VvNavItem.umd.js +1 -1
  110. package/dist/components/VvProgress/VvProgress.es.js +73 -27
  111. package/dist/components/VvProgress/VvProgress.umd.js +1 -1
  112. package/dist/components/VvProgress/VvProgress.vue.d.ts +10 -3
  113. package/dist/components/VvProgress/index.d.ts +4 -1
  114. package/dist/components/VvRadio/VvRadio.es.js +313 -250
  115. package/dist/components/VvRadio/VvRadio.umd.js +1 -1
  116. package/dist/components/VvRadio/VvRadio.vue.d.ts +103 -31
  117. package/dist/components/VvRadio/index.d.ts +50 -17
  118. package/dist/components/VvRadioGroup/VvRadioGroup.es.js +224 -125
  119. package/dist/components/VvRadioGroup/VvRadioGroup.umd.js +1 -1
  120. package/dist/components/VvRadioGroup/VvRadioGroup.vue.d.ts +101 -30
  121. package/dist/components/VvRadioGroup/index.d.ts +45 -12
  122. package/dist/components/VvSelect/VvSelect.es.js +301 -267
  123. package/dist/components/VvSelect/VvSelect.umd.js +1 -1
  124. package/dist/components/VvSelect/VvSelect.vue.d.ts +229 -203
  125. package/dist/components/VvSelect/index.d.ts +181 -15
  126. package/dist/components/VvTab/VvTab.es.js +222 -97
  127. package/dist/components/VvTab/VvTab.umd.js +1 -1
  128. package/dist/components/VvTab/VvTab.vue.d.ts +31 -7
  129. package/dist/components/VvTab/index.d.ts +4 -1
  130. package/dist/components/VvTextarea/VvTextarea.es.js +258 -248
  131. package/dist/components/VvTextarea/VvTextarea.umd.js +1 -1
  132. package/dist/components/VvTextarea/VvTextarea.vue.d.ts +156 -49
  133. package/dist/components/VvTextarea/index.d.ts +68 -19
  134. package/dist/components/VvTooltip/VvTooltip.es.js +83 -30
  135. package/dist/components/VvTooltip/VvTooltip.umd.js +1 -1
  136. package/dist/components/VvTooltip/VvTooltip.vue.d.ts +13 -6
  137. package/dist/components/VvTooltip/index.d.ts +5 -2
  138. package/dist/components/common/HintSlot.d.ts +4 -5
  139. package/dist/components/index.d.ts +10 -0
  140. package/dist/components/index.es.js +4241 -2261
  141. package/dist/components/index.umd.js +1 -1
  142. package/dist/composables/alert/useAlert.d.ts +101 -6
  143. package/dist/composables/alert/useInjectAlert.d.ts +1 -6
  144. package/dist/composables/dropdown/useInjectDropdown.d.ts +3 -23
  145. package/dist/composables/dropdown/useProvideDropdown.d.ts +3 -4
  146. package/dist/composables/group/useInjectedGroupState.d.ts +4 -5
  147. package/dist/composables/group/useProvideGroupState.d.ts +3 -3
  148. package/dist/composables/index.d.ts +1 -0
  149. package/dist/composables/index.es.js +94 -5
  150. package/dist/composables/index.umd.js +1 -1
  151. package/dist/composables/useBlurhash.d.ts +7 -0
  152. package/dist/composables/useComponentFocus.d.ts +1 -1
  153. package/dist/composables/useComponentIcon.d.ts +9 -8
  154. package/dist/composables/useOptions.d.ts +4 -4
  155. package/dist/composables/usePersistence.d.ts +3 -0
  156. package/dist/composables/useUniqueId.d.ts +1 -1
  157. package/dist/composables/useVolver.d.ts +1 -1
  158. package/dist/constants.d.ts +34 -32
  159. package/dist/directives/index.d.ts +3 -5
  160. package/dist/directives/index.es.js +104 -45
  161. package/dist/directives/index.umd.js +1 -1
  162. package/dist/directives/v-contextmenu.es.js +1 -1
  163. package/dist/directives/v-contextmenu.umd.js +1 -1
  164. package/dist/directives/v-tooltip.es.js +101 -39
  165. package/dist/directives/v-tooltip.umd.js +1 -1
  166. package/dist/icons.es.js +267 -267
  167. package/dist/icons.umd.js +1 -1
  168. package/dist/index.d.ts +3 -1
  169. package/dist/index.es.js +92 -18
  170. package/dist/index.umd.js +1 -1
  171. package/dist/props/index.d.ts +272 -81
  172. package/dist/resolvers/unplugin.d.ts +6 -1
  173. package/dist/resolvers/unplugin.es.js +87 -10
  174. package/dist/resolvers/unplugin.umd.js +1 -1
  175. package/dist/stories/Accordion/Accordion.settings.d.ts +2 -57
  176. package/dist/stories/AccordionGroup/AccordionGroup.settings.d.ts +2 -66
  177. package/dist/stories/AccordionGroup/AccordionGroup.stories.d.ts +2 -127
  178. package/dist/stories/AccordionGroup/AccordionGroupSlots.stories.d.ts +1437 -495
  179. package/dist/stories/Alert/Alert.settings.d.ts +2 -109
  180. package/dist/stories/Alert/AlertModifiers.stories.d.ts +1 -1
  181. package/dist/stories/Alert/AlertSlots.stories.d.ts +1 -1
  182. package/dist/stories/AlertGroup/AlertGroup.settings.d.ts +2 -85
  183. package/dist/stories/AlertGroup/AlertGroupPosition.stories.d.ts +1 -1
  184. package/dist/stories/AlertGroup/AlertGroupSlots.stories.d.ts +1 -1
  185. package/dist/stories/AlertGroup/AlertGroupWithComposable.stories.d.ts +2 -2
  186. package/dist/stories/AvatarGroup/AvatarGroup.settings.d.ts +2 -38
  187. package/dist/stories/Badge/Badge.settings.d.ts +2 -26
  188. package/dist/stories/Badge/Badge.test.d.ts +1 -1
  189. package/dist/stories/Blurhash/BlurhashComposable.stories.d.ts +4 -0
  190. package/dist/stories/Breadcrumb/Breadcrumb.settings.d.ts +2 -18
  191. package/dist/stories/Breadcrumb/Breadcrumb.test.d.ts +1 -1
  192. package/dist/stories/Button/Button.settings.d.ts +2 -194
  193. package/dist/stories/ButtonGroup/ButtonGroup.settings.d.ts +2 -40
  194. package/dist/stories/Card/Card.settings.d.ts +2 -63
  195. package/dist/stories/Checkbox/Checkbox.settings.d.ts +2 -132
  196. package/dist/stories/CheckboxGroup/CheckboxGroup.settings.d.ts +1 -141
  197. package/dist/stories/Combobox/Combobox.settings.d.ts +2 -609
  198. package/dist/stories/Dialog/Dialog.settings.d.ts +2 -47
  199. package/dist/stories/Dialog/DialogModifiers.stories.d.ts +8 -0
  200. package/dist/stories/Dropdown/Dropdown.settings.d.ts +2 -205
  201. package/dist/stories/Icon/Icon.settings.d.ts +3 -68
  202. package/dist/stories/InputFile/InputFile.settings.d.ts +6 -0
  203. package/dist/stories/InputFile/InputFile.stories.d.ts +12 -0
  204. package/dist/stories/InputFile/InputFileDropArea.stories.d.ts +9 -0
  205. package/dist/stories/InputFile/InputFileIconPosition.stories.d.ts +8 -0
  206. package/dist/stories/InputFile/InputFileSlots.stories.d.ts +7 -0
  207. package/dist/stories/InputText/InputText.settings.d.ts +2 -438
  208. package/dist/stories/Nav/Nav.settings.d.ts +2 -10
  209. package/dist/stories/Progress/Progress.settings.d.ts +2 -27
  210. package/dist/stories/Radio/Radio.settings.d.ts +1 -110
  211. package/dist/stories/RadioGroup/RadioGroup.settings.d.ts +1 -141
  212. package/dist/stories/Select/Select.settings.d.ts +2 -246
  213. package/dist/stories/Tab/Tab.settings.d.ts +2 -15
  214. package/dist/stories/Textarea/Textarea.settings.d.ts +2 -287
  215. package/dist/stories/argTypes.d.ts +27 -866
  216. package/dist/test/expect.d.ts +1 -1
  217. package/dist/test/options.d.ts +1 -1
  218. package/dist/test/sleep.d.ts +1 -1
  219. package/dist/types/alert.d.ts +9 -7
  220. package/dist/types/blurhash.d.ts +12 -0
  221. package/dist/types/generic.d.ts +1 -2
  222. package/dist/types/group.d.ts +37 -15
  223. package/dist/types/index.d.ts +7 -0
  224. package/dist/types/input-file.d.ts +16 -0
  225. package/dist/types/nav.d.ts +2 -2
  226. package/dist/utils/ObjectUtilities.d.ts +7 -8
  227. package/dist/workers/blurhash.d.ts +1 -0
  228. package/package.json +239 -246
  229. package/src/Volver.ts +245 -234
  230. package/src/assets/icons/detailed.json +1 -1
  231. package/src/assets/icons/normal.json +1 -1
  232. package/src/assets/icons/simple.json +1 -1
  233. package/src/components/VvAccordion/VvAccordion.vue +163 -100
  234. package/src/components/VvAccordion/index.ts +64 -79
  235. package/src/components/VvAccordionGroup/VvAccordionGroup.vue +223 -105
  236. package/src/components/VvAccordionGroup/index.ts +42 -42
  237. package/src/components/VvAction/VvAction.vue +144 -130
  238. package/src/components/VvAlert/VvAlert.vue +72 -70
  239. package/src/components/VvAlert/index.ts +149 -147
  240. package/src/components/VvAlertGroup/VvAlertGroup.vue +57 -56
  241. package/src/components/VvAlertGroup/index.ts +101 -117
  242. package/src/components/VvAvatar/VvAvatar.vue +20 -14
  243. package/src/components/VvAvatar/index.ts +5 -5
  244. package/src/components/VvAvatarGroup/VvAvatarGroup.vue +58 -53
  245. package/src/components/VvAvatarGroup/index.ts +21 -21
  246. package/src/components/VvBadge/VvBadge.vue +15 -14
  247. package/src/components/VvBadge/index.ts +2 -2
  248. package/src/components/VvBreadcrumb/VvBreadcrumb.vue +50 -48
  249. package/src/components/VvBreadcrumb/index.ts +3 -9
  250. package/src/components/VvButton/VvButton.vue +163 -152
  251. package/src/components/VvButton/index.ts +103 -110
  252. package/src/components/VvButtonGroup/VvButtonGroup.vue +72 -64
  253. package/src/components/VvButtonGroup/index.ts +22 -21
  254. package/src/components/VvCard/VvCard.vue +30 -30
  255. package/src/components/VvCard/index.ts +2 -2
  256. package/src/components/VvCheckbox/VvCheckbox.vue +185 -183
  257. package/src/components/VvCheckbox/index.ts +44 -44
  258. package/src/components/VvCheckboxGroup/VvCheckboxGroup.vue +88 -87
  259. package/src/components/VvCombobox/VvCombobox.vue +631 -619
  260. package/src/components/VvCombobox/index.ts +189 -164
  261. package/src/components/VvDialog/VvDialog.vue +141 -129
  262. package/src/components/VvDialog/index.ts +38 -36
  263. package/src/components/VvDropdown/VvDropdown.vue +466 -445
  264. package/src/components/VvDropdown/VvDropdownAction.vue +37 -39
  265. package/src/components/VvDropdown/VvDropdownItem.vue +30 -26
  266. package/src/components/VvDropdown/VvDropdownOptgroup.vue +13 -12
  267. package/src/components/VvDropdown/VvDropdownOption.vue +47 -64
  268. package/src/components/VvDropdown/index.ts +61 -27
  269. package/src/components/VvIcon/README.md +1 -1
  270. package/src/components/VvIcon/VvIcon.vue +133 -133
  271. package/src/components/VvIcon/index.ts +84 -97
  272. package/src/components/VvInputFile/VvInputFile.vue +402 -0
  273. package/src/components/VvInputFile/index.ts +141 -0
  274. package/src/components/VvInputText/VvInputClearAction.ts +51 -47
  275. package/src/components/VvInputText/VvInputPasswordAction.ts +66 -62
  276. package/src/components/VvInputText/VvInputStepAction.ts +43 -43
  277. package/src/components/VvInputText/VvInputText.vue +638 -516
  278. package/src/components/VvInputText/VvInputTextActions.ts +86 -86
  279. package/src/components/VvInputText/index.ts +200 -185
  280. package/src/components/VvNav/VvNav.vue +40 -36
  281. package/src/components/VvNav/VvNavItem.vue +12 -12
  282. package/src/components/VvNav/VvNavSeparator.vue +6 -6
  283. package/src/components/VvNav/index.ts +2 -2
  284. package/src/components/VvProgress/VvProgress.vue +27 -27
  285. package/src/components/VvProgress/index.ts +28 -28
  286. package/src/components/VvRadio/VvRadio.vue +115 -112
  287. package/src/components/VvRadio/index.ts +28 -28
  288. package/src/components/VvRadioGroup/VvRadioGroup.vue +91 -90
  289. package/src/components/VvSelect/VvSelect.vue +242 -241
  290. package/src/components/VvSelect/index.ts +81 -63
  291. package/src/components/VvTab/VvTab.vue +79 -69
  292. package/src/components/VvTab/index.ts +12 -12
  293. package/src/components/VvTextarea/VvTextarea.vue +218 -219
  294. package/src/components/VvTextarea/index.ts +35 -35
  295. package/src/components/VvTooltip/VvTooltip.vue +22 -16
  296. package/src/components/VvTooltip/index.ts +12 -12
  297. package/src/components/common/HintSlot.ts +149 -150
  298. package/src/components/index.ts +10 -0
  299. package/src/composables/alert/useAlert.ts +76 -73
  300. package/src/composables/alert/useInjectAlert.ts +1 -1
  301. package/src/composables/alert/useProvideAlert.ts +10 -10
  302. package/src/composables/dropdown/useInjectDropdown.ts +6 -6
  303. package/src/composables/dropdown/useProvideDropdown.ts +63 -63
  304. package/src/composables/group/useInjectedGroupState.ts +46 -42
  305. package/src/composables/group/useProvideGroupState.ts +9 -15
  306. package/src/composables/index.ts +1 -0
  307. package/src/composables/useBlurhash.ts +68 -0
  308. package/src/composables/useComponentFocus.ts +9 -9
  309. package/src/composables/useComponentIcon.ts +36 -35
  310. package/src/composables/useDebouncedInput.ts +25 -25
  311. package/src/composables/useDefaults.ts +77 -76
  312. package/src/composables/useModifiers.ts +29 -29
  313. package/src/composables/useOptions.ts +51 -43
  314. package/src/composables/usePersistence.ts +74 -0
  315. package/src/composables/useTextCount.ts +44 -44
  316. package/src/composables/useUniqueId.ts +3 -2
  317. package/src/composables/useVolver.ts +1 -1
  318. package/src/constants.ts +97 -82
  319. package/src/directives/index.ts +3 -6
  320. package/src/directives/v-contextmenu.ts +34 -34
  321. package/src/directives/v-tooltip.ts +18 -9
  322. package/src/index.ts +6 -4
  323. package/src/props/index.ts +457 -380
  324. package/src/resolvers/unplugin.ts +146 -136
  325. package/src/shims.d.ts +4 -5
  326. package/src/stories/Accordion/Accordion.settings.ts +51 -50
  327. package/src/stories/Accordion/Accordion.stories.ts +21 -21
  328. package/src/stories/Accordion/Accordion.test.ts +56 -54
  329. package/src/stories/Accordion/AccordionSlots.stories.ts +13 -13
  330. package/src/stories/AccordionGroup/AccordionGroup.settings.ts +70 -67
  331. package/src/stories/AccordionGroup/AccordionGroup.stories.ts +41 -39
  332. package/src/stories/AccordionGroup/AccordionGroup.test.ts +49 -45
  333. package/src/stories/AccordionGroup/AccordionGroupSlots.stories.ts +35 -35
  334. package/src/stories/Alert/Alert.settings.ts +117 -116
  335. package/src/stories/Alert/Alert.stories.ts +30 -30
  336. package/src/stories/Alert/Alert.test.ts +78 -80
  337. package/src/stories/Alert/AlertModifiers.stories.ts +45 -45
  338. package/src/stories/Alert/AlertSlots.stories.ts +35 -35
  339. package/src/stories/AlertGroup/AlertGroup.settings.ts +107 -105
  340. package/src/stories/AlertGroup/AlertGroup.stories.ts +25 -25
  341. package/src/stories/AlertGroup/AlertGroup.test.ts +67 -69
  342. package/src/stories/AlertGroup/AlertGroupPosition.stories.ts +68 -68
  343. package/src/stories/AlertGroup/AlertGroupSlots.stories.ts +23 -23
  344. package/src/stories/AlertGroup/AlertGroupWithComposable.stories.ts +58 -58
  345. package/src/stories/Avatar/Avatar.settings.ts +29 -29
  346. package/src/stories/Avatar/Avatar.stories.ts +23 -23
  347. package/src/stories/Avatar/Avatar.test.ts +22 -24
  348. package/src/stories/Avatar/AvatarBadge.stories.ts +15 -15
  349. package/src/stories/Avatar/AvatarModifiers.stories.ts +61 -61
  350. package/src/stories/Avatar/AvatarSlots.stories.ts +18 -18
  351. package/src/stories/AvatarGroup/AvatarGroup.settings.ts +54 -53
  352. package/src/stories/AvatarGroup/AvatarGroup.stories.ts +17 -17
  353. package/src/stories/AvatarGroup/AvatarGroup.test.ts +24 -26
  354. package/src/stories/AvatarGroup/AvatarGroupModifiers.stories.ts +15 -15
  355. package/src/stories/AvatarGroup/AvatarGroupSlotDefault.stories.ts +17 -17
  356. package/src/stories/Badge/Badge.settings.ts +21 -20
  357. package/src/stories/Badge/Badge.stories.ts +24 -24
  358. package/src/stories/Badge/Badge.test.ts +8 -8
  359. package/src/stories/Badge/BadgeSlots.stories.ts +10 -10
  360. package/src/stories/Blurhash/BlurhashComposable.stories.ts +196 -0
  361. package/src/stories/Breadcrumb/Breadcrumb.settings.ts +35 -34
  362. package/src/stories/Breadcrumb/Breadcrumb.stories.ts +23 -23
  363. package/src/stories/Breadcrumb/Breadcrumb.test.ts +44 -43
  364. package/src/stories/Breadcrumb/BreadcrumbSlots.stories.ts +17 -17
  365. package/src/stories/Button/Button.settings.ts +146 -150
  366. package/src/stories/Button/Button.stories.ts +19 -19
  367. package/src/stories/Button/Button.test.ts +41 -42
  368. package/src/stories/Button/ButtonIcon.stories.ts +42 -42
  369. package/src/stories/Button/ButtonLink.stories.ts +24 -24
  370. package/src/stories/Button/ButtonLoading.stories.ts +22 -22
  371. package/src/stories/Button/ButtonModifiers.stories.ts +91 -91
  372. package/src/stories/Button/ButtonSlots.stories.ts +47 -47
  373. package/src/stories/Button/ButtonState.stories.ts +23 -23
  374. package/src/stories/Button/ButtonToggle.stories.ts +30 -30
  375. package/src/stories/ButtonGroup/ButtonGroup.settings.ts +33 -24
  376. package/src/stories/ButtonGroup/ButtonGroup.stories.ts +20 -20
  377. package/src/stories/ButtonGroup/ButtonGroup.test.ts +23 -26
  378. package/src/stories/ButtonGroup/ButtonGroupModifiers.stories.ts +20 -20
  379. package/src/stories/ButtonGroup/ButtonGroupSlots.stories.ts +18 -18
  380. package/src/stories/ButtonGroup/ButtonGroupToggle.stories.ts +22 -22
  381. package/src/stories/Card/Card.settings.ts +49 -48
  382. package/src/stories/Card/Card.stories.ts +22 -22
  383. package/src/stories/Card/Card.test.ts +14 -16
  384. package/src/stories/Card/CardSlots.stories.ts +42 -42
  385. package/src/stories/Checkbox/Checkbox.settings.ts +36 -35
  386. package/src/stories/Checkbox/Checkbox.stories.ts +57 -57
  387. package/src/stories/Checkbox/Checkbox.test.ts +63 -66
  388. package/src/stories/Checkbox/CheckboxBinary.stories.ts +18 -18
  389. package/src/stories/Checkbox/CheckboxSlots.stories.ts +15 -15
  390. package/src/stories/CheckboxGroup/CheckboxGroup.settings.ts +9 -9
  391. package/src/stories/CheckboxGroup/CheckboxGroup.stories.ts +50 -50
  392. package/src/stories/CheckboxGroup/CheckboxGroup.test.ts +63 -67
  393. package/src/stories/CheckboxGroup/CheckboxGroupOptions.stories.ts +34 -34
  394. package/src/stories/CheckboxGroup/CheckboxGroupSlots.stories.ts +23 -23
  395. package/src/stories/Combobox/Combobox.settings.ts +391 -383
  396. package/src/stories/Combobox/Combobox.stories.ts +108 -107
  397. package/src/stories/Combobox/Combobox.test.ts +89 -91
  398. package/src/stories/Combobox/ComboboxIconPosition.stories.ts +25 -24
  399. package/src/stories/Combobox/ComboboxMultiple.stories.ts +23 -22
  400. package/src/stories/Combobox/ComboboxOptions.stories.ts +85 -84
  401. package/src/stories/Combobox/ComboboxSlots.stories.ts +56 -55
  402. package/src/stories/Dialog/Dialog.settings.ts +49 -40
  403. package/src/stories/Dialog/Dialog.stories.ts +28 -28
  404. package/src/stories/Dialog/Dialog.test.ts +49 -54
  405. package/src/stories/Dialog/DialogModifiers.stories.ts +42 -0
  406. package/src/stories/Dialog/DialogSlots.stories.ts +20 -20
  407. package/src/stories/Dropdown/Dropdown.settings.ts +63 -62
  408. package/src/stories/Dropdown/Dropdown.stories.ts +59 -59
  409. package/src/stories/Dropdown/Dropdown.test.ts +9 -13
  410. package/src/stories/Dropdown/DropdownContextmenuDirective.stories.ts +16 -16
  411. package/src/stories/Dropdown/DropdownMultilevel.stories.ts +18 -18
  412. package/src/stories/Dropdown/DropdownSlots.stories.ts +50 -50
  413. package/src/stories/Icon/Icon.settings.ts +66 -65
  414. package/src/stories/Icon/Icon.stories.ts +28 -29
  415. package/src/stories/Icon/IconsCollection.stories.ts +22 -22
  416. package/src/stories/InputFile/InputFile.settings.ts +37 -0
  417. package/src/stories/InputFile/InputFile.stories.ts +89 -0
  418. package/src/stories/InputFile/InputFileDropArea.stories.ts +56 -0
  419. package/src/stories/InputFile/InputFileIconPosition.stories.ts +43 -0
  420. package/src/stories/InputFile/InputFileSlots.stories.ts +33 -0
  421. package/src/stories/InputText/InputText.settings.ts +246 -244
  422. package/src/stories/InputText/InputText.stories.ts +67 -67
  423. package/src/stories/InputText/InputText.test.ts +118 -121
  424. package/src/stories/InputText/InputTextIconPosition.stories.ts +24 -24
  425. package/src/stories/InputText/InputTextLength.stories.ts +33 -33
  426. package/src/stories/InputText/InputTextMask.stories.ts +91 -91
  427. package/src/stories/InputText/InputTextMinMax.stories.ts +30 -30
  428. package/src/stories/InputText/InputTextSlots.stories.ts +20 -20
  429. package/src/stories/InputText/InputTextType.stories.ts +70 -70
  430. package/src/stories/Nav/Nav.settings.ts +27 -27
  431. package/src/stories/Nav/Nav.stories.ts +18 -18
  432. package/src/stories/Nav/Nav.test.ts +10 -12
  433. package/src/stories/Nav/NavModifiers.stories.ts +25 -25
  434. package/src/stories/Progress/Progress.settings.ts +24 -23
  435. package/src/stories/Progress/Progress.stories.ts +23 -23
  436. package/src/stories/Progress/Progress.test.ts +4 -4
  437. package/src/stories/Radio/Radio.settings.ts +9 -9
  438. package/src/stories/Radio/Radio.stories.ts +47 -47
  439. package/src/stories/Radio/Radio.test.ts +54 -57
  440. package/src/stories/Radio/RadioSlots.stories.ts +15 -15
  441. package/src/stories/RadioGroup/RadioGroup.settings.ts +9 -9
  442. package/src/stories/RadioGroup/RadioGroup.stories.ts +51 -52
  443. package/src/stories/RadioGroup/RadioGroup.test.ts +63 -67
  444. package/src/stories/RadioGroup/RadioGroupOptions.stories.ts +35 -35
  445. package/src/stories/RadioGroup/RadioGroupSlots.stories.ts +23 -23
  446. package/src/stories/Select/Select.settings.ts +71 -70
  447. package/src/stories/Select/Select.stories.ts +67 -66
  448. package/src/stories/Select/Select.test.ts +65 -70
  449. package/src/stories/Select/SelectIconPosition.stories.ts +27 -26
  450. package/src/stories/Select/SelectOptions.stories.ts +55 -55
  451. package/src/stories/Select/SelectSlots.stories.ts +21 -20
  452. package/src/stories/Tab/Tab.settings.ts +34 -34
  453. package/src/stories/Tab/Tab.stories.ts +17 -17
  454. package/src/stories/Tab/Tab.test.ts +17 -19
  455. package/src/stories/Textarea/Textarea.settings.ts +79 -77
  456. package/src/stories/Textarea/Textarea.stories.ts +63 -63
  457. package/src/stories/Textarea/Textarea.test.ts +70 -73
  458. package/src/stories/Textarea/TextareaLength.stories.ts +33 -33
  459. package/src/stories/Textarea/TextareaSlots.stories.ts +20 -20
  460. package/src/stories/Textarea/TextareatIconPosition.stories.ts +24 -24
  461. package/src/stories/Tooltip/Tooltip.settings.ts +16 -17
  462. package/src/stories/Tooltip/Tooltip.stories.ts +18 -18
  463. package/src/stories/Tooltip/Tooltip.test.ts +53 -54
  464. package/src/stories/Tooltip/TooltipDirective.stories.ts +37 -37
  465. package/src/stories/argTypes.ts +506 -505
  466. package/src/test/expect.ts +72 -77
  467. package/src/test/options.ts +17 -16
  468. package/src/test/sleep.ts +3 -2
  469. package/src/test/types.d.ts +11 -11
  470. package/src/types/alert.ts +21 -17
  471. package/src/types/blurhash.ts +21 -0
  472. package/src/types/generic.ts +2 -3
  473. package/src/types/group.ts +34 -26
  474. package/src/types/index.ts +7 -0
  475. package/src/types/input-file.ts +18 -0
  476. package/src/types/nav.ts +13 -14
  477. package/src/utils/ObjectUtilities.ts +192 -188
  478. package/src/workers/blurhash.ts +9 -0
@@ -1,4 +1,4 @@
1
- import { unref, computed, isRef, defineComponent, h, inject, ref, toRefs, openBlock, createBlock, mergeProps, createCommentVNode, watch, useSlots, createElementBlock, normalizeClass, toDisplayString, createElementVNode, renderSlot, normalizeProps, guardReactiveProps, withDirectives, vModelText, createTextVNode, createVNode, createSlots, withCtx } from "vue";
1
+ import { unref, computed, isRef, defineComponent, h, inject, mergeDefaults, ref, toRefs, openBlock, createBlock, mergeProps, createCommentVNode, watch, useSlots, createElementBlock, normalizeClass, toDisplayString, createElementVNode, renderSlot, normalizeProps, guardReactiveProps, withDirectives, vModelText, createTextVNode, createVNode, createSlots, withCtx } from "vue";
2
2
  import { iconExists, Icon, addIcon } from "@iconify/vue";
3
3
  import { uid } from "uid";
4
4
  import { useFocus, useElementVisibility } from "@vueuse/core";
@@ -126,100 +126,15 @@ function HintSlotFactory(propsOrRef, slots) {
126
126
  HintSlot
127
127
  };
128
128
  }
129
- const VvIconProps = {
130
- /**
131
- * Color
132
- */
133
- color: String,
134
- /**
135
- * Width
136
- */
137
- width: {
138
- type: [String, Number]
139
- },
140
- /**
141
- * Height
142
- */
143
- height: {
144
- type: [String, Number]
145
- },
146
- /**
147
- * Icon name
148
- * Can be the full composition of iconify name "@{provider}:{prefix}:{name}" or "{prefix}:{name}" or "{name}"
149
- * https://docs.iconify.design/api/providers.html#provider-in-icon-name
150
- */
151
- name: {
152
- type: String,
153
- required: true
154
- },
155
- /**
156
- * By default 'vv'
157
- * If custom collection is not added with "addCollection" DS class method, this prop could not be used
158
- * Icon provider: https://docs.iconify.design/api/providers.html#provider-in-icon-name
159
- */
160
- provider: {
161
- type: String
162
- },
163
- /**
164
- * The name of icon set.
165
- * Icon default options prefix: simple | normal | detailed
166
- */
167
- prefix: {
168
- type: String,
169
- default: "normal"
170
- },
171
- /**
172
- * Url remote SVG icon
173
- */
174
- src: String,
175
- /**
176
- * Horizontal flip
177
- */
178
- horizontalFlip: Boolean,
179
- /**
180
- * Vertical flip
181
- */
182
- verticalFlip: Boolean,
183
- /**
184
- * String alternative to "horizontalFlip" and "verticalFlip".
185
- * Example: https://docs.iconify.design/icon-components/vue/transform.html
186
- */
187
- flip: String,
188
- /**
189
- * Icon render mode
190
- * 'style' = 'bg' or 'mask', depending on icon content
191
- * 'bg' = span with style using `background`
192
- * 'mask' = span with style using `mask`
193
- * 'svg' = svg
194
- * Iconify doc: https://docs.iconify.design/iconify-icon/modes.html
195
- */
196
- mode: String,
197
- /**
198
- * Toggles inline or block mode
199
- * Example https://docs.iconify.design/icon-components/vue/inline.html
200
- */
201
- inline: Boolean,
202
- /**
203
- * rotates icon
204
- * Example https://docs.iconify.design/icon-components/vue/transform.html
205
- */
206
- rotate: [Number, String],
207
- /**
208
- * A callback that is called when icon data has been loaded
209
- */
210
- onLoad: Function,
211
- /**
212
- * SVG icon string
213
- */
214
- svg: String,
215
- /**
216
- * Icon modifiers: vv-icon css helper classes, value/s are concatened with prefix 'vv-icon--'
217
- * @values string | string[]
218
- */
219
- modifiers: {
220
- type: [String, Array]
221
- }
129
+ const VvIconPropsDefaults = {
130
+ prefix: "normal"
131
+ /* normal */
222
132
  };
133
+ var StorageType = /* @__PURE__ */ ((StorageType2) => {
134
+ StorageType2["local"] = "local";
135
+ StorageType2["session"] = "session";
136
+ return StorageType2;
137
+ })(StorageType || {});
223
138
  var Strategy = /* @__PURE__ */ ((Strategy2) => {
224
139
  Strategy2["absolute"] = "absolute";
225
140
  Strategy2["fixed"] = "fixed";
@@ -254,13 +169,13 @@ var ButtonType = /* @__PURE__ */ ((ButtonType2) => {
254
169
  ButtonType2["reset"] = "reset";
255
170
  return ButtonType2;
256
171
  })(ButtonType || {});
257
- var AnchorTarget = /* @__PURE__ */ ((AnchorTarget2) => {
258
- AnchorTarget2["_blank"] = "_blank";
259
- AnchorTarget2["_self"] = "_self";
260
- AnchorTarget2["_parent"] = "_parent";
261
- AnchorTarget2["_top"] = "_top";
262
- return AnchorTarget2;
263
- })(AnchorTarget || {});
172
+ var ActionTag = /* @__PURE__ */ ((ActionTag2) => {
173
+ ActionTag2["nuxtLink"] = "nuxt-link";
174
+ ActionTag2["routerLink"] = "router-link";
175
+ ActionTag2["a"] = "a";
176
+ ActionTag2["button"] = "button";
177
+ return ActionTag2;
178
+ })(ActionTag || {});
264
179
  const INJECTION_KEY_VOLVER = Symbol.for("volver");
265
180
  function useVolver() {
266
181
  return inject(INJECTION_KEY_VOLVER);
@@ -293,12 +208,29 @@ const __default__$1 = {
293
208
  };
294
209
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
295
210
  ...__default__$1,
296
- props: VvIconProps,
211
+ props: /* @__PURE__ */ mergeDefaults({
212
+ name: {},
213
+ color: {},
214
+ width: {},
215
+ height: {},
216
+ provider: {},
217
+ prefix: {},
218
+ src: {},
219
+ horizontalFlip: { type: Boolean },
220
+ verticalFlip: { type: Boolean },
221
+ flip: {},
222
+ mode: {},
223
+ inline: { type: Boolean },
224
+ rotate: {},
225
+ onLoad: { type: Function },
226
+ svg: {},
227
+ modifiers: {}
228
+ }, VvIconPropsDefaults),
297
229
  setup(__props) {
298
230
  const props = __props;
299
231
  const hasRotate = computed(() => {
300
232
  if (typeof props.rotate === "string") {
301
- return parseFloat(props.rotate);
233
+ return Number.parseFloat(props.rotate);
302
234
  }
303
235
  return props.rotate;
304
236
  });
@@ -380,7 +312,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
380
312
  color: _ctx.color,
381
313
  onLoad: _ctx.onLoad,
382
314
  icon: unref(icon)
383
- }), null, 16, ["class"])) : createCommentVNode("", true);
315
+ }), null, 16, ["class"])) : createCommentVNode("v-if", true);
384
316
  };
385
317
  }
386
318
  });
@@ -399,10 +331,7 @@ const LinkProps = {
399
331
  /**
400
332
  * Anchor target
401
333
  */
402
- target: {
403
- type: String,
404
- validator: (value) => Object.values(AnchorTarget).includes(value)
405
- },
334
+ target: String,
406
335
  /**
407
336
  * Anchor rel
408
337
  */
@@ -415,27 +344,33 @@ const ValidProps = {
415
344
  /**
416
345
  * Valid status
417
346
  */
418
- valid: Boolean,
347
+ valid: { type: Boolean, default: false },
419
348
  /**
420
349
  * Valid label
421
350
  */
422
- validLabel: [String, Array]
351
+ validLabel: { type: [String, Array], default: void 0 }
423
352
  };
424
353
  const InvalidProps = {
425
354
  /**
426
355
  * Invalid status
427
356
  */
428
- invalid: Boolean,
357
+ invalid: {
358
+ type: Boolean,
359
+ default: false
360
+ },
429
361
  /**
430
362
  * Invalid label
431
363
  */
432
- invalidLabel: [String, Array]
364
+ invalidLabel: { type: [String, Array], default: void 0 }
433
365
  };
434
366
  const LoadingProps = {
435
367
  /**
436
368
  * Loading status
437
369
  */
438
- loading: Boolean,
370
+ loading: {
371
+ type: Boolean,
372
+ default: false
373
+ },
439
374
  /**
440
375
  * Loading label
441
376
  */
@@ -448,43 +383,64 @@ const DisabledProps = {
448
383
  /**
449
384
  * Whether the form control is disabled
450
385
  */
451
- disabled: Boolean
386
+ disabled: {
387
+ type: Boolean,
388
+ default: false
389
+ }
452
390
  };
453
391
  const ActiveProps = {
454
392
  /**
455
393
  * Whether the item is active
456
394
  */
457
- active: Boolean
395
+ active: {
396
+ type: Boolean,
397
+ default: false
398
+ }
458
399
  };
459
400
  const CurrentProps = {
460
401
  /**
461
402
  * Whether the item is current
462
403
  */
463
- current: Boolean
404
+ current: {
405
+ type: Boolean,
406
+ default: false
407
+ }
464
408
  };
465
409
  const PressedProps = {
466
410
  /**
467
411
  * Whether the item is pressed
468
412
  */
469
- pressed: Boolean
413
+ pressed: {
414
+ type: Boolean,
415
+ default: false
416
+ }
470
417
  };
471
418
  const LabelProps = {
472
419
  /**
473
420
  * The item label
474
421
  */
475
- label: [String, Number]
422
+ label: {
423
+ type: [String, Number],
424
+ default: void 0
425
+ }
476
426
  };
477
427
  const ReadonlyProps = {
478
428
  /**
479
429
  * The value is not editable
480
430
  */
481
- readonly: Boolean
431
+ readonly: {
432
+ type: Boolean,
433
+ default: false
434
+ }
482
435
  };
483
436
  const ModifiersProps = {
484
437
  /**
485
438
  * Component BEM modifiers
486
439
  */
487
- modifiers: [String, Array]
440
+ modifiers: {
441
+ type: [String, Array],
442
+ default: void 0
443
+ }
488
444
  };
489
445
  const HintProps = {
490
446
  hintLabel: { type: String, default: "" }
@@ -503,14 +459,20 @@ const DebounceProps = {
503
459
  /**
504
460
  * Milliseconds to wait before emitting the input event
505
461
  */
506
- debounce: [Number, String]
462
+ debounce: {
463
+ type: [Number, String],
464
+ default: void 0
465
+ }
507
466
  };
508
467
  const IconProps = {
509
468
  /**
510
469
  * VvIcon name or props
511
470
  * @see VVIcon
512
471
  */
513
- icon: { type: [String, Object] },
472
+ icon: {
473
+ type: [String, Object],
474
+ default: void 0
475
+ },
514
476
  /**
515
477
  * VvIcon position
516
478
  */
@@ -531,7 +493,10 @@ const FloatingLabelProps = {
531
493
  /**
532
494
  * If true the label will be floating
533
495
  */
534
- floating: Boolean
496
+ floating: {
497
+ type: Boolean,
498
+ default: false
499
+ }
535
500
  };
536
501
  const IdProps = {
537
502
  /**
@@ -561,7 +526,8 @@ const IdProps = {
561
526
  * Dropdown show / hide transition name
562
527
  */
563
528
  transitionName: {
564
- type: String
529
+ type: String,
530
+ default: void 0
565
531
  },
566
532
  /**
567
533
  * Offset of the dropdown from the trigger
@@ -629,7 +595,8 @@ const IdProps = {
629
595
  * Set dropdown width to the same as the trigger
630
596
  */
631
597
  triggerWidth: {
632
- type: Boolean
598
+ type: Boolean,
599
+ default: false
633
600
  }
634
601
  });
635
602
  const IdNameProps = {
@@ -646,7 +613,10 @@ const AutofocusProps = {
646
613
  * Global attribute autofocus
647
614
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autofocus
648
615
  */
649
- autofocus: Boolean
616
+ autofocus: {
617
+ type: Boolean,
618
+ default: false
619
+ }
650
620
  };
651
621
  const AutocompleteProps = {
652
622
  /**
@@ -678,28 +648,34 @@ const InputTextareaProps = {
678
648
  * Available for input types: text, search, url, tel, email, password
679
649
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#minlength
680
650
  */
681
- minlength: [String, Number],
651
+ minlength: { type: [String, Number], default: void 0 },
682
652
  /**
683
653
  * Input / Textarea maxlength
684
654
  * Maximum length (number of characters) of value
685
655
  * Available for input types: text, search, url, tel, email, password
686
656
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#maxlength
687
657
  */
688
- maxlength: [String, Number],
658
+ maxlength: { type: [String, Number], default: void 0 },
689
659
  /**
690
660
  * Input / Textarea placeholder
691
661
  * Text that appears in the form control when it has no value set
692
662
  * Available for input types: text, search, url, tel, email, password, number
693
663
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#placeholder
694
664
  */
695
- placeholder: String,
665
+ placeholder: {
666
+ type: String,
667
+ default: void 0
668
+ },
696
669
  /**
697
670
  * Input / Textarea required
698
671
  * A value is required or must be check for the form to be submittable
699
672
  * Available for all input types except color
700
673
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#required
701
674
  */
702
- required: Boolean
675
+ required: {
676
+ type: Boolean,
677
+ default: false
678
+ }
703
679
  };
704
680
  ({
705
681
  ...DisabledProps,
@@ -722,8 +698,23 @@ const InputTextareaProps = {
722
698
  ariaLabel: {
723
699
  type: String,
724
700
  default: void 0
701
+ },
702
+ /**
703
+ * Default tag for the action
704
+ */
705
+ defaultTag: {
706
+ type: String,
707
+ default: ActionTag.button
725
708
  }
726
709
  });
710
+ ({
711
+ storageType: {
712
+ type: String,
713
+ default: StorageType.local,
714
+ validator: (value) => Object.values(StorageType).includes(value)
715
+ },
716
+ storageKey: String
717
+ });
727
718
  const WRAP = {
728
719
  hard: "hard",
729
720
  soft: "soft"
@@ -819,14 +810,16 @@ function useDefaults(componentName, propsDefinition, props) {
819
810
  }, {});
820
811
  });
821
812
  }
822
- const useUniqueId = (id) => computed(() => String((id == null ? void 0 : id.value) || uid()));
813
+ function useUniqueId(id) {
814
+ return computed(() => String((id == null ? void 0 : id.value) || uid()));
815
+ }
823
816
  function useDebouncedInput(modelValue, emit, ms = 0, {
824
817
  getter = (value) => value,
825
818
  setter = (value) => value
826
819
  } = {}) {
827
820
  let timeout;
828
821
  if (typeof ms === "string") {
829
- ms = parseInt(ms);
822
+ ms = Number.parseInt(ms);
830
823
  }
831
824
  return computed({
832
825
  get: () => getter(modelValue == null ? void 0 : modelValue.value),
@@ -841,30 +834,30 @@ function useDebouncedInput(modelValue, emit, ms = 0, {
841
834
  });
842
835
  }
843
836
  function useComponentIcon(icon, iconPosition) {
837
+ const hasIcon = computed(() => {
838
+ if (typeof (icon == null ? void 0 : icon.value) === "string") {
839
+ return { name: icon == null ? void 0 : icon.value };
840
+ }
841
+ return icon == null ? void 0 : icon.value;
842
+ });
844
843
  const hasIconBefore = computed(
845
- () => Boolean((icon == null ? void 0 : icon.value) && iconPosition.value === Position.before)
844
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Position.before ? hasIcon.value : void 0
846
845
  );
847
846
  const hasIconAfter = computed(
848
- () => Boolean((icon == null ? void 0 : icon.value) && iconPosition.value === Position.after)
847
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Position.after ? hasIcon.value : void 0
849
848
  );
850
849
  const hasIconLeft = computed(
851
- () => Boolean((icon == null ? void 0 : icon.value) && iconPosition.value === Side.left)
850
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Side.left ? hasIcon.value : void 0
852
851
  );
853
852
  const hasIconRight = computed(
854
- () => Boolean((icon == null ? void 0 : icon.value) && iconPosition.value === Side.right)
853
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Side.right ? hasIcon.value : void 0
855
854
  );
856
855
  const hasIconTop = computed(
857
- () => Boolean((icon == null ? void 0 : icon.value) && iconPosition.value === Side.top)
856
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Side.top ? hasIcon.value : void 0
858
857
  );
859
858
  const hasIconBottom = computed(
860
- () => Boolean((icon == null ? void 0 : icon.value) && iconPosition.value === Side.bottom)
859
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Side.bottom ? hasIcon.value : void 0
861
860
  );
862
- const hasIcon = computed(() => {
863
- if (typeof (icon == null ? void 0 : icon.value) === "string") {
864
- return { name: icon == null ? void 0 : icon.value };
865
- }
866
- return icon == null ? void 0 : icon.value;
867
- });
868
861
  return {
869
862
  hasIcon,
870
863
  hasIconLeft,
@@ -941,8 +934,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
941
934
  ...__default__,
942
935
  props: VvTextareaProps,
943
936
  emits: VvTextareaEvents,
944
- setup(__props, { emit }) {
937
+ setup(__props, { emit: __emit }) {
945
938
  const props = __props;
939
+ const emit = __emit;
946
940
  const slots = useSlots();
947
941
  const propsDefaults = useDefaults(
948
942
  "VvTextarea",
@@ -971,10 +965,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
971
965
  () => props.floating && isEmpty(props.placeholder) ? " " : props.placeholder
972
966
  );
973
967
  const localModelValue = useDebouncedInput(modelValue, emit, debounce == null ? void 0 : debounce.value);
974
- const { hasIcon, hasIconBefore, hasIconAfter } = useComponentIcon(
975
- icon,
976
- iconPosition
977
- );
968
+ const { hasIconBefore, hasIconAfter } = useComponentIcon(icon, iconPosition);
978
969
  const { focused } = useComponentFocus(textarea, emit);
979
970
  const isVisible = useElementVisibility(textarea);
980
971
  watch(isVisible, (newValue) => {
@@ -1011,34 +1002,34 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1011
1002
  "vv-textarea",
1012
1003
  modifiers,
1013
1004
  computed(() => ({
1014
- valid: valid.value,
1015
- invalid: invalid.value,
1016
- loading: loading.value,
1017
- disabled: props.disabled,
1018
- readonly: props.readonly,
1019
- "icon-before": hasIconBefore.value,
1020
- "icon-after": hasIconAfter.value,
1021
- floating: props.floating && !isEmpty(props.label),
1022
- dirty: isDirty.value,
1023
- focused: focused.value,
1024
- resizable: props.resizable
1005
+ "valid": valid.value,
1006
+ "invalid": invalid.value,
1007
+ "loading": loading.value,
1008
+ "disabled": props.disabled,
1009
+ "readonly": props.readonly,
1010
+ "icon-before": hasIconBefore.value !== void 0,
1011
+ "icon-after": hasIconAfter.value !== void 0,
1012
+ "floating": props.floating && !isEmpty(props.label),
1013
+ "dirty": isDirty.value,
1014
+ "focus": focused.value,
1015
+ "resizable": props.resizable
1025
1016
  }))
1026
1017
  );
1027
1018
  const hasAttrs = computed(
1028
1019
  () => ({
1029
- name: props.name,
1030
- placeholder: hasPlaceholder.value,
1031
- tabindex: hasTabindex.value,
1032
- disabled: props.disabled,
1033
- readonly: props.readonly,
1034
- required: props.required,
1035
- autocomplete: props.autocomplete,
1036
- minlength: props.minlength,
1037
- maxlength: props.maxlength,
1038
- cols: props.cols,
1039
- rows: props.rows,
1040
- wrap: props.wrap,
1041
- spellcheck: props.spellcheck,
1020
+ "name": props.name,
1021
+ "placeholder": hasPlaceholder.value,
1022
+ "tabindex": hasTabindex.value,
1023
+ "disabled": props.disabled,
1024
+ "readonly": props.readonly,
1025
+ "required": props.required,
1026
+ "autocomplete": props.autocomplete,
1027
+ "minlength": props.minlength,
1028
+ "maxlength": props.maxlength,
1029
+ "cols": props.cols,
1030
+ "rows": props.rows,
1031
+ "wrap": props.wrap,
1032
+ "spellcheck": props.spellcheck,
1042
1033
  "aria-invalid": isInvalid.value,
1043
1034
  "aria-describedby": hasHintLabelOrSlot.value ? hasHintId.value : void 0,
1044
1035
  "aria-errormessage": hasInvalidLabelOrSlot.value ? hasHintId.value : void 0
@@ -1053,85 +1044,104 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1053
1044
  minlength: props.minlength,
1054
1045
  clear: onClear
1055
1046
  }));
1056
- const onClear = () => {
1047
+ function onClear() {
1057
1048
  localModelValue.value = void 0;
1058
- };
1049
+ }
1059
1050
  return (_ctx, _cache) => {
1060
- return openBlock(), createElementBlock("div", {
1061
- class: normalizeClass(unref(bemCssClasses))
1062
- }, [
1063
- unref(label) ? (openBlock(), createElementBlock("label", {
1064
- key: 0,
1065
- for: unref(hasId),
1066
- class: "vv-textarea__label"
1067
- }, toDisplayString(unref(label)), 9, _hoisted_1)) : createCommentVNode("", true),
1068
- createElementVNode("div", _hoisted_2, [
1069
- _ctx.$slots.before ? (openBlock(), createElementBlock("div", _hoisted_3, [
1070
- renderSlot(_ctx.$slots, "before", normalizeProps(guardReactiveProps(unref(slotProps))))
1071
- ])) : createCommentVNode("", true),
1072
- createElementVNode("div", _hoisted_4, [
1073
- unref(hasIconBefore) ? (openBlock(), createBlock(_sfc_main$1, mergeProps({
1074
- key: 0,
1075
- class: "vv-textarea__icon"
1076
- }, unref(hasIcon)), null, 16)) : createCommentVNode("", true),
1077
- withDirectives(createElementVNode("textarea", mergeProps({
1078
- id: unref(hasId),
1079
- ref_key: "textarea",
1080
- ref: textarea,
1081
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isRef(localModelValue) ? localModelValue.value = $event : null)
1082
- }, unref(hasAttrs), {
1083
- onKeyup: _cache[1] || (_cache[1] = ($event) => emit("keyup", $event))
1084
- }), null, 16, _hoisted_5), [
1085
- [vModelText, unref(localModelValue)]
1051
+ return openBlock(), createElementBlock(
1052
+ "div",
1053
+ {
1054
+ class: normalizeClass(unref(bemCssClasses))
1055
+ },
1056
+ [
1057
+ unref(label) ? (openBlock(), createElementBlock("label", {
1058
+ key: 0,
1059
+ for: unref(hasId),
1060
+ class: "vv-textarea__label"
1061
+ }, toDisplayString(unref(label)), 9, _hoisted_1)) : createCommentVNode("v-if", true),
1062
+ createElementVNode("div", _hoisted_2, [
1063
+ _ctx.$slots.before ? (openBlock(), createElementBlock("div", _hoisted_3, [
1064
+ renderSlot(_ctx.$slots, "before", normalizeProps(guardReactiveProps(unref(slotProps))))
1065
+ ])) : createCommentVNode("v-if", true),
1066
+ createElementVNode("div", _hoisted_4, [
1067
+ unref(hasIconBefore) ? (openBlock(), createBlock(
1068
+ _sfc_main$1,
1069
+ mergeProps({ key: 0 }, unref(hasIconBefore), { class: "vv-textarea__icon" }),
1070
+ null,
1071
+ 16
1072
+ /* FULL_PROPS */
1073
+ )) : createCommentVNode("v-if", true),
1074
+ withDirectives(createElementVNode("textarea", mergeProps({
1075
+ id: unref(hasId),
1076
+ ref_key: "textarea",
1077
+ ref: textarea,
1078
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isRef(localModelValue) ? localModelValue.value = $event : null)
1079
+ }, unref(hasAttrs), {
1080
+ onKeyup: _cache[1] || (_cache[1] = ($event) => emit("keyup", $event))
1081
+ }), null, 16, _hoisted_5), [
1082
+ [vModelText, unref(localModelValue)]
1083
+ ]),
1084
+ unref(hasIconAfter) ? (openBlock(), createBlock(
1085
+ _sfc_main$1,
1086
+ mergeProps({ key: 1 }, unref(hasIconAfter), { class: "vv-textarea__icon vv-textarea__icon-after" }),
1087
+ null,
1088
+ 16
1089
+ /* FULL_PROPS */
1090
+ )) : createCommentVNode("v-if", true)
1086
1091
  ]),
1087
- unref(hasIconAfter) ? (openBlock(), createBlock(_sfc_main$1, mergeProps({
1088
- key: 1,
1089
- class: "vv-textarea__icon vv-textarea__icon-after"
1090
- }, unref(hasIcon)), null, 16)) : createCommentVNode("", true)
1092
+ _ctx.$slots.after ? (openBlock(), createElementBlock("div", _hoisted_6, [
1093
+ renderSlot(_ctx.$slots, "after", normalizeProps(guardReactiveProps(unref(slotProps))))
1094
+ ])) : createCommentVNode("v-if", true),
1095
+ unref(count) ? (openBlock(), createElementBlock("span", _hoisted_7, [
1096
+ renderSlot(_ctx.$slots, "count", normalizeProps(guardReactiveProps(unref(slotProps))), () => [
1097
+ createTextVNode(
1098
+ toDisplayString(unref(countFormatted)),
1099
+ 1
1100
+ /* TEXT */
1101
+ )
1102
+ ])
1103
+ ])) : createCommentVNode("v-if", true)
1091
1104
  ]),
1092
- _ctx.$slots.after ? (openBlock(), createElementBlock("div", _hoisted_6, [
1093
- renderSlot(_ctx.$slots, "after", normalizeProps(guardReactiveProps(unref(slotProps))))
1094
- ])) : createCommentVNode("", true),
1095
- unref(count) ? (openBlock(), createElementBlock("span", _hoisted_7, [
1096
- renderSlot(_ctx.$slots, "count", normalizeProps(guardReactiveProps(unref(slotProps))), () => [
1097
- createTextVNode(toDisplayString(unref(countFormatted)), 1)
1098
- ])
1099
- ])) : createCommentVNode("", true)
1100
- ]),
1101
- createVNode(unref(HintSlot), {
1102
- id: unref(hasHintId),
1103
- class: "vv-textarea__hint"
1104
- }, createSlots({ _: 2 }, [
1105
- _ctx.$slots.hint ? {
1106
- name: "hint",
1107
- fn: withCtx(() => [
1108
- renderSlot(_ctx.$slots, "hint", normalizeProps(guardReactiveProps(unref(hintSlotScope))))
1109
- ]),
1110
- key: "0"
1111
- } : void 0,
1112
- _ctx.$slots.loading ? {
1113
- name: "loading",
1114
- fn: withCtx(() => [
1115
- renderSlot(_ctx.$slots, "loading", normalizeProps(guardReactiveProps(unref(hintSlotScope))))
1116
- ]),
1117
- key: "1"
1118
- } : void 0,
1119
- _ctx.$slots.valid ? {
1120
- name: "valid",
1121
- fn: withCtx(() => [
1122
- renderSlot(_ctx.$slots, "valid", normalizeProps(guardReactiveProps(unref(hintSlotScope))))
1123
- ]),
1124
- key: "2"
1125
- } : void 0,
1126
- _ctx.$slots.invalid ? {
1127
- name: "invalid",
1128
- fn: withCtx(() => [
1129
- renderSlot(_ctx.$slots, "invalid", normalizeProps(guardReactiveProps(unref(hintSlotScope))))
1130
- ]),
1131
- key: "3"
1132
- } : void 0
1133
- ]), 1032, ["id"])
1134
- ], 2);
1105
+ createVNode(unref(HintSlot), {
1106
+ id: unref(hasHintId),
1107
+ class: "vv-textarea__hint"
1108
+ }, createSlots({
1109
+ _: 2
1110
+ /* DYNAMIC */
1111
+ }, [
1112
+ _ctx.$slots.hint ? {
1113
+ name: "hint",
1114
+ fn: withCtx(() => [
1115
+ renderSlot(_ctx.$slots, "hint", normalizeProps(guardReactiveProps(unref(hintSlotScope))))
1116
+ ]),
1117
+ key: "0"
1118
+ } : void 0,
1119
+ _ctx.$slots.loading ? {
1120
+ name: "loading",
1121
+ fn: withCtx(() => [
1122
+ renderSlot(_ctx.$slots, "loading", normalizeProps(guardReactiveProps(unref(hintSlotScope))))
1123
+ ]),
1124
+ key: "1"
1125
+ } : void 0,
1126
+ _ctx.$slots.valid ? {
1127
+ name: "valid",
1128
+ fn: withCtx(() => [
1129
+ renderSlot(_ctx.$slots, "valid", normalizeProps(guardReactiveProps(unref(hintSlotScope))))
1130
+ ]),
1131
+ key: "2"
1132
+ } : void 0,
1133
+ _ctx.$slots.invalid ? {
1134
+ name: "invalid",
1135
+ fn: withCtx(() => [
1136
+ renderSlot(_ctx.$slots, "invalid", normalizeProps(guardReactiveProps(unref(hintSlotScope))))
1137
+ ]),
1138
+ key: "3"
1139
+ } : void 0
1140
+ ]), 1032, ["id"])
1141
+ ],
1142
+ 2
1143
+ /* CLASS */
1144
+ );
1135
1145
  };
1136
1146
  }
1137
1147
  });