@tamagui/checkbox-headless 1.118.0 → 1.118.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -53,11 +53,18 @@ function useCheckbox(props, [checked, setChecked], ref) {
53
53
  ...checkboxProps
54
54
  } = props,
55
55
  [button, setButton] = import_react.default.useState(null),
56
- composedRefs = (0, import_compose_refs.useComposedRefs)(ref, node => setButton(node)),
56
+ composedRefs = (0, import_compose_refs.useComposedRefs)(ref, setButton),
57
57
  hasConsumerStoppedPropagationRef = import_react.default.useRef(!1),
58
58
  isFormControl = import_constants.isWeb ? button ? !!button.closest("form") : !0 : !1,
59
59
  labelId = (0, import_label.useLabelContext)(button),
60
- labelledBy = ariaLabelledby || labelId;
60
+ labelledBy = ariaLabelledby || labelId,
61
+ parentKeyDown = props.onKeyDown,
62
+ handleKeyDown = (0, import_react.useMemo)(() => (0, import_helpers.composeEventHandlers)(parentKeyDown, event => {
63
+ event.key === "Enter" && event.preventDefault();
64
+ }), [parentKeyDown]),
65
+ handlePress = (0, import_react.useMemo)(() => (0, import_helpers.composeEventHandlers)(props.onPress, event => {
66
+ setChecked(prevChecked => (0, import_utils.isIndeterminate)(prevChecked) ? !0 : !prevChecked), isFormControl && "isPropagationStopped" in event && (hasConsumerStoppedPropagationRef.current = event.isPropagationStopped(), hasConsumerStoppedPropagationRef.current || event.stopPropagation());
67
+ }), [isFormControl]);
61
68
  return {
62
69
  bubbleInput: import_constants.isWeb && isFormControl ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_BubbleInput.BubbleInput, {
63
70
  isHidden: !0,
@@ -81,13 +88,9 @@ function useCheckbox(props, [checked, setChecked], ref) {
81
88
  "data-state": (0, import_utils.getState)(checked),
82
89
  "data-disabled": disabled ? "" : void 0,
83
90
  disabled,
84
- onKeyDown: (0, import_helpers.composeEventHandlers)(props.onKeyDown, event => {
85
- event.key === "Enter" && event.preventDefault();
86
- })
91
+ onKeyDown: handleKeyDown
87
92
  }),
88
- onPress: (0, import_helpers.composeEventHandlers)(props.onPress, event => {
89
- setChecked(prevChecked => (0, import_utils.isIndeterminate)(prevChecked) ? !0 : !prevChecked), isFormControl && "isPropagationStopped" in event && (hasConsumerStoppedPropagationRef.current = event.isPropagationStopped(), hasConsumerStoppedPropagationRef.current || event.stopPropagation());
90
- })
93
+ onPress: handlePress
91
94
  }
92
95
  };
93
96
  }
@@ -35,7 +35,17 @@ function useCheckbox(props, [checked, setChecked], ref) {
35
35
  value = "on",
36
36
  onCheckedChange,
37
37
  ...checkboxProps
38
- } = props, [button, setButton] = import_react.default.useState(null), composedRefs = (0, import_compose_refs.useComposedRefs)(ref, (node) => setButton(node)), hasConsumerStoppedPropagationRef = import_react.default.useRef(!1), isFormControl = import_constants.isWeb ? button ? !!button.closest("form") : !0 : !1, labelId = (0, import_label.useLabelContext)(button), labelledBy = ariaLabelledby || labelId;
38
+ } = props, [button, setButton] = import_react.default.useState(null), composedRefs = (0, import_compose_refs.useComposedRefs)(ref, setButton), hasConsumerStoppedPropagationRef = import_react.default.useRef(!1), isFormControl = import_constants.isWeb ? button ? !!button.closest("form") : !0 : !1, labelId = (0, import_label.useLabelContext)(button), labelledBy = ariaLabelledby || labelId, parentKeyDown = props.onKeyDown, handleKeyDown = (0, import_react.useMemo)(
39
+ () => (0, import_helpers.composeEventHandlers)(parentKeyDown, (event) => {
40
+ event.key === "Enter" && event.preventDefault();
41
+ }),
42
+ [parentKeyDown]
43
+ ), handlePress = (0, import_react.useMemo)(
44
+ () => (0, import_helpers.composeEventHandlers)(props.onPress, (event) => {
45
+ setChecked((prevChecked) => (0, import_utils.isIndeterminate)(prevChecked) ? !0 : !prevChecked), isFormControl && "isPropagationStopped" in event && (hasConsumerStoppedPropagationRef.current = event.isPropagationStopped(), hasConsumerStoppedPropagationRef.current || event.stopPropagation());
46
+ }),
47
+ [isFormControl]
48
+ );
39
49
  return {
40
50
  bubbleInput: import_constants.isWeb && isFormControl ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
41
51
  import_BubbleInput.BubbleInput,
@@ -62,21 +72,9 @@ function useCheckbox(props, [checked, setChecked], ref) {
62
72
  "data-state": (0, import_utils.getState)(checked),
63
73
  "data-disabled": disabled ? "" : void 0,
64
74
  disabled,
65
- onKeyDown: (0, import_helpers.composeEventHandlers)(
66
- props.onKeyDown,
67
- (event) => {
68
- event.key === "Enter" && event.preventDefault();
69
- }
70
- )
75
+ onKeyDown: handleKeyDown
71
76
  },
72
- onPress: (0, import_helpers.composeEventHandlers)(
73
- props.onPress,
74
- (event) => {
75
- setChecked(
76
- (prevChecked) => (0, import_utils.isIndeterminate)(prevChecked) ? !0 : !prevChecked
77
- ), isFormControl && "isPropagationStopped" in event && (hasConsumerStoppedPropagationRef.current = event.isPropagationStopped(), hasConsumerStoppedPropagationRef.current || event.stopPropagation());
78
- }
79
- )
77
+ onPress: handlePress
80
78
  }
81
79
  };
82
80
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/useCheckbox.tsx"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAAgC,kCAChC,mBAAsB,+BAEtB,iBAAqC,6BACrC,eAAgC,2BAChC,eAAkB,2BAGlB,qBAA4B,0BAC5B,eAA0C,oBAsDlC;AA7BD,SAAS,YACd,OACA,CAAC,SAAS,UAAU,GAIpB,KACA;AACA,QAAM;AAAA,IACJ,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR;AAAA,IACA,GAAG;AAAA,EACL,IAAI,OACE,CAAC,QAAQ,SAAS,IAAI,aAAAA,QAAM,SAAmC,IAAI,GACnE,mBAAe,qCAAgB,KAAK,CAAC,SAAS,UAAU,IAAW,CAAC,GACpE,mCAAmC,aAAAA,QAAM,OAAO,EAAK,GAErD,gBAAgB,yBAAS,SAAS,EAAQ,OAAO,QAAQ,MAAM,IAAK,KAAQ,IAE5E,cAAU,8BAAgB,MAAM,GAChC,aAAa,kBAAkB;AAErC,SAAO;AAAA,IACL,aACE,0BAAS,gBACP;AAAA,MAAC;AAAA;AAAA,QACC,UAAQ;AAAA,QACR,SAAS;AAAA,QACT,SAAS,CAAC,iCAAiC;AAAA,QAC3C;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF,IACE;AAAA,IACN,aAAa;AAAA,IACb,eAAe;AAAA,MACb,MAAM;AAAA,MACN,mBAAmB;AAAA,MACnB,oBAAgB,8BAAgB,OAAO,IAAI,UAAU;AAAA,MACrD,GAAG;AAAA,MACH,GAAI,0BAAS;AAAA,QACX,MAAM;AAAA,QACN;AAAA,QACA,kBAAc,uBAAS,OAAO;AAAA,QAC9B,iBAAiB,WAAW,KAAK;AAAA,QACjC;AAAA,QACA,eAAW;AAAA,UACR,MAA6C;AAAA,UAC9C,CAAC,UAAU;AAET,YAAI,MAAM,QAAQ,WAAS,MAAM,eAAe;AAAA,UAClD;AAAA,QACF;AAAA,MACF;AAAA,MACA,aAAS;AAAA,QACP,MAAM;AAAA,QACN,CAAC,UAAgC;AAC/B;AAAA,YAAW,CAAC,oBACV,8BAAgB,WAAW,IAAI,KAAO,CAAC;AAAA,UACzC,GACI,iBAAiB,0BAA0B,UAC7C,iCAAiC,UAAU,MAAM,qBAAqB,GAIjE,iCAAiC,WAAS,MAAM,gBAAgB;AAAA,QAEzE;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAAgC,kCAChC,mBAAsB,+BAEtB,iBAAqC,6BACrC,eAAgC,2BAChC,eAA4C,2BAG5C,qBAA4B,0BAC5B,eAA0C,oBAgFlC;AAvDD,SAAS,YACd,OACA,CAAC,SAAS,UAAU,GAIpB,KACA;AACA,QAAM;AAAA,IACJ,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR;AAAA,IACA,GAAG;AAAA,EACL,IAAI,OACE,CAAC,QAAQ,SAAS,IAAI,aAAAA,QAAM,SAAmC,IAAI,GACnE,mBAAe,qCAAgB,KAAK,SAAgB,GACpD,mCAAmC,aAAAA,QAAM,OAAO,EAAK,GAErD,gBAAgB,yBAAS,SAAS,EAAQ,OAAO,QAAQ,MAAM,IAAK,KAAQ,IAE5E,cAAU,8BAAgB,MAAM,GAChC,aAAa,kBAAkB,SAE/B,gBAAiB,MAA6C,WAE9D,oBAAgB;AAAA,IACpB,UACE,qCAAqB,eAAe,CAAC,UAAU;AAE7C,MAAI,MAAM,QAAQ,WAAS,MAAM,eAAe;AAAA,IAClD,CAAC;AAAA,IACH,CAAC,aAAa;AAAA,EAChB,GAEM,kBAAc;AAAA,IAClB,UACE,qCAAqB,MAAM,SAAgB,CAAC,UAAgC;AAC1E,iBAAW,CAAC,oBAAiB,8BAAgB,WAAW,IAAI,KAAO,CAAC,WAAY,GAC5E,iBAAiB,0BAA0B,UAC7C,iCAAiC,UAAU,MAAM,qBAAqB,GAIjE,iCAAiC,WAAS,MAAM,gBAAgB;AAAA,IAEzE,CAAC;AAAA,IACH,CAAC,aAAa;AAAA,EAChB;AAEA,SAAO;AAAA,IACL,aACE,0BAAS,gBACP;AAAA,MAAC;AAAA;AAAA,QACC,UAAQ;AAAA,QACR,SAAS;AAAA,QACT,SAAS,CAAC,iCAAiC;AAAA,QAC3C;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF,IACE;AAAA,IACN,aAAa;AAAA,IACb,eAAe;AAAA,MACb,MAAM;AAAA,MACN,mBAAmB;AAAA,MACnB,oBAAgB,8BAAgB,OAAO,IAAI,UAAU;AAAA,MACrD,GAAG;AAAA,MACH,GAAI,0BAAS;AAAA,QACX,MAAM;AAAA,QACN;AAAA,QACA,kBAAc,uBAAS,OAAO;AAAA,QAC9B,iBAAiB,WAAW,KAAK;AAAA,QACjC;AAAA,QACA,WAAW;AAAA,MACb;AAAA,MACA,SAAS;AAAA,IACX;AAAA,EACF;AACF;",
5
5
  "names": ["React"]
6
6
  }
@@ -28,9 +28,21 @@ __export(useCheckbox_exports, {
28
28
  module.exports = __toCommonJS(useCheckbox_exports);
29
29
  var import_jsx_runtime = require("react/jsx-runtime"), import_compose_refs = require("@tamagui/compose-refs"), import_constants = require("@tamagui/constants"), import_helpers = require("@tamagui/helpers"), import_label = require("@tamagui/label"), import_react = __toESM(require("react")), import_BubbleInput = require("./BubbleInput"), import_utils = require("./utils");
30
30
  function useCheckbox(props, param, ref) {
31
- var [checked, setChecked] = param, { labelledBy: ariaLabelledby, name, required, disabled, value = "on", onCheckedChange, ...checkboxProps } = props, [button, setButton] = import_react.default.useState(null), composedRefs = (0, import_compose_refs.useComposedRefs)(ref, function(node) {
32
- return setButton(node);
33
- }), hasConsumerStoppedPropagationRef = import_react.default.useRef(!1), isFormControl = import_constants.isWeb ? button ? !!button.closest("form") : !0 : !1, labelId = (0, import_label.useLabelContext)(button), labelledBy = ariaLabelledby || labelId;
31
+ var [checked, setChecked] = param, { labelledBy: ariaLabelledby, name, required, disabled, value = "on", onCheckedChange, ...checkboxProps } = props, [button, setButton] = import_react.default.useState(null), composedRefs = (0, import_compose_refs.useComposedRefs)(ref, setButton), hasConsumerStoppedPropagationRef = import_react.default.useRef(!1), isFormControl = import_constants.isWeb ? button ? !!button.closest("form") : !0 : !1, labelId = (0, import_label.useLabelContext)(button), labelledBy = ariaLabelledby || labelId, parentKeyDown = props.onKeyDown, handleKeyDown = (0, import_react.useMemo)(function() {
32
+ return (0, import_helpers.composeEventHandlers)(parentKeyDown, function(event) {
33
+ event.key === "Enter" && event.preventDefault();
34
+ });
35
+ }, [
36
+ parentKeyDown
37
+ ]), handlePress = (0, import_react.useMemo)(function() {
38
+ return (0, import_helpers.composeEventHandlers)(props.onPress, function(event) {
39
+ setChecked(function(prevChecked) {
40
+ return (0, import_utils.isIndeterminate)(prevChecked) ? !0 : !prevChecked;
41
+ }), isFormControl && "isPropagationStopped" in event && (hasConsumerStoppedPropagationRef.current = event.isPropagationStopped(), hasConsumerStoppedPropagationRef.current || event.stopPropagation());
42
+ });
43
+ }, [
44
+ isFormControl
45
+ ]);
34
46
  return {
35
47
  bubbleInput: import_constants.isWeb && isFormControl ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_BubbleInput.BubbleInput, {
36
48
  isHidden: !0,
@@ -54,15 +66,9 @@ function useCheckbox(props, param, ref) {
54
66
  "data-state": (0, import_utils.getState)(checked),
55
67
  "data-disabled": disabled ? "" : void 0,
56
68
  disabled,
57
- onKeyDown: (0, import_helpers.composeEventHandlers)(props.onKeyDown, function(event) {
58
- event.key === "Enter" && event.preventDefault();
59
- })
69
+ onKeyDown: handleKeyDown
60
70
  },
61
- onPress: (0, import_helpers.composeEventHandlers)(props.onPress, function(event) {
62
- setChecked(function(prevChecked) {
63
- return (0, import_utils.isIndeterminate)(prevChecked) ? !0 : !prevChecked;
64
- }), isFormControl && "isPropagationStopped" in event && (hasConsumerStoppedPropagationRef.current = event.isPropagationStopped(), hasConsumerStoppedPropagationRef.current || event.stopPropagation());
65
- })
71
+ onPress: handlePress
66
72
  }
67
73
  };
68
74
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Users/n8/tamagui/code/ui/checkbox-headless/src/useCheckbox.tsx"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;uDAAA,sBAAgC,kCAChC,mBAAsB,+BAEtB,iBAAqC,6BACrC,eAAgC,2BAChC,eAAkB,2BAGlB,qBAA4B,0BAC5B,eAA0C;AAyBnC,SAASA,YACdC,OACA,OAIAC,KAAiB;MAJjB,CAACC,SAASC,UAAAA,IAAV,OAMM,EACJC,YAAYC,gBACZC,MACAC,UACAC,UACAC,QAAQ,MACRC,iBACA,GAAGC,cAAAA,IACDX,OACE,CAACY,QAAQC,SAAAA,IAAaC,aAAAA,QAAMC,SAAmC,IAAA,GAC/DC,mBAAeC,qCAAgBhB,KAAK,SAACiB,MAAAA;WAASL,UAAUK,IAAAA;MACxDC,mCAAmCL,aAAAA,QAAMM,OAAO,EAAA,GAEhDC,gBAAgBC,yBAASV,SAASW,EAAQX,OAAOY,QAAQ,MAAA,IAAW,KAAQ,IAE5EC,cAAUC,8BAAgBd,MAAAA,GAC1BR,aAAaC,kBAAkBoB;AAErC,SAAO;IACLE,aACEL,0BAASD,gBACP,uCAAAO,KAACC,gCAAAA;MACCC,UAAQ;MACRC,SAASnB;MACToB,SAAS,CAACb,iCAAiCc;MAC3C3B;MACAG;MACAP;MACAK;MACAC;SAEA;IACN0B,aAAalB;IACbL,eAAe;MACbwB,MAAM;MACN,mBAAmB/B;MACnB,oBAAgBgC,8BAAgBlC,OAAAA,IAAW,UAAUA;MACrD,GAAGS;MACH,GAAIW,0BAAS;QACXe,MAAM;QACN5B;QACA,kBAAc6B,uBAASpC,OAAAA;QACvB,iBAAiBM,WAAW,KAAK+B;QACjC/B;QACAgC,eAAWC,qCACRzC,MAA6CwC,WAC9C,SAACE,OAAAA;AAEC,UAAIA,MAAMC,QAAQ,WAASD,MAAME,eAAc;QACjD,CAAA;MAEJ;MACAC,aAASJ,qCACPzC,MAAM6C,SACN,SAACH,OAAAA;AACCvC,mBAAW,SAAC2C,aAAAA;qBACVV,8BAAgBU,WAAAA,IAAe,KAAO,CAACA;YAErCzB,iBAAiB,0BAA0BqB,UAC7CvB,iCAAiCc,UAAUS,MAAMK,qBAAoB,GAIhE5B,iCAAiCc,WAASS,MAAMM,gBAAe;MAExE,CAAA;IAEJ;EACF;AACF;",
5
- "names": ["useCheckbox", "props", "ref", "checked", "setChecked", "labelledBy", "ariaLabelledby", "name", "required", "disabled", "value", "onCheckedChange", "checkboxProps", "button", "setButton", "React", "useState", "composedRefs", "useComposedRefs", "node", "hasConsumerStoppedPropagationRef", "useRef", "isFormControl", "isWeb", "Boolean", "closest", "labelId", "useLabelContext", "bubbleInput", "_jsx", "BubbleInput", "isHidden", "control", "bubbles", "current", "checkboxRef", "role", "isIndeterminate", "type", "getState", "undefined", "onKeyDown", "composeEventHandlers", "event", "key", "preventDefault", "onPress", "prevChecked", "isPropagationStopped", "stopPropagation"]
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;uDAAA,sBAAgC,kCAChC,mBAAsB,+BAEtB,iBAAqC,6BACrC,eAAgC,2BAChC,eAA4C,2BAG5C,qBAA4B,0BAC5B,eAA0C;AAyBnC,SAASA,YACdC,OACA,OAIAC,KAAiB;MAJjB,CAACC,SAASC,UAAAA,IAAV,OAMM,EACJC,YAAYC,gBACZC,MACAC,UACAC,UACAC,QAAQ,MACRC,iBACA,GAAGC,cAAAA,IACDX,OACE,CAACY,QAAQC,SAAAA,IAAaC,aAAAA,QAAMC,SAAmC,IAAA,GAC/DC,mBAAeC,qCAAgBhB,KAAKY,SAAAA,GACpCK,mCAAmCJ,aAAAA,QAAMK,OAAO,EAAA,GAEhDC,gBAAgBC,yBAAST,SAASU,EAAQV,OAAOW,QAAQ,MAAA,IAAW,KAAQ,IAE5EC,cAAUC,8BAAgBb,MAAAA,GAC1BR,aAAaC,kBAAkBmB,SAE/BE,gBAAiB1B,MAA6C2B,WAE9DC,oBAAgBC,sBACpB,WAAA;eACEC,qCAAqBJ,eAAe,SAACK,OAAAA;AAEnC,MAAIA,MAAMC,QAAQ,WAASD,MAAME,eAAc;IACjD,CAAA;KACF;IAACP;GAAc,GAGXQ,kBAAcL,sBAClB,WAAA;eACEC,qCAAqB9B,MAAMmC,SAAgB,SAACJ,OAAAA;AAC1C5B,iBAAW,SAACiC,aAAAA;mBAAiBC,8BAAgBD,WAAAA,IAAe,KAAO,CAACA;UAChEhB,iBAAiB,0BAA0BW,UAC7Cb,iCAAiCoB,UAAUP,MAAMQ,qBAAoB,GAIhErB,iCAAiCoB,WAASP,MAAMS,gBAAe;IAExE,CAAA;KACF;IAACpB;GAAc;AAGjB,SAAO;IACLqB,aACEpB,0BAASD,gBACP,uCAAAsB,KAACC,gCAAAA;MACCC,UAAQ;MACRC,SAASjC;MACTkC,SAAS,CAAC5B,iCAAiCoB;MAC3ChC;MACAG;MACAP;MACAK;MACAC;SAEA;IACNuC,aAAa/B;IACbL,eAAe;MACbqC,MAAM;MACN,mBAAmB5C;MACnB,oBAAgBiC,8BAAgBnC,OAAAA,IAAW,UAAUA;MACrD,GAAGS;MACH,GAAIU,0BAAS;QACX4B,MAAM;QACNxC;QACA,kBAAcyC,uBAAShD,OAAAA;QACvB,iBAAiBM,WAAW,KAAK2C;QACjC3C;QACAmB,WAAWC;MACb;MACAO,SAASD;IACX;EACF;AACF;",
5
+ "names": ["useCheckbox", "props", "ref", "checked", "setChecked", "labelledBy", "ariaLabelledby", "name", "required", "disabled", "value", "onCheckedChange", "checkboxProps", "button", "setButton", "React", "useState", "composedRefs", "useComposedRefs", "hasConsumerStoppedPropagationRef", "useRef", "isFormControl", "isWeb", "Boolean", "closest", "labelId", "useLabelContext", "parentKeyDown", "onKeyDown", "handleKeyDown", "useMemo", "composeEventHandlers", "event", "key", "preventDefault", "handlePress", "onPress", "prevChecked", "isIndeterminate", "current", "isPropagationStopped", "stopPropagation", "bubbleInput", "_jsx", "BubbleInput", "isHidden", "control", "bubbles", "checkboxRef", "role", "type", "getState", "undefined"]
6
6
  }
@@ -2,7 +2,7 @@ import { useComposedRefs } from "@tamagui/compose-refs";
2
2
  import { isWeb } from "@tamagui/constants";
3
3
  import { composeEventHandlers } from "@tamagui/helpers";
4
4
  import { useLabelContext } from "@tamagui/label";
5
- import React from "react";
5
+ import React, { useMemo } from "react";
6
6
  import { BubbleInput } from "./BubbleInput";
7
7
  import { getState, isIndeterminate } from "./utils";
8
8
  import { jsx } from "react/jsx-runtime";
@@ -15,7 +15,17 @@ function useCheckbox(props, [checked, setChecked], ref) {
15
15
  value = "on",
16
16
  onCheckedChange,
17
17
  ...checkboxProps
18
- } = props, [button, setButton] = React.useState(null), composedRefs = useComposedRefs(ref, (node) => setButton(node)), hasConsumerStoppedPropagationRef = React.useRef(!1), isFormControl = isWeb ? button ? !!button.closest("form") : !0 : !1, labelId = useLabelContext(button), labelledBy = ariaLabelledby || labelId;
18
+ } = props, [button, setButton] = React.useState(null), composedRefs = useComposedRefs(ref, setButton), hasConsumerStoppedPropagationRef = React.useRef(!1), isFormControl = isWeb ? button ? !!button.closest("form") : !0 : !1, labelId = useLabelContext(button), labelledBy = ariaLabelledby || labelId, parentKeyDown = props.onKeyDown, handleKeyDown = useMemo(
19
+ () => composeEventHandlers(parentKeyDown, (event) => {
20
+ event.key === "Enter" && event.preventDefault();
21
+ }),
22
+ [parentKeyDown]
23
+ ), handlePress = useMemo(
24
+ () => composeEventHandlers(props.onPress, (event) => {
25
+ setChecked((prevChecked) => isIndeterminate(prevChecked) ? !0 : !prevChecked), isFormControl && "isPropagationStopped" in event && (hasConsumerStoppedPropagationRef.current = event.isPropagationStopped(), hasConsumerStoppedPropagationRef.current || event.stopPropagation());
26
+ }),
27
+ [isFormControl]
28
+ );
19
29
  return {
20
30
  bubbleInput: isWeb && isFormControl ? /* @__PURE__ */ jsx(
21
31
  BubbleInput,
@@ -42,21 +52,9 @@ function useCheckbox(props, [checked, setChecked], ref) {
42
52
  "data-state": getState(checked),
43
53
  "data-disabled": disabled ? "" : void 0,
44
54
  disabled,
45
- onKeyDown: composeEventHandlers(
46
- props.onKeyDown,
47
- (event) => {
48
- event.key === "Enter" && event.preventDefault();
49
- }
50
- )
55
+ onKeyDown: handleKeyDown
51
56
  },
52
- onPress: composeEventHandlers(
53
- props.onPress,
54
- (event) => {
55
- setChecked(
56
- (prevChecked) => isIndeterminate(prevChecked) ? !0 : !prevChecked
57
- ), isFormControl && "isPropagationStopped" in event && (hasConsumerStoppedPropagationRef.current = event.isPropagationStopped(), hasConsumerStoppedPropagationRef.current || event.stopPropagation());
58
- }
59
- )
57
+ onPress: handlePress
60
58
  }
61
59
  };
62
60
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/useCheckbox.tsx"],
4
- "mappings": "AAAA,SAAS,uBAAuB;AAChC,SAAS,aAAa;AAEtB,SAAS,4BAA4B;AACrC,SAAS,uBAAuB;AAChC,OAAO,WAAW;AAGlB,SAAS,mBAAmB;AAC5B,SAAS,UAAU,uBAAuB;AAsDlC;AA7BD,SAAS,YACd,OACA,CAAC,SAAS,UAAU,GAIpB,KACA;AACA,QAAM;AAAA,IACJ,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR;AAAA,IACA,GAAG;AAAA,EACL,IAAI,OACE,CAAC,QAAQ,SAAS,IAAI,MAAM,SAAmC,IAAI,GACnE,eAAe,gBAAgB,KAAK,CAAC,SAAS,UAAU,IAAW,CAAC,GACpE,mCAAmC,MAAM,OAAO,EAAK,GAErD,gBAAgB,QAAS,SAAS,EAAQ,OAAO,QAAQ,MAAM,IAAK,KAAQ,IAE5E,UAAU,gBAAgB,MAAM,GAChC,aAAa,kBAAkB;AAErC,SAAO;AAAA,IACL,aACE,SAAS,gBACP;AAAA,MAAC;AAAA;AAAA,QACC,UAAQ;AAAA,QACR,SAAS;AAAA,QACT,SAAS,CAAC,iCAAiC;AAAA,QAC3C;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF,IACE;AAAA,IACN,aAAa;AAAA,IACb,eAAe;AAAA,MACb,MAAM;AAAA,MACN,mBAAmB;AAAA,MACnB,gBAAgB,gBAAgB,OAAO,IAAI,UAAU;AAAA,MACrD,GAAG;AAAA,MACH,GAAI,SAAS;AAAA,QACX,MAAM;AAAA,QACN;AAAA,QACA,cAAc,SAAS,OAAO;AAAA,QAC9B,iBAAiB,WAAW,KAAK;AAAA,QACjC;AAAA,QACA,WAAW;AAAA,UACR,MAA6C;AAAA,UAC9C,CAAC,UAAU;AAET,YAAI,MAAM,QAAQ,WAAS,MAAM,eAAe;AAAA,UAClD;AAAA,QACF;AAAA,MACF;AAAA,MACA,SAAS;AAAA,QACP,MAAM;AAAA,QACN,CAAC,UAAgC;AAC/B;AAAA,YAAW,CAAC,gBACV,gBAAgB,WAAW,IAAI,KAAO,CAAC;AAAA,UACzC,GACI,iBAAiB,0BAA0B,UAC7C,iCAAiC,UAAU,MAAM,qBAAqB,GAIjE,iCAAiC,WAAS,MAAM,gBAAgB;AAAA,QAEzE;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;",
4
+ "mappings": "AAAA,SAAS,uBAAuB;AAChC,SAAS,aAAa;AAEtB,SAAS,4BAA4B;AACrC,SAAS,uBAAuB;AAChC,OAAO,SAAsB,eAAe;AAG5C,SAAS,mBAAmB;AAC5B,SAAS,UAAU,uBAAuB;AAgFlC;AAvDD,SAAS,YACd,OACA,CAAC,SAAS,UAAU,GAIpB,KACA;AACA,QAAM;AAAA,IACJ,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR;AAAA,IACA,GAAG;AAAA,EACL,IAAI,OACE,CAAC,QAAQ,SAAS,IAAI,MAAM,SAAmC,IAAI,GACnE,eAAe,gBAAgB,KAAK,SAAgB,GACpD,mCAAmC,MAAM,OAAO,EAAK,GAErD,gBAAgB,QAAS,SAAS,EAAQ,OAAO,QAAQ,MAAM,IAAK,KAAQ,IAE5E,UAAU,gBAAgB,MAAM,GAChC,aAAa,kBAAkB,SAE/B,gBAAiB,MAA6C,WAE9D,gBAAgB;AAAA,IACpB,MACE,qBAAqB,eAAe,CAAC,UAAU;AAE7C,MAAI,MAAM,QAAQ,WAAS,MAAM,eAAe;AAAA,IAClD,CAAC;AAAA,IACH,CAAC,aAAa;AAAA,EAChB,GAEM,cAAc;AAAA,IAClB,MACE,qBAAqB,MAAM,SAAgB,CAAC,UAAgC;AAC1E,iBAAW,CAAC,gBAAiB,gBAAgB,WAAW,IAAI,KAAO,CAAC,WAAY,GAC5E,iBAAiB,0BAA0B,UAC7C,iCAAiC,UAAU,MAAM,qBAAqB,GAIjE,iCAAiC,WAAS,MAAM,gBAAgB;AAAA,IAEzE,CAAC;AAAA,IACH,CAAC,aAAa;AAAA,EAChB;AAEA,SAAO;AAAA,IACL,aACE,SAAS,gBACP;AAAA,MAAC;AAAA;AAAA,QACC,UAAQ;AAAA,QACR,SAAS;AAAA,QACT,SAAS,CAAC,iCAAiC;AAAA,QAC3C;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF,IACE;AAAA,IACN,aAAa;AAAA,IACb,eAAe;AAAA,MACb,MAAM;AAAA,MACN,mBAAmB;AAAA,MACnB,gBAAgB,gBAAgB,OAAO,IAAI,UAAU;AAAA,MACrD,GAAG;AAAA,MACH,GAAI,SAAS;AAAA,QACX,MAAM;AAAA,QACN;AAAA,QACA,cAAc,SAAS,OAAO;AAAA,QAC9B,iBAAiB,WAAW,KAAK;AAAA,QACjC;AAAA,QACA,WAAW;AAAA,MACb;AAAA,MACA,SAAS;AAAA,IACX;AAAA,EACF;AACF;",
5
5
  "names": []
6
6
  }
@@ -2,7 +2,7 @@ import { useComposedRefs } from "@tamagui/compose-refs";
2
2
  import { isWeb } from "@tamagui/constants";
3
3
  import { composeEventHandlers } from "@tamagui/helpers";
4
4
  import { useLabelContext } from "@tamagui/label";
5
- import React from "react";
5
+ 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";
@@ -17,11 +17,18 @@ function useCheckbox(props, [checked, setChecked], ref) {
17
17
  ...checkboxProps
18
18
  } = props,
19
19
  [button, setButton] = React.useState(null),
20
- composedRefs = useComposedRefs(ref, node => setButton(node)),
20
+ composedRefs = useComposedRefs(ref, setButton),
21
21
  hasConsumerStoppedPropagationRef = React.useRef(!1),
22
22
  isFormControl = isWeb ? button ? !!button.closest("form") : !0 : !1,
23
23
  labelId = useLabelContext(button),
24
- labelledBy = ariaLabelledby || labelId;
24
+ labelledBy = ariaLabelledby || labelId,
25
+ parentKeyDown = props.onKeyDown,
26
+ handleKeyDown = useMemo(() => composeEventHandlers(parentKeyDown, event => {
27
+ event.key === "Enter" && event.preventDefault();
28
+ }), [parentKeyDown]),
29
+ handlePress = useMemo(() => composeEventHandlers(props.onPress, event => {
30
+ setChecked(prevChecked => isIndeterminate(prevChecked) ? !0 : !prevChecked), isFormControl && "isPropagationStopped" in event && (hasConsumerStoppedPropagationRef.current = event.isPropagationStopped(), hasConsumerStoppedPropagationRef.current || event.stopPropagation());
31
+ }), [isFormControl]);
25
32
  return {
26
33
  bubbleInput: isWeb && isFormControl ? /* @__PURE__ */jsx(BubbleInput, {
27
34
  isHidden: !0,
@@ -45,13 +52,9 @@ function useCheckbox(props, [checked, setChecked], ref) {
45
52
  "data-state": getState(checked),
46
53
  "data-disabled": disabled ? "" : void 0,
47
54
  disabled,
48
- onKeyDown: composeEventHandlers(props.onKeyDown, event => {
49
- event.key === "Enter" && event.preventDefault();
50
- })
55
+ onKeyDown: handleKeyDown
51
56
  }),
52
- onPress: composeEventHandlers(props.onPress, event => {
53
- setChecked(prevChecked => isIndeterminate(prevChecked) ? !0 : !prevChecked), isFormControl && "isPropagationStopped" in event && (hasConsumerStoppedPropagationRef.current = event.isPropagationStopped(), hasConsumerStoppedPropagationRef.current || event.stopPropagation());
54
- })
57
+ onPress: handlePress
55
58
  }
56
59
  };
57
60
  }
@@ -1 +1 @@
1
- {"version":3,"names":["useComposedRefs","isWeb","composeEventHandlers","useLabelContext","React","BubbleInput","getState","isIndeterminate","jsx","useCheckbox","props","checked","setChecked","ref","labelledBy","ariaLabelledby","name","required","disabled","value","onCheckedChange","checkboxProps","button","setButton","useState","composedRefs","node","hasConsumerStoppedPropagationRef","useRef","isFormControl","closest","labelId","bubbleInput","isHidden","control","bubbles","current","checkboxRef","role","type","onKeyDown","event","key","preventDefault","onPress","prevChecked","isPropagationStopped","stopPropagation"],"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,MAAW;AAGlB,SAASC,WAAA,QAAmB;AAC5B,SAASC,QAAA,EAAUC,eAAA,QAAuB;AAsDlC,SAAAC,GAAA;AA7BD,SAASC,YACdC,KAAA,EACA,CAACC,OAAA,EAASC,UAAU,GAIpBC,GAAA,EACA;EACA,MAAM;MACJC,UAAA,EAAYC,cAAA;MACZC,IAAA;MACAC,QAAA;MACAC,QAAA;MACAC,KAAA,GAAQ;MACRC,eAAA;MACA,GAAGC;IACL,IAAIX,KAAA;IACE,CAACY,MAAA,EAAQC,SAAS,IAAInB,KAAA,CAAMoB,QAAA,CAAmC,IAAI;IACnEC,YAAA,GAAezB,eAAA,CAAgBa,GAAA,EAAMa,IAAA,IAASH,SAAA,CAAUG,IAAW,CAAC;IACpEC,gCAAA,GAAmCvB,KAAA,CAAMwB,MAAA,CAAO,EAAK;IAErDC,aAAA,GAAgB5B,KAAA,GAASqB,MAAA,GAAS,EAAQA,MAAA,CAAOQ,OAAA,CAAQ,MAAM,IAAK,KAAQ;IAE5EC,OAAA,GAAU5B,eAAA,CAAgBmB,MAAM;IAChCR,UAAA,GAAaC,cAAA,IAAkBgB,OAAA;EAErC,OAAO;IACLC,WAAA,EACE/B,KAAA,IAAS4B,aAAA,GACP,eAAArB,GAAA,CAACH,WAAA;MACC4B,QAAA,EAAQ;MACRC,OAAA,EAASZ,MAAA;MACTa,OAAA,EAAS,CAACR,gCAAA,CAAiCS,OAAA;MAC3CpB,IAAA;MACAG,KAAA;MACAR,OAAA;MACAM,QAAA;MACAC;IAAA,CACF,IACE;IACNmB,WAAA,EAAaZ,YAAA;IACbJ,aAAA,EAAe;MACbiB,IAAA,EAAM;MACN,mBAAmBxB,UAAA;MACnB,gBAAgBP,eAAA,CAAgBI,OAAO,IAAI,UAAUA,OAAA;MACrD,GAAGU,aAAA;MACH,IAAIpB,KAAA,IAAS;QACXsC,IAAA,EAAM;QACNpB,KAAA;QACA,cAAcb,QAAA,CAASK,OAAO;QAC9B,iBAAiBO,QAAA,GAAW,KAAK;QACjCA,QAAA;QACAsB,SAAA,EAAWtC,oBAAA,CACRQ,KAAA,CAA6C8B,SAAA,EAC7CC,KAAA,IAAU;UAELA,KAAA,CAAMC,GAAA,KAAQ,WAASD,KAAA,CAAME,cAAA,CAAe;QAClD,CACF;MACF;MACAC,OAAA,EAAS1C,oBAAA,CACPQ,KAAA,CAAMkC,OAAA,EACLH,KAAA,IAAgC;QAC/B7B,UAAA,CAAYiC,WAAA,IACVtC,eAAA,CAAgBsC,WAAW,IAAI,KAAO,CAACA,WACzC,GACIhB,aAAA,IAAiB,0BAA0BY,KAAA,KAC7Cd,gCAAA,CAAiCS,OAAA,GAAUK,KAAA,CAAMK,oBAAA,CAAqB,GAIjEnB,gCAAA,CAAiCS,OAAA,IAASK,KAAA,CAAMM,eAAA,CAAgB;MAEzE,CACF;IACF;EACF;AACF","ignoreList":[]}
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","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,IAAsBC,OAAA,QAAe;AAG5C,SAASC,WAAA,QAAmB;AAC5B,SAASC,QAAA,EAAUC,eAAA,QAAuB;AAgFlC,SAAAC,GAAA;AAvDD,SAASC,YACdC,KAAA,EACA,CAACC,OAAA,EAASC,UAAU,GAIpBC,GAAA,EACA;EACA,MAAM;MACJC,UAAA,EAAYC,cAAA;MACZC,IAAA;MACAC,QAAA;MACAC,QAAA;MACAC,KAAA,GAAQ;MACRC,eAAA;MACA,GAAGC;IACL,IAAIX,KAAA;IACE,CAACY,MAAA,EAAQC,SAAS,IAAIpB,KAAA,CAAMqB,QAAA,CAAmC,IAAI;IACnEC,YAAA,GAAe1B,eAAA,CAAgBc,GAAA,EAAKU,SAAgB;IACpDG,gCAAA,GAAmCvB,KAAA,CAAMwB,MAAA,CAAO,EAAK;IAErDC,aAAA,GAAgB5B,KAAA,GAASsB,MAAA,GAAS,EAAQA,MAAA,CAAOO,OAAA,CAAQ,MAAM,IAAK,KAAQ;IAE5EC,OAAA,GAAU5B,eAAA,CAAgBoB,MAAM;IAChCR,UAAA,GAAaC,cAAA,IAAkBe,OAAA;IAE/BC,aAAA,GAAiBrB,KAAA,CAA6CsB,SAAA;IAE9DC,aAAA,GAAgB7B,OAAA,CACpB,MACEH,oBAAA,CAAqB8B,aAAA,EAAgBG,KAAA,IAAU;MAEzCA,KAAA,CAAMC,GAAA,KAAQ,WAASD,KAAA,CAAME,cAAA,CAAe;IAClD,CAAC,GACH,CAACL,aAAa,CAChB;IAEMM,WAAA,GAAcjC,OAAA,CAClB,MACEH,oBAAA,CAAqBS,KAAA,CAAM4B,OAAA,EAAiBJ,KAAA,IAAgC;MAC1EtB,UAAA,CAAY2B,WAAA,IAAiBhC,eAAA,CAAgBgC,WAAW,IAAI,KAAO,CAACA,WAAY,GAC5EX,aAAA,IAAiB,0BAA0BM,KAAA,KAC7CR,gCAAA,CAAiCc,OAAA,GAAUN,KAAA,CAAMO,oBAAA,CAAqB,GAIjEf,gCAAA,CAAiCc,OAAA,IAASN,KAAA,CAAMQ,eAAA,CAAgB;IAEzE,CAAC,GACH,CAACd,aAAa,CAChB;EAEA,OAAO;IACLe,WAAA,EACE3C,KAAA,IAAS4B,aAAA,GACP,eAAApB,GAAA,CAACH,WAAA;MACCuC,QAAA,EAAQ;MACRC,OAAA,EAASvB,MAAA;MACTwB,OAAA,EAAS,CAACpB,gCAAA,CAAiCc,OAAA;MAC3CxB,IAAA;MACAG,KAAA;MACAR,OAAA;MACAM,QAAA;MACAC;IAAA,CACF,IACE;IACN6B,WAAA,EAAatB,YAAA;IACbJ,aAAA,EAAe;MACb2B,IAAA,EAAM;MACN,mBAAmBlC,UAAA;MACnB,gBAAgBP,eAAA,CAAgBI,OAAO,IAAI,UAAUA,OAAA;MACrD,GAAGU,aAAA;MACH,IAAIrB,KAAA,IAAS;QACXiD,IAAA,EAAM;QACN9B,KAAA;QACA,cAAcb,QAAA,CAASK,OAAO;QAC9B,iBAAiBO,QAAA,GAAW,KAAK;QACjCA,QAAA;QACAc,SAAA,EAAWC;MACb;MACAK,OAAA,EAASD;IACX;EACF;AACF","ignoreList":[]}
@@ -3,13 +3,25 @@ import { useComposedRefs } from "@tamagui/compose-refs";
3
3
  import { isWeb } from "@tamagui/constants";
4
4
  import { composeEventHandlers } from "@tamagui/helpers";
5
5
  import { useLabelContext } from "@tamagui/label";
6
- import React from "react";
6
+ import React, { useMemo } from "react";
7
7
  import { BubbleInput } from "./BubbleInput";
8
8
  import { getState, isIndeterminate } from "./utils";
9
9
  function useCheckbox(props, param, ref) {
10
- var [checked, setChecked] = param, { labelledBy: ariaLabelledby, name, required, disabled, value = "on", onCheckedChange, ...checkboxProps } = props, [button, setButton] = React.useState(null), composedRefs = useComposedRefs(ref, function(node) {
11
- return setButton(node);
12
- }), hasConsumerStoppedPropagationRef = React.useRef(!1), isFormControl = isWeb ? button ? !!button.closest("form") : !0 : !1, labelId = useLabelContext(button), labelledBy = ariaLabelledby || labelId;
10
+ var [checked, setChecked] = param, { labelledBy: ariaLabelledby, name, required, disabled, value = "on", onCheckedChange, ...checkboxProps } = props, [button, setButton] = React.useState(null), composedRefs = useComposedRefs(ref, setButton), hasConsumerStoppedPropagationRef = React.useRef(!1), isFormControl = isWeb ? button ? !!button.closest("form") : !0 : !1, labelId = useLabelContext(button), labelledBy = ariaLabelledby || labelId, parentKeyDown = props.onKeyDown, handleKeyDown = useMemo(function() {
11
+ return composeEventHandlers(parentKeyDown, function(event) {
12
+ event.key === "Enter" && event.preventDefault();
13
+ });
14
+ }, [
15
+ parentKeyDown
16
+ ]), handlePress = useMemo(function() {
17
+ return composeEventHandlers(props.onPress, function(event) {
18
+ setChecked(function(prevChecked) {
19
+ return isIndeterminate(prevChecked) ? !0 : !prevChecked;
20
+ }), isFormControl && "isPropagationStopped" in event && (hasConsumerStoppedPropagationRef.current = event.isPropagationStopped(), hasConsumerStoppedPropagationRef.current || event.stopPropagation());
21
+ });
22
+ }, [
23
+ isFormControl
24
+ ]);
13
25
  return {
14
26
  bubbleInput: isWeb && isFormControl ? /* @__PURE__ */ _jsx(BubbleInput, {
15
27
  isHidden: !0,
@@ -33,15 +45,9 @@ function useCheckbox(props, param, ref) {
33
45
  "data-state": getState(checked),
34
46
  "data-disabled": disabled ? "" : void 0,
35
47
  disabled,
36
- onKeyDown: composeEventHandlers(props.onKeyDown, function(event) {
37
- event.key === "Enter" && event.preventDefault();
38
- })
48
+ onKeyDown: handleKeyDown
39
49
  },
40
- onPress: composeEventHandlers(props.onPress, function(event) {
41
- setChecked(function(prevChecked) {
42
- return isIndeterminate(prevChecked) ? !0 : !prevChecked;
43
- }), isFormControl && "isPropagationStopped" in event && (hasConsumerStoppedPropagationRef.current = event.isPropagationStopped(), hasConsumerStoppedPropagationRef.current || event.stopPropagation());
44
- })
50
+ onPress: handlePress
45
51
  }
46
52
  };
47
53
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Users/n8/tamagui/code/ui/checkbox-headless/src/useCheckbox.tsx"],
4
- "mappings": ";AAAA,SAASA,uBAAuB;AAChC,SAASC,aAAa;AAEtB,SAASC,4BAA4B;AACrC,SAASC,uBAAuB;AAChC,OAAOC,WAAW;AAGlB,SAASC,mBAAmB;AAC5B,SAASC,UAAUC,uBAAuB;AAyBnC,SAASC,YACdC,OACA,OAIAC,KAAiB;MAJjB,CAACC,SAASC,UAAAA,IAAV,OAMM,EACJC,YAAYC,gBACZC,MACAC,UACAC,UACAC,QAAQ,MACRC,iBACA,GAAGC,cAAAA,IACDX,OACE,CAACY,QAAQC,SAAAA,IAAalB,MAAMmB,SAAmC,IAAA,GAC/DC,eAAexB,gBAAgBU,KAAK,SAACe,MAAAA;WAASH,UAAUG,IAAAA;MACxDC,mCAAmCtB,MAAMuB,OAAO,EAAA,GAEhDC,gBAAgB3B,QAASoB,SAASQ,EAAQR,OAAOS,QAAQ,MAAA,IAAW,KAAQ,IAE5EC,UAAU5B,gBAAgBkB,MAAAA,GAC1BR,aAAaC,kBAAkBiB;AAErC,SAAO;IACLC,aACE/B,SAAS2B,gBACP,qBAACvB,aAAAA;MACC4B,UAAQ;MACRC,SAASb;MACTc,SAAS,CAACT,iCAAiCU;MAC3CrB;MACAG;MACAP;MACAK;MACAC;SAEA;IACNoB,aAAab;IACbJ,eAAe;MACbkB,MAAM;MACN,mBAAmBzB;MACnB,gBAAgBN,gBAAgBI,OAAAA,IAAW,UAAUA;MACrD,GAAGS;MACH,GAAInB,SAAS;QACXsC,MAAM;QACNrB;QACA,cAAcZ,SAASK,OAAAA;QACvB,iBAAiBM,WAAW,KAAKuB;QACjCvB;QACAwB,WAAWvC,qBACRO,MAA6CgC,WAC9C,SAACC,OAAAA;AAEC,UAAIA,MAAMC,QAAQ,WAASD,MAAME,eAAc;QACjD,CAAA;MAEJ;MACAC,SAAS3C,qBACPO,MAAMoC,SACN,SAACH,OAAAA;AACC9B,mBAAW,SAACkC,aAAAA;iBACVvC,gBAAgBuC,WAAAA,IAAe,KAAO,CAACA;YAErClB,iBAAiB,0BAA0Bc,UAC7ChB,iCAAiCU,UAAUM,MAAMK,qBAAoB,GAIhErB,iCAAiCU,WAASM,MAAMM,gBAAe;MAExE,CAAA;IAEJ;EACF;AACF;",
5
- "names": ["useComposedRefs", "isWeb", "composeEventHandlers", "useLabelContext", "React", "BubbleInput", "getState", "isIndeterminate", "useCheckbox", "props", "ref", "checked", "setChecked", "labelledBy", "ariaLabelledby", "name", "required", "disabled", "value", "onCheckedChange", "checkboxProps", "button", "setButton", "useState", "composedRefs", "node", "hasConsumerStoppedPropagationRef", "useRef", "isFormControl", "Boolean", "closest", "labelId", "bubbleInput", "isHidden", "control", "bubbles", "current", "checkboxRef", "role", "type", "undefined", "onKeyDown", "event", "key", "preventDefault", "onPress", "prevChecked", "isPropagationStopped", "stopPropagation"]
4
+ "mappings": ";AAAA,SAASA,uBAAuB;AAChC,SAASC,aAAa;AAEtB,SAASC,4BAA4B;AACrC,SAASC,uBAAuB;AAChC,OAAOC,SAAsBC,eAAe;AAG5C,SAASC,mBAAmB;AAC5B,SAASC,UAAUC,uBAAuB;AAyBnC,SAASC,YACdC,OACA,OAIAC,KAAiB;MAJjB,CAACC,SAASC,UAAAA,IAAV,OAMM,EACJC,YAAYC,gBACZC,MACAC,UACAC,UACAC,QAAQ,MACRC,iBACA,GAAGC,cAAAA,IACDX,OACE,CAACY,QAAQC,SAAAA,IAAanB,MAAMoB,SAAmC,IAAA,GAC/DC,eAAezB,gBAAgBW,KAAKY,SAAAA,GACpCG,mCAAmCtB,MAAMuB,OAAO,EAAA,GAEhDC,gBAAgB3B,QAASqB,SAASO,EAAQP,OAAOQ,QAAQ,MAAA,IAAW,KAAQ,IAE5EC,UAAU5B,gBAAgBmB,MAAAA,GAC1BR,aAAaC,kBAAkBgB,SAE/BC,gBAAiBtB,MAA6CuB,WAE9DC,gBAAgB7B,QACpB,WAAA;WACEH,qBAAqB8B,eAAe,SAACG,OAAAA;AAEnC,MAAIA,MAAMC,QAAQ,WAASD,MAAME,eAAc;IACjD,CAAA;KACF;IAACL;GAAc,GAGXM,cAAcjC,QAClB,WAAA;WACEH,qBAAqBQ,MAAM6B,SAAgB,SAACJ,OAAAA;AAC1CtB,iBAAW,SAAC2B,aAAAA;eAAiBhC,gBAAgBgC,WAAAA,IAAe,KAAO,CAACA;UAChEZ,iBAAiB,0BAA0BO,UAC7CT,iCAAiCe,UAAUN,MAAMO,qBAAoB,GAIhEhB,iCAAiCe,WAASN,MAAMQ,gBAAe;IAExE,CAAA;KACF;IAACf;GAAc;AAGjB,SAAO;IACLgB,aACE3C,SAAS2B,gBACP,qBAACtB,aAAAA;MACCuC,UAAQ;MACRC,SAASxB;MACTyB,SAAS,CAACrB,iCAAiCe;MAC3CzB;MACAG;MACAP;MACAK;MACAC;SAEA;IACN8B,aAAavB;IACbJ,eAAe;MACb4B,MAAM;MACN,mBAAmBnC;MACnB,gBAAgBN,gBAAgBI,OAAAA,IAAW,UAAUA;MACrD,GAAGS;MACH,GAAIpB,SAAS;QACXiD,MAAM;QACN/B;QACA,cAAcZ,SAASK,OAAAA;QACvB,iBAAiBM,WAAW,KAAKiC;QACjCjC;QACAe,WAAWC;MACb;MACAK,SAASD;IACX;EACF;AACF;",
5
+ "names": ["useComposedRefs", "isWeb", "composeEventHandlers", "useLabelContext", "React", "useMemo", "BubbleInput", "getState", "isIndeterminate", "useCheckbox", "props", "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", "undefined"]
6
6
  }
@@ -2,7 +2,7 @@ import { useComposedRefs } from "@tamagui/compose-refs";
2
2
  import { isWeb } from "@tamagui/constants";
3
3
  import { composeEventHandlers } from "@tamagui/helpers";
4
4
  import { useLabelContext } from "@tamagui/label";
5
- import React from "react";
5
+ import React, { useMemo } from "react";
6
6
  import { BubbleInput } from "./BubbleInput";
7
7
  import { getState, isIndeterminate } from "./utils";
8
8
  import { jsx } from "react/jsx-runtime";
@@ -15,7 +15,17 @@ function useCheckbox(props, [checked, setChecked], ref) {
15
15
  value = "on",
16
16
  onCheckedChange,
17
17
  ...checkboxProps
18
- } = props, [button, setButton] = React.useState(null), composedRefs = useComposedRefs(ref, (node) => setButton(node)), hasConsumerStoppedPropagationRef = React.useRef(!1), isFormControl = isWeb ? button ? !!button.closest("form") : !0 : !1, labelId = useLabelContext(button), labelledBy = ariaLabelledby || labelId;
18
+ } = props, [button, setButton] = React.useState(null), composedRefs = useComposedRefs(ref, setButton), hasConsumerStoppedPropagationRef = React.useRef(!1), isFormControl = isWeb ? button ? !!button.closest("form") : !0 : !1, labelId = useLabelContext(button), labelledBy = ariaLabelledby || labelId, parentKeyDown = props.onKeyDown, handleKeyDown = useMemo(
19
+ () => composeEventHandlers(parentKeyDown, (event) => {
20
+ event.key === "Enter" && event.preventDefault();
21
+ }),
22
+ [parentKeyDown]
23
+ ), handlePress = useMemo(
24
+ () => composeEventHandlers(props.onPress, (event) => {
25
+ setChecked((prevChecked) => isIndeterminate(prevChecked) ? !0 : !prevChecked), isFormControl && "isPropagationStopped" in event && (hasConsumerStoppedPropagationRef.current = event.isPropagationStopped(), hasConsumerStoppedPropagationRef.current || event.stopPropagation());
26
+ }),
27
+ [isFormControl]
28
+ );
19
29
  return {
20
30
  bubbleInput: isWeb && isFormControl ? /* @__PURE__ */ jsx(
21
31
  BubbleInput,
@@ -42,21 +52,9 @@ function useCheckbox(props, [checked, setChecked], ref) {
42
52
  "data-state": getState(checked),
43
53
  "data-disabled": disabled ? "" : void 0,
44
54
  disabled,
45
- onKeyDown: composeEventHandlers(
46
- props.onKeyDown,
47
- (event) => {
48
- event.key === "Enter" && event.preventDefault();
49
- }
50
- )
55
+ onKeyDown: handleKeyDown
51
56
  },
52
- onPress: composeEventHandlers(
53
- props.onPress,
54
- (event) => {
55
- setChecked(
56
- (prevChecked) => isIndeterminate(prevChecked) ? !0 : !prevChecked
57
- ), isFormControl && "isPropagationStopped" in event && (hasConsumerStoppedPropagationRef.current = event.isPropagationStopped(), hasConsumerStoppedPropagationRef.current || event.stopPropagation());
58
- }
59
- )
57
+ onPress: handlePress
60
58
  }
61
59
  };
62
60
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/useCheckbox.tsx"],
4
- "mappings": "AAAA,SAAS,uBAAuB;AAChC,SAAS,aAAa;AAEtB,SAAS,4BAA4B;AACrC,SAAS,uBAAuB;AAChC,OAAO,WAAW;AAGlB,SAAS,mBAAmB;AAC5B,SAAS,UAAU,uBAAuB;AAsDlC;AA7BD,SAAS,YACd,OACA,CAAC,SAAS,UAAU,GAIpB,KACA;AACA,QAAM;AAAA,IACJ,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR;AAAA,IACA,GAAG;AAAA,EACL,IAAI,OACE,CAAC,QAAQ,SAAS,IAAI,MAAM,SAAmC,IAAI,GACnE,eAAe,gBAAgB,KAAK,CAAC,SAAS,UAAU,IAAW,CAAC,GACpE,mCAAmC,MAAM,OAAO,EAAK,GAErD,gBAAgB,QAAS,SAAS,EAAQ,OAAO,QAAQ,MAAM,IAAK,KAAQ,IAE5E,UAAU,gBAAgB,MAAM,GAChC,aAAa,kBAAkB;AAErC,SAAO;AAAA,IACL,aACE,SAAS,gBACP;AAAA,MAAC;AAAA;AAAA,QACC,UAAQ;AAAA,QACR,SAAS;AAAA,QACT,SAAS,CAAC,iCAAiC;AAAA,QAC3C;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF,IACE;AAAA,IACN,aAAa;AAAA,IACb,eAAe;AAAA,MACb,MAAM;AAAA,MACN,mBAAmB;AAAA,MACnB,gBAAgB,gBAAgB,OAAO,IAAI,UAAU;AAAA,MACrD,GAAG;AAAA,MACH,GAAI,SAAS;AAAA,QACX,MAAM;AAAA,QACN;AAAA,QACA,cAAc,SAAS,OAAO;AAAA,QAC9B,iBAAiB,WAAW,KAAK;AAAA,QACjC;AAAA,QACA,WAAW;AAAA,UACR,MAA6C;AAAA,UAC9C,CAAC,UAAU;AAET,YAAI,MAAM,QAAQ,WAAS,MAAM,eAAe;AAAA,UAClD;AAAA,QACF;AAAA,MACF;AAAA,MACA,SAAS;AAAA,QACP,MAAM;AAAA,QACN,CAAC,UAAgC;AAC/B;AAAA,YAAW,CAAC,gBACV,gBAAgB,WAAW,IAAI,KAAO,CAAC;AAAA,UACzC,GACI,iBAAiB,0BAA0B,UAC7C,iCAAiC,UAAU,MAAM,qBAAqB,GAIjE,iCAAiC,WAAS,MAAM,gBAAgB;AAAA,QAEzE;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;",
4
+ "mappings": "AAAA,SAAS,uBAAuB;AAChC,SAAS,aAAa;AAEtB,SAAS,4BAA4B;AACrC,SAAS,uBAAuB;AAChC,OAAO,SAAsB,eAAe;AAG5C,SAAS,mBAAmB;AAC5B,SAAS,UAAU,uBAAuB;AAgFlC;AAvDD,SAAS,YACd,OACA,CAAC,SAAS,UAAU,GAIpB,KACA;AACA,QAAM;AAAA,IACJ,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR;AAAA,IACA,GAAG;AAAA,EACL,IAAI,OACE,CAAC,QAAQ,SAAS,IAAI,MAAM,SAAmC,IAAI,GACnE,eAAe,gBAAgB,KAAK,SAAgB,GACpD,mCAAmC,MAAM,OAAO,EAAK,GAErD,gBAAgB,QAAS,SAAS,EAAQ,OAAO,QAAQ,MAAM,IAAK,KAAQ,IAE5E,UAAU,gBAAgB,MAAM,GAChC,aAAa,kBAAkB,SAE/B,gBAAiB,MAA6C,WAE9D,gBAAgB;AAAA,IACpB,MACE,qBAAqB,eAAe,CAAC,UAAU;AAE7C,MAAI,MAAM,QAAQ,WAAS,MAAM,eAAe;AAAA,IAClD,CAAC;AAAA,IACH,CAAC,aAAa;AAAA,EAChB,GAEM,cAAc;AAAA,IAClB,MACE,qBAAqB,MAAM,SAAgB,CAAC,UAAgC;AAC1E,iBAAW,CAAC,gBAAiB,gBAAgB,WAAW,IAAI,KAAO,CAAC,WAAY,GAC5E,iBAAiB,0BAA0B,UAC7C,iCAAiC,UAAU,MAAM,qBAAqB,GAIjE,iCAAiC,WAAS,MAAM,gBAAgB;AAAA,IAEzE,CAAC;AAAA,IACH,CAAC,aAAa;AAAA,EAChB;AAEA,SAAO;AAAA,IACL,aACE,SAAS,gBACP;AAAA,MAAC;AAAA;AAAA,QACC,UAAQ;AAAA,QACR,SAAS;AAAA,QACT,SAAS,CAAC,iCAAiC;AAAA,QAC3C;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF,IACE;AAAA,IACN,aAAa;AAAA,IACb,eAAe;AAAA,MACb,MAAM;AAAA,MACN,mBAAmB;AAAA,MACnB,gBAAgB,gBAAgB,OAAO,IAAI,UAAU;AAAA,MACrD,GAAG;AAAA,MACH,GAAI,SAAS;AAAA,QACX,MAAM;AAAA,QACN;AAAA,QACA,cAAc,SAAS,OAAO;AAAA,QAC9B,iBAAiB,WAAW,KAAK;AAAA,QACjC;AAAA,QACA,WAAW;AAAA,MACb;AAAA,MACA,SAAS;AAAA,IACX;AAAA,EACF;AACF;",
5
5
  "names": []
6
6
  }
@@ -2,7 +2,7 @@ import { useComposedRefs } from "@tamagui/compose-refs";
2
2
  import { isWeb } from "@tamagui/constants";
3
3
  import { composeEventHandlers } from "@tamagui/helpers";
4
4
  import { useLabelContext } from "@tamagui/label";
5
- import React from "react";
5
+ 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";
@@ -17,11 +17,18 @@ function useCheckbox(props, [checked, setChecked], ref) {
17
17
  ...checkboxProps
18
18
  } = props,
19
19
  [button, setButton] = React.useState(null),
20
- composedRefs = useComposedRefs(ref, node => setButton(node)),
20
+ composedRefs = useComposedRefs(ref, setButton),
21
21
  hasConsumerStoppedPropagationRef = React.useRef(!1),
22
22
  isFormControl = isWeb ? button ? !!button.closest("form") : !0 : !1,
23
23
  labelId = useLabelContext(button),
24
- labelledBy = ariaLabelledby || labelId;
24
+ labelledBy = ariaLabelledby || labelId,
25
+ parentKeyDown = props.onKeyDown,
26
+ handleKeyDown = useMemo(() => composeEventHandlers(parentKeyDown, event => {
27
+ event.key === "Enter" && event.preventDefault();
28
+ }), [parentKeyDown]),
29
+ handlePress = useMemo(() => composeEventHandlers(props.onPress, event => {
30
+ setChecked(prevChecked => isIndeterminate(prevChecked) ? !0 : !prevChecked), isFormControl && "isPropagationStopped" in event && (hasConsumerStoppedPropagationRef.current = event.isPropagationStopped(), hasConsumerStoppedPropagationRef.current || event.stopPropagation());
31
+ }), [isFormControl]);
25
32
  return {
26
33
  bubbleInput: isWeb && isFormControl ? /* @__PURE__ */jsx(BubbleInput, {
27
34
  isHidden: !0,
@@ -45,13 +52,9 @@ function useCheckbox(props, [checked, setChecked], ref) {
45
52
  "data-state": getState(checked),
46
53
  "data-disabled": disabled ? "" : void 0,
47
54
  disabled,
48
- onKeyDown: composeEventHandlers(props.onKeyDown, event => {
49
- event.key === "Enter" && event.preventDefault();
50
- })
55
+ onKeyDown: handleKeyDown
51
56
  }),
52
- onPress: composeEventHandlers(props.onPress, event => {
53
- setChecked(prevChecked => isIndeterminate(prevChecked) ? !0 : !prevChecked), isFormControl && "isPropagationStopped" in event && (hasConsumerStoppedPropagationRef.current = event.isPropagationStopped(), hasConsumerStoppedPropagationRef.current || event.stopPropagation());
54
- })
57
+ onPress: handlePress
55
58
  }
56
59
  };
57
60
  }
@@ -1 +1 @@
1
- {"version":3,"names":["useComposedRefs","isWeb","composeEventHandlers","useLabelContext","React","BubbleInput","getState","isIndeterminate","jsx","useCheckbox","props","checked","setChecked","ref","labelledBy","ariaLabelledby","name","required","disabled","value","onCheckedChange","checkboxProps","button","setButton","useState","composedRefs","node","hasConsumerStoppedPropagationRef","useRef","isFormControl","closest","labelId","bubbleInput","isHidden","control","bubbles","current","checkboxRef","role","type","onKeyDown","event","key","preventDefault","onPress","prevChecked","isPropagationStopped","stopPropagation"],"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,MAAW;AAGlB,SAASC,WAAA,QAAmB;AAC5B,SAASC,QAAA,EAAUC,eAAA,QAAuB;AAsDlC,SAAAC,GAAA;AA7BD,SAASC,YACdC,KAAA,EACA,CAACC,OAAA,EAASC,UAAU,GAIpBC,GAAA,EACA;EACA,MAAM;MACJC,UAAA,EAAYC,cAAA;MACZC,IAAA;MACAC,QAAA;MACAC,QAAA;MACAC,KAAA,GAAQ;MACRC,eAAA;MACA,GAAGC;IACL,IAAIX,KAAA;IACE,CAACY,MAAA,EAAQC,SAAS,IAAInB,KAAA,CAAMoB,QAAA,CAAmC,IAAI;IACnEC,YAAA,GAAezB,eAAA,CAAgBa,GAAA,EAAMa,IAAA,IAASH,SAAA,CAAUG,IAAW,CAAC;IACpEC,gCAAA,GAAmCvB,KAAA,CAAMwB,MAAA,CAAO,EAAK;IAErDC,aAAA,GAAgB5B,KAAA,GAASqB,MAAA,GAAS,EAAQA,MAAA,CAAOQ,OAAA,CAAQ,MAAM,IAAK,KAAQ;IAE5EC,OAAA,GAAU5B,eAAA,CAAgBmB,MAAM;IAChCR,UAAA,GAAaC,cAAA,IAAkBgB,OAAA;EAErC,OAAO;IACLC,WAAA,EACE/B,KAAA,IAAS4B,aAAA,GACP,eAAArB,GAAA,CAACH,WAAA;MACC4B,QAAA,EAAQ;MACRC,OAAA,EAASZ,MAAA;MACTa,OAAA,EAAS,CAACR,gCAAA,CAAiCS,OAAA;MAC3CpB,IAAA;MACAG,KAAA;MACAR,OAAA;MACAM,QAAA;MACAC;IAAA,CACF,IACE;IACNmB,WAAA,EAAaZ,YAAA;IACbJ,aAAA,EAAe;MACbiB,IAAA,EAAM;MACN,mBAAmBxB,UAAA;MACnB,gBAAgBP,eAAA,CAAgBI,OAAO,IAAI,UAAUA,OAAA;MACrD,GAAGU,aAAA;MACH,IAAIpB,KAAA,IAAS;QACXsC,IAAA,EAAM;QACNpB,KAAA;QACA,cAAcb,QAAA,CAASK,OAAO;QAC9B,iBAAiBO,QAAA,GAAW,KAAK;QACjCA,QAAA;QACAsB,SAAA,EAAWtC,oBAAA,CACRQ,KAAA,CAA6C8B,SAAA,EAC7CC,KAAA,IAAU;UAELA,KAAA,CAAMC,GAAA,KAAQ,WAASD,KAAA,CAAME,cAAA,CAAe;QAClD,CACF;MACF;MACAC,OAAA,EAAS1C,oBAAA,CACPQ,KAAA,CAAMkC,OAAA,EACLH,KAAA,IAAgC;QAC/B7B,UAAA,CAAYiC,WAAA,IACVtC,eAAA,CAAgBsC,WAAW,IAAI,KAAO,CAACA,WACzC,GACIhB,aAAA,IAAiB,0BAA0BY,KAAA,KAC7Cd,gCAAA,CAAiCS,OAAA,GAAUK,KAAA,CAAMK,oBAAA,CAAqB,GAIjEnB,gCAAA,CAAiCS,OAAA,IAASK,KAAA,CAAMM,eAAA,CAAgB;MAEzE,CACF;IACF;EACF;AACF","ignoreList":[]}
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","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,IAAsBC,OAAA,QAAe;AAG5C,SAASC,WAAA,QAAmB;AAC5B,SAASC,QAAA,EAAUC,eAAA,QAAuB;AAgFlC,SAAAC,GAAA;AAvDD,SAASC,YACdC,KAAA,EACA,CAACC,OAAA,EAASC,UAAU,GAIpBC,GAAA,EACA;EACA,MAAM;MACJC,UAAA,EAAYC,cAAA;MACZC,IAAA;MACAC,QAAA;MACAC,QAAA;MACAC,KAAA,GAAQ;MACRC,eAAA;MACA,GAAGC;IACL,IAAIX,KAAA;IACE,CAACY,MAAA,EAAQC,SAAS,IAAIpB,KAAA,CAAMqB,QAAA,CAAmC,IAAI;IACnEC,YAAA,GAAe1B,eAAA,CAAgBc,GAAA,EAAKU,SAAgB;IACpDG,gCAAA,GAAmCvB,KAAA,CAAMwB,MAAA,CAAO,EAAK;IAErDC,aAAA,GAAgB5B,KAAA,GAASsB,MAAA,GAAS,EAAQA,MAAA,CAAOO,OAAA,CAAQ,MAAM,IAAK,KAAQ;IAE5EC,OAAA,GAAU5B,eAAA,CAAgBoB,MAAM;IAChCR,UAAA,GAAaC,cAAA,IAAkBe,OAAA;IAE/BC,aAAA,GAAiBrB,KAAA,CAA6CsB,SAAA;IAE9DC,aAAA,GAAgB7B,OAAA,CACpB,MACEH,oBAAA,CAAqB8B,aAAA,EAAgBG,KAAA,IAAU;MAEzCA,KAAA,CAAMC,GAAA,KAAQ,WAASD,KAAA,CAAME,cAAA,CAAe;IAClD,CAAC,GACH,CAACL,aAAa,CAChB;IAEMM,WAAA,GAAcjC,OAAA,CAClB,MACEH,oBAAA,CAAqBS,KAAA,CAAM4B,OAAA,EAAiBJ,KAAA,IAAgC;MAC1EtB,UAAA,CAAY2B,WAAA,IAAiBhC,eAAA,CAAgBgC,WAAW,IAAI,KAAO,CAACA,WAAY,GAC5EX,aAAA,IAAiB,0BAA0BM,KAAA,KAC7CR,gCAAA,CAAiCc,OAAA,GAAUN,KAAA,CAAMO,oBAAA,CAAqB,GAIjEf,gCAAA,CAAiCc,OAAA,IAASN,KAAA,CAAMQ,eAAA,CAAgB;IAEzE,CAAC,GACH,CAACd,aAAa,CAChB;EAEA,OAAO;IACLe,WAAA,EACE3C,KAAA,IAAS4B,aAAA,GACP,eAAApB,GAAA,CAACH,WAAA;MACCuC,QAAA,EAAQ;MACRC,OAAA,EAASvB,MAAA;MACTwB,OAAA,EAAS,CAACpB,gCAAA,CAAiCc,OAAA;MAC3CxB,IAAA;MACAG,KAAA;MACAR,OAAA;MACAM,QAAA;MACAC;IAAA,CACF,IACE;IACN6B,WAAA,EAAatB,YAAA;IACbJ,aAAA,EAAe;MACb2B,IAAA,EAAM;MACN,mBAAmBlC,UAAA;MACnB,gBAAgBP,eAAA,CAAgBI,OAAO,IAAI,UAAUA,OAAA;MACrD,GAAGU,aAAA;MACH,IAAIrB,KAAA,IAAS;QACXiD,IAAA,EAAM;QACN9B,KAAA;QACA,cAAcb,QAAA,CAASK,OAAO;QAC9B,iBAAiBO,QAAA,GAAW,KAAK;QACjCA,QAAA;QACAc,SAAA,EAAWC;MACb;MACAK,OAAA,EAASD;IACX;EACF;AACF","ignoreList":[]}
@@ -3,13 +3,25 @@ import { useComposedRefs } from "@tamagui/compose-refs";
3
3
  import { isWeb } from "@tamagui/constants";
4
4
  import { composeEventHandlers } from "@tamagui/helpers";
5
5
  import { useLabelContext } from "@tamagui/label";
6
- import React from "react";
6
+ import React, { useMemo } from "react";
7
7
  import { BubbleInput } from "./BubbleInput";
8
8
  import { getState, isIndeterminate } from "./utils";
9
9
  function useCheckbox(props, param, ref) {
10
- var [checked, setChecked] = param, { labelledBy: ariaLabelledby, name, required, disabled, value = "on", onCheckedChange, ...checkboxProps } = props, [button, setButton] = React.useState(null), composedRefs = useComposedRefs(ref, function(node) {
11
- return setButton(node);
12
- }), hasConsumerStoppedPropagationRef = React.useRef(!1), isFormControl = isWeb ? button ? !!button.closest("form") : !0 : !1, labelId = useLabelContext(button), labelledBy = ariaLabelledby || labelId;
10
+ var [checked, setChecked] = param, { labelledBy: ariaLabelledby, name, required, disabled, value = "on", onCheckedChange, ...checkboxProps } = props, [button, setButton] = React.useState(null), composedRefs = useComposedRefs(ref, setButton), hasConsumerStoppedPropagationRef = React.useRef(!1), isFormControl = isWeb ? button ? !!button.closest("form") : !0 : !1, labelId = useLabelContext(button), labelledBy = ariaLabelledby || labelId, parentKeyDown = props.onKeyDown, handleKeyDown = useMemo(function() {
11
+ return composeEventHandlers(parentKeyDown, function(event) {
12
+ event.key === "Enter" && event.preventDefault();
13
+ });
14
+ }, [
15
+ parentKeyDown
16
+ ]), handlePress = useMemo(function() {
17
+ return composeEventHandlers(props.onPress, function(event) {
18
+ setChecked(function(prevChecked) {
19
+ return isIndeterminate(prevChecked) ? !0 : !prevChecked;
20
+ }), isFormControl && "isPropagationStopped" in event && (hasConsumerStoppedPropagationRef.current = event.isPropagationStopped(), hasConsumerStoppedPropagationRef.current || event.stopPropagation());
21
+ });
22
+ }, [
23
+ isFormControl
24
+ ]);
13
25
  return {
14
26
  bubbleInput: isWeb && isFormControl ? /* @__PURE__ */ _jsx(BubbleInput, {
15
27
  isHidden: !0,
@@ -33,15 +45,9 @@ function useCheckbox(props, param, ref) {
33
45
  "data-state": getState(checked),
34
46
  "data-disabled": disabled ? "" : void 0,
35
47
  disabled,
36
- onKeyDown: composeEventHandlers(props.onKeyDown, function(event) {
37
- event.key === "Enter" && event.preventDefault();
38
- })
48
+ onKeyDown: handleKeyDown
39
49
  },
40
- onPress: composeEventHandlers(props.onPress, function(event) {
41
- setChecked(function(prevChecked) {
42
- return isIndeterminate(prevChecked) ? !0 : !prevChecked;
43
- }), isFormControl && "isPropagationStopped" in event && (hasConsumerStoppedPropagationRef.current = event.isPropagationStopped(), hasConsumerStoppedPropagationRef.current || event.stopPropagation());
44
- })
50
+ onPress: handlePress
45
51
  }
46
52
  };
47
53
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Users/n8/tamagui/code/ui/checkbox-headless/src/useCheckbox.tsx"],
4
- "mappings": ";AAAA,SAASA,uBAAuB;AAChC,SAASC,aAAa;AAEtB,SAASC,4BAA4B;AACrC,SAASC,uBAAuB;AAChC,OAAOC,WAAW;AAGlB,SAASC,mBAAmB;AAC5B,SAASC,UAAUC,uBAAuB;AAyBnC,SAASC,YACdC,OACA,OAIAC,KAAiB;MAJjB,CAACC,SAASC,UAAAA,IAAV,OAMM,EACJC,YAAYC,gBACZC,MACAC,UACAC,UACAC,QAAQ,MACRC,iBACA,GAAGC,cAAAA,IACDX,OACE,CAACY,QAAQC,SAAAA,IAAalB,MAAMmB,SAAmC,IAAA,GAC/DC,eAAexB,gBAAgBU,KAAK,SAACe,MAAAA;WAASH,UAAUG,IAAAA;MACxDC,mCAAmCtB,MAAMuB,OAAO,EAAA,GAEhDC,gBAAgB3B,QAASoB,SAASQ,EAAQR,OAAOS,QAAQ,MAAA,IAAW,KAAQ,IAE5EC,UAAU5B,gBAAgBkB,MAAAA,GAC1BR,aAAaC,kBAAkBiB;AAErC,SAAO;IACLC,aACE/B,SAAS2B,gBACP,qBAACvB,aAAAA;MACC4B,UAAQ;MACRC,SAASb;MACTc,SAAS,CAACT,iCAAiCU;MAC3CrB;MACAG;MACAP;MACAK;MACAC;SAEA;IACNoB,aAAab;IACbJ,eAAe;MACbkB,MAAM;MACN,mBAAmBzB;MACnB,gBAAgBN,gBAAgBI,OAAAA,IAAW,UAAUA;MACrD,GAAGS;MACH,GAAInB,SAAS;QACXsC,MAAM;QACNrB;QACA,cAAcZ,SAASK,OAAAA;QACvB,iBAAiBM,WAAW,KAAKuB;QACjCvB;QACAwB,WAAWvC,qBACRO,MAA6CgC,WAC9C,SAACC,OAAAA;AAEC,UAAIA,MAAMC,QAAQ,WAASD,MAAME,eAAc;QACjD,CAAA;MAEJ;MACAC,SAAS3C,qBACPO,MAAMoC,SACN,SAACH,OAAAA;AACC9B,mBAAW,SAACkC,aAAAA;iBACVvC,gBAAgBuC,WAAAA,IAAe,KAAO,CAACA;YAErClB,iBAAiB,0BAA0Bc,UAC7ChB,iCAAiCU,UAAUM,MAAMK,qBAAoB,GAIhErB,iCAAiCU,WAASM,MAAMM,gBAAe;MAExE,CAAA;IAEJ;EACF;AACF;",
5
- "names": ["useComposedRefs", "isWeb", "composeEventHandlers", "useLabelContext", "React", "BubbleInput", "getState", "isIndeterminate", "useCheckbox", "props", "ref", "checked", "setChecked", "labelledBy", "ariaLabelledby", "name", "required", "disabled", "value", "onCheckedChange", "checkboxProps", "button", "setButton", "useState", "composedRefs", "node", "hasConsumerStoppedPropagationRef", "useRef", "isFormControl", "Boolean", "closest", "labelId", "bubbleInput", "isHidden", "control", "bubbles", "current", "checkboxRef", "role", "type", "undefined", "onKeyDown", "event", "key", "preventDefault", "onPress", "prevChecked", "isPropagationStopped", "stopPropagation"]
4
+ "mappings": ";AAAA,SAASA,uBAAuB;AAChC,SAASC,aAAa;AAEtB,SAASC,4BAA4B;AACrC,SAASC,uBAAuB;AAChC,OAAOC,SAAsBC,eAAe;AAG5C,SAASC,mBAAmB;AAC5B,SAASC,UAAUC,uBAAuB;AAyBnC,SAASC,YACdC,OACA,OAIAC,KAAiB;MAJjB,CAACC,SAASC,UAAAA,IAAV,OAMM,EACJC,YAAYC,gBACZC,MACAC,UACAC,UACAC,QAAQ,MACRC,iBACA,GAAGC,cAAAA,IACDX,OACE,CAACY,QAAQC,SAAAA,IAAanB,MAAMoB,SAAmC,IAAA,GAC/DC,eAAezB,gBAAgBW,KAAKY,SAAAA,GACpCG,mCAAmCtB,MAAMuB,OAAO,EAAA,GAEhDC,gBAAgB3B,QAASqB,SAASO,EAAQP,OAAOQ,QAAQ,MAAA,IAAW,KAAQ,IAE5EC,UAAU5B,gBAAgBmB,MAAAA,GAC1BR,aAAaC,kBAAkBgB,SAE/BC,gBAAiBtB,MAA6CuB,WAE9DC,gBAAgB7B,QACpB,WAAA;WACEH,qBAAqB8B,eAAe,SAACG,OAAAA;AAEnC,MAAIA,MAAMC,QAAQ,WAASD,MAAME,eAAc;IACjD,CAAA;KACF;IAACL;GAAc,GAGXM,cAAcjC,QAClB,WAAA;WACEH,qBAAqBQ,MAAM6B,SAAgB,SAACJ,OAAAA;AAC1CtB,iBAAW,SAAC2B,aAAAA;eAAiBhC,gBAAgBgC,WAAAA,IAAe,KAAO,CAACA;UAChEZ,iBAAiB,0BAA0BO,UAC7CT,iCAAiCe,UAAUN,MAAMO,qBAAoB,GAIhEhB,iCAAiCe,WAASN,MAAMQ,gBAAe;IAExE,CAAA;KACF;IAACf;GAAc;AAGjB,SAAO;IACLgB,aACE3C,SAAS2B,gBACP,qBAACtB,aAAAA;MACCuC,UAAQ;MACRC,SAASxB;MACTyB,SAAS,CAACrB,iCAAiCe;MAC3CzB;MACAG;MACAP;MACAK;MACAC;SAEA;IACN8B,aAAavB;IACbJ,eAAe;MACb4B,MAAM;MACN,mBAAmBnC;MACnB,gBAAgBN,gBAAgBI,OAAAA,IAAW,UAAUA;MACrD,GAAGS;MACH,GAAIpB,SAAS;QACXiD,MAAM;QACN/B;QACA,cAAcZ,SAASK,OAAAA;QACvB,iBAAiBM,WAAW,KAAKiC;QACjCjC;QACAe,WAAWC;MACb;MACAK,SAASD;IACX;EACF;AACF;",
5
+ "names": ["useComposedRefs", "isWeb", "composeEventHandlers", "useLabelContext", "React", "useMemo", "BubbleInput", "getState", "isIndeterminate", "useCheckbox", "props", "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", "undefined"]
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/checkbox-headless",
3
- "version": "1.118.0",
3
+ "version": "1.118.2",
4
4
  "sideEffects": [
5
5
  "*.css"
6
6
  ],
@@ -23,14 +23,14 @@
23
23
  "clean:build": "tamagui-build clean:build"
24
24
  },
25
25
  "dependencies": {
26
- "@tamagui/compose-refs": "1.118.0",
27
- "@tamagui/constants": "1.118.0",
28
- "@tamagui/create-context": "1.118.0",
29
- "@tamagui/focusable": "1.118.0",
30
- "@tamagui/helpers": "1.118.0",
31
- "@tamagui/label": "1.118.0",
32
- "@tamagui/use-controllable-state": "1.118.0",
33
- "@tamagui/use-previous": "1.118.0"
26
+ "@tamagui/compose-refs": "1.118.2",
27
+ "@tamagui/constants": "1.118.2",
28
+ "@tamagui/create-context": "1.118.2",
29
+ "@tamagui/focusable": "1.118.2",
30
+ "@tamagui/helpers": "1.118.2",
31
+ "@tamagui/label": "1.118.2",
32
+ "@tamagui/use-controllable-state": "1.118.2",
33
+ "@tamagui/use-previous": "1.118.2"
34
34
  },
35
35
  "exports": {
36
36
  "./package.json": "./package.json",
@@ -46,7 +46,7 @@
46
46
  }
47
47
  },
48
48
  "devDependencies": {
49
- "@tamagui/build": "1.118.0",
49
+ "@tamagui/build": "1.118.2",
50
50
  "react": "*"
51
51
  },
52
52
  "publishConfig": {
@@ -3,7 +3,7 @@ import { isWeb } from '@tamagui/constants'
3
3
  import type { GestureReponderEvent } from '@tamagui/core'
4
4
  import { composeEventHandlers } from '@tamagui/helpers'
5
5
  import { useLabelContext } from '@tamagui/label'
6
- import React from 'react'
6
+ import React, { useCallback, useMemo } from 'react'
7
7
  import type { PressableProps, View, ViewProps } from 'react-native'
8
8
 
9
9
  import { BubbleInput } from './BubbleInput'
@@ -50,7 +50,7 @@ export function useCheckbox<R extends View, P extends CheckboxProps>(
50
50
  ...checkboxProps
51
51
  } = props
52
52
  const [button, setButton] = React.useState<HTMLButtonElement | null>(null)
53
- const composedRefs = useComposedRefs(ref, (node) => setButton(node as any))
53
+ const composedRefs = useComposedRefs(ref, setButton as any)
54
54
  const hasConsumerStoppedPropagationRef = React.useRef(false)
55
55
  // We set this to true by default so that events bubble to forms without JS (SSR)
56
56
  const isFormControl = isWeb ? (button ? Boolean(button.closest('form')) : true) : false
@@ -58,6 +58,32 @@ export function useCheckbox<R extends View, P extends CheckboxProps>(
58
58
  const labelId = useLabelContext(button)
59
59
  const labelledBy = ariaLabelledby || labelId
60
60
 
61
+ const parentKeyDown = (props as React.HTMLProps<HTMLButtonElement>).onKeyDown
62
+
63
+ const handleKeyDown = useMemo(
64
+ () =>
65
+ composeEventHandlers(parentKeyDown, (event) => {
66
+ // According to WAI ARIA, Checkboxes don't activate on enter keypress
67
+ if (event.key === 'Enter') event.preventDefault()
68
+ }),
69
+ [parentKeyDown]
70
+ )
71
+
72
+ const handlePress = useMemo(
73
+ () =>
74
+ composeEventHandlers(props.onPress as any, (event: GestureReponderEvent) => {
75
+ setChecked((prevChecked) => (isIndeterminate(prevChecked) ? true : !prevChecked))
76
+ if (isFormControl && 'isPropagationStopped' in event) {
77
+ hasConsumerStoppedPropagationRef.current = event.isPropagationStopped()
78
+ // if checkbox is in a form, stop propagation from the button so that we only propagate
79
+ // one click event (from the input). We propagate changes from an input so that native
80
+ // form validation works and form events reflect checkbox updates.
81
+ if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation()
82
+ }
83
+ }),
84
+ [isFormControl]
85
+ )
86
+
61
87
  return {
62
88
  bubbleInput:
63
89
  isWeb && isFormControl ? (
@@ -84,29 +110,9 @@ export function useCheckbox<R extends View, P extends CheckboxProps>(
84
110
  'data-state': getState(checked),
85
111
  'data-disabled': disabled ? '' : undefined,
86
112
  disabled: disabled,
87
- onKeyDown: composeEventHandlers(
88
- (props as React.HTMLProps<HTMLButtonElement>).onKeyDown,
89
- (event) => {
90
- // According to WAI ARIA, Checkboxes don't activate on enter keypress
91
- if (event.key === 'Enter') event.preventDefault()
92
- }
93
- ),
113
+ onKeyDown: handleKeyDown,
94
114
  }),
95
- onPress: composeEventHandlers(
96
- props.onPress as any,
97
- (event: GestureReponderEvent) => {
98
- setChecked((prevChecked) =>
99
- isIndeterminate(prevChecked) ? true : !prevChecked
100
- )
101
- if (isFormControl && 'isPropagationStopped' in event) {
102
- hasConsumerStoppedPropagationRef.current = event.isPropagationStopped()
103
- // if checkbox is in a form, stop propagation from the button so that we only propagate
104
- // one click event (from the input). We propagate changes from an input so that native
105
- // form validation works and form events reflect checkbox updates.
106
- if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation()
107
- }
108
- }
109
- ),
115
+ onPress: handlePress,
110
116
  } satisfies CheckboxBaseProps,
111
117
  }
112
118
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useCheckbox.d.ts","sourceRoot":"","sources":["../src/useCheckbox.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAKnE,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,eAAe,CAAA;AAEpD,KAAK,iBAAiB,GAAG,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAA;AAEpE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,cAAc,CAAC,EAAE,YAAY,CAAA;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;OAGG;IACH,eAAe,CAAC,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAA;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAAG,kBAAkB,CAAA;AAElE,wBAAgB,WAAW,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,aAAa,EACjE,KAAK,EAAE,CAAC,EACR,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;IACrB,YAAY;IACZ,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;CACnD,EACD,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;EAuElB"}
1
+ {"version":3,"file":"useCheckbox.d.ts","sourceRoot":"","sources":["../src/useCheckbox.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA+B,MAAM,OAAO,CAAA;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAKnE,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,eAAe,CAAA;AAEpD,KAAK,iBAAiB,GAAG,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAA;AAEpE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,cAAc,CAAC,EAAE,YAAY,CAAA;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;OAGG;IACH,eAAe,CAAC,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAA;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAAG,kBAAkB,CAAA;AAElE,wBAAgB,WAAW,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,aAAa,EACjE,KAAK,EAAE,CAAC,EACR,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;IACrB,YAAY;IACZ,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;CACnD,EACD,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;EA6ElB"}