@cdx-ui/primitives 0.0.1-beta.24 → 0.0.1-beta.25
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/lib/commonjs/checkbox/createCheckboxRoot.web.js +8 -3
- package/lib/commonjs/checkbox/createCheckboxRoot.web.js.map +1 -1
- package/lib/commonjs/field/createFieldLabel.js.map +1 -1
- package/lib/commonjs/input/createInputField.js +5 -0
- package/lib/commonjs/input/createInputField.js.map +1 -1
- package/lib/commonjs/select/createSelectTrigger.js +17 -4
- package/lib/commonjs/select/createSelectTrigger.js.map +1 -1
- package/lib/module/checkbox/createCheckboxRoot.web.js +8 -2
- package/lib/module/checkbox/createCheckboxRoot.web.js.map +1 -1
- package/lib/module/field/createFieldLabel.js.map +1 -1
- package/lib/module/input/createInputField.js +5 -0
- package/lib/module/input/createInputField.js.map +1 -1
- package/lib/module/select/createSelectTrigger.js +19 -6
- package/lib/module/select/createSelectTrigger.js.map +1 -1
- package/lib/typescript/checkbox/createCheckboxRoot.web.d.ts +4 -0
- package/lib/typescript/checkbox/createCheckboxRoot.web.d.ts.map +1 -1
- package/lib/typescript/checkbox/useCheckboxRoot.d.ts +2 -0
- package/lib/typescript/checkbox/useCheckboxRoot.d.ts.map +1 -1
- package/lib/typescript/field/createFieldLabel.d.ts.map +1 -1
- package/lib/typescript/input/createInputField.d.ts.map +1 -1
- package/lib/typescript/radio/useRadioRoot.d.ts +2 -0
- package/lib/typescript/radio/useRadioRoot.d.ts.map +1 -1
- package/lib/typescript/select/createSelectTrigger.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/checkbox/createCheckboxRoot.web.tsx +6 -2
- package/src/field/createFieldLabel.tsx +4 -1
- package/src/input/createInputField.tsx +6 -0
- package/src/select/createSelectTrigger.tsx +26 -3
|
@@ -11,8 +11,10 @@ var _dataAttributes = require("../utils/dataAttributes");
|
|
|
11
11
|
var _context = require("./context");
|
|
12
12
|
var _useCheckboxRoot = require("./useCheckboxRoot");
|
|
13
13
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Web uses a native checkbox input (VisuallyHidden) for ARIA + focus management. The outer
|
|
16
|
+
* `Pressable` must not be in the tab order or each control consumes two Tab stops (wrapper + input).
|
|
17
|
+
*/
|
|
16
18
|
const createCheckboxRoot = BaseCheckbox => /*#__PURE__*/(0, _react.forwardRef)(({
|
|
17
19
|
children,
|
|
18
20
|
...props
|
|
@@ -48,7 +50,10 @@ const createCheckboxRoot = BaseCheckbox => /*#__PURE__*/(0, _react.forwardRef)((
|
|
|
48
50
|
} = (0, _focus.useFocusRing)();
|
|
49
51
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(BaseCheckbox, {
|
|
50
52
|
...combinedProps,
|
|
51
|
-
ref: mergedRef
|
|
53
|
+
ref: mergedRef
|
|
54
|
+
// Native input is the only tab stop; Pressable is still clickable (mouse / screen reader).
|
|
55
|
+
,
|
|
56
|
+
tabIndex: -1,
|
|
52
57
|
role: "label"
|
|
53
58
|
// eslint-disable-next-line react-native-a11y/has-valid-accessibility-role
|
|
54
59
|
,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_visuallyHidden","_focus","_dataAttributes","_context","_useCheckboxRoot","_jsxRuntime","createCheckboxRoot","BaseCheckbox","forwardRef","children","props","ref","isHovered","isHoveredProp","isFocusVisible","isFocusVisibleProp","isChecked","isCheckedProp","isDisabled","isDisabledProp","isInvalid","isInvalidProp","isReadOnly","isReadOnlyProp","isIndeterminate","isIndeterminateProp","isFocused","isPressed","combinedProps","groupItemInputProps","mergedRef","inputRef","useCheckboxRoot","useInputRefForAria","focusProps","useFocusRing","jsx","role","accessibilityRole","dataAttributes","checked","disabled","hover","invalid","readonly","active","focus","indeterminate","focusVisible","jsxs","CheckboxProvider","value","VisuallyHidden","exports"],"sourceRoot":"../../../src","sources":["checkbox/createCheckboxRoot.web.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAEA,IAAAK,gBAAA,GAAAL,OAAA;AAAoD,IAAAM,WAAA,GAAAN,OAAA;AAEpD
|
|
1
|
+
{"version":3,"names":["_react","require","_visuallyHidden","_focus","_dataAttributes","_context","_useCheckboxRoot","_jsxRuntime","createCheckboxRoot","BaseCheckbox","forwardRef","children","props","ref","isHovered","isHoveredProp","isFocusVisible","isFocusVisibleProp","isChecked","isCheckedProp","isDisabled","isDisabledProp","isInvalid","isInvalidProp","isReadOnly","isReadOnlyProp","isIndeterminate","isIndeterminateProp","isFocused","isPressed","combinedProps","groupItemInputProps","mergedRef","inputRef","useCheckboxRoot","useInputRefForAria","focusProps","useFocusRing","jsx","tabIndex","role","accessibilityRole","dataAttributes","checked","disabled","hover","invalid","readonly","active","focus","indeterminate","focusVisible","jsxs","CheckboxProvider","value","VisuallyHidden","exports"],"sourceRoot":"../../../src","sources":["checkbox/createCheckboxRoot.web.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAEA,IAAAK,gBAAA,GAAAL,OAAA;AAAoD,IAAAM,WAAA,GAAAN,OAAA;AAEpD;AACA;AACA;AACA;AACO,MAAMO,kBAAkB,GAAQC,YAAoC,iBACzE,IAAAC,iBAAU,EAAC,CAAC;EAAEC,QAAQ;EAAE,GAAGC;AAAsB,CAAC,EAAEC,GAAkB,KAAK;EACzE,MAAM;IACJC,SAAS,EAAEC,aAAa;IACxBC,cAAc,EAAEC,kBAAkB;IAClCC,SAAS,EAAEC,aAAa;IACxBC,UAAU,EAAEC,cAAc;IAC1BC,SAAS,EAAEC,aAAa;IACxBC,UAAU,EAAEC,cAAc;IAC1BC,eAAe,EAAEC,mBAAmB;IACpCC,SAAS;IACTC;EACF,CAAC,GAAGjB,KAAK;EAET,MAAM;IACJkB,aAAa;IACbR,SAAS;IACTE,UAAU;IACVE,eAAe;IACfK,mBAAmB;IACnBb,SAAS;IACTE,UAAU;IACVN,SAAS;IACTkB,SAAS;IACTC;EACF,CAAC,GAAG,IAAAC,gCAAe,EAACtB,KAAK,EAAEC,GAAG,EAAE;IAAEsB,kBAAkB,EAAE;EAAK,CAAC,CAAC;EAE7D,MAAM;IAAEC,UAAU;IAAEpB;EAAe,CAAC,GAAG,IAAAqB,mBAAY,EAAC,CAAC;EAErD,oBACE,IAAA9B,WAAA,CAAA+B,GAAA,EAAC7B,YAAY;IAAA,GACNqB,aAAa;IAClBjB,GAAG,EAAEmB;IACL;IAAA;IACAO,QAAQ,EAAE,CAAC,CAAE;IACbC,IAAI,EAAC;IACL;IAAA;IACAC,iBAAiB,EAAC,OAAO;IAAA,GACrB,IAAAC,8BAAc,EAAC;MACjBC,OAAO,EAAEzB,SAAS,IAAIC,aAAa;MACnCyB,QAAQ,EAAExB,UAAU,IAAIC,cAAc;MACtCwB,KAAK,EAAE/B,SAAS,IAAIC,aAAa;MACjC+B,OAAO,EAAExB,SAAS,IAAIC,aAAa;MACnCwB,QAAQ,EAAEvB,UAAU,IAAIC,cAAc;MACtCuB,MAAM,EAAEnB,SAAS;MACjBoB,KAAK,EAAErB,SAAS;MAChBsB,aAAa,EAAExB,eAAe,IAAIC,mBAAmB;MACrDwB,YAAY,EAAEnC;IAChB,CAAC,CAAC;IAAAL,QAAA,eAEF,IAAAJ,WAAA,CAAA6C,IAAA,EAAC/C,QAAA,CAAAgD,gBAAgB;MACfC,KAAK,EAAE;QACLpC,SAAS,EAAEA,SAAS,IAAIC,aAAa;QACrCC,UAAU,EAAEA,UAAU,IAAIC,cAAc;QACxCL,cAAc,EAAEA,cAAc,IAAIC,kBAAkB;QACpDH,SAAS,EAAEA,SAAS,IAAIC,aAAa;QACrCO,SAAS,EAAEA,SAAS,IAAIC,aAAa;QACrCC,UAAU,EAAEA,UAAU,IAAIC,cAAc;QACxCC,eAAe,EAAEA,eAAe,IAAIC,mBAAmB;QACvDE,SAAS;QACTD;MACF,CAAE;MAAAjB,QAAA,gBAEF,IAAAJ,WAAA,CAAA+B,GAAA,EAACpC,eAAA,CAAAqD,cAAc;QAAA5C,QAAA,eACb,IAAAJ,WAAA,CAAA+B,GAAA;UAAA,GAAWP,mBAAmB;UAAA,GAAMK,UAAU;UAAEvB,GAAG,EAAEoB;QAAS,CAAE;MAAC,CACnD,CAAC,EAChBtB,QAAQ;IAAA,CACO;EAAC,CACP,CAAC;AAEnB,CAAC,CAAC;AAAC6C,OAAA,CAAAhD,kBAAA,GAAAA,kBAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_utils","_dataAttributes","_jsxRuntime","createFieldLabel","BaseFormLabel","forwardRef","children","htmlFor","htmlForProp","requiredIndicator","props","ref","field","useFormControlContext","fieldId","id","labelId","undefined","jsxs","dataAttributes","invalid","isInvalid","required","isRequired","exports"],"sourceRoot":"../../../src","sources":["field/createFieldLabel.tsx"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AAAyD,IAAAG,WAAA,GAAAH,OAAA;AAGlD,MAAMI,gBAAgB,GAAQC,aAAqC,iBACxE,IAAAC,iBAAU,EACR,CAAC;EAAEC,QAAQ;EAAEC,OAAO,EAAEC,WAAW;EAAEC,iBAAiB;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EACxE,MAAMC,KAAK,GAAG,IAAAC,4BAAqB,EAAC,CAAC;EACrC,MAAMC,OAAO,GAAGF,KAAK,CAACG,EAAE;EACxB,MAAMC,OAAO,GAAGJ,KAAK,CAACI,OAAO;;EAE7B;EACA,MAAMT,OAAO,GAAGC,WAAW,KAAKM,OAAO,GAAG,GAAGA,OAAO,QAAQ,GAAGG,SAAS,CAAC;EAEzE,oBACE,IAAAf,WAAA,CAAAgB,IAAA,EAACd,aAAa;IACZO,GAAG,EAAEA,GAAI;IAAA,GACJD,KAAK;IACVK,EAAE,EAAEC,OAAQ;IACZT,OAAO,EAAEA,OAAQ;IAAA,GACb,IAAAY,8BAAc,EAAC;
|
|
1
|
+
{"version":3,"names":["_react","require","_utils","_dataAttributes","_jsxRuntime","createFieldLabel","BaseFormLabel","forwardRef","children","htmlFor","htmlForProp","requiredIndicator","props","ref","field","useFormControlContext","fieldId","id","labelId","undefined","jsxs","dataAttributes","invalid","isInvalid","required","isRequired","exports"],"sourceRoot":"../../../src","sources":["field/createFieldLabel.tsx"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AAAyD,IAAAG,WAAA,GAAAH,OAAA;AAGlD,MAAMI,gBAAgB,GAAQC,aAAqC,iBACxE,IAAAC,iBAAU,EACR,CAAC;EAAEC,QAAQ;EAAEC,OAAO,EAAEC,WAAW;EAAEC,iBAAiB;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EACxE,MAAMC,KAAK,GAAG,IAAAC,4BAAqB,EAAC,CAAC;EACrC,MAAMC,OAAO,GAAGF,KAAK,CAACG,EAAE;EACxB,MAAMC,OAAO,GAAGJ,KAAK,CAACI,OAAO;;EAE7B;EACA,MAAMT,OAAO,GAAGC,WAAW,KAAKM,OAAO,GAAG,GAAGA,OAAO,QAAQ,GAAGG,SAAS,CAAC;EAEzE,oBACE,IAAAf,WAAA,CAAAgB,IAAA,EAACd,aAAa;IACZO,GAAG,EAAEA,GAAI;IAAA,GACJD,KAAK;IACVK,EAAE,EAAEC,OAAQ;IACZT,OAAO,EAAEA,OAAQ;IAAA,GACb,IAAAY,8BAAc,EAAC;MACjBC,OAAO,EAAER,KAAK,CAACS,SAAS;MACxBC,QAAQ,EAAEV,KAAK,CAACW;IAClB,CAAC,CAAC;IAAAjB,QAAA,GAEDA,QAAQ,EACRM,KAAK,CAACW,UAAU,GAAGd,iBAAiB,GAAG,IAAI;EAAA,CAC/B,CAAC;AAEpB,CACF,CAAC;AAACe,OAAA,CAAArB,gBAAA,GAAAA,gBAAA","ignoreList":[]}
|
|
@@ -40,8 +40,13 @@ const createInputField = BaseInputField => /*#__PURE__*/(0, _react.forwardRef)((
|
|
|
40
40
|
id: props.id
|
|
41
41
|
});
|
|
42
42
|
const field = (0, _utils.useFormControlContext)();
|
|
43
|
+
const reportLabelFocus = focused => {
|
|
44
|
+
const active = focused && !(isDisabled || inputProps.disabled);
|
|
45
|
+
field.setIsLabelFocused?.(active);
|
|
46
|
+
};
|
|
43
47
|
const handleFocus = (focusState, callback) => {
|
|
44
48
|
setIsFocused(focusState);
|
|
49
|
+
reportLabelFocus(focusState);
|
|
45
50
|
callback();
|
|
46
51
|
};
|
|
47
52
|
const mergedRef = _reactNative.Platform.OS === 'web' ? (0, _utils.mergeRefs)(ref, inputFieldRef) : (0, _utils.mergeRefs)(ref, inputFieldRef, field.inputRef);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_utils","_dataAttributes","_context","_jsxRuntime","createInputField","BaseInputField","forwardRef","children","onKeyPress","type","accessibilityLabel","ariaLabelProp","secureTextEntry","editable","disabled","props","ref","isDisabled","isReadOnly","isFocused","isInvalid","setIsFocused","isHovered","isFocusVisible","inputFieldRef","isRequired","useInputContext","inputProps","useFormControl","id","field","useFormControlContext","handleFocus","focusState","callback","mergedRef","Platform","OS","mergeRefs","inputRef","isEffectivelyDisabled","ariaLabel","editableProp","useMemo","undefined","jsx","dataAttributes","focus","invalid","readonly","required","hover","focusVisible","accessible","accessibilityElementsHidden","readOnly","e","persist","onFocus","onBlur","exports"],"sourceRoot":"../../../src","sources":["input/createInputField.tsx"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAMA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAA4C,IAAAK,WAAA,GAAAL,OAAA;AAGrC,MAAMM,gBAAgB,GAAQC,cAAsC,iBACzE,IAAAC,iBAAU,EACR,CACE;EACEC,QAAQ;EACRC,UAAU;EACVC,IAAI,GAAG,MAAM;EACbC,kBAAkB;EAClB,YAAY,EAAEC,aAAa;EAC3BC,eAAe;EACfC,QAAQ;EACRC,QAAQ;EACR,GAAGC;AACQ,CAAC,EACdC,GAAS,KACN;EACH,MAAM;IACJC,UAAU;IACVC,UAAU;IACVC,SAAS;IACTC,SAAS;IACTC,YAAY;IACZC,SAAS;IACTC,cAAc;IACdC,aAAa;IACbC;EACF,CAAC,GAAG,IAAAC,wBAAe,EAAC,CAAC;EAErB,MAAMC,UAAU,GAAG,IAAAC,qBAAc,EAAC;IAChCX,UAAU,EAAEF,KAAK,CAACE,UAAU,IAAIH,QAAQ;IACxCM,SAAS,EAAEL,KAAK,CAACK,SAAS;IAC1BF,UAAU,EAAEH,KAAK,CAACG,UAAU;IAC5BO,UAAU,EAAEV,KAAK,CAACU,UAAU;IAC5BI,EAAE,EAAEd,KAAK,CAACc;EACZ,CAAC,CAAC;EAEF,MAAMC,KAAK,GAAG,IAAAC,4BAAqB,EAAC,CAAC;EAErC,MAAMC,WAAW,GAAGA,CAACC,UAAmB,EAAEC,QAAa,KAAK;
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_utils","_dataAttributes","_context","_jsxRuntime","createInputField","BaseInputField","forwardRef","children","onKeyPress","type","accessibilityLabel","ariaLabelProp","secureTextEntry","editable","disabled","props","ref","isDisabled","isReadOnly","isFocused","isInvalid","setIsFocused","isHovered","isFocusVisible","inputFieldRef","isRequired","useInputContext","inputProps","useFormControl","id","field","useFormControlContext","reportLabelFocus","focused","active","setIsLabelFocused","handleFocus","focusState","callback","mergedRef","Platform","OS","mergeRefs","inputRef","isEffectivelyDisabled","ariaLabel","editableProp","useMemo","undefined","jsx","dataAttributes","focus","invalid","readonly","required","hover","focusVisible","accessible","accessibilityElementsHidden","readOnly","e","persist","onFocus","onBlur","exports"],"sourceRoot":"../../../src","sources":["input/createInputField.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -56,6 +56,7 @@ const createSelectTrigger = BaseTrigger => /*#__PURE__*/(0, _react.forwardRef)((
|
|
|
56
56
|
isHovered,
|
|
57
57
|
hoverProps
|
|
58
58
|
} = (0, _interactions.useHover)();
|
|
59
|
+
const [triggerFocused, setTriggerFocused] = (0, _react.useState)(false);
|
|
59
60
|
const handlePress = (0, _react.useCallback)(e => {
|
|
60
61
|
if (e?.type === 'keyup' && e.key === 'Enter') {
|
|
61
62
|
return;
|
|
@@ -80,13 +81,25 @@ const createSelectTrigger = BaseTrigger => /*#__PURE__*/(0, _react.forwardRef)((
|
|
|
80
81
|
}
|
|
81
82
|
}
|
|
82
83
|
}, [disabled, setOpen]);
|
|
84
|
+
|
|
85
|
+
// `useFocus()` on Pressable can stay true on native after blur; use explicit focus/blur handlers.
|
|
86
|
+
const isLabelActive = _reactNative.Platform.select({
|
|
87
|
+
web: Boolean((isFocusedProp || isFocused || open) && !disabled),
|
|
88
|
+
default: Boolean((open || triggerFocused) && !disabled)
|
|
89
|
+
});
|
|
90
|
+
(0, _utils.useReportFormControlLabelFocus)(isLabelActive);
|
|
91
|
+
(0, _react.useLayoutEffect)(() => {
|
|
92
|
+
if (!open) {
|
|
93
|
+
setTriggerFocused(false);
|
|
94
|
+
}
|
|
95
|
+
}, [open]);
|
|
83
96
|
const interactionState = (0, _react.useMemo)(() => ({
|
|
84
97
|
hover: isHoveredProp || isHovered,
|
|
85
|
-
focus: isFocusedProp || isFocused,
|
|
98
|
+
focus: isFocusedProp || isFocused || open,
|
|
86
99
|
active: isActiveProp || isActive,
|
|
87
100
|
disabled: !!disabled,
|
|
88
101
|
focusVisible: isFocusVisibleProp || isFocusVisible
|
|
89
|
-
}), [isHoveredProp, isHovered, isFocusedProp, isFocused, isActiveProp, isActive, disabled, isFocusVisibleProp, isFocusVisible]);
|
|
102
|
+
}), [isHoveredProp, isHovered, isFocusedProp, isFocused, isActiveProp, isActive, disabled, isFocusVisibleProp, isFocusVisible, open]);
|
|
90
103
|
|
|
91
104
|
/**
|
|
92
105
|
* Native: `Pressable` has no usable programmatic `.focus()` (unlike `TextInput`).
|
|
@@ -168,8 +181,8 @@ const createSelectTrigger = BaseTrigger => /*#__PURE__*/(0, _react.forwardRef)((
|
|
|
168
181
|
onPressOut: (0, _utils.composeEventHandlers)(props?.onPressOut, pressProps.onPressOut),
|
|
169
182
|
onHoverIn: (0, _utils.composeEventHandlers)(props?.onHoverIn, hoverProps.onHoverIn),
|
|
170
183
|
onHoverOut: (0, _utils.composeEventHandlers)(props?.onHoverOut, hoverProps.onHoverOut),
|
|
171
|
-
onFocus: (0, _utils.composeEventHandlers)((0, _utils.composeEventHandlers)(props?.onFocus, focusProps.onFocus), focusRingProps.onFocus),
|
|
172
|
-
onBlur: (0, _utils.composeEventHandlers)((0, _utils.composeEventHandlers)(props?.onBlur, focusProps.onBlur), focusRingProps.onBlur),
|
|
184
|
+
onFocus: (0, _utils.composeEventHandlers)((0, _utils.composeEventHandlers)(props?.onFocus, focusProps.onFocus), focusRingProps.onFocus, () => setTriggerFocused(true)),
|
|
185
|
+
onBlur: (0, _utils.composeEventHandlers)((0, _utils.composeEventHandlers)(props?.onBlur, focusProps.onBlur), focusRingProps.onBlur, () => setTriggerFocused(false)),
|
|
173
186
|
...webKeyboardProps,
|
|
174
187
|
children: typeof children === 'function' ? children(interactionState) : children
|
|
175
188
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_utils","_focus","_interactions","_dataAttributes","_context","_jsxRuntime","createSelectTrigger","BaseTrigger","forwardRef","children","isHovered","isHoveredProp","isActive","isActiveProp","isFocused","isFocusedProp","isFocusVisible","isFocusVisibleProp","isDisabled","isDisabledProp","ariaDescribedByProp","props","ref","open","setOpen","disabled","contextDisabled","required","contextRequired","invalid","contextInvalid","readOnly","contextReadOnly","triggerId","contentId","triggerRef","activeValue","accessibilityLabel","ariaDescribedBy","ariaDescribedByFromField","useSelectContext","field","useFormControlContext","focusProps","focusRingProps","useFocusRing","pressProps","isPressed","usePress","useFocus","hoverProps","useHover","handlePress","useCallback","e","type","key","handleKeyDown","preventDefault","interactionState","useMemo","hover","focus","active","focusVisible","labelFocusGateRef","useRef","current","labelFocusBridge","isOff","isRO","node","
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_utils","_focus","_interactions","_dataAttributes","_context","_jsxRuntime","createSelectTrigger","BaseTrigger","forwardRef","children","isHovered","isHoveredProp","isActive","isActiveProp","isFocused","isFocusedProp","isFocusVisible","isFocusVisibleProp","isDisabled","isDisabledProp","ariaDescribedByProp","props","ref","open","setOpen","disabled","contextDisabled","required","contextRequired","invalid","contextInvalid","readOnly","contextReadOnly","triggerId","contentId","triggerRef","activeValue","accessibilityLabel","ariaDescribedBy","ariaDescribedByFromField","useSelectContext","field","useFormControlContext","focusProps","focusRingProps","useFocusRing","pressProps","isPressed","usePress","useFocus","hoverProps","useHover","triggerFocused","setTriggerFocused","useState","handlePress","useCallback","e","type","key","handleKeyDown","preventDefault","isLabelActive","Platform","select","web","Boolean","default","useReportFormControlLabelFocus","useLayoutEffect","interactionState","useMemo","hover","focus","active","focusVisible","labelFocusGateRef","useRef","current","labelFocusBridge","isOff","isRO","node","OS","inputRef","r","mergedRef","mergeRefs","filter","join","webKeyboardProps","onKeyDown","composeEventHandlers","jsx","SelectTriggerProvider","value","role","undefined","dataAttributes","readonly","state","slot","id","onPress","onPressIn","onPressOut","onHoverIn","onHoverOut","onFocus","onBlur","exports"],"sourceRoot":"../../../src","sources":["select/createSelectTrigger.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -7,7 +7,10 @@ import { dataAttributes } from '../utils/dataAttributes';
|
|
|
7
7
|
import { CheckboxProvider } from './context';
|
|
8
8
|
import { useCheckboxRoot } from './useCheckboxRoot';
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Web uses a native checkbox input (VisuallyHidden) for ARIA + focus management. The outer
|
|
12
|
+
* `Pressable` must not be in the tab order or each control consumes two Tab stops (wrapper + input).
|
|
13
|
+
*/
|
|
11
14
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
15
|
export const createCheckboxRoot = BaseCheckbox => /*#__PURE__*/forwardRef(({
|
|
13
16
|
children,
|
|
@@ -44,7 +47,10 @@ export const createCheckboxRoot = BaseCheckbox => /*#__PURE__*/forwardRef(({
|
|
|
44
47
|
} = useFocusRing();
|
|
45
48
|
return /*#__PURE__*/_jsx(BaseCheckbox, {
|
|
46
49
|
...combinedProps,
|
|
47
|
-
ref: mergedRef
|
|
50
|
+
ref: mergedRef
|
|
51
|
+
// Native input is the only tab stop; Pressable is still clickable (mouse / screen reader).
|
|
52
|
+
,
|
|
53
|
+
tabIndex: -1,
|
|
48
54
|
role: "label"
|
|
49
55
|
// eslint-disable-next-line react-native-a11y/has-valid-accessibility-role
|
|
50
56
|
,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["forwardRef","VisuallyHidden","useFocusRing","dataAttributes","CheckboxProvider","useCheckboxRoot","jsx","_jsx","jsxs","_jsxs","createCheckboxRoot","BaseCheckbox","children","props","ref","isHovered","isHoveredProp","isFocusVisible","isFocusVisibleProp","isChecked","isCheckedProp","isDisabled","isDisabledProp","isInvalid","isInvalidProp","isReadOnly","isReadOnlyProp","isIndeterminate","isIndeterminateProp","isFocused","isPressed","combinedProps","groupItemInputProps","mergedRef","inputRef","useInputRefForAria","focusProps","role","accessibilityRole","checked","disabled","hover","invalid","readonly","active","focus","indeterminate","focusVisible","value"],"sourceRoot":"../../../src","sources":["checkbox/createCheckboxRoot.web.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,OAAO;AAClC,SAASC,cAAc,QAAQ,6BAA6B;AAC5D,SAASC,YAAY,QAAQ,0BAA0B;AACvD,SAASC,cAAc,QAAQ,yBAAyB;AACxD,SAASC,gBAAgB,QAAQ,WAAW;AAE5C,SAASC,eAAe,QAAQ,mBAAmB;;AAEnD;
|
|
1
|
+
{"version":3,"names":["forwardRef","VisuallyHidden","useFocusRing","dataAttributes","CheckboxProvider","useCheckboxRoot","jsx","_jsx","jsxs","_jsxs","createCheckboxRoot","BaseCheckbox","children","props","ref","isHovered","isHoveredProp","isFocusVisible","isFocusVisibleProp","isChecked","isCheckedProp","isDisabled","isDisabledProp","isInvalid","isInvalidProp","isReadOnly","isReadOnlyProp","isIndeterminate","isIndeterminateProp","isFocused","isPressed","combinedProps","groupItemInputProps","mergedRef","inputRef","useInputRefForAria","focusProps","tabIndex","role","accessibilityRole","checked","disabled","hover","invalid","readonly","active","focus","indeterminate","focusVisible","value"],"sourceRoot":"../../../src","sources":["checkbox/createCheckboxRoot.web.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,OAAO;AAClC,SAASC,cAAc,QAAQ,6BAA6B;AAC5D,SAASC,YAAY,QAAQ,0BAA0B;AACvD,SAASC,cAAc,QAAQ,yBAAyB;AACxD,SAASC,gBAAgB,QAAQ,WAAW;AAE5C,SAASC,eAAe,QAAQ,mBAAmB;;AAEnD;AACA;AACA;AACA;AAHA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAIA,OAAO,MAAMC,kBAAkB,GAAQC,YAAoC,iBACzEX,UAAU,CAAC,CAAC;EAAEY,QAAQ;EAAE,GAAGC;AAAsB,CAAC,EAAEC,GAAkB,KAAK;EACzE,MAAM;IACJC,SAAS,EAAEC,aAAa;IACxBC,cAAc,EAAEC,kBAAkB;IAClCC,SAAS,EAAEC,aAAa;IACxBC,UAAU,EAAEC,cAAc;IAC1BC,SAAS,EAAEC,aAAa;IACxBC,UAAU,EAAEC,cAAc;IAC1BC,eAAe,EAAEC,mBAAmB;IACpCC,SAAS;IACTC;EACF,CAAC,GAAGjB,KAAK;EAET,MAAM;IACJkB,aAAa;IACbR,SAAS;IACTE,UAAU;IACVE,eAAe;IACfK,mBAAmB;IACnBb,SAAS;IACTE,UAAU;IACVN,SAAS;IACTkB,SAAS;IACTC;EACF,CAAC,GAAG7B,eAAe,CAACQ,KAAK,EAAEC,GAAG,EAAE;IAAEqB,kBAAkB,EAAE;EAAK,CAAC,CAAC;EAE7D,MAAM;IAAEC,UAAU;IAAEnB;EAAe,CAAC,GAAGf,YAAY,CAAC,CAAC;EAErD,oBACEK,IAAA,CAACI,YAAY;IAAA,GACNoB,aAAa;IAClBjB,GAAG,EAAEmB;IACL;IAAA;IACAI,QAAQ,EAAE,CAAC,CAAE;IACbC,IAAI,EAAC;IACL;IAAA;IACAC,iBAAiB,EAAC,OAAO;IAAA,GACrBpC,cAAc,CAAC;MACjBqC,OAAO,EAAErB,SAAS,IAAIC,aAAa;MACnCqB,QAAQ,EAAEpB,UAAU,IAAIC,cAAc;MACtCoB,KAAK,EAAE3B,SAAS,IAAIC,aAAa;MACjC2B,OAAO,EAAEpB,SAAS,IAAIC,aAAa;MACnCoB,QAAQ,EAAEnB,UAAU,IAAIC,cAAc;MACtCmB,MAAM,EAAEf,SAAS;MACjBgB,KAAK,EAAEjB,SAAS;MAChBkB,aAAa,EAAEpB,eAAe,IAAIC,mBAAmB;MACrDoB,YAAY,EAAE/B;IAChB,CAAC,CAAC;IAAAL,QAAA,eAEFH,KAAA,CAACL,gBAAgB;MACf6C,KAAK,EAAE;QACL9B,SAAS,EAAEA,SAAS,IAAIC,aAAa;QACrCC,UAAU,EAAEA,UAAU,IAAIC,cAAc;QACxCL,cAAc,EAAEA,cAAc,IAAIC,kBAAkB;QACpDH,SAAS,EAAEA,SAAS,IAAIC,aAAa;QACrCO,SAAS,EAAEA,SAAS,IAAIC,aAAa;QACrCC,UAAU,EAAEA,UAAU,IAAIC,cAAc;QACxCC,eAAe,EAAEA,eAAe,IAAIC,mBAAmB;QACvDE,SAAS;QACTD;MACF,CAAE;MAAAjB,QAAA,gBAEFL,IAAA,CAACN,cAAc;QAAAW,QAAA,eACbL,IAAA;UAAA,GAAWyB,mBAAmB;UAAA,GAAMI,UAAU;UAAEtB,GAAG,EAAEoB;QAAS,CAAE;MAAC,CACnD,CAAC,EAChBtB,QAAQ;IAAA,CACO;EAAC,CACP,CAAC;AAEnB,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["forwardRef","useFormControlContext","dataAttributes","jsxs","_jsxs","createFieldLabel","BaseFormLabel","children","htmlFor","htmlForProp","requiredIndicator","props","ref","field","fieldId","id","labelId","undefined","invalid","isInvalid","required","isRequired"],"sourceRoot":"../../../src","sources":["field/createFieldLabel.tsx"],"mappings":";;AACA,SAASA,UAAU,QAAQ,OAAO;AAClC,SAASC,qBAAqB,QAAQ,eAAe;AACrD,SAASC,cAAc,QAAQ,yBAAyB;AAAC,SAAAC,IAAA,IAAAC,KAAA;AAGzD,OAAO,MAAMC,gBAAgB,GAAQC,aAAqC,iBACxEN,UAAU,CACR,CAAC;EAAEO,QAAQ;EAAEC,OAAO,EAAEC,WAAW;EAAEC,iBAAiB;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EACxE,MAAMC,KAAK,GAAGZ,qBAAqB,CAAC,CAAC;EACrC,MAAMa,OAAO,GAAGD,KAAK,CAACE,EAAE;EACxB,MAAMC,OAAO,GAAGH,KAAK,CAACG,OAAO;;EAE7B;EACA,MAAMR,OAAO,GAAGC,WAAW,KAAKK,OAAO,GAAG,GAAGA,OAAO,QAAQ,GAAGG,SAAS,CAAC;EAEzE,oBACEb,KAAA,CAACE,aAAa;IACZM,GAAG,EAAEA,GAAI;IAAA,GACJD,KAAK;IACVI,EAAE,EAAEC,OAAQ;IACZR,OAAO,EAAEA,OAAQ;IAAA,GACbN,cAAc,CAAC;
|
|
1
|
+
{"version":3,"names":["forwardRef","useFormControlContext","dataAttributes","jsxs","_jsxs","createFieldLabel","BaseFormLabel","children","htmlFor","htmlForProp","requiredIndicator","props","ref","field","fieldId","id","labelId","undefined","invalid","isInvalid","required","isRequired"],"sourceRoot":"../../../src","sources":["field/createFieldLabel.tsx"],"mappings":";;AACA,SAASA,UAAU,QAAQ,OAAO;AAClC,SAASC,qBAAqB,QAAQ,eAAe;AACrD,SAASC,cAAc,QAAQ,yBAAyB;AAAC,SAAAC,IAAA,IAAAC,KAAA;AAGzD,OAAO,MAAMC,gBAAgB,GAAQC,aAAqC,iBACxEN,UAAU,CACR,CAAC;EAAEO,QAAQ;EAAEC,OAAO,EAAEC,WAAW;EAAEC,iBAAiB;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EACxE,MAAMC,KAAK,GAAGZ,qBAAqB,CAAC,CAAC;EACrC,MAAMa,OAAO,GAAGD,KAAK,CAACE,EAAE;EACxB,MAAMC,OAAO,GAAGH,KAAK,CAACG,OAAO;;EAE7B;EACA,MAAMR,OAAO,GAAGC,WAAW,KAAKK,OAAO,GAAG,GAAGA,OAAO,QAAQ,GAAGG,SAAS,CAAC;EAEzE,oBACEb,KAAA,CAACE,aAAa;IACZM,GAAG,EAAEA,GAAI;IAAA,GACJD,KAAK;IACVI,EAAE,EAAEC,OAAQ;IACZR,OAAO,EAAEA,OAAQ;IAAA,GACbN,cAAc,CAAC;MACjBgB,OAAO,EAAEL,KAAK,CAACM,SAAS;MACxBC,QAAQ,EAAEP,KAAK,CAACQ;IAClB,CAAC,CAAC;IAAAd,QAAA,GAEDA,QAAQ,EACRM,KAAK,CAACQ,UAAU,GAAGX,iBAAiB,GAAG,IAAI;EAAA,CAC/B,CAAC;AAEpB,CACF,CAAC","ignoreList":[]}
|
|
@@ -36,8 +36,13 @@ export const createInputField = BaseInputField => /*#__PURE__*/forwardRef(({
|
|
|
36
36
|
id: props.id
|
|
37
37
|
});
|
|
38
38
|
const field = useFormControlContext();
|
|
39
|
+
const reportLabelFocus = focused => {
|
|
40
|
+
const active = focused && !(isDisabled || inputProps.disabled);
|
|
41
|
+
field.setIsLabelFocused?.(active);
|
|
42
|
+
};
|
|
39
43
|
const handleFocus = (focusState, callback) => {
|
|
40
44
|
setIsFocused(focusState);
|
|
45
|
+
reportLabelFocus(focusState);
|
|
41
46
|
callback();
|
|
42
47
|
};
|
|
43
48
|
const mergedRef = Platform.OS === 'web' ? mergeRefs(ref, inputFieldRef) : mergeRefs(ref, inputFieldRef, field.inputRef);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["forwardRef","useMemo","Platform","mergeRefs","useFormControl","useFormControlContext","dataAttributes","useInputContext","jsx","_jsx","createInputField","BaseInputField","children","onKeyPress","type","accessibilityLabel","ariaLabelProp","secureTextEntry","editable","disabled","props","ref","isDisabled","isReadOnly","isFocused","isInvalid","setIsFocused","isHovered","isFocusVisible","inputFieldRef","isRequired","inputProps","id","field","handleFocus","focusState","callback","mergedRef","OS","inputRef","isEffectivelyDisabled","ariaLabel","editableProp","undefined","focus","invalid","readonly","required","hover","focusVisible","accessible","accessibilityElementsHidden","readOnly","e","persist","onFocus","onBlur"],"sourceRoot":"../../../src","sources":["input/createInputField.tsx"],"mappings":";;AACA,SAASA,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAC3C,SAGEC,QAAQ,QAEH,cAAc;AACrB,SAASC,SAAS,EAAEC,cAAc,EAAEC,qBAAqB,QAAQ,eAAe;AAChF,SAASC,cAAc,QAAQ,yBAAyB;AACxD,SAASC,eAAe,QAAQ,WAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG5C,OAAO,MAAMC,gBAAgB,GAAQC,cAAsC,iBACzEX,UAAU,CACR,CACE;EACEY,QAAQ;EACRC,UAAU;EACVC,IAAI,GAAG,MAAM;EACbC,kBAAkB;EAClB,YAAY,EAAEC,aAAa;EAC3BC,eAAe;EACfC,QAAQ;EACRC,QAAQ;EACR,GAAGC;AACQ,CAAC,EACdC,GAAS,KACN;EACH,MAAM;IACJC,UAAU;IACVC,UAAU;IACVC,SAAS;IACTC,SAAS;IACTC,YAAY;IACZC,SAAS;IACTC,cAAc;IACdC,aAAa;IACbC;EACF,CAAC,GAAGvB,eAAe,CAAC,CAAC;EAErB,MAAMwB,UAAU,GAAG3B,cAAc,CAAC;IAChCkB,UAAU,EAAEF,KAAK,CAACE,UAAU,IAAIH,QAAQ;IACxCM,SAAS,EAAEL,KAAK,CAACK,SAAS;IAC1BF,UAAU,EAAEH,KAAK,CAACG,UAAU;IAC5BO,UAAU,EAAEV,KAAK,CAACU,UAAU;IAC5BE,EAAE,EAAEZ,KAAK,CAACY;EACZ,CAAC,CAAC;EAEF,MAAMC,KAAK,GAAG5B,qBAAqB,CAAC,CAAC;EAErC,MAAM6B,WAAW,GAAGA,CAACC,UAAmB,EAAEC,QAAa,KAAK;
|
|
1
|
+
{"version":3,"names":["forwardRef","useMemo","Platform","mergeRefs","useFormControl","useFormControlContext","dataAttributes","useInputContext","jsx","_jsx","createInputField","BaseInputField","children","onKeyPress","type","accessibilityLabel","ariaLabelProp","secureTextEntry","editable","disabled","props","ref","isDisabled","isReadOnly","isFocused","isInvalid","setIsFocused","isHovered","isFocusVisible","inputFieldRef","isRequired","inputProps","id","field","reportLabelFocus","focused","active","setIsLabelFocused","handleFocus","focusState","callback","mergedRef","OS","inputRef","isEffectivelyDisabled","ariaLabel","editableProp","undefined","focus","invalid","readonly","required","hover","focusVisible","accessible","accessibilityElementsHidden","readOnly","e","persist","onFocus","onBlur"],"sourceRoot":"../../../src","sources":["input/createInputField.tsx"],"mappings":";;AACA,SAASA,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAC3C,SAGEC,QAAQ,QAEH,cAAc;AACrB,SAASC,SAAS,EAAEC,cAAc,EAAEC,qBAAqB,QAAQ,eAAe;AAChF,SAASC,cAAc,QAAQ,yBAAyB;AACxD,SAASC,eAAe,QAAQ,WAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG5C,OAAO,MAAMC,gBAAgB,GAAQC,cAAsC,iBACzEX,UAAU,CACR,CACE;EACEY,QAAQ;EACRC,UAAU;EACVC,IAAI,GAAG,MAAM;EACbC,kBAAkB;EAClB,YAAY,EAAEC,aAAa;EAC3BC,eAAe;EACfC,QAAQ;EACRC,QAAQ;EACR,GAAGC;AACQ,CAAC,EACdC,GAAS,KACN;EACH,MAAM;IACJC,UAAU;IACVC,UAAU;IACVC,SAAS;IACTC,SAAS;IACTC,YAAY;IACZC,SAAS;IACTC,cAAc;IACdC,aAAa;IACbC;EACF,CAAC,GAAGvB,eAAe,CAAC,CAAC;EAErB,MAAMwB,UAAU,GAAG3B,cAAc,CAAC;IAChCkB,UAAU,EAAEF,KAAK,CAACE,UAAU,IAAIH,QAAQ;IACxCM,SAAS,EAAEL,KAAK,CAACK,SAAS;IAC1BF,UAAU,EAAEH,KAAK,CAACG,UAAU;IAC5BO,UAAU,EAAEV,KAAK,CAACU,UAAU;IAC5BE,EAAE,EAAEZ,KAAK,CAACY;EACZ,CAAC,CAAC;EAEF,MAAMC,KAAK,GAAG5B,qBAAqB,CAAC,CAAC;EAErC,MAAM6B,gBAAgB,GAAIC,OAAgB,IAAK;IAC7C,MAAMC,MAAM,GAAGD,OAAO,IAAI,EAAEb,UAAU,IAAIS,UAAU,CAACZ,QAAQ,CAAC;IAC9Dc,KAAK,CAACI,iBAAiB,GAAGD,MAAM,CAAC;EACnC,CAAC;EAED,MAAME,WAAW,GAAGA,CAACC,UAAmB,EAAEC,QAAa,KAAK;IAC1Dd,YAAY,CAACa,UAAU,CAAC;IACxBL,gBAAgB,CAACK,UAAU,CAAC;IAC5BC,QAAQ,CAAC,CAAC;EACZ,CAAC;EAED,MAAMC,SAAS,GACbvC,QAAQ,CAACwC,EAAE,KAAK,KAAK,GACjBvC,SAAS,CAACkB,GAAG,EAAEQ,aAAa,CAAC,GAC7B1B,SAAS,CAACkB,GAAG,EAAEQ,aAAa,EAAEI,KAAK,CAACU,QAAQ,CAAC;EAEnD,MAAMC,qBAAqB,GAAGtB,UAAU,IAAIS,UAAU,CAACZ,QAAQ;EAE/D,MAAM0B,SAAS,GAAG9B,kBAAkB,IAAIC,aAAa;EAErD,MAAM8B,YAAY,GAAG7C,OAAO,CAAC,MAAM;IACjC,IAAIiB,QAAQ,KAAK6B,SAAS,EAAE;MAC1B,OAAO7B,QAAQ;IACjB;IACA,OAAO,EAAEI,UAAU,IAAIS,UAAU,CAACZ,QAAQ,IAAII,UAAU,CAAC;EAC3D,CAAC,EAAE,CAACD,UAAU,EAAES,UAAU,CAACZ,QAAQ,EAAEI,UAAU,EAAEL,QAAQ,CAAC,CAAC;EAE3D,oBACET,IAAA,CAACE,cAAc;IAAA,GACToB,UAAU;IAAA,GACTX,KAAK;IACVN,IAAI,EAAEA,IAAK;IAAA,GACPR,cAAc,CAAC;MACjB0C,KAAK,EAAExB,SAAS;MAChByB,OAAO,EAAExB,SAAS;MAClByB,QAAQ,EAAE3B,UAAU;MACpB4B,QAAQ,EAAErB,UAAU;MACpBsB,KAAK,EAAEzB,SAAS;MAChB0B,YAAY,EAAEzB,cAAc;MAC5BT,QAAQ,EAAEyB;IACZ,CAAC,CAAC;IACFzB,QAAQ,EAAEyB,qBAAsB;IAChC3B,eAAe,EAAEA,eAAe,IAAIH,IAAI,KAAK,UAAW;IACxDwC,UAAU;IACVvC,kBAAkB,EAAE8B,SAAU;IAC9B,cAAYA,SAAU;IACtB,iBAAef,UAAU,IAAIC,UAAU,CAACoB,QAAS;IACjD,gBAAc1B,SAAS,IAAIM,UAAU,CAAC,cAAc,CAAE;IACtD,iBAAea,qBAAsB;IACrC,iBAAe1C,QAAQ,CAACwC,EAAE,KAAK,KAAK,GAAGlB,SAAS,GAAGuB,SAAU;IAC7DQ,2BAA2B,EAAEX,qBAAsB;IACnDY,QAAQ,EAAE,CAACV,YAAa;IACxBjC,UAAU,EAAG4C,CAAyB,IAAK;MACzCA,CAAC,CAACC,OAAO,CAAC,CAAC;MACX7C,UAAU,GAAG4C,CAAC,CAAC;IACjB,CAAE;IACFE,OAAO,EAAGF,CAAa,IAAK;MAC1BnB,WAAW,CAAC,IAAI,EAAE,MAAMlB,KAAK,EAAEuC,OAAO,GAAGF,CAAC,CAAC,CAAC;IAC9C,CAAE;IACFG,MAAM,EAAGH,CAAY,IAAK;MACxBnB,WAAW,CAAC,KAAK,EAAE,MAAMlB,KAAK,EAAEwC,MAAM,GAAGH,CAAC,CAAC,CAAC;IAC9C,CAAE;IACFpC,GAAG,EAAEoB,SAAU;IAAA7B,QAAA,EAEdA;EAAQ,CACK,CAAC;AAErB,CACF,CAAC","ignoreList":[]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { forwardRef, useCallback, useLayoutEffect, useMemo, useRef } from 'react';
|
|
3
|
+
import { forwardRef, useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react';
|
|
4
4
|
import { Platform } from 'react-native';
|
|
5
|
-
import { composeEventHandlers, mergeRefs, useFormControlContext } from '@cdx-ui/utils';
|
|
5
|
+
import { composeEventHandlers, mergeRefs, useFormControlContext, useReportFormControlLabelFocus } from '@cdx-ui/utils';
|
|
6
6
|
import { useFocus, useFocusRing } from '@react-native-aria/focus';
|
|
7
7
|
import { useHover, usePress } from '@react-native-aria/interactions';
|
|
8
8
|
import { dataAttributes } from '../utils/dataAttributes';
|
|
@@ -52,6 +52,7 @@ export const createSelectTrigger = BaseTrigger => /*#__PURE__*/forwardRef(({
|
|
|
52
52
|
isHovered,
|
|
53
53
|
hoverProps
|
|
54
54
|
} = useHover();
|
|
55
|
+
const [triggerFocused, setTriggerFocused] = useState(false);
|
|
55
56
|
const handlePress = useCallback(e => {
|
|
56
57
|
if (e?.type === 'keyup' && e.key === 'Enter') {
|
|
57
58
|
return;
|
|
@@ -76,13 +77,25 @@ export const createSelectTrigger = BaseTrigger => /*#__PURE__*/forwardRef(({
|
|
|
76
77
|
}
|
|
77
78
|
}
|
|
78
79
|
}, [disabled, setOpen]);
|
|
80
|
+
|
|
81
|
+
// `useFocus()` on Pressable can stay true on native after blur; use explicit focus/blur handlers.
|
|
82
|
+
const isLabelActive = Platform.select({
|
|
83
|
+
web: Boolean((isFocusedProp || isFocused || open) && !disabled),
|
|
84
|
+
default: Boolean((open || triggerFocused) && !disabled)
|
|
85
|
+
});
|
|
86
|
+
useReportFormControlLabelFocus(isLabelActive);
|
|
87
|
+
useLayoutEffect(() => {
|
|
88
|
+
if (!open) {
|
|
89
|
+
setTriggerFocused(false);
|
|
90
|
+
}
|
|
91
|
+
}, [open]);
|
|
79
92
|
const interactionState = useMemo(() => ({
|
|
80
93
|
hover: isHoveredProp || isHovered,
|
|
81
|
-
focus: isFocusedProp || isFocused,
|
|
94
|
+
focus: isFocusedProp || isFocused || open,
|
|
82
95
|
active: isActiveProp || isActive,
|
|
83
96
|
disabled: !!disabled,
|
|
84
97
|
focusVisible: isFocusVisibleProp || isFocusVisible
|
|
85
|
-
}), [isHoveredProp, isHovered, isFocusedProp, isFocused, isActiveProp, isActive, disabled, isFocusVisibleProp, isFocusVisible]);
|
|
98
|
+
}), [isHoveredProp, isHovered, isFocusedProp, isFocused, isActiveProp, isActive, disabled, isFocusVisibleProp, isFocusVisible, open]);
|
|
86
99
|
|
|
87
100
|
/**
|
|
88
101
|
* Native: `Pressable` has no usable programmatic `.focus()` (unlike `TextInput`).
|
|
@@ -164,8 +177,8 @@ export const createSelectTrigger = BaseTrigger => /*#__PURE__*/forwardRef(({
|
|
|
164
177
|
onPressOut: composeEventHandlers(props?.onPressOut, pressProps.onPressOut),
|
|
165
178
|
onHoverIn: composeEventHandlers(props?.onHoverIn, hoverProps.onHoverIn),
|
|
166
179
|
onHoverOut: composeEventHandlers(props?.onHoverOut, hoverProps.onHoverOut),
|
|
167
|
-
onFocus: composeEventHandlers(composeEventHandlers(props?.onFocus, focusProps.onFocus), focusRingProps.onFocus),
|
|
168
|
-
onBlur: composeEventHandlers(composeEventHandlers(props?.onBlur, focusProps.onBlur), focusRingProps.onBlur),
|
|
180
|
+
onFocus: composeEventHandlers(composeEventHandlers(props?.onFocus, focusProps.onFocus), focusRingProps.onFocus, () => setTriggerFocused(true)),
|
|
181
|
+
onBlur: composeEventHandlers(composeEventHandlers(props?.onBlur, focusProps.onBlur), focusRingProps.onBlur, () => setTriggerFocused(false)),
|
|
169
182
|
...webKeyboardProps,
|
|
170
183
|
children: typeof children === 'function' ? children(interactionState) : children
|
|
171
184
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["forwardRef","useCallback","useLayoutEffect","useMemo","useRef","Platform","composeEventHandlers","mergeRefs","useFormControlContext","useFocus","useFocusRing","useHover","usePress","dataAttributes","SelectTriggerProvider","useSelectContext","jsx","_jsx","createSelectTrigger","BaseTrigger","children","isHovered","isHoveredProp","isActive","isActiveProp","isFocused","isFocusedProp","isFocusVisible","isFocusVisibleProp","isDisabled","isDisabledProp","ariaDescribedByProp","props","ref","open","setOpen","disabled","contextDisabled","required","contextRequired","invalid","contextInvalid","readOnly","contextReadOnly","triggerId","contentId","triggerRef","activeValue","accessibilityLabel","ariaDescribedBy","ariaDescribedByFromField","field","focusProps","focusRingProps","pressProps","isPressed","hoverProps","handlePress","e","type","key","handleKeyDown","preventDefault","interactionState","hover","focus","active","focusVisible","labelFocusGateRef","current","labelFocusBridge","isOff","isRO","node","OS","inputRef","r","mergedRef","filter","
|
|
1
|
+
{"version":3,"names":["forwardRef","useCallback","useLayoutEffect","useMemo","useRef","useState","Platform","composeEventHandlers","mergeRefs","useFormControlContext","useReportFormControlLabelFocus","useFocus","useFocusRing","useHover","usePress","dataAttributes","SelectTriggerProvider","useSelectContext","jsx","_jsx","createSelectTrigger","BaseTrigger","children","isHovered","isHoveredProp","isActive","isActiveProp","isFocused","isFocusedProp","isFocusVisible","isFocusVisibleProp","isDisabled","isDisabledProp","ariaDescribedByProp","props","ref","open","setOpen","disabled","contextDisabled","required","contextRequired","invalid","contextInvalid","readOnly","contextReadOnly","triggerId","contentId","triggerRef","activeValue","accessibilityLabel","ariaDescribedBy","ariaDescribedByFromField","field","focusProps","focusRingProps","pressProps","isPressed","hoverProps","triggerFocused","setTriggerFocused","handlePress","e","type","key","handleKeyDown","preventDefault","isLabelActive","select","web","Boolean","default","interactionState","hover","focus","active","focusVisible","labelFocusGateRef","current","labelFocusBridge","isOff","isRO","node","OS","inputRef","r","mergedRef","filter","join","webKeyboardProps","onKeyDown","value","role","undefined","readonly","state","slot","id","onPress","onPressIn","onPressOut","onHoverIn","onHoverOut","onFocus","onBlur"],"sourceRoot":"../../../src","sources":["select/createSelectTrigger.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Web uses a native checkbox input (VisuallyHidden) for ARIA + focus management. The outer
|
|
3
|
+
* `Pressable` must not be in the tab order or each control consumes two Tab stops (wrapper + input).
|
|
4
|
+
*/
|
|
1
5
|
export declare const createCheckboxRoot: <T>(BaseCheckbox: React.ComponentType<T>) => import("react").ForwardRefExoticComponent<import("./types").InterfaceCheckbox & import("react").RefAttributes<T>>;
|
|
2
6
|
//# sourceMappingURL=createCheckboxRoot.web.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createCheckboxRoot.web.d.ts","sourceRoot":"","sources":["../../../src/checkbox/createCheckboxRoot.web.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createCheckboxRoot.web.d.ts","sourceRoot":"","sources":["../../../src/checkbox/createCheckboxRoot.web.tsx"],"names":[],"mappings":"AAQA;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAI,CAAC,EAAG,cAAc,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,sHAsEvE,CAAC"}
|
|
@@ -133,6 +133,8 @@ export declare function useCheckboxRoot(props: ICheckboxProps, ref?: React.Ref<u
|
|
|
133
133
|
} | undefined;
|
|
134
134
|
inputRef?: React.RefObject<import("react-native").TextInput | null> | undefined;
|
|
135
135
|
focusInput?: (() => void) | undefined;
|
|
136
|
+
isLabelFocused?: boolean | undefined;
|
|
137
|
+
setIsLabelFocused?: React.Dispatch<React.SetStateAction<boolean>> | undefined;
|
|
136
138
|
};
|
|
137
139
|
isInvalid: boolean | undefined;
|
|
138
140
|
isReadOnly: boolean | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCheckboxRoot.d.ts","sourceRoot":"","sources":["../../../src/checkbox/useCheckboxRoot.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,UAAU,sBAAsB;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,cAAc,EACrB,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EACxB,EAAE,kBAA0B,EAAE,GAAE,sBAA2B
|
|
1
|
+
{"version":3,"file":"useCheckboxRoot.d.ts","sourceRoot":"","sources":["../../../src/checkbox/useCheckboxRoot.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,UAAU,sBAAsB;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,cAAc,EACrB,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EACxB,EAAE,kBAA0B,EAAE,GAAE,sBAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqE5D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createFieldLabel.d.ts","sourceRoot":"","sources":["../../../src/field/createFieldLabel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,gBAAgB,GAAI,CAAC,EAAG,eAAe,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;eACpB,KAAK,CAAC,SAAS;
|
|
1
|
+
{"version":3,"file":"createFieldLabel.d.ts","sourceRoot":"","sources":["../../../src/field/createFieldLabel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,gBAAgB,GAAI,CAAC,EAAG,eAAe,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;eACpB,KAAK,CAAC,SAAS;iCAyBlE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createInputField.d.ts","sourceRoot":"","sources":["../../../src/input/createInputField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,eAAO,MAAM,gBAAgB,GAAI,CAAC,EAAG,gBAAgB,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"createInputField.d.ts","sourceRoot":"","sources":["../../../src/input/createInputField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,eAAO,MAAM,gBAAgB,GAAI,CAAC,EAAG,gBAAgB,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,gFA0GxE,CAAC"}
|
|
@@ -129,6 +129,8 @@ export declare function useRadioRoot(props: IRadioProps, ref?: React.Ref<unknown
|
|
|
129
129
|
} | undefined;
|
|
130
130
|
inputRef?: React.RefObject<import("react-native").TextInput | null> | undefined;
|
|
131
131
|
focusInput?: (() => void) | undefined;
|
|
132
|
+
isLabelFocused?: boolean | undefined;
|
|
133
|
+
setIsLabelFocused?: React.Dispatch<React.SetStateAction<boolean>> | undefined;
|
|
132
134
|
isRequired?: boolean | undefined;
|
|
133
135
|
};
|
|
134
136
|
isInvalid: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRadioRoot.d.ts","sourceRoot":"","sources":["../../../src/radio/useRadioRoot.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,UAAU,mBAAmB;IAC3B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,wBAAgB,YAAY,CAC1B,KAAK,EAAE,WAAW,EAClB,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EACxB,EAAE,kBAA0B,EAAE,GAAE,mBAAwB
|
|
1
|
+
{"version":3,"file":"useRadioRoot.d.ts","sourceRoot":"","sources":["../../../src/radio/useRadioRoot.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,UAAU,mBAAmB;IAC3B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,wBAAgB,YAAY,CAC1B,KAAK,EAAE,WAAW,EAClB,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EACxB,EAAE,kBAA0B,EAAE,GAAE,mBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsDzD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSelectTrigger.d.ts","sourceRoot":"","sources":["../../../src/select/createSelectTrigger.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"createSelectTrigger.d.ts","sourceRoot":"","sources":["../../../src/select/createSelectTrigger.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAGjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD,eAAO,MAAM,mBAAmB,GAAI,CAAC,EAAG,aAAa,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;eAaxD,CAAC,CAAC,KAAK,EAAE,gBAAgB,KAAK,KAAK,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,SAAS;iCAmNhF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cdx-ui/primitives",
|
|
3
|
-
"version": "0.0.1-beta.
|
|
3
|
+
"version": "0.0.1-beta.25",
|
|
4
4
|
"main": "lib/commonjs/index.js",
|
|
5
5
|
"module": "lib/module/index.js",
|
|
6
6
|
"react-native": "src/index.ts",
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"@react-stately/checkbox": "3.7.4",
|
|
61
61
|
"@react-stately/radio": "3.12.0",
|
|
62
62
|
"@react-stately/toggle": "3.9.4",
|
|
63
|
-
"@cdx-ui/utils": "0.0.1-beta.
|
|
63
|
+
"@cdx-ui/utils": "0.0.1-beta.25"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
66
|
"@types/react": "*",
|
|
@@ -6,8 +6,10 @@ import { CheckboxProvider } from './context';
|
|
|
6
6
|
import type { ICheckboxProps } from './types';
|
|
7
7
|
import { useCheckboxRoot } from './useCheckboxRoot';
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Web uses a native checkbox input (VisuallyHidden) for ARIA + focus management. The outer
|
|
11
|
+
* `Pressable` must not be in the tab order or each control consumes two Tab stops (wrapper + input).
|
|
12
|
+
*/
|
|
11
13
|
export const createCheckboxRoot = <T,>(BaseCheckbox: React.ComponentType<T>) =>
|
|
12
14
|
forwardRef(({ children, ...props }: ICheckboxProps, ref?: React.Ref<T>) => {
|
|
13
15
|
const {
|
|
@@ -41,6 +43,8 @@ export const createCheckboxRoot = <T,>(BaseCheckbox: React.ComponentType<T>) =>
|
|
|
41
43
|
<BaseCheckbox
|
|
42
44
|
{...(combinedProps as T)}
|
|
43
45
|
ref={mergedRef}
|
|
46
|
+
// Native input is the only tab stop; Pressable is still clickable (mouse / screen reader).
|
|
47
|
+
tabIndex={-1}
|
|
44
48
|
role="label"
|
|
45
49
|
// eslint-disable-next-line react-native-a11y/has-valid-accessibility-role
|
|
46
50
|
accessibilityRole="label"
|
|
@@ -20,7 +20,10 @@ export const createFieldLabel = <T,>(BaseFormLabel: React.ComponentType<T>) =>
|
|
|
20
20
|
{...(props as T)}
|
|
21
21
|
id={labelId}
|
|
22
22
|
htmlFor={htmlFor}
|
|
23
|
-
{...dataAttributes({
|
|
23
|
+
{...dataAttributes({
|
|
24
|
+
invalid: field.isInvalid,
|
|
25
|
+
required: field.isRequired,
|
|
26
|
+
})}
|
|
24
27
|
>
|
|
25
28
|
{children}
|
|
26
29
|
{field.isRequired ? requiredIndicator : null}
|
|
@@ -49,8 +49,14 @@ export const createInputField = <T,>(BaseInputField: React.ComponentType<T>) =>
|
|
|
49
49
|
|
|
50
50
|
const field = useFormControlContext();
|
|
51
51
|
|
|
52
|
+
const reportLabelFocus = (focused: boolean) => {
|
|
53
|
+
const active = focused && !(isDisabled || inputProps.disabled);
|
|
54
|
+
field.setIsLabelFocused?.(active);
|
|
55
|
+
};
|
|
56
|
+
|
|
52
57
|
const handleFocus = (focusState: boolean, callback: any) => {
|
|
53
58
|
setIsFocused(focusState);
|
|
59
|
+
reportLabelFocus(focusState);
|
|
54
60
|
callback();
|
|
55
61
|
};
|
|
56
62
|
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
|
-
import { forwardRef, useCallback, useLayoutEffect, useMemo, useRef } from 'react';
|
|
2
|
+
import { forwardRef, useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react';
|
|
3
3
|
import { type GestureResponderEvent, Platform } from 'react-native';
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
composeEventHandlers,
|
|
6
|
+
mergeRefs,
|
|
7
|
+
useFormControlContext,
|
|
8
|
+
useReportFormControlLabelFocus,
|
|
9
|
+
} from '@cdx-ui/utils';
|
|
5
10
|
import { useFocus, useFocusRing } from '@react-native-aria/focus';
|
|
6
11
|
import { useHover, usePress } from '@react-native-aria/interactions';
|
|
7
12
|
import type { InteractionState } from '../types';
|
|
@@ -51,6 +56,7 @@ export const createSelectTrigger = <T,>(BaseTrigger: React.ComponentType<T>) =>
|
|
|
51
56
|
});
|
|
52
57
|
const { isFocused, focusProps }: any = useFocus();
|
|
53
58
|
const { isHovered, hoverProps } = useHover();
|
|
59
|
+
const [triggerFocused, setTriggerFocused] = useState(false);
|
|
54
60
|
|
|
55
61
|
const handlePress = useCallback(
|
|
56
62
|
(e: GestureResponderEvent | KeyboardEvent) => {
|
|
@@ -84,10 +90,24 @@ export const createSelectTrigger = <T,>(BaseTrigger: React.ComponentType<T>) =>
|
|
|
84
90
|
[disabled, setOpen],
|
|
85
91
|
);
|
|
86
92
|
|
|
93
|
+
// `useFocus()` on Pressable can stay true on native after blur; use explicit focus/blur handlers.
|
|
94
|
+
const isLabelActive = Platform.select({
|
|
95
|
+
web: Boolean((isFocusedProp || isFocused || open) && !disabled),
|
|
96
|
+
default: Boolean((open || triggerFocused) && !disabled),
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
useReportFormControlLabelFocus(isLabelActive);
|
|
100
|
+
|
|
101
|
+
useLayoutEffect(() => {
|
|
102
|
+
if (!open) {
|
|
103
|
+
setTriggerFocused(false);
|
|
104
|
+
}
|
|
105
|
+
}, [open]);
|
|
106
|
+
|
|
87
107
|
const interactionState = useMemo(
|
|
88
108
|
() => ({
|
|
89
109
|
hover: isHoveredProp || isHovered,
|
|
90
|
-
focus: isFocusedProp || isFocused,
|
|
110
|
+
focus: isFocusedProp || isFocused || open,
|
|
91
111
|
active: isActiveProp || isActive,
|
|
92
112
|
disabled: !!disabled,
|
|
93
113
|
focusVisible: isFocusVisibleProp || isFocusVisible,
|
|
@@ -102,6 +122,7 @@ export const createSelectTrigger = <T,>(BaseTrigger: React.ComponentType<T>) =>
|
|
|
102
122
|
disabled,
|
|
103
123
|
isFocusVisibleProp,
|
|
104
124
|
isFocusVisible,
|
|
125
|
+
open,
|
|
105
126
|
],
|
|
106
127
|
);
|
|
107
128
|
|
|
@@ -200,6 +221,7 @@ export const createSelectTrigger = <T,>(BaseTrigger: React.ComponentType<T>) =>
|
|
|
200
221
|
focusProps.onFocus,
|
|
201
222
|
),
|
|
202
223
|
focusRingProps.onFocus,
|
|
224
|
+
() => setTriggerFocused(true),
|
|
203
225
|
)}
|
|
204
226
|
onBlur={composeEventHandlers(
|
|
205
227
|
composeEventHandlers(
|
|
@@ -207,6 +229,7 @@ export const createSelectTrigger = <T,>(BaseTrigger: React.ComponentType<T>) =>
|
|
|
207
229
|
focusProps.onBlur,
|
|
208
230
|
),
|
|
209
231
|
focusRingProps.onBlur,
|
|
232
|
+
() => setTriggerFocused(false),
|
|
210
233
|
)}
|
|
211
234
|
{...webKeyboardProps}
|
|
212
235
|
>
|