@angular/material 17.0.1 → 17.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 (245) hide show
  1. package/autocomplete/_autocomplete-theme.scss +47 -14
  2. package/badge/_badge-theme.scss +67 -35
  3. package/bottom-sheet/_bottom-sheet-theme.scss +51 -18
  4. package/button/_button-theme.scss +4 -1
  5. package/button-toggle/_button-toggle-theme.scss +66 -32
  6. package/chips/_chips-theme.scss +64 -32
  7. package/core/_core-theme.scss +1 -3
  8. package/core/option/_optgroup-theme.scss +47 -16
  9. package/core/option/_option-theme.scss +54 -23
  10. package/core/selection/pseudo-checkbox/_pseudo-checkbox-theme.scss +18 -58
  11. package/core/tokens/m2/_index.scss +30 -0
  12. package/core/tokens/m2/mat/_full-pseudo-checkbox.scss +49 -0
  13. package/core/tokens/m2/mat/_minimal-pseudo-checkbox.scss +43 -0
  14. package/datepicker/_datepicker-theme.scss +70 -38
  15. package/dialog/_dialog-theme.scss +48 -17
  16. package/divider/_divider-theme.scss +49 -16
  17. package/esm2022/autocomplete/autocomplete-origin.mjs +3 -3
  18. package/esm2022/autocomplete/autocomplete-trigger.mjs +18 -9
  19. package/esm2022/autocomplete/autocomplete.mjs +3 -3
  20. package/esm2022/autocomplete/module.mjs +4 -4
  21. package/esm2022/badge/badge-module.mjs +4 -4
  22. package/esm2022/badge/badge.mjs +3 -3
  23. package/esm2022/bottom-sheet/bottom-sheet-container.mjs +3 -3
  24. package/esm2022/bottom-sheet/bottom-sheet-module.mjs +4 -4
  25. package/esm2022/bottom-sheet/bottom-sheet.mjs +3 -3
  26. package/esm2022/button/button-base.mjs +6 -6
  27. package/esm2022/button/button.mjs +6 -6
  28. package/esm2022/button/fab.mjs +12 -12
  29. package/esm2022/button/icon-button.mjs +6 -6
  30. package/esm2022/button/module.mjs +4 -4
  31. package/esm2022/button-toggle/button-toggle-module.mjs +4 -4
  32. package/esm2022/button-toggle/button-toggle.mjs +6 -6
  33. package/esm2022/card/card.mjs +42 -42
  34. package/esm2022/card/module.mjs +4 -4
  35. package/esm2022/checkbox/checkbox-required-validator.mjs +3 -3
  36. package/esm2022/checkbox/checkbox.mjs +3 -3
  37. package/esm2022/checkbox/module.mjs +8 -8
  38. package/esm2022/chips/chip-action.mjs +3 -3
  39. package/esm2022/chips/chip-edit-input.mjs +3 -3
  40. package/esm2022/chips/chip-grid.mjs +3 -3
  41. package/esm2022/chips/chip-icons.mjs +9 -9
  42. package/esm2022/chips/chip-input.mjs +3 -3
  43. package/esm2022/chips/chip-listbox.mjs +3 -3
  44. package/esm2022/chips/chip-option.mjs +3 -3
  45. package/esm2022/chips/chip-row.mjs +3 -3
  46. package/esm2022/chips/chip-set.mjs +3 -3
  47. package/esm2022/chips/chip.mjs +3 -3
  48. package/esm2022/chips/module.mjs +4 -4
  49. package/esm2022/core/common-behaviors/common-module.mjs +4 -4
  50. package/esm2022/core/datetime/index.mjs +8 -8
  51. package/esm2022/core/datetime/native-date-adapter.mjs +3 -3
  52. package/esm2022/core/error/error-options.mjs +6 -6
  53. package/esm2022/core/line/line.mjs +7 -7
  54. package/esm2022/core/option/index.mjs +4 -4
  55. package/esm2022/core/option/optgroup.mjs +3 -3
  56. package/esm2022/core/option/option.mjs +3 -3
  57. package/esm2022/core/private/ripple-loader.mjs +3 -3
  58. package/esm2022/core/ripple/index.mjs +4 -4
  59. package/esm2022/core/ripple/ripple.mjs +3 -3
  60. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox-module.mjs +4 -4
  61. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +4 -4
  62. package/esm2022/core/version.mjs +1 -1
  63. package/esm2022/datepicker/calendar-body.mjs +3 -3
  64. package/esm2022/datepicker/calendar.mjs +6 -6
  65. package/esm2022/datepicker/date-range-input-parts.mjs +9 -9
  66. package/esm2022/datepicker/date-range-input.mjs +3 -3
  67. package/esm2022/datepicker/date-range-picker.mjs +3 -3
  68. package/esm2022/datepicker/date-range-selection-strategy.mjs +3 -3
  69. package/esm2022/datepicker/date-selection-model.mjs +9 -9
  70. package/esm2022/datepicker/datepicker-actions.mjs +9 -9
  71. package/esm2022/datepicker/datepicker-base.mjs +6 -6
  72. package/esm2022/datepicker/datepicker-input-base.mjs +3 -3
  73. package/esm2022/datepicker/datepicker-input.mjs +3 -3
  74. package/esm2022/datepicker/datepicker-intl.mjs +3 -3
  75. package/esm2022/datepicker/datepicker-module.mjs +4 -4
  76. package/esm2022/datepicker/datepicker-toggle.mjs +6 -6
  77. package/esm2022/datepicker/datepicker.mjs +3 -3
  78. package/esm2022/datepicker/month-view.mjs +3 -3
  79. package/esm2022/datepicker/multi-year-view.mjs +3 -3
  80. package/esm2022/datepicker/year-view.mjs +3 -3
  81. package/esm2022/dialog/dialog-container.mjs +3 -3
  82. package/esm2022/dialog/dialog-content-directives.mjs +12 -12
  83. package/esm2022/dialog/dialog.mjs +3 -3
  84. package/esm2022/dialog/module.mjs +4 -4
  85. package/esm2022/divider/divider-module.mjs +4 -4
  86. package/esm2022/divider/divider.mjs +3 -3
  87. package/esm2022/expansion/accordion.mjs +3 -3
  88. package/esm2022/expansion/expansion-module.mjs +4 -4
  89. package/esm2022/expansion/expansion-panel-content.mjs +3 -3
  90. package/esm2022/expansion/expansion-panel-header.mjs +9 -9
  91. package/esm2022/expansion/expansion-panel.mjs +6 -6
  92. package/esm2022/form-field/directives/error.mjs +3 -3
  93. package/esm2022/form-field/directives/floating-label.mjs +3 -3
  94. package/esm2022/form-field/directives/hint.mjs +3 -3
  95. package/esm2022/form-field/directives/label.mjs +3 -3
  96. package/esm2022/form-field/directives/line-ripple.mjs +3 -3
  97. package/esm2022/form-field/directives/notched-outline.mjs +3 -3
  98. package/esm2022/form-field/directives/prefix.mjs +3 -3
  99. package/esm2022/form-field/directives/suffix.mjs +3 -3
  100. package/esm2022/form-field/form-field-control.mjs +3 -3
  101. package/esm2022/form-field/form-field.mjs +3 -3
  102. package/esm2022/form-field/module.mjs +4 -4
  103. package/esm2022/grid-list/grid-list-module.mjs +4 -4
  104. package/esm2022/grid-list/grid-list.mjs +3 -3
  105. package/esm2022/grid-list/grid-tile.mjs +15 -15
  106. package/esm2022/icon/icon-module.mjs +4 -4
  107. package/esm2022/icon/icon-registry.mjs +3 -3
  108. package/esm2022/icon/icon.mjs +3 -3
  109. package/esm2022/icon/testing/fake-icon-registry.mjs +7 -7
  110. package/esm2022/input/input.mjs +3 -3
  111. package/esm2022/input/module.mjs +4 -4
  112. package/esm2022/list/action-list.mjs +3 -3
  113. package/esm2022/list/list-base.mjs +6 -6
  114. package/esm2022/list/list-item-sections.mjs +18 -18
  115. package/esm2022/list/list-module.mjs +4 -4
  116. package/esm2022/list/list-option.mjs +3 -3
  117. package/esm2022/list/list.mjs +6 -6
  118. package/esm2022/list/nav-list.mjs +3 -3
  119. package/esm2022/list/selection-list.mjs +3 -3
  120. package/esm2022/list/subheader.mjs +3 -3
  121. package/esm2022/menu/menu-content.mjs +3 -3
  122. package/esm2022/menu/menu-item.mjs +3 -3
  123. package/esm2022/menu/menu-trigger.mjs +3 -3
  124. package/esm2022/menu/menu.mjs +3 -3
  125. package/esm2022/menu/module.mjs +4 -4
  126. package/esm2022/paginator/module.mjs +4 -4
  127. package/esm2022/paginator/paginator-intl.mjs +3 -3
  128. package/esm2022/paginator/paginator.mjs +3 -3
  129. package/esm2022/progress-bar/module.mjs +4 -4
  130. package/esm2022/progress-bar/progress-bar.mjs +3 -3
  131. package/esm2022/progress-spinner/module.mjs +4 -4
  132. package/esm2022/progress-spinner/progress-spinner.mjs +3 -3
  133. package/esm2022/radio/module.mjs +4 -4
  134. package/esm2022/radio/radio.mjs +6 -6
  135. package/esm2022/select/module.mjs +4 -4
  136. package/esm2022/select/select.mjs +6 -6
  137. package/esm2022/sidenav/drawer.mjs +9 -9
  138. package/esm2022/sidenav/sidenav-module.mjs +4 -4
  139. package/esm2022/sidenav/sidenav.mjs +9 -9
  140. package/esm2022/slide-toggle/module.mjs +8 -8
  141. package/esm2022/slide-toggle/slide-toggle-required-validator.mjs +3 -3
  142. package/esm2022/slide-toggle/slide-toggle.mjs +3 -3
  143. package/esm2022/slider/module.mjs +4 -4
  144. package/esm2022/slider/slider-input.mjs +9 -8
  145. package/esm2022/slider/slider-thumb.mjs +3 -3
  146. package/esm2022/slider/slider.mjs +6 -6
  147. package/esm2022/snack-bar/module.mjs +4 -4
  148. package/esm2022/snack-bar/simple-snack-bar.mjs +3 -3
  149. package/esm2022/snack-bar/snack-bar-container.mjs +3 -3
  150. package/esm2022/snack-bar/snack-bar-content.mjs +9 -9
  151. package/esm2022/snack-bar/snack-bar.mjs +3 -3
  152. package/esm2022/sort/sort-header-intl.mjs +3 -3
  153. package/esm2022/sort/sort-header.mjs +3 -3
  154. package/esm2022/sort/sort-module.mjs +4 -4
  155. package/esm2022/sort/sort.mjs +3 -3
  156. package/esm2022/stepper/step-content.mjs +3 -3
  157. package/esm2022/stepper/step-header.mjs +3 -3
  158. package/esm2022/stepper/step-label.mjs +3 -3
  159. package/esm2022/stepper/stepper-button.mjs +6 -6
  160. package/esm2022/stepper/stepper-icon.mjs +3 -3
  161. package/esm2022/stepper/stepper-intl.mjs +3 -3
  162. package/esm2022/stepper/stepper-module.mjs +4 -4
  163. package/esm2022/stepper/stepper.mjs +6 -6
  164. package/esm2022/table/cell.mjs +21 -21
  165. package/esm2022/table/module.mjs +4 -4
  166. package/esm2022/table/row.mjs +21 -21
  167. package/esm2022/table/table.mjs +6 -6
  168. package/esm2022/table/text-column.mjs +3 -3
  169. package/esm2022/tabs/module.mjs +4 -4
  170. package/esm2022/tabs/paginated-tab-header.mjs +3 -3
  171. package/esm2022/tabs/tab-body.mjs +6 -6
  172. package/esm2022/tabs/tab-content.mjs +3 -3
  173. package/esm2022/tabs/tab-group.mjs +3 -3
  174. package/esm2022/tabs/tab-header.mjs +3 -3
  175. package/esm2022/tabs/tab-label-wrapper.mjs +3 -3
  176. package/esm2022/tabs/tab-label.mjs +3 -3
  177. package/esm2022/tabs/tab-nav-bar/tab-nav-bar.mjs +9 -9
  178. package/esm2022/tabs/tab.mjs +3 -3
  179. package/esm2022/toolbar/toolbar-module.mjs +4 -4
  180. package/esm2022/toolbar/toolbar.mjs +6 -6
  181. package/esm2022/tooltip/module.mjs +4 -4
  182. package/esm2022/tooltip/tooltip.mjs +7 -7
  183. package/esm2022/tree/node.mjs +9 -9
  184. package/esm2022/tree/outlet.mjs +3 -3
  185. package/esm2022/tree/padding.mjs +3 -3
  186. package/esm2022/tree/toggle.mjs +3 -3
  187. package/esm2022/tree/tree-module.mjs +4 -4
  188. package/esm2022/tree/tree.mjs +3 -3
  189. package/fesm2022/autocomplete.mjs +27 -18
  190. package/fesm2022/autocomplete.mjs.map +1 -1
  191. package/fesm2022/badge.mjs +7 -7
  192. package/fesm2022/bottom-sheet.mjs +10 -10
  193. package/fesm2022/button-toggle.mjs +10 -10
  194. package/fesm2022/button.mjs +34 -34
  195. package/fesm2022/card.mjs +46 -46
  196. package/fesm2022/checkbox.mjs +14 -14
  197. package/fesm2022/chips.mjs +40 -40
  198. package/fesm2022/core.mjs +57 -57
  199. package/fesm2022/core.mjs.map +1 -1
  200. package/fesm2022/datepicker.mjs +82 -82
  201. package/fesm2022/dialog.mjs +22 -22
  202. package/fesm2022/divider.mjs +7 -7
  203. package/fesm2022/expansion.mjs +25 -25
  204. package/fesm2022/form-field.mjs +34 -34
  205. package/fesm2022/grid-list.mjs +22 -22
  206. package/fesm2022/icon/testing.mjs +7 -7
  207. package/fesm2022/icon.mjs +10 -10
  208. package/fesm2022/input.mjs +7 -7
  209. package/fesm2022/list.mjs +49 -49
  210. package/fesm2022/menu.mjs +16 -16
  211. package/fesm2022/paginator.mjs +10 -10
  212. package/fesm2022/progress-bar.mjs +7 -7
  213. package/fesm2022/progress-spinner.mjs +7 -7
  214. package/fesm2022/radio.mjs +10 -10
  215. package/fesm2022/select.mjs +10 -10
  216. package/fesm2022/sidenav.mjs +22 -22
  217. package/fesm2022/slide-toggle.mjs +14 -14
  218. package/fesm2022/slider.mjs +20 -19
  219. package/fesm2022/slider.mjs.map +1 -1
  220. package/fesm2022/snack-bar.mjs +22 -22
  221. package/fesm2022/sort.mjs +13 -13
  222. package/fesm2022/stepper.mjs +31 -31
  223. package/fesm2022/table.mjs +55 -55
  224. package/fesm2022/tabs.mjs +40 -40
  225. package/fesm2022/toolbar.mjs +10 -10
  226. package/fesm2022/tooltip.mjs +11 -11
  227. package/fesm2022/tooltip.mjs.map +1 -1
  228. package/fesm2022/tree.mjs +25 -25
  229. package/grid-list/_grid-list-theme.scss +47 -14
  230. package/icon/_icon-theme.scss +55 -23
  231. package/menu/_menu-theme.scss +50 -18
  232. package/package.json +2 -2
  233. package/paginator/_paginator-theme.scss +62 -29
  234. package/prebuilt-themes/deeppurple-amber.css +1 -1
  235. package/prebuilt-themes/indigo-pink.css +1 -1
  236. package/prebuilt-themes/pink-bluegrey.css +1 -1
  237. package/prebuilt-themes/purple-green.css +1 -1
  238. package/schematics/ng-add/index.js +1 -1
  239. package/schematics/ng-add/index.mjs +1 -1
  240. package/schematics/ng-generate/mdc-migration/index_bundled.js +427 -201
  241. package/schematics/ng-generate/mdc-migration/index_bundled.js.map +4 -4
  242. package/schematics/ng-update/index_bundled.js +41 -37
  243. package/schematics/ng-update/index_bundled.js.map +2 -2
  244. package/select/_select-theme.scss +71 -38
  245. package/sidenav/_sidenav-theme.scss +49 -16
@@ -1,41 +1,72 @@
1
+ @use 'sass:map';
1
2
  @use '../tokens/m2/mat/optgroup' as tokens-mat-optgroup;
2
3
  @use '../tokens/token-utils';
3
4
  @use '../style/sass-utils';
4
-
5
5
  @use '../theming/theming';
6
6
  @use '../theming/inspection';
7
7
  @use '../typography/typography';
8
8
 
9
- @mixin base($theme) {}
9
+ @mixin base($theme) {
10
+ @if inspection.get-theme-version($theme) == 1 {
11
+ @include _theme-from-tokens(inspection.get-theme-tokens($theme, base));
12
+ }
13
+ @else {}
14
+ }
10
15
 
11
16
  @mixin color($theme) {
12
- @include sass-utils.current-selector-or-root() {
13
- @include token-utils.create-token-values(tokens-mat-optgroup.$prefix,
14
- tokens-mat-optgroup.get-color-tokens($theme));
17
+ @if inspection.get-theme-version($theme) == 1 {
18
+ @include _theme-from-tokens(inspection.get-theme-tokens($theme, color));
19
+ }
20
+ @else {
21
+ @include sass-utils.current-selector-or-root() {
22
+ @include token-utils.create-token-values(tokens-mat-optgroup.$prefix,
23
+ tokens-mat-optgroup.get-color-tokens($theme));
24
+ }
15
25
  }
16
26
  }
17
27
 
18
28
  @mixin typography($theme) {
19
- @include sass-utils.current-selector-or-root() {
20
- @include token-utils.create-token-values(tokens-mat-optgroup.$prefix,
21
- tokens-mat-optgroup.get-typography-tokens($theme));
29
+ @if inspection.get-theme-version($theme) == 1 {
30
+ @include _theme-from-tokens(inspection.get-theme-tokens($theme, typography));
31
+ }
32
+ @else {
33
+ @include sass-utils.current-selector-or-root() {
34
+ @include token-utils.create-token-values(tokens-mat-optgroup.$prefix,
35
+ tokens-mat-optgroup.get-typography-tokens($theme));
36
+ }
22
37
  }
23
38
  }
24
39
 
25
40
  @mixin density($theme) {
41
+ @if inspection.get-theme-version($theme) == 1 {
42
+ @include _theme-from-tokens(inspection.get-theme-tokens($theme, density));
43
+ }
44
+ @else {}
26
45
  }
27
46
 
28
47
  @mixin theme($theme) {
29
48
  @include theming.private-check-duplicate-theme-styles($theme, 'mat-optgroup') {
30
- @include base($theme);
31
- @if inspection.theme-has($theme, color) {
32
- @include color($theme);
33
- }
34
- @if inspection.theme-has($theme, density) {
35
- @include density($theme);
49
+ @if inspection.get-theme-version($theme) == 1 {
50
+ @include _theme-from-tokens(inspection.get-theme-tokens($theme));
36
51
  }
37
- @if inspection.theme-has($theme, typography) {
38
- @include typography($theme);
52
+ @else {
53
+ @include base($theme);
54
+ @if inspection.theme-has($theme, color) {
55
+ @include color($theme);
56
+ }
57
+ @if inspection.theme-has($theme, density) {
58
+ @include density($theme);
59
+ }
60
+ @if inspection.theme-has($theme, typography) {
61
+ @include typography($theme);
62
+ }
39
63
  }
40
64
  }
41
65
  }
66
+
67
+ @mixin _theme-from-tokens($tokens) {
68
+ @if ($tokens != ()) {
69
+ @include token-utils.create-token-values(
70
+ tokens-mat-optgroup.$prefix, map.get($tokens, tokens-mat-optgroup.$prefix));
71
+ }
72
+ }
@@ -1,51 +1,82 @@
1
+ @use 'sass:map';
1
2
  @use '../tokens/m2/mat/option' as tokens-mat-option;
2
3
  @use '../tokens/token-utils';
3
4
  @use '../style/sass-utils';
4
-
5
5
  @use '../theming/theming';
6
6
  @use '../theming/inspection';
7
7
  @use '../typography/typography';
8
8
 
9
- @mixin base($theme) {}
9
+ @mixin base($theme) {
10
+ @if inspection.get-theme-version($theme) == 1 {
11
+ @include _theme-from-tokens(inspection.get-theme-tokens($theme, base));
12
+ }
13
+ @else {}
14
+ }
10
15
 
11
16
  @mixin color($theme) {
12
- @include sass-utils.current-selector-or-root() {
13
- @include token-utils.create-token-values(tokens-mat-option.$prefix,
14
- tokens-mat-option.get-color-tokens($theme));
17
+ @if inspection.get-theme-version($theme) == 1 {
18
+ @include _theme-from-tokens(inspection.get-theme-tokens($theme, color));
15
19
  }
20
+ @else {
21
+ @include sass-utils.current-selector-or-root() {
22
+ @include token-utils.create-token-values(tokens-mat-option.$prefix,
23
+ tokens-mat-option.get-color-tokens($theme));
24
+ }
16
25
 
17
- .mat-accent {
18
- @include token-utils.create-token-values(tokens-mat-option.$prefix,
19
- tokens-mat-option.get-color-tokens($theme, accent));
20
- }
26
+ .mat-accent {
27
+ @include token-utils.create-token-values(tokens-mat-option.$prefix,
28
+ tokens-mat-option.get-color-tokens($theme, accent));
29
+ }
21
30
 
22
- .mat-warn {
23
- @include token-utils.create-token-values(tokens-mat-option.$prefix,
24
- tokens-mat-option.get-color-tokens($theme, warn));
31
+ .mat-warn {
32
+ @include token-utils.create-token-values(tokens-mat-option.$prefix,
33
+ tokens-mat-option.get-color-tokens($theme, warn));
34
+ }
25
35
  }
26
36
  }
27
37
 
28
38
  @mixin typography($theme) {
29
- @include sass-utils.current-selector-or-root() {
30
- @include token-utils.create-token-values(tokens-mat-option.$prefix,
31
- tokens-mat-option.get-typography-tokens($theme));
39
+ @if inspection.get-theme-version($theme) == 1 {
40
+ @include _theme-from-tokens(inspection.get-theme-tokens($theme, typography));
41
+ }
42
+ @else {
43
+ @include sass-utils.current-selector-or-root() {
44
+ @include token-utils.create-token-values(tokens-mat-option.$prefix,
45
+ tokens-mat-option.get-typography-tokens($theme));
46
+ }
32
47
  }
33
48
  }
34
49
 
35
50
  @mixin density($theme) {
51
+ @if inspection.get-theme-version($theme) == 1 {
52
+ @include _theme-from-tokens(inspection.get-theme-tokens($theme, density));
53
+ }
54
+ @else {}
36
55
  }
37
56
 
38
57
  @mixin theme($theme) {
39
58
  @include theming.private-check-duplicate-theme-styles($theme, 'mat-option') {
40
- @include base($theme);
41
- @if inspection.theme-has($theme, color) {
42
- @include color($theme);
43
- }
44
- @if inspection.theme-has($theme, density) {
45
- @include density($theme);
59
+ @if inspection.get-theme-version($theme) == 1 {
60
+ @include _theme-from-tokens(inspection.get-theme-tokens($theme));
46
61
  }
47
- @if inspection.theme-has($theme, typography) {
48
- @include typography($theme);
62
+ @else {
63
+ @include base($theme);
64
+ @if inspection.theme-has($theme, color) {
65
+ @include color($theme);
66
+ }
67
+ @if inspection.theme-has($theme, density) {
68
+ @include density($theme);
69
+ }
70
+ @if inspection.theme-has($theme, typography) {
71
+ @include typography($theme);
72
+ }
49
73
  }
50
74
  }
51
75
  }
76
+
77
+ @mixin _theme-from-tokens($tokens) {
78
+ @if ($tokens != ()) {
79
+ @include token-utils.create-token-values(
80
+ tokens-mat-option.$prefix, map.get($tokens, tokens-mat-option.$prefix));
81
+ }
82
+ }
@@ -1,53 +1,24 @@
1
1
  @use '../../theming/theming';
2
2
  @use '../../theming/inspection';
3
-
4
- @mixin _psuedo-checkbox-styles-with-color($text-color, $background) {
5
- .mat-pseudo-checkbox-checked,
6
- .mat-pseudo-checkbox-indeterminate {
7
- &.mat-pseudo-checkbox-minimal::after {
8
- color: $text-color;
9
- }
10
-
11
- // Full (checkbox) appearance inverts colors of text and background.
12
- &.mat-pseudo-checkbox-full {
13
- &::after {
14
- color: $background;
15
- }
16
-
17
- background: $text-color;
18
- }
3
+ @use '../../style/sass-utils';
4
+ @use '../../tokens/token-utils';
5
+ @use '../../tokens/m2/mat/full-pseudo-checkbox' as tokens-mat-full-pseudo-checkbox;
6
+ @use '../../tokens/m2/mat/minimal-pseudo-checkbox' as tokens-mat-minimal-pseudo-checkbox;
7
+
8
+ @mixin _palette-styles($theme, $palette-name) {
9
+ @include sass-utils.current-selector-or-root() {
10
+ @include token-utils.create-token-values(tokens-mat-full-pseudo-checkbox.$prefix,
11
+ tokens-mat-full-pseudo-checkbox.get-color-tokens($theme, $palette-name));
12
+ @include token-utils.create-token-values(tokens-mat-minimal-pseudo-checkbox.$prefix,
13
+ tokens-mat-minimal-pseudo-checkbox.get-color-tokens($theme, $palette-name));
19
14
  }
20
15
  }
21
16
 
22
- @mixin base($theme) {
23
- // TODO(mmalerba): Move pseudo checkbox base tokens here
24
- }
17
+ @mixin base($theme) {}
25
18
 
26
19
  @mixin color($theme) {
27
- $is-dark-theme: inspection.get-theme-type($theme) == dark;
28
- $primary: inspection.get-theme-color($theme, primary);
29
- $accent: inspection.get-theme-color($theme, accent);
30
- $warn: inspection.get-theme-color($theme, warn);
31
- $background: inspection.get-theme-color($theme, background, background);
32
- $secondary-text: inspection.get-theme-color($theme, foreground, secondary-text);
33
-
34
- // NOTE(traviskaufman): While the spec calls for translucent blacks/whites for disabled colors,
35
- // this does not work well with elements layered on top of one another. To get around this we
36
- // blend the colors together based on the base color and the theme background.
37
- $white-30pct-opacity-on-dark: #686868;
38
- $black-26pct-opacity-on-light: #b0b0b0;
39
- $disabled-color: if($is-dark-theme, $white-30pct-opacity-on-dark, $black-26pct-opacity-on-light);
40
- $colored-box-selector: '.mat-pseudo-checkbox-checked, .mat-pseudo-checkbox-indeterminate';
41
-
42
- .mat-pseudo-checkbox-full {
43
- color: $secondary-text;
44
- &.mat-pseudo-checkbox-disabled {
45
- color: $disabled-color;
46
- }
47
- }
48
-
49
20
  .mat-primary {
50
- @include _psuedo-checkbox-styles-with-color($primary, $background);
21
+ @include _palette-styles($theme, primary);
51
22
  }
52
23
 
53
24
  // Default to the accent color. Note that the pseudo checkboxes are meant to inherit the
@@ -55,30 +26,19 @@
55
26
  // don't attach to the `mat-*` classes. Also note that this needs to be below `.mat-primary`
56
27
  // in order to allow for the color to be overwritten if the checkbox is inside a parent that
57
28
  // has `mat-accent` and is placed inside another parent that has `mat-primary`.
58
- @include _psuedo-checkbox-styles-with-color($accent, $background);
29
+ @include _palette-styles($theme, accent);
59
30
  .mat-accent {
60
- @include _psuedo-checkbox-styles-with-color($accent, $background);
31
+ @include _palette-styles($theme, accent);
61
32
  }
62
33
 
63
34
  .mat-warn {
64
- @include _psuedo-checkbox-styles-with-color($warn, $background);
65
- }
66
-
67
- .mat-pseudo-checkbox-disabled.mat-pseudo-checkbox-checked,
68
- .mat-pseudo-checkbox-disabled.mat-pseudo-checkbox-indeterminate {
69
- &.mat-pseudo-checkbox-minimal::after {
70
- color: $disabled-color;
71
- }
72
-
73
- &.mat-pseudo-checkbox-full {
74
- background: $disabled-color;
75
- }
35
+ @include _palette-styles($theme, warn);
76
36
  }
77
37
  }
78
38
 
79
39
  @mixin typography($theme) {}
80
40
 
81
- @mixin _density($theme) {}
41
+ @mixin density($theme) {}
82
42
 
83
43
  @mixin theme($theme) {
84
44
  @include theming.private-check-duplicate-theme-styles($theme, 'mat-pseudo-checkbox') {
@@ -87,7 +47,7 @@
87
47
  @include color($theme);
88
48
  }
89
49
  @if inspection.theme-has($theme, density) {
90
- @include _density($theme);
50
+ @include density($theme);
91
51
  }
92
52
  @if inspection.theme-has($theme, typography) {
93
53
  @include typography($theme);
@@ -1,14 +1,28 @@
1
1
  @use 'sass:map';
2
2
  @use 'sass:meta';
3
3
  @use '../../style/sass-utils';
4
+ @use './mat/autocomplete' as tokens-mat-autocomplete;
5
+ @use './mat/badge' as tokens-mat-badge;
6
+ @use './mat/bottom-sheet' as tokens-mat-bottom-sheet;
4
7
  @use './mat/card' as tokens-mat-card;
8
+ @use './mat/datepicker' as tokens-mat-datepicker;
9
+ @use './mat/divider' as tokens-mat-divider;
5
10
  @use './mat/form-field' as tokens-mat-form-field;
11
+ @use './mat/grid-list' as tokens-mat-grid-list;
12
+ @use './mat/icon' as tokens-mat-icon;
13
+ @use './mat/menu' as tokens-mat-menu;
14
+ @use './mat/option' as tokens-mat-option;
15
+ @use './mat/optgroup' as tokens-mat-optgroup;
16
+ @use './mat/paginator' as tokens-mat-paginator;
6
17
  @use './mat/radio' as tokens-mat-radio;
7
18
  @use './mat/ripple' as tokens-mat-ripple;
19
+ @use './mat/select' as tokens-mat-select;
20
+ @use './mat/sidenav' as tokens-mat-sidenav;
8
21
  @use './mat/slide-toggle' as tokens-mat-slide-toggle;
9
22
  @use './mat/slider' as tokens-mat-slider;
10
23
  @use './mat/snack-bar' as tokens-mat-snack-bar;
11
24
  @use './mat/sort' as tokens-mat-sort;
25
+ @use './mat/standard-button-toggle' as tokens-mat-button-toggle;
12
26
  @use './mat/stepper' as tokens-mat-stepper;
13
27
  @use './mat/tab-header' as tokens-mat-tab-header;
14
28
  @use './mat/tab-header-with-background' as tokens-mat-tab-header-with-background;
@@ -16,6 +30,7 @@
16
30
  @use './mat/toolbar' as tokens-mat-toolbar;
17
31
  @use './mat/tree' as tokens-mat-tree;
18
32
  @use './mdc/checkbox' as tokens-mdc-checkbox;
33
+ @use './mdc/chip' as tokens-mdc-chip;
19
34
  @use './mdc/circular-progress' as tokens-mdc-circular-progress;
20
35
  @use './mdc/dialog' as tokens-mdc-dialog;
21
36
  @use './mdc/elevated-card' as tokens-mdc-elevated-card;
@@ -76,10 +91,24 @@
76
91
  /// )
77
92
  @function m2-tokens-from-theme($theme) {
78
93
  @return sass-utils.deep-merge-all(
94
+ _get-tokens-for-module($theme, tokens-mat-autocomplete),
95
+ _get-tokens-for-module($theme, tokens-mat-badge),
96
+ _get-tokens-for-module($theme, tokens-mat-bottom-sheet),
97
+ _get-tokens-for-module($theme, tokens-mat-button-toggle),
79
98
  _get-tokens-for-module($theme, tokens-mat-card),
99
+ _get-tokens-for-module($theme, tokens-mat-datepicker),
100
+ _get-tokens-for-module($theme, tokens-mat-divider),
80
101
  _get-tokens-for-module($theme, tokens-mat-form-field),
102
+ _get-tokens-for-module($theme, tokens-mat-grid-list),
103
+ _get-tokens-for-module($theme, tokens-mat-icon),
104
+ _get-tokens-for-module($theme, tokens-mat-menu),
105
+ _get-tokens-for-module($theme, tokens-mat-optgroup),
106
+ _get-tokens-for-module($theme, tokens-mat-option),
107
+ _get-tokens-for-module($theme, tokens-mat-paginator),
81
108
  _get-tokens-for-module($theme, tokens-mat-radio),
82
109
  _get-tokens-for-module($theme, tokens-mat-ripple),
110
+ _get-tokens-for-module($theme, tokens-mat-select),
111
+ _get-tokens-for-module($theme, tokens-mat-sidenav),
83
112
  _get-tokens-for-module($theme, tokens-mat-slide-toggle),
84
113
  _get-tokens-for-module($theme, tokens-mat-slider),
85
114
  _get-tokens-for-module($theme, tokens-mat-snack-bar),
@@ -91,6 +120,7 @@
91
120
  _get-tokens-for-module($theme, tokens-mat-toolbar),
92
121
  _get-tokens-for-module($theme, tokens-mat-tree),
93
122
  _get-tokens-for-module($theme, tokens-mdc-checkbox),
123
+ _get-tokens-for-module($theme, tokens-mdc-chip),
94
124
  _get-tokens-for-module($theme, tokens-mdc-circular-progress),
95
125
  _get-tokens-for-module($theme, tokens-mdc-dialog),
96
126
  _get-tokens-for-module($theme, tokens-mdc-elevated-card),
@@ -0,0 +1,49 @@
1
+ @use '../../token-utils';
2
+ @use '../../../theming/inspection';
3
+ @use '../../../style/sass-utils';
4
+
5
+ // The prefix used to generate the fully qualified name for tokens in this file.
6
+ $prefix: (mat, full-pseudo-checkbox);
7
+
8
+ // Tokens that can't be configured through Angular Material's current theming API,
9
+ // but may be in a future version of the theming API.
10
+ @function get-unthemable-tokens() {
11
+ @return ();
12
+ }
13
+
14
+ // Tokens that can be configured through Angular Material's color theming API.
15
+ @function get-color-tokens($theme, $palette-name: accent) {
16
+ $is-dark: inspection.get-theme-type($theme) == dark;
17
+ $disabled-color: if($is-dark, #686868, #b0b0b0);
18
+ $checkmark-color: inspection.get-theme-color($theme, background, background);
19
+
20
+ @return (
21
+ selected-icon-color: inspection.get-theme-color($theme, $palette-name),
22
+ selected-checkmark-color: $checkmark-color,
23
+ unselected-icon-color: inspection.get-theme-color($theme, foreground, secondary-text),
24
+ disabled-selected-checkmark-color: $checkmark-color,
25
+ disabled-unselected-icon-color: $disabled-color,
26
+ disabled-selected-icon-color: $disabled-color,
27
+ );
28
+ }
29
+
30
+ // Tokens that can be configured through Angular Material's typography theming API.
31
+ @function get-typography-tokens($theme) {
32
+ @return ();
33
+ }
34
+
35
+ // Tokens that can be configured through Angular Material's density theming API.
36
+ @function get-density-tokens($theme) {
37
+ @return ();
38
+ }
39
+
40
+ // Combines the tokens generated by the above functions into a single map with placeholder values.
41
+ // This is used to create token slots.
42
+ @function get-token-slots() {
43
+ @return sass-utils.deep-merge-all(
44
+ get-unthemable-tokens(),
45
+ get-color-tokens(token-utils.$placeholder-color-config),
46
+ get-typography-tokens(token-utils.$placeholder-typography-config),
47
+ get-density-tokens(token-utils.$placeholder-density-config)
48
+ );
49
+ }
@@ -0,0 +1,43 @@
1
+ @use '../../token-utils';
2
+ @use '../../../theming/inspection';
3
+ @use '../../../style/sass-utils';
4
+
5
+ // The prefix used to generate the fully qualified name for tokens in this file.
6
+ $prefix: (mat, minimal-pseudo-checkbox);
7
+
8
+ // Tokens that can't be configured through Angular Material's current theming API,
9
+ // but may be in a future version of the theming API.
10
+ @function get-unthemable-tokens() {
11
+ @return ();
12
+ }
13
+
14
+ // Tokens that can be configured through Angular Material's color theming API.
15
+ @function get-color-tokens($theme, $palette-name: accent) {
16
+ $is-dark: inspection.get-theme-type($theme) == dark;
17
+
18
+ @return (
19
+ selected-checkmark-color: inspection.get-theme-color($theme, $palette-name),
20
+ disabled-selected-checkmark-color: if($is-dark, #686868, #b0b0b0),
21
+ );
22
+ }
23
+
24
+ // Tokens that can be configured through Angular Material's typography theming API.
25
+ @function get-typography-tokens($theme) {
26
+ @return ();
27
+ }
28
+
29
+ // Tokens that can be configured through Angular Material's density theming API.
30
+ @function get-density-tokens($theme) {
31
+ @return ();
32
+ }
33
+
34
+ // Combines the tokens generated by the above functions into a single map with placeholder values.
35
+ // This is used to create token slots.
36
+ @function get-token-slots() {
37
+ @return sass-utils.deep-merge-all(
38
+ get-unthemable-tokens(),
39
+ get-color-tokens(token-utils.$placeholder-color-config),
40
+ get-typography-tokens(token-utils.$placeholder-typography-config),
41
+ get-density-tokens(token-utils.$placeholder-density-config)
42
+ );
43
+ }
@@ -27,43 +27,58 @@ $calendar-weekday-table-font-size: 11px !default;
27
27
  map.merge($calendar-tokens, $range-tokens));
28
28
  }
29
29
 
30
- @mixin base($theme) {}
30
+ @mixin base($theme) {
31
+ @if inspection.get-theme-version($theme) == 1 {
32
+ @include _theme-from-tokens(inspection.get-theme-tokens($theme, base));
33
+ }
34
+ @else {}
35
+ }
31
36
 
32
37
  @mixin color($theme) {
33
- @include sass-utils.current-selector-or-root() {
34
- @include token-utils.create-token-values(tokens-mat-datepicker.$prefix,
35
- tokens-mat-datepicker.get-color-tokens($theme));
38
+ @if inspection.get-theme-version($theme) == 1 {
39
+ @include _theme-from-tokens(inspection.get-theme-tokens($theme, color));
36
40
  }
37
-
38
- .mat-datepicker-content {
39
- &.mat-accent {
40
- @include _calendar-color($theme, accent);
41
+ @else {
42
+ @include sass-utils.current-selector-or-root() {
43
+ @include token-utils.create-token-values(tokens-mat-datepicker.$prefix,
44
+ tokens-mat-datepicker.get-color-tokens($theme));
41
45
  }
42
46
 
43
- &.mat-warn {
44
- @include _calendar-color($theme, warn);
45
- }
46
- }
47
+ .mat-datepicker-content {
48
+ &.mat-accent {
49
+ @include _calendar-color($theme, accent);
50
+ }
47
51
 
48
- .mat-datepicker-toggle-active {
49
- &.mat-accent {
50
- $accent-tokens:
51
- tokens-mat-datepicker.private-get-toggle-color-palette-color-tokens($theme, accent);
52
- @include token-utils.create-token-values(tokens-mat-datepicker.$prefix, $accent-tokens);
52
+ &.mat-warn {
53
+ @include _calendar-color($theme, warn);
54
+ }
53
55
  }
54
56
 
55
- &.mat-warn {
56
- $warn-tokens:
57
- tokens-mat-datepicker.private-get-toggle-color-palette-color-tokens($theme, warn);
58
- @include token-utils.create-token-values(tokens-mat-datepicker.$prefix, $warn-tokens);
57
+ .mat-datepicker-toggle-active {
58
+ &.mat-accent {
59
+ $accent-tokens:
60
+ tokens-mat-datepicker.private-get-toggle-color-palette-color-tokens($theme, accent);
61
+ @include token-utils.create-token-values(tokens-mat-datepicker.$prefix, $accent-tokens);
62
+ }
63
+
64
+ &.mat-warn {
65
+ $warn-tokens:
66
+ tokens-mat-datepicker.private-get-toggle-color-palette-color-tokens($theme, warn);
67
+ @include token-utils.create-token-values(tokens-mat-datepicker.$prefix, $warn-tokens);
68
+ }
59
69
  }
60
70
  }
61
71
  }
62
72
 
63
73
  @mixin typography($theme) {
64
- @include sass-utils.current-selector-or-root() {
65
- @include token-utils.create-token-values(tokens-mat-datepicker.$prefix,
66
- tokens-mat-datepicker.get-typography-tokens($theme));
74
+ @if inspection.get-theme-version($theme) == 1 {
75
+ @include _theme-from-tokens(inspection.get-theme-tokens($theme, typography));
76
+ }
77
+ @else {
78
+ @include sass-utils.current-selector-or-root() {
79
+ @include token-utils.create-token-values(tokens-mat-datepicker.$prefix,
80
+ tokens-mat-datepicker.get-typography-tokens($theme));
81
+ }
67
82
  }
68
83
  }
69
84
 
@@ -86,27 +101,44 @@ $calendar-weekday-table-font-size: 11px !default;
86
101
  }
87
102
 
88
103
  @mixin density($theme) {
89
- // TODO(crisbeto): move this into the structural styles
90
- // once the icon button density is switched to tokens.
104
+ @if inspection.get-theme-version($theme) == 1 {
105
+ @include _theme-from-tokens(inspection.get-theme-tokens($theme, density));
106
+ }
107
+ @else {
108
+ // TODO(crisbeto): move this into the structural styles
109
+ // once the icon button density is switched to tokens.
91
110
 
92
- // Regardless of the user-passed density, we want the calendar
93
- // previous/next buttons to remain at density -2
94
- .mat-calendar-controls {
95
- @include icon-button-theme.density(-2);
111
+ // Regardless of the user-passed density, we want the calendar
112
+ // previous/next buttons to remain at density -2
113
+ .mat-calendar-controls {
114
+ @include icon-button-theme.density(-2);
115
+ }
96
116
  }
97
117
  }
98
118
 
99
119
  @mixin theme($theme) {
100
120
  @include theming.private-check-duplicate-theme-styles($theme, 'mat-datepicker') {
101
- @include base($theme);
102
- @if inspection.theme-has($theme, color) {
103
- @include color($theme);
121
+ @if inspection.get-theme-version($theme) == 1 {
122
+ @include _theme-from-tokens(inspection.get-theme-tokens($theme));
104
123
  }
105
- @if inspection.theme-has($theme, density) {
106
- @include density($theme);
107
- }
108
- @if inspection.theme-has($theme, typography) {
109
- @include typography($theme);
124
+ @else {
125
+ @include base($theme);
126
+ @if inspection.theme-has($theme, color) {
127
+ @include color($theme);
128
+ }
129
+ @if inspection.theme-has($theme, density) {
130
+ @include density($theme);
131
+ }
132
+ @if inspection.theme-has($theme, typography) {
133
+ @include typography($theme);
134
+ }
110
135
  }
111
136
  }
112
137
  }
138
+
139
+ @mixin _theme-from-tokens($tokens) {
140
+ @if ($tokens != ()) {
141
+ @include token-utils.create-token-values(
142
+ tokens-mat-datepicker.$prefix, map.get($tokens, tokens-mat-datepicker.$prefix));
143
+ }
144
+ }