@tamagui/checkbox 1.76.0 → 1.77.0

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 (92) hide show
  1. package/dist/cjs/BubbleInput.js +69 -0
  2. package/dist/cjs/BubbleInput.js.map +6 -0
  3. package/dist/cjs/BubbleInput.native.js +70 -0
  4. package/dist/cjs/BubbleInput.native.js.map +6 -0
  5. package/dist/cjs/CheckboxIndicator.js +70 -0
  6. package/dist/cjs/CheckboxIndicator.js.map +6 -0
  7. package/dist/cjs/CheckboxIndicator.native.js +71 -0
  8. package/dist/cjs/CheckboxIndicator.native.js.map +6 -0
  9. package/dist/cjs/CheckboxStyledContext.js +29 -0
  10. package/dist/cjs/CheckboxStyledContext.js.map +6 -0
  11. package/dist/cjs/CheckboxStyledContext.native.js +30 -0
  12. package/dist/cjs/CheckboxStyledContext.native.js.map +6 -0
  13. package/dist/cjs/ScopedProps.js +189 -0
  14. package/dist/cjs/ScopedProps.js.map +6 -0
  15. package/dist/cjs/ScopedProps.native.js +199 -0
  16. package/dist/cjs/ScopedProps.native.js.map +6 -0
  17. package/dist/cjs/createCheckbox.js +167 -0
  18. package/dist/cjs/createCheckbox.js.map +6 -0
  19. package/dist/cjs/createCheckbox.native.js +177 -0
  20. package/dist/cjs/createCheckbox.native.js.map +6 -0
  21. package/dist/cjs/isIndeterminate.js +32 -0
  22. package/dist/cjs/isIndeterminate.js.map +6 -0
  23. package/dist/cjs/isIndeterminate.native.js +33 -0
  24. package/dist/cjs/isIndeterminate.native.js.map +6 -0
  25. package/dist/cjs/utils.js +32 -0
  26. package/dist/cjs/utils.js.map +6 -0
  27. package/dist/cjs/utils.native.js +33 -0
  28. package/dist/cjs/utils.native.js.map +6 -0
  29. package/dist/esm/BubbleInput.js +44 -0
  30. package/dist/esm/BubbleInput.js.map +6 -0
  31. package/dist/esm/BubbleInput.native.js +44 -0
  32. package/dist/esm/BubbleInput.native.js.map +6 -0
  33. package/dist/esm/CheckboxIndicator.js +57 -0
  34. package/dist/esm/CheckboxIndicator.js.map +6 -0
  35. package/dist/esm/CheckboxIndicator.native.js +57 -0
  36. package/dist/esm/CheckboxIndicator.native.js.map +6 -0
  37. package/dist/esm/CheckboxStyledContext.js +9 -0
  38. package/dist/esm/CheckboxStyledContext.js.map +6 -0
  39. package/dist/esm/CheckboxStyledContext.native.js +9 -0
  40. package/dist/esm/CheckboxStyledContext.native.js.map +6 -0
  41. package/dist/esm/ScopedProps.js +175 -0
  42. package/dist/esm/ScopedProps.js.map +6 -0
  43. package/dist/esm/ScopedProps.native.js +184 -0
  44. package/dist/esm/ScopedProps.native.js.map +6 -0
  45. package/dist/esm/createCheckbox.js +156 -0
  46. package/dist/esm/createCheckbox.js.map +6 -0
  47. package/dist/esm/createCheckbox.native.js +165 -0
  48. package/dist/esm/createCheckbox.native.js.map +6 -0
  49. package/dist/esm/isIndeterminate.js +11 -0
  50. package/dist/esm/isIndeterminate.js.map +6 -0
  51. package/dist/esm/isIndeterminate.native.js +11 -0
  52. package/dist/esm/isIndeterminate.native.js.map +6 -0
  53. package/dist/esm/utils.js +11 -0
  54. package/dist/esm/utils.js.map +6 -0
  55. package/dist/esm/utils.native.js +11 -0
  56. package/dist/esm/utils.native.js.map +6 -0
  57. package/dist/jsx/BubbleInput.js +40 -0
  58. package/dist/jsx/BubbleInput.js.map +6 -0
  59. package/dist/jsx/BubbleInput.native.js +40 -0
  60. package/dist/jsx/BubbleInput.native.js.map +6 -0
  61. package/dist/jsx/CheckboxIndicator.js +52 -0
  62. package/dist/jsx/CheckboxIndicator.js.map +6 -0
  63. package/dist/jsx/CheckboxIndicator.native.js +52 -0
  64. package/dist/jsx/CheckboxIndicator.native.js.map +6 -0
  65. package/dist/jsx/CheckboxStyledContext.js +9 -0
  66. package/dist/jsx/CheckboxStyledContext.js.map +6 -0
  67. package/dist/jsx/CheckboxStyledContext.native.js +9 -0
  68. package/dist/jsx/CheckboxStyledContext.native.js.map +6 -0
  69. package/dist/jsx/ScopedProps.js +160 -0
  70. package/dist/jsx/ScopedProps.js.map +6 -0
  71. package/dist/jsx/ScopedProps.native.js +169 -0
  72. package/dist/jsx/ScopedProps.native.js.map +6 -0
  73. package/dist/jsx/createCheckbox.js +137 -0
  74. package/dist/jsx/createCheckbox.js.map +6 -0
  75. package/dist/jsx/createCheckbox.native.js +146 -0
  76. package/dist/jsx/createCheckbox.native.js.map +6 -0
  77. package/dist/jsx/isIndeterminate.js +11 -0
  78. package/dist/jsx/isIndeterminate.js.map +6 -0
  79. package/dist/jsx/isIndeterminate.native.js +11 -0
  80. package/dist/jsx/isIndeterminate.native.js.map +6 -0
  81. package/dist/jsx/utils.js +11 -0
  82. package/dist/jsx/utils.js.map +6 -0
  83. package/dist/jsx/utils.native.js +11 -0
  84. package/dist/jsx/utils.native.js.map +6 -0
  85. package/package.json +12 -12
  86. package/types/BubbleInput.d.ts.map +1 -0
  87. package/types/CheckboxIndicator.d.ts.map +1 -0
  88. package/types/CheckboxStyledContext.d.ts.map +1 -0
  89. package/types/ScopedProps.d.ts.map +1 -0
  90. package/types/createCheckbox.d.ts.map +1 -0
  91. package/types/isIndeterminate.d.ts.map +1 -0
  92. package/types/utils.d.ts.map +1 -0
@@ -0,0 +1,184 @@
1
+ import {
2
+ composeEventHandlers,
3
+ getVariableValue,
4
+ isWeb,
5
+ styled,
6
+ useComposedRefs,
7
+ useProps
8
+ } from "@tamagui/core";
9
+ import { createContextScope } from "@tamagui/create-context";
10
+ import { registerFocusable } from "@tamagui/focusable";
11
+ import { getSize } from "@tamagui/get-token";
12
+ import { useLabelContext } from "@tamagui/label";
13
+ import { ThemeableStack } from "@tamagui/stacks";
14
+ import { useControllableState } from "@tamagui/use-controllable-state";
15
+ import * as React from "react";
16
+ import { BubbleInput } from "./BubbleInput";
17
+ import { CheckboxStyledContext } from "./CheckboxStyledContext";
18
+ import { getState, isIndeterminate } from "./isIndeterminate";
19
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
20
+ const CHECKBOX_NAME = "Checkbox", CheckboxFrame = styled(ThemeableStack, {
21
+ name: CHECKBOX_NAME,
22
+ tag: "button",
23
+ context: CheckboxStyledContext,
24
+ variants: {
25
+ unstyled: {
26
+ false: {
27
+ size: "$true",
28
+ backgroundColor: "$background",
29
+ alignItems: "center",
30
+ justifyContent: "center",
31
+ pressTheme: !0,
32
+ focusable: !0,
33
+ borderWidth: 1,
34
+ borderColor: "$borderColor",
35
+ hoverStyle: {
36
+ borderColor: "$borderColorHover"
37
+ },
38
+ focusStyle: {
39
+ borderColor: "$borderColorFocus",
40
+ outlineStyle: "solid",
41
+ outlineWidth: 2,
42
+ outlineColor: "$borderColorFocus"
43
+ }
44
+ }
45
+ },
46
+ disabled: {
47
+ true: {
48
+ pointerEvents: "none",
49
+ userSelect: "none",
50
+ cursor: "not-allowed",
51
+ hoverStyle: {
52
+ borderColor: "$borderColor",
53
+ backgroundColor: "$background"
54
+ },
55
+ pressStyle: {
56
+ borderColor: "$borderColor",
57
+ backgroundColor: "$backgroundColor"
58
+ },
59
+ focusStyle: {
60
+ outlineWidth: 0
61
+ }
62
+ }
63
+ },
64
+ size: {
65
+ "...size": (val, { tokens }) => ({
66
+ borderRadius: getVariableValue(getSize(val)) / 8
67
+ })
68
+ }
69
+ },
70
+ defaultVariants: {
71
+ unstyled: process.env.TAMAGUI_HEADLESS === "1"
72
+ }
73
+ }), [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME), [CheckboxProvider, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME), CheckboxComponent = CheckboxFrame.styleable(
74
+ function(props, forwardedRef) {
75
+ const {
76
+ __scopeCheckbox,
77
+ labelledBy: ariaLabelledby,
78
+ name,
79
+ checked: checkedProp,
80
+ defaultChecked,
81
+ required,
82
+ scaleSize = 0.45,
83
+ sizeAdjust = 0,
84
+ disabled,
85
+ value = "on",
86
+ onCheckedChange,
87
+ native,
88
+ scaleIcon,
89
+ ...checkboxProps
90
+ } = props, [button, setButton] = React.useState(null), composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node)), hasConsumerStoppedPropagationRef = React.useRef(!1), propsActive = useProps(props), isFormControl = isWeb ? button ? !!button.closest("form") : !0 : !1, [checked = !1, setChecked] = useControllableState({
91
+ prop: checkedProp,
92
+ defaultProp: defaultChecked,
93
+ onChange: onCheckedChange
94
+ }), styledContext = React.useContext(CheckboxStyledContext), adjustedSize = getVariableValue(
95
+ getSize(propsActive.size ?? styledContext?.size ?? "$true", {
96
+ shift: sizeAdjust
97
+ })
98
+ ), size = scaleSize ? Math.round(adjustedSize * scaleSize) : adjustedSize, labelId = useLabelContext(button), labelledBy = ariaLabelledby || labelId;
99
+ return React.useEffect(() => {
100
+ if (props.id && !disabled)
101
+ return registerFocusable(props.id, {
102
+ focusAndSelect: () => {
103
+ setChecked((x) => !x);
104
+ },
105
+ focus: () => {
106
+ }
107
+ });
108
+ }, [props.id, setChecked, disabled]), /* @__PURE__ */ jsx(CheckboxProvider, { scope: __scopeCheckbox, state: checked, disabled, children: isWeb && native ? /* @__PURE__ */ jsx(
109
+ BubbleInput,
110
+ {
111
+ control: button,
112
+ bubbles: !hasConsumerStoppedPropagationRef.current,
113
+ name,
114
+ value,
115
+ checked,
116
+ required,
117
+ disabled,
118
+ id: props.id
119
+ }
120
+ ) : /* @__PURE__ */ jsxs(Fragment, { children: [
121
+ /* @__PURE__ */ jsx(
122
+ CheckboxFrame,
123
+ {
124
+ width: size,
125
+ height: size,
126
+ tag: "button",
127
+ role: "checkbox",
128
+ "aria-labelledby": labelledBy,
129
+ "aria-checked": isIndeterminate(checked) ? "mixed" : checked,
130
+ "aria-required": required,
131
+ "data-state": getState(checked),
132
+ "data-disabled": disabled ? "" : void 0,
133
+ disabled,
134
+ ...checkboxProps,
135
+ ref: composedRefs,
136
+ ...isWeb && {
137
+ type: "button",
138
+ value,
139
+ onKeyDown: composeEventHandlers(
140
+ props.onKeyDown,
141
+ (event) => {
142
+ event.key === "Enter" && event.preventDefault();
143
+ }
144
+ )
145
+ },
146
+ onPress: composeEventHandlers(props.onPress, (event) => {
147
+ setChecked(
148
+ (prevChecked) => isIndeterminate(prevChecked) ? !0 : !prevChecked
149
+ ), isFormControl && (hasConsumerStoppedPropagationRef.current = event.isPropagationStopped(), hasConsumerStoppedPropagationRef.current || event.stopPropagation());
150
+ }),
151
+ children: /* @__PURE__ */ jsx(
152
+ CheckboxStyledContext.Provider,
153
+ {
154
+ size: propsActive.size ?? styledContext?.size ?? "$true",
155
+ scaleIcon: scaleIcon ?? styledContext?.scaleIcon ?? 1,
156
+ children: propsActive.children
157
+ }
158
+ )
159
+ }
160
+ ),
161
+ isWeb && isFormControl ? /* @__PURE__ */ jsx(
162
+ BubbleInput,
163
+ {
164
+ isHidden: !0,
165
+ control: button,
166
+ bubbles: !hasConsumerStoppedPropagationRef.current,
167
+ name,
168
+ value,
169
+ checked,
170
+ required,
171
+ disabled
172
+ }
173
+ ) : null
174
+ ] }) });
175
+ }
176
+ );
177
+ export {
178
+ CheckboxComponent,
179
+ CheckboxFrame,
180
+ CheckboxProvider,
181
+ createCheckboxScope,
182
+ useCheckboxContext
183
+ };
184
+ //# sourceMappingURL=ScopedProps.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/ScopedProps.tsx"],
4
+ "mappings": "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",
5
+ "names": []
6
+ }
@@ -0,0 +1,156 @@
1
+ import {
2
+ composeEventHandlers,
3
+ getVariableValue,
4
+ isWeb,
5
+ useComposedRefs,
6
+ useProps,
7
+ useTheme,
8
+ withStaticProperties
9
+ } from "@tamagui/core";
10
+ import { createContextScope } from "@tamagui/create-context";
11
+ import "@tamagui/focusable";
12
+ import { getFontSize } from "@tamagui/font-size";
13
+ import { getSize } from "@tamagui/get-token";
14
+ import { useGetThemedIcon } from "@tamagui/helpers-tamagui";
15
+ import { useLabelContext } from "@tamagui/label";
16
+ import { useControllableState } from "@tamagui/use-controllable-state";
17
+ import React from "react";
18
+ import { BubbleInput } from "./BubbleInput";
19
+ import { CheckboxStyledContext } from "./CheckboxStyledContext";
20
+ import { getState, isIndeterminate } from "./utils";
21
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
22
+ const CHECKBOX_NAME = "Checkbox", [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME), [CheckboxProvider, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);
23
+ function createCheckbox({
24
+ Frame,
25
+ Indicator
26
+ }) {
27
+ const CheckboxComponent = function(props, forwardedRef) {
28
+ const {
29
+ __scopeCheckbox,
30
+ labelledBy: ariaLabelledby,
31
+ name,
32
+ checked: checkedProp,
33
+ defaultChecked,
34
+ required,
35
+ scaleSize = 0.45,
36
+ sizeAdjust = 0,
37
+ disabled,
38
+ value = "on",
39
+ onCheckedChange,
40
+ native,
41
+ scaleIcon,
42
+ ...checkboxProps
43
+ } = props, [button, setButton] = React.useState(null), composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node)), hasConsumerStoppedPropagationRef = React.useRef(!1), propsActive = useProps(props), isFormControl = isWeb ? button ? !!button.closest("form") : !0 : !1, [checked = !1, setChecked] = useControllableState({
44
+ prop: checkedProp,
45
+ defaultProp: defaultChecked,
46
+ onChange: onCheckedChange
47
+ }), styledContext = React.useContext(CheckboxStyledContext), adjustedSize = getVariableValue(
48
+ getSize(propsActive.size ?? styledContext?.size ?? "$true", {
49
+ shift: sizeAdjust
50
+ })
51
+ ), size = scaleSize ? Math.round(adjustedSize * scaleSize) : adjustedSize, labelId = useLabelContext(button);
52
+ return /* @__PURE__ */ jsx(CheckboxProvider, { scope: __scopeCheckbox, state: checked, disabled, children: isWeb && native ? /* @__PURE__ */ jsx(
53
+ BubbleInput,
54
+ {
55
+ control: button,
56
+ bubbles: !hasConsumerStoppedPropagationRef.current,
57
+ name,
58
+ value,
59
+ checked,
60
+ required,
61
+ disabled,
62
+ id: props.id
63
+ }
64
+ ) : /* @__PURE__ */ jsxs(Fragment, { children: [
65
+ /* @__PURE__ */ jsx(
66
+ Frame,
67
+ {
68
+ width: size,
69
+ height: size,
70
+ tag: "button",
71
+ role: "checkbox",
72
+ "aria-labelledby": ariaLabelledby || labelId,
73
+ "aria-checked": isIndeterminate(checked) ? "mixed" : checked,
74
+ "aria-required": required,
75
+ "data-state": getState(checked),
76
+ "data-disabled": disabled ? "" : void 0,
77
+ disabled,
78
+ ...checkboxProps,
79
+ ref: composedRefs,
80
+ ...isWeb && {
81
+ type: "button",
82
+ value,
83
+ onKeyDown: composeEventHandlers(
84
+ props.onKeyDown,
85
+ (event) => {
86
+ event.key === "Enter" && event.preventDefault();
87
+ }
88
+ )
89
+ },
90
+ onPress: composeEventHandlers(props.onPress, (event) => {
91
+ setChecked(
92
+ (prevChecked) => isIndeterminate(prevChecked) ? !0 : !prevChecked
93
+ ), isFormControl && (hasConsumerStoppedPropagationRef.current = event.isPropagationStopped(), hasConsumerStoppedPropagationRef.current || event.stopPropagation());
94
+ }),
95
+ children: /* @__PURE__ */ jsx(
96
+ CheckboxStyledContext.Provider,
97
+ {
98
+ size: propsActive.size ?? styledContext?.size ?? "$true",
99
+ scaleIcon: scaleIcon ?? styledContext?.scaleIcon ?? 1,
100
+ children: propsActive.children
101
+ }
102
+ )
103
+ }
104
+ ),
105
+ isWeb && isFormControl ? /* @__PURE__ */ jsx(
106
+ BubbleInput,
107
+ {
108
+ isHidden: !0,
109
+ control: button,
110
+ bubbles: !hasConsumerStoppedPropagationRef.current,
111
+ name,
112
+ value,
113
+ checked,
114
+ required,
115
+ disabled
116
+ }
117
+ ) : null
118
+ ] }) });
119
+ }, CheckboxIndicator = React.forwardRef(
120
+ (props, forwardedRef) => {
121
+ const {
122
+ __scopeCheckbox,
123
+ children: childrenProp,
124
+ forceMount,
125
+ disablePassStyles,
126
+ ...indicatorProps
127
+ } = props;
128
+ process.env.NODE_ENV === "development" && !childrenProp && console.warn(
129
+ "Warning: You created a Checkbox.Indicator without passing an child prop for it to use as an icon."
130
+ );
131
+ const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox), styledContext = React.useContext(CheckboxStyledContext), iconSize = (typeof styledContext.size == "number" ? styledContext.size * 0.65 : getFontSize(styledContext.size)) * styledContext.scaleIcon, theme = useTheme(), getThemedIcon = useGetThemedIcon({ size: iconSize, color: theme.color }), children = React.Children.toArray(childrenProp).map((child) => disablePassStyles || !React.isValidElement(child) ? child : getThemedIcon(child));
132
+ return forceMount || isIndeterminate(context.state) || context.state === !0 ? /* @__PURE__ */ jsx(
133
+ CheckboxIndicatorFrame,
134
+ {
135
+ "data-state": getState(context.state),
136
+ "data-disabled": context.disabled ? "" : void 0,
137
+ pointerEvents: "none",
138
+ ...indicatorProps,
139
+ ref: forwardedRef,
140
+ children
141
+ }
142
+ ) : null;
143
+ }
144
+ );
145
+ return withStaticProperties(CheckboxComponent, {
146
+ Indicator: CheckboxIndicator,
147
+ Props: CheckboxStyledContext.Provider
148
+ });
149
+ }
150
+ export {
151
+ CheckboxProvider,
152
+ createCheckbox,
153
+ createCheckboxScope,
154
+ useCheckboxContext
155
+ };
156
+ //# sourceMappingURL=createCheckbox.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/createCheckbox.tsx"],
4
+ "mappings": "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",
5
+ "names": []
6
+ }
@@ -0,0 +1,165 @@
1
+ import {
2
+ composeEventHandlers,
3
+ getVariableValue,
4
+ isWeb,
5
+ useComposedRefs,
6
+ useProps,
7
+ useTheme,
8
+ withStaticProperties
9
+ } from "@tamagui/core";
10
+ import { createContextScope } from "@tamagui/create-context";
11
+ import { registerFocusable } from "@tamagui/focusable";
12
+ import { getFontSize } from "@tamagui/font-size";
13
+ import { getSize } from "@tamagui/get-token";
14
+ import { useGetThemedIcon } from "@tamagui/helpers-tamagui";
15
+ import { useLabelContext } from "@tamagui/label";
16
+ import { useControllableState } from "@tamagui/use-controllable-state";
17
+ import React from "react";
18
+ import { BubbleInput } from "./BubbleInput";
19
+ import { CheckboxStyledContext } from "./CheckboxStyledContext";
20
+ import { getState, isIndeterminate } from "./utils";
21
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
22
+ const CHECKBOX_NAME = "Checkbox", [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME), [CheckboxProvider, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);
23
+ function createCheckbox({
24
+ Frame,
25
+ Indicator
26
+ }) {
27
+ const CheckboxComponent = function(props, forwardedRef) {
28
+ const {
29
+ __scopeCheckbox,
30
+ labelledBy: ariaLabelledby,
31
+ name,
32
+ checked: checkedProp,
33
+ defaultChecked,
34
+ required,
35
+ scaleSize = 0.45,
36
+ sizeAdjust = 0,
37
+ disabled,
38
+ value = "on",
39
+ onCheckedChange,
40
+ native,
41
+ scaleIcon,
42
+ ...checkboxProps
43
+ } = props, [button, setButton] = React.useState(null), composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node)), hasConsumerStoppedPropagationRef = React.useRef(!1), propsActive = useProps(props), isFormControl = isWeb ? button ? !!button.closest("form") : !0 : !1, [checked = !1, setChecked] = useControllableState({
44
+ prop: checkedProp,
45
+ defaultProp: defaultChecked,
46
+ onChange: onCheckedChange
47
+ }), styledContext = React.useContext(CheckboxStyledContext), adjustedSize = getVariableValue(
48
+ getSize(propsActive.size ?? styledContext?.size ?? "$true", {
49
+ shift: sizeAdjust
50
+ })
51
+ ), size = scaleSize ? Math.round(adjustedSize * scaleSize) : adjustedSize, labelId = useLabelContext(button), labelledBy = ariaLabelledby || labelId;
52
+ return React.useEffect(() => {
53
+ if (props.id && !disabled)
54
+ return registerFocusable(props.id, {
55
+ focusAndSelect: () => {
56
+ setChecked((x) => !x);
57
+ },
58
+ focus: () => {
59
+ }
60
+ });
61
+ }, [props.id, setChecked, disabled]), /* @__PURE__ */ jsx(CheckboxProvider, { scope: __scopeCheckbox, state: checked, disabled, children: isWeb && native ? /* @__PURE__ */ jsx(
62
+ BubbleInput,
63
+ {
64
+ control: button,
65
+ bubbles: !hasConsumerStoppedPropagationRef.current,
66
+ name,
67
+ value,
68
+ checked,
69
+ required,
70
+ disabled,
71
+ id: props.id
72
+ }
73
+ ) : /* @__PURE__ */ jsxs(Fragment, { children: [
74
+ /* @__PURE__ */ jsx(
75
+ Frame,
76
+ {
77
+ width: size,
78
+ height: size,
79
+ tag: "button",
80
+ role: "checkbox",
81
+ "aria-labelledby": labelledBy,
82
+ "aria-checked": isIndeterminate(checked) ? "mixed" : checked,
83
+ "aria-required": required,
84
+ "data-state": getState(checked),
85
+ "data-disabled": disabled ? "" : void 0,
86
+ disabled,
87
+ ...checkboxProps,
88
+ ref: composedRefs,
89
+ ...isWeb && {
90
+ type: "button",
91
+ value,
92
+ onKeyDown: composeEventHandlers(
93
+ props.onKeyDown,
94
+ (event) => {
95
+ event.key === "Enter" && event.preventDefault();
96
+ }
97
+ )
98
+ },
99
+ onPress: composeEventHandlers(props.onPress, (event) => {
100
+ setChecked(
101
+ (prevChecked) => isIndeterminate(prevChecked) ? !0 : !prevChecked
102
+ ), isFormControl && (hasConsumerStoppedPropagationRef.current = event.isPropagationStopped(), hasConsumerStoppedPropagationRef.current || event.stopPropagation());
103
+ }),
104
+ children: /* @__PURE__ */ jsx(
105
+ CheckboxStyledContext.Provider,
106
+ {
107
+ size: propsActive.size ?? styledContext?.size ?? "$true",
108
+ scaleIcon: scaleIcon ?? styledContext?.scaleIcon ?? 1,
109
+ children: propsActive.children
110
+ }
111
+ )
112
+ }
113
+ ),
114
+ isWeb && isFormControl ? /* @__PURE__ */ jsx(
115
+ BubbleInput,
116
+ {
117
+ isHidden: !0,
118
+ control: button,
119
+ bubbles: !hasConsumerStoppedPropagationRef.current,
120
+ name,
121
+ value,
122
+ checked,
123
+ required,
124
+ disabled
125
+ }
126
+ ) : null
127
+ ] }) });
128
+ }, CheckboxIndicator = React.forwardRef(
129
+ (props, forwardedRef) => {
130
+ const {
131
+ __scopeCheckbox,
132
+ children: childrenProp,
133
+ forceMount,
134
+ disablePassStyles,
135
+ ...indicatorProps
136
+ } = props;
137
+ process.env.NODE_ENV === "development" && !childrenProp && console.warn(
138
+ "Warning: You created a Checkbox.Indicator without passing an child prop for it to use as an icon."
139
+ );
140
+ const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox), styledContext = React.useContext(CheckboxStyledContext), iconSize = (typeof styledContext.size == "number" ? styledContext.size * 0.65 : getFontSize(styledContext.size)) * styledContext.scaleIcon, theme = useTheme(), getThemedIcon = useGetThemedIcon({ size: iconSize, color: theme.color }), children = React.Children.toArray(childrenProp).map((child) => disablePassStyles || !React.isValidElement(child) ? child : getThemedIcon(child));
141
+ return forceMount || isIndeterminate(context.state) || context.state === !0 ? /* @__PURE__ */ jsx(
142
+ CheckboxIndicatorFrame,
143
+ {
144
+ "data-state": getState(context.state),
145
+ "data-disabled": context.disabled ? "" : void 0,
146
+ pointerEvents: "none",
147
+ ...indicatorProps,
148
+ ref: forwardedRef,
149
+ children
150
+ }
151
+ ) : null;
152
+ }
153
+ );
154
+ return withStaticProperties(CheckboxComponent, {
155
+ Indicator: CheckboxIndicator,
156
+ Props: CheckboxStyledContext.Provider
157
+ });
158
+ }
159
+ export {
160
+ CheckboxProvider,
161
+ createCheckbox,
162
+ createCheckboxScope,
163
+ useCheckboxContext
164
+ };
165
+ //# sourceMappingURL=createCheckbox.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/createCheckbox.tsx"],
4
+ "mappings": "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",
5
+ "names": []
6
+ }
@@ -0,0 +1,11 @@
1
+ function isIndeterminate(checked) {
2
+ return checked === "indeterminate";
3
+ }
4
+ function getState(checked) {
5
+ return isIndeterminate(checked) ? "indeterminate" : checked ? "checked" : "unchecked";
6
+ }
7
+ export {
8
+ getState,
9
+ isIndeterminate
10
+ };
11
+ //# sourceMappingURL=isIndeterminate.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/isIndeterminate.tsx"],
4
+ "mappings": "AAEO,SAAS,gBAAgB,SAAoD;AAClF,SAAO,YAAY;AACrB;AAEO,SAAS,SAAS,SAAuB;AAC9C,SAAO,gBAAgB,OAAO,IAAI,kBAAkB,UAAU,YAAY;AAC5E;",
5
+ "names": []
6
+ }
@@ -0,0 +1,11 @@
1
+ function isIndeterminate(checked) {
2
+ return checked === "indeterminate";
3
+ }
4
+ function getState(checked) {
5
+ return isIndeterminate(checked) ? "indeterminate" : checked ? "checked" : "unchecked";
6
+ }
7
+ export {
8
+ getState,
9
+ isIndeterminate
10
+ };
11
+ //# sourceMappingURL=isIndeterminate.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/isIndeterminate.tsx"],
4
+ "mappings": "AAEO,SAAS,gBAAgB,SAAoD;AAClF,SAAO,YAAY;AACrB;AAEO,SAAS,SAAS,SAAuB;AAC9C,SAAO,gBAAgB,OAAO,IAAI,kBAAkB,UAAU,YAAY;AAC5E;",
5
+ "names": []
6
+ }
@@ -0,0 +1,11 @@
1
+ function isIndeterminate(checked) {
2
+ return checked === "indeterminate";
3
+ }
4
+ function getState(checked) {
5
+ return isIndeterminate(checked) ? "indeterminate" : checked ? "checked" : "unchecked";
6
+ }
7
+ export {
8
+ getState,
9
+ isIndeterminate
10
+ };
11
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/utils.tsx"],
4
+ "mappings": "AAEO,SAAS,gBAAgB,SAAoD;AAClF,SAAO,YAAY;AACrB;AAEO,SAAS,SAAS,SAAuB;AAC9C,SAAO,gBAAgB,OAAO,IAAI,kBAAkB,UAAU,YAAY;AAC5E;",
5
+ "names": []
6
+ }
@@ -0,0 +1,11 @@
1
+ function isIndeterminate(checked) {
2
+ return checked === "indeterminate";
3
+ }
4
+ function getState(checked) {
5
+ return isIndeterminate(checked) ? "indeterminate" : checked ? "checked" : "unchecked";
6
+ }
7
+ export {
8
+ getState,
9
+ isIndeterminate
10
+ };
11
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/utils.tsx"],
4
+ "mappings": "AAEO,SAAS,gBAAgB,SAAoD;AAClF,SAAO,YAAY;AACrB;AAEO,SAAS,SAAS,SAAuB;AAC9C,SAAO,gBAAgB,OAAO,IAAI,kBAAkB,UAAU,YAAY;AAC5E;",
5
+ "names": []
6
+ }
@@ -0,0 +1,40 @@
1
+ import { usePrevious } from "@tamagui/use-previous";
2
+ import * as React from "react";
3
+ import { isIndeterminate } from "./utils";
4
+ const BubbleInput = (props) => {
5
+ const { checked, bubbles = !0, control, isHidden, ...inputProps } = props, ref = React.useRef(null), prevChecked = usePrevious(checked);
6
+ return React.useEffect(() => {
7
+ const input = ref.current, inputProto = window.HTMLInputElement.prototype, setChecked = Object.getOwnPropertyDescriptor(
8
+ inputProto,
9
+ "checked"
10
+ ).set;
11
+ if (prevChecked !== checked && setChecked) {
12
+ const event = new Event("click", { bubbles });
13
+ input.indeterminate = isIndeterminate(checked), setChecked.call(input, isIndeterminate(checked) ? !1 : checked), input.dispatchEvent(event);
14
+ }
15
+ }, [prevChecked, checked, bubbles]), <input
16
+ type="checkbox"
17
+ defaultChecked={isIndeterminate(checked) ? !1 : checked}
18
+ {...inputProps}
19
+ tabIndex={-1}
20
+ ref={ref}
21
+ aria-hidden={isHidden}
22
+ style={{
23
+ ...isHidden ? {
24
+ // ...controlSize,
25
+ position: "absolute",
26
+ pointerEvents: "none",
27
+ opacity: 0,
28
+ margin: 0
29
+ } : {
30
+ appearance: "auto",
31
+ accentColor: "var(--color6)"
32
+ },
33
+ ...props.style
34
+ }}
35
+ />;
36
+ };
37
+ export {
38
+ BubbleInput
39
+ };
40
+ //# sourceMappingURL=BubbleInput.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/BubbleInput.tsx"],
4
+ "mappings": "AAAA,SAAS,mBAAmB;AAC5B,YAAY,WAAW;AAGvB,SAAS,uBAAuB;AAEzB,MAAM,cAAc,CAAC,UAA4B;AACtD,QAAM,EAAE,SAAS,UAAU,IAAM,SAAS,UAAU,GAAG,WAAW,IAAI,OAChE,MAAM,MAAM,OAAyB,IAAI,GACzC,cAAc,YAAY,OAAO;AAGvC,eAAM,UAAU,MAAM;AACpB,UAAM,QAAQ,IAAI,SACZ,aAAa,OAAO,iBAAiB,WAKrC,aAJa,OAAO;AAAA,MACxB;AAAA,MACA;AAAA,IACF,EAC8B;AAE9B,QAAI,gBAAgB,WAAW,YAAY;AACzC,YAAM,QAAQ,IAAI,MAAM,SAAS,EAAE,QAAQ,CAAC;AAC5C,YAAM,gBAAgB,gBAAgB,OAAO,GAC7C,WAAW,KAAK,OAAO,gBAAgB,OAAO,IAAI,KAAQ,OAAO,GACjE,MAAM,cAAc,KAAK;AAAA,IAC3B;AAAA,EACF,GAAG,CAAC,aAAa,SAAS,OAAO,CAAC,GAGhC,CAAC;AAAA,IACC,KAAK;AAAA,IACL,gBAAgB,gBAAgB,OAAO,IAAI,KAAQ;AAAA,QAC/C;AAAA,IACJ,UAAU;AAAA,IACV,KAAK;AAAA,IACL,aAAa;AAAA,IACb,OAAO;AAAA,MACL,GAAI,WACA;AAAA;AAAA,QAEE,UAAU;AAAA,QACV,eAAe;AAAA,QACf,SAAS;AAAA,QACT,QAAQ;AAAA,MACV,IACA;AAAA,QACE,YAAY;AAAA,QACZ,aAAa;AAAA,MACf;AAAA,MAEJ,GAAG,MAAM;AAAA,IACX;AAAA,EACF;AAEJ;",
5
+ "names": []
6
+ }