@recursica/mui-adapter 0.18.1 → 0.19.1

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 (52) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +3 -3
  3. package/dist/mui-adapter.cjs +172 -23
  4. package/dist/mui-adapter.cjs.map +1 -1
  5. package/dist/mui-adapter.css +1 -1
  6. package/dist/mui-adapter.js +12963 -4695
  7. package/dist/mui-adapter.js.map +1 -1
  8. package/dist/src/components/Tree/Tree.d.ts +9 -5
  9. package/docs/PHILOSOPHY.md +39 -0
  10. package/package.json +8 -2
  11. package/src/components/Accordion/Accordion.module.css +98 -62
  12. package/src/components/Autocomplete/Autocomplete.module.css +50 -47
  13. package/src/components/Autocomplete/Autocomplete.tsx +2 -2
  14. package/src/components/Avatar/Avatar.module.css +7 -7
  15. package/src/components/Badge/Badge.module.css +8 -8
  16. package/src/components/Button/Button.module.css +25 -43
  17. package/src/components/Card/Card.module.css +3 -3
  18. package/src/components/Checkbox/Checkbox.module.css +57 -16
  19. package/src/components/Chip/Chip.module.css +32 -20
  20. package/src/components/Dropdown/Dropdown.module.css +47 -44
  21. package/src/components/Dropdown/Dropdown.tsx +2 -2
  22. package/src/components/FormControlWrapper/FormControlWrapper.module.css +12 -12
  23. package/src/components/HoverCard/HoverCard.module.css +1 -1
  24. package/src/components/Label/Label.module.css +20 -3
  25. package/src/components/Link/Link.module.css +18 -71
  26. package/src/components/Loader/Loader.module.css +3 -3
  27. package/src/components/Menu/Menu.module.css +33 -41
  28. package/src/components/Modal/Modal.module.css +27 -11
  29. package/src/components/NumberInput/NumberInput.module.css +39 -37
  30. package/src/components/NumberInput/NumberInput.tsx +2 -2
  31. package/src/components/Pagination/Pagination.module.css +10 -43
  32. package/src/components/Panel/Panel.module.css +3 -3
  33. package/src/components/Radio/Radio.module.css +32 -15
  34. package/src/components/ReadOnlyField/ReadOnlyField.module.css +1 -1
  35. package/src/components/SegmentedControl/SegmentedControl.module.css +37 -29
  36. package/src/components/Slider/Slider.module.css +51 -35
  37. package/src/components/Stepper/Stepper.module.css +3 -3
  38. package/src/components/Switch/Switch.module.css +27 -11
  39. package/src/components/Tabs/Tabs.module.css +309 -166
  40. package/src/components/TextArea/TextArea.module.css +36 -21
  41. package/src/components/TextArea/TextArea.tsx +2 -2
  42. package/src/components/TextField/TextField.module.css +38 -33
  43. package/src/components/TextField/TextField.tsx +2 -2
  44. package/src/components/Timeline/IMPLEMENTATION_NOTES.md +5 -0
  45. package/src/components/Timeline/Timeline.module.css +35 -34
  46. package/src/components/Toast/Toast.module.css +24 -11
  47. package/src/components/Tooltip/Tooltip.module.css +4 -2
  48. package/src/components/Tree/IMPLEMENTATION_NOTES.md +21 -0
  49. package/src/components/Tree/Tree.module.css +204 -39
  50. package/src/components/Tree/Tree.stories.tsx +81 -4
  51. package/src/components/Tree/Tree.tsx +214 -13
  52. package/src/components/Tree/USAGE.md +40 -3
@@ -1,9 +1,13 @@
1
1
  /* EXEMPTIONS:
2
- - content-style and header-style parent variables represent raw JSON styling objects rather than
2
+ - content-style and header-style parent variables represent raw JSON styling objects rather than
3
3
  direct CSS variables and cannot be applied directly in standard CSS files.
4
- Sub-properties are fully and individually mapped to elements natively. */
4
+ Sub-properties are fully and individually mapped to elements natively.
5
+ - header/footer background-color are ignored because .header/.footer are intentionally
6
+ transparent (inheriting .content's background), matching Panel's header/footer treatment. */
5
7
  /* recursica-ignore: --recursica_ui-kit_components_modal_properties_content-style */
6
8
  /* recursica-ignore: --recursica_ui-kit_components_modal_properties_header-style */
9
+ /* recursica-ignore: --recursica_ui-kit_components_modal_properties_colors_footer-background-color */
10
+ /* recursica-ignore: --recursica_ui-kit_components_modal_properties_colors_header-background-color */
7
11
 
8
12
  .root {
9
13
  }
@@ -37,7 +41,7 @@
37
41
 
38
42
  /* Appearance */
39
43
  background-color: var(
40
- --recursica_ui-kit_components_modal_properties_colors_background
44
+ --recursica_ui-kit_components_modal_properties_colors_content-background-color
41
45
  );
42
46
  box-shadow: var(--recursica_ui-kit_components_modal_properties_elevation);
43
47
 
@@ -47,8 +51,12 @@
47
51
  }
48
52
 
49
53
  .header {
50
- padding: var(--recursica_ui-kit_components_modal_properties_vertical-padding)
51
- var(--recursica_ui-kit_components_modal_properties_horizontal-padding);
54
+ padding: var(
55
+ --recursica_ui-kit_components_modal_properties_header-footer-vertical-padding
56
+ )
57
+ var(
58
+ --recursica_ui-kit_components_modal_properties_header-footer-horizontal-padding
59
+ );
52
60
  background-color: transparent; /* Inherit from content */
53
61
  }
54
62
 
@@ -93,8 +101,12 @@
93
101
  }
94
102
 
95
103
  .scrollArea {
96
- padding: var(--recursica_ui-kit_components_modal_properties_vertical-padding)
97
- var(--recursica_ui-kit_components_modal_properties_horizontal-padding);
104
+ padding: var(
105
+ --recursica_ui-kit_components_modal_properties_content-vertical-padding
106
+ )
107
+ var(
108
+ --recursica_ui-kit_components_modal_properties_content-horizontal-padding
109
+ );
98
110
 
99
111
  /* Internal scrolling */
100
112
  flex: 1 1 auto;
@@ -137,11 +149,11 @@
137
149
  /* Smooth divider transitions */
138
150
  transition: border-color 0.15s ease;
139
151
  border-top: var(
140
- --recursica_ui-kit_components_modal_properties_scroll-divider-thickness
152
+ --recursica_ui-kit_components_modal_properties_scroll-divider-size
141
153
  )
142
154
  solid transparent;
143
155
  border-bottom: var(
144
- --recursica_ui-kit_components_modal_properties_scroll-divider-thickness
156
+ --recursica_ui-kit_components_modal_properties_scroll-divider-size
145
157
  )
146
158
  solid transparent;
147
159
  }
@@ -159,8 +171,12 @@
159
171
  }
160
172
 
161
173
  .footer {
162
- padding: var(--recursica_ui-kit_components_modal_properties_vertical-padding)
163
- var(--recursica_ui-kit_components_modal_properties_horizontal-padding);
174
+ padding: var(
175
+ --recursica_ui-kit_components_modal_properties_header-footer-vertical-padding
176
+ )
177
+ var(
178
+ --recursica_ui-kit_components_modal_properties_header-footer-horizontal-padding
179
+ );
164
180
  background-color: transparent;
165
181
  display: flex;
166
182
  justify-content: flex-end;
@@ -1,23 +1,36 @@
1
1
  /* EXEMPTIONS:
2
- - state-specific border-size variables are ignored because the input box uses a uniform static boundary to prevent
3
- unexpected layout shifts or flickering when switching between active, focused, or error states. */
4
- /* recursica-ignore: --recursica_ui-kit_components_number-input_variants_states_default_properties_border-size */
2
+ - border-size variables are ignored because the input box uses a uniform static boundary to prevent
3
+ unexpected layout shifts or flickering when switching between focused, disabled, or error states. */
4
+ /* recursica-ignore: --recursica_ui-kit_components_number-input_properties_border-size */
5
5
  /* recursica-ignore: --recursica_ui-kit_components_number-input_variants_states_disabled_properties_border-size */
6
6
  /* recursica-ignore: --recursica_ui-kit_components_number-input_variants_states_error_properties_border-size */
7
- /* recursica-ignore: --recursica_ui-kit_components_number-input_variants_states_focus_properties_border-size */
8
7
 
9
8
  /* LAYOUT SPACING OVERRIDES:
10
- - Sets the --form-control-margin-bottom spacing hook to map component-specific layout tokens. */
9
+ - Sets the --form-control-margin-bottom spacing hook to map component-specific layout tokens.
10
+ - Also sets the --number-input-control-{max,min}-width hooks consumed inline in NumberInput.tsx,
11
+ since the token schema no longer provides a single layout-agnostic min/max width. */
11
12
  .layoutOverride {
12
13
  --form-control-margin-bottom: var(
13
14
  --recursica_ui-kit_components_number-input_variants_layouts_stacked_properties_top-bottom-margin
14
15
  );
16
+ --number-input-control-max-width: var(
17
+ --recursica_ui-kit_components_number-input_variants_layouts_stacked_properties_max-width
18
+ );
19
+ --number-input-control-min-width: var(
20
+ --recursica_ui-kit_components_number-input_variants_layouts_stacked_properties_min-width
21
+ );
15
22
  }
16
23
 
17
24
  .layoutOverride[data-form-layout="side-by-side"] {
18
25
  --form-control-margin-bottom: var(
19
26
  --recursica_ui-kit_components_number-input_variants_layouts_side-by-side_properties_top-bottom-margin
20
27
  );
28
+ --number-input-control-max-width: var(
29
+ --recursica_ui-kit_components_number-input_variants_layouts_side-by-side_properties_max-width
30
+ );
31
+ --number-input-control-min-width: var(
32
+ --recursica_ui-kit_components_number-input_variants_layouts_side-by-side_properties_min-width
33
+ );
21
34
  }
22
35
 
23
36
  /* HARDCODED VALUES:
@@ -109,13 +122,13 @@
109
122
 
110
123
  /* Base State Default Execution */
111
124
  background-color: var(
112
- --recursica_ui-kit_components_number-input_variants_states_default_properties_colors_background
125
+ --recursica_ui-kit_components_number-input_properties_colors_background-color
113
126
  );
114
127
  border-color: var(
115
- --recursica_ui-kit_components_number-input_variants_states_default_properties_colors_border-color
128
+ --recursica_ui-kit_components_number-input_properties_colors_border-color
116
129
  );
117
130
  color: var(
118
- --recursica_ui-kit_components_number-input_variants_states_default_properties_colors_text
131
+ --recursica_ui-kit_components_number-input_properties_colors_text-color
119
132
  );
120
133
 
121
134
  outline: none;
@@ -162,13 +175,13 @@
162
175
  width: var(--recursica_ui-kit_components_number-input_properties_icon-size);
163
176
  height: var(--recursica_ui-kit_components_number-input_properties_icon-size);
164
177
  color: var(
165
- --recursica_ui-kit_components_number-input_variants_states_default_properties_colors_leading-icon
178
+ --recursica_ui-kit_components_number-input_properties_colors_leading-icon
166
179
  );
167
180
  }
168
181
 
169
182
  .section[data-position="right"] :global(svg) {
170
183
  color: var(
171
- --recursica_ui-kit_components_number-input_variants_states_default_properties_colors_trailing-icon
184
+ --recursica_ui-kit_components_number-input_properties_colors_trailing-icon
172
185
  );
173
186
  }
174
187
 
@@ -188,7 +201,7 @@
188
201
  border: none;
189
202
  background: transparent;
190
203
  color: var(
191
- --recursica_ui-kit_components_number-input_variants_states_default_properties_colors_trailing-icon
204
+ --recursica_ui-kit_components_number-input_properties_colors_trailing-icon
192
205
  );
193
206
  }
194
207
 
@@ -201,30 +214,16 @@
201
214
  -------------------------------------- */
202
215
 
203
216
  /* Focus State Mapping (Triggered internally via browser pseudo-pseudo-class) */
217
+ /* The token schema no longer provides per-component focus colors; apply the generic focus ring
218
+ tokens as a box-shadow ring instead of a color swap. */
204
219
  .input:focus-within,
205
220
  .input:focus {
206
- border-color: var(
207
- --recursica_ui-kit_components_number-input_variants_states_focus_properties_colors_border-color
208
- );
209
- background-color: var(
210
- --recursica_ui-kit_components_number-input_variants_states_focus_properties_colors_background
211
- );
212
- color: var(
213
- --recursica_ui-kit_components_number-input_variants_states_focus_properties_colors_text
214
- );
215
- }
216
-
217
- .root:focus-within .section[data-position="left"] :global(svg) {
218
- color: var(
219
- --recursica_ui-kit_components_number-input_variants_states_focus_properties_colors_leading-icon
220
- );
221
- }
222
-
223
- .root:focus-within .section[data-position="right"] :global(svg),
224
- .root:focus-within .control {
225
- color: var(
226
- --recursica_ui-kit_components_number-input_variants_states_focus_properties_colors_trailing-icon
227
- );
221
+ box-shadow:
222
+ 0 0 0 var(--recursica_brand_states_focus_border-size)
223
+ var(--recursica_brand_states_focus_color),
224
+ 0 0 var(--recursica_brand_states_focus_blur)
225
+ var(--recursica_brand_states_focus_margin)
226
+ var(--recursica_brand_states_focus_color);
228
227
  }
229
228
 
230
229
  /* Error State Mapping (Propagated strictly down from the wrapper DOM context) */
@@ -233,10 +232,10 @@
233
232
  --recursica_ui-kit_components_number-input_variants_states_error_properties_colors_border-color
234
233
  ) !important;
235
234
  background-color: var(
236
- --recursica_ui-kit_components_number-input_variants_states_error_properties_colors_background
235
+ --recursica_ui-kit_components_number-input_variants_states_error_properties_colors_background-color
237
236
  ) !important;
238
237
  color: var(
239
- --recursica_ui-kit_components_number-input_variants_states_error_properties_colors_text
238
+ --recursica_ui-kit_components_number-input_variants_states_error_properties_colors_text-color
240
239
  ) !important;
241
240
  }
242
241
 
@@ -259,10 +258,13 @@
259
258
  --recursica_ui-kit_components_number-input_variants_states_disabled_properties_colors_border-color
260
259
  ) !important;
261
260
  background-color: var(
262
- --recursica_ui-kit_components_number-input_variants_states_disabled_properties_colors_background
261
+ --recursica_ui-kit_components_number-input_variants_states_disabled_properties_colors_background-color
263
262
  ) !important;
264
263
  color: var(
265
- --recursica_ui-kit_components_number-input_variants_states_disabled_properties_colors_text
264
+ --recursica_ui-kit_components_number-input_variants_states_disabled_properties_colors_text-color
265
+ ) !important;
266
+ opacity: var(
267
+ --recursica_ui-kit_components_number-input_variants_states_disabled_properties_opacity
266
268
  ) !important;
267
269
  cursor: not-allowed;
268
270
  }
@@ -110,8 +110,8 @@ export const NumberInput = forwardRef<HTMLInputElement, NumberInputProps>(
110
110
  <WithReadOnlyWrapper
111
111
  className={wrapperClass}
112
112
  style={style as React.CSSProperties}
113
- controlMaxWidth="var(--recursica_ui-kit_components_number-input_properties_max-width)"
114
- controlMinWidth="var(--recursica_ui-kit_components_number-input_properties_min-width)"
113
+ controlMaxWidth="var(--number-input-control-max-width)"
114
+ controlMinWidth="var(--number-input-control-min-width)"
115
115
  overStyled={overStyled as true}
116
116
  formLayout={formLayout}
117
117
  labelSize={labelSize}
@@ -145,13 +145,13 @@
145
145
  --recursica_ui-kit_components_button_variants_styles_outline_properties_elevation
146
146
  );
147
147
  background-color: var(
148
- --recursica_ui-kit_components_button_variants_styles_outline_properties_colors_background
148
+ --recursica_ui-kit_components_button_variants_styles_outline_properties_colors_background-color
149
149
  );
150
150
  border-color: var(
151
151
  --recursica_ui-kit_components_button_variants_styles_outline_properties_colors_border-color
152
152
  );
153
153
  color: var(
154
- --recursica_ui-kit_components_button_variants_styles_outline_properties_colors_text
154
+ --recursica_ui-kit_components_button_variants_styles_outline_properties_colors_text-color
155
155
  );
156
156
  }
157
157
 
@@ -160,13 +160,8 @@
160
160
  cursor: not-allowed;
161
161
  }
162
162
 
163
- .control:hover:not(:disabled) {
164
- color: var(
165
- --recursica_ui-kit_components_button_variants_styles_outline_properties_colors_text-hover
166
- );
167
- }
168
-
169
- /* Hover Overlay */
163
+ /* Hover Overlay: no per-variant hover-color/hover-opacity tokens exist anymore; use the
164
+ generic overlay tokens shared across components (same as Button). */
170
165
  .control::after {
171
166
  content: "";
172
167
  position: absolute;
@@ -176,15 +171,11 @@
176
171
  pointer-events: none;
177
172
  transition: opacity 150ms ease;
178
173
  opacity: 0;
179
- background-color: var(
180
- --recursica_ui-kit_components_button_variants_sizes_default_properties_hover-color
181
- );
174
+ background-color: var(--recursica_brand_states_hover_color);
182
175
  }
183
176
 
184
177
  .control:hover:not(:disabled)::after {
185
- opacity: var(
186
- --recursica_ui-kit_components_button_variants_sizes_default_properties_hover-opacity
187
- );
178
+ opacity: var(--recursica_brand_states_hover_opacity);
188
179
  }
189
180
 
190
181
  /* Active Style: Solid */
@@ -196,19 +187,13 @@
196
187
  --recursica_ui-kit_components_button_variants_styles_solid_properties_elevation
197
188
  );
198
189
  background-color: var(
199
- --recursica_ui-kit_components_button_variants_styles_solid_properties_colors_background
190
+ --recursica_ui-kit_components_button_variants_styles_solid_properties_colors_background-color
200
191
  );
201
192
  border-color: var(
202
193
  --recursica_ui-kit_components_button_variants_styles_solid_properties_colors_border-color
203
194
  );
204
195
  color: var(
205
- --recursica_ui-kit_components_button_variants_styles_solid_properties_colors_text
206
- );
207
- }
208
-
209
- .control[data-active]:hover:not(:disabled) {
210
- color: var(
211
- --recursica_ui-kit_components_button_variants_styles_solid_properties_colors_text-hover
196
+ --recursica_ui-kit_components_button_variants_styles_solid_properties_colors_text-color
212
197
  );
213
198
  }
214
199
 
@@ -221,13 +206,13 @@
221
206
  --recursica_ui-kit_components_button_variants_styles_text_properties_elevation
222
207
  );
223
208
  background-color: var(
224
- --recursica_ui-kit_components_button_variants_styles_text_properties_colors_background
209
+ --recursica_ui-kit_components_button_variants_styles_text_properties_colors_background-color
225
210
  );
226
211
  border-color: var(
227
212
  --recursica_ui-kit_components_button_variants_styles_text_properties_colors_border-color
228
213
  );
229
214
  color: var(
230
- --recursica_ui-kit_components_button_variants_styles_text_properties_colors_text
215
+ --recursica_ui-kit_components_button_variants_styles_text_properties_colors_text-color
231
216
  );
232
217
 
233
218
  /* Also explicitly inherit navigation sizes incase they differ from pages */
@@ -246,24 +231,6 @@
246
231
  );
247
232
  }
248
233
 
249
- .control[data-variant="text"]:hover:not(:disabled) {
250
- color: var(
251
- --recursica_ui-kit_components_button_variants_styles_text_properties_colors_text-hover
252
- );
253
- }
254
-
255
- /* Hover Overlay for Navigation */
256
- .control[data-variant="text"]::after {
257
- background-color: var(
258
- --recursica_ui-kit_components_button_variants_sizes_default_properties_hover-color
259
- );
260
- }
261
- .control[data-variant="text"]:hover:not(:disabled)::after {
262
- opacity: var(
263
- --recursica_ui-kit_components_button_variants_sizes_default_properties_hover-opacity
264
- );
265
- }
266
-
267
234
  /* Dots */
268
235
  .dots {
269
236
  display: inline-flex;
@@ -12,7 +12,7 @@
12
12
 
13
13
  .content {
14
14
  background-color: var(
15
- --recursica_ui-kit_components_panel_properties_colors_background
15
+ --recursica_ui-kit_components_panel_properties_colors_background-color
16
16
  );
17
17
  border-style: solid;
18
18
  border-width: var(--recursica_ui-kit_components_panel_properties_border-size);
@@ -43,7 +43,7 @@
43
43
 
44
44
  .header {
45
45
  background-color: var(
46
- --recursica_ui-kit_components_panel_properties_colors_header-footer-background
46
+ --recursica_ui-kit_components_panel_properties_colors_header-background-color
47
47
  );
48
48
  padding: var(
49
49
  --recursica_ui-kit_components_panel_properties_header-footer-vertical-padding
@@ -154,7 +154,7 @@
154
154
 
155
155
  .footer {
156
156
  background-color: var(
157
- --recursica_ui-kit_components_panel_properties_colors_header-footer-background
157
+ --recursica_ui-kit_components_panel_properties_colors_footer-background-color
158
158
  );
159
159
  padding: var(
160
160
  --recursica_ui-kit_components_panel_properties_header-footer-vertical-padding
@@ -112,10 +112,10 @@
112
112
 
113
113
  /* Standard unchecked state */
114
114
  background-color: var(
115
- --recursica_ui-kit_components_radio-button_properties_colors_background-unselected
115
+ --recursica_ui-kit_components_radio-button_variants_selection-states_unselected_properties_colors_background-color
116
116
  );
117
117
  border-color: var(
118
- --recursica_ui-kit_components_radio-button_properties_colors_border-unselected
118
+ --recursica_ui-kit_components_radio-button_variants_selection-states_unselected_properties_colors_border-color
119
119
  );
120
120
  transition: all 0.2s ease; /* HARDCODE: consider global transition token */
121
121
  }
@@ -123,24 +123,37 @@
123
123
  /* Checked State */
124
124
  .root .radio:checked {
125
125
  background-color: var(
126
- --recursica_ui-kit_components_radio-button_properties_colors_background-selected
126
+ --recursica_ui-kit_components_radio-button_variants_selection-states_selected_properties_colors_background-color
127
127
  );
128
128
  border-color: var(
129
- --recursica_ui-kit_components_radio-button_properties_colors_border-selected
129
+ --recursica_ui-kit_components_radio-button_variants_selection-states_selected_properties_colors_border-color
130
130
  );
131
131
  }
132
132
 
133
- /* Disabled State */
133
+ /* Disabled State (colors now differ per selection state, so each combination is mapped explicitly) */
134
134
  .root .radio:disabled {
135
135
  cursor: not-allowed; /* HARDCODE: disabled state default */
136
+ }
137
+ .root .radio:disabled:not(:checked) {
136
138
  opacity: var(
137
- --recursica_ui-kit_components_radio-button_properties_disabled-opacity
139
+ --recursica_ui-kit_components_radio-button_variants_selection-states_unselected_variants_states_disabled_properties_opacity
138
140
  );
139
141
  background-color: var(
140
- --recursica_ui-kit_components_radio-button_properties_colors_disabled-background
142
+ --recursica_ui-kit_components_radio-button_variants_selection-states_unselected_variants_states_disabled_properties_colors_background-color
141
143
  );
142
144
  border-color: var(
143
- --recursica_ui-kit_components_radio-button_properties_colors_disabled-border
145
+ --recursica_ui-kit_components_radio-button_variants_selection-states_unselected_variants_states_disabled_properties_colors_border-color
146
+ );
147
+ }
148
+ .root .radio:checked:disabled {
149
+ opacity: var(
150
+ --recursica_ui-kit_components_radio-button_variants_selection-states_selected_variants_states_disabled_properties_opacity
151
+ );
152
+ background-color: var(
153
+ --recursica_ui-kit_components_radio-button_variants_selection-states_selected_variants_states_disabled_properties_colors_background-color
154
+ );
155
+ border-color: var(
156
+ --recursica_ui-kit_components_radio-button_variants_selection-states_selected_variants_states_disabled_properties_colors_border-color
144
157
  );
145
158
  }
146
159
 
@@ -151,14 +164,18 @@
151
164
  pointer-events: none;
152
165
  width: var(--recursica_ui-kit_components_radio-button_properties_icon-size);
153
166
  height: var(--recursica_ui-kit_components_radio-button_properties_icon-size);
167
+ }
168
+ /* No icon-color token exists for the unselected state (no icon is visible then) */
169
+ .root .radio:checked + .iconWrapper .icon,
170
+ .root .radio:checked + .icon {
154
171
  color: var(
155
- --recursica_ui-kit_components_radio-button_properties_colors_icon-color
172
+ --recursica_ui-kit_components_radio-button_variants_selection-states_selected_properties_colors_icon-color
156
173
  );
157
174
  }
158
- .root .radio:disabled + .iconWrapper .icon,
159
- .root .radio:disabled + .icon {
175
+ .root .radio:checked:disabled + .iconWrapper .icon,
176
+ .root .radio:checked:disabled + .icon {
160
177
  color: var(
161
- --recursica_ui-kit_components_radio-button_properties_colors_disabled-icon
178
+ --recursica_ui-kit_components_radio-button_variants_selection-states_selected_variants_states_disabled_properties_colors_icon-color
162
179
  );
163
180
  }
164
181
 
@@ -176,7 +193,7 @@
176
193
  word-wrap: break-word;
177
194
  white-space: normal;
178
195
  color: var(
179
- --recursica_ui-kit_components_radio-button-item_properties_colors_text
196
+ --recursica_ui-kit_components_radio-button-item_properties_colors_text-color
180
197
  );
181
198
  font-family: var(
182
199
  --recursica_ui-kit_components_radio-button-item_properties_text_font-family
@@ -209,7 +226,7 @@
209
226
  --recursica_ui-kit_components_radio-button-item_properties_colors_disabled-text
210
227
  );
211
228
  opacity: var(
212
- --recursica_ui-kit_components_radio-button-item_properties_disabled-opacity
229
+ --recursica_ui-kit_components_radio-button-item_variants_states_disabled_properties_opacity
213
230
  );
214
231
  }
215
232
 
@@ -230,6 +247,6 @@
230
247
  .root .description[data-disabled="true"],
231
248
  .root .error[data-disabled="true"] {
232
249
  opacity: var(
233
- --recursica_ui-kit_components_radio-button-item_properties_disabled-opacity
250
+ --recursica_ui-kit_components_radio-button-item_variants_states_disabled_properties_opacity
234
251
  );
235
252
  }
@@ -45,7 +45,7 @@
45
45
  --recursica_ui-kit_components_read-only-field_properties_text_text-transform
46
46
  );
47
47
  color: var(
48
- --recursica_ui-kit_components_read-only-field_properties_colors_text
48
+ --recursica_ui-kit_components_read-only-field_properties_colors_text-color
49
49
  );
50
50
 
51
51
  min-height: var(
@@ -4,9 +4,17 @@
4
4
  - Scope prefix .root to enforce Figma tokens over Mantine's inline calculation without using !important
5
5
  */
6
6
 
7
+ /* EXEMPTIONS:
8
+ - segmented-control-item_properties_item_border-radius is ignored because the item border-radius
9
+ is fully governed by the per-selection-state tokens (unselected/selected `properties_border-radius`,
10
+ already applied to `.label` and `.control.Mui-selected` below); this generic, state-agnostic radius
11
+ token has no distinct consumption site without conflicting with those state-specific overrides.
12
+ The Mantine reference adapter exempts this same variable for the same reason. */
13
+ /* recursica-ignore: --recursica_ui-kit_components_segmented-control-item_properties_item_border-radius */
14
+
7
15
  .root {
8
16
  background-color: var(
9
- --recursica_ui-kit_components_segmented-control_properties_colors_background
17
+ --recursica_ui-kit_components_segmented-control_properties_colors_background-color
10
18
  );
11
19
  border: var(
12
20
  --recursica_ui-kit_components_segmented-control_properties_border-size
@@ -41,50 +49,50 @@
41
49
  --recursica_ui-kit_components_segmented-control-item_properties_item_height
42
50
  );
43
51
  border-radius: var(
44
- --recursica_ui-kit_components_segmented-control-item_properties_unselected_border-radius
52
+ --recursica_ui-kit_components_segmented-control-item_variants_selection-states_unselected_properties_border-radius
45
53
  );
46
54
 
47
55
  border: var(
48
- --recursica_ui-kit_components_segmented-control-item_properties_unselected_border-size
56
+ --recursica_ui-kit_components_segmented-control-item_variants_selection-states_unselected_properties_border-size
49
57
  )
50
58
  solid
51
59
  var(
52
- --recursica_ui-kit_components_segmented-control-item_properties_unselected_colors_border-color
60
+ --recursica_ui-kit_components_segmented-control-item_variants_selection-states_unselected_properties_colors_border-color
53
61
  );
54
62
  background-color: var(
55
- --recursica_ui-kit_components_segmented-control-item_properties_unselected_colors_background
63
+ --recursica_ui-kit_components_segmented-control-item_variants_selection-states_unselected_properties_colors_background-color
56
64
  );
57
65
  box-shadow: var(
58
- --recursica_ui-kit_components_segmented-control-item_properties_unselected_elevation
66
+ --recursica_ui-kit_components_segmented-control-item_variants_selection-states_unselected_properties_elevation
59
67
  );
60
68
 
61
69
  font-family: var(
62
- --recursica_ui-kit_components_segmented-control-item_properties_unselected-text_font-family
70
+ --recursica_ui-kit_components_segmented-control-item_variants_selection-states_unselected_properties_text_font-family
63
71
  );
64
72
  font-size: var(
65
- --recursica_ui-kit_components_segmented-control-item_properties_unselected-text_font-size
73
+ --recursica_ui-kit_components_segmented-control-item_variants_selection-states_unselected_properties_text_font-size
66
74
  );
67
75
  font-style: var(
68
- --recursica_ui-kit_components_segmented-control-item_properties_unselected-text_font-style
76
+ --recursica_ui-kit_components_segmented-control-item_variants_selection-states_unselected_properties_text_font-style
69
77
  );
70
78
  font-weight: var(
71
- --recursica_ui-kit_components_segmented-control-item_properties_unselected-text_font-weight
79
+ --recursica_ui-kit_components_segmented-control-item_variants_selection-states_unselected_properties_text_font-weight
72
80
  );
73
81
  letter-spacing: var(
74
- --recursica_ui-kit_components_segmented-control-item_properties_unselected-text_letter-spacing
82
+ --recursica_ui-kit_components_segmented-control-item_variants_selection-states_unselected_properties_text_letter-spacing
75
83
  );
76
84
  line-height: var(
77
- --recursica_ui-kit_components_segmented-control-item_properties_unselected-text_line-height
85
+ --recursica_ui-kit_components_segmented-control-item_variants_selection-states_unselected_properties_text_line-height
78
86
  );
79
87
  text-decoration: var(
80
- --recursica_ui-kit_components_segmented-control-item_properties_unselected-text_text-decoration
88
+ --recursica_ui-kit_components_segmented-control-item_variants_selection-states_unselected_properties_text_text-decoration
81
89
  );
82
90
  text-transform: var(
83
- --recursica_ui-kit_components_segmented-control-item_properties_unselected-text_text-transform
91
+ --recursica_ui-kit_components_segmented-control-item_variants_selection-states_unselected_properties_text_text-transform
84
92
  );
85
93
 
86
94
  color: var(
87
- --recursica_ui-kit_components_segmented-control-item_properties_unselected_colors_text-color
95
+ --recursica_ui-kit_components_segmented-control-item_variants_selection-states_unselected_properties_colors_text-color
88
96
  );
89
97
 
90
98
  display: flex;
@@ -130,50 +138,50 @@
130
138
  /* Indicator mapping (MUI ToggleButton applies .Mui-selected to the button instead of rendering a sliding indicator) */
131
139
  .root .control.Mui-selected {
132
140
  background-color: var(
133
- --recursica_ui-kit_components_segmented-control-item_properties_selected_colors_background
141
+ --recursica_ui-kit_components_segmented-control-item_variants_selection-states_selected_properties_colors_background-color
134
142
  );
135
143
  border: var(
136
- --recursica_ui-kit_components_segmented-control-item_properties_selected_border-size
144
+ --recursica_ui-kit_components_segmented-control-item_variants_selection-states_selected_properties_border-size
137
145
  )
138
146
  solid
139
147
  var(
140
- --recursica_ui-kit_components_segmented-control-item_properties_selected_colors_border-color
148
+ --recursica_ui-kit_components_segmented-control-item_variants_selection-states_selected_properties_colors_border-color
141
149
  );
142
150
  box-shadow: var(
143
- --recursica_ui-kit_components_segmented-control-item_properties_selected_elevation
151
+ --recursica_ui-kit_components_segmented-control-item_variants_selection-states_selected_properties_elevation
144
152
  );
145
153
  border-radius: var(
146
- --recursica_ui-kit_components_segmented-control-item_properties_selected_border-radius
154
+ --recursica_ui-kit_components_segmented-control-item_variants_selection-states_selected_properties_border-radius
147
155
  );
148
156
  }
149
157
 
150
158
  /* Selected label text color override */
151
159
  .root .control.Mui-selected .label {
152
160
  color: var(
153
- --recursica_ui-kit_components_segmented-control-item_properties_selected_colors_text-color
161
+ --recursica_ui-kit_components_segmented-control-item_variants_selection-states_selected_properties_colors_text-color
154
162
  );
155
163
  font-family: var(
156
- --recursica_ui-kit_components_segmented-control-item_properties_selected-text_font-family
164
+ --recursica_ui-kit_components_segmented-control-item_variants_selection-states_selected_properties_text_font-family
157
165
  );
158
166
  font-size: var(
159
- --recursica_ui-kit_components_segmented-control-item_properties_selected-text_font-size
167
+ --recursica_ui-kit_components_segmented-control-item_variants_selection-states_selected_properties_text_font-size
160
168
  );
161
169
  font-style: var(
162
- --recursica_ui-kit_components_segmented-control-item_properties_selected-text_font-style
170
+ --recursica_ui-kit_components_segmented-control-item_variants_selection-states_selected_properties_text_font-style
163
171
  );
164
172
  font-weight: var(
165
- --recursica_ui-kit_components_segmented-control-item_properties_selected-text_font-weight
173
+ --recursica_ui-kit_components_segmented-control-item_variants_selection-states_selected_properties_text_font-weight
166
174
  );
167
175
  letter-spacing: var(
168
- --recursica_ui-kit_components_segmented-control-item_properties_selected-text_letter-spacing
176
+ --recursica_ui-kit_components_segmented-control-item_variants_selection-states_selected_properties_text_letter-spacing
169
177
  );
170
178
  line-height: var(
171
- --recursica_ui-kit_components_segmented-control-item_properties_selected-text_line-height
179
+ --recursica_ui-kit_components_segmented-control-item_variants_selection-states_selected_properties_text_line-height
172
180
  );
173
181
  text-decoration: var(
174
- --recursica_ui-kit_components_segmented-control-item_properties_selected-text_text-decoration
182
+ --recursica_ui-kit_components_segmented-control-item_variants_selection-states_selected_properties_text_text-decoration
175
183
  );
176
184
  text-transform: var(
177
- --recursica_ui-kit_components_segmented-control-item_properties_selected-text_text-transform
185
+ --recursica_ui-kit_components_segmented-control-item_variants_selection-states_selected_properties_text_text-transform
178
186
  );
179
187
  }