@volverjs/ui-vue 0.0.10-beta.2 → 0.0.10-beta.20

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 (251) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +98 -3
  3. package/auto-imports.d.ts +6 -2
  4. package/bin/icons.cjs +1 -1
  5. package/bin/icons.js +23 -16
  6. package/dist/Volver.d.ts +1 -1
  7. package/dist/components/VvAccordion/VvAccordion.es.js +67 -13
  8. package/dist/components/VvAccordion/VvAccordion.umd.js +1 -1
  9. package/dist/components/VvAccordion/VvAccordion.vue.d.ts +13 -6
  10. package/dist/components/VvAccordion/index.d.ts +4 -1
  11. package/dist/components/VvAccordionGroup/VvAccordionGroup.es.js +111 -37
  12. package/dist/components/VvAccordionGroup/VvAccordionGroup.umd.js +1 -1
  13. package/dist/components/VvAccordionGroup/VvAccordionGroup.vue.d.ts +15 -8
  14. package/dist/components/VvAccordionGroup/index.d.ts +4 -1
  15. package/dist/components/VvAction/VvAction.es.js +56 -12
  16. package/dist/components/VvAction/VvAction.umd.js +1 -1
  17. package/dist/components/VvAction/VvAction.vue.d.ts +59 -12
  18. package/dist/components/VvAction/index.d.ts +25 -4
  19. package/dist/components/VvAlert/VvAlert.es.js +188 -152
  20. package/dist/components/VvAlert/VvAlert.umd.js +1 -1
  21. package/dist/components/VvAlert/VvAlert.vue.d.ts +18 -8
  22. package/dist/components/VvAlert/index.d.ts +9 -5
  23. package/dist/components/VvAlertGroup/VvAlertGroup.es.js +230 -174
  24. package/dist/components/VvAlertGroup/VvAlertGroup.umd.js +1 -1
  25. package/dist/components/VvAlertGroup/VvAlertGroup.vue.d.ts +13 -6
  26. package/dist/components/VvAlertGroup/index.d.ts +6 -2
  27. package/dist/components/VvAvatar/VvAvatar.es.js +54 -9
  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 +111 -36
  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 +71 -16
  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 +257 -49
  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 +165 -137
  44. package/dist/components/VvButton/VvButton.umd.js +1 -1
  45. package/dist/components/VvButton/VvButton.vue.d.ts +101 -27
  46. package/dist/components/VvButton/index.d.ts +41 -14
  47. package/dist/components/VvButtonGroup/VvButtonGroup.es.js +67 -15
  48. package/dist/components/VvButtonGroup/VvButtonGroup.umd.js +1 -1
  49. package/dist/components/VvButtonGroup/VvButtonGroup.vue.d.ts +23 -10
  50. package/dist/components/VvButtonGroup/index.d.ts +8 -2
  51. package/dist/components/VvCard/VvCard.es.js +79 -24
  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 +89 -21
  56. package/dist/components/VvCheckbox/VvCheckbox.umd.js +1 -1
  57. package/dist/components/VvCheckbox/VvCheckbox.vue.d.ts +104 -32
  58. package/dist/components/VvCheckbox/index.d.ts +45 -12
  59. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.es.js +168 -66
  60. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.umd.js +1 -1
  61. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.vue.d.ts +100 -29
  62. package/dist/components/VvCheckboxGroup/index.d.ts +45 -12
  63. package/dist/components/VvCombobox/VvCombobox.es.js +721 -527
  64. package/dist/components/VvCombobox/VvCombobox.umd.js +1 -1
  65. package/dist/components/VvCombobox/VvCombobox.vue.d.ts +145 -72
  66. package/dist/components/VvCombobox/index.d.ts +53 -22
  67. package/dist/components/VvDialog/VvDialog.es.js +133 -141
  68. package/dist/components/VvDialog/VvDialog.umd.js +1 -1
  69. package/dist/components/VvDialog/VvDialog.vue.d.ts +4 -4
  70. package/dist/components/VvDropdown/VvDropdown.es.js +121 -55
  71. package/dist/components/VvDropdown/VvDropdown.umd.js +1 -1
  72. package/dist/components/VvDropdown/VvDropdown.vue.d.ts +61 -35
  73. package/dist/components/VvDropdown/VvDropdownAction.vue.d.ts +72 -11
  74. package/dist/components/VvDropdown/VvDropdownItem.vue.d.ts +1 -1
  75. package/dist/components/VvDropdown/VvDropdownOptgroup.vue.d.ts +12 -4
  76. package/dist/components/VvDropdown/VvDropdownOption.vue.d.ts +26 -7
  77. package/dist/components/VvDropdown/index.d.ts +16 -11
  78. package/dist/components/VvDropdownAction/VvDropdownAction.es.js +80 -21
  79. package/dist/components/VvDropdownAction/VvDropdownAction.umd.js +1 -1
  80. package/dist/components/VvDropdownItem/VvDropdownItem.es.js +13 -7
  81. package/dist/components/VvDropdownOptgroup/VvDropdownOptgroup.es.js +56 -8
  82. package/dist/components/VvDropdownOptgroup/VvDropdownOptgroup.umd.js +1 -1
  83. package/dist/components/VvDropdownOption/VvDropdownOption.es.js +76 -17
  84. package/dist/components/VvDropdownOption/VvDropdownOption.umd.js +1 -1
  85. package/dist/components/VvIcon/VvIcon.es.js +23 -96
  86. package/dist/components/VvIcon/VvIcon.umd.js +1 -1
  87. package/dist/components/VvIcon/VvIcon.vue.d.ts +23 -66
  88. package/dist/components/VvIcon/index.d.ts +21 -48
  89. package/dist/components/VvInputFile/VvInputFile.es.js +1558 -0
  90. package/dist/components/VvInputFile/VvInputFile.umd.js +1 -0
  91. package/dist/components/VvInputFile/VvInputFile.vue.d.ts +190 -0
  92. package/dist/components/VvInputFile/index.d.ts +74 -0
  93. package/dist/components/VvInputText/VvInputClearAction.d.ts +2 -2
  94. package/dist/components/VvInputText/VvInputPasswordAction.d.ts +1 -1
  95. package/dist/components/VvInputText/VvInputStepAction.d.ts +1 -1
  96. package/dist/components/VvInputText/VvInputText.es.js +266 -242
  97. package/dist/components/VvInputText/VvInputText.umd.js +1 -1
  98. package/dist/components/VvInputText/VvInputText.vue.d.ts +153 -46
  99. package/dist/components/VvInputText/index.d.ts +69 -18
  100. package/dist/components/VvNav/VvNav.es.js +150 -73
  101. package/dist/components/VvNav/VvNav.umd.js +1 -1
  102. package/dist/components/VvNav/VvNav.vue.d.ts +41 -14
  103. package/dist/components/VvNav/VvNavItem.vue.d.ts +9 -0
  104. package/dist/components/VvNav/{VvNavSeparator.d.ts → VvNavSeparator.vue.d.ts} +1 -1
  105. package/dist/components/VvNav/index.d.ts +5 -13
  106. package/dist/components/VvNavItem/VvNavItem.es.js +435 -0
  107. package/dist/components/VvNavItem/VvNavItem.umd.js +1 -0
  108. package/dist/components/VvNavSeparator/VvNavSeparator.es.js +24 -0
  109. package/dist/components/VvNavSeparator/VvNavSeparator.umd.js +1 -0
  110. package/dist/components/VvProgress/VvProgress.es.js +65 -14
  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 +89 -21
  115. package/dist/components/VvRadio/VvRadio.umd.js +1 -1
  116. package/dist/components/VvRadio/VvRadio.vue.d.ts +102 -30
  117. package/dist/components/VvRadio/index.d.ts +44 -11
  118. package/dist/components/VvRadioGroup/VvRadioGroup.es.js +168 -66
  119. package/dist/components/VvRadioGroup/VvRadioGroup.umd.js +1 -1
  120. package/dist/components/VvRadioGroup/VvRadioGroup.vue.d.ts +100 -29
  121. package/dist/components/VvRadioGroup/index.d.ts +45 -12
  122. package/dist/components/VvSelect/VvSelect.es.js +244 -226
  123. package/dist/components/VvSelect/VvSelect.umd.js +1 -1
  124. package/dist/components/VvSelect/VvSelect.vue.d.ts +112 -39
  125. package/dist/components/VvSelect/index.d.ts +48 -14
  126. package/dist/components/VvTab/VvTab.es.js +251 -110
  127. package/dist/components/VvTab/VvTab.umd.js +1 -1
  128. package/dist/components/VvTab/VvTab.vue.d.ts +50 -13
  129. package/dist/components/VvTab/index.d.ts +13 -4
  130. package/dist/components/VvTextarea/VvTextarea.es.js +225 -212
  131. package/dist/components/VvTextarea/VvTextarea.umd.js +1 -1
  132. package/dist/components/VvTextarea/VvTextarea.vue.d.ts +155 -48
  133. package/dist/components/VvTextarea/index.d.ts +68 -19
  134. package/dist/components/VvTooltip/VvTooltip.es.js +72 -17
  135. package/dist/components/VvTooltip/VvTooltip.umd.js +1 -1
  136. package/dist/components/VvTooltip/VvTooltip.vue.d.ts +10 -3
  137. package/dist/components/VvTooltip/index.d.ts +4 -1
  138. package/dist/components/index.d.ts +10 -0
  139. package/dist/components/index.es.js +2635 -1301
  140. package/dist/components/index.umd.js +1 -1
  141. package/dist/composables/alert/useAlert.d.ts +37 -4
  142. package/dist/composables/dropdown/useProvideDropdown.d.ts +1 -1
  143. package/dist/composables/index.d.ts +1 -0
  144. package/dist/composables/index.es.js +88 -1
  145. package/dist/composables/index.umd.js +1 -1
  146. package/dist/composables/useBlurhash.d.ts +7 -0
  147. package/dist/composables/useComponentIcon.d.ts +9 -8
  148. package/dist/composables/useVolver.d.ts +1 -1
  149. package/dist/directives/index.d.ts +3 -5
  150. package/dist/directives/index.es.js +92 -31
  151. package/dist/directives/index.umd.js +1 -1
  152. package/dist/directives/v-tooltip.es.js +90 -26
  153. package/dist/directives/v-tooltip.umd.js +1 -1
  154. package/dist/icons.es.js +6 -6
  155. package/dist/icons.umd.js +1 -1
  156. package/dist/index.d.ts +3 -1
  157. package/dist/index.es.js +81 -16
  158. package/dist/index.umd.js +1 -1
  159. package/dist/props/index.d.ts +287 -73
  160. package/dist/resolvers/unplugin.d.ts +6 -1
  161. package/dist/resolvers/unplugin.es.js +78 -10
  162. package/dist/resolvers/unplugin.umd.js +1 -1
  163. package/dist/stories/AccordionGroup/AccordionGroup.stories.d.ts +72 -84
  164. package/dist/stories/AccordionGroup/AccordionGroupSlots.stories.d.ts +623 -461
  165. package/dist/stories/AlertGroup/AlertGroupWithComposable.stories.d.ts +1 -1
  166. package/dist/stories/Blurhash/BlurhashComposable.stories.d.ts +4 -0
  167. package/dist/stories/Combobox/Combobox.settings.d.ts +8 -0
  168. package/dist/stories/Icon/Icon.settings.d.ts +1 -0
  169. package/dist/stories/InputFile/InputFile.settings.d.ts +56 -0
  170. package/dist/stories/InputFile/InputFile.stories.d.ts +13 -0
  171. package/dist/stories/InputFile/InputFileModifiers.stories.d.ts +9 -0
  172. package/dist/stories/InputFile/InputFileSlots.stories.d.ts +6 -0
  173. package/dist/stories/Tab/Tab.settings.d.ts +4 -37
  174. package/dist/types/alert.d.ts +13 -0
  175. package/dist/types/blurhash.d.ts +12 -0
  176. package/dist/types/floating-ui.d.ts +6 -0
  177. package/dist/types/generic.d.ts +4 -0
  178. package/dist/types/group.d.ts +37 -0
  179. package/dist/types/index.d.ts +7 -0
  180. package/dist/types/input-file.d.ts +14 -0
  181. package/dist/types/nav.d.ts +18 -0
  182. package/dist/utils/ObjectUtilities.d.ts +0 -1
  183. package/dist/workers/blurhash.d.ts +1 -0
  184. package/package.json +91 -74
  185. package/src/Volver.ts +31 -20
  186. package/src/assets/icons/detailed.json +1 -1
  187. package/src/assets/icons/normal.json +1 -1
  188. package/src/assets/icons/simple.json +1 -1
  189. package/src/components/VvAccordion/VvAccordion.vue +2 -2
  190. package/src/components/VvAction/VvAction.vue +5 -2
  191. package/src/components/VvAlert/index.ts +1 -3
  192. package/src/components/VvAlertGroup/index.ts +2 -1
  193. package/src/components/VvBreadcrumb/VvBreadcrumb.vue +20 -19
  194. package/src/components/VvBreadcrumb/index.ts +2 -8
  195. package/src/components/VvButton/VvButton.vue +6 -6
  196. package/src/components/VvButton/index.ts +2 -4
  197. package/src/components/VvCombobox/VvCombobox.vue +24 -16
  198. package/src/components/VvCombobox/index.ts +4 -0
  199. package/src/components/VvIcon/VvIcon.vue +2 -2
  200. package/src/components/VvIcon/index.ts +22 -48
  201. package/src/components/VvInputFile/VvInputFile.vue +302 -0
  202. package/src/components/VvInputFile/index.ts +38 -0
  203. package/src/components/VvInputText/VvInputText.vue +13 -14
  204. package/src/components/VvNav/VvNav.vue +30 -50
  205. package/src/components/VvNav/VvNavItem.vue +18 -0
  206. package/src/components/VvNav/VvNavSeparator.vue +11 -0
  207. package/src/components/VvNav/index.ts +2 -15
  208. package/src/components/VvSelect/VvSelect.vue +5 -8
  209. package/src/components/VvTab/VvTab.vue +63 -35
  210. package/src/components/VvTab/index.ts +10 -4
  211. package/src/components/VvTextarea/VvTextarea.vue +6 -9
  212. package/src/components/index.ts +10 -0
  213. package/src/composables/index.ts +1 -0
  214. package/src/composables/useBlurhash.ts +76 -0
  215. package/src/composables/useComponentIcon.ts +15 -14
  216. package/src/composables/useUniqueId.ts +2 -2
  217. package/src/directives/index.ts +3 -6
  218. package/src/directives/v-tooltip.ts +19 -10
  219. package/src/index.ts +3 -1
  220. package/src/props/index.ts +115 -27
  221. package/src/resolvers/unplugin.ts +24 -14
  222. package/src/stories/AlertGroup/AlertGroupWithComposable.stories.ts +2 -2
  223. package/src/stories/Blurhash/BlurhashComposable.stories.ts +195 -0
  224. package/src/stories/Combobox/Combobox.settings.ts +8 -0
  225. package/src/stories/Icon/Icon.settings.ts +3 -3
  226. package/src/stories/InputFile/InputFile.settings.ts +36 -0
  227. package/src/stories/InputFile/InputFile.stories.ts +98 -0
  228. package/src/stories/InputFile/InputFileModifiers.stories.ts +51 -0
  229. package/src/stories/InputFile/InputFileSlots.stories.ts +25 -0
  230. package/src/stories/Nav/Nav.settings.ts +3 -4
  231. package/src/stories/Nav/Nav.test.ts +4 -15
  232. package/src/stories/Tab/Tab.settings.ts +9 -9
  233. package/src/stories/Tab/Tab.stories.ts +2 -2
  234. package/src/stories/Tab/Tab.test.ts +6 -14
  235. package/src/stories/argTypes.ts +1 -1
  236. package/src/types/blurhash.ts +21 -0
  237. package/src/types/generic.ts +6 -0
  238. package/src/types/index.ts +7 -0
  239. package/src/types/input-file.ts +16 -0
  240. package/src/types/nav.ts +20 -0
  241. package/src/utils/ObjectUtilities.ts +0 -11
  242. package/src/workers/blurhash.ts +9 -0
  243. package/dist/components/VvNav/VvNavItemTitle.vue.d.ts +0 -6
  244. package/dist/components/VvNavItemTitle/VvNavItemTitle.es.js +0 -19
  245. package/dist/components/VvNavItemTitle/VvNavItemTitle.umd.js +0 -1
  246. package/src/components/VvNav/VvNavItemTitle.vue +0 -11
  247. package/src/components/VvNav/VvNavSeparator.ts +0 -8
  248. package/src/types/generic.d.ts +0 -6
  249. /package/src/types/{alert.d.ts → alert.ts} +0 -0
  250. /package/src/types/{floating-ui.d.ts → floating-ui.ts} +0 -0
  251. /package/src/types/{group.d.ts → group.ts} +0 -0
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2022-2023 24/Consulting
3
+ Copyright (c) 2022-2023 8 Wave
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -16,7 +16,7 @@ maintained with ❤️ by
16
16
 
17
17
  <br>
18
18
 
19
- [![24/Consulting](.storybook/static/24consulting.svg)](https://24consulting.it)
19
+ [![8 Wave](.storybook/static/8wave.svg)](https://8wave.it)
20
20
 
21
21
  <br>
22
22
 
@@ -219,7 +219,100 @@ function showSuccess() {
219
219
  </div>
220
220
  ```
221
221
 
222
- ###
222
+ ### useBlurhash
223
+
224
+ Used to create blurred preview image ([blurhash](https://blurha.sh/))
225
+
226
+ ##### Example
227
+
228
+ ```typescript
229
+ import { useBlurhash } from '@volverjs/ui-vue/composables'
230
+
231
+ const { encode, decode, loadImage } = useBlurhash()
232
+
233
+ const isLoading = ref(false)
234
+ const file = ref({})
235
+ const canvas = ref()
236
+ const isImgLoaded = ref(false)
237
+ const blurhash = ref('')
238
+ const imageUrl = ref('')
239
+ const image = ref()
240
+
241
+ watch(
242
+ file,
243
+ async (newValue) => {
244
+ if (newValue?.size) {
245
+ this.imageUrl = URL.createObjectURL(newValue)
246
+ this.image = await this.loadImage(this.imageUrl)
247
+ this.blurhash = await this.encode(newValue)
248
+ } else {
249
+ this.image = null
250
+ this.imageUrl = ''
251
+ this.blurhash = ''
252
+ }
253
+ },
254
+ { immediate: true }
255
+ )
256
+
257
+ watch(blurhash, async (newValue) => {
258
+ if (this.image) {
259
+ const blurhashDecoded = await this.decode(
260
+ newValue,
261
+ this.image.width,
262
+ this.image.height
263
+ )
264
+
265
+ if (this.canvas) {
266
+ this.canvas.width = this.image.width
267
+ this.canvas.height = this.image.height
268
+ const ctx = this.canvas.getContext('2d')
269
+ const imageData = ctx.createImageData(
270
+ this.canvas.width,
271
+ this.canvas.height
272
+ )
273
+ imageData.data.set(blurhashDecoded)
274
+ ctx.putImageData(imageData, 0, 0)
275
+ }
276
+ }
277
+ })
278
+ ```
279
+
280
+ ```html
281
+ <div
282
+ class="w-full grid gap-md grid-cols-3 h-150"
283
+ :class="{ 'vv-skeleton': isLoading }"
284
+ >
285
+ <div class="w-150 h-150 col-span-1">
286
+ <div class="text-20 font-semibold mb-md">Upload image</div>
287
+ <vv-input-file
288
+ v-model="file"
289
+ name="input-file"
290
+ modifiers="drop-area square hidden"
291
+ accept=".gif,.jpg,.jpeg,.png,image/gif,image/jpeg,image/png"
292
+ />
293
+ </div>
294
+ <div v-show="blurhash" class="h-150 col-span-2">
295
+ <picture class="flex gap-md justify-center">
296
+ <div>
297
+ <div class="text-20 font-semibold mb-md">Blurhash</div>
298
+ <canvas ref="canvas" class="w-150 h-150 block object-cover" />
299
+ </div>
300
+ <div>
301
+ <div class="text-20 font-semibold mb-md">Image</div>
302
+ <img
303
+ v-if="image"
304
+ class="w-150 h-150 block object-cover"
305
+ :class="{ 'vv-skeleton__item': isLoading }"
306
+ :src="imageUrl"
307
+ alt="image"
308
+ :width="image.width"
309
+ :height="image.height"
310
+ />
311
+ </div>
312
+ </picture>
313
+ </div>
314
+ </div>
315
+ ```
223
316
 
224
317
  ## Roadmap
225
318
 
@@ -232,9 +325,11 @@ The following features are planned for the next releases:
232
325
  - [x] (v0.0.6) `VvAvatar` and `VvAvatarGroup` component;
233
326
  - [x] (v0.0.6) Menus, navigation and tabs with `VvNav` and `VvTab`;
234
327
  - [x] (v0.0.6) Alerts, notifications and toasts with `VvAlert` and `VvAlertGroup` component;
328
+ - [x] (v0.0.10) Multiple uploads with `VvInputFile`;
329
+ - [x] (v0.0.10) `useBlurhash` composable;
330
+ - [ ] Image crop and file previews;
235
331
  - [ ] Loaders with `VvLoader` and `VvSkeleton`;
236
332
  - [ ] `VvTable` component with sort, filters, pagination and cell editing;
237
- - [ ] Multiple uploads, image crop and file previews with `VvInputFile`;
238
333
  - [ ] Carousel and galleries with `VvCarousel` component;
239
334
  - [ ] Calendar and date picker with `VvCalendar` component.
240
335
 
package/auto-imports.d.ts CHANGED
@@ -42,6 +42,7 @@ declare global {
42
42
  const h: typeof import('vue')['h']
43
43
  const ignorableWatch: typeof import('@vueuse/core')['ignorableWatch']
44
44
  const inject: typeof import('vue')['inject']
45
+ const injectLocal: typeof import('@vueuse/core')['injectLocal']
45
46
  const isDefined: typeof import('@vueuse/core')['isDefined']
46
47
  const isEmpty: typeof import('./src/utils/ObjectUtilities')['isEmpty']
47
48
  const isFunction: typeof import('./src/utils/ObjectUtilities')['isFunction']
@@ -50,7 +51,6 @@ declare global {
50
51
  const isReadonly: typeof import('vue')['isReadonly']
51
52
  const isRef: typeof import('vue')['isRef']
52
53
  const isString: typeof import('./src/utils/ObjectUtilities')['isString']
53
- const kebabCase: typeof import('./src/utils/ObjectUtilities')['kebabCase']
54
54
  const makeDestructurable: typeof import('@vueuse/core')['makeDestructurable']
55
55
  const markRaw: typeof import('vue')['markRaw']
56
56
  const nextTick: typeof import('vue')['nextTick']
@@ -75,6 +75,7 @@ declare global {
75
75
  const pickBy: typeof import('./src/utils/ObjectUtilities')['pickBy']
76
76
  const propsToObject: typeof import('./src/utils/ObjectUtilities')['propsToObject']
77
77
  const provide: typeof import('vue')['provide']
78
+ const provideLocal: typeof import('@vueuse/core')['provideLocal']
78
79
  const reactify: typeof import('@vueuse/core')['reactify']
79
80
  const reactifyObject: typeof import('@vueuse/core')['reactifyObject']
80
81
  const reactive: typeof import('vue')['reactive']
@@ -136,11 +137,13 @@ declare global {
136
137
  const useBase64: typeof import('@vueuse/core')['useBase64']
137
138
  const useBattery: typeof import('@vueuse/core')['useBattery']
138
139
  const useBluetooth: typeof import('@vueuse/core')['useBluetooth']
140
+ const useBlurhash: typeof import('./src/composables/useBlurhash')['useBlurhash']
139
141
  const useBreakpoints: typeof import('@vueuse/core')['useBreakpoints']
140
142
  const useBroadcastChannel: typeof import('@vueuse/core')['useBroadcastChannel']
141
143
  const useBrowserLocation: typeof import('@vueuse/core')['useBrowserLocation']
142
144
  const useCached: typeof import('@vueuse/core')['useCached']
143
145
  const useClipboard: typeof import('@vueuse/core')['useClipboard']
146
+ const useClipboardItems: typeof import('@vueuse/core')['useClipboardItems']
144
147
  const useCloned: typeof import('@vueuse/core')['useCloned']
145
148
  const useColorMode: typeof import('@vueuse/core')['useColorMode']
146
149
  const useComponentFocus: typeof import('./src/composables/useComponentFocus')['useComponentFocus']
@@ -312,5 +315,6 @@ declare global {
312
315
  // for type re-export
313
316
  declare global {
314
317
  // @ts-ignore
315
- export type { Component, ComponentPublicInstance, ComputedRef, InjectionKey, PropType, Ref, VNode, WritableComputedRef } from 'vue'
318
+ export type { Component, ComponentPublicInstance, ComputedRef, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, VNode, WritableComputedRef } from 'vue'
319
+ import('vue')
316
320
  }
package/bin/icons.cjs CHANGED
@@ -1 +1 @@
1
- !function(e,o){"object"==typeof exports&&"undefined"!=typeof module?o(exports,require("fs"),require("yargs"),require("yargs/helpers"),require("@iconify/tools"),require("path"),require("@iconify/utils"),require("chokidar")):"function"==typeof define&&define.amd?define(["exports","fs","yargs","yargs/helpers","@iconify/tools","path","@iconify/utils","chokidar"],o):o((e="undefined"!=typeof globalThis?globalThis:e||self)["generate-icons"]={},e.fileSystem,e.yargs,e.helpers,e.tools,e.path,e.utils,e.chokidar)}(this,(function(e,o,r,i,t,n,s,c){"use strict";function a(e,r="iconify",i={}){return o.readdirSync(e).forEach((function(t){o.statSync(e+"/"+t).isDirectory()?i=a(e+"/"+t,t,i):t.includes(".svg")&&(i[r]?i[r].push(n.join(e,"/",t)):i[r]=[n.join(e,"/",t)])})),i}function l(e,r,i){const c=a(e,i);Object.keys(c).length?Object.keys(c).forEach((e=>{!async function(e,r,i){const c=t.blankIconSet(e);for(const n of r){const e=await o.promises.readFile(n,{encoding:"utf-8"}),r=new t.SVG(e);await t.cleanupSVG(r),await t.parseColors(r,{defaultColor:"currentColor",callback:(e,o,r)=>!r||t.isEmptyColor(r)?o:"currentColor"}),await t.runSVGO(r);const i=n.replace(/^.*[\\/]/,"").split(".")[0].replace(/ /g,"-").replace(/[^a-z0-9-]/gi,"");c.fromSVG(i,r)}const a=c.export();try{s.validateIconSet(a)}catch(f){throw new Error(`Icon set is not valid: ${null==f?void 0:f.message}`)}const l=`${i}/${a.prefix}.json`;o.mkdirSync(n.dirname(l),{recursive:!0}),o.writeFileSync(l,JSON.stringify(a))}(e,c[e],r),console.info(`Icons generated in: ${r}/${e}.json\n`)})):console.error(`There are no files in ${e}`)}const f=r(i.hideBin(process.argv)).argv,d=f.srcPath,u=f.destPath||d;d&&u||(console.error("Please specify the srcPath and destPath with --srcPath and --destPath"),process.exit()),f.watch?c.watch(d).on("add",(()=>{l(d,u,f.prefix)})).on("change",(()=>{l(d,u,f.prefix)})):l(d,u,f.prefix),e.createIconifyJsonFiles=l,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}));
1
+ !function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("fs"),require("yargs"),require("yargs/helpers"),require("@iconify/tools"),require("path"),require("@iconify/utils"),require("chokidar")):"function"==typeof define&&define.amd?define(["exports","fs","yargs","yargs/helpers","@iconify/tools","path","@iconify/utils","chokidar"],r):r((e="undefined"!=typeof globalThis?globalThis:e||self)["generate-icons"]={},e.fileSystem,e.yargs,e.helpers,e.tools,e.path,e.utils,e.chokidar)}(this,(function(e,r,o,i,t,n,s,c){"use strict";function a(e,o="iconify",i={}){return r.readdirSync(e).forEach((function(t){r.statSync(e+"/"+t).isDirectory()?i=a(e+"/"+t,t,i):t.includes(".svg")&&(i[o]?i[o].push(n.join(e,"/",t)):i[o]=[n.join(e,"/",t)])})),i}function l(e,o,i){const c=a(e,i);Object.keys(c).length?Object.keys(c).forEach((e=>{!async function(e,o,i){const c=t.blankIconSet(e);for(const n of o)try{const e=await r.promises.readFile(n,{encoding:"utf-8"}),o=new t.SVG(e);await t.cleanupSVG(o),await t.parseColors(o,{defaultColor:"currentColor",callback:(e,r,o)=>!o||t.isEmptyColor(o)?r:"currentColor"}),await t.runSVGO(o);const i=n.replace(/^.*[\\/]/,"").split(".")[0].replace(/ /g,"-").replace(/[^a-z0-9-]/gi,"");c.fromSVG(i,o)}catch(f){console.error(f)}const a=c.export();try{s.validateIconSet(a)}catch(f){throw new Error(`Icon set is not valid: ${null==f?void 0:f.message}`)}const l=`${i}/${a.prefix}.json`;r.mkdirSync(n.dirname(l),{recursive:!0}),r.writeFileSync(l,JSON.stringify(a))}(e,c[e],o),console.info(`Icons generated in: ${o}/${e}.json\n`)})):console.error(`There are no files in ${e}`)}const f=o(i.hideBin(process.argv)).argv,d=f.srcPath,u=f.destPath||d;d&&u||(console.error("Please specify the srcPath and destPath with --srcPath and --destPath"),process.exit()),f.watch?(l(d,u,f.prefix),c.watch(d,{ignoreInitial:!0}).on("add",(()=>{l(d,u,f.prefix)})).on("change",(()=>{l(d,u,f.prefix)}))):l(d,u,f.prefix),e.createIconifyJsonFiles=l,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}));
package/bin/icons.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import fileSystem from "fs";
2
2
  import yargs from "yargs";
3
3
  import { hideBin } from "yargs/helpers";
4
- import { blankIconSet, SVG, cleanupSVG, parseColors, isEmptyColor, runSVGO } from "@iconify/tools";
4
+ import { blankIconSet, SVG, cleanupSVG, isEmptyColor, parseColors, runSVGO } from "@iconify/tools";
5
5
  import path from "path";
6
6
  import { validateIconSet } from "@iconify/utils";
7
7
  import chokidar from "chokidar";
@@ -21,20 +21,24 @@ function getAllFiles(dirPath, prefix = "iconify", objectFiles = {}) {
21
21
  async function generateIcons(prefix, files, destPath2) {
22
22
  const iconSet = blankIconSet(prefix);
23
23
  for (const file of files) {
24
- const content = await fileSystem.promises.readFile(file, {
25
- encoding: "utf-8"
26
- });
27
- const svg = new SVG(content);
28
- await cleanupSVG(svg);
29
- await parseColors(svg, {
30
- defaultColor: "currentColor",
31
- callback: (attr, colorStr, color) => {
32
- return !color || isEmptyColor(color) ? colorStr : "currentColor";
33
- }
34
- });
35
- await runSVGO(svg);
36
- const fileName = file.replace(/^.*[\\/]/, "").split(".")[0].replace(/ /g, "-").replace(/[^a-z0-9-]/gi, "");
37
- iconSet.fromSVG(fileName, svg);
24
+ try {
25
+ const content = await fileSystem.promises.readFile(file, {
26
+ encoding: "utf-8"
27
+ });
28
+ const svg = new SVG(content);
29
+ await cleanupSVG(svg);
30
+ await parseColors(svg, {
31
+ defaultColor: "currentColor",
32
+ callback: (attr, colorStr, color) => {
33
+ return !color || isEmptyColor(color) ? colorStr : "currentColor";
34
+ }
35
+ });
36
+ await runSVGO(svg);
37
+ const fileName = file.replace(/^.*[\\/]/, "").split(".")[0].replace(/ /g, "-").replace(/[^a-z0-9-]/gi, "");
38
+ iconSet.fromSVG(fileName, svg);
39
+ } catch (error) {
40
+ console.error(error);
41
+ }
38
42
  }
39
43
  const iconifyJson = iconSet.export();
40
44
  try {
@@ -70,7 +74,10 @@ if (!srcPath || !destPath) {
70
74
  process.exit();
71
75
  }
72
76
  if (argv.watch) {
73
- chokidar.watch(srcPath).on("add", () => {
77
+ createIconifyJsonFiles(srcPath, destPath, argv.prefix);
78
+ chokidar.watch(srcPath, {
79
+ ignoreInitial: true
80
+ }).on("add", () => {
74
81
  createIconifyJsonFiles(srcPath, destPath, argv.prefix);
75
82
  }).on("change", () => {
76
83
  createIconifyJsonFiles(srcPath, destPath, argv.prefix);
package/dist/Volver.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { type IconifyIcon, type IconifyJSON, type PartialIconifyAPIConfig } from '@iconify/vue';
2
1
  import type { Component, Directive, Plugin, Ref } from 'vue';
2
+ import { type IconifyIcon, type IconifyJSON, type PartialIconifyAPIConfig } from '@iconify/vue';
3
3
  export declare function useDefaultProps(component: Component, defaults?: Record<string, unknown>, name?: string): Component;
4
4
  export type DefaultOptions = Record<string, Record<string, unknown>>;
5
5
  export type VolverOptions = {
@@ -1,5 +1,5 @@
1
1
  import { unref, inject, computed, toRef, toRefs, defineComponent, useAttrs, ref, openBlock, createElementBlock, normalizeClass, createElementVNode, withModifiers, renderSlot, normalizeProps, guardReactiveProps, createTextVNode, toDisplayString } from "vue";
2
- import { nanoid } from "nanoid";
2
+ import { uid } from "uid";
3
3
  import { useToggle } from "@vueuse/core";
4
4
  var Strategy = /* @__PURE__ */ ((Strategy2) => {
5
5
  Strategy2["absolute"] = "absolute";
@@ -35,6 +35,13 @@ var ButtonType = /* @__PURE__ */ ((ButtonType2) => {
35
35
  ButtonType2["reset"] = "reset";
36
36
  return ButtonType2;
37
37
  })(ButtonType || {});
38
+ var ActionTag = /* @__PURE__ */ ((ActionTag2) => {
39
+ ActionTag2["nuxtLink"] = "nuxt-link";
40
+ ActionTag2["routerLink"] = "router-link";
41
+ ActionTag2["a"] = "a";
42
+ ActionTag2["button"] = "button";
43
+ return ActionTag2;
44
+ })(ActionTag || {});
38
45
  var AnchorTarget = /* @__PURE__ */ ((AnchorTarget2) => {
39
46
  AnchorTarget2["_blank"] = "_blank";
40
47
  AnchorTarget2["_self"] = "_self";
@@ -60,6 +67,7 @@ const LinkProps = {
60
67
  */
61
68
  target: {
62
69
  type: String,
70
+ default: void 0,
63
71
  validator: (value) => Object.values(AnchorTarget).includes(value)
64
72
  },
65
73
  /**
@@ -74,38 +82,65 @@ const DisabledProps = {
74
82
  /**
75
83
  * Whether the form control is disabled
76
84
  */
77
- disabled: Boolean
85
+ disabled: {
86
+ type: Boolean,
87
+ default: false
88
+ }
78
89
  };
79
90
  const ActiveProps = {
80
91
  /**
81
92
  * Whether the item is active
82
93
  */
83
- active: Boolean
94
+ active: {
95
+ type: Boolean,
96
+ default: false
97
+ }
98
+ };
99
+ const CurrentProps = {
100
+ /**
101
+ * Whether the item is current
102
+ */
103
+ current: {
104
+ type: Boolean,
105
+ default: false
106
+ }
84
107
  };
85
108
  const PressedProps = {
86
109
  /**
87
110
  * Whether the item is pressed
88
111
  */
89
- pressed: Boolean
112
+ pressed: {
113
+ type: Boolean,
114
+ default: false
115
+ }
90
116
  };
91
117
  const LabelProps = {
92
118
  /**
93
119
  * The item label
94
120
  */
95
- label: [String, Number]
121
+ label: {
122
+ type: [String, Number],
123
+ default: void 0
124
+ }
96
125
  };
97
126
  const ModifiersProps = {
98
127
  /**
99
128
  * Component BEM modifiers
100
129
  */
101
- modifiers: [String, Array]
130
+ modifiers: {
131
+ type: [String, Array],
132
+ default: void 0
133
+ }
102
134
  };
103
135
  ({
104
136
  /**
105
137
  * VvIcon name or props
106
138
  * @see VVIcon
107
139
  */
108
- icon: { type: [String, Object] },
140
+ icon: {
141
+ type: [String, Object],
142
+ default: void 0
143
+ },
109
144
  /**
110
145
  * VvIcon position
111
146
  */
@@ -136,7 +171,8 @@ const ModifiersProps = {
136
171
  * Dropdown show / hide transition name
137
172
  */
138
173
  transitionName: {
139
- type: String
174
+ type: String,
175
+ default: void 0
140
176
  },
141
177
  /**
142
178
  * Offset of the dropdown from the trigger
@@ -204,7 +240,8 @@ const ModifiersProps = {
204
240
  * Set dropdown width to the same as the trigger
205
241
  */
206
242
  triggerWidth: {
207
- type: Boolean
243
+ type: Boolean,
244
+ default: false
208
245
  }
209
246
  });
210
247
  ({
@@ -212,6 +249,7 @@ const ModifiersProps = {
212
249
  ...LabelProps,
213
250
  ...PressedProps,
214
251
  ...ActiveProps,
252
+ ...CurrentProps,
215
253
  ...LinkProps,
216
254
  /**
217
255
  * Button type
@@ -227,6 +265,13 @@ const ModifiersProps = {
227
265
  ariaLabel: {
228
266
  type: String,
229
267
  default: void 0
268
+ },
269
+ /**
270
+ * Default tag for the action
271
+ */
272
+ defaultTag: {
273
+ type: String,
274
+ default: ActionTag.button
230
275
  }
231
276
  });
232
277
  function isEmpty(value) {
@@ -374,11 +419,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
374
419
  ...__default__,
375
420
  props: VvAccordionProps,
376
421
  emits: VvAccordionEvents,
377
- setup(__props, { emit }) {
422
+ setup(__props, { emit: __emit }) {
378
423
  const props = __props;
379
424
  const attrs = useAttrs();
425
+ const emit = __emit;
380
426
  const accordionName = computed(
381
- () => props.name || (attrs == null ? void 0 : attrs.id) || nanoid()
427
+ () => props.name || (attrs == null ? void 0 : attrs.id) || uid()
382
428
  );
383
429
  const {
384
430
  modifiers,
@@ -451,7 +497,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
451
497
  onClick: _cache[0] || (_cache[0] = withModifiers(($event) => unref(onClick)(), ["prevent"]))
452
498
  }, [
453
499
  renderSlot(_ctx.$slots, "summary", normalizeProps(guardReactiveProps({ open: unref(isOpen) })), () => [
454
- createTextVNode(toDisplayString(unref(title)), 1)
500
+ createTextVNode(
501
+ toDisplayString(unref(title)),
502
+ 1
503
+ /* TEXT */
504
+ )
455
505
  ])
456
506
  ], 8, _hoisted_2),
457
507
  createElementVNode("div", {
@@ -459,7 +509,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
459
509
  class: "vv-accordion__content"
460
510
  }, [
461
511
  renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps({ open: unref(isOpen) })), () => [
462
- createTextVNode(toDisplayString(unref(content)), 1)
512
+ createTextVNode(
513
+ toDisplayString(unref(content)),
514
+ 1
515
+ /* TEXT */
516
+ )
463
517
  ])
464
518
  ], 8, _hoisted_3)
465
519
  ], 10, _hoisted_1);
@@ -1 +1 @@
1
- !function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o(require("vue"),require("nanoid"),require("@vueuse/core")):"function"==typeof define&&define.amd?define(["vue","nanoid","@vueuse/core"],o):(e="undefined"!=typeof globalThis?globalThis:e||self).VvAccordion=o(e.vue,e.nanoid,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,{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.nanoid())),{modifiers:f,title:p,content:m,disabled:y,collapse:b,modelValue:g,isInGroup:A,not:B}=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 A.value?e=b.value&&Array.isArray(g.value)?g.value.includes(d.value):g.value===d.value:void 0===g.value&&(e=h.value),B.value?!e:e},set:e=>{if(B.value&&(e=!e),A.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,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||{}),u=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(u||{}),a=(e=>(e.nuxtLink="nuxt-link",e.routerLink="router-link",e.a="a",e.button="button",e))(a||{});const l=Symbol.for("accordionGroup"),i=(Boolean,Boolean,Boolean,Boolean,{modifiers:{type:[String,Array],default:void 0}});function d(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 u=e.toRef(r,o);return e.computed({get:()=>u.value,set(e){n&&n(`update:${o}`,e)}})}}}n.before,r.bottom,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,u.button,a.button;const s={...i,name:String,title:String,content:String,modelValue:{type:Boolean,default:void 0},disabled:Boolean,not:Boolean};const c=["id","open"],v=["aria-controls","aria-expanded"],f=["aria-hidden"];return e.defineComponent({name:"VvAccordion",props:s,emits:["update:modelValue"],setup(r,{emit:n}){const u=r,a=e.useAttrs(),i=n,s=e.computed((()=>u.name||(null==a?void 0:a.id)||o.uid())),{modifiers:p,title:m,content:y,disabled:b,collapse:g,modelValue:B,isInGroup:A,not:h}=function(o,t){const{group:r,isInGroup:n,getGroupOrLocalRef:u}=d(l),{title:a,content:i}=e.toRefs(o),s=u("modelValue",o,t),c=u("not",o),v=u("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:a,content:i}}(u,i),V=e.ref(!1),S=e.computed({get:()=>{let e=B.value;return A.value?e=g.value&&Array.isArray(B.value)?B.value.includes(s.value):B.value===s.value:void 0===B.value&&(e=V.value),h.value?!e:e},set:e=>{if(h.value&&(e=!e),A.value)return g.value&&Array.isArray(B.value)?e?void B.value.push(s.value):void(B.value=B.value.filter((e=>e!==s.value))):void(B.value=e?s.value:null);void 0!==B.value||"boolean"!=typeof e?B.value=e:V.value=e}}),k=function(o,t,r){return e.computed((()=>{const n={[o]:!0},u="string"==typeof(null==t?void 0:t.value)?t.value.split(" "):null==t?void 0:t.value;return u&&Array.isArray(u)&&u.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",p,e.computed((()=>({disabled:b.value})))),x=t.useToggle(S);return(o,t)=>(e.openBlock(),e.createElementBlock("details",{id:e.unref(s),class:e.normalizeClass(e.unref(k)),open:e.unref(S)},[e.createElementVNode("summary",{"aria-controls":e.unref(s),"aria-expanded":e.unref(S),class:"vv-accordion__summary",onClick:t[0]||(t[0]=e.withModifiers((o=>e.unref(x)()),["prevent"]))},[e.renderSlot(o.$slots,"summary",e.normalizeProps(e.guardReactiveProps({open:e.unref(S)})),(()=>[e.createTextVNode(e.toDisplayString(e.unref(m)),1)]))],8,v),e.createElementVNode("div",{"aria-hidden":!e.unref(S),class:"vv-accordion__content"},[e.renderSlot(o.$slots,"default",e.normalizeProps(e.guardReactiveProps({open:e.unref(S)})),(()=>[e.createTextVNode(e.toDisplayString(e.unref(y)),1)]))],8,f)],10,c))}})}));
@@ -8,8 +8,13 @@ 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
+ }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
16
+ [x: string]: (...args: any[]) => void;
17
+ }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<globalThis.ExtractPropTypes<{
13
18
  name: StringConstructor;
14
19
  title: StringConstructor;
15
20
  content: StringConstructor;
@@ -19,12 +24,14 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
19
24
  };
20
25
  disabled: BooleanConstructor;
21
26
  not: BooleanConstructor;
22
- modifiers: globalThis.PropType<string | string[]>;
23
- }>> & {
24
- [x: `on${Capitalize<string>}`]: ((...args: any[]) => any) | undefined;
25
- }, {
27
+ modifiers: {
28
+ type: globalThis.PropType<string | string[]>;
29
+ default: undefined;
30
+ };
31
+ }>>, {
26
32
  disabled: boolean;
27
33
  modelValue: boolean;
34
+ modifiers: string | string[];
28
35
  not: boolean;
29
36
  }, {}>, {
30
37
  summary?(_: {
@@ -28,7 +28,10 @@ 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>;