@cdx-ui/primitives 0.0.1-beta.23 → 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.
Files changed (28) hide show
  1. package/lib/commonjs/checkbox/createCheckboxRoot.web.js +8 -3
  2. package/lib/commonjs/checkbox/createCheckboxRoot.web.js.map +1 -1
  3. package/lib/commonjs/field/createFieldLabel.js.map +1 -1
  4. package/lib/commonjs/input/createInputField.js +5 -0
  5. package/lib/commonjs/input/createInputField.js.map +1 -1
  6. package/lib/commonjs/select/createSelectTrigger.js +17 -4
  7. package/lib/commonjs/select/createSelectTrigger.js.map +1 -1
  8. package/lib/module/checkbox/createCheckboxRoot.web.js +8 -2
  9. package/lib/module/checkbox/createCheckboxRoot.web.js.map +1 -1
  10. package/lib/module/field/createFieldLabel.js.map +1 -1
  11. package/lib/module/input/createInputField.js +5 -0
  12. package/lib/module/input/createInputField.js.map +1 -1
  13. package/lib/module/select/createSelectTrigger.js +19 -6
  14. package/lib/module/select/createSelectTrigger.js.map +1 -1
  15. package/lib/typescript/checkbox/createCheckboxRoot.web.d.ts +4 -0
  16. package/lib/typescript/checkbox/createCheckboxRoot.web.d.ts.map +1 -1
  17. package/lib/typescript/checkbox/useCheckboxRoot.d.ts +2 -0
  18. package/lib/typescript/checkbox/useCheckboxRoot.d.ts.map +1 -1
  19. package/lib/typescript/field/createFieldLabel.d.ts.map +1 -1
  20. package/lib/typescript/input/createInputField.d.ts.map +1 -1
  21. package/lib/typescript/radio/useRadioRoot.d.ts +2 -0
  22. package/lib/typescript/radio/useRadioRoot.d.ts.map +1 -1
  23. package/lib/typescript/select/createSelectTrigger.d.ts.map +1 -1
  24. package/package.json +2 -2
  25. package/src/checkbox/createCheckboxRoot.web.tsx +6 -2
  26. package/src/field/createFieldLabel.tsx +4 -1
  27. package/src/input/createInputField.tsx +6 -0
  28. 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
- // TODO: Label is taking focus on keyboard navigation
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;;AAEO,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,SAAU;IACfO,IAAI,EAAC;IACL;IAAA;IACAC,iBAAiB,EAAC,OAAO;IAAA,GACrB,IAAAC,8BAAc,EAAC;MACjBC,OAAO,EAAExB,SAAS,IAAIC,aAAa;MACnCwB,QAAQ,EAAEvB,UAAU,IAAIC,cAAc;MACtCuB,KAAK,EAAE9B,SAAS,IAAIC,aAAa;MACjC8B,OAAO,EAAEvB,SAAS,IAAIC,aAAa;MACnCuB,QAAQ,EAAEtB,UAAU,IAAIC,cAAc;MACtCsB,MAAM,EAAElB,SAAS;MACjBmB,KAAK,EAAEpB,SAAS;MAChBqB,aAAa,EAAEvB,eAAe,IAAIC,mBAAmB;MACrDuB,YAAY,EAAElC;IAChB,CAAC,CAAC;IAAAL,QAAA,eAEF,IAAAJ,WAAA,CAAA4C,IAAA,EAAC9C,QAAA,CAAA+C,gBAAgB;MACfC,KAAK,EAAE;QACLnC,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,CAAAoD,cAAc;QAAA3C,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;AAAC4C,OAAA,CAAA/C,kBAAA,GAAAA,kBAAA","ignoreList":[]}
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;MAAEC,OAAO,EAAER,KAAK,CAACS,SAAS;MAAEC,QAAQ,EAAEV,KAAK,CAACW;IAAW,CAAC,CAAC;IAAAjB,QAAA,GAE3EA,QAAQ,EACRM,KAAK,CAACW,UAAU,GAAGd,iBAAiB,GAAG,IAAI;EAAA,CAC/B,CAAC;AAEpB,CACF,CAAC;AAACe,OAAA,CAAArB,gBAAA,GAAAA,gBAAA","ignoreList":[]}
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":"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","ignoreList":[]}
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":";;;;;;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,gBAAgB,GAAIC,OAAgB,IAAK;IAC7C,MAAMC,MAAM,GAAGD,OAAO,IAAI,EAAEhB,UAAU,IAAIU,UAAU,CAACb,QAAQ,CAAC;IAC9DgB,KAAK,CAACK,iBAAiB,GAAGD,MAAM,CAAC;EACnC,CAAC;EAED,MAAME,WAAW,GAAGA,CAACC,UAAmB,EAAEC,QAAa,KAAK;IAC1DjB,YAAY,CAACgB,UAAU,CAAC;IACxBL,gBAAgB,CAACK,UAAU,CAAC;IAC5BC,QAAQ,CAAC,CAAC;EACZ,CAAC;EAED,MAAMC,SAAS,GACbC,qBAAQ,CAACC,EAAE,KAAK,KAAK,GACjB,IAAAC,gBAAS,EAAC1B,GAAG,EAAEQ,aAAa,CAAC,GAC7B,IAAAkB,gBAAS,EAAC1B,GAAG,EAAEQ,aAAa,EAAEM,KAAK,CAACa,QAAQ,CAAC;EAEnD,MAAMC,qBAAqB,GAAG3B,UAAU,IAAIU,UAAU,CAACb,QAAQ;EAE/D,MAAM+B,SAAS,GAAGnC,kBAAkB,IAAIC,aAAa;EAErD,MAAMmC,YAAY,GAAG,IAAAC,cAAO,EAAC,MAAM;IACjC,IAAIlC,QAAQ,KAAKmC,SAAS,EAAE;MAC1B,OAAOnC,QAAQ;IACjB;IACA,OAAO,EAAEI,UAAU,IAAIU,UAAU,CAACb,QAAQ,IAAII,UAAU,CAAC;EAC3D,CAAC,EAAE,CAACD,UAAU,EAAEU,UAAU,CAACb,QAAQ,EAAEI,UAAU,EAAEL,QAAQ,CAAC,CAAC;EAE3D,oBACE,IAAAV,WAAA,CAAA8C,GAAA,EAAC5C,cAAc;IAAA,GACTsB,UAAU;IAAA,GACTZ,KAAK;IACVN,IAAI,EAAEA,IAAK;IAAA,GACP,IAAAyC,8BAAc,EAAC;MACjBC,KAAK,EAAEhC,SAAS;MAChBiC,OAAO,EAAEhC,SAAS;MAClBiC,QAAQ,EAAEnC,UAAU;MACpBoC,QAAQ,EAAE7B,UAAU;MACpB8B,KAAK,EAAEjC,SAAS;MAChBkC,YAAY,EAAEjC,cAAc;MAC5BT,QAAQ,EAAE8B;IACZ,CAAC,CAAC;IACF9B,QAAQ,EAAE8B,qBAAsB;IAChChC,eAAe,EAAEA,eAAe,IAAIH,IAAI,KAAK,UAAW;IACxDgD,UAAU;IACV/C,kBAAkB,EAAEmC,SAAU;IAC9B,cAAYA,SAAU;IACtB,iBAAepB,UAAU,IAAIE,UAAU,CAAC2B,QAAS;IACjD,gBAAclC,SAAS,IAAIO,UAAU,CAAC,cAAc,CAAE;IACtD,iBAAeiB,qBAAsB;IACrC,iBAAeJ,qBAAQ,CAACC,EAAE,KAAK,KAAK,GAAGtB,SAAS,GAAG6B,SAAU;IAC7DU,2BAA2B,EAAEd,qBAAsB;IACnDe,QAAQ,EAAE,CAACb,YAAa;IACxBtC,UAAU,EAAGoD,CAAyB,IAAK;MACzCA,CAAC,CAACC,OAAO,CAAC,CAAC;MACXrD,UAAU,GAAGoD,CAAC,CAAC;IACjB,CAAE;IACFE,OAAO,EAAGF,CAAa,IAAK;MAC1BxB,WAAW,CAAC,IAAI,EAAE,MAAMrB,KAAK,EAAE+C,OAAO,GAAGF,CAAC,CAAC,CAAC;IAC9C,CAAE;IACFG,MAAM,EAAGH,CAAY,IAAK;MACxBxB,WAAW,CAAC,KAAK,EAAE,MAAMrB,KAAK,EAAEgD,MAAM,GAAGH,CAAC,CAAC,CAAC;IAC9C,CAAE;IACF5C,GAAG,EAAEuB,SAAU;IAAAhC,QAAA,EAEdA;EAAQ,CACK,CAAC;AAErB,CACF,CAAC;AAACyD,OAAA,CAAA5D,gBAAA,GAAAA,gBAAA","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","useLayoutEffect","Platform","OS","inputRef","r","mergedRef","mergeRefs","filter","Boolean","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":[]}
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
- // TODO: Label is taking focus on keyboard navigation
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;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEA,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,SAAU;IACfI,IAAI,EAAC;IACL;IAAA;IACAC,iBAAiB,EAAC,OAAO;IAAA,GACrBnC,cAAc,CAAC;MACjBoC,OAAO,EAAEpB,SAAS,IAAIC,aAAa;MACnCoB,QAAQ,EAAEnB,UAAU,IAAIC,cAAc;MACtCmB,KAAK,EAAE1B,SAAS,IAAIC,aAAa;MACjC0B,OAAO,EAAEnB,SAAS,IAAIC,aAAa;MACnCmB,QAAQ,EAAElB,UAAU,IAAIC,cAAc;MACtCkB,MAAM,EAAEd,SAAS;MACjBe,KAAK,EAAEhB,SAAS;MAChBiB,aAAa,EAAEnB,eAAe,IAAIC,mBAAmB;MACrDmB,YAAY,EAAE9B;IAChB,CAAC,CAAC;IAAAL,QAAA,eAEFH,KAAA,CAACL,gBAAgB;MACf4C,KAAK,EAAE;QACL7B,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
+ {"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;MAAEgB,OAAO,EAAEL,KAAK,CAACM,SAAS;MAAEC,QAAQ,EAAEP,KAAK,CAACQ;IAAW,CAAC,CAAC;IAAAd,QAAA,GAE3EA,QAAQ,EACRM,KAAK,CAACQ,UAAU,GAAGX,iBAAiB,GAAG,IAAI;EAAA,CAC/B,CAAC;AAEpB,CACF,CAAC","ignoreList":[]}
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":"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","ignoreList":[]}
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":"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","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","Boolean","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
+ {"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":"AAUA,eAAO,MAAM,kBAAkB,GAAI,CAAC,EAAG,cAAc,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,sHAoEvE,CAAC"}
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqE5D"}
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;iCAsBlE,CAAC"}
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,gFAoGxE,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsDzD"}
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;AAM/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;iCAiMhF,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.23",
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.23"
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
- // TODO: Label is taking focus on keyboard navigation
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({ invalid: field.isInvalid, required: field.isRequired })}
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 { composeEventHandlers, mergeRefs, useFormControlContext } from '@cdx-ui/utils';
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
  >