@inchurch/matcha-theme 20.278.0 → 21.0.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.
@@ -2,7 +2,7 @@
2
2
 
3
3
  @mixin _colorize-inactive-type-basic($theme, $color-functions) {
4
4
  &[inactivetype="basic"] {
5
- @each $colorName, $colorFn in $color-functions {
5
+ @each $colorName in $color-functions {
6
6
  &[inactivecolor="#{'' + $colorName}"] {
7
7
  .button-group matcha-tab-item {
8
8
 
@@ -10,11 +10,11 @@
10
10
  a[matcha-button] {
11
11
  &:not([active-item="true"]) {
12
12
  background: var(--matcha-color-surface);
13
- color: call(#{$colorFn}, $theme);
13
+ color: var(--matcha-color-#{$colorName});
14
14
  box-shadow: 0 0 0 0px inset;
15
15
 
16
16
  .ripple {
17
- background: call(#{$colorFn}Alpha, $theme); // ok: legacy ripple color token
17
+ background: var(--matcha-color-#{$colorName}-alpha); // ok: legacy ripple color token
18
18
  }
19
19
  }
20
20
  }
@@ -43,7 +43,7 @@
43
43
 
44
44
  //disabled false
45
45
  &:not([disabled="true"]) {
46
- @each $colorName, $colorFn in $color-functions {
46
+ @each $colorName in $color-functions {
47
47
  &[inactivecolor="#{'' + $colorName}"] {
48
48
  .button-group matcha-tab-item {
49
49
 
@@ -52,12 +52,12 @@
52
52
 
53
53
  //botão não ativo
54
54
  &:not([active-item="true"]) {
55
- color: call(#{$colorFn}, $theme);
55
+ color: var(--matcha-color-#{$colorName});
56
56
  background: transparent;
57
- box-shadow: 0 0 0 2px call(#{$colorFn}, $theme) inset;
57
+ box-shadow: 0 0 0 2px var(--matcha-color-#{$colorName}) inset;
58
58
 
59
59
  .ripple {
60
- background: call(#{$colorFn}Alpha, $theme); // ok: legacy ripple color token
60
+ background: var(--matcha-color-#{$colorName}-alpha); // ok: legacy ripple color token
61
61
  }
62
62
  }
63
63
  }
@@ -87,19 +87,19 @@
87
87
 
88
88
  @mixin _colorize-inactive-type-alpha($theme, $color-functions) {
89
89
  &[inactivetype="alpha"] {
90
- @each $colorName, $colorFn in $color-functions {
90
+ @each $colorName in $color-functions {
91
91
  &[inactivecolor="#{'' + $colorName}"] {
92
92
  .button-group matcha-tab-item {
93
93
 
94
94
  button[matcha-button],
95
95
  a[matcha-button] {
96
96
  &:not([active-item="true"]) {
97
- color: call(#{$colorFn}, $theme);
98
- background: call(#{$colorFn}Alpha, $theme);
97
+ color: var(--matcha-color-#{$colorName});
98
+ background: var(--matcha-color-#{$colorName}-alpha);
99
99
  box-shadow: 0 0 0 0px;
100
100
 
101
101
  .ripple {
102
- background: call(#{$colorFn}ContrastAlpha, $theme); // ok: legacy ripple color token
102
+ background: var(--matcha-color-#{$colorName}-contrast-alpha); // ok: legacy ripple color token
103
103
  }
104
104
  }
105
105
  }
@@ -128,7 +128,7 @@
128
128
  @mixin _colorize-inactive-type-link($theme, $color-functions) {
129
129
 
130
130
  &[inactivetype="link"] {
131
- @each $colorName, $colorFn in $color-functions {
131
+ @each $colorName in $color-functions {
132
132
  &[inactivecolor="#{'' + $colorName}"] {
133
133
  .button-group matcha-tab-item {
134
134
 
@@ -137,11 +137,11 @@
137
137
  &:not([active-item="true"]) {
138
138
 
139
139
  background: transparent;
140
- color: call(#{$colorFn}, $theme);
140
+ color: var(--matcha-color-#{$colorName});
141
141
  box-shadow: 0 0 0 0px;
142
142
 
143
143
  .ripple {
144
- background: call(#{$colorFn}Alpha, $theme); // ok: legacy ripple color token
144
+ background: var(--matcha-color-#{$colorName}-alpha); // ok: legacy ripple color token
145
145
  }
146
146
 
147
147
  }
@@ -172,34 +172,11 @@
172
172
 
173
173
 
174
174
  @mixin matcha-tabs($theme) {
175
- $color-functions: (
176
- red: getRed,
177
- pink: getPink,
178
- purple: getPurple,
179
- deep-purple: getDeepPurple,
180
- indigo: getIndigo,
181
- blue: getBlue,
182
- light-blue: getLightBlue,
183
- cyan: getCyan,
184
- teal: getTeal,
185
- green: getGreen,
186
- light-green: getLightGreen,
187
- lime: getLime,
188
- yellow: getYellow,
189
- amber: getAmber,
190
- orange: getOrange,
191
- deep-orange: getDeepOrange,
192
- brown: getBrown,
193
- grey: getGrey,
194
- blue-grey: getBlueGrey,
195
- primary: getPrimary,
196
- accent: getAccent,
197
- success: getSuccess,
198
- warn: getWarn,
199
- danger: getDanger,
200
- info: getInfo,
201
- disabled: getDisabled,
202
- );
175
+ // Nomes de cor (semânticas + paleta). As cores vêm de var(--matcha-color-*)
176
+ // emitidas no tema — sem getRed/$theme compile-time. Value-preserving.
177
+ $color-functions: "red", "pink", "purple", "deep-purple", "indigo", "blue", "light-blue", "cyan", "teal",
178
+ "green", "light-green", "lime", "yellow", "amber", "orange", "deep-orange", "brown", "grey", "blue-grey",
179
+ "primary", "accent", "success", "warn", "danger", "info", "disabled";
203
180
 
204
181
  matcha-tabs {
205
182
  display: flex;
@@ -25,6 +25,29 @@
25
25
  }
26
26
  }
27
27
 
28
+ // ── Container data-driven (matcha-tree-view) + branches recursivos ──────────
29
+ // O host <matcha-tree-view> reusa a classe .matcha-tree-view acima (tray + gap).
30
+ // Cada nível é um <matcha-tree-branch> (drop container); a indentação é por item
31
+ // (via [level] do tree-view-item), então os wrappers NÃO adicionam indent.
32
+ matcha-tree-branch,
33
+ .matcha-tree-view__children {
34
+ display: flex;
35
+ flex-direction: column;
36
+ gap: var(--matcha-space-050, 4px);
37
+ min-height: 2px; // alvo de drop mínimo quando o branch está vazio
38
+ }
39
+
40
+ .matcha-tree-view__node {
41
+ display: block;
42
+ }
43
+
44
+ // Feedback de rejeição na zona de reparenting (self-drop / tipo não aceito)
45
+ .matcha-drop-zone-cannot-accept {
46
+ outline: 2px dashed var(--matcha-color-danger, #e5484d);
47
+ outline-offset: -2px;
48
+ border-radius: var(--matcha-radius-md, 4px);
49
+ }
50
+
28
51
  // ── Item host — flex row com indent dinâmico ────────────────────────────────
29
52
  matcha-tree-view-item {
30
53
  display: flex;
@@ -75,7 +75,7 @@
75
75
  width: 100%;
76
76
  padding: 16px 24px;
77
77
  border-radius: 8px;
78
- background: getSurface($theme);
78
+ background: var(--matcha-color-surface);
79
79
  @include elevation(1);
80
80
  button,
81
81
  form {
@@ -175,7 +175,7 @@
175
175
  }
176
176
  > .toolbar {
177
177
  // Theme
178
- border-bottom-color: getDisabled($theme);
178
+ border-bottom-color: var(--matcha-color-disabled);
179
179
  // Style
180
180
  display: flex;
181
181
  justify-content: flex-start;
@@ -330,10 +330,10 @@
330
330
  .center {
331
331
  .content-card {
332
332
  @include elevation(1);
333
- background: getSurface($theme);
333
+ background: var(--matcha-color-surface);
334
334
  border-radius: 8px;
335
335
  > .toolbar {
336
- border-bottom-color: getDisabled($theme);
336
+ border-bottom-color: var(--matcha-color-disabled);
337
337
  }
338
338
  }
339
339
 
@@ -537,7 +537,7 @@
537
537
 
538
538
  > .content {
539
539
  // Theme
540
- background: getSurface($theme);
540
+ background: var(--matcha-color-surface);
541
541
 
542
542
  // Style
543
543
  flex: 1 0 auto;
@@ -586,7 +586,7 @@
586
586
  > .content {
587
587
  > .center {
588
588
  > .content {
589
- background: getSurface($theme);
589
+ background: var(--matcha-color-surface);
590
590
  @include elevation(1);
591
591
  }
592
592
  }
package/main.scss CHANGED
@@ -1,11 +1,13 @@
1
1
  // TOKENS
2
2
  @import "./tokens/animations-tokens";
3
3
  @import "./tokens/breakpoints-tokens";
4
- @import "./tokens/color-tokens";
4
+ @import "./tokens/material-palette"; // paletas Material legadas ($mat-*, $blue-grey, …) — consumidas só pelo old API (palette/light-theme/dark-theme). A aposentar com o Track B.
5
5
  @import "./tokens/elevation-tokens";
6
6
  @import "./tokens/spacing-tokens";
7
7
  @import "./tokens/typography-tokens";
8
- @import "./tokens/css-custom-properties";
8
+ @import "./tokens/color-tokens"; // cor — papéis por modo (synced do Figma via sync-tokens)
9
+ @import "./tokens/static-tokens"; // não-cor (gerado de global.json) — mixin matcha-static-tokens()
10
+ @import "./tokens/emit-tokens"; // emissão — mixin matcha-css-custom-properties() (consome color-tokens + static-tokens)
9
11
  @import "./tokens/primitives"; // matcha-primitives() — Camada 1: CSS vars de primitivas (--matcha-prim-*) em :root
10
12
  @import "./tokens/semantic-aliases"; // $matcha-prim-aliases-{light,dark} — Camada 2: token semântico → primitiva (rota clássica emite var)
11
13
 
@@ -100,12 +102,7 @@
100
102
  @import "./layout/matcha-page-layout.scss"; // matcha-page-layout-theme($theme)
101
103
 
102
104
  // VENDORS
103
- @import "./vendors/angular-editor.scss";
104
- @import "./vendors/angular-material-fixes.scss";
105
- @import "./vendors/calendar.scss";
106
105
  @import "./vendors/charts.scss";
107
- @import "./vendors/ng5-slider.scss";
108
- @import "./vendors/ngx-material-timepicker.scss";
109
106
 
110
107
  // ─── FONT LOADING — Manrope (SELF-HOSTED · zero dependência externa) ─────────
111
108
  // REGRA DE OURO: fontes self-hosted, nunca @import/<link> do Google Fonts.
@@ -144,23 +141,18 @@
144
141
  @include matcha-reset-typography($config);
145
142
  }
146
143
 
147
- @mixin matcha-components($theme) {
148
- @include matcha-css-custom-properties($theme);
149
-
150
- @include colors-classes-dynamic($theme);
151
- @include colors-classes-static($theme);
152
-
153
- @include elevation-theme($theme);
154
-
155
- @include vendor-angular-editor($theme);
156
- @include vendor-angular-material-fixes($theme);
157
- @include vendor-calendar-theme($theme);
144
+ // matcha-base — CSS estrutural/componentes, theme-AGNÓSTICO (consome var(--matcha-color-*)
145
+ // e tokens; nenhuma cor compile-time após o Track B). Deve ser emitido UMA VEZ, GLOBAL
146
+ // (fora de classe de tema) — ver src/app/app.theme.scss. A cor vem da classe de tema
147
+ // (.theme-default-* / skin) via as CSS vars. Track B3.
148
+ // matcha-base — estrutural theme-AGNÓSTICO (componentes + vendor-chart + base-typography).
149
+ // 100% var(--matcha-*) — emitir 1× GLOBAL (ver app.theme.scss). NÃO inclui base-body-reset
150
+ // (usa & p/ pintar bg/fg do elemento de tema → emitido por classe de tema).
151
+ @mixin matcha-base($theme: ()) {
152
+ // API nova: chamável sem arg — matcha-base(). $theme é plumbing vestigial repassado
153
+ // aos component-mixins (todos var-based após a virada); default () permite call limpo.
158
154
  @include vendor-chart($theme);
159
- @include vendor-ng-5-theme($theme);
160
- @include vendor-ngx-material-timepicker($theme);
161
-
162
155
  @include base-typography-theme($theme);
163
- @include base-body-reset-theme($theme);
164
156
 
165
157
  @include matcha-cards-theme($theme);
166
158
  @include matcha-horizontal-tree-theme($theme);
@@ -235,4 +227,14 @@
235
227
  @include matcha-flag($theme);
236
228
  @include matcha-emoji-theme($theme);
237
229
  @include matcha-page-layout-theme($theme);
238
- }
230
+ }
231
+
232
+ // matcha-components() — REMOVIDO no major (era o shim retrocompat @deprecated).
233
+ // API nova (ver src/app/app.theme.scss):
234
+ // @include matcha-primitives(); // :root primitivas
235
+ // @include matcha-base(); // estrutural 1× global (agnóstico)
236
+ // @include colors-classes-dynamic(); // classes utilitárias (inclui -static)
237
+ // .theme-X { @include matcha-css-custom-properties($is-dark); // --matcha-color-*
238
+ // @include elevation-theme($is-dark);
239
+ // @include base-body-reset-theme();
240
+ // @include matcha-typography($config); }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inchurch/matcha-theme",
3
- "version": "20.278.0",
3
+ "version": "21.0.0",
4
4
  "description": "Themes for matcha-design-system",
5
5
  "main": "main.scss",
6
6
  "scripts": {