@volverjs/ui-vue 0.0.10-beta.5 → 0.0.10-beta.51

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 (496) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +148 -51
  3. package/auto-imports.d.ts +25 -12
  4. package/bin/icons.cjs +1 -1
  5. package/bin/icons.js +28 -20
  6. package/dist/Volver.d.ts +11 -11
  7. package/dist/components/VvAccordion/VvAccordion.es.js +192 -104
  8. package/dist/components/VvAccordion/VvAccordion.umd.js +1 -1
  9. package/dist/components/VvAccordion/VvAccordion.vue.d.ts +29 -10
  10. package/dist/components/VvAccordion/index.d.ts +8 -9
  11. package/dist/components/VvAccordionGroup/VvAccordionGroup.es.js +485 -206
  12. package/dist/components/VvAccordionGroup/VvAccordionGroup.umd.js +1 -1
  13. package/dist/components/VvAccordionGroup/VvAccordionGroup.vue.d.ts +61 -18
  14. package/dist/components/VvAccordionGroup/index.d.ts +16 -8
  15. package/dist/components/VvAction/VvAction.es.js +84 -33
  16. package/dist/components/VvAction/VvAction.umd.js +1 -1
  17. package/dist/components/VvAction/VvAction.vue.d.ts +61 -28
  18. package/dist/components/VvAction/index.d.ts +26 -10
  19. package/dist/components/VvAlert/VvAlert.es.js +350 -318
  20. package/dist/components/VvAlert/VvAlert.umd.js +1 -1
  21. package/dist/components/VvAlert/VvAlert.vue.d.ts +25 -17
  22. package/dist/components/VvAlert/index.d.ts +20 -11
  23. package/dist/components/VvAlertGroup/VvAlertGroup.es.js +388 -327
  24. package/dist/components/VvAlertGroup/VvAlertGroup.umd.js +1 -1
  25. package/dist/components/VvAlertGroup/VvAlertGroup.vue.d.ts +22 -17
  26. package/dist/components/VvAlertGroup/index.d.ts +10 -18
  27. package/dist/components/VvAvatar/VvAvatar.es.js +66 -28
  28. package/dist/components/VvAvatar/VvAvatar.umd.js +1 -1
  29. package/dist/components/VvAvatar/VvAvatar.vue.d.ts +13 -5
  30. package/dist/components/VvAvatar/index.d.ts +4 -1
  31. package/dist/components/VvAvatarGroup/VvAvatarGroup.es.js +147 -74
  32. package/dist/components/VvAvatarGroup/VvAvatarGroup.umd.js +1 -1
  33. package/dist/components/VvAvatarGroup/VvAvatarGroup.vue.d.ts +17 -10
  34. package/dist/components/VvAvatarGroup/index.d.ts +6 -3
  35. package/dist/components/VvBadge/VvBadge.es.js +78 -34
  36. package/dist/components/VvBadge/VvBadge.umd.js +1 -1
  37. package/dist/components/VvBadge/VvBadge.vue.d.ts +13 -5
  38. package/dist/components/VvBadge/index.d.ts +4 -1
  39. package/dist/components/VvBreadcrumb/VvBreadcrumb.es.js +294 -83
  40. package/dist/components/VvBreadcrumb/VvBreadcrumb.umd.js +1 -1
  41. package/dist/components/VvBreadcrumb/VvBreadcrumb.vue.d.ts +28 -8
  42. package/dist/components/VvBreadcrumb/index.d.ts +6 -10
  43. package/dist/components/VvButton/VvButton.es.js +510 -488
  44. package/dist/components/VvButton/VvButton.umd.js +1 -1
  45. package/dist/components/VvButton/VvButton.vue.d.ts +97 -45
  46. package/dist/components/VvButton/index.d.ts +52 -30
  47. package/dist/components/VvButtonGroup/VvButtonGroup.es.js +95 -45
  48. package/dist/components/VvButtonGroup/VvButtonGroup.umd.js +1 -1
  49. package/dist/components/VvButtonGroup/VvButtonGroup.vue.d.ts +35 -17
  50. package/dist/components/VvButtonGroup/index.d.ts +13 -4
  51. package/dist/components/VvCard/VvCard.es.js +87 -42
  52. package/dist/components/VvCard/VvCard.umd.js +1 -1
  53. package/dist/components/VvCard/VvCard.vue.d.ts +13 -5
  54. package/dist/components/VvCard/index.d.ts +4 -1
  55. package/dist/components/VvCheckbox/VvCheckbox.es.js +177 -136
  56. package/dist/components/VvCheckbox/VvCheckbox.umd.js +1 -1
  57. package/dist/components/VvCheckbox/VvCheckbox.vue.d.ts +105 -35
  58. package/dist/components/VvCheckbox/index.d.ts +52 -19
  59. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.es.js +408 -322
  60. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.umd.js +1 -1
  61. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.vue.d.ts +103 -34
  62. package/dist/components/VvCheckboxGroup/index.d.ts +45 -12
  63. package/dist/components/VvCombobox/VvCombobox.es.js +1963 -1639
  64. package/dist/components/VvCombobox/VvCombobox.umd.js +1 -1
  65. package/dist/components/VvCombobox/VvCombobox.vue.d.ts +260 -672
  66. package/dist/components/VvCombobox/index.d.ts +385 -135
  67. package/dist/components/VvDialog/VvDialog.es.js +177 -297
  68. package/dist/components/VvDialog/VvDialog.umd.js +1 -1
  69. package/dist/components/VvDialog/VvDialog.vue.d.ts +23 -7
  70. package/dist/components/VvDialog/index.d.ts +12 -0
  71. package/dist/components/VvDropdown/VvDropdown.es.js +172 -102
  72. package/dist/components/VvDropdown/VvDropdown.umd.js +1 -1
  73. package/dist/components/VvDropdown/VvDropdown.vue.d.ts +110 -315
  74. package/dist/components/VvDropdown/VvDropdownAction.vue.d.ts +77 -28
  75. package/dist/components/VvDropdown/VvDropdownItem.vue.d.ts +13 -1
  76. package/dist/components/VvDropdown/VvDropdownOptgroup.vue.d.ts +13 -5
  77. package/dist/components/VvDropdown/VvDropdownOption.vue.d.ts +38 -10
  78. package/dist/components/VvDropdown/index.d.ts +52 -118
  79. package/dist/components/VvDropdownAction/VvDropdownAction.es.js +165 -60
  80. package/dist/components/VvDropdownAction/VvDropdownAction.umd.js +1 -1
  81. package/dist/components/VvDropdownItem/VvDropdownItem.es.js +337 -10
  82. package/dist/components/VvDropdownItem/VvDropdownItem.umd.js +1 -1
  83. package/dist/components/VvDropdownOptgroup/VvDropdownOptgroup.es.js +63 -20
  84. package/dist/components/VvDropdownOptgroup/VvDropdownOptgroup.umd.js +1 -1
  85. package/dist/components/VvDropdownOption/VvDropdownOption.es.js +188 -80
  86. package/dist/components/VvDropdownOption/VvDropdownOption.umd.js +1 -1
  87. package/dist/components/VvIcon/VvIcon.es.js +24 -102
  88. package/dist/components/VvIcon/VvIcon.umd.js +1 -1
  89. package/dist/components/VvIcon/VvIcon.vue.d.ts +4 -68
  90. package/dist/components/VvIcon/index.d.ts +33 -48
  91. package/dist/components/VvInputFile/VvInputFile.es.js +1777 -0
  92. package/dist/components/VvInputFile/VvInputFile.umd.js +1 -0
  93. package/dist/components/VvInputFile/VvInputFile.vue.d.ts +317 -0
  94. package/dist/components/VvInputFile/index.d.ts +193 -0
  95. package/dist/components/VvInputText/VvInputClearAction.d.ts +16 -10
  96. package/dist/components/VvInputText/VvInputPasswordAction.d.ts +20 -14
  97. package/dist/components/VvInputText/VvInputStepAction.d.ts +11 -7
  98. package/dist/components/VvInputText/VvInputText.es.js +1495 -548
  99. package/dist/components/VvInputText/VvInputText.umd.js +1 -1
  100. package/dist/components/VvInputText/VvInputText.vue.d.ts +216 -68
  101. package/dist/components/VvInputText/index.d.ts +101 -31
  102. package/dist/components/VvNav/VvNav.es.js +155 -75
  103. package/dist/components/VvNav/VvNav.umd.js +1 -1
  104. package/dist/components/VvNav/VvNav.vue.d.ts +32 -11
  105. package/dist/components/VvNav/VvNavItem.vue.d.ts +1 -1
  106. package/dist/components/VvNav/VvNavSeparator.vue.d.ts +1 -1
  107. package/dist/components/VvNav/index.d.ts +5 -2
  108. package/dist/components/VvNavItem/VvNavItem.es.js +100 -39
  109. package/dist/components/VvNavItem/VvNavItem.umd.js +1 -1
  110. package/dist/components/VvProgress/VvProgress.es.js +73 -27
  111. package/dist/components/VvProgress/VvProgress.umd.js +1 -1
  112. package/dist/components/VvProgress/VvProgress.vue.d.ts +13 -6
  113. package/dist/components/VvProgress/index.d.ts +4 -1
  114. package/dist/components/VvRadio/VvRadio.es.js +175 -135
  115. package/dist/components/VvRadio/VvRadio.umd.js +1 -1
  116. package/dist/components/VvRadio/VvRadio.vue.d.ts +103 -33
  117. package/dist/components/VvRadio/index.d.ts +50 -17
  118. package/dist/components/VvRadioGroup/VvRadioGroup.es.js +406 -321
  119. package/dist/components/VvRadioGroup/VvRadioGroup.umd.js +1 -1
  120. package/dist/components/VvRadioGroup/VvRadioGroup.vue.d.ts +103 -34
  121. package/dist/components/VvRadioGroup/index.d.ts +45 -12
  122. package/dist/components/VvSelect/VvSelect.es.js +677 -611
  123. package/dist/components/VvSelect/VvSelect.umd.js +1 -1
  124. package/dist/components/VvSelect/VvSelect.vue.d.ts +107 -199
  125. package/dist/components/VvSelect/index.d.ts +196 -16
  126. package/dist/components/VvTab/VvTab.es.js +230 -110
  127. package/dist/components/VvTab/VvTab.umd.js +1 -1
  128. package/dist/components/VvTab/VvTab.vue.d.ts +34 -12
  129. package/dist/components/VvTab/index.d.ts +6 -3
  130. package/dist/components/VvTextarea/VvTextarea.es.js +278 -255
  131. package/dist/components/VvTextarea/VvTextarea.umd.js +1 -1
  132. package/dist/components/VvTextarea/VvTextarea.vue.d.ts +159 -54
  133. package/dist/components/VvTextarea/index.d.ts +69 -20
  134. package/dist/components/VvTooltip/VvTooltip.es.js +83 -30
  135. package/dist/components/VvTooltip/VvTooltip.umd.js +1 -1
  136. package/dist/components/VvTooltip/VvTooltip.vue.d.ts +16 -9
  137. package/dist/components/VvTooltip/index.d.ts +5 -2
  138. package/dist/components/common/HintSlot.d.ts +8 -9
  139. package/dist/components/index.d.ts +10 -0
  140. package/dist/components/index.es.js +4303 -2228
  141. package/dist/components/index.umd.js +1 -1
  142. package/dist/composables/alert/useAlerInject.d.ts +4 -0
  143. package/dist/composables/alert/useAlert.d.ts +71 -6
  144. package/dist/composables/alert/{useProvideAlert.d.ts → useAlertProvide.d.ts} +1 -1
  145. package/dist/composables/dropdown/useDropdownContextmenu.d.ts +18 -0
  146. package/dist/composables/dropdown/useDropdownInject.d.ts +12 -0
  147. package/dist/composables/dropdown/{useProvideDropdown.d.ts → useDropdownProvide.d.ts} +6 -7
  148. package/dist/composables/dropdown/useDropdownVirtualElement.d.ts +17 -0
  149. package/dist/composables/group/useGroupStateInject.d.ts +9 -0
  150. package/dist/composables/group/useGroupStateProvide.d.ts +6 -0
  151. package/dist/composables/index.d.ts +3 -0
  152. package/dist/composables/index.es.js +178 -6
  153. package/dist/composables/index.umd.js +1 -1
  154. package/dist/composables/useBlurhash.d.ts +7 -0
  155. package/dist/composables/useComponentFocus.d.ts +2 -2
  156. package/dist/composables/useComponentIcon.d.ts +9 -8
  157. package/dist/composables/useOptions.d.ts +5 -5
  158. package/dist/composables/usePersistence.d.ts +3 -0
  159. package/dist/composables/useUniqueId.d.ts +2 -2
  160. package/dist/composables/useVolver.d.ts +1 -1
  161. package/dist/constants.d.ts +35 -33
  162. package/dist/directives/index.d.ts +3 -5
  163. package/dist/directives/index.es.js +247 -82
  164. package/dist/directives/index.umd.js +1 -1
  165. package/dist/directives/v-contextmenu.es.js +137 -31
  166. package/dist/directives/v-contextmenu.umd.js +1 -1
  167. package/dist/directives/v-tooltip.es.js +101 -39
  168. package/dist/directives/v-tooltip.umd.js +1 -1
  169. package/dist/icons.d.ts +17 -17
  170. package/dist/icons.es.js +516 -516
  171. package/dist/icons.umd.js +1 -1
  172. package/dist/index.d.ts +3 -1
  173. package/dist/index.es.js +74 -6
  174. package/dist/index.umd.js +1 -1
  175. package/dist/props/index.d.ts +288 -198
  176. package/dist/resolvers/unplugin.d.ts +6 -1
  177. package/dist/resolvers/unplugin.es.js +87 -10
  178. package/dist/resolvers/unplugin.umd.js +1 -1
  179. package/dist/stories/Accordion/Accordion.settings.d.ts +2 -57
  180. package/dist/stories/AccordionGroup/AccordionGroup.settings.d.ts +2 -66
  181. package/dist/stories/AccordionGroup/AccordionGroup.stories.d.ts +2 -127
  182. package/dist/stories/AccordionGroup/AccordionGroupSlots.stories.d.ts +1304 -538
  183. package/dist/stories/Alert/Alert.settings.d.ts +2 -109
  184. package/dist/stories/AlertGroup/AlertGroup.settings.d.ts +2 -85
  185. package/dist/stories/AlertGroup/AlertGroupWithComposable.stories.d.ts +1 -1
  186. package/dist/stories/AvatarGroup/AvatarGroup.settings.d.ts +2 -38
  187. package/dist/stories/Badge/Badge.settings.d.ts +2 -26
  188. package/dist/stories/Badge/Badge.test.d.ts +1 -1
  189. package/dist/stories/Blurhash/BlurhashComposable.stories.d.ts +4 -0
  190. package/dist/stories/Breadcrumb/Breadcrumb.settings.d.ts +2 -18
  191. package/dist/stories/Breadcrumb/Breadcrumb.test.d.ts +1 -1
  192. package/dist/stories/Button/Button.settings.d.ts +2 -194
  193. package/dist/stories/ButtonGroup/ButtonGroup.settings.d.ts +2 -40
  194. package/dist/stories/Card/Card.settings.d.ts +2 -63
  195. package/dist/stories/Checkbox/Checkbox.settings.d.ts +2 -132
  196. package/dist/stories/CheckboxGroup/CheckboxGroup.settings.d.ts +1 -141
  197. package/dist/stories/Combobox/Combobox.settings.d.ts +2 -609
  198. package/dist/stories/Combobox/Combobox.stories.d.ts +1 -0
  199. package/dist/stories/Combobox/ComboboxMultiple.stories.d.ts +1 -0
  200. package/dist/stories/Dialog/Dialog.settings.d.ts +2 -47
  201. package/dist/stories/Dialog/DialogModifiers.stories.d.ts +8 -0
  202. package/dist/stories/Dropdown/Dropdown.settings.d.ts +2 -205
  203. package/dist/stories/Icon/Icon.settings.d.ts +3 -68
  204. package/dist/stories/InputFile/InputFile.settings.d.ts +6 -0
  205. package/dist/stories/InputFile/InputFile.stories.d.ts +13 -0
  206. package/dist/stories/InputFile/InputFileDropArea.stories.d.ts +9 -0
  207. package/dist/stories/InputFile/InputFileIconPosition.stories.d.ts +8 -0
  208. package/dist/stories/InputFile/InputFileSlots.stories.d.ts +7 -0
  209. package/dist/stories/InputText/InputText.settings.d.ts +2 -438
  210. package/dist/stories/Nav/Nav.settings.d.ts +2 -10
  211. package/dist/stories/Progress/Progress.settings.d.ts +2 -27
  212. package/dist/stories/Radio/Radio.settings.d.ts +1 -110
  213. package/dist/stories/RadioGroup/RadioGroup.settings.d.ts +1 -141
  214. package/dist/stories/Select/Select.settings.d.ts +2 -246
  215. package/dist/stories/Select/Select.stories.d.ts +1 -0
  216. package/dist/stories/Tab/Tab.settings.d.ts +2 -15
  217. package/dist/stories/Textarea/Textarea.settings.d.ts +2 -287
  218. package/dist/stories/argTypes.d.ts +27 -866
  219. package/dist/test/expect.d.ts +1 -2
  220. package/dist/test/options.d.ts +1 -1
  221. package/dist/test/sleep.d.ts +1 -1
  222. package/dist/types/alert.d.ts +9 -7
  223. package/dist/types/blurhash.d.ts +12 -0
  224. package/dist/types/floating-ui.d.ts +1 -1
  225. package/dist/types/generic.d.ts +1 -2
  226. package/dist/types/group.d.ts +37 -15
  227. package/dist/types/index.d.ts +7 -0
  228. package/dist/types/input-file.d.ts +9 -0
  229. package/dist/types/nav.d.ts +2 -2
  230. package/dist/utils/DomUtilities.d.ts +1 -0
  231. package/dist/utils/ObjectUtilities.d.ts +8 -9
  232. package/dist/workers/blurhash.d.ts +1 -0
  233. package/package.json +238 -246
  234. package/src/Volver.ts +251 -246
  235. package/src/assets/icons/detailed.json +1 -1
  236. package/src/assets/icons/normal.json +1 -1
  237. package/src/assets/icons/simple.json +1 -1
  238. package/src/components/VvAccordion/VvAccordion.vue +163 -100
  239. package/src/components/VvAccordion/index.ts +65 -80
  240. package/src/components/VvAccordionGroup/VvAccordionGroup.vue +224 -106
  241. package/src/components/VvAccordionGroup/index.ts +42 -42
  242. package/src/components/VvAction/VvAction.vue +144 -130
  243. package/src/components/VvAlert/VvAlert.vue +72 -70
  244. package/src/components/VvAlert/index.ts +149 -147
  245. package/src/components/VvAlertGroup/VvAlertGroup.vue +57 -56
  246. package/src/components/VvAlertGroup/index.ts +102 -118
  247. package/src/components/VvAvatar/VvAvatar.vue +20 -14
  248. package/src/components/VvAvatar/index.ts +5 -5
  249. package/src/components/VvAvatarGroup/VvAvatarGroup.vue +58 -53
  250. package/src/components/VvAvatarGroup/index.ts +21 -21
  251. package/src/components/VvBadge/VvBadge.vue +15 -14
  252. package/src/components/VvBadge/index.ts +2 -2
  253. package/src/components/VvBreadcrumb/VvBreadcrumb.vue +50 -48
  254. package/src/components/VvBreadcrumb/index.ts +3 -9
  255. package/src/components/VvButton/VvButton.vue +163 -152
  256. package/src/components/VvButton/index.ts +104 -111
  257. package/src/components/VvButtonGroup/VvButtonGroup.vue +73 -65
  258. package/src/components/VvButtonGroup/index.ts +23 -22
  259. package/src/components/VvCard/VvCard.vue +30 -30
  260. package/src/components/VvCard/index.ts +2 -2
  261. package/src/components/VvCheckbox/VvCheckbox.vue +186 -184
  262. package/src/components/VvCheckbox/index.ts +45 -45
  263. package/src/components/VvCheckboxGroup/VvCheckboxGroup.vue +88 -87
  264. package/src/components/VvCombobox/VvCombobox.vue +657 -619
  265. package/src/components/VvCombobox/index.ts +212 -168
  266. package/src/components/VvDialog/VvDialog.vue +139 -129
  267. package/src/components/VvDialog/index.ts +42 -36
  268. package/src/components/VvDropdown/VvDropdown.vue +466 -445
  269. package/src/components/VvDropdown/VvDropdownAction.vue +37 -39
  270. package/src/components/VvDropdown/VvDropdownItem.vue +30 -26
  271. package/src/components/VvDropdown/VvDropdownOptgroup.vue +13 -12
  272. package/src/components/VvDropdown/VvDropdownOption.vue +47 -64
  273. package/src/components/VvDropdown/index.ts +61 -27
  274. package/src/components/VvIcon/README.md +1 -1
  275. package/src/components/VvIcon/VvIcon.vue +133 -133
  276. package/src/components/VvIcon/index.ts +84 -97
  277. package/src/components/VvInputFile/VvInputFile.vue +413 -0
  278. package/src/components/VvInputFile/index.ts +143 -0
  279. package/src/components/VvInputText/VvInputClearAction.ts +51 -47
  280. package/src/components/VvInputText/VvInputPasswordAction.ts +66 -62
  281. package/src/components/VvInputText/VvInputStepAction.ts +43 -43
  282. package/src/components/VvInputText/VvInputText.vue +653 -516
  283. package/src/components/VvInputText/VvInputTextActions.ts +87 -87
  284. package/src/components/VvInputText/index.ts +201 -186
  285. package/src/components/VvNav/VvNav.vue +40 -36
  286. package/src/components/VvNav/VvNavItem.vue +12 -12
  287. package/src/components/VvNav/VvNavSeparator.vue +6 -6
  288. package/src/components/VvNav/index.ts +2 -2
  289. package/src/components/VvProgress/VvProgress.vue +27 -27
  290. package/src/components/VvProgress/index.ts +28 -28
  291. package/src/components/VvRadio/VvRadio.vue +115 -112
  292. package/src/components/VvRadio/index.ts +29 -29
  293. package/src/components/VvRadioGroup/VvRadioGroup.vue +91 -90
  294. package/src/components/VvSelect/VvSelect.vue +262 -241
  295. package/src/components/VvSelect/index.ts +88 -63
  296. package/src/components/VvTab/VvTab.vue +79 -69
  297. package/src/components/VvTab/index.ts +13 -13
  298. package/src/components/VvTextarea/VvTextarea.vue +218 -219
  299. package/src/components/VvTextarea/index.ts +35 -35
  300. package/src/components/VvTooltip/VvTooltip.vue +22 -16
  301. package/src/components/VvTooltip/index.ts +12 -12
  302. package/src/components/common/HintSlot.ts +151 -152
  303. package/src/components/index.ts +10 -0
  304. package/src/composables/alert/{useInjectAlert.ts → useAlerInject.ts} +1 -1
  305. package/src/composables/alert/useAlert.ts +76 -73
  306. package/src/composables/alert/{useProvideAlert.ts → useAlertProvide.ts} +12 -12
  307. package/src/composables/dropdown/useDropdownContextmenu.ts +22 -0
  308. package/src/composables/dropdown/{useInjectDropdown.ts → useDropdownInject.ts} +6 -6
  309. package/src/composables/dropdown/useDropdownProvide.ts +94 -0
  310. package/src/composables/dropdown/useDropdownVirtualElement.ts +53 -0
  311. package/src/composables/group/useGroupStateInject.ts +55 -0
  312. package/src/composables/group/useGroupStateProvide.ts +14 -0
  313. package/src/composables/index.ts +3 -0
  314. package/src/composables/useBlurhash.ts +68 -0
  315. package/src/composables/useComponentFocus.ts +9 -9
  316. package/src/composables/useComponentIcon.ts +36 -35
  317. package/src/composables/useDebouncedInput.ts +25 -25
  318. package/src/composables/useDefaults.ts +81 -80
  319. package/src/composables/useModifiers.ts +29 -29
  320. package/src/composables/useOptions.ts +51 -42
  321. package/src/composables/usePersistence.ts +74 -0
  322. package/src/composables/useTextCount.ts +46 -46
  323. package/src/composables/useUniqueId.ts +4 -4
  324. package/src/composables/useVolver.ts +1 -1
  325. package/src/constants.ts +98 -83
  326. package/src/directives/index.ts +3 -6
  327. package/src/directives/v-contextmenu.ts +26 -34
  328. package/src/directives/v-tooltip.ts +20 -11
  329. package/src/icons.ts +2 -2
  330. package/src/index.ts +6 -4
  331. package/src/props/index.ts +467 -383
  332. package/src/resolvers/unplugin.ts +154 -144
  333. package/src/shims.d.ts +4 -5
  334. package/src/stories/Accordion/Accordion.settings.ts +51 -50
  335. package/src/stories/Accordion/Accordion.stories.ts +21 -21
  336. package/src/stories/Accordion/Accordion.test.ts +56 -54
  337. package/src/stories/Accordion/AccordionSlots.stories.ts +13 -13
  338. package/src/stories/AccordionGroup/AccordionGroup.settings.ts +70 -67
  339. package/src/stories/AccordionGroup/AccordionGroup.stories.ts +41 -39
  340. package/src/stories/AccordionGroup/AccordionGroup.test.ts +49 -45
  341. package/src/stories/AccordionGroup/AccordionGroupSlots.stories.ts +36 -36
  342. package/src/stories/Alert/Alert.settings.ts +117 -116
  343. package/src/stories/Alert/Alert.stories.ts +30 -30
  344. package/src/stories/Alert/Alert.test.ts +78 -80
  345. package/src/stories/Alert/AlertModifiers.stories.ts +45 -45
  346. package/src/stories/Alert/AlertSlots.stories.ts +35 -35
  347. package/src/stories/AlertGroup/AlertGroup.settings.ts +107 -105
  348. package/src/stories/AlertGroup/AlertGroup.stories.ts +25 -25
  349. package/src/stories/AlertGroup/AlertGroup.test.ts +69 -71
  350. package/src/stories/AlertGroup/AlertGroupPosition.stories.ts +68 -68
  351. package/src/stories/AlertGroup/AlertGroupSlots.stories.ts +23 -23
  352. package/src/stories/AlertGroup/AlertGroupWithComposable.stories.ts +58 -58
  353. package/src/stories/Avatar/Avatar.settings.ts +29 -29
  354. package/src/stories/Avatar/Avatar.stories.ts +22 -22
  355. package/src/stories/Avatar/Avatar.test.ts +22 -24
  356. package/src/stories/Avatar/AvatarBadge.stories.ts +15 -15
  357. package/src/stories/Avatar/AvatarModifiers.stories.ts +60 -60
  358. package/src/stories/Avatar/AvatarSlots.stories.ts +17 -17
  359. package/src/stories/AvatarGroup/AvatarGroup.settings.ts +54 -53
  360. package/src/stories/AvatarGroup/AvatarGroup.stories.ts +17 -17
  361. package/src/stories/AvatarGroup/AvatarGroup.test.ts +24 -26
  362. package/src/stories/AvatarGroup/AvatarGroupModifiers.stories.ts +15 -15
  363. package/src/stories/AvatarGroup/AvatarGroupSlotDefault.stories.ts +17 -17
  364. package/src/stories/Badge/Badge.settings.ts +21 -20
  365. package/src/stories/Badge/Badge.stories.ts +24 -24
  366. package/src/stories/Badge/Badge.test.ts +8 -8
  367. package/src/stories/Badge/BadgeSlots.stories.ts +10 -10
  368. package/src/stories/Blurhash/BlurhashComposable.stories.ts +116 -0
  369. package/src/stories/Breadcrumb/Breadcrumb.settings.ts +35 -34
  370. package/src/stories/Breadcrumb/Breadcrumb.stories.ts +23 -23
  371. package/src/stories/Breadcrumb/Breadcrumb.test.ts +44 -43
  372. package/src/stories/Breadcrumb/BreadcrumbSlots.stories.ts +19 -19
  373. package/src/stories/Button/Button.settings.ts +147 -151
  374. package/src/stories/Button/Button.stories.ts +19 -19
  375. package/src/stories/Button/Button.test.ts +41 -42
  376. package/src/stories/Button/ButtonIcon.stories.ts +42 -42
  377. package/src/stories/Button/ButtonLink.stories.ts +24 -24
  378. package/src/stories/Button/ButtonLoading.stories.ts +22 -22
  379. package/src/stories/Button/ButtonModifiers.stories.ts +91 -91
  380. package/src/stories/Button/ButtonSlots.stories.ts +47 -47
  381. package/src/stories/Button/ButtonState.stories.ts +23 -23
  382. package/src/stories/Button/ButtonToggle.stories.ts +30 -30
  383. package/src/stories/ButtonGroup/ButtonGroup.settings.ts +33 -24
  384. package/src/stories/ButtonGroup/ButtonGroup.stories.ts +19 -19
  385. package/src/stories/ButtonGroup/ButtonGroup.test.ts +23 -26
  386. package/src/stories/ButtonGroup/ButtonGroupModifiers.stories.ts +20 -20
  387. package/src/stories/ButtonGroup/ButtonGroupSlots.stories.ts +17 -17
  388. package/src/stories/ButtonGroup/ButtonGroupToggle.stories.ts +22 -22
  389. package/src/stories/Card/Card.settings.ts +49 -48
  390. package/src/stories/Card/Card.stories.ts +22 -22
  391. package/src/stories/Card/Card.test.ts +14 -16
  392. package/src/stories/Card/CardSlots.stories.ts +42 -42
  393. package/src/stories/Checkbox/Checkbox.settings.ts +36 -35
  394. package/src/stories/Checkbox/Checkbox.stories.ts +57 -57
  395. package/src/stories/Checkbox/Checkbox.test.ts +63 -66
  396. package/src/stories/Checkbox/CheckboxBinary.stories.ts +18 -18
  397. package/src/stories/Checkbox/CheckboxSlots.stories.ts +15 -15
  398. package/src/stories/CheckboxGroup/CheckboxGroup.settings.ts +9 -9
  399. package/src/stories/CheckboxGroup/CheckboxGroup.stories.ts +50 -50
  400. package/src/stories/CheckboxGroup/CheckboxGroup.test.ts +64 -68
  401. package/src/stories/CheckboxGroup/CheckboxGroupOptions.stories.ts +34 -34
  402. package/src/stories/CheckboxGroup/CheckboxGroupSlots.stories.ts +23 -23
  403. package/src/stories/Combobox/Combobox.settings.ts +408 -385
  404. package/src/stories/Combobox/Combobox.stories.ts +116 -107
  405. package/src/stories/Combobox/Combobox.test.ts +92 -92
  406. package/src/stories/Combobox/ComboboxIconPosition.stories.ts +25 -24
  407. package/src/stories/Combobox/ComboboxMultiple.stories.ts +32 -22
  408. package/src/stories/Combobox/ComboboxOptions.stories.ts +81 -84
  409. package/src/stories/Combobox/ComboboxSlots.stories.ts +55 -54
  410. package/src/stories/Dialog/Dialog.settings.ts +49 -40
  411. package/src/stories/Dialog/Dialog.stories.ts +28 -28
  412. package/src/stories/Dialog/Dialog.test.ts +49 -54
  413. package/src/stories/Dialog/DialogModifiers.stories.ts +42 -0
  414. package/src/stories/Dialog/DialogSlots.stories.ts +20 -20
  415. package/src/stories/Dropdown/Dropdown.settings.ts +62 -61
  416. package/src/stories/Dropdown/Dropdown.stories.ts +60 -60
  417. package/src/stories/Dropdown/Dropdown.test.ts +9 -13
  418. package/src/stories/Dropdown/DropdownContextmenuDirective.stories.ts +18 -19
  419. package/src/stories/Dropdown/DropdownMultilevel.stories.ts +19 -19
  420. package/src/stories/Dropdown/DropdownSlots.stories.ts +51 -51
  421. package/src/stories/Icon/Icon.settings.ts +66 -65
  422. package/src/stories/Icon/Icon.stories.ts +29 -30
  423. package/src/stories/Icon/IconsCollection.stories.ts +24 -24
  424. package/src/stories/InputFile/InputFile.settings.ts +37 -0
  425. package/src/stories/InputFile/InputFile.stories.ts +97 -0
  426. package/src/stories/InputFile/InputFileDropArea.stories.ts +56 -0
  427. package/src/stories/InputFile/InputFileIconPosition.stories.ts +43 -0
  428. package/src/stories/InputFile/InputFileSlots.stories.ts +33 -0
  429. package/src/stories/InputText/InputText.settings.ts +248 -246
  430. package/src/stories/InputText/InputText.stories.ts +68 -68
  431. package/src/stories/InputText/InputText.test.ts +119 -122
  432. package/src/stories/InputText/InputTextIconPosition.stories.ts +24 -24
  433. package/src/stories/InputText/InputTextLength.stories.ts +33 -33
  434. package/src/stories/InputText/InputTextMask.stories.ts +91 -91
  435. package/src/stories/InputText/InputTextMinMax.stories.ts +30 -30
  436. package/src/stories/InputText/InputTextSlots.stories.ts +20 -20
  437. package/src/stories/InputText/InputTextType.stories.ts +70 -70
  438. package/src/stories/Nav/Nav.settings.ts +27 -27
  439. package/src/stories/Nav/Nav.stories.ts +18 -18
  440. package/src/stories/Nav/Nav.test.ts +10 -12
  441. package/src/stories/Nav/NavModifiers.stories.ts +25 -25
  442. package/src/stories/Progress/Progress.settings.ts +24 -23
  443. package/src/stories/Progress/Progress.stories.ts +23 -23
  444. package/src/stories/Progress/Progress.test.ts +5 -5
  445. package/src/stories/Radio/Radio.settings.ts +9 -9
  446. package/src/stories/Radio/Radio.stories.ts +47 -47
  447. package/src/stories/Radio/Radio.test.ts +54 -57
  448. package/src/stories/Radio/RadioSlots.stories.ts +15 -15
  449. package/src/stories/RadioGroup/RadioGroup.settings.ts +9 -9
  450. package/src/stories/RadioGroup/RadioGroup.stories.ts +51 -52
  451. package/src/stories/RadioGroup/RadioGroup.test.ts +64 -68
  452. package/src/stories/RadioGroup/RadioGroupOptions.stories.ts +35 -35
  453. package/src/stories/RadioGroup/RadioGroupSlots.stories.ts +23 -23
  454. package/src/stories/Select/Select.settings.ts +72 -71
  455. package/src/stories/Select/Select.stories.ts +75 -66
  456. package/src/stories/Select/Select.test.ts +67 -70
  457. package/src/stories/Select/SelectIconPosition.stories.ts +27 -26
  458. package/src/stories/Select/SelectOptions.stories.ts +55 -55
  459. package/src/stories/Select/SelectSlots.stories.ts +21 -20
  460. package/src/stories/Tab/Tab.settings.ts +34 -34
  461. package/src/stories/Tab/Tab.stories.ts +16 -16
  462. package/src/stories/Tab/Tab.test.ts +17 -19
  463. package/src/stories/Textarea/Textarea.settings.ts +80 -78
  464. package/src/stories/Textarea/Textarea.stories.ts +63 -63
  465. package/src/stories/Textarea/Textarea.test.ts +70 -73
  466. package/src/stories/Textarea/TextareaLength.stories.ts +33 -33
  467. package/src/stories/Textarea/TextareaSlots.stories.ts +20 -20
  468. package/src/stories/Textarea/TextareatIconPosition.stories.ts +24 -24
  469. package/src/stories/Tooltip/Tooltip.settings.ts +16 -17
  470. package/src/stories/Tooltip/Tooltip.stories.ts +18 -18
  471. package/src/stories/Tooltip/Tooltip.test.ts +53 -54
  472. package/src/stories/Tooltip/TooltipDirective.stories.ts +37 -37
  473. package/src/stories/argTypes.ts +506 -505
  474. package/src/test/expect.ts +74 -79
  475. package/src/test/options.ts +17 -16
  476. package/src/test/sleep.ts +3 -2
  477. package/src/test/types.d.ts +12 -12
  478. package/src/types/alert.ts +21 -17
  479. package/src/types/blurhash.ts +21 -0
  480. package/src/types/floating-ui.ts +1 -1
  481. package/src/types/generic.ts +2 -3
  482. package/src/types/group.ts +35 -27
  483. package/src/types/index.ts +7 -0
  484. package/src/types/input-file.ts +10 -0
  485. package/src/types/nav.ts +13 -14
  486. package/src/utils/DomUtilities.ts +15 -0
  487. package/src/utils/ObjectUtilities.ts +192 -188
  488. package/src/workers/blurhash.ts +9 -0
  489. package/dist/composables/alert/useInjectAlert.d.ts +0 -9
  490. package/dist/composables/dropdown/useInjectDropdown.d.ts +0 -32
  491. package/dist/composables/group/useInjectedGroupState.d.ts +0 -10
  492. package/dist/composables/group/useProvideGroupState.d.ts +0 -6
  493. package/src/composables/dropdown/useProvideDropdown.ts +0 -94
  494. package/src/composables/group/useInjectedGroupState.ts +0 -51
  495. package/src/composables/group/useProvideGroupState.ts +0 -20
  496. /package/src/assets/icons/normal/{dulicate.svg → duplicate.svg} +0 -0
@@ -1,6 +1,10 @@
1
- import { unref, inject, computed, toRef, toRefs, defineComponent, useAttrs, ref, openBlock, createElementBlock, normalizeClass, createElementVNode, withModifiers, renderSlot, normalizeProps, guardReactiveProps, createTextVNode, toDisplayString } from "vue";
2
- import { uid } from "uid";
3
- import { useToggle } from "@vueuse/core";
1
+ import { inject, computed, toRef, unref, defineComponent, useAttrs, useId, toRefs, ref, watch, onBeforeUnmount, openBlock, createElementBlock, normalizeClass, createElementVNode, withModifiers, renderSlot, normalizeProps, guardReactiveProps, createTextVNode, toDisplayString } from "vue";
2
+ import { useVModel } from "@vueuse/core";
3
+ var StorageType = /* @__PURE__ */ ((StorageType2) => {
4
+ StorageType2["local"] = "local";
5
+ StorageType2["session"] = "session";
6
+ return StorageType2;
7
+ })(StorageType || {});
4
8
  var Strategy = /* @__PURE__ */ ((Strategy2) => {
5
9
  Strategy2["absolute"] = "absolute";
6
10
  Strategy2["fixed"] = "fixed";
@@ -35,14 +39,16 @@ var ButtonType = /* @__PURE__ */ ((ButtonType2) => {
35
39
  ButtonType2["reset"] = "reset";
36
40
  return ButtonType2;
37
41
  })(ButtonType || {});
38
- var AnchorTarget = /* @__PURE__ */ ((AnchorTarget2) => {
39
- AnchorTarget2["_blank"] = "_blank";
40
- AnchorTarget2["_self"] = "_self";
41
- AnchorTarget2["_parent"] = "_parent";
42
- AnchorTarget2["_top"] = "_top";
43
- return AnchorTarget2;
44
- })(AnchorTarget || {});
45
- const INJECTION_KEY_ACCORDION_GROUP = Symbol.for("accordionGroup");
42
+ var ActionTag = /* @__PURE__ */ ((ActionTag2) => {
43
+ ActionTag2["nuxtLink"] = "nuxt-link";
44
+ ActionTag2["routerLink"] = "router-link";
45
+ ActionTag2["a"] = "a";
46
+ ActionTag2["button"] = "button";
47
+ return ActionTag2;
48
+ })(ActionTag || {});
49
+ const INJECTION_KEY_ACCORDION_GROUP = Symbol.for(
50
+ "accordionGroup"
51
+ );
46
52
  const LinkProps = {
47
53
  /**
48
54
  * The router-link/nuxt-link property, if it is defined the button is rendered as a ruouter-link or nuxt-link.
@@ -58,10 +64,7 @@ const LinkProps = {
58
64
  /**
59
65
  * Anchor target
60
66
  */
61
- target: {
62
- type: String,
63
- validator: (value) => Object.values(AnchorTarget).includes(value)
64
- },
67
+ target: String,
65
68
  /**
66
69
  * Anchor rel
67
70
  */
@@ -74,44 +77,65 @@ const DisabledProps = {
74
77
  /**
75
78
  * Whether the form control is disabled
76
79
  */
77
- disabled: Boolean
80
+ disabled: {
81
+ type: Boolean,
82
+ default: false
83
+ }
78
84
  };
79
85
  const ActiveProps = {
80
86
  /**
81
87
  * Whether the item is active
82
88
  */
83
- active: Boolean
89
+ active: {
90
+ type: Boolean,
91
+ default: false
92
+ }
84
93
  };
85
94
  const CurrentProps = {
86
95
  /**
87
96
  * Whether the item is current
88
97
  */
89
- current: Boolean
98
+ current: {
99
+ type: Boolean,
100
+ default: false
101
+ }
90
102
  };
91
103
  const PressedProps = {
92
104
  /**
93
105
  * Whether the item is pressed
94
106
  */
95
- pressed: Boolean
107
+ pressed: {
108
+ type: Boolean,
109
+ default: false
110
+ }
96
111
  };
97
112
  const LabelProps = {
98
113
  /**
99
114
  * The item label
100
115
  */
101
- label: [String, Number]
116
+ label: {
117
+ type: [String, Number],
118
+ default: void 0
119
+ }
102
120
  };
103
121
  const ModifiersProps = {
104
122
  /**
105
123
  * Component BEM modifiers
106
124
  */
107
- modifiers: [String, Array]
125
+ modifiers: {
126
+ type: [String, Array],
127
+ default: void 0
128
+ }
108
129
  };
109
130
  ({
110
131
  /**
111
132
  * VvIcon name or props
112
133
  * @see VVIcon
113
134
  */
114
- icon: { type: [String, Object] },
135
+ icon: {
136
+ type: [String, Object],
137
+ default: void 0
138
+ },
115
139
  /**
116
140
  * VvIcon position
117
141
  */
@@ -142,7 +166,8 @@ const ModifiersProps = {
142
166
  * Dropdown show / hide transition name
143
167
  */
144
168
  transitionName: {
145
- type: String
169
+ type: String,
170
+ default: void 0
146
171
  },
147
172
  /**
148
173
  * Offset of the dropdown from the trigger
@@ -210,7 +235,8 @@ const ModifiersProps = {
210
235
  * Set dropdown width to the same as the trigger
211
236
  */
212
237
  triggerWidth: {
213
- type: Boolean
238
+ type: Boolean,
239
+ default: false
214
240
  }
215
241
  });
216
242
  ({
@@ -234,20 +260,32 @@ const ModifiersProps = {
234
260
  ariaLabel: {
235
261
  type: String,
236
262
  default: void 0
263
+ },
264
+ /**
265
+ * Default tag for the action
266
+ */
267
+ defaultTag: {
268
+ type: String,
269
+ default: ActionTag.button
237
270
  }
238
271
  });
239
- function isEmpty(value) {
240
- return ((value2) => value2 === null || value2 === void 0 || value2 === "" || Array.isArray(value2) && value2.length === 0 || !(value2 instanceof Date) && typeof value2 === "object" && Object.keys(value2).length === 0)(unref(value));
241
- }
242
- function useInjectedGroupState(groupKey) {
272
+ ({
273
+ storageType: {
274
+ type: String,
275
+ default: StorageType.local,
276
+ validator: (value) => Object.values(StorageType).includes(value)
277
+ },
278
+ storageKey: String
279
+ });
280
+ function useGroupStateInject(groupKey) {
243
281
  const group = inject(groupKey, void 0);
244
- const isInGroup = computed(() => !isEmpty(group));
282
+ const isInGroup = computed(() => group !== void 0);
245
283
  function getGroupOrLocalRef(propName, props, emit) {
246
- if (group == null ? void 0 : group.value) {
247
- const groupPropValue = unref(group.value)[propName];
284
+ const groupPropValue = group == null ? void 0 : group[propName];
285
+ if (groupPropValue) {
248
286
  return computed({
249
287
  get() {
250
- return groupPropValue == null ? void 0 : groupPropValue.value;
288
+ return groupPropValue.value;
251
289
  },
252
290
  set(value) {
253
291
  groupPropValue.value = value;
@@ -260,8 +298,9 @@ function useInjectedGroupState(groupKey) {
260
298
  return propRef.value;
261
299
  },
262
300
  set(value) {
263
- if (emit)
301
+ if (emit) {
264
302
  emit(`update:${propName}`, value);
303
+ }
265
304
  }
266
305
  });
267
306
  }
@@ -302,23 +341,16 @@ const VvAccordionProps = {
302
341
  not: Boolean
303
342
  };
304
343
  const VvAccordionEvents = ["update:modelValue"];
305
- function useGroupProps(props, emit) {
306
- const { group, isInGroup, getGroupOrLocalRef } = useInjectedGroupState(
344
+ function useGroupProps(props) {
345
+ const { group, isInGroup } = useGroupStateInject(
307
346
  INJECTION_KEY_ACCORDION_GROUP
308
347
  );
309
- const { title, content } = toRefs(props);
310
- const modelValue = getGroupOrLocalRef("modelValue", props, emit);
311
- const not = getGroupOrLocalRef("not", props);
312
- const collapse = getGroupOrLocalRef("collapse", props);
313
348
  const disabled = computed(
314
- () => {
315
- var _a;
316
- return Boolean(props.disabled || ((_a = group == null ? void 0 : group.value) == null ? void 0 : _a.disabled.value));
317
- }
349
+ () => Boolean(props.disabled || (group == null ? void 0 : group.disabled.value))
318
350
  );
319
351
  const modifiers = computed(() => {
320
352
  let localModifiers = props.modifiers;
321
- let groupModifiers = group == null ? void 0 : group.value.modifiers.value;
353
+ let groupModifiers = group == null ? void 0 : group.modifiers.value;
322
354
  const toReturn = /* @__PURE__ */ new Set();
323
355
  if (localModifiers) {
324
356
  if (!Array.isArray(localModifiers)) {
@@ -336,16 +368,11 @@ function useGroupProps(props, emit) {
336
368
  });
337
369
  return {
338
370
  // group props
339
- modelValue,
340
- not,
341
371
  isInGroup,
342
372
  group,
343
- collapse,
344
373
  modifiers,
345
374
  disabled,
346
- // local props
347
- title,
348
- content
375
+ bus: group == null ? void 0 : group.bus
349
376
  };
350
377
  }
351
378
  function useModifiers(prefix, modifiers, others) {
@@ -381,61 +408,103 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
381
408
  ...__default__,
382
409
  props: VvAccordionProps,
383
410
  emits: VvAccordionEvents,
384
- setup(__props, { emit }) {
411
+ setup(__props, { expose: __expose, emit: __emit }) {
385
412
  const props = __props;
413
+ const emit = __emit;
386
414
  const attrs = useAttrs();
415
+ const modelValue = useVModel(props, "modelValue", emit);
387
416
  const accordionName = computed(
388
- () => props.name || (attrs == null ? void 0 : attrs.id) || uid()
417
+ () => props.name || (attrs == null ? void 0 : attrs.id) || useId()
389
418
  );
390
- const {
391
- modifiers,
392
- title,
393
- content,
394
- disabled,
395
- collapse,
419
+ const { title, content, not } = toRefs(props);
420
+ const { isInGroup, modifiers, disabled, bus } = useGroupProps(props);
421
+ const isExpanded = ref(false);
422
+ watch(
396
423
  modelValue,
397
- isInGroup,
398
- not
399
- } = useGroupProps(props, emit);
400
- const localModelValue = ref(false);
401
- const isOpen = computed({
402
- get: () => {
403
- let toReturn = modelValue.value;
404
- if (isInGroup.value) {
405
- if (collapse.value && Array.isArray(modelValue.value)) {
406
- toReturn = modelValue.value.includes(accordionName.value);
407
- } else {
408
- toReturn = modelValue.value === accordionName.value;
409
- }
410
- } else if (modelValue.value === void 0) {
411
- toReturn = localModelValue.value;
424
+ (newValue) => {
425
+ if (typeof newValue === "boolean") {
426
+ isExpanded.value = not.value ? !newValue : newValue;
412
427
  }
413
- return not.value ? !toReturn : toReturn;
414
428
  },
415
- set: (newValue) => {
416
- if (not.value) {
417
- newValue = !newValue;
418
- }
419
- if (isInGroup.value) {
420
- if (collapse.value && Array.isArray(modelValue.value)) {
421
- if (newValue) {
422
- modelValue.value.push(accordionName.value);
423
- return;
424
- }
425
- modelValue.value = modelValue.value.filter(
426
- (name) => name !== accordionName.value
427
- );
428
- return;
429
+ { immediate: true }
430
+ );
431
+ watch(isExpanded, (newValue) => {
432
+ modelValue.value = not.value ? !newValue : newValue;
433
+ });
434
+ bus == null ? void 0 : bus.on("toggle", ({ name, value }) => {
435
+ if (name !== accordionName.value) {
436
+ return;
437
+ }
438
+ isExpanded.value = value;
439
+ });
440
+ function onClick() {
441
+ if (disabled.value) {
442
+ return;
443
+ }
444
+ if (isInGroup.value) {
445
+ bus == null ? void 0 : bus.emit("toggle", {
446
+ name: accordionName.value,
447
+ value: !isExpanded.value
448
+ });
449
+ return;
450
+ }
451
+ isExpanded.value = !isExpanded.value;
452
+ }
453
+ watch(
454
+ accordionName,
455
+ (newValue, oldValue) => {
456
+ if (bus) {
457
+ if (oldValue && oldValue !== newValue) {
458
+ bus.emit("unregister", { name: oldValue });
429
459
  }
430
- modelValue.value = newValue ? accordionName.value : null;
431
- return;
432
- }
433
- if (modelValue.value === void 0 && typeof newValue === "boolean") {
434
- localModelValue.value = newValue;
435
- return;
460
+ bus.emit("register", { name: newValue });
436
461
  }
437
- modelValue.value = newValue;
462
+ },
463
+ {
464
+ immediate: true
465
+ }
466
+ );
467
+ onBeforeUnmount(() => {
468
+ if (bus) {
469
+ bus.emit("unregister", { name: accordionName.value });
470
+ }
471
+ });
472
+ function expand() {
473
+ if (isExpanded.value) {
474
+ return;
438
475
  }
476
+ onClick();
477
+ }
478
+ function collapse() {
479
+ if (!isExpanded.value) {
480
+ return;
481
+ }
482
+ onClick();
483
+ }
484
+ function groupExpand(name) {
485
+ if (!bus) {
486
+ console.warn(
487
+ `[VvAccordion]: You are trying to expand accordion group of "${accordionName.value}" but it is not in a group`
488
+ );
489
+ return;
490
+ }
491
+ bus.emit("expand", { name });
492
+ }
493
+ function groupCollapse(name) {
494
+ if (!bus) {
495
+ console.warn(
496
+ `[VvAccordion]: You are trying to collapse accordion group of "${accordionName.value}" but it is not in a group`
497
+ );
498
+ return;
499
+ }
500
+ bus == null ? void 0 : bus.emit("collapse", { name });
501
+ }
502
+ __expose({
503
+ isExpanded,
504
+ expand,
505
+ collapse,
506
+ groupExpand,
507
+ groupCollapse
439
508
  });
440
509
  const bemCssClasses = useModifiers(
441
510
  "vv-accordion",
@@ -444,29 +513,48 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
444
513
  disabled: disabled.value
445
514
  }))
446
515
  );
447
- const onClick = useToggle(isOpen);
448
516
  return (_ctx, _cache) => {
449
517
  return openBlock(), createElementBlock("details", {
450
518
  id: unref(accordionName),
451
519
  class: normalizeClass(unref(bemCssClasses)),
452
- open: unref(isOpen)
520
+ open: unref(isExpanded)
453
521
  }, [
454
522
  createElementVNode("summary", {
455
523
  "aria-controls": unref(accordionName),
456
- "aria-expanded": unref(isOpen),
524
+ "aria-expanded": unref(isExpanded),
457
525
  class: "vv-accordion__summary",
458
- onClick: _cache[0] || (_cache[0] = withModifiers(($event) => unref(onClick)(), ["prevent"]))
526
+ onClick: _cache[0] || (_cache[0] = withModifiers(($event) => onClick(), ["prevent"]))
459
527
  }, [
460
- renderSlot(_ctx.$slots, "summary", normalizeProps(guardReactiveProps({ open: unref(isOpen) })), () => [
461
- createTextVNode(toDisplayString(unref(title)), 1)
528
+ renderSlot(_ctx.$slots, "summary", normalizeProps(guardReactiveProps({
529
+ isExpanded: unref(isExpanded),
530
+ expand,
531
+ collapse,
532
+ groupExpand,
533
+ groupCollapse
534
+ })), () => [
535
+ createTextVNode(
536
+ toDisplayString(unref(title)),
537
+ 1
538
+ /* TEXT */
539
+ )
462
540
  ])
463
541
  ], 8, _hoisted_2),
464
542
  createElementVNode("div", {
465
- "aria-hidden": !unref(isOpen),
543
+ "aria-hidden": !unref(isExpanded),
466
544
  class: "vv-accordion__content"
467
545
  }, [
468
- renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps({ open: unref(isOpen) })), () => [
469
- createTextVNode(toDisplayString(unref(content)), 1)
546
+ renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps({
547
+ isExpanded: unref(isExpanded),
548
+ expand,
549
+ collapse,
550
+ groupExpand,
551
+ groupCollapse
552
+ })), () => [
553
+ createTextVNode(
554
+ toDisplayString(unref(content)),
555
+ 1
556
+ /* TEXT */
557
+ )
470
558
  ])
471
559
  ], 8, _hoisted_3)
472
560
  ], 10, _hoisted_1);
@@ -1 +1 @@
1
- !function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o(require("vue"),require("uid"),require("@vueuse/core")):"function"==typeof define&&define.amd?define(["vue","uid","@vueuse/core"],o):(e="undefined"!=typeof globalThis?globalThis:e||self).VvAccordion=o(e.vue,e.uid,e.core)}(this,(function(e,o,t){"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||{}),a=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(a||{});const l=Symbol.for("accordionGroup"),u=(Boolean,Boolean,Boolean,Boolean,{modifiers:[String,Array]});function i(o){const t=e.inject(o,void 0),r=e.computed((()=>{return o=t,!(null==(r=e.unref(o))||""===r||Array.isArray(r)&&0===r.length||!(r instanceof Date)&&"object"==typeof r&&0===Object.keys(r).length);var o,r}));return{group:t,isInGroup:r,getGroupOrLocalRef:function(o,r,n){if(null==t?void 0:t.value){const r=e.unref(t.value)[o];return e.computed({get:()=>null==r?void 0:r.value,set(e){r.value=e}})}const a=e.toRef(r,o);return e.computed({get:()=>a.value,set(e){n&&n(`update:${o}`,e)}})}}}n.before,r.bottom,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,a.button;const d={...u,name:String,title:String,content:String,modelValue:{type:Boolean,default:void 0},disabled:Boolean,not:Boolean};const s=["id","open"],c=["aria-controls","aria-expanded"],v=["aria-hidden"];return e.defineComponent({name:"VvAccordion",props:d,emits:["update:modelValue"],setup(r,{emit:n}){const a=r,u=e.useAttrs(),d=e.computed((()=>a.name||(null==u?void 0:u.id)||o.uid())),{modifiers:f,title:p,content:m,disabled:y,collapse:b,modelValue:g,isInGroup:B,not:A}=function(o,t){const{group:r,isInGroup:n,getGroupOrLocalRef:a}=i(l),{title:u,content:d}=e.toRefs(o),s=a("modelValue",o,t),c=a("not",o),v=a("collapse",o),f=e.computed((()=>{var e;return Boolean(o.disabled||(null==(e=null==r?void 0:r.value)?void 0:e.disabled.value))})),p=e.computed((()=>{let e=o.modifiers,t=null==r?void 0:r.value.modifiers.value;const n=new Set;return e&&(Array.isArray(e)||(e=e.split(" ")),e.forEach((e=>n.add(e)))),t&&(Array.isArray(t)||(t=t.split(" ")),t.forEach((e=>n.add(e)))),Array.from(n)}));return{modelValue:s,not:c,isInGroup:n,group:r,collapse:v,modifiers:p,disabled:f,title:u,content:d}}(a,n),h=e.ref(!1),V=e.computed({get:()=>{let e=g.value;return B.value?e=b.value&&Array.isArray(g.value)?g.value.includes(d.value):g.value===d.value:void 0===g.value&&(e=h.value),A.value?!e:e},set:e=>{if(A.value&&(e=!e),B.value)return b.value&&Array.isArray(g.value)?e?void g.value.push(d.value):void(g.value=g.value.filter((e=>e!==d.value))):void(g.value=e?d.value:null);void 0!==g.value||"boolean"!=typeof e?g.value=e:h.value=e}}),S=function(o,t,r){return e.computed((()=>{const n={[o]:!0},a="string"==typeof(null==t?void 0:t.value)?t.value.split(" "):null==t?void 0:t.value;return a&&Array.isArray(a)&&a.forEach((e=>{e&&(n[`${o}--${e}`]=!0)})),r&&Object.keys(r.value).forEach((t=>{n[`${o}--${t}`]=e.unref(r.value[t])})),n}))}("vv-accordion",f,e.computed((()=>({disabled:y.value})))),E=t.useToggle(V);return(o,t)=>(e.openBlock(),e.createElementBlock("details",{id:e.unref(d),class:e.normalizeClass(e.unref(S)),open:e.unref(V)},[e.createElementVNode("summary",{"aria-controls":e.unref(d),"aria-expanded":e.unref(V),class:"vv-accordion__summary",onClick:t[0]||(t[0]=e.withModifiers((o=>e.unref(E)()),["prevent"]))},[e.renderSlot(o.$slots,"summary",e.normalizeProps(e.guardReactiveProps({open:e.unref(V)})),(()=>[e.createTextVNode(e.toDisplayString(e.unref(p)),1)]))],8,c),e.createElementVNode("div",{"aria-hidden":!e.unref(V),class:"vv-accordion__content"},[e.renderSlot(o.$slots,"default",e.normalizeProps(e.guardReactiveProps({open:e.unref(V)})),(()=>[e.createTextVNode(e.toDisplayString(e.unref(m)),1)]))],8,v)],10,s))}})}));
1
+ !function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o(require("vue"),require("@vueuse/core")):"function"==typeof define&&define.amd?define(["vue","@vueuse/core"],o):(e="undefined"!=typeof globalThis?globalThis:e||self).VvAccordion=o(e.vue,e.core)}(this,(function(e,o){"use strict";var n=(e=>(e.local="local",e.session="session",e))(n||{}),t=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(t||{}),a=(e=>(e.before="before",e.after="after",e))(a||{}),r=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(r||{}),u=(e=>(e.nuxtLink="nuxt-link",e.routerLink="router-link",e.a="a",e.button="button",e))(u||{});const l=Symbol.for("accordionGroup"),i=(Boolean,Boolean,Boolean,Boolean,{modifiers:{type:[String,Array],default:void 0}});a.before,t.bottom,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,r.button,u.button,n.local;const s={...i,name:String,title:String,content:String,modelValue:{type:Boolean,default:void 0},disabled:Boolean,not:Boolean};function d(o){const{group:n,isInGroup:t}=function(o){const n=e.inject(o,void 0),t=e.computed((()=>void 0!==n));return{group:n,isInGroup:t,getGroupOrLocalRef:function(o,t,a){const r=null==n?void 0:n[o];if(r)return e.computed({get:()=>r.value,set(e){r.value=e}});const u=e.toRef(t,o);return e.computed({get:()=>u.value,set(e){a&&a(`update:${o}`,e)}})}}}(l),a=e.computed((()=>Boolean(o.disabled||(null==n?void 0:n.disabled.value)))),r=e.computed((()=>{let e=o.modifiers,t=null==n?void 0:n.modifiers.value;const a=new Set;return e&&(Array.isArray(e)||(e=e.split(" ")),e.forEach((e=>a.add(e)))),t&&(Array.isArray(t)||(t=t.split(" ")),t.forEach((e=>a.add(e)))),Array.from(a)}));return{isInGroup:t,group:n,modifiers:r,disabled:a,bus:null==n?void 0:n.bus}}const c=["id","open"],p=["aria-controls","aria-expanded"],f=["aria-hidden"];return e.defineComponent({name:"VvAccordion",props:s,emits:["update:modelValue"],setup(n,{expose:t,emit:a}){const r=n,u=a,l=e.useAttrs(),i=o.useVModel(r,"modelValue",u),s=e.computed((()=>r.name||(null==l?void 0:l.id)||e.useId())),{title:m,content:v,not:g}=e.toRefs(r),{isInGroup:b,modifiers:y,disabled:x,bus:B}=d(r),h=e.ref(!1);function A(){x.value||(b.value?null==B||B.emit("toggle",{name:s.value,value:!h.value}):h.value=!h.value)}function E(){h.value||A()}function V(){h.value&&A()}function S(e){B?B.emit("expand",{name:e}):console.warn(`[VvAccordion]: You are trying to expand accordion group of "${s.value}" but it is not in a group`)}function $(e){B?null==B||B.emit("collapse",{name:e}):console.warn(`[VvAccordion]: You are trying to collapse accordion group of "${s.value}" but it is not in a group`)}e.watch(i,(e=>{"boolean"==typeof e&&(h.value=g.value?!e:e)}),{immediate:!0}),e.watch(h,(e=>{i.value=g.value?!e:e})),null==B||B.on("toggle",(({name:e,value:o})=>{e===s.value&&(h.value=o)})),e.watch(s,((e,o)=>{B&&(o&&o!==e&&B.emit("unregister",{name:o}),B.emit("register",{name:e}))}),{immediate:!0}),e.onBeforeUnmount((()=>{B&&B.emit("unregister",{name:s.value})})),t({isExpanded:h,expand:E,collapse:V,groupExpand:S,groupCollapse:$});const k=function(o,n,t){return e.computed((()=>{const a={[o]:!0},r="string"==typeof(null==n?void 0:n.value)?n.value.split(" "):null==n?void 0:n.value;return r&&Array.isArray(r)&&r.forEach((e=>{e&&(a[`${o}--${e}`]=!0)})),t&&Object.keys(t.value).forEach((n=>{a[`${o}--${n}`]=e.unref(t.value[n])})),a}))}("vv-accordion",y,e.computed((()=>({disabled:x.value}))));return(o,n)=>(e.openBlock(),e.createElementBlock("details",{id:e.unref(s),class:e.normalizeClass(e.unref(k)),open:e.unref(h)},[e.createElementVNode("summary",{"aria-controls":e.unref(s),"aria-expanded":e.unref(h),class:"vv-accordion__summary",onClick:n[0]||(n[0]=e.withModifiers((e=>A()),["prevent"]))},[e.renderSlot(o.$slots,"summary",e.normalizeProps(e.guardReactiveProps({isExpanded:e.unref(h),expand:E,collapse:V,groupExpand:S,groupCollapse:$})),(()=>[e.createTextVNode(e.toDisplayString(e.unref(m)),1)]))],8,p),e.createElementVNode("div",{"aria-hidden":!e.unref(h),class:"vv-accordion__content"},[e.renderSlot(o.$slots,"default",e.normalizeProps(e.guardReactiveProps({isExpanded:e.unref(h),expand:E,collapse:V,groupExpand:S,groupCollapse:$})),(()=>[e.createTextVNode(e.toDisplayString(e.unref(v)),1)]))],8,f)],10,c))}})}));
@@ -1,4 +1,4 @@
1
- declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
1
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<globalThis.ExtractPropTypes<{
2
2
  name: StringConstructor;
3
3
  title: StringConstructor;
4
4
  content: StringConstructor;
@@ -8,8 +8,17 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
8
8
  };
9
9
  disabled: BooleanConstructor;
10
10
  not: BooleanConstructor;
11
- modifiers: globalThis.PropType<string | string[]>;
12
- }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, string[], string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
11
+ modifiers: {
12
+ type: PropType<string | string[]>;
13
+ default: undefined;
14
+ };
15
+ }>, {
16
+ isExpanded: globalThis.Ref<boolean, boolean>;
17
+ expand: () => void;
18
+ collapse: () => void;
19
+ groupExpand: (name?: string | string[]) => void;
20
+ groupCollapse: (name?: string | string[]) => void;
21
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<globalThis.ExtractPropTypes<{
13
22
  name: StringConstructor;
14
23
  title: StringConstructor;
15
24
  content: StringConstructor;
@@ -19,19 +28,29 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
19
28
  };
20
29
  disabled: BooleanConstructor;
21
30
  not: BooleanConstructor;
22
- modifiers: globalThis.PropType<string | string[]>;
23
- }>> & {
24
- [x: `on${Capitalize<string>}`]: ((...args: any[]) => any) | undefined;
25
- }, {
31
+ modifiers: {
32
+ type: PropType<string | string[]>;
33
+ default: undefined;
34
+ };
35
+ }>> & Readonly<{}>, {
26
36
  disabled: boolean;
27
37
  modelValue: boolean;
28
38
  not: boolean;
29
- }, {}>, {
39
+ modifiers: string | string[];
40
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, HTMLDetailsElement>, {
30
41
  summary?(_: {
31
- open: boolean;
42
+ isExpanded: boolean;
43
+ expand: () => void;
44
+ collapse: () => void;
45
+ groupExpand: (name?: string | string[]) => void;
46
+ groupCollapse: (name?: string | string[]) => void;
32
47
  }): any;
33
48
  default?(_: {
34
- open: boolean;
49
+ isExpanded: boolean;
50
+ expand: () => void;
51
+ collapse: () => void;
52
+ groupExpand: (name?: string | string[]) => void;
53
+ groupCollapse: (name?: string | string[]) => void;
35
54
  }): any;
36
55
  }>;
37
56
  export default _default;
@@ -1,4 +1,4 @@
1
- import type { ExtractPropTypes, Ref } from 'vue';
1
+ import type { ExtractPropTypes } from 'vue';
2
2
  import type { AccordionGroupState } from '../../types/group';
3
3
  export declare const VvAccordionProps: {
4
4
  /**
@@ -28,21 +28,20 @@ export declare const VvAccordionProps: {
28
28
  * If true, the accordion will be opened by default
29
29
  */
30
30
  not: BooleanConstructor;
31
- modifiers: globalThis.PropType<string | string[]>;
31
+ modifiers: {
32
+ type: PropType<string | string[]>;
33
+ default: undefined;
34
+ };
32
35
  };
33
36
  export declare const VvAccordionEvents: string[];
34
37
  export type VvAccordionPropsTypes = ExtractPropTypes<typeof VvAccordionProps>;
35
38
  /**
36
39
  * Merges local and group props
37
40
  */
38
- export declare function useGroupProps(props: VvAccordionPropsTypes, emit: (event: string, value: unknown) => void): {
39
- modelValue: globalThis.WritableComputedRef<any>;
40
- not: Ref<boolean>;
41
+ export declare function useGroupProps(props: VvAccordionPropsTypes): {
41
42
  isInGroup: globalThis.ComputedRef<boolean>;
42
- group: Ref<AccordionGroupState> | undefined;
43
- collapse: Ref<boolean>;
43
+ group: AccordionGroupState | undefined;
44
44
  modifiers: globalThis.ComputedRef<string[]>;
45
45
  disabled: globalThis.ComputedRef<boolean>;
46
- title: Ref<string | undefined> | undefined;
47
- content: Ref<string | undefined> | undefined;
46
+ bus: import("mitt").Emitter<import("../..").AccordionGroupBusEvents> | undefined;
48
47
  };