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

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 (294) 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/Volver.d.ts +1 -1
  7. package/dist/components/VvAccordion/VvAccordion.es.js +192 -103
  8. package/dist/components/VvAccordion/VvAccordion.umd.js +1 -1
  9. package/dist/components/VvAccordion/VvAccordion.vue.d.ts +160 -8
  10. package/dist/components/VvAccordion/index.d.ts +8 -9
  11. package/dist/components/VvAccordionGroup/VvAccordionGroup.es.js +451 -172
  12. package/dist/components/VvAccordionGroup/VvAccordionGroup.umd.js +1 -1
  13. package/dist/components/VvAccordionGroup/VvAccordionGroup.vue.d.ts +58 -13
  14. package/dist/components/VvAccordionGroup/index.d.ts +14 -6
  15. package/dist/components/VvAction/VvAction.es.js +78 -27
  16. package/dist/components/VvAction/VvAction.umd.js +1 -1
  17. package/dist/components/VvAction/VvAction.vue.d.ts +57 -22
  18. package/dist/components/VvAction/index.d.ts +25 -9
  19. package/dist/components/VvAlert/VvAlert.es.js +204 -171
  20. package/dist/components/VvAlert/VvAlert.umd.js +1 -1
  21. package/dist/components/VvAlert/VvAlert.vue.d.ts +24 -14
  22. package/dist/components/VvAlert/index.d.ts +17 -9
  23. package/dist/components/VvAlertGroup/VvAlertGroup.es.js +250 -188
  24. package/dist/components/VvAlertGroup/VvAlertGroup.umd.js +1 -1
  25. package/dist/components/VvAlertGroup/VvAlertGroup.vue.d.ts +16 -9
  26. package/dist/components/VvAlertGroup/index.d.ts +6 -14
  27. package/dist/components/VvAvatar/VvAvatar.es.js +61 -21
  28. package/dist/components/VvAvatar/VvAvatar.umd.js +1 -1
  29. package/dist/components/VvAvatar/VvAvatar.vue.d.ts +12 -4
  30. package/dist/components/VvAvatar/index.d.ts +4 -1
  31. package/dist/components/VvAvatarGroup/VvAvatarGroup.es.js +118 -48
  32. package/dist/components/VvAvatarGroup/VvAvatarGroup.umd.js +1 -1
  33. package/dist/components/VvAvatarGroup/VvAvatarGroup.vue.d.ts +10 -3
  34. package/dist/components/VvAvatarGroup/index.d.ts +4 -1
  35. package/dist/components/VvBadge/VvBadge.es.js +78 -28
  36. package/dist/components/VvBadge/VvBadge.umd.js +1 -1
  37. package/dist/components/VvBadge/VvBadge.vue.d.ts +12 -4
  38. package/dist/components/VvBadge/index.d.ts +4 -1
  39. package/dist/components/VvBreadcrumb/VvBreadcrumb.es.js +276 -60
  40. package/dist/components/VvBreadcrumb/VvBreadcrumb.umd.js +1 -1
  41. package/dist/components/VvBreadcrumb/VvBreadcrumb.vue.d.ts +27 -7
  42. package/dist/components/VvBreadcrumb/index.d.ts +6 -10
  43. package/dist/components/VvButton/VvButton.es.js +291 -252
  44. package/dist/components/VvButton/VvButton.umd.js +1 -1
  45. package/dist/components/VvButton/VvButton.vue.d.ts +94 -40
  46. package/dist/components/VvButton/index.d.ts +51 -29
  47. package/dist/components/VvButtonGroup/VvButtonGroup.es.js +81 -40
  48. package/dist/components/VvButtonGroup/VvButtonGroup.umd.js +1 -1
  49. package/dist/components/VvButtonGroup/VvButtonGroup.vue.d.ts +24 -11
  50. package/dist/components/VvButtonGroup/index.d.ts +8 -2
  51. package/dist/components/VvCard/VvCard.es.js +86 -36
  52. package/dist/components/VvCard/VvCard.umd.js +1 -1
  53. package/dist/components/VvCard/VvCard.vue.d.ts +12 -4
  54. package/dist/components/VvCard/index.d.ts +4 -1
  55. package/dist/components/VvCheckbox/VvCheckbox.es.js +177 -120
  56. package/dist/components/VvCheckbox/VvCheckbox.umd.js +1 -1
  57. package/dist/components/VvCheckbox/VvCheckbox.vue.d.ts +105 -33
  58. package/dist/components/VvCheckbox/index.d.ts +47 -14
  59. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.es.js +190 -107
  60. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.umd.js +1 -1
  61. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.vue.d.ts +101 -30
  62. package/dist/components/VvCheckboxGroup/index.d.ts +45 -12
  63. package/dist/components/VvCombobox/VvCombobox.es.js +806 -581
  64. package/dist/components/VvCombobox/VvCombobox.umd.js +1 -1
  65. package/dist/components/VvCombobox/VvCombobox.vue.d.ts +171 -104
  66. package/dist/components/VvCombobox/index.d.ts +62 -26
  67. package/dist/components/VvDialog/VvDialog.es.js +140 -153
  68. package/dist/components/VvDialog/VvDialog.umd.js +1 -1
  69. package/dist/components/VvDialog/VvDialog.vue.d.ts +4 -4
  70. package/dist/components/VvDropdown/VvDropdown.es.js +138 -71
  71. package/dist/components/VvDropdown/VvDropdown.umd.js +1 -1
  72. package/dist/components/VvDropdown/VvDropdown.vue.d.ts +101 -75
  73. package/dist/components/VvDropdown/VvDropdownAction.vue.d.ts +66 -25
  74. package/dist/components/VvDropdown/VvDropdownItem.vue.d.ts +13 -1
  75. package/dist/components/VvDropdown/VvDropdownOptgroup.vue.d.ts +12 -4
  76. package/dist/components/VvDropdown/VvDropdownOption.vue.d.ts +35 -7
  77. package/dist/components/VvDropdown/index.d.ts +52 -10
  78. package/dist/components/VvDropdownAction/VvDropdownAction.es.js +152 -39
  79. package/dist/components/VvDropdownAction/VvDropdownAction.umd.js +1 -1
  80. package/dist/components/VvDropdownItem/VvDropdownItem.es.js +335 -8
  81. package/dist/components/VvDropdownItem/VvDropdownItem.umd.js +1 -1
  82. package/dist/components/VvDropdownOptgroup/VvDropdownOptgroup.es.js +63 -20
  83. package/dist/components/VvDropdownOptgroup/VvDropdownOptgroup.umd.js +1 -1
  84. package/dist/components/VvDropdownOption/VvDropdownOption.es.js +188 -80
  85. package/dist/components/VvDropdownOption/VvDropdownOption.umd.js +1 -1
  86. package/dist/components/VvIcon/VvIcon.es.js +23 -96
  87. package/dist/components/VvIcon/VvIcon.umd.js +1 -1
  88. package/dist/components/VvIcon/VvIcon.vue.d.ts +23 -66
  89. package/dist/components/VvIcon/index.d.ts +33 -48
  90. package/dist/components/VvInputFile/VvInputFile.es.js +1777 -0
  91. package/dist/components/VvInputFile/VvInputFile.umd.js +1 -0
  92. package/dist/components/VvInputFile/VvInputFile.vue.d.ts +359 -0
  93. package/dist/components/VvInputFile/index.d.ts +200 -0
  94. package/dist/components/VvInputText/VvInputClearAction.d.ts +7 -5
  95. package/dist/components/VvInputText/VvInputPasswordAction.d.ts +10 -8
  96. package/dist/components/VvInputText/VvInputStepAction.d.ts +2 -2
  97. package/dist/components/VvInputText/VvInputText.es.js +1237 -324
  98. package/dist/components/VvInputText/VvInputText.umd.js +1 -1
  99. package/dist/components/VvInputText/VvInputText.vue.d.ts +207 -57
  100. package/dist/components/VvInputText/index.d.ts +99 -29
  101. package/dist/components/VvNav/VvNav.es.js +135 -56
  102. package/dist/components/VvNav/VvNav.umd.js +1 -1
  103. package/dist/components/VvNav/VvNav.vue.d.ts +32 -9
  104. package/dist/components/VvNav/VvNavItem.vue.d.ts +1 -1
  105. package/dist/components/VvNav/VvNavSeparator.vue.d.ts +1 -1
  106. package/dist/components/VvNav/index.d.ts +5 -2
  107. package/dist/components/VvNavItem/VvNavItem.es.js +91 -33
  108. package/dist/components/VvNavItem/VvNavItem.umd.js +1 -1
  109. package/dist/components/VvProgress/VvProgress.es.js +72 -26
  110. package/dist/components/VvProgress/VvProgress.umd.js +1 -1
  111. package/dist/components/VvProgress/VvProgress.vue.d.ts +10 -3
  112. package/dist/components/VvProgress/index.d.ts +4 -1
  113. package/dist/components/VvRadio/VvRadio.es.js +160 -103
  114. package/dist/components/VvRadio/VvRadio.umd.js +1 -1
  115. package/dist/components/VvRadio/VvRadio.vue.d.ts +103 -31
  116. package/dist/components/VvRadio/index.d.ts +50 -17
  117. package/dist/components/VvRadioGroup/VvRadioGroup.es.js +190 -107
  118. package/dist/components/VvRadioGroup/VvRadioGroup.umd.js +1 -1
  119. package/dist/components/VvRadioGroup/VvRadioGroup.vue.d.ts +101 -30
  120. package/dist/components/VvRadioGroup/index.d.ts +45 -12
  121. package/dist/components/VvSelect/VvSelect.es.js +251 -238
  122. package/dist/components/VvSelect/VvSelect.umd.js +1 -1
  123. package/dist/components/VvSelect/VvSelect.vue.d.ts +117 -44
  124. package/dist/components/VvSelect/index.d.ts +48 -14
  125. package/dist/components/VvTab/VvTab.es.js +191 -75
  126. package/dist/components/VvTab/VvTab.umd.js +1 -1
  127. package/dist/components/VvTab/VvTab.vue.d.ts +31 -7
  128. package/dist/components/VvTab/index.d.ts +4 -1
  129. package/dist/components/VvTextarea/VvTextarea.es.js +232 -224
  130. package/dist/components/VvTextarea/VvTextarea.umd.js +1 -1
  131. package/dist/components/VvTextarea/VvTextarea.vue.d.ts +156 -49
  132. package/dist/components/VvTextarea/index.d.ts +68 -19
  133. package/dist/components/VvTooltip/VvTooltip.es.js +79 -29
  134. package/dist/components/VvTooltip/VvTooltip.umd.js +1 -1
  135. package/dist/components/VvTooltip/VvTooltip.vue.d.ts +13 -6
  136. package/dist/components/VvTooltip/index.d.ts +5 -2
  137. package/dist/components/common/HintSlot.d.ts +1 -1
  138. package/dist/components/index.d.ts +10 -0
  139. package/dist/components/index.es.js +3534 -1650
  140. package/dist/components/index.umd.js +1 -1
  141. package/dist/composables/alert/useAlert.d.ts +99 -4
  142. package/dist/composables/alert/useInjectAlert.d.ts +1 -6
  143. package/dist/composables/dropdown/useInjectDropdown.d.ts +3 -23
  144. package/dist/composables/dropdown/useProvideDropdown.d.ts +3 -4
  145. package/dist/composables/group/useInjectedGroupState.d.ts +4 -5
  146. package/dist/composables/group/useProvideGroupState.d.ts +3 -3
  147. package/dist/composables/index.d.ts +1 -0
  148. package/dist/composables/index.es.js +92 -3
  149. package/dist/composables/index.umd.js +1 -1
  150. package/dist/composables/useBlurhash.d.ts +7 -0
  151. package/dist/composables/useComponentIcon.d.ts +9 -8
  152. package/dist/composables/usePersistence.d.ts +2 -0
  153. package/dist/composables/useVolver.d.ts +1 -1
  154. package/dist/constants.d.ts +34 -32
  155. package/dist/directives/index.d.ts +3 -5
  156. package/dist/directives/index.es.js +99 -43
  157. package/dist/directives/index.umd.js +1 -1
  158. package/dist/directives/v-tooltip.es.js +97 -38
  159. package/dist/directives/v-tooltip.umd.js +1 -1
  160. package/dist/icons.es.js +267 -267
  161. package/dist/icons.umd.js +1 -1
  162. package/dist/index.d.ts +3 -1
  163. package/dist/index.es.js +90 -16
  164. package/dist/index.umd.js +1 -1
  165. package/dist/props/index.d.ts +272 -81
  166. package/dist/resolvers/unplugin.d.ts +6 -1
  167. package/dist/resolvers/unplugin.es.js +87 -10
  168. package/dist/resolvers/unplugin.umd.js +1 -1
  169. package/dist/stories/AccordionGroup/AccordionGroup.stories.d.ts +143 -89
  170. package/dist/stories/AccordionGroup/AccordionGroupSlots.stories.d.ts +1075 -492
  171. package/dist/stories/AlertGroup/AlertGroupWithComposable.stories.d.ts +1 -1
  172. package/dist/stories/Blurhash/BlurhashComposable.stories.d.ts +4 -0
  173. package/dist/stories/Button/Button.settings.d.ts +0 -1
  174. package/dist/stories/Combobox/Combobox.settings.d.ts +8 -0
  175. package/dist/stories/Icon/Icon.settings.d.ts +1 -0
  176. package/dist/stories/InputFile/InputFile.settings.d.ts +56 -0
  177. package/dist/stories/InputFile/InputFile.stories.d.ts +12 -0
  178. package/dist/stories/InputFile/InputFileDropArea.stories.d.ts +9 -0
  179. package/dist/stories/InputFile/InputFileIconPosition.stories.d.ts +8 -0
  180. package/dist/stories/InputFile/InputFileSlots.stories.d.ts +7 -0
  181. package/dist/stories/Tab/Tab.settings.d.ts +2 -15
  182. package/dist/test/expect.d.ts +1 -1
  183. package/dist/types/alert.d.ts +9 -7
  184. package/dist/types/blurhash.d.ts +12 -0
  185. package/dist/types/generic.d.ts +1 -2
  186. package/dist/types/group.d.ts +37 -15
  187. package/dist/types/index.d.ts +7 -0
  188. package/dist/types/input-file.d.ts +16 -0
  189. package/dist/types/nav.d.ts +2 -2
  190. package/dist/utils/ObjectUtilities.d.ts +0 -1
  191. package/dist/workers/blurhash.d.ts +1 -0
  192. package/package.json +78 -78
  193. package/src/Volver.ts +31 -20
  194. package/src/assets/icons/detailed.json +1 -1
  195. package/src/assets/icons/normal.json +1 -1
  196. package/src/assets/icons/simple.json +1 -1
  197. package/src/components/VvAccordion/VvAccordion.vue +121 -58
  198. package/src/components/VvAccordion/index.ts +8 -23
  199. package/src/components/VvAccordionGroup/VvAccordionGroup.vue +164 -47
  200. package/src/components/VvAccordionGroup/index.ts +6 -6
  201. package/src/components/VvAction/VvAction.vue +17 -5
  202. package/src/components/VvAlert/index.ts +14 -9
  203. package/src/components/VvAlertGroup/index.ts +3 -15
  204. package/src/components/VvBreadcrumb/VvBreadcrumb.vue +20 -19
  205. package/src/components/VvBreadcrumb/index.ts +2 -8
  206. package/src/components/VvButton/VvButton.vue +17 -7
  207. package/src/components/VvButton/index.ts +9 -16
  208. package/src/components/VvButtonGroup/VvButtonGroup.vue +1 -2
  209. package/src/components/VvCheckbox/index.ts +2 -2
  210. package/src/components/VvCheckboxGroup/VvCheckboxGroup.vue +1 -2
  211. package/src/components/VvCombobox/VvCombobox.vue +15 -12
  212. package/src/components/VvCombobox/index.ts +4 -0
  213. package/src/components/VvDropdown/VvDropdown.vue +11 -2
  214. package/src/components/VvDropdown/VvDropdownItem.vue +4 -1
  215. package/src/components/VvDropdown/VvDropdownOption.vue +4 -21
  216. package/src/components/VvDropdown/index.ts +35 -1
  217. package/src/components/VvIcon/VvIcon.vue +2 -2
  218. package/src/components/VvIcon/index.ts +35 -48
  219. package/src/components/VvInputFile/VvInputFile.vue +395 -0
  220. package/src/components/VvInputFile/index.ts +135 -0
  221. package/src/components/VvInputText/VvInputClearAction.ts +10 -6
  222. package/src/components/VvInputText/VvInputPasswordAction.ts +13 -9
  223. package/src/components/VvInputText/VvInputText.vue +141 -33
  224. package/src/components/VvInputText/index.ts +31 -16
  225. package/src/components/VvNav/VvNav.vue +4 -2
  226. package/src/components/VvRadio/index.ts +5 -5
  227. package/src/components/VvRadioGroup/VvRadioGroup.vue +1 -2
  228. package/src/components/VvSelect/VvSelect.vue +5 -8
  229. package/src/components/VvTab/VvTab.vue +5 -1
  230. package/src/components/VvTextarea/VvTextarea.vue +6 -9
  231. package/src/components/index.ts +10 -0
  232. package/src/composables/alert/useAlert.ts +12 -9
  233. package/src/composables/dropdown/useProvideDropdown.ts +4 -4
  234. package/src/composables/group/useInjectedGroupState.ts +20 -16
  235. package/src/composables/group/useProvideGroupState.ts +10 -15
  236. package/src/composables/index.ts +1 -0
  237. package/src/composables/useBlurhash.ts +76 -0
  238. package/src/composables/useComponentIcon.ts +15 -14
  239. package/src/composables/usePersistence.ts +76 -0
  240. package/src/composables/useUniqueId.ts +2 -2
  241. package/src/constants.ts +47 -32
  242. package/src/directives/index.ts +3 -6
  243. package/src/directives/v-tooltip.ts +19 -10
  244. package/src/index.ts +3 -1
  245. package/src/props/index.ts +108 -31
  246. package/src/resolvers/unplugin.ts +24 -14
  247. package/src/stories/Accordion/Accordion.test.ts +1 -1
  248. package/src/stories/AccordionGroup/AccordionGroup.settings.ts +2 -2
  249. package/src/stories/AccordionGroup/AccordionGroup.test.ts +17 -11
  250. package/src/stories/AccordionGroup/AccordionGroupSlots.stories.ts +1 -1
  251. package/src/stories/Alert/Alert.test.ts +1 -1
  252. package/src/stories/AlertGroup/AlertGroup.test.ts +1 -1
  253. package/src/stories/AlertGroup/AlertGroupWithComposable.stories.ts +2 -2
  254. package/src/stories/Avatar/Avatar.test.ts +1 -1
  255. package/src/stories/AvatarGroup/AvatarGroup.test.ts +1 -1
  256. package/src/stories/Badge/Badge.test.ts +1 -1
  257. package/src/stories/Blurhash/BlurhashComposable.stories.ts +195 -0
  258. package/src/stories/Button/Button.settings.ts +1 -4
  259. package/src/stories/Button/Button.test.ts +1 -1
  260. package/src/stories/ButtonGroup/ButtonGroup.test.ts +1 -1
  261. package/src/stories/Card/Card.test.ts +1 -1
  262. package/src/stories/Checkbox/Checkbox.test.ts +1 -1
  263. package/src/stories/CheckboxGroup/CheckboxGroup.test.ts +1 -1
  264. package/src/stories/Combobox/Combobox.settings.ts +8 -0
  265. package/src/stories/Combobox/Combobox.test.ts +1 -1
  266. package/src/stories/Dialog/Dialog.test.ts +2 -2
  267. package/src/stories/Dropdown/Dropdown.test.ts +1 -1
  268. package/src/stories/Icon/Icon.settings.ts +3 -3
  269. package/src/stories/InputFile/InputFile.settings.ts +36 -0
  270. package/src/stories/InputFile/InputFile.stories.ts +89 -0
  271. package/src/stories/InputFile/InputFileDropArea.stories.ts +56 -0
  272. package/src/stories/InputFile/InputFileIconPosition.stories.ts +43 -0
  273. package/src/stories/InputFile/InputFileSlots.stories.ts +33 -0
  274. package/src/stories/InputText/InputText.test.ts +1 -1
  275. package/src/stories/Nav/Nav.test.ts +1 -1
  276. package/src/stories/Progress/Progress.test.ts +1 -1
  277. package/src/stories/Radio/Radio.test.ts +1 -1
  278. package/src/stories/RadioGroup/RadioGroup.test.ts +1 -1
  279. package/src/stories/Select/Select.test.ts +1 -1
  280. package/src/stories/Tab/Tab.settings.ts +2 -2
  281. package/src/stories/Tab/Tab.test.ts +1 -1
  282. package/src/stories/Textarea/Textarea.test.ts +1 -1
  283. package/src/stories/Tooltip/Tooltip.test.ts +1 -1
  284. package/src/stories/argTypes.ts +1 -1
  285. package/src/test/expect.ts +2 -4
  286. package/src/types/alert.ts +11 -7
  287. package/src/types/blurhash.ts +21 -0
  288. package/src/types/generic.ts +3 -3
  289. package/src/types/group.ts +22 -14
  290. package/src/types/index.ts +7 -0
  291. package/src/types/input-file.ts +18 -0
  292. package/src/types/nav.ts +2 -3
  293. package/src/utils/ObjectUtilities.ts +0 -11
  294. package/src/workers/blurhash.ts +9 -0
@@ -23,9 +23,12 @@ export declare const VvDropdownProps: {
23
23
  default: DropdownRole;
24
24
  validator: (value: DropdownRole) => boolean;
25
25
  };
26
- modifiers: PropType<string | string[]>;
26
+ modifiers: {
27
+ type: PropType<string | string[]>;
28
+ default: undefined;
29
+ };
27
30
  placement: {
28
- type: PropType<"left" | "right" | "top" | "bottom" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "left-start" | "left-end" | "right-start" | "right-end">;
31
+ type: PropType<"top" | "right" | "bottom" | "left" | "top-start" | "top-end" | "right-start" | "right-end" | "bottom-start" | "bottom-end" | "left-start" | "left-end">;
29
32
  default: import("../../constants").Side;
30
33
  validator: (value: never) => boolean;
31
34
  };
@@ -36,6 +39,7 @@ export declare const VvDropdownProps: {
36
39
  };
37
40
  transitionName: {
38
41
  type: StringConstructor;
42
+ default: undefined;
39
43
  };
40
44
  offset: {
41
45
  type: PropType<string | import("@floating-ui/core").OffsetOptions | undefined>;
@@ -50,11 +54,11 @@ export declare const VvDropdownProps: {
50
54
  crossAxis?: boolean | undefined;
51
55
  mainAxis?: boolean | undefined;
52
56
  limiter?: {
53
- fn: (state: import("@floating-ui/core").MiddlewareState) => import("@floating-ui/core").Coords;
57
+ fn: (state: import("@floating-ui/core").MiddlewareState) => import("@floating-ui/utils").Coords;
54
58
  options?: any;
55
59
  } | undefined;
56
60
  boundary?: import("@floating-ui/dom").Boundary | undefined;
57
- } | import("@floating-ui/dom").Derivable<{
61
+ } | import("@floating-ui/core").Derivable<{
58
62
  rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
59
63
  elementContext?: import("@floating-ui/core").ElementContext | undefined;
60
64
  altBoundary?: boolean | undefined;
@@ -62,7 +66,7 @@ export declare const VvDropdownProps: {
62
66
  crossAxis?: boolean | undefined;
63
67
  mainAxis?: boolean | undefined;
64
68
  limiter?: {
65
- fn: (state: import("@floating-ui/core").MiddlewareState) => import("@floating-ui/core").Coords;
69
+ fn: (state: import("@floating-ui/core").MiddlewareState) => import("@floating-ui/utils").Coords;
66
70
  options?: any;
67
71
  } | undefined;
68
72
  boundary?: import("@floating-ui/dom").Boundary | undefined;
@@ -78,11 +82,11 @@ export declare const VvDropdownProps: {
78
82
  crossAxis?: boolean | undefined;
79
83
  mainAxis?: boolean | undefined;
80
84
  fallbackPlacements?: import("@floating-ui/utils").Placement[] | undefined;
81
- fallbackStrategy?: "initialPlacement" | "bestFit" | undefined;
85
+ fallbackStrategy?: "bestFit" | "initialPlacement" | undefined;
82
86
  fallbackAxisSideDirection?: "start" | "end" | "none" | undefined;
83
87
  flipAlignment?: boolean | undefined;
84
88
  boundary?: import("@floating-ui/dom").Boundary | undefined;
85
- } | import("@floating-ui/dom").Derivable<{
89
+ } | import("@floating-ui/core").Derivable<{
86
90
  rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
87
91
  elementContext?: import("@floating-ui/core").ElementContext | undefined;
88
92
  altBoundary?: boolean | undefined;
@@ -90,7 +94,7 @@ export declare const VvDropdownProps: {
90
94
  crossAxis?: boolean | undefined;
91
95
  mainAxis?: boolean | undefined;
92
96
  fallbackPlacements?: import("@floating-ui/utils").Placement[] | undefined;
93
- fallbackStrategy?: "initialPlacement" | "bestFit" | undefined;
97
+ fallbackStrategy?: "bestFit" | "initialPlacement" | undefined;
94
98
  fallbackAxisSideDirection?: "start" | "end" | "none" | undefined;
95
99
  flipAlignment?: boolean | undefined;
96
100
  boundary?: import("@floating-ui/dom").Boundary | undefined;
@@ -118,7 +122,7 @@ export declare const VvDropdownProps: {
118
122
  availableWidth: number;
119
123
  availableHeight: number;
120
124
  }) => void | Promise<void>) | undefined;
121
- } | import("@floating-ui/dom").Derivable<{
125
+ } | import("@floating-ui/core").Derivable<{
122
126
  rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
123
127
  elementContext?: import("@floating-ui/core").ElementContext | undefined;
124
128
  altBoundary?: boolean | undefined;
@@ -154,7 +158,7 @@ export declare const VvDropdownProps: {
154
158
  autoAlignment?: boolean | undefined;
155
159
  allowedPlacements?: import("@floating-ui/utils").Placement[] | undefined;
156
160
  boundary?: import("@floating-ui/dom").Boundary | undefined;
157
- } | import("@floating-ui/dom").Derivable<{
161
+ } | import("@floating-ui/core").Derivable<{
158
162
  rootBoundary?: import("@floating-ui/core").RootBoundary | undefined;
159
163
  elementContext?: import("@floating-ui/core").ElementContext | undefined;
160
164
  altBoundary?: boolean | undefined;
@@ -181,6 +185,44 @@ export declare const VvDropdownProps: {
181
185
  };
182
186
  triggerWidth: {
183
187
  type: BooleanConstructor;
188
+ default: boolean;
184
189
  };
185
190
  id: (StringConstructor | NumberConstructor)[];
186
191
  };
192
+ export declare const VvDropdownItemProps: {
193
+ focusOnHover: {
194
+ type: BooleanConstructor;
195
+ default: boolean;
196
+ };
197
+ };
198
+ export declare const VvDropdownOptionProps: {
199
+ deselectHintLabel: {
200
+ type: StringConstructor;
201
+ };
202
+ selectHintLabel: {
203
+ type: StringConstructor;
204
+ };
205
+ selectedHintLabel: {
206
+ type: StringConstructor;
207
+ };
208
+ focusOnHover: {
209
+ type: BooleanConstructor;
210
+ default: boolean;
211
+ };
212
+ modifiers: {
213
+ type: PropType<string | string[]>;
214
+ default: undefined;
215
+ };
216
+ unselectable: {
217
+ type: BooleanConstructor;
218
+ default: boolean;
219
+ };
220
+ selected: {
221
+ type: BooleanConstructor;
222
+ default: boolean;
223
+ };
224
+ disabled: {
225
+ type: BooleanConstructor;
226
+ default: boolean;
227
+ };
228
+ };
@@ -1,6 +1,11 @@
1
- import { inject, defineComponent, ref, watch, computed, openBlock, createBlock, resolveDynamicComponent, unref, mergeProps, withCtx, renderSlot, createTextVNode, toDisplayString, provide, createElementBlock, toRefs, createVNode } from "vue";
1
+ import { inject, defineComponent, getCurrentInstance, ref, watch, computed, openBlock, createBlock, resolveDynamicComponent, unref, mergeProps, withCtx, renderSlot, createTextVNode, toDisplayString, provide, createElementBlock, toRefs, createVNode } from "vue";
2
2
  import "mitt";
3
3
  import { useElementHover, useFocus, useFocusWithin } from "@vueuse/core";
4
+ var StorageType = /* @__PURE__ */ ((StorageType2) => {
5
+ StorageType2["local"] = "local";
6
+ StorageType2["session"] = "session";
7
+ return StorageType2;
8
+ })(StorageType || {});
4
9
  var Strategy = /* @__PURE__ */ ((Strategy2) => {
5
10
  Strategy2["absolute"] = "absolute";
6
11
  Strategy2["fixed"] = "fixed";
@@ -48,13 +53,11 @@ var ActionRoles = /* @__PURE__ */ ((ActionRoles2) => {
48
53
  ActionRoles2["menuitem"] = "menuitem";
49
54
  return ActionRoles2;
50
55
  })(ActionRoles || {});
51
- var AnchorTarget = /* @__PURE__ */ ((AnchorTarget2) => {
52
- AnchorTarget2["_blank"] = "_blank";
53
- AnchorTarget2["_self"] = "_self";
54
- AnchorTarget2["_parent"] = "_parent";
55
- AnchorTarget2["_top"] = "_top";
56
- return AnchorTarget2;
57
- })(AnchorTarget || {});
56
+ var DropdownRole = /* @__PURE__ */ ((DropdownRole2) => {
57
+ DropdownRole2["listbox"] = "listbox";
58
+ DropdownRole2["menu"] = "menu";
59
+ return DropdownRole2;
60
+ })(DropdownRole || {});
58
61
  const INJECTION_KEY_VOLVER = Symbol.for("volver");
59
62
  const INJECTION_KEY_DROPDOWN_TRIGGER = Symbol.for(
60
63
  "dropdownTrigger"
@@ -80,10 +83,7 @@ const LinkProps = {
80
83
  /**
81
84
  * Anchor target
82
85
  */
83
- target: {
84
- type: String,
85
- validator: (value) => Object.values(AnchorTarget).includes(value)
86
- },
86
+ target: String,
87
87
  /**
88
88
  * Anchor rel
89
89
  */
@@ -96,44 +96,65 @@ const DisabledProps = {
96
96
  /**
97
97
  * Whether the form control is disabled
98
98
  */
99
- disabled: Boolean
99
+ disabled: {
100
+ type: Boolean,
101
+ default: false
102
+ }
100
103
  };
101
104
  const ActiveProps = {
102
105
  /**
103
106
  * Whether the item is active
104
107
  */
105
- active: Boolean
108
+ active: {
109
+ type: Boolean,
110
+ default: false
111
+ }
106
112
  };
107
113
  const CurrentProps = {
108
114
  /**
109
115
  * Whether the item is current
110
116
  */
111
- current: Boolean
117
+ current: {
118
+ type: Boolean,
119
+ default: false
120
+ }
112
121
  };
113
122
  const PressedProps = {
114
123
  /**
115
124
  * Whether the item is pressed
116
125
  */
117
- pressed: Boolean
126
+ pressed: {
127
+ type: Boolean,
128
+ default: false
129
+ }
118
130
  };
119
131
  const LabelProps = {
120
132
  /**
121
133
  * The item label
122
134
  */
123
- label: [String, Number]
135
+ label: {
136
+ type: [String, Number],
137
+ default: void 0
138
+ }
124
139
  };
125
140
  const ModifiersProps = {
126
141
  /**
127
142
  * Component BEM modifiers
128
143
  */
129
- modifiers: [String, Array]
144
+ modifiers: {
145
+ type: [String, Array],
146
+ default: void 0
147
+ }
130
148
  };
131
149
  ({
132
150
  /**
133
151
  * VvIcon name or props
134
152
  * @see VVIcon
135
153
  */
136
- icon: { type: [String, Object] },
154
+ icon: {
155
+ type: [String, Object],
156
+ default: void 0
157
+ },
137
158
  /**
138
159
  * VvIcon position
139
160
  */
@@ -143,7 +164,14 @@ const ModifiersProps = {
143
164
  validation: (value) => Object.values(Position).includes(value)
144
165
  }
145
166
  });
146
- ({
167
+ const IdProps = {
168
+ /**
169
+ * Global attribute id
170
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id
171
+ */
172
+ id: [String, Number]
173
+ };
174
+ const DropdownProps = {
147
175
  /**
148
176
  * Dropdown placement
149
177
  */
@@ -164,7 +192,8 @@ const ModifiersProps = {
164
192
  * Dropdown show / hide transition name
165
193
  */
166
194
  transitionName: {
167
- type: String
195
+ type: String,
196
+ default: void 0
168
197
  },
169
198
  /**
170
199
  * Offset of the dropdown from the trigger
@@ -232,9 +261,10 @@ const ModifiersProps = {
232
261
  * Set dropdown width to the same as the trigger
233
262
  */
234
263
  triggerWidth: {
235
- type: Boolean
264
+ type: Boolean,
265
+ default: false
236
266
  }
237
- });
267
+ };
238
268
  const ActionProps = {
239
269
  ...DisabledProps,
240
270
  ...LabelProps,
@@ -256,8 +286,23 @@ const ActionProps = {
256
286
  ariaLabel: {
257
287
  type: String,
258
288
  default: void 0
289
+ },
290
+ /**
291
+ * Default tag for the action
292
+ */
293
+ defaultTag: {
294
+ type: String,
295
+ default: ActionTag.button
259
296
  }
260
297
  };
298
+ ({
299
+ storageType: {
300
+ type: String,
301
+ default: StorageType.local,
302
+ validator: (value) => Object.values(StorageType).includes(value)
303
+ },
304
+ storageKey: String
305
+ });
261
306
  const VvActionEvents = ["click", "mouseover", "mouseleave"];
262
307
  const VvActionProps = ActionProps;
263
308
  function useVolver() {
@@ -279,8 +324,10 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
279
324
  ...__default__$2,
280
325
  props: VvActionProps,
281
326
  emits: VvActionEvents,
282
- setup(__props, { expose: __expose, emit }) {
327
+ setup(__props, { expose: __expose, emit: __emit }) {
283
328
  const props = __props;
329
+ const emit = __emit;
330
+ const instance = getCurrentInstance();
284
331
  const volver = useVolver();
285
332
  const element = ref(null);
286
333
  __expose({ $el: element });
@@ -311,7 +358,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
311
358
  case props.href !== void 0:
312
359
  return ActionTag.a;
313
360
  default:
314
- return ActionTag.button;
361
+ return props.defaultTag;
315
362
  }
316
363
  });
317
364
  const hasProps = computed(() => {
@@ -336,29 +383,43 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
336
383
  to: props.to,
337
384
  target: props.target
338
385
  };
339
- default:
386
+ case ActionTag.button:
340
387
  return {
341
388
  ...toReturn,
342
389
  type: props.type,
343
390
  disabled: props.disabled
344
391
  };
392
+ default:
393
+ return toReturn;
345
394
  }
346
395
  });
347
396
  const onClick = (e) => {
397
+ var _a;
348
398
  if (props.disabled) {
349
399
  e.preventDefault();
350
400
  return;
351
401
  }
402
+ if ((_a = instance == null ? void 0 : instance.vnode.props) == null ? void 0 : _a.onClick) {
403
+ emit("click", e);
404
+ return;
405
+ }
352
406
  dropdownEventBus == null ? void 0 : dropdownEventBus.emit("click", e);
353
- emit("click", e);
354
407
  };
355
408
  const onMouseover = (e) => {
409
+ var _a;
410
+ if ((_a = instance == null ? void 0 : instance.vnode.props) == null ? void 0 : _a.onMouseover) {
411
+ emit("mouseover", e);
412
+ return;
413
+ }
356
414
  dropdownEventBus == null ? void 0 : dropdownEventBus.emit("mouseover", e);
357
- emit("mouseover", e);
358
415
  };
359
416
  const onMouseleave = (e) => {
417
+ var _a;
418
+ if ((_a = instance == null ? void 0 : instance.vnode.props) == null ? void 0 : _a.onMouseleave) {
419
+ emit("mouseleave", e);
420
+ return;
421
+ }
360
422
  dropdownEventBus == null ? void 0 : dropdownEventBus.emit("mouseleave", e);
361
- emit("mouseleave", e);
362
423
  };
363
424
  return (_ctx, _cache) => {
364
425
  return openBlock(), createBlock(resolveDynamicComponent(unref(hasTag)), mergeProps(unref(hasProps), {
@@ -376,14 +437,52 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
376
437
  }), {
377
438
  default: withCtx(() => [
378
439
  renderSlot(_ctx.$slots, "default", {}, () => [
379
- createTextVNode(toDisplayString(_ctx.label), 1)
440
+ createTextVNode(
441
+ toDisplayString(_ctx.label),
442
+ 1
443
+ /* TEXT */
444
+ )
380
445
  ])
381
446
  ]),
382
447
  _: 3
448
+ /* FORWARDED */
383
449
  }, 16, ["class"]);
384
450
  };
385
451
  }
386
452
  });
453
+ ({
454
+ ...IdProps,
455
+ ...DropdownProps,
456
+ ...ModifiersProps,
457
+ /**
458
+ * Show / hide dropdown programmatically
459
+ */
460
+ modelValue: {
461
+ type: Boolean,
462
+ default: void 0
463
+ },
464
+ /**
465
+ * Dropdown trigger element
466
+ */
467
+ reference: {
468
+ type: Object,
469
+ default: null
470
+ },
471
+ /**
472
+ * Dropdown role
473
+ */
474
+ role: {
475
+ type: String,
476
+ default: DropdownRole.menu,
477
+ validator: (value) => Object.values(DropdownRole).includes(value)
478
+ }
479
+ });
480
+ const VvDropdownItemProps = {
481
+ focusOnHover: {
482
+ type: Boolean,
483
+ default: false
484
+ }
485
+ };
387
486
  function useProvideDropdownAction({
388
487
  expanded
389
488
  }) {
@@ -397,7 +496,9 @@ const __default__$1 = {
397
496
  };
398
497
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
399
498
  ...__default__$1,
499
+ props: VvDropdownItemProps,
400
500
  setup(__props) {
501
+ const props = __props;
401
502
  const { role, expanded } = useInjectedDropdownItem();
402
503
  const element = ref(null);
403
504
  useProvideDropdownAction({ expanded });
@@ -405,18 +506,24 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
405
506
  const { focused } = useFocus(element);
406
507
  const { focused: focusedWithin } = useFocusWithin(element);
407
508
  watch(hovered, (newValue) => {
408
- if (newValue) {
509
+ if (newValue && props.focusOnHover) {
409
510
  focused.value = true;
410
511
  }
411
512
  });
412
513
  return (_ctx, _cache) => {
413
- return openBlock(), createElementBlock("div", mergeProps({ role: unref(role) }, {
414
- ref_key: "element",
415
- ref: element,
416
- class: ["vv-dropdown__item", { "focus-visible": unref(focused) || unref(focusedWithin) }]
417
- }), [
418
- renderSlot(_ctx.$slots, "default")
419
- ], 16);
514
+ return openBlock(), createElementBlock(
515
+ "div",
516
+ mergeProps({ role: unref(role) }, {
517
+ ref_key: "element",
518
+ ref: element,
519
+ class: ["vv-dropdown__item", { "focus-visible": unref(focused) || unref(focusedWithin) }]
520
+ }),
521
+ [
522
+ renderSlot(_ctx.$slots, "default")
523
+ ],
524
+ 16
525
+ /* FULL_PROPS */
526
+ );
420
527
  };
421
528
  }
422
529
  });
@@ -471,13 +578,19 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
471
578
  }, { class: unref(bemCssClasses) }), {
472
579
  default: withCtx(() => [
473
580
  renderSlot(_ctx.$slots, "default", {}, () => [
474
- createTextVNode(toDisplayString(_ctx.label), 1)
581
+ createTextVNode(
582
+ toDisplayString(_ctx.label),
583
+ 1
584
+ /* TEXT */
585
+ )
475
586
  ])
476
587
  ]),
477
588
  _: 3
589
+ /* FORWARDED */
478
590
  }, 16, ["class"])
479
591
  ]),
480
592
  _: 3
593
+ /* FORWARDED */
481
594
  });
482
595
  };
483
596
  }
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("vue"),require("mitt"),require("@vueuse/core")):"function"==typeof define&&define.amd?define(["vue","mitt","@vueuse/core"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).VvDropdownAction=t(e.vue,null,e.core)}(this,(function(e,t,o){"use strict";var r=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(r||{}),n=(e=>(e.before="before",e.after="after",e))(n||{}),l=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(l||{}),a=(e=>(e.nuxtLink="nuxt-link",e.routerLink="router-link",e.a="a",e.button="button",e))(a||{}),u=(e=>(e.button="button",e.link="link",e.menuitem="menuitem",e))(u||{}),i=(e=>(e._blank="_blank",e._self="_self",e._parent="_parent",e._top="_top",e))(i||{});const s=Symbol.for("volver"),d=Symbol.for("dropdownTrigger"),c=Symbol.for("dropdownItem"),f=Symbol.for("dropdownAction"),p={to:{type:[String,Object]},href:String,target:{type:String,validator:e=>Object.values(i).includes(e)},rel:{type:String,default:"noopener noreferrer"}},v={disabled:Boolean},m={active:Boolean},b={current:Boolean},y={pressed:Boolean},g={label:[String,Number]},k={modifiers:[String,Array]};n.before,r.bottom,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean;const h={...v,...g,...y,...m,...b,...p,type:{type:String,default:l.button,validator:e=>Object.values(l).includes(e)},ariaLabel:{type:String,default:void 0}},x=h;const B=e.defineComponent({name:"VvAction",props:x,emits:["click","mouseover","mouseleave"],setup(t,{expose:o,emit:r}){const n=t,l=e.inject(s),u=e.ref(null);o({$el:u});const{reference:i,bus:c,aria:p,expanded:v}=e.inject(d,{});e.watch((()=>u.value),(e=>{i&&(i.value=e)}));const m=e.computed((()=>n.pressed||(null==v?void 0:v.value))),{role:b}=e.inject(f,{}),y=e.computed((()=>{switch(!0){case n.disabled:return a.button;case void 0!==n.to:return(null==l?void 0:l.nuxt)?a.nuxtLink:a.routerLink;case void 0!==n.href:return a.a;default:return a.button}})),g=e.computed((()=>{const e={...null==p?void 0:p.value,ariaPressed:!!m.value||void 0,ariaLabel:n.ariaLabel,role:null==b?void 0:b.value};switch(y.value){case a.a:return{...e,href:n.href,target:n.target,rel:n.rel};case a.routerLink:case a.nuxtLink:return{...e,to:n.to,target:n.target};default:return{...e,type:n.type,disabled:n.disabled}}})),k=e=>{n.disabled?e.preventDefault():(null==c||c.emit("click",e),r("click",e))},h=e=>{null==c||c.emit("mouseover",e),r("mouseover",e)},x=e=>{null==c||c.emit("mouseleave",e),r("mouseleave",e)};return(t,o)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(y)),e.mergeProps(e.unref(g),{ref_key:"element",ref:u,class:{active:t.active,pressed:e.unref(m),disabled:t.disabled,current:t.current},onClickPassive:k,onMouseoverPassive:h,onMouseleavePassive:x}),{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default",{},(()=>[e.createTextVNode(e.toDisplayString(t.label),1)]))])),_:3},16,["class"]))}});const S=e.defineComponent({name:"VvDropdownItem",setup(t){const{role:r,expanded:n}=e.inject(c,{}),l=e.ref(null);!function({expanded:t}){e.provide(f,{role:e.ref(u.menuitem),expanded:t})}({expanded:n});const a=o.useElementHover(l),{focused:i}=o.useFocus(l),{focused:s}=o.useFocusWithin(l);return e.watch(a,(e=>{e&&(i.value=!0)})),(t,o)=>(e.openBlock(),e.createElementBlock("div",e.mergeProps({role:e.unref(r)},{ref_key:"element",ref:l,class:["vv-dropdown__item",{"focus-visible":e.unref(i)||e.unref(s)}]}),[e.renderSlot(t.$slots,"default")],16))}});return e.defineComponent({name:"VvDropdownAction",props:{...h,...k},setup(t){const o=t,{modifiers:r}=e.toRefs(o),n=function(t,o,r){return e.computed((()=>{const n={[t]:!0},l="string"==typeof(null==o?void 0:o.value)?o.value.split(" "):null==o?void 0:o.value;return l&&Array.isArray(l)&&l.forEach((e=>{e&&(n[`${t}--${e}`]=!0)})),r&&Object.keys(r.value).forEach((o=>{n[`${t}--${o}`]=e.unref(r.value[o])})),n}))}("vv-dropdown-action",r);return(t,o)=>(e.openBlock(),e.createBlock(S,null,{default:e.withCtx((()=>[e.createVNode(B,e.mergeProps({disabled:t.disabled,pressed:t.pressed,active:t.active,type:t.type,to:t.to,href:t.href,target:t.target,rel:t.rel},{class:e.unref(n)}),{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default",{},(()=>[e.createTextVNode(e.toDisplayString(t.label),1)]))])),_:3},16,["class"])])),_:3}))}})}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("vue"),require("mitt"),require("@vueuse/core")):"function"==typeof define&&define.amd?define(["vue","mitt","@vueuse/core"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).VvDropdownAction=t(e.vue,null,e.core)}(this,(function(e,t,o){"use strict";var r=(e=>(e.local="local",e.session="session",e))(r||{}),n=(e=>(e.absolute="absolute",e.fixed="fixed",e))(n||{}),l=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(l||{}),a=(e=>(e.topStart="top-start",e.topEnd="top-end",e.bottomStart="bottom-start",e.bottomEnd="bottom-end",e.leftStart="left-start",e.leftEnd="left-end",e.rightStart="right-start",e.rightEnd="right-end",e))(a||{}),u=(e=>(e.before="before",e.after="after",e))(u||{}),i=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(i||{}),s=(e=>(e.nuxtLink="nuxt-link",e.routerLink="router-link",e.a="a",e.button="button",e))(s||{}),d=(e=>(e.button="button",e.link="link",e.menuitem="menuitem",e))(d||{}),c=(e=>(e.listbox="listbox",e.menu="menu",e))(c||{});const f=Symbol.for("volver"),p=Symbol.for("dropdownTrigger"),v=Symbol.for("dropdownItem"),m=Symbol.for("dropdownAction"),b={to:{type:[String,Object]},href:String,target:String,rel:{type:String,default:"noopener noreferrer"}},g={disabled:{type:Boolean,default:!1}},y={active:{type:Boolean,default:!1}},h={current:{type:Boolean,default:!1}},k={pressed:{type:Boolean,default:!1}},x={label:{type:[String,Number],default:void 0}},S={modifiers:{type:[String,Array],default:void 0}};u.before;l.bottom,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean;const B={...g,...x,...k,...y,...h,...b,type:{type:String,default:i.button,validator:e=>Object.values(i).includes(e)},ariaLabel:{type:String,default:void 0},defaultTag:{type:String,default:s.button}};r.local;const w=B;const C=e.defineComponent({name:"VvAction",props:w,emits:["click","mouseover","mouseleave"],setup(t,{expose:o,emit:r}){const n=t,l=r,a=e.getCurrentInstance(),u=e.inject(f),i=e.ref(null);o({$el:i});const{reference:d,bus:c,aria:v,expanded:b}=e.inject(p,{});e.watch((()=>i.value),(e=>{d&&(d.value=e)}));const g=e.computed((()=>n.pressed||(null==b?void 0:b.value))),{role:y}=e.inject(m,{}),h=e.computed((()=>{switch(!0){case n.disabled:return s.button;case void 0!==n.to:return(null==u?void 0:u.nuxt)?s.nuxtLink:s.routerLink;case void 0!==n.href:return s.a;default:return n.defaultTag}})),k=e.computed((()=>{const e={...null==v?void 0:v.value,ariaPressed:!!g.value||void 0,ariaLabel:n.ariaLabel,role:null==y?void 0:y.value};switch(h.value){case s.a:return{...e,href:n.href,target:n.target,rel:n.rel};case s.routerLink:case s.nuxtLink:return{...e,to:n.to,target:n.target};case s.button:return{...e,type:n.type,disabled:n.disabled};default:return e}})),x=e=>{var t;n.disabled?e.preventDefault():(null==(t=null==a?void 0:a.vnode.props)?void 0:t.onClick)?l("click",e):null==c||c.emit("click",e)},S=e=>{var t;(null==(t=null==a?void 0:a.vnode.props)?void 0:t.onMouseover)?l("mouseover",e):null==c||c.emit("mouseover",e)},B=e=>{var t;(null==(t=null==a?void 0:a.vnode.props)?void 0:t.onMouseleave)?l("mouseleave",e):null==c||c.emit("mouseleave",e)};return(t,o)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(h)),e.mergeProps(e.unref(k),{ref_key:"element",ref:i,class:{active:t.active,pressed:e.unref(g),disabled:t.disabled,current:t.current},onClickPassive:x,onMouseoverPassive:S,onMouseleavePassive:B}),{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default",{},(()=>[e.createTextVNode(e.toDisplayString(t.label),1)]))])),_:3},16,["class"]))}});Boolean,c.menu;const L={focusOnHover:{type:Boolean,default:!1}};const j=e.defineComponent({name:"VvDropdownItem",props:L,setup(t){const r=t,{role:n,expanded:l}=e.inject(v,{}),a=e.ref(null);!function({expanded:t}){e.provide(m,{role:e.ref(d.menuitem),expanded:t})}({expanded:l});const u=o.useElementHover(a),{focused:i}=o.useFocus(a),{focused:s}=o.useFocusWithin(a);return e.watch(u,(e=>{e&&r.focusOnHover&&(i.value=!0)})),(t,o)=>(e.openBlock(),e.createElementBlock("div",e.mergeProps({role:e.unref(n)},{ref_key:"element",ref:a,class:["vv-dropdown__item",{"focus-visible":e.unref(i)||e.unref(s)}]}),[e.renderSlot(t.$slots,"default")],16))}});return e.defineComponent({name:"VvDropdownAction",props:{...B,...S},setup(t){const o=t,{modifiers:r}=e.toRefs(o),n=function(t,o,r){return e.computed((()=>{const n={[t]:!0},l="string"==typeof(null==o?void 0:o.value)?o.value.split(" "):null==o?void 0:o.value;return l&&Array.isArray(l)&&l.forEach((e=>{e&&(n[`${t}--${e}`]=!0)})),r&&Object.keys(r.value).forEach((o=>{n[`${t}--${o}`]=e.unref(r.value[o])})),n}))}("vv-dropdown-action",r);return(t,o)=>(e.openBlock(),e.createBlock(j,null,{default:e.withCtx((()=>[e.createVNode(C,e.mergeProps({disabled:t.disabled,pressed:t.pressed,active:t.active,type:t.type,to:t.to,href:t.href,target:t.target,rel:t.rel},{class:e.unref(n)}),{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default",{},(()=>[e.createTextVNode(e.toDisplayString(t.label),1)]))])),_:3},16,["class"])])),_:3}))}})}));