@cdx-ui/components 0.0.1-beta.101 → 0.0.1-beta.102

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.
@@ -46,6 +46,21 @@ CheckboxRoot.displayName = 'Checkbox';
46
46
  // CHECKBOX INDICATOR (styled-only, reads context for data-* styling)
47
47
  // =============================================================================
48
48
 
49
+ /** Compound check × invalid × active state for native Uniwind selectors (single data-field-state). */
50
+ const INDICATOR_STATES = {
51
+ 'unchecked:false:false': 'idle',
52
+ 'unchecked:true:false': 'invalid',
53
+ 'unchecked:false:true': 'active',
54
+ 'unchecked:true:true': 'invalid-active',
55
+ 'checked:false:false': 'checked',
56
+ 'checked:true:false': 'checked-invalid',
57
+ 'checked:false:true': 'checked-active',
58
+ 'checked:true:true': 'checked-invalid-active',
59
+ 'indeterminate:false:false': 'indeterminate',
60
+ 'indeterminate:true:false': 'indeterminate-invalid',
61
+ 'indeterminate:false:true': 'indeterminate-active',
62
+ 'indeterminate:true:true': 'indeterminate-invalid-active'
63
+ };
49
64
  const CheckboxIndicator = /*#__PURE__*/(0, _react.forwardRef)(({
50
65
  asChild,
51
66
  className,
@@ -64,6 +79,8 @@ const CheckboxIndicator = /*#__PURE__*/(0, _react.forwardRef)(({
64
79
  isIndeterminate,
65
80
  isFocusVisible
66
81
  } = (0, _primitives.useCheckboxContext)();
82
+ const checkState = isIndeterminate ? 'indeterminate' : isChecked ? 'checked' : 'unchecked';
83
+ const fieldState = INDICATOR_STATES[`${checkState}:${isInvalid ? 'true' : 'false'}:${isPressed ? 'true' : 'false'}`];
67
84
  const computedClassName = (0, _utils.cn)((0, _styles.checkboxIndicatorVariants)(), className);
68
85
  const Comp = asChild ? _primitives.Slot : _reactNative.View;
69
86
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(Comp, {
@@ -81,7 +98,8 @@ const CheckboxIndicator = /*#__PURE__*/(0, _react.forwardRef)(({
81
98
  readonly: isReadOnly,
82
99
  active: isPressed,
83
100
  focused: isFocused,
84
- indeterminate: isIndeterminate
101
+ indeterminate: isIndeterminate,
102
+ fieldState
85
103
  })),
86
104
  children: children
87
105
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_icons","_primitives","_utils","_Icon","_styles","_jsxRuntime","CheckboxRoot","forwardRef","className","isIndeterminate","children","style","props","ref","computedClassName","cn","checkboxRootVariants","jsxs","mergeDataAttributes","dataAttributes","slot","jsx","CheckboxIndicator","CheckboxIconSlot","displayName","asChild","isChecked","isDisabled","isHovered","isInvalid","isReadOnly","isPressed","isFocused","isFocusVisible","useCheckboxContext","checkboxIndicatorVariants","Comp","Slot","View","hover","checked","disabled","focusVisible","invalid","readonly","active","focused","indeterminate","CheckboxIcon","checkboxIconVariants","Icon","isIndeterminateProp","showIcon","as","CheckIndeterminateSmall","Check","CheckboxLabel","checkboxLabelVariants","Text","CheckboxGroup","direction","value","onChange","viewProps","checkboxGroupVariants","Checkbox","exports","Object","assign","Indicator","Label","Group"],"sourceRoot":"../../../../src","sources":["components/Checkbox/index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","_icons","_primitives","_utils","_Icon","_styles","_jsxRuntime","CheckboxRoot","forwardRef","className","isIndeterminate","children","style","props","ref","computedClassName","cn","checkboxRootVariants","jsxs","mergeDataAttributes","dataAttributes","slot","jsx","CheckboxIndicator","CheckboxIconSlot","displayName","INDICATOR_STATES","asChild","isChecked","isDisabled","isHovered","isInvalid","isReadOnly","isPressed","isFocused","isFocusVisible","useCheckboxContext","checkState","fieldState","checkboxIndicatorVariants","Comp","Slot","View","hover","checked","disabled","focusVisible","invalid","readonly","active","focused","indeterminate","CheckboxIcon","checkboxIconVariants","Icon","isIndeterminateProp","showIcon","as","CheckIndeterminateSmall","Check","CheckboxLabel","checkboxLabelVariants","Text","CheckboxGroup","direction","value","onChange","viewProps","checkboxGroupVariants","Checkbox","exports","Object","assign","Indicator","Label","Group"],"sourceRoot":"../../../../src","sources":["components/Checkbox/index.tsx"],"mappings":"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","ignoreList":[]}
@@ -29,22 +29,24 @@ const checkboxIndicatorVariants = exports.checkboxIndicatorVariants = (0, _class
29
29
  // Hover — unchecked + invalid (overlay uses danger token)
30
30
  'data-[hover=true]:data-[invalid=true]:data-[checked=false]:data-[indeterminate=false]:bg-surface-danger-strong/[0.08]',
31
31
  // Hover — checked / indeterminate (bg + border darken together)
32
- 'data-[hover=true]:data-[checked=true]:bg-surface-action-strong-hover', 'data-[hover=true]:data-[checked=true]:border-[--color-surface-action-strong-hover]', 'data-[hover=true]:data-[indeterminate=true]:bg-surface-action-strong-hover', 'data-[hover=true]:data-[indeterminate=true]:border-[--color-surface-action-strong-hover]', 'data-[hover=true]:data-[checked=true]:data-[invalid=true]:bg-surface-danger-strong-hover', 'data-[hover=true]:data-[checked=true]:data-[invalid=true]:border-[--color-surface-danger-strong-hover]', 'data-[hover=true]:data-[indeterminate=true]:data-[invalid=true]:bg-surface-danger-strong-hover', 'data-[hover=true]:data-[indeterminate=true]:data-[invalid=true]:border-[--color-surface-danger-strong-hover]',
32
+ 'data-[hover=true]:data-[checked=true]:bg-surface-action-strong-hover', 'data-[hover=true]:data-[checked=true]:border-surface-action-strong-hover', 'data-[hover=true]:data-[indeterminate=true]:bg-surface-action-strong-hover', 'data-[hover=true]:data-[indeterminate=true]:border-surface-action-strong-hover', 'data-[hover=true]:data-[checked=true]:data-[invalid=true]:bg-surface-danger-strong-hover', 'data-[hover=true]:data-[checked=true]:data-[invalid=true]:border-surface-danger-strong-hover', 'data-[hover=true]:data-[indeterminate=true]:data-[invalid=true]:bg-surface-danger-strong-hover', 'data-[hover=true]:data-[indeterminate=true]:data-[invalid=true]:border-surface-danger-strong-hover',
33
33
  // Active — CSS :active pseudo-class (web root does not track press via data-active).
34
34
  // data-[hover=true] guard ensures active beats hover by specificity (0,3,0 > 0,2,0).
35
- 'web:active:data-[hover=true]:data-[checked=true]:bg-surface-action-strong-active', 'web:active:data-[hover=true]:data-[checked=true]:border-[--color-surface-action-strong-active]', 'web:active:data-[hover=true]:data-[indeterminate=true]:bg-surface-action-strong-active', 'web:active:data-[hover=true]:data-[indeterminate=true]:border-[--color-surface-action-strong-active]', 'web:active:data-[hover=true]:data-[checked=true]:data-[invalid=true]:bg-surface-danger-strong-active', 'web:active:data-[hover=true]:data-[checked=true]:data-[invalid=true]:border-[--color-surface-danger-strong-active]', 'web:active:data-[hover=true]:data-[indeterminate=true]:data-[invalid=true]:bg-surface-danger-strong-active', 'web:active:data-[hover=true]:data-[indeterminate=true]:data-[invalid=true]:border-[--color-surface-danger-strong-active]',
35
+ // Unchecked — border only (Radio pattern)
36
+ 'web:active:data-[hover=true]:data-[checked=false]:data-[indeterminate=false]:border-stroke-hover', 'web:active:data-[hover=true]:data-[invalid=true]:data-[checked=false]:data-[indeterminate=false]:border-surface-danger-strong-active', 'web:active:data-[hover=true]:data-[checked=true]:bg-surface-action-strong-active', 'web:active:data-[hover=true]:data-[checked=true]:border-surface-action-strong-active', 'web:active:data-[hover=true]:data-[indeterminate=true]:bg-surface-action-strong-active', 'web:active:data-[hover=true]:data-[indeterminate=true]:border-surface-action-strong-active', 'web:active:data-[hover=true]:data-[checked=true]:data-[invalid=true]:bg-surface-danger-strong-active', 'web:active:data-[hover=true]:data-[checked=true]:data-[invalid=true]:border-surface-danger-strong-active', 'web:active:data-[hover=true]:data-[indeterminate=true]:data-[invalid=true]:bg-surface-danger-strong-active', 'web:active:data-[hover=true]:data-[indeterminate=true]:data-[invalid=true]:border-surface-danger-strong-active',
36
37
  // Focus ring
37
38
  'web:data-[focus-visible=true]:outline-none', 'web:data-[focus-visible=true]:ring-2 web:data-[focus-visible=true]:ring-stroke-focus web:data-[focus-visible=true]:ring-offset-2'].join(' '),
38
39
  default: [
39
- // Invalid bg is NOT styled on native. Compound data-[] selectors cannot express
40
- // "invalid AND checked" without false-matching other states (Uniwind only evaluates
41
- // the last condition). Invalid state is communicated via border-stroke-danger (single
42
- // condition, always correct). The fill stays action-strong for checked/indeterminate.
43
- //
44
- // Active — native tracks press via data-[active] from usePress.
45
- // Place data-[active=true] last so the rule only fires during press.
46
- // 'data-[checked=false]:data-[invalid=true]:bg-transparent',
47
- 'data-[checked=true]:data-[invalid=true]:bg-surface-danger-strong', 'data-[checked=true]:data-[active=true]:bg-surface-action-strong-active', 'data-[checked=true]:data-[active=true]:data-[invalid=true]:bg-surface-danger-strong-active', 'data-[indeterminate=true]:data-[active=true]:bg-surface-action-strong-active'].join(' ')
40
+ // Native: Uniwind only evaluates the last data-[] condition in a compound chain.
41
+ // Use single-condition data-[field-state=...] selectors (emitted by CheckboxIndicator).
42
+ // checked/indeterminate + invalid → danger bg
43
+ 'data-[field-state=checked-invalid]:bg-surface-danger-strong', 'data-[field-state=indeterminate-invalid]:bg-surface-danger-strong',
44
+ // unchecked + active → border only (Radio pattern)
45
+ 'data-[field-state=active]:border-stroke-hover', 'data-[field-state=invalid-active]:border-surface-danger-strong-active',
46
+ // checked/indeterminate + active → action active bg + matching border
47
+ 'data-[field-state=checked-active]:bg-surface-action-strong-active', 'data-[field-state=checked-active]:border-surface-action-strong-active', 'data-[field-state=indeterminate-active]:bg-surface-action-strong-active', 'data-[field-state=indeterminate-active]:border-surface-action-strong-active',
48
+ // checked/indeterminate + invalid + active → danger active bg + matching border
49
+ 'data-[field-state=checked-invalid-active]:bg-surface-danger-strong-active', 'data-[field-state=checked-invalid-active]:border-surface-danger-strong-active', 'data-[field-state=indeterminate-invalid-active]:bg-surface-danger-strong-active', 'data-[field-state=indeterminate-invalid-active]:border-surface-danger-strong-active'].join(' ')
48
50
  })]);
49
51
  const checkboxIconVariants = exports.checkboxIconVariants = (0, _classVarianceAuthority.cva)(['text-white', 'h-5 w-5']);
50
52
  const checkboxLabelVariants = exports.checkboxLabelVariants = (0, _classVarianceAuthority.cva)(['text-content-primary text-base', 'data-[disabled=true]:text-content-tertiary']);
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_classVarianceAuthority","_primitives","checkboxRootVariants","exports","cva","DISABLED_OPACITY","DISABLED_CURSOR","checkboxIndicatorVariants","Platform","select","web","TRANSITION_COLORS","join","default","checkboxIconVariants","checkboxLabelVariants","checkboxGroupVariants","variants","direction","column","row","defaultVariants"],"sourceRoot":"../../../../src","sources":["components/Checkbox/styles.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAEA;;AAEO,MAAMG,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAAG,IAAAE,2BAAG,EAAC,CACtC,+BAA+B,EAC/BC,4BAAgB,EAChBC,2BAAe;AACf;AACA,wEAAwE,CACzE,CAAC;AAEK,MAAMC,yBAAyB,GAAAJ,OAAA,CAAAI,yBAAA,GAAG,IAAAH,2BAAG,EAAC,CAC3C,6BAA6B,EAC7B,SAAS,EACT,SAAS,EACT,uBAAuB,EACvB,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,yCAAyC,EACzC,8CAA8C,EAC9C,oDAAoD;AACpD;AACA,+CAA+C,EAC/C,0CAA0C,EAC1C,gDAAgD,EAChD,0CAA0C,EAC1CI,qBAAQ,CAACC,MAAM,CAAC;EACdC,GAAG,EAAE;EACH;EACA,kEAAkE,EAClE,wEAAwE,EACxEC,6BAAiB;EACjB;EACA,+FAA+F;EAC/F;EACA,uHAAuH;EACvH;EACA,sEAAsE,EACtE,oFAAoF,EACpF,4EAA4E,EAC5E,0FAA0F,EAC1F,0FAA0F,EAC1F,wGAAwG,EACxG,gGAAgG,EAChG,8GAA8G;EAC9G;EACA;EACA,kFAAkF,EAClF,gGAAgG,EAChG,wFAAwF,EACxF,sGAAsG,EACtG,sGAAsG,EACtG,oHAAoH,EACpH,4GAA4G,EAC5G,0HAA0H;EAC1H;EACA,4CAA4C,EAC5C,kIAAkI,CACnI,CAACC,IAAI,CAAC,GAAG,CAAC;EACXC,OAAO,EAAE;EACP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,kEAAkE,EAClE,wEAAwE,EACxE,4FAA4F,EAC5F,8EAA8E,CAC/E,CAACD,IAAI,CAAC,GAAG;AACZ,CAAC,CAAC,CACH,CAAC;AAEK,MAAME,oBAAoB,GAAAX,OAAA,CAAAW,oBAAA,GAAG,IAAAV,2BAAG,EAAC,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;AAE3D,MAAMW,qBAAqB,GAAAZ,OAAA,CAAAY,qBAAA,GAAG,IAAAX,2BAAG,EAAC,CACvC,gCAAgC,EAChC,4CAA4C,CAC7C,CAAC;AAEK,MAAMY,qBAAqB,GAAAb,OAAA,CAAAa,qBAAA,GAAG,IAAAZ,2BAAG,EAAC,EAAE,EAAE;EAC3Ca,QAAQ,EAAE;IACRC,SAAS,EAAE;MACTC,MAAM,EAAE,OAAO;MACfC,GAAG,EAAE;IACP;EACF,CAAC;EACDC,eAAe,EAAE;IACfH,SAAS,EAAE;EACb;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_classVarianceAuthority","_primitives","checkboxRootVariants","exports","cva","DISABLED_OPACITY","DISABLED_CURSOR","checkboxIndicatorVariants","Platform","select","web","TRANSITION_COLORS","join","default","checkboxIconVariants","checkboxLabelVariants","checkboxGroupVariants","variants","direction","column","row","defaultVariants"],"sourceRoot":"../../../../src","sources":["components/Checkbox/styles.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAEA;;AAEO,MAAMG,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAAG,IAAAE,2BAAG,EAAC,CACtC,+BAA+B,EAC/BC,4BAAgB,EAChBC,2BAAe;AACf;AACA,wEAAwE,CACzE,CAAC;AAEK,MAAMC,yBAAyB,GAAAJ,OAAA,CAAAI,yBAAA,GAAG,IAAAH,2BAAG,EAAC,CAC3C,6BAA6B,EAC7B,SAAS,EACT,SAAS,EACT,uBAAuB,EACvB,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,yCAAyC,EACzC,8CAA8C,EAC9C,oDAAoD;AACpD;AACA,+CAA+C,EAC/C,0CAA0C,EAC1C,gDAAgD,EAChD,0CAA0C,EAC1CI,qBAAQ,CAACC,MAAM,CAAC;EACdC,GAAG,EAAE;EACH;EACA,kEAAkE,EAClE,wEAAwE,EACxEC,6BAAiB;EACjB;EACA,+FAA+F;EAC/F;EACA,uHAAuH;EACvH;EACA,sEAAsE,EACtE,0EAA0E,EAC1E,4EAA4E,EAC5E,gFAAgF,EAChF,0FAA0F,EAC1F,8FAA8F,EAC9F,gGAAgG,EAChG,oGAAoG;EACpG;EACA;EACA;EACA,kGAAkG,EAClG,sIAAsI,EACtI,kFAAkF,EAClF,sFAAsF,EACtF,wFAAwF,EACxF,4FAA4F,EAC5F,sGAAsG,EACtG,0GAA0G,EAC1G,4GAA4G,EAC5G,gHAAgH;EAChH;EACA,4CAA4C,EAC5C,kIAAkI,CACnI,CAACC,IAAI,CAAC,GAAG,CAAC;EACXC,OAAO,EAAE;EACP;EACA;EACA;EACA,6DAA6D,EAC7D,mEAAmE;EACnE;EACA,+CAA+C,EAC/C,uEAAuE;EACvE;EACA,mEAAmE,EACnE,uEAAuE,EACvE,yEAAyE,EACzE,6EAA6E;EAC7E;EACA,2EAA2E,EAC3E,+EAA+E,EAC/E,iFAAiF,EACjF,qFAAqF,CACtF,CAACD,IAAI,CAAC,GAAG;AACZ,CAAC,CAAC,CACH,CAAC;AAEK,MAAME,oBAAoB,GAAAX,OAAA,CAAAW,oBAAA,GAAG,IAAAV,2BAAG,EAAC,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;AAE3D,MAAMW,qBAAqB,GAAAZ,OAAA,CAAAY,qBAAA,GAAG,IAAAX,2BAAG,EAAC,CACvC,gCAAgC,EAChC,4CAA4C,CAC7C,CAAC;AAEK,MAAMY,qBAAqB,GAAAb,OAAA,CAAAa,qBAAA,GAAG,IAAAZ,2BAAG,EAAC,EAAE,EAAE;EAC3Ca,QAAQ,EAAE;IACRC,SAAS,EAAE;MACTC,MAAM,EAAE,OAAO;MACfC,GAAG,EAAE;IACP;EACF,CAAC;EACDC,eAAe,EAAE;IACfH,SAAS,EAAE;EACb;AACF,CAAC,CAAC","ignoreList":[]}
@@ -38,6 +38,17 @@ RadioRoot.displayName = 'Radio';
38
38
  // RADIO INDICATOR (styled-only, reads context for data-* styling)
39
39
  // =============================================================================
40
40
 
41
+ /** Compound checked × invalid × active state for native Uniwind selectors (single data-field-state). */
42
+ const INDICATOR_STATES = {
43
+ 'unchecked:false:false': 'idle',
44
+ 'unchecked:true:false': 'invalid',
45
+ 'unchecked:false:true': 'active',
46
+ 'unchecked:true:true': 'invalid-active',
47
+ 'checked:false:false': 'checked',
48
+ 'checked:true:false': 'checked-invalid',
49
+ 'checked:false:true': 'checked-active',
50
+ 'checked:true:true': 'checked-invalid-active'
51
+ };
41
52
  const RadioIndicator = /*#__PURE__*/(0, _react.forwardRef)(({
42
53
  asChild,
43
54
  className,
@@ -54,6 +65,8 @@ const RadioIndicator = /*#__PURE__*/(0, _react.forwardRef)(({
54
65
  isPressed,
55
66
  isFocusVisible
56
67
  } = (0, _primitives.useRadioContext)();
68
+ const checkState = isChecked ? 'checked' : 'unchecked';
69
+ const fieldState = INDICATOR_STATES[`${checkState}:${isInvalid ? 'true' : 'false'}:${isPressed ? 'true' : 'false'}`];
57
70
  const computedClassName = (0, _utils.cn)((0, _styles.radioIndicatorVariants)(), className);
58
71
  const Comp = asChild ? _primitives.Slot : _reactNative.View;
59
72
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Comp, {
@@ -69,14 +82,16 @@ const RadioIndicator = /*#__PURE__*/(0, _react.forwardRef)(({
69
82
  focusVisible: isFocusVisible,
70
83
  invalid: isInvalid,
71
84
  readonly: isReadOnly,
72
- active: isPressed
85
+ active: isPressed,
86
+ fieldState
73
87
  })),
74
88
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
75
89
  className: (0, _utils.cn)((0, _styles.radioInnerDotVariants)()),
76
90
  ...(0, _primitives.dataAttributes)({
77
91
  checked: isChecked,
78
92
  invalid: isInvalid,
79
- hover: isHovered
93
+ hover: isHovered,
94
+ fieldState
80
95
  })
81
96
  }), children]
82
97
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_primitives","_utils","_styles","_jsxRuntime","RadioRoot","forwardRef","className","children","style","props","ref","computedClassName","cn","radioRootVariants","jsxs","mergeDataAttributes","dataAttributes","slot","jsx","RadioIndicator","displayName","asChild","isChecked","isDisabled","isHovered","isInvalid","isReadOnly","isPressed","isFocusVisible","useRadioContext","radioIndicatorVariants","Comp","Slot","View","hover","checked","disabled","focusVisible","invalid","readonly","active","radioInnerDotVariants","RadioLabel","radioLabelVariants","Text","RadioGroup","direction","value","defaultValue","onChange","isRequired","name","viewProps","radioGroupVariants","Radio","exports","Object","assign","Indicator","Label","Group"],"sourceRoot":"../../../../src","sources":["components/Radio/index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","_primitives","_utils","_styles","_jsxRuntime","RadioRoot","forwardRef","className","children","style","props","ref","computedClassName","cn","radioRootVariants","jsxs","mergeDataAttributes","dataAttributes","slot","jsx","RadioIndicator","displayName","INDICATOR_STATES","asChild","isChecked","isDisabled","isHovered","isInvalid","isReadOnly","isPressed","isFocusVisible","useRadioContext","checkState","fieldState","radioIndicatorVariants","Comp","Slot","View","hover","checked","disabled","focusVisible","invalid","readonly","active","radioInnerDotVariants","RadioLabel","radioLabelVariants","Text","RadioGroup","direction","value","defaultValue","onChange","isRequired","name","viewProps","radioGroupVariants","Radio","exports","Object","assign","Indicator","Label","Group"],"sourceRoot":"../../../../src","sources":["components/Radio/index.tsx"],"mappings":"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","ignoreList":[]}
@@ -8,13 +8,25 @@ var _reactNative = require("react-native");
8
8
  var _classVarianceAuthority = require("class-variance-authority");
9
9
  var _primitives = require("../../styles/primitives");
10
10
  const radioRootVariants = exports.radioRootVariants = (0, _classVarianceAuthority.cva)(['flex-row items-center gap-2', 'data-[disabled=true]:opacity-[var(--opacity-disabled)]', _primitives.DISABLED_CURSOR]);
11
- const radioIndicatorVariants = exports.radioIndicatorVariants = (0, _classVarianceAuthority.cva)(['items-center justify-center', 'rounded-[var(--border-radius-round)]', 'border-[length:var(--border-width-selected)]', 'h-5 w-5', 'bg-surface-primary', 'data-[checked=false]:border-content-secondary', 'data-[checked=true]:border-stroke-action', 'data-[invalid=true]:border-stroke-danger', 'data-[checked=true]:data-[invalid=true]:border-stroke-danger', _reactNative.Platform.select({
12
- web: [_primitives.TRANSITION_COLORS, 'data-[hover=true]:data-[checked=true]:border-surface-action-strong-hover', 'data-[hover=true]:data-[invalid=true]:border-surface-danger-strong-hover', 'web:data-[focus-visible=true]:outline-none', 'web:data-[focus-visible=true]:ring-2 web:data-[focus-visible=true]:ring-stroke-focus web:data-[focus-visible=true]:ring-offset-2'].join(' '),
13
- default: ''
11
+ const radioIndicatorVariants = exports.radioIndicatorVariants = (0, _classVarianceAuthority.cva)(['items-center justify-center', 'rounded-[var(--border-radius-round)]', 'border-[length:var(--border-width-selected)]', 'h-5 w-5', 'bg-surface-primary', 'data-[checked=false]:border-content-secondary', 'data-[checked=true]:border-stroke-action', 'data-[invalid=true]:border-stroke-danger', _reactNative.Platform.select({
12
+ web: [_primitives.TRANSITION_COLORS, 'group',
13
+ // Hover — unchecked (Figma: border unchanged, bg overlay at opacity/hover)
14
+ 'data-[hover=true]:data-[checked=false]:bg-content-secondary/[0.08]',
15
+ // Hover — unchecked + invalid (overlay uses danger token)
16
+ 'data-[hover=true]:data-[invalid=true]:data-[checked=false]:bg-surface-danger-strong/[0.08]', 'data-[hover=true]:data-[checked=true]:border-surface-action-strong-hover', 'data-[hover=true]:data-[invalid=true]:border-surface-danger-strong-hover',
17
+ // Active — CSS :active (web root does not track press via data-active).
18
+ // data-[hover=true] guard ensures active beats hover by specificity (0,3,0 > 0,2,0).
19
+ 'web:active:data-[hover=true]:data-[checked=false]:border-stroke-hover', 'web:active:data-[hover=true]:data-[invalid=true]:data-[checked=false]:border-surface-danger-strong-active', 'web:active:data-[hover=true]:data-[checked=true]:border-surface-action-strong-active', 'web:active:data-[hover=true]:data-[checked=true]:data-[invalid=true]:border-surface-danger-strong-active', 'web:data-[focus-visible=true]:outline-none', 'web:data-[focus-visible=true]:ring-2 web:data-[focus-visible=true]:ring-stroke-focus web:data-[focus-visible=true]:ring-offset-2'].join(' '),
20
+ default: [
21
+ // Native: Uniwind only evaluates the last data-[] condition in a compound chain.
22
+ // Use single-condition data-[field-state=...] selectors (emitted by RadioIndicator).
23
+ 'data-[field-state=active]:border-stroke-hover', 'data-[field-state=invalid-active]:border-surface-danger-strong-active', 'data-[field-state=checked-active]:border-surface-action-strong-active', 'data-[field-state=checked-invalid-active]:border-surface-danger-strong-active'].join(' ')
14
24
  })]);
15
25
  const radioInnerDotVariants = exports.radioInnerDotVariants = (0, _classVarianceAuthority.cva)(['rounded-[var(--border-radius-round)]', 'h-2.5 w-2.5', 'scale-0', 'data-[checked=true]:scale-100', 'bg-surface-action-strong', 'data-[invalid=true]:bg-surface-danger-strong', _reactNative.Platform.select({
16
- web: ['data-[hover=true]:bg-surface-action-strong-hover', 'data-[hover=true]:data-[invalid=true]:bg-surface-danger-strong-hover'].join(' '),
17
- default: ''
26
+ web: ['data-[hover=true]:bg-surface-action-strong-hover', 'data-[hover=true]:data-[invalid=true]:bg-surface-danger-strong-hover',
27
+ // Active via group-active on indicator (inner dot is not the :active target).
28
+ 'web:group-active:data-[hover=true]:data-[checked=true]:bg-surface-action-strong-active', 'web:group-active:data-[hover=true]:data-[checked=true]:data-[invalid=true]:bg-surface-danger-strong-active'].join(' '),
29
+ default: ['data-[field-state=checked-active]:bg-surface-action-strong-active', 'data-[field-state=checked-invalid-active]:bg-surface-danger-strong-active'].join(' ')
18
30
  })]);
19
31
  const radioLabelVariants = exports.radioLabelVariants = (0, _classVarianceAuthority.cva)(['body-md', 'text-content-primary']);
20
32
  const radioGroupVariants = exports.radioGroupVariants = (0, _classVarianceAuthority.cva)([], {
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_classVarianceAuthority","_primitives","radioRootVariants","exports","cva","DISABLED_CURSOR","radioIndicatorVariants","Platform","select","web","TRANSITION_COLORS","join","default","radioInnerDotVariants","radioLabelVariants","radioGroupVariants","variants","direction","column","row","defaultVariants"],"sourceRoot":"../../../../src","sources":["components/Radio/styles.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAEO,MAAMG,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,IAAAE,2BAAG,EAAC,CACnC,6BAA6B,EAC7B,wDAAwD,EACxDC,2BAAe,CAChB,CAAC;AAEK,MAAMC,sBAAsB,GAAAH,OAAA,CAAAG,sBAAA,GAAG,IAAAF,2BAAG,EAAC,CACxC,6BAA6B,EAC7B,sCAAsC,EACtC,8CAA8C,EAC9C,SAAS,EACT,oBAAoB,EACpB,+CAA+C,EAC/C,0CAA0C,EAC1C,0CAA0C,EAC1C,8DAA8D,EAC9DG,qBAAQ,CAACC,MAAM,CAAC;EACdC,GAAG,EAAE,CACHC,6BAAiB,EACjB,0EAA0E,EAC1E,0EAA0E,EAC1E,4CAA4C,EAC5C,kIAAkI,CACnI,CAACC,IAAI,CAAC,GAAG,CAAC;EACXC,OAAO,EAAE;AACX,CAAC,CAAC,CACH,CAAC;AAEK,MAAMC,qBAAqB,GAAAV,OAAA,CAAAU,qBAAA,GAAG,IAAAT,2BAAG,EAAC,CACvC,sCAAsC,EACtC,aAAa,EACb,SAAS,EACT,+BAA+B,EAC/B,0BAA0B,EAC1B,8CAA8C,EAC9CG,qBAAQ,CAACC,MAAM,CAAC;EACdC,GAAG,EAAE,CACH,kDAAkD,EAClD,sEAAsE,CACvE,CAACE,IAAI,CAAC,GAAG,CAAC;EACXC,OAAO,EAAE;AACX,CAAC,CAAC,CACH,CAAC;AAEK,MAAME,kBAAkB,GAAAX,OAAA,CAAAW,kBAAA,GAAG,IAAAV,2BAAG,EAAC,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;AAEnE,MAAMW,kBAAkB,GAAAZ,OAAA,CAAAY,kBAAA,GAAG,IAAAX,2BAAG,EAAC,EAAE,EAAE;EACxCY,QAAQ,EAAE;IACRC,SAAS,EAAE;MACTC,MAAM,EAAE,OAAO;MACfC,GAAG,EAAE;IACP;EACF,CAAC;EACDC,eAAe,EAAE;IAAEH,SAAS,EAAE;EAAS;AACzC,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_classVarianceAuthority","_primitives","radioRootVariants","exports","cva","DISABLED_CURSOR","radioIndicatorVariants","Platform","select","web","TRANSITION_COLORS","join","default","radioInnerDotVariants","radioLabelVariants","radioGroupVariants","variants","direction","column","row","defaultVariants"],"sourceRoot":"../../../../src","sources":["components/Radio/styles.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAEO,MAAMG,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,IAAAE,2BAAG,EAAC,CACnC,6BAA6B,EAC7B,wDAAwD,EACxDC,2BAAe,CAChB,CAAC;AAEK,MAAMC,sBAAsB,GAAAH,OAAA,CAAAG,sBAAA,GAAG,IAAAF,2BAAG,EAAC,CACxC,6BAA6B,EAC7B,sCAAsC,EACtC,8CAA8C,EAC9C,SAAS,EACT,oBAAoB,EACpB,+CAA+C,EAC/C,0CAA0C,EAC1C,0CAA0C,EAC1CG,qBAAQ,CAACC,MAAM,CAAC;EACdC,GAAG,EAAE,CACHC,6BAAiB,EACjB,OAAO;EACP;EACA,oEAAoE;EACpE;EACA,4FAA4F,EAC5F,0EAA0E,EAC1E,0EAA0E;EAC1E;EACA;EACA,uEAAuE,EACvE,2GAA2G,EAC3G,sFAAsF,EACtF,0GAA0G,EAC1G,4CAA4C,EAC5C,kIAAkI,CACnI,CAACC,IAAI,CAAC,GAAG,CAAC;EACXC,OAAO,EAAE;EACP;EACA;EACA,+CAA+C,EAC/C,uEAAuE,EACvE,uEAAuE,EACvE,+EAA+E,CAChF,CAACD,IAAI,CAAC,GAAG;AACZ,CAAC,CAAC,CACH,CAAC;AAEK,MAAME,qBAAqB,GAAAV,OAAA,CAAAU,qBAAA,GAAG,IAAAT,2BAAG,EAAC,CACvC,sCAAsC,EACtC,aAAa,EACb,SAAS,EACT,+BAA+B,EAC/B,0BAA0B,EAC1B,8CAA8C,EAC9CG,qBAAQ,CAACC,MAAM,CAAC;EACdC,GAAG,EAAE,CACH,kDAAkD,EAClD,sEAAsE;EACtE;EACA,wFAAwF,EACxF,4GAA4G,CAC7G,CAACE,IAAI,CAAC,GAAG,CAAC;EACXC,OAAO,EAAE,CACP,mEAAmE,EACnE,2EAA2E,CAC5E,CAACD,IAAI,CAAC,GAAG;AACZ,CAAC,CAAC,CACH,CAAC;AAEK,MAAMG,kBAAkB,GAAAX,OAAA,CAAAW,kBAAA,GAAG,IAAAV,2BAAG,EAAC,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;AAEnE,MAAMW,kBAAkB,GAAAZ,OAAA,CAAAY,kBAAA,GAAG,IAAAX,2BAAG,EAAC,EAAE,EAAE;EACxCY,QAAQ,EAAE;IACRC,SAAS,EAAE;MACTC,MAAM,EAAE,OAAO;MACfC,GAAG,EAAE;IACP;EACF,CAAC;EACDC,eAAe,EAAE;IAAEH,SAAS,EAAE;EAAS;AACzC,CAAC,CAAC","ignoreList":[]}
@@ -42,6 +42,21 @@ CheckboxRoot.displayName = 'Checkbox';
42
42
  // CHECKBOX INDICATOR (styled-only, reads context for data-* styling)
43
43
  // =============================================================================
44
44
 
45
+ /** Compound check × invalid × active state for native Uniwind selectors (single data-field-state). */
46
+ const INDICATOR_STATES = {
47
+ 'unchecked:false:false': 'idle',
48
+ 'unchecked:true:false': 'invalid',
49
+ 'unchecked:false:true': 'active',
50
+ 'unchecked:true:true': 'invalid-active',
51
+ 'checked:false:false': 'checked',
52
+ 'checked:true:false': 'checked-invalid',
53
+ 'checked:false:true': 'checked-active',
54
+ 'checked:true:true': 'checked-invalid-active',
55
+ 'indeterminate:false:false': 'indeterminate',
56
+ 'indeterminate:true:false': 'indeterminate-invalid',
57
+ 'indeterminate:false:true': 'indeterminate-active',
58
+ 'indeterminate:true:true': 'indeterminate-invalid-active'
59
+ };
45
60
  const CheckboxIndicator = /*#__PURE__*/forwardRef(({
46
61
  asChild,
47
62
  className,
@@ -60,6 +75,8 @@ const CheckboxIndicator = /*#__PURE__*/forwardRef(({
60
75
  isIndeterminate,
61
76
  isFocusVisible
62
77
  } = useCheckboxContext();
78
+ const checkState = isIndeterminate ? 'indeterminate' : isChecked ? 'checked' : 'unchecked';
79
+ const fieldState = INDICATOR_STATES[`${checkState}:${isInvalid ? 'true' : 'false'}:${isPressed ? 'true' : 'false'}`];
63
80
  const computedClassName = cn(checkboxIndicatorVariants(), className);
64
81
  const Comp = asChild ? Slot : View;
65
82
  return /*#__PURE__*/_jsx(Comp, {
@@ -77,7 +94,8 @@ const CheckboxIndicator = /*#__PURE__*/forwardRef(({
77
94
  readonly: isReadOnly,
78
95
  active: isPressed,
79
96
  focused: isFocused,
80
- indeterminate: isIndeterminate
97
+ indeterminate: isIndeterminate,
98
+ fieldState
81
99
  })),
82
100
  children: children
83
101
  });
@@ -1 +1 @@
1
- {"version":3,"names":["forwardRef","Text","View","Check","CheckIndeterminateSmall","CheckboxRoot","CheckboxRootPrimitive","CheckboxGroup","CheckboxGroupPrimitive","Slot","dataAttributes","mergeDataAttributes","useCheckboxContext","cn","Icon","checkboxGroupVariants","checkboxIconVariants","checkboxIndicatorVariants","checkboxLabelVariants","checkboxRootVariants","jsx","_jsx","jsxs","_jsxs","className","isIndeterminate","children","style","props","ref","computedClassName","slot","CheckboxIndicator","CheckboxIconSlot","displayName","asChild","isChecked","isDisabled","isHovered","isInvalid","isReadOnly","isPressed","isFocused","isFocusVisible","Comp","hover","checked","disabled","focusVisible","invalid","readonly","active","focused","indeterminate","CheckboxIcon","isIndeterminateProp","showIcon","as","CheckboxLabel","direction","value","onChange","viewProps","Checkbox","Object","assign","Indicator","Label","Group"],"sourceRoot":"../../../../src","sources":["components/Checkbox/index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["forwardRef","Text","View","Check","CheckIndeterminateSmall","CheckboxRoot","CheckboxRootPrimitive","CheckboxGroup","CheckboxGroupPrimitive","Slot","dataAttributes","mergeDataAttributes","useCheckboxContext","cn","Icon","checkboxGroupVariants","checkboxIconVariants","checkboxIndicatorVariants","checkboxLabelVariants","checkboxRootVariants","jsx","_jsx","jsxs","_jsxs","className","isIndeterminate","children","style","props","ref","computedClassName","slot","CheckboxIndicator","CheckboxIconSlot","displayName","INDICATOR_STATES","asChild","isChecked","isDisabled","isHovered","isInvalid","isReadOnly","isPressed","isFocused","isFocusVisible","checkState","fieldState","Comp","hover","checked","disabled","focusVisible","invalid","readonly","active","focused","indeterminate","CheckboxIcon","isIndeterminateProp","showIcon","as","CheckboxLabel","direction","value","onChange","viewProps","Checkbox","Object","assign","Indicator","Label","Group"],"sourceRoot":"../../../../src","sources":["components/Checkbox/index.tsx"],"mappings":"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","ignoreList":[]}
@@ -26,22 +26,24 @@ export const checkboxIndicatorVariants = cva(['items-center justify-center', 'h-
26
26
  // Hover — unchecked + invalid (overlay uses danger token)
27
27
  'data-[hover=true]:data-[invalid=true]:data-[checked=false]:data-[indeterminate=false]:bg-surface-danger-strong/[0.08]',
28
28
  // Hover — checked / indeterminate (bg + border darken together)
29
- 'data-[hover=true]:data-[checked=true]:bg-surface-action-strong-hover', 'data-[hover=true]:data-[checked=true]:border-[--color-surface-action-strong-hover]', 'data-[hover=true]:data-[indeterminate=true]:bg-surface-action-strong-hover', 'data-[hover=true]:data-[indeterminate=true]:border-[--color-surface-action-strong-hover]', 'data-[hover=true]:data-[checked=true]:data-[invalid=true]:bg-surface-danger-strong-hover', 'data-[hover=true]:data-[checked=true]:data-[invalid=true]:border-[--color-surface-danger-strong-hover]', 'data-[hover=true]:data-[indeterminate=true]:data-[invalid=true]:bg-surface-danger-strong-hover', 'data-[hover=true]:data-[indeterminate=true]:data-[invalid=true]:border-[--color-surface-danger-strong-hover]',
29
+ 'data-[hover=true]:data-[checked=true]:bg-surface-action-strong-hover', 'data-[hover=true]:data-[checked=true]:border-surface-action-strong-hover', 'data-[hover=true]:data-[indeterminate=true]:bg-surface-action-strong-hover', 'data-[hover=true]:data-[indeterminate=true]:border-surface-action-strong-hover', 'data-[hover=true]:data-[checked=true]:data-[invalid=true]:bg-surface-danger-strong-hover', 'data-[hover=true]:data-[checked=true]:data-[invalid=true]:border-surface-danger-strong-hover', 'data-[hover=true]:data-[indeterminate=true]:data-[invalid=true]:bg-surface-danger-strong-hover', 'data-[hover=true]:data-[indeterminate=true]:data-[invalid=true]:border-surface-danger-strong-hover',
30
30
  // Active — CSS :active pseudo-class (web root does not track press via data-active).
31
31
  // data-[hover=true] guard ensures active beats hover by specificity (0,3,0 > 0,2,0).
32
- 'web:active:data-[hover=true]:data-[checked=true]:bg-surface-action-strong-active', 'web:active:data-[hover=true]:data-[checked=true]:border-[--color-surface-action-strong-active]', 'web:active:data-[hover=true]:data-[indeterminate=true]:bg-surface-action-strong-active', 'web:active:data-[hover=true]:data-[indeterminate=true]:border-[--color-surface-action-strong-active]', 'web:active:data-[hover=true]:data-[checked=true]:data-[invalid=true]:bg-surface-danger-strong-active', 'web:active:data-[hover=true]:data-[checked=true]:data-[invalid=true]:border-[--color-surface-danger-strong-active]', 'web:active:data-[hover=true]:data-[indeterminate=true]:data-[invalid=true]:bg-surface-danger-strong-active', 'web:active:data-[hover=true]:data-[indeterminate=true]:data-[invalid=true]:border-[--color-surface-danger-strong-active]',
32
+ // Unchecked — border only (Radio pattern)
33
+ 'web:active:data-[hover=true]:data-[checked=false]:data-[indeterminate=false]:border-stroke-hover', 'web:active:data-[hover=true]:data-[invalid=true]:data-[checked=false]:data-[indeterminate=false]:border-surface-danger-strong-active', 'web:active:data-[hover=true]:data-[checked=true]:bg-surface-action-strong-active', 'web:active:data-[hover=true]:data-[checked=true]:border-surface-action-strong-active', 'web:active:data-[hover=true]:data-[indeterminate=true]:bg-surface-action-strong-active', 'web:active:data-[hover=true]:data-[indeterminate=true]:border-surface-action-strong-active', 'web:active:data-[hover=true]:data-[checked=true]:data-[invalid=true]:bg-surface-danger-strong-active', 'web:active:data-[hover=true]:data-[checked=true]:data-[invalid=true]:border-surface-danger-strong-active', 'web:active:data-[hover=true]:data-[indeterminate=true]:data-[invalid=true]:bg-surface-danger-strong-active', 'web:active:data-[hover=true]:data-[indeterminate=true]:data-[invalid=true]:border-surface-danger-strong-active',
33
34
  // Focus ring
34
35
  'web:data-[focus-visible=true]:outline-none', 'web:data-[focus-visible=true]:ring-2 web:data-[focus-visible=true]:ring-stroke-focus web:data-[focus-visible=true]:ring-offset-2'].join(' '),
35
36
  default: [
36
- // Invalid bg is NOT styled on native. Compound data-[] selectors cannot express
37
- // "invalid AND checked" without false-matching other states (Uniwind only evaluates
38
- // the last condition). Invalid state is communicated via border-stroke-danger (single
39
- // condition, always correct). The fill stays action-strong for checked/indeterminate.
40
- //
41
- // Active — native tracks press via data-[active] from usePress.
42
- // Place data-[active=true] last so the rule only fires during press.
43
- // 'data-[checked=false]:data-[invalid=true]:bg-transparent',
44
- 'data-[checked=true]:data-[invalid=true]:bg-surface-danger-strong', 'data-[checked=true]:data-[active=true]:bg-surface-action-strong-active', 'data-[checked=true]:data-[active=true]:data-[invalid=true]:bg-surface-danger-strong-active', 'data-[indeterminate=true]:data-[active=true]:bg-surface-action-strong-active'].join(' ')
37
+ // Native: Uniwind only evaluates the last data-[] condition in a compound chain.
38
+ // Use single-condition data-[field-state=...] selectors (emitted by CheckboxIndicator).
39
+ // checked/indeterminate + invalid → danger bg
40
+ 'data-[field-state=checked-invalid]:bg-surface-danger-strong', 'data-[field-state=indeterminate-invalid]:bg-surface-danger-strong',
41
+ // unchecked + active → border only (Radio pattern)
42
+ 'data-[field-state=active]:border-stroke-hover', 'data-[field-state=invalid-active]:border-surface-danger-strong-active',
43
+ // checked/indeterminate + active → action active bg + matching border
44
+ 'data-[field-state=checked-active]:bg-surface-action-strong-active', 'data-[field-state=checked-active]:border-surface-action-strong-active', 'data-[field-state=indeterminate-active]:bg-surface-action-strong-active', 'data-[field-state=indeterminate-active]:border-surface-action-strong-active',
45
+ // checked/indeterminate + invalid + active → danger active bg + matching border
46
+ 'data-[field-state=checked-invalid-active]:bg-surface-danger-strong-active', 'data-[field-state=checked-invalid-active]:border-surface-danger-strong-active', 'data-[field-state=indeterminate-invalid-active]:bg-surface-danger-strong-active', 'data-[field-state=indeterminate-invalid-active]:border-surface-danger-strong-active'].join(' ')
45
47
  })]);
46
48
  export const checkboxIconVariants = cva(['text-white', 'h-5 w-5']);
47
49
  export const checkboxLabelVariants = cva(['text-content-primary text-base', 'data-[disabled=true]:text-content-tertiary']);
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","cva","DISABLED_CURSOR","DISABLED_OPACITY","TRANSITION_COLORS","checkboxRootVariants","checkboxIndicatorVariants","select","web","join","default","checkboxIconVariants","checkboxLabelVariants","checkboxGroupVariants","variants","direction","column","row","defaultVariants"],"sourceRoot":"../../../../src","sources":["components/Checkbox/styles.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;AACvC,SAASC,GAAG,QAAQ,0BAA0B;AAC9C,SAASC,eAAe,EAAEC,gBAAgB,EAAEC,iBAAiB,QAAQ,yBAAyB;;AAE9F;;AAEA,OAAO,MAAMC,oBAAoB,GAAGJ,GAAG,CAAC,CACtC,+BAA+B,EAC/BE,gBAAgB,EAChBD,eAAe;AACf;AACA,wEAAwE,CACzE,CAAC;AAEF,OAAO,MAAMI,yBAAyB,GAAGL,GAAG,CAAC,CAC3C,6BAA6B,EAC7B,SAAS,EACT,SAAS,EACT,uBAAuB,EACvB,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,yCAAyC,EACzC,8CAA8C,EAC9C,oDAAoD;AACpD;AACA,+CAA+C,EAC/C,0CAA0C,EAC1C,gDAAgD,EAChD,0CAA0C,EAC1CD,QAAQ,CAACO,MAAM,CAAC;EACdC,GAAG,EAAE;EACH;EACA,kEAAkE,EAClE,wEAAwE,EACxEJ,iBAAiB;EACjB;EACA,+FAA+F;EAC/F;EACA,uHAAuH;EACvH;EACA,sEAAsE,EACtE,oFAAoF,EACpF,4EAA4E,EAC5E,0FAA0F,EAC1F,0FAA0F,EAC1F,wGAAwG,EACxG,gGAAgG,EAChG,8GAA8G;EAC9G;EACA;EACA,kFAAkF,EAClF,gGAAgG,EAChG,wFAAwF,EACxF,sGAAsG,EACtG,sGAAsG,EACtG,oHAAoH,EACpH,4GAA4G,EAC5G,0HAA0H;EAC1H;EACA,4CAA4C,EAC5C,kIAAkI,CACnI,CAACK,IAAI,CAAC,GAAG,CAAC;EACXC,OAAO,EAAE;EACP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,kEAAkE,EAClE,wEAAwE,EACxE,4FAA4F,EAC5F,8EAA8E,CAC/E,CAACD,IAAI,CAAC,GAAG;AACZ,CAAC,CAAC,CACH,CAAC;AAEF,OAAO,MAAME,oBAAoB,GAAGV,GAAG,CAAC,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;AAElE,OAAO,MAAMW,qBAAqB,GAAGX,GAAG,CAAC,CACvC,gCAAgC,EAChC,4CAA4C,CAC7C,CAAC;AAEF,OAAO,MAAMY,qBAAqB,GAAGZ,GAAG,CAAC,EAAE,EAAE;EAC3Ca,QAAQ,EAAE;IACRC,SAAS,EAAE;MACTC,MAAM,EAAE,OAAO;MACfC,GAAG,EAAE;IACP;EACF,CAAC;EACDC,eAAe,EAAE;IACfH,SAAS,EAAE;EACb;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Platform","cva","DISABLED_CURSOR","DISABLED_OPACITY","TRANSITION_COLORS","checkboxRootVariants","checkboxIndicatorVariants","select","web","join","default","checkboxIconVariants","checkboxLabelVariants","checkboxGroupVariants","variants","direction","column","row","defaultVariants"],"sourceRoot":"../../../../src","sources":["components/Checkbox/styles.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;AACvC,SAASC,GAAG,QAAQ,0BAA0B;AAC9C,SAASC,eAAe,EAAEC,gBAAgB,EAAEC,iBAAiB,QAAQ,yBAAyB;;AAE9F;;AAEA,OAAO,MAAMC,oBAAoB,GAAGJ,GAAG,CAAC,CACtC,+BAA+B,EAC/BE,gBAAgB,EAChBD,eAAe;AACf;AACA,wEAAwE,CACzE,CAAC;AAEF,OAAO,MAAMI,yBAAyB,GAAGL,GAAG,CAAC,CAC3C,6BAA6B,EAC7B,SAAS,EACT,SAAS,EACT,uBAAuB,EACvB,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,yCAAyC,EACzC,8CAA8C,EAC9C,oDAAoD;AACpD;AACA,+CAA+C,EAC/C,0CAA0C,EAC1C,gDAAgD,EAChD,0CAA0C,EAC1CD,QAAQ,CAACO,MAAM,CAAC;EACdC,GAAG,EAAE;EACH;EACA,kEAAkE,EAClE,wEAAwE,EACxEJ,iBAAiB;EACjB;EACA,+FAA+F;EAC/F;EACA,uHAAuH;EACvH;EACA,sEAAsE,EACtE,0EAA0E,EAC1E,4EAA4E,EAC5E,gFAAgF,EAChF,0FAA0F,EAC1F,8FAA8F,EAC9F,gGAAgG,EAChG,oGAAoG;EACpG;EACA;EACA;EACA,kGAAkG,EAClG,sIAAsI,EACtI,kFAAkF,EAClF,sFAAsF,EACtF,wFAAwF,EACxF,4FAA4F,EAC5F,sGAAsG,EACtG,0GAA0G,EAC1G,4GAA4G,EAC5G,gHAAgH;EAChH;EACA,4CAA4C,EAC5C,kIAAkI,CACnI,CAACK,IAAI,CAAC,GAAG,CAAC;EACXC,OAAO,EAAE;EACP;EACA;EACA;EACA,6DAA6D,EAC7D,mEAAmE;EACnE;EACA,+CAA+C,EAC/C,uEAAuE;EACvE;EACA,mEAAmE,EACnE,uEAAuE,EACvE,yEAAyE,EACzE,6EAA6E;EAC7E;EACA,2EAA2E,EAC3E,+EAA+E,EAC/E,iFAAiF,EACjF,qFAAqF,CACtF,CAACD,IAAI,CAAC,GAAG;AACZ,CAAC,CAAC,CACH,CAAC;AAEF,OAAO,MAAME,oBAAoB,GAAGV,GAAG,CAAC,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;AAElE,OAAO,MAAMW,qBAAqB,GAAGX,GAAG,CAAC,CACvC,gCAAgC,EAChC,4CAA4C,CAC7C,CAAC;AAEF,OAAO,MAAMY,qBAAqB,GAAGZ,GAAG,CAAC,EAAE,EAAE;EAC3Ca,QAAQ,EAAE;IACRC,SAAS,EAAE;MACTC,MAAM,EAAE,OAAO;MACfC,GAAG,EAAE;IACP;EACF,CAAC;EACDC,eAAe,EAAE;IACfH,SAAS,EAAE;EACb;AACF,CAAC,CAAC","ignoreList":[]}
@@ -34,6 +34,17 @@ RadioRoot.displayName = 'Radio';
34
34
  // RADIO INDICATOR (styled-only, reads context for data-* styling)
35
35
  // =============================================================================
36
36
 
37
+ /** Compound checked × invalid × active state for native Uniwind selectors (single data-field-state). */
38
+ const INDICATOR_STATES = {
39
+ 'unchecked:false:false': 'idle',
40
+ 'unchecked:true:false': 'invalid',
41
+ 'unchecked:false:true': 'active',
42
+ 'unchecked:true:true': 'invalid-active',
43
+ 'checked:false:false': 'checked',
44
+ 'checked:true:false': 'checked-invalid',
45
+ 'checked:false:true': 'checked-active',
46
+ 'checked:true:true': 'checked-invalid-active'
47
+ };
37
48
  const RadioIndicator = /*#__PURE__*/forwardRef(({
38
49
  asChild,
39
50
  className,
@@ -50,6 +61,8 @@ const RadioIndicator = /*#__PURE__*/forwardRef(({
50
61
  isPressed,
51
62
  isFocusVisible
52
63
  } = useRadioContext();
64
+ const checkState = isChecked ? 'checked' : 'unchecked';
65
+ const fieldState = INDICATOR_STATES[`${checkState}:${isInvalid ? 'true' : 'false'}:${isPressed ? 'true' : 'false'}`];
53
66
  const computedClassName = cn(radioIndicatorVariants(), className);
54
67
  const Comp = asChild ? Slot : View;
55
68
  return /*#__PURE__*/_jsxs(Comp, {
@@ -65,14 +78,16 @@ const RadioIndicator = /*#__PURE__*/forwardRef(({
65
78
  focusVisible: isFocusVisible,
66
79
  invalid: isInvalid,
67
80
  readonly: isReadOnly,
68
- active: isPressed
81
+ active: isPressed,
82
+ fieldState
69
83
  })),
70
84
  children: [/*#__PURE__*/_jsx(View, {
71
85
  className: cn(radioInnerDotVariants()),
72
86
  ...dataAttributes({
73
87
  checked: isChecked,
74
88
  invalid: isInvalid,
75
- hover: isHovered
89
+ hover: isHovered,
90
+ fieldState
76
91
  })
77
92
  }), children]
78
93
  });
@@ -1 +1 @@
1
- {"version":3,"names":["forwardRef","Text","View","RadioRoot","RadioRootPrimitive","RadioGroup","RadioGroupPrimitive","Slot","dataAttributes","mergeDataAttributes","useRadioContext","cn","radioGroupVariants","radioIndicatorVariants","radioInnerDotVariants","radioLabelVariants","radioRootVariants","jsx","_jsx","jsxs","_jsxs","className","children","style","props","ref","computedClassName","slot","RadioIndicator","displayName","asChild","isChecked","isDisabled","isHovered","isInvalid","isReadOnly","isPressed","isFocusVisible","Comp","hover","checked","disabled","focusVisible","invalid","readonly","active","RadioLabel","direction","value","defaultValue","onChange","isRequired","name","viewProps","Radio","Object","assign","Indicator","Label","Group"],"sourceRoot":"../../../../src","sources":["components/Radio/index.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAAwB,OAAO;AAClD,SAASC,IAAI,EAAkBC,IAAI,QAAwB,cAAc;AACzE,SACEC,SAAS,IAAIC,kBAAkB,EAC/BC,UAAU,IAAIC,mBAAmB,EACjCC,IAAI,EACJC,cAAc,EACdC,mBAAmB,EACnBC,eAAe,QAEV,oBAAoB;AAC3B,SAASC,EAAE,QAAQ,eAAe;AAClC,SACEC,kBAAkB,EAClBC,sBAAsB,EACtBC,qBAAqB,EACrBC,kBAAkB,EAClBC,iBAAiB,QACZ,UAAU;;AAEjB;AACA;AACA;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAOA,MAAMjB,SAAS,gBAAGH,UAAU,CAAmB,CAAC;EAAEqB,SAAS;EAAEC,QAAQ;EAAEC,KAAK;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EAChG,MAAMC,iBAAiB,GAAGf,EAAE,CAACK,iBAAiB,CAAC,CAAC,EAAEK,SAAS,CAAC;EAE5D,oBACED,KAAA,CAAChB,kBAAkB;IACjBqB,GAAG,EAAEA,GAAI;IACTJ,SAAS,EAAEK,iBAAkB;IAC7BH,KAAK,EAAEA,KAAM;IAAA,GACTC,KAAK;IAAA,GACLf,mBAAmB,CAACe,KAAK,EAAEhB,cAAc,CAAC;MAAEmB,IAAI,EAAE;IAAQ,CAAC,CAAC,CAAC;IAAAL,QAAA,gBAEjEJ,IAAA,CAACU,cAAc,IAAE,CAAC,EACjBN,QAAQ;EAAA,CACS,CAAC;AAEzB,CAAC,CAAC;AAEFnB,SAAS,CAAC0B,WAAW,GAAG,OAAO;;AAE/B;AACA;AACA;;AAQA,MAAMD,cAAc,gBAAG5B,UAAU,CAC/B,CAAC;EAAE8B,OAAO;EAAET,SAAS;EAAEC,QAAQ;EAAEC,KAAK;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EAC1D,MAAM;IAAEM,SAAS;IAAEC,UAAU;IAAEC,SAAS;IAAEC,SAAS;IAAEC,UAAU;IAAEC,SAAS;IAAEC;EAAe,CAAC,GAC1F3B,eAAe,CAAC,CAAC;EAEnB,MAAMgB,iBAAiB,GAAGf,EAAE,CAACE,sBAAsB,CAAC,CAAC,EAAEQ,SAAS,CAAC;EACjE,MAAMiB,IAAI,GAAGR,OAAO,GAAGvB,IAAI,GAAGL,IAAI;EAElC,oBACEkB,KAAA,CAACkB,IAAI;IACHb,GAAG,EAAEA,GAAI;IACTJ,SAAS,EAAEK,iBAAkB;IAC7BH,KAAK,EAAEA,KAAM;IAAA,GACTC,KAAK;IAAA,GACLf,mBAAmB,CACrBe,KAAK,EACLhB,cAAc,CAAC;MACbmB,IAAI,EAAE,iBAAiB;MACvBY,KAAK,EAAEN,SAAS;MAChBO,OAAO,EAAET,SAAS;MAClBU,QAAQ,EAAET,UAAU;MACpBU,YAAY,EAAEL,cAAc;MAC5BM,OAAO,EAAET,SAAS;MAClBU,QAAQ,EAAET,UAAU;MACpBU,MAAM,EAAET;IACV,CAAC,CACH,CAAC;IAAAd,QAAA,gBAEDJ,IAAA,CAAChB,IAAI;MACHmB,SAAS,EAAEV,EAAE,CAACG,qBAAqB,CAAC,CAAC,CAAE;MAAA,GACnCN,cAAc,CAAC;QACjBgC,OAAO,EAAET,SAAS;QAClBY,OAAO,EAAET,SAAS;QAClBK,KAAK,EAAEN;MACT,CAAC;IAAC,CACH,CAAC,EACDX,QAAQ;EAAA,CACL,CAAC;AAEX,CACF,CAAC;AAEDM,cAAc,CAACC,WAAW,GAAG,iBAAiB;;AAE9C;AACA;AACA;;AAQA,MAAMiB,UAAU,gBAAG9C,UAAU,CAC3B,CAAC;EAAE8B,OAAO;EAAET,SAAS;EAAEC,QAAQ;EAAEC,KAAK;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EAC1D,MAAMC,iBAAiB,GAAGf,EAAE,CAACI,kBAAkB,CAAC,CAAC,EAAEM,SAAS,CAAC;EAC7D,MAAMiB,IAAI,GAAGR,OAAO,GAAGvB,IAAI,GAAGN,IAAI;EAElC,oBACEiB,IAAA,CAACoB,IAAI;IACHb,GAAG,EAAEA,GAAI;IACTJ,SAAS,EAAEK,iBAAkB;IAC7BH,KAAK,EAAEA,KAAM;IAAA,GACTC,KAAK;IAAA,GACLf,mBAAmB,CAACe,KAAK,EAAEhB,cAAc,CAAC;MAAEmB,IAAI,EAAE;IAAc,CAAC,CAAC,CAAC;IAAAL,QAAA,EAEtEA;EAAQ,CACL,CAAC;AAEX,CACF,CAAC;AAEDwB,UAAU,CAACjB,WAAW,GAAG,aAAa;;AAEtC;AACA;AACA;;AAkBA,MAAMxB,UAAU,gBAAGL,UAAU,CAC3B,CACE;EACEqB,SAAS;EACTC,QAAQ;EACRC,KAAK;EACLwB,SAAS,GAAG,QAAQ;EACpBC,KAAK;EACLC,YAAY;EACZC,QAAQ;EACRlB,UAAU;EACVE,SAAS;EACTiB,UAAU;EACVhB,UAAU;EACViB,IAAI;EACJ,GAAGC;AACL,CAAC,EACD5B,GAAG,KACA;EACH,MAAMC,iBAAiB,GAAGf,EAAE,CAACC,kBAAkB,CAAC;IAAEmC;EAAU,CAAC,CAAC,EAAE1B,SAAS,CAAC;EAE1E,oBACEH,IAAA,CAACZ,mBAAmB;IAClBmB,GAAG,EAAEA,GAAI;IACTJ,SAAS,EAAEK,iBAAkB;IAC7BH,KAAK,EAAEA,KAAM;IACbyB,KAAK,EAAEA,KAAM;IACbC,YAAY,EAAEA,YAAa;IAC3BC,QAAQ,EAAEA,QAAS;IACnBlB,UAAU,EAAEA,UAAW;IACvBE,SAAS,EAAEA,SAAU;IACrBiB,UAAU,EAAEA,UAAW;IACvBhB,UAAU,EAAEA,UAAW;IACvBiB,IAAI,EAAEA,IAAK;IACXL,SAAS,EAAEA,SAAU;IAAA,GACjBM,SAAS;IAAA,GACT5C,mBAAmB,CAAC4C,SAAS,EAAE7C,cAAc,CAAC;MAAEmB,IAAI,EAAE;IAAc,CAAC,CAAC,CAAC;IAAAL,QAAA,EAE1EA;EAAQ,CACU,CAAC;AAE1B,CACF,CAAC;AAEDjB,UAAU,CAACwB,WAAW,GAAG,aAAa;;AAEtC;AACA;AACA;;AAQA,OAAO,MAAMyB,KAAK,GAAGC,MAAM,CAACC,MAAM,CAACrD,SAAS,EAAE;EAC5CsD,SAAS,EAAE7B,cAAc;EACzB8B,KAAK,EAAEZ,UAAU;EACjBa,KAAK,EAAEtD;AACT,CAAC,CAA2B","ignoreList":[]}
1
+ {"version":3,"names":["forwardRef","Text","View","RadioRoot","RadioRootPrimitive","RadioGroup","RadioGroupPrimitive","Slot","dataAttributes","mergeDataAttributes","useRadioContext","cn","radioGroupVariants","radioIndicatorVariants","radioInnerDotVariants","radioLabelVariants","radioRootVariants","jsx","_jsx","jsxs","_jsxs","className","children","style","props","ref","computedClassName","slot","RadioIndicator","displayName","INDICATOR_STATES","asChild","isChecked","isDisabled","isHovered","isInvalid","isReadOnly","isPressed","isFocusVisible","checkState","fieldState","Comp","hover","checked","disabled","focusVisible","invalid","readonly","active","RadioLabel","direction","value","defaultValue","onChange","isRequired","name","viewProps","Radio","Object","assign","Indicator","Label","Group"],"sourceRoot":"../../../../src","sources":["components/Radio/index.tsx"],"mappings":"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","ignoreList":[]}
@@ -4,13 +4,25 @@ import { Platform } from 'react-native';
4
4
  import { cva } from 'class-variance-authority';
5
5
  import { DISABLED_CURSOR, TRANSITION_COLORS } from '../../styles/primitives';
6
6
  export const radioRootVariants = cva(['flex-row items-center gap-2', 'data-[disabled=true]:opacity-[var(--opacity-disabled)]', DISABLED_CURSOR]);
7
- export const radioIndicatorVariants = cva(['items-center justify-center', 'rounded-[var(--border-radius-round)]', 'border-[length:var(--border-width-selected)]', 'h-5 w-5', 'bg-surface-primary', 'data-[checked=false]:border-content-secondary', 'data-[checked=true]:border-stroke-action', 'data-[invalid=true]:border-stroke-danger', 'data-[checked=true]:data-[invalid=true]:border-stroke-danger', Platform.select({
8
- web: [TRANSITION_COLORS, 'data-[hover=true]:data-[checked=true]:border-surface-action-strong-hover', 'data-[hover=true]:data-[invalid=true]:border-surface-danger-strong-hover', 'web:data-[focus-visible=true]:outline-none', 'web:data-[focus-visible=true]:ring-2 web:data-[focus-visible=true]:ring-stroke-focus web:data-[focus-visible=true]:ring-offset-2'].join(' '),
9
- default: ''
7
+ export const radioIndicatorVariants = cva(['items-center justify-center', 'rounded-[var(--border-radius-round)]', 'border-[length:var(--border-width-selected)]', 'h-5 w-5', 'bg-surface-primary', 'data-[checked=false]:border-content-secondary', 'data-[checked=true]:border-stroke-action', 'data-[invalid=true]:border-stroke-danger', Platform.select({
8
+ web: [TRANSITION_COLORS, 'group',
9
+ // Hover — unchecked (Figma: border unchanged, bg overlay at opacity/hover)
10
+ 'data-[hover=true]:data-[checked=false]:bg-content-secondary/[0.08]',
11
+ // Hover — unchecked + invalid (overlay uses danger token)
12
+ 'data-[hover=true]:data-[invalid=true]:data-[checked=false]:bg-surface-danger-strong/[0.08]', 'data-[hover=true]:data-[checked=true]:border-surface-action-strong-hover', 'data-[hover=true]:data-[invalid=true]:border-surface-danger-strong-hover',
13
+ // Active — CSS :active (web root does not track press via data-active).
14
+ // data-[hover=true] guard ensures active beats hover by specificity (0,3,0 > 0,2,0).
15
+ 'web:active:data-[hover=true]:data-[checked=false]:border-stroke-hover', 'web:active:data-[hover=true]:data-[invalid=true]:data-[checked=false]:border-surface-danger-strong-active', 'web:active:data-[hover=true]:data-[checked=true]:border-surface-action-strong-active', 'web:active:data-[hover=true]:data-[checked=true]:data-[invalid=true]:border-surface-danger-strong-active', 'web:data-[focus-visible=true]:outline-none', 'web:data-[focus-visible=true]:ring-2 web:data-[focus-visible=true]:ring-stroke-focus web:data-[focus-visible=true]:ring-offset-2'].join(' '),
16
+ default: [
17
+ // Native: Uniwind only evaluates the last data-[] condition in a compound chain.
18
+ // Use single-condition data-[field-state=...] selectors (emitted by RadioIndicator).
19
+ 'data-[field-state=active]:border-stroke-hover', 'data-[field-state=invalid-active]:border-surface-danger-strong-active', 'data-[field-state=checked-active]:border-surface-action-strong-active', 'data-[field-state=checked-invalid-active]:border-surface-danger-strong-active'].join(' ')
10
20
  })]);
11
21
  export const radioInnerDotVariants = cva(['rounded-[var(--border-radius-round)]', 'h-2.5 w-2.5', 'scale-0', 'data-[checked=true]:scale-100', 'bg-surface-action-strong', 'data-[invalid=true]:bg-surface-danger-strong', Platform.select({
12
- web: ['data-[hover=true]:bg-surface-action-strong-hover', 'data-[hover=true]:data-[invalid=true]:bg-surface-danger-strong-hover'].join(' '),
13
- default: ''
22
+ web: ['data-[hover=true]:bg-surface-action-strong-hover', 'data-[hover=true]:data-[invalid=true]:bg-surface-danger-strong-hover',
23
+ // Active via group-active on indicator (inner dot is not the :active target).
24
+ 'web:group-active:data-[hover=true]:data-[checked=true]:bg-surface-action-strong-active', 'web:group-active:data-[hover=true]:data-[checked=true]:data-[invalid=true]:bg-surface-danger-strong-active'].join(' '),
25
+ default: ['data-[field-state=checked-active]:bg-surface-action-strong-active', 'data-[field-state=checked-invalid-active]:bg-surface-danger-strong-active'].join(' ')
14
26
  })]);
15
27
  export const radioLabelVariants = cva(['body-md', 'text-content-primary']);
16
28
  export const radioGroupVariants = cva([], {
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","cva","DISABLED_CURSOR","TRANSITION_COLORS","radioRootVariants","radioIndicatorVariants","select","web","join","default","radioInnerDotVariants","radioLabelVariants","radioGroupVariants","variants","direction","column","row","defaultVariants"],"sourceRoot":"../../../../src","sources":["components/Radio/styles.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;AACvC,SAASC,GAAG,QAAQ,0BAA0B;AAC9C,SAASC,eAAe,EAAEC,iBAAiB,QAAQ,yBAAyB;AAE5E,OAAO,MAAMC,iBAAiB,GAAGH,GAAG,CAAC,CACnC,6BAA6B,EAC7B,wDAAwD,EACxDC,eAAe,CAChB,CAAC;AAEF,OAAO,MAAMG,sBAAsB,GAAGJ,GAAG,CAAC,CACxC,6BAA6B,EAC7B,sCAAsC,EACtC,8CAA8C,EAC9C,SAAS,EACT,oBAAoB,EACpB,+CAA+C,EAC/C,0CAA0C,EAC1C,0CAA0C,EAC1C,8DAA8D,EAC9DD,QAAQ,CAACM,MAAM,CAAC;EACdC,GAAG,EAAE,CACHJ,iBAAiB,EACjB,0EAA0E,EAC1E,0EAA0E,EAC1E,4CAA4C,EAC5C,kIAAkI,CACnI,CAACK,IAAI,CAAC,GAAG,CAAC;EACXC,OAAO,EAAE;AACX,CAAC,CAAC,CACH,CAAC;AAEF,OAAO,MAAMC,qBAAqB,GAAGT,GAAG,CAAC,CACvC,sCAAsC,EACtC,aAAa,EACb,SAAS,EACT,+BAA+B,EAC/B,0BAA0B,EAC1B,8CAA8C,EAC9CD,QAAQ,CAACM,MAAM,CAAC;EACdC,GAAG,EAAE,CACH,kDAAkD,EAClD,sEAAsE,CACvE,CAACC,IAAI,CAAC,GAAG,CAAC;EACXC,OAAO,EAAE;AACX,CAAC,CAAC,CACH,CAAC;AAEF,OAAO,MAAME,kBAAkB,GAAGV,GAAG,CAAC,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;AAE1E,OAAO,MAAMW,kBAAkB,GAAGX,GAAG,CAAC,EAAE,EAAE;EACxCY,QAAQ,EAAE;IACRC,SAAS,EAAE;MACTC,MAAM,EAAE,OAAO;MACfC,GAAG,EAAE;IACP;EACF,CAAC;EACDC,eAAe,EAAE;IAAEH,SAAS,EAAE;EAAS;AACzC,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Platform","cva","DISABLED_CURSOR","TRANSITION_COLORS","radioRootVariants","radioIndicatorVariants","select","web","join","default","radioInnerDotVariants","radioLabelVariants","radioGroupVariants","variants","direction","column","row","defaultVariants"],"sourceRoot":"../../../../src","sources":["components/Radio/styles.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;AACvC,SAASC,GAAG,QAAQ,0BAA0B;AAC9C,SAASC,eAAe,EAAEC,iBAAiB,QAAQ,yBAAyB;AAE5E,OAAO,MAAMC,iBAAiB,GAAGH,GAAG,CAAC,CACnC,6BAA6B,EAC7B,wDAAwD,EACxDC,eAAe,CAChB,CAAC;AAEF,OAAO,MAAMG,sBAAsB,GAAGJ,GAAG,CAAC,CACxC,6BAA6B,EAC7B,sCAAsC,EACtC,8CAA8C,EAC9C,SAAS,EACT,oBAAoB,EACpB,+CAA+C,EAC/C,0CAA0C,EAC1C,0CAA0C,EAC1CD,QAAQ,CAACM,MAAM,CAAC;EACdC,GAAG,EAAE,CACHJ,iBAAiB,EACjB,OAAO;EACP;EACA,oEAAoE;EACpE;EACA,4FAA4F,EAC5F,0EAA0E,EAC1E,0EAA0E;EAC1E;EACA;EACA,uEAAuE,EACvE,2GAA2G,EAC3G,sFAAsF,EACtF,0GAA0G,EAC1G,4CAA4C,EAC5C,kIAAkI,CACnI,CAACK,IAAI,CAAC,GAAG,CAAC;EACXC,OAAO,EAAE;EACP;EACA;EACA,+CAA+C,EAC/C,uEAAuE,EACvE,uEAAuE,EACvE,+EAA+E,CAChF,CAACD,IAAI,CAAC,GAAG;AACZ,CAAC,CAAC,CACH,CAAC;AAEF,OAAO,MAAME,qBAAqB,GAAGT,GAAG,CAAC,CACvC,sCAAsC,EACtC,aAAa,EACb,SAAS,EACT,+BAA+B,EAC/B,0BAA0B,EAC1B,8CAA8C,EAC9CD,QAAQ,CAACM,MAAM,CAAC;EACdC,GAAG,EAAE,CACH,kDAAkD,EAClD,sEAAsE;EACtE;EACA,wFAAwF,EACxF,4GAA4G,CAC7G,CAACC,IAAI,CAAC,GAAG,CAAC;EACXC,OAAO,EAAE,CACP,mEAAmE,EACnE,2EAA2E,CAC5E,CAACD,IAAI,CAAC,GAAG;AACZ,CAAC,CAAC,CACH,CAAC;AAEF,OAAO,MAAMG,kBAAkB,GAAGV,GAAG,CAAC,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;AAE1E,OAAO,MAAMW,kBAAkB,GAAGX,GAAG,CAAC,EAAE,EAAE;EACxCY,QAAQ,EAAE;IACRC,SAAS,EAAE;MACTC,MAAM,EAAE,OAAO;MACfC,GAAG,EAAE;IACP;EACF,CAAC;EACDC,eAAe,EAAE;IAAEH,SAAS,EAAE;EAAS;AACzC,CAAC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Checkbox/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAE1E,OAAO,EAOL,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAQ,SAAS,EAAE,MAAM,SAAS,CAAC;AAa1C,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,QAAA,MAAM,YAAY,gGAoBjB,CAAC;AAQF,MAAM,WAAW,sBAAuB,SAAQ,SAAS;IACvD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,QAAA,MAAM,iBAAiB,yGA2CtB,CAAC;AAQF,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;CAAG;AAEzE,QAAA,MAAM,YAAY;qCAAoC,iBAAiB;;CAWtE,CAAC;AAwBF,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,QAAA,MAAM,aAAa,qGAwBlB,CAAC;AAQF,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;CAC9B;AAED,QAAA,MAAM,aAAa,qGAkClB,CAAC;AAQF,KAAK,yBAAyB,GAAG,OAAO,YAAY,GAAG;IACrD,SAAS,EAAE,OAAO,iBAAiB,CAAC;IACpC,IAAI,EAAE,OAAO,YAAY,CAAC;IAC1B,KAAK,EAAE,OAAO,aAAa,CAAC;IAC5B,KAAK,EAAE,OAAO,aAAa,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAKf,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Checkbox/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAE1E,OAAO,EAOL,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAQ,SAAS,EAAE,MAAM,SAAS,CAAC;AAa1C,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,QAAA,MAAM,YAAY,gGAoBjB,CAAC;AAwBF,MAAM,WAAW,sBAAuB,SAAQ,SAAS;IACvD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,QAAA,MAAM,iBAAiB,yGAkDtB,CAAC;AAQF,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;CAAG;AAEzE,QAAA,MAAM,YAAY;qCAAoC,iBAAiB;;CAWtE,CAAC;AAwBF,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,QAAA,MAAM,aAAa,qGAwBlB,CAAC;AAQF,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;CAC9B;AAED,QAAA,MAAM,aAAa,qGAkClB,CAAC;AAQF,KAAK,yBAAyB,GAAG,OAAO,YAAY,GAAG;IACrD,SAAS,EAAE,OAAO,iBAAiB,CAAC;IACpC,IAAI,EAAE,OAAO,YAAY,CAAC;IAC1B,KAAK,EAAE,OAAO,aAAa,CAAC;IAC5B,KAAK,EAAE,OAAO,aAAa,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAKf,yBAAyB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Checkbox/styles.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,oBAAoB,oFAM/B,CAAC;AAEH,eAAO,MAAM,yBAAyB,oFAmEpC,CAAC;AAEH,eAAO,MAAM,oBAAoB,oFAAiC,CAAC;AAEnE,eAAO,MAAM,qBAAqB,oFAGhC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;8EAUhC,CAAC"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Checkbox/styles.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,oBAAoB,oFAM/B,CAAC;AAEH,eAAO,MAAM,yBAAyB,oFA4EpC,CAAC;AAEH,eAAO,MAAM,oBAAoB,oFAAiC,CAAC;AAEnE,eAAO,MAAM,qBAAqB,oFAGhC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;8EAUhC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Radio/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAOL,KAAK,WAAW,EACjB,MAAM,oBAAoB,CAAC;AAc5B,MAAM,WAAW,UAAW,SAAQ,WAAW;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,QAAA,MAAM,SAAS,6FAeb,CAAC;AAQH,MAAM,WAAW,mBAAoB,SAAQ,SAAS;IACpD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,QAAA,MAAM,cAAc,sGAwCnB,CAAC;AAQF,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,QAAA,MAAM,UAAU,kGAiBf,CAAC;AAQF,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,QAAA,MAAM,UAAU,kGA0Cf,CAAC;AAQF,KAAK,sBAAsB,GAAG,OAAO,SAAS,GAAG;IAC/C,SAAS,EAAE,OAAO,cAAc,CAAC;IACjC,KAAK,EAAE,OAAO,UAAU,CAAC;IACzB,KAAK,EAAE,OAAO,UAAU,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,KAAK,EAIZ,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Radio/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAOL,KAAK,WAAW,EACjB,MAAM,oBAAoB,CAAC;AAc5B,MAAM,WAAW,UAAW,SAAQ,WAAW;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,QAAA,MAAM,SAAS,6FAeb,CAAC;AAoBH,MAAM,WAAW,mBAAoB,SAAQ,SAAS;IACpD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,QAAA,MAAM,cAAc,sGAgDnB,CAAC;AAQF,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,QAAA,MAAM,UAAU,kGAiBf,CAAC;AAQF,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,QAAA,MAAM,UAAU,kGA0Cf,CAAC;AAQF,KAAK,sBAAsB,GAAG,OAAO,SAAS,GAAG;IAC/C,SAAS,EAAE,OAAO,cAAc,CAAC;IACjC,KAAK,EAAE,OAAO,UAAU,CAAC;IACzB,KAAK,EAAE,OAAO,UAAU,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,KAAK,EAIZ,sBAAsB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Radio/styles.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,iBAAiB,oFAI5B,CAAC;AAEH,eAAO,MAAM,sBAAsB,oFAoBjC,CAAC;AAEH,eAAO,MAAM,qBAAqB,oFAchC,CAAC;AAEH,eAAO,MAAM,kBAAkB,oFAA2C,CAAC;AAE3E,eAAO,MAAM,kBAAkB;;8EAQ7B,CAAC"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Radio/styles.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,iBAAiB,oFAI5B,CAAC;AAEH,eAAO,MAAM,sBAAsB,oFAqCjC,CAAC;AAEH,eAAO,MAAM,qBAAqB,oFAoBhC,CAAC;AAEH,eAAO,MAAM,kBAAkB,oFAA2C,CAAC;AAE3E,eAAO,MAAM,kBAAkB;;8EAQ7B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cdx-ui/components",
3
- "version": "0.0.1-beta.101",
3
+ "version": "0.0.1-beta.102",
4
4
  "main": "lib/commonjs/index.js",
5
5
  "module": "lib/module/index.js",
6
6
  "react-native": "src/index.ts",
@@ -67,9 +67,9 @@
67
67
  "@gorhom/bottom-sheet": "^5.2.6",
68
68
  "class-variance-authority": "^0.7.1",
69
69
  "uniwind": "1.10.0",
70
- "@cdx-ui/primitives": "0.0.1-beta.101",
71
- "@cdx-ui/utils": "0.0.1-beta.101",
72
- "@cdx-ui/icons": "0.0.1-beta.101"
70
+ "@cdx-ui/utils": "0.0.1-beta.102",
71
+ "@cdx-ui/icons": "0.0.1-beta.102",
72
+ "@cdx-ui/primitives": "0.0.1-beta.102"
73
73
  },
74
74
  "devDependencies": {
75
75
  "@react-navigation/bottom-tabs": "*",
@@ -57,6 +57,22 @@ CheckboxRoot.displayName = 'Checkbox';
57
57
  // CHECKBOX INDICATOR (styled-only, reads context for data-* styling)
58
58
  // =============================================================================
59
59
 
60
+ /** Compound check × invalid × active state for native Uniwind selectors (single data-field-state). */
61
+ const INDICATOR_STATES = {
62
+ 'unchecked:false:false': 'idle',
63
+ 'unchecked:true:false': 'invalid',
64
+ 'unchecked:false:true': 'active',
65
+ 'unchecked:true:true': 'invalid-active',
66
+ 'checked:false:false': 'checked',
67
+ 'checked:true:false': 'checked-invalid',
68
+ 'checked:false:true': 'checked-active',
69
+ 'checked:true:true': 'checked-invalid-active',
70
+ 'indeterminate:false:false': 'indeterminate',
71
+ 'indeterminate:true:false': 'indeterminate-invalid',
72
+ 'indeterminate:false:true': 'indeterminate-active',
73
+ 'indeterminate:true:true': 'indeterminate-invalid-active',
74
+ } as const;
75
+
60
76
  export interface CheckboxIndicatorProps extends ViewProps {
61
77
  asChild?: boolean;
62
78
  className?: string;
@@ -77,6 +93,12 @@ const CheckboxIndicator = forwardRef<View, CheckboxIndicatorProps>(
77
93
  isFocusVisible,
78
94
  } = useCheckboxContext();
79
95
 
96
+ const checkState = isIndeterminate ? 'indeterminate' : isChecked ? 'checked' : 'unchecked';
97
+ const fieldState =
98
+ INDICATOR_STATES[
99
+ `${checkState}:${isInvalid ? 'true' : 'false'}:${isPressed ? 'true' : 'false'}`
100
+ ];
101
+
80
102
  const computedClassName = cn(checkboxIndicatorVariants(), className);
81
103
  const Comp = asChild ? Slot : View;
82
104
 
@@ -99,6 +121,7 @@ const CheckboxIndicator = forwardRef<View, CheckboxIndicatorProps>(
99
121
  active: isPressed,
100
122
  focused: isFocused,
101
123
  indeterminate: isIndeterminate,
124
+ fieldState,
102
125
  }),
103
126
  )}
104
127
  >
@@ -43,40 +43,49 @@ export const checkboxIndicatorVariants = cva([
43
43
  'data-[hover=true]:data-[invalid=true]:data-[checked=false]:data-[indeterminate=false]:bg-surface-danger-strong/[0.08]',
44
44
  // Hover — checked / indeterminate (bg + border darken together)
45
45
  'data-[hover=true]:data-[checked=true]:bg-surface-action-strong-hover',
46
- 'data-[hover=true]:data-[checked=true]:border-[--color-surface-action-strong-hover]',
46
+ 'data-[hover=true]:data-[checked=true]:border-surface-action-strong-hover',
47
47
  'data-[hover=true]:data-[indeterminate=true]:bg-surface-action-strong-hover',
48
- 'data-[hover=true]:data-[indeterminate=true]:border-[--color-surface-action-strong-hover]',
48
+ 'data-[hover=true]:data-[indeterminate=true]:border-surface-action-strong-hover',
49
49
  'data-[hover=true]:data-[checked=true]:data-[invalid=true]:bg-surface-danger-strong-hover',
50
- 'data-[hover=true]:data-[checked=true]:data-[invalid=true]:border-[--color-surface-danger-strong-hover]',
50
+ 'data-[hover=true]:data-[checked=true]:data-[invalid=true]:border-surface-danger-strong-hover',
51
51
  'data-[hover=true]:data-[indeterminate=true]:data-[invalid=true]:bg-surface-danger-strong-hover',
52
- 'data-[hover=true]:data-[indeterminate=true]:data-[invalid=true]:border-[--color-surface-danger-strong-hover]',
52
+ 'data-[hover=true]:data-[indeterminate=true]:data-[invalid=true]:border-surface-danger-strong-hover',
53
53
  // Active — CSS :active pseudo-class (web root does not track press via data-active).
54
54
  // data-[hover=true] guard ensures active beats hover by specificity (0,3,0 > 0,2,0).
55
+ // Unchecked — border only (Radio pattern)
56
+ 'web:active:data-[hover=true]:data-[checked=false]:data-[indeterminate=false]:border-stroke-hover',
57
+ 'web:active:data-[hover=true]:data-[invalid=true]:data-[checked=false]:data-[indeterminate=false]:border-surface-danger-strong-active',
55
58
  'web:active:data-[hover=true]:data-[checked=true]:bg-surface-action-strong-active',
56
- 'web:active:data-[hover=true]:data-[checked=true]:border-[--color-surface-action-strong-active]',
59
+ 'web:active:data-[hover=true]:data-[checked=true]:border-surface-action-strong-active',
57
60
  'web:active:data-[hover=true]:data-[indeterminate=true]:bg-surface-action-strong-active',
58
- 'web:active:data-[hover=true]:data-[indeterminate=true]:border-[--color-surface-action-strong-active]',
61
+ 'web:active:data-[hover=true]:data-[indeterminate=true]:border-surface-action-strong-active',
59
62
  'web:active:data-[hover=true]:data-[checked=true]:data-[invalid=true]:bg-surface-danger-strong-active',
60
- 'web:active:data-[hover=true]:data-[checked=true]:data-[invalid=true]:border-[--color-surface-danger-strong-active]',
63
+ 'web:active:data-[hover=true]:data-[checked=true]:data-[invalid=true]:border-surface-danger-strong-active',
61
64
  'web:active:data-[hover=true]:data-[indeterminate=true]:data-[invalid=true]:bg-surface-danger-strong-active',
62
- 'web:active:data-[hover=true]:data-[indeterminate=true]:data-[invalid=true]:border-[--color-surface-danger-strong-active]',
65
+ 'web:active:data-[hover=true]:data-[indeterminate=true]:data-[invalid=true]:border-surface-danger-strong-active',
63
66
  // Focus ring
64
67
  'web:data-[focus-visible=true]:outline-none',
65
68
  'web:data-[focus-visible=true]:ring-2 web:data-[focus-visible=true]:ring-stroke-focus web:data-[focus-visible=true]:ring-offset-2',
66
69
  ].join(' '),
67
70
  default: [
68
- // Invalid bg is NOT styled on native. Compound data-[] selectors cannot express
69
- // "invalid AND checked" without false-matching other states (Uniwind only evaluates
70
- // the last condition). Invalid state is communicated via border-stroke-danger (single
71
- // condition, always correct). The fill stays action-strong for checked/indeterminate.
72
- //
73
- // Active — native tracks press via data-[active] from usePress.
74
- // Place data-[active=true] last so the rule only fires during press.
75
- // 'data-[checked=false]:data-[invalid=true]:bg-transparent',
76
- 'data-[checked=true]:data-[invalid=true]:bg-surface-danger-strong',
77
- 'data-[checked=true]:data-[active=true]:bg-surface-action-strong-active',
78
- 'data-[checked=true]:data-[active=true]:data-[invalid=true]:bg-surface-danger-strong-active',
79
- 'data-[indeterminate=true]:data-[active=true]:bg-surface-action-strong-active',
71
+ // Native: Uniwind only evaluates the last data-[] condition in a compound chain.
72
+ // Use single-condition data-[field-state=...] selectors (emitted by CheckboxIndicator).
73
+ // checked/indeterminate + invalid → danger bg
74
+ 'data-[field-state=checked-invalid]:bg-surface-danger-strong',
75
+ 'data-[field-state=indeterminate-invalid]:bg-surface-danger-strong',
76
+ // unchecked + active → border only (Radio pattern)
77
+ 'data-[field-state=active]:border-stroke-hover',
78
+ 'data-[field-state=invalid-active]:border-surface-danger-strong-active',
79
+ // checked/indeterminate + active → action active bg + matching border
80
+ 'data-[field-state=checked-active]:bg-surface-action-strong-active',
81
+ 'data-[field-state=checked-active]:border-surface-action-strong-active',
82
+ 'data-[field-state=indeterminate-active]:bg-surface-action-strong-active',
83
+ 'data-[field-state=indeterminate-active]:border-surface-action-strong-active',
84
+ // checked/indeterminate + invalid + active → danger active bg + matching border
85
+ 'data-[field-state=checked-invalid-active]:bg-surface-danger-strong-active',
86
+ 'data-[field-state=checked-invalid-active]:border-surface-danger-strong-active',
87
+ 'data-[field-state=indeterminate-invalid-active]:bg-surface-danger-strong-active',
88
+ 'data-[field-state=indeterminate-invalid-active]:border-surface-danger-strong-active',
80
89
  ].join(' '),
81
90
  }),
82
91
  ]);
@@ -50,6 +50,18 @@ RadioRoot.displayName = 'Radio';
50
50
  // RADIO INDICATOR (styled-only, reads context for data-* styling)
51
51
  // =============================================================================
52
52
 
53
+ /** Compound checked × invalid × active state for native Uniwind selectors (single data-field-state). */
54
+ const INDICATOR_STATES = {
55
+ 'unchecked:false:false': 'idle',
56
+ 'unchecked:true:false': 'invalid',
57
+ 'unchecked:false:true': 'active',
58
+ 'unchecked:true:true': 'invalid-active',
59
+ 'checked:false:false': 'checked',
60
+ 'checked:true:false': 'checked-invalid',
61
+ 'checked:false:true': 'checked-active',
62
+ 'checked:true:true': 'checked-invalid-active',
63
+ } as const;
64
+
53
65
  export interface RadioIndicatorProps extends ViewProps {
54
66
  asChild?: boolean;
55
67
  className?: string;
@@ -61,6 +73,12 @@ const RadioIndicator = forwardRef<View, RadioIndicatorProps>(
61
73
  const { isChecked, isDisabled, isHovered, isInvalid, isReadOnly, isPressed, isFocusVisible } =
62
74
  useRadioContext();
63
75
 
76
+ const checkState = isChecked ? 'checked' : 'unchecked';
77
+ const fieldState =
78
+ INDICATOR_STATES[
79
+ `${checkState}:${isInvalid ? 'true' : 'false'}:${isPressed ? 'true' : 'false'}`
80
+ ];
81
+
64
82
  const computedClassName = cn(radioIndicatorVariants(), className);
65
83
  const Comp = asChild ? Slot : View;
66
84
 
@@ -81,6 +99,7 @@ const RadioIndicator = forwardRef<View, RadioIndicatorProps>(
81
99
  invalid: isInvalid,
82
100
  readonly: isReadOnly,
83
101
  active: isPressed,
102
+ fieldState,
84
103
  }),
85
104
  )}
86
105
  >
@@ -90,6 +109,7 @@ const RadioIndicator = forwardRef<View, RadioIndicatorProps>(
90
109
  checked: isChecked,
91
110
  invalid: isInvalid,
92
111
  hover: isHovered,
112
+ fieldState,
93
113
  })}
94
114
  />
95
115
  {children}
@@ -17,16 +17,33 @@ export const radioIndicatorVariants = cva([
17
17
  'data-[checked=false]:border-content-secondary',
18
18
  'data-[checked=true]:border-stroke-action',
19
19
  'data-[invalid=true]:border-stroke-danger',
20
- 'data-[checked=true]:data-[invalid=true]:border-stroke-danger',
21
20
  Platform.select({
22
21
  web: [
23
22
  TRANSITION_COLORS,
23
+ 'group',
24
+ // Hover — unchecked (Figma: border unchanged, bg overlay at opacity/hover)
25
+ 'data-[hover=true]:data-[checked=false]:bg-content-secondary/[0.08]',
26
+ // Hover — unchecked + invalid (overlay uses danger token)
27
+ 'data-[hover=true]:data-[invalid=true]:data-[checked=false]:bg-surface-danger-strong/[0.08]',
24
28
  'data-[hover=true]:data-[checked=true]:border-surface-action-strong-hover',
25
29
  'data-[hover=true]:data-[invalid=true]:border-surface-danger-strong-hover',
30
+ // Active — CSS :active (web root does not track press via data-active).
31
+ // data-[hover=true] guard ensures active beats hover by specificity (0,3,0 > 0,2,0).
32
+ 'web:active:data-[hover=true]:data-[checked=false]:border-stroke-hover',
33
+ 'web:active:data-[hover=true]:data-[invalid=true]:data-[checked=false]:border-surface-danger-strong-active',
34
+ 'web:active:data-[hover=true]:data-[checked=true]:border-surface-action-strong-active',
35
+ 'web:active:data-[hover=true]:data-[checked=true]:data-[invalid=true]:border-surface-danger-strong-active',
26
36
  'web:data-[focus-visible=true]:outline-none',
27
37
  'web:data-[focus-visible=true]:ring-2 web:data-[focus-visible=true]:ring-stroke-focus web:data-[focus-visible=true]:ring-offset-2',
28
38
  ].join(' '),
29
- default: '',
39
+ default: [
40
+ // Native: Uniwind only evaluates the last data-[] condition in a compound chain.
41
+ // Use single-condition data-[field-state=...] selectors (emitted by RadioIndicator).
42
+ 'data-[field-state=active]:border-stroke-hover',
43
+ 'data-[field-state=invalid-active]:border-surface-danger-strong-active',
44
+ 'data-[field-state=checked-active]:border-surface-action-strong-active',
45
+ 'data-[field-state=checked-invalid-active]:border-surface-danger-strong-active',
46
+ ].join(' '),
30
47
  }),
31
48
  ]);
32
49
 
@@ -41,8 +58,14 @@ export const radioInnerDotVariants = cva([
41
58
  web: [
42
59
  'data-[hover=true]:bg-surface-action-strong-hover',
43
60
  'data-[hover=true]:data-[invalid=true]:bg-surface-danger-strong-hover',
61
+ // Active via group-active on indicator (inner dot is not the :active target).
62
+ 'web:group-active:data-[hover=true]:data-[checked=true]:bg-surface-action-strong-active',
63
+ 'web:group-active:data-[hover=true]:data-[checked=true]:data-[invalid=true]:bg-surface-danger-strong-active',
64
+ ].join(' '),
65
+ default: [
66
+ 'data-[field-state=checked-active]:bg-surface-action-strong-active',
67
+ 'data-[field-state=checked-invalid-active]:bg-surface-danger-strong-active',
44
68
  ].join(' '),
45
- default: '',
46
69
  }),
47
70
  ]);
48
71