@inchurch/matcha-theme 20.276.0 → 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/_functions.scss +0 -26
- package/abstracts/_theme-api.scss +230 -0
- package/components/app-page-header.scss +16 -17
- package/components/matcha-accordion.scss +5 -6
- package/components/matcha-audio-player.scss +1 -2
- package/components/matcha-autocomplete.scss +10 -11
- package/components/matcha-avatar.scss +3 -3
- package/components/matcha-badge.scss +11 -11
- package/components/matcha-breadcrumb.scss +6 -7
- package/components/matcha-button-toggle.scss +2 -2
- package/components/matcha-buttons.scss +34 -34
- package/components/matcha-calendar.scss +31 -35
- package/components/matcha-cards.scss +31 -32
- package/components/matcha-chart-card.scss +5 -12
- package/components/matcha-checkbox.scss +13 -13
- package/components/matcha-chip.scss +2 -2
- package/components/matcha-color-pick.scss +1 -2
- package/components/matcha-command-palette.scss +17 -18
- package/components/matcha-crop.scss +0 -1
- package/components/matcha-date.scss +3 -3
- package/components/matcha-draggable.scss +4 -5
- package/components/matcha-drawer.scss +18 -28
- package/components/matcha-drop-list.scss +51 -52
- package/components/matcha-emoji.scss +2 -2
- package/components/{matcha-uploader.scss → matcha-file-uploader.scss} +185 -116
- package/components/matcha-footer.scss +3 -4
- package/components/matcha-form-field.scss +3 -3
- package/components/matcha-form-section.scss +5 -6
- package/components/matcha-header.scss +3 -4
- package/components/matcha-hint-text.scss +4 -4
- package/components/matcha-horizontal-tree.scss +15 -16
- package/components/matcha-icon.scss +27 -27
- package/components/matcha-image.scss +2 -3
- package/components/matcha-list.scss +11 -12
- package/components/matcha-menu.scss +2 -2
- package/components/matcha-modal.scss +5 -6
- package/components/matcha-nav.scss +16 -16
- package/components/matcha-notification.scss +3 -4
- package/components/matcha-option.scss +19 -0
- package/components/matcha-page-builder.scss +16 -16
- package/components/matcha-paginator.scss +6 -7
- package/components/matcha-panel.scss +4 -5
- package/components/matcha-profile-card.scss +3 -3
- package/components/matcha-progress-bar.scss +1 -1
- package/components/matcha-radio.scss +6 -6
- package/components/matcha-scrollbar.scss +1 -2
- package/components/matcha-scrollbox-shadow.scss +35 -37
- package/components/matcha-section.scss +5 -9
- package/components/matcha-select-multiple.scss +56 -0
- package/components/matcha-select.scss +7 -7
- package/components/matcha-skeleton.scss +6 -7
- package/components/matcha-slide-toggle.scss +33 -299
- package/components/matcha-slider.scss +5 -5
- package/components/matcha-snack-bar.scss +17 -18
- package/components/matcha-spin.scss +12 -103
- package/components/matcha-spinner.scss +1 -1
- package/components/matcha-stepper.scss +15 -16
- package/components/matcha-table.scss +14 -15
- package/components/matcha-tabs.scss +22 -24
- package/components/matcha-text-editor.scss +78 -78
- package/components/matcha-time.scss +2 -2
- package/components/matcha-toolbar.scss +1 -1
- package/components/matcha-tooltip.scss +14 -12
- package/main.scss +7 -2
- package/package.json +1 -1
- package/tokens/_color-tokens.scss +0 -3
- package/tokens/_css-custom-properties.scss +233 -179
- package/tokens/_primitives.scss +82 -0
- package/tokens/_semantic-aliases.scss +120 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
@use "sass:map";
|
|
2
2
|
|
|
3
3
|
// =============================================================================
|
|
4
|
-
// matcha-uploader.scss — File upload component (matcha/file-
|
|
4
|
+
// matcha-file-uploader.scss — File upload component (matcha/file-uploader no Figma DSV3)
|
|
5
5
|
//
|
|
6
6
|
// 3 estados canon (16152:254):
|
|
7
7
|
// Estado=Dropzone (16152:209) — área vazia com icon pill + title + hint + 2 botões
|
|
@@ -11,103 +11,106 @@
|
|
|
11
11
|
// Width canon: 480px (component se adapta via max-width: 480px + width: 100%)
|
|
12
12
|
// =============================================================================
|
|
13
13
|
|
|
14
|
-
@mixin matcha-uploader-theme($theme) {
|
|
15
|
-
$is-dark: map.get($theme, is-dark);
|
|
14
|
+
@mixin matcha-file-uploader-theme($theme) {
|
|
16
15
|
|
|
17
16
|
// ── Dropzone ──
|
|
18
|
-
.matcha-uploader-dropzone {
|
|
19
|
-
background: var(--matcha-color-surface-background, var(--matcha-color-surface-bg
|
|
20
|
-
border-color: var(--matcha-color-surface-border
|
|
17
|
+
.matcha-file-uploader-dropzone {
|
|
18
|
+
background: var(--matcha-color-surface-background, var(--matcha-color-surface-bg));
|
|
19
|
+
border-color: var(--matcha-color-surface-border);
|
|
21
20
|
|
|
22
|
-
&.matcha-uploader-dragover {
|
|
23
|
-
background: var(--matcha-color-accent-alpha
|
|
24
|
-
border-color: var(--matcha-color-accent
|
|
21
|
+
&.matcha-file-uploader-dragover {
|
|
22
|
+
background: var(--matcha-color-accent-alpha);
|
|
23
|
+
border-color: var(--matcha-color-accent);
|
|
25
24
|
}
|
|
26
25
|
|
|
27
|
-
&.matcha-uploader-disabled {
|
|
26
|
+
&.matcha-file-uploader-disabled {
|
|
28
27
|
opacity: 0.5;
|
|
29
28
|
cursor: not-allowed;
|
|
30
29
|
pointer-events: none;
|
|
31
30
|
}
|
|
32
31
|
}
|
|
33
32
|
|
|
34
|
-
.matcha-uploader-dropzone__icon-pill {
|
|
33
|
+
.matcha-file-uploader-dropzone__icon-pill {
|
|
35
34
|
background: var(--matcha-color-interaction-disabled-bg, #282c34);
|
|
36
|
-
color: var(--matcha-color-text-secondary
|
|
35
|
+
color: var(--matcha-color-text-secondary);
|
|
37
36
|
}
|
|
38
37
|
|
|
39
|
-
.matcha-uploader-dropzone__title {
|
|
40
|
-
color: var(--matcha-color-text-primary
|
|
38
|
+
.matcha-file-uploader-dropzone__title {
|
|
39
|
+
color: var(--matcha-color-text-primary);
|
|
41
40
|
}
|
|
42
41
|
|
|
43
|
-
.matcha-uploader-dropzone__optional {
|
|
42
|
+
.matcha-file-uploader-dropzone__optional {
|
|
44
43
|
color: var(--matcha-color-interaction-disabled-fg, rgba(232, 234, 237, 0.38));
|
|
45
44
|
}
|
|
46
45
|
|
|
47
|
-
.matcha-uploader-dropzone__hint {
|
|
48
|
-
color: var(--matcha-color-text-secondary
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
// ── Buttons (dentro do dropzone) ──
|
|
52
|
-
.matcha-uploader-btn--accent {
|
|
53
|
-
border-color: var(--matcha-color-accent, #{getAccent($theme)});
|
|
54
|
-
color: var(--matcha-color-text-primary, #{getForeground($theme)});
|
|
55
|
-
|
|
56
|
-
&:hover:not([disabled]) {
|
|
57
|
-
background: var(--matcha-color-accent-alpha, #{getAccentAlpha($theme)});
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
&[disabled] {
|
|
61
|
-
opacity: 0.5;
|
|
62
|
-
cursor: not-allowed;
|
|
63
|
-
}
|
|
46
|
+
.matcha-file-uploader-dropzone__hint {
|
|
47
|
+
color: var(--matcha-color-text-secondary);
|
|
64
48
|
}
|
|
65
49
|
|
|
66
50
|
// ── File item ──
|
|
67
|
-
.matcha-uploader-file {
|
|
68
|
-
background: var(--matcha-color-surface-card
|
|
69
|
-
border-color: var(--matcha-color-surface-border
|
|
51
|
+
.matcha-file-uploader-file {
|
|
52
|
+
background: var(--matcha-color-surface-card);
|
|
53
|
+
border-color: var(--matcha-color-surface-border);
|
|
70
54
|
}
|
|
71
55
|
|
|
72
|
-
.matcha-uploader-file__thumb {
|
|
73
|
-
background: var(--matcha-color-elevation-surface-3, var(--matcha-color-surface-card
|
|
74
|
-
color: var(--matcha-color-text-muted
|
|
56
|
+
.matcha-file-uploader-file__thumb {
|
|
57
|
+
background: var(--matcha-color-elevation-surface-3, var(--matcha-color-surface-card));
|
|
58
|
+
color: var(--matcha-color-text-muted);
|
|
75
59
|
}
|
|
76
60
|
|
|
77
|
-
.matcha-uploader-file__name {
|
|
78
|
-
color: var(--matcha-color-text-primary
|
|
61
|
+
.matcha-file-uploader-file__name {
|
|
62
|
+
color: var(--matcha-color-text-primary);
|
|
79
63
|
}
|
|
80
64
|
|
|
81
|
-
.matcha-uploader-file__size {
|
|
82
|
-
color: var(--matcha-color-text-secondary
|
|
65
|
+
.matcha-file-uploader-file__size {
|
|
66
|
+
color: var(--matcha-color-text-secondary);
|
|
83
67
|
}
|
|
84
68
|
|
|
85
|
-
.matcha-uploader-file__progress {
|
|
86
|
-
background: var(--matcha-color-surface-border
|
|
69
|
+
.matcha-file-uploader-file__progress {
|
|
70
|
+
background: var(--matcha-color-surface-border);
|
|
87
71
|
}
|
|
88
72
|
|
|
89
|
-
.matcha-uploader-file__progress-fill {
|
|
90
|
-
background: var(--matcha-color-accent
|
|
73
|
+
.matcha-file-uploader-file__progress-fill {
|
|
74
|
+
background: var(--matcha-color-accent);
|
|
91
75
|
}
|
|
92
76
|
|
|
93
|
-
.matcha-uploader-file__percent {
|
|
94
|
-
color: var(--matcha-color-text-secondary
|
|
77
|
+
.matcha-file-uploader-file__percent {
|
|
78
|
+
color: var(--matcha-color-text-secondary);
|
|
95
79
|
}
|
|
96
80
|
|
|
97
|
-
.matcha-uploader-file__error-text {
|
|
98
|
-
color: var(--matcha-color-danger
|
|
81
|
+
.matcha-file-uploader-file__error-text {
|
|
82
|
+
color: var(--matcha-color-danger);
|
|
99
83
|
}
|
|
100
84
|
|
|
101
|
-
.matcha-uploader-file__action {
|
|
102
|
-
color: var(--matcha-color-text-secondary
|
|
85
|
+
.matcha-file-uploader-file__action {
|
|
86
|
+
color: var(--matcha-color-text-secondary);
|
|
103
87
|
|
|
104
88
|
&:hover {
|
|
105
89
|
background: var(--matcha-color-surface-hover, transparent);
|
|
106
|
-
color: var(--matcha-color-text-primary
|
|
90
|
+
color: var(--matcha-color-text-primary);
|
|
107
91
|
}
|
|
108
92
|
|
|
109
|
-
&.matcha-uploader-file__action--delete:hover {
|
|
110
|
-
color: var(--matcha-color-danger
|
|
93
|
+
&.matcha-file-uploader-file__action--delete:hover {
|
|
94
|
+
color: var(--matcha-color-danger);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// ── Card layout (preview preenchido) ──
|
|
99
|
+
.matcha-file-uploader-card {
|
|
100
|
+
border-color: var(--matcha-color-surface-border);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// contain (logo/transparência): fundo neutro atrás da imagem inteira
|
|
104
|
+
.matcha-file-uploader-card--contain {
|
|
105
|
+
background: var(--matcha-color-surface-card);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.matcha-file-uploader-card__action {
|
|
109
|
+
background: var(--matcha-color-surface-card-alpha, var(--matcha-color-surface-card));
|
|
110
|
+
color: var(--matcha-color-text-primary);
|
|
111
|
+
|
|
112
|
+
&:hover {
|
|
113
|
+
background: var(--matcha-color-surface-card);
|
|
111
114
|
}
|
|
112
115
|
}
|
|
113
116
|
}
|
|
@@ -117,13 +120,29 @@
|
|
|
117
120
|
// ──────────────────────────────────────────────────────────────────────────────
|
|
118
121
|
|
|
119
122
|
// Host — full-width; consumer aplica max-width externamente se quiser cap
|
|
120
|
-
.matcha-uploader {
|
|
123
|
+
.matcha-file-uploader {
|
|
121
124
|
display: block;
|
|
122
125
|
width: 100%;
|
|
123
126
|
}
|
|
124
127
|
|
|
125
|
-
// ──
|
|
126
|
-
.matcha-uploader-
|
|
128
|
+
// ── Empty state wrapper (dropzone + ação secundária FORA do drop) ──────────
|
|
129
|
+
.matcha-file-uploader-empty {
|
|
130
|
+
display: flex;
|
|
131
|
+
flex-direction: column;
|
|
132
|
+
gap: var(--matcha-space-150, 12px);
|
|
133
|
+
width: 100%;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
// Ação secundária (Gabarito, Tirar foto, etc.) — centrada abaixo do box
|
|
137
|
+
.matcha-file-uploader-secondary {
|
|
138
|
+
display: flex;
|
|
139
|
+
justify-content: center;
|
|
140
|
+
|
|
141
|
+
&:empty { display: none; } // sem slot projetado → não ocupa espaço
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
// ── Dropzone box (Estado=Dropzone — Figma 16152:209) — a zona INTEIRA é o alvo
|
|
145
|
+
.matcha-file-uploader-dropzone {
|
|
127
146
|
display: flex;
|
|
128
147
|
flex-direction: column;
|
|
129
148
|
align-items: center;
|
|
@@ -135,10 +154,15 @@
|
|
|
135
154
|
cursor: pointer;
|
|
136
155
|
transition: background-color var(--matcha-duration-instant, 80ms) linear,
|
|
137
156
|
border-color var(--matcha-duration-instant, 80ms) linear;
|
|
157
|
+
|
|
158
|
+
&:focus-visible {
|
|
159
|
+
outline: var(--matcha-border-thin, 2px) solid var(--matcha-color-accent, #009400);
|
|
160
|
+
outline-offset: 2px;
|
|
161
|
+
}
|
|
138
162
|
}
|
|
139
163
|
|
|
140
164
|
// Icon pill (bg interaction/disabled-bg + padding 40h/16v · icon 24×24)
|
|
141
|
-
.matcha-uploader-dropzone__icon-pill {
|
|
165
|
+
.matcha-file-uploader-dropzone__icon-pill {
|
|
142
166
|
display: inline-flex;
|
|
143
167
|
align-items: center;
|
|
144
168
|
justify-content: center;
|
|
@@ -154,7 +178,7 @@
|
|
|
154
178
|
}
|
|
155
179
|
|
|
156
180
|
// Text block — column gap 4px, center
|
|
157
|
-
.matcha-uploader-dropzone__text {
|
|
181
|
+
.matcha-file-uploader-dropzone__text {
|
|
158
182
|
display: flex;
|
|
159
183
|
flex-direction: column;
|
|
160
184
|
align-items: center;
|
|
@@ -164,7 +188,7 @@
|
|
|
164
188
|
}
|
|
165
189
|
|
|
166
190
|
// Title row (inline: title + optional)
|
|
167
|
-
.matcha-uploader-dropzone__title-row {
|
|
191
|
+
.matcha-file-uploader-dropzone__title-row {
|
|
168
192
|
display: inline-flex;
|
|
169
193
|
align-items: center;
|
|
170
194
|
justify-content: center;
|
|
@@ -172,21 +196,21 @@
|
|
|
172
196
|
white-space: nowrap;
|
|
173
197
|
}
|
|
174
198
|
|
|
175
|
-
.matcha-uploader-dropzone__title {
|
|
199
|
+
.matcha-file-uploader-dropzone__title {
|
|
176
200
|
font-family: var(--matcha-font-family);
|
|
177
201
|
font-size: var(--matcha-text-label-md, 14px);
|
|
178
202
|
font-weight: var(--matcha-weight-medium, 500);
|
|
179
203
|
line-height: var(--matcha-leading-label-md, 20px);
|
|
180
204
|
}
|
|
181
205
|
|
|
182
|
-
.matcha-uploader-dropzone__optional {
|
|
206
|
+
.matcha-file-uploader-dropzone__optional {
|
|
183
207
|
font-family: var(--matcha-font-family);
|
|
184
208
|
font-size: var(--matcha-text-label-md, 14px);
|
|
185
209
|
font-weight: var(--matcha-weight-medium, 500);
|
|
186
210
|
line-height: var(--matcha-leading-label-md, 20px);
|
|
187
211
|
}
|
|
188
212
|
|
|
189
|
-
.matcha-uploader-dropzone__hint {
|
|
213
|
+
.matcha-file-uploader-dropzone__hint {
|
|
190
214
|
margin: 0;
|
|
191
215
|
font-family: var(--matcha-font-family);
|
|
192
216
|
font-size: var(--matcha-text-body-sm, 12px);
|
|
@@ -196,42 +220,13 @@
|
|
|
196
220
|
}
|
|
197
221
|
|
|
198
222
|
// Actions row (slot secondary + select arquivo)
|
|
199
|
-
.matcha-uploader-dropzone__actions {
|
|
200
|
-
display: flex;
|
|
201
|
-
gap: var(--matcha-space-100, 8px);
|
|
202
|
-
align-items: center;
|
|
203
|
-
justify-content: center;
|
|
204
|
-
flex-wrap: wrap;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
// Botão accent outline (Selecionar arquivo)
|
|
208
|
-
.matcha-uploader-btn {
|
|
209
|
-
display: inline-flex;
|
|
210
|
-
align-items: center;
|
|
211
|
-
justify-content: center;
|
|
212
|
-
gap: var(--matcha-space-050, 4px);
|
|
213
|
-
height: 32px;
|
|
214
|
-
padding: 0 var(--matcha-space-100, 8px);
|
|
215
|
-
background: transparent;
|
|
216
|
-
border: var(--matcha-border-thin, 2px) solid transparent;
|
|
217
|
-
border-radius: var(--matcha-radius-lg, 8px);
|
|
218
|
-
cursor: pointer;
|
|
219
|
-
font-family: var(--matcha-font-family);
|
|
220
|
-
font-size: var(--matcha-text-label-sm, 12px);
|
|
221
|
-
font-weight: var(--matcha-weight-medium, 500);
|
|
222
|
-
line-height: var(--matcha-leading-label-sm, 16px);
|
|
223
|
-
letter-spacing: 0.2px;
|
|
224
|
-
white-space: nowrap;
|
|
225
|
-
transition: background-color var(--matcha-duration-instant, 80ms) linear;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
223
|
// Hidden input
|
|
229
|
-
.matcha-uploader-input {
|
|
224
|
+
.matcha-file-uploader-input {
|
|
230
225
|
display: none;
|
|
231
226
|
}
|
|
232
227
|
|
|
233
228
|
// ── File Item — Estados Enviando (16152:227) e Completo (16152:242) ──────────
|
|
234
|
-
.matcha-uploader-file {
|
|
229
|
+
.matcha-file-uploader-file {
|
|
235
230
|
display: flex;
|
|
236
231
|
align-items: center;
|
|
237
232
|
gap: var(--matcha-space-200, 16px);
|
|
@@ -241,19 +236,19 @@
|
|
|
241
236
|
width: 100%;
|
|
242
237
|
|
|
243
238
|
// Enviando: padding 20/24 (mais respiro vs. Figma original 16)
|
|
244
|
-
&.matcha-uploader-file--uploading {
|
|
239
|
+
&.matcha-file-uploader-file--uploading {
|
|
245
240
|
padding: var(--matcha-space-250, 20px) var(--matcha-space-300, 24px);
|
|
246
241
|
}
|
|
247
242
|
|
|
248
243
|
// Completo/Erro: padding 20/24 (mais respiro vs. Figma original 12/16)
|
|
249
|
-
&.matcha-uploader-file--completed,
|
|
250
|
-
&.matcha-uploader-file--error {
|
|
244
|
+
&.matcha-file-uploader-file--completed,
|
|
245
|
+
&.matcha-file-uploader-file--error {
|
|
251
246
|
padding: var(--matcha-space-250, 20px) var(--matcha-space-300, 24px);
|
|
252
247
|
}
|
|
253
248
|
}
|
|
254
249
|
|
|
255
250
|
// Thumbnail 64×36 (16:9 · radius lg)
|
|
256
|
-
.matcha-uploader-file__thumb {
|
|
251
|
+
.matcha-file-uploader-file__thumb {
|
|
257
252
|
display: flex;
|
|
258
253
|
align-items: center;
|
|
259
254
|
justify-content: center;
|
|
@@ -277,7 +272,7 @@
|
|
|
277
272
|
}
|
|
278
273
|
|
|
279
274
|
// Info column (flex-1)
|
|
280
|
-
.matcha-uploader-file__info {
|
|
275
|
+
.matcha-file-uploader-file__info {
|
|
281
276
|
display: flex;
|
|
282
277
|
flex-direction: column;
|
|
283
278
|
flex: 1 1 0;
|
|
@@ -285,19 +280,19 @@
|
|
|
285
280
|
overflow: hidden;
|
|
286
281
|
|
|
287
282
|
// Enviando: gap 6 (entre nome e progress bar)
|
|
288
|
-
.matcha-uploader-file--uploading & {
|
|
283
|
+
.matcha-file-uploader-file--uploading & {
|
|
289
284
|
gap: var(--matcha-space-075, 6px);
|
|
290
285
|
}
|
|
291
286
|
|
|
292
287
|
// Completo: gap 4 (entre nome e size)
|
|
293
|
-
.matcha-uploader-file--completed &,
|
|
294
|
-
.matcha-uploader-file--error & {
|
|
288
|
+
.matcha-file-uploader-file--completed &,
|
|
289
|
+
.matcha-file-uploader-file--error & {
|
|
295
290
|
gap: var(--matcha-space-050, 4px);
|
|
296
291
|
}
|
|
297
292
|
}
|
|
298
293
|
|
|
299
294
|
// File name — Manrope Medium 13/19 letter 0.2 (text/button-sm)
|
|
300
|
-
.matcha-uploader-file__name {
|
|
295
|
+
.matcha-file-uploader-file__name {
|
|
301
296
|
font-family: var(--matcha-font-family);
|
|
302
297
|
font-size: var(--matcha-text-label-sm, 12px);
|
|
303
298
|
font-weight: var(--matcha-weight-medium, 500);
|
|
@@ -309,7 +304,7 @@
|
|
|
309
304
|
}
|
|
310
305
|
|
|
311
306
|
// File size — Manrope Regular 11/14 letter 0.3 (text/caption)
|
|
312
|
-
.matcha-uploader-file__size {
|
|
307
|
+
.matcha-file-uploader-file__size {
|
|
313
308
|
font-family: var(--matcha-font-family);
|
|
314
309
|
font-size: var(--matcha-text-p-tiny, 11px);
|
|
315
310
|
font-weight: var(--matcha-weight-regular, 400);
|
|
@@ -318,7 +313,7 @@
|
|
|
318
313
|
}
|
|
319
314
|
|
|
320
315
|
// Error text — body-sm danger
|
|
321
|
-
.matcha-uploader-file__error-text {
|
|
316
|
+
.matcha-file-uploader-file__error-text {
|
|
322
317
|
font-family: var(--matcha-font-family);
|
|
323
318
|
font-size: var(--matcha-text-body-sm, 12px);
|
|
324
319
|
font-weight: var(--matcha-weight-regular, 400);
|
|
@@ -326,21 +321,21 @@
|
|
|
326
321
|
}
|
|
327
322
|
|
|
328
323
|
// ── Progress bar (height 4px · radius sm) ─────────────────────────────────────
|
|
329
|
-
.matcha-uploader-file__progress {
|
|
324
|
+
.matcha-file-uploader-file__progress {
|
|
330
325
|
width: 100%;
|
|
331
326
|
height: 4px;
|
|
332
327
|
border-radius: var(--matcha-radius-sm, 2px);
|
|
333
328
|
overflow: hidden;
|
|
334
329
|
}
|
|
335
330
|
|
|
336
|
-
.matcha-uploader-file__progress-fill {
|
|
331
|
+
.matcha-file-uploader-file__progress-fill {
|
|
337
332
|
height: 100%;
|
|
338
333
|
border-radius: var(--matcha-radius-sm, 2px);
|
|
339
334
|
transition: width var(--matcha-duration-moderate, 300ms) ease;
|
|
340
335
|
}
|
|
341
336
|
|
|
342
337
|
// Percent label — body-sm text-secondary
|
|
343
|
-
.matcha-uploader-file__percent {
|
|
338
|
+
.matcha-file-uploader-file__percent {
|
|
344
339
|
font-family: var(--matcha-font-family);
|
|
345
340
|
font-size: var(--matcha-text-body-sm, 12px);
|
|
346
341
|
font-weight: var(--matcha-weight-regular, 400);
|
|
@@ -349,7 +344,7 @@
|
|
|
349
344
|
}
|
|
350
345
|
|
|
351
346
|
// Cancel/Delete action button — 20×20 (icon size + bg transparent + hover)
|
|
352
|
-
.matcha-uploader-file__action {
|
|
347
|
+
.matcha-file-uploader-file__action {
|
|
353
348
|
display: inline-flex;
|
|
354
349
|
align-items: center;
|
|
355
350
|
justify-content: center;
|
|
@@ -371,23 +366,97 @@
|
|
|
371
366
|
}
|
|
372
367
|
}
|
|
373
368
|
|
|
369
|
+
// ── Card layout — preview preenchido 16:9 + ações no hover (Estado=Drop filled) ──
|
|
370
|
+
.matcha-file-uploader-card {
|
|
371
|
+
position: relative;
|
|
372
|
+
width: 100%;
|
|
373
|
+
margin-top: var(--matcha-space-100, 8px);
|
|
374
|
+
border: var(--matcha-border-hairline, 1px) solid transparent;
|
|
375
|
+
border-radius: var(--matcha-radius-lg, 8px);
|
|
376
|
+
overflow: hidden;
|
|
377
|
+
aspect-ratio: 16 / 9; // fallback; sobrescrito por [style.aspect-ratio]="previewRatio"
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
.matcha-file-uploader-card__img {
|
|
381
|
+
display: block;
|
|
382
|
+
width: 100%;
|
|
383
|
+
height: 100%;
|
|
384
|
+
object-fit: cover; // sobrescrito por [style.object-fit]="previewFit"
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
.matcha-file-uploader-card__actions {
|
|
388
|
+
position: absolute;
|
|
389
|
+
top: var(--matcha-space-100, 8px);
|
|
390
|
+
right: var(--matcha-space-100, 8px);
|
|
391
|
+
display: flex;
|
|
392
|
+
gap: var(--matcha-space-100, 8px);
|
|
393
|
+
opacity: 0;
|
|
394
|
+
transition: opacity var(--matcha-duration-instant, 80ms) linear;
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
.matcha-file-uploader-card:hover .matcha-file-uploader-card__actions,
|
|
398
|
+
.matcha-file-uploader-card:focus-within .matcha-file-uploader-card__actions {
|
|
399
|
+
opacity: 1;
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
.matcha-file-uploader-card__action {
|
|
403
|
+
display: inline-flex;
|
|
404
|
+
align-items: center;
|
|
405
|
+
justify-content: center;
|
|
406
|
+
width: 32px;
|
|
407
|
+
height: 32px;
|
|
408
|
+
padding: 0;
|
|
409
|
+
border: none;
|
|
410
|
+
border-radius: var(--matcha-radius-pill, 9999px);
|
|
411
|
+
cursor: pointer;
|
|
412
|
+
backdrop-filter: blur(8px);
|
|
413
|
+
transition: background-color var(--matcha-duration-instant, 80ms) linear;
|
|
414
|
+
|
|
415
|
+
matcha-icon {
|
|
416
|
+
--matcha-icon-size: 18px;
|
|
417
|
+
width: 18px;
|
|
418
|
+
height: 18px;
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
// ── Cropper inline (modo crop: imagem única) ──────────────────────────────
|
|
423
|
+
.matcha-file-uploader-cropper {
|
|
424
|
+
display: flex;
|
|
425
|
+
flex-direction: column;
|
|
426
|
+
gap: var(--matcha-space-150, 12px);
|
|
427
|
+
margin-top: var(--matcha-space-100, 8px);
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
.matcha-file-uploader-cropper matcha-crop {
|
|
431
|
+
display: block;
|
|
432
|
+
width: 100%;
|
|
433
|
+
min-height: 280px;
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
.matcha-file-uploader-cropper__actions {
|
|
437
|
+
display: flex;
|
|
438
|
+
justify-content: flex-end;
|
|
439
|
+
gap: var(--matcha-space-100, 8px);
|
|
440
|
+
}
|
|
441
|
+
|
|
374
442
|
// ── Responsive ───────────────────────────────────────────────────────────────
|
|
375
443
|
@include media-breakpoint('xs') {
|
|
376
|
-
.matcha-uploader-dropzone {
|
|
444
|
+
.matcha-file-uploader-dropzone {
|
|
377
445
|
padding: var(--matcha-space-300, 24px) var(--matcha-space-200, 16px);
|
|
378
446
|
}
|
|
379
447
|
|
|
380
|
-
.matcha-uploader-dropzone__icon-pill {
|
|
448
|
+
.matcha-file-uploader-dropzone__icon-pill {
|
|
381
449
|
padding: var(--matcha-space-150, 12px) var(--matcha-space-400, 32px);
|
|
382
450
|
}
|
|
383
451
|
}
|
|
384
452
|
|
|
385
453
|
// ── Reduced motion ───────────────────────────────────────────────────────────
|
|
386
454
|
@media (prefers-reduced-motion: reduce) {
|
|
387
|
-
.matcha-uploader-dropzone,
|
|
388
|
-
.matcha-uploader-file__progress-fill,
|
|
389
|
-
.matcha-uploader-
|
|
390
|
-
.matcha-uploader-
|
|
455
|
+
.matcha-file-uploader-dropzone,
|
|
456
|
+
.matcha-file-uploader-file__progress-fill,
|
|
457
|
+
.matcha-file-uploader-file__action,
|
|
458
|
+
.matcha-file-uploader-card__actions,
|
|
459
|
+
.matcha-file-uploader-card__action {
|
|
391
460
|
transition: none;
|
|
392
461
|
}
|
|
393
462
|
}
|
|
@@ -12,12 +12,11 @@
|
|
|
12
12
|
// =============================================================================
|
|
13
13
|
|
|
14
14
|
@mixin matcha-footer-theme($theme) {
|
|
15
|
-
$is-dark: map.get($theme, is-dark);
|
|
16
15
|
|
|
17
16
|
.matcha-footer {
|
|
18
|
-
background: var(--matcha-color-surface-card
|
|
19
|
-
border-top: var(--matcha-border-hairline, 1px) solid var(--matcha-color-surface-border
|
|
20
|
-
color: var(--matcha-color-text-label
|
|
17
|
+
background: var(--matcha-color-surface-card);
|
|
18
|
+
border-top: var(--matcha-border-hairline, 1px) solid var(--matcha-color-surface-border);
|
|
19
|
+
color: var(--matcha-color-text-label);
|
|
21
20
|
}
|
|
22
21
|
}
|
|
23
22
|
|
|
@@ -516,16 +516,16 @@ matcha-form-field[readonly="true"] .matcha-form-field {
|
|
|
516
516
|
input[type="date"],
|
|
517
517
|
input[type="time"],
|
|
518
518
|
textarea {
|
|
519
|
-
color: var(--matcha-color-text-primary
|
|
519
|
+
color: var(--matcha-color-text-primary);
|
|
520
520
|
|
|
521
521
|
&::placeholder {
|
|
522
|
-
color: var(--matcha-color-text-placeholder
|
|
522
|
+
color: var(--matcha-color-text-placeholder);
|
|
523
523
|
}
|
|
524
524
|
}
|
|
525
525
|
|
|
526
526
|
input:disabled,
|
|
527
527
|
textarea:disabled {
|
|
528
|
-
color: var(--matcha-color-interaction-disabled-fg
|
|
528
|
+
color: var(--matcha-color-interaction-disabled-fg);
|
|
529
529
|
}
|
|
530
530
|
|
|
531
531
|
// Disabled: muted text, cursor not-allowed (sinalização inequívoca de "não pode interagir").
|
|
@@ -9,31 +9,30 @@
|
|
|
9
9
|
// =============================================================================
|
|
10
10
|
|
|
11
11
|
@mixin matcha-form-section-theme($theme) {
|
|
12
|
-
$is-dark: map.get($theme, is-dark);
|
|
13
12
|
|
|
14
13
|
// ── Section (accent bar + title) ──
|
|
15
14
|
.matcha-form-section {
|
|
16
15
|
.matcha-form-section__bar {
|
|
17
|
-
background: var(--matcha-color-accent
|
|
16
|
+
background: var(--matcha-color-accent);
|
|
18
17
|
}
|
|
19
18
|
|
|
20
19
|
.matcha-form-section__title {
|
|
21
|
-
color: var(--matcha-color-fg
|
|
20
|
+
color: var(--matcha-color-fg);
|
|
22
21
|
}
|
|
23
22
|
|
|
24
23
|
.matcha-form-section__description {
|
|
25
|
-
color: var(--matcha-color-text-secondary
|
|
24
|
+
color: var(--matcha-color-text-secondary);
|
|
26
25
|
}
|
|
27
26
|
}
|
|
28
27
|
|
|
29
28
|
// ── Sub-section (bullet + title) ──
|
|
30
29
|
.matcha-form-subsection {
|
|
31
30
|
.matcha-form-subsection__bullet {
|
|
32
|
-
background: var(--matcha-color-fg
|
|
31
|
+
background: var(--matcha-color-fg);
|
|
33
32
|
}
|
|
34
33
|
|
|
35
34
|
.matcha-form-subsection__title {
|
|
36
|
-
color: var(--matcha-color-fg
|
|
35
|
+
color: var(--matcha-color-fg);
|
|
37
36
|
}
|
|
38
37
|
}
|
|
39
38
|
}
|
|
@@ -11,16 +11,15 @@
|
|
|
11
11
|
// =============================================================================
|
|
12
12
|
|
|
13
13
|
@mixin matcha-header-theme($theme) {
|
|
14
|
-
$is-dark: map.get($theme, is-dark);
|
|
15
14
|
|
|
16
15
|
matcha-header {
|
|
17
|
-
background: var(--matcha-color-surface-card
|
|
16
|
+
background: var(--matcha-color-surface-card);
|
|
18
17
|
// Border uses interaction/disabled-border (1:1 Figma matcha/header 15892:157):
|
|
19
18
|
// dark = rgba(232,234,237,0.38); light = #c8d2ca. Semanticamente atípico —
|
|
20
19
|
// o token canônico de "divisor de chrome" seria surface/border, mas Figma
|
|
21
20
|
// bind explicitamente este. Trocar de volta se for revertido lá.
|
|
22
|
-
border-bottom: var(--matcha-border-hairline, 1px) solid var(--matcha-color-interaction-disabled-border
|
|
23
|
-
color: var(--matcha-color-text-primary
|
|
21
|
+
border-bottom: var(--matcha-border-hairline, 1px) solid var(--matcha-color-interaction-disabled-border);
|
|
22
|
+
color: var(--matcha-color-text-primary);
|
|
24
23
|
}
|
|
25
24
|
}
|
|
26
25
|
|
|
@@ -48,19 +48,19 @@
|
|
|
48
48
|
@include generate-matcha-hint-size-classes($helper-breakpoints);
|
|
49
49
|
|
|
50
50
|
&[type="error"] {
|
|
51
|
-
color: var(--matcha-color-danger
|
|
51
|
+
color: var(--matcha-color-danger);
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
&[type="warning"] {
|
|
55
|
-
color: var(--matcha-color-warn
|
|
55
|
+
color: var(--matcha-color-warn);
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
&[type="info"] {
|
|
59
|
-
color: var(--matcha-color-info
|
|
59
|
+
color: var(--matcha-color-info);
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
&[type="success"] {
|
|
63
|
-
color: var(--matcha-color-success
|
|
63
|
+
color: var(--matcha-color-success);
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
}
|