@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,32 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: !0 });
8
+ }, __copyProps = (to, from, except, desc) => {
9
+ if (from && typeof from == "object" || typeof from == "function")
10
+ for (let key of __getOwnPropNames(from))
11
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
15
+ var utils_exports = {};
16
+ __export(utils_exports, {
17
+ getState: () => getState,
18
+ isIndeterminate: () => isIndeterminate
19
+ });
20
+ module.exports = __toCommonJS(utils_exports);
21
+ function isIndeterminate(checked) {
22
+ return checked === "indeterminate";
23
+ }
24
+ function getState(checked) {
25
+ return isIndeterminate(checked) ? "indeterminate" : checked ? "checked" : "unchecked";
26
+ }
27
+ // Annotate the CommonJS export names for ESM import in node:
28
+ 0 && (module.exports = {
29
+ getState,
30
+ isIndeterminate
31
+ });
32
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/utils.tsx"],
4
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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,33 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: !0 });
9
+ }, __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from == "object" || typeof from == "function")
11
+ for (let key of __getOwnPropNames(from))
12
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
+ return to;
14
+ };
15
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
16
+ var utils_exports = {};
17
+ __export(utils_exports, {
18
+ getState: () => getState,
19
+ isIndeterminate: () => isIndeterminate
20
+ });
21
+ module.exports = __toCommonJS(utils_exports);
22
+ function isIndeterminate(checked) {
23
+ return checked === "indeterminate";
24
+ }
25
+ function getState(checked) {
26
+ return isIndeterminate(checked) ? "indeterminate" : checked ? "checked" : "unchecked";
27
+ }
28
+ // Annotate the CommonJS export names for ESM import in node:
29
+ 0 && (module.exports = {
30
+ getState,
31
+ isIndeterminate
32
+ });
33
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/utils.tsx"],
4
+ "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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,44 @@
1
+ import { usePrevious } from "@tamagui/use-previous";
2
+ import * as React from "react";
3
+ import { isIndeterminate } from "./utils";
4
+ import { jsx } from "react/jsx-runtime";
5
+ const BubbleInput = (props) => {
6
+ const { checked, bubbles = !0, control, isHidden, ...inputProps } = props, ref = React.useRef(null), prevChecked = usePrevious(checked);
7
+ return React.useEffect(() => {
8
+ const input = ref.current, inputProto = window.HTMLInputElement.prototype, setChecked = Object.getOwnPropertyDescriptor(
9
+ inputProto,
10
+ "checked"
11
+ ).set;
12
+ if (prevChecked !== checked && setChecked) {
13
+ const event = new Event("click", { bubbles });
14
+ input.indeterminate = isIndeterminate(checked), setChecked.call(input, isIndeterminate(checked) ? !1 : checked), input.dispatchEvent(event);
15
+ }
16
+ }, [prevChecked, checked, bubbles]), /* @__PURE__ */ jsx(
17
+ "input",
18
+ {
19
+ type: "checkbox",
20
+ defaultChecked: isIndeterminate(checked) ? !1 : checked,
21
+ ...inputProps,
22
+ tabIndex: -1,
23
+ ref,
24
+ "aria-hidden": isHidden,
25
+ style: {
26
+ ...isHidden ? {
27
+ // ...controlSize,
28
+ position: "absolute",
29
+ pointerEvents: "none",
30
+ opacity: 0,
31
+ margin: 0
32
+ } : {
33
+ appearance: "auto",
34
+ accentColor: "var(--color6)"
35
+ },
36
+ ...props.style
37
+ }
38
+ }
39
+ );
40
+ };
41
+ export {
42
+ BubbleInput
43
+ };
44
+ //# 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;AA0B5B;AAxBG,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;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,gBAAgB,gBAAgB,OAAO,IAAI,KAAQ;AAAA,MAClD,GAAG;AAAA,MACJ,UAAU;AAAA,MACV;AAAA,MACA,eAAa;AAAA,MACb,OAAO;AAAA,QACL,GAAI,WACA;AAAA;AAAA,UAEE,UAAU;AAAA,UACV,eAAe;AAAA,UACf,SAAS;AAAA,UACT,QAAQ;AAAA,QACV,IACA;AAAA,UACE,YAAY;AAAA,UACZ,aAAa;AAAA,QACf;AAAA,QAEJ,GAAG,MAAM;AAAA,MACX;AAAA;AAAA,EACF;AAEJ;",
5
+ "names": []
6
+ }
@@ -0,0 +1,44 @@
1
+ import { usePrevious } from "@tamagui/use-previous";
2
+ import * as React from "react";
3
+ import { isIndeterminate } from "./utils";
4
+ import { jsx } from "react/jsx-runtime";
5
+ const BubbleInput = (props) => {
6
+ const { checked, bubbles = !0, control, isHidden, ...inputProps } = props, ref = React.useRef(null), prevChecked = usePrevious(checked);
7
+ return React.useEffect(() => {
8
+ const input = ref.current, inputProto = window.HTMLInputElement.prototype, setChecked = Object.getOwnPropertyDescriptor(
9
+ inputProto,
10
+ "checked"
11
+ ).set;
12
+ if (prevChecked !== checked && setChecked) {
13
+ const event = new Event("click", { bubbles });
14
+ input.indeterminate = isIndeterminate(checked), setChecked.call(input, isIndeterminate(checked) ? !1 : checked), input.dispatchEvent(event);
15
+ }
16
+ }, [prevChecked, checked, bubbles]), /* @__PURE__ */ jsx(
17
+ "input",
18
+ {
19
+ type: "checkbox",
20
+ defaultChecked: isIndeterminate(checked) ? !1 : checked,
21
+ ...inputProps,
22
+ tabIndex: -1,
23
+ ref,
24
+ "aria-hidden": isHidden,
25
+ style: {
26
+ ...isHidden ? {
27
+ // ...controlSize,
28
+ position: "absolute",
29
+ pointerEvents: "none",
30
+ opacity: 0,
31
+ margin: 0
32
+ } : {
33
+ appearance: "auto",
34
+ accentColor: "var(--color6)"
35
+ },
36
+ ...props.style
37
+ }
38
+ }
39
+ );
40
+ };
41
+ export {
42
+ BubbleInput
43
+ };
44
+ //# 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;AA0B5B;AAxBG,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;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,gBAAgB,gBAAgB,OAAO,IAAI,KAAQ;AAAA,MAClD,GAAG;AAAA,MACJ,UAAU;AAAA,MACV;AAAA,MACA,eAAa;AAAA,MACb,OAAO;AAAA,QACL,GAAI,WACA;AAAA;AAAA,UAEE,UAAU;AAAA,UACV,eAAe;AAAA,UACf,SAAS;AAAA,UACT,QAAQ;AAAA,QACV,IACA;AAAA,UACE,YAAY;AAAA,UACZ,aAAa;AAAA,QACf;AAAA,QAEJ,GAAG,MAAM;AAAA,MACX;AAAA;AAAA,EACF;AAEJ;",
5
+ "names": []
6
+ }
@@ -0,0 +1,57 @@
1
+ import {
2
+ styled,
3
+ useTheme,
4
+ withStaticProperties
5
+ } from "@tamagui/core";
6
+ import { getFontSize } from "@tamagui/font-size";
7
+ import { useGetThemedIcon } from "@tamagui/helpers-tamagui";
8
+ import { ThemeableStack } from "@tamagui/stacks";
9
+ import * as React from "react";
10
+ import {
11
+ CheckboxComponent,
12
+ useCheckboxContext
13
+ } from "./Checkbox";
14
+ import { CheckboxStyledContext } from "./CheckboxStyledContext";
15
+ import { getState, isIndeterminate } from "./utils";
16
+ import { jsx } from "react/jsx-runtime";
17
+ const INDICATOR_NAME = "CheckboxIndicator", CheckboxIndicatorFrame = styled(ThemeableStack, {
18
+ // use Checkbox for easier themes
19
+ name: INDICATOR_NAME,
20
+ context: CheckboxStyledContext
21
+ }), CheckboxIndicator = CheckboxIndicatorFrame.extractable(
22
+ React.forwardRef(
23
+ (props, forwardedRef) => {
24
+ const {
25
+ __scopeCheckbox,
26
+ children: childrenProp,
27
+ forceMount,
28
+ disablePassStyles,
29
+ ...indicatorProps
30
+ } = props;
31
+ process.env.NODE_ENV === "development" && !childrenProp && console.warn(
32
+ "Warning: You created a Checkbox.Indicator without passing an child prop for it to use as an icon."
33
+ );
34
+ 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));
35
+ return forceMount || isIndeterminate(context.state) || context.state === !0 ? /* @__PURE__ */ jsx(
36
+ CheckboxIndicatorFrame,
37
+ {
38
+ "data-state": getState(context.state),
39
+ "data-disabled": context.disabled ? "" : void 0,
40
+ pointerEvents: "none",
41
+ ...indicatorProps,
42
+ ref: forwardedRef,
43
+ children
44
+ }
45
+ ) : null;
46
+ }
47
+ )
48
+ );
49
+ CheckboxIndicator.displayName = INDICATOR_NAME;
50
+ const Checkbox = withStaticProperties(CheckboxComponent, {
51
+ Indicator: CheckboxIndicator,
52
+ Props: CheckboxStyledContext.Provider
53
+ });
54
+ export {
55
+ Checkbox
56
+ };
57
+ //# sourceMappingURL=CheckboxIndicator.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/CheckboxIndicator.tsx"],
4
+ "mappings": "AAGA;AAAA,EAGE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,mBAAmB;AAE5B,SAAS,wBAAwB;AACjC,SAAS,sBAAsB;AAC/B,YAAY,WAAW;AAEvB;AAAA,EACE;AAAA,EAGA;AAAA,OACK;AACP,SAAS,6BAA6B;AACtC,SAAS,UAAU,uBAAuB;AAuEhC;AAxDV,MAAM,iBAAiB,qBAEjB,yBAAyB,OAAO,gBAAgB;AAAA;AAAA,EAEpD,MAAM;AAAA,EACN,SAAS;AACX,CAAC,GAgBK,oBAAoB,uBAAuB;AAAA,EAC/C,MAAM;AAAA,IACJ,CAAC,OAA4C,iBAAiB;AAC5D,YAAM;AAAA,QACJ;AAAA,QACA,UAAU;AAAA,QACV;AAAA,QACA;AAAA,QACA,GAAG;AAAA,MACL,IAAI;AACJ,MAAI,QAAQ,IAAI,aAAa,iBAAiB,CAAC,gBAC7C,QAAQ;AAAA,QACN;AAAA,MACF;AAEF,YAAM,UAAU,mBAAmB,gBAAgB,eAAe,GAC5D,gBAAgB,MAAM,WAAW,qBAAqB,GACtD,YACH,OAAO,cAAc,QAAS,WAC3B,cAAc,OAAO,OACrB,YAAY,cAAc,IAAW,KAAK,cAAc,WACxD,QAAQ,SAAS,GACjB,gBAAgB,iBAAiB,EAAE,MAAM,UAAU,OAAO,MAAM,MAAM,CAAC,GAGvE,WADY,MAAM,SAAS,QAAQ,YAAY,EAC1B,IAAI,CAAC,UAC1B,qBAAqB,CAAC,MAAM,eAAe,KAAK,IAC3C,QAEF,cAAc,KAAK,CAC3B;AAED,aAAI,cAAc,gBAAgB,QAAQ,KAAK,KAAK,QAAQ,UAAU,KAElE;AAAA,QAAC;AAAA;AAAA,UACC,cAAY,SAAS,QAAQ,KAAK;AAAA,UAClC,iBAAe,QAAQ,WAAW,KAAK;AAAA,UACvC,eAAc;AAAA,UACb,GAAG;AAAA,UACJ,KAAK;AAAA,UAEJ;AAAA;AAAA,MACH,IAGG;AAAA,IACT;AAAA,EACF;AACF;AAEA,kBAAkB,cAAc;AAEzB,MAAM,WAAW,qBAAqB,mBAAmB;AAAA,EAC9D,WAAW;AAAA,EACX,OAAO,sBAAsB;AAC/B,CAAC;",
5
+ "names": []
6
+ }
@@ -0,0 +1,57 @@
1
+ import {
2
+ styled,
3
+ useTheme,
4
+ withStaticProperties
5
+ } from "@tamagui/core";
6
+ import { getFontSize } from "@tamagui/font-size";
7
+ import { useGetThemedIcon } from "@tamagui/helpers-tamagui";
8
+ import { ThemeableStack } from "@tamagui/stacks";
9
+ import * as React from "react";
10
+ import {
11
+ CheckboxComponent,
12
+ useCheckboxContext
13
+ } from "./Checkbox";
14
+ import { CheckboxStyledContext } from "./CheckboxStyledContext";
15
+ import { getState, isIndeterminate } from "./utils";
16
+ import { jsx } from "react/jsx-runtime";
17
+ const INDICATOR_NAME = "CheckboxIndicator", CheckboxIndicatorFrame = styled(ThemeableStack, {
18
+ // use Checkbox for easier themes
19
+ name: INDICATOR_NAME,
20
+ context: CheckboxStyledContext
21
+ }), CheckboxIndicator = CheckboxIndicatorFrame.extractable(
22
+ React.forwardRef(
23
+ (props, forwardedRef) => {
24
+ const {
25
+ __scopeCheckbox,
26
+ children: childrenProp,
27
+ forceMount,
28
+ disablePassStyles,
29
+ ...indicatorProps
30
+ } = props;
31
+ process.env.NODE_ENV === "development" && !childrenProp && console.warn(
32
+ "Warning: You created a Checkbox.Indicator without passing an child prop for it to use as an icon."
33
+ );
34
+ 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));
35
+ return forceMount || isIndeterminate(context.state) || context.state === !0 ? /* @__PURE__ */ jsx(
36
+ CheckboxIndicatorFrame,
37
+ {
38
+ "data-state": getState(context.state),
39
+ "data-disabled": context.disabled ? "" : void 0,
40
+ pointerEvents: "none",
41
+ ...indicatorProps,
42
+ ref: forwardedRef,
43
+ children
44
+ }
45
+ ) : null;
46
+ }
47
+ )
48
+ );
49
+ CheckboxIndicator.displayName = INDICATOR_NAME;
50
+ const Checkbox = withStaticProperties(CheckboxComponent, {
51
+ Indicator: CheckboxIndicator,
52
+ Props: CheckboxStyledContext.Provider
53
+ });
54
+ export {
55
+ Checkbox
56
+ };
57
+ //# sourceMappingURL=CheckboxIndicator.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/CheckboxIndicator.tsx"],
4
+ "mappings": "AAGA;AAAA,EAGE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,mBAAmB;AAE5B,SAAS,wBAAwB;AACjC,SAAS,sBAAsB;AAC/B,YAAY,WAAW;AAEvB;AAAA,EACE;AAAA,EAGA;AAAA,OACK;AACP,SAAS,6BAA6B;AACtC,SAAS,UAAU,uBAAuB;AAuEhC;AAxDV,MAAM,iBAAiB,qBAEjB,yBAAyB,OAAO,gBAAgB;AAAA;AAAA,EAEpD,MAAM;AAAA,EACN,SAAS;AACX,CAAC,GAgBK,oBAAoB,uBAAuB;AAAA,EAC/C,MAAM;AAAA,IACJ,CAAC,OAA4C,iBAAiB;AAC5D,YAAM;AAAA,QACJ;AAAA,QACA,UAAU;AAAA,QACV;AAAA,QACA;AAAA,QACA,GAAG;AAAA,MACL,IAAI;AACJ,MAAI,QAAQ,IAAI,aAAa,iBAAiB,CAAC,gBAC7C,QAAQ;AAAA,QACN;AAAA,MACF;AAEF,YAAM,UAAU,mBAAmB,gBAAgB,eAAe,GAC5D,gBAAgB,MAAM,WAAW,qBAAqB,GACtD,YACH,OAAO,cAAc,QAAS,WAC3B,cAAc,OAAO,OACrB,YAAY,cAAc,IAAW,KAAK,cAAc,WACxD,QAAQ,SAAS,GACjB,gBAAgB,iBAAiB,EAAE,MAAM,UAAU,OAAO,MAAM,MAAM,CAAC,GAGvE,WADY,MAAM,SAAS,QAAQ,YAAY,EAC1B,IAAI,CAAC,UAC1B,qBAAqB,CAAC,MAAM,eAAe,KAAK,IAC3C,QAEF,cAAc,KAAK,CAC3B;AAED,aAAI,cAAc,gBAAgB,QAAQ,KAAK,KAAK,QAAQ,UAAU,KAElE;AAAA,QAAC;AAAA;AAAA,UACC,cAAY,SAAS,QAAQ,KAAK;AAAA,UAClC,iBAAe,QAAQ,WAAW,KAAK;AAAA,UACvC,eAAc;AAAA,UACb,GAAG;AAAA,UACJ,KAAK;AAAA,UAEJ;AAAA;AAAA,MACH,IAGG;AAAA,IACT;AAAA,EACF;AACF;AAEA,kBAAkB,cAAc;AAEzB,MAAM,WAAW,qBAAqB,mBAAmB;AAAA,EAC9D,WAAW;AAAA,EACX,OAAO,sBAAsB;AAC/B,CAAC;",
5
+ "names": []
6
+ }
@@ -0,0 +1,9 @@
1
+ import { createStyledContext } from "@tamagui/core";
2
+ const CheckboxStyledContext = createStyledContext({
3
+ size: "$true",
4
+ scaleIcon: 1
5
+ });
6
+ export {
7
+ CheckboxStyledContext
8
+ };
9
+ //# sourceMappingURL=CheckboxStyledContext.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/CheckboxStyledContext.tsx"],
4
+ "mappings": "AAAA,SAAqB,2BAA2B;AAEzC,MAAM,wBAAwB,oBAAoB;AAAA,EACvD,MAAM;AAAA,EACN,WAAW;AACb,CAAC;",
5
+ "names": []
6
+ }
@@ -0,0 +1,9 @@
1
+ import { createStyledContext } from "@tamagui/core";
2
+ const CheckboxStyledContext = createStyledContext({
3
+ size: "$true",
4
+ scaleIcon: 1
5
+ });
6
+ export {
7
+ CheckboxStyledContext
8
+ };
9
+ //# sourceMappingURL=CheckboxStyledContext.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/CheckboxStyledContext.tsx"],
4
+ "mappings": "AAAA,SAAqB,2BAA2B;AAEzC,MAAM,wBAAwB,oBAAoB;AAAA,EACvD,MAAM;AAAA,EACN,WAAW;AACb,CAAC;",
5
+ "names": []
6
+ }
@@ -0,0 +1,175 @@
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 "@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);
99
+ return /* @__PURE__ */ jsx(CheckboxProvider, { scope: __scopeCheckbox, state: checked, disabled, children: isWeb && native ? /* @__PURE__ */ jsx(
100
+ BubbleInput,
101
+ {
102
+ control: button,
103
+ bubbles: !hasConsumerStoppedPropagationRef.current,
104
+ name,
105
+ value,
106
+ checked,
107
+ required,
108
+ disabled,
109
+ id: props.id
110
+ }
111
+ ) : /* @__PURE__ */ jsxs(Fragment, { children: [
112
+ /* @__PURE__ */ jsx(
113
+ CheckboxFrame,
114
+ {
115
+ width: size,
116
+ height: size,
117
+ tag: "button",
118
+ role: "checkbox",
119
+ "aria-labelledby": ariaLabelledby || labelId,
120
+ "aria-checked": isIndeterminate(checked) ? "mixed" : checked,
121
+ "aria-required": required,
122
+ "data-state": getState(checked),
123
+ "data-disabled": disabled ? "" : void 0,
124
+ disabled,
125
+ ...checkboxProps,
126
+ ref: composedRefs,
127
+ ...isWeb && {
128
+ type: "button",
129
+ value,
130
+ onKeyDown: composeEventHandlers(
131
+ props.onKeyDown,
132
+ (event) => {
133
+ event.key === "Enter" && event.preventDefault();
134
+ }
135
+ )
136
+ },
137
+ onPress: composeEventHandlers(props.onPress, (event) => {
138
+ setChecked(
139
+ (prevChecked) => isIndeterminate(prevChecked) ? !0 : !prevChecked
140
+ ), isFormControl && (hasConsumerStoppedPropagationRef.current = event.isPropagationStopped(), hasConsumerStoppedPropagationRef.current || event.stopPropagation());
141
+ }),
142
+ children: /* @__PURE__ */ jsx(
143
+ CheckboxStyledContext.Provider,
144
+ {
145
+ size: propsActive.size ?? styledContext?.size ?? "$true",
146
+ scaleIcon: scaleIcon ?? styledContext?.scaleIcon ?? 1,
147
+ children: propsActive.children
148
+ }
149
+ )
150
+ }
151
+ ),
152
+ isWeb && isFormControl ? /* @__PURE__ */ jsx(
153
+ BubbleInput,
154
+ {
155
+ isHidden: !0,
156
+ control: button,
157
+ bubbles: !hasConsumerStoppedPropagationRef.current,
158
+ name,
159
+ value,
160
+ checked,
161
+ required,
162
+ disabled
163
+ }
164
+ ) : null
165
+ ] }) });
166
+ }
167
+ );
168
+ export {
169
+ CheckboxComponent,
170
+ CheckboxFrame,
171
+ CheckboxProvider,
172
+ createCheckboxScope,
173
+ useCheckboxContext
174
+ };
175
+ //# 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
+ }