@volverjs/ui-vue 0.0.4 → 0.0.5-beta.2

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 (215) hide show
  1. package/README.md +2 -2
  2. package/auto-imports.d.ts +12 -3
  3. package/bin/icons.cjs +1 -73
  4. package/dist/Volver.d.ts +19 -11
  5. package/dist/components/VvAccordion/VvAccordion.es.js +165 -106
  6. package/dist/components/VvAccordion/VvAccordion.umd.js +1 -1
  7. package/dist/components/VvAccordion/VvAccordion.vue.d.ts +4 -1
  8. package/dist/components/VvAccordion/index.d.ts +8 -3
  9. package/dist/components/VvAccordionGroup/VvAccordionGroup.es.js +264 -164
  10. package/dist/components/VvAccordionGroup/VvAccordionGroup.umd.js +1 -1
  11. package/dist/components/VvAccordionGroup/VvAccordionGroup.vue.d.ts +15 -12
  12. package/dist/components/VvAccordionGroup/index.d.ts +8 -0
  13. package/dist/components/VvAction/VvAction.es.js +276 -98
  14. package/dist/components/VvAction/VvAction.umd.js +1 -1
  15. package/dist/components/VvAction/VvAction.vue.d.ts +12 -12
  16. package/dist/components/VvAction/index.d.ts +2 -2
  17. package/dist/components/VvBadge/VvBadge.es.js +213 -44
  18. package/dist/components/VvBadge/VvBadge.umd.js +1 -1
  19. package/dist/components/VvBadge/VvBadge.vue.d.ts +2 -2
  20. package/dist/components/VvBadge/index.d.ts +1 -1
  21. package/dist/components/VvBreadcrumb/VvBreadcrumb.es.js +247 -75
  22. package/dist/components/VvBreadcrumb/VvBreadcrumb.umd.js +1 -1
  23. package/dist/components/VvBreadcrumb/VvBreadcrumb.vue.d.ts +11 -11
  24. package/dist/components/VvBreadcrumb/index.d.ts +1 -1
  25. package/dist/components/VvButton/VvButton.es.js +646 -360
  26. package/dist/components/VvButton/VvButton.umd.js +1 -1
  27. package/dist/components/VvButton/VvButton.vue.d.ts +18 -18
  28. package/dist/components/VvButton/index.d.ts +13 -13
  29. package/dist/components/VvButtonGroup/VvButtonGroup.es.js +261 -79
  30. package/dist/components/VvButtonGroup/VvButtonGroup.umd.js +1 -1
  31. package/dist/components/VvButtonGroup/VvButtonGroup.vue.d.ts +2 -2
  32. package/dist/components/VvButtonGroup/index.d.ts +1 -1
  33. package/dist/components/VvCard/VvCard.es.js +57 -38
  34. package/dist/components/VvCard/VvCard.umd.js +1 -1
  35. package/dist/components/VvCheckbox/VvCheckbox.es.js +562 -274
  36. package/dist/components/VvCheckbox/VvCheckbox.umd.js +1 -1
  37. package/dist/components/VvCheckbox/VvCheckbox.vue.d.ts +2 -2
  38. package/dist/components/VvCheckbox/index.d.ts +5 -5
  39. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.es.js +661 -340
  40. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.umd.js +1 -1
  41. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.vue.d.ts +7 -7
  42. package/dist/components/VvCheckboxGroup/index.d.ts +3 -3
  43. package/dist/components/VvCombobox/VvCombobox.es.js +1546 -983
  44. package/dist/components/VvCombobox/VvCombobox.umd.js +1 -1
  45. package/dist/components/VvCombobox/VvCombobox.vue.d.ts +138 -51
  46. package/dist/components/VvCombobox/index.d.ts +41 -10
  47. package/dist/components/VvDialog/VvDialog.es.js +387 -141
  48. package/dist/components/VvDialog/VvDialog.umd.js +1 -1
  49. package/dist/components/VvDialog/VvDialog.vue.d.ts +12 -3
  50. package/dist/components/VvDialog/index.d.ts +4 -1
  51. package/dist/components/VvDropdown/VvDropdown.es.js +452 -244
  52. package/dist/components/VvDropdown/VvDropdown.umd.js +1 -1
  53. package/dist/components/VvDropdown/VvDropdown.vue.d.ts +130 -42
  54. package/dist/components/VvDropdown/VvDropdownAction.vue.d.ts +13 -13
  55. package/dist/components/VvDropdown/VvDropdownOption.vue.d.ts +2 -2
  56. package/dist/components/VvDropdown/index.d.ts +40 -11
  57. package/dist/components/VvDropdownAction/VvDropdownAction.es.js +373 -160
  58. package/dist/components/VvDropdownAction/VvDropdownAction.umd.js +1 -1
  59. package/dist/components/VvDropdownItem/VvDropdownItem.es.js +43 -28
  60. package/dist/components/VvDropdownItem/VvDropdownItem.umd.js +1 -1
  61. package/dist/components/VvDropdownOption/VvDropdownOption.es.js +285 -90
  62. package/dist/components/VvDropdownOption/VvDropdownOption.umd.js +1 -1
  63. package/dist/components/VvIcon/VvIcon.es.js +113 -65
  64. package/dist/components/VvIcon/VvIcon.umd.js +1 -1
  65. package/dist/components/VvIcon/VvIcon.vue.d.ts +7 -7
  66. package/dist/components/VvIcon/index.d.ts +2 -2
  67. package/dist/components/VvInputText/VvInputPasswordAction.d.ts +2 -2
  68. package/dist/components/VvInputText/VvInputStepAction.d.ts +1 -1
  69. package/dist/components/VvInputText/VvInputText.es.js +986 -462
  70. package/dist/components/VvInputText/VvInputText.umd.js +1 -1
  71. package/dist/components/VvInputText/VvInputText.vue.d.ts +100 -20
  72. package/dist/components/VvInputText/VvInputTextActions.d.ts +1 -1
  73. package/dist/components/VvInputText/index.d.ts +66 -13
  74. package/dist/components/VvProgress/VvProgress.es.js +216 -45
  75. package/dist/components/VvProgress/VvProgress.umd.js +1 -1
  76. package/dist/components/VvProgress/VvProgress.vue.d.ts +2 -2
  77. package/dist/components/VvProgress/index.d.ts +1 -1
  78. package/dist/components/VvRadio/VvRadio.es.js +499 -238
  79. package/dist/components/VvRadio/VvRadio.umd.js +1 -1
  80. package/dist/components/VvRadio/VvRadio.vue.d.ts +2 -2
  81. package/dist/components/VvRadio/index.d.ts +5 -5
  82. package/dist/components/VvRadioGroup/VvRadioGroup.es.js +598 -304
  83. package/dist/components/VvRadioGroup/VvRadioGroup.umd.js +1 -1
  84. package/dist/components/VvRadioGroup/VvRadioGroup.vue.d.ts +7 -7
  85. package/dist/components/VvRadioGroup/index.d.ts +3 -3
  86. package/dist/components/VvSelect/VvSelect.es.js +631 -324
  87. package/dist/components/VvSelect/VvSelect.umd.js +1 -1
  88. package/dist/components/VvSelect/VvSelect.vue.d.ts +13 -13
  89. package/dist/components/VvSelect/index.d.ts +3 -3
  90. package/dist/components/VvTextarea/VvTextarea.es.js +676 -355
  91. package/dist/components/VvTextarea/VvTextarea.umd.js +1 -1
  92. package/dist/components/VvTextarea/VvTextarea.vue.d.ts +20 -20
  93. package/dist/components/VvTextarea/index.d.ts +4 -4
  94. package/dist/components/VvTooltip/VvTooltip.es.js +215 -47
  95. package/dist/components/VvTooltip/VvTooltip.umd.js +1 -1
  96. package/dist/components/VvTooltip/VvTooltip.vue.d.ts +7 -7
  97. package/dist/components/VvTooltip/index.d.ts +2 -2
  98. package/dist/components/index.es.js +3522 -2231
  99. package/dist/components/index.umd.js +1 -1
  100. package/dist/composables/dropdown/useInjectDropdown.d.ts +1 -1
  101. package/dist/composables/dropdown/useProvideDropdown.d.ts +3 -3
  102. package/dist/composables/group/useInjectedGroupState.d.ts +2 -2
  103. package/dist/composables/group/useProvideGroupState.d.ts +1 -1
  104. package/dist/composables/useComponentFocus.d.ts +1 -1
  105. package/dist/composables/useComponentIcon.d.ts +7 -7
  106. package/dist/composables/useDebouncedInput.d.ts +4 -1
  107. package/dist/composables/useDefaults.d.ts +2 -0
  108. package/dist/composables/useModifiers.d.ts +1 -1
  109. package/dist/composables/useOptions.d.ts +2 -2
  110. package/dist/composables/useTextCount.d.ts +3 -3
  111. package/dist/composables/useUniqueId.d.ts +1 -1
  112. package/dist/composables/useVolver.d.ts +1 -1
  113. package/dist/directives/index.d.ts +1 -0
  114. package/dist/directives/index.es.js +264 -55
  115. package/dist/directives/index.umd.js +1 -1
  116. package/dist/directives/v-contextmenu.d.ts +3 -0
  117. package/dist/directives/v-contextmenu.es.js +42 -0
  118. package/dist/directives/v-contextmenu.umd.js +1 -0
  119. package/dist/directives/v-tooltip.es.js +222 -53
  120. package/dist/directives/v-tooltip.umd.js +1 -1
  121. package/dist/icons.d.ts +3 -1
  122. package/dist/icons.es.js +40 -23
  123. package/dist/icons.umd.js +1 -1
  124. package/dist/index.d.ts +0 -1
  125. package/dist/index.es.js +112 -3607
  126. package/dist/index.umd.js +1 -1
  127. package/dist/props/index.d.ts +50 -18
  128. package/dist/resolvers/unplugin.d.ts +7 -1
  129. package/dist/resolvers/unplugin.es.js +77 -37
  130. package/dist/resolvers/unplugin.umd.js +1 -1
  131. package/dist/stories/Combobox/Combobox.settings.d.ts +12 -0
  132. package/dist/stories/Dropdown/Dropdown.settings.d.ts +12 -0
  133. package/dist/stories/InputText/InputText.settings.d.ts +53 -0
  134. package/dist/stories/argTypes.d.ts +13 -1
  135. package/package.json +126 -40
  136. package/src/Volver.ts +49 -22
  137. package/src/assets/icons/detailed.json +1 -1
  138. package/src/assets/icons/normal.json +1 -1
  139. package/src/assets/icons/simple.json +1 -1
  140. package/src/components/VvAccordion/VvAccordion.vue +19 -22
  141. package/src/components/VvAccordion/index.ts +12 -4
  142. package/src/components/VvAccordionGroup/VvAccordionGroup.vue +19 -10
  143. package/src/components/VvAccordionGroup/index.ts +8 -0
  144. package/src/components/VvAction/VvAction.vue +7 -7
  145. package/src/components/VvAction/index.ts +1 -1
  146. package/src/components/VvBadge/VvBadge.vue +2 -2
  147. package/src/components/VvBadge/index.ts +1 -1
  148. package/src/components/VvBreadcrumb/VvBreadcrumb.vue +3 -3
  149. package/src/components/VvButton/VvButton.vue +11 -11
  150. package/src/components/VvButton/index.ts +10 -9
  151. package/src/components/VvButtonGroup/VvButtonGroup.vue +4 -7
  152. package/src/components/VvButtonGroup/index.ts +1 -1
  153. package/src/components/VvCard/VvCard.vue +2 -2
  154. package/src/components/VvCheckbox/VvCheckbox.vue +3 -7
  155. package/src/components/VvCheckbox/index.ts +11 -7
  156. package/src/components/VvCheckboxGroup/VvCheckboxGroup.vue +7 -10
  157. package/src/components/VvCheckboxGroup/index.ts +1 -1
  158. package/src/components/VvCombobox/VvCombobox.vue +44 -26
  159. package/src/components/VvCombobox/index.ts +1 -1
  160. package/src/components/VvDialog/VvDialog.vue +28 -11
  161. package/src/components/VvDialog/index.ts +5 -2
  162. package/src/components/VvDropdown/VvDropdown.vue +7 -5
  163. package/src/components/VvDropdown/VvDropdownAction.vue +7 -5
  164. package/src/components/VvDropdown/VvDropdownOption.vue +17 -10
  165. package/src/components/VvDropdown/index.ts +3 -3
  166. package/src/components/VvIcon/VvIcon.vue +3 -3
  167. package/src/components/VvIcon/index.ts +3 -3
  168. package/src/components/VvInputText/VvInputClearAction.ts +2 -2
  169. package/src/components/VvInputText/VvInputPasswordAction.ts +3 -4
  170. package/src/components/VvInputText/VvInputStepAction.ts +3 -2
  171. package/src/components/VvInputText/VvInputText.vue +130 -37
  172. package/src/components/VvInputText/VvInputTextActions.ts +5 -8
  173. package/src/components/VvInputText/index.ts +62 -1
  174. package/src/components/VvProgress/VvProgress.vue +2 -2
  175. package/src/components/VvProgress/index.ts +1 -1
  176. package/src/components/VvRadio/VvRadio.vue +3 -7
  177. package/src/components/VvRadio/index.ts +11 -7
  178. package/src/components/VvRadioGroup/VvRadioGroup.vue +7 -10
  179. package/src/components/VvRadioGroup/index.ts +1 -1
  180. package/src/components/VvSelect/VvSelect.vue +4 -4
  181. package/src/components/VvSelect/index.ts +1 -1
  182. package/src/components/VvTextarea/VvTextarea.vue +6 -6
  183. package/src/components/VvTextarea/index.ts +1 -1
  184. package/src/components/VvTooltip/VvTooltip.vue +2 -2
  185. package/src/components/VvTooltip/index.ts +3 -3
  186. package/src/composables/dropdown/useInjectDropdown.ts +2 -2
  187. package/src/composables/dropdown/useProvideDropdown.ts +2 -2
  188. package/src/composables/group/useInjectedGroupState.ts +1 -1
  189. package/src/composables/group/useProvideGroupState.ts +1 -1
  190. package/src/composables/useComponentIcon.ts +1 -1
  191. package/src/composables/useDebouncedInput.ts +10 -3
  192. package/src/composables/useDefaults.ts +89 -0
  193. package/src/composables/useModifiers.ts +4 -2
  194. package/src/composables/useOptions.ts +1 -1
  195. package/src/composables/useVolver.ts +2 -2
  196. package/src/directives/index.ts +3 -1
  197. package/src/directives/v-contextmenu.ts +40 -0
  198. package/src/directives/v-tooltip.ts +2 -2
  199. package/src/icons.ts +1 -1
  200. package/src/index.ts +0 -2
  201. package/src/props/index.ts +20 -10
  202. package/src/resolvers/unplugin.ts +15 -1
  203. package/src/stories/Accordion/Accordion.stories.mdx +8 -2
  204. package/src/stories/Accordion/Accordion.test.ts +21 -15
  205. package/src/stories/Accordion/AccordionSlots.stories.mdx +8 -8
  206. package/src/stories/AccordionGroup/AccordionGroup.stories.mdx +17 -1
  207. package/src/stories/AccordionGroup/AccordionGroup.test.ts +18 -12
  208. package/src/stories/AccordionGroup/AccordionGroupSlots.stories.mdx +1 -1
  209. package/src/stories/Dropdown/DropdownContextmenuDirective.stories.mdx +41 -0
  210. package/src/stories/InputText/InputText.settings.ts +53 -0
  211. package/src/stories/InputText/InputText.stories.mdx +40 -0
  212. package/src/stories/InputText/InputText.test.ts +5 -2
  213. package/src/stories/Tooltip/TooltipDirective.stories.mdx +1 -1
  214. package/src/stories/argTypes.ts +12 -2
  215. package/src/types/group.d.ts +5 -0
@@ -1,8 +1,44 @@
1
- import { unref as v, inject as q, computed as i, toRef as M, toRefs as P, h as w, defineComponent as F, useSlots as U, ref as z, openBlock as J, createElementBlock as K, normalizeClass as W, withDirectives as Y, createElementVNode as Q, isRef as T, vModelRadio as X, renderSlot as Z, createTextVNode as L, toDisplayString as ee, createVNode as te } from "vue";
2
- import { toReactive as re } from "@vueuse/core";
3
- import { nanoid as ne } from "nanoid";
4
- var R = /* @__PURE__ */ ((e) => (e.left = "left", e.right = "right", e.top = "top", e.bottom = "bottom", e))(R || {}), N = /* @__PURE__ */ ((e) => (e.topStart = "top-start", e.topEnd = "top-end", e.bottomStart = "bottom-start", e.bottomEnd = "bottom-end", e.leftStart = "left-start", e.leftEnd = "left-end", e.rightStart = "right-start", e.rightEnd = "right-end", e))(N || {}), k = /* @__PURE__ */ ((e) => (e.before = "before", e.after = "after", e))(k || {}), E = /* @__PURE__ */ ((e) => (e.button = "button", e.submit = "submit", e.reset = "reset", e))(E || {}), x = /* @__PURE__ */ ((e) => (e._blank = "_blank", e._self = "_self", e._parent = "_parent", e._top = "_top", e))(x || {});
5
- const oe = Symbol.for("radioGroup"), ae = {
1
+ import { unref, inject, computed, toRef, toRefs, h, defineComponent, useSlots, ref, openBlock, createElementBlock, normalizeClass, withDirectives, createElementVNode, isRef, vModelRadio, renderSlot, createTextVNode, toDisplayString, createVNode } from "vue";
2
+ import { toReactive } from "@vueuse/core";
3
+ import { nanoid } from "nanoid";
4
+ var Side = /* @__PURE__ */ ((Side2) => {
5
+ Side2["left"] = "left";
6
+ Side2["right"] = "right";
7
+ Side2["top"] = "top";
8
+ Side2["bottom"] = "bottom";
9
+ return Side2;
10
+ })(Side || {});
11
+ var Placement = /* @__PURE__ */ ((Placement2) => {
12
+ Placement2["topStart"] = "top-start";
13
+ Placement2["topEnd"] = "top-end";
14
+ Placement2["bottomStart"] = "bottom-start";
15
+ Placement2["bottomEnd"] = "bottom-end";
16
+ Placement2["leftStart"] = "left-start";
17
+ Placement2["leftEnd"] = "left-end";
18
+ Placement2["rightStart"] = "right-start";
19
+ Placement2["rightEnd"] = "right-end";
20
+ return Placement2;
21
+ })(Placement || {});
22
+ var Position = /* @__PURE__ */ ((Position2) => {
23
+ Position2["before"] = "before";
24
+ Position2["after"] = "after";
25
+ return Position2;
26
+ })(Position || {});
27
+ var ButtonType = /* @__PURE__ */ ((ButtonType2) => {
28
+ ButtonType2["button"] = "button";
29
+ ButtonType2["submit"] = "submit";
30
+ ButtonType2["reset"] = "reset";
31
+ return ButtonType2;
32
+ })(ButtonType || {});
33
+ var AnchorTarget = /* @__PURE__ */ ((AnchorTarget2) => {
34
+ AnchorTarget2["_blank"] = "_blank";
35
+ AnchorTarget2["_self"] = "_self";
36
+ AnchorTarget2["_parent"] = "_parent";
37
+ AnchorTarget2["_top"] = "_top";
38
+ return AnchorTarget2;
39
+ })(AnchorTarget || {});
40
+ const INJECTION_KEY_RADIO_GROUP = Symbol.for("radioGroup");
41
+ const LinkProps = {
6
42
  /**
7
43
  * The router-link/nuxt-link property, if it is defined the button is rendered as a ruouter-link or nuxt-link.
8
44
  * @see Documentation of [router-link](https://router.vuejs.org/api/#router-link) and [nuxt-link](https://nuxtjs.org/api/components-nuxt-link/)
@@ -19,7 +55,7 @@ const oe = Symbol.for("radioGroup"), ae = {
19
55
  */
20
56
  target: {
21
57
  type: String,
22
- validator: (e) => Object.values(x).includes(e)
58
+ validator: (value) => Object.values(AnchorTarget).includes(value)
23
59
  },
24
60
  /**
25
61
  * Anchor rel
@@ -28,7 +64,8 @@ const oe = Symbol.for("radioGroup"), ae = {
28
64
  type: String,
29
65
  default: "noopener noreferrer"
30
66
  }
31
- }, se = {
67
+ };
68
+ const ValidProps = {
32
69
  /**
33
70
  * Valid status
34
71
  */
@@ -37,7 +74,8 @@ const oe = Symbol.for("radioGroup"), ae = {
37
74
  * Valid label
38
75
  */
39
76
  validLabel: [String, Array]
40
- }, le = {
77
+ };
78
+ const InvalidProps = {
41
79
  /**
42
80
  * Invalid status
43
81
  */
@@ -46,72 +84,190 @@ const oe = Symbol.for("radioGroup"), ae = {
46
84
  * Invalid label
47
85
  */
48
86
  invalidLabel: [String, Array]
49
- }, C = {
87
+ };
88
+ const DisabledProps = {
50
89
  /**
51
90
  * Whether the form control is disabled
52
91
  */
53
92
  disabled: Boolean
54
- }, ue = {
93
+ };
94
+ const ActiveProps = {
55
95
  /**
56
96
  * Whether the item is active
57
97
  */
58
98
  active: Boolean
59
- }, ie = {
99
+ };
100
+ const PressedProps = {
60
101
  /**
61
102
  * Whether the item is pressed
62
103
  */
63
104
  pressed: Boolean
64
- }, D = {
105
+ };
106
+ const LabelProps = {
65
107
  /**
66
108
  * The item label
67
109
  */
68
110
  label: [String, Number]
69
- }, ce = {
111
+ };
112
+ const ReadonlyProps = {
70
113
  /**
71
114
  * The value is not editable
72
115
  */
73
116
  readonly: Boolean
74
- }, fe = {
117
+ };
118
+ const ModifiersProps = {
75
119
  /**
76
120
  * Component BEM modifiers
77
121
  */
78
122
  modifiers: [String, Array]
79
- }, de = {
123
+ };
124
+ const HintProps = {
80
125
  hintLabel: { type: String, default: "" }
81
126
  };
82
- k.before;
83
- const ve = {
127
+ ({
128
+ /**
129
+ * VvIcon name or props
130
+ * @see VVIcon
131
+ */
132
+ icon: { type: [String, Object] },
133
+ /**
134
+ * VvIcon position
135
+ */
136
+ iconPosition: {
137
+ type: String,
138
+ default: Position.before,
139
+ validation: (value) => Object.values(Position).includes(value)
140
+ }
141
+ });
142
+ const TabindexProps = {
84
143
  /**
85
144
  * Global attribute tabindex
86
145
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex
87
146
  */
88
147
  tabindex: { type: [String, Number], default: 0 }
89
- }, pe = {
148
+ };
149
+ const IdProps = {
90
150
  /**
91
151
  * Global attribute id
92
152
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id
93
153
  */
94
154
  id: [String, Number]
95
155
  };
96
- R.bottom;
97
- const ye = {
98
- ...pe,
156
+ ({
157
+ /**
158
+ * Dropdown placement
159
+ */
160
+ placement: {
161
+ type: String,
162
+ default: Side.bottom,
163
+ validator: (value) => {
164
+ return Object.values(Side).includes(value) || Object.values(Placement).includes(value);
165
+ }
166
+ },
167
+ /**
168
+ * Dropdown strategy
169
+ */
170
+ strategy: {
171
+ type: String,
172
+ default: "absolute",
173
+ validator: (value) => {
174
+ return ["fixed", "absolute"].includes(value);
175
+ }
176
+ },
177
+ /**
178
+ * Dropdown show / hide transition name
179
+ */
180
+ transitionName: {
181
+ type: String
182
+ },
183
+ /**
184
+ * Offset of the dropdown from the trigger
185
+ * @see https://floating-ui.com/docs/offset
186
+ */
187
+ offset: {
188
+ type: [Number, String, Object],
189
+ default: 0
190
+ },
191
+ /**
192
+ * Move dropdown to the side if there is no space in the default position
193
+ * @see https://floating-ui.com/docs/shift
194
+ */
195
+ shift: {
196
+ type: [Boolean, Object],
197
+ default: false
198
+ },
199
+ /**
200
+ * Flip dropdown position if there is no space in the default position
201
+ * @see https://floating-ui.com/docs/flip
202
+ */
203
+ flip: {
204
+ type: [Boolean, Object],
205
+ default: true
206
+ },
207
+ /**
208
+ * Size of the dropdown
209
+ * @see https://floating-ui.com/docs/size
210
+ */
211
+ size: {
212
+ type: [Boolean, Object],
213
+ default: () => ({ padding: 10 })
214
+ },
215
+ /**
216
+ * Automatically change the position of the dropdown
217
+ * @see https://floating-ui.com/docs/autoPlacement
218
+ */
219
+ autoPlacement: {
220
+ type: [Boolean, Object],
221
+ default: false
222
+ },
223
+ /**
224
+ * Add arrow to the dropdown
225
+ * @see https://floating-ui.com/docs/arrow
226
+ */
227
+ arrow: {
228
+ type: Boolean,
229
+ default: false
230
+ },
231
+ /**
232
+ * Close dropdown on click outside
233
+ */
234
+ autoClose: {
235
+ type: Boolean,
236
+ default: true
237
+ },
238
+ /**
239
+ * Autofocus first item on dropdown open
240
+ */
241
+ autofocusFirst: {
242
+ type: Boolean,
243
+ default: true
244
+ },
245
+ /**
246
+ * Set dropdown width to the same as the trigger
247
+ */
248
+ triggerWidth: {
249
+ type: Boolean
250
+ }
251
+ });
252
+ const IdNameProps = {
253
+ ...IdProps,
99
254
  /**
100
255
  * Input / Textarea name
101
256
  * Name of the form control. Submitted with the form as part of a name/value pair
102
257
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#name
103
258
  */
104
- name: { type: String, required: !0 }
105
- }, ge = {
106
- ...ye,
107
- ...ve,
108
- ...se,
109
- ...le,
110
- ...de,
111
- ...C,
112
- ...ce,
113
- ...fe,
114
- ...D,
259
+ name: { type: String, required: true }
260
+ };
261
+ const CheckboxRadioProps = {
262
+ ...IdNameProps,
263
+ ...TabindexProps,
264
+ ...ValidProps,
265
+ ...InvalidProps,
266
+ ...HintProps,
267
+ ...DisabledProps,
268
+ ...ReadonlyProps,
269
+ ...ModifiersProps,
270
+ ...LabelProps,
115
271
  /**
116
272
  * Input value
117
273
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#value
@@ -123,166 +279,226 @@ const ye = {
123
279
  modelValue: [Object, Number, Boolean, String]
124
280
  };
125
281
  ({
126
- ...C,
127
- ...D,
128
- ...ie,
129
- ...ue,
130
- ...ae,
282
+ ...DisabledProps,
283
+ ...LabelProps,
284
+ ...PressedProps,
285
+ ...ActiveProps,
286
+ ...LinkProps,
131
287
  /**
132
288
  * Button type
133
289
  */
134
- type: E.button
290
+ type: {
291
+ type: String,
292
+ default: ButtonType.button,
293
+ validator: (value) => Object.values(ButtonType).includes(value)
294
+ }
135
295
  });
136
- function G(e, t, r) {
137
- return r ? A(e, r) === A(t, r) : I(e, t);
296
+ function equals(obj1, obj2, field) {
297
+ if (field)
298
+ return resolveFieldData(obj1, field) === resolveFieldData(obj2, field);
299
+ else
300
+ return deepEquals(obj1, obj2);
138
301
  }
139
- function I(e, t) {
140
- if (e === t)
141
- return !0;
142
- if (e && t && typeof e == "object" && typeof t == "object") {
143
- const r = Array.isArray(e), s = Array.isArray(t);
144
- let n, o, a;
145
- if (r && s) {
146
- if (o = e.length, o != t.length)
147
- return !1;
148
- for (n = o; n-- !== 0; )
149
- if (!I(e[n], t[n]))
150
- return !1;
151
- return !0;
302
+ function deepEquals(a, b) {
303
+ if (a === b)
304
+ return true;
305
+ if (a && b && typeof a == "object" && typeof b == "object") {
306
+ const arrA = Array.isArray(a);
307
+ const arrB = Array.isArray(b);
308
+ let i, length, key;
309
+ if (arrA && arrB) {
310
+ length = a.length;
311
+ if (length != b.length)
312
+ return false;
313
+ for (i = length; i-- !== 0; )
314
+ if (!deepEquals(a[i], b[i]))
315
+ return false;
316
+ return true;
317
+ }
318
+ if (arrA != arrB)
319
+ return false;
320
+ const dateA = a instanceof Date, dateB = b instanceof Date;
321
+ if (dateA != dateB)
322
+ return false;
323
+ if (dateA && dateB)
324
+ return a.getTime() == b.getTime();
325
+ const regexpA = a instanceof RegExp, regexpB = b instanceof RegExp;
326
+ if (regexpA != regexpB)
327
+ return false;
328
+ if (regexpA && regexpB)
329
+ return a.toString() == b.toString();
330
+ const keys = Object.keys(a);
331
+ length = keys.length;
332
+ if (length !== Object.keys(b).length)
333
+ return false;
334
+ for (i = length; i-- !== 0; )
335
+ if (!Object.prototype.hasOwnProperty.call(b, keys[i]))
336
+ return false;
337
+ for (i = length; i-- !== 0; ) {
338
+ key = keys[i];
339
+ if (!deepEquals(a[key], b[key]))
340
+ return false;
152
341
  }
153
- if (r != s)
154
- return !1;
155
- const c = e instanceof Date, l = t instanceof Date;
156
- if (c != l)
157
- return !1;
158
- if (c && l)
159
- return e.getTime() == t.getTime();
160
- const f = e instanceof RegExp, d = t instanceof RegExp;
161
- if (f != d)
162
- return !1;
163
- if (f && d)
164
- return e.toString() == t.toString();
165
- const u = Object.keys(e);
166
- if (o = u.length, o !== Object.keys(t).length)
167
- return !1;
168
- for (n = o; n-- !== 0; )
169
- if (!Object.prototype.hasOwnProperty.call(t, u[n]))
170
- return !1;
171
- for (n = o; n-- !== 0; )
172
- if (a = u[n], !I(e[a], t[a]))
173
- return !1;
174
- return !0;
342
+ return true;
175
343
  }
176
- return e !== e && t !== t;
344
+ return a !== a && b !== b;
177
345
  }
178
- function A(e, t) {
179
- if (e && Object.keys(e).length && t) {
180
- if (t.indexOf(".") === -1)
181
- return e[t];
182
- {
183
- const r = t.split(".");
184
- let s = e;
185
- for (let n = 0, o = r.length; n < o; ++n) {
186
- if (e == null)
346
+ function resolveFieldData(data, field) {
347
+ if (data && Object.keys(data).length && field) {
348
+ if (field.indexOf(".") === -1) {
349
+ return data[field];
350
+ } else {
351
+ const fields = field.split(".");
352
+ let value = data;
353
+ for (let i = 0, len = fields.length; i < len; ++i) {
354
+ if (data == null) {
187
355
  return null;
188
- s = s[r[n]];
356
+ }
357
+ value = value[fields[i]];
189
358
  }
190
- return s;
359
+ return value;
191
360
  }
192
- } else
361
+ } else {
193
362
  return null;
363
+ }
194
364
  }
195
- function be(e, t) {
196
- if (e != null && t && t.length) {
197
- for (const r of t)
198
- if (G(e, r))
199
- return !0;
365
+ function contains(value, list) {
366
+ if (value != null && list && list.length) {
367
+ for (const val of list) {
368
+ if (equals(value, val)) {
369
+ return true;
370
+ }
371
+ }
200
372
  }
201
- return !1;
373
+ return false;
202
374
  }
203
- function H(e) {
204
- return ((t) => t == null || t === "" || Array.isArray(t) && t.length === 0 || !(t instanceof Date) && typeof t == "object" && Object.keys(t).length === 0)(v(e));
375
+ function isEmpty(value) {
376
+ return ((value2) => value2 === null || value2 === void 0 || value2 === "" || Array.isArray(value2) && value2.length === 0 || !(value2 instanceof Date) && typeof value2 === "object" && Object.keys(value2).length === 0)(unref(value));
205
377
  }
206
- function me(e) {
207
- return typeof e == "string" || e instanceof String;
378
+ function isString(value) {
379
+ return typeof value === "string" || value instanceof String;
208
380
  }
209
- function he(e) {
210
- const t = q(e, void 0), r = i(() => !H(t));
211
- function s(n, o, a) {
212
- if (t != null && t.value) {
213
- const l = v(t.value)[n];
214
- return i({
381
+ function useInjectedGroupState(groupKey) {
382
+ const group = inject(groupKey, void 0);
383
+ const isInGroup = computed(() => !isEmpty(group));
384
+ function getGroupOrLocalRef(propName, props, emit) {
385
+ if (group == null ? void 0 : group.value) {
386
+ const groupPropValue = unref(group.value)[propName];
387
+ return computed({
215
388
  get() {
216
- return l == null ? void 0 : l.value;
389
+ return groupPropValue == null ? void 0 : groupPropValue.value;
217
390
  },
218
- set(f) {
219
- l.value = f;
391
+ set(value) {
392
+ groupPropValue.value = value;
220
393
  }
221
394
  });
222
395
  }
223
- const c = M(o, n);
224
- return i({
396
+ const propRef = toRef(props, propName);
397
+ return computed({
225
398
  get() {
226
- return c.value;
399
+ return propRef.value;
227
400
  },
228
- set(l) {
229
- a && a(`update:${n}`, l);
401
+ set(value) {
402
+ if (emit)
403
+ emit(`update:${propName}`, value);
230
404
  }
231
405
  });
232
406
  }
233
407
  return {
234
- group: t,
235
- isInGroup: r,
236
- getGroupOrLocalRef: s
408
+ group,
409
+ isInGroup,
410
+ getGroupOrLocalRef
237
411
  };
238
412
  }
239
- const Se = ge, Oe = ["click", "update:modelValue", "change", "blur"];
240
- function je(e, t) {
241
- const { id: r } = P(e), { group: s, isInGroup: n, getGroupOrLocalRef: o } = he(oe), a = o("modelValue", e, t), c = o("readonly", e), l = o("disabled", e), f = o("valid", e), d = o("invalid", e);
413
+ const VvRadioProps = CheckboxRadioProps;
414
+ const VvRadioEvents = ["click", "update:modelValue", "change", "blur"];
415
+ function useGroupProps(props, emit) {
416
+ const { id } = toRefs(props);
417
+ const { group, isInGroup, getGroupOrLocalRef } = useInjectedGroupState(INJECTION_KEY_RADIO_GROUP);
418
+ const modelValue = getGroupOrLocalRef("modelValue", props, emit);
419
+ const valid = getGroupOrLocalRef("valid", props);
420
+ const invalid = getGroupOrLocalRef("invalid", props);
421
+ const readonly = computed(
422
+ () => {
423
+ var _a;
424
+ return Boolean(props.readonly || ((_a = group == null ? void 0 : group.value) == null ? void 0 : _a.disabled.value));
425
+ }
426
+ );
427
+ const disabled = computed(
428
+ () => {
429
+ var _a;
430
+ return Boolean(props.disabled || ((_a = group == null ? void 0 : group.value) == null ? void 0 : _a.disabled.value));
431
+ }
432
+ );
242
433
  return {
243
434
  // local props
244
- id: r,
435
+ id,
245
436
  // global props
246
- group: s,
247
- isInGroup: n,
248
- modelValue: a,
249
- readonly: c,
250
- disabled: l,
251
- valid: f,
252
- invalid: d
437
+ group,
438
+ isInGroup,
439
+ modelValue,
440
+ valid,
441
+ invalid,
442
+ readonly,
443
+ disabled
253
444
  };
254
445
  }
255
- function _(e) {
256
- return Array.isArray(e) ? e.filter((t) => me(t)).join(" ") : e;
446
+ function joinLines(errors) {
447
+ if (Array.isArray(errors)) {
448
+ return errors.filter((e) => isString(e)).join(" ");
449
+ }
450
+ return errors;
257
451
  }
258
- function _e(e, t) {
452
+ function HintSlotFactory(parentProps, parentSlots) {
453
+ const {
454
+ invalid: invalidSlot,
455
+ valid: validSlot,
456
+ hint: hintSlot,
457
+ loading: loadingSlot
458
+ } = parentSlots;
259
459
  const {
260
- invalid: r,
261
- valid: s,
262
- hint: n,
263
- loading: o
264
- } = t, {
265
- hintLabel: a,
266
- modelValue: c,
267
- valid: l,
268
- validLabel: f,
269
- invalid: d,
270
- invalidLabel: u,
271
- ...O
272
- } = P(e), p = A(O, "loading"), y = A(O, "loadingLabel"), h = i(() => d.value ? !!(d.value && r || u != null && u.value && Array.isArray(u.value) && u.value.length > 0 || u != null && u.value && !H(u)) : !1), S = i(
273
- () => !!(a && a.value || n)
274
- ), g = i(
275
- () => !!(f && f.value || s)
276
- ), j = i(
277
- () => !!(p != null && p.value && o || p != null && p.value && (y != null && y.value))
278
- ), B = i(
279
- () => S.value || g.value || h.value || j.value
460
+ hintLabel,
461
+ modelValue,
462
+ valid,
463
+ validLabel,
464
+ invalid,
465
+ invalidLabel,
466
+ ...otherProps
467
+ } = toRefs(parentProps);
468
+ const loading = resolveFieldData(otherProps, "loading");
469
+ const loadingLabel = resolveFieldData(otherProps, "loadingLabel");
470
+ const hasInvalid = computed(() => {
471
+ if (!invalid.value) {
472
+ return false;
473
+ }
474
+ if (invalid.value && invalidSlot) {
475
+ return true;
476
+ }
477
+ if ((invalidLabel == null ? void 0 : invalidLabel.value) && Array.isArray(invalidLabel.value) && invalidLabel.value.length > 0) {
478
+ return true;
479
+ }
480
+ if ((invalidLabel == null ? void 0 : invalidLabel.value) && !isEmpty(invalidLabel)) {
481
+ return true;
482
+ }
483
+ return false;
484
+ });
485
+ const hasHint = computed(
486
+ () => !!(hintLabel && hintLabel.value || hintSlot)
487
+ );
488
+ const hasValid = computed(
489
+ () => !!(validLabel && validLabel.value || validSlot)
490
+ );
491
+ const hasLoading = computed(
492
+ () => !!((loading == null ? void 0 : loading.value) && loadingSlot || (loading == null ? void 0 : loading.value) && (loadingLabel == null ? void 0 : loadingLabel.value))
493
+ );
494
+ const isVisible = computed(
495
+ () => hasHint.value || hasValid.value || hasInvalid.value || hasLoading.value
280
496
  );
281
497
  return {
282
- hasInvalid: h,
283
- hasHint: S,
284
- hasValid: g,
285
- hasLoading: j,
498
+ hasInvalid,
499
+ hasHint,
500
+ hasValid,
501
+ hasLoading,
286
502
  HintSlot: {
287
503
  name: "HintSlot",
288
504
  props: {
@@ -291,116 +507,161 @@ function _e(e, t) {
291
507
  default: () => ({})
292
508
  }
293
509
  },
294
- setup(V) {
295
- const b = i(() => {
296
- const m = re({
297
- hintLabel: a,
298
- modelValue: c,
299
- valid: l,
300
- validLabel: f,
301
- invalid: d,
302
- invalidLabel: u,
303
- loading: p,
304
- loadingLabel: y,
305
- ...V.params
510
+ setup(props) {
511
+ const hintContent = computed(() => {
512
+ const slotProps = toReactive({
513
+ hintLabel,
514
+ modelValue,
515
+ valid,
516
+ validLabel,
517
+ invalid,
518
+ invalidLabel,
519
+ loading,
520
+ loadingLabel,
521
+ ...props.params
306
522
  });
307
- return d != null && d.value ? (r == null ? void 0 : r(m)) || _(u == null ? void 0 : u.value) || (a == null ? void 0 : a.value) : l != null && l.value ? (s == null ? void 0 : s(m)) || _(f == null ? void 0 : f.value) || (a == null ? void 0 : a.value) : p != null && p.value ? (o == null ? void 0 : o(m)) || _(y == null ? void 0 : y.value) || (a == null ? void 0 : a.value) : (n == null ? void 0 : n(m)) || _(a == null ? void 0 : a.value) || (a == null ? void 0 : a.value);
523
+ if (invalid == null ? void 0 : invalid.value) {
524
+ return (invalidSlot == null ? void 0 : invalidSlot(slotProps)) || joinLines(invalidLabel == null ? void 0 : invalidLabel.value) || (hintLabel == null ? void 0 : hintLabel.value);
525
+ }
526
+ if (valid == null ? void 0 : valid.value)
527
+ return (validSlot == null ? void 0 : validSlot(slotProps)) || joinLines(validLabel == null ? void 0 : validLabel.value) || (hintLabel == null ? void 0 : hintLabel.value);
528
+ if (loading == null ? void 0 : loading.value)
529
+ return (loadingSlot == null ? void 0 : loadingSlot(slotProps)) || joinLines(loadingLabel == null ? void 0 : loadingLabel.value) || (hintLabel == null ? void 0 : hintLabel.value);
530
+ return (hintSlot == null ? void 0 : hintSlot(slotProps)) || joinLines(hintLabel == null ? void 0 : hintLabel.value) || (hintLabel == null ? void 0 : hintLabel.value);
308
531
  });
309
532
  return {
310
- isVisible: B,
311
- hasInvalid: h,
312
- hasValid: g,
313
- hintContent: b
533
+ isVisible,
534
+ hasInvalid,
535
+ hasValid,
536
+ hintContent
314
537
  };
315
538
  },
316
539
  render() {
317
- if (this.isVisible)
318
- return w(
540
+ if (this.isVisible) {
541
+ return h(
319
542
  "small",
320
543
  {
321
544
  role: this.hasInvalid ? "alert" : this.hasValid ? "status" : void 0
322
545
  },
323
546
  this.hintContent
324
547
  );
548
+ }
325
549
  }
326
550
  }
327
551
  };
328
552
  }
329
- const Ae = (e) => i(() => String((e == null ? void 0 : e.value) || ne()));
330
- function Be(e, t, r) {
331
- return i(() => {
332
- const s = {
333
- [e]: !0
334
- }, n = typeof (t == null ? void 0 : t.value) == "string" ? t.value.split(" ") : t == null ? void 0 : t.value;
335
- return n && Array.isArray(n) && n.forEach((o) => {
336
- s[`${e}--${o}`] = !0;
337
- }), r && Object.keys(r.value).forEach((o) => {
338
- s[`${e}--${o}`] = v(r.value[o]);
339
- }), s;
553
+ const useUniqueId = (id) => computed(() => String((id == null ? void 0 : id.value) || nanoid()));
554
+ function useModifiers(prefix, modifiers, others) {
555
+ return computed(() => {
556
+ const toReturn = {
557
+ [prefix]: true
558
+ };
559
+ const modifiersArray = typeof (modifiers == null ? void 0 : modifiers.value) === "string" ? modifiers.value.split(" ") : modifiers == null ? void 0 : modifiers.value;
560
+ if (modifiersArray) {
561
+ if (Array.isArray(modifiersArray)) {
562
+ modifiersArray.forEach((modifier) => {
563
+ if (modifier) {
564
+ toReturn[`${prefix}--${modifier}`] = true;
565
+ }
566
+ });
567
+ }
568
+ }
569
+ if (others) {
570
+ Object.keys(others.value).forEach((key) => {
571
+ toReturn[`${prefix}--${key}`] = unref(others.value[key]);
572
+ });
573
+ }
574
+ return toReturn;
340
575
  });
341
576
  }
342
- const Ve = ["for"], Re = ["id", "name", "disabled", "value", "tabindex", "aria-invalid"], ke = {
577
+ const _hoisted_1 = ["for"];
578
+ const _hoisted_2 = ["id", "name", "disabled", "value", "tabindex", "aria-invalid"];
579
+ const __default__ = {
343
580
  name: "VvRadio"
344
- }, Ne = /* @__PURE__ */ F({
345
- ...ke,
346
- props: Se,
347
- emits: Oe,
348
- setup(e, { emit: t }) {
349
- const r = e, s = U(), { id: n, disabled: o, readonly: a, modelValue: c, valid: l, invalid: f } = je(r, t), d = Ae(n), u = i(() => p.value ? -1 : r.tabindex), O = z(), p = i(() => o.value || a.value), y = i(() => {
350
- if (f.value === !0)
351
- return !0;
352
- if (l.value === !0)
353
- return !1;
354
- }), h = i(
355
- () => Array.isArray(c.value) ? be(r.value, c.value) : G(r.value, c.value)
356
- ), S = i(
357
- () => ["string", "number", "boolean"].includes(typeof r.value) ? r.value : !0
358
- ), g = i({
581
+ };
582
+ const _sfc_main = /* @__PURE__ */ defineComponent({
583
+ ...__default__,
584
+ props: VvRadioProps,
585
+ emits: VvRadioEvents,
586
+ setup(__props, { emit }) {
587
+ const props = __props;
588
+ const slots = useSlots();
589
+ const { id, disabled, readonly, modelValue, valid, invalid } = useGroupProps(props, emit);
590
+ const hasId = useUniqueId(id);
591
+ const tabindex = computed(() => isDisabled.value ? -1 : props.tabindex);
592
+ const input = ref();
593
+ const isDisabled = computed(() => disabled.value || readonly.value);
594
+ const isInvalid = computed(() => {
595
+ if (invalid.value === true) {
596
+ return true;
597
+ }
598
+ if (valid.value === true) {
599
+ return false;
600
+ }
601
+ return void 0;
602
+ });
603
+ const isChecked = computed(
604
+ () => Array.isArray(modelValue.value) ? contains(props.value, modelValue.value) : equals(props.value, modelValue.value)
605
+ );
606
+ const hasValue = computed(
607
+ () => ["string", "number", "boolean"].includes(typeof props.value) ? props.value : true
608
+ );
609
+ const localModelValue = computed({
359
610
  get() {
360
- return h.value ? S.value : null;
611
+ return isChecked.value ? hasValue.value : null;
361
612
  },
362
- set(b) {
363
- Array.isArray(c.value) ? c.value = [r.value] : c.value = r.value, t("change", b);
613
+ set(newValue) {
614
+ if (Array.isArray(modelValue.value)) {
615
+ modelValue.value = [props.value];
616
+ } else {
617
+ modelValue.value = props.value;
618
+ }
619
+ emit("change", newValue);
364
620
  }
365
- }), { modifiers: j } = P(r), B = Be(
621
+ });
622
+ const { modifiers } = toRefs(props);
623
+ const bemCssClasses = useModifiers(
366
624
  "vv-radio",
367
- j,
368
- i(() => ({
369
- valid: l.value,
370
- invalid: f.value,
371
- disabled: o.value,
372
- readonly: a.value
625
+ modifiers,
626
+ computed(() => ({
627
+ valid: valid.value,
628
+ invalid: invalid.value,
629
+ disabled: disabled.value,
630
+ readonly: readonly.value
373
631
  }))
374
- ), { HintSlot: V } = _e(r, s);
375
- return (b, m) => (J(), K("label", {
376
- class: W(v(B)),
377
- for: v(d)
378
- }, [
379
- Y(Q("input", {
380
- id: v(d),
381
- ref_key: "input",
382
- ref: O,
383
- "onUpdate:modelValue": m[0] || (m[0] = ($) => T(g) ? g.value = $ : null),
384
- type: "radio",
385
- class: "vv-radio__input",
386
- name: b.name,
387
- disabled: v(p),
388
- value: v(S),
389
- tabindex: v(u),
390
- "aria-invalid": v(y)
391
- }, null, 8, Re), [
392
- [X, v(g)]
393
- ]),
394
- Z(b.$slots, "default", { value: v(c) }, () => [
395
- L(ee(b.label), 1)
396
- ]),
397
- te(v(V), {
398
- class: "vv-radio__hint",
399
- params: { value: v(c) }
400
- }, null, 8, ["params"])
401
- ], 10, Ve));
632
+ );
633
+ const { HintSlot } = HintSlotFactory(props, slots);
634
+ return (_ctx, _cache) => {
635
+ return openBlock(), createElementBlock("label", {
636
+ class: normalizeClass(unref(bemCssClasses)),
637
+ for: unref(hasId)
638
+ }, [
639
+ withDirectives(createElementVNode("input", {
640
+ id: unref(hasId),
641
+ ref_key: "input",
642
+ ref: input,
643
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isRef(localModelValue) ? localModelValue.value = $event : null),
644
+ type: "radio",
645
+ class: "vv-radio__input",
646
+ name: _ctx.name,
647
+ disabled: unref(isDisabled),
648
+ value: unref(hasValue),
649
+ tabindex: unref(tabindex),
650
+ "aria-invalid": unref(isInvalid)
651
+ }, null, 8, _hoisted_2), [
652
+ [vModelRadio, unref(localModelValue)]
653
+ ]),
654
+ renderSlot(_ctx.$slots, "default", { value: unref(modelValue) }, () => [
655
+ createTextVNode(toDisplayString(_ctx.label), 1)
656
+ ]),
657
+ createVNode(unref(HintSlot), {
658
+ class: "vv-radio__hint",
659
+ params: { value: unref(modelValue) }
660
+ }, null, 8, ["params"])
661
+ ], 10, _hoisted_1);
662
+ };
402
663
  }
403
664
  });
404
665
  export {
405
- Ne as default
666
+ _sfc_main as default
406
667
  };