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

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 (481) 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 +238 -129
  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 +1377 -1059
  64. package/dist/components/VvCombobox/VvCombobox.umd.js +1 -1
  65. package/dist/components/VvCombobox/VvCombobox.vue.d.ts +606 -680
  66. package/dist/components/VvCombobox/index.d.ts +488 -26
  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 +236 -128
  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 +367 -300
  123. package/dist/components/VvSelect/VvSelect.umd.js +1 -1
  124. package/dist/components/VvSelect/VvSelect.vue.d.ts +232 -203
  125. package/dist/components/VvSelect/index.d.ts +195 -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 +4575 -2534
  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/Combobox/Combobox.stories.d.ts +1 -0
  199. package/dist/stories/Combobox/ComboboxMultiple.stories.d.ts +1 -0
  200. package/dist/stories/Dialog/Dialog.settings.d.ts +2 -47
  201. package/dist/stories/Dialog/DialogModifiers.stories.d.ts +8 -0
  202. package/dist/stories/Dropdown/Dropdown.settings.d.ts +2 -205
  203. package/dist/stories/Icon/Icon.settings.d.ts +3 -68
  204. package/dist/stories/InputFile/InputFile.settings.d.ts +6 -0
  205. package/dist/stories/InputFile/InputFile.stories.d.ts +12 -0
  206. package/dist/stories/InputFile/InputFileDropArea.stories.d.ts +9 -0
  207. package/dist/stories/InputFile/InputFileIconPosition.stories.d.ts +8 -0
  208. package/dist/stories/InputFile/InputFileSlots.stories.d.ts +7 -0
  209. package/dist/stories/InputText/InputText.settings.d.ts +2 -438
  210. package/dist/stories/Nav/Nav.settings.d.ts +2 -10
  211. package/dist/stories/Progress/Progress.settings.d.ts +2 -27
  212. package/dist/stories/Radio/Radio.settings.d.ts +1 -110
  213. package/dist/stories/RadioGroup/RadioGroup.settings.d.ts +1 -141
  214. package/dist/stories/Select/Select.settings.d.ts +2 -246
  215. package/dist/stories/Select/Select.stories.d.ts +1 -0
  216. package/dist/stories/Tab/Tab.settings.d.ts +2 -15
  217. package/dist/stories/Textarea/Textarea.settings.d.ts +2 -287
  218. package/dist/stories/argTypes.d.ts +27 -866
  219. package/dist/test/expect.d.ts +1 -1
  220. package/dist/test/options.d.ts +1 -1
  221. package/dist/test/sleep.d.ts +1 -1
  222. package/dist/types/alert.d.ts +9 -7
  223. package/dist/types/blurhash.d.ts +12 -0
  224. package/dist/types/generic.d.ts +1 -2
  225. package/dist/types/group.d.ts +37 -15
  226. package/dist/types/index.d.ts +7 -0
  227. package/dist/types/input-file.d.ts +16 -0
  228. package/dist/types/nav.d.ts +2 -2
  229. package/dist/utils/ObjectUtilities.d.ts +7 -8
  230. package/dist/workers/blurhash.d.ts +1 -0
  231. package/package.json +239 -246
  232. package/src/Volver.ts +245 -234
  233. package/src/assets/icons/detailed.json +1 -1
  234. package/src/assets/icons/normal.json +1 -1
  235. package/src/assets/icons/simple.json +1 -1
  236. package/src/components/VvAccordion/VvAccordion.vue +163 -100
  237. package/src/components/VvAccordion/index.ts +64 -79
  238. package/src/components/VvAccordionGroup/VvAccordionGroup.vue +223 -105
  239. package/src/components/VvAccordionGroup/index.ts +42 -42
  240. package/src/components/VvAction/VvAction.vue +144 -130
  241. package/src/components/VvAlert/VvAlert.vue +72 -70
  242. package/src/components/VvAlert/index.ts +149 -147
  243. package/src/components/VvAlertGroup/VvAlertGroup.vue +57 -56
  244. package/src/components/VvAlertGroup/index.ts +101 -117
  245. package/src/components/VvAvatar/VvAvatar.vue +20 -14
  246. package/src/components/VvAvatar/index.ts +5 -5
  247. package/src/components/VvAvatarGroup/VvAvatarGroup.vue +58 -53
  248. package/src/components/VvAvatarGroup/index.ts +21 -21
  249. package/src/components/VvBadge/VvBadge.vue +15 -14
  250. package/src/components/VvBadge/index.ts +2 -2
  251. package/src/components/VvBreadcrumb/VvBreadcrumb.vue +50 -48
  252. package/src/components/VvBreadcrumb/index.ts +3 -9
  253. package/src/components/VvButton/VvButton.vue +163 -152
  254. package/src/components/VvButton/index.ts +103 -110
  255. package/src/components/VvButtonGroup/VvButtonGroup.vue +72 -64
  256. package/src/components/VvButtonGroup/index.ts +22 -21
  257. package/src/components/VvCard/VvCard.vue +30 -30
  258. package/src/components/VvCard/index.ts +2 -2
  259. package/src/components/VvCheckbox/VvCheckbox.vue +185 -183
  260. package/src/components/VvCheckbox/index.ts +44 -44
  261. package/src/components/VvCheckboxGroup/VvCheckboxGroup.vue +88 -87
  262. package/src/components/VvCombobox/VvCombobox.vue +639 -619
  263. package/src/components/VvCombobox/index.ts +206 -164
  264. package/src/components/VvDialog/VvDialog.vue +141 -129
  265. package/src/components/VvDialog/index.ts +38 -36
  266. package/src/components/VvDropdown/VvDropdown.vue +466 -445
  267. package/src/components/VvDropdown/VvDropdownAction.vue +37 -39
  268. package/src/components/VvDropdown/VvDropdownItem.vue +30 -26
  269. package/src/components/VvDropdown/VvDropdownOptgroup.vue +13 -12
  270. package/src/components/VvDropdown/VvDropdownOption.vue +47 -64
  271. package/src/components/VvDropdown/index.ts +61 -27
  272. package/src/components/VvIcon/README.md +1 -1
  273. package/src/components/VvIcon/VvIcon.vue +133 -133
  274. package/src/components/VvIcon/index.ts +84 -97
  275. package/src/components/VvInputFile/VvInputFile.vue +402 -0
  276. package/src/components/VvInputFile/index.ts +141 -0
  277. package/src/components/VvInputText/VvInputClearAction.ts +51 -47
  278. package/src/components/VvInputText/VvInputPasswordAction.ts +66 -62
  279. package/src/components/VvInputText/VvInputStepAction.ts +43 -43
  280. package/src/components/VvInputText/VvInputText.vue +638 -516
  281. package/src/components/VvInputText/VvInputTextActions.ts +86 -86
  282. package/src/components/VvInputText/index.ts +200 -185
  283. package/src/components/VvNav/VvNav.vue +40 -36
  284. package/src/components/VvNav/VvNavItem.vue +12 -12
  285. package/src/components/VvNav/VvNavSeparator.vue +6 -6
  286. package/src/components/VvNav/index.ts +2 -2
  287. package/src/components/VvProgress/VvProgress.vue +27 -27
  288. package/src/components/VvProgress/index.ts +28 -28
  289. package/src/components/VvRadio/VvRadio.vue +115 -112
  290. package/src/components/VvRadio/index.ts +28 -28
  291. package/src/components/VvRadioGroup/VvRadioGroup.vue +91 -90
  292. package/src/components/VvSelect/VvSelect.vue +262 -241
  293. package/src/components/VvSelect/index.ts +88 -63
  294. package/src/components/VvTab/VvTab.vue +79 -69
  295. package/src/components/VvTab/index.ts +12 -12
  296. package/src/components/VvTextarea/VvTextarea.vue +218 -219
  297. package/src/components/VvTextarea/index.ts +35 -35
  298. package/src/components/VvTooltip/VvTooltip.vue +22 -16
  299. package/src/components/VvTooltip/index.ts +12 -12
  300. package/src/components/common/HintSlot.ts +149 -150
  301. package/src/components/index.ts +10 -0
  302. package/src/composables/alert/useAlert.ts +76 -73
  303. package/src/composables/alert/useInjectAlert.ts +1 -1
  304. package/src/composables/alert/useProvideAlert.ts +10 -10
  305. package/src/composables/dropdown/useInjectDropdown.ts +6 -6
  306. package/src/composables/dropdown/useProvideDropdown.ts +63 -63
  307. package/src/composables/group/useInjectedGroupState.ts +46 -42
  308. package/src/composables/group/useProvideGroupState.ts +9 -15
  309. package/src/composables/index.ts +1 -0
  310. package/src/composables/useBlurhash.ts +68 -0
  311. package/src/composables/useComponentFocus.ts +9 -9
  312. package/src/composables/useComponentIcon.ts +36 -35
  313. package/src/composables/useDebouncedInput.ts +25 -25
  314. package/src/composables/useDefaults.ts +77 -76
  315. package/src/composables/useModifiers.ts +29 -29
  316. package/src/composables/useOptions.ts +52 -43
  317. package/src/composables/usePersistence.ts +74 -0
  318. package/src/composables/useTextCount.ts +44 -44
  319. package/src/composables/useUniqueId.ts +3 -2
  320. package/src/composables/useVolver.ts +1 -1
  321. package/src/constants.ts +97 -82
  322. package/src/directives/index.ts +3 -6
  323. package/src/directives/v-contextmenu.ts +34 -34
  324. package/src/directives/v-tooltip.ts +18 -9
  325. package/src/index.ts +6 -4
  326. package/src/props/index.ts +457 -380
  327. package/src/resolvers/unplugin.ts +146 -136
  328. package/src/shims.d.ts +4 -5
  329. package/src/stories/Accordion/Accordion.settings.ts +51 -50
  330. package/src/stories/Accordion/Accordion.stories.ts +21 -21
  331. package/src/stories/Accordion/Accordion.test.ts +56 -54
  332. package/src/stories/Accordion/AccordionSlots.stories.ts +13 -13
  333. package/src/stories/AccordionGroup/AccordionGroup.settings.ts +70 -67
  334. package/src/stories/AccordionGroup/AccordionGroup.stories.ts +41 -39
  335. package/src/stories/AccordionGroup/AccordionGroup.test.ts +49 -45
  336. package/src/stories/AccordionGroup/AccordionGroupSlots.stories.ts +35 -35
  337. package/src/stories/Alert/Alert.settings.ts +117 -116
  338. package/src/stories/Alert/Alert.stories.ts +30 -30
  339. package/src/stories/Alert/Alert.test.ts +78 -80
  340. package/src/stories/Alert/AlertModifiers.stories.ts +45 -45
  341. package/src/stories/Alert/AlertSlots.stories.ts +35 -35
  342. package/src/stories/AlertGroup/AlertGroup.settings.ts +107 -105
  343. package/src/stories/AlertGroup/AlertGroup.stories.ts +25 -25
  344. package/src/stories/AlertGroup/AlertGroup.test.ts +67 -69
  345. package/src/stories/AlertGroup/AlertGroupPosition.stories.ts +68 -68
  346. package/src/stories/AlertGroup/AlertGroupSlots.stories.ts +23 -23
  347. package/src/stories/AlertGroup/AlertGroupWithComposable.stories.ts +58 -58
  348. package/src/stories/Avatar/Avatar.settings.ts +29 -29
  349. package/src/stories/Avatar/Avatar.stories.ts +23 -23
  350. package/src/stories/Avatar/Avatar.test.ts +22 -24
  351. package/src/stories/Avatar/AvatarBadge.stories.ts +15 -15
  352. package/src/stories/Avatar/AvatarModifiers.stories.ts +61 -61
  353. package/src/stories/Avatar/AvatarSlots.stories.ts +18 -18
  354. package/src/stories/AvatarGroup/AvatarGroup.settings.ts +54 -53
  355. package/src/stories/AvatarGroup/AvatarGroup.stories.ts +17 -17
  356. package/src/stories/AvatarGroup/AvatarGroup.test.ts +24 -26
  357. package/src/stories/AvatarGroup/AvatarGroupModifiers.stories.ts +15 -15
  358. package/src/stories/AvatarGroup/AvatarGroupSlotDefault.stories.ts +17 -17
  359. package/src/stories/Badge/Badge.settings.ts +21 -20
  360. package/src/stories/Badge/Badge.stories.ts +24 -24
  361. package/src/stories/Badge/Badge.test.ts +8 -8
  362. package/src/stories/Badge/BadgeSlots.stories.ts +10 -10
  363. package/src/stories/Blurhash/BlurhashComposable.stories.ts +196 -0
  364. package/src/stories/Breadcrumb/Breadcrumb.settings.ts +35 -34
  365. package/src/stories/Breadcrumb/Breadcrumb.stories.ts +23 -23
  366. package/src/stories/Breadcrumb/Breadcrumb.test.ts +44 -43
  367. package/src/stories/Breadcrumb/BreadcrumbSlots.stories.ts +17 -17
  368. package/src/stories/Button/Button.settings.ts +146 -150
  369. package/src/stories/Button/Button.stories.ts +19 -19
  370. package/src/stories/Button/Button.test.ts +41 -42
  371. package/src/stories/Button/ButtonIcon.stories.ts +42 -42
  372. package/src/stories/Button/ButtonLink.stories.ts +24 -24
  373. package/src/stories/Button/ButtonLoading.stories.ts +22 -22
  374. package/src/stories/Button/ButtonModifiers.stories.ts +91 -91
  375. package/src/stories/Button/ButtonSlots.stories.ts +47 -47
  376. package/src/stories/Button/ButtonState.stories.ts +23 -23
  377. package/src/stories/Button/ButtonToggle.stories.ts +30 -30
  378. package/src/stories/ButtonGroup/ButtonGroup.settings.ts +33 -24
  379. package/src/stories/ButtonGroup/ButtonGroup.stories.ts +20 -20
  380. package/src/stories/ButtonGroup/ButtonGroup.test.ts +23 -26
  381. package/src/stories/ButtonGroup/ButtonGroupModifiers.stories.ts +20 -20
  382. package/src/stories/ButtonGroup/ButtonGroupSlots.stories.ts +18 -18
  383. package/src/stories/ButtonGroup/ButtonGroupToggle.stories.ts +22 -22
  384. package/src/stories/Card/Card.settings.ts +49 -48
  385. package/src/stories/Card/Card.stories.ts +22 -22
  386. package/src/stories/Card/Card.test.ts +14 -16
  387. package/src/stories/Card/CardSlots.stories.ts +42 -42
  388. package/src/stories/Checkbox/Checkbox.settings.ts +36 -35
  389. package/src/stories/Checkbox/Checkbox.stories.ts +57 -57
  390. package/src/stories/Checkbox/Checkbox.test.ts +63 -66
  391. package/src/stories/Checkbox/CheckboxBinary.stories.ts +18 -18
  392. package/src/stories/Checkbox/CheckboxSlots.stories.ts +15 -15
  393. package/src/stories/CheckboxGroup/CheckboxGroup.settings.ts +9 -9
  394. package/src/stories/CheckboxGroup/CheckboxGroup.stories.ts +50 -50
  395. package/src/stories/CheckboxGroup/CheckboxGroup.test.ts +63 -67
  396. package/src/stories/CheckboxGroup/CheckboxGroupOptions.stories.ts +34 -34
  397. package/src/stories/CheckboxGroup/CheckboxGroupSlots.stories.ts +23 -23
  398. package/src/stories/Combobox/Combobox.settings.ts +407 -384
  399. package/src/stories/Combobox/Combobox.stories.ts +116 -107
  400. package/src/stories/Combobox/Combobox.test.ts +91 -91
  401. package/src/stories/Combobox/ComboboxIconPosition.stories.ts +25 -24
  402. package/src/stories/Combobox/ComboboxMultiple.stories.ts +32 -22
  403. package/src/stories/Combobox/ComboboxOptions.stories.ts +81 -84
  404. package/src/stories/Combobox/ComboboxSlots.stories.ts +56 -55
  405. package/src/stories/Dialog/Dialog.settings.ts +49 -40
  406. package/src/stories/Dialog/Dialog.stories.ts +28 -28
  407. package/src/stories/Dialog/Dialog.test.ts +49 -54
  408. package/src/stories/Dialog/DialogModifiers.stories.ts +42 -0
  409. package/src/stories/Dialog/DialogSlots.stories.ts +20 -20
  410. package/src/stories/Dropdown/Dropdown.settings.ts +63 -62
  411. package/src/stories/Dropdown/Dropdown.stories.ts +59 -59
  412. package/src/stories/Dropdown/Dropdown.test.ts +9 -13
  413. package/src/stories/Dropdown/DropdownContextmenuDirective.stories.ts +16 -16
  414. package/src/stories/Dropdown/DropdownMultilevel.stories.ts +18 -18
  415. package/src/stories/Dropdown/DropdownSlots.stories.ts +50 -50
  416. package/src/stories/Icon/Icon.settings.ts +66 -65
  417. package/src/stories/Icon/Icon.stories.ts +28 -29
  418. package/src/stories/Icon/IconsCollection.stories.ts +22 -22
  419. package/src/stories/InputFile/InputFile.settings.ts +37 -0
  420. package/src/stories/InputFile/InputFile.stories.ts +89 -0
  421. package/src/stories/InputFile/InputFileDropArea.stories.ts +56 -0
  422. package/src/stories/InputFile/InputFileIconPosition.stories.ts +43 -0
  423. package/src/stories/InputFile/InputFileSlots.stories.ts +33 -0
  424. package/src/stories/InputText/InputText.settings.ts +246 -244
  425. package/src/stories/InputText/InputText.stories.ts +67 -67
  426. package/src/stories/InputText/InputText.test.ts +118 -121
  427. package/src/stories/InputText/InputTextIconPosition.stories.ts +24 -24
  428. package/src/stories/InputText/InputTextLength.stories.ts +33 -33
  429. package/src/stories/InputText/InputTextMask.stories.ts +91 -91
  430. package/src/stories/InputText/InputTextMinMax.stories.ts +30 -30
  431. package/src/stories/InputText/InputTextSlots.stories.ts +20 -20
  432. package/src/stories/InputText/InputTextType.stories.ts +70 -70
  433. package/src/stories/Nav/Nav.settings.ts +27 -27
  434. package/src/stories/Nav/Nav.stories.ts +18 -18
  435. package/src/stories/Nav/Nav.test.ts +10 -12
  436. package/src/stories/Nav/NavModifiers.stories.ts +25 -25
  437. package/src/stories/Progress/Progress.settings.ts +24 -23
  438. package/src/stories/Progress/Progress.stories.ts +23 -23
  439. package/src/stories/Progress/Progress.test.ts +4 -4
  440. package/src/stories/Radio/Radio.settings.ts +9 -9
  441. package/src/stories/Radio/Radio.stories.ts +47 -47
  442. package/src/stories/Radio/Radio.test.ts +54 -57
  443. package/src/stories/Radio/RadioSlots.stories.ts +15 -15
  444. package/src/stories/RadioGroup/RadioGroup.settings.ts +9 -9
  445. package/src/stories/RadioGroup/RadioGroup.stories.ts +51 -52
  446. package/src/stories/RadioGroup/RadioGroup.test.ts +63 -67
  447. package/src/stories/RadioGroup/RadioGroupOptions.stories.ts +35 -35
  448. package/src/stories/RadioGroup/RadioGroupSlots.stories.ts +23 -23
  449. package/src/stories/Select/Select.settings.ts +71 -70
  450. package/src/stories/Select/Select.stories.ts +75 -66
  451. package/src/stories/Select/Select.test.ts +67 -70
  452. package/src/stories/Select/SelectIconPosition.stories.ts +27 -26
  453. package/src/stories/Select/SelectOptions.stories.ts +55 -55
  454. package/src/stories/Select/SelectSlots.stories.ts +21 -20
  455. package/src/stories/Tab/Tab.settings.ts +34 -34
  456. package/src/stories/Tab/Tab.stories.ts +17 -17
  457. package/src/stories/Tab/Tab.test.ts +17 -19
  458. package/src/stories/Textarea/Textarea.settings.ts +79 -77
  459. package/src/stories/Textarea/Textarea.stories.ts +63 -63
  460. package/src/stories/Textarea/Textarea.test.ts +70 -73
  461. package/src/stories/Textarea/TextareaLength.stories.ts +33 -33
  462. package/src/stories/Textarea/TextareaSlots.stories.ts +20 -20
  463. package/src/stories/Textarea/TextareatIconPosition.stories.ts +24 -24
  464. package/src/stories/Tooltip/Tooltip.settings.ts +16 -17
  465. package/src/stories/Tooltip/Tooltip.stories.ts +18 -18
  466. package/src/stories/Tooltip/Tooltip.test.ts +53 -54
  467. package/src/stories/Tooltip/TooltipDirective.stories.ts +37 -37
  468. package/src/stories/argTypes.ts +506 -505
  469. package/src/test/expect.ts +72 -77
  470. package/src/test/options.ts +17 -16
  471. package/src/test/sleep.ts +3 -2
  472. package/src/test/types.d.ts +11 -11
  473. package/src/types/alert.ts +21 -17
  474. package/src/types/blurhash.ts +21 -0
  475. package/src/types/generic.ts +2 -3
  476. package/src/types/group.ts +34 -26
  477. package/src/types/index.ts +7 -0
  478. package/src/types/input-file.ts +18 -0
  479. package/src/types/nav.ts +13 -14
  480. package/src/utils/ObjectUtilities.ts +192 -188
  481. package/src/workers/blurhash.ts +9 -0
@@ -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
  }
@@ -1,175 +1,174 @@
1
- import type { ExtractPropTypes, Slots } from 'vue'
2
- import type { Ref } from 'vue'
1
+ import type { ExtractPropTypes, Slots, Ref } from 'vue'
3
2
 
4
3
  /**
5
4
  * Merge array of string
6
5
  * @param {string[] | string} items
7
- * @returns {string}
6
+ * @returns {string} merged string
8
7
  */
9
8
  function joinLines(items: string[] | string | unknown[] | undefined) {
10
- if (Array.isArray(items)) {
11
- return items.filter((item) => isString(item)).join(' ')
12
- }
13
- return items
9
+ if (Array.isArray(items)) {
10
+ return items.filter(item => isString(item)).join(' ')
11
+ }
12
+ return items
14
13
  }
15
14
 
16
15
  export type HintSlotProps = Readonly<
17
16
  ExtractPropTypes<{
18
- hintLabel: {
19
- type: StringConstructor
20
- default: ''
21
- required: true
22
- }
23
- modelValue: unknown
24
- valid: BooleanConstructor
25
- validLabel: (StringConstructor | ArrayConstructor)[]
26
- invalid: BooleanConstructor
27
- invalidLabel: (StringConstructor | ArrayConstructor)[]
28
- loading: BooleanConstructor
29
- loadingLabel: StringConstructor
17
+ hintLabel: {
18
+ type: StringConstructor
19
+ default: ''
20
+ required: true
21
+ }
22
+ modelValue: unknown
23
+ valid: BooleanConstructor
24
+ validLabel: (StringConstructor | ArrayConstructor)[]
25
+ invalid: BooleanConstructor
26
+ invalidLabel: (StringConstructor | ArrayConstructor)[]
27
+ loading: BooleanConstructor
28
+ loadingLabel: StringConstructor
30
29
  }>
31
30
  >
32
31
 
33
32
  /**
34
33
  * Return a vue component (HintSlot) to render and manage hint, errors, valid, loading state and messages
35
- * @param {HintSlotProps} parentProps vue props
36
- * @param {Slots} parentSlots vue slots
34
+ * @param {HintSlotProps} propsOrRef vue props
35
+ * @param {Slots} slots vue slots
37
36
  * @returns {Component} vue component
38
37
  */
39
38
  export function HintSlotFactory(
40
- propsOrRef: HintSlotProps | Ref<HintSlotProps>,
41
- slots: Slots,
39
+ propsOrRef: HintSlotProps | Ref<HintSlotProps>,
40
+ slots: Slots,
42
41
  ) {
43
- const props = computed(() => {
44
- if (isRef(propsOrRef)) {
45
- return propsOrRef.value
46
- }
47
- return propsOrRef
48
- })
42
+ const props = computed(() => {
43
+ if (isRef(propsOrRef)) {
44
+ return propsOrRef.value
45
+ }
46
+ return propsOrRef
47
+ })
49
48
 
50
- // label
51
- const invalidLabel = computed(() => joinLines(props.value.invalidLabel))
52
- const validLabel = computed(() => joinLines(props.value.validLabel))
53
- const loadingLabel = computed(() => props.value.loadingLabel)
54
- const hintLabel = computed(() => props.value.hintLabel)
49
+ // label
50
+ const invalidLabel = computed(() => joinLines(props.value.invalidLabel))
51
+ const validLabel = computed(() => joinLines(props.value.validLabel))
52
+ const loadingLabel = computed(() => props.value.loadingLabel)
53
+ const hintLabel = computed(() => props.value.hintLabel)
55
54
 
56
- // type
57
- const hasLoadingLabelOrSlot = computed(() =>
58
- Boolean(props.value.loading && (slots.loading || loadingLabel.value)),
59
- )
60
- const hasInvalidLabelOrSlot = computed(
61
- () =>
62
- !hasLoadingLabelOrSlot.value &&
63
- Boolean(
64
- props.value.invalid && (slots.invalid || invalidLabel.value),
65
- ),
66
- )
67
- const hasValidLabelOrSlot = computed(
68
- () =>
69
- !hasLoadingLabelOrSlot.value &&
70
- !hasInvalidLabelOrSlot.value &&
71
- Boolean(props.value.valid && (slots.valid || validLabel.value)),
72
- )
73
- const hasHintLabelOrSlot = computed(
74
- () =>
75
- !hasLoadingLabelOrSlot.value &&
76
- !hasInvalidLabelOrSlot.value &&
77
- !hasValidLabelOrSlot.value &&
78
- Boolean(slots.hint || hintLabel.value),
79
- )
80
- const isVisible = computed(
81
- () =>
82
- hasInvalidLabelOrSlot.value ||
83
- hasValidLabelOrSlot.value ||
84
- hasLoadingLabelOrSlot.value ||
85
- hasHintLabelOrSlot.value,
86
- )
87
- const hintSlotScope = computed(() => ({
88
- modelValue: props.value.modelValue,
89
- valid: props.value.valid,
90
- invalid: props.value.invalid,
91
- loading: props.value.loading,
92
- }))
93
- // component
94
- const HintSlot = defineComponent({
95
- name: 'HintSlot',
96
- props: {
97
- tag: {
98
- type: String,
99
- default: 'small',
100
- },
101
- },
102
- setup() {
103
- return {
104
- isVisible,
105
- invalidLabel,
106
- validLabel,
107
- loadingLabel,
108
- hintLabel,
109
- hasInvalidLabelOrSlot,
110
- hasValidLabelOrSlot,
111
- hasLoadingLabelOrSlot,
112
- hasHintLabelOrSlot,
113
- }
114
- },
115
- render() {
116
- if (this.isVisible) {
117
- let role
118
- if (this.hasInvalidLabelOrSlot) {
119
- role = 'alert'
120
- }
121
- if (this.hasValidLabelOrSlot) {
122
- role = 'status'
123
- }
124
- if (this.hasLoadingLabelOrSlot) {
125
- return h(
126
- this.tag,
127
- {
128
- role,
129
- },
130
- this.$slots.loading?.() ?? this.loadingLabel,
131
- )
132
- }
133
- if (this.hasInvalidLabelOrSlot) {
134
- return h(
135
- this.tag,
136
- {
137
- role,
138
- },
139
- this.$slots.invalid?.() ??
140
- this.$slots.invalid ??
141
- this.invalidLabel,
142
- )
143
- }
144
- if (this.hasValidLabelOrSlot) {
145
- return h(
146
- this.tag,
147
- {
148
- role,
149
- },
150
- this.$slots.valid?.() ?? this.validLabel,
151
- )
152
- }
153
- return h(
154
- this.tag,
155
- {
156
- role,
157
- },
158
- this.$slots.hint?.() ?? this.$slots.hint ?? this.hintLabel,
159
- )
160
- }
161
- return null
162
- },
163
- })
55
+ // type
56
+ const hasLoadingLabelOrSlot = computed(() =>
57
+ Boolean(props.value.loading && (slots.loading || loadingLabel.value)),
58
+ )
59
+ const hasInvalidLabelOrSlot = computed(
60
+ () =>
61
+ !hasLoadingLabelOrSlot.value
62
+ && Boolean(
63
+ props.value.invalid && (slots.invalid || invalidLabel.value),
64
+ ),
65
+ )
66
+ const hasValidLabelOrSlot = computed(
67
+ () =>
68
+ !hasLoadingLabelOrSlot.value
69
+ && !hasInvalidLabelOrSlot.value
70
+ && Boolean(props.value.valid && (slots.valid || validLabel.value)),
71
+ )
72
+ const hasHintLabelOrSlot = computed(
73
+ () =>
74
+ !hasLoadingLabelOrSlot.value
75
+ && !hasInvalidLabelOrSlot.value
76
+ && !hasValidLabelOrSlot.value
77
+ && Boolean(slots.hint || hintLabel.value),
78
+ )
79
+ const isVisible = computed(
80
+ () =>
81
+ hasInvalidLabelOrSlot.value
82
+ || hasValidLabelOrSlot.value
83
+ || hasLoadingLabelOrSlot.value
84
+ || hasHintLabelOrSlot.value,
85
+ )
86
+ const hintSlotScope = computed(() => ({
87
+ modelValue: props.value.modelValue,
88
+ valid: props.value.valid,
89
+ invalid: props.value.invalid,
90
+ loading: props.value.loading,
91
+ }))
92
+ // component
93
+ const HintSlot = defineComponent({
94
+ name: 'HintSlot',
95
+ props: {
96
+ tag: {
97
+ type: String,
98
+ default: 'small',
99
+ },
100
+ },
101
+ setup() {
102
+ return {
103
+ isVisible,
104
+ invalidLabel,
105
+ validLabel,
106
+ loadingLabel,
107
+ hintLabel,
108
+ hasInvalidLabelOrSlot,
109
+ hasValidLabelOrSlot,
110
+ hasLoadingLabelOrSlot,
111
+ hasHintLabelOrSlot,
112
+ }
113
+ },
114
+ render() {
115
+ if (this.isVisible) {
116
+ let role
117
+ if (this.hasInvalidLabelOrSlot) {
118
+ role = 'alert'
119
+ }
120
+ if (this.hasValidLabelOrSlot) {
121
+ role = 'status'
122
+ }
123
+ if (this.hasLoadingLabelOrSlot) {
124
+ return h(
125
+ this.tag,
126
+ {
127
+ role,
128
+ },
129
+ this.$slots.loading?.() ?? this.loadingLabel,
130
+ )
131
+ }
132
+ if (this.hasInvalidLabelOrSlot) {
133
+ return h(
134
+ this.tag,
135
+ {
136
+ role,
137
+ },
138
+ this.$slots.invalid?.()
139
+ ?? this.$slots.invalid
140
+ ?? this.invalidLabel,
141
+ )
142
+ }
143
+ if (this.hasValidLabelOrSlot) {
144
+ return h(
145
+ this.tag,
146
+ {
147
+ role,
148
+ },
149
+ this.$slots.valid?.() ?? this.validLabel,
150
+ )
151
+ }
152
+ return h(
153
+ this.tag,
154
+ {
155
+ role,
156
+ },
157
+ this.$slots.hint?.() ?? this.$slots.hint ?? this.hintLabel,
158
+ )
159
+ }
160
+ return null
161
+ },
162
+ })
164
163
 
165
- return {
166
- hasInvalidLabelOrSlot,
167
- hasHintLabelOrSlot,
168
- hasValidLabelOrSlot,
169
- hasLoadingLabelOrSlot,
170
- hintSlotScope,
171
- HintSlot,
172
- }
164
+ return {
165
+ hasInvalidLabelOrSlot,
166
+ hasHintLabelOrSlot,
167
+ hasValidLabelOrSlot,
168
+ hasLoadingLabelOrSlot,
169
+ hintSlotScope,
170
+ HintSlot,
171
+ }
173
172
  }
174
173
 
175
174
  export default HintSlotFactory
@@ -2,6 +2,9 @@ export { default as VvAccordion } from './VvAccordion/VvAccordion.vue'
2
2
  export { default as VvAccordionGroup } from './VvAccordionGroup/VvAccordionGroup.vue'
3
3
  export { default as VvAction } from './VvAction/VvAction.vue'
4
4
  export { default as VvAlert } from './VvAlert/VvAlert.vue'
5
+ export { default as VvAlertGroup } from './VvAlertGroup/VvAlertGroup.vue'
6
+ export { default as VvAvatar } from './VvAvatar/VvAvatar.vue'
7
+ export { default as VvAvatarGroup } from './VvAvatarGroup/VvAvatarGroup.vue'
5
8
  export { default as VvBadge } from './VvBadge/VvBadge.vue'
6
9
  export { default as VvBreadcrumb } from './VvBreadcrumb/VvBreadcrumb.vue'
7
10
  export { default as VvButton } from './VvButton/VvButton.vue'
@@ -12,9 +15,15 @@ export { default as VvCheckboxGroup } from './VvCheckboxGroup/VvCheckboxGroup.vu
12
15
  export { default as VvCombobox } from './VvCombobox/VvCombobox.vue'
13
16
  export { default as VvDialog } from './VvDialog/VvDialog.vue'
14
17
  export { default as VvDropdown } from './VvDropdown/VvDropdown.vue'
18
+ export { default as VvDropdownAction } from './VvDropdown/VvDropdownAction.vue'
19
+ export { default as VvDropdownItem } from './VvDropdown/VvDropdownItem.vue'
20
+ export { default as VvDropdownOptgroup } from './VvDropdown/VvDropdownOptgroup.vue'
21
+ export { default as VvDropdownOption } from './VvDropdown/VvDropdownOption.vue'
15
22
  export { default as VvIcon } from './VvIcon/VvIcon.vue'
16
23
  export { default as VvInputText } from './VvInputText/VvInputText.vue'
17
24
  export { default as VvNav } from './VvNav/VvNav.vue'
25
+ export { default as VvNavItem } from './VvNav/VvNavItem.vue'
26
+ export { default as VvNavSeparator } from './VvNav/VvNavSeparator.vue'
18
27
  export { default as VvProgress } from './VvProgress/VvProgress.vue'
19
28
  export { default as VvRadio } from './VvRadio/VvRadio.vue'
20
29
  export { default as VvRadioGroup } from './VvRadioGroup/VvRadioGroup.vue'
@@ -22,3 +31,4 @@ export { default as VvSelect } from './VvSelect/VvSelect.vue'
22
31
  export { default as VvTab } from './VvTab/VvTab.vue'
23
32
  export { default as VvTextarea } from './VvTextarea/VvTextarea.vue'
24
33
  export { default as VvTooltip } from './VvTooltip/VvTooltip.vue'
34
+ export { default as VvInputFile } from './VvInputFile/VvInputFile.vue'