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

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 (258) 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 +70 -14
  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 +117 -38
  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 +58 -13
  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 +195 -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 +240 -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 +73 -17
  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 +259 -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 +187 -141
  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 +69 -16
  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 +84 -25
  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 +91 -22
  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 +180 -67
  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 +758 -531
  64. package/dist/components/VvCombobox/VvCombobox.umd.js +1 -1
  65. package/dist/components/VvCombobox/VvCombobox.vue.d.ts +181 -108
  66. package/dist/components/VvCombobox/index.d.ts +53 -22
  67. package/dist/components/VvDialog/VvDialog.es.js +136 -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 +101 -75
  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 +82 -22
  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 +33 -48
  89. package/dist/components/VvInputFile/VvInputFile.es.js +1734 -0
  90. package/dist/components/VvInputFile/VvInputFile.umd.js +1 -0
  91. package/dist/components/VvInputFile/VvInputFile.vue.d.ts +313 -0
  92. package/dist/components/VvInputFile/index.d.ts +179 -0
  93. package/dist/components/VvInputText/VvInputClearAction.d.ts +7 -5
  94. package/dist/components/VvInputText/VvInputPasswordAction.d.ts +10 -8
  95. package/dist/components/VvInputText/VvInputStepAction.d.ts +1 -1
  96. package/dist/components/VvInputText/VvInputText.es.js +331 -293
  97. package/dist/components/VvInputText/VvInputText.umd.js +1 -1
  98. package/dist/components/VvInputText/VvInputText.vue.d.ts +162 -55
  99. package/dist/components/VvInputText/index.d.ts +71 -29
  100. package/dist/components/VvNav/VvNav.es.js +151 -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.vue.d.ts +2 -0
  105. package/dist/components/VvNav/index.d.ts +5 -13
  106. package/dist/components/VvNavItem/VvNavItem.es.js +436 -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 +180 -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 +248 -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 +256 -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 +229 -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/common/HintSlot.d.ts +1 -1
  139. package/dist/components/index.d.ts +10 -0
  140. package/dist/components/index.es.js +2902 -1329
  141. package/dist/components/index.umd.js +1 -1
  142. package/dist/composables/alert/useAlert.d.ts +37 -4
  143. package/dist/composables/dropdown/useProvideDropdown.d.ts +1 -1
  144. package/dist/composables/index.d.ts +1 -0
  145. package/dist/composables/index.es.js +88 -1
  146. package/dist/composables/index.umd.js +1 -1
  147. package/dist/composables/useBlurhash.d.ts +7 -0
  148. package/dist/composables/useComponentIcon.d.ts +9 -8
  149. package/dist/composables/useVolver.d.ts +1 -1
  150. package/dist/directives/index.d.ts +3 -5
  151. package/dist/directives/index.es.js +92 -31
  152. package/dist/directives/index.umd.js +1 -1
  153. package/dist/directives/v-tooltip.es.js +90 -26
  154. package/dist/directives/v-tooltip.umd.js +1 -1
  155. package/dist/icons.es.js +210 -210
  156. package/dist/icons.umd.js +1 -1
  157. package/dist/index.d.ts +3 -1
  158. package/dist/index.es.js +81 -16
  159. package/dist/index.umd.js +1 -1
  160. package/dist/props/index.d.ts +287 -73
  161. package/dist/resolvers/unplugin.d.ts +6 -1
  162. package/dist/resolvers/unplugin.es.js +78 -10
  163. package/dist/resolvers/unplugin.umd.js +1 -1
  164. package/dist/stories/AccordionGroup/AccordionGroup.stories.d.ts +72 -84
  165. package/dist/stories/AccordionGroup/AccordionGroupSlots.stories.d.ts +623 -461
  166. package/dist/stories/AlertGroup/AlertGroupWithComposable.stories.d.ts +1 -1
  167. package/dist/stories/Blurhash/BlurhashComposable.stories.d.ts +4 -0
  168. package/dist/stories/Combobox/Combobox.settings.d.ts +8 -0
  169. package/dist/stories/Icon/Icon.settings.d.ts +1 -0
  170. package/dist/stories/InputFile/InputFile.settings.d.ts +56 -0
  171. package/dist/stories/InputFile/InputFile.stories.d.ts +12 -0
  172. package/dist/stories/InputFile/InputFileDropArea.stories.d.ts +9 -0
  173. package/dist/stories/InputFile/InputFileIconPosition.stories.d.ts +8 -0
  174. package/dist/stories/InputFile/InputFileSlots.stories.d.ts +7 -0
  175. package/dist/stories/Tab/Tab.settings.d.ts +4 -37
  176. package/dist/types/alert.d.ts +13 -0
  177. package/dist/types/blurhash.d.ts +12 -0
  178. package/dist/types/floating-ui.d.ts +6 -0
  179. package/dist/types/generic.d.ts +4 -0
  180. package/dist/types/group.d.ts +37 -0
  181. package/dist/types/index.d.ts +7 -0
  182. package/dist/types/input-file.d.ts +16 -0
  183. package/dist/types/nav.d.ts +18 -0
  184. package/dist/utils/ObjectUtilities.d.ts +0 -1
  185. package/dist/workers/blurhash.d.ts +1 -0
  186. package/package.json +97 -80
  187. package/src/Volver.ts +31 -20
  188. package/src/assets/icons/detailed.json +1 -1
  189. package/src/assets/icons/normal.json +1 -1
  190. package/src/assets/icons/simple.json +1 -1
  191. package/src/components/VvAccordion/VvAccordion.vue +2 -2
  192. package/src/components/VvAction/VvAction.vue +5 -2
  193. package/src/components/VvAlert/index.ts +1 -3
  194. package/src/components/VvAlertGroup/index.ts +2 -1
  195. package/src/components/VvBreadcrumb/VvBreadcrumb.vue +20 -19
  196. package/src/components/VvBreadcrumb/index.ts +2 -8
  197. package/src/components/VvButton/VvButton.vue +6 -6
  198. package/src/components/VvButton/index.ts +2 -4
  199. package/src/components/VvCombobox/VvCombobox.vue +24 -16
  200. package/src/components/VvCombobox/index.ts +4 -0
  201. package/src/components/VvIcon/VvIcon.vue +2 -2
  202. package/src/components/VvIcon/index.ts +35 -48
  203. package/src/components/VvInputFile/VvInputFile.vue +365 -0
  204. package/src/components/VvInputFile/index.ts +116 -0
  205. package/src/components/VvInputText/VvInputClearAction.ts +10 -6
  206. package/src/components/VvInputText/VvInputPasswordAction.ts +13 -9
  207. package/src/components/VvInputText/VvInputText.vue +17 -18
  208. package/src/components/VvInputText/index.ts +7 -15
  209. package/src/components/VvNav/VvNav.vue +30 -50
  210. package/src/components/VvNav/VvNavItem.vue +18 -0
  211. package/src/components/VvNav/VvNavSeparator.vue +11 -0
  212. package/src/components/VvNav/index.ts +2 -15
  213. package/src/components/VvSelect/VvSelect.vue +5 -8
  214. package/src/components/VvTab/VvTab.vue +63 -35
  215. package/src/components/VvTab/index.ts +10 -4
  216. package/src/components/VvTextarea/VvTextarea.vue +6 -9
  217. package/src/components/index.ts +10 -0
  218. package/src/composables/index.ts +1 -0
  219. package/src/composables/useBlurhash.ts +76 -0
  220. package/src/composables/useComponentIcon.ts +15 -14
  221. package/src/composables/useUniqueId.ts +2 -2
  222. package/src/directives/index.ts +3 -6
  223. package/src/directives/v-tooltip.ts +19 -10
  224. package/src/index.ts +3 -1
  225. package/src/props/index.ts +115 -27
  226. package/src/resolvers/unplugin.ts +24 -14
  227. package/src/stories/AlertGroup/AlertGroupWithComposable.stories.ts +2 -2
  228. package/src/stories/Blurhash/BlurhashComposable.stories.ts +195 -0
  229. package/src/stories/Combobox/Combobox.settings.ts +8 -0
  230. package/src/stories/Icon/Icon.settings.ts +3 -3
  231. package/src/stories/InputFile/InputFile.settings.ts +36 -0
  232. package/src/stories/InputFile/InputFile.stories.ts +89 -0
  233. package/src/stories/InputFile/InputFileDropArea.stories.ts +56 -0
  234. package/src/stories/InputFile/InputFileIconPosition.stories.ts +43 -0
  235. package/src/stories/InputFile/InputFileSlots.stories.ts +33 -0
  236. package/src/stories/Nav/Nav.settings.ts +3 -4
  237. package/src/stories/Nav/Nav.test.ts +4 -15
  238. package/src/stories/Tab/Tab.settings.ts +9 -9
  239. package/src/stories/Tab/Tab.stories.ts +2 -2
  240. package/src/stories/Tab/Tab.test.ts +6 -14
  241. package/src/stories/argTypes.ts +1 -1
  242. package/src/types/blurhash.ts +21 -0
  243. package/src/types/generic.ts +6 -0
  244. package/src/types/index.ts +7 -0
  245. package/src/types/input-file.ts +18 -0
  246. package/src/types/nav.ts +20 -0
  247. package/src/utils/ObjectUtilities.ts +0 -11
  248. package/src/workers/blurhash.ts +9 -0
  249. package/dist/components/VvNav/VvNavItemTitle.vue.d.ts +0 -6
  250. package/dist/components/VvNav/VvNavSeparator.d.ts +0 -2
  251. package/dist/components/VvNavItemTitle/VvNavItemTitle.es.js +0 -19
  252. package/dist/components/VvNavItemTitle/VvNavItemTitle.umd.js +0 -1
  253. package/src/components/VvNav/VvNavItemTitle.vue +0 -11
  254. package/src/components/VvNav/VvNavSeparator.ts +0 -8
  255. package/src/types/generic.d.ts +0 -6
  256. /package/src/types/{alert.d.ts → alert.ts} +0 -0
  257. /package/src/types/{floating-ui.d.ts → floating-ui.ts} +0 -0
  258. /package/src/types/{group.d.ts → group.ts} +0 -0
@@ -1,3 +1,4 @@
1
+ import { ActionTag } from '../../constants';
1
2
  declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
2
3
  type: {
3
4
  type: globalThis.PropType<"button" | "submit" | "reset">;
@@ -8,25 +9,48 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
8
9
  type: StringConstructor;
9
10
  default: undefined;
10
11
  };
12
+ defaultTag: {
13
+ type: StringConstructor;
14
+ default: ActionTag;
15
+ };
11
16
  to: {
12
17
  type: (ObjectConstructor | StringConstructor)[];
13
18
  };
14
19
  href: StringConstructor;
15
20
  target: {
16
21
  type: globalThis.PropType<"_blank" | "_self" | "_parent" | "_top">;
22
+ default: undefined;
17
23
  validator: (value: import("../../constants").AnchorTarget) => boolean;
18
24
  };
19
25
  rel: {
20
26
  type: StringConstructor;
21
27
  default: string;
22
28
  };
23
- active: BooleanConstructor;
24
- pressed: BooleanConstructor;
25
- label: (StringConstructor | NumberConstructor)[];
26
- disabled: BooleanConstructor;
29
+ current: {
30
+ type: BooleanConstructor;
31
+ default: boolean;
32
+ };
33
+ active: {
34
+ type: BooleanConstructor;
35
+ default: boolean;
36
+ };
37
+ pressed: {
38
+ type: BooleanConstructor;
39
+ default: boolean;
40
+ };
41
+ label: {
42
+ type: (StringConstructor | NumberConstructor)[];
43
+ default: undefined;
44
+ };
45
+ disabled: {
46
+ type: BooleanConstructor;
47
+ default: boolean;
48
+ };
27
49
  }, {
28
50
  $el: globalThis.Ref<HTMLElement | null>;
29
- }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, string[], string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
51
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
52
+ [x: string]: (...args: any[]) => void;
53
+ }, string, import("vue").PublicProps, Readonly<globalThis.ExtractPropTypes<{
30
54
  type: {
31
55
  type: globalThis.PropType<"button" | "submit" | "reset">;
32
56
  default: import("../../constants").ButtonType;
@@ -36,29 +60,52 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
36
60
  type: StringConstructor;
37
61
  default: undefined;
38
62
  };
63
+ defaultTag: {
64
+ type: StringConstructor;
65
+ default: ActionTag;
66
+ };
39
67
  to: {
40
68
  type: (ObjectConstructor | StringConstructor)[];
41
69
  };
42
70
  href: StringConstructor;
43
71
  target: {
44
72
  type: globalThis.PropType<"_blank" | "_self" | "_parent" | "_top">;
73
+ default: undefined;
45
74
  validator: (value: import("../../constants").AnchorTarget) => boolean;
46
75
  };
47
76
  rel: {
48
77
  type: StringConstructor;
49
78
  default: string;
50
79
  };
51
- active: BooleanConstructor;
52
- pressed: BooleanConstructor;
53
- label: (StringConstructor | NumberConstructor)[];
54
- disabled: BooleanConstructor;
55
- }>> & {
56
- [x: `on${Capitalize<string>}`]: ((...args: any[]) => any) | undefined;
57
- }, {
80
+ current: {
81
+ type: BooleanConstructor;
82
+ default: boolean;
83
+ };
84
+ active: {
85
+ type: BooleanConstructor;
86
+ default: boolean;
87
+ };
88
+ pressed: {
89
+ type: BooleanConstructor;
90
+ default: boolean;
91
+ };
92
+ label: {
93
+ type: (StringConstructor | NumberConstructor)[];
94
+ default: undefined;
95
+ };
96
+ disabled: {
97
+ type: BooleanConstructor;
98
+ default: boolean;
99
+ };
100
+ }>>, {
58
101
  disabled: boolean;
102
+ label: string | number;
59
103
  type: "button" | "submit" | "reset";
104
+ target: "_blank" | "_self" | "_parent" | "_top";
60
105
  ariaLabel: string;
106
+ defaultTag: string;
61
107
  rel: string;
108
+ current: boolean;
62
109
  active: boolean;
63
110
  pressed: boolean;
64
111
  }, {}>, {
@@ -9,20 +9,41 @@ export declare const VvActionProps: {
9
9
  type: StringConstructor;
10
10
  default: undefined;
11
11
  };
12
+ defaultTag: {
13
+ type: StringConstructor;
14
+ default: import("../../constants").ActionTag;
15
+ };
12
16
  to: {
13
17
  type: (ObjectConstructor | StringConstructor)[];
14
18
  };
15
19
  href: StringConstructor;
16
20
  target: {
17
21
  type: globalThis.PropType<"_blank" | "_self" | "_parent" | "_top">;
22
+ default: undefined;
18
23
  validator: (value: import("../../constants").AnchorTarget) => boolean;
19
24
  };
20
25
  rel: {
21
26
  type: StringConstructor;
22
27
  default: string;
23
28
  };
24
- active: BooleanConstructor;
25
- pressed: BooleanConstructor;
26
- label: (StringConstructor | NumberConstructor)[];
27
- disabled: BooleanConstructor;
29
+ current: {
30
+ type: BooleanConstructor;
31
+ default: boolean;
32
+ };
33
+ active: {
34
+ type: BooleanConstructor;
35
+ default: boolean;
36
+ };
37
+ pressed: {
38
+ type: BooleanConstructor;
39
+ default: boolean;
40
+ };
41
+ label: {
42
+ type: (StringConstructor | NumberConstructor)[];
43
+ default: undefined;
44
+ };
45
+ disabled: {
46
+ type: BooleanConstructor;
47
+ default: boolean;
48
+ };
28
49
  };
@@ -1,99 +1,9 @@
1
- import { inject, computed, unref, defineComponent, ref, toRefs, openBlock, createBlock, mergeProps, createCommentVNode, watch, withModifiers, createElementBlock, normalizeProps, guardReactiveProps, renderSlot, createTextVNode, toDisplayString, createElementVNode } from "vue";
1
+ import { inject, computed, unref, defineComponent, mergeDefaults, ref, toRefs, openBlock, createBlock, mergeProps, createCommentVNode, watch, withModifiers, createElementBlock, normalizeProps, guardReactiveProps, renderSlot, createTextVNode, toDisplayString, createElementVNode } from "vue";
2
2
  import { iconExists, Icon, addIcon } from "@iconify/vue";
3
- import { nanoid } from "nanoid";
4
- const VvIconProps = {
5
- /**
6
- * Color
7
- */
8
- color: String,
9
- /**
10
- * Width
11
- */
12
- width: {
13
- type: [String, Number]
14
- },
15
- /**
16
- * Height
17
- */
18
- height: {
19
- type: [String, Number]
20
- },
21
- /**
22
- * Icon name
23
- * Can be the full composition of iconify name "@{provider}:{prefix}:{name}" or "{prefix}:{name}" or "{name}"
24
- * https://docs.iconify.design/api/providers.html#provider-in-icon-name
25
- */
26
- name: {
27
- type: String,
28
- required: true
29
- },
30
- /**
31
- * By default 'vv'
32
- * If custom collection is not added with "addCollection" DS class method, this prop could not be used
33
- * Icon provider: https://docs.iconify.design/api/providers.html#provider-in-icon-name
34
- */
35
- provider: {
36
- type: String
37
- },
38
- /**
39
- * The name of icon set.
40
- * Icon default options prefix: simple | normal | detailed
41
- */
42
- prefix: {
43
- type: String,
44
- default: "normal"
45
- },
46
- /**
47
- * Url remote SVG icon
48
- */
49
- src: String,
50
- /**
51
- * Horizontal flip
52
- */
53
- horizontalFlip: Boolean,
54
- /**
55
- * Vertical flip
56
- */
57
- verticalFlip: Boolean,
58
- /**
59
- * String alternative to "horizontalFlip" and "verticalFlip".
60
- * Example: https://docs.iconify.design/icon-components/vue/transform.html
61
- */
62
- flip: String,
63
- /**
64
- * Icon render mode
65
- * 'style' = 'bg' or 'mask', depending on icon content
66
- * 'bg' = span with style using `background`
67
- * 'mask' = span with style using `mask`
68
- * 'svg' = svg
69
- * Iconify doc: https://docs.iconify.design/iconify-icon/modes.html
70
- */
71
- mode: String,
72
- /**
73
- * Toggles inline or block mode
74
- * Example https://docs.iconify.design/icon-components/vue/inline.html
75
- */
76
- inline: Boolean,
77
- /**
78
- * rotates icon
79
- * Example https://docs.iconify.design/icon-components/vue/transform.html
80
- */
81
- rotate: [Number, String],
82
- /**
83
- * A callback that is called when icon data has been loaded
84
- */
85
- onLoad: Function,
86
- /**
87
- * SVG icon string
88
- */
89
- svg: String,
90
- /**
91
- * Icon modifiers: vv-icon css helper classes, value/s are concatened with prefix 'vv-icon--'
92
- * @values string | string[]
93
- */
94
- modifiers: {
95
- type: [String, Array]
96
- }
3
+ import { uid } from "uid";
4
+ const VvIconPropsDefaults = {
5
+ prefix: "normal"
6
+ /* normal */
97
7
  };
98
8
  var Strategy = /* @__PURE__ */ ((Strategy2) => {
99
9
  Strategy2["absolute"] = "absolute";
@@ -129,6 +39,13 @@ var ButtonType = /* @__PURE__ */ ((ButtonType2) => {
129
39
  ButtonType2["reset"] = "reset";
130
40
  return ButtonType2;
131
41
  })(ButtonType || {});
42
+ var ActionTag = /* @__PURE__ */ ((ActionTag2) => {
43
+ ActionTag2["nuxtLink"] = "nuxt-link";
44
+ ActionTag2["routerLink"] = "router-link";
45
+ ActionTag2["a"] = "a";
46
+ ActionTag2["button"] = "button";
47
+ return ActionTag2;
48
+ })(ActionTag || {});
132
49
  var AnchorTarget = /* @__PURE__ */ ((AnchorTarget2) => {
133
50
  AnchorTarget2["_blank"] = "_blank";
134
51
  AnchorTarget2["_self"] = "_self";
@@ -171,7 +88,24 @@ const __default__$1 = {
171
88
  };
172
89
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
173
90
  ...__default__$1,
174
- props: VvIconProps,
91
+ props: /* @__PURE__ */ mergeDefaults({
92
+ name: {},
93
+ color: {},
94
+ width: {},
95
+ height: {},
96
+ provider: {},
97
+ prefix: {},
98
+ src: {},
99
+ horizontalFlip: { type: Boolean },
100
+ verticalFlip: { type: Boolean },
101
+ flip: {},
102
+ mode: {},
103
+ inline: { type: Boolean },
104
+ rotate: {},
105
+ onLoad: { type: Function },
106
+ svg: {},
107
+ modifiers: {}
108
+ }, VvIconPropsDefaults),
175
109
  setup(__props) {
176
110
  const props = __props;
177
111
  const hasRotate = computed(() => {
@@ -258,7 +192,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
258
192
  color: _ctx.color,
259
193
  onLoad: _ctx.onLoad,
260
194
  icon: unref(icon)
261
- }), null, 16, ["class"])) : createCommentVNode("", true);
195
+ }), null, 16, ["class"])) : createCommentVNode("v-if", true);
262
196
  };
263
197
  }
264
198
  });
@@ -279,6 +213,7 @@ const LinkProps = {
279
213
  */
280
214
  target: {
281
215
  type: String,
216
+ default: void 0,
282
217
  validator: (value) => Object.values(AnchorTarget).includes(value)
283
218
  },
284
219
  /**
@@ -293,38 +228,65 @@ const DisabledProps = {
293
228
  /**
294
229
  * Whether the form control is disabled
295
230
  */
296
- disabled: Boolean
231
+ disabled: {
232
+ type: Boolean,
233
+ default: false
234
+ }
297
235
  };
298
236
  const ActiveProps = {
299
237
  /**
300
238
  * Whether the item is active
301
239
  */
302
- active: Boolean
240
+ active: {
241
+ type: Boolean,
242
+ default: false
243
+ }
244
+ };
245
+ const CurrentProps = {
246
+ /**
247
+ * Whether the item is current
248
+ */
249
+ current: {
250
+ type: Boolean,
251
+ default: false
252
+ }
303
253
  };
304
254
  const PressedProps = {
305
255
  /**
306
256
  * Whether the item is pressed
307
257
  */
308
- pressed: Boolean
258
+ pressed: {
259
+ type: Boolean,
260
+ default: false
261
+ }
309
262
  };
310
263
  const LabelProps = {
311
264
  /**
312
265
  * The item label
313
266
  */
314
- label: [String, Number]
267
+ label: {
268
+ type: [String, Number],
269
+ default: void 0
270
+ }
315
271
  };
316
272
  const ModifiersProps = {
317
273
  /**
318
274
  * Component BEM modifiers
319
275
  */
320
- modifiers: [String, Array]
276
+ modifiers: {
277
+ type: [String, Array],
278
+ default: void 0
279
+ }
321
280
  };
322
281
  const IconProps = {
323
282
  /**
324
283
  * VvIcon name or props
325
284
  * @see VVIcon
326
285
  */
327
- icon: { type: [String, Object] },
286
+ icon: {
287
+ type: [String, Object],
288
+ default: void 0
289
+ },
328
290
  /**
329
291
  * VvIcon position
330
292
  */
@@ -362,7 +324,8 @@ const IdProps = {
362
324
  * Dropdown show / hide transition name
363
325
  */
364
326
  transitionName: {
365
- type: String
327
+ type: String,
328
+ default: void 0
366
329
  },
367
330
  /**
368
331
  * Offset of the dropdown from the trigger
@@ -430,7 +393,8 @@ const IdProps = {
430
393
  * Set dropdown width to the same as the trigger
431
394
  */
432
395
  triggerWidth: {
433
- type: Boolean
396
+ type: Boolean,
397
+ default: false
434
398
  }
435
399
  });
436
400
  ({
@@ -438,6 +402,7 @@ const IdProps = {
438
402
  ...LabelProps,
439
403
  ...PressedProps,
440
404
  ...ActiveProps,
405
+ ...CurrentProps,
441
406
  ...LinkProps,
442
407
  /**
443
408
  * Button type
@@ -453,12 +418,54 @@ const IdProps = {
453
418
  ariaLabel: {
454
419
  type: String,
455
420
  default: void 0
421
+ },
422
+ /**
423
+ * Default tag for the action
424
+ */
425
+ defaultTag: {
426
+ type: String,
427
+ default: ActionTag.button
456
428
  }
457
429
  });
458
430
  function useInjectedAlertGroup() {
459
431
  return inject(INJECTION_KEY_ALERT_GROUP, {});
460
432
  }
461
- const useUniqueId = (id) => computed(() => String((id == null ? void 0 : id.value) || nanoid()));
433
+ const useUniqueId = (id) => computed(() => String((id == null ? void 0 : id.value) || uid()));
434
+ function useComponentIcon(icon, iconPosition) {
435
+ const hasIcon = computed(() => {
436
+ if (typeof (icon == null ? void 0 : icon.value) === "string") {
437
+ return { name: icon == null ? void 0 : icon.value };
438
+ }
439
+ return icon == null ? void 0 : icon.value;
440
+ });
441
+ const hasIconBefore = computed(
442
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Position.before ? hasIcon.value : void 0
443
+ );
444
+ const hasIconAfter = computed(
445
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Position.after ? hasIcon.value : void 0
446
+ );
447
+ const hasIconLeft = computed(
448
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Side.left ? hasIcon.value : void 0
449
+ );
450
+ const hasIconRight = computed(
451
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Side.right ? hasIcon.value : void 0
452
+ );
453
+ const hasIconTop = computed(
454
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Side.top ? hasIcon.value : void 0
455
+ );
456
+ const hasIconBottom = computed(
457
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Side.bottom ? hasIcon.value : void 0
458
+ );
459
+ return {
460
+ hasIcon,
461
+ hasIconLeft,
462
+ hasIconRight,
463
+ hasIconTop,
464
+ hasIconBottom,
465
+ hasIconBefore,
466
+ hasIconAfter
467
+ };
468
+ }
462
469
  const VvAlertProps = {
463
470
  ...IdProps,
464
471
  ...ModifiersProps,
@@ -535,9 +542,7 @@ const useVvAlert = (props, emit) => {
535
542
  const { bus } = useInjectedAlertGroup();
536
543
  const hasId = useUniqueId(computed(() => props.id));
537
544
  const hasTitleId = computed(() => `${hasId.value}-title`);
538
- const hasIcon = computed(
539
- () => typeof props.icon === "string" ? { name: props.icon } : props.icon
540
- );
545
+ const { hasIcon } = useComponentIcon(computed(() => props.icon));
541
546
  const hasClass = useModifiers(
542
547
  "vv-alert",
543
548
  computed(() => props.modifiers),
@@ -606,7 +611,13 @@ const _hoisted_1 = {
606
611
  };
607
612
  const _hoisted_2 = ["id"];
608
613
  const _hoisted_3 = ["aria-label"];
609
- const _hoisted_4 = /* @__PURE__ */ createElementVNode("div", { class: "vv-alert__close-mask" }, null, -1);
614
+ const _hoisted_4 = /* @__PURE__ */ createElementVNode(
615
+ "div",
616
+ { class: "vv-alert__close-mask" },
617
+ null,
618
+ -1
619
+ /* HOISTED */
620
+ );
610
621
  const _hoisted_5 = [
611
622
  _hoisted_4
612
623
  ];
@@ -625,52 +636,84 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
625
636
  ...__default__,
626
637
  props: VvAlertProps,
627
638
  emits: VvAlertEvents,
628
- setup(__props, { expose: __expose, emit }) {
639
+ setup(__props, { expose: __expose, emit: __emit }) {
629
640
  const props = __props;
641
+ const emit = __emit;
630
642
  const { hasProps, hasTitleId, hasIcon, close } = useVvAlert(props, emit);
631
643
  __expose({ close });
632
644
  return (_ctx, _cache) => {
633
- return openBlock(), createElementBlock("div", normalizeProps(guardReactiveProps(unref(hasProps))), [
634
- _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, [
635
- unref(hasIcon) ? (openBlock(), createBlock(_sfc_main$1, mergeProps({ key: 0 }, unref(hasIcon), { class: "vv-alert__icon" }), null, 16)) : createCommentVNode("", true),
636
- renderSlot(_ctx.$slots, "header", {}, () => [
637
- renderSlot(_ctx.$slots, "title::before"),
638
- _ctx.$slots.title || _ctx.title ? (openBlock(), createElementBlock("strong", {
639
- key: 0,
640
- id: unref(hasTitleId),
641
- class: "vv-alert__title"
642
- }, [
643
- renderSlot(_ctx.$slots, "title", {}, () => [
644
- createTextVNode(toDisplayString(_ctx.title), 1)
645
- ])
646
- ], 8, _hoisted_2)) : createCommentVNode("", true),
647
- renderSlot(_ctx.$slots, "title::after")
648
- ]),
649
- renderSlot(_ctx.$slots, "close", normalizeProps(guardReactiveProps({ close: unref(close) })), () => [
650
- _ctx.dismissable || _ctx.autoClose ? (openBlock(), createElementBlock("button", {
651
- key: 0,
652
- class: "vv-alert__close",
653
- type: "button",
654
- "aria-label": _ctx.closeLabel,
655
- onClick: _cache[0] || (_cache[0] = withModifiers(
656
- //@ts-ignore
657
- (...args) => unref(close) && unref(close)(...args),
658
- ["stop"]
659
- ))
660
- }, _hoisted_5, 8, _hoisted_3)) : createCommentVNode("", true)
661
- ])
662
- ])) : createCommentVNode("", true),
663
- _ctx.$slots.default || _ctx.content ? (openBlock(), createElementBlock("div", _hoisted_6, [
664
- renderSlot(_ctx.$slots, "default", {}, () => [
665
- createTextVNode(toDisplayString(_ctx.content), 1)
666
- ])
667
- ])) : createCommentVNode("", true),
668
- _ctx.$slots.footer || _ctx.footer ? (openBlock(), createElementBlock("div", _hoisted_7, [
669
- renderSlot(_ctx.$slots, "footer", {}, () => [
670
- createTextVNode(toDisplayString(_ctx.footer), 1)
671
- ])
672
- ])) : createCommentVNode("", true)
673
- ], 16);
645
+ return openBlock(), createElementBlock(
646
+ "div",
647
+ normalizeProps(guardReactiveProps(unref(hasProps))),
648
+ [
649
+ _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, [
650
+ unref(hasIcon) ? (openBlock(), createBlock(
651
+ _sfc_main$1,
652
+ mergeProps({ key: 0 }, unref(hasIcon), { class: "vv-alert__icon" }),
653
+ null,
654
+ 16
655
+ /* FULL_PROPS */
656
+ )) : createCommentVNode("v-if", true),
657
+ createCommentVNode(" @slot Header slot "),
658
+ renderSlot(_ctx.$slots, "header", {}, () => [
659
+ createCommentVNode(" @slot Before title slot "),
660
+ renderSlot(_ctx.$slots, "title::before"),
661
+ _ctx.$slots.title || _ctx.title ? (openBlock(), createElementBlock("strong", {
662
+ key: 0,
663
+ id: unref(hasTitleId),
664
+ class: "vv-alert__title"
665
+ }, [
666
+ createCommentVNode(" @slot Title slot "),
667
+ renderSlot(_ctx.$slots, "title", {}, () => [
668
+ createTextVNode(
669
+ toDisplayString(_ctx.title),
670
+ 1
671
+ /* TEXT */
672
+ )
673
+ ])
674
+ ], 8, _hoisted_2)) : createCommentVNode("v-if", true),
675
+ createCommentVNode(" @slot After title slot "),
676
+ renderSlot(_ctx.$slots, "title::after")
677
+ ]),
678
+ createCommentVNode(" @slot Close button slot "),
679
+ renderSlot(_ctx.$slots, "close", normalizeProps(guardReactiveProps({ close: unref(close) })), () => [
680
+ _ctx.dismissable || _ctx.autoClose ? (openBlock(), createElementBlock("button", {
681
+ key: 0,
682
+ class: "vv-alert__close",
683
+ type: "button",
684
+ "aria-label": _ctx.closeLabel,
685
+ onClick: _cache[0] || (_cache[0] = withModifiers(
686
+ //@ts-ignore
687
+ (...args) => unref(close) && unref(close)(...args),
688
+ ["stop"]
689
+ ))
690
+ }, _hoisted_5, 8, _hoisted_3)) : createCommentVNode("v-if", true)
691
+ ])
692
+ ])) : createCommentVNode("v-if", true),
693
+ _ctx.$slots.default || _ctx.content ? (openBlock(), createElementBlock("div", _hoisted_6, [
694
+ createCommentVNode(" @slot Content slot "),
695
+ renderSlot(_ctx.$slots, "default", {}, () => [
696
+ createTextVNode(
697
+ toDisplayString(_ctx.content),
698
+ 1
699
+ /* TEXT */
700
+ )
701
+ ])
702
+ ])) : createCommentVNode("v-if", true),
703
+ _ctx.$slots.footer || _ctx.footer ? (openBlock(), createElementBlock("div", _hoisted_7, [
704
+ createCommentVNode(" @slot Footer slot "),
705
+ renderSlot(_ctx.$slots, "footer", {}, () => [
706
+ createTextVNode(
707
+ toDisplayString(_ctx.footer),
708
+ 1
709
+ /* TEXT */
710
+ )
711
+ ])
712
+ ])) : createCommentVNode("v-if", true)
713
+ ],
714
+ 16
715
+ /* FULL_PROPS */
716
+ );
674
717
  };
675
718
  }
676
719
  });
@@ -1 +1 @@
1
- !function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o(require("vue"),require("@iconify/vue"),require("nanoid")):"function"==typeof define&&define.amd?define(["vue","@iconify/vue","nanoid"],o):(e="undefined"!=typeof globalThis?globalThis:e||self).VvAlert=o(e.vue,e.vue$1,e.nanoid)}(this,(function(e,o,t){"use strict";const l={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]}};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||{});const a=Symbol.for("volver"),s=Symbol.for("alertGroup");function c(o,t,l){return e.computed((()=>{const r={[o]:!0},n="string"==typeof(null==t?void 0:t.value)?t.value.split(" "):null==t?void 0:t.value;return n&&Array.isArray(n)&&n.forEach((e=>{e&&(r[`${o}--${e}`]=!0)})),l&&Object.keys(l.value).forEach((t=>{r[`${o}--${t}`]=e.unref(l.value[t])})),r}))}const u=e.defineComponent({name:"VvIcon",props:l,setup(t){const l=t,r=e.computed((()=>"string"==typeof l.rotate?parseFloat(l.rotate):l.rotate)),n=e.ref(!0),i=e.inject(a),{modifiers:s}=e.toRefs(l),u=c("vv-icon",s),d=e.computed((()=>l.provider||(null==i?void 0:i.iconsProvider))),f=e.computed((()=>{const e=l.name??"",t=`@${d.value}:${l.prefix}:${e}`;if(o.iconExists(t))return t;const r=null==i?void 0:i.iconsCollections.find((t=>{const l=`@${d.value}:${t.prefix}:${e}`;return o.iconExists(l)}));return r?`@${d.value}:${r.prefix}:${e}`:e}));function p(e){const t=function(e){let o;if("undefined"==typeof window){const{JSDOM:e}=require("jsdom");o=(new e).window}return(o?new o.DOMParser:new window.DOMParser).parseFromString(e,"text/html").querySelector("svg")}(e),r=(null==t?void 0:t.innerHTML.trim())||"";t&&r&&o.addIcon(`@${d.value}:${l.prefix}:${l.name}`,{body:r,height:t.viewBox.baseVal.height,width:t.viewBox.baseVal.width})}return i&&l.src&&!o.iconExists(`@${d.value}:${l.prefix}:${l.name}`)&&(n.value=!1,i.fetchIcon(l.src).then((e=>{e&&(p(e),n.value=!0)})).catch((e=>{throw new Error(`Error during fetch icon: ${null==e?void 0:e.message}`)}))),l.svg&&p(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(f)}),null,16,["class"])):e.createCommentVNode("",!0)}}),d=(Boolean,Boolean,Boolean,{modifiers:[String,Array]}),f={icon:{type:[String,Object]},iconPosition:{type:String,default:n.before,validation:e=>Object.values(n).includes(e)}},p={id:[String,Number]};r.bottom,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,i.button;const m={...p,...d,...f,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"}},v=(o,l)=>{const{bus:r}=e.inject(s,{}),n=(i=e.computed((()=>o.id)),e.computed((()=>String((null==i?void 0:i.value)||t.nanoid()))));var i;const a=e.computed((()=>`${n.value}-title`)),u=e.computed((()=>"string"==typeof o.icon?{name:o.icon}:o.icon)),d=c("vv-alert",e.computed((()=>o.modifiers)),e.computed((()=>({dismissable:o.autoClose>0||o.dismissable,"auto-close":o.autoClose>0,hover:v.value})))),f=e.computed((()=>({"--alert-duration":`${o.autoClose}ms`}))),p=()=>{m&&clearTimeout(m),l("close",n.value),null==r||r.emit("close",n.value)};let m;e.watch((()=>o.autoClose),(e=>{e>0?m=setTimeout(p,e):m&&clearTimeout(m)}),{immediate:!0});const v=e.ref(!1),g=e.withModifiers((()=>{v.value=!0,m&&clearTimeout(m)}),["passive"]),y=e.withModifiers((()=>{v.value=!1,o.autoClose>0&&(m=setTimeout(p,o.autoClose))}),["passive"]);return{close:p,hasIcon:u,hasTitleId:a,hasProps:e.computed((()=>({onMouseover:g,onMouseleave:y,class:d.value,style:f.value,role:o.role,"aria-labelledby":a.value})))}},g={key:0,class:"vv-alert__header"},y=["id"],h=["aria-label"],b=[e.createElementVNode("div",{class:"vv-alert__close-mask"},null,-1)],$={key:1,class:"vv-alert__content"},S={key:2,class:"vv-alert__footer"};return e.defineComponent({name:"VvAlert",props:m,emits:["close"],setup(o,{expose:t,emit:l}){const r=o,{hasProps:n,hasTitleId:i,hasIcon:a,close:s}=v(r,l);return t({close:s}),(o,t)=>(e.openBlock(),e.createElementBlock("div",e.normalizeProps(e.guardReactiveProps(e.unref(n))),[o.$slots.header||o.$slots.title||o.$slots.close||o.$slots["title::before"]||o.$slots["title::after"]||o.title||o.dismissable||o.autoClose?(e.openBlock(),e.createElementBlock("div",g,[e.unref(a)?(e.openBlock(),e.createBlock(u,e.mergeProps({key:0},e.unref(a),{class:"vv-alert__icon"}),null,16)):e.createCommentVNode("",!0),e.renderSlot(o.$slots,"header",{},(()=>[e.renderSlot(o.$slots,"title::before"),o.$slots.title||o.title?(e.openBlock(),e.createElementBlock("strong",{key:0,id:e.unref(i),class:"vv-alert__title"},[e.renderSlot(o.$slots,"title",{},(()=>[e.createTextVNode(e.toDisplayString(o.title),1)]))],8,y)):e.createCommentVNode("",!0),e.renderSlot(o.$slots,"title::after")])),e.renderSlot(o.$slots,"close",e.normalizeProps(e.guardReactiveProps({close:e.unref(s)})),(()=>[o.dismissable||o.autoClose?(e.openBlock(),e.createElementBlock("button",{key:0,class:"vv-alert__close",type:"button","aria-label":o.closeLabel,onClick:t[0]||(t[0]=e.withModifiers(((...o)=>e.unref(s)&&e.unref(s)(...o)),["stop"]))},b,8,h)):e.createCommentVNode("",!0)]))])):e.createCommentVNode("",!0),o.$slots.default||o.content?(e.openBlock(),e.createElementBlock("div",$,[e.renderSlot(o.$slots,"default",{},(()=>[e.createTextVNode(e.toDisplayString(o.content),1)]))])):e.createCommentVNode("",!0),o.$slots.footer||o.footer?(e.openBlock(),e.createElementBlock("div",S,[e.renderSlot(o.$slots,"footer",{},(()=>[e.createTextVNode(e.toDisplayString(o.footer),1)]))])):e.createCommentVNode("",!0)],16))}})}));
1
+ !function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o(require("vue"),require("@iconify/vue"),require("uid")):"function"==typeof define&&define.amd?define(["vue","@iconify/vue","uid"],o):(e="undefined"!=typeof globalThis?globalThis:e||self).VvAlert=o(e.vue,e.vue$1,e.uid)}(this,(function(e,o,t){"use strict";const l={prefix:"normal"};var n=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(n||{}),r=(e=>(e.before="before",e.after="after",e))(r||{}),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");function c(o,t,l){return e.computed((()=>{const n={[o]:!0},r="string"==typeof(null==t?void 0:t.value)?t.value.split(" "):null==t?void 0:t.value;return r&&Array.isArray(r)&&r.forEach((e=>{e&&(n[`${o}--${e}`]=!0)})),l&&Object.keys(l.value).forEach((t=>{n[`${o}--${t}`]=e.unref(l.value[t])})),n}))}const d=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:{}},l),setup(t){const l=t,n=e.computed((()=>"string"==typeof l.rotate?parseFloat(l.rotate):l.rotate)),r=e.ref(!0),i=e.inject(s),{modifiers:a}=e.toRefs(l),u=c("vv-icon",a),d=e.computed((()=>l.provider||(null==i?void 0:i.iconsProvider))),v=e.computed((()=>{const e=l.name??"",t=`@${d.value}:${l.prefix}:${e}`;if(o.iconExists(t))return t;const n=null==i?void 0:i.iconsCollections.find((t=>{const l=`@${d.value}:${t.prefix}:${e}`;return o.iconExists(l)}));return n?`@${d.value}:${n.prefix}:${e}`:e}));function f(e){const t=function(e){let o;if("undefined"==typeof window){const{JSDOM:e}=require("jsdom");o=(new e).window}return(o?new o.DOMParser:new window.DOMParser).parseFromString(e,"text/html").querySelector("svg")}(e),n=(null==t?void 0:t.innerHTML.trim())||"";t&&n&&o.addIcon(`@${d.value}:${l.prefix}:${l.name}`,{body:n,height:t.viewBox.baseVal.height,width:t.viewBox.baseVal.width})}return i&&l.src&&!o.iconExists(`@${d.value}:${l.prefix}:${l.name}`)&&(r.value=!1,i.fetchIcon(l.src).then((e=>{e&&(f(e),r.value=!0)})).catch((e=>{throw new Error(`Error during fetch icon: ${null==e?void 0:e.message}`)}))),l.svg&&f(l.svg),(t,l)=>e.unref(r)?(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(n),color:t.color,onLoad:t.onLoad,icon:e.unref(v)}),null,16,["class"])):e.createCommentVNode("v-if",!0)}}),v=(Boolean,Boolean,Boolean,Boolean,{modifiers:{type:[String,Array],default:void 0}}),f={icon:{type:[String,Object],default:void 0},iconPosition:{type:String,default:r.before,validation:e=>Object.values(r).includes(e)}},m={id:[String,Number]};n.bottom,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,i.button,a.button;const p={...m,...v,...f,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"}},h=(o,l)=>{const{bus:i}=e.inject(u,{}),a=(s=e.computed((()=>o.id)),e.computed((()=>String((null==s?void 0:s.value)||t.uid()))));var s;const d=e.computed((()=>`${a.value}-title`)),{hasIcon:v}=function(o,t){const l=e.computed((()=>"string"==typeof(null==o?void 0:o.value)?{name:null==o?void 0:o.value}:null==o?void 0:o.value)),i=e.computed((()=>(null==t?void 0:t.value)===r.before?l.value:void 0)),a=e.computed((()=>(null==t?void 0:t.value)===r.after?l.value:void 0)),s=e.computed((()=>(null==t?void 0:t.value)===n.left?l.value:void 0)),u=e.computed((()=>(null==t?void 0:t.value)===n.right?l.value:void 0)),c=e.computed((()=>(null==t?void 0:t.value)===n.top?l.value:void 0)),d=e.computed((()=>(null==t?void 0:t.value)===n.bottom?l.value:void 0));return{hasIcon:l,hasIconLeft:s,hasIconRight:u,hasIconTop:c,hasIconBottom:d,hasIconBefore:i,hasIconAfter:a}}(e.computed((()=>o.icon))),f=c("vv-alert",e.computed((()=>o.modifiers)),e.computed((()=>({dismissable:o.autoClose>0||o.dismissable,"auto-close":o.autoClose>0,hover:b.value})))),m=e.computed((()=>({"--alert-duration":`${o.autoClose}ms`}))),p=()=>{h&&clearTimeout(h),l("close",a.value),null==i||i.emit("close",a.value)};let h;e.watch((()=>o.autoClose),(e=>{e>0?h=setTimeout(p,e):h&&clearTimeout(h)}),{immediate:!0});const b=e.ref(!1),y=e.withModifiers((()=>{b.value=!0,h&&clearTimeout(h)}),["passive"]),g=e.withModifiers((()=>{b.value=!1,o.autoClose>0&&(h=setTimeout(p,o.autoClose))}),["passive"]);return{close:p,hasIcon:v,hasTitleId:d,hasProps:e.computed((()=>({onMouseover:y,onMouseleave:g,class:f.value,style:m.value,role:o.role,"aria-labelledby":d.value})))}},b={key:0,class:"vv-alert__header"},y=["id"],g=["aria-label"],$=[e.createElementVNode("div",{class:"vv-alert__close-mask"},null,-1)],B={key:1,class:"vv-alert__content"},k={key:2,class:"vv-alert__footer"};return e.defineComponent({name:"VvAlert",props:p,emits:["close"],setup(o,{expose:t,emit:l}){const n=o,r=l,{hasProps:i,hasTitleId:a,hasIcon:s,close:u}=h(n,r);return t({close:u}),(o,t)=>(e.openBlock(),e.createElementBlock("div",e.normalizeProps(e.guardReactiveProps(e.unref(i))),[o.$slots.header||o.$slots.title||o.$slots.close||o.$slots["title::before"]||o.$slots["title::after"]||o.title||o.dismissable||o.autoClose?(e.openBlock(),e.createElementBlock("div",b,[e.unref(s)?(e.openBlock(),e.createBlock(d,e.mergeProps({key:0},e.unref(s),{class:"vv-alert__icon"}),null,16)):e.createCommentVNode("v-if",!0),e.createCommentVNode(" @slot Header slot "),e.renderSlot(o.$slots,"header",{},(()=>[e.createCommentVNode(" @slot Before title slot "),e.renderSlot(o.$slots,"title::before"),o.$slots.title||o.title?(e.openBlock(),e.createElementBlock("strong",{key:0,id:e.unref(a),class:"vv-alert__title"},[e.createCommentVNode(" @slot Title slot "),e.renderSlot(o.$slots,"title",{},(()=>[e.createTextVNode(e.toDisplayString(o.title),1)]))],8,y)):e.createCommentVNode("v-if",!0),e.createCommentVNode(" @slot After title slot "),e.renderSlot(o.$slots,"title::after")])),e.createCommentVNode(" @slot Close button slot "),e.renderSlot(o.$slots,"close",e.normalizeProps(e.guardReactiveProps({close:e.unref(u)})),(()=>[o.dismissable||o.autoClose?(e.openBlock(),e.createElementBlock("button",{key:0,class:"vv-alert__close",type:"button","aria-label":o.closeLabel,onClick:t[0]||(t[0]=e.withModifiers(((...o)=>e.unref(u)&&e.unref(u)(...o)),["stop"]))},$,8,g)):e.createCommentVNode("v-if",!0)]))])):e.createCommentVNode("v-if",!0),o.$slots.default||o.content?(e.openBlock(),e.createElementBlock("div",B,[e.createCommentVNode(" @slot Content slot "),e.renderSlot(o.$slots,"default",{},(()=>[e.createTextVNode(e.toDisplayString(o.content),1)]))])):e.createCommentVNode("v-if",!0),o.$slots.footer||o.footer?(e.openBlock(),e.createElementBlock("div",k,[e.createCommentVNode(" @slot Footer slot "),e.renderSlot(o.$slots,"footer",{},(()=>[e.createTextVNode(e.toDisplayString(o.footer),1)]))])):e.createCommentVNode("v-if",!0)],16))}})}));