@inchurch/matcha-theme 20.0.3

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 (112) hide show
  1. package/README.md +303 -0
  2. package/abstracts/_colors.scss +405 -0
  3. package/abstracts/_elevation.scss +102 -0
  4. package/abstracts/_functions.scss +1213 -0
  5. package/abstracts/_media-breakpoint.scss +23 -0
  6. package/abstracts/_typography.scss +127 -0
  7. package/base/_reset.scss +438 -0
  8. package/components/matcha-accordion.scss +157 -0
  9. package/components/matcha-audio-player.scss +32 -0
  10. package/components/matcha-autocomplete.scss +134 -0
  11. package/components/matcha-avatar.scss +161 -0
  12. package/components/matcha-badge.scss +120 -0
  13. package/components/matcha-breadcrumb.scss +126 -0
  14. package/components/matcha-button-toggle.scss +363 -0
  15. package/components/matcha-buttons.scss +784 -0
  16. package/components/matcha-calendar.scss +154 -0
  17. package/components/matcha-cards.scss +205 -0
  18. package/components/matcha-chart-card.scss +60 -0
  19. package/components/matcha-checkbox.scss +554 -0
  20. package/components/matcha-chip.scss +212 -0
  21. package/components/matcha-color-pick.scss +35 -0
  22. package/components/matcha-command-palette.scss +89 -0
  23. package/components/matcha-crop.scss +172 -0
  24. package/components/matcha-date.scss +81 -0
  25. package/components/matcha-divider.scss +45 -0
  26. package/components/matcha-draggable.scss +24 -0
  27. package/components/matcha-drawer.scss +235 -0
  28. package/components/matcha-drop-list.scss +390 -0
  29. package/components/matcha-emoji.scss +69 -0
  30. package/components/matcha-empty-state.scss +118 -0
  31. package/components/matcha-flag.scss +62 -0
  32. package/components/matcha-footer.scss +187 -0
  33. package/components/matcha-form-field.scss +552 -0
  34. package/components/matcha-form-section.scss +101 -0
  35. package/components/matcha-header.scss +325 -0
  36. package/components/matcha-highlight.scss +296 -0
  37. package/components/matcha-hint-text.scss +66 -0
  38. package/components/matcha-horizontal-tree.scss +317 -0
  39. package/components/matcha-icon.scss +106 -0
  40. package/components/matcha-image.scss +62 -0
  41. package/components/matcha-list.scss +212 -0
  42. package/components/matcha-menu.scss +86 -0
  43. package/components/matcha-modal.scss +234 -0
  44. package/components/matcha-nav.scss +450 -0
  45. package/components/matcha-notification.scss +197 -0
  46. package/components/matcha-option.scss +95 -0
  47. package/components/matcha-page-builder.scss +4186 -0
  48. package/components/matcha-paginator.scss +235 -0
  49. package/components/matcha-panel.scss +167 -0
  50. package/components/matcha-profile-card.scss +50 -0
  51. package/components/matcha-progress-bar.scss +209 -0
  52. package/components/matcha-radio.scss +528 -0
  53. package/components/matcha-ripple.scss +7 -0
  54. package/components/matcha-scrollbar.scss +35 -0
  55. package/components/matcha-scrollbox-shadow.scss +123 -0
  56. package/components/matcha-section.scss +105 -0
  57. package/components/matcha-select.scss +661 -0
  58. package/components/matcha-skeleton.scss +138 -0
  59. package/components/matcha-slide-toggle.scss +590 -0
  60. package/components/matcha-slider.scss +188 -0
  61. package/components/matcha-snack-bar.scss +266 -0
  62. package/components/matcha-spin.scss +252 -0
  63. package/components/matcha-spinner.scss +78 -0
  64. package/components/matcha-stepper.scss +177 -0
  65. package/components/matcha-table-cell.scss +41 -0
  66. package/components/matcha-table.scss +785 -0
  67. package/components/matcha-tabs.scss +469 -0
  68. package/components/matcha-text-editor.scss +151 -0
  69. package/components/matcha-time.scss +33 -0
  70. package/components/matcha-timepicker.scss +13 -0
  71. package/components/matcha-toolbar.scss +206 -0
  72. package/components/matcha-tooltip.scss +128 -0
  73. package/components/matcha-uploader.scss +215 -0
  74. package/css/matcha-style.css +76772 -0
  75. package/fonts/CircularStd-Black.eot +0 -0
  76. package/fonts/CircularStd-Black.svg +3426 -0
  77. package/fonts/CircularStd-Black.ttf +0 -0
  78. package/fonts/CircularStd-Black.woff +0 -0
  79. package/fonts/CircularStd-Black.woff2 +0 -0
  80. package/fonts/CircularStd-Bold.eot +0 -0
  81. package/fonts/CircularStd-Bold.otf +0 -0
  82. package/fonts/CircularStd-Bold.svg +13532 -0
  83. package/fonts/CircularStd-Bold.ttf +0 -0
  84. package/fonts/CircularStd-Bold.woff +0 -0
  85. package/fonts/CircularStd-Bold.woff2 +0 -0
  86. package/fonts/CircularStd-Medium.eot +0 -0
  87. package/fonts/CircularStd-Medium.otf +0 -0
  88. package/fonts/CircularStd-Medium.svg +13511 -0
  89. package/fonts/CircularStd-Medium.ttf +0 -0
  90. package/fonts/CircularStd-Medium.woff +0 -0
  91. package/fonts/CircularStd-Medium.woff2 +0 -0
  92. package/fonts/CircularStd-Regular.eot +0 -0
  93. package/fonts/CircularStd-Regular.otf +0 -0
  94. package/fonts/CircularStd-Regular.svg +2378 -0
  95. package/fonts/CircularStd-Regular.ttf +0 -0
  96. package/fonts/CircularStd-Regular.woff +0 -0
  97. package/fonts/CircularStd-Regular.woff2 +0 -0
  98. package/main.scss +262 -0
  99. package/package.json +11 -0
  100. package/tokens/_animations-tokens.scss +37 -0
  101. package/tokens/_breakpoints-tokens.scss +26 -0
  102. package/tokens/_color-tokens.scss +1153 -0
  103. package/tokens/_css-custom-properties.scss +568 -0
  104. package/tokens/_elevation-tokens.scss +33 -0
  105. package/tokens/_spacing-tokens.scss +94 -0
  106. package/tokens/_typography-tokens.scss +65 -0
  107. package/vendors/angular-editor.scss +56 -0
  108. package/vendors/angular-material-fixes.scss +297 -0
  109. package/vendors/calendar.scss +2880 -0
  110. package/vendors/charts.scss +92 -0
  111. package/vendors/ng5-slider.scss +56 -0
  112. package/vendors/ngx-material-timepicker.scss +50 -0
@@ -0,0 +1,118 @@
1
+ // =============================================================================
2
+ // matcha-empty-state.scss — Empty state placeholder
3
+ // Aligned with Figma matcha/empty-state: Tamanho(2) × Ação(2) × Descrição(2)
4
+ // =============================================================================
5
+
6
+ // ── Structural ──────────────────────────────────────────────────────────────
7
+
8
+ matcha-empty-state {
9
+ display: flex;
10
+ flex-direction: column;
11
+ align-items: center;
12
+ justify-content: center;
13
+ flex: 1;
14
+ min-height: 0;
15
+ width: 100%;
16
+ padding: var(--matcha-space-600, 48px) var(--matcha-space-400, 32px);
17
+ box-sizing: border-box;
18
+ text-align: center;
19
+ }
20
+
21
+ .matcha-empty-state__content {
22
+ display: flex;
23
+ flex-direction: column;
24
+ align-items: center;
25
+ gap: var(--matcha-space-200, 16px);
26
+ max-width: 400px;
27
+ width: 100%;
28
+ }
29
+
30
+ .matcha-empty-state__icon {
31
+ display: flex;
32
+ align-items: center;
33
+ justify-content: center;
34
+ width: 64px;
35
+ height: 64px;
36
+ border-radius: var(--matcha-radius-xl, 16px);
37
+ flex-shrink: 0;
38
+ }
39
+
40
+ .matcha-empty-state__text {
41
+ display: flex;
42
+ flex-direction: column;
43
+ align-items: center;
44
+ gap: var(--matcha-space-100, 8px);
45
+ }
46
+
47
+ .matcha-empty-state__title {
48
+ font-size: var(--matcha-text-lg, 16px);
49
+ font-weight: var(--matcha-weight-semibold, 600);
50
+ line-height: 1.4;
51
+ margin: 0;
52
+ }
53
+
54
+ .matcha-empty-state__description {
55
+ font-size: var(--matcha-text-md, 14px);
56
+ font-weight: var(--matcha-weight-regular, 400);
57
+ line-height: 1.5;
58
+ max-width: 320px;
59
+ margin: 0;
60
+ }
61
+
62
+ .matcha-empty-state__action {
63
+ display: inline-flex;
64
+ align-items: center;
65
+ justify-content: center;
66
+ }
67
+
68
+ // ── Compact variant ──
69
+ matcha-empty-state.matcha-empty-state--compact {
70
+ padding: var(--matcha-space-300, 24px) var(--matcha-space-200, 16px);
71
+
72
+ .matcha-empty-state__content {
73
+ max-width: 280px;
74
+ gap: var(--matcha-space-150, 12px);
75
+ }
76
+
77
+ .matcha-empty-state__icon {
78
+ width: 40px;
79
+ height: 40px;
80
+ border-radius: var(--matcha-radius-lg, 8px);
81
+ }
82
+
83
+ .matcha-empty-state__title {
84
+ font-size: var(--matcha-text-md, 14px);
85
+ }
86
+ }
87
+
88
+ // ── Responsive fallback ──
89
+ @media (max-width: 479px) {
90
+ matcha-empty-state:not(.matcha-empty-state--compact) {
91
+ padding: var(--matcha-space-400, 32px) var(--matcha-space-250, 20px);
92
+
93
+ .matcha-empty-state__icon {
94
+ width: 48px;
95
+ height: 48px;
96
+ border-radius: var(--matcha-radius-lg, 8px);
97
+ }
98
+ }
99
+ }
100
+
101
+ // =============================================================================
102
+ // Theme
103
+ // =============================================================================
104
+
105
+ @mixin matcha-empty-state-theme($theme) {
106
+ .matcha-empty-state__icon {
107
+ background-color: var(--matcha-color-disabled-bg, #{getDisabled($theme)});
108
+ opacity: var(--matcha-opacity-disabled, 0.38);
109
+ }
110
+
111
+ .matcha-empty-state__title {
112
+ color: var(--matcha-color-fg, #{getForeground($theme)});
113
+ }
114
+
115
+ .matcha-empty-state__description {
116
+ color: var(--matcha-color-hint, #{getGrey($theme)});
117
+ }
118
+ }
@@ -0,0 +1,62 @@
1
+ @use "sass:map";
2
+
3
+ // =============================================================================
4
+ // matcha-flag.scss — Country flags & payment brand flags
5
+ // Aligned with Figma matcha/flag/país + matcha/flag/pagamento:
6
+ // País: 4 variants (Brasil, EUA, Portugal, Espanha) — 22×16px (2:3)
7
+ // Pagamento: 20 variants (Mastercard, Visa, PIX...) — 32×24px
8
+ // Used in: phone DDI selector, payment forms, transaction lists
9
+ // Angular: matcha-flag
10
+ // =============================================================================
11
+
12
+ // ── Layout ──────────────────────────────────────────────────────────────────
13
+
14
+ .matcha-flag {
15
+ display: inline-flex;
16
+ align-items: center;
17
+ justify-content: center;
18
+ flex-shrink: 0;
19
+ overflow: hidden;
20
+
21
+ img, svg {
22
+ width: 100%;
23
+ height: 100%;
24
+ object-fit: cover;
25
+ }
26
+ }
27
+
28
+ // ── Country flags (2:3 ratio) ───────────────────────────────────────────────
29
+
30
+ .matcha-flag--country {
31
+ width: 22px;
32
+ height: 16px;
33
+ border-radius: var(--matcha-radius-sm, 2px);
34
+ }
35
+
36
+ .matcha-flag--country-lg {
37
+ width: 32px;
38
+ height: 24px;
39
+ border-radius: var(--matcha-radius-sm, 2px);
40
+ }
41
+
42
+ // ── Payment flags (4:3 ratio) ───────────────────────────────────────────────
43
+
44
+ .matcha-flag--payment {
45
+ width: 32px;
46
+ height: 24px;
47
+ border-radius: var(--matcha-radius-sm, 2px);
48
+ }
49
+
50
+ .matcha-flag--payment-lg {
51
+ width: 48px;
52
+ height: 36px;
53
+ border-radius: var(--matcha-radius-md, 4px);
54
+ }
55
+
56
+ // ── Theme (border for visibility on dark/light) ────────────────────────────
57
+
58
+ @mixin matcha-flag-theme($theme) {
59
+ .matcha-flag {
60
+ border: var(--matcha-border-hairline, 1px) solid var(--matcha-color-border, #{getGrey($theme)});
61
+ }
62
+ }
@@ -0,0 +1,187 @@
1
+ @use "sass:map";
2
+
3
+ // =============================================================================
4
+ // matcha-footer.scss — App footer bar (branding + actions)
5
+ // Aligned with Figma matcha/footer (3 variantes: Default, Expanded, Mobile)
6
+ // Angular: matcha-footer (standalone component)
7
+ // =============================================================================
8
+
9
+ @mixin matcha-footer-theme($theme) {
10
+ $is-dark: map.get($theme, is-dark);
11
+
12
+ // ── Footer Container ──
13
+ .matcha-footer {
14
+ background: var(--matcha-color-surface, #{getSurface($theme)});
15
+ border-top: var(--matcha-border-hairline, 1px) solid var(--matcha-color-border, #{getGrey($theme)});
16
+
17
+ // ── Brand area ──
18
+ .matcha-footer__brand {
19
+ color: var(--matcha-color-text-label, #{getBlueGrey($theme)});
20
+ }
21
+
22
+ .matcha-footer__brand-icon {
23
+ color: var(--matcha-color-accent, #{getAccent($theme)});
24
+ }
25
+
26
+ .matcha-footer__brand-text {
27
+ color: var(--matcha-color-fg, #{getForeground($theme)});
28
+ }
29
+
30
+ // ── Copyright ──
31
+ .matcha-footer__copyright {
32
+ color: var(--matcha-color-text-placeholder, #{getBlueGrey($theme)});
33
+ }
34
+
35
+ // ── Version info ──
36
+ .matcha-footer__version {
37
+ color: var(--matcha-color-text-placeholder, #{getBlueGrey($theme)});
38
+ }
39
+ }
40
+
41
+ // ── Chat FAB ──
42
+ .matcha-footer-fab {
43
+ background: var(--matcha-color-accent, #{getAccent($theme)});
44
+ color: var(--matcha-color-accent-contrast, #{getAccentContrast($theme)});
45
+ box-shadow: var(--matcha-shadow-2, #{if($is-dark, $shadow-2-dark, $shadow-2-light)});
46
+
47
+ &:hover {
48
+ opacity: 0.9;
49
+ }
50
+
51
+ &:focus-visible {
52
+ outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-accent, #{getAccent($theme)});
53
+ outline-offset: var(--matcha-state-focus-ring-offset, 2px);
54
+ }
55
+
56
+ .matcha-footer-fab__badge {
57
+ background: var(--matcha-color-feedback-danger, #{getDanger($theme)});
58
+ color: var(--matcha-color-feedback-danger-contrast, #{getDangerContrast($theme)});
59
+ }
60
+ }
61
+ }
62
+
63
+ // ── Layout ──────────────────────────────────────────────────────────────────
64
+
65
+ .matcha-footer {
66
+ display: flex;
67
+ align-items: center;
68
+ justify-content: center;
69
+ width: 100%;
70
+ // Figma matcha/footer: h 28, pad 8/16
71
+ min-height: 28px;
72
+ padding: var(--matcha-space-100, 8px) var(--matcha-space-200, 16px);
73
+ box-sizing: border-box;
74
+ position: relative;
75
+ z-index: 1;
76
+ }
77
+
78
+ .matcha-footer__brand {
79
+ display: flex;
80
+ align-items: center;
81
+ gap: var(--matcha-space-050, 4px);
82
+ }
83
+
84
+ .matcha-footer__brand-icon {
85
+ display: flex;
86
+ align-items: center;
87
+ justify-content: center;
88
+ width: var(--matcha-icon-size-sm, 16px);
89
+ height: var(--matcha-icon-size-sm, 16px);
90
+ flex-shrink: 0;
91
+ }
92
+
93
+ .matcha-footer__brand-text {
94
+ font-family: var(--matcha-font-family);
95
+ font-size: var(--matcha-text-body-sm, 12px);
96
+ font-weight: var(--matcha-weight-semibold, 600);
97
+ line-height: var(--matcha-leading-body-sm, 16px);
98
+ white-space: nowrap;
99
+ }
100
+
101
+ .matcha-footer__copyright {
102
+ font-family: var(--matcha-font-family);
103
+ font-size: var(--matcha-text-body-sm, 12px);
104
+ line-height: var(--matcha-leading-body-sm, 16px);
105
+ white-space: nowrap;
106
+ }
107
+
108
+ .matcha-footer__version {
109
+ font-family: var(--matcha-font-family);
110
+ font-size: var(--matcha-text-body-xs, 10px);
111
+ line-height: 1.4;
112
+ white-space: nowrap;
113
+ }
114
+
115
+ // ── Chat FAB ────────────────────────────────────────────────────────────────
116
+
117
+ .matcha-footer-fab {
118
+ position: fixed;
119
+ bottom: var(--matcha-space-200, 16px);
120
+ right: var(--matcha-space-200, 16px);
121
+ display: flex;
122
+ align-items: center;
123
+ justify-content: center;
124
+ width: 48px;
125
+ height: 48px;
126
+ border: none;
127
+ border-radius: var(--matcha-radius-pill, 9999px);
128
+ cursor: pointer;
129
+ z-index: 100;
130
+ transition: opacity var(--matcha-duration-instant, 80ms) linear;
131
+
132
+ .matcha-footer-fab__icon {
133
+ width: var(--matcha-icon-size-md, 24px);
134
+ height: var(--matcha-icon-size-md, 24px);
135
+ }
136
+
137
+ .matcha-footer-fab__badge {
138
+ position: absolute;
139
+ top: var(--matcha-space-050, 4px);
140
+ right: var(--matcha-space-050, 4px);
141
+ min-width: var(--matcha-space-200, 16px);
142
+ height: var(--matcha-space-200, 16px);
143
+ border-radius: var(--matcha-radius-pill, 9999px);
144
+ font-family: var(--matcha-font-family);
145
+ font-size: var(--matcha-text-body-xs, 10px);
146
+ font-weight: var(--matcha-weight-bold, 700);
147
+ display: flex;
148
+ align-items: center;
149
+ justify-content: center;
150
+ padding: 0 var(--matcha-space-050, 4px);
151
+ }
152
+
153
+ // Empty badge (dot only)
154
+ .matcha-footer-fab__badge--dot {
155
+ min-width: var(--matcha-space-100, 8px);
156
+ height: var(--matcha-space-100, 8px);
157
+ padding: 0;
158
+ }
159
+ }
160
+
161
+ // ── Responsive ──────────────────────────────────────────────────────────────
162
+
163
+ @include media-breakpoint('xs') {
164
+ .matcha-footer {
165
+ min-height: var(--matcha-space-400, 32px);
166
+ padding: var(--matcha-space-075, 6px) var(--matcha-space-200, 16px);
167
+ }
168
+
169
+ .matcha-footer__brand-text {
170
+ font-size: var(--matcha-text-body-xs, 10px);
171
+ }
172
+
173
+ .matcha-footer-fab {
174
+ bottom: var(--matcha-space-150, 12px);
175
+ right: var(--matcha-space-150, 12px);
176
+ width: 48px;
177
+ height: 48px;
178
+ }
179
+ }
180
+
181
+ // ── Reduced motion ──────────────────────────────────────────────────────────
182
+
183
+ @media (prefers-reduced-motion: reduce) {
184
+ .matcha-footer-fab {
185
+ transition: none;
186
+ }
187
+ }