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

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