@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,10 +1,18 @@
1
1
  declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
2
2
  value: (StringConstructor | NumberConstructor)[];
3
- modifiers: globalThis.PropType<string | string[]>;
4
- }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
3
+ modifiers: {
4
+ type: globalThis.PropType<string | string[]>;
5
+ default: undefined;
6
+ };
7
+ }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<globalThis.ExtractPropTypes<{
5
8
  value: (StringConstructor | NumberConstructor)[];
6
- modifiers: globalThis.PropType<string | string[]>;
7
- }>>, {}, {}>, {
9
+ modifiers: {
10
+ type: globalThis.PropType<string | string[]>;
11
+ default: undefined;
12
+ };
13
+ }>>, {
14
+ modifiers: string | string[];
15
+ }, {}>, {
8
16
  default?(_: {}): any;
9
17
  }>;
10
18
  export default _default;
@@ -1,4 +1,7 @@
1
1
  export declare const VvBadgeProps: {
2
2
  value: (StringConstructor | NumberConstructor)[];
3
- modifiers: globalThis.PropType<string | string[]>;
3
+ modifiers: {
4
+ type: globalThis.PropType<string | string[]>;
5
+ default: undefined;
6
+ };
4
7
  };
@@ -1,4 +1,4 @@
1
- import { computed, unref, defineComponent, toRefs, openBlock, createElementBlock, normalizeClass, createElementVNode, Fragment, renderList, createBlock, resolveDynamicComponent, mergeProps, withCtx, renderSlot, normalizeProps, guardReactiveProps, createTextVNode, toDisplayString } from "vue";
1
+ import { computed, unref, inject, defineComponent, ref, watch, openBlock, createBlock, resolveDynamicComponent, mergeProps, withCtx, renderSlot, createTextVNode, toDisplayString, toRefs, createElementBlock, normalizeClass, createElementVNode, Fragment, renderList, createVNode, normalizeProps, guardReactiveProps } from "vue";
2
2
  function useModifiers(prefix, modifiers, others) {
3
3
  return computed(() => {
4
4
  const toReturn = {
@@ -56,6 +56,13 @@ var ButtonType = /* @__PURE__ */ ((ButtonType2) => {
56
56
  ButtonType2["reset"] = "reset";
57
57
  return ButtonType2;
58
58
  })(ButtonType || {});
59
+ var ActionTag = /* @__PURE__ */ ((ActionTag2) => {
60
+ ActionTag2["nuxtLink"] = "nuxt-link";
61
+ ActionTag2["routerLink"] = "router-link";
62
+ ActionTag2["a"] = "a";
63
+ ActionTag2["button"] = "button";
64
+ return ActionTag2;
65
+ })(ActionTag || {});
59
66
  var AnchorTarget = /* @__PURE__ */ ((AnchorTarget2) => {
60
67
  AnchorTarget2["_blank"] = "_blank";
61
68
  AnchorTarget2["_self"] = "_self";
@@ -63,6 +70,13 @@ var AnchorTarget = /* @__PURE__ */ ((AnchorTarget2) => {
63
70
  AnchorTarget2["_top"] = "_top";
64
71
  return AnchorTarget2;
65
72
  })(AnchorTarget || {});
73
+ const INJECTION_KEY_VOLVER = Symbol.for("volver");
74
+ const INJECTION_KEY_DROPDOWN_TRIGGER = Symbol.for(
75
+ "dropdownTrigger"
76
+ );
77
+ const INJECTION_KEY_DROPDOWN_ACTION = Symbol.for(
78
+ "dropdownAction"
79
+ );
66
80
  const LinkProps = {
67
81
  /**
68
82
  * The router-link/nuxt-link property, if it is defined the button is rendered as a ruouter-link or nuxt-link.
@@ -80,6 +94,7 @@ const LinkProps = {
80
94
  */
81
95
  target: {
82
96
  type: String,
97
+ default: void 0,
83
98
  validator: (value) => Object.values(AnchorTarget).includes(value)
84
99
  },
85
100
  /**
@@ -94,38 +109,65 @@ const DisabledProps = {
94
109
  /**
95
110
  * Whether the form control is disabled
96
111
  */
97
- disabled: Boolean
112
+ disabled: {
113
+ type: Boolean,
114
+ default: false
115
+ }
98
116
  };
99
117
  const ActiveProps = {
100
118
  /**
101
119
  * Whether the item is active
102
120
  */
103
- active: Boolean
121
+ active: {
122
+ type: Boolean,
123
+ default: false
124
+ }
125
+ };
126
+ const CurrentProps = {
127
+ /**
128
+ * Whether the item is current
129
+ */
130
+ current: {
131
+ type: Boolean,
132
+ default: false
133
+ }
104
134
  };
105
135
  const PressedProps = {
106
136
  /**
107
137
  * Whether the item is pressed
108
138
  */
109
- pressed: Boolean
139
+ pressed: {
140
+ type: Boolean,
141
+ default: false
142
+ }
110
143
  };
111
144
  const LabelProps = {
112
145
  /**
113
146
  * The item label
114
147
  */
115
- label: [String, Number]
148
+ label: {
149
+ type: [String, Number],
150
+ default: void 0
151
+ }
116
152
  };
117
153
  const ModifiersProps = {
118
154
  /**
119
155
  * Component BEM modifiers
120
156
  */
121
- modifiers: [String, Array]
157
+ modifiers: {
158
+ type: [String, Array],
159
+ default: void 0
160
+ }
122
161
  };
123
162
  ({
124
163
  /**
125
164
  * VvIcon name or props
126
165
  * @see VVIcon
127
166
  */
128
- icon: { type: [String, Object] },
167
+ icon: {
168
+ type: [String, Object],
169
+ default: void 0
170
+ },
129
171
  /**
130
172
  * VvIcon position
131
173
  */
@@ -156,7 +198,8 @@ const ModifiersProps = {
156
198
  * Dropdown show / hide transition name
157
199
  */
158
200
  transitionName: {
159
- type: String
201
+ type: String,
202
+ default: void 0
160
203
  },
161
204
  /**
162
205
  * Offset of the dropdown from the trigger
@@ -224,14 +267,16 @@ const ModifiersProps = {
224
267
  * Set dropdown width to the same as the trigger
225
268
  */
226
269
  triggerWidth: {
227
- type: Boolean
270
+ type: Boolean,
271
+ default: false
228
272
  }
229
273
  });
230
- ({
274
+ const ActionProps = {
231
275
  ...DisabledProps,
232
276
  ...LabelProps,
233
277
  ...PressedProps,
234
278
  ...ActiveProps,
279
+ ...CurrentProps,
235
280
  ...LinkProps,
236
281
  /**
237
282
  * Button type
@@ -247,12 +292,150 @@ const ModifiersProps = {
247
292
  ariaLabel: {
248
293
  type: String,
249
294
  default: void 0
295
+ },
296
+ /**
297
+ * Default tag for the action
298
+ */
299
+ defaultTag: {
300
+ type: String,
301
+ default: ActionTag.button
250
302
  }
251
- });
303
+ };
252
304
  const VvBreadcrumbProps = {
253
305
  ...ModifiersProps,
254
306
  routes: Array
255
307
  };
308
+ const VvActionEvents = ["click", "mouseover", "mouseleave"];
309
+ const VvActionProps = ActionProps;
310
+ function useVolver() {
311
+ return inject(INJECTION_KEY_VOLVER);
312
+ }
313
+ function useInjectedDropdownTrigger() {
314
+ return inject(INJECTION_KEY_DROPDOWN_TRIGGER, {});
315
+ }
316
+ function useInjectedDropdownAction() {
317
+ return inject(INJECTION_KEY_DROPDOWN_ACTION, {});
318
+ }
319
+ const __default__$1 = {
320
+ name: "VvAction"
321
+ };
322
+ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
323
+ ...__default__$1,
324
+ props: VvActionProps,
325
+ emits: VvActionEvents,
326
+ setup(__props, { expose: __expose, emit: __emit }) {
327
+ const props = __props;
328
+ const emit = __emit;
329
+ const volver = useVolver();
330
+ const element = ref(null);
331
+ __expose({ $el: element });
332
+ const {
333
+ reference: dropdownTriggerReference,
334
+ bus: dropdownEventBus,
335
+ aria: dropdownAria,
336
+ expanded: dropdownExpanded
337
+ } = useInjectedDropdownTrigger();
338
+ watch(
339
+ () => element.value,
340
+ (newValue) => {
341
+ if (dropdownTriggerReference) {
342
+ dropdownTriggerReference.value = newValue;
343
+ }
344
+ }
345
+ );
346
+ const pressed = computed(() => {
347
+ return props.pressed || (dropdownExpanded == null ? void 0 : dropdownExpanded.value);
348
+ });
349
+ const { role } = useInjectedDropdownAction();
350
+ const hasTag = computed(() => {
351
+ switch (true) {
352
+ case props.disabled:
353
+ return ActionTag.button;
354
+ case props.to !== void 0:
355
+ return (volver == null ? void 0 : volver.nuxt) ? ActionTag.nuxtLink : ActionTag.routerLink;
356
+ case props.href !== void 0:
357
+ return ActionTag.a;
358
+ default:
359
+ return props.defaultTag;
360
+ }
361
+ });
362
+ const hasProps = computed(() => {
363
+ const toReturn = {
364
+ ...dropdownAria == null ? void 0 : dropdownAria.value,
365
+ ariaPressed: pressed.value ? true : void 0,
366
+ ariaLabel: props.ariaLabel,
367
+ role: role == null ? void 0 : role.value
368
+ };
369
+ switch (hasTag.value) {
370
+ case ActionTag.a:
371
+ return {
372
+ ...toReturn,
373
+ href: props.href,
374
+ target: props.target,
375
+ rel: props.rel
376
+ };
377
+ case ActionTag.routerLink:
378
+ case ActionTag.nuxtLink:
379
+ return {
380
+ ...toReturn,
381
+ to: props.to,
382
+ target: props.target
383
+ };
384
+ case ActionTag.button:
385
+ return {
386
+ ...toReturn,
387
+ type: props.type,
388
+ disabled: props.disabled
389
+ };
390
+ default:
391
+ return toReturn;
392
+ }
393
+ });
394
+ const onClick = (e) => {
395
+ if (props.disabled) {
396
+ e.preventDefault();
397
+ return;
398
+ }
399
+ dropdownEventBus == null ? void 0 : dropdownEventBus.emit("click", e);
400
+ emit("click", e);
401
+ };
402
+ const onMouseover = (e) => {
403
+ dropdownEventBus == null ? void 0 : dropdownEventBus.emit("mouseover", e);
404
+ emit("mouseover", e);
405
+ };
406
+ const onMouseleave = (e) => {
407
+ dropdownEventBus == null ? void 0 : dropdownEventBus.emit("mouseleave", e);
408
+ emit("mouseleave", e);
409
+ };
410
+ return (_ctx, _cache) => {
411
+ return openBlock(), createBlock(resolveDynamicComponent(unref(hasTag)), mergeProps(unref(hasProps), {
412
+ ref_key: "element",
413
+ ref: element,
414
+ class: {
415
+ active: _ctx.active,
416
+ pressed: unref(pressed),
417
+ disabled: _ctx.disabled,
418
+ current: _ctx.current
419
+ },
420
+ onClickPassive: onClick,
421
+ onMouseoverPassive: onMouseover,
422
+ onMouseleavePassive: onMouseleave
423
+ }), {
424
+ default: withCtx(() => [
425
+ renderSlot(_ctx.$slots, "default", {}, () => [
426
+ createTextVNode(
427
+ toDisplayString(_ctx.label),
428
+ 1
429
+ /* TEXT */
430
+ )
431
+ ])
432
+ ]),
433
+ _: 3
434
+ /* FORWARDED */
435
+ }, 16, ["class"]);
436
+ };
437
+ }
438
+ });
256
439
  const _hoisted_1 = { class: "vv-breadcrumb__list" };
257
440
  const _hoisted_2 = ["content"];
258
441
  const __default__ = {
@@ -265,46 +448,71 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
265
448
  const props = __props;
266
449
  const { modifiers } = toRefs(props);
267
450
  const bemCssClasses = useModifiers("vv-breadcrumb", modifiers);
451
+ const length = computed(() => {
452
+ var _a;
453
+ return ((_a = props.routes) == null ? void 0 : _a.length) ?? 0;
454
+ });
455
+ const isLast = (index) => index === length.value - 1;
268
456
  return (_ctx, _cache) => {
269
- return openBlock(), createElementBlock("nav", {
270
- class: normalizeClass(unref(bemCssClasses)),
271
- "aria-label": "breadcrumbs"
272
- }, [
273
- createElementVNode("ol", _hoisted_1, [
274
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.routes, (route, index) => {
275
- var _a, _b, _c, _d;
276
- return openBlock(), createElementBlock("li", {
277
- key: `${route.label}-${index}`,
278
- class: normalizeClass({
279
- "vv-breadcrumb__item": index < Number((_a = _ctx.routes) == null ? void 0 : _a.length) - 1,
280
- "vv-breadcrumb__item-active": index === Number((_b = _ctx.routes) == null ? void 0 : _b.length) - 1
457
+ return openBlock(), createElementBlock(
458
+ "nav",
459
+ {
460
+ class: normalizeClass(unref(bemCssClasses)),
461
+ "aria-label": "breadcrumbs"
462
+ },
463
+ [
464
+ createElementVNode("ol", _hoisted_1, [
465
+ (openBlock(true), createElementBlock(
466
+ Fragment,
467
+ null,
468
+ renderList(_ctx.routes, ({ label, ...route }, index) => {
469
+ return openBlock(), createElementBlock(
470
+ "li",
471
+ {
472
+ key: `${label}-${index}`,
473
+ class: normalizeClass(
474
+ !isLast(index) ? "vv-breadcrumb__item" : "vv-breadcrumb__item-active"
475
+ ),
476
+ itemprop: "itemListElement",
477
+ itemtype: "https://schema.org/ListItem",
478
+ itemscope: ""
479
+ },
480
+ [
481
+ createVNode(_sfc_main$1, mergeProps(route, {
482
+ class: !isLast(index) ? "vv-breadcrumb__link" : "vv-breadcrumb__label",
483
+ "aria-current": isLast(index) ? "page" : void 0,
484
+ itemprop: "item",
485
+ "default-tag": "span"
486
+ }), {
487
+ default: withCtx(() => [
488
+ renderSlot(_ctx.$slots, "label", normalizeProps(guardReactiveProps({ route, index })), () => [
489
+ createTextVNode(
490
+ toDisplayString(label),
491
+ 1
492
+ /* TEXT */
493
+ )
494
+ ])
495
+ ]),
496
+ _: 2
497
+ /* DYNAMIC */
498
+ }, 1040, ["class", "aria-current"]),
499
+ createElementVNode("meta", {
500
+ itemprop: "position",
501
+ content: `${index + 1}`
502
+ }, null, 8, _hoisted_2)
503
+ ],
504
+ 2
505
+ /* CLASS */
506
+ );
281
507
  }),
282
- itemprop: "itemListElement",
283
- itemtype: "https://schema.org/ListItem",
284
- itemscope: ""
285
- }, [
286
- (openBlock(), createBlock(resolveDynamicComponent(route.to ? "router-link" : route.href ? "a" : "span"), mergeProps(route, {
287
- class: {
288
- "vv-breadcrumb__link": index < Number((_c = _ctx.routes) == null ? void 0 : _c.length) - 1
289
- },
290
- "aria-current": index === Number((_d = _ctx.routes) == null ? void 0 : _d.length) - 1 ? "page" : void 0,
291
- itemprop: "item"
292
- }), {
293
- default: withCtx(() => [
294
- renderSlot(_ctx.$slots, "label", normalizeProps(guardReactiveProps({ route, index })), () => [
295
- createTextVNode(toDisplayString(route.label), 1)
296
- ])
297
- ]),
298
- _: 2
299
- }, 1040, ["class", "aria-current"])),
300
- createElementVNode("meta", {
301
- itemprop: "position",
302
- content: `${index + 1}`
303
- }, null, 8, _hoisted_2)
304
- ], 2);
305
- }), 128))
306
- ])
307
- ], 2);
508
+ 128
509
+ /* KEYED_FRAGMENT */
510
+ ))
511
+ ])
512
+ ],
513
+ 2
514
+ /* CLASS */
515
+ );
308
516
  };
309
517
  }
310
518
  });
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("vue")):"function"==typeof define&&define.amd?define(["vue"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).VvBreadcrumb=t(e.vue)}(this,(function(e){"use strict";var t=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(t||{}),o=(e=>(e.before="before",e.after="after",e))(o||{}),r=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(r||{});Boolean,Boolean,Boolean;const n={modifiers:[String,Array]};o.before,t.bottom,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,r.button;const l={...n,routes:Array},a={class:"vv-breadcrumb__list"},i=["content"];return e.defineComponent({name:"VvBreadcrumb",props:l,setup(t){const o=t,{modifiers:r}=e.toRefs(o),n=function(t,o,r){return e.computed((()=>{const n={[t]:!0},l="string"==typeof(null==o?void 0:o.value)?o.value.split(" "):null==o?void 0:o.value;return l&&Array.isArray(l)&&l.forEach((e=>{e&&(n[`${t}--${e}`]=!0)})),r&&Object.keys(r.value).forEach((o=>{n[`${t}--${o}`]=e.unref(r.value[o])})),n}))}("vv-breadcrumb",r);return(t,o)=>(e.openBlock(),e.createElementBlock("nav",{class:e.normalizeClass(e.unref(n)),"aria-label":"breadcrumbs"},[e.createElementVNode("ol",a,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.routes,((o,r)=>{var n,l,a,u;return e.openBlock(),e.createElementBlock("li",{key:`${o.label}-${r}`,class:e.normalizeClass({"vv-breadcrumb__item":r<Number(null==(n=t.routes)?void 0:n.length)-1,"vv-breadcrumb__item-active":r===Number(null==(l=t.routes)?void 0:l.length)-1}),itemprop:"itemListElement",itemtype:"https://schema.org/ListItem",itemscope:""},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.to?"router-link":o.href?"a":"span"),e.mergeProps(o,{class:{"vv-breadcrumb__link":r<Number(null==(a=t.routes)?void 0:a.length)-1},"aria-current":r===Number(null==(u=t.routes)?void 0:u.length)-1?"page":void 0,itemprop:"item"}),{default:e.withCtx((()=>[e.renderSlot(t.$slots,"label",e.normalizeProps(e.guardReactiveProps({route:o,index:r})),(()=>[e.createTextVNode(e.toDisplayString(o.label),1)]))])),_:2},1040,["class","aria-current"])),e.createElementVNode("meta",{itemprop:"position",content:`${r+1}`},null,8,i)],2)})),128))])],2))}})}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("vue")):"function"==typeof define&&define.amd?define(["vue"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).VvBreadcrumb=t(e.vue)}(this,(function(e){"use strict";var t=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(t||{}),r=(e=>(e.before="before",e.after="after",e))(r||{}),o=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(o||{}),a=(e=>(e.nuxtLink="nuxt-link",e.routerLink="router-link",e.a="a",e.button="button",e))(a||{}),l=(e=>(e._blank="_blank",e._self="_self",e._parent="_parent",e._top="_top",e))(l||{});const n=Symbol.for("volver"),u=Symbol.for("dropdownTrigger"),i=Symbol.for("dropdownAction"),s={to:{type:[String,Object]},href:String,target:{type:String,default:void 0,validator:e=>Object.values(l).includes(e)},rel:{type:String,default:"noopener noreferrer"}},d={disabled:{type:Boolean,default:!1}},c={active:{type:Boolean,default:!1}},p={current:{type:Boolean,default:!1}},v={pressed:{type:Boolean,default:!1}},m={label:{type:[String,Number],default:void 0}},f={modifiers:{type:[String,Array],default:void 0}};r.before,t.bottom,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean;const b={...d,...m,...v,...c,...p,...s,type:{type:String,default:o.button,validator:e=>Object.values(o).includes(e)},ariaLabel:{type:String,default:void 0},defaultTag:{type:String,default:a.button}},y={...f,routes:Array},g=b;const k=e.defineComponent({name:"VvAction",props:g,emits:["click","mouseover","mouseleave"],setup(t,{expose:r,emit:o}){const l=t,s=o,d=e.inject(n),c=e.ref(null);r({$el:c});const{reference:p,bus:v,aria:m,expanded:f}=e.inject(u,{});e.watch((()=>c.value),(e=>{p&&(p.value=e)}));const b=e.computed((()=>l.pressed||(null==f?void 0:f.value))),{role:y}=e.inject(i,{}),g=e.computed((()=>{switch(!0){case l.disabled:return a.button;case void 0!==l.to:return(null==d?void 0:d.nuxt)?a.nuxtLink:a.routerLink;case void 0!==l.href:return a.a;default:return l.defaultTag}})),k=e.computed((()=>{const e={...null==m?void 0:m.value,ariaPressed:!!b.value||void 0,ariaLabel:l.ariaLabel,role:null==y?void 0:y.value};switch(g.value){case a.a:return{...e,href:l.href,target:l.target,rel:l.rel};case a.routerLink:case a.nuxtLink:return{...e,to:l.to,target:l.target};case a.button:return{...e,type:l.type,disabled:l.disabled};default:return e}})),B=e=>{l.disabled?e.preventDefault():(null==v||v.emit("click",e),s("click",e))},_=e=>{null==v||v.emit("mouseover",e),s("mouseover",e)},h=e=>{null==v||v.emit("mouseleave",e),s("mouseleave",e)};return(t,r)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(g)),e.mergeProps(e.unref(k),{ref_key:"element",ref:c,class:{active:t.active,pressed:e.unref(b),disabled:t.disabled,current:t.current},onClickPassive:B,onMouseoverPassive:_,onMouseleavePassive:h}),{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default",{},(()=>[e.createTextVNode(e.toDisplayString(t.label),1)]))])),_:3},16,["class"]))}}),B={class:"vv-breadcrumb__list"},_=["content"];return e.defineComponent({name:"VvBreadcrumb",props:y,setup(t){const r=t,{modifiers:o}=e.toRefs(r),a=function(t,r,o){return e.computed((()=>{const a={[t]:!0},l="string"==typeof(null==r?void 0:r.value)?r.value.split(" "):null==r?void 0:r.value;return l&&Array.isArray(l)&&l.forEach((e=>{e&&(a[`${t}--${e}`]=!0)})),o&&Object.keys(o.value).forEach((r=>{a[`${t}--${r}`]=e.unref(o.value[r])})),a}))}("vv-breadcrumb",o),l=e.computed((()=>{var e;return(null==(e=r.routes)?void 0:e.length)??0})),n=e=>e===l.value-1;return(t,r)=>(e.openBlock(),e.createElementBlock("nav",{class:e.normalizeClass(e.unref(a)),"aria-label":"breadcrumbs"},[e.createElementVNode("ol",B,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.routes,(({label:r,...o},a)=>(e.openBlock(),e.createElementBlock("li",{key:`${r}-${a}`,class:e.normalizeClass(n(a)?"vv-breadcrumb__item-active":"vv-breadcrumb__item"),itemprop:"itemListElement",itemtype:"https://schema.org/ListItem",itemscope:""},[e.createVNode(k,e.mergeProps(o,{class:n(a)?"vv-breadcrumb__label":"vv-breadcrumb__link","aria-current":n(a)?"page":void 0,itemprop:"item","default-tag":"span"}),{default:e.withCtx((()=>[e.renderSlot(t.$slots,"label",e.normalizeProps(e.guardReactiveProps({route:o,index:a})),(()=>[e.createTextVNode(e.toDisplayString(r),1)]))])),_:2},1040,["class","aria-current"]),e.createElementVNode("meta",{itemprop:"position",content:`${a+1}`},null,8,_)],2)))),128))])],2))}})}));
@@ -1,12 +1,32 @@
1
1
  declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
2
- routes: globalThis.PropType<import(".").Route[]>;
3
- modifiers: globalThis.PropType<string | string[]>;
4
- }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
5
- routes: globalThis.PropType<import(".").Route[]>;
6
- modifiers: globalThis.PropType<string | string[]>;
7
- }>>, {}, {}>, {
2
+ routes: globalThis.PropType<import("../..").NavItem[]>;
3
+ modifiers: {
4
+ type: globalThis.PropType<string | string[]>;
5
+ default: undefined;
6
+ };
7
+ }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<globalThis.ExtractPropTypes<{
8
+ routes: globalThis.PropType<import("../..").NavItem[]>;
9
+ modifiers: {
10
+ type: globalThis.PropType<string | string[]>;
11
+ default: undefined;
12
+ };
13
+ }>>, {
14
+ modifiers: string | string[];
15
+ }, {}>, {
8
16
  label?(_: {
9
- route: import(".").Route;
17
+ route: {
18
+ ariaLabel?: string | undefined;
19
+ title?: string | undefined;
20
+ to?: string | Record<string, unknown> | undefined;
21
+ href?: string | undefined;
22
+ target?: "_blank" | "_self" | "_parent" | "_top" | undefined;
23
+ rel?: string | undefined;
24
+ disabled?: boolean | undefined;
25
+ current?: boolean | undefined;
26
+ class?: string | string[] | undefined;
27
+ on?: Record<string, () => void> | undefined;
28
+ data?: Record<string, unknown> | undefined;
29
+ };
10
30
  index: number;
11
31
  }): any;
12
32
  }>;
@@ -1,12 +1,8 @@
1
- export interface Route {
2
- label: string;
3
- to?: string | {
4
- [key: string]: unknown;
5
- };
6
- title?: string;
7
- href?: string;
8
- }
1
+ import type { NavItem } from '../../types';
9
2
  export declare const VvBreadcrumbProps: {
10
- routes: globalThis.PropType<Route[]>;
11
- modifiers: globalThis.PropType<string | string[]>;
3
+ routes: globalThis.PropType<NavItem[]>;
4
+ modifiers: {
5
+ type: globalThis.PropType<string | string[]>;
6
+ default: undefined;
7
+ };
12
8
  };