@recursica/mantine-adapter 0.35.1 → 0.36.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 +17 -0
- package/dist/mantine-adapter.cjs +2 -2
- package/dist/mantine-adapter.cjs.map +1 -1
- package/dist/mantine-adapter.css +1 -1
- package/dist/mantine-adapter.js +1104 -1023
- package/dist/mantine-adapter.js.map +1 -1
- package/dist/src/components/Tree/Tree.d.ts +9 -5
- package/package.json +1 -1
- package/src/components/Accordion/Accordion.module.css +123 -62
- package/src/components/Accordion/Accordion.stories.tsx +65 -33
- package/src/components/Accordion/Accordion.tsx +1 -0
- package/src/components/AutoComplete/AutoComplete.module.css +50 -49
- 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 +22 -89
- package/src/components/Card/Card.module.css +3 -3
- package/src/components/Checkbox/Checkbox.module.css +54 -15
- package/src/components/Chip/Chip.module.css +27 -26
- package/src/components/DatePicker/DatePicker.module.css +25 -30
- 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 +7 -3
- package/src/components/Link/IMPLEMENTATION_NOTES.md +2 -9
- package/src/components/Link/Link.module.css +15 -76
- package/src/components/Link/USAGE.md +2 -9
- package/src/components/Loader/Loader.module.css +3 -3
- package/src/components/Menu/Menu.module.css +34 -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/Popover/Popover.module.css +1 -1
- package/src/components/Radio/Radio.module.css +31 -14
- package/src/components/ReadOnlyField/ReadOnlyField.module.css +1 -1
- package/src/components/SegmentedControl/SegmentedControl.module.css +29 -29
- package/src/components/Slider/IMPLEMENTATION_NOTES.md +9 -0
- package/src/components/Slider/Slider.module.css +44 -48
- package/src/components/Stepper/Stepper.module.css +3 -3
- package/src/components/Switch/Switch.module.css +26 -10
- package/src/components/Table/Table.module.css +53 -21
- package/src/components/Tabs/Tabs.module.css +309 -170
- 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 -35
- package/src/components/TextField/TextField.tsx +2 -2
- package/src/components/Timeline/Timeline.module.css +41 -34
- package/src/components/Toast/Toast.module.css +19 -11
- package/src/components/Tooltip/Tooltip.module.css +4 -2
- package/src/components/Tree/IMPLEMENTATION_NOTES.md +17 -0
- package/src/components/Tree/Tree.module.css +173 -39
- package/src/components/Tree/Tree.stories.tsx +81 -4
- package/src/components/Tree/Tree.tsx +117 -15
- package/src/components/Tree/USAGE.md +36 -3
|
@@ -1,15 +1,8 @@
|
|
|
1
1
|
# Link Component Implementation Notes
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## States in Design Tokens
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
- `default`
|
|
8
|
-
- `hover`
|
|
9
|
-
- `visited`
|
|
10
|
-
- `visited-hover`
|
|
11
|
-
|
|
12
|
-
There are no tokens for the `active` or `focus` states. If these are needed, they must be added to the Figma variables and exported via the token pipeline. The component relies on the browser's default focus outline for accessibility unless overriden by a global reset.
|
|
5
|
+
The design tokens (`recursica_variables_scoped.css`) provide the base link styling directly on `--recursica_ui-kit_components_link_properties_*` (no distinct `default` state), plus a `visited` variant that overrides only `colors_text-color`/`colors_icon-color`. There is no per-state token for `hover` anymore (a prior schema version had one); the component currently applies no distinct hover treatment beyond the browser's native `cursor: pointer`. There are no tokens for `active` or `focus` either; the component relies on the browser's default focus outline for accessibility unless overridden by a global reset.
|
|
13
6
|
|
|
14
7
|
## Overriding Mantine's underline Prop
|
|
15
8
|
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
/* EXEMPTIONS:
|
|
2
|
-
- text_text-transform
|
|
3
|
-
|
|
4
|
-
/* recursica-ignore: --recursica_ui-
|
|
5
|
-
/* recursica-ignore: --recursica_ui-kit_components_link_variants_states_hover_properties_text_text-transform */
|
|
6
|
-
/* recursica-ignore: --recursica_ui-kit_components_link_variants_states_visited_properties_text_text-transform */
|
|
7
|
-
/* recursica-ignore: --recursica_ui-kit_components_link_variants_states_visited-hover_properties_text_text-transform */
|
|
2
|
+
- text_text-transform is ignored because links naturally inherit casing directly from text
|
|
3
|
+
children rather than requiring custom CSS transforms. */
|
|
4
|
+
/* recursica-ignore: --recursica_ui-kit_components_link_properties_text_text-transform */
|
|
8
5
|
|
|
9
6
|
/*
|
|
10
7
|
HARDCODED VALUES:
|
|
@@ -24,31 +21,27 @@ HARDCODED VALUES:
|
|
|
24
21
|
text-decoration: none;
|
|
25
22
|
color: inherit;
|
|
26
23
|
|
|
27
|
-
/* Typography
|
|
24
|
+
/* Typography Tokens */
|
|
28
25
|
font-family: var(
|
|
29
26
|
--recursica_ui-kit_components_link_properties_text_font-family
|
|
30
27
|
);
|
|
31
28
|
font-size: var(--recursica_ui-kit_components_link_properties_text_font-size);
|
|
29
|
+
font-style: var(
|
|
30
|
+
--recursica_ui-kit_components_link_properties_text_font-style
|
|
31
|
+
);
|
|
32
|
+
font-weight: var(
|
|
33
|
+
--recursica_ui-kit_components_link_properties_text_font-weight
|
|
34
|
+
);
|
|
32
35
|
letter-spacing: var(
|
|
33
36
|
--recursica_ui-kit_components_link_properties_text_letter-spacing
|
|
34
37
|
);
|
|
35
38
|
line-height: var(
|
|
36
39
|
--recursica_ui-kit_components_link_properties_text_line-height
|
|
37
40
|
);
|
|
38
|
-
|
|
39
|
-
/* Default State Tokens */
|
|
40
|
-
font-style: var(
|
|
41
|
-
--recursica_ui-kit_components_link_variants_states_default_properties_text_font-style
|
|
42
|
-
);
|
|
43
|
-
font-weight: var(
|
|
44
|
-
--recursica_ui-kit_components_link_variants_states_default_properties_text_font-weight
|
|
45
|
-
);
|
|
46
41
|
text-decoration: var(
|
|
47
|
-
--recursica_ui-
|
|
48
|
-
);
|
|
49
|
-
color: var(
|
|
50
|
-
--recursica_ui-kit_components_link_variants_states_default_properties_colors_text
|
|
42
|
+
--recursica_ui-kit_components_link_properties_text_text-decoration
|
|
51
43
|
);
|
|
44
|
+
color: var(--recursica_ui-kit_components_link_properties_colors_text-color);
|
|
52
45
|
}
|
|
53
46
|
|
|
54
47
|
.root[data-has-icon] {
|
|
@@ -57,49 +50,9 @@ HARDCODED VALUES:
|
|
|
57
50
|
gap: var(--recursica_ui-kit_components_link_properties_icon-text-gap);
|
|
58
51
|
}
|
|
59
52
|
|
|
60
|
-
.root:hover {
|
|
61
|
-
/* Reset Mantine's potential hover override */
|
|
62
|
-
text-decoration: var(
|
|
63
|
-
--recursica_ui-kit_components_link_variants_states_hover_properties_text_text-decoration
|
|
64
|
-
);
|
|
65
|
-
font-style: var(
|
|
66
|
-
--recursica_ui-kit_components_link_variants_states_hover_properties_text_font-style
|
|
67
|
-
);
|
|
68
|
-
font-weight: var(
|
|
69
|
-
--recursica_ui-kit_components_link_variants_states_hover_properties_text_font-weight
|
|
70
|
-
);
|
|
71
|
-
color: var(
|
|
72
|
-
--recursica_ui-kit_components_link_variants_states_hover_properties_colors_text
|
|
73
|
-
);
|
|
74
|
-
}
|
|
75
|
-
|
|
76
53
|
.root:visited {
|
|
77
|
-
text-decoration: var(
|
|
78
|
-
--recursica_ui-kit_components_link_variants_states_visited_properties_text_text-decoration
|
|
79
|
-
);
|
|
80
|
-
font-style: var(
|
|
81
|
-
--recursica_ui-kit_components_link_variants_states_visited_properties_text_font-style
|
|
82
|
-
);
|
|
83
|
-
font-weight: var(
|
|
84
|
-
--recursica_ui-kit_components_link_variants_states_visited_properties_text_font-weight
|
|
85
|
-
);
|
|
86
54
|
color: var(
|
|
87
|
-
--recursica_ui-kit_components_link_variants_states_visited_properties_colors_text
|
|
88
|
-
);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
.root:visited:hover {
|
|
92
|
-
text-decoration: var(
|
|
93
|
-
--recursica_ui-kit_components_link_variants_states_visited-hover_properties_text_text-decoration
|
|
94
|
-
);
|
|
95
|
-
font-style: var(
|
|
96
|
-
--recursica_ui-kit_components_link_variants_states_visited-hover_properties_text_font-style
|
|
97
|
-
);
|
|
98
|
-
font-weight: var(
|
|
99
|
-
--recursica_ui-kit_components_link_variants_states_visited-hover_properties_text_font-weight
|
|
100
|
-
);
|
|
101
|
-
color: var(
|
|
102
|
-
--recursica_ui-kit_components_link_variants_states_visited-hover_properties_colors_text
|
|
55
|
+
--recursica_ui-kit_components_link_variants_states_visited_properties_colors_text-color
|
|
103
56
|
);
|
|
104
57
|
}
|
|
105
58
|
|
|
@@ -112,26 +65,12 @@ HARDCODED VALUES:
|
|
|
112
65
|
|
|
113
66
|
width: var(--recursica_ui-kit_components_link_properties_icon-size);
|
|
114
67
|
height: var(--recursica_ui-kit_components_link_properties_icon-size);
|
|
115
|
-
color: var(
|
|
116
|
-
--recursica_ui-kit_components_link_variants_states_default_properties_colors_icon
|
|
117
|
-
);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
.root:hover .iconWrapper {
|
|
121
|
-
color: var(
|
|
122
|
-
--recursica_ui-kit_components_link_variants_states_hover_properties_colors_icon
|
|
123
|
-
);
|
|
68
|
+
color: var(--recursica_ui-kit_components_link_properties_colors_icon-color);
|
|
124
69
|
}
|
|
125
70
|
|
|
126
71
|
.root:visited .iconWrapper {
|
|
127
72
|
color: var(
|
|
128
|
-
--recursica_ui-kit_components_link_variants_states_visited_properties_colors_icon
|
|
129
|
-
);
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
.root:visited:hover .iconWrapper {
|
|
133
|
-
color: var(
|
|
134
|
-
--recursica_ui-kit_components_link_variants_states_visited-hover_properties_colors_icon
|
|
73
|
+
--recursica_ui-kit_components_link_variants_states_visited_properties_colors_icon-color
|
|
135
74
|
);
|
|
136
75
|
}
|
|
137
76
|
|
|
@@ -43,16 +43,9 @@ All Recursica components in the `@recursica/mantine-adapter` package adhere stri
|
|
|
43
43
|
|
|
44
44
|
## 4. Key Integration Features & Constraints
|
|
45
45
|
|
|
46
|
-
##
|
|
46
|
+
## States in Design Tokens
|
|
47
47
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
- `default`
|
|
51
|
-
- `hover`
|
|
52
|
-
- `visited`
|
|
53
|
-
- `visited-hover`
|
|
54
|
-
|
|
55
|
-
There are no tokens for the `active` or `focus` states. If these are needed, they must be added to the Figma variables and exported via the token pipeline. The component relies on the browser's default focus outline for accessibility unless overriden by a global reset.
|
|
48
|
+
The design tokens (`recursica_variables_scoped.css`) provide the base link styling directly on `--recursica_ui-kit_components_link_properties_*` (no distinct `default` state), plus a `visited` variant that overrides only `colors_text-color`/`colors_icon-color`. There is no per-state token for `hover` anymore (a prior schema version had one); the component currently applies no distinct hover treatment beyond the browser's native `cursor: pointer`. There are no tokens for `active` or `focus` either; the component relies on the browser's default focus outline for accessibility unless overridden by a global reset.
|
|
56
49
|
|
|
57
50
|
## Overriding Mantine's underline Prop
|
|
58
51
|
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
}
|
|
16
16
|
.root[data-size="small"][data-variant="oval"]::after {
|
|
17
17
|
border-width: var(
|
|
18
|
-
--recursica_ui-kit_components_loader_variants_sizes_small_properties_thickness
|
|
18
|
+
--recursica_ui-kit_components_loader_variants_sizes_small_properties_thickness-size
|
|
19
19
|
);
|
|
20
20
|
border-radius: var(
|
|
21
21
|
--recursica_ui-kit_components_loader_variants_sizes_small_properties_border-radius
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
}
|
|
31
31
|
.root[data-size="default"][data-variant="oval"]::after {
|
|
32
32
|
border-width: var(
|
|
33
|
-
--recursica_ui-kit_components_loader_variants_sizes_default_properties_thickness
|
|
33
|
+
--recursica_ui-kit_components_loader_variants_sizes_default_properties_thickness-size
|
|
34
34
|
);
|
|
35
35
|
border-radius: var(
|
|
36
36
|
--recursica_ui-kit_components_loader_variants_sizes_default_properties_border-radius
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
}
|
|
46
46
|
.root[data-size="large"][data-variant="oval"]::after {
|
|
47
47
|
border-width: var(
|
|
48
|
-
--recursica_ui-kit_components_loader_variants_sizes_large_properties_thickness
|
|
48
|
+
--recursica_ui-kit_components_loader_variants_sizes_large_properties_thickness-size
|
|
49
49
|
);
|
|
50
50
|
border-radius: var(
|
|
51
51
|
--recursica_ui-kit_components_loader_variants_sizes_large_properties_border-radius
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
/* EXEMPTIONS:
|
|
2
|
-
-
|
|
3
|
-
supporting secondary text, making selected
|
|
4
|
-
|
|
2
|
+
- colors_supporting-text-color (selected variant) is ignored because selected menu items do not
|
|
3
|
+
render supporting secondary text, making the selected-state override for supporting text
|
|
4
|
+
colors obsolete. */
|
|
5
|
+
/* recursica-ignore: --recursica_ui-kit_components_menu-item_variants_selection-states_selected_properties_colors_supporting-text-color */
|
|
5
6
|
|
|
6
7
|
/* HARDCODED VALUES:
|
|
7
8
|
- border-style: solid. Structural rendering rule for the dropdown border (Mantine uses Paper which may not set border natively).
|
|
8
|
-
- opacity: 0.5 on disabled items. Recursica has no dedicated disabled-opacity token for menu items.
|
|
9
9
|
- NOTE: overflow is intentionally NOT set on .dropdown. Mantine renders sub-menu dropdowns
|
|
10
10
|
inside the parent dropdown DOM tree using Floating UI absolute positioning. Setting
|
|
11
11
|
overflow: hidden clips sub-menus; overflow-y: auto causes unwanted scrollbars.
|
|
12
12
|
- All structural layout (flex, cursor, pointer-events on disabled) is deferred to Mantine's
|
|
13
13
|
native behavior. We only override visual design tokens (colors, typography, spacing, borders).
|
|
14
|
+
- Hover overlay: the schema no longer provides per-item hover-color/hover-opacity tokens; the
|
|
15
|
+
overlay now uses the generic --recursica_brand_states_hover_* tokens shared across components.
|
|
14
16
|
*/
|
|
15
17
|
|
|
16
18
|
/* ======================================
|
|
@@ -19,7 +21,7 @@
|
|
|
19
21
|
|
|
20
22
|
.dropdown {
|
|
21
23
|
background-color: var(
|
|
22
|
-
--recursica_ui-kit_components_menu_properties_colors_background
|
|
24
|
+
--recursica_ui-kit_components_menu_properties_colors_background-color
|
|
23
25
|
);
|
|
24
26
|
border-style: solid; /* HARDCODE: Mantine Paper does not set border-style natively */
|
|
25
27
|
border-width: var(--recursica_ui-kit_components_menu_properties_border-size);
|
|
@@ -34,10 +36,7 @@
|
|
|
34
36
|
min-width: var(--recursica_ui-kit_components_menu_properties_min-width);
|
|
35
37
|
max-height: var(--recursica_ui-kit_components_menu_properties_max-height);
|
|
36
38
|
max-width: var(--recursica_ui-kit_components_menu_properties_max-width);
|
|
37
|
-
|
|
38
|
-
/* HARDCODE: Figma UI Kit does not export padding tokens for the Menu container itself.
|
|
39
|
-
If added in the future, it would be mapped here. */
|
|
40
|
-
padding: 8px;
|
|
39
|
+
padding: var(--recursica_ui-kit_components_menu_properties_padding);
|
|
41
40
|
}
|
|
42
41
|
|
|
43
42
|
/* ======================================
|
|
@@ -55,6 +54,7 @@
|
|
|
55
54
|
border-radius: var(
|
|
56
55
|
--recursica_ui-kit_components_menu-item_properties_border-radius
|
|
57
56
|
);
|
|
57
|
+
margin-bottom: var(--recursica_ui-kit_components_menu_properties_item-gap);
|
|
58
58
|
|
|
59
59
|
/* Typography */
|
|
60
60
|
font-family: var(
|
|
@@ -84,22 +84,27 @@
|
|
|
84
84
|
|
|
85
85
|
/* Default State: Unselected */
|
|
86
86
|
background-color: var(
|
|
87
|
-
--recursica_ui-kit_components_menu-
|
|
87
|
+
--recursica_ui-kit_components_menu-item_variants_selection-states_unselected_properties_colors_background-color
|
|
88
88
|
);
|
|
89
89
|
color: var(
|
|
90
|
-
--recursica_ui-kit_components_menu-
|
|
90
|
+
--recursica_ui-kit_components_menu-item_variants_selection-states_unselected_properties_colors_text-color
|
|
91
91
|
);
|
|
92
92
|
opacity: 1;
|
|
93
93
|
}
|
|
94
|
+
.item:last-of-type {
|
|
95
|
+
margin-bottom: 0;
|
|
96
|
+
}
|
|
94
97
|
|
|
95
98
|
/* Override Mantine's native hover background to use our overlay technique */
|
|
96
99
|
.item:hover {
|
|
97
100
|
background-color: var(
|
|
98
|
-
--recursica_ui-kit_components_menu-
|
|
101
|
+
--recursica_ui-kit_components_menu-item_variants_selection-states_unselected_properties_colors_background-color
|
|
99
102
|
);
|
|
100
103
|
}
|
|
101
104
|
|
|
102
|
-
/* Hover overlay using ::after pseudo-element (same technique as Accordion)
|
|
105
|
+
/* Hover overlay using ::after pseudo-element (same technique as Accordion); no per-item
|
|
106
|
+
hover-color/hover-opacity tokens exist anymore, so this uses the generic overlay tokens
|
|
107
|
+
uniformly regardless of selection state. */
|
|
103
108
|
.item::after {
|
|
104
109
|
content: "";
|
|
105
110
|
position: absolute;
|
|
@@ -107,58 +112,46 @@
|
|
|
107
112
|
border-radius: inherit;
|
|
108
113
|
z-index: 0;
|
|
109
114
|
pointer-events: none;
|
|
110
|
-
background-color: var(
|
|
111
|
-
--recursica_ui-kit_components_menu-item_properties_colors_unselected-item_hover-color
|
|
112
|
-
);
|
|
115
|
+
background-color: var(--recursica_brand_states_hover_color);
|
|
113
116
|
opacity: 0;
|
|
114
117
|
transition: opacity 150ms ease;
|
|
115
118
|
}
|
|
116
119
|
|
|
117
120
|
.item:hover:not([data-disabled])::after {
|
|
118
|
-
opacity: var(
|
|
119
|
-
--recursica_ui-kit_components_menu-item_properties_colors_unselected-item_hover-opacity
|
|
120
|
-
);
|
|
121
|
+
opacity: var(--recursica_brand_states_hover_opacity);
|
|
121
122
|
}
|
|
122
123
|
|
|
123
124
|
/* Selected item state */
|
|
124
125
|
.item[data-selected] {
|
|
125
126
|
background-color: var(
|
|
126
|
-
--recursica_ui-kit_components_menu-
|
|
127
|
+
--recursica_ui-kit_components_menu-item_variants_selection-states_selected_properties_colors_background-color
|
|
127
128
|
);
|
|
128
129
|
color: var(
|
|
129
|
-
--recursica_ui-kit_components_menu-
|
|
130
|
+
--recursica_ui-kit_components_menu-item_variants_selection-states_selected_properties_colors_text-color
|
|
130
131
|
);
|
|
131
132
|
opacity: 1;
|
|
132
133
|
}
|
|
133
134
|
|
|
134
|
-
.item[data-selected]::after {
|
|
135
|
-
background-color: var(
|
|
136
|
-
--recursica_ui-kit_components_menu-item_properties_colors_selected-item_hover-color
|
|
137
|
-
);
|
|
138
|
-
}
|
|
139
|
-
|
|
140
135
|
/* Hovered item state (keyboard navigation) */
|
|
141
136
|
.item[data-hovered] {
|
|
142
137
|
background-color: var(
|
|
143
|
-
--recursica_ui-kit_components_menu-
|
|
138
|
+
--recursica_ui-kit_components_menu-item_variants_selection-states_unselected_properties_colors_background-color
|
|
144
139
|
);
|
|
145
140
|
}
|
|
146
141
|
.item[data-hovered]::after {
|
|
147
|
-
opacity: var(
|
|
148
|
-
--recursica_ui-kit_components_menu-item_properties_colors_unselected-item_hover-opacity
|
|
149
|
-
);
|
|
142
|
+
opacity: var(--recursica_brand_states_hover_opacity);
|
|
150
143
|
}
|
|
151
144
|
|
|
152
|
-
|
|
145
|
+
/* Disabled item (opacity differs depending on selection state) */
|
|
146
|
+
.item[data-disabled]:not([data-selected]) {
|
|
153
147
|
opacity: var(
|
|
154
|
-
--recursica_ui-kit_components_menu-
|
|
148
|
+
--recursica_ui-kit_components_menu-item_variants_selection-states_unselected_variants_states_disabled_properties_opacity
|
|
155
149
|
);
|
|
156
150
|
}
|
|
157
151
|
|
|
158
|
-
|
|
159
|
-
.item[data-disabled] {
|
|
152
|
+
.item[data-disabled][data-selected] {
|
|
160
153
|
opacity: var(
|
|
161
|
-
--recursica_ui-kit_components_menu-
|
|
154
|
+
--recursica_ui-kit_components_menu-item_variants_selection-states_selected_variants_states_disabled_properties_opacity
|
|
162
155
|
);
|
|
163
156
|
}
|
|
164
157
|
|
|
@@ -192,7 +185,7 @@
|
|
|
192
185
|
--recursica_ui-kit_components_menu-item_properties_icon-text-gap
|
|
193
186
|
);
|
|
194
187
|
color: var(
|
|
195
|
-
--recursica_ui-kit_components_menu-
|
|
188
|
+
--recursica_ui-kit_components_menu-item_variants_selection-states_unselected_properties_colors_leading-icon-color
|
|
196
189
|
);
|
|
197
190
|
}
|
|
198
191
|
|
|
@@ -205,19 +198,19 @@
|
|
|
205
198
|
);
|
|
206
199
|
margin-left: var(--recursica_ui-kit_components_menu-item_properties_text-gap);
|
|
207
200
|
color: var(
|
|
208
|
-
--recursica_ui-kit_components_menu-
|
|
201
|
+
--recursica_ui-kit_components_menu-item_variants_selection-states_unselected_properties_colors_trailing-icon-color
|
|
209
202
|
);
|
|
210
203
|
}
|
|
211
204
|
|
|
212
205
|
.item[data-selected] .itemSection[data-position="left"] {
|
|
213
206
|
color: var(
|
|
214
|
-
--recursica_ui-kit_components_menu-
|
|
207
|
+
--recursica_ui-kit_components_menu-item_variants_selection-states_selected_properties_colors_leading-icon-color
|
|
215
208
|
);
|
|
216
209
|
}
|
|
217
210
|
|
|
218
211
|
.item[data-selected] .itemSection[data-position="right"] {
|
|
219
212
|
color: var(
|
|
220
|
-
--recursica_ui-kit_components_menu-
|
|
213
|
+
--recursica_ui-kit_components_menu-item_variants_selection-states_selected_properties_colors_trailing-icon-color
|
|
221
214
|
);
|
|
222
215
|
}
|
|
223
216
|
|
|
@@ -271,7 +264,7 @@
|
|
|
271
264
|
);
|
|
272
265
|
|
|
273
266
|
color: var(
|
|
274
|
-
--recursica_ui-kit_components_menu-
|
|
267
|
+
--recursica_ui-kit_components_menu-item_variants_selection-states_unselected_properties_colors_supporting-text-color
|
|
275
268
|
);
|
|
276
269
|
opacity: 0.7;
|
|
277
270
|
}
|
|
@@ -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-
|
|
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(
|
|
51
|
-
|
|
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(
|
|
97
|
-
|
|
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-
|
|
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-
|
|
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(
|
|
163
|
-
|
|
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
|
-
-
|
|
3
|
-
unexpected layout shifts or flickering when switching between
|
|
4
|
-
/* recursica-ignore: --recursica_ui-kit_components_number-
|
|
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-
|
|
125
|
+
--recursica_ui-kit_components_number-input_properties_colors_background-color
|
|
113
126
|
);
|
|
114
127
|
border-color: var(
|
|
115
|
-
--recursica_ui-kit_components_number-
|
|
128
|
+
--recursica_ui-kit_components_number-input_properties_colors_border-color
|
|
116
129
|
);
|
|
117
130
|
color: var(
|
|
118
|
-
--recursica_ui-kit_components_number-
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
-
|
|
207
|
-
--
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
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
|
}
|
|
@@ -92,8 +92,8 @@ export const NumberInput = forwardRef<HTMLInputElement, NumberInputProps>(
|
|
|
92
92
|
<WithReadOnlyWrapper
|
|
93
93
|
className={wrapperClass}
|
|
94
94
|
style={style as React.CSSProperties}
|
|
95
|
-
controlMaxWidth="var(--
|
|
96
|
-
controlMinWidth="var(--
|
|
95
|
+
controlMaxWidth="var(--number-input-control-max-width)"
|
|
96
|
+
controlMinWidth="var(--number-input-control-min-width)"
|
|
97
97
|
overStyled={overStyled as true}
|
|
98
98
|
formLayout={formLayout}
|
|
99
99
|
labelSize={labelSize}
|