@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
@@ -1,222 +1,224 @@
1
- <script lang="ts">
2
- export default {
3
- name: 'VvTextarea',
4
- }
1
+ <script setup lang="ts">
2
+ import type { TextareaHTMLAttributes } from 'vue'
3
+ import HintSlotFactory from '../common/HintSlot'
4
+ import VvIcon from '../VvIcon/VvIcon.vue'
5
+ import { VvTextareaProps, VvTextareaEvents } from '.'
6
+
7
+ // props, emit and slots
8
+ const props = defineProps(VvTextareaProps)
9
+
10
+ const emit = defineEmits(VvTextareaEvents)
11
+
12
+ const slots = useSlots()
13
+
14
+ // props merged with volver defaults (now only for labels)
15
+ const propsDefaults = useDefaults<typeof VvTextareaProps>(
16
+ 'VvTextarea',
17
+ VvTextareaProps,
18
+ props,
19
+ )
20
+
21
+ // template refs
22
+ const textarea = ref()
23
+
24
+ // data
25
+ const {
26
+ id,
27
+ icon,
28
+ iconPosition,
29
+ label,
30
+ modelValue,
31
+ count,
32
+ valid,
33
+ invalid,
34
+ loading,
35
+ modifiers,
36
+ debounce,
37
+ minlength,
38
+ maxlength,
39
+ } = toRefs(props)
40
+ const hasId = useUniqueId(id)
41
+ const hasHintId = computed(() => `${hasId.value}-hint`)
42
+ // BUG - https://www.samanthaming.com/tidbits/88-css-placeholder-shown/
43
+ const hasPlaceholder = computed(() =>
44
+ props.floating && isEmpty(props.placeholder) ? ' ' : props.placeholder,
45
+ )
46
+
47
+ // debounce
48
+ const localModelValue = useDebouncedInput(modelValue, emit, debounce?.value)
49
+
50
+ // icons
51
+ const { hasIconBefore, hasIconAfter } = useComponentIcon(icon, iconPosition)
52
+
53
+ // focus
54
+ const { focused } = useComponentFocus(textarea, emit)
55
+
56
+ // visibility
57
+ const isVisible = useElementVisibility(textarea)
58
+ watch(isVisible, (newValue) => {
59
+ if (newValue && props.autofocus) {
60
+ focused.value = true
61
+ }
62
+ })
63
+
64
+ // count
65
+ const { formatted: countFormatted } = useTextCount(localModelValue, {
66
+ mode: count?.value,
67
+ upperLimit: Number(maxlength?.value),
68
+ lowerLimit: Number(minlength?.value),
69
+ })
70
+
71
+ // tabindex
72
+ const isClickable = computed(() => !props.disabled && !props.readonly)
73
+ const hasTabindex = computed(() =>
74
+ isClickable.value ? props.tabindex : -1,
75
+ )
76
+
77
+ // dirty
78
+ const isDirty = computed(() => !isEmpty(modelValue))
79
+
80
+ // invalid
81
+ const isInvalid = computed(() => {
82
+ if (props.invalid === true) {
83
+ return true
84
+ }
85
+ if (props.valid === true) {
86
+ return false
87
+ }
88
+ return undefined
89
+ })
90
+
91
+ // hint
92
+ const {
93
+ HintSlot,
94
+ hasHintLabelOrSlot,
95
+ hasInvalidLabelOrSlot,
96
+ hintSlotScope,
97
+ } = HintSlotFactory(propsDefaults, slots)
98
+
99
+ // styles
100
+ const bemCssClasses = useModifiers(
101
+ 'vv-textarea',
102
+ modifiers,
103
+ computed(() => ({
104
+ 'valid': valid.value,
105
+ 'invalid': invalid.value,
106
+ 'loading': loading.value,
107
+ 'disabled': props.disabled,
108
+ 'readonly': props.readonly,
109
+ 'icon-before': hasIconBefore.value !== undefined,
110
+ 'icon-after': hasIconAfter.value !== undefined,
111
+ 'floating': props.floating && !isEmpty(props.label),
112
+ 'dirty': isDirty.value,
113
+ 'focus': focused.value,
114
+ 'resizable': props.resizable,
115
+ })),
116
+ )
117
+
118
+ // attrs
119
+ const hasAttrs = computed(
120
+ () =>
121
+ ({
122
+ 'name': props.name,
123
+ 'placeholder': hasPlaceholder.value,
124
+ 'tabindex': hasTabindex.value,
125
+ 'disabled': props.disabled,
126
+ 'readonly': props.readonly,
127
+ 'required': props.required,
128
+ 'autocomplete': props.autocomplete,
129
+ 'minlength': props.minlength,
130
+ 'maxlength': props.maxlength,
131
+ 'cols': props.cols,
132
+ 'rows': props.rows,
133
+ 'wrap': props.wrap,
134
+ 'spellcheck': props.spellcheck,
135
+ 'aria-invalid': isInvalid.value,
136
+ 'aria-describedby': hasHintLabelOrSlot.value
137
+ ? hasHintId.value
138
+ : undefined,
139
+ 'aria-errormessage': hasInvalidLabelOrSlot.value
140
+ ? hasHintId.value
141
+ : undefined,
142
+ }) as TextareaHTMLAttributes,
143
+ )
144
+
145
+ // slots props
146
+ const slotProps = computed(() => ({
147
+ valid: props.valid,
148
+ invalid: props.invalid,
149
+ modelValue: props.modelValue,
150
+ hintLabel: props.hintLabel,
151
+ maxlength: props.maxlength,
152
+ minlength: props.minlength,
153
+ clear: onClear,
154
+ }))
155
+
156
+ // methods
157
+ function onClear() {
158
+ localModelValue.value = undefined
159
+ }
5
160
  </script>
6
161
 
7
- <script setup lang="ts">
8
- import type { TextareaHTMLAttributes } from 'vue'
9
- import HintSlotFactory from '../common/HintSlot'
10
- import VvIcon from '../VvIcon/VvIcon.vue'
11
- import { VvTextareaProps, VvTextareaEvents } from '.'
12
-
13
- // props, emit and slots
14
- const props = defineProps(VvTextareaProps)
15
- const emit = defineEmits(VvTextareaEvents)
16
- const slots = useSlots()
17
-
18
- // props merged with volver defaults (now only for labels)
19
- const propsDefaults = useDefaults<typeof VvTextareaProps>(
20
- 'VvTextarea',
21
- VvTextareaProps,
22
- props,
23
- )
24
-
25
- // template refs
26
- const textarea = ref()
27
-
28
- // data
29
- const {
30
- id,
31
- icon,
32
- iconPosition,
33
- label,
34
- modelValue,
35
- count,
36
- valid,
37
- invalid,
38
- loading,
39
- modifiers,
40
- debounce,
41
- minlength,
42
- maxlength,
43
- } = toRefs(props)
44
- const hasId = useUniqueId(id)
45
- const hasHintId = computed(() => `${hasId.value}-hint`)
46
- // BUG - https://www.samanthaming.com/tidbits/88-css-placeholder-shown/
47
- const hasPlaceholder = computed(() =>
48
- props.floating && isEmpty(props.placeholder) ? ' ' : props.placeholder,
49
- )
50
-
51
- // debounce
52
- const localModelValue = useDebouncedInput(modelValue, emit, debounce?.value)
53
-
54
- // icons
55
- const { hasIconBefore, hasIconAfter } = useComponentIcon(icon, iconPosition)
56
-
57
- // focus
58
- const { focused } = useComponentFocus(textarea, emit)
59
-
60
- // visibility
61
- const isVisible = useElementVisibility(textarea)
62
- watch(isVisible, (newValue) => {
63
- if (newValue && props.autofocus) {
64
- focused.value = true
65
- }
66
- })
67
-
68
- // count
69
- const { formatted: countFormatted } = useTextCount(localModelValue, {
70
- mode: count?.value,
71
- upperLimit: Number(maxlength?.value),
72
- lowerLimit: Number(minlength?.value),
73
- })
74
-
75
- // tabindex
76
- const isClickable = computed(() => !props.disabled && !props.readonly)
77
- const hasTabindex = computed(() =>
78
- isClickable.value ? props.tabindex : -1,
79
- )
80
-
81
- // dirty
82
- const isDirty = computed(() => !isEmpty(modelValue))
83
-
84
- // invalid
85
- const isInvalid = computed(() => {
86
- if (props.invalid === true) {
87
- return true
88
- }
89
- if (props.valid === true) {
90
- return false
91
- }
92
- return undefined
93
- })
94
-
95
- // hint
96
- const {
97
- HintSlot,
98
- hasHintLabelOrSlot,
99
- hasInvalidLabelOrSlot,
100
- hintSlotScope,
101
- } = HintSlotFactory(propsDefaults, slots)
102
-
103
- // styles
104
- const bemCssClasses = useModifiers(
105
- 'vv-textarea',
106
- modifiers,
107
- computed(() => ({
108
- valid: valid.value,
109
- invalid: invalid.value,
110
- loading: loading.value,
111
- disabled: props.disabled,
112
- readonly: props.readonly,
113
- 'icon-before': hasIconBefore.value !== undefined,
114
- 'icon-after': hasIconAfter.value !== undefined,
115
- floating: props.floating && !isEmpty(props.label),
116
- dirty: isDirty.value,
117
- focus: focused.value,
118
- resizable: props.resizable,
119
- })),
120
- )
121
-
122
- // attrs
123
- const hasAttrs = computed(
124
- () =>
125
- ({
126
- name: props.name,
127
- placeholder: hasPlaceholder.value,
128
- tabindex: hasTabindex.value,
129
- disabled: props.disabled,
130
- readonly: props.readonly,
131
- required: props.required,
132
- autocomplete: props.autocomplete,
133
- minlength: props.minlength,
134
- maxlength: props.maxlength,
135
- cols: props.cols,
136
- rows: props.rows,
137
- wrap: props.wrap,
138
- spellcheck: props.spellcheck,
139
- 'aria-invalid': isInvalid.value,
140
- 'aria-describedby': hasHintLabelOrSlot.value
141
- ? hasHintId.value
142
- : undefined,
143
- 'aria-errormessage': hasInvalidLabelOrSlot.value
144
- ? hasHintId.value
145
- : undefined,
146
- }) as TextareaHTMLAttributes,
147
- )
148
-
149
- // slots props
150
- const slotProps = computed(() => ({
151
- valid: props.valid,
152
- invalid: props.invalid,
153
- modelValue: props.modelValue,
154
- hintLabel: props.hintLabel,
155
- maxlength: props.maxlength,
156
- minlength: props.minlength,
157
- clear: onClear,
158
- }))
159
-
160
- // methods
161
- const onClear = () => {
162
- localModelValue.value = undefined
163
- }
162
+ <script lang="ts">
163
+ export default {
164
+ name: 'VvTextarea',
165
+ }
164
166
  </script>
165
167
 
166
168
  <template>
167
- <div :class="bemCssClasses">
168
- <label v-if="label" :for="hasId" class="vv-textarea__label">
169
- {{ label }}
170
- </label>
171
- <div class="vv-textarea__wrapper">
172
- <!-- @slot Slot to replace icon before textarea -->
173
- <div v-if="$slots.before" class="vv-textarea__input-before">
174
- <!-- @slot Slot before input -->
175
- <slot name="before" v-bind="slotProps" />
176
- </div>
177
- <div class="vv-textarea__inner">
178
- <VvIcon
179
- v-if="hasIconBefore"
180
- v-bind="hasIconBefore"
181
- class="vv-textarea__icon"
182
- />
183
- <textarea
184
- :id="hasId"
185
- ref="textarea"
186
- v-model="localModelValue"
187
- v-bind="hasAttrs"
188
- @keyup="emit('keyup', $event)"
189
- />
190
- <VvIcon
191
- v-if="hasIconAfter"
192
- v-bind="hasIconAfter"
193
- class="vv-textarea__icon vv-textarea__icon-after"
194
- />
195
- </div>
196
- <div v-if="$slots.after" class="vv-textarea__input-after">
197
- <!-- @slot Slot after input -->
198
- <slot name="after" v-bind="slotProps" />
199
- </div>
200
- <span v-if="count" class="vv-textarea__limit">
201
- <!-- @slot Slot to replace count -->
202
- <slot name="count" v-bind="slotProps">
203
- {{ countFormatted }}
204
- </slot>
205
- </span>
206
- </div>
207
- <HintSlot :id="hasHintId" class="vv-textarea__hint">
208
- <template v-if="$slots.hint" #hint>
209
- <slot name="hint" v-bind="hintSlotScope" />
210
- </template>
211
- <template v-if="$slots.loading" #loading>
212
- <slot name="loading" v-bind="hintSlotScope" />
213
- </template>
214
- <template v-if="$slots.valid" #valid>
215
- <slot name="valid" v-bind="hintSlotScope" />
216
- </template>
217
- <template v-if="$slots.invalid" #invalid>
218
- <slot name="invalid" v-bind="hintSlotScope" />
219
- </template>
220
- </HintSlot>
221
- </div>
169
+ <div :class="bemCssClasses">
170
+ <label v-if="label" :for="hasId" class="vv-textarea__label">
171
+ {{ label }}
172
+ </label>
173
+ <div class="vv-textarea__wrapper">
174
+ <!-- @slot Slot to replace icon before textarea -->
175
+ <div v-if="$slots.before" class="vv-textarea__input-before">
176
+ <!-- @slot Slot before input -->
177
+ <slot name="before" v-bind="slotProps" />
178
+ </div>
179
+ <div class="vv-textarea__inner">
180
+ <VvIcon
181
+ v-if="hasIconBefore"
182
+ v-bind="hasIconBefore"
183
+ class="vv-textarea__icon"
184
+ />
185
+ <textarea
186
+ :id="hasId"
187
+ ref="textarea"
188
+ v-model="localModelValue"
189
+ v-bind="hasAttrs"
190
+ @keyup="emit('keyup', $event)"
191
+ />
192
+ <VvIcon
193
+ v-if="hasIconAfter"
194
+ v-bind="hasIconAfter"
195
+ class="vv-textarea__icon vv-textarea__icon-after"
196
+ />
197
+ </div>
198
+ <div v-if="$slots.after" class="vv-textarea__input-after">
199
+ <!-- @slot Slot after input -->
200
+ <slot name="after" v-bind="slotProps" />
201
+ </div>
202
+ <span v-if="count" class="vv-textarea__limit">
203
+ <!-- @slot Slot to replace count -->
204
+ <slot name="count" v-bind="slotProps">
205
+ {{ countFormatted }}
206
+ </slot>
207
+ </span>
208
+ </div>
209
+ <HintSlot :id="hasHintId" class="vv-textarea__hint">
210
+ <template v-if="$slots.hint" #hint>
211
+ <slot name="hint" v-bind="hintSlotScope" />
212
+ </template>
213
+ <template v-if="$slots.loading" #loading>
214
+ <slot name="loading" v-bind="hintSlotScope" />
215
+ </template>
216
+ <template v-if="$slots.valid" #valid>
217
+ <slot name="valid" v-bind="hintSlotScope" />
218
+ </template>
219
+ <template v-if="$slots.invalid" #invalid>
220
+ <slot name="invalid" v-bind="hintSlotScope" />
221
+ </template>
222
+ </HintSlot>
223
+ </div>
222
224
  </template>
@@ -2,49 +2,49 @@ import type { ExtractPropTypes } from 'vue'
2
2
  import { InputTextareaProps } from '../../props'
3
3
 
4
4
  export const WRAP = {
5
- hard: 'hard',
6
- soft: 'soft',
5
+ hard: 'hard',
6
+ soft: 'soft',
7
7
  }
8
8
 
9
9
  export const SPELLCHECK = {
10
- true: true,
11
- false: false,
12
- default: 'default',
10
+ true: true,
11
+ false: false,
12
+ default: 'default',
13
13
  }
14
14
 
15
15
  export const VvTextareaEvents = ['update:modelValue', 'focus', 'blur', 'keyup']
16
16
 
17
17
  export const VvTextareaProps = {
18
- ...InputTextareaProps,
19
- /**
20
- * Textarea value
21
- * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea#value
22
- */
23
- modelValue: String,
24
- /**
25
- * The visible width of the text control, in average character widths. If it is specified, it must be a positive integer. If it is not specified, the default value is 20.
26
- * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea#cols
27
- */
28
- cols: { type: [String, Number], default: 20 },
29
- /**
30
- * The number of visible text lines for the control. If it is specified, it must be a positive integer. If it is not specified, the default value is 2.
31
- * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea#rows
32
- */
33
- rows: { type: [String, Number], default: 2 },
34
- /**
35
- * Indicates how the control should wrap the value for form submission.
36
- * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea#wrap
37
- */
38
- wrap: { type: String, default: WRAP.soft },
39
- /**
40
- * Specifies whether the <textarea> is subject to spell checking by the underlying browser/OS.
41
- * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea#wrap
42
- */
43
- spellcheck: { type: [Boolean, String], default: SPELLCHECK.default },
44
- /**
45
- * If true, the textarea will be resizable
46
- */
47
- resizable: Boolean,
18
+ ...InputTextareaProps,
19
+ /**
20
+ * Textarea value
21
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea#value
22
+ */
23
+ modelValue: String,
24
+ /**
25
+ * The visible width of the text control, in average character widths. If it is specified, it must be a positive integer. If it is not specified, the default value is 20.
26
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea#cols
27
+ */
28
+ cols: { type: [String, Number], default: 20 },
29
+ /**
30
+ * The number of visible text lines for the control. If it is specified, it must be a positive integer. If it is not specified, the default value is 2.
31
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea#rows
32
+ */
33
+ rows: { type: [String, Number], default: 2 },
34
+ /**
35
+ * Indicates how the control should wrap the value for form submission.
36
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea#wrap
37
+ */
38
+ wrap: { type: String, default: WRAP.soft },
39
+ /**
40
+ * Specifies whether the <textarea> is subject to spell checking by the underlying browser/OS.
41
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea#wrap
42
+ */
43
+ spellcheck: { type: [Boolean, String], default: SPELLCHECK.default },
44
+ /**
45
+ * If true, the textarea will be resizable
46
+ */
47
+ resizable: Boolean,
48
48
  }
49
49
 
50
50
  export type VvTextareaPropsTypes = ExtractPropTypes<typeof VvTextareaProps>
@@ -1,23 +1,29 @@
1
1
  <script setup lang="ts">
2
- import { VvTooltipProps } from '.'
2
+ import { VvTooltipProps } from '.'
3
3
 
4
- const props = defineProps(VvTooltipProps)
5
- const { modifiers } = toRefs(props)
4
+ const props = defineProps(VvTooltipProps)
5
+ const { modifiers } = toRefs(props)
6
6
 
7
- // styles
8
- const bemCssClasses = useModifiers(
9
- 'vv-tooltip',
10
- modifiers,
11
- computed(() => ({
12
- [props.position]: true,
13
- })),
14
- )
7
+ // styles
8
+ const bemCssClasses = useModifiers(
9
+ 'vv-tooltip',
10
+ modifiers,
11
+ computed(() => ({
12
+ [props.position]: true,
13
+ })),
14
+ )
15
+ </script>
16
+
17
+ <script lang="ts">
18
+ export default {
19
+ name: 'VvTooltip',
20
+ }
15
21
  </script>
16
22
 
17
23
  <template>
18
- <span :class="bemCssClasses" role="tooltip" inert>
19
- <slot>
20
- {{ value }}
21
- </slot>
22
- </span>
24
+ <span :class="bemCssClasses" role="tooltip" inert>
25
+ <slot>
26
+ {{ value }}
27
+ </slot>
28
+ </span>
23
29
  </template>
@@ -3,16 +3,16 @@ import { Side } from '../../constants'
3
3
  import { ModifiersProps } from '../../props'
4
4
 
5
5
  export const VvTooltipProps = {
6
- ...ModifiersProps,
7
- /**
8
- * Define the tooltip position
9
- * @default Side.bottom
10
- */
11
- position: {
12
- type: String as PropType<`${Side}`>,
13
- default: Side.bottom,
14
- },
15
- value: {
16
- type: String,
17
- },
6
+ ...ModifiersProps,
7
+ /**
8
+ * Define the tooltip position
9
+ * @default Side.bottom
10
+ */
11
+ position: {
12
+ type: String as PropType<`${Side}`>,
13
+ default: Side.bottom,
14
+ },
15
+ value: {
16
+ type: String,
17
+ },
18
18
  }