@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 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,190 @@ 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 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
- }, Ae = {
106
- ...je,
107
- ...ke,
108
- ...ye,
109
- ...he,
110
- ...Se,
111
- ...G,
112
- ...me,
113
- ...H,
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,122 +279,140 @@ const je = {
123
279
  modelValue: [Object, Number, Boolean, String]
124
280
  };
125
281
  ({
126
- ...G,
127
- ...D,
128
- ...ge,
129
- ...be,
130
- ...pe,
282
+ ...DisabledProps,
283
+ ...LabelProps,
284
+ ...PressedProps,
285
+ ...ActiveProps,
286
+ ...LinkProps,
131
287
  /**
132
288
  * Button type
133
289
  */
134
- type: I.button
290
+ type: {
291
+ type: String,
292
+ default: ButtonType.button,
293
+ validator: (value) => Object.values(ButtonType).includes(value)
294
+ }
135
295
  });
136
- function $(e, t, r) {
137
- return r ? V(e, r) === V(t, r) : P(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 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;
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;
152
317
  }
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;
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;
341
+ }
342
+ return true;
175
343
  }
176
- return e !== e && t !== t;
344
+ return a !== a && b !== b;
177
345
  }
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)
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 ($(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 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));
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 _e(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 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({
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 c == null ? void 0 : c.value;
389
+ return groupPropValue == null ? void 0 : groupPropValue.value;
217
390
  },
218
- set(f) {
219
- c.value = f;
391
+ set(value) {
392
+ groupPropValue.value = value;
220
393
  }
221
394
  });
222
395
  }
223
- const p = J(u, n);
224
- return i({
396
+ const propRef = toRef(props, propName);
397
+ return computed({
225
398
  get() {
226
- return p.value;
399
+ return propRef.value;
227
400
  },
228
- set(c) {
229
- a && a(`update:${n}`, c);
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 xe = {
240
- ...Ae,
241
- ...H,
413
+ const VvCheckboxProps = {
414
+ ...CheckboxRadioProps,
415
+ ...ModifiersProps,
242
416
  /**
243
417
  * If true, the input will be indeterminated
244
418
  */
@@ -251,55 +425,97 @@ const xe = {
251
425
  * If true, the input will be displayed as a switch
252
426
  */
253
427
  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);
428
+ };
429
+ const VvCheckboxEvents = ["click", "update:modelValue", "change", "blur"];
430
+ function useGroupProps(props, emit) {
431
+ const { group, isInGroup, getGroupOrLocalRef } = useInjectedGroupState(INJECTION_KEY_CHECK_GROUP);
432
+ const { id, switch: propsSwitch, indeterminate } = toRefs(props);
433
+ const modelValue = getGroupOrLocalRef("modelValue", props, emit);
434
+ const valid = getGroupOrLocalRef("valid", props);
435
+ const invalid = getGroupOrLocalRef("invalid", props);
436
+ const readonly = computed(
437
+ () => {
438
+ var _a;
439
+ return Boolean(props.readonly || ((_a = group == null ? void 0 : group.value) == null ? void 0 : _a.disabled.value));
440
+ }
441
+ );
442
+ const disabled = computed(
443
+ () => {
444
+ var _a;
445
+ return Boolean(props.disabled || ((_a = group == null ? void 0 : group.value) == null ? void 0 : _a.disabled.value));
446
+ }
447
+ );
257
448
  return {
258
449
  // local props
259
- id: u,
260
- propsSwitch: a,
261
- indeterminate: p,
450
+ id,
451
+ propsSwitch,
452
+ indeterminate,
262
453
  // global props
263
- group: r,
264
- isInGroup: s,
265
- modelValue: c,
266
- readonly: f,
267
- disabled: o,
268
- valid: l,
269
- invalid: S
454
+ group,
455
+ isInGroup,
456
+ modelValue,
457
+ valid,
458
+ invalid,
459
+ readonly,
460
+ disabled
270
461
  };
271
462
  }
272
- function _(e) {
273
- return Array.isArray(e) ? e.filter((t) => _e(t)).join(" ") : e;
463
+ function joinLines(errors) {
464
+ if (Array.isArray(errors)) {
465
+ return errors.filter((e) => isString(e)).join(" ");
466
+ }
467
+ return errors;
274
468
  }
275
- function Ie(e, t) {
469
+ function HintSlotFactory(parentProps, parentSlots) {
470
+ const {
471
+ invalid: invalidSlot,
472
+ valid: validSlot,
473
+ hint: hintSlot,
474
+ loading: loadingSlot
475
+ } = parentSlots;
276
476
  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
477
+ hintLabel,
478
+ modelValue,
479
+ valid,
480
+ validLabel,
481
+ invalid,
482
+ invalidLabel,
483
+ ...otherProps
484
+ } = toRefs(parentProps);
485
+ const loading = resolveFieldData(otherProps, "loading");
486
+ const loadingLabel = resolveFieldData(otherProps, "loadingLabel");
487
+ const hasInvalid = computed(() => {
488
+ if (!invalid.value) {
489
+ return false;
490
+ }
491
+ if (invalid.value && invalidSlot) {
492
+ return true;
493
+ }
494
+ if ((invalidLabel == null ? void 0 : invalidLabel.value) && Array.isArray(invalidLabel.value) && invalidLabel.value.length > 0) {
495
+ return true;
496
+ }
497
+ if ((invalidLabel == null ? void 0 : invalidLabel.value) && !isEmpty(invalidLabel)) {
498
+ return true;
499
+ }
500
+ return false;
501
+ });
502
+ const hasHint = computed(
503
+ () => !!(hintLabel && hintLabel.value || hintSlot)
504
+ );
505
+ const hasValid = computed(
506
+ () => !!(validLabel && validLabel.value || validSlot)
507
+ );
508
+ const hasLoading = computed(
509
+ () => !!((loading == null ? void 0 : loading.value) && loadingSlot || (loading == null ? void 0 : loading.value) && (loadingLabel == null ? void 0 : loadingLabel.value))
510
+ );
511
+ const isVisible = computed(
512
+ () => hasHint.value || hasValid.value || hasInvalid.value || hasLoading.value
297
513
  );
298
514
  return {
299
- hasInvalid: b,
300
- hasHint: g,
301
- hasValid: k,
302
- hasLoading: j,
515
+ hasInvalid,
516
+ hasHint,
517
+ hasValid,
518
+ hasLoading,
303
519
  HintSlot: {
304
520
  name: "HintSlot",
305
521
  props: {
@@ -308,151 +524,223 @@ function Ie(e, t) {
308
524
  default: () => ({})
309
525
  }
310
526
  },
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
527
+ setup(props) {
528
+ const hintContent = computed(() => {
529
+ const slotProps = toReactive({
530
+ hintLabel,
531
+ modelValue,
532
+ valid,
533
+ validLabel,
534
+ invalid,
535
+ invalidLabel,
536
+ loading,
537
+ loadingLabel,
538
+ ...props.params
323
539
  });
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);
540
+ if (invalid == null ? void 0 : invalid.value) {
541
+ return (invalidSlot == null ? void 0 : invalidSlot(slotProps)) || joinLines(invalidLabel == null ? void 0 : invalidLabel.value) || (hintLabel == null ? void 0 : hintLabel.value);
542
+ }
543
+ if (valid == null ? void 0 : valid.value)
544
+ return (validSlot == null ? void 0 : validSlot(slotProps)) || joinLines(validLabel == null ? void 0 : validLabel.value) || (hintLabel == null ? void 0 : hintLabel.value);
545
+ if (loading == null ? void 0 : loading.value)
546
+ return (loadingSlot == null ? void 0 : loadingSlot(slotProps)) || joinLines(loadingLabel == null ? void 0 : loadingLabel.value) || (hintLabel == null ? void 0 : hintLabel.value);
547
+ return (hintSlot == null ? void 0 : hintSlot(slotProps)) || joinLines(hintLabel == null ? void 0 : hintLabel.value) || (hintLabel == null ? void 0 : hintLabel.value);
325
548
  });
326
549
  return {
327
- isVisible: A,
328
- hasInvalid: b,
329
- hasValid: k,
330
- hintContent: x
550
+ isVisible,
551
+ hasInvalid,
552
+ hasValid,
553
+ hintContent
331
554
  };
332
555
  },
333
556
  render() {
334
- if (this.isVisible)
335
- return T(
557
+ if (this.isVisible) {
558
+ return h(
336
559
  "small",
337
560
  {
338
561
  role: this.hasInvalid ? "alert" : this.hasValid ? "status" : void 0
339
562
  },
340
563
  this.hintContent
341
564
  );
565
+ }
342
566
  }
343
567
  }
344
568
  };
345
569
  }
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;
570
+ const useUniqueId = (id) => computed(() => String((id == null ? void 0 : id.value) || nanoid()));
571
+ function useModifiers(prefix, modifiers, others) {
572
+ return computed(() => {
573
+ const toReturn = {
574
+ [prefix]: true
575
+ };
576
+ const modifiersArray = typeof (modifiers == null ? void 0 : modifiers.value) === "string" ? modifiers.value.split(" ") : modifiers == null ? void 0 : modifiers.value;
577
+ if (modifiersArray) {
578
+ if (Array.isArray(modifiersArray)) {
579
+ modifiersArray.forEach((modifier) => {
580
+ if (modifier) {
581
+ toReturn[`${prefix}--${modifier}`] = true;
582
+ }
583
+ });
584
+ }
585
+ }
586
+ if (others) {
587
+ Object.keys(others.value).forEach((key) => {
588
+ toReturn[`${prefix}--${key}`] = unref(others.value[key]);
589
+ });
590
+ }
591
+ return toReturn;
357
592
  });
358
593
  }
359
- const Ne = ["for"], we = ["id", "name", "disabled", "value", "tabindex", "aria-invalid"], Ge = {
594
+ const _hoisted_1 = ["for"];
595
+ const _hoisted_2 = ["id", "name", "disabled", "value", "tabindex", "aria-invalid"];
596
+ const __default__ = {
360
597
  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({
598
+ };
599
+ const _sfc_main = /* @__PURE__ */ defineComponent({
600
+ ...__default__,
601
+ props: VvCheckboxProps,
602
+ emits: VvCheckboxEvents,
603
+ setup(__props, { emit }) {
604
+ const props = __props;
605
+ const slots = useSlots();
606
+ const {
607
+ id,
608
+ disabled,
609
+ readonly,
610
+ valid,
611
+ invalid,
612
+ propsSwitch,
613
+ modelValue,
614
+ indeterminate,
615
+ isInGroup
616
+ } = useGroupProps(props, emit);
617
+ const hasId = useUniqueId(id);
618
+ const tabindex = computed(() => isDisabled.value ? -1 : props.tabindex);
619
+ const input = ref();
620
+ const isBinary = computed(
621
+ () => props.uncheckedValue !== void 0 && !isInGroup.value
622
+ );
623
+ const isDisabled = computed(() => disabled.value || readonly.value);
624
+ const isInvalid = computed(() => {
625
+ if (invalid.value === true) {
626
+ return true;
627
+ }
628
+ if (valid.value === true) {
629
+ return false;
630
+ }
631
+ return void 0;
632
+ });
633
+ const isChecked = computed(() => {
634
+ if (isBinary.value) {
635
+ return modelValue.value === props.value;
636
+ }
637
+ return Array.isArray(modelValue.value) ? contains(props.value, modelValue.value) : equals(props.value, modelValue.value);
638
+ });
639
+ const isIndeterminated = computed(() => {
640
+ if (indeterminate.value) {
641
+ return true;
642
+ }
643
+ if (!isChecked.value && isBinary.value && props.uncheckedValue !== modelValue.value) {
644
+ return true;
645
+ }
646
+ return false;
647
+ });
648
+ const hasValue = computed(() => {
649
+ if (isBinary.value) {
650
+ return void 0;
651
+ }
652
+ return ["string", "number", "boolean"].includes(typeof props.value) ? props.value : true;
653
+ });
654
+ const localModelValue = computed({
387
655
  get() {
388
- return A.value;
656
+ return isChecked.value;
389
657
  },
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] : []
658
+ set(newValue) {
659
+ if (isBinary.value) {
660
+ modelValue.value = newValue ? props.value : props.uncheckedValue;
661
+ } else if (Array.isArray(modelValue.value) || isInGroup.value) {
662
+ const toReturn = new Set(
663
+ Array.isArray(modelValue.value) ? modelValue.value : modelValue.value !== void 0 ? [modelValue.value] : []
396
664
  );
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);
665
+ if (newValue) {
666
+ toReturn.add(props.value);
667
+ } else {
668
+ toReturn.delete(props.value);
669
+ }
670
+ modelValue.value = [...toReturn];
671
+ } else {
672
+ modelValue.value = newValue ? props.value : void 0;
673
+ }
674
+ emit("change", newValue);
401
675
  }
402
- }), { modifiers: q } = R(r), F = Re(
676
+ });
677
+ const { modifiers } = toRefs(props);
678
+ const bemCssClasses = useModifiers(
403
679
  "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
680
+ modifiers,
681
+ computed(() => ({
682
+ switch: propsSwitch.value,
683
+ valid: valid.value,
684
+ invalid: invalid.value,
685
+ disabled: disabled.value,
686
+ readonly: readonly.value,
687
+ indeterminate: indeterminate.value
412
688
  }))
413
689
  );
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;
690
+ watchEffect(() => {
691
+ if (isBinary.value && Array.isArray(modelValue.value)) {
692
+ console.warn(
693
+ `[VvCheckbox] The model value is an array but the component is in binary mode.`
694
+ );
695
+ }
696
+ });
697
+ watch(
698
+ () => isIndeterminated.value,
699
+ (newValue) => {
700
+ if (newValue) {
701
+ input.value.indeterminate = true;
702
+ } else {
703
+ input.value.indeterminate = false;
704
+ }
705
+ }
706
+ );
707
+ onMounted(() => {
708
+ if (isIndeterminated.value) {
709
+ input.value.indeterminate = true;
422
710
  }
423
- ), L(() => {
424
- B.value && (b.value.indeterminate = !0);
425
711
  });
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));
712
+ const { HintSlot } = HintSlotFactory(props, slots);
713
+ return (_ctx, _cache) => {
714
+ return openBlock(), createElementBlock("label", {
715
+ class: normalizeClass(unref(bemCssClasses)),
716
+ for: unref(hasId)
717
+ }, [
718
+ withDirectives(createElementVNode("input", {
719
+ id: unref(hasId),
720
+ ref_key: "input",
721
+ ref: input,
722
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isRef(localModelValue) ? localModelValue.value = $event : null),
723
+ type: "checkbox",
724
+ class: "vv-checkbox__input",
725
+ name: _ctx.name,
726
+ disabled: unref(isDisabled),
727
+ value: unref(hasValue),
728
+ tabindex: unref(tabindex),
729
+ "aria-invalid": unref(isInvalid)
730
+ }, null, 8, _hoisted_2), [
731
+ [vModelCheckbox, unref(localModelValue)]
732
+ ]),
733
+ renderSlot(_ctx.$slots, "default", { value: unref(modelValue) }, () => [
734
+ createTextVNode(toDisplayString(_ctx.label), 1)
735
+ ]),
736
+ createVNode(unref(HintSlot), {
737
+ class: "vv-checkbox__hint",
738
+ params: { value: unref(modelValue) }
739
+ }, null, 8, ["params"])
740
+ ], 10, _hoisted_1);
741
+ };
454
742
  }
455
743
  });
456
744
  export {
457
- Me as default
745
+ _sfc_main as default
458
746
  };