@recursica/mantine-adapter 0.35.0 → 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 +26 -0
- package/SETUP.md +1 -1
- 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 +1385 -1300
- package/dist/mantine-adapter.js.map +1 -1
- package/dist/src/components/Tree/Tree.d.ts +9 -5
- package/dist/src/components/index.d.ts +1 -0
- package/dist/src/index.d.ts +1 -0
- package/llms.txt +2 -0
- 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/Layer/USAGE.md +54 -0
- 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/RecursicaThemeProvider/USAGE.md +60 -0
- 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
- package/src/components/index.ts +1 -0
- package/src/index.ts +3 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Layer - Usage Guide
|
|
2
|
+
|
|
3
|
+
This document describes how to integrate and use the `Layer` component in your projects using `@recursica/mantine-adapter`.
|
|
4
|
+
|
|
5
|
+
> [!NOTE] > `Layer` 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 { Layer } from "@recursica/mantine-adapter";
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 2. Basic Example
|
|
18
|
+
|
|
19
|
+
`Layer` sets `data-recursica-layer` on its root element, which is what makes the theme+layer scoped CSS variables (surface color, border, elevation, padding) in `recursica_variables_scoped.css` actually apply. [`RecursicaThemeProvider`](../RecursicaThemeProvider/USAGE.md) automatically wraps your app in a `layer={0}` `Layer` by default (via its `initLayer0` prop), so you don't need to add one yourself for the base page. You still add `Layer`s manually for anything visually elevated above the page background:
|
|
20
|
+
|
|
21
|
+
```tsx
|
|
22
|
+
import {
|
|
23
|
+
RecursicaThemeProvider,
|
|
24
|
+
Layer,
|
|
25
|
+
Card,
|
|
26
|
+
} from "@recursica/mantine-adapter";
|
|
27
|
+
|
|
28
|
+
function App() {
|
|
29
|
+
return (
|
|
30
|
+
<RecursicaThemeProvider theme="light">
|
|
31
|
+
{/* Page background/surface already uses layer 0, applied automatically */}
|
|
32
|
+
<Layer layer={1}>
|
|
33
|
+
<Card>Elevated content sits on layer 1</Card>
|
|
34
|
+
</Layer>
|
|
35
|
+
</RecursicaThemeProvider>
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## 3. Design System Integration
|
|
43
|
+
|
|
44
|
+
> [!IMPORTANT]
|
|
45
|
+
>
|
|
46
|
+
> - **Layer 0 is automatic**: `RecursicaThemeProvider` applies it for you by default. Only opt out (`initLayer0={false}`) if you need to control exactly where layer 0 starts in the tree, or need `contentsOnly` on the base layer — see [RecursicaThemeProvider usage](../RecursicaThemeProvider/USAGE.md).
|
|
47
|
+
> - **Layers 1–3 are manual**: Wrap any content that's visually elevated above the page background (a Card, Modal, Popover, etc.) in its own `<Layer layer={1|2|3}>`. Nesting `Layer`s is how Recursica communicates elevation to descendant components — do **not** pass a `layer` prop directly to other components; wrap them in a `Layer` instead (every other component's `USAGE.md` repeats this rule).
|
|
48
|
+
> - **`contentsOnly`**: When `true`, `Layer` renders with `display: contents` and omits `data-recursica-layer` entirely — use this when you need a layer boundary in your component tree without adding an extra DOM box or applying layer styling (e.g. a purely structural wrapper).
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## 4. Key Integration Features & Constraints
|
|
53
|
+
|
|
54
|
+
`Layer` has no visual variants of its own — its entire purpose is to bind a subtree to a numbered layer's design tokens. It does not accept `overStyled`; instead, if you find yourself needing to override a layer's surface styling, that's a signal you may want a different layer number rather than an escape hatch.
|
|
@@ -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;
|