@inchurch/matcha-theme 20.0.11 → 20.277.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/abstracts/_colors.scss +404 -404
- package/abstracts/_elevation.scss +102 -102
- package/abstracts/_functions.scss +1186 -1212
- package/abstracts/_media-breakpoint.scss +23 -23
- package/abstracts/_theme-api.scss +230 -0
- package/abstracts/_typography.scss +127 -127
- package/base/_reset.scss +438 -438
- package/components/app-page-header.scss +259 -0
- package/components/matcha-accordion.scss +293 -157
- package/components/matcha-audio-player.scss +1 -2
- package/components/matcha-autocomplete.scss +10 -11
- package/components/matcha-avatar.scss +173 -33
- package/components/matcha-badge.scss +15 -15
- package/components/matcha-breadcrumb.scss +231 -126
- package/components/matcha-button-toggle.scss +46 -2
- package/components/matcha-buttons.scss +908 -784
- package/components/matcha-calendar.scss +99 -35
- package/components/matcha-cards.scss +58 -33
- package/components/matcha-chart-card.scss +5 -12
- package/components/matcha-checkbox.scss +191 -490
- package/components/matcha-chip.scss +297 -212
- package/components/matcha-color-pick.scss +1 -2
- package/components/matcha-command-palette.scss +290 -63
- package/components/matcha-crop.scss +406 -172
- package/components/matcha-date.scss +81 -81
- package/components/matcha-divider.scss +86 -31
- package/components/matcha-draggable.scss +4 -5
- package/components/matcha-drawer.scss +207 -66
- package/components/matcha-drop-image.scss +14 -0
- package/components/matcha-drop-list.scss +87 -47
- package/components/matcha-emoji.scss +2 -2
- package/components/matcha-empty-state.scss +195 -83
- package/components/matcha-file-uploader.scss +462 -0
- package/components/matcha-flag.scss +93 -52
- package/components/matcha-footer.scss +67 -164
- package/components/matcha-form-field.scss +55 -3
- package/components/matcha-form-section.scss +100 -101
- package/components/matcha-header.scss +134 -325
- package/components/matcha-highlight.scss +65 -197
- package/components/matcha-hint-text.scss +25 -4
- package/components/matcha-horizontal-tree.scss +316 -317
- package/components/matcha-icon.scss +37 -45
- package/components/matcha-image.scss +2 -3
- package/components/matcha-list.scss +14 -15
- package/components/matcha-menu.scss +15 -2
- package/components/matcha-modal.scss +59 -86
- package/components/matcha-nav.scss +362 -231
- package/components/matcha-notification.scss +412 -197
- package/components/matcha-option.scss +98 -23
- package/components/matcha-page-builder.scss +16 -16
- package/components/matcha-paginator.scss +688 -235
- package/components/matcha-panel.scss +42 -27
- package/components/matcha-profile-card.scss +50 -50
- package/components/matcha-progress-bar.scss +257 -153
- package/components/matcha-radio.scss +244 -452
- package/components/matcha-scrollbar.scss +1 -2
- package/components/matcha-scrollbox-shadow.scss +120 -122
- package/components/matcha-section.scss +5 -9
- package/components/matcha-select-multiple.scss +56 -0
- package/components/matcha-select.scss +10 -10
- package/components/matcha-skeleton.scss +24 -7
- package/components/matcha-slide-toggle.scss +80 -301
- package/components/matcha-slider.scss +174 -77
- package/components/matcha-snack-bar.scss +123 -131
- package/components/matcha-spin.scss +12 -103
- package/components/matcha-spinner.scss +76 -57
- package/components/matcha-status-pill.scss +82 -0
- package/components/matcha-stepper.scss +376 -177
- package/components/matcha-table.scss +568 -785
- package/components/matcha-tabs.scss +622 -469
- package/components/matcha-text-editor.scss +78 -78
- package/components/matcha-time.scss +2 -2
- package/components/matcha-toolbar.scss +359 -206
- package/components/matcha-tooltip.scss +158 -62
- package/components/matcha-tree-view.scss +189 -0
- package/fonts/manrope/manrope-latin-ext.woff2 +0 -0
- package/fonts/manrope/manrope-latin.woff2 +0 -0
- package/layout/matcha-page-layout.scss +4 -4
- package/main.scss +237 -265
- package/package.json +1 -1
- package/tokens/_animations-tokens.scss +37 -37
- package/tokens/_breakpoints-tokens.scss +35 -26
- package/tokens/_color-tokens.scss +1149 -1152
- package/tokens/_css-custom-properties.scss +704 -568
- package/tokens/_primitives.scss +82 -0
- package/tokens/_semantic-aliases.scss +120 -0
- package/tokens/_spacing-tokens.scss +94 -94
- package/vendors/angular-editor.scss +56 -56
- package/vendors/angular-material-fixes.scss +297 -297
- package/vendors/charts.scss +92 -92
- package/vendors/ng5-slider.scss +56 -56
- package/vendors/ngx-material-timepicker.scss +50 -50
- package/components/matcha-uploader.scss +0 -215
- package/fonts/CircularStd-Black.eot +0 -0
- package/fonts/CircularStd-Black.svg +0 -3426
- package/fonts/CircularStd-Black.ttf +0 -0
- package/fonts/CircularStd-Black.woff +0 -0
- package/fonts/CircularStd-Black.woff2 +0 -0
- package/fonts/CircularStd-Bold.eot +0 -0
- package/fonts/CircularStd-Bold.otf +0 -0
- package/fonts/CircularStd-Bold.svg +0 -13532
- package/fonts/CircularStd-Bold.ttf +0 -0
- package/fonts/CircularStd-Bold.woff +0 -0
- package/fonts/CircularStd-Bold.woff2 +0 -0
- package/fonts/CircularStd-Medium.eot +0 -0
- package/fonts/CircularStd-Medium.otf +0 -0
- package/fonts/CircularStd-Medium.svg +0 -13511
- package/fonts/CircularStd-Medium.ttf +0 -0
- package/fonts/CircularStd-Medium.woff +0 -0
- package/fonts/CircularStd-Medium.woff2 +0 -0
- package/fonts/CircularStd-Regular.eot +0 -0
- package/fonts/CircularStd-Regular.otf +0 -0
- package/fonts/CircularStd-Regular.svg +0 -2378
- package/fonts/CircularStd-Regular.ttf +0 -0
- package/fonts/CircularStd-Regular.woff +0 -0
- package/fonts/CircularStd-Regular.woff2 +0 -0
|
@@ -1,128 +1,224 @@
|
|
|
1
1
|
// =============================================================================
|
|
2
|
-
// matcha-tooltip.scss — Tooltip with arrow (4 positions + close
|
|
3
|
-
// Aligned with Figma matcha/tooltip
|
|
2
|
+
// matcha-tooltip.scss — Tooltip with arrow (4 positions + close variant)
|
|
3
|
+
// Aligned with Figma DSV3 matcha/tooltip (14846:89): 5 variants
|
|
4
|
+
//
|
|
5
|
+
// Figma canonical:
|
|
6
|
+
// bg = var(--matcha-color-text-primary, #e8eaed) (light em dark theme)
|
|
7
|
+
// text = var(--matcha-color-surface-card, #1c1f26) (dark sobre bg light)
|
|
8
|
+
// pad = 8 16 (variante close: 8 12 8 16, gap 8)
|
|
9
|
+
// radius = 8 (var(--matcha-radius-lg))
|
|
10
|
+
// font = Manrope Medium 14/20, letter-spacing 0.2
|
|
11
|
+
// arrow = 13.856 × 6 (triângulo, mesma cor do bg)
|
|
4
12
|
// =============================================================================
|
|
5
13
|
|
|
6
14
|
.matcha-tooltip-content {
|
|
7
|
-
// Figma matcha/tooltip: pad 8/16, radius 8, text 14/500/20 (Medium)
|
|
8
15
|
position: absolute;
|
|
9
16
|
z-index: var(--matcha-z-tooltip, 400);
|
|
17
|
+
|
|
10
18
|
padding: var(--matcha-space-100, 8px) var(--matcha-space-200, 16px);
|
|
11
19
|
border-radius: var(--matcha-radius-lg, 8px);
|
|
12
|
-
|
|
20
|
+
|
|
21
|
+
font-family: var(--matcha-font-family, 'Manrope', sans-serif);
|
|
22
|
+
font-size: var(--matcha-text-body-md, 14px);
|
|
13
23
|
font-weight: var(--matcha-weight-medium, 500);
|
|
14
24
|
line-height: var(--matcha-leading-body-md, 20px);
|
|
25
|
+
letter-spacing: 0.2px;
|
|
26
|
+
|
|
15
27
|
width: auto;
|
|
16
28
|
max-width: 500px;
|
|
17
29
|
text-overflow: ellipsis;
|
|
30
|
+
|
|
18
31
|
display: inline-flex;
|
|
19
|
-
gap: var(--matcha-space-100, 8px);
|
|
20
32
|
align-items: center;
|
|
21
33
|
justify-content: center;
|
|
34
|
+
gap: var(--matcha-space-100, 8px);
|
|
22
35
|
text-align: center;
|
|
36
|
+
// Tooltip informativo NÃO captura o ponteiro — clicar "através" dele atinge o
|
|
37
|
+
// elemento abaixo (ex.: pills clicáveis do stepper, botões pequenos). Tooltip
|
|
38
|
+
// sobrepondo o trigger jamais deve bloquear o clique. Só o variante interativo
|
|
39
|
+
// --with-close reativa pointer-events (pra clicar no X / hover-to-stay).
|
|
40
|
+
pointer-events: none;
|
|
23
41
|
|
|
24
|
-
//
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
width: 0;
|
|
29
|
-
height: 0;
|
|
30
|
-
border-style: solid;
|
|
31
|
-
border-width: 6px 8px 0 8px;
|
|
32
|
-
bottom: -4px;
|
|
33
|
-
left: 50%;
|
|
34
|
-
border-radius: var(--matcha-radius-none, 0);
|
|
35
|
-
transform: translateX(-50%);
|
|
42
|
+
// Variante com close — gap 8, pr-12 (espaço pro X) + ponteiro ativo (interativa)
|
|
43
|
+
&.matcha-tooltip-content--with-close {
|
|
44
|
+
padding-right: var(--matcha-space-150, 12px);
|
|
45
|
+
pointer-events: auto;
|
|
36
46
|
}
|
|
37
47
|
}
|
|
38
48
|
|
|
39
|
-
//
|
|
40
|
-
.
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
49
|
+
// ── Arrow (mesma cor do bg) — 13.856×6 — ::after triangular ────────────────
|
|
50
|
+
// Tamanho via border-style: solid trick. base 13.856 ≈ 2×7px borders → border-width
|
|
51
|
+
// horizontal ~7, vertical 6. Mantemos arredondado pelo Figma (13.856 × 6).
|
|
52
|
+
//
|
|
53
|
+
// Posicionamento: arrow normalmente centrada no box (left: 50% ou top: 50%), mas
|
|
54
|
+
// quando o tooltip é clamped pela viewport, o directive computa um shift em px
|
|
55
|
+
// (--matcha-tooltip-arrow-shift-x / -y) pra arrow re-alinhar com o trigger.
|
|
56
|
+
// Default 0px (fallback puro 50% — comportamento padrão sem clamp).
|
|
57
|
+
.matcha-tooltip-content_above::after {
|
|
58
|
+
content: '';
|
|
59
|
+
position: absolute;
|
|
60
|
+
width: 0;
|
|
61
|
+
height: 0;
|
|
62
|
+
border-style: solid;
|
|
63
|
+
border-width: 6px 7px 0 7px;
|
|
64
|
+
bottom: -6px;
|
|
65
|
+
left: calc(50% + var(--matcha-tooltip-arrow-shift-x, 0px));
|
|
66
|
+
transform: translateX(-50%);
|
|
56
67
|
}
|
|
57
68
|
|
|
58
|
-
|
|
59
|
-
.matcha-tooltip-content_below::before {
|
|
69
|
+
.matcha-tooltip-content_below::after {
|
|
60
70
|
content: '';
|
|
61
71
|
position: absolute;
|
|
62
72
|
width: 0;
|
|
63
73
|
height: 0;
|
|
64
74
|
border-style: solid;
|
|
65
|
-
border-width:
|
|
66
|
-
top: -
|
|
67
|
-
left: 50
|
|
75
|
+
border-width: 0 7px 6px 7px;
|
|
76
|
+
top: -6px;
|
|
77
|
+
left: calc(50% + var(--matcha-tooltip-arrow-shift-x, 0px));
|
|
68
78
|
transform: translateX(-50%);
|
|
69
79
|
}
|
|
70
80
|
|
|
71
|
-
// Arrow — left (arrow points right)
|
|
72
81
|
.matcha-tooltip-content_left::after {
|
|
73
82
|
content: '';
|
|
74
83
|
position: absolute;
|
|
75
84
|
width: 0;
|
|
76
85
|
height: 0;
|
|
77
86
|
border-style: solid;
|
|
78
|
-
border-width:
|
|
79
|
-
top: 50
|
|
80
|
-
right: -
|
|
87
|
+
border-width: 7px 0 7px 6px;
|
|
88
|
+
top: calc(50% + var(--matcha-tooltip-arrow-shift-y, 0px));
|
|
89
|
+
right: -6px;
|
|
81
90
|
transform: translateY(-50%);
|
|
82
91
|
}
|
|
83
92
|
|
|
84
|
-
// Arrow — right (arrow points left)
|
|
85
93
|
.matcha-tooltip-content_right::after {
|
|
86
94
|
content: '';
|
|
87
95
|
position: absolute;
|
|
88
96
|
width: 0;
|
|
89
97
|
height: 0;
|
|
90
98
|
border-style: solid;
|
|
91
|
-
border-width:
|
|
92
|
-
top: 50
|
|
93
|
-
left: -
|
|
99
|
+
border-width: 7px 6px 7px 0;
|
|
100
|
+
top: calc(50% + var(--matcha-tooltip-arrow-shift-y, 0px));
|
|
101
|
+
left: -6px;
|
|
94
102
|
transform: translateY(-50%);
|
|
95
103
|
}
|
|
96
104
|
|
|
97
|
-
// ──
|
|
105
|
+
// ── Close button (16×16 com X via Matcha icon font) ────────────────────────
|
|
106
|
+
.matcha-tooltip-close {
|
|
107
|
+
appearance: none;
|
|
108
|
+
background: transparent;
|
|
109
|
+
border: 0;
|
|
110
|
+
padding: 0;
|
|
111
|
+
margin: 0;
|
|
112
|
+
cursor: pointer;
|
|
113
|
+
display: inline-flex;
|
|
114
|
+
align-items: center;
|
|
115
|
+
justify-content: center;
|
|
116
|
+
width: 16px;
|
|
117
|
+
height: 16px;
|
|
118
|
+
flex-shrink: 0;
|
|
119
|
+
pointer-events: auto;
|
|
120
|
+
transition: opacity var(--matcha-duration-instant, 80ms) ease;
|
|
98
121
|
|
|
122
|
+
&::before {
|
|
123
|
+
content: "\e92a";
|
|
124
|
+
font-family: 'MatchaIcons';
|
|
125
|
+
font-size: var(--matcha-icon-size-sm, 16px);
|
|
126
|
+
line-height: 16px;
|
|
127
|
+
width: 16px;
|
|
128
|
+
height: 16px;
|
|
129
|
+
display: inline-flex;
|
|
130
|
+
align-items: center;
|
|
131
|
+
justify-content: center;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
&:focus-visible {
|
|
135
|
+
outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-primary);
|
|
136
|
+
outline-offset: 2px;
|
|
137
|
+
border-radius: var(--matcha-radius-sm, 4px);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
// =============================================================================
|
|
142
|
+
// Theme mixin — cores do bg/text/arrow vinculadas ao tema
|
|
143
|
+
// =============================================================================
|
|
99
144
|
@mixin matcha-tooltip-theme($theme) {
|
|
100
145
|
.matcha-tooltip-content {
|
|
101
|
-
|
|
102
|
-
color: var(--matcha-color-text-
|
|
146
|
+
// Figma: bg = text-primary (light em dark theme), text = surface-card (dark)
|
|
147
|
+
background-color: var(--matcha-color-text-primary);
|
|
148
|
+
color: var(--matcha-color-surface-card);
|
|
149
|
+
box-shadow: var(--matcha-shadow-2, 0 4px 12px rgba(0, 0, 0, 0.18));
|
|
150
|
+
}
|
|
103
151
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
152
|
+
// Arrow: mesma cor do bg, lado oposto à direção do tooltip
|
|
153
|
+
.matcha-tooltip-content_above::after {
|
|
154
|
+
border-color: var(--matcha-color-text-primary)
|
|
155
|
+
transparent transparent transparent;
|
|
156
|
+
}
|
|
157
|
+
.matcha-tooltip-content_below::after {
|
|
158
|
+
border-color: transparent transparent
|
|
159
|
+
var(--matcha-color-text-primary) transparent;
|
|
160
|
+
}
|
|
161
|
+
.matcha-tooltip-content_left::after {
|
|
162
|
+
border-color: transparent transparent transparent
|
|
163
|
+
var(--matcha-color-text-primary);
|
|
164
|
+
}
|
|
165
|
+
.matcha-tooltip-content_right::after {
|
|
166
|
+
border-color: transparent
|
|
167
|
+
var(--matcha-color-text-primary)
|
|
168
|
+
transparent transparent;
|
|
108
169
|
}
|
|
109
170
|
|
|
110
|
-
.matcha-tooltip-
|
|
111
|
-
|
|
171
|
+
.matcha-tooltip-close {
|
|
172
|
+
color: var(--matcha-color-surface-card);
|
|
173
|
+
opacity: 0.7;
|
|
174
|
+
|
|
175
|
+
&:hover { opacity: 1; }
|
|
176
|
+
&:active { opacity: 0.9; }
|
|
112
177
|
}
|
|
178
|
+
}
|
|
113
179
|
|
|
114
|
-
|
|
115
|
-
|
|
180
|
+
// =============================================================================
|
|
181
|
+
// A11y / modernity media queries
|
|
182
|
+
// =============================================================================
|
|
183
|
+
|
|
184
|
+
// Forced colors (Windows High Contrast) — usa system colors visíveis.
|
|
185
|
+
@media (forced-colors: active) {
|
|
186
|
+
.matcha-tooltip-content {
|
|
187
|
+
background: Canvas !important;
|
|
188
|
+
color: CanvasText !important;
|
|
189
|
+
border: 1px solid CanvasText;
|
|
190
|
+
box-shadow: none !important;
|
|
116
191
|
}
|
|
117
192
|
|
|
193
|
+
.matcha-tooltip-content_above::after,
|
|
194
|
+
.matcha-tooltip-content_below::after,
|
|
195
|
+
.matcha-tooltip-content_left::after,
|
|
118
196
|
.matcha-tooltip-content_right::after {
|
|
119
|
-
|
|
197
|
+
// Arrow vira invisível em high-contrast (sem solução elegante com border-color),
|
|
198
|
+
// a borda do tooltip cobre a função de delimitação visual.
|
|
199
|
+
display: none;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
.matcha-tooltip-close:focus-visible {
|
|
203
|
+
outline: 2px solid CanvasText !important;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
// Reduced motion — entra/sai sem animação.
|
|
208
|
+
@media (prefers-reduced-motion: reduce) {
|
|
209
|
+
.matcha-tooltip-content {
|
|
210
|
+
transition: none !important;
|
|
211
|
+
animation: none !important;
|
|
120
212
|
}
|
|
121
213
|
|
|
122
214
|
.matcha-tooltip-close {
|
|
123
|
-
|
|
124
|
-
|
|
215
|
+
transition: none !important;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
125
218
|
|
|
126
|
-
|
|
219
|
+
// Print — chrome flutuante some.
|
|
220
|
+
@media print {
|
|
221
|
+
.matcha-tooltip-content {
|
|
222
|
+
display: none !important;
|
|
127
223
|
}
|
|
128
224
|
}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// matcha-tree-view.scss — Slot row indentado por nível hierárquico
|
|
3
|
+
// Componente é um FRAME minimal (indent + estados). Consumer compõe o conteúdo
|
|
4
|
+
// livre via ng-content. Responsivo via container queries.
|
|
5
|
+
// =============================================================================
|
|
6
|
+
|
|
7
|
+
// ── Container opcional (qualquer wrapper .matcha-tree-view) ─────────────────
|
|
8
|
+
// Provê: bg "tray" Figma + gap entre rows + propagação de gap dentro de drop-list.
|
|
9
|
+
.matcha-tree-view {
|
|
10
|
+
display: flex;
|
|
11
|
+
flex-direction: column;
|
|
12
|
+
gap: var(--matcha-space-050, 4px);
|
|
13
|
+
padding: var(--matcha-space-200, 16px);
|
|
14
|
+
background: var(--matcha-color-surface-background);
|
|
15
|
+
border-radius: var(--matcha-radius-lg, 8px);
|
|
16
|
+
|
|
17
|
+
// Container queries — base pra responsivo dos filhos
|
|
18
|
+
container-type: inline-size;
|
|
19
|
+
container-name: matcha-tree-view;
|
|
20
|
+
|
|
21
|
+
.matcha-drop-list-container {
|
|
22
|
+
display: flex;
|
|
23
|
+
flex-direction: column;
|
|
24
|
+
gap: var(--matcha-space-050, 4px);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// ── Item host — flex row com indent dinâmico ────────────────────────────────
|
|
29
|
+
matcha-tree-view-item {
|
|
30
|
+
display: flex;
|
|
31
|
+
flex-direction: row;
|
|
32
|
+
align-items: stretch;
|
|
33
|
+
width: 100%;
|
|
34
|
+
box-sizing: border-box;
|
|
35
|
+
outline: none;
|
|
36
|
+
|
|
37
|
+
// Disabled
|
|
38
|
+
&[disabled] {
|
|
39
|
+
opacity: 0.5;
|
|
40
|
+
pointer-events: none;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Clickable
|
|
44
|
+
&[clickable]:not([disabled]) {
|
|
45
|
+
cursor: pointer;
|
|
46
|
+
|
|
47
|
+
&:focus-visible .matcha-tree-view-item__row {
|
|
48
|
+
outline: 2px solid var(--matcha-color-accent);
|
|
49
|
+
outline-offset: -2px;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// ── Indent (Nível 2+) — width vem inline do componente ──────────────────────
|
|
55
|
+
.matcha-tree-view-item__indent {
|
|
56
|
+
flex: none;
|
|
57
|
+
// height auto — se ajusta ao row
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// ── Row — bg transparente por default; container .matcha-tree-view dá bg card
|
|
61
|
+
.matcha-tree-view-item__row {
|
|
62
|
+
flex: 1;
|
|
63
|
+
display: flex;
|
|
64
|
+
flex-direction: row;
|
|
65
|
+
align-items: center;
|
|
66
|
+
gap: var(--matcha-space-100, 8px);
|
|
67
|
+
min-height: 48px;
|
|
68
|
+
padding: var(--matcha-space-100, 8px) var(--matcha-space-150, 12px);
|
|
69
|
+
background: transparent;
|
|
70
|
+
border-bottom: 1px solid var(--matcha-color-surface-border);
|
|
71
|
+
border-radius: var(--matcha-radius-md, 4px);
|
|
72
|
+
box-sizing: border-box;
|
|
73
|
+
min-width: 0;
|
|
74
|
+
transition: background-color var(--matcha-duration-instant, 80ms) ease;
|
|
75
|
+
|
|
76
|
+
// Permitir conteúdo wrap se consumer quiser
|
|
77
|
+
flex-wrap: var(--matcha-tree-view-item-wrap, nowrap);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// Hover sutil na row
|
|
81
|
+
matcha-tree-view-item:not([disabled]):hover .matcha-tree-view-item__row {
|
|
82
|
+
background: var(--matcha-color-surface-hover);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// ── Estilos comuns dos slots opcionais (CSS classes utilitárias do DS) ─────
|
|
86
|
+
// Consumer aplica esses classes nos elementos projetados; o componente NÃO impõe.
|
|
87
|
+
// .matcha-tree-view-item__grip — aplicado automaticamente pela diretiva matchaTreeViewGrip.
|
|
88
|
+
.matcha-tree-view-item__grip {
|
|
89
|
+
flex: none;
|
|
90
|
+
display: inline-flex;
|
|
91
|
+
align-items: center;
|
|
92
|
+
justify-content: center;
|
|
93
|
+
width: 24px;
|
|
94
|
+
height: 24px;
|
|
95
|
+
--matcha-icon-color: var(--matcha-color-text-muted);
|
|
96
|
+
cursor: grab;
|
|
97
|
+
transition: --matcha-icon-color var(--matcha-duration-instant, 80ms) ease;
|
|
98
|
+
|
|
99
|
+
&:hover { --matcha-icon-color: var(--matcha-color-text-primary); }
|
|
100
|
+
&:active { cursor: grabbing; }
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// Dentro do container canon (.matcha-tree-view), row ganha bg "card on tray" (Figma)
|
|
104
|
+
.matcha-tree-view matcha-tree-view-item:not([disabled]) .matcha-tree-view-item__row {
|
|
105
|
+
background: var(--matcha-color-surface-card);
|
|
106
|
+
}
|
|
107
|
+
.matcha-tree-view matcha-tree-view-item:not([disabled]):hover .matcha-tree-view-item__row {
|
|
108
|
+
background: var(--matcha-color-surface-card-strong, var(--matcha-color-surface-card));
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// ── DnD states (compõe com matcha-drop-list) ────────────────────────────────
|
|
112
|
+
.matcha-drag-item.matcha-drag-dragging {
|
|
113
|
+
opacity: 0.35;
|
|
114
|
+
|
|
115
|
+
.matcha-tree-view-item__row { background: var(--matcha-color-surface-hover); }
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.matcha-tree-view .matcha-drop-list-placeholder {
|
|
119
|
+
height: 4px;
|
|
120
|
+
margin: var(--matcha-space-050, 4px) 0;
|
|
121
|
+
background: var(--matcha-color-accent);
|
|
122
|
+
border-radius: var(--matcha-radius-sm, 2px);
|
|
123
|
+
opacity: 0.85;
|
|
124
|
+
box-shadow: 0 0 0 2px var(--matcha-color-accent-alpha, rgba(168, 217, 78, 0.2));
|
|
125
|
+
animation: matcha-tree-view-pulse 800ms ease-in-out infinite alternate;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
@keyframes matcha-tree-view-pulse {
|
|
129
|
+
from { opacity: 0.7; }
|
|
130
|
+
to { opacity: 1; }
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.matcha-tree-view .matcha-drop-list-empty-placeholder {
|
|
134
|
+
display: flex;
|
|
135
|
+
align-items: center;
|
|
136
|
+
justify-content: center;
|
|
137
|
+
padding: var(--matcha-space-400, 32px);
|
|
138
|
+
font-size: var(--matcha-text-body-sm, 12px);
|
|
139
|
+
color: var(--matcha-color-text-muted);
|
|
140
|
+
border: 2px dashed var(--matcha-color-surface-border);
|
|
141
|
+
border-radius: var(--matcha-radius-md, 4px);
|
|
142
|
+
background: transparent;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
.matcha-drag-item.matcha-drag-dragging .matcha-tree-view-item__grip { cursor: grabbing; }
|
|
146
|
+
|
|
147
|
+
// ── Entrance animation ──────────────────────────────────────────────────────
|
|
148
|
+
matcha-tree-view-item:not(.matcha-drag-dragging) {
|
|
149
|
+
animation: matcha-tree-view-item-in 220ms cubic-bezier(0.4, 0, 0.2, 1) both;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
@keyframes matcha-tree-view-item-in {
|
|
153
|
+
from { opacity: 0; transform: translateY(-4px); }
|
|
154
|
+
to { opacity: 1; transform: translateY(0); }
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
// ── Responsividade — container query baseada no .matcha-tree-view container
|
|
158
|
+
// Em containers estreitos (< 480px), reduz indent visual pra preservar espaço útil.
|
|
159
|
+
// Indent visual = padding-left implícito via --matcha-tree-view-item-indent setado
|
|
160
|
+
// inline pelo componente. Container query NÃO consegue overridar inline style
|
|
161
|
+
// diretamente, então usamos uma estratégia diferente: scale do indent div.
|
|
162
|
+
@container matcha-tree-view (max-width: 480px) {
|
|
163
|
+
.matcha-tree-view-item__indent {
|
|
164
|
+
// Reduz 50% do width inline — preserva indent visual sem perder hierarquia
|
|
165
|
+
transform: scaleX(0.6);
|
|
166
|
+
transform-origin: left center;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.matcha-tree-view-item__row {
|
|
170
|
+
gap: var(--matcha-space-050, 4px);
|
|
171
|
+
padding: var(--matcha-space-100, 8px);
|
|
172
|
+
min-height: 44px; // touch target WCAG 2.5.5 em mobile
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
// Respeita preferência de redução de movimento
|
|
177
|
+
@media (prefers-reduced-motion: reduce) {
|
|
178
|
+
matcha-tree-view-item,
|
|
179
|
+
matcha-tree-view-item:not(.matcha-drag-dragging),
|
|
180
|
+
.matcha-tree-view .matcha-drop-list-placeholder {
|
|
181
|
+
animation: none !important;
|
|
182
|
+
transition: none !important;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
// ── Theme mixin ─────────────────────────────────────────────────────────────
|
|
187
|
+
@mixin matcha-tree-view-theme($theme) {
|
|
188
|
+
// Tudo via CSS vars — sem theme-specific overrides.
|
|
189
|
+
}
|
|
Binary file
|
|
Binary file
|
|
@@ -695,7 +695,7 @@
|
|
|
695
695
|
}
|
|
696
696
|
|
|
697
697
|
// Small devices (Phones and Gadget, 0px and up < 600px )
|
|
698
|
-
@media screen and (max-width:
|
|
698
|
+
@media screen and (max-width: 639px) {
|
|
699
699
|
.page-layout {
|
|
700
700
|
// Smaller margins
|
|
701
701
|
&.carded {
|
|
@@ -717,7 +717,7 @@
|
|
|
717
717
|
}
|
|
718
718
|
|
|
719
719
|
// Medium devices (landscapes and tablets, 600px and up < 1024px )
|
|
720
|
-
@media screen and (min-width:
|
|
720
|
+
@media screen and (min-width: 640px) {
|
|
721
721
|
}
|
|
722
722
|
|
|
723
723
|
// Large devices (tablets and small monitors, 1024px and up < 1440px)
|
|
@@ -767,10 +767,10 @@
|
|
|
767
767
|
}
|
|
768
768
|
}
|
|
769
769
|
// X-Large devices (big desktops, 1440px and up < 1920)
|
|
770
|
-
@media screen and (min-width:
|
|
770
|
+
@media screen and (min-width: 1280px) {
|
|
771
771
|
}
|
|
772
772
|
|
|
773
773
|
// XX-Large devices (larger desktops, 1920px and up)
|
|
774
|
-
@media screen and (min-width:
|
|
774
|
+
@media screen and (min-width: 1536px) {
|
|
775
775
|
}
|
|
776
776
|
}
|