@tamagui/checkbox-headless 2.7.6 → 3.0.0-beta.637.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/cjs/BubbleInput.cjs +58 -71
  2. package/dist/cjs/BubbleInput.native.cjs +77 -0
  3. package/dist/cjs/BubbleInput.native.js +58 -70
  4. package/dist/cjs/BubbleInput.native.js.map +1 -1
  5. package/dist/cjs/index.cjs +10 -11
  6. package/dist/cjs/index.native.cjs +22 -0
  7. package/dist/cjs/index.native.js +10 -10
  8. package/dist/cjs/index.native.js.map +1 -1
  9. package/dist/cjs/useCheckbox.cjs +64 -80
  10. package/dist/cjs/useCheckbox.native.cjs +95 -0
  11. package/dist/cjs/useCheckbox.native.js +71 -86
  12. package/dist/cjs/useCheckbox.native.js.map +1 -1
  13. package/dist/cjs/utils.cjs +18 -19
  14. package/dist/cjs/utils.native.cjs +35 -0
  15. package/dist/cjs/utils.native.js +18 -18
  16. package/dist/cjs/utils.native.js.map +1 -1
  17. package/dist/esm/BubbleInput.mjs +42 -45
  18. package/dist/esm/BubbleInput.mjs.map +1 -1
  19. package/dist/esm/BubbleInput.native.js +43 -46
  20. package/dist/esm/BubbleInput.native.js.map +1 -1
  21. package/dist/esm/index.js +3 -3
  22. package/dist/esm/index.mjs +3 -3
  23. package/dist/esm/index.native.js +3 -3
  24. package/dist/esm/useCheckbox.mjs +48 -54
  25. package/dist/esm/useCheckbox.mjs.map +1 -1
  26. package/dist/esm/useCheckbox.native.js +56 -62
  27. package/dist/esm/useCheckbox.native.js.map +1 -1
  28. package/dist/esm/utils.mjs +3 -2
  29. package/dist/esm/utils.mjs.map +1 -1
  30. package/dist/esm/utils.native.js +3 -2
  31. package/dist/esm/utils.native.js.map +1 -1
  32. package/dist/jsx/BubbleInput.mjs +42 -45
  33. package/dist/jsx/BubbleInput.mjs.map +1 -1
  34. package/dist/jsx/BubbleInput.native.cjs +77 -0
  35. package/dist/jsx/BubbleInput.native.js +58 -70
  36. package/dist/jsx/BubbleInput.native.js.map +1 -1
  37. package/dist/jsx/index.js +3 -3
  38. package/dist/jsx/index.mjs +3 -3
  39. package/dist/jsx/index.native.cjs +22 -0
  40. package/dist/jsx/index.native.js +10 -10
  41. package/dist/jsx/index.native.js.map +1 -1
  42. package/dist/jsx/useCheckbox.mjs +48 -54
  43. package/dist/jsx/useCheckbox.mjs.map +1 -1
  44. package/dist/jsx/useCheckbox.native.cjs +95 -0
  45. package/dist/jsx/useCheckbox.native.js +71 -86
  46. package/dist/jsx/useCheckbox.native.js.map +1 -1
  47. package/dist/jsx/utils.mjs +3 -2
  48. package/dist/jsx/utils.mjs.map +1 -1
  49. package/dist/jsx/utils.native.cjs +35 -0
  50. package/dist/jsx/utils.native.js +18 -18
  51. package/dist/jsx/utils.native.js.map +1 -1
  52. package/package.json +12 -12
  53. package/types/BubbleInput.d.ts +1 -1
  54. package/types/BubbleInput.d.ts.map +1 -1
  55. package/types/useCheckbox.d.ts +4 -4
  56. package/types/utils.d.ts +1 -1
  57. package/dist/esm/index.js.map +0 -1
  58. package/dist/esm/index.mjs.map +0 -1
  59. package/dist/esm/index.native.js.map +0 -1
  60. package/dist/jsx/index.js.map +0 -1
  61. package/dist/jsx/index.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","utils_exports","__export","getState","isIndeterminate","module","exports","checked"],"sources":["../../src/utils.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,aAAA;AAAAC,QAAA,CAAAD,aAAA;EAAAE,QAAA,EAAAA,CAAA,KAAAA,QAAA;EAAAC,eAAA,EAAAA,CAAA,KAAAA;AAAA;AAEOC,MAAA,CAAAC,OAAS,GAAAV,YAAgB,CAAAK,aAAoD;AAClF,SAAOG,eAAYA,CAAAG,OAAA;EACrB,OAAAA,OAAA;AAEO;AACL,SAAOJ,SAAAI,OAAgB;EACzB,OAAAH,eAAA,CAAAG,OAAA,sBAAAA,OAAA","ignoreList":[]}
1
+ {"version":3,"file":"utils.native.js","names":[],"sources":["cjs/utils.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar utils_exports = {};\n__export(utils_exports, {\n getState: () => getState,\n isIndeterminate: () => isIndeterminate\n});\nmodule.exports = __toCommonJS(utils_exports);\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\n//# sourceMappingURL=utils.js.map\n"],"mappings":";;;;AACA,IAAI,YAAY,OAAO;AACvB,IAAI,mBAAmB,OAAO;AAC9B,IAAI,oBAAoB,OAAO;AAC/B,IAAI,eAAe,OAAO,UAAU;AACpC,IAAI,YAAY,QAAQ,QAAQ;CAC9B,KAAK,IAAI,QAAQ,KACf,UAAU,QAAQ,MAAM;EAAE,KAAK,IAAI;EAAO,YAAY;CAAK,CAAC;AAChE;AACA,IAAI,eAAe,IAAI,MAAM,QAAQ,SAAS;CAC5C,IAAI,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;EAClE,KAAK,IAAI,OAAO,kBAAkB,IAAI,GACpC,IAAI,CAAC,aAAa,KAAK,IAAI,GAAG,KAAK,QAAQ,QACzC,UAAU,IAAI,KAAK;GAAE,WAAW,KAAK;GAAM,YAAY,EAAE,OAAO,iBAAiB,MAAM,GAAG,MAAM,KAAK;EAAW,CAAC;CACvH;CACA,OAAO;AACT;AACA,IAAI,gBAAgB,QAAQ,YAAY,UAAU,CAAC,GAAG,cAAc,EAAE,OAAO,KAAK,CAAC,GAAG,GAAG;AACzF,IAAI,gBAAgB,CAAC;AACrB,SAAS,eAAe;CACtB,gBAAgB;CAChB,uBAAuB;AACzB,CAAC;AACD,OAAO,UAAU,aAAa,aAAa;AAC3C,SAAS,gBAAgB,SAAS;CAChC,OAAO,YAAY;AACrB;AACA,SAAS,SAAS,SAAS;CACzB,OAAO,gBAAgB,OAAO,IAAI,kBAAkB,UAAU,YAAY;AAC5E"}
@@ -2,51 +2,48 @@ import { usePrevious } from "@tamagui/use-previous";
2
2
  import * as React from "react";
3
3
  import { isIndeterminate } from "./utils.mjs";
4
4
  import { jsx } from "react/jsx-runtime";
5
- const BubbleInput = props => {
6
- const {
7
- checked,
8
- bubbles = true,
9
- control,
10
- isHidden,
11
- ...inputProps
12
- } = props;
13
- const ref = React.useRef(null);
14
- const prevChecked = usePrevious(checked);
15
- React.useEffect(() => {
16
- const input = ref.current;
17
- const inputProto = window.HTMLInputElement.prototype;
18
- const descriptor = Object.getOwnPropertyDescriptor(inputProto, "checked");
19
- const setChecked = descriptor.set;
20
- if (prevChecked !== checked && setChecked) {
21
- const event = new Event("click", {
22
- bubbles
23
- });
24
- input.indeterminate = isIndeterminate(checked);
25
- setChecked.call(input, isIndeterminate(checked) ? false : checked);
26
- input.dispatchEvent(event);
27
- }
28
- }, [prevChecked, checked, bubbles]);
29
- return /* @__PURE__ */jsx("input", {
30
- type: "checkbox",
31
- defaultChecked: isIndeterminate(checked) ? false : checked,
32
- ...inputProps,
33
- tabIndex: -1,
34
- ref,
35
- "aria-hidden": isHidden,
36
- style: {
37
- ...(isHidden ? {
38
- // ...controlSize,
39
- position: "absolute",
40
- pointerEvents: "none",
41
- opacity: 0,
42
- margin: 0
43
- } : {
44
- appearance: "auto",
45
- accentColor: "var(--color6)"
46
- }),
47
- ...props.style
48
- }
49
- });
5
+
6
+ const BubbleInput = (props) => {
7
+ const { checked, bubbles = true, control, isHidden, ...inputProps } = props;
8
+ const ref = React.useRef(null);
9
+ const prevChecked = usePrevious(checked);
10
+ React.useEffect(() => {
11
+ const input = ref.current;
12
+ const inputProto = window.HTMLInputElement.prototype;
13
+ const descriptor = Object.getOwnPropertyDescriptor(inputProto, "checked");
14
+ const setChecked = descriptor.set;
15
+ if (prevChecked !== checked && setChecked) {
16
+ const event = new Event("click", { bubbles });
17
+ input.indeterminate = isIndeterminate(checked);
18
+ setChecked.call(input, isIndeterminate(checked) ? false : checked);
19
+ input.dispatchEvent(event);
20
+ }
21
+ }, [
22
+ prevChecked,
23
+ checked,
24
+ bubbles
25
+ ]);
26
+ return /* @__PURE__ */ jsx("input", {
27
+ type: "checkbox",
28
+ defaultChecked: isIndeterminate(checked) ? false : checked,
29
+ ...inputProps,
30
+ tabIndex: -1,
31
+ ref,
32
+ "aria-hidden": isHidden,
33
+ style: {
34
+ ...isHidden ? {
35
+ position: "absolute",
36
+ pointerEvents: "none",
37
+ opacity: 0,
38
+ margin: 0
39
+ } : {
40
+ appearance: "auto",
41
+ accentColor: "var(--color6)"
42
+ },
43
+ ...props.style
44
+ }
45
+ });
50
46
  };
47
+
51
48
  export { BubbleInput };
52
49
  //# sourceMappingURL=BubbleInput.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["usePrevious","React","isIndeterminate","jsx","BubbleInput","props","checked","bubbles","control","isHidden","inputProps","ref","useRef","prevChecked","useEffect","input","current","inputProto","window","HTMLInputElement","prototype","descriptor","Object","getOwnPropertyDescriptor","setChecked","set","event","Event","indeterminate","call","dispatchEvent","type","defaultChecked","tabIndex","style","position","pointerEvents","opacity","margin","appearance","accentColor"],"sources":["../../src/BubbleInput.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAA,QAAmB;AAC5B,YAAYC,KAAA,MAAW;AAGvB,SAASC,eAAA,QAAuB;AAkC5B,SAAAC,GAAA;AAxBG,MAAMC,WAAA,GAAeC,KAAA,IAA4B;EACtD,MAAM;IAAEC,OAAA;IAASC,OAAA,GAAU;IAAMC,OAAA;IAASC,QAAA;IAAU,GAAGC;EAAW,IAAIL,KAAA;EACtE,MAAMM,GAAA,GAAMV,KAAA,CAAMW,MAAA,CAAyB,IAAI;EAC/C,MAAMC,WAAA,GAAcb,WAAA,CAAYM,OAAO;EAGvCL,KAAA,CAAMa,SAAA,CAAU,MAAM;IACpB,MAAMC,KAAA,GAAQJ,GAAA,CAAIK,OAAA;IAClB,MAAMC,UAAA,GAAaC,MAAA,CAAOC,gBAAA,CAAiBC,SAAA;IAC3C,MAAMC,UAAA,GAAaC,MAAA,CAAOC,wBAAA,CACxBN,UAAA,EACA,SACF;IACA,MAAMO,UAAA,GAAaH,UAAA,CAAWI,GAAA;IAE9B,IAAIZ,WAAA,KAAgBP,OAAA,IAAWkB,UAAA,EAAY;MACzC,MAAME,KAAA,GAAQ,IAAIC,KAAA,CAAM,SAAS;QAAEpB;MAAQ,CAAC;MAC5CQ,KAAA,CAAMa,aAAA,GAAgB1B,eAAA,CAAgBI,OAAO;MAC7CkB,UAAA,CAAWK,IAAA,CAAKd,KAAA,EAAOb,eAAA,CAAgBI,OAAO,IAAI,QAAQA,OAAO;MACjES,KAAA,CAAMe,aAAA,CAAcJ,KAAK;IAC3B;EACF,GAAG,CAACb,WAAA,EAAaP,OAAA,EAASC,OAAO,CAAC;EAElC,OACE,eAAAJ,GAAA,CAAC;IACC4B,IAAA,EAAK;IACLC,cAAA,EAAgB9B,eAAA,CAAgBI,OAAO,IAAI,QAAQA,OAAA;IAClD,GAAGI,UAAA;IACJuB,QAAA,EAAU;IACVtB,GAAA;IACA,eAAaF,QAAA;IACbyB,KAAA,EAAO;MACL,IAAIzB,QAAA,GACA;QAAA;QAEE0B,QAAA,EAAU;QACVC,aAAA,EAAe;QACfC,OAAA,EAAS;QACTC,MAAA,EAAQ;MACV,IACA;QACEC,UAAA,EAAY;QACZC,WAAA,EAAa;MACf;MAEJ,GAAGnC,KAAA,CAAM6B;IACX;EAAA,CACF;AAEJ","ignoreList":[]}
1
+ {"version":3,"file":"BubbleInput.js","names":[],"sources":["esm/BubbleInput.js"],"sourcesContent":["import { usePrevious } from \"@tamagui/use-previous\";\nimport * as React from \"react\";\nimport { isIndeterminate } from \"./utils\";\nimport { jsx } from \"react/jsx-runtime\";\nconst BubbleInput = (props) => {\n const { checked, bubbles = true, control, isHidden, ...inputProps } = props;\n const ref = React.useRef(null);\n const prevChecked = usePrevious(checked);\n React.useEffect(() => {\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n \"checked\"\n );\n const setChecked = descriptor.set;\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 }, [prevChecked, checked, bubbles]);\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"checkbox\",\n defaultChecked: isIndeterminate(checked) ? false : checked,\n ...inputProps,\n tabIndex: -1,\n ref,\n \"aria-hidden\": isHidden,\n style: {\n ...isHidden ? {\n // ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n } : {\n appearance: \"auto\",\n accentColor: \"var(--color6)\"\n },\n ...props.style\n }\n }\n );\n};\nexport {\n BubbleInput\n};\n//# sourceMappingURL=BubbleInput.js.map\n"],"mappings":";;;;;;AAIA,MAAM,eAAe,UAAU;CAC7B,MAAM,EAAE,SAAS,UAAU,MAAM,SAAS,UAAU,GAAG,eAAe;CACtE,MAAM,MAAM,MAAM,OAAO,IAAI;CAC7B,MAAM,cAAc,YAAY,OAAO;CACvC,MAAM,gBAAgB;EACpB,MAAM,QAAQ,IAAI;EAClB,MAAM,aAAa,OAAO,iBAAiB;EAC3C,MAAM,aAAa,OAAO,yBACxB,YACA,SACF;EACA,MAAM,aAAa,WAAW;EAC9B,IAAI,gBAAgB,WAAW,YAAY;GACzC,MAAM,QAAQ,IAAI,MAAM,SAAS,EAAE,QAAQ,CAAC;GAC5C,MAAM,gBAAgB,gBAAgB,OAAO;GAC7C,WAAW,KAAK,OAAO,gBAAgB,OAAO,IAAI,QAAQ,OAAO;GACjE,MAAM,cAAc,KAAK;EAC3B;CACF,GAAG;EAAC;EAAa;EAAS;CAAO,CAAC;CAClC,OAAuB,oBACrB,SACA;EACE,MAAM;EACN,gBAAgB,gBAAgB,OAAO,IAAI,QAAQ;EACnD,GAAG;EACH,UAAU,CAAC;EACX;EACA,eAAe;EACf,OAAO;GACL,GAAG,WAAW;IAEZ,UAAU;IACV,eAAe;IACf,SAAS;IACT,QAAQ;GACV,IAAI;IACF,YAAY;IACZ,aAAa;GACf;GACA,GAAG,MAAM;EACX;CACF,CACF;AACF"}
@@ -1,52 +1,49 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx } from "react/jsx-runtime";
2
2
  import { usePrevious } from "@tamagui/use-previous";
3
3
  import * as React from "react";
4
4
  import { isIndeterminate } from "./utils.native.js";
5
- var BubbleInput = function (props) {
6
- var {
7
- checked,
8
- bubbles = true,
9
- control,
10
- isHidden,
11
- ...inputProps
12
- } = props;
13
- var ref = React.useRef(null);
14
- var prevChecked = usePrevious(checked);
15
- React.useEffect(function () {
16
- var input = ref.current;
17
- var inputProto = window.HTMLInputElement.prototype;
18
- var descriptor = Object.getOwnPropertyDescriptor(inputProto, "checked");
19
- var setChecked = descriptor.set;
20
- if (prevChecked !== checked && setChecked) {
21
- var event = new Event("click", {
22
- bubbles
23
- });
24
- input.indeterminate = isIndeterminate(checked);
25
- setChecked.call(input, isIndeterminate(checked) ? false : checked);
26
- input.dispatchEvent(event);
27
- }
28
- }, [prevChecked, checked, bubbles]);
29
- return /* @__PURE__ */_jsx("input", {
30
- type: "checkbox",
31
- defaultChecked: isIndeterminate(checked) ? false : checked,
32
- ...inputProps,
33
- tabIndex: -1,
34
- ref,
35
- "aria-hidden": isHidden,
36
- style: {
37
- ...(isHidden ? {
38
- // ...controlSize,
39
- position: "absolute",
40
- pointerEvents: "none",
41
- opacity: 0,
42
- margin: 0
43
- } : {
44
- appearance: "auto",
45
- accentColor: "var(--color6)"
46
- }),
47
- ...props.style
48
- }
49
- });
5
+
6
+ var BubbleInput = function(props) {
7
+ var { checked, bubbles = true, control, isHidden, ...inputProps } = props;
8
+ var ref = React.useRef(null);
9
+ var prevChecked = usePrevious(checked);
10
+ React.useEffect(function() {
11
+ var input = ref.current;
12
+ var inputProto = window.HTMLInputElement.prototype;
13
+ var descriptor = Object.getOwnPropertyDescriptor(inputProto, "checked");
14
+ var setChecked = descriptor.set;
15
+ if (prevChecked !== checked && setChecked) {
16
+ var event = new Event("click", { bubbles });
17
+ input.indeterminate = isIndeterminate(checked);
18
+ setChecked.call(input, isIndeterminate(checked) ? false : checked);
19
+ input.dispatchEvent(event);
20
+ }
21
+ }, [
22
+ prevChecked,
23
+ checked,
24
+ bubbles
25
+ ]);
26
+ return /* @__PURE__ */ jsx("input", {
27
+ type: "checkbox",
28
+ defaultChecked: isIndeterminate(checked) ? false : checked,
29
+ ...inputProps,
30
+ tabIndex: -1,
31
+ ref,
32
+ "aria-hidden": isHidden,
33
+ style: {
34
+ ...isHidden ? {
35
+ position: "absolute",
36
+ pointerEvents: "none",
37
+ opacity: 0,
38
+ margin: 0
39
+ } : {
40
+ appearance: "auto",
41
+ accentColor: "var(--color6)"
42
+ },
43
+ ...props.style
44
+ }
45
+ });
50
46
  };
47
+
51
48
  export { BubbleInput };
52
49
  //# sourceMappingURL=BubbleInput.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["jsx","_jsx","usePrevious","React","isIndeterminate","BubbleInput","props","checked","bubbles","control","isHidden","inputProps","ref","useRef","prevChecked","useEffect","input","current","inputProto","window","HTMLInputElement","prototype","descriptor","Object","getOwnPropertyDescriptor","setChecked","set","event","Event","indeterminate","call","dispatchEvent","type","defaultChecked","tabIndex","style","position","pointerEvents","opacity","margin","appearance","accentColor"],"sources":["../../src/BubbleInput.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAA,IAAAC,IAAA,QAAmB;AAC5B,SAAAC,WAAY,QAAW;AAGvB,YAASC,KAAA;AAkCL,SAAAC,eAAA;AAxBG,IAAAC,WAAM,YAAAA,CAAeC,KAA4B;EACtD;IAAMC,OAAE;IAAAC,OAAS,OAAU;IAAAC,OAAM;IAAAC,QAAS;IAAA,GAAUC;EAAG,IAAWL,KAAI;EACtE,IAAAM,GAAM,GAAAT,KAAM,CAAAU,MAAM,KAAyB;EAC3C,IAAAC,WAAM,GAAAZ,WAAc,CAAAK,OAAY;EAGhCJ,KAAA,CAAMY,SAAA,CAAU,YAAM;IACpB,IAAAC,KAAM,GAAAJ,GAAQ,CAAAK,OAAI;IAClB,IAAAC,UAAM,GAAAC,MAAa,CAAAC,gBAAO,CAAAC,SAAiB;IAC3C,IAAAC,UAAM,GAAAC,MAAa,CAAAC,wBAAO,CAAAN,UAAA;IAAA,IACxBO,UAAA,GAAAH,UAAA,CAAAI,GAAA;IAAA,IACAZ,WAAA,KAAAP,OAAA,IAAAkB,UAAA;MACF,IAAAE,KAAA,OAAAC,KAAA;QACApB;MAEA,EAAI;MACFQ,KAAA,CAAMa,aAAY,GAAAzB,eAAiB,CAAAG,OAAS;MAC5CkB,UAAM,CAAAK,IAAA,CAAAd,KAAA,EAAgBZ,eAAgB,CAAAG,OAAO,YAAAA,OAAA;MAC7CS,KAAA,CAAAe,aAAgB,CAAAJ,KAAO;IACvB;EAAyB,GAC3B,CACFb,WAAI,EAEJP,OACE,EAACC,OAAA;EAAA,OACC,eAAKP,IAAA;IAAA+B,IACL;IAAmDC,cAC/C,EAAA7B,eAAA,CAAAG,OAAA,YAAAA,OAAA;IAAA,GACJI,UAAU;IAAAuB,QACV;IAAAtB,GACA;IAAa,aACN,EAAAF,QAAA;IAAAyB,KACL,EAAI;MACA,IAAAzB,QAAA;QAAA;QAEY0B,QACV,YAAe;QAAAC,aACN;QAAAC,OACT,GAAQ;QACVC,MACA;MAAA,IACE;QAAYC,UACZ,QAAa;QACfC,WAAA;MAAA;MAGN,GAAAnC,KAAA,CAAA6B;IAAA;EACF;AAEJ","ignoreList":[]}
1
+ {"version":3,"file":"BubbleInput.native.js","names":[],"sources":["esm/BubbleInput.native.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { usePrevious } from \"@tamagui/use-previous\";\nimport * as React from \"react\";\nimport { isIndeterminate } from \"./utils\";\nvar BubbleInput = function(props) {\n var { checked, bubbles = true, control, isHidden, ...inputProps } = props;\n var ref = React.useRef(null);\n var prevChecked = usePrevious(checked);\n React.useEffect(function() {\n var input = ref.current;\n var inputProto = window.HTMLInputElement.prototype;\n var descriptor = Object.getOwnPropertyDescriptor(inputProto, \"checked\");\n var setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n var event = new Event(\"click\", {\n bubbles\n });\n input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }, [\n prevChecked,\n checked,\n bubbles\n ]);\n return /* @__PURE__ */ _jsx(\"input\", {\n type: \"checkbox\",\n defaultChecked: isIndeterminate(checked) ? false : checked,\n ...inputProps,\n tabIndex: -1,\n ref,\n \"aria-hidden\": isHidden,\n style: {\n ...isHidden ? {\n // ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n } : {\n appearance: \"auto\",\n accentColor: \"var(--color6)\"\n },\n ...props.style\n }\n });\n};\nexport {\n BubbleInput\n};\n//# sourceMappingURL=BubbleInput.js.map\n"],"mappings":";;;;;;AAIA,IAAI,cAAc,SAAS,OAAO;CAChC,IAAI,EAAE,SAAS,UAAU,MAAM,SAAS,UAAU,GAAG,eAAe;CACpE,IAAI,MAAM,MAAM,OAAO,IAAI;CAC3B,IAAI,cAAc,YAAY,OAAO;CACrC,MAAM,UAAU,WAAW;EACzB,IAAI,QAAQ,IAAI;EAChB,IAAI,aAAa,OAAO,iBAAiB;EACzC,IAAI,aAAa,OAAO,yBAAyB,YAAY,SAAS;EACtE,IAAI,aAAa,WAAW;EAC5B,IAAI,gBAAgB,WAAW,YAAY;GACzC,IAAI,QAAQ,IAAI,MAAM,SAAS,EAC7B,QACF,CAAC;GACD,MAAM,gBAAgB,gBAAgB,OAAO;GAC7C,WAAW,KAAK,OAAO,gBAAgB,OAAO,IAAI,QAAQ,OAAO;GACjE,MAAM,cAAc,KAAK;EAC3B;CACF,GAAG;EACD;EACA;EACA;CACF,CAAC;CACD,OAAuB,oBAAK,SAAS;EACnC,MAAM;EACN,gBAAgB,gBAAgB,OAAO,IAAI,QAAQ;EACnD,GAAG;EACH,UAAU,CAAC;EACX;EACA,eAAe;EACf,OAAO;GACL,GAAG,WAAW;IAEZ,UAAU;IACV,eAAe;IACf,SAAS;IACT,QAAQ;GACV,IAAI;IACF,YAAY;IACZ,aAAa;GACf;GACA,GAAG,MAAM;EACX;CACF,CAAC;AACH"}
package/dist/esm/index.js CHANGED
@@ -1,3 +1,3 @@
1
- export * from "./useCheckbox.mjs";
2
- export * from "./utils.mjs";
3
- //# sourceMappingURL=index.js.map
1
+ export * from "./useCheckbox.mjs"
2
+
3
+ export * from "./utils.mjs"
@@ -1,3 +1,3 @@
1
- export * from "./useCheckbox.mjs";
2
- export * from "./utils.mjs";
3
- //# sourceMappingURL=index.mjs.map
1
+ export * from "./useCheckbox.mjs"
2
+
3
+ export * from "./utils.mjs"
@@ -1,3 +1,3 @@
1
- export * from "./useCheckbox.native.js";
2
- export * from "./utils.native.js";
3
- //# sourceMappingURL=index.native.js.map
1
+ export * from "./useCheckbox.native.js"
2
+
3
+ export * from "./utils.native.js"
@@ -6,61 +6,55 @@ import React, { useMemo } from "react";
6
6
  import { BubbleInput } from "./BubbleInput.mjs";
7
7
  import { getState, isIndeterminate } from "./utils.mjs";
8
8
  import { jsx } from "react/jsx-runtime";
9
+
9
10
  function useCheckbox(props, [checked, setChecked], ref) {
10
- const {
11
- labelledBy: ariaLabelledby,
12
- name,
13
- required,
14
- disabled,
15
- value = "on",
16
- onCheckedChange,
17
- ...checkboxProps
18
- } = props;
19
- const [button, setButton] = React.useState(null);
20
- const composedRefs = useComposedRefs(ref, setButton);
21
- const hasConsumerStoppedPropagationRef = React.useRef(false);
22
- const isFormControl = isWeb ? button ? Boolean(button.closest("form")) : true : false;
23
- const labelId = useLabelContext(button);
24
- const labelledBy = ariaLabelledby || labelId;
25
- const parentKeyDown = props.onKeyDown;
26
- const handleKeyDown = useMemo(() => composeEventHandlers(parentKeyDown, event => {
27
- if (event.key === "Enter") event.preventDefault();
28
- }), [parentKeyDown]);
29
- const handlePress = useMemo(() => composeEventHandlers(props.onPress, event => {
30
- setChecked(prevChecked => isIndeterminate(prevChecked) ? true : !prevChecked);
31
- if (isFormControl && "isPropagationStopped" in event) {
32
- hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();
33
- if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();
34
- }
35
- }), [isFormControl]);
36
- return {
37
- bubbleInput: isWeb && isFormControl ? /* @__PURE__ */jsx(BubbleInput, {
38
- isHidden: true,
39
- control: button,
40
- bubbles: !hasConsumerStoppedPropagationRef.current,
41
- name,
42
- value,
43
- checked,
44
- required,
45
- disabled
46
- }) : null,
47
- checkboxRef: composedRefs,
48
- checkboxProps: {
49
- role: "checkbox",
50
- "aria-labelledby": labelledBy,
51
- "aria-checked": isIndeterminate(checked) ? "mixed" : checked,
52
- ...checkboxProps,
53
- ...(isWeb && {
54
- type: "button",
55
- value,
56
- "data-state": getState(checked),
57
- "data-disabled": disabled ? "" : void 0,
58
- disabled,
59
- onKeyDown: disabled ? void 0 : handleKeyDown
60
- }),
61
- onPress: disabled ? void 0 : handlePress
62
- }
63
- };
11
+ const { labelledBy: ariaLabelledby, name, required, disabled, value = "on", onCheckedChange, ...checkboxProps } = props;
12
+ const [button, setButton] = React.useState(null);
13
+ const composedRefs = useComposedRefs(ref, setButton);
14
+ const hasConsumerStoppedPropagationRef = React.useRef(false);
15
+ const isFormControl = isWeb ? button ? Boolean(button.closest("form")) : true : false;
16
+ const labelId = useLabelContext(button);
17
+ const labelledBy = ariaLabelledby || labelId;
18
+ const parentKeyDown = props.onKeyDown;
19
+ const handleKeyDown = useMemo(() => composeEventHandlers(parentKeyDown, (event) => {
20
+ if (event.key === "Enter") event.preventDefault();
21
+ }), [parentKeyDown]);
22
+ const handlePress = useMemo(() => composeEventHandlers(props.onPress, (event) => {
23
+ setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);
24
+ if (isFormControl && "isPropagationStopped" in event) {
25
+ hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();
26
+ if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();
27
+ }
28
+ }), [isFormControl]);
29
+ return {
30
+ bubbleInput: isWeb && isFormControl ? /* @__PURE__ */ jsx(BubbleInput, {
31
+ isHidden: true,
32
+ control: button,
33
+ bubbles: !hasConsumerStoppedPropagationRef.current,
34
+ name,
35
+ value,
36
+ checked,
37
+ required,
38
+ disabled
39
+ }) : null,
40
+ checkboxRef: composedRefs,
41
+ checkboxProps: {
42
+ role: "checkbox",
43
+ "aria-labelledby": labelledBy,
44
+ "aria-checked": isIndeterminate(checked) ? "mixed" : checked,
45
+ ...checkboxProps,
46
+ ...isWeb && {
47
+ type: "button",
48
+ value,
49
+ "data-state": getState(checked),
50
+ "data-disabled": disabled ? "" : void 0,
51
+ disabled,
52
+ onKeyDown: disabled ? void 0 : handleKeyDown
53
+ },
54
+ onPress: disabled ? void 0 : handlePress
55
+ }
56
+ };
64
57
  }
58
+
65
59
  export { useCheckbox };
66
60
  //# sourceMappingURL=useCheckbox.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["useComposedRefs","isWeb","composeEventHandlers","useLabelContext","React","useMemo","BubbleInput","getState","isIndeterminate","jsx","useCheckbox","props","checked","setChecked","ref","labelledBy","ariaLabelledby","name","required","disabled","value","onCheckedChange","checkboxProps","button","setButton","useState","composedRefs","hasConsumerStoppedPropagationRef","useRef","isFormControl","Boolean","closest","labelId","parentKeyDown","onKeyDown","handleKeyDown","event","key","preventDefault","handlePress","onPress","prevChecked","current","isPropagationStopped","stopPropagation","bubbleInput","isHidden","control","bubbles","checkboxRef","role","type"],"sources":["../../src/useCheckbox.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,eAAA,QAAuB;AAChC,SAASC,KAAA,QAAa;AAEtB,SAASC,oBAAA,QAA4B;AACrC,SAASC,eAAA,QAAuB;AAChC,OAAOC,KAAA,IAASC,OAAA,QAAe;AAG/B,SAASC,WAAA,QAAmB;AAC5B,SAASC,QAAA,EAAUC,eAAA,QAAuB;AAiFlC,SAAAC,GAAA;AAvDD,SAASC,YACdC,KAAA,EACA,CAACC,OAAA,EAASC,UAAU,GAIpBC,GAAA,EACA;EACA,MAAM;IACJC,UAAA,EAAYC,cAAA;IACZC,IAAA;IACAC,QAAA;IACAC,QAAA;IACAC,KAAA,GAAQ;IACRC,eAAA;IACA,GAAGC;EACL,IAAIX,KAAA;EACJ,MAAM,CAACY,MAAA,EAAQC,SAAS,IAAIpB,KAAA,CAAMqB,QAAA,CAAmC,IAAI;EACzE,MAAMC,YAAA,GAAe1B,eAAA,CAAgBc,GAAA,EAAKU,SAAgB;EAC1D,MAAMG,gCAAA,GAAmCvB,KAAA,CAAMwB,MAAA,CAAO,KAAK;EAE3D,MAAMC,aAAA,GAAgB5B,KAAA,GAASsB,MAAA,GAASO,OAAA,CAAQP,MAAA,CAAOQ,OAAA,CAAQ,MAAM,CAAC,IAAI,OAAQ;EAElF,MAAMC,OAAA,GAAU7B,eAAA,CAAgBoB,MAAM;EACtC,MAAMR,UAAA,GAAaC,cAAA,IAAkBgB,OAAA;EAErC,MAAMC,aAAA,GAAiBtB,KAAA,CAA6CuB,SAAA;EAEpE,MAAMC,aAAA,GAAgB9B,OAAA,CACpB,MACEH,oBAAA,CAAqB+B,aAAA,EAAgBG,KAAA,IAAU;IAE7C,IAAIA,KAAA,CAAMC,GAAA,KAAQ,SAASD,KAAA,CAAME,cAAA,CAAe;EAClD,CAAC,GACH,CAACL,aAAa,CAChB;EAEA,MAAMM,WAAA,GAAclC,OAAA,CAClB,MACEH,oBAAA,CAAqBS,KAAA,CAAM6B,OAAA,EAAiBJ,KAAA,IAAgC;IAC1EvB,UAAA,CAAY4B,WAAA,IAAiBjC,eAAA,CAAgBiC,WAAW,IAAI,OAAO,CAACA,WAAY;IAChF,IAAIZ,aAAA,IAAiB,0BAA0BO,KAAA,EAAO;MACpDT,gCAAA,CAAiCe,OAAA,GAAUN,KAAA,CAAMO,oBAAA,CAAqB;MAItE,IAAI,CAAChB,gCAAA,CAAiCe,OAAA,EAASN,KAAA,CAAMQ,eAAA,CAAgB;IACvE;EACF,CAAC,GACH,CAACf,aAAa,CAChB;EAEA,OAAO;IACLgB,WAAA,EACE5C,KAAA,IAAS4B,aAAA,GACP,eAAApB,GAAA,CAACH,WAAA;MACCwC,QAAA,EAAQ;MACRC,OAAA,EAASxB,MAAA;MACTyB,OAAA,EAAS,CAACrB,gCAAA,CAAiCe,OAAA;MAC3CzB,IAAA;MACAG,KAAA;MACAR,OAAA;MACAM,QAAA;MACAC;IAAA,CACF,IACE;IACN8B,WAAA,EAAavB,YAAA;IACbJ,aAAA,EAAe;MACb4B,IAAA,EAAM;MACN,mBAAmBnC,UAAA;MACnB,gBAAgBP,eAAA,CAAgBI,OAAO,IAAI,UAAUA,OAAA;MACrD,GAAGU,aAAA;MACH,IAAIrB,KAAA,IAAS;QACXkD,IAAA,EAAM;QACN/B,KAAA;QACA,cAAcb,QAAA,CAASK,OAAO;QAC9B,iBAAiBO,QAAA,GAAW,KAAK;QACjCA,QAAA;QACAe,SAAA,EAAWf,QAAA,GAAW,SAAYgB;MACpC;MACAK,OAAA,EAASrB,QAAA,GAAW,SAAYoB;IAClC;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"file":"useCheckbox.js","names":[],"sources":["esm/useCheckbox.js"],"sourcesContent":["import { useComposedRefs } from \"@tamagui/compose-refs\";\nimport { isWeb } from \"@tamagui/constants\";\nimport { composeEventHandlers } from \"@tamagui/helpers\";\nimport { useLabelContext } from \"@tamagui/label\";\nimport React, { useMemo } from \"react\";\nimport { BubbleInput } from \"./BubbleInput\";\nimport { getState, isIndeterminate } from \"./utils\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction useCheckbox(props, [checked, setChecked], ref) {\n const {\n labelledBy: ariaLabelledby,\n name,\n required,\n disabled,\n value = \"on\",\n onCheckedChange,\n ...checkboxProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(ref, setButton);\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = isWeb ? button ? Boolean(button.closest(\"form\")) : true : false;\n const labelId = useLabelContext(button);\n const labelledBy = ariaLabelledby || labelId;\n const parentKeyDown = props.onKeyDown;\n const handleKeyDown = useMemo(\n () => composeEventHandlers(parentKeyDown, (event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n [parentKeyDown]\n );\n const handlePress = useMemo(\n () => composeEventHandlers(props.onPress, (event) => {\n setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);\n if (isFormControl && \"isPropagationStopped\" in event) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n }),\n [isFormControl]\n );\n return {\n bubbleInput: isWeb && isFormControl ? /* @__PURE__ */ jsx(\n BubbleInput,\n {\n isHidden: true,\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled\n }\n ) : null,\n checkboxRef: composedRefs,\n checkboxProps: {\n role: \"checkbox\",\n \"aria-labelledby\": labelledBy,\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n ...checkboxProps,\n ...isWeb && {\n type: \"button\",\n value,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n onKeyDown: disabled ? void 0 : handleKeyDown\n },\n onPress: disabled ? void 0 : handlePress\n }\n };\n}\nexport {\n useCheckbox\n};\n//# sourceMappingURL=useCheckbox.js.map\n"],"mappings":";;;;;;;;;;AAQA,SAAS,YAAY,OAAO,CAAC,SAAS,aAAa,KAAK;CACtD,MAAM,EACJ,YAAY,gBACZ,MACA,UACA,UACA,QAAQ,MACR,iBACA,GAAG,kBACD;CACJ,MAAM,CAAC,QAAQ,aAAa,MAAM,SAAS,IAAI;CAC/C,MAAM,eAAe,gBAAgB,KAAK,SAAS;CACnD,MAAM,mCAAmC,MAAM,OAAO,KAAK;CAC3D,MAAM,gBAAgB,QAAQ,SAAS,QAAQ,OAAO,QAAQ,MAAM,CAAC,IAAI,OAAO;CAChF,MAAM,UAAU,gBAAgB,MAAM;CACtC,MAAM,aAAa,kBAAkB;CACrC,MAAM,gBAAgB,MAAM;CAC5B,MAAM,gBAAgB,cACd,qBAAqB,gBAAgB,UAAU;EACnD,IAAI,MAAM,QAAQ,SAAS,MAAM,eAAe;CAClD,CAAC,GACD,CAAC,aAAa,CAChB;CACA,MAAM,cAAc,cACZ,qBAAqB,MAAM,UAAU,UAAU;EACnD,YAAY,gBAAgB,gBAAgB,WAAW,IAAI,OAAO,CAAC,WAAW;EAC9E,IAAI,iBAAiB,0BAA0B,OAAO;GACpD,iCAAiC,UAAU,MAAM,qBAAqB;GACtE,IAAI,CAAC,iCAAiC,SAAS,MAAM,gBAAgB;EACvE;CACF,CAAC,GACD,CAAC,aAAa,CAChB;CACA,OAAO;EACL,aAAa,SAAS,gBAAgC,oBACpD,aACA;GACE,UAAU;GACV,SAAS;GACT,SAAS,CAAC,iCAAiC;GAC3C;GACA;GACA;GACA;GACA;EACF,CACF,IAAI;EACJ,aAAa;EACb,eAAe;GACb,MAAM;GACN,mBAAmB;GACnB,gBAAgB,gBAAgB,OAAO,IAAI,UAAU;GACrD,GAAG;GACH,GAAG,SAAS;IACV,MAAM;IACN;IACA,cAAc,SAAS,OAAO;IAC9B,iBAAiB,WAAW,KAAK,KAAK;IACtC;IACA,WAAW,WAAW,KAAK,IAAI;GACjC;GACA,SAAS,WAAW,KAAK,IAAI;EAC/B;CACF;AACF"}
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx } from "react/jsx-runtime";
2
2
  import { useComposedRefs } from "@tamagui/compose-refs";
3
3
  import { isWeb } from "@tamagui/constants";
4
4
  import { composeEventHandlers } from "@tamagui/helpers";
@@ -6,68 +6,62 @@ import { useLabelContext } from "@tamagui/label";
6
6
  import React, { useMemo } from "react";
7
7
  import { BubbleInput } from "./BubbleInput.native.js";
8
8
  import { getState, isIndeterminate } from "./utils.native.js";
9
+
9
10
  function useCheckbox(props, param, ref) {
10
- var [checked, setChecked] = param;
11
- var {
12
- labelledBy: ariaLabelledby,
13
- name,
14
- required,
15
- disabled,
16
- value = "on",
17
- onCheckedChange,
18
- ...checkboxProps
19
- } = props;
20
- var [button, setButton] = React.useState(null);
21
- var composedRefs = useComposedRefs(ref, setButton);
22
- var hasConsumerStoppedPropagationRef = React.useRef(false);
23
- var isFormControl = isWeb ? button ? Boolean(button.closest("form")) : true : false;
24
- var labelId = useLabelContext(button);
25
- var labelledBy = ariaLabelledby || labelId;
26
- var parentKeyDown = props.onKeyDown;
27
- var handleKeyDown = useMemo(function () {
28
- return composeEventHandlers(parentKeyDown, function (event) {
29
- if (event.key === "Enter") event.preventDefault();
30
- });
31
- }, [parentKeyDown]);
32
- var handlePress = useMemo(function () {
33
- return composeEventHandlers(props.onPress, function (event) {
34
- setChecked(function (prevChecked) {
35
- return isIndeterminate(prevChecked) ? true : !prevChecked;
36
- });
37
- if (isFormControl && "isPropagationStopped" in event) {
38
- hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();
39
- if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();
40
- }
41
- });
42
- }, [isFormControl]);
43
- return {
44
- bubbleInput: isWeb && isFormControl ? /* @__PURE__ */_jsx(BubbleInput, {
45
- isHidden: true,
46
- control: button,
47
- bubbles: !hasConsumerStoppedPropagationRef.current,
48
- name,
49
- value,
50
- checked,
51
- required,
52
- disabled
53
- }) : null,
54
- checkboxRef: composedRefs,
55
- checkboxProps: {
56
- role: "checkbox",
57
- "aria-labelledby": labelledBy,
58
- "aria-checked": isIndeterminate(checked) ? "mixed" : checked,
59
- ...checkboxProps,
60
- ...(isWeb && {
61
- type: "button",
62
- value,
63
- "data-state": getState(checked),
64
- "data-disabled": disabled ? "" : void 0,
65
- disabled,
66
- onKeyDown: disabled ? void 0 : handleKeyDown
67
- }),
68
- onPress: disabled ? void 0 : handlePress
69
- }
70
- };
11
+ var [checked, setChecked] = param;
12
+ var { labelledBy: ariaLabelledby, name, required, disabled, value = "on", onCheckedChange, ...checkboxProps } = props;
13
+ var [button, setButton] = React.useState(null);
14
+ var composedRefs = useComposedRefs(ref, setButton);
15
+ var hasConsumerStoppedPropagationRef = React.useRef(false);
16
+ var isFormControl = isWeb ? button ? Boolean(button.closest("form")) : true : false;
17
+ var labelId = useLabelContext(button);
18
+ var labelledBy = ariaLabelledby || labelId;
19
+ var parentKeyDown = props.onKeyDown;
20
+ var handleKeyDown = useMemo(function() {
21
+ return composeEventHandlers(parentKeyDown, function(event) {
22
+ if (event.key === "Enter") event.preventDefault();
23
+ });
24
+ }, [parentKeyDown]);
25
+ var handlePress = useMemo(function() {
26
+ return composeEventHandlers(props.onPress, function(event) {
27
+ setChecked(function(prevChecked) {
28
+ return isIndeterminate(prevChecked) ? true : !prevChecked;
29
+ });
30
+ if (isFormControl && "isPropagationStopped" in event) {
31
+ hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();
32
+ if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();
33
+ }
34
+ });
35
+ }, [isFormControl]);
36
+ return {
37
+ bubbleInput: isWeb && isFormControl ? /* @__PURE__ */ jsx(BubbleInput, {
38
+ isHidden: true,
39
+ control: button,
40
+ bubbles: !hasConsumerStoppedPropagationRef.current,
41
+ name,
42
+ value,
43
+ checked,
44
+ required,
45
+ disabled
46
+ }) : null,
47
+ checkboxRef: composedRefs,
48
+ checkboxProps: {
49
+ role: "checkbox",
50
+ "aria-labelledby": labelledBy,
51
+ "aria-checked": isIndeterminate(checked) ? "mixed" : checked,
52
+ ...checkboxProps,
53
+ ...isWeb && {
54
+ type: "button",
55
+ value,
56
+ "data-state": getState(checked),
57
+ "data-disabled": disabled ? "" : void 0,
58
+ disabled,
59
+ onKeyDown: disabled ? void 0 : handleKeyDown
60
+ },
61
+ onPress: disabled ? void 0 : handlePress
62
+ }
63
+ };
71
64
  }
65
+
72
66
  export { useCheckbox };
73
67
  //# sourceMappingURL=useCheckbox.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["jsx","_jsx","useComposedRefs","isWeb","composeEventHandlers","useLabelContext","React","useMemo","BubbleInput","getState","isIndeterminate","useCheckbox","props","param","ref","checked","setChecked","labelledBy","ariaLabelledby","name","required","disabled","value","onCheckedChange","checkboxProps","button","setButton","useState","composedRefs","hasConsumerStoppedPropagationRef","useRef","isFormControl","Boolean","closest","labelId","parentKeyDown","onKeyDown","handleKeyDown","event","key","preventDefault","handlePress","onPress","prevChecked","current","isPropagationStopped","stopPropagation","bubbleInput","isHidden","control","bubbles","checkboxRef","role","type"],"sources":["../../src/useCheckbox.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAA,IAAAC,IAAA,2BAAuB;AAChC,SAASC,eAAa;AAEtB,SAASC,KAAA,4BAA4B;AACrC,SAASC,oBAAA,QAAuB;AAChC,SAAOC,eAAS,QAAe;AAG/B,OAAAC,KAAS,IAAAC,OAAA,QAAmB;AAC5B,SAASC,WAAU,iCAAuB;AAiFlC,SAAAC,QAAA,EAAAC,eAAA;AAvDD,SAASC,YACdC,KAAA,EACAC,KAAC,EAAAC,GAAS;EAMV,KAAAC,OAAM,EAAAC,UAAA,IAAAH,KAAA;EAAA,IACJ;IAAAI,UAAY,EAAAC,cAAA;IAAAC,IAAA;IAAAC,QAAA;IAAAC,QAAA;IAAAC,KAAA;IAAAC,eAAA;IAAA,GAAAC;EAAA,IAAAZ,KAAA;EAAA,IACZ,CAAAa,MAAA,EAAAC,SAAA,IAAApB,KAAA,CAAAqB,QAAA;EAAA,IACAC,YAAA,GAAA1B,eAAA,CAAAY,GAAA,EAAAY,SAAA;EAAA,IACAG,gCAAA,GAAAvB,KAAA,CAAAwB,MAAA;EAAA,IACAC,aAAQ,GAAA5B,KAAA,GAAAsB,MAAA,GAAAO,OAAA,CAAAP,MAAA,CAAAQ,OAAA;EAAA,IACRC,OAAA,GAAA7B,eAAA,CAAAoB,MAAA;EAAA,IACAR,UAAG,GAAAC,cAAA,IAAAgB,OAAA;EACL,IAAIC,aAAA,GAAAvB,KAAA,CAAAwB,SAAA;EACJ,IAAAC,aAAe,GAAA9B,OAAS,CAAI,YAAM;IAClC,OAAMH,oBAAe,CAAA+B,aAAqB,YAAgBG,KAAA;MAC1D,IAAMA,KAAA,CAAAC,GAAA,cAAAD,KAAA,CAAAE,cAAyC;IAE/C;EAEA,IACAL,aAAM,CAEN;EAEA,IAAAM,WAAM,GAAAlC,OAAgB;IACpB,OACEH,oBAAqB,CAAAQ,KAAA,CAAA8B,OAAA,EAAgB,UAAAJ,KAAU;MAE7CtB,UAAU,WAAQ2B,WAAS,EAAM;QAClC,OAAAjC,eAAA,CAAAiC,WAAA,YAAAA,WAAA;MACF;MACH,IAAAZ,aAAA,8BAAAO,KAAA;QAEMT,gCAAc,CAAAe,OAAA,GAAAN,KAAA,CAAAO,oBAAA;QAClB,IACE,CAAAhB,gCAA2B,CAAgBe,OAAC,EAAAN,KAAgC,CAAAQ,eAAA;MAC1E;IACA;EACE,IAIAf,aAAK,CAAgE;EACvE,OACD;IACHgB,WAAC,EAAA5C,KAAa,IAAA4B,aAAA,kBAAA9B,IAAA,CAAAO,WAAA;MAChBwC,QAAA;MAEAC,OAAO,EAAAxB,MAAA;MACLyB,OAAA,GAAArB,gCAEI,CAAAe,OAAA;MAACzB,IAAA;MAAAG,KAAA;MAAAP,OACC;MAAQK,QACR;MAASC;IACkC,KAC3C;IAAA8B,WACA,EAAAvB,YAAA;IAAAJ,aACA;MAAA4B,IACA;MAAA,iBACA,EAAAnC,UAAA;MAAA,gBAAAP,eAAA,CAAAK,OAAA,cAAAA,OAAA;MACF,GACES,aAAA;MACN,IAAArB,KAAA,IAAa;QACbkD,IAAA,UAAe;QACb/B,KAAM;QACN,cAAAb,QAAmB,CAAAM,OAAA;QACnB,eAAgB,EAAAM,QAAA,KAAgB,QAAO;QACvCA,QAAG;QACHe,SAAI,EAASf,QAAA,YAAAgB;MAAA;MACLK,OACN,EAAArB,QAAA,YAAAoB;IAAA;EAC8B;AACG;AACjC,SACkC9B,WACpC","ignoreList":[]}
1
+ {"version":3,"file":"useCheckbox.native.js","names":[],"sources":["esm/useCheckbox.native.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useComposedRefs } from \"@tamagui/compose-refs\";\nimport { isWeb } from \"@tamagui/constants\";\nimport { composeEventHandlers } from \"@tamagui/helpers\";\nimport { useLabelContext } from \"@tamagui/label\";\nimport React, { useMemo } from \"react\";\nimport { BubbleInput } from \"./BubbleInput\";\nimport { getState, isIndeterminate } from \"./utils\";\nfunction useCheckbox(props, param, ref) {\n var [checked, setChecked] = param;\n var { labelledBy: ariaLabelledby, name, required, disabled, value = \"on\", onCheckedChange, ...checkboxProps } = props;\n var [button, setButton] = React.useState(null);\n var composedRefs = useComposedRefs(ref, setButton);\n var hasConsumerStoppedPropagationRef = React.useRef(false);\n var isFormControl = isWeb ? button ? Boolean(button.closest(\"form\")) : true : false;\n var labelId = useLabelContext(button);\n var labelledBy = ariaLabelledby || labelId;\n var parentKeyDown = props.onKeyDown;\n var handleKeyDown = useMemo(function() {\n return composeEventHandlers(parentKeyDown, function(event) {\n if (event.key === \"Enter\") event.preventDefault();\n });\n }, [\n parentKeyDown\n ]);\n var handlePress = useMemo(function() {\n return composeEventHandlers(props.onPress, function(event) {\n setChecked(function(prevChecked) {\n return isIndeterminate(prevChecked) ? true : !prevChecked;\n });\n if (isFormControl && \"isPropagationStopped\" in event) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n });\n }, [\n isFormControl\n ]);\n return {\n bubbleInput: isWeb && isFormControl ? /* @__PURE__ */ _jsx(BubbleInput, {\n isHidden: true,\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled\n }) : null,\n checkboxRef: composedRefs,\n checkboxProps: {\n role: \"checkbox\",\n \"aria-labelledby\": labelledBy,\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n ...checkboxProps,\n ...isWeb && {\n type: \"button\",\n value,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n onKeyDown: disabled ? void 0 : handleKeyDown\n },\n onPress: disabled ? void 0 : handlePress\n }\n };\n}\nexport {\n useCheckbox\n};\n//# sourceMappingURL=useCheckbox.js.map\n"],"mappings":";;;;;;;;;;AAQA,SAAS,YAAY,OAAO,OAAO,KAAK;CACtC,IAAI,CAAC,SAAS,cAAc;CAC5B,IAAI,EAAE,YAAY,gBAAgB,MAAM,UAAU,UAAU,QAAQ,MAAM,iBAAiB,GAAG,kBAAkB;CAChH,IAAI,CAAC,QAAQ,aAAa,MAAM,SAAS,IAAI;CAC7C,IAAI,eAAe,gBAAgB,KAAK,SAAS;CACjD,IAAI,mCAAmC,MAAM,OAAO,KAAK;CACzD,IAAI,gBAAgB,QAAQ,SAAS,QAAQ,OAAO,QAAQ,MAAM,CAAC,IAAI,OAAO;CAC9E,IAAI,UAAU,gBAAgB,MAAM;CACpC,IAAI,aAAa,kBAAkB;CACnC,IAAI,gBAAgB,MAAM;CAC1B,IAAI,gBAAgB,QAAQ,WAAW;EACrC,OAAO,qBAAqB,eAAe,SAAS,OAAO;GACzD,IAAI,MAAM,QAAQ,SAAS,MAAM,eAAe;EAClD,CAAC;CACH,GAAG,CACD,aACF,CAAC;CACD,IAAI,cAAc,QAAQ,WAAW;EACnC,OAAO,qBAAqB,MAAM,SAAS,SAAS,OAAO;GACzD,WAAW,SAAS,aAAa;IAC/B,OAAO,gBAAgB,WAAW,IAAI,OAAO,CAAC;GAChD,CAAC;GACD,IAAI,iBAAiB,0BAA0B,OAAO;IACpD,iCAAiC,UAAU,MAAM,qBAAqB;IACtE,IAAI,CAAC,iCAAiC,SAAS,MAAM,gBAAgB;GACvE;EACF,CAAC;CACH,GAAG,CACD,aACF,CAAC;CACD,OAAO;EACL,aAAa,SAAS,gBAAgC,oBAAK,aAAa;GACtE,UAAU;GACV,SAAS;GACT,SAAS,CAAC,iCAAiC;GAC3C;GACA;GACA;GACA;GACA;EACF,CAAC,IAAI;EACL,aAAa;EACb,eAAe;GACb,MAAM;GACN,mBAAmB;GACnB,gBAAgB,gBAAgB,OAAO,IAAI,UAAU;GACrD,GAAG;GACH,GAAG,SAAS;IACV,MAAM;IACN;IACA,cAAc,SAAS,OAAO;IAC9B,iBAAiB,WAAW,KAAK,KAAK;IACtC;IACA,WAAW,WAAW,KAAK,IAAI;GACjC;GACA,SAAS,WAAW,KAAK,IAAI;EAC/B;CACF;AACF"}
@@ -1,8 +1,9 @@
1
1
  function isIndeterminate(checked) {
2
- return checked === "indeterminate";
2
+ return checked === "indeterminate";
3
3
  }
4
4
  function getState(checked) {
5
- return isIndeterminate(checked) ? "indeterminate" : checked ? "checked" : "unchecked";
5
+ return isIndeterminate(checked) ? "indeterminate" : checked ? "checked" : "unchecked";
6
6
  }
7
+
7
8
  export { getState, isIndeterminate };
8
9
  //# sourceMappingURL=utils.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["isIndeterminate","checked","getState"],"sources":["../../src/utils.tsx"],"sourcesContent":[null],"mappings":"AAEO,SAASA,gBAAgBC,OAAA,EAAoD;EAClF,OAAOA,OAAA,KAAY;AACrB;AAEO,SAASC,SAASD,OAAA,EAAuB;EAC9C,OAAOD,eAAA,CAAgBC,OAAO,IAAI,kBAAkBA,OAAA,GAAU,YAAY;AAC5E","ignoreList":[]}
1
+ {"version":3,"file":"utils.js","names":[],"sources":["esm/utils.js"],"sourcesContent":["function isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nexport {\n getState,\n isIndeterminate\n};\n//# sourceMappingURL=utils.js.map\n"],"mappings":";AAAA,SAAS,gBAAgB,SAAS;CAChC,OAAO,YAAY;AACrB;AACA,SAAS,SAAS,SAAS;CACzB,OAAO,gBAAgB,OAAO,IAAI,kBAAkB,UAAU,YAAY;AAC5E"}
@@ -1,8 +1,9 @@
1
1
  function isIndeterminate(checked) {
2
- return checked === "indeterminate";
2
+ return checked === "indeterminate";
3
3
  }
4
4
  function getState(checked) {
5
- return isIndeterminate(checked) ? "indeterminate" : checked ? "checked" : "unchecked";
5
+ return isIndeterminate(checked) ? "indeterminate" : checked ? "checked" : "unchecked";
6
6
  }
7
+
7
8
  export { getState, isIndeterminate };
8
9
  //# sourceMappingURL=utils.native.js.map