@angular/material-experimental 17.2.0-rc.0 → 17.2.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 (32) hide show
  1. package/esm2022/column-resize/column-resize-directives/column-resize-flex.mjs +3 -3
  2. package/esm2022/column-resize/column-resize-directives/column-resize.mjs +3 -3
  3. package/esm2022/column-resize/column-resize-directives/default-enabled-column-resize-flex.mjs +3 -3
  4. package/esm2022/column-resize/column-resize-directives/default-enabled-column-resize.mjs +3 -3
  5. package/esm2022/column-resize/column-resize-module.mjs +12 -12
  6. package/esm2022/column-resize/overlay-handle.mjs +3 -3
  7. package/esm2022/column-resize/resizable-directives/default-enabled-resizable.mjs +3 -3
  8. package/esm2022/column-resize/resizable-directives/resizable.mjs +3 -3
  9. package/esm2022/column-resize/resize-strategy.mjs +3 -3
  10. package/esm2022/menubar/menubar-item.mjs +3 -3
  11. package/esm2022/menubar/menubar-module.mjs +4 -4
  12. package/esm2022/menubar/menubar.mjs +3 -3
  13. package/esm2022/popover-edit/lens-directives.mjs +9 -9
  14. package/esm2022/popover-edit/popover-edit-module.mjs +4 -4
  15. package/esm2022/popover-edit/table-directives.mjs +12 -12
  16. package/esm2022/selection/row-selection.mjs +3 -3
  17. package/esm2022/selection/select-all.mjs +3 -3
  18. package/esm2022/selection/selection-column.mjs +3 -3
  19. package/esm2022/selection/selection-module.mjs +4 -4
  20. package/esm2022/selection/selection-toggle.mjs +3 -3
  21. package/esm2022/selection/selection.mjs +3 -3
  22. package/esm2022/version.mjs +1 -1
  23. package/fesm2022/column-resize.mjs +36 -36
  24. package/fesm2022/material-experimental.mjs +1 -1
  25. package/fesm2022/material-experimental.mjs.map +1 -1
  26. package/fesm2022/menubar.mjs +10 -10
  27. package/fesm2022/popover-edit.mjs +25 -25
  28. package/fesm2022/selection.mjs +19 -19
  29. package/package.json +8 -8
  30. package/theming/_custom-tokens.scss +63 -29
  31. package/theming/_m3-density.scss +13 -1
  32. package/theming/_m3-tokens.scss +23 -3
@@ -70,15 +70,15 @@
70
70
  small-size-container-size: _hardcode(6px, $exclude-hardcoded),
71
71
  container-padding: _hardcode(0 4px, $exclude-hardcoded),
72
72
  small-size-container-padding: _hardcode(0, $exclude-hardcoded),
73
- container-offset: -12px 0,
74
- small-size-container-offset: -6px 0,
75
- container-overlap-offset: -12px,
76
- small-size-container-overlap-offset: -6px,
73
+ container-offset: _hardcode(-12px 0, $exclude-hardcoded),
74
+ small-size-container-offset: _hardcode(-6px 0, $exclude-hardcoded),
75
+ container-overlap-offset: _hardcode(-12px, $exclude-hardcoded),
76
+ small-size-container-overlap-offset: _hardcode(-6px, $exclude-hardcoded),
77
77
 
78
78
  // This size isn't in the M3 spec so we emit the same values as for `medium`.
79
79
  large-size-container-size: _hardcode(16px, $exclude-hardcoded),
80
- large-size-container-offset: -12px 0,
81
- large-size-container-overlap-offset: -12px,
80
+ large-size-container-offset: _hardcode(-12px 0, $exclude-hardcoded),
81
+ large-size-container-overlap-offset: _hardcode(-12px, $exclude-hardcoded),
82
82
  large-size-text-size: map.get($systems, md-sys-typescale, label-small-size),
83
83
  large-size-container-padding: _hardcode(0 4px, $exclude-hardcoded),
84
84
  legacy-large-size-container-size: _hardcode(unset, $exclude-hardcoded),
@@ -134,8 +134,10 @@
134
134
  /// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values
135
135
  /// @return {Map} A set of custom tokens for the mat-button-toggle
136
136
  @function button-toggle($systems, $exclude-hardcoded) {
137
- @return ((
138
- shape: _hardcode(9999px, $exclude-hardcoded),
137
+ @return mat.private-merge-all(
138
+ _generate-typography-tokens($systems, label-text, label-large),
139
+ (
140
+ shape: map.get($systems, md-sys-shape, corner-full),
139
141
  hover-state-layer-opacity: map.get($systems, md-sys-state, hover-state-layer-opacity),
140
142
  focus-state-layer-opacity: map.get($systems, md-sys-state, focus-state-layer-opacity),
141
143
  text-color: map.get($systems, md-sys-color, on-surface),
@@ -157,7 +159,6 @@
157
159
  $alpha: 0.12,
158
160
  ),
159
161
  divider-color: map.get($systems, md-sys-color, outline),
160
- text-font: map.get($systems, md-sys-typescale, label-large-font),
161
162
  ), (
162
163
  // Color variants:
163
164
  primary: (
@@ -341,9 +342,10 @@
341
342
  toggle-active-state-icon-color: map.get($systems, md-sys-color, on-surface-variant),
342
343
  toggle-icon-color: map.get($systems, md-sys-color, on-surface-variant),
343
344
  calendar-body-label-text-color: map.get($systems, md-sys-color, on-surface),
345
+ calendar-period-button-text-color: map.get($systems, md-sys-color, on-surface-variant),
344
346
  calendar-period-button-icon-color: map.get($systems, md-sys-color, on-surface-variant),
345
347
  calendar-navigation-button-icon-color: map.get($systems, md-sys-color, on-surface-variant),
346
- calendar-header-divider-color: map.get($systems, md-sys-color, outline-variant),
348
+ calendar-header-divider-color: _hardcode(transparent, $exclude-hardcoded),
347
349
  calendar-header-text-color: map.get($systems, md-sys-color, on-surface-variant),
348
350
  calendar-date-today-outline-color: map.get($systems, md-sys-color, primary),
349
351
  calendar-date-today-disabled-state-outline-color: mat.private-safe-color-change(
@@ -368,6 +370,12 @@
368
370
  ),
369
371
  calendar-container-background-color: map.get($systems, md-sys-color, surface-container-high),
370
372
  calendar-container-text-color: map.get($systems, md-sys-color, on-surface),
373
+ calendar-container-elevation-shadow: _hardcode(mdc-elevation.elevation-box-shadow(0),
374
+ $exclude-hardcoded),
375
+ calendar-container-touch-elevation-shadow: _hardcode(mdc-elevation.elevation-box-shadow(0),
376
+ $exclude-hardcoded),
377
+ calendar-container-shape: map.get($systems, md-sys-shape, corner-large),
378
+ calendar-container-touch-shape: map.get($systems, md-sys-shape, corner-extra-large),
371
379
  calendar-text-font: map.get($systems, md-sys-typescale, body-large-font),
372
380
  calendar-text-size: map.get($systems, md-sys-typescale, body-large-size),
373
381
  calendar-body-label-text-size: map.get($systems, md-sys-typescale, title-small-size),
@@ -423,7 +431,7 @@
423
431
  @return (
424
432
  container-max-width: _hardcode(560px, $exclude-hardcoded),
425
433
  container-small-max-width: _hardcode(calc(100vw - 32px), $exclude-hardcoded),
426
- container-min-width: _harcode(280px, $exclude-hardcoded),
434
+ container-min-width: _hardcode(280px, $exclude-hardcoded),
427
435
  actions-alignment: _hardcode(flex-end, $exclude-hardcoded),
428
436
  content-padding: _hardcode(20px 24px, $exclude-hardcoded),
429
437
  with-actions-content-padding: _hardcode(20px 24px 0, $exclude-hardcoded),
@@ -649,6 +657,17 @@
649
657
  ));
650
658
  }
651
659
 
660
+ /// Generates custom tokens for the mat-list.
661
+ /// @param {Map} $systems The MDC system tokens
662
+ /// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values
663
+ /// @return {Map} A set of custom tokens for the mat-list
664
+ @function list($systems, $exclude-hardcoded) {
665
+ @return (
666
+ active-indicator-color: map.get($systems, md-sys-color, secondary-container),
667
+ active-indicator-shape: map.get($systems, md-sys-shape, corner-full),
668
+ );
669
+ }
670
+
652
671
  /// Generates custom tokens for the mat-button.
653
672
  /// @param {Map} $systems The MDC system tokens
654
673
  /// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values
@@ -856,9 +875,13 @@
856
875
  @return mat.private-merge-all(
857
876
  _generate-typography-tokens($systems, item-label-text, label-large),
858
877
  (
859
- container-shape: _hardcode(4px, $exclude-hardcoded),
878
+ container-shape: map.get($systems, md-sys-shape, corner-extra-small),
879
+ divider-color: map.get($systems, md-sys-color, surface-variant),
880
+ divider-bottom-spacing: _hardcode(8px, $exclude-hardcoded),
881
+ divider-top-spacing: _hardcode(8px, $exclude-hardcoded),
860
882
  item-label-text-color: map.get($systems, md-sys-color, on-surface),
861
883
  item-icon-color: map.get($systems, md-sys-color, on-surface-variant),
884
+ item-icon-size: _hardcode(24px, $exclude-hardcoded),
862
885
  item-hover-state-layer-color: mat.private-safe-color-change(
863
886
  map.get($systems, md-sys-color, on-surface),
864
887
  $alpha: map.get($systems, md-sys-state, hover-state-layer-opacity)
@@ -867,6 +890,11 @@
867
890
  map.get($systems, md-sys-color, on-surface),
868
891
  $alpha: map.get($systems, md-sys-state, focus-state-layer-opacity)
869
892
  ),
893
+ item-spacing: _hardcode(12px, $exclude-hardcoded),
894
+ item-leading-spacing: _hardcode(12px, $exclude-hardcoded),
895
+ item-trailing-spacing: _hardcode(12px, $exclude-hardcoded),
896
+ item-with-icon-leading-spacing: _hardcode(12px, $exclude-hardcoded),
897
+ item-with-icon-trailing-spacing: _hardcode(12px, $exclude-hardcoded),
870
898
  container-color: map.get($systems, md-sys-color, surface-container),
871
899
  )
872
900
  );
@@ -1160,28 +1188,34 @@
1160
1188
  /// @param {Boolean} $exclude-hardcoded Whether to exclude hardcoded token values
1161
1189
  /// @return {Map} A set of custom tokens for the mat-slide-toggle
1162
1190
  @function switch($systems, $exclude-hardcoded) {
1163
- @return ((
1164
- unselected-handle-size: 16px,
1165
- selected-handle-size: 24px,
1166
- with-icon-handle-size: 24px,
1167
- pressed-handle-size: 28px,
1168
- selected-handle-horizontal-margin: 0 24px,
1169
- selected-with-icon-handle-horizontal-margin: 0 24px,
1170
- selected-pressed-handle-horizontal-margin: 0 22px,
1171
- unselected-handle-horizontal-margin: 0 8px,
1172
- unselected-with-icon-handle-horizontal-margin: 0 4px,
1173
- unselected-pressed-handle-horizontal-margin: 0 2px,
1191
+ @return (
1192
+ disabled-selected-handle-opacity: _hardcode(1, $exclude-hardcoded),
1193
+ disabled-unselected-handle-opacity: _hardcode(0.38, $exclude-hardcoded),
1194
+ unselected-handle-size: _hardcode(16px, $exclude-hardcoded),
1195
+ selected-handle-size: _hardcode(24px, $exclude-hardcoded),
1196
+ with-icon-handle-size: _hardcode(24px, $exclude-hardcoded),
1197
+ pressed-handle-size: _hardcode(28px, $exclude-hardcoded),
1198
+ selected-handle-horizontal-margin: _hardcode(0 24px, $exclude-hardcoded),
1199
+ selected-with-icon-handle-horizontal-margin: _hardcode(0 24px, $exclude-hardcoded),
1200
+ selected-pressed-handle-horizontal-margin: _hardcode(0 22px, $exclude-hardcoded),
1201
+ unselected-handle-horizontal-margin: _hardcode(0 8px, $exclude-hardcoded),
1202
+ unselected-with-icon-handle-horizontal-margin: _hardcode(0 4px, $exclude-hardcoded),
1203
+ unselected-pressed-handle-horizontal-margin: _hardcode(0 2px, $exclude-hardcoded),
1174
1204
  // The hidden and visible track represent whichever track is visible or
1175
1205
  // hidden in the ui. This could be the .mdc-switch__track :before or
1176
1206
  // :after depending on whether the switch is selected or unselected.
1177
1207
  //
1178
1208
  // The m2 slide-toggle uses transforms to hide & show the tracks while
1179
1209
  // the m3 slide-toggle uses opacity.
1180
- visible-track-opacity: 1,
1181
- hidden-track-opacity: 0,
1182
- visible-track-transition: opacity 75ms,
1183
- hidden-track-transition: opacity 75ms,
1184
- ), ());
1210
+ visible-track-opacity: _hardcode(1, $exclude-hardcoded),
1211
+ hidden-track-opacity: _hardcode(0, $exclude-hardcoded),
1212
+ visible-track-transition: _hardcode(opacity 75ms, $exclude-hardcoded),
1213
+ hidden-track-transition: _hardcode(opacity 75ms, $exclude-hardcoded),
1214
+ track-outline-width: _hardcode(2px, $exclude-hardcoded),
1215
+ track-outline-color: map.get($systems, md-sys-color, outline),
1216
+ disabled-unselected-track-outline-width: _hardcode(2px, $exclude-hardcoded),
1217
+ disabled-unselected-track-outline-color: map.get($systems, md-sys-color, on-surface),
1218
+ ), ();
1185
1219
  }
1186
1220
 
1187
1221
  /// Generates custom tokens for the mat-snack-bar.
@@ -1282,7 +1316,7 @@
1282
1316
  _generate-typography-tokens($systems, label-text, title-small),
1283
1317
  (
1284
1318
  divider-color: map.get($systems, md-sys-color, surface-variant),
1285
- divider-height: 1px,
1319
+ divider-height: _hardcode(1px, $exclude-hardcoded),
1286
1320
  disabled-ripple-color: null, // TODO(mmalerba): Figure out correct value.
1287
1321
  pagination-icon-color: map.get($systems, md-sys-color, on-surface),
1288
1322
  inactive-label-text-color: map.get($systems, md-sys-color, on-surface),
@@ -95,6 +95,10 @@ $_density-tokens: (
95
95
  (mat, icon-button): (
96
96
  touch-target-display: (block, block, none, none),
97
97
  ),
98
+ (mat, list): (
99
+ list-item-leading-icon-start-space: (16px, 12px, 8px, 4px),
100
+ list-item-leading-icon-end-space: (16px, 12px, 8px, 4px),
101
+ ),
98
102
  (mat, text-button): (
99
103
  touch-target-display: (block, block, none, none),
100
104
  ),
@@ -114,12 +118,20 @@ $_density-tokens: (
114
118
  (mat, minimal-pseudo-checkbox): (),
115
119
  (mat, paginator): (
116
120
  container-size: (56px, 52px, 48px, 40px),
121
+ form-field-container-height: (40px, 40px, 40px, 40px, 40px, 36px),
122
+ form-field-container-vertical-padding: (8px, 8px, 8px, 8px, 8px, 6px),
117
123
  ),
118
124
  (mat, radio): (
119
125
  touch-target-display: (block, block, none, none),
120
126
  ),
121
127
  (mat, ripple): (),
122
- (mat, select): (),
128
+ (mat, select): (
129
+ arrow-transform: (
130
+ translateY(-8px),
131
+ translateY(-8px),
132
+ none,
133
+ ),
134
+ ),
123
135
  (mat, sidenav): (),
124
136
  (mat, slide-toggle): (),
125
137
  (mat, slider): (),
@@ -446,7 +446,7 @@
446
446
  headline-weight: subhead-weight,
447
447
  ));
448
448
 
449
- @if (map.has-key($tokens, container-elevation)) {
449
+ @if map.get($tokens, container-elevation) != null {
450
450
  $tokens: map.merge($tokens, (
451
451
  // The spec has the dialog at an elevation of 3 which is consistent with the current
452
452
  // version of the tokens (0_161), however both the designs and MDC's implementation
@@ -472,7 +472,17 @@
472
472
  // However, this interferes with the use case of placing a list on other components. For example,
473
473
  // the bottom sheet's container color is `md.sys.color.surface-container-low`. Instead, allow the
474
474
  // list to just display the colors for its background.
475
- @return map.set($tokens, list-item-container-color, transparent);
475
+ @if map.get($tokens, list-item-container-color) != null {
476
+ $tokens: map.set($tokens, list-item-container-color, transparent);
477
+ }
478
+
479
+ // Match spec, which has list-item-leading-icon-size of 24px. Current version of tokens (0_161)
480
+ // has 18px.
481
+ @if map.get($tokens, list-item-leading-icon-size) != null {
482
+ $tokens: map.set($tokens, list-item-leading-icon-size, 24px);
483
+ }
484
+
485
+ @return $tokens;
476
486
  }
477
487
 
478
488
  /// Generates a set of namespaced tokens for all components.
@@ -826,6 +836,11 @@
826
836
  custom-tokens.filled-button($systems, $exclude-hardcoded),
827
837
  $token-slots
828
838
  ),
839
+ _namespace-tokens(
840
+ (mat, list),
841
+ custom-tokens.list($systems, $exclude-hardcoded),
842
+ $token-slots
843
+ ),
829
844
  _namespace-tokens(
830
845
  // Note: in M3 the "protected" button is called "elevated".
831
846
  (mat, protected-button),
@@ -976,7 +991,13 @@
976
991
  mdc-tokens.md-sys-color-values-light($ref));
977
992
  @return _generate-tokens(map.merge($ref, (
978
993
  md-sys-color: $sys-color,
994
+ // Because the elevation values are always combined with color values to create the box shadow,
995
+ // elevation needs to be part of the color dimension.
979
996
  md-sys-elevation: mdc-tokens.md-sys-elevation-values(),
997
+ // Because the state values are sometimes combined with color values to create rgba colors,
998
+ // state needs to be part of color dimension.
999
+ // TODO(mmalerba): If at some point we remove the need for these combined values, we can move
1000
+ // state to the base dimension.
980
1001
  md-sys-state: mdc-tokens.md-sys-state-values(),
981
1002
  )));
982
1003
  }
@@ -1012,6 +1033,5 @@
1012
1033
  @return _generate-tokens((
1013
1034
  md-sys-motion: mdc-tokens.md-sys-motion-values(),
1014
1035
  md-sys-shape: mdc-tokens.md-sys-shape-values(),
1015
- md-sys-state: mdc-tokens.md-sys-state-values(),
1016
1036
  ), $include-non-systemized: true);
1017
1037
  }