@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,340 @@
1
+ @use 'sass:list';
2
+ @use 'sass:map';
3
+ @use 'sass:meta';
4
+ @use 'sass:color';
5
+ @use '../theming/theming';
6
+ @use '../tokens/m2';
7
+ @use './palette';
8
+
9
+ /// Extracts a color from a palette or throws an error if it doesn't exist.
10
+ /// @param {Map} $palette The palette from which to extract a color.
11
+ /// @param {String | Number} $hue The hue for which to get the color.
12
+ @function _get-color-from-palette($palette, $hue) {
13
+ @if map.has-key($palette, $hue) {
14
+ @return map.get($palette, $hue);
15
+ }
16
+
17
+ @error 'Hue "' + $hue + '" does not exist in palette. Available hues are: ' + map.keys($palette);
18
+ }
19
+
20
+ /// For a given hue in a palette, return the contrast color from the map of contrast palettes.
21
+ /// @param {Map} $palette The palette from which to extract a color.
22
+ /// @param {String | Number} $hue The hue for which to get a contrast color.
23
+ /// @returns {Color} The contrast color for the given palette and hue.
24
+ @function get-contrast-color-from-palette($palette, $hue) {
25
+ @return map.get(map.get($palette, contrast), $hue);
26
+ }
27
+
28
+ /// Creates a map of hues to colors for a theme. This is used to define a theme palette in terms
29
+ /// of the Material Design hues.
30
+ /// @param {Map} $base-palette Map of hue keys to color values for the basis for this palette.
31
+ /// @param {String | Number} $default Default hue for this palette.
32
+ /// @param {String | Number} $lighter "lighter" hue for this palette.
33
+ /// @param {String | Number} $darker "darker" hue for this palette.
34
+ /// @param {String | Number} $text "text" hue for this palette.
35
+ /// @returns {Map} A complete Angular Material theming palette.
36
+ @function define-palette(
37
+ $base-palette,
38
+ $default: 500,
39
+ $lighter: 100,
40
+ $darker: 700,
41
+ $text: $default
42
+ ) {
43
+ $result: map.merge(
44
+ $base-palette,
45
+ (
46
+ default: _get-color-from-palette($base-palette, $default),
47
+ lighter: _get-color-from-palette($base-palette, $lighter),
48
+ darker: _get-color-from-palette($base-palette, $darker),
49
+ text: _get-color-from-palette($base-palette, $text),
50
+ default-contrast: get-contrast-color-from-palette($base-palette, $default),
51
+ lighter-contrast: get-contrast-color-from-palette($base-palette, $lighter),
52
+ darker-contrast: get-contrast-color-from-palette($base-palette, $darker),
53
+ )
54
+ );
55
+
56
+ // For each hue in the palette, add a "-contrast" color to the map.
57
+ @each $hue, $color in $base-palette {
58
+ $result: map.merge(
59
+ $result,
60
+ (
61
+ '#{$hue}-contrast': get-contrast-color-from-palette($base-palette, $hue),
62
+ )
63
+ );
64
+ }
65
+
66
+ @return $result;
67
+ }
68
+
69
+ /// Gets a color from a theme palette (the output of mat-palette).
70
+ /// The hue can be one of the standard values (500, A400, etc.), one of the three preconfigured
71
+ /// hues (default, lighter, darker), or any of the aforementioned suffixed with "-contrast".
72
+ ///
73
+ /// @param {Map} $palette The palette from which to extract a color.
74
+ /// @param {String | Number} $hue The hue from the palette to use. If this is a value between 0
75
+ // and 1, it will be treated as opacity.
76
+ /// @param {Number} $opacity The alpha channel value for the color.
77
+ /// @returns {Color} The color for the given palette, hue, and opacity.
78
+ @function get-color-from-palette($palette, $hue: default, $opacity: null) {
79
+ // If hueKey is a number between zero and one, then it actually contains an
80
+ // opacity value, so recall this function with the default hue and that given opacity.
81
+ @if meta.type-of($hue) == number and $hue >= 0 and $hue <= 1 {
82
+ @return get-color-from-palette($palette, default, $hue);
83
+ }
84
+
85
+ // We cast the $hue to a string, because some hues starting with a number, like `700-contrast`,
86
+ // might be inferred as numbers by Sass. Casting them to string fixes the map lookup.
87
+ $color: null;
88
+
89
+ @if (map.has-key($palette, $hue)) {
90
+ $color: map.get($palette, $hue);
91
+ } @else {
92
+ $color: map.get($palette, $hue + '');
93
+ }
94
+
95
+ @if ($opacity == null) {
96
+ @return $color;
97
+ }
98
+
99
+ @if (meta.type-of($color) != color) {
100
+ $opacity: ($opacity * 100) + '%';
101
+ @return #{color-mix(in srgb, #{$color} #{$opacity}, transparent)};
102
+ }
103
+
104
+ @return rgba($color, $opacity);
105
+ }
106
+
107
+ // Validates the specified theme by ensuring that the optional color config defines
108
+ // a primary, accent and warn palette. Returns the theme if no failures were found.
109
+ @function _mat-validate-theme($theme) {
110
+ @if map.get($theme, color) {
111
+ $color: map.get($theme, color);
112
+ @if not map.get($color, primary) {
113
+ @error 'Theme does not define a valid "primary" palette.';
114
+ } @else if not map.get($color, accent) {
115
+ @error 'Theme does not define a valid "accent" palette.';
116
+ } @else if not map.get($color, warn) {
117
+ @error 'Theme does not define a valid "warn" palette.';
118
+ }
119
+ }
120
+ @return $theme;
121
+ }
122
+
123
+ @function _define-system($primary, $accent, $warn, $is-dark, $typography, $density-scale) {
124
+ $palettes: (
125
+ primary: $primary,
126
+ accent: $accent,
127
+ warn: $warn,
128
+ );
129
+
130
+ $sys-state: m2.md-sys-state-values();
131
+ $sys-typography: m2.md-sys-typescale-values($typography);
132
+ $sys-color: null;
133
+
134
+ @if ($is-dark) {
135
+ $sys-color: m2.md-sys-color-values-dark($palettes);
136
+ } @else {
137
+ $sys-color: m2.md-sys-color-values-light($palettes);
138
+ }
139
+
140
+ $system: (density-scale: $density-scale);
141
+ @each $map in ($sys-color, $sys-state, $sys-typography) {
142
+ $system: map.merge($system, $map);
143
+ }
144
+
145
+ @return $system;
146
+ }
147
+
148
+ // Creates a color configuration from the specified
149
+ // primary, accent and warn palettes.
150
+ @function _mat-create-color-config($primary, $accent, $warn: null, $is-dark) {
151
+ $foreground: null;
152
+ $background: null;
153
+ $warn-palette: $warn or define-palette(palette.$red-palette);
154
+
155
+ @if ($is-dark) {
156
+ $foreground: palette.$dark-theme-foreground-palette;
157
+ $background: palette.$dark-theme-background-palette;
158
+ } @else {
159
+ $foreground: palette.$light-theme-foreground-palette;
160
+ $background: palette.$light-theme-background-palette;
161
+ }
162
+
163
+ @return (
164
+ primary: $primary,
165
+ accent: $accent,
166
+ warn: $warn-palette,
167
+ is-dark: $is-dark,
168
+ foreground: $foreground,
169
+ background: $background,
170
+ );
171
+ }
172
+
173
+ /// Creates a container object for a theme to be given to individual component theme mixins.
174
+ /// @param {Map} $primary The theme configuration object.
175
+ /// @returns {Map} A complete Angular Material theme map.
176
+ @function _define-theme(
177
+ $primary, $accent: null, $warn: define-palette(palette.$red-palette), $is-dark) {
178
+ // This function creates a container object for the individual component theme mixins. Consumers
179
+ // can construct such an object by calling this function, or by building the object manually.
180
+ // There are two possible ways to invoke this function in order to create such an object:
181
+ //
182
+ // (1) Passing in a map that holds optional configurations for individual parts of the
183
+ // theming system. For `color` configurations, the function only expects the palettes
184
+ // for `primary` and `accent` (and optionally `warn`). The function will expand the
185
+ // shorthand into an actual configuration that can be consumed in `-color` mixins.
186
+ // (2) Legacy pattern: Passing in the palettes as parameters. This is not as flexible
187
+ // as passing in a configuration map because only the `color` system can be configured.
188
+ //
189
+ // If the legacy pattern is used, we generate a container object only with a light-themed
190
+ // configuration for the `color` theming part.
191
+ @if $accent != null {
192
+ @warn theming.$private-legacy-theme-warning;
193
+ $theme: _mat-validate-theme(
194
+ (
195
+ _is-legacy-theme: true,
196
+ color: _mat-create-color-config($primary, $accent, $warn, $is-dark),
197
+ )
198
+ );
199
+
200
+ $theme: _internalize-theme(theming.private-create-backwards-compatibility-theme($theme));
201
+ $system: _define-system(
202
+ $primary: $primary,
203
+ $accent: $accent,
204
+ $warn: $warn,
205
+ $is-dark: $is-dark,
206
+ $typography: (),
207
+ $density-scale: 0
208
+ );
209
+ $theme: map.set($theme, _mat-system, $system);
210
+ @return $theme;
211
+ }
212
+ // If the map pattern is used (1), we just pass-through the configurations for individual
213
+ // parts of the theming system, but update the `color` configuration if set. As explained
214
+ // above, the color shorthand will be expanded to an actual light-themed color configuration.
215
+ $result: $primary;
216
+ @if map.get($primary, color) {
217
+ $color-settings: map.get($primary, color);
218
+ $primary: map.get($color-settings, primary);
219
+ $accent: map.get($color-settings, accent);
220
+ $warn: map.get($color-settings, warn);
221
+ $result: map.merge(
222
+ $result,
223
+ (
224
+ color: _mat-create-color-config($primary, $accent, $warn, $is-dark),
225
+ )
226
+ );
227
+ }
228
+ $theme: _internalize-theme(
229
+ theming.private-create-backwards-compatibility-theme(_mat-validate-theme($result))
230
+ );
231
+ $system: _define-system(
232
+ $primary: map.get($result, primary) or map.get($result, color, primary) or (),
233
+ $accent: map.get($result, accent) or map.get($result, color, accent) or (),
234
+ $warn: map.get($result, warn) or map.get($result, color, warn) or (),
235
+ $is-dark: $is-dark,
236
+ $typography: map.get($result, typography) or (),
237
+ $density-scale: map.get($result, density),
238
+ );
239
+ $theme: map.set($theme, _mat-system, $system);
240
+ @return $theme;
241
+ }
242
+
243
+ // TODO: Remove legacy API and rename `$primary` below to `$config`. Currently it cannot be renamed
244
+ // as it would break existing apps that set the parameter by name.
245
+
246
+ /// Creates a container object for a light theme to be given to individual component theme mixins.
247
+ /// @param {Map} $primary The theme configuration object.
248
+ /// @returns {Map} A complete Angular Material theme map.
249
+ @function define-light-theme($primary, $accent: null, $warn: define-palette(palette.$red-palette)) {
250
+ @return _define-theme($primary, $accent, $warn, false);
251
+ }
252
+
253
+ // TODO: Remove legacy API and rename below `$primary` to `$config`. Currently it cannot be renamed
254
+ // as it would break existing apps that set the parameter by name.
255
+
256
+ /// Creates a container object for a dark theme to be given to individual component theme mixins.
257
+ /// @param {Map} $primary The theme configuration object.
258
+ /// @returns {Map} A complete Angular Material theme map.
259
+ @function define-dark-theme($primary, $accent: null, $warn: define-palette(palette.$red-palette)) {
260
+ @return _define-theme($primary, $accent, $warn, true);
261
+ }
262
+
263
+ /// Gets the color configuration from the given theme or configuration.
264
+ /// @param {Map} $theme The theme map returned from `define-light-theme` or `define-dark-theme`.
265
+ /// @param {Map} $default The default value returned if the given `$theme` does not include a
266
+ /// `color` configuration.
267
+ /// @returns {Map} Color configuration for a theme.
268
+ @function get-color-config($theme, $default: null) {
269
+ @return theming.private-get-color-config($theme, $default);
270
+ }
271
+
272
+ /// Gets the density configuration from the given theme or configuration.
273
+ /// @param {Map|string|number} $theme-or-config The theme map returned from `define-light-theme` or
274
+ /// `define-dark-theme`.
275
+ /// @param {string|number} $default The default value returned if the given `$theme` does not
276
+ /// include a `density` configuration.
277
+ /// @returns {string|number} Density configuration for a theme.
278
+ @function get-density-config($theme-or-config, $default: 0) {
279
+ @return theming.private-get-density-config($theme-or-config, $default);
280
+ }
281
+
282
+ /// Gets the typography configuration from the given theme or configuration.
283
+ /// For backwards compatibility, typography is not included by default.
284
+ /// @param {Map} $theme-or-config The theme map returned from `define-light-theme` or
285
+ /// `define-dark-theme`.
286
+ /// @param {Map} $default The default value returned if the given `$theme` does not include a
287
+ /// `typography` configuration.
288
+ /// @returns {Map} Typography configuration for a theme.
289
+ @function get-typography-config($theme-or-config, $default: null) {
290
+ @return theming.private-get-typography-config($theme-or-config, $default);
291
+ }
292
+
293
+ /// Copies the given theme object and nests it within itself under a secret key and replaces the
294
+ /// original map keys with error values. This allows the inspection API which is aware of the secret
295
+ /// key to access the real values, but attempts to directly access the map will result in errors.
296
+ /// @param {Map} $theme The theme map.
297
+ @function _internalize-theme($theme) {
298
+ @if map.has-key($theme, theming.$private-internal-name) {
299
+ @return $theme;
300
+ }
301
+ $internalized-theme: (
302
+ theming.$private-internal-name: (
303
+ theme-version: 0,
304
+ m2-config: $theme,
305
+ ),
306
+ );
307
+ @if (theming.$theme-legacy-inspection-api-compatibility) {
308
+ @return map.merge($theme, $internalized-theme);
309
+ }
310
+ $error-theme: _replace-values-with-errors(
311
+ $theme,
312
+ 'Theme may only be accessed via theme inspection API'
313
+ );
314
+ @return map.merge($error-theme, $internalized-theme);
315
+ }
316
+
317
+ /// Replaces concrete CSS values with errors in a theme object.
318
+ /// Errors are represented as a map `(ERROR: <message>)`. Because maps are not valid CSS values,
319
+ /// the Sass will not compile if the user tries to use any of the error theme values in their CSS.
320
+ /// Users will see a message about `(ERROR: <message>)` not being a valid CSS value. Using the
321
+ /// message, that winds up getting shown, we can help explain to users why they're getting the
322
+ /// error.
323
+ /// @param {*} $value The theme value to replace with errors.
324
+ /// @param {String} $message The error message to sow users.
325
+ /// @return {Map} A version of $value where concrete CSS values have been replaced with errors
326
+ @function _replace-values-with-errors($value, $message) {
327
+ $value-type: meta.type-of($value);
328
+ @if $value-type == 'map' {
329
+ @each $k, $v in $value {
330
+ $value: map.set($value, $k, _replace-values-with-errors($v, $message));
331
+ }
332
+ @return $value;
333
+ } @else if $value-type == 'list' and list.length($value) > 0 {
334
+ @for $i from 1 through list.length() {
335
+ $value: list.set-nth($value, $i, _replace-values-with-errors(list.nth($value, $i), $message));
336
+ }
337
+ @return $value;
338
+ }
339
+ @return (ERROR: $message);
340
+ }
@@ -0,0 +1,81 @@
1
+ @use 'sass:map';
2
+ @use 'sass:meta';
3
+ @use 'sass:string';
4
+
5
+ /// Emits CSS styles for the given typography level.
6
+ /// @param {Map} $config A typography config.
7
+ /// @param {Map} $level A typography level.
8
+ @mixin typography-level($config, $level) {
9
+ // we deliberately do not use the font shorthand here because it overrides
10
+ // certain font properties that can't be configured in the current typography
11
+ // config, e.g. the font-variant-caps or font-feature-settings property
12
+ font-size: font-size($config, $level);
13
+ font-weight: font-weight($config, $level);
14
+ line-height: line-height($config, $level);
15
+ font-family: font-family($config, $level);
16
+ letter-spacing: letter-spacing($config, $level);
17
+ }
18
+
19
+ // Utility for fetching a nested value from a typography config.
20
+ @function _mat-get-type-value($config, $level, $name) {
21
+ @if meta.type-of($config) != 'map' {
22
+ @error 'Typography config must be a map. Received #{meta.type-of($config)}.';
23
+ }
24
+
25
+ @if not map.has-key($config, $level) {
26
+ @error 'Typography config does not have a level called "#{$level}". ' +
27
+ 'Available levels are: #{map.keys($config)}.';
28
+ }
29
+
30
+ @return map.get(map.get($config, $level), $name);
31
+ }
32
+
33
+ /// Gets the font size for a level inside a typography config.
34
+ /// @param {Map} $config A typography config.
35
+ /// @param {Map} $level A typography level.
36
+ @function font-size($config, $level) {
37
+ @return _mat-get-type-value($config, $level, font-size);
38
+ }
39
+
40
+ /// Gets the line height for a level inside a typography config.
41
+ /// @param {Map} $config A typography config.
42
+ /// @param {Map} $level A typography level.
43
+ @function line-height($config, $level) {
44
+ @return _mat-get-type-value($config, $level, line-height);
45
+ }
46
+
47
+ /// Gets the font weight for a level inside a typography config.
48
+ /// @param {Map} $config A typography config.
49
+ /// @param {Map} $level A typography level.
50
+ @function font-weight($config, $level) {
51
+ @return _mat-get-type-value($config, $level, font-weight);
52
+ }
53
+
54
+ /// Gets the letter spacing for a level inside a typography config.
55
+ /// @param {Map} $config A typography config.
56
+ /// @param {Map} $level A typography level.
57
+ @function letter-spacing($config, $level) {
58
+ @return _mat-get-type-value($config, $level, letter-spacing);
59
+ }
60
+
61
+ /// Gets the font-family from a typography config and removes the quotes around it.
62
+ /// @param {Map} $config A typography config.
63
+ /// @param {Map} $level A typography level.
64
+ @function font-family($config, $level: null) {
65
+ @if meta.type-of($config) != 'map' {
66
+ @error 'Typography config must be a map. Received #{meta.type-of($config)}.';
67
+ }
68
+
69
+ $font-family: map.get($config, font-family);
70
+
71
+ @if $level != null {
72
+ $font-family: _mat-get-type-value($config, $level, font-family);
73
+ }
74
+
75
+ // Guard against unquoting non-string values, because it's deprecated.
76
+ @if (meta.type-of($font-family) == string) {
77
+ $font-family: string.unquote($font-family);
78
+ }
79
+
80
+ @return $font-family;
81
+ }