@depup/angular__material 21.2.2-depup.19

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 (578) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +31 -0
  3. package/_index.scss +145 -0
  4. package/autocomplete/_autocomplete-theme.scss +76 -0
  5. package/autocomplete/_m2-autocomplete.scss +19 -0
  6. package/autocomplete/_m3-autocomplete.scss +26 -0
  7. package/badge/_badge-theme.scss +106 -0
  8. package/badge/_m2-badge.scss +73 -0
  9. package/badge/_m3-badge.scss +52 -0
  10. package/bottom-sheet/_bottom-sheet-theme.scss +76 -0
  11. package/bottom-sheet/_m2-bottom-sheet.scss +24 -0
  12. package/bottom-sheet/_m3-bottom-sheet.scss +25 -0
  13. package/button/_button-theme.scss +113 -0
  14. package/button/_fab-theme.scss +111 -0
  15. package/button/_icon-button-theme.scss +136 -0
  16. package/button/_m2-button.scss +194 -0
  17. package/button/_m2-fab.scss +101 -0
  18. package/button/_m2-icon-button.scss +59 -0
  19. package/button/_m3-button.scss +170 -0
  20. package/button/_m3-fab.scss +92 -0
  21. package/button/_m3-icon-button.scss +54 -0
  22. package/button-toggle/_button-toggle-theme.scss +93 -0
  23. package/button-toggle/_m2-button-toggle.scss +68 -0
  24. package/button-toggle/_m3-button-toggle.scss +72 -0
  25. package/card/_card-theme.scss +76 -0
  26. package/card/_m2-card.scss +39 -0
  27. package/card/_m3-card.scss +44 -0
  28. package/changes.json +10 -0
  29. package/checkbox/_checkbox-theme.scss +105 -0
  30. package/checkbox/_m2-checkbox.scss +78 -0
  31. package/checkbox/_m3-checkbox.scss +68 -0
  32. package/chips/_chips-theme.scss +115 -0
  33. package/chips/_m2-chip.scss +85 -0
  34. package/chips/_m3-chip.scss +81 -0
  35. package/core/_core-theme.scss +125 -0
  36. package/core/_core.scss +50 -0
  37. package/core/_m2-app.scss +24 -0
  38. package/core/_m3-app.scss +44 -0
  39. package/core/color/_all-color.scss +17 -0
  40. package/core/density/private/_all-density.scss +78 -0
  41. package/core/focus-indicators/_private.scss +126 -0
  42. package/core/m2/_index.scss +52 -0
  43. package/core/m2/_palette.scss +748 -0
  44. package/core/m2/_theming.scss +340 -0
  45. package/core/m2/_typography-utils.scss +81 -0
  46. package/core/m2/_typography.scss +388 -0
  47. package/core/option/_m2-optgroup.scss +21 -0
  48. package/core/option/_m2-option.scss +38 -0
  49. package/core/option/_m3-optgroup.scss +25 -0
  50. package/core/option/_m3-option.scss +37 -0
  51. package/core/option/_optgroup-theme.scss +76 -0
  52. package/core/option/_option-theme.scss +103 -0
  53. package/core/ripple/_m2-ripple.scss +17 -0
  54. package/core/ripple/_m3-ripple.scss +17 -0
  55. package/core/ripple/_ripple-theme.scss +75 -0
  56. package/core/ripple/_ripple.scss +56 -0
  57. package/core/selection/pseudo-checkbox/_m2-pseudo-checkbox.scss +32 -0
  58. package/core/selection/pseudo-checkbox/_m3-pseudo-checkbox.scss +34 -0
  59. package/core/selection/pseudo-checkbox/_pseudo-checkbox-common.scss +86 -0
  60. package/core/selection/pseudo-checkbox/_pseudo-checkbox-theme.scss +110 -0
  61. package/core/style/_checkbox-common.scss +11 -0
  62. package/core/style/_elevation.scss +208 -0
  63. package/core/style/_layout-common.scss +8 -0
  64. package/core/style/_private.scss +27 -0
  65. package/core/style/_sass-utils.scss +57 -0
  66. package/core/style/_validation.scss +52 -0
  67. package/core/style/_variables.scss +44 -0
  68. package/core/style/_vendor-prefixes.scss +56 -0
  69. package/core/theming/_all-theme.scss +168 -0
  70. package/core/theming/_color-api-backwards-compatibility.scss +159 -0
  71. package/core/theming/_config-validation.scss +174 -0
  72. package/core/theming/_definition.scss +141 -0
  73. package/core/theming/_inspection.scss +289 -0
  74. package/core/theming/_m2-inspection.scss +243 -0
  75. package/core/theming/_palettes.scss +1036 -0
  76. package/core/theming/_theming.scss +193 -0
  77. package/core/theming/_validation.scss +5 -0
  78. package/core/tokens/_classes.scss +398 -0
  79. package/core/tokens/_m2-utils.scss +25 -0
  80. package/core/tokens/_m3-tokens.scss +126 -0
  81. package/core/tokens/_m3-utils.scss +36 -0
  82. package/core/tokens/_system.scss +398 -0
  83. package/core/tokens/_token-utils.scss +119 -0
  84. package/core/tokens/m2/_index.scss +6 -0
  85. package/core/tokens/m2/_md-sys-color-internal.scss +11 -0
  86. package/core/tokens/m2/_md-sys-color.scss +123 -0
  87. package/core/tokens/m2/_md-sys-elevation.scss +10 -0
  88. package/core/tokens/m2/_md-sys-motion.scss +30 -0
  89. package/core/tokens/m2/_md-sys-shape.scss +16 -0
  90. package/core/tokens/m2/_md-sys-state.scss +8 -0
  91. package/core/tokens/m2/_md-sys-typescale.scss +68 -0
  92. package/core/tokens/m3/_index.scss +7 -0
  93. package/core/tokens/m3/_md-sys-color-internal.scss +11 -0
  94. package/core/tokens/m3/_md-sys-color.scss +118 -0
  95. package/core/tokens/m3/_md-sys-elevation.scss +15 -0
  96. package/core/tokens/m3/_md-sys-motion.scss +35 -0
  97. package/core/tokens/m3/_md-sys-shape.scss +21 -0
  98. package/core/tokens/m3/_md-sys-state.scss +13 -0
  99. package/core/tokens/m3/_md-sys-typescale-internal.scss +5 -0
  100. package/core/tokens/m3/_md-sys-typescale.scss +114 -0
  101. package/core/tokens/m3/_theme.scss +35 -0
  102. package/core/typography/_all-typography.scss +104 -0
  103. package/core/typography/_typography-utils.scss +31 -0
  104. package/core/typography/_typography.scss +269 -0
  105. package/core/typography/_versioning.scss +90 -0
  106. package/datepicker/_datepicker-theme.scss +132 -0
  107. package/datepicker/_m2-datepicker.scss +81 -0
  108. package/datepicker/_m3-datepicker.scss +74 -0
  109. package/dialog/_dialog-legacy-padding.scss +31 -0
  110. package/dialog/_dialog-theme.scss +76 -0
  111. package/dialog/_m2-dialog.scss +43 -0
  112. package/dialog/_m3-dialog.scss +47 -0
  113. package/divider/_divider-theme.scss +75 -0
  114. package/divider/_m2-divider.scss +17 -0
  115. package/divider/_m3-divider.scss +19 -0
  116. package/expansion/_expansion-theme.scss +76 -0
  117. package/expansion/_m2-expansion.scss +64 -0
  118. package/expansion/_m3-expansion.scss +61 -0
  119. package/fesm2022/_animation-chunk.mjs +22 -0
  120. package/fesm2022/_animation-chunk.mjs.map +1 -0
  121. package/fesm2022/_date-formats-chunk.mjs +86 -0
  122. package/fesm2022/_date-formats-chunk.mjs.map +1 -0
  123. package/fesm2022/_date-range-input-harness-chunk.mjs +322 -0
  124. package/fesm2022/_date-range-input-harness-chunk.mjs.map +1 -0
  125. package/fesm2022/_error-options-chunk.mjs +66 -0
  126. package/fesm2022/_error-options-chunk.mjs.map +1 -0
  127. package/fesm2022/_error-state-chunk.mjs +30 -0
  128. package/fesm2022/_error-state-chunk.mjs.map +1 -0
  129. package/fesm2022/_form-field-chunk.mjs +1351 -0
  130. package/fesm2022/_form-field-chunk.mjs.map +1 -0
  131. package/fesm2022/_icon-button-chunk.mjs +268 -0
  132. package/fesm2022/_icon-button-chunk.mjs.map +1 -0
  133. package/fesm2022/_icon-registry-chunk.mjs +368 -0
  134. package/fesm2022/_icon-registry-chunk.mjs.map +1 -0
  135. package/fesm2022/_input-harness-chunk.mjs +67 -0
  136. package/fesm2022/_input-harness-chunk.mjs.map +1 -0
  137. package/fesm2022/_input-value-accessor-chunk.mjs +6 -0
  138. package/fesm2022/_input-value-accessor-chunk.mjs.map +1 -0
  139. package/fesm2022/_internal-form-field-chunk.mjs +67 -0
  140. package/fesm2022/_internal-form-field-chunk.mjs.map +1 -0
  141. package/fesm2022/_line-chunk.mjs +99 -0
  142. package/fesm2022/_line-chunk.mjs.map +1 -0
  143. package/fesm2022/_option-chunk.mjs +385 -0
  144. package/fesm2022/_option-chunk.mjs.map +1 -0
  145. package/fesm2022/_option-harness-chunk.mjs +30 -0
  146. package/fesm2022/_option-harness-chunk.mjs.map +1 -0
  147. package/fesm2022/_option-module-chunk.mjs +48 -0
  148. package/fesm2022/_option-module-chunk.mjs.map +1 -0
  149. package/fesm2022/_pseudo-checkbox-chunk.mjs +88 -0
  150. package/fesm2022/_pseudo-checkbox-chunk.mjs.map +1 -0
  151. package/fesm2022/_pseudo-checkbox-module-chunk.mjs +46 -0
  152. package/fesm2022/_pseudo-checkbox-module-chunk.mjs.map +1 -0
  153. package/fesm2022/_public-api-chunk.mjs +84 -0
  154. package/fesm2022/_public-api-chunk.mjs.map +1 -0
  155. package/fesm2022/_ripple-chunk.mjs +544 -0
  156. package/fesm2022/_ripple-chunk.mjs.map +1 -0
  157. package/fesm2022/_ripple-loader-chunk.mjs +144 -0
  158. package/fesm2022/_ripple-loader-chunk.mjs.map +1 -0
  159. package/fesm2022/_ripple-module-chunk.mjs +46 -0
  160. package/fesm2022/_ripple-module-chunk.mjs.map +1 -0
  161. package/fesm2022/_structural-styles-chunk.mjs +45 -0
  162. package/fesm2022/_structural-styles-chunk.mjs.map +1 -0
  163. package/fesm2022/_tooltip-chunk.mjs +848 -0
  164. package/fesm2022/_tooltip-chunk.mjs.map +1 -0
  165. package/fesm2022/autocomplete-testing.mjs +75 -0
  166. package/fesm2022/autocomplete-testing.mjs.map +1 -0
  167. package/fesm2022/autocomplete.mjs +1068 -0
  168. package/fesm2022/autocomplete.mjs.map +1 -0
  169. package/fesm2022/badge-testing.mjs +48 -0
  170. package/fesm2022/badge-testing.mjs.map +1 -0
  171. package/fesm2022/badge.mjs +357 -0
  172. package/fesm2022/badge.mjs.map +1 -0
  173. package/fesm2022/bottom-sheet-testing.mjs +17 -0
  174. package/fesm2022/bottom-sheet-testing.mjs.map +1 -0
  175. package/fesm2022/bottom-sheet.mjs +390 -0
  176. package/fesm2022/bottom-sheet.mjs.map +1 -0
  177. package/fesm2022/button-testing.mjs +81 -0
  178. package/fesm2022/button-testing.mjs.map +1 -0
  179. package/fesm2022/button-toggle-testing.mjs +87 -0
  180. package/fesm2022/button-toggle-testing.mjs.map +1 -0
  181. package/fesm2022/button-toggle.mjs +789 -0
  182. package/fesm2022/button-toggle.mjs.map +1 -0
  183. package/fesm2022/button.mjs +308 -0
  184. package/fesm2022/button.mjs.map +1 -0
  185. package/fesm2022/card-testing.mjs +29 -0
  186. package/fesm2022/card-testing.mjs.map +1 -0
  187. package/fesm2022/card.mjs +615 -0
  188. package/fesm2022/card.mjs.map +1 -0
  189. package/fesm2022/checkbox-testing.mjs +79 -0
  190. package/fesm2022/checkbox-testing.mjs.map +1 -0
  191. package/fesm2022/checkbox.mjs +551 -0
  192. package/fesm2022/checkbox.mjs.map +1 -0
  193. package/fesm2022/chips-testing.mjs +239 -0
  194. package/fesm2022/chips-testing.mjs.map +1 -0
  195. package/fesm2022/chips.mjs +2663 -0
  196. package/fesm2022/chips.mjs.map +1 -0
  197. package/fesm2022/core-testing.mjs +22 -0
  198. package/fesm2022/core-testing.mjs.map +1 -0
  199. package/fesm2022/core.mjs +408 -0
  200. package/fesm2022/core.mjs.map +1 -0
  201. package/fesm2022/datepicker-testing.mjs +26 -0
  202. package/fesm2022/datepicker-testing.mjs.map +1 -0
  203. package/fesm2022/datepicker.mjs +5015 -0
  204. package/fesm2022/datepicker.mjs.map +1 -0
  205. package/fesm2022/dialog-testing.mjs +123 -0
  206. package/fesm2022/dialog-testing.mjs.map +1 -0
  207. package/fesm2022/dialog.mjs +873 -0
  208. package/fesm2022/dialog.mjs.map +1 -0
  209. package/fesm2022/divider-testing.mjs +17 -0
  210. package/fesm2022/divider-testing.mjs.map +1 -0
  211. package/fesm2022/divider.mjs +132 -0
  212. package/fesm2022/divider.mjs.map +1 -0
  213. package/fesm2022/expansion-testing.mjs +87 -0
  214. package/fesm2022/expansion-testing.mjs.map +1 -0
  215. package/fesm2022/expansion.mjs +749 -0
  216. package/fesm2022/expansion.mjs.map +1 -0
  217. package/fesm2022/form-field-testing-control.mjs +24 -0
  218. package/fesm2022/form-field-testing-control.mjs.map +1 -0
  219. package/fesm2022/form-field-testing.mjs +135 -0
  220. package/fesm2022/form-field-testing.mjs.map +1 -0
  221. package/fesm2022/form-field.mjs +57 -0
  222. package/fesm2022/form-field.mjs.map +1 -0
  223. package/fesm2022/grid-list-testing.mjs +80 -0
  224. package/fesm2022/grid-list-testing.mjs.map +1 -0
  225. package/fesm2022/grid-list.mjs +604 -0
  226. package/fesm2022/grid-list.mjs.map +1 -0
  227. package/fesm2022/icon-testing.mjs +172 -0
  228. package/fesm2022/icon-testing.mjs.map +1 -0
  229. package/fesm2022/icon.mjs +366 -0
  230. package/fesm2022/icon.mjs.map +1 -0
  231. package/fesm2022/input-testing.mjs +73 -0
  232. package/fesm2022/input-testing.mjs.map +1 -0
  233. package/fesm2022/input.mjs +495 -0
  234. package/fesm2022/input.mjs.map +1 -0
  235. package/fesm2022/list-testing.mjs +295 -0
  236. package/fesm2022/list-testing.mjs.map +1 -0
  237. package/fesm2022/list.mjs +1604 -0
  238. package/fesm2022/list.mjs.map +1 -0
  239. package/fesm2022/material.mjs +4 -0
  240. package/fesm2022/material.mjs.map +1 -0
  241. package/fesm2022/menu-testing.mjs +174 -0
  242. package/fesm2022/menu-testing.mjs.map +1 -0
  243. package/fesm2022/menu.mjs +1421 -0
  244. package/fesm2022/menu.mjs.map +1 -0
  245. package/fesm2022/paginator-testing.mjs +69 -0
  246. package/fesm2022/paginator-testing.mjs.map +1 -0
  247. package/fesm2022/paginator.mjs +445 -0
  248. package/fesm2022/paginator.mjs.map +1 -0
  249. package/fesm2022/progress-bar-testing.mjs +20 -0
  250. package/fesm2022/progress-bar-testing.mjs.map +1 -0
  251. package/fesm2022/progress-bar.mjs +247 -0
  252. package/fesm2022/progress-bar.mjs.map +1 -0
  253. package/fesm2022/progress-spinner-testing.mjs +21 -0
  254. package/fesm2022/progress-spinner-testing.mjs.map +1 -0
  255. package/fesm2022/progress-spinner.mjs +258 -0
  256. package/fesm2022/progress-spinner.mjs.map +1 -0
  257. package/fesm2022/radio-testing.mjs +143 -0
  258. package/fesm2022/radio-testing.mjs.map +1 -0
  259. package/fesm2022/radio.mjs +751 -0
  260. package/fesm2022/radio.mjs.map +1 -0
  261. package/fesm2022/select-testing.mjs +92 -0
  262. package/fesm2022/select-testing.mjs.map +1 -0
  263. package/fesm2022/select.mjs +1181 -0
  264. package/fesm2022/select.mjs.map +1 -0
  265. package/fesm2022/sidenav-testing.mjs +80 -0
  266. package/fesm2022/sidenav-testing.mjs.map +1 -0
  267. package/fesm2022/sidenav.mjs +1151 -0
  268. package/fesm2022/sidenav.mjs.map +1 -0
  269. package/fesm2022/slide-toggle-testing.mjs +68 -0
  270. package/fesm2022/slide-toggle-testing.mjs.map +1 -0
  271. package/fesm2022/slide-toggle.mjs +403 -0
  272. package/fesm2022/slide-toggle.mjs.map +1 -0
  273. package/fesm2022/slider-testing.mjs +105 -0
  274. package/fesm2022/slider-testing.mjs.map +1 -0
  275. package/fesm2022/slider.mjs +1720 -0
  276. package/fesm2022/slider.mjs.map +1 -0
  277. package/fesm2022/snack-bar-testing.mjs +47 -0
  278. package/fesm2022/snack-bar-testing.mjs.map +1 -0
  279. package/fesm2022/snack-bar.mjs +820 -0
  280. package/fesm2022/snack-bar.mjs.map +1 -0
  281. package/fesm2022/sort-testing.mjs +55 -0
  282. package/fesm2022/sort-testing.mjs.map +1 -0
  283. package/fesm2022/sort.mjs +470 -0
  284. package/fesm2022/sort.mjs.map +1 -0
  285. package/fesm2022/stepper-testing.mjs +99 -0
  286. package/fesm2022/stepper-testing.mjs.map +1 -0
  287. package/fesm2022/stepper.mjs +900 -0
  288. package/fesm2022/stepper.mjs.map +1 -0
  289. package/fesm2022/table-testing.mjs +152 -0
  290. package/fesm2022/table-testing.mjs.map +1 -0
  291. package/fesm2022/table.mjs +1151 -0
  292. package/fesm2022/table.mjs.map +1 -0
  293. package/fesm2022/tabs-testing.mjs +144 -0
  294. package/fesm2022/tabs-testing.mjs.map +1 -0
  295. package/fesm2022/tabs.mjs +2435 -0
  296. package/fesm2022/tabs.mjs.map +1 -0
  297. package/fesm2022/timepicker-testing.mjs +128 -0
  298. package/fesm2022/timepicker-testing.mjs.map +1 -0
  299. package/fesm2022/timepicker.mjs +1284 -0
  300. package/fesm2022/timepicker.mjs.map +1 -0
  301. package/fesm2022/toolbar-testing.mjs +26 -0
  302. package/fesm2022/toolbar-testing.mjs.map +1 -0
  303. package/fesm2022/toolbar.mjs +182 -0
  304. package/fesm2022/toolbar.mjs.map +1 -0
  305. package/fesm2022/tooltip-testing.mjs +48 -0
  306. package/fesm2022/tooltip-testing.mjs.map +1 -0
  307. package/fesm2022/tooltip.mjs +58 -0
  308. package/fesm2022/tooltip.mjs.map +1 -0
  309. package/fesm2022/tree-testing.mjs +104 -0
  310. package/fesm2022/tree-testing.mjs.map +1 -0
  311. package/fesm2022/tree.mjs +681 -0
  312. package/fesm2022/tree.mjs.map +1 -0
  313. package/form-field/_form-field-theme.scss +96 -0
  314. package/form-field/_m2-form-field.scss +226 -0
  315. package/form-field/_m3-form-field.scss +137 -0
  316. package/grid-list/_grid-list-theme.scss +76 -0
  317. package/grid-list/_m2-grid-list.scss +21 -0
  318. package/grid-list/_m3-grid-list.scss +20 -0
  319. package/icon/_icon-theme.scss +109 -0
  320. package/icon/_m2-icon.scss +15 -0
  321. package/icon/_m3-icon.scss +21 -0
  322. package/input/_input-theme.scss +36 -0
  323. package/list/_list-theme.scss +201 -0
  324. package/list/_m2-list.scss +92 -0
  325. package/list/_m3-list.scss +93 -0
  326. package/menu/_m2-menu.scss +44 -0
  327. package/menu/_m3-menu.scss +42 -0
  328. package/menu/_menu-theme.scss +76 -0
  329. package/package.json +404 -0
  330. package/paginator/_m2-paginator.scss +69 -0
  331. package/paginator/_m3-paginator.scss +46 -0
  332. package/paginator/_paginator-theme.scss +76 -0
  333. package/prebuilt-themes/azure-blue.css +1 -0
  334. package/prebuilt-themes/cyan-orange.css +1 -0
  335. package/prebuilt-themes/deeppurple-amber.css +1 -0
  336. package/prebuilt-themes/indigo-pink.css +1 -0
  337. package/prebuilt-themes/magenta-violet.css +1 -0
  338. package/prebuilt-themes/pink-bluegrey.css +1 -0
  339. package/prebuilt-themes/purple-green.css +1 -0
  340. package/prebuilt-themes/rose-red.css +1 -0
  341. package/progress-bar/_m2-progress-bar.scss +36 -0
  342. package/progress-bar/_m3-progress-bar.scss +29 -0
  343. package/progress-bar/_progress-bar-theme.scss +93 -0
  344. package/progress-spinner/_m2-progress-spinner.scss +25 -0
  345. package/progress-spinner/_m3-progress-spinner.scss +27 -0
  346. package/progress-spinner/_progress-spinner-theme.scss +95 -0
  347. package/radio/_m2-radio.scss +67 -0
  348. package/radio/_m3-radio.scss +65 -0
  349. package/radio/_radio-theme.scss +102 -0
  350. package/schematics/collection.json +55 -0
  351. package/schematics/migration.json +15 -0
  352. package/schematics/ng-add/fonts/material-fonts.d.ts +11 -0
  353. package/schematics/ng-add/fonts/material-fonts.js +41 -0
  354. package/schematics/ng-add/fonts/material-fonts.js.map +1 -0
  355. package/schematics/ng-add/index.d.ts +17 -0
  356. package/schematics/ng-add/index.js +54 -0
  357. package/schematics/ng-add/index.js.map +1 -0
  358. package/schematics/ng-add/package-config.d.ts +12 -0
  359. package/schematics/ng-add/package-config.js +51 -0
  360. package/schematics/ng-add/package-config.js.map +1 -0
  361. package/schematics/ng-add/schema.d.ts +15 -0
  362. package/schematics/ng-add/schema.js +10 -0
  363. package/schematics/ng-add/schema.js.map +1 -0
  364. package/schematics/ng-add/schema.json +43 -0
  365. package/schematics/ng-add/setup-project.d.ts +15 -0
  366. package/schematics/ng-add/setup-project.js +36 -0
  367. package/schematics/ng-add/setup-project.js.map +1 -0
  368. package/schematics/ng-add/theming/create-theme.d.ts +9 -0
  369. package/schematics/ng-add/theming/create-theme.js +58 -0
  370. package/schematics/ng-add/theming/create-theme.js.map +1 -0
  371. package/schematics/ng-add/theming/theming.d.ts +11 -0
  372. package/schematics/ng-add/theming/theming.js +133 -0
  373. package/schematics/ng-add/theming/theming.js.map +1 -0
  374. package/schematics/ng-generate/address-form/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.__style__.template +27 -0
  375. package/schematics/ng-generate/address-form/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html.template +99 -0
  376. package/schematics/ng-generate/address-form/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.spec.ts.template +38 -0
  377. package/schematics/ng-generate/address-form/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts.template +118 -0
  378. package/schematics/ng-generate/address-form/index.d.ts +14 -0
  379. package/schematics/ng-generate/address-form/index.js +43 -0
  380. package/schematics/ng-generate/address-form/index.js.map +1 -0
  381. package/schematics/ng-generate/address-form/schema.d.ts +10 -0
  382. package/schematics/ng-generate/address-form/schema.js +10 -0
  383. package/schematics/ng-generate/address-form/schema.js.map +1 -0
  384. package/schematics/ng-generate/address-form/schema.json +100 -0
  385. package/schematics/ng-generate/dashboard/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.__style__.template +21 -0
  386. package/schematics/ng-generate/dashboard/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html.template +26 -0
  387. package/schematics/ng-generate/dashboard/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.spec.ts.template +36 -0
  388. package/schematics/ng-generate/dashboard/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts.template +56 -0
  389. package/schematics/ng-generate/dashboard/index.d.ts +14 -0
  390. package/schematics/ng-generate/dashboard/index.js +42 -0
  391. package/schematics/ng-generate/dashboard/index.js.map +1 -0
  392. package/schematics/ng-generate/dashboard/schema.d.ts +10 -0
  393. package/schematics/ng-generate/dashboard/schema.js +10 -0
  394. package/schematics/ng-generate/dashboard/schema.js.map +1 -0
  395. package/schematics/ng-generate/dashboard/schema.json +100 -0
  396. package/schematics/ng-generate/navigation/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.__style__.template +17 -0
  397. package/schematics/ng-generate/navigation/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html.template +28 -0
  398. package/schematics/ng-generate/navigation/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.spec.ts.template +36 -0
  399. package/schematics/ng-generate/navigation/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts.template +42 -0
  400. package/schematics/ng-generate/navigation/index.d.ts +14 -0
  401. package/schematics/ng-generate/navigation/index.js +42 -0
  402. package/schematics/ng-generate/navigation/index.js.map +1 -0
  403. package/schematics/ng-generate/navigation/schema.d.ts +10 -0
  404. package/schematics/ng-generate/navigation/schema.js +10 -0
  405. package/schematics/ng-generate/navigation/schema.js.map +1 -0
  406. package/schematics/ng-generate/navigation/schema.json +105 -0
  407. package/schematics/ng-generate/table/files/__path__/__name@dasherize@if-flat__/__name@dasherize__-datasource.ts.template +111 -0
  408. package/schematics/ng-generate/table/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.__style__.template +3 -0
  409. package/schematics/ng-generate/table/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html.template +26 -0
  410. package/schematics/ng-generate/table/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.spec.ts.template +32 -0
  411. package/schematics/ng-generate/table/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts.template +36 -0
  412. package/schematics/ng-generate/table/index.d.ts +14 -0
  413. package/schematics/ng-generate/table/index.js +40 -0
  414. package/schematics/ng-generate/table/index.js.map +1 -0
  415. package/schematics/ng-generate/table/schema.d.ts +10 -0
  416. package/schematics/ng-generate/table/schema.js +10 -0
  417. package/schematics/ng-generate/table/schema.js.map +1 -0
  418. package/schematics/ng-generate/table/schema.json +100 -0
  419. package/schematics/ng-generate/theme-color/index_bundled.js +6561 -0
  420. package/schematics/ng-generate/theme-color/index_bundled.js.map +6 -0
  421. package/schematics/ng-generate/theme-color/schema.json +55 -0
  422. package/schematics/ng-generate/tree/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.__style__.template +4 -0
  423. package/schematics/ng-generate/tree/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html.template +22 -0
  424. package/schematics/ng-generate/tree/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.spec.ts.template +32 -0
  425. package/schematics/ng-generate/tree/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts.template +93 -0
  426. package/schematics/ng-generate/tree/files/__path__/__name@dasherize@if-flat__/example-data.ts.template +47 -0
  427. package/schematics/ng-generate/tree/index.d.ts +14 -0
  428. package/schematics/ng-generate/tree/index.js +40 -0
  429. package/schematics/ng-generate/tree/index.js.map +1 -0
  430. package/schematics/ng-generate/tree/schema.d.ts +10 -0
  431. package/schematics/ng-generate/tree/schema.js +10 -0
  432. package/schematics/ng-generate/tree/schema.js.map +1 -0
  433. package/schematics/ng-generate/tree/schema.json +100 -0
  434. package/schematics/ng-update/index_bundled.js +204 -0
  435. package/schematics/ng-update/index_bundled.js.map +6 -0
  436. package/schematics/package.json +3 -0
  437. package/select/_m2-select.scss +49 -0
  438. package/select/_m3-select.scss +54 -0
  439. package/select/_select-theme.scss +99 -0
  440. package/sidenav/_m2-sidenav.scss +48 -0
  441. package/sidenav/_m3-sidenav.scss +26 -0
  442. package/sidenav/_sidenav-theme.scss +75 -0
  443. package/slide-toggle/_m2-slide-toggle.scss +134 -0
  444. package/slide-toggle/_m3-slide-toggle.scss +133 -0
  445. package/slide-toggle/_slide-toggle-theme.scss +119 -0
  446. package/slider/_m2-slider.scss +73 -0
  447. package/slider/_m3-slider.scss +69 -0
  448. package/slider/_slider-theme.scss +103 -0
  449. package/snack-bar/_m2-snack-bar.scss +24 -0
  450. package/snack-bar/_m3-snack-bar.scss +26 -0
  451. package/snack-bar/_snack-bar-theme.scss +77 -0
  452. package/sort/_m2-sort.scss +16 -0
  453. package/sort/_m3-sort.scss +20 -0
  454. package/sort/_sort-theme.scss +76 -0
  455. package/stepper/_m2-stepper.scss +65 -0
  456. package/stepper/_m3-stepper.scss +66 -0
  457. package/stepper/_stepper-theme.scss +102 -0
  458. package/table/_m2-table.scss +63 -0
  459. package/table/_m3-table.scss +52 -0
  460. package/table/_table-theme.scss +76 -0
  461. package/tabs/_m2-tabs.scss +68 -0
  462. package/tabs/_m3-tabs.scss +58 -0
  463. package/tabs/_tabs-theme.scss +131 -0
  464. package/timepicker/_m2-timepicker.scss +19 -0
  465. package/timepicker/_m3-timepicker.scss +21 -0
  466. package/timepicker/_timepicker-theme.scss +81 -0
  467. package/toolbar/_m2-toolbar.scss +43 -0
  468. package/toolbar/_m3-toolbar.scss +41 -0
  469. package/toolbar/_toolbar-theme.scss +114 -0
  470. package/tooltip/_m2-tooltip.scss +24 -0
  471. package/tooltip/_m3-tooltip.scss +25 -0
  472. package/tooltip/_tooltip-theme.scss +76 -0
  473. package/tree/_m2-tree.scss +30 -0
  474. package/tree/_m3-tree.scss +37 -0
  475. package/tree/_tree-theme.scss +76 -0
  476. package/types/_badge-chunk.d.ts +100 -0
  477. package/types/_button-toggle-chunk.d.ts +252 -0
  478. package/types/_date-adapter-chunk.d.ts +261 -0
  479. package/types/_date-range-input-harness-chunk.d.ts +284 -0
  480. package/types/_dialog-chunk.d.ts +336 -0
  481. package/types/_error-options-chunk.d.ts +17 -0
  482. package/types/_form-field-chunk.d.ts +375 -0
  483. package/types/_form-field-control-chunk.d.ts +64 -0
  484. package/types/_form-field-control-harness-chunk.d.ts +20 -0
  485. package/types/_form-field-module-chunk.d.ts +18 -0
  486. package/types/_icon-module-chunk.d.ts +162 -0
  487. package/types/_icon-registry-chunk.d.ts +271 -0
  488. package/types/_input-harness-chunk.d.ts +61 -0
  489. package/types/_line-chunk.d.ts +25 -0
  490. package/types/_list-option-types-chunk.d.ts +15 -0
  491. package/types/_option-chunk.d.ts +146 -0
  492. package/types/_option-harness-chunk.d.ts +35 -0
  493. package/types/_option-module-chunk.d.ts +13 -0
  494. package/types/_option-parent-chunk.d.ts +20 -0
  495. package/types/_paginator-chunk.d.ts +184 -0
  496. package/types/_palette-chunk.d.ts +4 -0
  497. package/types/_progress-spinner-chunk.d.ts +91 -0
  498. package/types/_pseudo-checkbox-module-chunk.d.ts +45 -0
  499. package/types/_ripple-chunk.d.ts +256 -0
  500. package/types/_ripple-loader-chunk.d.ts +48 -0
  501. package/types/_ripple-module-chunk.d.ts +11 -0
  502. package/types/_sort-chunk.d.ts +88 -0
  503. package/types/_sort-direction-chunk.d.ts +3 -0
  504. package/types/_tooltip-chunk.d.ts +315 -0
  505. package/types/autocomplete-testing.d.ts +53 -0
  506. package/types/autocomplete.d.ts +420 -0
  507. package/types/badge-testing.d.ts +36 -0
  508. package/types/badge.d.ts +14 -0
  509. package/types/bottom-sheet-testing.d.ts +26 -0
  510. package/types/bottom-sheet.d.ts +192 -0
  511. package/types/button-testing.d.ts +70 -0
  512. package/types/button-toggle-testing.d.ts +97 -0
  513. package/types/button-toggle.d.ts +16 -0
  514. package/types/button.d.ts +210 -0
  515. package/types/card-testing.d.ts +41 -0
  516. package/types/card.d.ts +156 -0
  517. package/types/checkbox-testing.d.ts +86 -0
  518. package/types/checkbox.d.ts +216 -0
  519. package/types/chips-testing.d.ts +270 -0
  520. package/types/chips.d.ts +993 -0
  521. package/types/core-testing.d.ts +32 -0
  522. package/types/core.d.ts +185 -0
  523. package/types/datepicker-testing.d.ts +25 -0
  524. package/types/datepicker.d.ts +1746 -0
  525. package/types/dialog-testing.d.ts +83 -0
  526. package/types/dialog.d.ts +84 -0
  527. package/types/divider-testing.d.ts +15 -0
  528. package/types/divider.d.ts +24 -0
  529. package/types/expansion-testing.d.ts +101 -0
  530. package/types/expansion.d.ts +258 -0
  531. package/types/form-field-testing-control.d.ts +13 -0
  532. package/types/form-field-testing.d.ts +127 -0
  533. package/types/form-field.d.ts +19 -0
  534. package/types/grid-list-testing.d.ts +82 -0
  535. package/types/grid-list.d.ts +207 -0
  536. package/types/icon-testing.d.ts +81 -0
  537. package/types/icon.d.ts +8 -0
  538. package/types/input-testing.d.ts +73 -0
  539. package/types/input.d.ts +208 -0
  540. package/types/list-testing.d.ts +354 -0
  541. package/types/list.d.ts +516 -0
  542. package/types/material.d.ts +3 -0
  543. package/types/menu-testing.d.ts +141 -0
  544. package/types/menu.d.ts +547 -0
  545. package/types/paginator-testing.d.ts +51 -0
  546. package/types/paginator.d.ts +36 -0
  547. package/types/progress-bar-testing.d.ts +24 -0
  548. package/types/progress-bar.d.ts +106 -0
  549. package/types/progress-spinner-testing.d.ts +28 -0
  550. package/types/progress-spinner.d.ts +13 -0
  551. package/types/radio-testing.d.ts +109 -0
  552. package/types/radio.d.ts +295 -0
  553. package/types/select-testing.d.ts +63 -0
  554. package/types/select.d.ts +448 -0
  555. package/types/sidenav-testing.d.ts +122 -0
  556. package/types/sidenav.d.ts +335 -0
  557. package/types/slide-toggle-testing.d.ts +66 -0
  558. package/types/slide-toggle.d.ts +151 -0
  559. package/types/slider-testing.d.ts +90 -0
  560. package/types/slider.d.ts +662 -0
  561. package/types/snack-bar-testing.d.ts +64 -0
  562. package/types/snack-bar.d.ts +328 -0
  563. package/types/sort-testing.d.ts +48 -0
  564. package/types/sort.d.ts +126 -0
  565. package/types/stepper-testing.d.ts +136 -0
  566. package/types/stepper.d.ts +225 -0
  567. package/types/table-testing.d.ts +174 -0
  568. package/types/table.d.ts +302 -0
  569. package/types/tabs-testing.d.ts +145 -0
  570. package/types/tabs.d.ts +890 -0
  571. package/types/timepicker-testing.d.ts +108 -0
  572. package/types/timepicker.d.ts +318 -0
  573. package/types/toolbar-testing.d.ts +33 -0
  574. package/types/toolbar.d.ts +44 -0
  575. package/types/tooltip-testing.d.ts +35 -0
  576. package/types/tooltip.d.ts +17 -0
  577. package/types/tree-testing.d.ts +119 -0
  578. package/types/tree.d.ts +233 -0
@@ -0,0 +1,174 @@
1
+ @use 'sass:list';
2
+ @use 'sass:map';
3
+ @use 'sass:meta';
4
+ @use 'sass:string';
5
+ @use '../style/validation';
6
+ @use './palettes';
7
+
8
+ /// Creates an error message by finding `$config` in the existing message and appending a suffix to
9
+ /// it.
10
+ /// @param {List|String} $err The error message.
11
+ /// @param {String} $suffix The suffix to add.
12
+ /// @return {List|String} The updated error message.
13
+ @function _create-dollar-config-error-message($err, $suffix) {
14
+ @if meta.type-of($err) == 'list' {
15
+ @for $i from 1 through list.length($err) {
16
+ $err: list.set-nth($err, $i,
17
+ _create-dollar-config-error-message(list.nth($err, $i), $suffix));
18
+ }
19
+ }
20
+ @else if meta.type-of($err) == 'string' {
21
+ $start: string.index($err, '$config');
22
+ @if $start {
23
+ $err: string.insert($err, $suffix, $start + 7);
24
+ }
25
+ }
26
+ @return $err;
27
+ }
28
+
29
+ /// Validates that the given object is an M3 palette.
30
+ /// @param {*} $palette The object to test
31
+ /// @return {Boolean|null} null if it is a valid M3 palette, else true.
32
+ @function validate-palette($palette) {
33
+ @if not meta.type-of($palette) == 'map' {
34
+ @return true;
35
+ }
36
+ $keys: map.keys($palette);
37
+ $expected-keys: map.keys(palettes.$red-palette);
38
+ @if validation.validate-allowed-values($keys, $expected-keys...) or
39
+ validation.validate-required-values($keys, $expected-keys...) {
40
+ @return true;
41
+ }
42
+ $nv-keys: map.keys(map.get($palette, neutral-variant));
43
+ $expected-nv-keys: map.keys(map.get(palettes.$red-palette, neutral-variant));
44
+ @if validation.validate-allowed-values($nv-keys, $expected-nv-keys...) or
45
+ validation.validate-required-values($nv-keys, $expected-nv-keys...) {
46
+ @return true;
47
+ }
48
+ @return null;
49
+ }
50
+
51
+ /// Validates a theme config.
52
+ /// @param {Map} $config The config to test.
53
+ /// @return {List} null if no error, else the error message
54
+ @function validate-theme-config($config) {
55
+ $err: validation.validate-type($config, 'map', 'null');
56
+ @if $err {
57
+ @return (#{'$config should be a configuration object. Got:'} $config);
58
+ }
59
+ $allowed: (color, typography, density);
60
+ $err: validation.validate-allowed-values(map.keys($config or ()), $allowed...);
61
+ @if $err {
62
+ @return (
63
+ #{'$config has unexpected properties. Valid properties are'}
64
+ #{'#{$allowed}.'}
65
+ #{'Found:'}
66
+ $err
67
+ );
68
+ }
69
+ $err: validate-color-config(map.get($config, color));
70
+ @if $err {
71
+ @return _create-dollar-config-error-message($err, '.color');
72
+ }
73
+ $err: validate-typography-config(map.get($config, typography));
74
+ @if $err {
75
+ @return _create-dollar-config-error-message($err, '.typography');
76
+ }
77
+ $err: validate-density-config(map.get($config, density));
78
+ @if $err {
79
+ @return _create-dollar-config-error-message($err, '.density');
80
+ }
81
+ @return null;
82
+ }
83
+
84
+ /// Validates a theme color config.
85
+ /// @param {Map} $config The config to test.
86
+ /// @return {List} null if no error, else the error message
87
+ @function validate-color-config($config) {
88
+ $err: validation.validate-type($config, 'map', 'null');
89
+ @if $err {
90
+ @return (#{'$config should be a color configuration object. Got:'} $config);
91
+ }
92
+ $allowed: (theme-type, primary, tertiary, use-system-variables, system-variables-prefix);
93
+ $err: validation.validate-allowed-values(map.keys($config or ()), $allowed...);
94
+ @if $err {
95
+ @return (
96
+ #{'$config has unexpected properties. Valid properties are'}
97
+ #{'#{$allowed}.'}
98
+ #{'Found:'}
99
+ $err
100
+ );
101
+ }
102
+ @if $config and map.has-key($config, theme-type) and
103
+ not list.index((light, dark, color-scheme), map.get($config, theme-type)) {
104
+ @return (
105
+ #{'Expected $config.theme-type to be one of: light, dark, color-scheme. Got:'}
106
+ map.get($config, theme-type)
107
+ );
108
+ }
109
+ @each $palette in (primary, secondary, tertiary) {
110
+ @if $config and map.has-key($config, $palette) {
111
+ $err: validate-palette(map.get($config, $palette));
112
+ @if $err {
113
+ @return (
114
+ #{'Expected $config.#{$palette} to be a valid M3 palette. Got:'}
115
+ map.get($config, $palette)
116
+ );
117
+ }
118
+ }
119
+ }
120
+ @return null;
121
+ }
122
+
123
+ /// Validates a theme typography config.
124
+ /// @param {Map} $config The config to test.
125
+ /// @return {List} null if no error, else the error message
126
+ @function validate-typography-config($config) {
127
+ $err: validation.validate-type($config, 'map', 'null');
128
+ @if $err {
129
+ @return (#{'$config should be a typography configuration object. Got:'} $config);
130
+ }
131
+ $allowed: (
132
+ brand-family,
133
+ plain-family,
134
+ bold-weight,
135
+ medium-weight,
136
+ regular-weight,
137
+ use-system-variables,
138
+ system-variables-prefix
139
+ );
140
+ $err: validation.validate-allowed-values(map.keys($config or ()), $allowed...);
141
+ @if $err {
142
+ @return (
143
+ #{'$config has unexpected properties. Valid properties are'}
144
+ #{'#{$allowed}.'}
145
+ #{'Found:'}
146
+ $err
147
+ );
148
+ }
149
+ @return null;
150
+ }
151
+
152
+ /// Validates a theme density config.
153
+ /// @param {Map} $config The config to test.
154
+ /// @return {List} null if no error, else the error message
155
+ @function validate-density-config($config) {
156
+ $err: validation.validate-type($config, 'map', 'null');
157
+ @if $err {
158
+ @return (#{'$config should be a density configuration object. Got:'} $config);
159
+ }
160
+ $err: validation.validate-allowed-values(map.keys($config or ()), scale);
161
+ @if $err {
162
+ @return (#{'$config has unexpected properties. Valid properties are: scale. Found:'} $err);
163
+ }
164
+ @if $config and map.has-key($config, scale) {
165
+ $allowed-scales: (0, -1, -2, -3, -4, -5, minimum, maximum);
166
+ @if validation.validate-allowed-values(map.get($config, scale), $allowed-scales...) {
167
+ @return (
168
+ #{'Expected $config.scale to be one of: #{$allowed-scales}. Got:'}
169
+ map.get($config, scale)
170
+ );
171
+ }
172
+ }
173
+ @return null;
174
+ }
@@ -0,0 +1,141 @@
1
+ // This file contains functions used to define Angular Material theme objects.
2
+
3
+ @use 'sass:map';
4
+ @use '../style/sass-utils';
5
+ @use './palettes';
6
+ @use '../tokens/m3-tokens';
7
+ @use './config-validation';
8
+ @use '../tokens/m3';
9
+
10
+ // Prefix used for component token fallback variables, e.g.
11
+ // `color: var(--mat-text-button-label-text-color, var(--mat-sys-primary));`
12
+ $system-fallback-prefix: mat-sys;
13
+
14
+ // Default system level prefix to use when directly calling the `system-level-*` mixins.
15
+ // Prefix used for component token fallback variables, e.g.
16
+ // `color: var(--mat-text-button-label-text-color, var(--mat-sys-primary));`
17
+ // TODO: Remove this variable after internal clients are migrated from "sys"
18
+ $system-level-prefix: mat-sys;
19
+
20
+ /// Map key used to store internals of theme config.
21
+ $internals: _mat-theming-internals-do-not-access;
22
+
23
+ /// The theme version of generated themes.
24
+ $theme-version: 1;
25
+
26
+ /// Defines an Angular Material theme object with color, typography, and density settings.
27
+ /// @param {Map} $config The theme configuration
28
+ /// @return {Map} A theme object
29
+ @function define-theme($config: ()) {
30
+ $err: config-validation.validate-theme-config($config);
31
+ @if $err {
32
+ @error $err;
33
+ }
34
+
35
+ $color-config: map.get($config, color) or ();
36
+ $typography-config: map.get($config, typography) or ();
37
+ $density-config: map.get($config, density) or ();
38
+
39
+ // colors
40
+ $type: map.get($color-config, theme-type) or light;
41
+ $primary: map.get($color-config, primary) or palettes.$violet-palette;
42
+ $tertiary: map.get($color-config, tertiary) or $primary;
43
+ $color-system-variables-prefix:
44
+ map.get($color-config, system-variables-prefix) or $system-level-prefix;
45
+ sass-utils.$use-system-color-variables: map.get($color-config, use-system-variables) or false;
46
+
47
+ $palettes: (
48
+ primary: map.remove($primary, neutral, neutral-variant, secondary),
49
+ secondary: map.get($primary, secondary),
50
+ tertiary: map.remove($tertiary, neutral, neutral-variant, secondary, error),
51
+ neutral: map.get($primary, neutral),
52
+ neutral-variant: map.get($primary, neutral-variant),
53
+ error: map.get($primary, error),
54
+ );
55
+
56
+ // typography
57
+ $default-plain: (Roboto, sans-serif);
58
+ $default-brand: $default-plain;
59
+ $plain: map.get($typography-config, plain-family) or $default-plain;
60
+ $brand: map.get($typography-config, brand-family) or $default-brand;
61
+ $bold: map.get($typography-config, bold-weight) or 700;
62
+ $medium: map.get($typography-config, medium-weight) or 500;
63
+ $regular: map.get($typography-config, regular-weight) or 400;
64
+ $typography-system-variables-prefix: map.get($typography-config, system-variables-prefix) or
65
+ $system-level-prefix;
66
+ sass-utils.$use-system-typography-variables:
67
+ map.get($typography-config, use-system-variables) or false;
68
+ $typography: (
69
+ plain: $plain,
70
+ brand: $brand,
71
+ bold: $bold,
72
+ medium: $medium,
73
+ regular: $regular,
74
+ );
75
+
76
+ // density
77
+ $density-scale: map.get($density-config, scale) or 0;
78
+
79
+ $system-maps: (
80
+ m3-tokens.get-sys-color($type, $palettes, $color-system-variables-prefix),
81
+ m3.md-sys-elevation-values(),
82
+ m3.md-sys-motion-values(),
83
+ m3.md-sys-shape-values(),
84
+ m3.md-sys-state-values(),
85
+ (
86
+ // Form field native select option text color
87
+ neutral10: map.get($palettes, neutral, 10),
88
+ // Sidenav scrim (container background shadow when opened),
89
+ neutral-variant20: map.get($palettes, neutral-variant, 20),
90
+ ),
91
+ m3-tokens.get-sys-typeface($typography, $typography-system-variables-prefix),
92
+ );
93
+ $system: (
94
+ density-scale: $density-scale,
95
+ );
96
+ @each $sys-map in $system-maps {
97
+ $system: map.merge($system, $sys-map);
98
+ }
99
+
100
+ @return (
101
+ _mat-system: $system,
102
+ $internals: (
103
+ base-tokens: m3-tokens.generate-base-tokens(),
104
+ color-system-variables-prefix: $color-system-variables-prefix,
105
+ color-tokens:
106
+ m3-tokens.generate-color-tokens($type, $palettes, $color-system-variables-prefix),
107
+ density-scale: $density-scale,
108
+ font-definition: $typography,
109
+ palettes: $palettes,
110
+ theme-type: $type,
111
+ theme-version: $theme-version,
112
+ typography-system-variables-prefix: $typography-system-variables-prefix,
113
+ typography-tokens:
114
+ m3-tokens.generate-typography-tokens($typography, $typography-system-variables-prefix),
115
+ )
116
+ );
117
+ }
118
+
119
+ /// Defines an Angular Material theme object with color settings.
120
+ /// @param {Map} $config The color configuration
121
+ /// @return {Map} A theme object
122
+ /// @deprecated Use define-theme with a map using the "color" key
123
+ @function define-colors($config: ()) {
124
+ @return define-theme((color: $config));
125
+ }
126
+
127
+ /// Defines an Angular Material theme object with typography settings.
128
+ /// @param {Map} $config The typography configuration
129
+ /// @return {Map} A theme object
130
+ /// @deprecated Use define-theme with a map using the "typography" key
131
+ @function define-typography($config: ()) {
132
+ @return define-theme((typography: $config));
133
+ }
134
+
135
+ /// Defines an Angular Material theme object with density settings.
136
+ /// @param {Map} $config The density configuration
137
+ /// @return {Map} A theme object
138
+ /// @deprecated Use define-theme with a map using the "density" key
139
+ @function define-density($config: ()) {
140
+ @return define-theme((density: $config));
141
+ }
@@ -0,0 +1,289 @@
1
+ @use 'sass:list';
2
+ @use 'sass:map';
3
+ @use '../style/validation';
4
+ @use './m2-inspection';
5
+
6
+ $internals: _mat-theming-internals-do-not-access;
7
+
8
+ $_m3-typescales: (
9
+ display-large,
10
+ display-medium,
11
+ display-small,
12
+ headline-large,
13
+ headline-medium,
14
+ headline-small,
15
+ title-large,
16
+ title-medium,
17
+ title-small,
18
+ label-large,
19
+ label-medium,
20
+ label-small,
21
+ body-large,
22
+ body-medium,
23
+ body-small,
24
+ );
25
+
26
+ $_typography-properties: (font, font-family, line-height, font-size, letter-spacing, font-weight);
27
+
28
+ /// Validates that the given value is a versioned theme object.
29
+ /// @param {Any} $theme The theme object to validate.
30
+ /// @return {Boolean|Null} true if the theme has errors, else null.
31
+ @function _validate-theme-object($theme) {
32
+ $err: validation.validate-type($theme, 'map') or
33
+ map.get($theme, $internals, theme-version) == null;
34
+ @if ($err) {
35
+ @return true;
36
+ }
37
+ @return null;
38
+ }
39
+
40
+ /// Gets the version number of a theme object. A theme that is not a valid versioned theme object is
41
+ /// considered to be version 0.
42
+ /// @param {Map} $theme The theme to check the version of
43
+ /// @return {Number} The version number of the theme (0 if unknown).
44
+ @function get-theme-version($theme) {
45
+ $err: _validate-theme-object($theme);
46
+
47
+ @if ($err) {
48
+ @return 0;
49
+ }
50
+
51
+ @return map.get($theme, $internals, theme-version) or 0;
52
+ }
53
+
54
+ /// Gets the type of theme represented by a theme object (light or dark).
55
+ /// @param {Map} $theme The theme
56
+ /// @return {String} The type of theme (either `light` or `dark`).
57
+ @function get-theme-type($theme) {
58
+ $version: get-theme-version($theme);
59
+ @if $version == 0 {
60
+ @return m2-inspection.get-theme-type($theme);
61
+ }
62
+ @else if $version == 1 {
63
+ @if not theme-has($theme, color) {
64
+ @error 'Color information is not available on this theme.';
65
+ }
66
+ @return map.get($theme, $internals, theme-type) or light;
67
+ }
68
+ @else {
69
+ @error #{'Unrecognized theme version:'} $version;
70
+ }
71
+ }
72
+
73
+
74
+
75
+ /// Gets a color from a theme object. This function take a different amount of arguments depending
76
+ /// on if it's working with an M2 or M3 theme:
77
+ /// - With an M3 theme it accepts either 2 or 3 arguments. If 2 arguments are passed, the second
78
+ /// argument is treated as the name of a color role. If 3 arguments are passed, the second argument
79
+ /// is treated as the name of a color palette (primary, secondary, etc.) and the third is treated
80
+ /// as the palette hue (10, 50, etc.).
81
+ /// - With an M2 theme theme it accepts between 2 and 4 arguments, or the equivalent of calling
82
+ /// the `m2-get-theme-color` function. The first argument is the theme, the second one is the
83
+ /// palette from which to extract the color, the third one is the hue within the palette and the
84
+ /// fourth is the opacity of the returned color.
85
+ /// the second one is the
86
+ /// @param {Map} $theme The theme
87
+ /// @param {String} $color-role-or-palette-name The name of the color role to get, or the name of a
88
+ /// color palette.
89
+ /// @param {Number} $hue The palette hue to get (passing this argument means the second argument is
90
+ /// interpreted as a palette name).
91
+ /// @return {Color} The requested theme color.
92
+ @function get-theme-color($theme, $args...) {
93
+ $version: get-theme-version($theme);
94
+ $args-count: list.length($args) + 1;
95
+
96
+ // M2 theme
97
+ @if $version == 0 {
98
+ @if $args-count < 2 or $args-count > 4 {
99
+ @error 'Expected between 2 and 4 arguments when working with an M2 theme. ' +
100
+ 'Got: #{$args-count}';
101
+ }
102
+ @return m2-inspection.get-theme-color($theme, $args...);
103
+ }
104
+
105
+ // M3 theme
106
+ @if $version == 1 {
107
+ @if $args-count < 2 or $args-count > 3 {
108
+ @error 'Expected either 2 or 3 arguments when working with an M3 theme. Got: #{$args-count}';
109
+ }
110
+ @if ($args-count == 2) {
111
+ @return _get-theme-role-color($theme, $args...);
112
+ }
113
+ @return _get-theme-palette-color($theme, $args...);
114
+ }
115
+
116
+ @error 'Unrecognized theme version: #{$version}';
117
+ }
118
+
119
+ /// Gets a role color from a theme object.
120
+ /// @param {Map} $theme The theme
121
+ /// @param {String} $color-role-name The name of the color role to get.
122
+ /// @return {Color} The requested role color.
123
+ @function _get-theme-role-color($theme, $color-role-name) {
124
+ $err: _validate-theme-object($theme);
125
+ @if $err {
126
+ // TODO(mmalerba): implement for old style theme objects.
127
+ @error #{'get-theme-color does not support legacy theme objects.'};
128
+ }
129
+ @if not theme-has($theme, color) {
130
+ @error 'Color information is not available on this theme.';
131
+ }
132
+ $color-roles: map.get($theme, $internals, color-tokens, (mat, theme));
133
+ $result: map.get($color-roles, $color-role-name);
134
+ @if not $result {
135
+ @error #{'Valid color roles are: #{map.keys($color-roles)}. Got:'} $color-role-name;
136
+ }
137
+ @return $result;
138
+ }
139
+
140
+ /// Gets a palette color from a theme object.
141
+ /// @param {Map} $theme The theme
142
+ /// @param {String} $palette-name The name of the palette to get the color from.
143
+ /// @param {Number} $hue The hue to read from the palette.
144
+ /// @return {Color} The requested palette color.
145
+ @function _get-theme-palette-color($theme, $palette-name, $hue) {
146
+ $err: _validate-theme-object($theme);
147
+ @if $err {
148
+ // TODO(mmalerba): implement for old style theme objects.
149
+ @error #{'get-theme-color does not support legacy theme objects.'};
150
+ }
151
+ @if not theme-has($theme, color) {
152
+ @error 'Color information is not available on this theme.';
153
+ }
154
+ $palettes: map.get($theme, $internals, palettes);
155
+ $palette: map.get($palettes, $palette-name);
156
+ @if not $palette {
157
+ $supported-palettes: map.keys($palettes);
158
+ @error #{'Valid palettes are: #{$supported-palettes}. Got:'} $palette-name;
159
+ }
160
+ $result: map.get($palette, $hue);
161
+ @if not $result {
162
+ $supported-hues: map.keys($palette);
163
+ @error #{'Valid hues for'} $palette-name #{'are: #{$supported-hues}. Got:'} $hue;
164
+ }
165
+ @return $result;
166
+ }
167
+
168
+ /// Gets a typography value from a theme object.
169
+ /// @param {Map} $theme The theme
170
+ /// @param {String} $typescale The typescale name.
171
+ /// @param {String} $property The CSS font property to get
172
+ /// (font, font-family, font-size, font-weight, line-height, or letter-spacing).
173
+ /// @return {*} The value of the requested font property.
174
+ @function get-theme-typography($theme, $typescale, $property: font) {
175
+ $version: get-theme-version($theme);
176
+ @if $version == 0 {
177
+ @return m2-inspection.get-theme-typography($theme, $typescale, $property);
178
+ }
179
+ @else if $version == 1 {
180
+ @if not theme-has($theme, typography) {
181
+ @error 'Typography information is not available on this theme.';
182
+ }
183
+ @if not list.index($_m3-typescales, $typescale) {
184
+ @error #{'Valid typescales are: #{$_m3-typescales}. Got:'} $typescale;
185
+ }
186
+ @if not list.index($_typography-properties, $property) {
187
+ @error #{'Valid typography properties are: #{$_typography-properties}. Got:'} $property;
188
+ }
189
+ $property-key: map.get((
190
+ font: '',
191
+ font-family: '-font',
192
+ line-height: '-line-height',
193
+ font-size: '-size',
194
+ letter-spacing: '-tracking',
195
+ font-weight: '-weight'
196
+ ), $property);
197
+ $token-name: '#{$typescale}#{$property-key}';
198
+ @return map.get($theme, $internals, typography-tokens, (mat, typography), $token-name);
199
+ }
200
+ @else {
201
+ @error #{'Unrecognized theme version:'} $version;
202
+ }
203
+ }
204
+
205
+ /// Gets the density scale from a theme object.
206
+ /// @param {Map} $theme The theme
207
+ /// @return {Number} The density scale.
208
+ @function get-theme-density($theme) {
209
+ $version: get-theme-version($theme);
210
+ @if $version == 0 {
211
+ @return m2-inspection.get-theme-density($theme);
212
+ }
213
+ @else if $version == 1 {
214
+ @if not theme-has($theme, density) {
215
+ @error 'Density information is not available on this theme.';
216
+ }
217
+ @return map.get($theme, $internals, density-scale);
218
+ }
219
+ @else {
220
+ @error #{'Unrecognized theme version:'} $version;
221
+ }
222
+ }
223
+
224
+ /// Checks whether the theme has information about given theming system.
225
+ /// @param {Map} $theme The theme
226
+ /// @param {String} $system The system to check
227
+ /// @param {Boolean} Whether the theme has information about the system.
228
+ @function theme-has($theme, $system) {
229
+ $version: get-theme-version($theme);
230
+ @if $version == 0 {
231
+ @return m2-inspection.theme-has($theme, $system);
232
+ }
233
+ @else if $version == 1 {
234
+ @if $system == base {
235
+ @return map.get($theme, $internals, base-tokens) != null;
236
+ }
237
+ @if $system == color {
238
+ @return map.get($theme, $internals, color-tokens) != null and
239
+ map.get($theme, $internals, theme-type) != null and
240
+ map.get($theme, $internals, palettes) != null;
241
+ }
242
+ @if $system == typography {
243
+ @return map.get($theme, $internals, typography-tokens) != null;
244
+ }
245
+ @if $system == density {
246
+ @return map.get($theme, $internals, density-scale) != null;
247
+ }
248
+ @error 'Valid systems are: base, color, typography, density. Got:' $system;
249
+ }
250
+ @else {
251
+ @error #{'Unrecognized theme version:'} $version;
252
+ }
253
+ }
254
+
255
+ /// Removes the information about the given theming system(s) from the given theme.
256
+ /// @param {Map} $theme The theme to remove information from
257
+ /// @param {String...} $systems The systems to remove
258
+ /// @return {Map} A version of the theme without the removed theming systems.
259
+ @function theme-remove($theme, $systems...) {
260
+ $err: validation.validate-allowed-values($systems, color, typography, density, base);
261
+ @if $err {
262
+ @error #{'Expected $systems to contain valid system names (color, typography, density, or'}
263
+ #{'base). Got invalid system names:'} $err;
264
+ }
265
+ $version: get-theme-version($theme);
266
+ @if $version == 0 {
267
+ @return m2-inspection.theme-remove($theme, $systems...);
268
+ }
269
+ @else if $version == 1 {
270
+ @each $system in $systems {
271
+ @if $system == base {
272
+ $theme: map.deep-remove($theme, $internals, base-tokens);
273
+ }
274
+ @else if $system == color {
275
+ $theme: map.deep-remove($theme, $internals, color-tokens);
276
+ $theme: map.deep-remove($theme, $internals, theme-type);
277
+ $theme: map.deep-remove($theme, $internals, palettes);
278
+ }
279
+ @else if $system == typography {
280
+ $theme: map.deep-remove($theme, $internals, typography-tokens);
281
+ }
282
+ @else if $system == density {
283
+ $theme: map.deep-remove($theme, $internals, density-scale);
284
+ $theme: map.deep-remove($theme, $internals, density-tokens);
285
+ }
286
+ }
287
+ @return $theme;
288
+ }
289
+ }