@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.
Files changed (116) hide show
  1. package/abstracts/_colors.scss +404 -404
  2. package/abstracts/_elevation.scss +102 -102
  3. package/abstracts/_functions.scss +1186 -1212
  4. package/abstracts/_media-breakpoint.scss +23 -23
  5. package/abstracts/_theme-api.scss +230 -0
  6. package/abstracts/_typography.scss +127 -127
  7. package/base/_reset.scss +438 -438
  8. package/components/app-page-header.scss +259 -0
  9. package/components/matcha-accordion.scss +293 -157
  10. package/components/matcha-audio-player.scss +1 -2
  11. package/components/matcha-autocomplete.scss +10 -11
  12. package/components/matcha-avatar.scss +173 -33
  13. package/components/matcha-badge.scss +15 -15
  14. package/components/matcha-breadcrumb.scss +231 -126
  15. package/components/matcha-button-toggle.scss +46 -2
  16. package/components/matcha-buttons.scss +908 -784
  17. package/components/matcha-calendar.scss +99 -35
  18. package/components/matcha-cards.scss +58 -33
  19. package/components/matcha-chart-card.scss +5 -12
  20. package/components/matcha-checkbox.scss +191 -490
  21. package/components/matcha-chip.scss +297 -212
  22. package/components/matcha-color-pick.scss +1 -2
  23. package/components/matcha-command-palette.scss +290 -63
  24. package/components/matcha-crop.scss +406 -172
  25. package/components/matcha-date.scss +81 -81
  26. package/components/matcha-divider.scss +86 -31
  27. package/components/matcha-draggable.scss +4 -5
  28. package/components/matcha-drawer.scss +207 -66
  29. package/components/matcha-drop-image.scss +14 -0
  30. package/components/matcha-drop-list.scss +87 -47
  31. package/components/matcha-emoji.scss +2 -2
  32. package/components/matcha-empty-state.scss +195 -83
  33. package/components/matcha-file-uploader.scss +462 -0
  34. package/components/matcha-flag.scss +93 -52
  35. package/components/matcha-footer.scss +67 -164
  36. package/components/matcha-form-field.scss +55 -3
  37. package/components/matcha-form-section.scss +100 -101
  38. package/components/matcha-header.scss +134 -325
  39. package/components/matcha-highlight.scss +65 -197
  40. package/components/matcha-hint-text.scss +25 -4
  41. package/components/matcha-horizontal-tree.scss +316 -317
  42. package/components/matcha-icon.scss +37 -45
  43. package/components/matcha-image.scss +2 -3
  44. package/components/matcha-list.scss +14 -15
  45. package/components/matcha-menu.scss +15 -2
  46. package/components/matcha-modal.scss +59 -86
  47. package/components/matcha-nav.scss +362 -231
  48. package/components/matcha-notification.scss +412 -197
  49. package/components/matcha-option.scss +98 -23
  50. package/components/matcha-page-builder.scss +16 -16
  51. package/components/matcha-paginator.scss +688 -235
  52. package/components/matcha-panel.scss +42 -27
  53. package/components/matcha-profile-card.scss +50 -50
  54. package/components/matcha-progress-bar.scss +257 -153
  55. package/components/matcha-radio.scss +244 -452
  56. package/components/matcha-scrollbar.scss +1 -2
  57. package/components/matcha-scrollbox-shadow.scss +120 -122
  58. package/components/matcha-section.scss +5 -9
  59. package/components/matcha-select-multiple.scss +56 -0
  60. package/components/matcha-select.scss +10 -10
  61. package/components/matcha-skeleton.scss +24 -7
  62. package/components/matcha-slide-toggle.scss +80 -301
  63. package/components/matcha-slider.scss +174 -77
  64. package/components/matcha-snack-bar.scss +123 -131
  65. package/components/matcha-spin.scss +12 -103
  66. package/components/matcha-spinner.scss +76 -57
  67. package/components/matcha-status-pill.scss +82 -0
  68. package/components/matcha-stepper.scss +376 -177
  69. package/components/matcha-table.scss +568 -785
  70. package/components/matcha-tabs.scss +622 -469
  71. package/components/matcha-text-editor.scss +78 -78
  72. package/components/matcha-time.scss +2 -2
  73. package/components/matcha-toolbar.scss +359 -206
  74. package/components/matcha-tooltip.scss +158 -62
  75. package/components/matcha-tree-view.scss +189 -0
  76. package/fonts/manrope/manrope-latin-ext.woff2 +0 -0
  77. package/fonts/manrope/manrope-latin.woff2 +0 -0
  78. package/layout/matcha-page-layout.scss +4 -4
  79. package/main.scss +237 -265
  80. package/package.json +1 -1
  81. package/tokens/_animations-tokens.scss +37 -37
  82. package/tokens/_breakpoints-tokens.scss +35 -26
  83. package/tokens/_color-tokens.scss +1149 -1152
  84. package/tokens/_css-custom-properties.scss +704 -568
  85. package/tokens/_primitives.scss +82 -0
  86. package/tokens/_semantic-aliases.scss +120 -0
  87. package/tokens/_spacing-tokens.scss +94 -94
  88. package/vendors/angular-editor.scss +56 -56
  89. package/vendors/angular-material-fixes.scss +297 -297
  90. package/vendors/charts.scss +92 -92
  91. package/vendors/ng5-slider.scss +56 -56
  92. package/vendors/ngx-material-timepicker.scss +50 -50
  93. package/components/matcha-uploader.scss +0 -215
  94. package/fonts/CircularStd-Black.eot +0 -0
  95. package/fonts/CircularStd-Black.svg +0 -3426
  96. package/fonts/CircularStd-Black.ttf +0 -0
  97. package/fonts/CircularStd-Black.woff +0 -0
  98. package/fonts/CircularStd-Black.woff2 +0 -0
  99. package/fonts/CircularStd-Bold.eot +0 -0
  100. package/fonts/CircularStd-Bold.otf +0 -0
  101. package/fonts/CircularStd-Bold.svg +0 -13532
  102. package/fonts/CircularStd-Bold.ttf +0 -0
  103. package/fonts/CircularStd-Bold.woff +0 -0
  104. package/fonts/CircularStd-Bold.woff2 +0 -0
  105. package/fonts/CircularStd-Medium.eot +0 -0
  106. package/fonts/CircularStd-Medium.otf +0 -0
  107. package/fonts/CircularStd-Medium.svg +0 -13511
  108. package/fonts/CircularStd-Medium.ttf +0 -0
  109. package/fonts/CircularStd-Medium.woff +0 -0
  110. package/fonts/CircularStd-Medium.woff2 +0 -0
  111. package/fonts/CircularStd-Regular.eot +0 -0
  112. package/fonts/CircularStd-Regular.otf +0 -0
  113. package/fonts/CircularStd-Regular.svg +0 -2378
  114. package/fonts/CircularStd-Regular.ttf +0 -0
  115. package/fonts/CircularStd-Regular.woff +0 -0
  116. package/fonts/CircularStd-Regular.woff2 +0 -0
@@ -1,126 +1,231 @@
1
- @use "sass:map";
2
-
3
- // =============================================================================
4
- // matcha-breadcrumb.scss — Navigation breadcrumb trail
5
- // Aligned with Figma matcha/breadcrumb/item:
6
- // Estado(3: Link, Atual, Disabled) × Ícone?(2: Yes, No)
7
- // Separator: matcha/icon/chevron (Right) between items
8
- // =============================================================================
9
-
10
- @mixin matcha-breadcrumb-theme($theme) {
11
- $is-dark: map.get($theme, is-dark);
12
-
13
- matcha-breadcrumb {
14
- // ── Link items ──
15
- .breadcrumb-item-link {
16
- background: var(--matcha-color-surface-2, #{getSurfaceAlpha($theme)});
17
- color: var(--matcha-color-text-label, #{getBlueGrey($theme)});
18
-
19
- &:hover:not([disabled]):not(.disabled) {
20
- .breadcrumb-state {
21
- opacity: var(--matcha-state-hover, 0.08);
22
- }
23
- }
24
-
25
- &:active:not([disabled]):not(.disabled) {
26
- .breadcrumb-state {
27
- opacity: var(--matcha-state-active, 0.12);
28
- }
29
- }
30
-
31
- &:focus-visible {
32
- outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-accent, #{getAccent($theme)});
33
- outline-offset: var(--matcha-state-focus-ring-offset, 2px);
34
- }
35
- }
36
-
37
- // ── Current page ──
38
- .breadcrumb-item-current {
39
- color: var(--matcha-color-fg, #{getForeground($theme)});
40
- }
41
-
42
- // ── Separator ──
43
- .breadcrumb-separator {
44
- color: var(--matcha-color-text-label, #{getBlueGrey($theme)});
45
- }
46
-
47
- // ── Disabled ──
48
- .breadcrumb-item-link.disabled {
49
- opacity: 0.5;
50
- pointer-events: none;
51
- }
52
- }
53
- }
54
-
55
- // ── Layout ──────────────────────────────────────────────────────────────────
56
-
57
- matcha-breadcrumb {
58
- display: flex;
59
- align-items: center;
60
- gap: var(--matcha-space-100, 8px);
61
-
62
- // ── Breadcrumb item (link) ──
63
- .breadcrumb-item-link {
64
- display: flex;
65
- align-items: center;
66
- gap: var(--matcha-space-100, 8px);
67
- padding: var(--matcha-space-150, 12px);
68
- border: none;
69
- border-radius: var(--matcha-radius-lg, 8px);
70
- cursor: pointer;
71
- font-family: var(--matcha-font-family);
72
- font-size: var(--matcha-text-body-md, 14px);
73
- font-weight: var(--matcha-weight-regular, 400);
74
- line-height: var(--matcha-leading-body-md, 20px);
75
- white-space: nowrap;
76
- text-decoration: none;
77
- position: relative;
78
- overflow: hidden;
79
-
80
- // State layer
81
- .breadcrumb-state {
82
- position: absolute;
83
- inset: 0;
84
- background: currentColor;
85
- opacity: 0;
86
- border-radius: inherit;
87
- pointer-events: none;
88
- transition: opacity var(--matcha-duration-instant, 80ms) linear;
89
- }
90
-
91
- matcha-icon {
92
- flex-shrink: 0;
93
- }
94
- }
95
-
96
- // ── Current page ──
97
- .breadcrumb-item-current {
98
- display: flex;
99
- align-items: center;
100
- gap: var(--matcha-space-100, 8px);
101
- padding: var(--matcha-space-150, 12px) 0;
102
- font-family: var(--matcha-font-family);
103
- font-size: var(--matcha-text-body-md, 14px);
104
- font-weight: var(--matcha-weight-medium, 500);
105
- line-height: var(--matcha-leading-body-md, 20px);
106
- white-space: nowrap;
107
-
108
- matcha-icon {
109
- flex-shrink: 0;
110
- }
111
- }
112
-
113
- // ── Separator ──
114
- .breadcrumb-separator {
115
- flex-shrink: 0;
116
- width: var(--matcha-icon-size-sm, 16px);
117
- height: var(--matcha-icon-size-sm, 16px);
118
- }
119
- }
120
-
121
- // ── Reduced motion ──────────────────────────────────────────────────────────
122
- @media (prefers-reduced-motion: reduce) {
123
- matcha-breadcrumb .breadcrumb-state {
124
- transition: none;
125
- }
126
- }
1
+ @use "sass:map";
2
+
3
+ // =============================================================================
4
+ // matcha-breadcrumb.scss — Navigation breadcrumb trail (Figma DSV3 15831:35)
5
+ //
6
+ // Estado(3: Link, Atual, Disabled) × Ícone?(2: Yes, No) = 6 variantes
7
+ // Link/Disabled — bg surface-2, p 12, radius lg, text/secondary, Regular 14/20
8
+ // Atual — sem bg, py 12 (sem px), text/primary, Medium 14/20
9
+ // Separador — matcha/icon/chevron variant=right entre itens
10
+ // =============================================================================
11
+
12
+ @mixin matcha-breadcrumb-theme($theme) {
13
+
14
+ matcha-breadcrumb {
15
+ // ── Link items (clicáveis) ──
16
+ .breadcrumb-item-link {
17
+ // Figma DSV3: bg = matcha/color/elevation/surface-2 (canônico)
18
+ background: var(--matcha-color-elevation-surface-2);
19
+ color: var(--matcha-color-text-secondary);
20
+
21
+ &:hover:not([disabled]):not(.disabled) {
22
+ .breadcrumb-state {
23
+ opacity: var(--matcha-state-hover, 0.08);
24
+ }
25
+ }
26
+
27
+ &:active:not([disabled]):not(.disabled) {
28
+ .breadcrumb-state {
29
+ opacity: var(--matcha-state-active, 0.12);
30
+ }
31
+ }
32
+
33
+ &:focus-visible {
34
+ outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-accent);
35
+ outline-offset: var(--matcha-state-focus-ring-offset, 2px);
36
+ }
37
+ }
38
+
39
+ // ── Página atual ──
40
+ .breadcrumb-item-current {
41
+ color: var(--matcha-color-text-primary);
42
+ }
43
+
44
+ // ── Separator (chevron) ──
45
+ .breadcrumb-separator {
46
+ color: var(--matcha-color-icon-default);
47
+ }
48
+
49
+ // ── Disabled (real disabled — não confundir com ellipsis) ──
50
+ .breadcrumb-item-link--disabled {
51
+ opacity: var(--matcha-opacity-disabled, 0.5);
52
+ pointer-events: none;
53
+ }
54
+
55
+ // ── Ellipsis (…) — visibilidade NORMAL (não é disabled).
56
+ // Quando clicável (maxItems ativo), tem hover/focus state-layer normal.
57
+ // Quando estático (--static), só muda cursor pra default.
58
+ .breadcrumb-ellipsis {
59
+ // Mantém color/bg do Link. Sem opacity reduzida.
60
+ color: var(--matcha-color-text-secondary);
61
+
62
+ &--static {
63
+ cursor: default;
64
+ pointer-events: none;
65
+ }
66
+ }
67
+ }
68
+ }
69
+
70
+ // ── Layout ──────────────────────────────────────────────────────────────────
71
+
72
+ matcha-breadcrumb {
73
+ display: flex;
74
+ align-items: center;
75
+ }
76
+
77
+ matcha-breadcrumb {
78
+ .breadcrumb-list {
79
+ display: flex;
80
+ align-items: center;
81
+ list-style: none;
82
+ margin: 0;
83
+ padding: 0;
84
+ gap: var(--matcha-space-100, 8px);
85
+ }
86
+
87
+ .breadcrumb-li {
88
+ display: flex;
89
+ align-items: center;
90
+ gap: var(--matcha-space-100, 8px);
91
+ }
92
+
93
+ // ── Item link (Link/Disabled/Ellipsis) ──
94
+ // Figma: pad 12, radius lg, gap 8 (com ícone) ou 0 (sem). gap controlado por
95
+ // `> matcha-icon + span` (presença do ícone como sibling).
96
+ .breadcrumb-item-link {
97
+ display: flex;
98
+ align-items: center;
99
+ gap: 0;
100
+ padding: var(--matcha-space-150, 12px);
101
+ border: none;
102
+ border-radius: var(--matcha-radius-lg, 8px);
103
+ cursor: pointer;
104
+ font-family: var(--matcha-font-family);
105
+ font-size: var(--matcha-text-body-md, 14px);
106
+ font-weight: var(--matcha-weight-regular, 400);
107
+ line-height: var(--matcha-leading-body-md, 20px);
108
+ text-decoration: none;
109
+ position: relative;
110
+ overflow: hidden;
111
+ box-sizing: border-box;
112
+
113
+ // Gap 8 só quando o ícone está presente (Figma: gap=0 sem ícone)
114
+ > matcha-icon + .breadcrumb-text {
115
+ margin-left: var(--matcha-space-100, 8px);
116
+ }
117
+
118
+ // State layer (hover/active overlay)
119
+ .breadcrumb-state {
120
+ position: absolute;
121
+ inset: 0;
122
+ background: currentColor;
123
+ opacity: 0;
124
+ border-radius: inherit;
125
+ pointer-events: none;
126
+ transition: opacity var(--matcha-duration-instant, 80ms) linear;
127
+ }
128
+
129
+ matcha-icon {
130
+ flex-shrink: 0;
131
+ }
132
+ }
133
+
134
+ // ── Página atual ──
135
+ // Figma: SEM bg, py 12 (sem px), Medium 500, gap 8/0 igual ao link.
136
+ .breadcrumb-item-current {
137
+ display: flex;
138
+ align-items: center;
139
+ gap: 0;
140
+ padding: var(--matcha-space-150, 12px) 0;
141
+ font-family: var(--matcha-font-family);
142
+ font-size: var(--matcha-text-body-md, 14px);
143
+ font-weight: var(--matcha-weight-medium, 500);
144
+ line-height: var(--matcha-leading-body-md, 20px);
145
+ box-sizing: border-box;
146
+
147
+ > matcha-icon + .breadcrumb-text {
148
+ margin-left: var(--matcha-space-100, 8px);
149
+ }
150
+
151
+ matcha-icon {
152
+ flex-shrink: 0;
153
+ }
154
+ }
155
+
156
+ // ── Texto do item — single-line + truncate quando max-width está setado ──
157
+ .breadcrumb-text {
158
+ overflow: hidden;
159
+ text-overflow: ellipsis;
160
+ white-space: nowrap;
161
+ min-width: 0;
162
+ display: inline-block;
163
+ max-width: 100%;
164
+ }
165
+
166
+ // ── Separator ──
167
+ .breadcrumb-separator {
168
+ flex-shrink: 0;
169
+ width: var(--matcha-icon-size-sm, 16px);
170
+ height: var(--matcha-icon-size-sm, 16px);
171
+ }
172
+ }
173
+
174
+ // ── Reduced motion ──────────────────────────────────────────────────────────
175
+ @media (prefers-reduced-motion: reduce) {
176
+ matcha-breadcrumb .breadcrumb-state {
177
+ transition: none;
178
+ }
179
+ }
180
+
181
+ // ── Mobile responsive ───────────────────────────────────────────────────────
182
+ // Em viewports estreitas, items longos sem maxWidth podem estourar. flex-wrap
183
+ // nowrap + overflow-x evita quebra de linha; consumer deve usar maxItems pra
184
+ // auto-truncar trail. Default sem max-width = nowrap horizontal (scroll se
185
+ // container permite, senão clip).
186
+ @media (max-width: 639px) {
187
+ matcha-breadcrumb .breadcrumb-list {
188
+ flex-wrap: nowrap;
189
+ overflow-x: auto;
190
+ overflow-y: hidden;
191
+ scrollbar-width: none; // Firefox
192
+ -ms-overflow-style: none; // IE/Edge legacy
193
+ &::-webkit-scrollbar { display: none; }
194
+ }
195
+ }
196
+
197
+ // ── Forced colors (Windows High Contrast) ──
198
+ @media (forced-colors: active) {
199
+ matcha-breadcrumb {
200
+ .breadcrumb-item-link {
201
+ background: Canvas !important;
202
+ color: LinkText !important;
203
+ border: 1px solid CanvasText;
204
+
205
+ &:hover, &:focus { color: ActiveText !important; }
206
+ }
207
+
208
+ .breadcrumb-item-current {
209
+ color: CanvasText !important;
210
+ background: transparent !important;
211
+ }
212
+
213
+ .breadcrumb-separator {
214
+ color: GrayText !important;
215
+ }
216
+
217
+ .breadcrumb-item-link:focus-visible {
218
+ outline: 2px solid CanvasText !important;
219
+ }
220
+ }
221
+ }
222
+
223
+ // ── Print ──
224
+ // Breadcrumb é navigation chrome — some em impressão (página impressa não
225
+ // precisa de "como cheguei aqui").
226
+ @media print {
227
+ matcha-breadcrumb {
228
+ display: none !important;
229
+ }
230
+ }
231
+
@@ -47,7 +47,7 @@
47
47
  button[matcha-button],
48
48
  a[matcha-button] {
49
49
  &:not([active]) {
50
- background: var(--matcha-color-surface, #{getSurface($theme)});
50
+ background: var(--matcha-color-surface);
51
51
  color: call(#{$colorFn}, $theme);
52
52
  box-shadow: 0 0 0 0px inset;
53
53
 
@@ -251,7 +251,7 @@ matcha-button-toggle {
251
251
  button[matcha-button],
252
252
  a[matcha-button] {
253
253
  &:focus-visible:not([disabled]):not([disabled="true"]) {
254
- outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-accent, #{getAccent($theme)});
254
+ outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-accent);
255
255
  outline-offset: var(--matcha-state-focus-ring-offset, 2px);
256
256
  }
257
257
  }
@@ -299,6 +299,50 @@ matcha-button-toggle {
299
299
  }
300
300
  }
301
301
 
302
+ // =============================================================================
303
+ // A11y / modernity media queries
304
+ // =============================================================================
305
+
306
+ // Forced colors (Windows High Contrast) — borders/bg podem sumir,
307
+ // SelectedItem/CanvasText são tokens system sempre visíveis.
308
+ @media (forced-colors: active) {
309
+ matcha-button-toggle .button-group {
310
+ button[matcha-button],
311
+ a[matcha-button] {
312
+ border: 1px solid CanvasText;
313
+
314
+ &[active] {
315
+ background: SelectedItem !important;
316
+ color: SelectedItemText !important;
317
+ border-color: SelectedItem;
318
+ }
319
+
320
+ &:focus-visible {
321
+ outline: 2px solid CanvasText !important;
322
+ outline-offset: 2px;
323
+ }
324
+ }
325
+ }
326
+ }
327
+
328
+ // Reduced motion — mata transitions de hover/active state.
329
+ @media (prefers-reduced-motion: reduce) {
330
+ matcha-button-toggle .button-group {
331
+ button[matcha-button],
332
+ a[matcha-button] {
333
+ transition: none !important;
334
+ animation: none !important;
335
+ }
336
+ }
337
+ }
338
+
339
+ // Print — controles de UI somem em impressão.
340
+ @media print {
341
+ matcha-button-toggle {
342
+ display: none !important;
343
+ }
344
+ }
345
+
302
346
  // =============================================================================
303
347
  // Structural rules — aligned with Figma matcha/button-toggle:
304
348
  // Gap=Segmented: buttons share borders (1px hairline between, 2px thin outside)