@volverjs/ui-vue 0.0.6-beta.6 → 0.0.6

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 (443) hide show
  1. package/README.md +3 -5
  2. package/auto-imports.d.ts +11 -0
  3. package/dist/components/VvAccordion/VvAccordion.es.js +220 -4
  4. package/dist/components/VvAccordion/VvAccordion.umd.js +1 -1
  5. package/dist/components/VvAccordion/VvAccordion.vue.d.ts +8 -8
  6. package/dist/components/VvAccordion/index.d.ts +1 -4
  7. package/dist/components/VvAccordionGroup/VvAccordionGroup.es.js +221 -8
  8. package/dist/components/VvAccordionGroup/VvAccordionGroup.umd.js +1 -1
  9. package/dist/components/VvAccordionGroup/VvAccordionGroup.vue.d.ts +6 -6
  10. package/dist/components/VvAccordionGroup/index.d.ts +2 -5
  11. package/dist/components/VvAction/VvAction.es.js +12 -8
  12. package/dist/components/VvAction/VvAction.umd.js +1 -1
  13. package/dist/components/VvAction/VvAction.vue.d.ts +4 -4
  14. package/dist/components/VvAction/index.d.ts +1 -1
  15. package/dist/components/VvAlert/VvAlert.es.js +661 -0
  16. package/dist/components/VvAlert/VvAlert.umd.js +1 -0
  17. package/dist/components/VvAlert/VvAlert.vue.d.ts +104 -0
  18. package/dist/components/VvAlert/index.d.ts +95 -0
  19. package/dist/components/VvAlertGroup/VvAlertGroup.es.js +799 -0
  20. package/dist/components/VvAlertGroup/VvAlertGroup.umd.js +1 -0
  21. package/dist/components/VvAlertGroup/VvAlertGroup.vue.d.ts +89 -0
  22. package/dist/components/VvAlertGroup/index.d.ts +55 -0
  23. package/dist/components/VvAvatar/VvAvatar.es.js +3 -3
  24. package/dist/components/VvAvatar/VvAvatar.vue.d.ts +2 -2
  25. package/dist/components/VvAvatarGroup/VvAvatarGroup.es.js +3 -3
  26. package/dist/components/VvAvatarGroup/VvAvatarGroup.vue.d.ts +2 -2
  27. package/dist/components/VvBadge/VvBadge.es.js +3 -3
  28. package/dist/components/VvBadge/VvBadge.vue.d.ts +2 -2
  29. package/dist/components/VvBreadcrumb/VvBreadcrumb.es.js +3 -3
  30. package/dist/components/VvBreadcrumb/VvBreadcrumb.vue.d.ts +3 -3
  31. package/dist/components/VvButton/VvButton.es.js +39 -29
  32. package/dist/components/VvButton/VvButton.umd.js +1 -1
  33. package/dist/components/VvButton/VvButton.vue.d.ts +13 -13
  34. package/dist/components/VvButton/index.d.ts +2 -2
  35. package/dist/components/VvButtonGroup/VvButtonGroup.es.js +3 -3
  36. package/dist/components/VvButtonGroup/VvButtonGroup.vue.d.ts +4 -4
  37. package/dist/components/VvCard/VvCard.es.js +221 -2
  38. package/dist/components/VvCard/VvCard.umd.js +1 -1
  39. package/dist/components/VvCard/VvCard.vue.d.ts +5 -5
  40. package/dist/components/VvCheckbox/VvCheckbox.es.js +154 -101
  41. package/dist/components/VvCheckbox/VvCheckbox.umd.js +1 -1
  42. package/dist/components/VvCheckbox/VvCheckbox.vue.d.ts +46 -10
  43. package/dist/components/VvCheckbox/index.d.ts +8 -3
  44. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.es.js +190 -104
  45. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.umd.js +1 -1
  46. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.vue.d.ts +44 -8
  47. package/dist/components/VvCheckboxGroup/index.d.ts +8 -3
  48. package/dist/components/VvCombobox/VvCombobox.es.js +271 -174
  49. package/dist/components/VvCombobox/VvCombobox.umd.js +1 -1
  50. package/dist/components/VvCombobox/VvCombobox.vue.d.ts +73 -37
  51. package/dist/components/VvCombobox/index.d.ts +13 -7
  52. package/dist/components/VvDialog/VvDialog.es.js +44 -33
  53. package/dist/components/VvDialog/VvDialog.umd.js +1 -1
  54. package/dist/components/VvDialog/VvDialog.vue.d.ts +7 -7
  55. package/dist/components/VvDialog/index.d.ts +2 -2
  56. package/dist/components/VvDropdown/VvDropdown.es.js +39 -25
  57. package/dist/components/VvDropdown/VvDropdown.umd.js +1 -1
  58. package/dist/components/VvDropdown/VvDropdown.vue.d.ts +21 -17
  59. package/dist/components/VvDropdown/VvDropdownAction.vue.d.ts +4 -4
  60. package/dist/components/VvDropdown/VvDropdownItem.vue.d.ts +2 -2
  61. package/dist/components/VvDropdown/VvDropdownOptgroup.vue.d.ts +1 -1
  62. package/dist/components/VvDropdown/VvDropdownOption.vue.d.ts +4 -4
  63. package/dist/components/VvDropdown/index.d.ts +1 -1
  64. package/dist/components/VvDropdownAction/VvDropdownAction.es.js +17 -11
  65. package/dist/components/VvDropdownAction/VvDropdownAction.umd.js +1 -1
  66. package/dist/components/VvDropdownItem/VvDropdownItem.es.js +9 -5
  67. package/dist/components/VvDropdownItem/VvDropdownItem.umd.js +1 -1
  68. package/dist/components/VvDropdownOptgroup/VvDropdownOptgroup.es.js +3 -3
  69. package/dist/components/VvDropdownOption/VvDropdownOption.es.js +12 -8
  70. package/dist/components/VvDropdownOption/VvDropdownOption.umd.js +1 -1
  71. package/dist/components/VvIcon/VvIcon.es.js +25 -19
  72. package/dist/components/VvIcon/VvIcon.umd.js +1 -1
  73. package/dist/components/VvIcon/VvIcon.vue.d.ts +3 -3
  74. package/dist/components/VvIcon/index.d.ts +2 -2
  75. package/dist/components/VvInputText/VvInputClearAction.d.ts +2 -2
  76. package/dist/components/VvInputText/VvInputPasswordAction.d.ts +1 -1
  77. package/dist/components/VvInputText/VvInputStepAction.d.ts +1 -1
  78. package/dist/components/VvInputText/VvInputText.es.js +165 -141
  79. package/dist/components/VvInputText/VvInputText.umd.js +1 -1
  80. package/dist/components/VvInputText/VvInputText.vue.d.ts +46 -22
  81. package/dist/components/VvInputText/index.d.ts +5 -5
  82. package/dist/components/VvNav/VvNav.es.js +12 -8
  83. package/dist/components/VvNav/VvNav.umd.js +1 -1
  84. package/dist/components/VvNav/VvNav.vue.d.ts +1 -1
  85. package/dist/components/VvNavItemTitle/VvNavItemTitle.vue.d.ts +1 -1
  86. package/dist/components/VvNavSeparator/VvNavSeparator.d.ts +1 -1
  87. package/dist/components/VvProgress/VvProgress.es.js +3 -3
  88. package/dist/components/VvProgress/VvProgress.vue.d.ts +1 -1
  89. package/dist/components/VvRadio/VvRadio.es.js +154 -101
  90. package/dist/components/VvRadio/VvRadio.umd.js +1 -1
  91. package/dist/components/VvRadio/VvRadio.vue.d.ts +46 -10
  92. package/dist/components/VvRadio/index.d.ts +8 -3
  93. package/dist/components/VvRadioGroup/VvRadioGroup.es.js +190 -104
  94. package/dist/components/VvRadioGroup/VvRadioGroup.umd.js +1 -1
  95. package/dist/components/VvRadioGroup/VvRadioGroup.vue.d.ts +44 -8
  96. package/dist/components/VvRadioGroup/index.d.ts +8 -3
  97. package/dist/components/VvSelect/VvSelect.es.js +166 -140
  98. package/dist/components/VvSelect/VvSelect.umd.js +1 -1
  99. package/dist/components/VvSelect/VvSelect.vue.d.ts +42 -18
  100. package/dist/components/VvSelect/index.d.ts +4 -4
  101. package/dist/components/VvTab/VvTab.es.js +12 -8
  102. package/dist/components/VvTab/VvTab.umd.js +1 -1
  103. package/dist/components/VvTab/VvTab.vue.d.ts +1 -1
  104. package/dist/components/VvTextarea/VvTextarea.es.js +163 -139
  105. package/dist/components/VvTextarea/VvTextarea.umd.js +1 -1
  106. package/dist/components/VvTextarea/VvTextarea.vue.d.ts +40 -16
  107. package/dist/components/VvTextarea/index.d.ts +3 -3
  108. package/dist/components/VvTooltip/VvTooltip.es.js +3 -3
  109. package/dist/components/VvTooltip/VvTooltip.vue.d.ts +2 -2
  110. package/dist/components/common/HintSlot.d.ts +38 -12
  111. package/dist/components/index.es.js +1066 -768
  112. package/dist/components/index.umd.js +1 -1
  113. package/dist/composables/alert/useInjectAlert.d.ts +9 -0
  114. package/dist/composables/alert/useProvideAlert.d.ts +10 -0
  115. package/dist/composables/dropdown/useInjectDropdown.d.ts +17 -16
  116. package/dist/composables/dropdown/useProvideDropdown.d.ts +7 -3
  117. package/dist/composables/useOptions.d.ts +2 -2
  118. package/dist/composables/useVolver.d.ts +1 -2
  119. package/dist/constants.d.ts +33 -4
  120. package/dist/directives/index.es.js +3 -3
  121. package/dist/directives/v-tooltip.es.js +3 -3
  122. package/dist/icons.es.js +3 -3
  123. package/dist/icons.umd.js +1 -1
  124. package/dist/props/index.d.ts +38 -16
  125. package/dist/resolvers/unplugin.es.js +6 -3
  126. package/dist/resolvers/unplugin.umd.js +1 -1
  127. package/dist/stories/Accordion/Accordion.settings.d.ts +18 -17
  128. package/dist/stories/Accordion/Accordion.stories.d.ts +7 -0
  129. package/dist/stories/Accordion/AccordionSlots.stories.d.ts +7 -0
  130. package/dist/stories/AccordionGroup/AccordionGroup.settings.d.ts +23 -4
  131. package/dist/stories/AccordionGroup/AccordionGroup.stories.d.ts +134 -0
  132. package/dist/stories/AccordionGroup/AccordionGroupSlots.stories.d.ts +894 -0
  133. package/dist/stories/Alert/Alert.settings.d.ts +105 -0
  134. package/dist/stories/Alert/Alert.stories.d.ts +9 -0
  135. package/dist/stories/Alert/Alert.test.d.ts +2 -0
  136. package/dist/stories/Alert/AlertModifiers.stories.d.ts +13 -0
  137. package/dist/stories/Alert/AlertSlots.stories.d.ts +10 -0
  138. package/dist/stories/AlertGroup/AlertGroup.settings.d.ts +97 -0
  139. package/dist/stories/AlertGroup/AlertGroup.stories.d.ts +8 -0
  140. package/dist/stories/AlertGroup/AlertGroup.test.d.ts +2 -0
  141. package/dist/stories/AlertGroup/AlertGroupPosition.stories.d.ts +14 -0
  142. package/dist/stories/AlertGroup/AlertGroupSlots.stories.d.ts +8 -0
  143. package/dist/stories/Avatar/Avatar.settings.d.ts +2 -33
  144. package/dist/stories/Avatar/Avatar.stories.d.ts +7 -0
  145. package/dist/stories/Avatar/AvatarBadge.stories.d.ts +6 -0
  146. package/dist/stories/Avatar/AvatarModifiers.stories.d.ts +13 -0
  147. package/dist/stories/Avatar/AvatarSlots.stories.d.ts +6 -0
  148. package/dist/stories/AvatarGroup/AvatarGroup.settings.d.ts +0 -6
  149. package/dist/stories/AvatarGroup/AvatarGroup.stories.d.ts +6 -0
  150. package/dist/stories/AvatarGroup/AvatarGroupModifiers.stories.d.ts +7 -0
  151. package/dist/stories/AvatarGroup/AvatarGroupSlotDefault.stories.d.ts +6 -0
  152. package/dist/stories/Badge/Badge.settings.d.ts +0 -3
  153. package/dist/stories/Badge/Badge.stories.d.ts +7 -0
  154. package/dist/stories/Badge/BadgeSlots.stories.d.ts +6 -0
  155. package/dist/stories/Breadcrumb/Breadcrumb.stories.d.ts +7 -0
  156. package/dist/stories/Breadcrumb/Breadcrumb.test.d.ts +1 -1
  157. package/dist/stories/Breadcrumb/BreadcrumbSlots.stories.d.ts +6 -0
  158. package/dist/stories/Button/Button.settings.d.ts +1 -18
  159. package/dist/stories/Button/Button.stories.d.ts +6 -0
  160. package/dist/stories/Button/ButtonIcon.stories.d.ts +10 -0
  161. package/dist/stories/Button/ButtonLink.stories.d.ts +7 -0
  162. package/dist/stories/Button/ButtonLoading.stories.d.ts +8 -0
  163. package/dist/stories/Button/ButtonModifiers.stories.d.ts +17 -0
  164. package/dist/stories/Button/ButtonSlots.stories.d.ts +9 -0
  165. package/dist/stories/Button/ButtonState.stories.d.ts +8 -0
  166. package/dist/stories/Button/ButtonToggle.stories.d.ts +9 -0
  167. package/dist/stories/ButtonGroup/ButtonGroup.settings.d.ts +0 -4
  168. package/dist/stories/ButtonGroup/ButtonGroup.stories.d.ts +6 -0
  169. package/dist/stories/ButtonGroup/ButtonGroupModifiers.stories.d.ts +8 -0
  170. package/dist/stories/ButtonGroup/ButtonGroupSlots.stories.d.ts +6 -0
  171. package/dist/stories/ButtonGroup/ButtonGroupToggle.stories.d.ts +8 -0
  172. package/dist/stories/Card/Card.settings.d.ts +0 -3
  173. package/dist/stories/Card/Card.stories.d.ts +6 -0
  174. package/dist/stories/Card/CardSlots.stories.d.ts +9 -0
  175. package/dist/stories/Checkbox/Checkbox.settings.d.ts +1 -21
  176. package/dist/stories/Checkbox/Checkbox.stories.d.ts +13 -0
  177. package/dist/stories/Checkbox/CheckboxBinary.stories.d.ts +7 -0
  178. package/dist/stories/Checkbox/CheckboxSlots.stories.d.ts +7 -0
  179. package/dist/stories/CheckboxGroup/CheckboxGroup.settings.d.ts +1 -27
  180. package/dist/stories/CheckboxGroup/CheckboxGroup.stories.d.ts +12 -0
  181. package/dist/stories/CheckboxGroup/CheckboxGroupOptions.stories.d.ts +8 -0
  182. package/dist/stories/CheckboxGroup/CheckboxGroupSlots.stories.d.ts +7 -0
  183. package/dist/stories/Combobox/Combobox.settings.d.ts +2 -54
  184. package/dist/stories/Combobox/Combobox.stories.d.ts +21 -0
  185. package/dist/stories/Combobox/ComboboxIconPosition.stories.d.ts +8 -0
  186. package/dist/stories/Combobox/ComboboxMultiple.stories.d.ts +8 -0
  187. package/dist/stories/Combobox/ComboboxOptions.stories.d.ts +9 -0
  188. package/dist/stories/Combobox/ComboboxSlots.stories.d.ts +10 -0
  189. package/dist/stories/Dialog/Dialog.settings.d.ts +1 -1
  190. package/dist/stories/Dialog/Dialog.stories.d.ts +7 -0
  191. package/dist/stories/Dialog/DialogSlots.stories.d.ts +8 -0
  192. package/dist/stories/Dropdown/Dropdown.settings.d.ts +1 -1
  193. package/dist/stories/Dropdown/Dropdown.stories.d.ts +9 -0
  194. package/dist/stories/Dropdown/DropdownContextmenuDirective.stories.d.ts +6 -0
  195. package/dist/stories/Dropdown/DropdownMultilevel.stories.d.ts +6 -0
  196. package/dist/stories/Dropdown/DropdownSlots.stories.d.ts +8 -0
  197. package/dist/stories/Icon/Icon.settings.d.ts +1 -3
  198. package/dist/stories/Icon/Icon.stories.d.ts +8 -0
  199. package/dist/stories/Icon/IconsCollection.stories.d.ts +6 -0
  200. package/dist/stories/InputText/InputText.settings.d.ts +1 -74
  201. package/dist/stories/InputText/InputText.stories.d.ts +15 -0
  202. package/dist/stories/InputText/InputTextIconPosition.stories.d.ts +8 -0
  203. package/dist/stories/InputText/InputTextLength.stories.d.ts +10 -0
  204. package/dist/stories/InputText/InputTextMinMax.stories.d.ts +9 -0
  205. package/dist/stories/InputText/InputTextSlots.stories.d.ts +8 -0
  206. package/dist/stories/InputText/InputTextType.stories.d.ts +18 -0
  207. package/dist/stories/Nav/Nav.settings.d.ts +0 -3
  208. package/dist/stories/Nav/Nav.stories.d.ts +6 -0
  209. package/dist/stories/Nav/NavModifiers.stories.d.ts +9 -0
  210. package/dist/stories/Progress/Progress.settings.d.ts +0 -6
  211. package/dist/stories/Progress/Progress.stories.d.ts +7 -0
  212. package/dist/stories/Radio/Radio.settings.d.ts +1 -19
  213. package/dist/stories/Radio/Radio.stories.d.ts +11 -0
  214. package/dist/stories/Radio/RadioSlots.stories.d.ts +7 -0
  215. package/dist/stories/RadioGroup/RadioGroup.settings.d.ts +1 -27
  216. package/dist/stories/RadioGroup/RadioGroup.stories.d.ts +12 -0
  217. package/dist/stories/RadioGroup/RadioGroupOptions.stories.d.ts +8 -0
  218. package/dist/stories/RadioGroup/RadioGroupSlots.stories.d.ts +7 -0
  219. package/dist/stories/Select/Select.settings.d.ts +1 -47
  220. package/dist/stories/Select/Select.stories.d.ts +15 -0
  221. package/dist/stories/Select/SelectIconPosition.stories.d.ts +8 -0
  222. package/dist/stories/Select/SelectOptions.stories.d.ts +9 -0
  223. package/dist/stories/Select/SelectSlots.stories.d.ts +8 -0
  224. package/dist/stories/Tab/Tab.stories.d.ts +6 -0
  225. package/dist/stories/Textarea/Textarea.settings.d.ts +1 -43
  226. package/dist/stories/Textarea/Textarea.stories.d.ts +14 -0
  227. package/dist/stories/Textarea/TextareaLength.stories.d.ts +10 -0
  228. package/dist/stories/Textarea/TextareaSlots.stories.d.ts +8 -0
  229. package/dist/stories/Textarea/TextareatIconPosition.stories.d.ts +8 -0
  230. package/dist/stories/Tooltip/Tooltip.settings.d.ts +2 -39
  231. package/dist/stories/Tooltip/Tooltip.stories.d.ts +6 -0
  232. package/dist/stories/Tooltip/TooltipDirective.stories.d.ts +10 -0
  233. package/dist/stories/argTypes.d.ts +5 -125
  234. package/package.json +68 -52
  235. package/src/assets/icons/detailed.json +1 -1
  236. package/src/assets/icons/normal.json +1 -1
  237. package/src/assets/icons/simple.json +1 -1
  238. package/src/components/VvAccordion/index.ts +2 -4
  239. package/src/components/VvAccordionGroup/index.ts +3 -4
  240. package/src/components/VvAction/VvAction.vue +1 -1
  241. package/src/components/VvAlert/VvAlert.vue +54 -0
  242. package/src/components/VvAlert/index.ts +162 -0
  243. package/src/components/VvAlertGroup/VvAlertGroup.vue +34 -0
  244. package/src/components/VvAlertGroup/index.ts +122 -0
  245. package/src/components/VvCard/index.ts +3 -1
  246. package/src/components/VvCheckbox/VvCheckbox.vue +23 -2
  247. package/src/components/VvCheckboxGroup/VvCheckboxGroup.vue +15 -2
  248. package/src/components/VvCombobox/VvCombobox.vue +41 -24
  249. package/src/components/VvCombobox/index.ts +9 -3
  250. package/src/components/VvDialog/VvDialog.vue +11 -7
  251. package/src/components/VvDialog/index.ts +2 -2
  252. package/src/components/VvDropdown/VvDropdown.vue +23 -5
  253. package/src/components/VvDropdown/VvDropdownItem.vue +2 -2
  254. package/src/components/VvIcon/VvIcon.vue +37 -34
  255. package/src/components/VvIcon/index.ts +2 -2
  256. package/src/components/VvInputText/VvInputText.vue +26 -9
  257. package/src/components/VvRadio/VvRadio.vue +23 -2
  258. package/src/components/VvRadioGroup/VvRadioGroup.vue +15 -2
  259. package/src/components/VvSelect/VvSelect.vue +26 -9
  260. package/src/components/VvTextarea/VvTextarea.vue +26 -9
  261. package/src/components/common/HintSlot.ts +129 -170
  262. package/src/composables/alert/useInjectAlert.ts +8 -0
  263. package/src/composables/alert/useProvideAlert.ts +23 -0
  264. package/src/composables/dropdown/useInjectDropdown.ts +3 -28
  265. package/src/composables/dropdown/useProvideDropdown.ts +14 -15
  266. package/src/composables/useOptions.ts +9 -7
  267. package/src/composables/useVolver.ts +1 -2
  268. package/src/constants.ts +42 -4
  269. package/src/props/index.ts +5 -3
  270. package/src/resolvers/unplugin.ts +6 -3
  271. package/src/stories/Accordion/Accordion.settings.ts +18 -7
  272. package/src/stories/Accordion/Accordion.stories.ts +45 -0
  273. package/src/stories/Accordion/AccordionSlots.stories.ts +29 -0
  274. package/src/stories/AccordionGroup/AccordionGroup.settings.ts +22 -0
  275. package/src/stories/AccordionGroup/AccordionGroup.stories.ts +62 -0
  276. package/src/stories/AccordionGroup/AccordionGroupSlots.stories.ts +53 -0
  277. package/src/stories/Alert/Alert.settings.ts +110 -0
  278. package/src/stories/Alert/Alert.stories.ts +60 -0
  279. package/src/stories/Alert/Alert.test.ts +95 -0
  280. package/src/stories/Alert/AlertModifiers.stories.ts +77 -0
  281. package/src/stories/Alert/AlertSlots.stories.ts +74 -0
  282. package/src/stories/AlertGroup/AlertGroup.settings.ts +110 -0
  283. package/src/stories/AlertGroup/AlertGroup.stories.ts +50 -0
  284. package/src/stories/AlertGroup/AlertGroup.test.ts +76 -0
  285. package/src/stories/AlertGroup/AlertGroupPosition.stories.ts +103 -0
  286. package/src/stories/AlertGroup/AlertGroupSlots.stories.ts +67 -0
  287. package/src/stories/Avatar/Avatar.settings.ts +7 -6
  288. package/src/stories/Avatar/Avatar.stories.ts +42 -0
  289. package/src/stories/Avatar/Avatar.test.ts +1 -1
  290. package/src/stories/Avatar/AvatarBadge.stories.ts +36 -0
  291. package/src/stories/Avatar/AvatarModifiers.stories.ts +100 -0
  292. package/src/stories/Avatar/AvatarSlots.stories.ts +34 -0
  293. package/src/stories/AvatarGroup/AvatarGroup.stories.ts +35 -0
  294. package/src/stories/AvatarGroup/AvatarGroupModifiers.stories.ts +31 -0
  295. package/src/stories/AvatarGroup/{AvatarGroupSlotDefault.stories.mdx → AvatarGroupSlotDefault.stories.ts} +24 -30
  296. package/src/stories/Badge/Badge.stories.ts +43 -0
  297. package/src/stories/Badge/BadgeSlots.stories.ts +23 -0
  298. package/src/stories/Breadcrumb/Breadcrumb.stories.ts +41 -0
  299. package/src/stories/Breadcrumb/Breadcrumb.test.ts +1 -1
  300. package/src/stories/Breadcrumb/BreadcrumbSlots.stories.ts +37 -0
  301. package/src/stories/Button/Button.settings.ts +2 -11
  302. package/src/stories/Button/Button.stories.ts +38 -0
  303. package/src/stories/Button/ButtonIcon.stories.ts +67 -0
  304. package/src/stories/Button/ButtonLink.stories.ts +40 -0
  305. package/src/stories/Button/ButtonLoading.stories.ts +41 -0
  306. package/src/stories/Button/ButtonModifiers.stories.ts +158 -0
  307. package/src/stories/Button/ButtonSlots.stories.ts +87 -0
  308. package/src/stories/Button/ButtonState.stories.ts +42 -0
  309. package/src/stories/Button/ButtonToggle.stories.ts +52 -0
  310. package/src/stories/ButtonGroup/ButtonGroup.stories.ts +39 -0
  311. package/src/stories/ButtonGroup/ButtonGroupModifiers.stories.ts +39 -0
  312. package/src/stories/ButtonGroup/ButtonGroupSlots.stories.ts +38 -0
  313. package/src/stories/ButtonGroup/ButtonGroupToggle.stories.ts +41 -0
  314. package/src/stories/Card/Card.stories.ts +46 -0
  315. package/src/stories/Card/CardSlots.stories.ts +81 -0
  316. package/src/stories/Checkbox/Checkbox.settings.ts +0 -2
  317. package/src/stories/Checkbox/Checkbox.stories.ts +97 -0
  318. package/src/stories/Checkbox/CheckboxBinary.stories.ts +33 -0
  319. package/src/stories/Checkbox/CheckboxSlots.stories.ts +31 -0
  320. package/src/stories/CheckboxGroup/CheckboxGroup.stories.ts +87 -0
  321. package/src/stories/CheckboxGroup/CheckboxGroupOptions.stories.ts +53 -0
  322. package/src/stories/CheckboxGroup/CheckboxGroupSlots.stories.ts +47 -0
  323. package/src/stories/Combobox/Combobox.settings.ts +3 -23
  324. package/src/stories/Combobox/Combobox.stories.ts +176 -0
  325. package/src/stories/Combobox/Combobox.test.ts +2 -2
  326. package/src/stories/Combobox/ComboboxIconPosition.stories.ts +43 -0
  327. package/src/stories/Combobox/ComboboxMultiple.stories.ts +41 -0
  328. package/src/stories/Combobox/ComboboxOptions.stories.ts +78 -0
  329. package/src/stories/Combobox/ComboboxSlots.stories.ts +104 -0
  330. package/src/stories/Dialog/Dialog.settings.ts +1 -1
  331. package/src/stories/Dialog/Dialog.stories.ts +51 -0
  332. package/src/stories/Dialog/Dialog.test.ts +2 -2
  333. package/src/stories/Dialog/DialogSlots.stories.ts +39 -0
  334. package/src/stories/Dropdown/Dropdown.stories.ts +107 -0
  335. package/src/stories/Dropdown/DropdownContextmenuDirective.stories.ts +49 -0
  336. package/src/stories/Dropdown/DropdownMultilevel.stories.ts +61 -0
  337. package/src/stories/Dropdown/DropdownSlots.stories.ts +95 -0
  338. package/src/stories/Icon/Icon.settings.ts +1 -0
  339. package/src/stories/Icon/Icon.stories.ts +48 -0
  340. package/src/stories/Icon/IconsCollection.stories.ts +53 -0
  341. package/src/stories/InputText/InputText.settings.ts +3 -39
  342. package/src/stories/InputText/InputText.stories.ts +121 -0
  343. package/src/stories/InputText/InputTextIconPosition.stories.ts +43 -0
  344. package/src/stories/InputText/InputTextLength.stories.ts +58 -0
  345. package/src/stories/InputText/InputTextMinMax.stories.ts +51 -0
  346. package/src/stories/InputText/InputTextSlots.stories.ts +39 -0
  347. package/src/stories/InputText/InputTextType.stories.ts +119 -0
  348. package/src/stories/Nav/Nav.stories.ts +33 -0
  349. package/src/stories/Nav/NavModifiers.stories.ts +47 -0
  350. package/src/stories/Progress/Progress.settings.ts +0 -3
  351. package/src/stories/Progress/Progress.stories.ts +41 -0
  352. package/src/stories/Radio/Radio.stories.ts +81 -0
  353. package/src/stories/Radio/RadioSlots.stories.ts +31 -0
  354. package/src/stories/RadioGroup/RadioGroup.stories.ts +88 -0
  355. package/src/stories/RadioGroup/RadioGroupOptions.stories.ts +53 -0
  356. package/src/stories/RadioGroup/RadioGroupSlots.stories.ts +47 -0
  357. package/src/stories/Select/Select.settings.ts +0 -5
  358. package/src/stories/Select/Select.stories.ts +113 -0
  359. package/src/stories/Select/SelectIconPosition.stories.ts +43 -0
  360. package/src/stories/Select/SelectOptions.stories.ts +77 -0
  361. package/src/stories/Select/SelectSlots.stories.ts +39 -0
  362. package/src/stories/Tab/Tab.stories.ts +70 -0
  363. package/src/stories/Textarea/Textarea.settings.ts +0 -8
  364. package/src/stories/Textarea/Textarea.stories.ts +107 -0
  365. package/src/stories/Textarea/TextareaLength.stories.ts +58 -0
  366. package/src/stories/Textarea/TextareaSlots.stories.ts +39 -0
  367. package/src/stories/Textarea/TextareatIconPosition.stories.ts +43 -0
  368. package/src/stories/Tooltip/Tooltip.settings.ts +4 -4
  369. package/src/stories/Tooltip/Tooltip.stories.ts +40 -0
  370. package/src/stories/Tooltip/TooltipDirective.stories.ts +68 -0
  371. package/src/stories/argTypes.ts +5 -59
  372. package/src/stories/Accordion/Accordion.stories.mdx +0 -45
  373. package/src/stories/Accordion/AccordionSlots.stories.mdx +0 -58
  374. package/src/stories/AccordionGroup/AccordionGroup.stories.mdx +0 -58
  375. package/src/stories/AccordionGroup/AccordionGroupSlots.stories.mdx +0 -59
  376. package/src/stories/Avatar/Avatar.stories.mdx +0 -40
  377. package/src/stories/Avatar/AvatarBadge.stories.mdx +0 -41
  378. package/src/stories/Avatar/AvatarModifiers.stories.mdx +0 -87
  379. package/src/stories/Avatar/AvatarSlotDefault.stories.mdx +0 -29
  380. package/src/stories/AvatarGroup/AvatarGroup.stories.mdx +0 -30
  381. package/src/stories/AvatarGroup/AvatarGroupModifiers.stories.mdx +0 -24
  382. package/src/stories/Badge/Badge.stories.mdx +0 -51
  383. package/src/stories/Badge/BadgeSlots.stories.mdx +0 -20
  384. package/src/stories/Breadcrumb/Breadcrumb.stories.mdx +0 -50
  385. package/src/stories/Breadcrumb/BreadcrumbSlots.stories.mdx +0 -43
  386. package/src/stories/Button/Button.stories.mdx +0 -35
  387. package/src/stories/Button/ButtonIcon.stories.mdx +0 -153
  388. package/src/stories/Button/ButtonLink.stories.mdx +0 -72
  389. package/src/stories/Button/ButtonLoading.stories.mdx +0 -108
  390. package/src/stories/Button/ButtonModifiers.stories.mdx +0 -257
  391. package/src/stories/Button/ButtonSlots.stories.mdx +0 -116
  392. package/src/stories/Button/ButtonState.stories.mdx +0 -66
  393. package/src/stories/Button/ButtonToggle.stories.mdx +0 -112
  394. package/src/stories/ButtonGroup/ButtonGroup.stories.mdx +0 -37
  395. package/src/stories/ButtonGroup/ButtonGroupModifiers.stories.mdx +0 -52
  396. package/src/stories/ButtonGroup/ButtonGroupSlots.stories.mdx +0 -37
  397. package/src/stories/ButtonGroup/ButtonGroupToggle.stories.mdx +0 -73
  398. package/src/stories/Card/Card.stories.mdx +0 -40
  399. package/src/stories/Card/CardSlots.stories.mdx +0 -98
  400. package/src/stories/Checkbox/Checkbox.stories.mdx +0 -164
  401. package/src/stories/Checkbox/CheckboxBinary.stories.mdx +0 -68
  402. package/src/stories/Checkbox/CheckboxSlots.stories.mdx +0 -46
  403. package/src/stories/CheckboxGroup/CheckboxGroup.stories.mdx +0 -135
  404. package/src/stories/CheckboxGroup/CheckboxGroupOptions.stories.mdx +0 -100
  405. package/src/stories/CheckboxGroup/CheckboxGroupSlots.stories.mdx +0 -68
  406. package/src/stories/Combobox/Combobox.stories.mdx +0 -324
  407. package/src/stories/Combobox/ComboboxIconPosition.stories.mdx +0 -78
  408. package/src/stories/Combobox/ComboboxMultiple.stories.mdx +0 -73
  409. package/src/stories/Combobox/ComboboxOptions.stories.mdx +0 -135
  410. package/src/stories/Combobox/ComboboxSlots.stories.mdx +0 -153
  411. package/src/stories/Dialog/Dialog.stories.mdx +0 -56
  412. package/src/stories/Dialog/DialogSlots.stories.mdx +0 -63
  413. package/src/stories/Dropdown/Dropdown.stories.mdx +0 -124
  414. package/src/stories/Dropdown/DropdownContextmenuDirective.stories.mdx +0 -41
  415. package/src/stories/Dropdown/DropdownMultilevel.stories.mdx +0 -56
  416. package/src/stories/Dropdown/DropdownSlots.stories.mdx +0 -114
  417. package/src/stories/Icon/Icon.stories.mdx +0 -91
  418. package/src/stories/Icon/IconsCollection.stories.mdx +0 -69
  419. package/src/stories/InputText/InputText.stories.mdx +0 -211
  420. package/src/stories/InputText/InputTextIconPosition.stories.mdx +0 -78
  421. package/src/stories/InputText/InputTextLength.stories.mdx +0 -110
  422. package/src/stories/InputText/InputTextMinMax.stories.mdx +0 -112
  423. package/src/stories/InputText/InputTextSlots.stories.mdx +0 -69
  424. package/src/stories/InputText/InputTextType.stories.mdx +0 -259
  425. package/src/stories/Nav/Nav.stories.mdx +0 -28
  426. package/src/stories/Nav/NavModifiers.stories.mdx +0 -48
  427. package/src/stories/Progress/Progress.stories.mdx +0 -30
  428. package/src/stories/Radio/Radio.stories.mdx +0 -128
  429. package/src/stories/Radio/RadioSlots.stories.mdx +0 -46
  430. package/src/stories/RadioGroup/RadioGroup.stories.mdx +0 -135
  431. package/src/stories/RadioGroup/RadioGroupOptions.stories.mdx +0 -100
  432. package/src/stories/RadioGroup/RadioGroupSlots.stories.mdx +0 -68
  433. package/src/stories/Select/Select.stories.mdx +0 -196
  434. package/src/stories/Select/SelectIconPosition.stories.mdx +0 -78
  435. package/src/stories/Select/SelectOptions.stories.mdx +0 -135
  436. package/src/stories/Select/SelectSlots.stories.mdx +0 -48
  437. package/src/stories/Tab/Tab.stories.mdx +0 -65
  438. package/src/stories/Textarea/Textarea.stories.mdx +0 -187
  439. package/src/stories/Textarea/TextareaLength.stories.mdx +0 -110
  440. package/src/stories/Textarea/TextareaSlots.stories.mdx +0 -69
  441. package/src/stories/Textarea/TextareatIconPosition.stories.mdx +0 -78
  442. package/src/stories/Tooltip/Tooltip.stories.mdx +0 -102
  443. package/src/stories/Tooltip/TooltipDirective.stories.mdx +0 -99
@@ -9,9 +9,10 @@
9
9
  import VvIcon from '../VvIcon/VvIcon.vue'
10
10
  import { VvDialogEvents, VvDialogProps } from '.'
11
11
 
12
- // props and emit
12
+ // props, emit and template refs
13
13
  const props = defineProps(VvDialogProps)
14
14
  const emit = defineEmits(VvDialogEvents)
15
+ const dialogEl: Ref<HTMLDialogElement | undefined> = ref()
15
16
 
16
17
  // data
17
18
  const localModelValue = ref(false)
@@ -26,7 +27,6 @@
26
27
  emit('update:modelValue', value)
27
28
  },
28
29
  })
29
- const htmlAttrIsOpen = ref(true)
30
30
 
31
31
  // template ref
32
32
  const modalWrapper = ref(null)
@@ -36,7 +36,6 @@
36
36
  const { id } = props
37
37
  return {
38
38
  id,
39
- open: htmlAttrIsOpen.value,
40
39
  } as DialogHTMLAttributes
41
40
  })
42
41
  const dialogClass = computed(() => {
@@ -50,18 +49,18 @@
50
49
  const transitioName = computed(() => `vv-dialog--${props.transition}`)
51
50
  const dialogTransitionHandlers = {
52
51
  'before-enter': () => {
53
- htmlAttrIsOpen.value = true
52
+ dialogEl.value?.showModal()
54
53
  emit('open')
55
54
  },
56
55
  'after-leave': () => {
57
- htmlAttrIsOpen.value = false
56
+ dialogEl.value?.close()
58
57
  emit('close')
59
58
  },
60
59
  }
61
60
 
62
61
  // methods
63
62
  onClickOutside(modalWrapper, () => {
64
- if (props.autoClose) {
63
+ if (!props.keepOpen) {
65
64
  modelValue.value = false
66
65
  }
67
66
  })
@@ -87,7 +86,12 @@
87
86
 
88
87
  <template>
89
88
  <Transition :name="transitioName" v-on="dialogTransitionHandlers">
90
- <dialog v-show="modelValue" v-bind="dialogAttrs" :class="dialogClass">
89
+ <dialog
90
+ v-show="modelValue"
91
+ v-bind="dialogAttrs"
92
+ ref="dialogEl"
93
+ :class="dialogClass"
94
+ >
91
95
  <article ref="modalWrapper" class="vv-dialog__wrapper">
92
96
  <header v-if="$slots.header || title" class="vv-dialog__header">
93
97
  <!-- @slot Header slot -->
@@ -24,7 +24,7 @@ export const VvDialogProps = {
24
24
  */
25
25
  size: String,
26
26
  /**
27
- * Close dialog on click outside
27
+ * Keep open dialog on click outside
28
28
  */
29
- autoClose: { type: Boolean, default: true },
29
+ keepOpen: { type: Boolean, default: false },
30
30
  }
@@ -28,7 +28,13 @@
28
28
 
29
29
  // props, emit and attrs
30
30
  const props = defineProps(VvDropdownProps)
31
- const emit = defineEmits(['update:modelValue'])
31
+ const emit = defineEmits([
32
+ 'update:modelValue',
33
+ 'beforeExpand',
34
+ 'beforeCollapse',
35
+ 'afterExpand',
36
+ 'afterCollapse',
37
+ ])
32
38
  const { id } = toRefs(props)
33
39
  const hasId = useUniqueId(id)
34
40
  const attrs = useAttrs()
@@ -212,7 +218,7 @@
212
218
  onClickOutside(
213
219
  floatingEl,
214
220
  () => {
215
- if (props.autoClose) {
221
+ if (!props.keepOpen) {
216
222
  expanded.value = false
217
223
  }
218
224
  },
@@ -334,6 +340,12 @@
334
340
  activeElement.click()
335
341
  }
336
342
  })
343
+ const onTransitionBeforeEnter = () => {
344
+ emit(expanded.value ? 'beforeExpand' : 'beforeCollapse')
345
+ }
346
+ const onTransitionAfterLeave = () => {
347
+ emit(expanded.value ? 'afterExpand' : 'afterCollapse')
348
+ }
337
349
  </script>
338
350
 
339
351
  <template>
@@ -342,7 +354,13 @@
342
354
  v-bind="{ init, show, hide, toggle, expanded, aria: referenceAria }"
343
355
  />
344
356
  </VvDropdownTriggerProvider>
345
- <Transition :name="transitionName">
357
+ <Transition
358
+ :name="transitionName"
359
+ v-on="{
360
+ beforeEnter: onTransitionBeforeEnter,
361
+ onAfterLeave: onTransitionAfterLeave,
362
+ }"
363
+ >
346
364
  <div
347
365
  v-show="expanded"
348
366
  ref="floatingEl"
@@ -356,7 +374,7 @@
356
374
  class="vv-dropdown__arrow"
357
375
  ></div>
358
376
  <slot name="before" v-bind="{ expanded }" />
359
- <ul
377
+ <div
360
378
  v-bind="attrs"
361
379
  :id="hasId"
362
380
  ref="listEl"
@@ -371,7 +389,7 @@
371
389
  role: itemRole,
372
390
  }"
373
391
  />
374
- </ul>
392
+ </div>
375
393
  <slot name="after" v-bind="{ expanded }" />
376
394
  </div>
377
395
  </Transition>
@@ -21,12 +21,12 @@
21
21
  </script>
22
22
 
23
23
  <template>
24
- <li
24
+ <div
25
25
  v-bind="{ role }"
26
26
  ref="element"
27
27
  class="vv-dropdown__item"
28
28
  :class="{ 'focus-visible': focused || focusedWithin }"
29
29
  >
30
30
  <slot />
31
- </li>
31
+ </div>
32
32
  </template>
@@ -5,12 +5,19 @@
5
5
  </script>
6
6
 
7
7
  <script setup lang="ts">
8
- import { Icon, addIcon, iconExists, type IconifyJSON } from '@iconify/vue'
8
+ import { Icon, addIcon, iconExists } from '@iconify/vue'
9
9
  import { VvIconProps } from '.'
10
10
 
11
11
  // props
12
12
  const props = defineProps(VvIconProps)
13
13
 
14
+ const hasRotate = computed(() => {
15
+ if (typeof props.rotate === 'string') {
16
+ return parseFloat(props.rotate)
17
+ }
18
+ return props.rotate
19
+ })
20
+
14
21
  // data
15
22
  const show = ref(true)
16
23
 
@@ -21,49 +28,43 @@
21
28
  const { modifiers } = toRefs(props)
22
29
  const bemCssClasses = useModifiers('vv-icon', modifiers)
23
30
 
24
- /**
25
- * Provider name
26
- */
31
+ // provider name
27
32
  const provider = computed(() => {
28
33
  return props.provider || volver?.iconsProvider
29
34
  })
30
35
 
31
- /**
32
- * Icon name
33
- */
36
+ // icon name
34
37
  const icon = computed(() => {
35
- const _name = props.name ?? ''
38
+ const name = props.name ?? ''
36
39
  // compose Iconify icon name format
37
- const iconName = `@${provider.value}:${props.prefix}:${props.name}`
40
+ const iconName = `@${provider.value}:${props.prefix}:${name}`
38
41
 
39
- // Check first if icon with "name" exist
40
- if (iconExists(_name)) {
41
- return _name
42
- } else if (iconExists(iconName)) {
43
- // Check and return composed icon name if exist
42
+ // Check if icon with prefix and provider exist
43
+ if (iconExists(iconName)) {
44
44
  return iconName
45
- } else {
46
- // Check into all collections and set "iconName" data
47
- return (
48
- volver?.iconsCollections.find(
49
- (iconsCollection: IconifyJSON) => {
50
- const icon = `@${provider.value}:${iconsCollection.prefix}:${_name}`
51
- if (iconExists(icon)) {
52
- return icon
53
- }
54
- },
55
- ) || _name
56
- )
57
45
  }
46
+
47
+ // Check if icon exist into any collection
48
+ const iconsCollection = volver?.iconsCollections.find(
49
+ (iconsCollection) => {
50
+ const icon = `@${provider.value}:${iconsCollection.prefix}:${name}`
51
+ return iconExists(icon)
52
+ },
53
+ )
54
+ if (iconsCollection) {
55
+ return `@${provider.value}:${iconsCollection.prefix}:${name}`
56
+ }
57
+
58
+ return name
58
59
  })
59
60
 
60
61
  /**
61
62
  * Get SVG content from SVG string
62
63
  * @param {string} svg
63
- * @return {SVGSVGElement | null} https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement
64
+ * @return {SVGSVGElement | undefined} https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement
64
65
  */
65
- function getSvgContent(svg: string): SVGSVGElement | null {
66
- let dom = null
66
+ function getSvgContent(svg: string): SVGSVGElement | undefined {
67
+ let dom
67
68
  if (typeof window === 'undefined') {
68
69
  // SSR
69
70
  // eslint-disable-next-line @typescript-eslint/no-var-requires, no-undef
@@ -81,7 +82,7 @@
81
82
  * @param {string} svg
82
83
  */
83
84
  function addIconFromSvg(svg: string) {
84
- const svgContentEl: SVGSVGElement | null = getSvgContent(svg)
85
+ const svgContentEl = getSvgContent(svg)
85
86
  const svgContent = svgContentEl?.innerHTML.trim() || ''
86
87
  if (svgContentEl && svgContent) {
87
88
  addIcon(`@${provider.value}:${props.prefix}:${props.name}`, {
@@ -108,12 +109,14 @@
108
109
  }
109
110
  })
110
111
  .catch((e) => {
111
- throw new Error(`During fetch icon: ${e?.message}`)
112
+ throw new Error(`Error during fetch icon: ${e?.message}`)
112
113
  })
113
- } else if (props.svg) {
114
- addIconFromSvg(props.svg)
115
114
  }
116
115
  }
116
+
117
+ if (props.svg) {
118
+ addIconFromSvg(props.svg)
119
+ }
117
120
  </script>
118
121
 
119
122
  <template>
@@ -127,7 +130,7 @@
127
130
  horizontalFlip,
128
131
  verticalFlip,
129
132
  flip,
130
- rotate,
133
+ rotate: hasRotate,
131
134
  color,
132
135
  onLoad,
133
136
  icon,
@@ -1,5 +1,5 @@
1
1
  import type { PropType } from 'vue'
2
- import type { IconifyRenderMode } from '@iconify/vue'
2
+ import type { IconifyIconOnLoad, IconifyRenderMode } from '@iconify/vue'
3
3
 
4
4
  export enum IconPrefix {
5
5
  simple = 'simple',
@@ -88,7 +88,7 @@ export const VvIconProps = {
88
88
  /**
89
89
  * A callback that is called when icon data has been loaded
90
90
  */
91
- onLoad: Function,
91
+ onLoad: Function as PropType<IconifyIconOnLoad>,
92
92
  /**
93
93
  * SVG icon string
94
94
  */
@@ -41,7 +41,7 @@
41
41
  loading,
42
42
  } = toRefs(props)
43
43
  const hasId = useUniqueId(id)
44
- const hasDescribedBy = computed(() => `${hasId.value}-hint`)
44
+ const hasHintId = computed(() => `${hasId.value}-hint`)
45
45
  // BUG: https://www.samanthaming.com/tidbits/88-css-placeholder-shown/
46
46
  const inputTextPlaceholder = computed(() =>
47
47
  props.floating && isEmpty(props.placeholder) ? ' ' : props.placeholder,
@@ -211,12 +211,11 @@
211
211
  required: props.required,
212
212
  autocomplete: props.autocomplete,
213
213
  'aria-invalid': isInvalid.value,
214
- 'aria-describedby':
215
- !hasInvalid.value && hasHint.value
216
- ? hasDescribedBy.value
217
- : undefined,
218
- 'aria-errormessage': hasInvalid.value
219
- ? hasDescribedBy.value
214
+ 'aria-describedby': hasHintLabelOrSlot.value
215
+ ? hasHintId.value
216
+ : undefined,
217
+ 'aria-errormessage': hasInvalidLabelOrSlot.value
218
+ ? hasHintId.value
220
219
  : undefined,
221
220
  }
222
221
  if (
@@ -274,7 +273,12 @@
274
273
  }))
275
274
 
276
275
  // components
277
- const { HintSlot, hasHint, hasInvalid } = HintSlotFactory(props, slots)
276
+ const {
277
+ HintSlot,
278
+ hasHintLabelOrSlot,
279
+ hasInvalidLabelOrSlot,
280
+ hintSlotScope,
281
+ } = HintSlotFactory(props, slots)
278
282
  const PasswordInputActions = VvInputTextActionsFactory(
279
283
  INPUT_TYPES.PASSWORD,
280
284
  props,
@@ -403,6 +407,19 @@
403
407
  </slot>
404
408
  </span>
405
409
  </div>
406
- <HintSlot :id="hasDescribedBy" class="vv-input-text__hint" />
410
+ <HintSlot :id="hasHintId" class="vv-input-text__hint">
411
+ <template v-if="$slots.hint" #hint>
412
+ <slot name="hint" v-bind="hintSlotScope" />
413
+ </template>
414
+ <template v-if="$slots.loading" #loading>
415
+ <slot name="loading" v-bind="hintSlotScope" />
416
+ </template>
417
+ <template v-if="$slots.valid" #valid>
418
+ <slot name="valid" v-bind="hintSlotScope" />
419
+ </template>
420
+ <template v-if="$slots.invalid" #invalid>
421
+ <slot name="invalid" v-bind="hintSlotScope" />
422
+ </template>
423
+ </HintSlot>
407
424
  </div>
408
425
  </template>
@@ -17,6 +17,7 @@
17
17
  const { id, disabled, readonly, modelValue, valid, invalid } =
18
18
  useGroupProps(props, emit)
19
19
  const hasId = useUniqueId(id)
20
+ const hasHintId = computed(() => `${hasId.value}-hint`)
20
21
  const tabindex = computed(() => (isDisabled.value ? -1 : props.tabindex))
21
22
 
22
23
  // template refs
@@ -71,7 +72,12 @@
71
72
  )
72
73
 
73
74
  // hint
74
- const { HintSlot } = HintSlotFactory(props, slots)
75
+ const {
76
+ HintSlot,
77
+ hasHintLabelOrSlot,
78
+ hasInvalidLabelOrSlot,
79
+ hintSlotScope,
80
+ } = HintSlotFactory(props, slots)
75
81
  </script>
76
82
 
77
83
  <template>
@@ -87,10 +93,25 @@
87
93
  :value="hasValue"
88
94
  :tabindex="tabindex"
89
95
  :aria-invalid="isInvalid"
96
+ :aria-describedby="hasHintLabelOrSlot ? hasHintId : undefined"
97
+ :aria-errormessage="hasInvalidLabelOrSlot ? hasHintId : undefined"
90
98
  />
91
99
  <slot :value="modelValue">
92
100
  {{ label }}
93
101
  </slot>
94
- <HintSlot class="vv-radio__hint" :params="{ value: modelValue }" />
102
+ <HintSlot :id="hasHintId" class="vv-radio__hint">
103
+ <template v-if="$slots.hint" #hint>
104
+ <slot name="hint" v-bind="hintSlotScope" />
105
+ </template>
106
+ <template v-if="$slots.loading" #loading>
107
+ <slot name="loading" v-bind="hintSlotScope" />
108
+ </template>
109
+ <template v-if="$slots.valid" #valid>
110
+ <slot name="valid" v-bind="hintSlotScope" />
111
+ </template>
112
+ <template v-if="$slots.invalid" #invalid>
113
+ <slot name="invalid" v-bind="hintSlotScope" />
114
+ </template>
115
+ </HintSlot>
95
116
  </label>
96
117
  </template>
@@ -58,7 +58,7 @@
58
58
  }
59
59
 
60
60
  // hint
61
- const { HintSlot } = HintSlotFactory(props, slots)
61
+ const { HintSlot, hintSlotScope } = HintSlotFactory(props, slots)
62
62
  </script>
63
63
 
64
64
  <template>
@@ -78,6 +78,19 @@
78
78
  <slot v-else />
79
79
  <!-- #endregion -->
80
80
  </div>
81
- <HintSlot class="vv-radio-group__hint" />
81
+ <HintSlot class="vv-radio-group__hint">
82
+ <template v-if="$slots.hint" #hint>
83
+ <slot name="hint" v-bind="hintSlotScope" />
84
+ </template>
85
+ <template v-if="$slots.loading" #loading>
86
+ <slot name="loading" v-bind="hintSlotScope" />
87
+ </template>
88
+ <template v-if="$slots.valid" #valid>
89
+ <slot name="valid" v-bind="hintSlotScope" />
90
+ </template>
91
+ <template v-if="$slots.invalid" #invalid>
92
+ <slot name="invalid" v-bind="hintSlotScope" />
93
+ </template>
94
+ </HintSlot>
82
95
  </fieldset>
83
96
  </template>
@@ -20,7 +20,12 @@
20
20
  const select = ref()
21
21
 
22
22
  // hint
23
- const { HintSlot, hasHint, hasInvalid } = HintSlotFactory(props, slots)
23
+ const {
24
+ HintSlot,
25
+ hasHintLabelOrSlot,
26
+ hasInvalidLabelOrSlot,
27
+ hintSlotScope,
28
+ } = HintSlotFactory(props, slots)
24
29
 
25
30
  // data
26
31
  const {
@@ -39,7 +44,7 @@
39
44
 
40
45
  // computed
41
46
  const hasId = useUniqueId(id)
42
- const hasDescribedBy = computed(() => `${hasId.value}-hint`)
47
+ const hasHintId = computed(() => `${hasId.value}-hint`)
43
48
 
44
49
  // focus
45
50
  const { focused } = useComponentFocus(select, emit)
@@ -108,12 +113,11 @@
108
113
  autocomplete: props.autocomplete,
109
114
  multiple: props.multiple,
110
115
  'aria-invalid': isInvalid.value,
111
- 'aria-describedby':
112
- !hasInvalid.value && hasHint.value
113
- ? hasDescribedBy.value
114
- : undefined,
115
- 'aria-errormessage': hasInvalid.value
116
- ? hasDescribedBy.value
116
+ 'aria-describedby': hasHintLabelOrSlot.value
117
+ ? hasHintId.value
118
+ : undefined,
119
+ 'aria-errormessage': hasInvalidLabelOrSlot.value
120
+ ? hasHintId.value
117
121
  : undefined,
118
122
  }
119
123
  })
@@ -218,6 +222,19 @@
218
222
  </div>
219
223
  </div>
220
224
  <!-- #endregion native select -->
221
- <HintSlot :id="hasDescribedBy" class="vv-select__hint" />
225
+ <HintSlot :id="hasHintId" class="vv-select__hint">
226
+ <template v-if="$slots.hint" #hint>
227
+ <slot name="hint" v-bind="hintSlotScope" />
228
+ </template>
229
+ <template v-if="$slots.loading" #loading>
230
+ <slot name="loading" v-bind="hintSlotScope" />
231
+ </template>
232
+ <template v-if="$slots.valid" #valid>
233
+ <slot name="valid" v-bind="hintSlotScope" />
234
+ </template>
235
+ <template v-if="$slots.invalid" #invalid>
236
+ <slot name="invalid" v-bind="hintSlotScope" />
237
+ </template>
238
+ </HintSlot>
222
239
  </div>
223
240
  </template>
@@ -32,7 +32,7 @@
32
32
  modifiers,
33
33
  } = toRefs(props)
34
34
  const hasId = useUniqueId(id)
35
- const hasDescribedBy = computed(() => `${hasId.value}-hint`)
35
+ const hasHintId = computed(() => `${hasId.value}-hint`)
36
36
  // BUG - https://www.samanthaming.com/tidbits/88-css-placeholder-shown/
37
37
  const hasPlaceholder = computed(() =>
38
38
  props.floating && isEmpty(props.placeholder) ? ' ' : props.placeholder,
@@ -86,7 +86,12 @@
86
86
  })
87
87
 
88
88
  // hint
89
- const { HintSlot, hasHint, hasInvalid } = HintSlotFactory(props, slots)
89
+ const {
90
+ HintSlot,
91
+ hasHintLabelOrSlot,
92
+ hasInvalidLabelOrSlot,
93
+ hintSlotScope,
94
+ } = HintSlotFactory(props, slots)
90
95
 
91
96
  // styles
92
97
  const bemCssClasses = useModifiers(
@@ -125,12 +130,11 @@
125
130
  wrap: props.wrap,
126
131
  spellcheck: props.spellcheck,
127
132
  'aria-invalid': isInvalid.value,
128
- 'aria-describedby':
129
- !hasInvalid.value && hasHint.value
130
- ? hasDescribedBy.value
131
- : undefined,
132
- 'aria-errormessage': hasInvalid.value
133
- ? hasDescribedBy.value
133
+ 'aria-describedby': hasHintLabelOrSlot.value
134
+ ? hasHintId.value
135
+ : undefined,
136
+ 'aria-errormessage': hasInvalidLabelOrSlot.value
137
+ ? hasHintId.value
134
138
  : undefined,
135
139
  } as TextareaHTMLAttributes),
136
140
  )
@@ -193,6 +197,19 @@
193
197
  </slot>
194
198
  </span>
195
199
  </div>
196
- <HintSlot :id="hasDescribedBy" class="vv-textarea__hint" />
200
+ <HintSlot :id="hasHintId" class="vv-textarea__hint">
201
+ <template v-if="$slots.hint" #hint>
202
+ <slot name="hint" v-bind="hintSlotScope" />
203
+ </template>
204
+ <template v-if="$slots.loading" #loading>
205
+ <slot name="loading" v-bind="hintSlotScope" />
206
+ </template>
207
+ <template v-if="$slots.valid" #valid>
208
+ <slot name="valid" v-bind="hintSlotScope" />
209
+ </template>
210
+ <template v-if="$slots.invalid" #invalid>
211
+ <slot name="invalid" v-bind="hintSlotScope" />
212
+ </template>
213
+ </HintSlot>
197
214
  </div>
198
215
  </template>