@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,102 +1,104 @@
1
- <script lang="ts">
2
- export default {
3
- name: 'VvRadioGroup',
4
- }
5
- </script>
6
-
7
1
  <script setup lang="ts">
8
- import type { Option } from '../../types/generic'
9
- import type { InputGroupState } from '../../types/group'
10
- import { INJECTION_KEY_RADIO_GROUP } from '../../constants'
11
- import { HintSlotFactory } from '../common/HintSlot'
12
- import VvRadio from '../VvRadio/VvRadio.vue'
13
- import { VvRadioGroupProps, VvRadioGroupEvents } from '.'
2
+ import type { Option } from '../../types/generic'
3
+ import type { InputGroupState } from '../../types/group'
4
+ import { INJECTION_KEY_RADIO_GROUP } from '../../constants'
5
+ import { HintSlotFactory } from '../common/HintSlot'
6
+ import VvRadio from '../VvRadio/VvRadio.vue'
7
+ import { VvRadioGroupProps, VvRadioGroupEvents } from '.'
8
+
9
+ // props, emit and slots
10
+ const props = defineProps(VvRadioGroupProps)
14
11
 
15
- // props, emit and slots
16
- const props = defineProps(VvRadioGroupProps)
17
- const emit = defineEmits(VvRadioGroupEvents)
18
- const slots = useSlots()
12
+ const emit = defineEmits(VvRadioGroupEvents)
19
13
 
20
- // props merged with volver defaults (now only for labels)
21
- const propsDefaults = useDefaults<typeof VvRadioGroupProps>(
22
- 'VvRadioGroup',
23
- VvRadioGroupProps,
24
- props,
25
- )
14
+ const slots = useSlots()
26
15
 
27
- // data
28
- const modelValue = useVModel(props, 'modelValue', emit)
29
- const { disabled, readonly, vertical, valid, invalid, modifiers } =
30
- toRefs(props)
16
+ // props merged with volver defaults (now only for labels)
17
+ const propsDefaults = useDefaults<typeof VvRadioGroupProps>(
18
+ 'VvRadioGroup',
19
+ VvRadioGroupProps,
20
+ props,
21
+ )
31
22
 
32
- useProvideGroupState<InputGroupState>(INJECTION_KEY_RADIO_GROUP, {
33
- modelValue,
34
- disabled,
35
- readonly,
36
- valid,
37
- invalid,
38
- })
23
+ // data
24
+ const modelValue = useVModel(props, 'modelValue', emit)
25
+ const { disabled, readonly, vertical, valid, invalid, modifiers }
26
+ = toRefs(props)
39
27
 
40
- // options
41
- const { getOptionLabel, getOptionValue } = useOptions(props)
28
+ useProvideGroupState<InputGroupState>(INJECTION_KEY_RADIO_GROUP, {
29
+ modelValue,
30
+ disabled,
31
+ readonly,
32
+ valid,
33
+ invalid,
34
+ })
42
35
 
43
- // styles
44
- const bemCssClasses = useModifiers(
45
- 'vv-radio-group',
46
- modifiers,
47
- computed(() => ({
48
- disabled: disabled.value,
49
- readonly: readonly.value,
50
- horizontal: !vertical.value,
51
- valid: valid.value,
52
- invalid: invalid.value,
53
- })),
54
- )
36
+ // options
37
+ const { getOptionLabel, getOptionValue } = useOptions(props)
55
38
 
56
- // methods
57
- const getOptionProps = (option: string | Option, index: number) => {
58
- return {
59
- id: `${props.name}_opt${index}`,
60
- name: props.name,
61
- label: getOptionLabel(option),
62
- value: getOptionValue(option),
63
- }
64
- }
39
+ // styles
40
+ const bemCssClasses = useModifiers(
41
+ 'vv-radio-group',
42
+ modifiers,
43
+ computed(() => ({
44
+ disabled: disabled.value,
45
+ readonly: readonly.value,
46
+ horizontal: !vertical.value,
47
+ valid: valid.value,
48
+ invalid: invalid.value,
49
+ })),
50
+ )
65
51
 
66
- // hint
67
- const { HintSlot, hintSlotScope } = HintSlotFactory(propsDefaults, slots)
52
+ // methods
53
+ function getOptionProps(option: string | Option, index: number) {
54
+ return {
55
+ id: `${props.name}_opt${index}`,
56
+ name: props.name,
57
+ label: getOptionLabel(option),
58
+ value: getOptionValue(option),
59
+ }
60
+ }
61
+
62
+ // hint
63
+ const { HintSlot, hintSlotScope } = HintSlotFactory(propsDefaults, slots)
64
+ </script>
65
+
66
+ <script lang="ts">
67
+ export default {
68
+ name: 'VvRadioGroup',
69
+ }
68
70
  </script>
69
71
 
70
72
  <template>
71
- <fieldset :class="bemCssClasses">
72
- <legend v-if="label" v-text="label" />
73
- <div class="vv-radio-group__wrapper">
74
- <!-- #region options -->
75
- <template v-if="options.length > 0">
76
- <VvRadio
77
- v-for="(option, index) in options"
78
- :key="index"
79
- v-bind="getOptionProps(option, index)"
80
- />
81
- </template>
82
- <!-- #endregion -->
83
- <!-- #region default -->
84
- <slot v-else />
85
- <!-- #endregion -->
86
- </div>
87
- <HintSlot class="vv-radio-group__hint">
88
- <template v-if="$slots.hint" #hint>
89
- <slot name="hint" v-bind="hintSlotScope" />
90
- </template>
91
- <template v-if="$slots.loading" #loading>
92
- <slot name="loading" v-bind="hintSlotScope" />
93
- </template>
94
- <template v-if="$slots.valid" #valid>
95
- <slot name="valid" v-bind="hintSlotScope" />
96
- </template>
97
- <template v-if="$slots.invalid" #invalid>
98
- <slot name="invalid" v-bind="hintSlotScope" />
99
- </template>
100
- </HintSlot>
101
- </fieldset>
73
+ <fieldset :class="bemCssClasses">
74
+ <legend v-if="label" v-text="label" />
75
+ <div class="vv-radio-group__wrapper">
76
+ <!-- #region options -->
77
+ <template v-if="options.length > 0">
78
+ <VvRadio
79
+ v-for="(option, index) in options"
80
+ :key="index"
81
+ v-bind="getOptionProps(option, index)"
82
+ />
83
+ </template>
84
+ <!-- #endregion -->
85
+ <!-- #region default -->
86
+ <slot v-else />
87
+ <!-- #endregion -->
88
+ </div>
89
+ <HintSlot class="vv-radio-group__hint">
90
+ <template v-if="$slots.hint" #hint>
91
+ <slot name="hint" v-bind="hintSlotScope" />
92
+ </template>
93
+ <template v-if="$slots.loading" #loading>
94
+ <slot name="loading" v-bind="hintSlotScope" />
95
+ </template>
96
+ <template v-if="$slots.valid" #valid>
97
+ <slot name="valid" v-bind="hintSlotScope" />
98
+ </template>
99
+ <template v-if="$slots.invalid" #invalid>
100
+ <slot name="invalid" v-bind="hintSlotScope" />
101
+ </template>
102
+ </HintSlot>
103
+ </fieldset>
102
104
  </template>
@@ -1,244 +1,247 @@
1
- <script lang="ts">
2
- export default {
3
- name: 'VvSelect',
4
- }
1
+ <script setup lang="ts">
2
+ import type { SelectHTMLAttributes } from 'vue'
3
+ import VvIcon from '../VvIcon/VvIcon.vue'
4
+ import HintSlotFactory from '../common/HintSlot'
5
+ import { VvSelectProps, VvSelectEmits } from '.'
6
+ import type { Option } from '@/types/generic'
7
+
8
+ // props, emit and slots
9
+ const props = defineProps(VvSelectProps)
10
+
11
+ const emit = defineEmits(VvSelectEmits)
12
+
13
+ const slots = useSlots()
14
+
15
+ // props merged with volver defaults (now only for labels)
16
+ const propsDefaults = useDefaults<typeof VvSelectProps>(
17
+ 'VvSelect',
18
+ VvSelectProps,
19
+ props,
20
+ )
21
+
22
+ // template refs
23
+ const select = ref()
24
+
25
+ // hint
26
+ const {
27
+ HintSlot,
28
+ hasHintLabelOrSlot,
29
+ hasInvalidLabelOrSlot,
30
+ hintSlotScope,
31
+ } = HintSlotFactory(propsDefaults, slots)
32
+
33
+ // data
34
+ const {
35
+ id,
36
+ modifiers,
37
+ disabled,
38
+ readonly,
39
+ loading,
40
+ icon,
41
+ iconPosition,
42
+ invalid,
43
+ valid,
44
+ floating,
45
+ multiple,
46
+ } = toRefs(props)
47
+
48
+ // computed
49
+ const hasId = useUniqueId(id)
50
+ const hasHintId = computed(() => `${hasId.value}-hint`)
51
+
52
+ // focus
53
+ const { focused } = useComponentFocus(select, emit)
54
+
55
+ // visibility
56
+ const isVisible = useElementVisibility(select)
57
+ watch(isVisible, (newValue) => {
58
+ if (newValue && props.autofocus) {
59
+ focused.value = true
60
+ }
61
+ })
62
+
63
+ // icons
64
+ const { hasIconBefore, hasIconAfter } = useComponentIcon(icon, iconPosition)
65
+
66
+ // dirty
67
+ const isDirty = computed(() => !isEmpty(props.modelValue))
68
+
69
+ // disabled
70
+ const isDisabled = computed(() => props.disabled || props.readonly)
71
+ const hasTabindex = computed(() => {
72
+ return isDisabled.value ? -1 : props.tabindex
73
+ })
74
+
75
+ // invalid
76
+ const isInvalid = computed(() => {
77
+ if (props.invalid === true) {
78
+ return true
79
+ }
80
+ if (props.valid === true) {
81
+ return false
82
+ }
83
+ return undefined
84
+ })
85
+
86
+ // styles
87
+ const bemCssClasses = useModifiers(
88
+ 'vv-select',
89
+ modifiers,
90
+ computed(() => ({
91
+ 'valid': valid.value,
92
+ 'invalid': invalid.value,
93
+ 'loading': loading.value,
94
+ 'disabled': disabled.value,
95
+ 'readonly': readonly.value,
96
+ 'icon-before': hasIconBefore.value !== undefined,
97
+ 'icon-after': hasIconAfter.value !== undefined,
98
+ 'dirty': isDirty.value,
99
+ 'focus': focused.value,
100
+ 'floating': floating.value,
101
+ 'multiple': multiple.value,
102
+ })),
103
+ )
104
+
105
+ // attrs
106
+ const hasAttrs: SelectHTMLAttributes = computed(() => {
107
+ return {
108
+ 'name': props.name,
109
+ 'tabindex': hasTabindex.value,
110
+ 'disabled': isDisabled.value,
111
+ 'required': props.required,
112
+ 'size': props.size,
113
+ 'autocomplete': props.autocomplete,
114
+ 'multiple': props.multiple,
115
+ 'aria-invalid': isInvalid.value,
116
+ 'aria-describedby': hasHintLabelOrSlot.value
117
+ ? hasHintId.value
118
+ : undefined,
119
+ 'aria-errormessage': hasInvalidLabelOrSlot.value
120
+ ? hasHintId.value
121
+ : undefined,
122
+ }
123
+ })
124
+
125
+ // slots
126
+ const slotProps = computed(() => ({
127
+ valid: props.valid,
128
+ invalid: props.invalid,
129
+ modelValue: props.modelValue,
130
+ }))
131
+
132
+ const {
133
+ getOptionLabel,
134
+ getOptionValue,
135
+ isOptionDisabled,
136
+ getOptionGrouped,
137
+ } = useOptions(props)
138
+
139
+ const localModelValue = computed({
140
+ get: () => {
141
+ return props.modelValue
142
+ },
143
+ set: (newValue) => {
144
+ if (Array.isArray(newValue)) {
145
+ newValue = newValue.filter(item => item !== undefined)
146
+ }
147
+ emit('update:modelValue', newValue)
148
+ },
149
+ })
150
+
151
+ // Grouped options
152
+ function isGroup(option: string | Option) {
153
+ if (typeof option === 'string')
154
+ return false
155
+ return option && option.options && option.options.length > 0
156
+ }
5
157
  </script>
6
158
 
7
- <script setup lang="ts">
8
- import type { SelectHTMLAttributes } from 'vue'
9
- import VvIcon from '../VvIcon/VvIcon.vue'
10
- import HintSlotFactory from '../common/HintSlot'
11
- import { VvSelectProps, VvSelectEmits } from '.'
12
- import type { Option } from '@/types/generic'
13
-
14
- // props, emit and slots
15
- const props = defineProps(VvSelectProps)
16
- const emit = defineEmits(VvSelectEmits)
17
- const slots = useSlots()
18
-
19
- // props merged with volver defaults (now only for labels)
20
- const propsDefaults = useDefaults<typeof VvSelectProps>(
21
- 'VvSelect',
22
- VvSelectProps,
23
- props,
24
- )
25
-
26
- // template refs
27
- const select = ref()
28
-
29
- // hint
30
- const {
31
- HintSlot,
32
- hasHintLabelOrSlot,
33
- hasInvalidLabelOrSlot,
34
- hintSlotScope,
35
- } = HintSlotFactory(propsDefaults, slots)
36
-
37
- // data
38
- const {
39
- id,
40
- modifiers,
41
- disabled,
42
- readonly,
43
- loading,
44
- icon,
45
- iconPosition,
46
- invalid,
47
- valid,
48
- floating,
49
- multiple,
50
- } = toRefs(props)
51
-
52
- // computed
53
- const hasId = useUniqueId(id)
54
- const hasHintId = computed(() => `${hasId.value}-hint`)
55
-
56
- // focus
57
- const { focused } = useComponentFocus(select, emit)
58
-
59
- // visibility
60
- const isVisible = useElementVisibility(select)
61
- watch(isVisible, (newValue) => {
62
- if (newValue && props.autofocus) {
63
- focused.value = true
64
- }
65
- })
66
-
67
- // icons
68
- const { hasIconBefore, hasIconAfter } = useComponentIcon(icon, iconPosition)
69
-
70
- // dirty
71
- const isDirty = computed(() => !isEmpty(props.modelValue))
72
-
73
- // disabled
74
- const isDisabled = computed(() => props.disabled || props.readonly)
75
- const hasTabindex = computed(() => {
76
- return isDisabled.value ? -1 : props.tabindex
77
- })
78
-
79
- // invalid
80
- const isInvalid = computed(() => {
81
- if (props.invalid === true) {
82
- return true
83
- }
84
- if (props.valid === true) {
85
- return false
86
- }
87
- return undefined
88
- })
89
-
90
- // styles
91
- const bemCssClasses = useModifiers(
92
- 'vv-select',
93
- modifiers,
94
- computed(() => ({
95
- valid: valid.value,
96
- invalid: invalid.value,
97
- loading: loading.value,
98
- disabled: disabled.value,
99
- readonly: readonly.value,
100
- 'icon-before': hasIconBefore.value !== undefined,
101
- 'icon-after': hasIconAfter.value !== undefined,
102
- dirty: isDirty.value,
103
- focus: focused.value,
104
- floating: floating.value,
105
- multiple: multiple.value,
106
- })),
107
- )
108
-
109
- // attrs
110
- const hasAttrs: SelectHTMLAttributes = computed(() => {
111
- return {
112
- name: props.name,
113
- tabindex: hasTabindex.value,
114
- disabled: isDisabled.value,
115
- required: props.required,
116
- size: props.size,
117
- autocomplete: props.autocomplete,
118
- multiple: props.multiple,
119
- 'aria-invalid': isInvalid.value,
120
- 'aria-describedby': hasHintLabelOrSlot.value
121
- ? hasHintId.value
122
- : undefined,
123
- 'aria-errormessage': hasInvalidLabelOrSlot.value
124
- ? hasHintId.value
125
- : undefined,
126
- }
127
- })
128
-
129
- // slots
130
- const slotProps = computed(() => ({
131
- valid: props.valid,
132
- invalid: props.invalid,
133
- modelValue: props.modelValue,
134
- }))
135
-
136
- const {
137
- getOptionLabel,
138
- getOptionValue,
139
- isOptionDisabled,
140
- getOptionGrouped,
141
- } = useOptions(props)
142
-
143
- const localModelValue = computed({
144
- get: () => {
145
- return props.modelValue
146
- },
147
- set: (newValue) => {
148
- if (Array.isArray(newValue)) {
149
- newValue = newValue.filter((item) => item !== undefined)
150
- }
151
- emit('update:modelValue', newValue)
152
- },
153
- })
154
-
155
- // Grouped options
156
- const isGroup = (option: string | Option) => {
157
- if (typeof option === 'string') return false
158
- return option && option.options && option.options.length > 0
159
- }
159
+ <script lang="ts">
160
+ export default {
161
+ name: 'VvSelect',
162
+ }
160
163
  </script>
161
164
 
162
165
  <template>
163
- <div :class="bemCssClasses">
164
- <label v-if="label" :for="hasId">{{ label }}</label>
165
- <!-- #region native select -->
166
- <div class="vv-select__wrapper">
167
- <div v-if="$slots.before" class="vv-select__input-before">
168
- <!-- @slot Slot before input -->
169
- <slot name="before" v-bind="slotProps" />
170
- </div>
171
- <div class="vv-select__inner">
172
- <VvIcon
173
- v-if="hasIconBefore"
174
- v-bind="hasIconBefore"
175
- class="vv-select__icon"
176
- />
177
- <select
178
- :id="hasId"
179
- ref="select"
180
- v-model="localModelValue"
181
- v-bind="hasAttrs"
182
- >
183
- <option
184
- v-if="placeholder"
185
- :value="undefined"
186
- :disabled="!unselectable"
187
- :hidden="!unselectable"
188
- >
189
- {{ placeholder }}
190
- </option>
191
- <template v-for="(option, index) in options">
192
- <option
193
- v-if="!isGroup(option)"
194
- :key="index"
195
- :disabled="isOptionDisabled(option)"
196
- :value="getOptionValue(option)"
197
- >
198
- {{ getOptionLabel(option) }}
199
- </option>
200
- <optgroup
201
- v-else
202
- :key="`group-${index}`"
203
- :disabled="isOptionDisabled(option)"
204
- :label="getOptionLabel(option)"
205
- >
206
- <option
207
- v-for="(item, i) in getOptionGrouped(option)"
208
- :key="`group-${index}-item-${i}`"
209
- :disabled="isOptionDisabled(item)"
210
- :value="getOptionValue(item)"
211
- >
212
- {{ getOptionLabel(item) }}
213
- </option>
214
- </optgroup>
215
- </template>
216
- </select>
217
- <VvIcon
218
- v-if="hasIconAfter"
219
- v-bind="hasIconAfter"
220
- class="vv-select__icon vv-select__icon-after"
221
- />
222
- </div>
223
- <div v-if="$slots.after" class="vv-select__input-after">
224
- <!-- @slot Slot after input -->
225
- <slot name="after" v-bind="slotProps" />
226
- </div>
227
- </div>
228
- <!-- #endregion native select -->
229
- <HintSlot :id="hasHintId" class="vv-select__hint">
230
- <template v-if="$slots.hint" #hint>
231
- <slot name="hint" v-bind="hintSlotScope" />
232
- </template>
233
- <template v-if="$slots.loading" #loading>
234
- <slot name="loading" v-bind="hintSlotScope" />
235
- </template>
236
- <template v-if="$slots.valid" #valid>
237
- <slot name="valid" v-bind="hintSlotScope" />
238
- </template>
239
- <template v-if="$slots.invalid" #invalid>
240
- <slot name="invalid" v-bind="hintSlotScope" />
241
- </template>
242
- </HintSlot>
243
- </div>
166
+ <div :class="bemCssClasses">
167
+ <label v-if="label" :for="hasId">{{ label }}</label>
168
+ <!-- #region native select -->
169
+ <div class="vv-select__wrapper">
170
+ <div v-if="$slots.before" class="vv-select__input-before">
171
+ <!-- @slot Slot before input -->
172
+ <slot name="before" v-bind="slotProps" />
173
+ </div>
174
+ <div class="vv-select__inner">
175
+ <VvIcon
176
+ v-if="hasIconBefore"
177
+ v-bind="hasIconBefore"
178
+ class="vv-select__icon"
179
+ />
180
+ <select
181
+ :id="hasId"
182
+ ref="select"
183
+ v-model="localModelValue"
184
+ v-bind="hasAttrs"
185
+ >
186
+ <option
187
+ v-if="placeholder"
188
+ :value="undefined"
189
+ :disabled="!unselectable"
190
+ :hidden="!unselectable"
191
+ >
192
+ {{ placeholder }}
193
+ </option>
194
+ <template v-for="(option, index) in options">
195
+ <option
196
+ v-if="!isGroup(option)"
197
+ :key="index"
198
+ :disabled="isOptionDisabled(option)"
199
+ :value="getOptionValue(option)"
200
+ >
201
+ {{ getOptionLabel(option) }}
202
+ </option>
203
+ <optgroup
204
+ v-else
205
+ :key="`group-${index}`"
206
+ :disabled="isOptionDisabled(option)"
207
+ :label="getOptionLabel(option)"
208
+ >
209
+ <option
210
+ v-for="(item, i) in getOptionGrouped(option)"
211
+ :key="`group-${index}-item-${i}`"
212
+ :disabled="isOptionDisabled(item)"
213
+ :value="getOptionValue(item)"
214
+ >
215
+ {{ getOptionLabel(item) }}
216
+ </option>
217
+ </optgroup>
218
+ </template>
219
+ </select>
220
+ <VvIcon
221
+ v-if="hasIconAfter"
222
+ v-bind="hasIconAfter"
223
+ class="vv-select__icon vv-select__icon-after"
224
+ />
225
+ </div>
226
+ <div v-if="$slots.after" class="vv-select__input-after">
227
+ <!-- @slot Slot after input -->
228
+ <slot name="after" v-bind="slotProps" />
229
+ </div>
230
+ </div>
231
+ <!-- #endregion native select -->
232
+ <HintSlot :id="hasHintId" class="vv-select__hint">
233
+ <template v-if="$slots.hint" #hint>
234
+ <slot name="hint" v-bind="hintSlotScope" />
235
+ </template>
236
+ <template v-if="$slots.loading" #loading>
237
+ <slot name="loading" v-bind="hintSlotScope" />
238
+ </template>
239
+ <template v-if="$slots.valid" #valid>
240
+ <slot name="valid" v-bind="hintSlotScope" />
241
+ </template>
242
+ <template v-if="$slots.invalid" #invalid>
243
+ <slot name="invalid" v-bind="hintSlotScope" />
244
+ </template>
245
+ </HintSlot>
246
+ </div>
244
247
  </template>