@volverjs/ui-vue 0.0.10-beta.3 → 0.0.10-beta.30

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 (472) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +106 -10
  3. package/auto-imports.d.ts +7 -2
  4. package/bin/icons.cjs +1 -1
  5. package/bin/icons.js +22 -15
  6. package/dist/.storybook/main.d.ts +3 -0
  7. package/dist/.storybook/preview.d.ts +89 -0
  8. package/dist/components/VvAccordion/VvAccordion.es.js +192 -103
  9. package/dist/components/VvAccordion/VvAccordion.umd.js +1 -1
  10. package/dist/components/VvAccordionGroup/VvAccordionGroup.es.js +451 -172
  11. package/dist/components/VvAccordionGroup/VvAccordionGroup.umd.js +1 -1
  12. package/dist/components/VvAction/VvAction.es.js +78 -27
  13. package/dist/components/VvAction/VvAction.umd.js +1 -1
  14. package/dist/components/VvAlert/VvAlert.es.js +204 -171
  15. package/dist/components/VvAlert/VvAlert.umd.js +1 -1
  16. package/dist/components/VvAlertGroup/VvAlertGroup.es.js +250 -188
  17. package/dist/components/VvAlertGroup/VvAlertGroup.umd.js +1 -1
  18. package/dist/components/VvAvatar/VvAvatar.es.js +61 -21
  19. package/dist/components/VvAvatar/VvAvatar.umd.js +1 -1
  20. package/dist/components/VvAvatarGroup/VvAvatarGroup.es.js +118 -48
  21. package/dist/components/VvAvatarGroup/VvAvatarGroup.umd.js +1 -1
  22. package/dist/components/VvBadge/VvBadge.es.js +78 -28
  23. package/dist/components/VvBadge/VvBadge.umd.js +1 -1
  24. package/dist/components/VvBreadcrumb/VvBreadcrumb.es.js +276 -60
  25. package/dist/components/VvBreadcrumb/VvBreadcrumb.umd.js +1 -1
  26. package/dist/components/VvButton/VvButton.es.js +291 -252
  27. package/dist/components/VvButton/VvButton.umd.js +1 -1
  28. package/dist/components/VvButtonGroup/VvButtonGroup.es.js +81 -40
  29. package/dist/components/VvButtonGroup/VvButtonGroup.umd.js +1 -1
  30. package/dist/components/VvCard/VvCard.es.js +86 -36
  31. package/dist/components/VvCard/VvCard.umd.js +1 -1
  32. package/dist/components/VvCheckbox/VvCheckbox.es.js +177 -120
  33. package/dist/components/VvCheckbox/VvCheckbox.umd.js +1 -1
  34. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.es.js +190 -107
  35. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.umd.js +1 -1
  36. package/dist/components/VvCombobox/VvCombobox.es.js +806 -581
  37. package/dist/components/VvCombobox/VvCombobox.umd.js +1 -1
  38. package/dist/components/VvDialog/VvDialog.es.js +140 -153
  39. package/dist/components/VvDialog/VvDialog.umd.js +1 -1
  40. package/dist/components/VvDropdown/VvDropdown.es.js +138 -71
  41. package/dist/components/VvDropdown/VvDropdown.umd.js +1 -1
  42. package/dist/components/VvDropdownAction/VvDropdownAction.es.js +152 -39
  43. package/dist/components/VvDropdownAction/VvDropdownAction.umd.js +1 -1
  44. package/dist/components/VvDropdownItem/VvDropdownItem.es.js +335 -8
  45. package/dist/components/VvDropdownItem/VvDropdownItem.umd.js +1 -1
  46. package/dist/components/VvDropdownOptgroup/VvDropdownOptgroup.es.js +63 -20
  47. package/dist/components/VvDropdownOptgroup/VvDropdownOptgroup.umd.js +1 -1
  48. package/dist/components/VvDropdownOption/VvDropdownOption.es.js +188 -80
  49. package/dist/components/VvDropdownOption/VvDropdownOption.umd.js +1 -1
  50. package/dist/components/VvIcon/VvIcon.es.js +23 -96
  51. package/dist/components/VvIcon/VvIcon.umd.js +1 -1
  52. package/dist/components/VvInputFile/VvInputFile.es.js +1777 -0
  53. package/dist/components/VvInputFile/VvInputFile.umd.js +1 -0
  54. package/dist/components/VvInputText/VvInputText.es.js +1237 -324
  55. package/dist/components/VvInputText/VvInputText.umd.js +1 -1
  56. package/dist/components/VvNav/VvNav.es.js +135 -56
  57. package/dist/components/VvNav/VvNav.umd.js +1 -1
  58. package/dist/components/VvNavItem/VvNavItem.es.js +91 -33
  59. package/dist/components/VvNavItem/VvNavItem.umd.js +1 -1
  60. package/dist/components/VvProgress/VvProgress.es.js +72 -26
  61. package/dist/components/VvProgress/VvProgress.umd.js +1 -1
  62. package/dist/components/VvRadio/VvRadio.es.js +160 -103
  63. package/dist/components/VvRadio/VvRadio.umd.js +1 -1
  64. package/dist/components/VvRadioGroup/VvRadioGroup.es.js +190 -107
  65. package/dist/components/VvRadioGroup/VvRadioGroup.umd.js +1 -1
  66. package/dist/components/VvSelect/VvSelect.es.js +251 -238
  67. package/dist/components/VvSelect/VvSelect.umd.js +1 -1
  68. package/dist/components/VvTab/VvTab.es.js +191 -75
  69. package/dist/components/VvTab/VvTab.umd.js +1 -1
  70. package/dist/components/VvTextarea/VvTextarea.es.js +232 -224
  71. package/dist/components/VvTextarea/VvTextarea.umd.js +1 -1
  72. package/dist/components/VvTooltip/VvTooltip.es.js +79 -29
  73. package/dist/components/VvTooltip/VvTooltip.umd.js +1 -1
  74. package/dist/components/index.es.js +3534 -1650
  75. package/dist/components/index.umd.js +1 -1
  76. package/dist/composables/index.es.js +92 -3
  77. package/dist/composables/index.umd.js +1 -1
  78. package/dist/directives/index.es.js +99 -43
  79. package/dist/directives/index.umd.js +1 -1
  80. package/dist/directives/v-tooltip.es.js +97 -38
  81. package/dist/directives/v-tooltip.umd.js +1 -1
  82. package/dist/icons.es.js +267 -267
  83. package/dist/icons.umd.js +1 -1
  84. package/dist/index.es.js +90 -16
  85. package/dist/index.umd.js +1 -1
  86. package/dist/resolvers/unplugin.es.js +87 -10
  87. package/dist/resolvers/unplugin.umd.js +1 -1
  88. package/dist/src/components/VvAccordion/VvAccordion.vue.d.ts +194 -0
  89. package/dist/{components → src/components}/VvAccordion/index.d.ts +8 -9
  90. package/dist/src/components/VvAccordionGroup/VvAccordionGroup.vue.d.ts +92 -0
  91. package/dist/{components → src/components}/VvAccordionGroup/index.d.ts +14 -6
  92. package/dist/{components → src/components}/VvAction/VvAction.vue.d.ts +57 -22
  93. package/dist/{components → src/components}/VvAction/index.d.ts +25 -9
  94. package/dist/{components → src/components}/VvAlert/VvAlert.vue.d.ts +24 -14
  95. package/dist/{components → src/components}/VvAlert/index.d.ts +17 -9
  96. package/dist/{components → src/components}/VvAlertGroup/VvAlertGroup.vue.d.ts +16 -9
  97. package/dist/{components → src/components}/VvAlertGroup/index.d.ts +6 -14
  98. package/dist/src/components/VvAvatar/VvAvatar.vue.d.ts +23 -0
  99. package/dist/{components → src/components}/VvAvatar/index.d.ts +4 -1
  100. package/dist/{components → src/components}/VvAvatarGroup/VvAvatarGroup.vue.d.ts +10 -3
  101. package/dist/{components → src/components}/VvAvatarGroup/index.d.ts +4 -1
  102. package/dist/{components → src/components}/VvBadge/VvBadge.vue.d.ts +12 -4
  103. package/dist/src/components/VvBadge/index.d.ts +7 -0
  104. package/dist/src/components/VvBreadcrumb/VvBreadcrumb.vue.d.ts +38 -0
  105. package/dist/src/components/VvBreadcrumb/index.d.ts +8 -0
  106. package/dist/{components → src/components}/VvButton/VvButton.vue.d.ts +94 -40
  107. package/dist/{components → src/components}/VvButton/index.d.ts +51 -29
  108. package/dist/{components → src/components}/VvButtonGroup/VvButtonGroup.vue.d.ts +24 -11
  109. package/dist/{components → src/components}/VvButtonGroup/index.d.ts +8 -2
  110. package/dist/{components → src/components}/VvCard/VvCard.vue.d.ts +12 -4
  111. package/dist/src/components/VvCard/index.d.ts +7 -0
  112. package/dist/src/components/VvCheckbox/VvCheckbox.vue.d.ts +184 -0
  113. package/dist/{components → src/components}/VvCheckbox/index.d.ts +47 -14
  114. package/dist/{components → src/components}/VvCheckboxGroup/VvCheckboxGroup.vue.d.ts +101 -30
  115. package/dist/src/components/VvCheckboxGroup/index.d.ts +75 -0
  116. package/dist/{components → src/components}/VvCombobox/VvCombobox.vue.d.ts +171 -104
  117. package/dist/{components → src/components}/VvCombobox/index.d.ts +62 -26
  118. package/dist/{components → src/components}/VvDialog/VvDialog.vue.d.ts +4 -4
  119. package/dist/{components → src/components}/VvDropdown/VvDropdown.vue.d.ts +101 -75
  120. package/dist/src/components/VvDropdown/VvDropdownAction.vue.d.ts +114 -0
  121. package/dist/src/components/VvDropdown/VvDropdownItem.vue.d.ts +21 -0
  122. package/dist/src/components/VvDropdown/VvDropdownOptgroup.vue.d.ts +14 -0
  123. package/dist/{components → src/components}/VvDropdown/VvDropdownOption.vue.d.ts +35 -7
  124. package/dist/{components → src/components}/VvDropdown/index.d.ts +52 -10
  125. package/dist/src/components/VvIcon/VvIcon.vue.d.ts +26 -0
  126. package/dist/{components → src/components}/VvIcon/index.d.ts +33 -48
  127. package/dist/src/components/VvInputFile/VvInputFile.vue.d.ts +359 -0
  128. package/dist/src/components/VvInputFile/index.d.ts +200 -0
  129. package/dist/{components → src/components}/VvInputText/VvInputClearAction.d.ts +7 -5
  130. package/dist/{components → src/components}/VvInputText/VvInputPasswordAction.d.ts +10 -8
  131. package/dist/{components → src/components}/VvInputText/VvInputStepAction.d.ts +2 -2
  132. package/dist/{components → src/components}/VvInputText/VvInputText.vue.d.ts +207 -57
  133. package/dist/{components → src/components}/VvInputText/index.d.ts +99 -29
  134. package/dist/src/components/VvNav/VvNav.vue.d.ts +48 -0
  135. package/dist/{components → src/components}/VvNav/VvNavItem.vue.d.ts +1 -1
  136. package/dist/src/components/VvNav/VvNavSeparator.vue.d.ts +2 -0
  137. package/dist/src/components/VvNav/index.d.ts +11 -0
  138. package/dist/{components → src/components}/VvProgress/VvProgress.vue.d.ts +10 -3
  139. package/dist/{components → src/components}/VvProgress/index.d.ts +4 -1
  140. package/dist/src/components/VvRadio/VvRadio.vue.d.ts +176 -0
  141. package/dist/src/components/VvRadio/index.d.ts +80 -0
  142. package/dist/{components → src/components}/VvRadioGroup/VvRadioGroup.vue.d.ts +101 -30
  143. package/dist/src/components/VvRadioGroup/index.d.ts +75 -0
  144. package/dist/{components → src/components}/VvSelect/VvSelect.vue.d.ts +117 -44
  145. package/dist/{components → src/components}/VvSelect/index.d.ts +48 -14
  146. package/dist/src/components/VvTab/VvTab.vue.d.ts +63 -0
  147. package/dist/{components → src/components}/VvTab/index.d.ts +4 -1
  148. package/dist/{components → src/components}/VvTextarea/VvTextarea.vue.d.ts +156 -49
  149. package/dist/{components → src/components}/VvTextarea/index.d.ts +68 -19
  150. package/dist/src/components/VvTooltip/VvTooltip.vue.d.ts +36 -0
  151. package/dist/{components → src/components}/VvTooltip/index.d.ts +5 -2
  152. package/dist/{components → src/components}/common/HintSlot.d.ts +1 -1
  153. package/dist/{components → src/components}/index.d.ts +10 -0
  154. package/dist/src/composables/alert/useAlert.d.ts +122 -0
  155. package/dist/src/composables/alert/useInjectAlert.d.ts +4 -0
  156. package/dist/src/composables/dropdown/useInjectDropdown.d.ts +12 -0
  157. package/dist/{composables → src/composables}/dropdown/useProvideDropdown.d.ts +3 -4
  158. package/dist/src/composables/group/useInjectedGroupState.d.ts +9 -0
  159. package/dist/src/composables/group/useProvideGroupState.d.ts +6 -0
  160. package/dist/{composables → src/composables}/index.d.ts +1 -0
  161. package/dist/src/composables/useBlurhash.d.ts +7 -0
  162. package/dist/src/composables/useComponentIcon.d.ts +11 -0
  163. package/dist/src/composables/usePersistence.d.ts +2 -0
  164. package/dist/src/composables/useVolver.d.ts +1 -0
  165. package/dist/{constants.d.ts → src/constants.d.ts} +34 -32
  166. package/dist/src/directives/index.d.ts +3 -0
  167. package/dist/{index.d.ts → src/index.d.ts} +3 -1
  168. package/dist/{props → src/props}/index.d.ts +272 -81
  169. package/dist/{resolvers → src/resolvers}/unplugin.d.ts +6 -1
  170. package/dist/src/stories/AccordionGroup/AccordionGroup.stories.d.ts +188 -0
  171. package/dist/src/stories/AccordionGroup/AccordionGroupSlots.stories.d.ts +1262 -0
  172. package/dist/{stories → src/stories}/AlertGroup/AlertGroupWithComposable.stories.d.ts +1 -1
  173. package/dist/src/stories/Blurhash/BlurhashComposable.stories.d.ts +4 -0
  174. package/dist/{stories → src/stories}/Button/Button.settings.d.ts +0 -1
  175. package/dist/{stories → src/stories}/Combobox/Combobox.settings.d.ts +8 -0
  176. package/dist/{stories → src/stories}/Icon/Icon.settings.d.ts +1 -0
  177. package/dist/src/stories/InputFile/InputFile.settings.d.ts +56 -0
  178. package/dist/src/stories/InputFile/InputFile.stories.d.ts +12 -0
  179. package/dist/src/stories/InputFile/InputFileDropArea.stories.d.ts +9 -0
  180. package/dist/src/stories/InputFile/InputFileIconPosition.stories.d.ts +8 -0
  181. package/dist/src/stories/InputFile/InputFileSlots.stories.d.ts +7 -0
  182. package/dist/src/stories/Tab/Tab.settings.d.ts +4 -0
  183. package/dist/{test → src/test}/expect.d.ts +1 -1
  184. package/dist/src/types/alert.d.ts +15 -0
  185. package/dist/src/types/blurhash.d.ts +12 -0
  186. package/dist/{types → src/types}/generic.d.ts +1 -2
  187. package/dist/src/types/group.d.ts +59 -0
  188. package/dist/src/types/index.d.ts +7 -0
  189. package/dist/src/types/input-file.d.ts +16 -0
  190. package/dist/{types → src/types}/nav.d.ts +2 -2
  191. package/dist/{utils → src/utils}/ObjectUtilities.d.ts +0 -1
  192. package/dist/src/workers/blurhash.d.ts +1 -0
  193. package/package.json +78 -78
  194. package/src/Volver.ts +31 -20
  195. package/src/assets/icons/detailed.json +1 -1
  196. package/src/assets/icons/normal.json +1 -1
  197. package/src/assets/icons/simple.json +1 -1
  198. package/src/components/VvAccordion/VvAccordion.vue +121 -58
  199. package/src/components/VvAccordion/index.ts +8 -23
  200. package/src/components/VvAccordionGroup/VvAccordionGroup.vue +164 -47
  201. package/src/components/VvAccordionGroup/index.ts +6 -6
  202. package/src/components/VvAction/VvAction.vue +17 -5
  203. package/src/components/VvAlert/index.ts +14 -9
  204. package/src/components/VvAlertGroup/index.ts +3 -15
  205. package/src/components/VvBreadcrumb/VvBreadcrumb.vue +20 -19
  206. package/src/components/VvBreadcrumb/index.ts +2 -8
  207. package/src/components/VvButton/VvButton.vue +17 -7
  208. package/src/components/VvButton/index.ts +9 -16
  209. package/src/components/VvButtonGroup/VvButtonGroup.vue +1 -2
  210. package/src/components/VvCheckbox/index.ts +2 -2
  211. package/src/components/VvCheckboxGroup/VvCheckboxGroup.vue +1 -2
  212. package/src/components/VvCombobox/VvCombobox.vue +15 -12
  213. package/src/components/VvCombobox/index.ts +4 -0
  214. package/src/components/VvDropdown/VvDropdown.vue +11 -2
  215. package/src/components/VvDropdown/VvDropdownItem.vue +4 -1
  216. package/src/components/VvDropdown/VvDropdownOption.vue +4 -21
  217. package/src/components/VvDropdown/index.ts +35 -1
  218. package/src/components/VvIcon/VvIcon.vue +2 -2
  219. package/src/components/VvIcon/index.ts +35 -48
  220. package/src/components/VvInputFile/VvInputFile.vue +395 -0
  221. package/src/components/VvInputFile/index.ts +135 -0
  222. package/src/components/VvInputText/VvInputClearAction.ts +10 -6
  223. package/src/components/VvInputText/VvInputPasswordAction.ts +13 -9
  224. package/src/components/VvInputText/VvInputText.vue +141 -33
  225. package/src/components/VvInputText/index.ts +31 -16
  226. package/src/components/VvNav/VvNav.vue +4 -2
  227. package/src/components/VvRadio/index.ts +5 -5
  228. package/src/components/VvRadioGroup/VvRadioGroup.vue +1 -2
  229. package/src/components/VvSelect/VvSelect.vue +5 -8
  230. package/src/components/VvTab/VvTab.vue +5 -1
  231. package/src/components/VvTextarea/VvTextarea.vue +6 -9
  232. package/src/components/index.ts +10 -0
  233. package/src/composables/alert/useAlert.ts +12 -9
  234. package/src/composables/dropdown/useProvideDropdown.ts +4 -4
  235. package/src/composables/group/useInjectedGroupState.ts +20 -16
  236. package/src/composables/group/useProvideGroupState.ts +10 -15
  237. package/src/composables/index.ts +1 -0
  238. package/src/composables/useBlurhash.ts +76 -0
  239. package/src/composables/useComponentIcon.ts +15 -14
  240. package/src/composables/usePersistence.ts +76 -0
  241. package/src/composables/useUniqueId.ts +2 -2
  242. package/src/constants.ts +47 -32
  243. package/src/directives/index.ts +3 -6
  244. package/src/directives/v-tooltip.ts +19 -10
  245. package/src/index.ts +3 -1
  246. package/src/props/index.ts +108 -31
  247. package/src/resolvers/unplugin.ts +24 -14
  248. package/src/stories/Accordion/Accordion.test.ts +1 -1
  249. package/src/stories/AccordionGroup/AccordionGroup.settings.ts +2 -2
  250. package/src/stories/AccordionGroup/AccordionGroup.test.ts +17 -11
  251. package/src/stories/AccordionGroup/AccordionGroupSlots.stories.ts +1 -1
  252. package/src/stories/Alert/Alert.test.ts +1 -1
  253. package/src/stories/AlertGroup/AlertGroup.test.ts +1 -1
  254. package/src/stories/AlertGroup/AlertGroupWithComposable.stories.ts +2 -2
  255. package/src/stories/Avatar/Avatar.test.ts +1 -1
  256. package/src/stories/AvatarGroup/AvatarGroup.test.ts +1 -1
  257. package/src/stories/Badge/Badge.test.ts +1 -1
  258. package/src/stories/Blurhash/BlurhashComposable.stories.ts +195 -0
  259. package/src/stories/Button/Button.settings.ts +1 -4
  260. package/src/stories/Button/Button.test.ts +1 -1
  261. package/src/stories/ButtonGroup/ButtonGroup.test.ts +1 -1
  262. package/src/stories/Card/Card.test.ts +1 -1
  263. package/src/stories/Checkbox/Checkbox.test.ts +1 -1
  264. package/src/stories/CheckboxGroup/CheckboxGroup.test.ts +1 -1
  265. package/src/stories/Combobox/Combobox.settings.ts +8 -0
  266. package/src/stories/Combobox/Combobox.test.ts +1 -1
  267. package/src/stories/Dialog/Dialog.test.ts +2 -2
  268. package/src/stories/Dropdown/Dropdown.test.ts +1 -1
  269. package/src/stories/Icon/Icon.settings.ts +3 -3
  270. package/src/stories/InputFile/InputFile.settings.ts +36 -0
  271. package/src/stories/InputFile/InputFile.stories.ts +89 -0
  272. package/src/stories/InputFile/InputFileDropArea.stories.ts +56 -0
  273. package/src/stories/InputFile/InputFileIconPosition.stories.ts +43 -0
  274. package/src/stories/InputFile/InputFileSlots.stories.ts +33 -0
  275. package/src/stories/InputText/InputText.test.ts +1 -1
  276. package/src/stories/Nav/Nav.test.ts +1 -1
  277. package/src/stories/Progress/Progress.test.ts +1 -1
  278. package/src/stories/Radio/Radio.test.ts +1 -1
  279. package/src/stories/RadioGroup/RadioGroup.test.ts +1 -1
  280. package/src/stories/Select/Select.test.ts +1 -1
  281. package/src/stories/Tab/Tab.settings.ts +2 -2
  282. package/src/stories/Tab/Tab.test.ts +1 -1
  283. package/src/stories/Textarea/Textarea.test.ts +1 -1
  284. package/src/stories/Tooltip/Tooltip.test.ts +1 -1
  285. package/src/stories/argTypes.ts +1 -1
  286. package/src/test/expect.ts +2 -4
  287. package/src/types/alert.ts +11 -7
  288. package/src/types/blurhash.ts +21 -0
  289. package/src/types/generic.ts +3 -3
  290. package/src/types/group.ts +22 -14
  291. package/src/types/index.ts +7 -0
  292. package/src/types/input-file.ts +18 -0
  293. package/src/types/nav.ts +2 -3
  294. package/src/utils/ObjectUtilities.ts +0 -11
  295. package/src/workers/blurhash.ts +9 -0
  296. package/dist/components/VvAccordion/VvAccordion.vue.d.ts +0 -42
  297. package/dist/components/VvAccordionGroup/VvAccordionGroup.vue.d.ts +0 -47
  298. package/dist/components/VvAvatar/VvAvatar.vue.d.ts +0 -15
  299. package/dist/components/VvBadge/index.d.ts +0 -4
  300. package/dist/components/VvBreadcrumb/VvBreadcrumb.vue.d.ts +0 -18
  301. package/dist/components/VvBreadcrumb/index.d.ts +0 -12
  302. package/dist/components/VvCard/index.d.ts +0 -4
  303. package/dist/components/VvCheckbox/VvCheckbox.vue.d.ts +0 -112
  304. package/dist/components/VvCheckboxGroup/index.d.ts +0 -42
  305. package/dist/components/VvDropdown/VvDropdownAction.vue.d.ts +0 -73
  306. package/dist/components/VvDropdown/VvDropdownItem.vue.d.ts +0 -9
  307. package/dist/components/VvDropdown/VvDropdownOptgroup.vue.d.ts +0 -6
  308. package/dist/components/VvIcon/VvIcon.vue.d.ts +0 -69
  309. package/dist/components/VvNav/VvNav.vue.d.ts +0 -25
  310. package/dist/components/VvNav/VvNavSeparator.vue.d.ts +0 -2
  311. package/dist/components/VvNav/index.d.ts +0 -8
  312. package/dist/components/VvRadio/VvRadio.vue.d.ts +0 -104
  313. package/dist/components/VvRadio/index.d.ts +0 -47
  314. package/dist/components/VvRadioGroup/index.d.ts +0 -42
  315. package/dist/components/VvTab/VvTab.vue.d.ts +0 -39
  316. package/dist/components/VvTooltip/VvTooltip.vue.d.ts +0 -29
  317. package/dist/composables/alert/useAlert.d.ts +0 -27
  318. package/dist/composables/alert/useInjectAlert.d.ts +0 -9
  319. package/dist/composables/dropdown/useInjectDropdown.d.ts +0 -32
  320. package/dist/composables/group/useInjectedGroupState.d.ts +0 -10
  321. package/dist/composables/group/useProvideGroupState.d.ts +0 -6
  322. package/dist/composables/useComponentIcon.d.ts +0 -10
  323. package/dist/composables/useVolver.d.ts +0 -1
  324. package/dist/directives/index.d.ts +0 -5
  325. package/dist/stories/AccordionGroup/AccordionGroup.stories.d.ts +0 -134
  326. package/dist/stories/AccordionGroup/AccordionGroupSlots.stories.d.ts +0 -679
  327. package/dist/stories/Tab/Tab.settings.d.ts +0 -17
  328. package/dist/types/alert.d.ts +0 -13
  329. package/dist/types/group.d.ts +0 -37
  330. package/dist/{Volver.d.ts → src/Volver.d.ts} +1 -1
  331. /package/dist/{components → src/components}/VvDialog/index.d.ts +0 -0
  332. /package/dist/{components → src/components}/VvInputText/VvInputTextActions.d.ts +0 -0
  333. /package/dist/{composables → src/composables}/alert/useProvideAlert.d.ts +0 -0
  334. /package/dist/{composables → src/composables}/useComponentFocus.d.ts +0 -0
  335. /package/dist/{composables → src/composables}/useDebouncedInput.d.ts +0 -0
  336. /package/dist/{composables → src/composables}/useDefaults.d.ts +0 -0
  337. /package/dist/{composables → src/composables}/useModifiers.d.ts +0 -0
  338. /package/dist/{composables → src/composables}/useOptions.d.ts +0 -0
  339. /package/dist/{composables → src/composables}/useTextCount.d.ts +0 -0
  340. /package/dist/{composables → src/composables}/useUniqueId.d.ts +0 -0
  341. /package/dist/{directives → src/directives}/v-contextmenu.d.ts +0 -0
  342. /package/dist/{directives → src/directives}/v-tooltip.d.ts +0 -0
  343. /package/dist/{icons.d.ts → src/icons.d.ts} +0 -0
  344. /package/dist/{stories → src/stories}/Accordion/Accordion.settings.d.ts +0 -0
  345. /package/dist/{stories → src/stories}/Accordion/Accordion.stories.d.ts +0 -0
  346. /package/dist/{stories → src/stories}/Accordion/Accordion.test.d.ts +0 -0
  347. /package/dist/{stories → src/stories}/Accordion/AccordionSlots.stories.d.ts +0 -0
  348. /package/dist/{stories → src/stories}/AccordionGroup/AccordionGroup.settings.d.ts +0 -0
  349. /package/dist/{stories → src/stories}/AccordionGroup/AccordionGroup.test.d.ts +0 -0
  350. /package/dist/{stories → src/stories}/Alert/Alert.settings.d.ts +0 -0
  351. /package/dist/{stories → src/stories}/Alert/Alert.stories.d.ts +0 -0
  352. /package/dist/{stories → src/stories}/Alert/Alert.test.d.ts +0 -0
  353. /package/dist/{stories → src/stories}/Alert/AlertModifiers.stories.d.ts +0 -0
  354. /package/dist/{stories → src/stories}/Alert/AlertSlots.stories.d.ts +0 -0
  355. /package/dist/{stories → src/stories}/AlertGroup/AlertGroup.settings.d.ts +0 -0
  356. /package/dist/{stories → src/stories}/AlertGroup/AlertGroup.stories.d.ts +0 -0
  357. /package/dist/{stories → src/stories}/AlertGroup/AlertGroup.test.d.ts +0 -0
  358. /package/dist/{stories → src/stories}/AlertGroup/AlertGroupPosition.stories.d.ts +0 -0
  359. /package/dist/{stories → src/stories}/AlertGroup/AlertGroupSlots.stories.d.ts +0 -0
  360. /package/dist/{stories → src/stories}/Avatar/Avatar.settings.d.ts +0 -0
  361. /package/dist/{stories → src/stories}/Avatar/Avatar.stories.d.ts +0 -0
  362. /package/dist/{stories → src/stories}/Avatar/Avatar.test.d.ts +0 -0
  363. /package/dist/{stories → src/stories}/Avatar/AvatarBadge.stories.d.ts +0 -0
  364. /package/dist/{stories → src/stories}/Avatar/AvatarModifiers.stories.d.ts +0 -0
  365. /package/dist/{stories → src/stories}/Avatar/AvatarSlots.stories.d.ts +0 -0
  366. /package/dist/{stories → src/stories}/AvatarGroup/AvatarGroup.settings.d.ts +0 -0
  367. /package/dist/{stories → src/stories}/AvatarGroup/AvatarGroup.stories.d.ts +0 -0
  368. /package/dist/{stories → src/stories}/AvatarGroup/AvatarGroup.test.d.ts +0 -0
  369. /package/dist/{stories → src/stories}/AvatarGroup/AvatarGroupModifiers.stories.d.ts +0 -0
  370. /package/dist/{stories → src/stories}/AvatarGroup/AvatarGroupSlotDefault.stories.d.ts +0 -0
  371. /package/dist/{stories → src/stories}/Badge/Badge.settings.d.ts +0 -0
  372. /package/dist/{stories → src/stories}/Badge/Badge.stories.d.ts +0 -0
  373. /package/dist/{stories → src/stories}/Badge/Badge.test.d.ts +0 -0
  374. /package/dist/{stories → src/stories}/Badge/BadgeSlots.stories.d.ts +0 -0
  375. /package/dist/{stories → src/stories}/Breadcrumb/Breadcrumb.settings.d.ts +0 -0
  376. /package/dist/{stories → src/stories}/Breadcrumb/Breadcrumb.stories.d.ts +0 -0
  377. /package/dist/{stories → src/stories}/Breadcrumb/Breadcrumb.test.d.ts +0 -0
  378. /package/dist/{stories → src/stories}/Breadcrumb/BreadcrumbSlots.stories.d.ts +0 -0
  379. /package/dist/{stories → src/stories}/Button/Button.stories.d.ts +0 -0
  380. /package/dist/{stories → src/stories}/Button/Button.test.d.ts +0 -0
  381. /package/dist/{stories → src/stories}/Button/ButtonIcon.stories.d.ts +0 -0
  382. /package/dist/{stories → src/stories}/Button/ButtonLink.stories.d.ts +0 -0
  383. /package/dist/{stories → src/stories}/Button/ButtonLoading.stories.d.ts +0 -0
  384. /package/dist/{stories → src/stories}/Button/ButtonModifiers.stories.d.ts +0 -0
  385. /package/dist/{stories → src/stories}/Button/ButtonSlots.stories.d.ts +0 -0
  386. /package/dist/{stories → src/stories}/Button/ButtonState.stories.d.ts +0 -0
  387. /package/dist/{stories → src/stories}/Button/ButtonToggle.stories.d.ts +0 -0
  388. /package/dist/{stories → src/stories}/ButtonGroup/ButtonGroup.settings.d.ts +0 -0
  389. /package/dist/{stories → src/stories}/ButtonGroup/ButtonGroup.stories.d.ts +0 -0
  390. /package/dist/{stories → src/stories}/ButtonGroup/ButtonGroup.test.d.ts +0 -0
  391. /package/dist/{stories → src/stories}/ButtonGroup/ButtonGroupModifiers.stories.d.ts +0 -0
  392. /package/dist/{stories → src/stories}/ButtonGroup/ButtonGroupSlots.stories.d.ts +0 -0
  393. /package/dist/{stories → src/stories}/ButtonGroup/ButtonGroupToggle.stories.d.ts +0 -0
  394. /package/dist/{stories → src/stories}/Card/Card.settings.d.ts +0 -0
  395. /package/dist/{stories → src/stories}/Card/Card.stories.d.ts +0 -0
  396. /package/dist/{stories → src/stories}/Card/Card.test.d.ts +0 -0
  397. /package/dist/{stories → src/stories}/Card/CardSlots.stories.d.ts +0 -0
  398. /package/dist/{stories → src/stories}/Checkbox/Checkbox.settings.d.ts +0 -0
  399. /package/dist/{stories → src/stories}/Checkbox/Checkbox.stories.d.ts +0 -0
  400. /package/dist/{stories → src/stories}/Checkbox/Checkbox.test.d.ts +0 -0
  401. /package/dist/{stories → src/stories}/Checkbox/CheckboxBinary.stories.d.ts +0 -0
  402. /package/dist/{stories → src/stories}/Checkbox/CheckboxSlots.stories.d.ts +0 -0
  403. /package/dist/{stories → src/stories}/CheckboxGroup/CheckboxGroup.settings.d.ts +0 -0
  404. /package/dist/{stories → src/stories}/CheckboxGroup/CheckboxGroup.stories.d.ts +0 -0
  405. /package/dist/{stories → src/stories}/CheckboxGroup/CheckboxGroup.test.d.ts +0 -0
  406. /package/dist/{stories → src/stories}/CheckboxGroup/CheckboxGroupOptions.stories.d.ts +0 -0
  407. /package/dist/{stories → src/stories}/CheckboxGroup/CheckboxGroupSlots.stories.d.ts +0 -0
  408. /package/dist/{stories → src/stories}/Combobox/Combobox.stories.d.ts +0 -0
  409. /package/dist/{stories → src/stories}/Combobox/Combobox.test.d.ts +0 -0
  410. /package/dist/{stories → src/stories}/Combobox/ComboboxIconPosition.stories.d.ts +0 -0
  411. /package/dist/{stories → src/stories}/Combobox/ComboboxMultiple.stories.d.ts +0 -0
  412. /package/dist/{stories → src/stories}/Combobox/ComboboxOptions.stories.d.ts +0 -0
  413. /package/dist/{stories → src/stories}/Combobox/ComboboxSlots.stories.d.ts +0 -0
  414. /package/dist/{stories → src/stories}/Dialog/Dialog.settings.d.ts +0 -0
  415. /package/dist/{stories → src/stories}/Dialog/Dialog.stories.d.ts +0 -0
  416. /package/dist/{stories → src/stories}/Dialog/Dialog.test.d.ts +0 -0
  417. /package/dist/{stories → src/stories}/Dialog/DialogSlots.stories.d.ts +0 -0
  418. /package/dist/{stories → src/stories}/Dropdown/Dropdown.settings.d.ts +0 -0
  419. /package/dist/{stories → src/stories}/Dropdown/Dropdown.stories.d.ts +0 -0
  420. /package/dist/{stories → src/stories}/Dropdown/Dropdown.test.d.ts +0 -0
  421. /package/dist/{stories → src/stories}/Dropdown/DropdownContextmenuDirective.stories.d.ts +0 -0
  422. /package/dist/{stories → src/stories}/Dropdown/DropdownMultilevel.stories.d.ts +0 -0
  423. /package/dist/{stories → src/stories}/Dropdown/DropdownSlots.stories.d.ts +0 -0
  424. /package/dist/{stories → src/stories}/Icon/Icon.stories.d.ts +0 -0
  425. /package/dist/{stories → src/stories}/Icon/IconsCollection.stories.d.ts +0 -0
  426. /package/dist/{stories → src/stories}/InputText/InputText.settings.d.ts +0 -0
  427. /package/dist/{stories → src/stories}/InputText/InputText.stories.d.ts +0 -0
  428. /package/dist/{stories → src/stories}/InputText/InputText.test.d.ts +0 -0
  429. /package/dist/{stories → src/stories}/InputText/InputTextIconPosition.stories.d.ts +0 -0
  430. /package/dist/{stories → src/stories}/InputText/InputTextLength.stories.d.ts +0 -0
  431. /package/dist/{stories → src/stories}/InputText/InputTextMask.stories.d.ts +0 -0
  432. /package/dist/{stories → src/stories}/InputText/InputTextMinMax.stories.d.ts +0 -0
  433. /package/dist/{stories → src/stories}/InputText/InputTextSlots.stories.d.ts +0 -0
  434. /package/dist/{stories → src/stories}/InputText/InputTextType.stories.d.ts +0 -0
  435. /package/dist/{stories → src/stories}/Nav/Nav.settings.d.ts +0 -0
  436. /package/dist/{stories → src/stories}/Nav/Nav.stories.d.ts +0 -0
  437. /package/dist/{stories → src/stories}/Nav/Nav.test.d.ts +0 -0
  438. /package/dist/{stories → src/stories}/Nav/NavModifiers.stories.d.ts +0 -0
  439. /package/dist/{stories → src/stories}/Progress/Progress.settings.d.ts +0 -0
  440. /package/dist/{stories → src/stories}/Progress/Progress.stories.d.ts +0 -0
  441. /package/dist/{stories → src/stories}/Progress/Progress.test.d.ts +0 -0
  442. /package/dist/{stories → src/stories}/Radio/Radio.settings.d.ts +0 -0
  443. /package/dist/{stories → src/stories}/Radio/Radio.stories.d.ts +0 -0
  444. /package/dist/{stories → src/stories}/Radio/Radio.test.d.ts +0 -0
  445. /package/dist/{stories → src/stories}/Radio/RadioSlots.stories.d.ts +0 -0
  446. /package/dist/{stories → src/stories}/RadioGroup/RadioGroup.settings.d.ts +0 -0
  447. /package/dist/{stories → src/stories}/RadioGroup/RadioGroup.stories.d.ts +0 -0
  448. /package/dist/{stories → src/stories}/RadioGroup/RadioGroup.test.d.ts +0 -0
  449. /package/dist/{stories → src/stories}/RadioGroup/RadioGroupOptions.stories.d.ts +0 -0
  450. /package/dist/{stories → src/stories}/RadioGroup/RadioGroupSlots.stories.d.ts +0 -0
  451. /package/dist/{stories → src/stories}/Select/Select.settings.d.ts +0 -0
  452. /package/dist/{stories → src/stories}/Select/Select.stories.d.ts +0 -0
  453. /package/dist/{stories → src/stories}/Select/Select.test.d.ts +0 -0
  454. /package/dist/{stories → src/stories}/Select/SelectIconPosition.stories.d.ts +0 -0
  455. /package/dist/{stories → src/stories}/Select/SelectOptions.stories.d.ts +0 -0
  456. /package/dist/{stories → src/stories}/Select/SelectSlots.stories.d.ts +0 -0
  457. /package/dist/{stories → src/stories}/Tab/Tab.stories.d.ts +0 -0
  458. /package/dist/{stories → src/stories}/Tab/Tab.test.d.ts +0 -0
  459. /package/dist/{stories → src/stories}/Textarea/Textarea.settings.d.ts +0 -0
  460. /package/dist/{stories → src/stories}/Textarea/Textarea.stories.d.ts +0 -0
  461. /package/dist/{stories → src/stories}/Textarea/Textarea.test.d.ts +0 -0
  462. /package/dist/{stories → src/stories}/Textarea/TextareaLength.stories.d.ts +0 -0
  463. /package/dist/{stories → src/stories}/Textarea/TextareaSlots.stories.d.ts +0 -0
  464. /package/dist/{stories → src/stories}/Textarea/TextareatIconPosition.stories.d.ts +0 -0
  465. /package/dist/{stories → src/stories}/Tooltip/Tooltip.settings.d.ts +0 -0
  466. /package/dist/{stories → src/stories}/Tooltip/Tooltip.stories.d.ts +0 -0
  467. /package/dist/{stories → src/stories}/Tooltip/Tooltip.test.d.ts +0 -0
  468. /package/dist/{stories → src/stories}/Tooltip/TooltipDirective.stories.d.ts +0 -0
  469. /package/dist/{stories → src/stories}/argTypes.d.ts +0 -0
  470. /package/dist/{test → src/test}/options.d.ts +0 -0
  471. /package/dist/{test → src/test}/sleep.d.ts +0 -0
  472. /package/dist/{types → src/types}/floating-ui.d.ts +0 -0
@@ -1,18 +1,6 @@
1
- import { ModifiersProps } from '@/props'
2
1
  import type { ExtractPropTypes } from 'vue'
3
-
4
- export type AlertItem = {
5
- id: string | number
6
- title?: string
7
- icon?: string | Record<string, unknown>
8
- content?: string
9
- footer?: string
10
- modifiers?: string | string[]
11
- dismissable?: boolean
12
- autoClose?: number
13
- closeLabel?: string
14
- role?: 'alert' | 'alertdialog'
15
- }
2
+ import type { Alert } from '@/types'
3
+ import { ModifiersProps } from '@/props'
16
4
 
17
5
  export const VvAlertGroupProps = {
18
6
  ...ModifiersProps,
@@ -21,7 +9,7 @@ export const VvAlertGroupProps = {
21
9
  required: true,
22
10
  },
23
11
  items: {
24
- type: Array as PropType<AlertItem[]>,
12
+ type: Array as PropType<Alert[]>,
25
13
  default: () => [],
26
14
  },
27
15
  stack: {
@@ -7,46 +7,47 @@
7
7
  <script setup lang="ts">
8
8
  import { useModifiers } from '../../composables/useModifiers'
9
9
  import { VvBreadcrumbProps } from '.'
10
+ import VvAction from '../VvAction/VvAction.vue'
10
11
 
11
12
  const props = defineProps(VvBreadcrumbProps)
12
13
  const { modifiers } = toRefs(props)
13
14
  const bemCssClasses = useModifiers('vv-breadcrumb', modifiers)
15
+ const length = computed(() => props.routes?.length ?? 0)
16
+
17
+ const isLast = (index: number) => index === length.value - 1
14
18
  </script>
15
19
 
16
20
  <template>
17
21
  <nav :class="bemCssClasses" aria-label="breadcrumbs">
18
22
  <ol class="vv-breadcrumb__list">
19
23
  <li
20
- v-for="(route, index) in routes"
21
- :key="`${route.label}-${index}`"
22
- :class="{
23
- 'vv-breadcrumb__item': index < Number(routes?.length) - 1,
24
- 'vv-breadcrumb__item-active':
25
- index === Number(routes?.length) - 1,
26
- }"
24
+ v-for="({ label, ...route }, index) in routes"
25
+ :key="`${label}-${index}`"
26
+ :class="
27
+ !isLast(index)
28
+ ? 'vv-breadcrumb__item'
29
+ : 'vv-breadcrumb__item-active'
30
+ "
27
31
  itemprop="itemListElement"
28
32
  itemtype="https://schema.org/ListItem"
29
33
  itemscope
30
34
  >
31
- <Component
32
- :is="route.to ? 'router-link' : route.href ? 'a' : 'span'"
35
+ <VvAction
33
36
  v-bind="route"
34
- :class="{
35
- 'vv-breadcrumb__link':
36
- index < Number(routes?.length) - 1,
37
- }"
38
- :aria-current="
39
- index === Number(routes?.length) - 1
40
- ? 'page'
41
- : undefined
37
+ :class="
38
+ !isLast(index)
39
+ ? 'vv-breadcrumb__link'
40
+ : 'vv-breadcrumb__label'
42
41
  "
42
+ :aria-current="isLast(index) ? 'page' : undefined"
43
43
  itemprop="item"
44
+ default-tag="span"
44
45
  >
45
46
  <!-- @slot Slot for label -->
46
47
  <slot name="label" v-bind="{ route, index }">
47
- {{ route.label }}
48
+ {{ label }}
48
49
  </slot>
49
- </Component>
50
+ </VvAction>
50
51
  <meta itemprop="position" :content="`${index + 1}`" />
51
52
  </li>
52
53
  </ol>
@@ -1,13 +1,7 @@
1
1
  import { ModifiersProps } from '../../props'
2
-
3
- export interface Route {
4
- label: string
5
- to?: string | { [key: string]: unknown }
6
- title?: string
7
- href?: string
8
- }
2
+ import type { NavItem } from '../../types'
9
3
 
10
4
  export const VvBreadcrumbProps = {
11
5
  ...ModifiersProps,
12
- routes: Array as PropType<Route[]>,
6
+ routes: Array as PropType<NavItem[]>,
13
7
  }
@@ -1,6 +1,7 @@
1
1
  <script lang="ts">
2
2
  export default {
3
3
  name: 'VvButton',
4
+ inheritAttrs: false,
4
5
  }
5
6
  </script>
6
7
 
@@ -74,9 +75,7 @@
74
75
  * @description Define icon attributes.
75
76
  * @returns {Object} The icon attributes.
76
77
  */
77
- const hasIconProps = computed(() =>
78
- typeof icon?.value === 'string' ? { name: icon?.value } : icon?.value,
79
- )
78
+ const { hasIcon } = useComponentIcon(icon)
80
79
 
81
80
  /**
82
81
  * @description Catch click event
@@ -84,6 +83,14 @@
84
83
  const toggleValue = computed(() => {
85
84
  return props.value !== undefined ? props.value : name.value
86
85
  })
86
+ const hasListeners = computed(() => {
87
+ if (!toggle.value) {
88
+ return undefined
89
+ }
90
+ return {
91
+ onClick,
92
+ }
93
+ })
87
94
  const onClick = () => {
88
95
  if (toggle.value) {
89
96
  if (Array.isArray(modelValue.value)) {
@@ -110,6 +117,8 @@
110
117
  <template>
111
118
  <VvAction
112
119
  v-bind="{
120
+ ...attrs,
121
+ ...hasListeners,
113
122
  disabled,
114
123
  pressed,
115
124
  active,
@@ -123,7 +132,6 @@
123
132
  :id="hasId"
124
133
  ref="element"
125
134
  :class="bemCssClasses"
126
- @click="onClick"
127
135
  >
128
136
  <!-- @slot Default slot -->
129
137
  <slot>
@@ -146,9 +154,11 @@
146
154
  <template v-else>
147
155
  <!-- @slot Before label and icon -->
148
156
  <slot name="before" />
149
- <template v-if="icon">
150
- <VvIcon class="vv-button__icon" v-bind="hasIconProps" />
151
- </template>
157
+ <VvIcon
158
+ v-if="hasIcon"
159
+ v-bind="hasIcon"
160
+ class="vv-button__icon"
161
+ />
152
162
  <span v-if="label" class="vv-button__label">
153
163
  <!-- @slot Use this slot for button label -->
154
164
  <slot name="label">
@@ -1,4 +1,4 @@
1
- import type { Ref, PropType, ExtractPropTypes } from 'vue'
1
+ import type { PropType, ExtractPropTypes } from 'vue'
2
2
  import type { ButtonGroupState } from '../../types/group'
3
3
  import {
4
4
  ActionProps,
@@ -6,6 +6,7 @@ import {
6
6
  LoadingProps,
7
7
  ModifiersProps,
8
8
  UnselectableProps,
9
+ IconProps,
9
10
  } from '../../props'
10
11
  import { INJECTION_KEY_BUTTON_GROUP, Side } from '../../constants'
11
12
 
@@ -17,10 +18,7 @@ export const VvButtonProps = {
17
18
  ...ModifiersProps,
18
19
  ...UnselectableProps,
19
20
  ...LoadingProps,
20
- /**
21
- * Button icon
22
- */
23
- icon: [String, Object],
21
+ ...IconProps,
24
22
  /**
25
23
  * Button icon position
26
24
  */
@@ -79,19 +77,14 @@ export function useGroupProps(
79
77
  const { id, iconPosition, icon, label, pressed } = toRefs(props)
80
78
 
81
79
  // group props
82
- const modelValue = getGroupOrLocalRef('modelValue', props, emit) as Ref<
83
- string | number | boolean | (string | number | boolean)[] | undefined
84
- >
85
- const toggle = getGroupOrLocalRef('toggle', props) as Ref<boolean>
86
- const unselectable = getGroupOrLocalRef(
87
- 'unselectable',
88
- props,
89
- ) as Ref<boolean>
90
- const multiple = computed(() => group?.value.multiple.value ?? false)
80
+ const modelValue = getGroupOrLocalRef('modelValue', props, emit)
81
+ const toggle = getGroupOrLocalRef('toggle', props)
82
+ const unselectable = getGroupOrLocalRef('unselectable', props)
83
+ const multiple = computed(() => group?.multiple.value ?? false)
91
84
  // merge local and group modifiers
92
85
  const modifiers = computed(() => {
93
86
  let localModifiers = props.modifiers
94
- let groupModifiers = group?.value.modifiers.value
87
+ let groupModifiers = group?.modifiers.value
95
88
 
96
89
  const toReturn = new Set<string>()
97
90
  if (localModifiers) {
@@ -109,7 +102,7 @@ export function useGroupProps(
109
102
  return Array.from(toReturn)
110
103
  })
111
104
  const disabled = computed(() =>
112
- Boolean(props.disabled || group?.value?.disabled.value),
105
+ Boolean(props.disabled || group?.disabled.value),
113
106
  )
114
107
 
115
108
  return {
@@ -52,8 +52,7 @@
52
52
  })
53
53
 
54
54
  // provide
55
- useProvideGroupState<ButtonGroupState>({
56
- key: INJECTION_KEY_BUTTON_GROUP,
55
+ useProvideGroupState<ButtonGroupState>(INJECTION_KEY_BUTTON_GROUP, {
57
56
  modelValue,
58
57
  disabled,
59
58
  toggle,
@@ -42,10 +42,10 @@ export function useGroupProps(
42
42
  const valid = getGroupOrLocalRef('valid', props) as Ref<boolean>
43
43
  const invalid = getGroupOrLocalRef('invalid', props) as Ref<boolean>
44
44
  const readonly = computed(() =>
45
- Boolean(props.readonly || group?.value?.readonly.value),
45
+ Boolean(props.readonly || group?.readonly.value),
46
46
  )
47
47
  const disabled = computed(() =>
48
- Boolean(props.disabled || group?.value?.disabled.value),
48
+ Boolean(props.disabled || group?.disabled.value),
49
49
  )
50
50
 
51
51
  return {
@@ -29,8 +29,7 @@
29
29
  const { disabled, readonly, vertical, valid, invalid, modifiers } =
30
30
  toRefs(props)
31
31
 
32
- useProvideGroupState<InputGroupState>({
33
- key: INJECTION_KEY_CHECK_GROUP,
32
+ useProvideGroupState<InputGroupState>(INJECTION_KEY_CHECK_GROUP, {
34
33
  modelValue,
35
34
  disabled,
36
35
  readonly,
@@ -87,9 +87,13 @@
87
87
  searchText,
88
88
  computed(() => Number(props.debounceSearch)),
89
89
  )
90
- watch(debouncedSearchText, () =>
91
- emit('change:search', debouncedSearchText.value),
92
- )
90
+ watch(debouncedSearchText, () => {
91
+ emit('update:search', debouncedSearchText.value)
92
+ /**
93
+ * @deprecated change:search should not be used, use update:search instead
94
+ */
95
+ emit('change:search', debouncedSearchText.value)
96
+ })
93
97
 
94
98
  // expanded
95
99
  const expanded = ref(false)
@@ -147,10 +151,7 @@
147
151
  const dropdownEl = ref()
148
152
 
149
153
  // icons
150
- const { hasIcon, hasIconBefore, hasIconAfter } = useComponentIcon(
151
- icon,
152
- iconPosition,
153
- )
154
+ const { hasIconBefore, hasIconAfter } = useComponentIcon(icon, iconPosition)
154
155
 
155
156
  // dirty
156
157
  const isDirty = computed(() => !isEmpty(props.modelValue))
@@ -168,12 +169,12 @@
168
169
  disabled: disabled.value,
169
170
  loading: isLoading.value,
170
171
  readonly: readonly.value,
171
- 'icon-before': Boolean(hasIconBefore.value),
172
- 'icon-after': Boolean(hasIconAfter.value),
172
+ 'icon-before': hasIconBefore.value !== undefined,
173
+ 'icon-after': hasIconAfter.value !== undefined,
173
174
  valid: valid.value,
174
175
  invalid: invalid.value,
175
176
  dirty: isDirty.value,
176
- focus: focused.value,
177
+ focus: focused.value || focusedWithin.value || expanded.value,
177
178
  floating: floating.value,
178
179
  badges: props.badges,
179
180
  })),
@@ -425,8 +426,8 @@
425
426
  <div class="vv-select__inner">
426
427
  <VvIcon
427
428
  v-if="hasIconBefore"
429
+ v-bind="hasIconBefore"
428
430
  class="vv-select__icon"
429
- v-bind="hasIcon"
430
431
  />
431
432
  <div
432
433
  ref="inputEl"
@@ -489,8 +490,8 @@
489
490
  </div>
490
491
  <VvIcon
491
492
  v-if="hasIconAfter"
493
+ v-bind="hasIconAfter"
492
494
  class="vv-select__icon vv-select__icon-after"
493
- v-bind="hasIcon"
494
495
  />
495
496
  </div>
496
497
  <div v-if="$slots.after" class="vv-select__input-after">
@@ -525,6 +526,7 @@
525
526
  }"
526
527
  :key="i"
527
528
  class="vv-dropdown-option"
529
+ focus-on-hover
528
530
  @click.passive="onInput(item)"
529
531
  >
530
532
  <!-- @slot Slot for option customization -->
@@ -555,6 +557,7 @@
555
557
  propsDefaults.selectedHintLabel,
556
558
  }"
557
559
  class="vv-dropdown-option"
560
+ focus-on-hover
558
561
  @click.passive="onInput(option)"
559
562
  >
560
563
  <!-- @slot Slot for option customization -->
@@ -20,6 +20,10 @@ import type { Option } from '../../types/generic'
20
20
 
21
21
  export const VvComboboxEvents = [
22
22
  'update:modelValue',
23
+ 'update:search',
24
+ /**
25
+ * @deprecated change:search should not be used, use update:search instead
26
+ */
23
27
  'change:search',
24
28
  'focus',
25
29
  'blur',
@@ -299,9 +299,7 @@
299
299
  })
300
300
  bus.on('click', toggle)
301
301
 
302
- // provide top dropdown item
303
302
  const { role, modifiers } = toRefs(props)
304
- const { itemRole } = useProvideDropdownItem({ role, expanded })
305
303
 
306
304
  // styles
307
305
  const bemCssClasses = useModifiers(
@@ -376,6 +374,17 @@
376
374
  })
377
375
  }
378
376
 
377
+ // hover
378
+ const hovered = useElementHover(floatingEl)
379
+
380
+ // provide top dropdown item
381
+ const { itemRole } = useProvideDropdownItem({
382
+ role,
383
+ expanded,
384
+ focused,
385
+ hovered,
386
+ })
387
+
379
388
  // keyboard
380
389
  onKeyStroke('Escape', (e) => {
381
390
  if (expanded.value) {
@@ -5,6 +5,9 @@
5
5
  </script>
6
6
 
7
7
  <script setup lang="ts">
8
+ import { VvDropdownItemProps } from '.'
9
+
10
+ const props = defineProps(VvDropdownItemProps)
8
11
  const { role, expanded } = useInjectedDropdownItem()
9
12
  const element = ref(null)
10
13
  useProvideDropdownAction({ expanded })
@@ -14,7 +17,7 @@
14
17
 
15
18
  // focus item on hover
16
19
  watch(hovered, (newValue) => {
17
- if (newValue) {
20
+ if (newValue && props.focusOnHover) {
18
21
  focused.value = true
19
22
  }
20
23
  })
@@ -5,30 +5,11 @@
5
5
  </script>
6
6
 
7
7
  <script setup lang="ts">
8
+ import { VvDropdownOptionProps } from '.'
8
9
  import VvDropdownItem from './VvDropdownItem.vue'
9
- import {
10
- DisabledProps,
11
- ModifiersProps,
12
- SelectedProps,
13
- UnselectableProps,
14
- } from '../../props'
15
10
 
16
11
  // props
17
- const props = defineProps({
18
- ...DisabledProps,
19
- ...SelectedProps,
20
- ...UnselectableProps,
21
- ...ModifiersProps,
22
- deselectHintLabel: {
23
- type: String,
24
- },
25
- selectHintLabel: {
26
- type: String,
27
- },
28
- selectedHintLabel: {
29
- type: String,
30
- },
31
- })
12
+ const props = defineProps(VvDropdownOptionProps)
32
13
 
33
14
  // style
34
15
  const { modifiers } = toRefs(props)
@@ -52,6 +33,7 @@
52
33
  if (!props.disabled) {
53
34
  return props.selectHintLabel
54
35
  }
36
+ return ''
55
37
  })
56
38
  </script>
57
39
 
@@ -61,6 +43,7 @@
61
43
  :tabindex="disabled ? -1 : 0"
62
44
  :aria-selected="selected"
63
45
  :aria-disabled="disabled"
46
+ :focus-on-hover="focusOnHover"
64
47
  >
65
48
  <slot />
66
49
  <span class="vv-dropdown-option__hint" :title="hintLabel">
@@ -1,5 +1,12 @@
1
1
  import type { PropType } from 'vue'
2
- import { DropdownProps, IdProps, ModifiersProps } from '../../props'
2
+ import {
3
+ DropdownProps,
4
+ IdProps,
5
+ DisabledProps,
6
+ ModifiersProps,
7
+ SelectedProps,
8
+ UnselectableProps,
9
+ } from '../../props'
3
10
  import { DropdownRole } from '../../constants'
4
11
 
5
12
  export const VvDropdownProps = {
@@ -30,3 +37,30 @@ export const VvDropdownProps = {
30
37
  Object.values(DropdownRole).includes(value),
31
38
  },
32
39
  }
40
+
41
+ export const VvDropdownItemProps = {
42
+ focusOnHover: {
43
+ type: Boolean,
44
+ default: false,
45
+ },
46
+ }
47
+
48
+ export const VvDropdownOptionProps = {
49
+ ...DisabledProps,
50
+ ...SelectedProps,
51
+ ...UnselectableProps,
52
+ ...ModifiersProps,
53
+ deselectHintLabel: {
54
+ type: String,
55
+ },
56
+ selectHintLabel: {
57
+ type: String,
58
+ },
59
+ selectedHintLabel: {
60
+ type: String,
61
+ },
62
+ focusOnHover: {
63
+ type: Boolean,
64
+ default: false,
65
+ },
66
+ }
@@ -6,10 +6,10 @@
6
6
 
7
7
  <script setup lang="ts">
8
8
  import { Icon, addIcon, iconExists } from '@iconify/vue'
9
- import { VvIconProps } from '.'
9
+ import { type VvIconProps, VvIconPropsDefaults } from '.'
10
10
 
11
11
  // props
12
- const props = defineProps(VvIconProps)
12
+ const props = withDefaults(defineProps<VvIconProps>(), VvIconPropsDefaults)
13
13
 
14
14
  const hasRotate = computed(() => {
15
15
  if (typeof props.rotate === 'string') {
@@ -1,71 +1,56 @@
1
- import type { PropType } from 'vue'
2
1
  import type { IconifyIconOnLoad, IconifyRenderMode } from '@iconify/vue'
3
2
 
3
+ export const ACTION_ICONS = {
4
+ showPassword: 'eye-on',
5
+ hidePassword: 'eye-off',
6
+ showDatePicker: 'calendar',
7
+ showTimePicker: 'time',
8
+ showColorPicker: 'color',
9
+ clear: 'close',
10
+ add: 'add',
11
+ remove: 'trash',
12
+ edit: 'edit',
13
+ download: 'download',
14
+ } as const
15
+
4
16
  export enum IconPrefix {
5
17
  simple = 'simple',
6
18
  normal = 'normal',
7
19
  detailed = 'detailed',
8
20
  }
9
21
 
10
- export const VvIconProps = {
11
- /**
12
- * Color
13
- */
14
- color: String,
15
- /**
16
- * Width
17
- */
18
- width: {
19
- type: [String, Number],
20
- },
21
- /**
22
- * Height
23
- */
24
- height: {
25
- type: [String, Number],
26
- },
22
+ export type VvIconProps = {
27
23
  /**
28
24
  * Icon name
29
25
  * Can be the full composition of iconify name "@{provider}:{prefix}:{name}" or "{prefix}:{name}" or "{name}"
30
26
  * https://docs.iconify.design/api/providers.html#provider-in-icon-name
31
27
  */
32
- name: {
33
- type: String,
34
- required: true,
35
- },
28
+ name: string
29
+ color?: string
30
+ width?: string | number
31
+ height?: string | number
36
32
  /**
37
- * By default 'vv'
38
33
  * If custom collection is not added with "addCollection" DS class method, this prop could not be used
39
34
  * Icon provider: https://docs.iconify.design/api/providers.html#provider-in-icon-name
40
35
  */
41
- provider: {
42
- type: String,
43
- },
36
+ provider?: string
44
37
  /**
38
+ * @default 'normal'
45
39
  * The name of icon set.
46
40
  * Icon default options prefix: simple | normal | detailed
47
41
  */
48
- prefix: {
49
- type: String as PropType<`${IconPrefix}` | string>,
50
- default: 'normal',
51
- },
42
+ prefix?: IconPrefix | string
52
43
  /**
53
44
  * Url remote SVG icon
54
45
  */
55
- src: String,
56
- /**
57
- * Horizontal flip
58
- */
59
- horizontalFlip: Boolean,
60
- /**
61
- * Vertical flip
62
- */
63
- verticalFlip: Boolean,
46
+ src?: string
47
+ horizontalFlip?: boolean
48
+ verticalFlip?: boolean
64
49
  /**
65
50
  * String alternative to "horizontalFlip" and "verticalFlip".
66
51
  * Example: https://docs.iconify.design/icon-components/vue/transform.html
67
52
  */
68
- flip: String,
53
+ flip?: string
69
54
  /**
70
55
  * Icon render mode
71
56
  * 'style' = 'bg' or 'mask', depending on icon content
@@ -74,30 +59,32 @@ export const VvIconProps = {
74
59
  * 'svg' = svg
75
60
  * Iconify doc: https://docs.iconify.design/iconify-icon/modes.html
76
61
  */
77
- mode: String as PropType<`${IconifyRenderMode}`>,
62
+ mode?: IconifyRenderMode
78
63
  /**
79
64
  * Toggles inline or block mode
80
65
  * Example https://docs.iconify.design/icon-components/vue/inline.html
81
66
  */
82
- inline: Boolean,
67
+ inline?: boolean
83
68
  /**
84
69
  * rotates icon
85
70
  * Example https://docs.iconify.design/icon-components/vue/transform.html
86
71
  */
87
- rotate: [Number, String],
72
+ rotate?: number | string
88
73
  /**
89
74
  * A callback that is called when icon data has been loaded
90
75
  */
91
- onLoad: Function as PropType<IconifyIconOnLoad>,
76
+ onLoad?: IconifyIconOnLoad
92
77
  /**
93
78
  * SVG icon string
94
79
  */
95
- svg: String,
80
+ svg?: string
96
81
  /**
97
82
  * Icon modifiers: vv-icon css helper classes, value/s are concatened with prefix 'vv-icon--'
98
83
  * @values string | string[]
99
84
  */
100
- modifiers: {
101
- type: [String, Array] as PropType<string | string[]>,
102
- },
85
+ modifiers?: string | string[]
86
+ }
87
+
88
+ export const VvIconPropsDefaults = {
89
+ prefix: IconPrefix.normal,
103
90
  }