@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
@@ -1,7 +1,7 @@
1
- import { provide, computed, unref, inject, defineComponent, ref, toRefs, openBlock, createBlock, mergeProps, createCommentVNode, watch, withModifiers, createElementBlock, normalizeProps, guardReactiveProps, renderSlot, createTextVNode, toDisplayString, createElementVNode, createVNode, TransitionGroup, toHandlers, withCtx, Fragment, renderList } from "vue";
1
+ import { provide, computed, unref, inject, defineComponent, mergeDefaults, ref, toRefs, openBlock, createBlock, mergeProps, createCommentVNode, watch, withModifiers, createElementBlock, normalizeProps, guardReactiveProps, renderSlot, createTextVNode, toDisplayString, createElementVNode, createVNode, TransitionGroup, toHandlers, withCtx, Fragment, renderList } from "vue";
2
2
  import mitt from "mitt";
3
3
  import { iconExists, Icon, addIcon } from "@iconify/vue";
4
- import { nanoid } from "nanoid";
4
+ import { uid } from "uid";
5
5
  var Strategy = /* @__PURE__ */ ((Strategy2) => {
6
6
  Strategy2["absolute"] = "absolute";
7
7
  Strategy2["fixed"] = "fixed";
@@ -36,6 +36,13 @@ var ButtonType = /* @__PURE__ */ ((ButtonType2) => {
36
36
  ButtonType2["reset"] = "reset";
37
37
  return ButtonType2;
38
38
  })(ButtonType || {});
39
+ var ActionTag = /* @__PURE__ */ ((ActionTag2) => {
40
+ ActionTag2["nuxtLink"] = "nuxt-link";
41
+ ActionTag2["routerLink"] = "router-link";
42
+ ActionTag2["a"] = "a";
43
+ ActionTag2["button"] = "button";
44
+ return ActionTag2;
45
+ })(ActionTag || {});
39
46
  var AnchorTarget = /* @__PURE__ */ ((AnchorTarget2) => {
40
47
  AnchorTarget2["_blank"] = "_blank";
41
48
  AnchorTarget2["_self"] = "_self";
@@ -64,6 +71,7 @@ const LinkProps = {
64
71
  */
65
72
  target: {
66
73
  type: String,
74
+ default: void 0,
67
75
  validator: (value) => Object.values(AnchorTarget).includes(value)
68
76
  },
69
77
  /**
@@ -78,38 +86,65 @@ const DisabledProps = {
78
86
  /**
79
87
  * Whether the form control is disabled
80
88
  */
81
- disabled: Boolean
89
+ disabled: {
90
+ type: Boolean,
91
+ default: false
92
+ }
82
93
  };
83
94
  const ActiveProps = {
84
95
  /**
85
96
  * Whether the item is active
86
97
  */
87
- active: Boolean
98
+ active: {
99
+ type: Boolean,
100
+ default: false
101
+ }
102
+ };
103
+ const CurrentProps = {
104
+ /**
105
+ * Whether the item is current
106
+ */
107
+ current: {
108
+ type: Boolean,
109
+ default: false
110
+ }
88
111
  };
89
112
  const PressedProps = {
90
113
  /**
91
114
  * Whether the item is pressed
92
115
  */
93
- pressed: Boolean
116
+ pressed: {
117
+ type: Boolean,
118
+ default: false
119
+ }
94
120
  };
95
121
  const LabelProps = {
96
122
  /**
97
123
  * The item label
98
124
  */
99
- label: [String, Number]
125
+ label: {
126
+ type: [String, Number],
127
+ default: void 0
128
+ }
100
129
  };
101
130
  const ModifiersProps = {
102
131
  /**
103
132
  * Component BEM modifiers
104
133
  */
105
- modifiers: [String, Array]
134
+ modifiers: {
135
+ type: [String, Array],
136
+ default: void 0
137
+ }
106
138
  };
107
139
  const IconProps = {
108
140
  /**
109
141
  * VvIcon name or props
110
142
  * @see VVIcon
111
143
  */
112
- icon: { type: [String, Object] },
144
+ icon: {
145
+ type: [String, Object],
146
+ default: void 0
147
+ },
113
148
  /**
114
149
  * VvIcon position
115
150
  */
@@ -147,7 +182,8 @@ const IdProps = {
147
182
  * Dropdown show / hide transition name
148
183
  */
149
184
  transitionName: {
150
- type: String
185
+ type: String,
186
+ default: void 0
151
187
  },
152
188
  /**
153
189
  * Offset of the dropdown from the trigger
@@ -215,7 +251,8 @@ const IdProps = {
215
251
  * Set dropdown width to the same as the trigger
216
252
  */
217
253
  triggerWidth: {
218
- type: Boolean
254
+ type: Boolean,
255
+ default: false
219
256
  }
220
257
  });
221
258
  ({
@@ -223,6 +260,7 @@ const IdProps = {
223
260
  ...LabelProps,
224
261
  ...PressedProps,
225
262
  ...ActiveProps,
263
+ ...CurrentProps,
226
264
  ...LinkProps,
227
265
  /**
228
266
  * Button type
@@ -238,6 +276,13 @@ const IdProps = {
238
276
  ariaLabel: {
239
277
  type: String,
240
278
  default: void 0
279
+ },
280
+ /**
281
+ * Default tag for the action
282
+ */
283
+ defaultTag: {
284
+ type: String,
285
+ default: ActionTag.button
241
286
  }
242
287
  });
243
288
  function useProvideAlertGroup({
@@ -375,99 +420,9 @@ const useVvAlertGroup = (props, emit) => {
375
420
  }))
376
421
  };
377
422
  };
378
- const VvIconProps = {
379
- /**
380
- * Color
381
- */
382
- color: String,
383
- /**
384
- * Width
385
- */
386
- width: {
387
- type: [String, Number]
388
- },
389
- /**
390
- * Height
391
- */
392
- height: {
393
- type: [String, Number]
394
- },
395
- /**
396
- * Icon name
397
- * Can be the full composition of iconify name "@{provider}:{prefix}:{name}" or "{prefix}:{name}" or "{name}"
398
- * https://docs.iconify.design/api/providers.html#provider-in-icon-name
399
- */
400
- name: {
401
- type: String,
402
- required: true
403
- },
404
- /**
405
- * By default 'vv'
406
- * If custom collection is not added with "addCollection" DS class method, this prop could not be used
407
- * Icon provider: https://docs.iconify.design/api/providers.html#provider-in-icon-name
408
- */
409
- provider: {
410
- type: String
411
- },
412
- /**
413
- * The name of icon set.
414
- * Icon default options prefix: simple | normal | detailed
415
- */
416
- prefix: {
417
- type: String,
418
- default: "normal"
419
- },
420
- /**
421
- * Url remote SVG icon
422
- */
423
- src: String,
424
- /**
425
- * Horizontal flip
426
- */
427
- horizontalFlip: Boolean,
428
- /**
429
- * Vertical flip
430
- */
431
- verticalFlip: Boolean,
432
- /**
433
- * String alternative to "horizontalFlip" and "verticalFlip".
434
- * Example: https://docs.iconify.design/icon-components/vue/transform.html
435
- */
436
- flip: String,
437
- /**
438
- * Icon render mode
439
- * 'style' = 'bg' or 'mask', depending on icon content
440
- * 'bg' = span with style using `background`
441
- * 'mask' = span with style using `mask`
442
- * 'svg' = svg
443
- * Iconify doc: https://docs.iconify.design/iconify-icon/modes.html
444
- */
445
- mode: String,
446
- /**
447
- * Toggles inline or block mode
448
- * Example https://docs.iconify.design/icon-components/vue/inline.html
449
- */
450
- inline: Boolean,
451
- /**
452
- * rotates icon
453
- * Example https://docs.iconify.design/icon-components/vue/transform.html
454
- */
455
- rotate: [Number, String],
456
- /**
457
- * A callback that is called when icon data has been loaded
458
- */
459
- onLoad: Function,
460
- /**
461
- * SVG icon string
462
- */
463
- svg: String,
464
- /**
465
- * Icon modifiers: vv-icon css helper classes, value/s are concatened with prefix 'vv-icon--'
466
- * @values string | string[]
467
- */
468
- modifiers: {
469
- type: [String, Array]
470
- }
423
+ const VvIconPropsDefaults = {
424
+ prefix: "normal"
425
+ /* normal */
471
426
  };
472
427
  function useVolver() {
473
428
  return inject(INJECTION_KEY_VOLVER);
@@ -477,7 +432,24 @@ const __default__$2 = {
477
432
  };
478
433
  const _sfc_main$2 = /* @__PURE__ */ defineComponent({
479
434
  ...__default__$2,
480
- props: VvIconProps,
435
+ props: /* @__PURE__ */ mergeDefaults({
436
+ name: {},
437
+ color: {},
438
+ width: {},
439
+ height: {},
440
+ provider: {},
441
+ prefix: {},
442
+ src: {},
443
+ horizontalFlip: { type: Boolean },
444
+ verticalFlip: { type: Boolean },
445
+ flip: {},
446
+ mode: {},
447
+ inline: { type: Boolean },
448
+ rotate: {},
449
+ onLoad: { type: Function },
450
+ svg: {},
451
+ modifiers: {}
452
+ }, VvIconPropsDefaults),
481
453
  setup(__props) {
482
454
  const props = __props;
483
455
  const hasRotate = computed(() => {
@@ -564,14 +536,49 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
564
536
  color: _ctx.color,
565
537
  onLoad: _ctx.onLoad,
566
538
  icon: unref(icon)
567
- }), null, 16, ["class"])) : createCommentVNode("", true);
539
+ }), null, 16, ["class"])) : createCommentVNode("v-if", true);
568
540
  };
569
541
  }
570
542
  });
571
543
  function useInjectedAlertGroup() {
572
544
  return inject(INJECTION_KEY_ALERT_GROUP, {});
573
545
  }
574
- const useUniqueId = (id) => computed(() => String((id == null ? void 0 : id.value) || nanoid()));
546
+ const useUniqueId = (id) => computed(() => String((id == null ? void 0 : id.value) || uid()));
547
+ function useComponentIcon(icon, iconPosition) {
548
+ const hasIcon = computed(() => {
549
+ if (typeof (icon == null ? void 0 : icon.value) === "string") {
550
+ return { name: icon == null ? void 0 : icon.value };
551
+ }
552
+ return icon == null ? void 0 : icon.value;
553
+ });
554
+ const hasIconBefore = computed(
555
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Position.before ? hasIcon.value : void 0
556
+ );
557
+ const hasIconAfter = computed(
558
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Position.after ? hasIcon.value : void 0
559
+ );
560
+ const hasIconLeft = computed(
561
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Side.left ? hasIcon.value : void 0
562
+ );
563
+ const hasIconRight = computed(
564
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Side.right ? hasIcon.value : void 0
565
+ );
566
+ const hasIconTop = computed(
567
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Side.top ? hasIcon.value : void 0
568
+ );
569
+ const hasIconBottom = computed(
570
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Side.bottom ? hasIcon.value : void 0
571
+ );
572
+ return {
573
+ hasIcon,
574
+ hasIconLeft,
575
+ hasIconRight,
576
+ hasIconTop,
577
+ hasIconBottom,
578
+ hasIconBefore,
579
+ hasIconAfter
580
+ };
581
+ }
575
582
  const VvAlertProps = {
576
583
  ...IdProps,
577
584
  ...ModifiersProps,
@@ -648,9 +655,7 @@ const useVvAlert = (props, emit) => {
648
655
  const { bus } = useInjectedAlertGroup();
649
656
  const hasId = useUniqueId(computed(() => props.id));
650
657
  const hasTitleId = computed(() => `${hasId.value}-title`);
651
- const hasIcon = computed(
652
- () => typeof props.icon === "string" ? { name: props.icon } : props.icon
653
- );
658
+ const { hasIcon } = useComponentIcon(computed(() => props.icon));
654
659
  const hasClass = useModifiers(
655
660
  "vv-alert",
656
661
  computed(() => props.modifiers),
@@ -719,7 +724,13 @@ const _hoisted_1 = {
719
724
  };
720
725
  const _hoisted_2 = ["id"];
721
726
  const _hoisted_3 = ["aria-label"];
722
- const _hoisted_4 = /* @__PURE__ */ createElementVNode("div", { class: "vv-alert__close-mask" }, null, -1);
727
+ const _hoisted_4 = /* @__PURE__ */ createElementVNode(
728
+ "div",
729
+ { class: "vv-alert__close-mask" },
730
+ null,
731
+ -1
732
+ /* HOISTED */
733
+ );
723
734
  const _hoisted_5 = [
724
735
  _hoisted_4
725
736
  ];
@@ -738,52 +749,77 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
738
749
  ...__default__$1,
739
750
  props: VvAlertProps,
740
751
  emits: VvAlertEvents,
741
- setup(__props, { expose: __expose, emit }) {
752
+ setup(__props, { expose: __expose, emit: __emit }) {
742
753
  const props = __props;
754
+ const emit = __emit;
743
755
  const { hasProps, hasTitleId, hasIcon, close } = useVvAlert(props, emit);
744
756
  __expose({ close });
745
757
  return (_ctx, _cache) => {
746
- return openBlock(), createElementBlock("div", normalizeProps(guardReactiveProps(unref(hasProps))), [
747
- _ctx.$slots.header || _ctx.$slots.title || _ctx.$slots.close || _ctx.$slots["title::before"] || _ctx.$slots["title::after"] || _ctx.title || _ctx.dismissable || _ctx.autoClose ? (openBlock(), createElementBlock("div", _hoisted_1, [
748
- unref(hasIcon) ? (openBlock(), createBlock(_sfc_main$2, mergeProps({ key: 0 }, unref(hasIcon), { class: "vv-alert__icon" }), null, 16)) : createCommentVNode("", true),
749
- renderSlot(_ctx.$slots, "header", {}, () => [
750
- renderSlot(_ctx.$slots, "title::before"),
751
- _ctx.$slots.title || _ctx.title ? (openBlock(), createElementBlock("strong", {
752
- key: 0,
753
- id: unref(hasTitleId),
754
- class: "vv-alert__title"
755
- }, [
756
- renderSlot(_ctx.$slots, "title", {}, () => [
757
- createTextVNode(toDisplayString(_ctx.title), 1)
758
- ])
759
- ], 8, _hoisted_2)) : createCommentVNode("", true),
760
- renderSlot(_ctx.$slots, "title::after")
761
- ]),
762
- renderSlot(_ctx.$slots, "close", normalizeProps(guardReactiveProps({ close: unref(close) })), () => [
763
- _ctx.dismissable || _ctx.autoClose ? (openBlock(), createElementBlock("button", {
764
- key: 0,
765
- class: "vv-alert__close",
766
- type: "button",
767
- "aria-label": _ctx.closeLabel,
768
- onClick: _cache[0] || (_cache[0] = withModifiers(
769
- //@ts-ignore
770
- (...args) => unref(close) && unref(close)(...args),
771
- ["stop"]
772
- ))
773
- }, _hoisted_5, 8, _hoisted_3)) : createCommentVNode("", true)
774
- ])
775
- ])) : createCommentVNode("", true),
776
- _ctx.$slots.default || _ctx.content ? (openBlock(), createElementBlock("div", _hoisted_6, [
777
- renderSlot(_ctx.$slots, "default", {}, () => [
778
- createTextVNode(toDisplayString(_ctx.content), 1)
779
- ])
780
- ])) : createCommentVNode("", true),
781
- _ctx.$slots.footer || _ctx.footer ? (openBlock(), createElementBlock("div", _hoisted_7, [
782
- renderSlot(_ctx.$slots, "footer", {}, () => [
783
- createTextVNode(toDisplayString(_ctx.footer), 1)
784
- ])
785
- ])) : createCommentVNode("", true)
786
- ], 16);
758
+ return openBlock(), createElementBlock(
759
+ "div",
760
+ normalizeProps(guardReactiveProps(unref(hasProps))),
761
+ [
762
+ _ctx.$slots.header || _ctx.$slots.title || _ctx.$slots.close || _ctx.$slots["title::before"] || _ctx.$slots["title::after"] || _ctx.title || _ctx.dismissable || _ctx.autoClose ? (openBlock(), createElementBlock("div", _hoisted_1, [
763
+ unref(hasIcon) ? (openBlock(), createBlock(
764
+ _sfc_main$2,
765
+ mergeProps({ key: 0 }, unref(hasIcon), { class: "vv-alert__icon" }),
766
+ null,
767
+ 16
768
+ /* FULL_PROPS */
769
+ )) : createCommentVNode("v-if", true),
770
+ renderSlot(_ctx.$slots, "header", {}, () => [
771
+ renderSlot(_ctx.$slots, "title::before"),
772
+ _ctx.$slots.title || _ctx.title ? (openBlock(), createElementBlock("strong", {
773
+ key: 0,
774
+ id: unref(hasTitleId),
775
+ class: "vv-alert__title"
776
+ }, [
777
+ renderSlot(_ctx.$slots, "title", {}, () => [
778
+ createTextVNode(
779
+ toDisplayString(_ctx.title),
780
+ 1
781
+ /* TEXT */
782
+ )
783
+ ])
784
+ ], 8, _hoisted_2)) : createCommentVNode("v-if", true),
785
+ renderSlot(_ctx.$slots, "title::after")
786
+ ]),
787
+ renderSlot(_ctx.$slots, "close", normalizeProps(guardReactiveProps({ close: unref(close) })), () => [
788
+ _ctx.dismissable || _ctx.autoClose ? (openBlock(), createElementBlock("button", {
789
+ key: 0,
790
+ class: "vv-alert__close",
791
+ type: "button",
792
+ "aria-label": _ctx.closeLabel,
793
+ onClick: _cache[0] || (_cache[0] = withModifiers(
794
+ //@ts-ignore
795
+ (...args) => unref(close) && unref(close)(...args),
796
+ ["stop"]
797
+ ))
798
+ }, _hoisted_5, 8, _hoisted_3)) : createCommentVNode("v-if", true)
799
+ ])
800
+ ])) : createCommentVNode("v-if", true),
801
+ _ctx.$slots.default || _ctx.content ? (openBlock(), createElementBlock("div", _hoisted_6, [
802
+ renderSlot(_ctx.$slots, "default", {}, () => [
803
+ createTextVNode(
804
+ toDisplayString(_ctx.content),
805
+ 1
806
+ /* TEXT */
807
+ )
808
+ ])
809
+ ])) : createCommentVNode("v-if", true),
810
+ _ctx.$slots.footer || _ctx.footer ? (openBlock(), createElementBlock("div", _hoisted_7, [
811
+ renderSlot(_ctx.$slots, "footer", {}, () => [
812
+ createTextVNode(
813
+ toDisplayString(_ctx.footer),
814
+ 1
815
+ /* TEXT */
816
+ )
817
+ ])
818
+ ])) : createCommentVNode("v-if", true)
819
+ ],
820
+ 16
821
+ /* FULL_PROPS */
822
+ );
787
823
  };
788
824
  }
789
825
  });
@@ -794,8 +830,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
794
830
  ...__default__,
795
831
  props: VvAlertGroupProps,
796
832
  emits: VvAlertGroupEvents,
797
- setup(__props, { emit }) {
833
+ setup(__props, { emit: __emit }) {
798
834
  const props = __props;
835
+ const emit = __emit;
799
836
  const { hasProps, hasTransition } = useVvAlertGroup(props, emit);
800
837
  const alertGroupTransitionHandlers = {
801
838
  "before-enter": () => {
@@ -824,27 +861,46 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
824
861
  }
825
862
  };
826
863
  return (_ctx, _cache) => {
827
- return openBlock(), createElementBlock("div", normalizeProps(guardReactiveProps(unref(hasProps))), [
828
- renderSlot(_ctx.$slots, "before"),
829
- createVNode(TransitionGroup, mergeProps({
830
- tag: "div",
831
- role: "group",
832
- name: unref(hasTransition),
833
- class: "vv-alert-group__list"
834
- }, toHandlers(alertGroupTransitionHandlers)), {
835
- default: withCtx(() => [
836
- renderSlot(_ctx.$slots, "default", {}, () => [
837
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.items, (item) => {
838
- return openBlock(), createBlock(_sfc_main$1, mergeProps(item, {
839
- key: item.id
840
- }), null, 16);
841
- }), 128))
842
- ])
843
- ]),
844
- _: 3
845
- }, 16, ["name"]),
846
- renderSlot(_ctx.$slots, "after")
847
- ], 16);
864
+ return openBlock(), createElementBlock(
865
+ "div",
866
+ normalizeProps(guardReactiveProps(unref(hasProps))),
867
+ [
868
+ renderSlot(_ctx.$slots, "before"),
869
+ createVNode(TransitionGroup, mergeProps({
870
+ tag: "div",
871
+ role: "group",
872
+ name: unref(hasTransition),
873
+ class: "vv-alert-group__list"
874
+ }, toHandlers(alertGroupTransitionHandlers)), {
875
+ default: withCtx(() => [
876
+ renderSlot(_ctx.$slots, "default", {}, () => [
877
+ (openBlock(true), createElementBlock(
878
+ Fragment,
879
+ null,
880
+ renderList(_ctx.items, (item) => {
881
+ return openBlock(), createBlock(
882
+ _sfc_main$1,
883
+ mergeProps(item, {
884
+ key: item.id
885
+ }),
886
+ null,
887
+ 16
888
+ /* FULL_PROPS */
889
+ );
890
+ }),
891
+ 128
892
+ /* KEYED_FRAGMENT */
893
+ ))
894
+ ])
895
+ ]),
896
+ _: 3
897
+ /* FORWARDED */
898
+ }, 16, ["name"]),
899
+ renderSlot(_ctx.$slots, "after")
900
+ ],
901
+ 16
902
+ /* FULL_PROPS */
903
+ );
848
904
  };
849
905
  }
850
906
  });
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("vue"),require("mitt"),require("@iconify/vue"),require("nanoid")):"function"==typeof define&&define.amd?define(["vue","mitt","@iconify/vue","nanoid"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).VvAlertGroup=t(e.vue,e.mitt,e.vue$1,e.nanoid)}(this,(function(e,t,o,r){"use strict";var l=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(l||{}),n=(e=>(e.before="before",e.after="after",e))(n||{}),i=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(i||{});const a=Symbol.for("volver"),s=Symbol.for("alertGroup"),c=(Boolean,Boolean,Boolean,{modifiers:[String,Array]}),u={icon:{type:[String,Object]},iconPosition:{type:String,default:n.before,validation:e=>Object.values(n).includes(e)}},d={id:[String,Number]};function p(t,o,r){return e.computed((()=>{const l={[t]:!0},n="string"==typeof(null==o?void 0:o.value)?o.value.split(" "):null==o?void 0:o.value;return n&&Array.isArray(n)&&n.forEach((e=>{e&&(l[`${t}--${e}`]=!0)})),r&&Object.keys(r.value).forEach((o=>{l[`${t}--${o}`]=e.unref(r.value[o])})),l}))}l.bottom,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,i.button;const v={...c,name:{type:String,required:!0},items:{type:Array,default:()=>[]},stack:{type:Boolean,default:!1},reverse:{type:Boolean,default:!1},inline:{type:String,default:void 0},block:{type:String,default:void 0},position:{type:String,default:void 0},transition:{type:String,default:void 0}},f=(o,r)=>{const l=function({name:o}){const r=t();return e.provide(s,{name:o,bus:r}),r}({name:e.computed((()=>o.name))});(o.block&&!o.inline||!o.block&&o.inline)&&console.warn("[VvAlertGroup]: block and inline props must coexist at the same time.");const n=e.computed((()=>{const t=[p("vv-alert-group",e.computed((()=>o.modifiers)),e.computed((()=>({stack:o.stack,reverse:o.reverse,absolute:"absolute"===o.position,fixed:"fixed"===o.position})))).value];return o.inline&&o.block&&t.push(`vv-alert-group--${o.block}-${o.inline}`),t})),i=e.computed((()=>o.transition?o.transition:o.position?"start"===o.inline?"vv-alert--fade-inline-start":"end"===o.inline?"vv-alert--fade-inline-end":"top"===o.block?"vv-alert--fade-block-top":"bottom"===o.block?"vv-alert--fade-block-bottom":"vv-alert--fade":"vv-alert--fade"));return l.on("close",(e=>{r("close",e)})),{hasTransition:i,hasProps:e.computed((()=>({class:n.value})))}},m={color:String,width:{type:[String,Number]},height:{type:[String,Number]},name:{type:String,required:!0},provider:{type:String},prefix:{type:String,default:"normal"},src:String,horizontalFlip:Boolean,verticalFlip:Boolean,flip:String,mode:String,inline:Boolean,rotate:[Number,String],onLoad:Function,svg:String,modifiers:{type:[String,Array]}};const b=e.defineComponent({name:"VvIcon",props:m,setup(t){const r=t,l=e.computed((()=>"string"==typeof r.rotate?parseFloat(r.rotate):r.rotate)),n=e.ref(!0),i=e.inject(a),{modifiers:s}=e.toRefs(r),c=p("vv-icon",s),u=e.computed((()=>r.provider||(null==i?void 0:i.iconsProvider))),d=e.computed((()=>{const e=r.name??"",t=`@${u.value}:${r.prefix}:${e}`;if(o.iconExists(t))return t;const l=null==i?void 0:i.iconsCollections.find((t=>{const r=`@${u.value}:${t.prefix}:${e}`;return o.iconExists(r)}));return l?`@${u.value}:${l.prefix}:${e}`:e}));function v(e){const t=function(e){let t;if("undefined"==typeof window){const{JSDOM:e}=require("jsdom");t=(new e).window}return(t?new t.DOMParser:new window.DOMParser).parseFromString(e,"text/html").querySelector("svg")}(e),l=(null==t?void 0:t.innerHTML.trim())||"";t&&l&&o.addIcon(`@${u.value}:${r.prefix}:${r.name}`,{body:l,height:t.viewBox.baseVal.height,width:t.viewBox.baseVal.width})}return i&&r.src&&!o.iconExists(`@${u.value}:${r.prefix}:${r.name}`)&&(n.value=!1,i.fetchIcon(r.src).then((e=>{e&&(v(e),n.value=!0)})).catch((e=>{throw new Error(`Error during fetch icon: ${null==e?void 0:e.message}`)}))),r.svg&&v(r.svg),(t,r)=>e.unref(n)?(e.openBlock(),e.createBlock(e.unref(o.Icon),e.mergeProps({key:0,class:e.unref(c)},{inline:t.inline,width:t.width,height:t.height,horizontalFlip:t.horizontalFlip,verticalFlip:t.verticalFlip,flip:t.flip,rotate:e.unref(l),color:t.color,onLoad:t.onLoad,icon:e.unref(d)}),null,16,["class"])):e.createCommentVNode("",!0)}});const g={...d,...c,...u,dismissable:{type:Boolean,default:!1},autoClose:{type:Number,default:0},closeLabel:{type:String,default:"Close"},title:{type:String,default:void 0},content:{type:String,default:void 0},footer:{type:String,default:void 0},role:{type:String,default:"alert"}},y=(t,o)=>{const{bus:l}=e.inject(s,{}),n=(i=e.computed((()=>t.id)),e.computed((()=>String((null==i?void 0:i.value)||r.nanoid()))));var i;const a=e.computed((()=>`${n.value}-title`)),c=e.computed((()=>"string"==typeof t.icon?{name:t.icon}:t.icon)),u=p("vv-alert",e.computed((()=>t.modifiers)),e.computed((()=>({dismissable:t.autoClose>0||t.dismissable,"auto-close":t.autoClose>0,hover:m.value})))),d=e.computed((()=>({"--alert-duration":`${t.autoClose}ms`}))),v=()=>{f&&clearTimeout(f),o("close",n.value),null==l||l.emit("close",n.value)};let f;e.watch((()=>t.autoClose),(e=>{e>0?f=setTimeout(v,e):f&&clearTimeout(f)}),{immediate:!0});const m=e.ref(!1),b=e.withModifiers((()=>{m.value=!0,f&&clearTimeout(f)}),["passive"]),g=e.withModifiers((()=>{m.value=!1,t.autoClose>0&&(f=setTimeout(v,t.autoClose))}),["passive"]);return{close:v,hasIcon:c,hasTitleId:a,hasProps:e.computed((()=>({onMouseover:b,onMouseleave:g,class:u.value,style:d.value,role:t.role,"aria-labelledby":a.value})))}},h={key:0,class:"vv-alert__header"},k=["id"],S=["aria-label"],$=[e.createElementVNode("div",{class:"vv-alert__close-mask"},null,-1)],B={key:1,class:"vv-alert__content"},w={key:2,class:"vv-alert__footer"},C=e.defineComponent({name:"VvAlert",props:g,emits:["close"],setup(t,{expose:o,emit:r}){const l=t,{hasProps:n,hasTitleId:i,hasIcon:a,close:s}=y(l,r);return o({close:s}),(t,o)=>(e.openBlock(),e.createElementBlock("div",e.normalizeProps(e.guardReactiveProps(e.unref(n))),[t.$slots.header||t.$slots.title||t.$slots.close||t.$slots["title::before"]||t.$slots["title::after"]||t.title||t.dismissable||t.autoClose?(e.openBlock(),e.createElementBlock("div",h,[e.unref(a)?(e.openBlock(),e.createBlock(b,e.mergeProps({key:0},e.unref(a),{class:"vv-alert__icon"}),null,16)):e.createCommentVNode("",!0),e.renderSlot(t.$slots,"header",{},(()=>[e.renderSlot(t.$slots,"title::before"),t.$slots.title||t.title?(e.openBlock(),e.createElementBlock("strong",{key:0,id:e.unref(i),class:"vv-alert__title"},[e.renderSlot(t.$slots,"title",{},(()=>[e.createTextVNode(e.toDisplayString(t.title),1)]))],8,k)):e.createCommentVNode("",!0),e.renderSlot(t.$slots,"title::after")])),e.renderSlot(t.$slots,"close",e.normalizeProps(e.guardReactiveProps({close:e.unref(s)})),(()=>[t.dismissable||t.autoClose?(e.openBlock(),e.createElementBlock("button",{key:0,class:"vv-alert__close",type:"button","aria-label":t.closeLabel,onClick:o[0]||(o[0]=e.withModifiers(((...t)=>e.unref(s)&&e.unref(s)(...t)),["stop"]))},$,8,S)):e.createCommentVNode("",!0)]))])):e.createCommentVNode("",!0),t.$slots.default||t.content?(e.openBlock(),e.createElementBlock("div",B,[e.renderSlot(t.$slots,"default",{},(()=>[e.createTextVNode(e.toDisplayString(t.content),1)]))])):e.createCommentVNode("",!0),t.$slots.footer||t.footer?(e.openBlock(),e.createElementBlock("div",w,[e.renderSlot(t.$slots,"footer",{},(()=>[e.createTextVNode(e.toDisplayString(t.footer),1)]))])):e.createCommentVNode("",!0)],16))}});return e.defineComponent({name:"VvAlertGroup",props:v,emits:["close","before-enter","after-leave","enter","after-enter","enter-cancelled","before-leave","leave","leave-cancelled"],setup(t,{emit:o}){const r=t,{hasProps:l,hasTransition:n}=f(r,o),i={"before-enter":()=>{o("before-enter")},"after-leave":()=>{o("after-leave")},enter:()=>{o("enter")},"after-enter":()=>{o("after-enter")},"enter-cancelled":()=>{o("enter-cancelled")},"before-leave":()=>{o("before-leave")},leave:()=>{o("leave")},"leave-cancelled":()=>{o("leave-cancelled")}};return(t,o)=>(e.openBlock(),e.createElementBlock("div",e.normalizeProps(e.guardReactiveProps(e.unref(l))),[e.renderSlot(t.$slots,"before"),e.createVNode(e.TransitionGroup,e.mergeProps({tag:"div",role:"group",name:e.unref(n),class:"vv-alert-group__list"},e.toHandlers(i)),{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default",{},(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(t=>(e.openBlock(),e.createBlock(C,e.mergeProps(t,{key:t.id}),null,16)))),128))]))])),_:3},16,["name"]),e.renderSlot(t.$slots,"after")],16))}})}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("vue"),require("mitt"),require("@iconify/vue"),require("uid")):"function"==typeof define&&define.amd?define(["vue","mitt","@iconify/vue","uid"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).VvAlertGroup=t(e.vue,e.mitt,e.vue$1,e.uid)}(this,(function(e,t,o,l){"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||{}),i=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(i||{}),a=(e=>(e.nuxtLink="nuxt-link",e.routerLink="router-link",e.a="a",e.button="button",e))(a||{});const s=Symbol.for("volver"),u=Symbol.for("alertGroup"),c=(Boolean,Boolean,Boolean,Boolean,{modifiers:{type:[String,Array],default:void 0}}),d={icon:{type:[String,Object],default:void 0},iconPosition:{type:String,default:n.before,validation:e=>Object.values(n).includes(e)}},v={id:[String,Number]};function f(t,o,l){return e.computed((()=>{const r={[t]:!0},n="string"==typeof(null==o?void 0:o.value)?o.value.split(" "):null==o?void 0:o.value;return n&&Array.isArray(n)&&n.forEach((e=>{e&&(r[`${t}--${e}`]=!0)})),l&&Object.keys(l.value).forEach((o=>{r[`${t}--${o}`]=e.unref(l.value[o])})),r}))}r.bottom,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,i.button,a.button;const p={...c,name:{type:String,required:!0},items:{type:Array,default:()=>[]},stack:{type:Boolean,default:!1},reverse:{type:Boolean,default:!1},inline:{type:String,default:void 0},block:{type:String,default:void 0},position:{type:String,default:void 0},transition:{type:String,default:void 0}},m=(o,l)=>{const r=function({name:o}){const l=t();return e.provide(u,{name:o,bus:l}),l}({name:e.computed((()=>o.name))});(o.block&&!o.inline||!o.block&&o.inline)&&console.warn("[VvAlertGroup]: block and inline props must coexist at the same time.");const n=e.computed((()=>{const t=[f("vv-alert-group",e.computed((()=>o.modifiers)),e.computed((()=>({stack:o.stack,reverse:o.reverse,absolute:"absolute"===o.position,fixed:"fixed"===o.position})))).value];return o.inline&&o.block&&t.push(`vv-alert-group--${o.block}-${o.inline}`),t})),i=e.computed((()=>o.transition?o.transition:o.position?"start"===o.inline?"vv-alert--fade-inline-start":"end"===o.inline?"vv-alert--fade-inline-end":"top"===o.block?"vv-alert--fade-block-top":"bottom"===o.block?"vv-alert--fade-block-bottom":"vv-alert--fade":"vv-alert--fade"));return r.on("close",(e=>{l("close",e)})),{hasTransition:i,hasProps:e.computed((()=>({class:n.value})))}},b={prefix:"normal"};const h=e.defineComponent({name:"VvIcon",props:e.mergeDefaults({name:{},color:{},width:{},height:{},provider:{},prefix:{},src:{},horizontalFlip:{type:Boolean},verticalFlip:{type:Boolean},flip:{},mode:{},inline:{type:Boolean},rotate:{},onLoad:{type:Function},svg:{},modifiers:{}},b),setup(t){const l=t,r=e.computed((()=>"string"==typeof l.rotate?parseFloat(l.rotate):l.rotate)),n=e.ref(!0),i=e.inject(s),{modifiers:a}=e.toRefs(l),u=f("vv-icon",a),c=e.computed((()=>l.provider||(null==i?void 0:i.iconsProvider))),d=e.computed((()=>{const e=l.name??"",t=`@${c.value}:${l.prefix}:${e}`;if(o.iconExists(t))return t;const r=null==i?void 0:i.iconsCollections.find((t=>{const l=`@${c.value}:${t.prefix}:${e}`;return o.iconExists(l)}));return r?`@${c.value}:${r.prefix}:${e}`:e}));function v(e){const t=function(e){let t;if("undefined"==typeof window){const{JSDOM:e}=require("jsdom");t=(new e).window}return(t?new t.DOMParser:new window.DOMParser).parseFromString(e,"text/html").querySelector("svg")}(e),r=(null==t?void 0:t.innerHTML.trim())||"";t&&r&&o.addIcon(`@${c.value}:${l.prefix}:${l.name}`,{body:r,height:t.viewBox.baseVal.height,width:t.viewBox.baseVal.width})}return i&&l.src&&!o.iconExists(`@${c.value}:${l.prefix}:${l.name}`)&&(n.value=!1,i.fetchIcon(l.src).then((e=>{e&&(v(e),n.value=!0)})).catch((e=>{throw new Error(`Error during fetch icon: ${null==e?void 0:e.message}`)}))),l.svg&&v(l.svg),(t,l)=>e.unref(n)?(e.openBlock(),e.createBlock(e.unref(o.Icon),e.mergeProps({key:0,class:e.unref(u)},{inline:t.inline,width:t.width,height:t.height,horizontalFlip:t.horizontalFlip,verticalFlip:t.verticalFlip,flip:t.flip,rotate:e.unref(r),color:t.color,onLoad:t.onLoad,icon:e.unref(d)}),null,16,["class"])):e.createCommentVNode("v-if",!0)}});const y={...v,...c,...d,dismissable:{type:Boolean,default:!1},autoClose:{type:Number,default:0},closeLabel:{type:String,default:"Close"},title:{type:String,default:void 0},content:{type:String,default:void 0},footer:{type:String,default:void 0},role:{type:String,default:"alert"}},g=(t,o)=>{const{bus:i}=e.inject(u,{}),a=(s=e.computed((()=>t.id)),e.computed((()=>String((null==s?void 0:s.value)||l.uid()))));var s;const c=e.computed((()=>`${a.value}-title`)),{hasIcon:d}=function(t,o){const l=e.computed((()=>"string"==typeof(null==t?void 0:t.value)?{name:null==t?void 0:t.value}:null==t?void 0:t.value)),i=e.computed((()=>(null==o?void 0:o.value)===n.before?l.value:void 0)),a=e.computed((()=>(null==o?void 0:o.value)===n.after?l.value:void 0)),s=e.computed((()=>(null==o?void 0:o.value)===r.left?l.value:void 0)),u=e.computed((()=>(null==o?void 0:o.value)===r.right?l.value:void 0)),c=e.computed((()=>(null==o?void 0:o.value)===r.top?l.value:void 0)),d=e.computed((()=>(null==o?void 0:o.value)===r.bottom?l.value:void 0));return{hasIcon:l,hasIconLeft:s,hasIconRight:u,hasIconTop:c,hasIconBottom:d,hasIconBefore:i,hasIconAfter:a}}(e.computed((()=>t.icon))),v=f("vv-alert",e.computed((()=>t.modifiers)),e.computed((()=>({dismissable:t.autoClose>0||t.dismissable,"auto-close":t.autoClose>0,hover:h.value})))),p=e.computed((()=>({"--alert-duration":`${t.autoClose}ms`}))),m=()=>{b&&clearTimeout(b),o("close",a.value),null==i||i.emit("close",a.value)};let b;e.watch((()=>t.autoClose),(e=>{e>0?b=setTimeout(m,e):b&&clearTimeout(b)}),{immediate:!0});const h=e.ref(!1),y=e.withModifiers((()=>{h.value=!0,b&&clearTimeout(b)}),["passive"]),g=e.withModifiers((()=>{h.value=!1,t.autoClose>0&&(b=setTimeout(m,t.autoClose))}),["passive"]);return{close:m,hasIcon:d,hasTitleId:c,hasProps:e.computed((()=>({onMouseover:y,onMouseleave:g,class:v.value,style:p.value,role:t.role,"aria-labelledby":c.value})))}},k={key:0,class:"vv-alert__header"},B=["id"],$=["aria-label"],S=[e.createElementVNode("div",{class:"vv-alert__close-mask"},null,-1)],x={key:1,class:"vv-alert__content"},w={key:2,class:"vv-alert__footer"},C=e.defineComponent({name:"VvAlert",props:y,emits:["close"],setup(t,{expose:o,emit:l}){const r=t,n=l,{hasProps:i,hasTitleId:a,hasIcon:s,close:u}=g(r,n);return o({close:u}),(t,o)=>(e.openBlock(),e.createElementBlock("div",e.normalizeProps(e.guardReactiveProps(e.unref(i))),[t.$slots.header||t.$slots.title||t.$slots.close||t.$slots["title::before"]||t.$slots["title::after"]||t.title||t.dismissable||t.autoClose?(e.openBlock(),e.createElementBlock("div",k,[e.unref(s)?(e.openBlock(),e.createBlock(h,e.mergeProps({key:0},e.unref(s),{class:"vv-alert__icon"}),null,16)):e.createCommentVNode("v-if",!0),e.renderSlot(t.$slots,"header",{},(()=>[e.renderSlot(t.$slots,"title::before"),t.$slots.title||t.title?(e.openBlock(),e.createElementBlock("strong",{key:0,id:e.unref(a),class:"vv-alert__title"},[e.renderSlot(t.$slots,"title",{},(()=>[e.createTextVNode(e.toDisplayString(t.title),1)]))],8,B)):e.createCommentVNode("v-if",!0),e.renderSlot(t.$slots,"title::after")])),e.renderSlot(t.$slots,"close",e.normalizeProps(e.guardReactiveProps({close:e.unref(u)})),(()=>[t.dismissable||t.autoClose?(e.openBlock(),e.createElementBlock("button",{key:0,class:"vv-alert__close",type:"button","aria-label":t.closeLabel,onClick:o[0]||(o[0]=e.withModifiers(((...t)=>e.unref(u)&&e.unref(u)(...t)),["stop"]))},S,8,$)):e.createCommentVNode("v-if",!0)]))])):e.createCommentVNode("v-if",!0),t.$slots.default||t.content?(e.openBlock(),e.createElementBlock("div",x,[e.renderSlot(t.$slots,"default",{},(()=>[e.createTextVNode(e.toDisplayString(t.content),1)]))])):e.createCommentVNode("v-if",!0),t.$slots.footer||t.footer?(e.openBlock(),e.createElementBlock("div",w,[e.renderSlot(t.$slots,"footer",{},(()=>[e.createTextVNode(e.toDisplayString(t.footer),1)]))])):e.createCommentVNode("v-if",!0)],16))}});return e.defineComponent({name:"VvAlertGroup",props:p,emits:["close","before-enter","after-leave","enter","after-enter","enter-cancelled","before-leave","leave","leave-cancelled"],setup(t,{emit:o}){const l=t,r=o,{hasProps:n,hasTransition:i}=m(l,r),a={"before-enter":()=>{r("before-enter")},"after-leave":()=>{r("after-leave")},enter:()=>{r("enter")},"after-enter":()=>{r("after-enter")},"enter-cancelled":()=>{r("enter-cancelled")},"before-leave":()=>{r("before-leave")},leave:()=>{r("leave")},"leave-cancelled":()=>{r("leave-cancelled")}};return(t,o)=>(e.openBlock(),e.createElementBlock("div",e.normalizeProps(e.guardReactiveProps(e.unref(n))),[e.renderSlot(t.$slots,"before"),e.createVNode(e.TransitionGroup,e.mergeProps({tag:"div",role:"group",name:e.unref(i),class:"vv-alert-group__list"},e.toHandlers(a)),{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default",{},(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(t=>(e.openBlock(),e.createBlock(C,e.mergeProps(t,{key:t.id}),null,16)))),128))]))])),_:3},16,["name"]),e.renderSlot(t.$slots,"after")],16))}})}));
@@ -31,8 +31,13 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
31
31
  type: StringConstructor;
32
32
  default: undefined;
33
33
  };
34
- modifiers: globalThis.PropType<string | string[]>;
35
- }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, string[], string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
34
+ modifiers: {
35
+ type: globalThis.PropType<string | string[]>;
36
+ default: undefined;
37
+ };
38
+ }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
39
+ [x: string]: (...args: any[]) => void;
40
+ }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<globalThis.ExtractPropTypes<{
36
41
  name: {
37
42
  type: StringConstructor;
38
43
  required: boolean;
@@ -65,10 +70,12 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
65
70
  type: StringConstructor;
66
71
  default: undefined;
67
72
  };
68
- modifiers: globalThis.PropType<string | string[]>;
69
- }>> & {
70
- [x: `on${Capitalize<string>}`]: ((...args: any[]) => any) | undefined;
71
- }, {
73
+ modifiers: {
74
+ type: globalThis.PropType<string | string[]>;
75
+ default: undefined;
76
+ };
77
+ }>>, {
78
+ modifiers: string | string[];
72
79
  reverse: boolean;
73
80
  items: import(".").AlertItem[];
74
81
  transition: string;
@@ -1,8 +1,9 @@
1
1
  import type { ExtractPropTypes } from 'vue';
2
+ import type { VvIconProps } from '../VvIcon';
2
3
  export type AlertItem = {
3
4
  id: string | number;
4
5
  title?: string;
5
- icon?: string | Record<string, unknown>;
6
+ icon?: string | VvIconProps;
6
7
  content?: string;
7
8
  footer?: string;
8
9
  modifiers?: string | string[];
@@ -44,7 +45,10 @@ export declare const VvAlertGroupProps: {
44
45
  type: StringConstructor;
45
46
  default: undefined;
46
47
  };
47
- modifiers: globalThis.PropType<string | string[]>;
48
+ modifiers: {
49
+ type: globalThis.PropType<string | string[]>;
50
+ default: undefined;
51
+ };
48
52
  };
49
53
  export declare const VvAlertGroupEvents: string[];
50
54
  export declare const useVvAlertGroup: (props: Readonly<ExtractPropTypes<typeof VvAlertGroupProps>>, emit: (event: string, ...args: unknown[]) => void) => {