@hanzogui/checkbox-headless 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/cjs/BubbleInput.cjs +82 -0
- package/dist/cjs/BubbleInput.native.js +86 -0
- package/dist/cjs/BubbleInput.native.js.map +1 -0
- package/dist/cjs/index.cjs +19 -0
- package/dist/cjs/index.native.js +22 -0
- package/dist/cjs/index.native.js.map +1 -0
- package/dist/cjs/useCheckbox.cjs +96 -0
- package/dist/cjs/useCheckbox.native.js +106 -0
- package/dist/cjs/useCheckbox.native.js.map +1 -0
- package/dist/cjs/utils.cjs +32 -0
- package/dist/cjs/utils.native.js +35 -0
- package/dist/cjs/utils.native.js.map +1 -0
- package/dist/esm/BubbleInput.mjs +48 -0
- package/dist/esm/BubbleInput.mjs.map +1 -0
- package/dist/esm/BubbleInput.native.js +49 -0
- package/dist/esm/BubbleInput.native.js.map +1 -0
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/index.mjs +3 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/index.native.js +3 -0
- package/dist/esm/index.native.js.map +1 -0
- package/dist/esm/useCheckbox.mjs +62 -0
- package/dist/esm/useCheckbox.mjs.map +1 -0
- package/dist/esm/useCheckbox.native.js +69 -0
- package/dist/esm/useCheckbox.native.js.map +1 -0
- package/dist/esm/utils.mjs +8 -0
- package/dist/esm/utils.mjs.map +1 -0
- package/dist/esm/utils.native.js +8 -0
- package/dist/esm/utils.native.js.map +1 -0
- package/dist/jsx/BubbleInput.mjs +48 -0
- package/dist/jsx/BubbleInput.mjs.map +1 -0
- package/dist/jsx/BubbleInput.native.js +86 -0
- package/dist/jsx/BubbleInput.native.js.map +1 -0
- package/dist/jsx/index.js +3 -0
- package/dist/jsx/index.js.map +1 -0
- package/dist/jsx/index.mjs +3 -0
- package/dist/jsx/index.mjs.map +1 -0
- package/dist/jsx/index.native.js +22 -0
- package/dist/jsx/index.native.js.map +1 -0
- package/dist/jsx/useCheckbox.mjs +62 -0
- package/dist/jsx/useCheckbox.mjs.map +1 -0
- package/dist/jsx/useCheckbox.native.js +106 -0
- package/dist/jsx/useCheckbox.native.js.map +1 -0
- package/dist/jsx/utils.mjs +8 -0
- package/dist/jsx/utils.mjs.map +1 -0
- package/dist/jsx/utils.native.js +35 -0
- package/dist/jsx/utils.native.js.map +1 -0
- package/package.json +60 -0
- package/src/BubbleInput.tsx +64 -0
- package/src/index.ts +2 -0
- package/src/useCheckbox.tsx +119 -0
- package/src/utils.tsx +9 -0
- package/types/BubbleInput.d.ts +10 -0
- package/types/index.d.ts +3 -0
- package/types/useCheckbox.d.ts +43 -0
- package/types/utils.d.ts +4 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc","ignoreList":[]}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { useComposedRefs } from "@hanzo/gui-compose-refs";
|
|
2
|
+
import { isWeb } from "@hanzo/gui-constants";
|
|
3
|
+
import { composeEventHandlers } from "@hanzo/gui-helpers";
|
|
4
|
+
import { useLabelContext } from "@hanzo/gui-label";
|
|
5
|
+
import React, { useMemo } from "react";
|
|
6
|
+
import { BubbleInput } from "./BubbleInput.mjs";
|
|
7
|
+
import { getState, isIndeterminate } from "./utils.mjs";
|
|
8
|
+
import { jsx } from "react/jsx-runtime";
|
|
9
|
+
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
|
+
[button, setButton] = React.useState(null),
|
|
20
|
+
composedRefs = useComposedRefs(ref, setButton),
|
|
21
|
+
hasConsumerStoppedPropagationRef = React.useRef(!1),
|
|
22
|
+
isFormControl = isWeb ? button ? !!button.closest("form") : !0 : !1,
|
|
23
|
+
labelId = useLabelContext(button),
|
|
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]);
|
|
32
|
+
return {
|
|
33
|
+
bubbleInput: isWeb && isFormControl ? /* @__PURE__ */jsx(BubbleInput, {
|
|
34
|
+
isHidden: !0,
|
|
35
|
+
control: button,
|
|
36
|
+
bubbles: !hasConsumerStoppedPropagationRef.current,
|
|
37
|
+
name,
|
|
38
|
+
value,
|
|
39
|
+
checked,
|
|
40
|
+
required,
|
|
41
|
+
disabled
|
|
42
|
+
}) : null,
|
|
43
|
+
checkboxRef: composedRefs,
|
|
44
|
+
checkboxProps: {
|
|
45
|
+
role: "checkbox",
|
|
46
|
+
"aria-labelledby": labelledBy,
|
|
47
|
+
"aria-checked": isIndeterminate(checked) ? "mixed" : checked,
|
|
48
|
+
...checkboxProps,
|
|
49
|
+
...(isWeb && {
|
|
50
|
+
type: "button",
|
|
51
|
+
value,
|
|
52
|
+
"data-state": getState(checked),
|
|
53
|
+
"data-disabled": disabled ? "" : void 0,
|
|
54
|
+
disabled,
|
|
55
|
+
onKeyDown: disabled ? void 0 : handleKeyDown
|
|
56
|
+
}),
|
|
57
|
+
onPress: disabled ? void 0 : handlePress
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
export { useCheckbox };
|
|
62
|
+
//# sourceMappingURL=useCheckbox.mjs.map
|
|
@@ -0,0 +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","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;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,EAAWd,QAAA,GAAW,SAAYe;MACpC;MACAK,OAAA,EAASpB,QAAA,GAAW,SAAYmB;IAClC;EACF;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useComposedRefs } from "@hanzo/gui-compose-refs";
|
|
3
|
+
import { isWeb } from "@hanzo/gui-constants";
|
|
4
|
+
import { composeEventHandlers } from "@hanzo/gui-helpers";
|
|
5
|
+
import { useLabelContext } from "@hanzo/gui-label";
|
|
6
|
+
import React, { useMemo } from "react";
|
|
7
|
+
import { BubbleInput } from "./BubbleInput.native.js";
|
|
8
|
+
import { getState, isIndeterminate } from "./utils.native.js";
|
|
9
|
+
function useCheckbox(props, param, ref) {
|
|
10
|
+
var [checked, setChecked] = param,
|
|
11
|
+
{
|
|
12
|
+
labelledBy: ariaLabelledby,
|
|
13
|
+
name,
|
|
14
|
+
required,
|
|
15
|
+
disabled,
|
|
16
|
+
value = "on",
|
|
17
|
+
onCheckedChange,
|
|
18
|
+
...checkboxProps
|
|
19
|
+
} = props,
|
|
20
|
+
[button, setButton] = React.useState(null),
|
|
21
|
+
composedRefs = useComposedRefs(ref, setButton),
|
|
22
|
+
hasConsumerStoppedPropagationRef = React.useRef(!1),
|
|
23
|
+
isFormControl = isWeb ? button ? !!button.closest("form") : !0 : !1,
|
|
24
|
+
labelId = useLabelContext(button),
|
|
25
|
+
labelledBy = ariaLabelledby || labelId,
|
|
26
|
+
parentKeyDown = props.onKeyDown,
|
|
27
|
+
handleKeyDown = useMemo(function () {
|
|
28
|
+
return composeEventHandlers(parentKeyDown, function (event) {
|
|
29
|
+
event.key === "Enter" && event.preventDefault();
|
|
30
|
+
});
|
|
31
|
+
}, [parentKeyDown]),
|
|
32
|
+
handlePress = useMemo(function () {
|
|
33
|
+
return composeEventHandlers(props.onPress, function (event) {
|
|
34
|
+
setChecked(function (prevChecked) {
|
|
35
|
+
return isIndeterminate(prevChecked) ? !0 : !prevChecked;
|
|
36
|
+
}), isFormControl && "isPropagationStopped" in event && (hasConsumerStoppedPropagationRef.current = event.isPropagationStopped(), hasConsumerStoppedPropagationRef.current || event.stopPropagation());
|
|
37
|
+
});
|
|
38
|
+
}, [isFormControl]);
|
|
39
|
+
return {
|
|
40
|
+
bubbleInput: isWeb && isFormControl ? /* @__PURE__ */_jsx(BubbleInput, {
|
|
41
|
+
isHidden: !0,
|
|
42
|
+
control: button,
|
|
43
|
+
bubbles: !hasConsumerStoppedPropagationRef.current,
|
|
44
|
+
name,
|
|
45
|
+
value,
|
|
46
|
+
checked,
|
|
47
|
+
required,
|
|
48
|
+
disabled
|
|
49
|
+
}) : null,
|
|
50
|
+
checkboxRef: composedRefs,
|
|
51
|
+
checkboxProps: {
|
|
52
|
+
role: "checkbox",
|
|
53
|
+
"aria-labelledby": labelledBy,
|
|
54
|
+
"aria-checked": isIndeterminate(checked) ? "mixed" : checked,
|
|
55
|
+
...checkboxProps,
|
|
56
|
+
...(isWeb && {
|
|
57
|
+
type: "button",
|
|
58
|
+
value,
|
|
59
|
+
"data-state": getState(checked),
|
|
60
|
+
"data-disabled": disabled ? "" : void 0,
|
|
61
|
+
disabled,
|
|
62
|
+
onKeyDown: disabled ? void 0 : handleKeyDown
|
|
63
|
+
}),
|
|
64
|
+
onPress: disabled ? void 0 : handlePress
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
export { useCheckbox };
|
|
69
|
+
//# sourceMappingURL=useCheckbox.native.js.map
|
|
@@ -0,0 +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","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,8BAA4B;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;IAAA;MAAAI,UAAA,EAAAC,cAAA;MAAAC,IAAA;MAAAC,QAAA;MAAAC,QAAA;MAAAC,KAAA;MAAAC,eAAA;MAAA,GAAAC;IAAA,IAAAZ,KAAA;IAAA,CAAAa,MAAA,EAAAC,SAAA,IAAApB,KAAA,CAAAqB,QAAA;IAAAC,YAAA,GAAA1B,eAAA,CAAAY,GAAA,EAAAY,SAAA;IAAAG,gCAAA,GAAAvB,KAAA,CAAAwB,MAAA;IAAAC,aAAA,GAAA5B,KAAA,GAAAsB,MAAA,KAAAA,MAAA,CAAAO,OAAA;IAAAC,OAAA,GAAA5B,eAAA,CAAAoB,MAAA;IAAAR,UAAA,GAAAC,cAAA,IAAAe,OAAA;IAAAC,aAAA,GAAAtB,KAAA,CAAAuB,SAAA;IAAAC,aAAA,GAAA7B,OAAA;MACJ,OAAAH,oBAAY,CAAA8B,aAAA,YAAAG,KAAA;QACZA,KAAA,CAAAC,GAAA,gBAAAD,KAAA,CAAAE,cAAA;MACA;IAAA,GACA,CACAL,aAAQ,EACR;IAAAM,WAAA,GAAAjC,OAAA;MACA,OAAGH,oBAAA,CAAAQ,KAAA,CAAA6B,OAAA,YAAAJ,KAAA;QACDrB,UACG,WAAQ0B,WAAa;UAY1B,OACEhC,eAAA,CAAqBgC,WAAA,IAAe,CAAC,KAAAA,WAAU;QAEzC,IAAAX,aAAc,0BAAe,IAAeM,KAAA,KAAAR,gCAAA,CAAAc,OAAA,GAAAN,KAAA,CAAAO,oBAAA,IAAAf,gCAAA,CAAAc,OAAA,IAAAN,KAAA,CAAAQ,eAAA;MAClD,CAAC;IAAA,GACF,CACHd,aAEM,CAAc,CAClB;EAEI;IAQFe,WAAC,EAAA3C,KAAA,IAAA4B,aAAA,kBAAA9B,IAAA,CAAAO,WAAA;MACFuC,QAAA,IAAa;MAChBC,OAAA,EAAAvB,MAAA;MAEAwB,OAAO,GAAApB,gCAAA,CAAAc,OAAA;MACLxB,IAAA;MAEKG,KAAA;MAAAP,OAAA;MAAAK,QACC;MAAQC;IACC,KACT;IAA2C6B,WAC3C,EAAAtB,YAAA;IAAAJ,aACA;MAAA2B,IACA;MAAA,iBACA,EAAAlC,UAAA;MAAA,cACA,EAAAP,eAAA,CAAAK,OAAA,cAAAA,OAAA;MAAA,GAAAS,aAAA;MACF,IACErB,KAAA;QACNiD,IAAA,UAAa;QACb9B,KAAA;QACE,YAAM,EAAAb,QAAA,CAAAM,OAAA;QACN,iBAAmBM,QAAA;QACnBA,QAAA;QACAc,SAAG,EAAAd,QAAA,YAAAe;MACH;MAAaK,OACX,EAAMpB,QAAA,YAAAmB;IAAA;EACN;AAC8B;AACG,SACjC7B,WACA","ignoreList":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
function isIndeterminate(checked) {
|
|
2
|
+
return checked === "indeterminate";
|
|
3
|
+
}
|
|
4
|
+
function getState(checked) {
|
|
5
|
+
return isIndeterminate(checked) ? "indeterminate" : checked ? "checked" : "unchecked";
|
|
6
|
+
}
|
|
7
|
+
export { getState, isIndeterminate };
|
|
8
|
+
//# sourceMappingURL=utils.mjs.map
|
|
@@ -0,0 +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":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
function isIndeterminate(checked) {
|
|
2
|
+
return checked === "indeterminate";
|
|
3
|
+
}
|
|
4
|
+
function getState(checked) {
|
|
5
|
+
return isIndeterminate(checked) ? "indeterminate" : checked ? "checked" : "unchecked";
|
|
6
|
+
}
|
|
7
|
+
export { getState, isIndeterminate };
|
|
8
|
+
//# sourceMappingURL=utils.native.js.map
|
|
@@ -0,0 +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":[]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { usePrevious } from "@hanzo/gui-use-previous";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { isIndeterminate } from "./utils.mjs";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
const BubbleInput = props => {
|
|
6
|
+
const {
|
|
7
|
+
checked,
|
|
8
|
+
bubbles = !0,
|
|
9
|
+
control,
|
|
10
|
+
isHidden,
|
|
11
|
+
...inputProps
|
|
12
|
+
} = props,
|
|
13
|
+
ref = React.useRef(null),
|
|
14
|
+
prevChecked = usePrevious(checked);
|
|
15
|
+
return React.useEffect(() => {
|
|
16
|
+
const input = ref.current,
|
|
17
|
+
inputProto = window.HTMLInputElement.prototype,
|
|
18
|
+
setChecked = Object.getOwnPropertyDescriptor(inputProto, "checked").set;
|
|
19
|
+
if (prevChecked !== checked && setChecked) {
|
|
20
|
+
const event = new Event("click", {
|
|
21
|
+
bubbles
|
|
22
|
+
});
|
|
23
|
+
input.indeterminate = isIndeterminate(checked), setChecked.call(input, isIndeterminate(checked) ? !1 : checked), input.dispatchEvent(event);
|
|
24
|
+
}
|
|
25
|
+
}, [prevChecked, checked, bubbles]), /* @__PURE__ */jsx("input", {
|
|
26
|
+
type: "checkbox",
|
|
27
|
+
defaultChecked: isIndeterminate(checked) ? !1 : checked,
|
|
28
|
+
...inputProps,
|
|
29
|
+
tabIndex: -1,
|
|
30
|
+
ref,
|
|
31
|
+
"aria-hidden": isHidden,
|
|
32
|
+
style: {
|
|
33
|
+
...(isHidden ? {
|
|
34
|
+
// ...controlSize,
|
|
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
|
+
});
|
|
46
|
+
};
|
|
47
|
+
export { BubbleInput };
|
|
48
|
+
//# sourceMappingURL=BubbleInput.mjs.map
|
|
@@ -0,0 +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","setChecked","Object","getOwnPropertyDescriptor","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;MAAEC,OAAA;MAASC,OAAA,GAAU;MAAMC,OAAA;MAASC,QAAA;MAAU,GAAGC;IAAW,IAAIL,KAAA;IAChEM,GAAA,GAAMV,KAAA,CAAMW,MAAA,CAAyB,IAAI;IACzCC,WAAA,GAAcb,WAAA,CAAYM,OAAO;EAGvC,OAAAL,KAAA,CAAMa,SAAA,CAAU,MAAM;IACpB,MAAMC,KAAA,GAAQJ,GAAA,CAAIK,OAAA;MACZC,UAAA,GAAaC,MAAA,CAAOC,gBAAA,CAAiBC,SAAA;MAKrCC,UAAA,GAJaC,MAAA,CAAOC,wBAAA,CACxBN,UAAA,EACA,SACF,EAC8BO,GAAA;IAE9B,IAAIX,WAAA,KAAgBP,OAAA,IAAWe,UAAA,EAAY;MACzC,MAAMI,KAAA,GAAQ,IAAIC,KAAA,CAAM,SAAS;QAAEnB;MAAQ,CAAC;MAC5CQ,KAAA,CAAMY,aAAA,GAAgBzB,eAAA,CAAgBI,OAAO,GAC7Ce,UAAA,CAAWO,IAAA,CAAKb,KAAA,EAAOb,eAAA,CAAgBI,OAAO,IAAI,KAAQA,OAAO,GACjES,KAAA,CAAMc,aAAA,CAAcJ,KAAK;IAC3B;EACF,GAAG,CAACZ,WAAA,EAAaP,OAAA,EAASC,OAAO,CAAC,GAGhC,eAAAJ,GAAA,CAAC;IACC2B,IAAA,EAAK;IACLC,cAAA,EAAgB7B,eAAA,CAAgBI,OAAO,IAAI,KAAQA,OAAA;IAClD,GAAGI,UAAA;IACJsB,QAAA,EAAU;IACVrB,GAAA;IACA,eAAaF,QAAA;IACbwB,KAAA,EAAO;MACL,IAAIxB,QAAA,GACA;QAAA;QAEEyB,QAAA,EAAU;QACVC,aAAA,EAAe;QACfC,OAAA,EAAS;QACTC,MAAA,EAAQ;MACV,IACA;QACEC,UAAA,EAAY;QACZC,WAAA,EAAa;MACf;MAEJ,GAAGlC,KAAA,CAAM4B;IACX;EAAA,CACF;AAEJ","ignoreList":[]}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __create = Object.create;
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getProtoOf = Object.getPrototypeOf,
|
|
8
|
+
__hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
+
var __export = (target, all) => {
|
|
10
|
+
for (var name in all) __defProp(target, name, {
|
|
11
|
+
get: all[name],
|
|
12
|
+
enumerable: !0
|
|
13
|
+
});
|
|
14
|
+
},
|
|
15
|
+
__copyProps = (to, from, except, desc) => {
|
|
16
|
+
if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
|
|
17
|
+
get: () => from[key],
|
|
18
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
19
|
+
});
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
23
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
24
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
25
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
26
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
27
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
28
|
+
value: mod,
|
|
29
|
+
enumerable: !0
|
|
30
|
+
}) : target, mod)),
|
|
31
|
+
__toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
32
|
+
value: !0
|
|
33
|
+
}), mod);
|
|
34
|
+
var BubbleInput_exports = {};
|
|
35
|
+
__export(BubbleInput_exports, {
|
|
36
|
+
BubbleInput: () => BubbleInput
|
|
37
|
+
});
|
|
38
|
+
module.exports = __toCommonJS(BubbleInput_exports);
|
|
39
|
+
var import_jsx_runtime = require("react/jsx-runtime"),
|
|
40
|
+
import_gui_use_previous = require("@hanzo/gui-use-previous"),
|
|
41
|
+
React = __toESM(require("react"), 1),
|
|
42
|
+
import_utils = require("./utils.native.js"),
|
|
43
|
+
BubbleInput = function (props) {
|
|
44
|
+
var {
|
|
45
|
+
checked,
|
|
46
|
+
bubbles = !0,
|
|
47
|
+
control,
|
|
48
|
+
isHidden,
|
|
49
|
+
...inputProps
|
|
50
|
+
} = props,
|
|
51
|
+
ref = React.useRef(null),
|
|
52
|
+
prevChecked = (0, import_gui_use_previous.usePrevious)(checked);
|
|
53
|
+
return React.useEffect(function () {
|
|
54
|
+
var input = ref.current,
|
|
55
|
+
inputProto = window.HTMLInputElement.prototype,
|
|
56
|
+
descriptor = Object.getOwnPropertyDescriptor(inputProto, "checked"),
|
|
57
|
+
setChecked = descriptor.set;
|
|
58
|
+
if (prevChecked !== checked && setChecked) {
|
|
59
|
+
var event = new Event("click", {
|
|
60
|
+
bubbles
|
|
61
|
+
});
|
|
62
|
+
input.indeterminate = (0, import_utils.isIndeterminate)(checked), setChecked.call(input, (0, import_utils.isIndeterminate)(checked) ? !1 : checked), input.dispatchEvent(event);
|
|
63
|
+
}
|
|
64
|
+
}, [prevChecked, checked, bubbles]), /* @__PURE__ */(0, import_jsx_runtime.jsx)("input", {
|
|
65
|
+
type: "checkbox",
|
|
66
|
+
defaultChecked: (0, import_utils.isIndeterminate)(checked) ? !1 : checked,
|
|
67
|
+
...inputProps,
|
|
68
|
+
tabIndex: -1,
|
|
69
|
+
ref,
|
|
70
|
+
"aria-hidden": isHidden,
|
|
71
|
+
style: {
|
|
72
|
+
...(isHidden ? {
|
|
73
|
+
// ...controlSize,
|
|
74
|
+
position: "absolute",
|
|
75
|
+
pointerEvents: "none",
|
|
76
|
+
opacity: 0,
|
|
77
|
+
margin: 0
|
|
78
|
+
} : {
|
|
79
|
+
appearance: "auto",
|
|
80
|
+
accentColor: "var(--color6)"
|
|
81
|
+
}),
|
|
82
|
+
...props.style
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
};
|
|
86
|
+
//# sourceMappingURL=BubbleInput.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__create","Object","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toESM","mod","isNodeMode","__esModule","value","__toCommonJS","BubbleInput_exports","BubbleInput","module","exports","import_jsx_runtime","require","import_gui_use_previous","React","import_utils","props","checked","bubbles","control","isHidden","inputProps","ref","useRef","prevChecked","usePrevious","useEffect","input","current","inputProto","window","HTMLInputElement","descriptor","setChecked","set","event","Event","indeterminate","isIndeterminate","dispatchEvent"],"sources":["../../src/BubbleInput.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc","ignoreList":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __copyProps = (to, from, except, desc) => {
|
|
8
|
+
if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
|
|
9
|
+
get: () => from[key],
|
|
10
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
11
|
+
});
|
|
12
|
+
return to;
|
|
13
|
+
},
|
|
14
|
+
__reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
16
|
+
value: !0
|
|
17
|
+
}), mod);
|
|
18
|
+
var index_exports = {};
|
|
19
|
+
module.exports = __toCommonJS(index_exports);
|
|
20
|
+
__reExport(index_exports, require("./useCheckbox.native.js"), module.exports);
|
|
21
|
+
__reExport(index_exports, require("./utils.native.js"), module.exports);
|
|
22
|
+
//# sourceMappingURL=index.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__defProp","Object","defineProperty"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;AACA,IAAAA,SAAA,GAAcC,MAAA,CAAAC,cAAA","ignoreList":[]}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { useComposedRefs } from "@hanzo/gui-compose-refs";
|
|
2
|
+
import { isWeb } from "@hanzo/gui-constants";
|
|
3
|
+
import { composeEventHandlers } from "@hanzo/gui-helpers";
|
|
4
|
+
import { useLabelContext } from "@hanzo/gui-label";
|
|
5
|
+
import React, { useMemo } from "react";
|
|
6
|
+
import { BubbleInput } from "./BubbleInput.mjs";
|
|
7
|
+
import { getState, isIndeterminate } from "./utils.mjs";
|
|
8
|
+
import { jsx } from "react/jsx-runtime";
|
|
9
|
+
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
|
+
[button, setButton] = React.useState(null),
|
|
20
|
+
composedRefs = useComposedRefs(ref, setButton),
|
|
21
|
+
hasConsumerStoppedPropagationRef = React.useRef(!1),
|
|
22
|
+
isFormControl = isWeb ? button ? !!button.closest("form") : !0 : !1,
|
|
23
|
+
labelId = useLabelContext(button),
|
|
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]);
|
|
32
|
+
return {
|
|
33
|
+
bubbleInput: isWeb && isFormControl ? /* @__PURE__ */jsx(BubbleInput, {
|
|
34
|
+
isHidden: !0,
|
|
35
|
+
control: button,
|
|
36
|
+
bubbles: !hasConsumerStoppedPropagationRef.current,
|
|
37
|
+
name,
|
|
38
|
+
value,
|
|
39
|
+
checked,
|
|
40
|
+
required,
|
|
41
|
+
disabled
|
|
42
|
+
}) : null,
|
|
43
|
+
checkboxRef: composedRefs,
|
|
44
|
+
checkboxProps: {
|
|
45
|
+
role: "checkbox",
|
|
46
|
+
"aria-labelledby": labelledBy,
|
|
47
|
+
"aria-checked": isIndeterminate(checked) ? "mixed" : checked,
|
|
48
|
+
...checkboxProps,
|
|
49
|
+
...(isWeb && {
|
|
50
|
+
type: "button",
|
|
51
|
+
value,
|
|
52
|
+
"data-state": getState(checked),
|
|
53
|
+
"data-disabled": disabled ? "" : void 0,
|
|
54
|
+
disabled,
|
|
55
|
+
onKeyDown: disabled ? void 0 : handleKeyDown
|
|
56
|
+
}),
|
|
57
|
+
onPress: disabled ? void 0 : handlePress
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
export { useCheckbox };
|
|
62
|
+
//# sourceMappingURL=useCheckbox.mjs.map
|
|
@@ -0,0 +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","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;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,EAAWd,QAAA,GAAW,SAAYe;MACpC;MACAK,OAAA,EAASpB,QAAA,GAAW,SAAYmB;IAClC;EACF;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __create = Object.create;
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getProtoOf = Object.getPrototypeOf,
|
|
8
|
+
__hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
+
var __export = (target, all) => {
|
|
10
|
+
for (var name in all) __defProp(target, name, {
|
|
11
|
+
get: all[name],
|
|
12
|
+
enumerable: !0
|
|
13
|
+
});
|
|
14
|
+
},
|
|
15
|
+
__copyProps = (to, from, except, desc) => {
|
|
16
|
+
if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
|
|
17
|
+
get: () => from[key],
|
|
18
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
19
|
+
});
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
23
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
24
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
25
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
26
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
27
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
28
|
+
value: mod,
|
|
29
|
+
enumerable: !0
|
|
30
|
+
}) : target, mod)),
|
|
31
|
+
__toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
32
|
+
value: !0
|
|
33
|
+
}), mod);
|
|
34
|
+
var useCheckbox_exports = {};
|
|
35
|
+
__export(useCheckbox_exports, {
|
|
36
|
+
useCheckbox: () => useCheckbox
|
|
37
|
+
});
|
|
38
|
+
module.exports = __toCommonJS(useCheckbox_exports);
|
|
39
|
+
var import_jsx_runtime = require("react/jsx-runtime"),
|
|
40
|
+
import_gui_compose_refs = require("@hanzo/gui-compose-refs"),
|
|
41
|
+
import_gui_constants = require("@hanzo/gui-constants"),
|
|
42
|
+
import_gui_helpers = require("@hanzo/gui-helpers"),
|
|
43
|
+
import_gui_label = require("@hanzo/gui-label"),
|
|
44
|
+
import_react = __toESM(require("react"), 1),
|
|
45
|
+
import_BubbleInput = require("./BubbleInput.native.js"),
|
|
46
|
+
import_utils = require("./utils.native.js");
|
|
47
|
+
function useCheckbox(props, param, ref) {
|
|
48
|
+
var [checked, setChecked] = param,
|
|
49
|
+
{
|
|
50
|
+
labelledBy: ariaLabelledby,
|
|
51
|
+
name,
|
|
52
|
+
required,
|
|
53
|
+
disabled,
|
|
54
|
+
value = "on",
|
|
55
|
+
onCheckedChange,
|
|
56
|
+
...checkboxProps
|
|
57
|
+
} = props,
|
|
58
|
+
[button, setButton] = import_react.default.useState(null),
|
|
59
|
+
composedRefs = (0, import_gui_compose_refs.useComposedRefs)(ref, setButton),
|
|
60
|
+
hasConsumerStoppedPropagationRef = import_react.default.useRef(!1),
|
|
61
|
+
isFormControl = import_gui_constants.isWeb ? button ? !!button.closest("form") : !0 : !1,
|
|
62
|
+
labelId = (0, import_gui_label.useLabelContext)(button),
|
|
63
|
+
labelledBy = ariaLabelledby || labelId,
|
|
64
|
+
parentKeyDown = props.onKeyDown,
|
|
65
|
+
handleKeyDown = (0, import_react.useMemo)(function () {
|
|
66
|
+
return (0, import_gui_helpers.composeEventHandlers)(parentKeyDown, function (event) {
|
|
67
|
+
event.key === "Enter" && event.preventDefault();
|
|
68
|
+
});
|
|
69
|
+
}, [parentKeyDown]),
|
|
70
|
+
handlePress = (0, import_react.useMemo)(function () {
|
|
71
|
+
return (0, import_gui_helpers.composeEventHandlers)(props.onPress, function (event) {
|
|
72
|
+
setChecked(function (prevChecked) {
|
|
73
|
+
return (0, import_utils.isIndeterminate)(prevChecked) ? !0 : !prevChecked;
|
|
74
|
+
}), isFormControl && "isPropagationStopped" in event && (hasConsumerStoppedPropagationRef.current = event.isPropagationStopped(), hasConsumerStoppedPropagationRef.current || event.stopPropagation());
|
|
75
|
+
});
|
|
76
|
+
}, [isFormControl]);
|
|
77
|
+
return {
|
|
78
|
+
bubbleInput: import_gui_constants.isWeb && isFormControl ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_BubbleInput.BubbleInput, {
|
|
79
|
+
isHidden: !0,
|
|
80
|
+
control: button,
|
|
81
|
+
bubbles: !hasConsumerStoppedPropagationRef.current,
|
|
82
|
+
name,
|
|
83
|
+
value,
|
|
84
|
+
checked,
|
|
85
|
+
required,
|
|
86
|
+
disabled
|
|
87
|
+
}) : null,
|
|
88
|
+
checkboxRef: composedRefs,
|
|
89
|
+
checkboxProps: {
|
|
90
|
+
role: "checkbox",
|
|
91
|
+
"aria-labelledby": labelledBy,
|
|
92
|
+
"aria-checked": (0, import_utils.isIndeterminate)(checked) ? "mixed" : checked,
|
|
93
|
+
...checkboxProps,
|
|
94
|
+
...(import_gui_constants.isWeb && {
|
|
95
|
+
type: "button",
|
|
96
|
+
value,
|
|
97
|
+
"data-state": (0, import_utils.getState)(checked),
|
|
98
|
+
"data-disabled": disabled ? "" : void 0,
|
|
99
|
+
disabled,
|
|
100
|
+
onKeyDown: disabled ? void 0 : handleKeyDown
|
|
101
|
+
}),
|
|
102
|
+
onPress: disabled ? void 0 : handlePress
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=useCheckbox.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__create","Object","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toESM","mod","isNodeMode","__esModule","value","__toCommonJS","useCheckbox_exports","useCheckbox","module","exports","import_jsx_runtime","require","import_gui_compose_refs","import_gui_constants","import_gui_helpers","import_gui_label","import_react","import_BubbleInput","import_utils","props","param","ref","checked","setChecked","labelledBy","ariaLabelledby","required","disabled","onCheckedChange","checkboxProps","button","setButton","default","useState","composedRefs","useComposedRefs","hasConsumerStoppedPropagationRef","useRef","isFormControl","isWeb","closest","labelId","useLabelContext","parentKeyDown","onKeyDown","handleKeyDown","useMemo","composeEventHandlers","event","preventDefault","handlePress","onPress","prevChecked","isIndeterminate","current","isPropagationStopped","stopPropagation","bubbleInput","jsx","BubbleInput","isHidden","control","bubbles","checkboxRef","role"],"sources":["../../src/useCheckbox.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
function isIndeterminate(checked) {
|
|
2
|
+
return checked === "indeterminate";
|
|
3
|
+
}
|
|
4
|
+
function getState(checked) {
|
|
5
|
+
return isIndeterminate(checked) ? "indeterminate" : checked ? "checked" : "unchecked";
|
|
6
|
+
}
|
|
7
|
+
export { getState, isIndeterminate };
|
|
8
|
+
//# sourceMappingURL=utils.mjs.map
|
|
@@ -0,0 +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":[]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: !0
|
|
11
|
+
});
|
|
12
|
+
},
|
|
13
|
+
__copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
|
|
15
|
+
get: () => from[key],
|
|
16
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
17
|
+
});
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
21
|
+
value: !0
|
|
22
|
+
}), mod);
|
|
23
|
+
var utils_exports = {};
|
|
24
|
+
__export(utils_exports, {
|
|
25
|
+
getState: () => getState,
|
|
26
|
+
isIndeterminate: () => isIndeterminate
|
|
27
|
+
});
|
|
28
|
+
module.exports = __toCommonJS(utils_exports);
|
|
29
|
+
function isIndeterminate(checked) {
|
|
30
|
+
return checked === "indeterminate";
|
|
31
|
+
}
|
|
32
|
+
function getState(checked) {
|
|
33
|
+
return isIndeterminate(checked) ? "indeterminate" : checked ? "checked" : "unchecked";
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=utils.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all"],"sources":["../../src/utils.tsx"],"sourcesContent":[null],"mappings":"AAEO,YAAS;;AACd,IAAAA,SAAO,GAAAC,MAAY,CAAAC,cAAA;AACrB,IAAAC,gBAAA,GAAAF,MAAA,CAAAG,wBAAA;AAEO,IAAAC,iBAAkB,GAAAJ,MAAuB,CAAAK,mBAAA;AAC9C,IAAAC,YAAO,GAAAN,MAAgB,CAAAO,SAAO,CAAIC,cAAA;AACpC,IAAAC,QAAA,GAAAA,CAAAC,MAAA,EAAAC,GAAA","ignoreList":[]}
|