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

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