@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,325 +1,134 @@
1
- @use "sass:map";
2
-
3
- // =============================================================================
4
- // matcha-header.scss — App topbar + Profile card
5
- // Aligned with Figma matcha/header (3 estilos) + matcha/header/profile (2 estilos)
6
- // =============================================================================
7
-
8
- @mixin matcha-header-theme($theme) {
9
- $is-dark: map.get($theme, is-dark);
10
-
11
- // ── App Topbar ──
12
- .matcha-header {
13
- &__content {
14
- background: var(--matcha-color-surface, #{getSurface($theme)});
15
-
16
- &__title__icon {
17
- color: var(--matcha-color-text-label, #{getBlueGrey($theme)});
18
- }
19
-
20
- &__options {
21
- background: var(--matcha-color-surface, #{getSurface($theme)});
22
- }
23
- }
24
-
25
- .matcha-header-church-id {
26
- color: var(--matcha-color-text-placeholder, #{getBlueGrey($theme)});
27
- }
28
-
29
- .matcha-header-user-name {
30
- color: var(--matcha-color-fg, #{getForeground($theme)});
31
- }
32
-
33
- @include media-breakpoint('gt-sm') {
34
- &__content {
35
- background: var(--matcha-color-surface, #{getSurface($theme)});
36
-
37
- &__options {
38
- background: transparent;
39
- }
40
- }
41
- }
42
- }
43
-
44
- // ── Profile Card ──
45
- .matcha-header-profile {
46
- background: var(--matcha-color-surface, #{getSurface($theme)});
47
-
48
- .profile-back {
49
- color: var(--matcha-color-fg, #{getForeground($theme)});
50
-
51
- &:hover {
52
- opacity: 0.8;
53
- }
54
-
55
- &:focus-visible {
56
- outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-accent, #{getAccent($theme)});
57
- outline-offset: var(--matcha-state-focus-ring-offset, 2px);
58
- border-radius: var(--matcha-radius-md, 4px);
59
- }
60
- }
61
-
62
- .profile-dates {
63
- color: var(--matcha-color-text-label, #{getBlueGrey($theme)});
64
- }
65
-
66
- .profile-name {
67
- color: var(--matcha-color-fg, #{getForeground($theme)});
68
- }
69
-
70
- .profile-meta {
71
- color: var(--matcha-color-text-label, #{getBlueGrey($theme)});
72
- }
73
-
74
- .profile-church {
75
- color: var(--matcha-color-fg, #{getForeground($theme)});
76
- }
77
-
78
- .profile-function-label {
79
- color: var(--matcha-color-accent, #{getAccent($theme)});
80
- }
81
-
82
- .profile-function-value {
83
- color: var(--matcha-color-text-label, #{getBlueGrey($theme)});
84
- }
85
-
86
- .profile-enrollment {
87
- color: var(--matcha-color-fg, #{getForeground($theme)});
88
- }
89
-
90
- .profile-edit {
91
- color: var(--matcha-color-text-label, #{getBlueGrey($theme)});
92
- cursor: pointer;
93
-
94
- &:hover {
95
- color: var(--matcha-color-fg, #{getForeground($theme)});
96
- }
97
-
98
- &:focus-visible {
99
- outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-accent, #{getAccent($theme)});
100
- outline-offset: var(--matcha-state-focus-ring-offset, 2px);
101
- }
102
- }
103
- }
104
- }
105
-
106
- // ── Layout — App Topbar ─────────────────────────────────────────────────────
107
-
108
- .matcha-header {
109
- &__content {
110
- display: flex;
111
- flex-wrap: wrap;
112
- align-items: center;
113
- justify-content: space-between;
114
- width: 100%;
115
- height: var(--matcha-space-600, 48px);
116
- padding: var(--matcha-space-100, 8px) var(--matcha-space-300, 24px) var(--matcha-space-100, 8px) var(--matcha-space-200, 16px);
117
- gap: var(--matcha-space-200, 16px);
118
- }
119
-
120
- .matcha-header-left {
121
- display: flex;
122
- align-items: center;
123
- gap: var(--matcha-space-200, 16px);
124
- flex: 1;
125
- min-width: 0;
126
- }
127
-
128
- .matcha-header-right {
129
- display: flex;
130
- align-items: center;
131
- gap: var(--matcha-space-200, 16px);
132
- }
133
-
134
- .matcha-header-user {
135
- display: flex;
136
- align-items: center;
137
- gap: var(--matcha-space-100, 8px);
138
- cursor: pointer;
139
- }
140
-
141
- .matcha-header-church-id {
142
- font-family: var(--matcha-font-family);
143
- font-size: var(--matcha-text-caption, 11px);
144
- line-height: var(--matcha-leading-caption, 14px);
145
- letter-spacing: var(--matcha-letter-spacing-caption, 0.3px);
146
- white-space: nowrap;
147
- }
148
-
149
- .matcha-header-user-name {
150
- font-family: var(--matcha-font-family);
151
- font-size: var(--matcha-text-button-sm, 13px);
152
- font-weight: var(--matcha-weight-medium, 500);
153
- line-height: var(--matcha-leading-button-sm, 19px);
154
- letter-spacing: var(--matcha-letter-spacing-button, 0.2px);
155
- white-space: nowrap;
156
- }
157
- }
158
-
159
- // ── Layout — Profile Card ───────────────────────────────────────────────────
160
-
161
- .matcha-header-profile {
162
- display: flex;
163
- flex-direction: column;
164
- gap: var(--matcha-space-200, 16px);
165
- padding: var(--matcha-space-300, 24px);
166
- border-radius: var(--matcha-radius-lg, 8px);
167
- width: 100%;
168
-
169
- .profile-nav {
170
- display: flex;
171
- align-items: center;
172
- justify-content: space-between;
173
- gap: var(--matcha-space-100, 8px);
174
- }
175
-
176
- .profile-back {
177
- display: flex;
178
- align-items: center;
179
- gap: var(--matcha-space-100, 8px);
180
- cursor: pointer;
181
- border: none;
182
- background: none;
183
- padding: 0;
184
- font-family: var(--matcha-font-family);
185
- font-size: var(--matcha-text-body-md, 14px);
186
- }
187
-
188
- .profile-dates {
189
- display: flex;
190
- align-items: center;
191
- gap: var(--matcha-space-200, 16px);
192
- font-family: var(--matcha-font-family);
193
- font-size: var(--matcha-text-body-md, 14px);
194
- line-height: var(--matcha-leading-body-md, 20px);
195
- }
196
-
197
- .profile-row {
198
- display: flex;
199
- align-items: center;
200
- gap: var(--matcha-space-200, 16px);
201
- width: 100%;
202
- }
203
-
204
- .profile-info {
205
- display: flex;
206
- flex-direction: column;
207
- gap: var(--matcha-space-050, 4px);
208
- flex: 1;
209
- min-width: 0;
210
- }
211
-
212
- .profile-name {
213
- font-family: var(--matcha-font-family);
214
- font-size: var(--matcha-text-display, 32px);
215
- font-weight: var(--matcha-weight-bold, 700);
216
- line-height: var(--matcha-leading-display, 40px);
217
- }
218
-
219
- .profile-meta {
220
- display: flex;
221
- align-items: center;
222
- gap: var(--matcha-space-100, 8px);
223
- flex-wrap: wrap;
224
- font-family: var(--matcha-font-family);
225
- font-size: var(--matcha-text-body-sm, 12px);
226
- line-height: var(--matcha-leading-body-sm, 16px);
227
- }
228
-
229
- .profile-actions {
230
- display: flex;
231
- align-items: center;
232
- gap: var(--matcha-space-100, 8px);
233
- }
234
-
235
- .profile-church {
236
- display: flex;
237
- align-items: center;
238
- justify-content: space-between;
239
- gap: var(--matcha-space-100, 8px);
240
- width: 100%;
241
- font-family: var(--matcha-font-family);
242
- font-size: var(--matcha-text-title-sm, 16px);
243
- font-weight: var(--matcha-weight-semibold, 600);
244
- line-height: var(--matcha-leading-title-sm, 22px);
245
- }
246
-
247
- .profile-footer {
248
- display: flex;
249
- align-items: center;
250
- justify-content: space-between;
251
- gap: var(--matcha-space-200, 16px);
252
- width: 100%;
253
- }
254
-
255
- .profile-functions {
256
- display: flex;
257
- align-items: center;
258
- gap: var(--matcha-space-050, 4px);
259
- font-family: var(--matcha-font-family);
260
- font-size: var(--matcha-text-body-md, 14px);
261
- line-height: var(--matcha-leading-body-md, 20px);
262
- }
263
-
264
- .profile-enrollment {
265
- display: flex;
266
- align-items: center;
267
- gap: var(--matcha-space-100, 8px);
268
- font-family: var(--matcha-font-family);
269
- font-size: var(--matcha-text-body-md, 14px);
270
- line-height: var(--matcha-leading-body-md, 20px);
271
- }
272
- }
273
-
274
- // ── Responsive — Header ──
275
- @include media-breakpoint('xs') {
276
- .matcha-header {
277
- &__content {
278
- height: var(--matcha-space-600, 48px);
279
- padding: var(--matcha-space-100, 8px) var(--matcha-space-200, 16px);
280
- }
281
-
282
- .matcha-header-user-name {
283
- display: none;
284
- }
285
- }
286
- }
287
-
288
- // ── Responsive — Profile ──
289
- @include media-breakpoint('xs') {
290
- .matcha-header-profile {
291
- .profile-nav {
292
- flex-direction: column;
293
- align-items: flex-start;
294
- }
295
-
296
- .profile-dates {
297
- flex-wrap: wrap;
298
- }
299
-
300
- .profile-row {
301
- flex-direction: column;
302
- align-items: flex-start;
303
- }
304
-
305
- .profile-name {
306
- font-size: var(--matcha-text-title-md, 18px);
307
- font-weight: var(--matcha-weight-semibold, 600);
308
- line-height: var(--matcha-leading-title-md, 24px);
309
- }
310
-
311
- .profile-footer {
312
- flex-direction: column;
313
- align-items: flex-start;
314
- gap: var(--matcha-space-100, 8px);
315
- }
316
- }
317
- }
318
-
319
- // ── Reduced motion ──
320
- @media (prefers-reduced-motion: reduce) {
321
- .matcha-header-profile .profile-edit,
322
- .matcha-header-profile .profile-back {
323
- transition: none;
324
- }
325
- }
1
+ @use "sass:map";
2
+
3
+ // =============================================================================
4
+ // matcha-header.scss
5
+ //
6
+ // Lib component canônico — 1:1 Figma DSV3 `matcha/header` (nodeId 15892:157).
7
+ // Element selector `matcha-header { ... }`, 2 slots (left/right).
8
+ //
9
+ // Para o page-header legacy (`.matcha-header__*` usado pela app design-system),
10
+ // ver `app-page-header.scss`.
11
+ // =============================================================================
12
+
13
+ @mixin matcha-header-theme($theme) {
14
+
15
+ matcha-header {
16
+ background: var(--matcha-color-surface-card);
17
+ // Border uses interaction/disabled-border (1:1 Figma matcha/header 15892:157):
18
+ // dark = rgba(232,234,237,0.38); light = #c8d2ca. Semanticamente atípico —
19
+ // o token canônico de "divisor de chrome" seria surface/border, mas Figma
20
+ // bind explicitamente este. Trocar de volta se for revertido lá.
21
+ border-bottom: var(--matcha-border-hairline, 1px) solid var(--matcha-color-interaction-disabled-border);
22
+ color: var(--matcha-color-text-primary);
23
+ }
24
+ }
25
+
26
+ // ── Layout — matcha-header lib component ────────────────────────────────────
27
+
28
+ matcha-header {
29
+ display: flex;
30
+ align-items: center;
31
+ justify-content: space-between;
32
+ width: 100%;
33
+ box-sizing: border-box;
34
+ position: relative;
35
+ z-index: 1;
36
+ // Figma DSV3: h 56, padding 8/24/8/16 (asimétrico: l 16 / r 24).
37
+ // Logical props pra RTL: inline-start = left (16), inline-end = right (24).
38
+ block-size: var(--matcha-header-height, 56px);
39
+ padding-block: var(--matcha-space-100, 8px);
40
+ padding-inline-start: var(--matcha-space-200, 16px);
41
+ padding-inline-end: var(--matcha-space-300, 24px);
42
+ gap: var(--matcha-space-200, 16px);
43
+ // Bottom corners arredondados (header sentado no topo, oposto do footer).
44
+ border-end-start-radius: var(--matcha-radius-lg, 8px);
45
+ border-end-end-radius: var(--matcha-radius-lg, 8px);
46
+ // Figma DSV3 description: "Elevation: level-1" — eleva o header sobre o body.
47
+ box-shadow: var(--matcha-shadow-1);
48
+ font-family: var(--matcha-font-family);
49
+ font-size: var(--matcha-text-label-sm, 13px);
50
+ line-height: var(--matcha-leading-label-sm, 19px);
51
+
52
+ // ── Slots ──
53
+ .matcha-header__slot {
54
+ display: flex;
55
+ align-items: center;
56
+ gap: var(--matcha-space-200, 16px);
57
+ // min-width:0 permite que filhos com overflow:hidden+ellipsis encolham.
58
+ // Não usamos overflow:hidden no slot pra não clipar tooltips/menus
59
+ // posicionados inline a partir de filhos.
60
+ min-width: 0;
61
+
62
+ // Hide vazio — slot só renderiza com conteúdo.
63
+ &:not(:has(*)) {
64
+ display: none;
65
+ }
66
+ }
67
+
68
+ .matcha-header__slot--left {
69
+ flex: 1 1 auto;
70
+ justify-content: flex-start;
71
+ }
72
+
73
+ .matcha-header__slot--right {
74
+ flex: 0 0 auto;
75
+ justify-content: flex-end;
76
+ }
77
+
78
+ // Hamburguer — não encolhe, participa do gap do slot--left (space-200).
79
+ .matcha-header__menu-trigger {
80
+ flex-shrink: 0;
81
+ }
82
+ }
83
+
84
+ // ── Forced colors (Windows High Contrast) ──────────────────────────────────
85
+ // Border hairline (12% opacidade) pode sumir em high-contrast.
86
+ // CanvasText é o token system semantic — sempre visível.
87
+ @media (forced-colors: active) {
88
+ matcha-header {
89
+ border-bottom: 1px solid CanvasText;
90
+ }
91
+ }
92
+
93
+ // ── Reduced motion (defensivo) ──────────────────────────────────────────────
94
+ // Hoje header não tem transitions, mas cobre futuro (sticky shadow, hide-on-scroll).
95
+ @media (prefers-reduced-motion: reduce) {
96
+ matcha-header {
97
+ transition: none !important;
98
+ animation: none !important;
99
+ }
100
+ }
101
+
102
+ // ── Print ──────────────────────────────────────────────────────────────────
103
+ // Convenção DS: chrome (header/footer) some em impressão.
104
+ @media print {
105
+ matcha-header {
106
+ display: none;
107
+ }
108
+ }
109
+
110
+ // ── Menu trigger — visível apenas em tablet/mobile (< 1024px) ───────────────
111
+ // Em desktop o nav-rail/panel fica sempre visível; hamburguer não é necessário.
112
+ // Consumer pode sobreescrever com [showMenuTrigger]="false" se quiser esconder
113
+ // em breakpoints diferentes.
114
+ @media (min-width: 1024px) {
115
+ matcha-header .matcha-header__menu-trigger {
116
+ display: none !important;
117
+ }
118
+ }
119
+
120
+ // ── Responsive — matcha-header (Mobile, xs) ──
121
+ @include media-breakpoint('xs') {
122
+ matcha-header {
123
+ // Figma DSV3 Mobile (node 15892:124 matcha/header Estilo=Mobile):
124
+ // h 48 (token --matcha-grid-header-height-mobile, NÃO 56 — versão
125
+ // compactada pra reduzir chrome em viewport pequeno),
126
+ // padding 8/16/8/16 (simétrico), gap 16.
127
+ block-size: var(--matcha-grid-header-height-mobile, 48px);
128
+ padding-inline-start: var(--matcha-space-200, 16px);
129
+ padding-inline-end: var(--matcha-space-200, 16px);
130
+ // Mobile remove radius — header full-width edge-to-edge.
131
+ border-end-start-radius: 0;
132
+ border-end-end-radius: 0;
133
+ }
134
+ }