@recursica/mui-adapter 0.18.0 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -0
- package/SETUP.md +1 -1
- package/dist/mui-adapter.cjs +172 -23
- package/dist/mui-adapter.cjs.map +1 -1
- package/dist/mui-adapter.css +1 -1
- package/dist/mui-adapter.js +12963 -4694
- package/dist/mui-adapter.js.map +1 -1
- package/dist/src/components/Tree/Tree.d.ts +9 -5
- package/llms.txt +2 -0
- package/package.json +6 -1
- package/src/components/Accordion/Accordion.module.css +98 -62
- package/src/components/Autocomplete/Autocomplete.module.css +50 -47
- package/src/components/Autocomplete/Autocomplete.tsx +2 -2
- package/src/components/Avatar/Avatar.module.css +7 -7
- package/src/components/Badge/Badge.module.css +8 -8
- package/src/components/Button/Button.module.css +25 -43
- package/src/components/Card/Card.module.css +3 -3
- package/src/components/Checkbox/Checkbox.module.css +57 -16
- package/src/components/Chip/Chip.module.css +32 -20
- package/src/components/Dropdown/Dropdown.module.css +47 -44
- package/src/components/Dropdown/Dropdown.tsx +2 -2
- package/src/components/FormControlWrapper/FormControlWrapper.module.css +12 -12
- package/src/components/HoverCard/HoverCard.module.css +1 -1
- package/src/components/Label/Label.module.css +20 -3
- package/src/components/Layer/USAGE.md +50 -0
- package/src/components/Link/Link.module.css +18 -71
- package/src/components/Loader/Loader.module.css +3 -3
- package/src/components/Menu/Menu.module.css +33 -41
- package/src/components/Modal/Modal.module.css +27 -11
- package/src/components/NumberInput/NumberInput.module.css +39 -37
- package/src/components/NumberInput/NumberInput.tsx +2 -2
- package/src/components/Pagination/Pagination.module.css +10 -43
- package/src/components/Panel/Panel.module.css +3 -3
- package/src/components/Radio/Radio.module.css +32 -15
- package/src/components/ReadOnlyField/ReadOnlyField.module.css +1 -1
- package/src/components/RecursicaThemeProvider/USAGE.md +60 -0
- package/src/components/SegmentedControl/SegmentedControl.module.css +37 -29
- package/src/components/Slider/Slider.module.css +51 -35
- package/src/components/Stepper/Stepper.module.css +3 -3
- package/src/components/Switch/Switch.module.css +27 -11
- package/src/components/Tabs/Tabs.module.css +309 -166
- package/src/components/TextArea/TextArea.module.css +36 -21
- package/src/components/TextArea/TextArea.tsx +2 -2
- package/src/components/TextField/TextField.module.css +38 -33
- package/src/components/TextField/TextField.tsx +2 -2
- package/src/components/Timeline/IMPLEMENTATION_NOTES.md +5 -0
- package/src/components/Timeline/Timeline.module.css +35 -34
- package/src/components/Toast/Toast.module.css +24 -11
- package/src/components/Tooltip/Tooltip.module.css +4 -2
- package/src/components/Tree/IMPLEMENTATION_NOTES.md +21 -0
- package/src/components/Tree/Tree.module.css +204 -39
- package/src/components/Tree/Tree.stories.tsx +81 -4
- package/src/components/Tree/Tree.tsx +214 -13
- package/src/components/Tree/USAGE.md +40 -3
|
@@ -112,10 +112,10 @@
|
|
|
112
112
|
|
|
113
113
|
/* Standard unchecked state */
|
|
114
114
|
background-color: var(
|
|
115
|
-
--recursica_ui-kit_components_radio-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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(
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# RecursicaThemeProvider - Usage Guide
|
|
2
|
+
|
|
3
|
+
This document describes how to integrate and use `RecursicaThemeProvider` in your projects using `@recursica/mui-adapter`.
|
|
4
|
+
|
|
5
|
+
> [!NOTE] > `RecursicaThemeProvider` is defined once in `@recursica/adapter-common` and re-exported here so it shares the exact same behavior across every Recursica adapter.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. Import Reference
|
|
10
|
+
|
|
11
|
+
```tsx
|
|
12
|
+
import { RecursicaThemeProvider } from "@recursica/mui-adapter";
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 2. Basic Example
|
|
18
|
+
|
|
19
|
+
```tsx
|
|
20
|
+
import { StyledEngineProvider } from "@mui/material/styles";
|
|
21
|
+
import { RecursicaThemeProvider } from "@recursica/mui-adapter";
|
|
22
|
+
|
|
23
|
+
function App() {
|
|
24
|
+
return (
|
|
25
|
+
<StyledEngineProvider injectFirst>
|
|
26
|
+
<RecursicaThemeProvider theme="light">
|
|
27
|
+
{/* Your App Components */}
|
|
28
|
+
</RecursicaThemeProvider>
|
|
29
|
+
</StyledEngineProvider>
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
By default, `RecursicaThemeProvider` also wraps `children` in a base [`Layer`](../Layer/USAGE.md) (`layer={0}`), so surface/border/elevation variables resolve immediately — no separate `Layer` needed for the page background.
|
|
35
|
+
|
|
36
|
+
If you want to place the base layer yourself (e.g. to use `contentsOnly`, or to control exactly where layer 0 starts in the tree), opt out with `initLayer0={false}`:
|
|
37
|
+
|
|
38
|
+
```tsx
|
|
39
|
+
import { RecursicaThemeProvider, Layer } from "@recursica/mui-adapter";
|
|
40
|
+
|
|
41
|
+
<RecursicaThemeProvider theme="light" initLayer0={false}>
|
|
42
|
+
<Layer layer={0}>{/* Your App Components */}</Layer>
|
|
43
|
+
</RecursicaThemeProvider>;
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## 3. Design System Integration
|
|
49
|
+
|
|
50
|
+
> [!IMPORTANT]
|
|
51
|
+
>
|
|
52
|
+
> - **Required for setup**: `RecursicaThemeProvider` must wrap your entire application, once, near the root, inside `<StyledEngineProvider injectFirst>`. See [SETUP.md](../../../SETUP.md) for the full setup sequence.
|
|
53
|
+
> - **`initLayer0` (default `true`)**: Automatically wraps `children` in a layer-0 [`Layer`](../Layer/USAGE.md). `RecursicaThemeProvider` itself only sets `data-recursica-theme` (`"light"` or `"dark"`, defaults to `"light"`) on `document.documentElement` — without a `Layer` in the tree (either the automatic one or one you add yourself with `initLayer0={false}`), none of Recursica's surface CSS variables resolve.
|
|
54
|
+
> - **Runtime theme switching**: Changing the `theme` prop re-runs the effect and updates `data-recursica-theme` immediately, so you can drive light/dark switching from application state.
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## 4. Key Integration Features & Constraints
|
|
59
|
+
|
|
60
|
+
`RecursicaThemeProvider` also wires up the `overStyled` development-mode visual auditing helper (see [OVERSTYLING.md](../../../OVERSTYLING.md)) — `recursica.toggleOverStyled()` in the browser console only works once this provider has mounted.
|
|
@@ -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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
185
|
+
--recursica_ui-kit_components_segmented-control-item_variants_selection-states_selected_properties_text_text-transform
|
|
178
186
|
);
|
|
179
187
|
}
|
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
* - flex-grow: 1; flex-shrink: 0; (Layout control structures)
|
|
5
5
|
* - transform: translateX(-50%); (Mantine's standard step marks positioning alignment offset)
|
|
6
6
|
* - outline: none; border-style: solid; (Standard focus reset and border outlines)
|
|
7
|
+
* - Focus ring on thumb/input: the token schema no longer provides per-component focus
|
|
8
|
+
* colors for these (only `active` covers track/step-indicator-color). We apply the generic
|
|
9
|
+
* --recursica_brand_states_focus_* ring tokens (border-size/color/margin/blur) as a box-shadow
|
|
10
|
+
* ring instead of a color swap.
|
|
7
11
|
*/
|
|
8
12
|
|
|
9
13
|
/* ==========================================
|
|
@@ -47,9 +51,7 @@
|
|
|
47
51
|
flex-shrink: 0;
|
|
48
52
|
width: var(--recursica_ui-kit_components_slider_properties_icon-size);
|
|
49
53
|
height: var(--recursica_ui-kit_components_slider_properties_icon-size);
|
|
50
|
-
color: var(
|
|
51
|
-
--recursica_ui-kit_components_slider_variants_states_default_properties_colors_icon-color
|
|
52
|
-
);
|
|
54
|
+
color: var(--recursica_ui-kit_components_slider_properties_colors_icon-color);
|
|
53
55
|
}
|
|
54
56
|
|
|
55
57
|
/* ==========================================
|
|
@@ -72,7 +74,7 @@
|
|
|
72
74
|
--recursica_ui-kit_components_slider_properties_track-border-radius
|
|
73
75
|
);
|
|
74
76
|
background-color: var(
|
|
75
|
-
--recursica_ui-
|
|
77
|
+
--recursica_ui-kit_components_slider_properties_colors_track
|
|
76
78
|
);
|
|
77
79
|
}
|
|
78
80
|
|
|
@@ -84,7 +86,7 @@
|
|
|
84
86
|
--recursica_ui-kit_components_slider_properties_track-border-radius
|
|
85
87
|
) !important;
|
|
86
88
|
background-color: var(
|
|
87
|
-
--recursica_ui-
|
|
89
|
+
--recursica_ui-kit_components_slider_properties_colors_track-active
|
|
88
90
|
) !important;
|
|
89
91
|
border: none !important;
|
|
90
92
|
}
|
|
@@ -100,7 +102,7 @@
|
|
|
100
102
|
--recursica_ui-kit_components_slider_properties_thumb-elevation
|
|
101
103
|
);
|
|
102
104
|
background-color: var(
|
|
103
|
-
--recursica_ui-
|
|
105
|
+
--recursica_ui-kit_components_slider_properties_colors_thumb
|
|
104
106
|
);
|
|
105
107
|
border: none;
|
|
106
108
|
cursor: pointer;
|
|
@@ -117,13 +119,13 @@
|
|
|
117
119
|
.sliderThumb:focus,
|
|
118
120
|
.sliderThumb:focus-visible {
|
|
119
121
|
outline: none;
|
|
120
|
-
|
|
121
|
-
--recursica_ui-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
var(
|
|
125
|
-
--
|
|
126
|
-
|
|
122
|
+
box-shadow:
|
|
123
|
+
var(--recursica_ui-kit_components_slider_properties_thumb-elevation),
|
|
124
|
+
0 0 0 var(--recursica_brand_states_focus_border-size)
|
|
125
|
+
var(--recursica_brand_states_focus_color),
|
|
126
|
+
0 0 var(--recursica_brand_states_focus_blur)
|
|
127
|
+
var(--recursica_brand_states_focus_margin)
|
|
128
|
+
var(--recursica_brand_states_focus_color);
|
|
127
129
|
}
|
|
128
130
|
|
|
129
131
|
.sliderMark {
|
|
@@ -138,15 +140,17 @@
|
|
|
138
140
|
--recursica_ui-kit_components_slider_properties_step-indicator-border-radius
|
|
139
141
|
);
|
|
140
142
|
background-color: var(
|
|
141
|
-
--recursica_ui-
|
|
143
|
+
--recursica_ui-kit_components_slider_properties_colors_step-indicator-color
|
|
142
144
|
);
|
|
143
145
|
transform: translateX(-50%);
|
|
144
146
|
border: none;
|
|
145
147
|
}
|
|
146
148
|
|
|
147
149
|
.sliderMark[data-filled] {
|
|
150
|
+
/* No default-state "-active" step-indicator token exists anymore (only disabled/error define
|
|
151
|
+
one); reusing the active-track color keeps filled marks visually tied to the filled track. */
|
|
148
152
|
background-color: var(
|
|
149
|
-
--recursica_ui-
|
|
153
|
+
--recursica_ui-kit_components_slider_properties_colors_track-active
|
|
150
154
|
);
|
|
151
155
|
}
|
|
152
156
|
|
|
@@ -282,17 +286,15 @@
|
|
|
282
286
|
);
|
|
283
287
|
border-style: solid;
|
|
284
288
|
border-width: var(
|
|
285
|
-
--recursica_ui-
|
|
289
|
+
--recursica_ui-kit_components_slider_properties_input-border-size
|
|
286
290
|
);
|
|
287
291
|
border-color: var(
|
|
288
|
-
--recursica_ui-
|
|
292
|
+
--recursica_ui-kit_components_slider_properties_colors_input-border-color
|
|
289
293
|
);
|
|
290
294
|
background-color: var(
|
|
291
|
-
--recursica_ui-
|
|
292
|
-
);
|
|
293
|
-
color: var(
|
|
294
|
-
--recursica_ui-kit_components_slider_variants_states_default_properties_colors_input-text
|
|
295
|
+
--recursica_ui-kit_components_slider_properties_colors_input-background-color
|
|
295
296
|
);
|
|
297
|
+
color: var(--recursica_ui-kit_components_slider_properties_colors_input-text);
|
|
296
298
|
|
|
297
299
|
font-family: var(
|
|
298
300
|
--recursica_ui-kit_components_slider_properties_input-text_font-family
|
|
@@ -339,18 +341,12 @@
|
|
|
339
341
|
|
|
340
342
|
.inputField:focus {
|
|
341
343
|
outline: none;
|
|
342
|
-
|
|
343
|
-
--
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
color: var(
|
|
349
|
-
--recursica_ui-kit_components_slider_variants_states_focus_properties_colors_input-text
|
|
350
|
-
);
|
|
351
|
-
border-width: var(
|
|
352
|
-
--recursica_ui-kit_components_slider_variants_states_focus_properties_input-border-size
|
|
353
|
-
);
|
|
344
|
+
box-shadow:
|
|
345
|
+
0 0 0 var(--recursica_brand_states_focus_border-size)
|
|
346
|
+
var(--recursica_brand_states_focus_color),
|
|
347
|
+
0 0 var(--recursica_brand_states_focus_blur)
|
|
348
|
+
var(--recursica_brand_states_focus_margin)
|
|
349
|
+
var(--recursica_brand_states_focus_color);
|
|
354
350
|
}
|
|
355
351
|
|
|
356
352
|
/* Chrome, Safari, Edge, Opera: Hide number spin buttons */
|
|
@@ -400,6 +396,23 @@
|
|
|
400
396
|
6. State-Specific Overrides (Disabled, Error)
|
|
401
397
|
========================================== */
|
|
402
398
|
|
|
399
|
+
/* Focus states */
|
|
400
|
+
/* The token schema's `active` state (not a separate `focus` state) now covers track/step-indicator
|
|
401
|
+
color while focus is within the slider; there is no `active` override for the filled mark. */
|
|
402
|
+
.sliderRoot:has(.sliderThumb:focus) .sliderTrack,
|
|
403
|
+
.sliderRoot:focus-within .sliderTrack {
|
|
404
|
+
background-color: var(
|
|
405
|
+
--recursica_ui-kit_components_slider_variants_states_active_properties_colors_track
|
|
406
|
+
);
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
.sliderRoot:has(.sliderThumb:focus) .sliderMark,
|
|
410
|
+
.sliderRoot:focus-within .sliderMark {
|
|
411
|
+
background-color: var(
|
|
412
|
+
--recursica_ui-kit_components_slider_variants_states_active_properties_colors_step-indicator-color
|
|
413
|
+
);
|
|
414
|
+
}
|
|
415
|
+
|
|
403
416
|
/* Disabled state */
|
|
404
417
|
.sliderContainer[data-disabled="true"] .iconWrapper {
|
|
405
418
|
color: var(
|
|
@@ -441,12 +454,15 @@
|
|
|
441
454
|
|
|
442
455
|
.sliderContainer[data-disabled="true"] {
|
|
443
456
|
color: var(--form-field-disabled-text);
|
|
457
|
+
opacity: var(
|
|
458
|
+
--recursica_ui-kit_components_slider_variants_states_disabled_properties_opacity
|
|
459
|
+
);
|
|
444
460
|
}
|
|
445
461
|
|
|
446
462
|
.inputField:disabled {
|
|
447
463
|
cursor: not-allowed;
|
|
448
464
|
background-color: var(
|
|
449
|
-
--recursica_ui-kit_components_slider_variants_states_disabled_properties_colors_input-background
|
|
465
|
+
--recursica_ui-kit_components_slider_variants_states_disabled_properties_colors_input-background-color
|
|
450
466
|
);
|
|
451
467
|
border-color: var(
|
|
452
468
|
--recursica_ui-kit_components_slider_variants_states_disabled_properties_colors_input-border-color
|
|
@@ -498,7 +514,7 @@
|
|
|
498
514
|
|
|
499
515
|
.inputField[data-error="true"] {
|
|
500
516
|
background-color: var(
|
|
501
|
-
--recursica_ui-kit_components_slider_variants_states_error_properties_colors_input-background
|
|
517
|
+
--recursica_ui-kit_components_slider_variants_states_error_properties_colors_input-background-color
|
|
502
518
|
);
|
|
503
519
|
border-color: var(
|
|
504
520
|
--recursica_ui-kit_components_slider_variants_states_error_properties_colors_input-border-color
|
|
@@ -267,7 +267,7 @@
|
|
|
267
267
|
/* Font details are implicitly mapped by sizes, but colors map to states */
|
|
268
268
|
/* Upcoming State (Pending) - Default */
|
|
269
269
|
background-color: var(
|
|
270
|
-
--recursica_ui-kit_components_stepper_properties_colors_upcoming-indicator-background
|
|
270
|
+
--recursica_ui-kit_components_stepper_properties_colors_upcoming-indicator-background-color
|
|
271
271
|
);
|
|
272
272
|
border-color: var(
|
|
273
273
|
--recursica_ui-kit_components_stepper_properties_colors_upcoming-indicator-border-color
|
|
@@ -281,7 +281,7 @@
|
|
|
281
281
|
.root .stepIcon.Mui-completed,
|
|
282
282
|
.root .stepIcon:has(.Mui-completed) {
|
|
283
283
|
background-color: var(
|
|
284
|
-
--recursica_ui-kit_components_stepper_properties_colors_completed-indicator-background
|
|
284
|
+
--recursica_ui-kit_components_stepper_properties_colors_completed-indicator-background-color
|
|
285
285
|
);
|
|
286
286
|
border-color: var(
|
|
287
287
|
--recursica_ui-kit_components_stepper_properties_colors_completed-indicator-border-color
|
|
@@ -316,7 +316,7 @@
|
|
|
316
316
|
.root .stepIcon.Mui-active,
|
|
317
317
|
.root .stepIcon:has(.Mui-active) {
|
|
318
318
|
background-color: var(
|
|
319
|
-
--recursica_ui-kit_components_stepper_properties_colors_current-indicator-background
|
|
319
|
+
--recursica_ui-kit_components_stepper_properties_colors_current-indicator-background-color
|
|
320
320
|
);
|
|
321
321
|
border-color: var(
|
|
322
322
|
--recursica_ui-kit_components_stepper_properties_colors_current-indicator-border-color
|
|
@@ -25,8 +25,17 @@
|
|
|
25
25
|
|
|
26
26
|
.root:has(input:disabled) {
|
|
27
27
|
cursor: not-allowed;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/* Track/thumb dim per selection state; label dims via its own (single, state-agnostic) token */
|
|
31
|
+
.root:has(input:checked:disabled) .track {
|
|
32
|
+
opacity: var(
|
|
33
|
+
--recursica_ui-kit_components_switch_variants_selection-states_selected_variants_states_disabled_properties_opacity
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
.root:has(input:disabled):not(:has(input:checked)) .track {
|
|
28
37
|
opacity: var(
|
|
29
|
-
--recursica_ui-
|
|
38
|
+
--recursica_ui-kit_components_switch_variants_selection-states_unselected_variants_states_disabled_properties_opacity
|
|
30
39
|
);
|
|
31
40
|
}
|
|
32
41
|
|
|
@@ -39,12 +48,12 @@
|
|
|
39
48
|
/* HARDCODE: disable native hover color transitions applied by Mantine */
|
|
40
49
|
.track:hover {
|
|
41
50
|
background-color: var(
|
|
42
|
-
--recursica_ui-
|
|
51
|
+
--recursica_ui-kit_components_switch_variants_selection-states_unselected_properties_colors_track-color
|
|
43
52
|
);
|
|
44
53
|
}
|
|
45
54
|
.root input:checked + .track:hover {
|
|
46
55
|
background-color: var(
|
|
47
|
-
--recursica_ui-
|
|
56
|
+
--recursica_ui-kit_components_switch_variants_selection-states_selected_properties_colors_track-color
|
|
48
57
|
);
|
|
49
58
|
}
|
|
50
59
|
|
|
@@ -55,7 +64,7 @@
|
|
|
55
64
|
--recursica_ui-kit_components_switch_properties_track-border-radius
|
|
56
65
|
);
|
|
57
66
|
background-color: var(
|
|
58
|
-
--recursica_ui-
|
|
67
|
+
--recursica_ui-kit_components_switch_variants_selection-states_unselected_properties_colors_track-color
|
|
59
68
|
);
|
|
60
69
|
box-shadow: var(
|
|
61
70
|
--recursica_ui-kit_components_switch_properties_track-elevation
|
|
@@ -79,7 +88,7 @@
|
|
|
79
88
|
|
|
80
89
|
.root input:checked + .track {
|
|
81
90
|
background-color: var(
|
|
82
|
-
--recursica_ui-
|
|
91
|
+
--recursica_ui-kit_components_switch_variants_selection-states_selected_properties_colors_track-color
|
|
83
92
|
);
|
|
84
93
|
border-color: transparent;
|
|
85
94
|
}
|
|
@@ -91,7 +100,7 @@
|
|
|
91
100
|
--recursica_ui-kit_components_switch_properties_thumb-border-radius
|
|
92
101
|
);
|
|
93
102
|
background-color: var(
|
|
94
|
-
--recursica_ui-
|
|
103
|
+
--recursica_ui-kit_components_switch_variants_selection-states_unselected_properties_colors_thumb-color
|
|
95
104
|
);
|
|
96
105
|
box-shadow: var(
|
|
97
106
|
--recursica_ui-kit_components_switch_properties_thumb-elevation
|
|
@@ -103,7 +112,7 @@
|
|
|
103
112
|
|
|
104
113
|
.root input:checked + .track .thumb {
|
|
105
114
|
background-color: var(
|
|
106
|
-
--recursica_ui-
|
|
115
|
+
--recursica_ui-kit_components_switch_variants_selection-states_selected_properties_colors_thumb-color
|
|
107
116
|
);
|
|
108
117
|
}
|
|
109
118
|
|
|
@@ -114,6 +123,11 @@
|
|
|
114
123
|
--recursica_ui-kit_components_switch-item_properties_label-max-width
|
|
115
124
|
);
|
|
116
125
|
}
|
|
126
|
+
.root:has(input:disabled) .labelWrapper {
|
|
127
|
+
opacity: var(
|
|
128
|
+
--recursica_ui-kit_components_switch-item_variants_states_disabled_properties_opacity
|
|
129
|
+
);
|
|
130
|
+
}
|
|
117
131
|
|
|
118
132
|
.label {
|
|
119
133
|
font-family: var(
|
|
@@ -140,7 +154,9 @@
|
|
|
140
154
|
text-decoration: var(
|
|
141
155
|
--recursica_ui-kit_components_switch-item_properties_text_text-decoration
|
|
142
156
|
);
|
|
143
|
-
color: var(
|
|
157
|
+
color: var(
|
|
158
|
+
--recursica_ui-kit_components_switch-item_properties_colors_text-color
|
|
159
|
+
);
|
|
144
160
|
cursor: inherit;
|
|
145
161
|
}
|
|
146
162
|
|
|
@@ -167,7 +183,7 @@
|
|
|
167
183
|
.description[data-disabled="true"],
|
|
168
184
|
.error[data-disabled="true"] {
|
|
169
185
|
opacity: var(
|
|
170
|
-
--recursica_ui-kit_components_switch-
|
|
186
|
+
--recursica_ui-kit_components_switch-item_variants_states_disabled_properties_opacity
|
|
171
187
|
);
|
|
172
188
|
}
|
|
173
189
|
|
|
@@ -195,7 +211,7 @@
|
|
|
195
211
|
opacity: 0;
|
|
196
212
|
transform: scale(0.5);
|
|
197
213
|
color: var(
|
|
198
|
-
--recursica_ui-
|
|
214
|
+
--recursica_ui-kit_components_switch_variants_selection-states_selected_properties_colors_icon-color
|
|
199
215
|
);
|
|
200
216
|
}
|
|
201
217
|
|
|
@@ -203,7 +219,7 @@
|
|
|
203
219
|
opacity: 1;
|
|
204
220
|
transform: scale(1);
|
|
205
221
|
color: var(
|
|
206
|
-
--recursica_ui-
|
|
222
|
+
--recursica_ui-kit_components_switch_variants_selection-states_unselected_properties_colors_icon-color
|
|
207
223
|
);
|
|
208
224
|
}
|
|
209
225
|
|