@dereekb/dbx-web 13.4.2 → 13.5.1

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 (58) hide show
  1. package/_index.scss +6 -1
  2. package/fesm2022/dereekb-dbx-web-calendar.mjs +10 -11
  3. package/fesm2022/dereekb-dbx-web-calendar.mjs.map +1 -1
  4. package/fesm2022/dereekb-dbx-web-mapbox.mjs +77 -77
  5. package/fesm2022/dereekb-dbx-web-mapbox.mjs.map +1 -1
  6. package/fesm2022/dereekb-dbx-web-table.mjs +100 -100
  7. package/fesm2022/dereekb-dbx-web-table.mjs.map +1 -1
  8. package/fesm2022/dereekb-dbx-web.mjs +1715 -1589
  9. package/fesm2022/dereekb-dbx-web.mjs.map +1 -1
  10. package/lib/action/_action.scss +0 -1
  11. package/lib/action/snackbar/_snackbar.scss +0 -19
  12. package/lib/button/_button.scss +5 -20
  13. package/lib/button/progress/bar.button.component.scss +6 -0
  14. package/lib/error/_error.scss +0 -18
  15. package/lib/extension/_extension.scss +0 -31
  16. package/lib/extension/calendar/_calendar.scss +25 -74
  17. package/lib/extension/calendar/style/month/calendar-month-view.scss +1 -1
  18. package/lib/extension/help/_help.scss +0 -20
  19. package/lib/extension/table/_table.scss +0 -19
  20. package/lib/extension/zip/_zip.scss +5 -20
  21. package/lib/interaction/_interaction.scss +0 -8
  22. package/lib/interaction/dialog/_dialog.scss +4 -19
  23. package/lib/interaction/filter/_filter.scss +0 -19
  24. package/lib/interaction/iframe/_iframe.scss +0 -19
  25. package/lib/interaction/popover/_popover.scss +7 -17
  26. package/lib/interaction/popup/_popup.scss +2 -26
  27. package/lib/interaction/prompt/_prompt.scss +0 -19
  28. package/lib/interaction/style/_style.scss +4 -35
  29. package/lib/interaction/upload/_upload.scss +4 -45
  30. package/lib/layout/_layout.scss +0 -14
  31. package/lib/layout/avatar/_avatar.scss +2 -29
  32. package/lib/layout/bar/_bar.scss +10 -43
  33. package/lib/layout/block/_block.scss +0 -19
  34. package/lib/layout/card/_card.scss +0 -19
  35. package/lib/layout/column/_column.scss +2 -17
  36. package/lib/layout/content/_content.scss +7 -55
  37. package/lib/layout/flag/_flag.scss +0 -19
  38. package/lib/layout/flex/_flex.scss +0 -19
  39. package/lib/layout/item/_item.scss +0 -19
  40. package/lib/layout/list/_list.scss +3 -26
  41. package/lib/layout/section/_section.scss +7 -17
  42. package/lib/layout/step/_step.scss +0 -19
  43. package/lib/layout/style/_style.scss +1 -18
  44. package/lib/layout/text/_text.scss +8 -46
  45. package/lib/loading/_loading.scss +0 -19
  46. package/lib/router/_router.scss +0 -4
  47. package/lib/router/layout/anchor/_anchor.scss +0 -19
  48. package/lib/router/layout/anchorlist/_anchorlist.scss +4 -32
  49. package/lib/router/layout/navbar/_navbar.scss +0 -18
  50. package/lib/router/layout/sidenav/_sidenav.scss +22 -102
  51. package/lib/style/_all-typography.scss +0 -16
  52. package/lib/style/_m2-visual-compat.scss +120 -0
  53. package/lib/style/_root-variables.scss +37 -47
  54. package/lib/style/_theming.scss +1 -202
  55. package/lib/style/_variables.scss +35 -2
  56. package/package.json +13 -13
  57. package/types/dereekb-dbx-web-table.d.ts +6 -6
  58. package/types/dereekb-dbx-web.d.ts +114 -22
@@ -1,5 +1,3 @@
1
- @use 'sass:map';
2
- @use 'sass:color';
3
1
  @use '../../style/theming';
4
2
 
5
3
  // MARK: Variables
@@ -159,7 +157,7 @@ $dbx-detail-block-big-header-icon-size: 18px;
159
157
  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);
160
158
  display: inline-flex;
161
159
  padding: 7px 12px;
162
- border-radius: 16px;
160
+ border-radius: var(--dbx-chip-container-shape, var(--mat-sys-corner-large));
163
161
  align-items: center;
164
162
  cursor: default;
165
163
  min-height: 32px;
@@ -204,25 +202,6 @@ $dbx-detail-block-big-header-icon-size: 18px;
204
202
  pointer-events: none; // disable the chip click and selection events.
205
203
  user-select: none;
206
204
  }
207
- }
208
-
209
- @mixin color($theme-config) {
210
- $color-config: theming.m2-get-color-config($theme-config);
211
- $accent: map.get($color-config, 'accent');
212
- $warn: map.get($color-config, 'warn');
213
- $background: map.get($color-config, 'background');
214
- $foreground: map.get($color-config, 'foreground');
215
-
216
- $text-color: theming.m2-get-color-from-palette($foreground, 'text');
217
- $border-color: theming.m2-get-color-from-palette($background, 'background');
218
- $outlined-text-color: transparentize($border-color, 0.6);
219
-
220
- $is-dark: map.get($theme-config, is-dark);
221
-
222
- @if $is-dark == true {
223
- $text-color: darken($text-color, 35);
224
- $outlined-text-color: $border-color;
225
- }
226
205
 
227
206
  .dbx-hint,
228
207
  .dbx-clear-hint {
@@ -245,12 +224,12 @@ $dbx-detail-block-big-header-icon-size: 18px;
245
224
  }
246
225
 
247
226
  .dbx-outlined-text {
248
- color: $text-color;
227
+ color: var(--mat-sys-on-surface-variant);
249
228
  text-shadow:
250
- -1px -1px 0 $outlined-text-color,
251
- 1px -1px 0 $outlined-text-color,
252
- -1px 1px 0 $outlined-text-color,
253
- 1px 1px 0 $outlined-text-color;
229
+ -1px -1px 0 color-mix(in srgb, var(--mat-sys-surface) 40%, transparent),
230
+ 1px -1px 0 color-mix(in srgb, var(--mat-sys-surface) 40%, transparent),
231
+ -1px 1px 0 color-mix(in srgb, var(--mat-sys-surface) 40%, transparent),
232
+ 1px 1px 0 color-mix(in srgb, var(--mat-sys-surface) 40%, transparent);
254
233
  }
255
234
 
256
235
  .dbx-nowrap {
@@ -266,21 +245,17 @@ $dbx-detail-block-big-header-icon-size: 18px;
266
245
  }
267
246
 
268
247
  .dbx-number-with-limit-rounded {
269
- border-radius: 12px;
248
+ border-radius: var(--dbx-number-with-limit-container-shape, var(--mat-sys-corner-medium));
270
249
  }
271
250
 
272
251
  .dbx-click-to-copy-text-highlighted {
273
252
  text-decoration: underline;
274
253
  }
275
- }
276
-
277
- @mixin typography($theme-config-or-typography-config) {
278
- $typography-config: theming.m2-get-typography-config($theme-config-or-typography-config);
279
254
 
280
255
  .dbx-label,
281
256
  .dbx-sublabel,
282
257
  .dbx-chip-sublabel {
283
- font-size: theming.m2-font-size($typography-config, 'caption');
258
+ font-size: var(--mat-sys-body-small-size);
284
259
  }
285
260
 
286
261
  .dbx-click-to-copy-text-icon.mat-icon {
@@ -292,17 +267,4 @@ $dbx-detail-block-big-header-icon-size: 18px;
292
267
  }
293
268
 
294
269
  @mixin theme($theme-config) {
295
- @include theming.private-check-duplicate-theme-styles($theme-config, 'dbx-text') {
296
- $color: theming.m2-get-color-config($theme-config);
297
- $density: theming.m2-get-density-config($theme-config);
298
- $typography: theming.m2-get-typography-config($theme-config);
299
-
300
- @if $color !=null {
301
- @include color($theme-config);
302
- }
303
-
304
- @if $typography !=null {
305
- @include typography($theme-config);
306
- }
307
- }
308
270
  }
@@ -27,24 +27,5 @@ $linear-line-height: 4px;
27
27
  }
28
28
  }
29
29
 
30
- @mixin color($theme-config) {
31
- }
32
-
33
- @mixin typography($theme-config-or-typography-config) {
34
- }
35
-
36
30
  @mixin theme($theme-config) {
37
- @include theming.private-check-duplicate-theme-styles($theme-config, 'dbx-loading') {
38
- $color: theming.m2-get-color-config($theme-config);
39
- $density: theming.m2-get-density-config($theme-config);
40
- $typography: theming.m2-get-typography-config($theme-config);
41
-
42
- @if $color !=null {
43
- @include color($theme-config);
44
- }
45
-
46
- @if $typography !=null {
47
- @include typography($theme-config);
48
- }
49
- }
50
31
  }
@@ -11,10 +11,6 @@
11
11
  }
12
12
 
13
13
  @mixin all-router-typography($theme-config) {
14
- @include anchor.typography($theme-config);
15
- @include anchorlist.typography($theme-config);
16
- @include navbar.typography($theme-config);
17
- @include sidenav.typography($theme-config);
18
14
  }
19
15
 
20
16
  @mixin all-router-theme($theme-config) {
@@ -39,24 +39,5 @@
39
39
  }
40
40
  }
41
41
 
42
- @mixin color($theme-config) {
43
- }
44
-
45
- @mixin typography($theme-config-or-typography-config) {
46
- }
47
-
48
42
  @mixin theme($theme-config) {
49
- @include theming.private-check-duplicate-theme-styles($theme-config, 'dbx-router-anchor') {
50
- $color: theming.m2-get-color-config($theme-config);
51
- $density: theming.m2-get-density-config($theme-config);
52
- $typography: theming.m2-get-typography-config($theme-config);
53
-
54
- @if $color !=null {
55
- @include color($theme-config);
56
- }
57
-
58
- @if $typography !=null {
59
- @include typography($theme-config);
60
- }
61
- }
62
43
  }
@@ -1,5 +1,3 @@
1
- @use 'sass:map';
2
- @use 'sass:color';
3
1
  @use '../../../style/theming';
4
2
 
5
3
  // MARK: Variables
@@ -53,19 +51,9 @@ $default-mdc-list-list-item-leading-icon-size: 24px;
53
51
  }
54
52
  }
55
53
  }
56
- }
57
-
58
- @mixin color($theme-config) {
59
- $color-config: theming.m2-get-color-config($theme-config);
60
- $foreground: map.get($color-config, 'foreground');
61
- $primary: map.get($color-config, 'primary');
62
-
63
- $background: map.get($color-config, 'background');
64
- $background-hover-color: theming.m2-get-color-from-palette($background, 'hover');
65
- $background-disabled-color: theming.m2-get-color-from-palette($background, 'contrast');
66
54
 
67
55
  .dbx-anchor-list.mat-mdc-nav-list {
68
- --mat-divider-color: #{color.scale($color: $background-hover-color, $alpha: 15%)};
56
+ --mat-divider-color: color-mix(in srgb, var(--mat-sys-outline-variant) 15%, transparent);
69
57
 
70
58
  // MARK: Muting
71
59
  // items that are not active are muted
@@ -92,7 +80,7 @@ $default-mdc-list-list-item-leading-icon-size: 24px;
92
80
  .dbx-anchor-selected {
93
81
  .mat-mdc-list-item {
94
82
  opacity: #{$anchor-list-item-active-opacity};
95
- background: color.scale($color: $background-hover-color, $alpha: 10%);
83
+ background: color-mix(in srgb, var(--mat-sys-on-surface) 8%, transparent);
96
84
  }
97
85
  }
98
86
 
@@ -100,32 +88,16 @@ $default-mdc-list-list-item-leading-icon-size: 24px;
100
88
  .dbx-anchor-active-eq {
101
89
  .mat-mdc-list-item {
102
90
  opacity: #{$anchor-list-item-active-opacity};
103
- background: color.scale($color: $background-hover-color, $alpha: 25%);
91
+ background: color-mix(in srgb, var(--mat-sys-on-surface) 14%, transparent);
104
92
  }
105
93
  }
106
94
 
107
95
  // MARK: Anchor Tree
108
96
  .dbx-anchor-list-child .mat-mdc-list-item {
109
- background: color.scale($background-hover-color, $alpha: 10%);
97
+ background: color-mix(in srgb, var(--mat-sys-on-surface) 14%, transparent);
110
98
  }
111
99
  }
112
100
  }
113
101
 
114
- @mixin typography($theme-config-or-typography-config) {
115
- }
116
-
117
102
  @mixin theme($theme-config) {
118
- @include theming.private-check-duplicate-theme-styles($theme-config, 'dbx-router-anchorlist') {
119
- $color: theming.m2-get-color-config($theme-config);
120
- $density: theming.m2-get-density-config($theme-config);
121
- $typography: theming.m2-get-typography-config($theme-config);
122
-
123
- @if $color !=null {
124
- @include color($theme-config);
125
- }
126
-
127
- @if $typography !=null {
128
- @include typography($theme-config);
129
- }
130
- }
131
103
  }
@@ -8,23 +8,5 @@
8
8
  @mixin core() {
9
9
  }
10
10
 
11
- @mixin color($theme-config) {
12
- }
13
-
14
- @mixin typography($theme-config-or-typography-config) {
15
- }
16
-
17
11
  @mixin theme($theme-config) {
18
- @include theming.private-check-duplicate-theme-styles($theme-config, 'dbx-router-navbar') {
19
- $color: theming.m2-get-color-config($theme-config);
20
- $density: theming.m2-get-density-config($theme-config);
21
- $typography: theming.m2-get-typography-config($theme-config);
22
-
23
- @if $color != null {
24
- @include color($theme-config);
25
- }
26
- @if $typography != null {
27
- @include typography($theme-config);
28
- }
29
- }
30
12
  }
@@ -1,5 +1,3 @@
1
- @use 'sass:map';
2
- @use 'sass:color';
3
1
  @use '../../../style/theming';
4
2
  @use '../anchorlist/anchorlist';
5
3
 
@@ -118,142 +116,64 @@ $active-background-transparent-color: 0.93;
118
116
  overflow: auto;
119
117
  }
120
118
  }
121
- }
122
-
123
- @mixin color($theme-config) {
124
- $color-config: theming.m2-get-color-config($theme-config);
125
- $primary: map.get($color-config, 'primary');
126
- $accent: map.get($color-config, 'accent');
127
-
128
- $background: map.get($color-config, 'background');
129
- $text-color: theming.m2-get-color-from-palette($primary, '800-contrast');
130
- $text-faded-color: transparentize(
131
- $color: $text-color,
132
- $amount: $faded-text-transparent-color
133
- );
134
- $sidenav-background-color: theming.m2-get-color-from-palette($primary, 800);
135
- $inactive-text-color: theming.m2-get-color-from-palette($primary, '800-contrast');
136
- $active-icon-color: theming.m2-get-color-from-palette($accent, 400);
137
119
 
138
120
  .dbx-sidenav {
139
- mat-sidenav {
140
- .dbx-anchor-list.mat-mdc-nav-list {
141
- --mdc-list-list-item-label-text-color: #{$text-color};
142
- --mdc-list-list-item-supporting-text-color: #{$text-color};
143
- --mdc-list-list-item-leading-icon-color: #{$text-color};
121
+ mat-sidenav.mat-drawer {
122
+ // darken the sidenav background slightly for better contrast with active items
123
+ --dbx-sidenav-background: color-mix(in srgb, var(--dbx-bg-color-current) 75%, var(--mat-sys-shadow));
124
+ background: var(--dbx-sidenav-background);
144
125
 
145
- --mdc-list-list-item-disabled-label-text-color: #{$text-color};
146
- --mdc-list-list-item-disabled-leading-icon-color: #{$text-color};
147
- --mdc-list-list-item-disabled-trailing-icon-color: #{$text-color};
126
+ .dbx-anchor-list.mat-mdc-nav-list {
127
+ --dbx-sidenav-active-accent: color-mix(in srgb, var(--dbx-accent-color) 65%, var(--mat-sys-surface));
148
128
 
149
- --mdc-list-list-item-hover-state-layer-color: #{$text-color};
150
- --mdc-list-list-item-focus-state-layer-color: #{$text-color};
129
+ --mdc-list-list-item-label-text-color: var(--mat-sys-on-primary-container);
130
+ --mdc-list-list-item-supporting-text-color: var(--mat-sys-on-primary-container);
131
+ --mdc-list-list-item-leading-icon-color: var(--mat-sys-on-primary-container);
151
132
 
152
- --mdc-list-list-item-hover-label-text-color: #{$text-faded-color};
153
- --mdc-list-list-item-hover-supporting-text-color: #{$text-faded-color};
154
- --mdc-list-list-item-hover-leading-icon-color: #{$text-faded-color};
133
+ --mdc-list-list-item-disabled-label-text-color: var(--mat-sys-on-primary-container);
134
+ --mdc-list-list-item-disabled-leading-icon-color: var(--mat-sys-on-primary-container);
135
+ --mdc-list-list-item-disabled-trailing-icon-color: var(--mat-sys-on-primary-container);
155
136
 
156
- /*
157
- // TODO: add stylings if they're used in the nav list.
137
+ --mdc-list-list-item-hover-state-layer-color: var(--mat-sys-on-primary-container);
138
+ --mdc-list-list-item-focus-state-layer-color: var(--mat-sys-on-primary-container);
158
139
 
159
- --mdc-list-list-item-trailing-supporting-text-color: rgba(0, 0, 0, 0.38);
160
- --mdc-list-list-item-trailing-icon-color: rgba(0, 0, 0, 0.38);
161
- --mdc-list-list-item-selected-trailing-icon-color: rgba(0, 0, 0, 0.38);
162
- --mdc-list-list-item-hover-label-text-color: rgba(0, 0, 0, 0.87);
163
- --mdc-list-list-item-hover-leading-icon-color: rgba(0, 0, 0, 0.38);
164
- --mdc-list-list-item-hover-trailing-icon-color: rgba(0, 0, 0, 0.38);
165
- --mdc-list-list-item-focus-label-text-color: rgba(0, 0, 0, 0.87);
166
- */
140
+ --mdc-list-list-item-hover-label-text-color: color-mix(in srgb, var(--mat-sys-on-primary-container) 80%, transparent);
141
+ --mdc-list-list-item-hover-supporting-text-color: color-mix(in srgb, var(--mat-sys-on-primary-container) 80%, transparent);
142
+ --mdc-list-list-item-hover-leading-icon-color: color-mix(in srgb, var(--mat-sys-on-primary-container) 80%, transparent);
167
143
 
168
144
  .dbx-anchor-active {
169
145
  .mat-mdc-list-item {
170
146
  .mat-mdc-list-item-icon {
171
- color: $active-icon-color;
147
+ color: var(--dbx-sidenav-active-accent);
172
148
  }
173
149
  }
174
150
  }
175
151
 
176
152
  .dbx-anchor-list-root .dbx-anchor-active .mat-mdc-list-item {
177
153
  // root list items glow when active
178
- background: transparentize($color: $active-icon-color, $amount: $active-background-transparent-color);
154
+ background: color-mix(in srgb, var(--dbx-sidenav-active-accent) 12%, transparent);
179
155
  }
180
156
 
181
157
  // directly active links have a side-
182
158
  .dbx-anchor-active-eq,
183
159
  .dbx-anchor-list-child .dbx-anchor-active {
184
160
  .mat-mdc-list-item {
185
- border-left: var(--dbx-sidenav-active-child-item-border-left-width, #{$default-active-border-left-width}) solid $active-icon-color;
161
+ border-left: var(--dbx-sidenav-active-child-item-border-left-width, #{$default-active-border-left-width}) solid var(--dbx-sidenav-active-accent);
186
162
 
187
163
  .mat-mdc-list-item-icon {
188
- --mdc-list-list-item-leading-icon-color: #{$active-icon-color};
164
+ --mdc-list-list-item-leading-icon-color: var(--dbx-sidenav-active-accent);
189
165
  }
190
166
  }
191
167
  }
192
168
 
193
169
  .dbx-anchor-list-child .dbx-anchor-active .mat-mdc-list-item,
194
170
  .dbx-anchor-list-child .dbx-anchor-active-eq .mat-mdc-list-item {
195
- background: transparentize($color: $active-icon-color, $amount: $active-background-transparent-color);
171
+ background: color-mix(in srgb, var(--dbx-sidenav-active-accent) 12%, transparent);
196
172
  }
197
173
  }
198
174
  }
199
175
  }
200
-
201
- /*
202
- .active {
203
- &.mat-mdc-list-item {
204
- background-color: rgba(0, 0, 0, 0.1);
205
- }
206
-
207
- mat-icon {
208
- color: $sidenav-active-color;
209
- }
210
- }
211
-
212
- $app-side-nav-bar-padding: 14px;
213
-
214
- .app-side-nav-bar-title {
215
- // text-align: center;
216
- padding: $app-side-nav-bar-padding;
217
-
218
- .app-side-nav-bar-title-header {
219
- display: flex;
220
-
221
- >img {
222
- width: 32px;
223
- height: 32px;
224
- padding-left: 2px;
225
- padding-right: 16px;
226
- }
227
-
228
- span {
229
- @include mat-typography-level-to-styles($color-config, title);
230
- font-weight: 300;
231
- }
232
- }
233
-
234
- }
235
-
236
- .app-side-nav-bar-title-content {
237
- padding-top: $app-side-nav-bar-padding;
238
- }
239
- */
240
- }
241
-
242
- @mixin typography($theme-config-or-typography-config) {
243
176
  }
244
177
 
245
178
  @mixin theme($theme-config) {
246
- @include theming.private-check-duplicate-theme-styles($theme-config, 'dbx-router-sidenav') {
247
- $color: theming.m2-get-color-config($theme-config);
248
- $density: theming.m2-get-density-config($theme-config);
249
- $typography: theming.m2-get-typography-config($theme-config);
250
-
251
- @if $color !=null {
252
- @include color($theme-config);
253
- }
254
-
255
- @if $typography !=null {
256
- @include typography($theme-config);
257
- }
258
- }
259
179
  }
@@ -1,6 +1,5 @@
1
1
  @use './theming';
2
2
  @use '../action/action';
3
- @use '../button/button';
4
3
  @use '../error/error';
5
4
  @use '../interaction/interaction';
6
5
  @use '../layout/layout';
@@ -10,19 +9,4 @@
10
9
 
11
10
  // Includes all of the typographic styles.
12
11
  @mixin all-component-typographies($theme-config-or-typography-config: null) {
13
- $typography-config: if(theming.private-is-theme-object($theme-config-or-typography-config), theming.m2-get-typography-config($theme-config-or-typography-config), $theme-config-or-typography-config);
14
-
15
- // If no actual color configuration has been specified, create a default one.
16
- @if not $typography-config {
17
- $typography-config: typography.define-typography-config();
18
- }
19
-
20
- @include button.typography($typography-config);
21
- @include error.typography($typography-config);
22
- @include action.all-action-typography($typography-config);
23
- @include interaction.all-interaction-typography($typography-config);
24
- @include layout.all-layout-typography($typography-config);
25
- @include loading.typography($typography-config);
26
- @include router.all-router-typography($typography-config);
27
- @include extension.all-extension-typography($typography-config);
28
12
  }
@@ -0,0 +1,120 @@
1
+ /// Applies M3 "small" (8px) corner rounding to components that default to
2
+ /// larger radii in M3 (buttons default to "full"/pill, dialogs to 28px, etc).
3
+ /// This gives a modern but restrained look.
4
+ @mixin dbx-components-shapes() {
5
+ // Buttons: M3 default is "full" (pill). Small = 8px.
6
+ --mat-button-filled-container-shape: 8px;
7
+ --mat-button-outlined-container-shape: 8px;
8
+ --mat-button-text-container-shape: 8px;
9
+ --mat-button-protected-container-shape: 8px;
10
+ --mat-button-tonal-container-shape: 8px;
11
+
12
+ // FAB: M3 default is "large" (16px). Small = 8px.
13
+ --mat-fab-container-shape: 8px;
14
+ --mat-fab-small-container-shape: 8px;
15
+
16
+ // Dialog: M3 default is "extra-large" (28px). Small = 8px.
17
+ --mat-dialog-container-shape: 8px;
18
+
19
+ // Card: M3 default is "medium" (12px). Small = 8px.
20
+ --mat-card-elevated-container-shape: 8px;
21
+ --mat-card-filled-container-shape: 8px;
22
+ --mat-card-outlined-container-shape: 8px;
23
+
24
+ // Sidenav: M3 default is "large" (16px). No rounding for dbx-components.
25
+ --mat-sidenav-container-shape: 0;
26
+
27
+ // Chip: Small = 8px.
28
+ --mat-chip-container-shape-radius: 8px;
29
+
30
+ // Form fields: Small = 8px.
31
+ --mat-form-field-filled-container-shape: 8px;
32
+ --mat-form-field-outlined-container-shape: 8px;
33
+
34
+ // Snackbar: Small = 8px.
35
+ --mat-snack-bar-container-shape: 8px;
36
+
37
+ // Menu / Select / Autocomplete: Small = 8px.
38
+ --mat-menu-container-shape: 8px;
39
+ --mat-autocomplete-container-shape: 8px;
40
+
41
+ // Expansion panel
42
+ --mat-expansion-container-shape: 8px;
43
+
44
+ // Datepicker
45
+ --mat-datepicker-calendar-container-shape: 8px;
46
+
47
+ // Bottom sheet
48
+ --mat-bottom-sheet-container-shape: 8px;
49
+
50
+ // Tooltip
51
+ --mat-tooltip-container-shape: 8px;
52
+
53
+ // List: active indicator defaults to "full" (pill). Small = 8px.
54
+ --mat-list-active-indicator-shape: 2px;
55
+ }
56
+
57
+ /// Opt-in mixin that restores M2-era visual defaults (shapes, border radii)
58
+ /// when using M3 theming. Include inside your theme root selector.
59
+ ///
60
+ /// Usage:
61
+ /// ```scss
62
+ /// @mixin my-theme($root-selector) {
63
+ /// @include dbx.theme($root-selector, $theme);
64
+ /// #{$root-selector} {
65
+ /// @include dbx.m2-visual-compat();
66
+ /// }
67
+ /// }
68
+ /// ```
69
+ @mixin m2-visual-compat() {
70
+ // Buttons: M2 ~4px vs M3 "full" (pill)
71
+ --mat-button-filled-container-shape: 4px;
72
+ --mat-button-outlined-container-shape: 4px;
73
+ --mat-button-text-container-shape: 4px;
74
+ --mat-button-protected-container-shape: 4px;
75
+ --mat-button-tonal-container-shape: 4px;
76
+
77
+ // FAB: M2 ~4px vs M3 fully rounded
78
+ --mat-fab-container-shape: 4px;
79
+ --mat-fab-small-container-shape: 4px;
80
+
81
+ // Dialog: M2 ~4px vs M3 ~28px
82
+ --mat-dialog-container-shape: 4px;
83
+
84
+ // Card: M2 ~4px vs M3 ~12px
85
+ --mat-card-elevated-container-shape: 4px;
86
+ --mat-card-filled-container-shape: 4px;
87
+ --mat-card-outlined-container-shape: 4px;
88
+
89
+ // Sidenav: M2 had no rounding vs M3 "large" (16px)
90
+ --mat-sidenav-container-shape: 0;
91
+
92
+ // Chip: M2 ~16px (pill) vs M3 ~8px
93
+ --mat-chip-container-shape-radius: 16px;
94
+
95
+ // Form fields: M2 ~4px vs M3 varies
96
+ --mat-form-field-filled-container-shape: 4px;
97
+ --mat-form-field-outlined-container-shape: 4px;
98
+
99
+ // Snackbar: M2 ~4px
100
+ --mat-snack-bar-container-shape: 4px;
101
+
102
+ // Menu / Autocomplete
103
+ --mat-menu-container-shape: 4px;
104
+ --mat-autocomplete-container-shape: 4px;
105
+
106
+ // Expansion panel
107
+ --mat-expansion-container-shape: 4px;
108
+
109
+ // Datepicker
110
+ --mat-datepicker-calendar-container-shape: 4px;
111
+
112
+ // Bottom sheet
113
+ --mat-bottom-sheet-container-shape: 4px;
114
+
115
+ // Tooltip
116
+ --mat-tooltip-container-shape: 4px;
117
+
118
+ // List: active indicator defaults to "full" (pill). M2 had no rounding.
119
+ --mat-list-active-indicator-shape: 0;
120
+ }