@vritti/quantum-ui 0.2.8 → 0.2.10

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 (188) hide show
  1. package/README.md +7 -7
  2. package/dist/Alert.js +115 -0
  3. package/dist/Alert.js.map +1 -0
  4. package/dist/Avatar.js +6 -6
  5. package/dist/Badge.js +2 -28
  6. package/dist/Badge.js.map +1 -1
  7. package/dist/Badge2.js +30 -0
  8. package/dist/Badge2.js.map +1 -0
  9. package/dist/Button.js +1 -1
  10. package/dist/Button2.js +35 -16
  11. package/dist/Button2.js.map +1 -1
  12. package/dist/Card.js +1 -1
  13. package/dist/Chart.js +2 -2
  14. package/dist/Checkbox.js +2 -289
  15. package/dist/Checkbox.js.map +1 -1
  16. package/dist/Checkbox2.js +292 -0
  17. package/dist/Checkbox2.js.map +1 -0
  18. package/dist/Combination.js +6 -18
  19. package/dist/Combination.js.map +1 -1
  20. package/dist/DatePicker.js +4 -335
  21. package/dist/DatePicker.js.map +1 -1
  22. package/dist/DropdownMenu.js +8 -7
  23. package/dist/DropdownMenu.js.map +1 -1
  24. package/dist/Form.js +52 -27
  25. package/dist/Form.js.map +1 -1
  26. package/dist/Label.js +2 -2
  27. package/dist/OTPField.js +1 -1
  28. package/dist/PasswordField.js +1 -1
  29. package/dist/PhoneField.js +6 -6
  30. package/dist/PhoneField.js.map +1 -1
  31. package/dist/Progress.js +3 -3
  32. package/dist/Skeleton.js +1 -1
  33. package/dist/Sonner.js +7 -39
  34. package/dist/Sonner.js.map +1 -1
  35. package/dist/Spinner.js +1 -1
  36. package/dist/Switch.js +5 -5
  37. package/dist/TextArea.js +1 -1
  38. package/dist/TextField.js +4 -3
  39. package/dist/TextField.js.map +1 -1
  40. package/dist/ThemeContext.js +2 -8
  41. package/dist/ThemeContext.js.map +1 -1
  42. package/dist/Toggle.js +3 -3
  43. package/dist/Typography.js +1 -1
  44. package/dist/assets/quantum-ui.css +31 -31
  45. package/dist/chevron-left.js +15 -0
  46. package/dist/chevron-left.js.map +1 -0
  47. package/dist/chevron-right.js +15 -0
  48. package/dist/chevron-right.js.map +1 -0
  49. package/dist/components/Alert.js +2 -0
  50. package/dist/components/Alert.js.map +1 -0
  51. package/dist/components/Badge.js +2 -1
  52. package/dist/components/Badge.js.map +1 -1
  53. package/dist/components/DataTable.js +2 -0
  54. package/dist/components/DataTable.js.map +1 -0
  55. package/dist/components/Select.js +1379 -0
  56. package/dist/components/Select.js.map +1 -0
  57. package/dist/field.js +2 -2
  58. package/dist/hooks/index.js +1 -0
  59. package/dist/hooks/index.js.map +1 -1
  60. package/dist/index.js +10 -4
  61. package/dist/index.js.map +1 -1
  62. package/dist/index10.js +10 -99
  63. package/dist/index10.js.map +1 -1
  64. package/dist/index11.js +35 -95
  65. package/dist/index11.js.map +1 -1
  66. package/dist/index12.js +86 -190
  67. package/dist/index12.js.map +1 -1
  68. package/dist/index13.js +196 -190
  69. package/dist/index13.js.map +1 -1
  70. package/dist/index14.js +199 -0
  71. package/dist/index14.js.map +1 -0
  72. package/dist/index2.js +65 -58
  73. package/dist/index2.js.map +1 -1
  74. package/dist/index3.js +60 -8
  75. package/dist/index3.js.map +1 -1
  76. package/dist/index4.js +80 -106
  77. package/dist/index4.js.map +1 -1
  78. package/dist/index5.js +42 -37
  79. package/dist/index5.js.map +1 -1
  80. package/dist/index6.js +9 -4
  81. package/dist/index6.js.map +1 -1
  82. package/dist/index7.js +125 -10
  83. package/dist/index7.js.map +1 -1
  84. package/dist/index8.js +37 -42
  85. package/dist/index8.js.map +1 -1
  86. package/dist/index9.js +4 -37
  87. package/dist/index9.js.map +1 -1
  88. package/dist/lib/components/Alert/Alert.d.ts +11 -0
  89. package/dist/lib/components/Alert/Alert.d.ts.map +1 -0
  90. package/dist/lib/components/Alert/index.d.ts +2 -0
  91. package/dist/lib/components/Alert/index.d.ts.map +1 -0
  92. package/dist/lib/components/DataTable/DataTable.d.ts +15 -0
  93. package/dist/lib/components/DataTable/DataTable.d.ts.map +1 -0
  94. package/dist/lib/components/DataTable/components/DataTableColumnHeader.d.ts +12 -0
  95. package/dist/lib/components/DataTable/components/DataTableColumnHeader.d.ts.map +1 -0
  96. package/dist/lib/components/DataTable/components/DataTableEmpty.d.ts +13 -0
  97. package/dist/lib/components/DataTable/components/DataTableEmpty.d.ts.map +1 -0
  98. package/dist/lib/components/DataTable/components/DataTablePagination.d.ts +13 -0
  99. package/dist/lib/components/DataTable/components/DataTablePagination.d.ts.map +1 -0
  100. package/dist/lib/components/DataTable/components/DataTableToolbar.d.ts +15 -0
  101. package/dist/lib/components/DataTable/components/DataTableToolbar.d.ts.map +1 -0
  102. package/dist/lib/components/DataTable/components/DataTableViewOptions.d.ts +11 -0
  103. package/dist/lib/components/DataTable/components/DataTableViewOptions.d.ts.map +1 -0
  104. package/dist/lib/components/DataTable/hooks/useDataTable.d.ts +3 -0
  105. package/dist/lib/components/DataTable/hooks/useDataTable.d.ts.map +1 -0
  106. package/dist/lib/components/DataTable/index.d.ts +10 -0
  107. package/dist/lib/components/DataTable/index.d.ts.map +1 -0
  108. package/dist/lib/components/DataTable/types.d.ts +67 -0
  109. package/dist/lib/components/DataTable/types.d.ts.map +1 -0
  110. package/dist/lib/components/DataTable/utils.d.ts +3 -0
  111. package/dist/lib/components/DataTable/utils.d.ts.map +1 -0
  112. package/dist/lib/components/Form/Form.d.ts +3 -2
  113. package/dist/lib/components/Form/Form.d.ts.map +1 -1
  114. package/dist/lib/components/PhoneField/PhoneField.d.ts +1 -0
  115. package/dist/lib/components/PhoneField/PhoneField.d.ts.map +1 -1
  116. package/dist/lib/components/Select/Select.d.ts +23 -0
  117. package/dist/lib/components/Select/Select.d.ts.map +1 -0
  118. package/dist/lib/components/Select/components/MultiSelect/MultiSelect.d.ts +25 -0
  119. package/dist/lib/components/Select/components/MultiSelect/MultiSelect.d.ts.map +1 -0
  120. package/dist/lib/components/Select/components/MultiSelect/MultiSelectFilter.d.ts +21 -0
  121. package/dist/lib/components/Select/components/MultiSelect/MultiSelectFilter.d.ts.map +1 -0
  122. package/dist/lib/components/Select/components/SingleSelect/SingleSelect.d.ts +25 -0
  123. package/dist/lib/components/Select/components/SingleSelect/SingleSelect.d.ts.map +1 -0
  124. package/dist/lib/components/Select/components/SingleSelect/SingleSelectFilter.d.ts +21 -0
  125. package/dist/lib/components/Select/components/SingleSelect/SingleSelectFilter.d.ts.map +1 -0
  126. package/dist/lib/components/Select/hooks/useMultiSelect.d.ts +32 -0
  127. package/dist/lib/components/Select/hooks/useMultiSelect.d.ts.map +1 -0
  128. package/dist/lib/components/Select/hooks/useSelect.d.ts +23 -0
  129. package/dist/lib/components/Select/hooks/useSelect.d.ts.map +1 -0
  130. package/dist/lib/components/Select/hooks/useSingleSelect.d.ts +30 -0
  131. package/dist/lib/components/Select/hooks/useSingleSelect.d.ts.map +1 -0
  132. package/dist/lib/components/Select/index.d.ts +38 -0
  133. package/dist/lib/components/Select/index.d.ts.map +1 -0
  134. package/dist/lib/components/Select/types.d.ts +31 -0
  135. package/dist/lib/components/Select/types.d.ts.map +1 -0
  136. package/dist/lib/components/TextField/TextField.d.ts.map +1 -1
  137. package/dist/lib/components/index.d.ts +3 -0
  138. package/dist/lib/components/index.d.ts.map +1 -1
  139. package/dist/lib/context/ThemeContext.d.ts +1 -1
  140. package/dist/lib/context/ThemeContext.d.ts.map +1 -1
  141. package/dist/lib/context/index.d.ts +1 -1
  142. package/dist/lib/context/index.d.ts.map +1 -1
  143. package/dist/lib/hooks/index.d.ts +2 -1
  144. package/dist/lib/hooks/index.d.ts.map +1 -1
  145. package/dist/lib/hooks/useSSE.d.ts +21 -0
  146. package/dist/lib/hooks/useSSE.d.ts.map +1 -0
  147. package/dist/lib/index.d.ts +2 -2
  148. package/dist/lib/index.d.ts.map +1 -1
  149. package/dist/lib/utils/axios.d.ts.map +1 -1
  150. package/dist/lib/utils/formHelpers.d.ts +7 -3
  151. package/dist/lib/utils/formHelpers.d.ts.map +1 -1
  152. package/dist/popover.js +329 -0
  153. package/dist/popover.js.map +1 -0
  154. package/dist/separator2.js +2 -2
  155. package/dist/shadcn/shadcnAlert/alert.d.ts +11 -0
  156. package/dist/shadcn/shadcnAlert/alert.d.ts.map +1 -0
  157. package/dist/shadcn/shadcnAlert/index.d.ts +2 -0
  158. package/dist/shadcn/shadcnAlert/index.d.ts.map +1 -0
  159. package/dist/shadcn/shadcnBadge/Badge.d.ts +1 -1
  160. package/dist/shadcn/shadcnButton/Button.d.ts +2 -2
  161. package/dist/shadcn/shadcnButton/Button.d.ts.map +1 -1
  162. package/dist/shadcn/shadcnInputOTP/InputOTP.d.ts +2 -2
  163. package/dist/shadcn/shadcnMultiSelect/index.d.ts +3 -0
  164. package/dist/shadcn/shadcnMultiSelect/index.d.ts.map +1 -0
  165. package/dist/shadcn/shadcnMultiSelect/multi-select.d.ts +61 -0
  166. package/dist/shadcn/shadcnMultiSelect/multi-select.d.ts.map +1 -0
  167. package/dist/shadcn/shadcnSingleSelect/index.d.ts +3 -0
  168. package/dist/shadcn/shadcnSingleSelect/index.d.ts.map +1 -0
  169. package/dist/shadcn/shadcnSingleSelect/single-select.d.ts +60 -0
  170. package/dist/shadcn/shadcnSingleSelect/single-select.d.ts.map +1 -0
  171. package/dist/shadcn/shadcnSonner/sonner.d.ts +1 -1
  172. package/dist/shadcn/shadcnSonner/sonner.d.ts.map +1 -1
  173. package/dist/triangle-alert.js +40 -0
  174. package/dist/triangle-alert.js.map +1 -0
  175. package/dist/useSSE.js +82 -0
  176. package/dist/useSSE.js.map +1 -0
  177. package/dist/useTheme.js.map +1 -1
  178. package/dist/utils/axios.js +4167 -2
  179. package/dist/utils/axios.js.map +1 -1
  180. package/dist/utils.js +3748 -2970
  181. package/dist/utils.js.map +1 -1
  182. package/dist/utils2.js +3042 -0
  183. package/dist/utils2.js.map +1 -0
  184. package/dist/x.js +18 -0
  185. package/dist/x.js.map +1 -0
  186. package/package.json +22 -7
  187. package/dist/axios.js +0 -4228
  188. package/dist/axios.js.map +0 -1
package/dist/Checkbox.js CHANGED
@@ -1,294 +1,7 @@
1
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import * as React from 'react';
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
3
2
  import React__default from 'react';
4
3
  import { F as Field, a as FieldContent, e as FieldLabel, b as FieldDescription, c as FieldError } from './field.js';
5
- import { u as useComposedRefs } from './index5.js';
6
- import { c as createContextScope, u as useSize } from './index11.js';
7
- import { P as Primitive, u as useControllableState, c as composeEventHandlers } from './index12.js';
8
- import { u as usePrevious } from './index7.js';
9
- import { P as Presence } from './index4.js';
10
- import { c as cn } from './utils.js';
11
- import { C as Check } from './check.js';
12
-
13
- var CHECKBOX_NAME = "Checkbox";
14
- var [createCheckboxContext] = createContextScope(CHECKBOX_NAME);
15
- var [CheckboxProviderImpl, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);
16
- function CheckboxProvider(props) {
17
- const {
18
- __scopeCheckbox,
19
- checked: checkedProp,
20
- children,
21
- defaultChecked,
22
- disabled,
23
- form,
24
- name,
25
- onCheckedChange,
26
- required,
27
- value = "on",
28
- // @ts-expect-error
29
- internal_do_not_use_render
30
- } = props;
31
- const [checked, setChecked] = useControllableState({
32
- prop: checkedProp,
33
- defaultProp: defaultChecked ?? false,
34
- onChange: onCheckedChange,
35
- caller: CHECKBOX_NAME
36
- });
37
- const [control, setControl] = React.useState(null);
38
- const [bubbleInput, setBubbleInput] = React.useState(null);
39
- const hasConsumerStoppedPropagationRef = React.useRef(false);
40
- const isFormControl = control ? !!form || !!control.closest("form") : (
41
- // We set this to true by default so that events bubble to forms without JS (SSR)
42
- true
43
- );
44
- const context = {
45
- checked,
46
- disabled,
47
- setChecked,
48
- control,
49
- setControl,
50
- name,
51
- form,
52
- value,
53
- hasConsumerStoppedPropagationRef,
54
- required,
55
- defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked,
56
- isFormControl,
57
- bubbleInput,
58
- setBubbleInput
59
- };
60
- return /* @__PURE__ */ jsx(
61
- CheckboxProviderImpl,
62
- {
63
- scope: __scopeCheckbox,
64
- ...context,
65
- children: isFunction(internal_do_not_use_render) ? internal_do_not_use_render(context) : children
66
- }
67
- );
68
- }
69
- var TRIGGER_NAME = "CheckboxTrigger";
70
- var CheckboxTrigger = React.forwardRef(
71
- ({ __scopeCheckbox, onKeyDown, onClick, ...checkboxProps }, forwardedRef) => {
72
- const {
73
- control,
74
- value,
75
- disabled,
76
- checked,
77
- required,
78
- setControl,
79
- setChecked,
80
- hasConsumerStoppedPropagationRef,
81
- isFormControl,
82
- bubbleInput
83
- } = useCheckboxContext(TRIGGER_NAME, __scopeCheckbox);
84
- const composedRefs = useComposedRefs(forwardedRef, setControl);
85
- const initialCheckedStateRef = React.useRef(checked);
86
- React.useEffect(() => {
87
- const form = control?.form;
88
- if (form) {
89
- const reset = () => setChecked(initialCheckedStateRef.current);
90
- form.addEventListener("reset", reset);
91
- return () => form.removeEventListener("reset", reset);
92
- }
93
- }, [control, setChecked]);
94
- return /* @__PURE__ */ jsx(
95
- Primitive.button,
96
- {
97
- type: "button",
98
- role: "checkbox",
99
- "aria-checked": isIndeterminate(checked) ? "mixed" : checked,
100
- "aria-required": required,
101
- "data-state": getState(checked),
102
- "data-disabled": disabled ? "" : void 0,
103
- disabled,
104
- value,
105
- ...checkboxProps,
106
- ref: composedRefs,
107
- onKeyDown: composeEventHandlers(onKeyDown, (event) => {
108
- if (event.key === "Enter") event.preventDefault();
109
- }),
110
- onClick: composeEventHandlers(onClick, (event) => {
111
- setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);
112
- if (bubbleInput && isFormControl) {
113
- hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();
114
- if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();
115
- }
116
- })
117
- }
118
- );
119
- }
120
- );
121
- CheckboxTrigger.displayName = TRIGGER_NAME;
122
- var Checkbox$2 = React.forwardRef(
123
- (props, forwardedRef) => {
124
- const {
125
- __scopeCheckbox,
126
- name,
127
- checked,
128
- defaultChecked,
129
- required,
130
- disabled,
131
- value,
132
- onCheckedChange,
133
- form,
134
- ...checkboxProps
135
- } = props;
136
- return /* @__PURE__ */ jsx(
137
- CheckboxProvider,
138
- {
139
- __scopeCheckbox,
140
- checked,
141
- defaultChecked,
142
- disabled,
143
- required,
144
- onCheckedChange,
145
- name,
146
- form,
147
- value,
148
- internal_do_not_use_render: ({ isFormControl }) => /* @__PURE__ */ jsxs(Fragment, { children: [
149
- /* @__PURE__ */ jsx(
150
- CheckboxTrigger,
151
- {
152
- ...checkboxProps,
153
- ref: forwardedRef,
154
- __scopeCheckbox
155
- }
156
- ),
157
- isFormControl && /* @__PURE__ */ jsx(
158
- CheckboxBubbleInput,
159
- {
160
- __scopeCheckbox
161
- }
162
- )
163
- ] })
164
- }
165
- );
166
- }
167
- );
168
- Checkbox$2.displayName = CHECKBOX_NAME;
169
- var INDICATOR_NAME = "CheckboxIndicator";
170
- var CheckboxIndicator = React.forwardRef(
171
- (props, forwardedRef) => {
172
- const { __scopeCheckbox, forceMount, ...indicatorProps } = props;
173
- const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);
174
- return /* @__PURE__ */ jsx(
175
- Presence,
176
- {
177
- present: forceMount || isIndeterminate(context.checked) || context.checked === true,
178
- children: /* @__PURE__ */ jsx(
179
- Primitive.span,
180
- {
181
- "data-state": getState(context.checked),
182
- "data-disabled": context.disabled ? "" : void 0,
183
- ...indicatorProps,
184
- ref: forwardedRef,
185
- style: { pointerEvents: "none", ...props.style }
186
- }
187
- )
188
- }
189
- );
190
- }
191
- );
192
- CheckboxIndicator.displayName = INDICATOR_NAME;
193
- var BUBBLE_INPUT_NAME = "CheckboxBubbleInput";
194
- var CheckboxBubbleInput = React.forwardRef(
195
- ({ __scopeCheckbox, ...props }, forwardedRef) => {
196
- const {
197
- control,
198
- hasConsumerStoppedPropagationRef,
199
- checked,
200
- defaultChecked,
201
- required,
202
- disabled,
203
- name,
204
- value,
205
- form,
206
- bubbleInput,
207
- setBubbleInput
208
- } = useCheckboxContext(BUBBLE_INPUT_NAME, __scopeCheckbox);
209
- const composedRefs = useComposedRefs(forwardedRef, setBubbleInput);
210
- const prevChecked = usePrevious(checked);
211
- const controlSize = useSize(control);
212
- React.useEffect(() => {
213
- const input = bubbleInput;
214
- if (!input) return;
215
- const inputProto = window.HTMLInputElement.prototype;
216
- const descriptor = Object.getOwnPropertyDescriptor(
217
- inputProto,
218
- "checked"
219
- );
220
- const setChecked = descriptor.set;
221
- const bubbles = !hasConsumerStoppedPropagationRef.current;
222
- if (prevChecked !== checked && setChecked) {
223
- const event = new Event("click", { bubbles });
224
- input.indeterminate = isIndeterminate(checked);
225
- setChecked.call(input, isIndeterminate(checked) ? false : checked);
226
- input.dispatchEvent(event);
227
- }
228
- }, [bubbleInput, prevChecked, checked, hasConsumerStoppedPropagationRef]);
229
- const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : checked);
230
- return /* @__PURE__ */ jsx(
231
- Primitive.input,
232
- {
233
- type: "checkbox",
234
- "aria-hidden": true,
235
- defaultChecked: defaultChecked ?? defaultCheckedRef.current,
236
- required,
237
- disabled,
238
- name,
239
- value,
240
- form,
241
- ...props,
242
- tabIndex: -1,
243
- ref: composedRefs,
244
- style: {
245
- ...props.style,
246
- ...controlSize,
247
- position: "absolute",
248
- pointerEvents: "none",
249
- opacity: 0,
250
- margin: 0,
251
- // We transform because the input is absolutely positioned but we have
252
- // rendered it **after** the button. This pulls it back to sit on top
253
- // of the button.
254
- transform: "translateX(-100%)"
255
- }
256
- }
257
- );
258
- }
259
- );
260
- CheckboxBubbleInput.displayName = BUBBLE_INPUT_NAME;
261
- function isFunction(value) {
262
- return typeof value === "function";
263
- }
264
- function isIndeterminate(checked) {
265
- return checked === "indeterminate";
266
- }
267
- function getState(checked) {
268
- return isIndeterminate(checked) ? "indeterminate" : checked ? "checked" : "unchecked";
269
- }
270
-
271
- function Checkbox$1({ className, ...props }) {
272
- return /* @__PURE__ */ jsx(
273
- Checkbox$2,
274
- {
275
- "data-slot": "checkbox",
276
- className: cn(
277
- "peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
278
- className
279
- ),
280
- ...props,
281
- children: /* @__PURE__ */ jsx(
282
- CheckboxIndicator,
283
- {
284
- "data-slot": "checkbox-indicator",
285
- className: "grid place-content-center text-current transition-none",
286
- children: /* @__PURE__ */ jsx(Check, { className: "size-3.5" })
287
- }
288
- )
289
- }
290
- );
291
- }
4
+ import { C as Checkbox$1 } from './Checkbox2.js';
292
5
 
293
6
  const Checkbox = React__default.forwardRef(
294
7
  ({ label, description, error, id, ...props }, ref) => {
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.js","sources":["../node_modules/.pnpm/@radix-ui+react-checkbox@1.3.3_@types+react-dom@19.2.3_@types+react@19.2.9__@types+reac_a5e308f1a571e4919444f48bf038c82f/node_modules/@radix-ui/react-checkbox/dist/index.mjs","../shadcn/shadcnCheckbox/Checkbox.tsx","../lib/components/Checkbox/Checkbox.tsx"],"sourcesContent":["\"use client\";\n\n// src/checkbox.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar CHECKBOX_NAME = \"Checkbox\";\nvar [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);\nvar [CheckboxProviderImpl, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);\nfunction CheckboxProvider(props) {\n const {\n __scopeCheckbox,\n checked: checkedProp,\n children,\n defaultChecked,\n disabled,\n form,\n name,\n onCheckedChange,\n required,\n value = \"on\",\n // @ts-expect-error\n internal_do_not_use_render\n } = props;\n const [checked, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked ?? false,\n onChange: onCheckedChange,\n caller: CHECKBOX_NAME\n });\n const [control, setControl] = React.useState(null);\n const [bubbleInput, setBubbleInput] = React.useState(null);\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = control ? !!form || !!control.closest(\"form\") : (\n // We set this to true by default so that events bubble to forms without JS (SSR)\n true\n );\n const context = {\n checked,\n disabled,\n setChecked,\n control,\n setControl,\n name,\n form,\n value,\n hasConsumerStoppedPropagationRef,\n required,\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked,\n isFormControl,\n bubbleInput,\n setBubbleInput\n };\n return /* @__PURE__ */ jsx(\n CheckboxProviderImpl,\n {\n scope: __scopeCheckbox,\n ...context,\n children: isFunction(internal_do_not_use_render) ? internal_do_not_use_render(context) : children\n }\n );\n}\nvar TRIGGER_NAME = \"CheckboxTrigger\";\nvar CheckboxTrigger = React.forwardRef(\n ({ __scopeCheckbox, onKeyDown, onClick, ...checkboxProps }, forwardedRef) => {\n const {\n control,\n value,\n disabled,\n checked,\n required,\n setControl,\n setChecked,\n hasConsumerStoppedPropagationRef,\n isFormControl,\n bubbleInput\n } = useCheckboxContext(TRIGGER_NAME, __scopeCheckbox);\n const composedRefs = useComposedRefs(forwardedRef, setControl);\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const form = control?.form;\n if (form) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n form.addEventListener(\"reset\", reset);\n return () => form.removeEventListener(\"reset\", reset);\n }\n }, [control, setChecked]);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"checkbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...checkboxProps,\n ref: composedRefs,\n onKeyDown: composeEventHandlers(onKeyDown, (event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onClick: composeEventHandlers(onClick, (event) => {\n setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);\n if (bubbleInput && isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n );\n }\n);\nCheckboxTrigger.displayName = TRIGGER_NAME;\nvar Checkbox = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCheckbox,\n name,\n checked,\n defaultChecked,\n required,\n disabled,\n value,\n onCheckedChange,\n form,\n ...checkboxProps\n } = props;\n return /* @__PURE__ */ jsx(\n CheckboxProvider,\n {\n __scopeCheckbox,\n checked,\n defaultChecked,\n disabled,\n required,\n onCheckedChange,\n name,\n form,\n value,\n internal_do_not_use_render: ({ isFormControl }) => /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n CheckboxTrigger,\n {\n ...checkboxProps,\n ref: forwardedRef,\n __scopeCheckbox\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n CheckboxBubbleInput,\n {\n __scopeCheckbox\n }\n )\n ] })\n }\n );\n }\n);\nCheckbox.displayName = CHECKBOX_NAME;\nvar INDICATOR_NAME = \"CheckboxIndicator\";\nvar CheckboxIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return /* @__PURE__ */ jsx(\n Presence,\n {\n present: forceMount || isIndeterminate(context.checked) || context.checked === true,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef,\n style: { pointerEvents: \"none\", ...props.style }\n }\n )\n }\n );\n }\n);\nCheckboxIndicator.displayName = INDICATOR_NAME;\nvar BUBBLE_INPUT_NAME = \"CheckboxBubbleInput\";\nvar CheckboxBubbleInput = React.forwardRef(\n ({ __scopeCheckbox, ...props }, forwardedRef) => {\n const {\n control,\n hasConsumerStoppedPropagationRef,\n checked,\n defaultChecked,\n required,\n disabled,\n name,\n value,\n form,\n bubbleInput,\n setBubbleInput\n } = useCheckboxContext(BUBBLE_INPUT_NAME, __scopeCheckbox);\n const composedRefs = useComposedRefs(forwardedRef, setBubbleInput);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = bubbleInput;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n \"checked\"\n );\n const setChecked = descriptor.set;\n const bubbles = !hasConsumerStoppedPropagationRef.current;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }, [bubbleInput, prevChecked, checked, hasConsumerStoppedPropagationRef]);\n const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : checked);\n return /* @__PURE__ */ jsx(\n Primitive.input,\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked ?? defaultCheckedRef.current,\n required,\n disabled,\n name,\n value,\n form,\n ...props,\n tabIndex: -1,\n ref: composedRefs,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0,\n // We transform because the input is absolutely positioned but we have\n // rendered it **after** the button. This pulls it back to sit on top\n // of the button.\n transform: \"translateX(-100%)\"\n }\n }\n );\n }\n);\nCheckboxBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nexport {\n Checkbox,\n CheckboxIndicator,\n CheckboxIndicator as Indicator,\n Checkbox as Root,\n createCheckboxScope,\n CheckboxBubbleInput as unstable_BubbleInput,\n CheckboxBubbleInput as unstable_CheckboxBubbleInput,\n CheckboxProvider as unstable_CheckboxProvider,\n CheckboxTrigger as unstable_CheckboxTrigger,\n CheckboxProvider as unstable_Provider,\n CheckboxTrigger as unstable_Trigger\n};\n//# sourceMappingURL=index.mjs.map\n","import * as CheckboxPrimitive from '@radix-ui/react-checkbox';\nimport { CheckIcon } from 'lucide-react';\nimport type * as React from 'react';\n\nimport { cn } from '../utils';\n\nfunction Checkbox({ className, ...props }: React.ComponentProps<typeof CheckboxPrimitive.Root>) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n 'peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"grid place-content-center text-current transition-none\"\n >\n <CheckIcon className=\"size-3.5\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n}\n\nexport { Checkbox };\n","import React from 'react';\nimport { Checkbox as ShadcnCheckbox } from '../../../shadcn/shadcnCheckbox';\nimport { Field, FieldContent, FieldDescription, FieldError, FieldLabel } from '../../../shadcn/shadcnField';\n\nexport interface CheckboxProps extends React.ComponentPropsWithoutRef<typeof ShadcnCheckbox> {\n /**\n * Label for the checkbox\n */\n label?: React.ReactNode;\n\n /**\n * Helper text or description to display below the checkbox\n */\n description?: React.ReactNode;\n\n /**\n * Error message to display below the checkbox\n */\n error?: string;\n}\n\n// Checkbox component with Field system integration\nexport const Checkbox = React.forwardRef<React.ElementRef<typeof ShadcnCheckbox>, CheckboxProps>(\n ({ label, description, error, id, ...props }, ref) => {\n const generatedId = React.useId();\n const fieldId = id || generatedId;\n const hasError = !!error;\n\n // If no label or description, just return the base checkbox\n if (!label && !description && !error) {\n return <ShadcnCheckbox {...props} ref={ref} id={fieldId} />;\n }\n\n return (\n <Field orientation=\"horizontal\" data-disabled={props.disabled} data-invalid={hasError}>\n <ShadcnCheckbox\n {...props}\n ref={ref}\n id={fieldId}\n aria-describedby={description || error ? `${fieldId}-description ${fieldId}-error` : undefined}\n aria-invalid={hasError}\n />\n <FieldContent>\n {label && (\n <FieldLabel htmlFor={fieldId} className=\"font-normal cursor-pointer\">\n {label}\n </FieldLabel>\n )}\n\n {description && <FieldDescription id={`${fieldId}-description`}>{description}</FieldDescription>}\n\n {error && <FieldError id={`${fieldId}-error`}>{error}</FieldError>}\n </FieldContent>\n </Field>\n );\n },\n);\n\nCheckbox.displayName = 'Checkbox';\n"],"names":["Checkbox","CheckboxPrimitive.Root","CheckboxPrimitive.Indicator","CheckIcon","React","ShadcnCheckbox"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"Checkbox.js","sources":["../lib/components/Checkbox/Checkbox.tsx"],"sourcesContent":["import React from 'react';\nimport { Checkbox as ShadcnCheckbox } from '../../../shadcn/shadcnCheckbox';\nimport { Field, FieldContent, FieldDescription, FieldError, FieldLabel } from '../../../shadcn/shadcnField';\n\nexport interface CheckboxProps extends React.ComponentPropsWithoutRef<typeof ShadcnCheckbox> {\n /**\n * Label for the checkbox\n */\n label?: React.ReactNode;\n\n /**\n * Helper text or description to display below the checkbox\n */\n description?: React.ReactNode;\n\n /**\n * Error message to display below the checkbox\n */\n error?: string;\n}\n\n// Checkbox component with Field system integration\nexport const Checkbox = React.forwardRef<React.ElementRef<typeof ShadcnCheckbox>, CheckboxProps>(\n ({ label, description, error, id, ...props }, ref) => {\n const generatedId = React.useId();\n const fieldId = id || generatedId;\n const hasError = !!error;\n\n // If no label or description, just return the base checkbox\n if (!label && !description && !error) {\n return <ShadcnCheckbox {...props} ref={ref} id={fieldId} />;\n }\n\n return (\n <Field orientation=\"horizontal\" data-disabled={props.disabled} data-invalid={hasError}>\n <ShadcnCheckbox\n {...props}\n ref={ref}\n id={fieldId}\n aria-describedby={description || error ? `${fieldId}-description ${fieldId}-error` : undefined}\n aria-invalid={hasError}\n />\n <FieldContent>\n {label && (\n <FieldLabel htmlFor={fieldId} className=\"font-normal cursor-pointer\">\n {label}\n </FieldLabel>\n )}\n\n {description && <FieldDescription id={`${fieldId}-description`}>{description}</FieldDescription>}\n\n {error && <FieldError id={`${fieldId}-error`}>{error}</FieldError>}\n </FieldContent>\n </Field>\n );\n },\n);\n\nCheckbox.displayName = 'Checkbox';\n"],"names":["React","ShadcnCheckbox"],"mappings":";;;;;AAsBO,MAAM,WAAWA,cAAA,CAAM,UAAA;AAAA,EAC5B,CAAC,EAAE,KAAA,EAAO,WAAA,EAAa,OAAO,EAAA,EAAI,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACpD,IAAA,MAAM,WAAA,GAAcA,eAAM,KAAA,EAAM;AAChC,IAAA,MAAM,UAAU,EAAA,IAAM,WAAA;AACtB,IAAA,MAAM,QAAA,GAAW,CAAC,CAAC,KAAA;AAGnB,IAAA,IAAI,CAAC,KAAA,IAAS,CAAC,WAAA,IAAe,CAAC,KAAA,EAAO;AACpC,MAAA,2BAAQC,UAAA,EAAA,EAAgB,GAAG,KAAA,EAAO,GAAA,EAAU,IAAI,OAAA,EAAS,CAAA;AAAA,IAC3D;AAEA,IAAA,uBACE,IAAA,CAAC,SAAM,WAAA,EAAY,YAAA,EAAa,iBAAe,KAAA,CAAM,QAAA,EAAU,gBAAc,QAAA,EAC3E,QAAA,EAAA;AAAA,sBAAA,GAAA;AAAA,QAACA,UAAA;AAAA,QAAA;AAAA,UACE,GAAG,KAAA;AAAA,UACJ,GAAA;AAAA,UACA,EAAA,EAAI,OAAA;AAAA,UACJ,oBAAkB,WAAA,IAAe,KAAA,GAAQ,GAAG,OAAO,CAAA,aAAA,EAAgB,OAAO,CAAA,MAAA,CAAA,GAAW,MAAA;AAAA,UACrF,cAAA,EAAc;AAAA;AAAA,OAChB;AAAA,2BACC,YAAA,EAAA,EACE,QAAA,EAAA;AAAA,QAAA,KAAA,wBACE,UAAA,EAAA,EAAW,OAAA,EAAS,OAAA,EAAS,SAAA,EAAU,8BACrC,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,QAGD,+BAAe,GAAA,CAAC,gBAAA,EAAA,EAAiB,IAAI,CAAA,EAAG,OAAO,gBAAiB,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,QAE5E,yBAAS,GAAA,CAAC,UAAA,EAAA,EAAW,IAAI,CAAA,EAAG,OAAO,UAAW,QAAA,EAAA,KAAA,EAAM;AAAA,OAAA,EACvD;AAAA,KAAA,EACF,CAAA;AAAA,EAEJ;AACF;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA;;;;"}
@@ -0,0 +1,292 @@
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { u as useComposedRefs } from './index8.js';
4
+ import { c as createContextScope, u as useSize } from './index12.js';
5
+ import { P as Primitive, u as useControllableState, c as composeEventHandlers } from './index13.js';
6
+ import { u as usePrevious } from './index10.js';
7
+ import { P as Presence } from './index7.js';
8
+ import { c as cn } from './utils2.js';
9
+ import { C as Check } from './check.js';
10
+
11
+ var CHECKBOX_NAME = "Checkbox";
12
+ var [createCheckboxContext] = createContextScope(CHECKBOX_NAME);
13
+ var [CheckboxProviderImpl, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);
14
+ function CheckboxProvider(props) {
15
+ const {
16
+ __scopeCheckbox,
17
+ checked: checkedProp,
18
+ children,
19
+ defaultChecked,
20
+ disabled,
21
+ form,
22
+ name,
23
+ onCheckedChange,
24
+ required,
25
+ value = "on",
26
+ // @ts-expect-error
27
+ internal_do_not_use_render
28
+ } = props;
29
+ const [checked, setChecked] = useControllableState({
30
+ prop: checkedProp,
31
+ defaultProp: defaultChecked ?? false,
32
+ onChange: onCheckedChange,
33
+ caller: CHECKBOX_NAME
34
+ });
35
+ const [control, setControl] = React.useState(null);
36
+ const [bubbleInput, setBubbleInput] = React.useState(null);
37
+ const hasConsumerStoppedPropagationRef = React.useRef(false);
38
+ const isFormControl = control ? !!form || !!control.closest("form") : (
39
+ // We set this to true by default so that events bubble to forms without JS (SSR)
40
+ true
41
+ );
42
+ const context = {
43
+ checked,
44
+ disabled,
45
+ setChecked,
46
+ control,
47
+ setControl,
48
+ name,
49
+ form,
50
+ value,
51
+ hasConsumerStoppedPropagationRef,
52
+ required,
53
+ defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked,
54
+ isFormControl,
55
+ bubbleInput,
56
+ setBubbleInput
57
+ };
58
+ return /* @__PURE__ */ jsx(
59
+ CheckboxProviderImpl,
60
+ {
61
+ scope: __scopeCheckbox,
62
+ ...context,
63
+ children: isFunction(internal_do_not_use_render) ? internal_do_not_use_render(context) : children
64
+ }
65
+ );
66
+ }
67
+ var TRIGGER_NAME = "CheckboxTrigger";
68
+ var CheckboxTrigger = React.forwardRef(
69
+ ({ __scopeCheckbox, onKeyDown, onClick, ...checkboxProps }, forwardedRef) => {
70
+ const {
71
+ control,
72
+ value,
73
+ disabled,
74
+ checked,
75
+ required,
76
+ setControl,
77
+ setChecked,
78
+ hasConsumerStoppedPropagationRef,
79
+ isFormControl,
80
+ bubbleInput
81
+ } = useCheckboxContext(TRIGGER_NAME, __scopeCheckbox);
82
+ const composedRefs = useComposedRefs(forwardedRef, setControl);
83
+ const initialCheckedStateRef = React.useRef(checked);
84
+ React.useEffect(() => {
85
+ const form = control?.form;
86
+ if (form) {
87
+ const reset = () => setChecked(initialCheckedStateRef.current);
88
+ form.addEventListener("reset", reset);
89
+ return () => form.removeEventListener("reset", reset);
90
+ }
91
+ }, [control, setChecked]);
92
+ return /* @__PURE__ */ jsx(
93
+ Primitive.button,
94
+ {
95
+ type: "button",
96
+ role: "checkbox",
97
+ "aria-checked": isIndeterminate(checked) ? "mixed" : checked,
98
+ "aria-required": required,
99
+ "data-state": getState(checked),
100
+ "data-disabled": disabled ? "" : void 0,
101
+ disabled,
102
+ value,
103
+ ...checkboxProps,
104
+ ref: composedRefs,
105
+ onKeyDown: composeEventHandlers(onKeyDown, (event) => {
106
+ if (event.key === "Enter") event.preventDefault();
107
+ }),
108
+ onClick: composeEventHandlers(onClick, (event) => {
109
+ setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);
110
+ if (bubbleInput && isFormControl) {
111
+ hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();
112
+ if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();
113
+ }
114
+ })
115
+ }
116
+ );
117
+ }
118
+ );
119
+ CheckboxTrigger.displayName = TRIGGER_NAME;
120
+ var Checkbox$1 = React.forwardRef(
121
+ (props, forwardedRef) => {
122
+ const {
123
+ __scopeCheckbox,
124
+ name,
125
+ checked,
126
+ defaultChecked,
127
+ required,
128
+ disabled,
129
+ value,
130
+ onCheckedChange,
131
+ form,
132
+ ...checkboxProps
133
+ } = props;
134
+ return /* @__PURE__ */ jsx(
135
+ CheckboxProvider,
136
+ {
137
+ __scopeCheckbox,
138
+ checked,
139
+ defaultChecked,
140
+ disabled,
141
+ required,
142
+ onCheckedChange,
143
+ name,
144
+ form,
145
+ value,
146
+ internal_do_not_use_render: ({ isFormControl }) => /* @__PURE__ */ jsxs(Fragment, { children: [
147
+ /* @__PURE__ */ jsx(
148
+ CheckboxTrigger,
149
+ {
150
+ ...checkboxProps,
151
+ ref: forwardedRef,
152
+ __scopeCheckbox
153
+ }
154
+ ),
155
+ isFormControl && /* @__PURE__ */ jsx(
156
+ CheckboxBubbleInput,
157
+ {
158
+ __scopeCheckbox
159
+ }
160
+ )
161
+ ] })
162
+ }
163
+ );
164
+ }
165
+ );
166
+ Checkbox$1.displayName = CHECKBOX_NAME;
167
+ var INDICATOR_NAME = "CheckboxIndicator";
168
+ var CheckboxIndicator = React.forwardRef(
169
+ (props, forwardedRef) => {
170
+ const { __scopeCheckbox, forceMount, ...indicatorProps } = props;
171
+ const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);
172
+ return /* @__PURE__ */ jsx(
173
+ Presence,
174
+ {
175
+ present: forceMount || isIndeterminate(context.checked) || context.checked === true,
176
+ children: /* @__PURE__ */ jsx(
177
+ Primitive.span,
178
+ {
179
+ "data-state": getState(context.checked),
180
+ "data-disabled": context.disabled ? "" : void 0,
181
+ ...indicatorProps,
182
+ ref: forwardedRef,
183
+ style: { pointerEvents: "none", ...props.style }
184
+ }
185
+ )
186
+ }
187
+ );
188
+ }
189
+ );
190
+ CheckboxIndicator.displayName = INDICATOR_NAME;
191
+ var BUBBLE_INPUT_NAME = "CheckboxBubbleInput";
192
+ var CheckboxBubbleInput = React.forwardRef(
193
+ ({ __scopeCheckbox, ...props }, forwardedRef) => {
194
+ const {
195
+ control,
196
+ hasConsumerStoppedPropagationRef,
197
+ checked,
198
+ defaultChecked,
199
+ required,
200
+ disabled,
201
+ name,
202
+ value,
203
+ form,
204
+ bubbleInput,
205
+ setBubbleInput
206
+ } = useCheckboxContext(BUBBLE_INPUT_NAME, __scopeCheckbox);
207
+ const composedRefs = useComposedRefs(forwardedRef, setBubbleInput);
208
+ const prevChecked = usePrevious(checked);
209
+ const controlSize = useSize(control);
210
+ React.useEffect(() => {
211
+ const input = bubbleInput;
212
+ if (!input) return;
213
+ const inputProto = window.HTMLInputElement.prototype;
214
+ const descriptor = Object.getOwnPropertyDescriptor(
215
+ inputProto,
216
+ "checked"
217
+ );
218
+ const setChecked = descriptor.set;
219
+ const bubbles = !hasConsumerStoppedPropagationRef.current;
220
+ if (prevChecked !== checked && setChecked) {
221
+ const event = new Event("click", { bubbles });
222
+ input.indeterminate = isIndeterminate(checked);
223
+ setChecked.call(input, isIndeterminate(checked) ? false : checked);
224
+ input.dispatchEvent(event);
225
+ }
226
+ }, [bubbleInput, prevChecked, checked, hasConsumerStoppedPropagationRef]);
227
+ const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : checked);
228
+ return /* @__PURE__ */ jsx(
229
+ Primitive.input,
230
+ {
231
+ type: "checkbox",
232
+ "aria-hidden": true,
233
+ defaultChecked: defaultChecked ?? defaultCheckedRef.current,
234
+ required,
235
+ disabled,
236
+ name,
237
+ value,
238
+ form,
239
+ ...props,
240
+ tabIndex: -1,
241
+ ref: composedRefs,
242
+ style: {
243
+ ...props.style,
244
+ ...controlSize,
245
+ position: "absolute",
246
+ pointerEvents: "none",
247
+ opacity: 0,
248
+ margin: 0,
249
+ // We transform because the input is absolutely positioned but we have
250
+ // rendered it **after** the button. This pulls it back to sit on top
251
+ // of the button.
252
+ transform: "translateX(-100%)"
253
+ }
254
+ }
255
+ );
256
+ }
257
+ );
258
+ CheckboxBubbleInput.displayName = BUBBLE_INPUT_NAME;
259
+ function isFunction(value) {
260
+ return typeof value === "function";
261
+ }
262
+ function isIndeterminate(checked) {
263
+ return checked === "indeterminate";
264
+ }
265
+ function getState(checked) {
266
+ return isIndeterminate(checked) ? "indeterminate" : checked ? "checked" : "unchecked";
267
+ }
268
+
269
+ function Checkbox({ className, ...props }) {
270
+ return /* @__PURE__ */ jsx(
271
+ Checkbox$1,
272
+ {
273
+ "data-slot": "checkbox",
274
+ className: cn(
275
+ "peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
276
+ className
277
+ ),
278
+ ...props,
279
+ children: /* @__PURE__ */ jsx(
280
+ CheckboxIndicator,
281
+ {
282
+ "data-slot": "checkbox-indicator",
283
+ className: "grid place-content-center text-current transition-none",
284
+ children: /* @__PURE__ */ jsx(Check, { className: "size-3.5" })
285
+ }
286
+ )
287
+ }
288
+ );
289
+ }
290
+
291
+ export { Checkbox as C };
292
+ //# sourceMappingURL=Checkbox2.js.map