@expressivecss/expressive 0.14.1 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. package/CHANGELOG.md +88 -1
  2. package/README.md +1 -1
  3. package/dist/css/expressive.css +200 -241
  4. package/dist/css/expressive.css.map +1 -1
  5. package/dist/css/expressive.min.css +1 -1
  6. package/dist/css/expressive.min.css.map +1 -1
  7. package/dist/js/chunks/{chunk-4KMNFIFZ.mjs → chunk-33QVDDGR.mjs} +3 -3
  8. package/dist/js/chunks/{chunk-SPETGK25.mjs → chunk-45FER6RI.mjs} +5 -5
  9. package/dist/js/chunks/chunk-45FER6RI.mjs.map +7 -0
  10. package/dist/js/chunks/{chunk-GIW4K4SE.mjs → chunk-5CEAOLUA.mjs} +11 -10
  11. package/dist/js/chunks/{chunk-GIW4K4SE.mjs.map → chunk-5CEAOLUA.mjs.map} +2 -2
  12. package/dist/js/chunks/{chunk-LRZMJZ3T.mjs → chunk-6VATUZC6.mjs} +10 -6
  13. package/dist/js/chunks/chunk-6VATUZC6.mjs.map +7 -0
  14. package/dist/js/chunks/{chunk-QDAL4IYN.mjs → chunk-74MXKKLN.mjs} +2 -2
  15. package/dist/js/chunks/{chunk-QDAL4IYN.mjs.map → chunk-74MXKKLN.mjs.map} +2 -2
  16. package/dist/js/chunks/{chunk-CUQPB25U.mjs → chunk-AIURVCG6.mjs} +3 -3
  17. package/dist/js/chunks/{chunk-KHV6DZXX.mjs → chunk-BGZLF6JZ.mjs} +16 -16
  18. package/dist/js/chunks/chunk-BGZLF6JZ.mjs.map +7 -0
  19. package/dist/js/chunks/{chunk-BG6ZRB5H.mjs → chunk-C6CHEWYP.mjs} +2 -2
  20. package/dist/js/chunks/{chunk-GVGT6MIU.mjs → chunk-CK2XCICY.mjs} +2 -2
  21. package/dist/js/chunks/{chunk-KY6U46SM.mjs → chunk-CXXM2L4F.mjs} +8 -9
  22. package/dist/js/chunks/chunk-CXXM2L4F.mjs.map +7 -0
  23. package/dist/js/chunks/{chunk-Z2NRKI7R.mjs → chunk-DXGRXYYL.mjs} +25 -37
  24. package/dist/js/chunks/chunk-DXGRXYYL.mjs.map +7 -0
  25. package/dist/js/chunks/{chunk-MZ6Z24BX.mjs → chunk-FM5CZOUB.mjs} +3 -7
  26. package/dist/js/chunks/{chunk-MZ6Z24BX.mjs.map → chunk-FM5CZOUB.mjs.map} +2 -2
  27. package/dist/js/chunks/{chunk-5HQSGDZ5.mjs → chunk-GJL6GCIU.mjs} +34 -55
  28. package/dist/js/chunks/chunk-GJL6GCIU.mjs.map +7 -0
  29. package/dist/js/chunks/chunk-K3HZMFMD.mjs +135 -0
  30. package/dist/js/chunks/chunk-K3HZMFMD.mjs.map +7 -0
  31. package/dist/js/chunks/{chunk-TBM3FT7G.mjs → chunk-KHXZ2A4K.mjs} +12 -15
  32. package/dist/js/chunks/{chunk-TBM3FT7G.mjs.map → chunk-KHXZ2A4K.mjs.map} +2 -2
  33. package/dist/js/chunks/chunk-KQACNQ22.mjs +7 -0
  34. package/dist/js/chunks/{chunk-KBNN3QDH.mjs.map → chunk-KQACNQ22.mjs.map} +1 -1
  35. package/dist/js/chunks/{chunk-UEXCIMJZ.mjs → chunk-KUFHW3DS.mjs} +2 -2
  36. package/dist/js/chunks/{chunk-A7ALMYUR.mjs → chunk-KVJAVDBC.mjs} +7 -15
  37. package/dist/js/chunks/chunk-KVJAVDBC.mjs.map +7 -0
  38. package/dist/js/chunks/{chunk-YDCS5S3J.mjs → chunk-L27Q6ZMI.mjs} +2 -2
  39. package/dist/js/chunks/{chunk-NS2UMNZV.mjs → chunk-LQWUDNHZ.mjs} +3 -3
  40. package/dist/js/chunks/{chunk-MNPROCZF.mjs → chunk-M372EDXD.mjs} +4 -10
  41. package/dist/js/chunks/chunk-M372EDXD.mjs.map +7 -0
  42. package/dist/js/chunks/{chunk-YMSXJON6.mjs → chunk-M3MURWMB.mjs} +15 -12
  43. package/dist/js/chunks/{chunk-YMSXJON6.mjs.map → chunk-M3MURWMB.mjs.map} +2 -2
  44. package/dist/js/chunks/{chunk-JIDMQGK6.mjs → chunk-NUHMOAOY.mjs} +18 -33
  45. package/dist/js/chunks/chunk-NUHMOAOY.mjs.map +7 -0
  46. package/dist/js/chunks/{chunk-VGZSAFTX.mjs → chunk-OWG3LMUL.mjs} +7 -11
  47. package/dist/js/chunks/chunk-OWG3LMUL.mjs.map +7 -0
  48. package/dist/js/chunks/{chunk-LTWPGFBR.mjs → chunk-PD6HYHAE.mjs} +4 -15
  49. package/dist/js/chunks/chunk-PD6HYHAE.mjs.map +7 -0
  50. package/dist/js/chunks/{chunk-ZAS25YFD.mjs → chunk-PDG64UHF.mjs} +3 -3
  51. package/dist/js/chunks/{chunk-QERLECVU.mjs → chunk-PO3AXVR3.mjs} +38 -64
  52. package/dist/js/chunks/chunk-PO3AXVR3.mjs.map +7 -0
  53. package/dist/js/chunks/{chunk-ILP3PDTL.mjs → chunk-QYGK36OG.mjs} +7 -13
  54. package/dist/js/chunks/chunk-QYGK36OG.mjs.map +7 -0
  55. package/dist/js/chunks/{chunk-S3XDFGSZ.mjs → chunk-SFI2U4YW.mjs} +28 -44
  56. package/dist/js/chunks/chunk-SFI2U4YW.mjs.map +7 -0
  57. package/dist/js/chunks/{chunk-FS7XY3HT.mjs → chunk-SMY7GJSS.mjs} +3 -3
  58. package/dist/js/chunks/{chunk-O5XPWXIQ.mjs → chunk-TCCA2HDG.mjs} +39 -31
  59. package/dist/js/chunks/chunk-TCCA2HDG.mjs.map +7 -0
  60. package/dist/js/chunks/{chunk-PM655FXL.mjs → chunk-TSZYSW7F.mjs} +4 -4
  61. package/dist/js/chunks/{chunk-PM655FXL.mjs.map → chunk-TSZYSW7F.mjs.map} +2 -2
  62. package/dist/js/chunks/{chunk-UEZUJQ66.mjs → chunk-UAZSDUVP.mjs} +3 -4
  63. package/dist/js/chunks/{chunk-UEZUJQ66.mjs.map → chunk-UAZSDUVP.mjs.map} +2 -2
  64. package/dist/js/chunks/{chunk-6N2XAEFK.mjs → chunk-UBRZZWRA.mjs} +10 -8
  65. package/dist/js/chunks/chunk-UBRZZWRA.mjs.map +7 -0
  66. package/dist/js/chunks/{chunk-5BKHWHYY.mjs → chunk-UCOE7ZDL.mjs} +41 -46
  67. package/dist/js/chunks/chunk-UCOE7ZDL.mjs.map +7 -0
  68. package/dist/js/chunks/{chunk-4TKTLGEM.mjs → chunk-UETTGDLI.mjs} +3 -3
  69. package/dist/js/chunks/{chunk-RHRQKTTX.mjs → chunk-UNCRDLP6.mjs} +6 -9
  70. package/dist/js/chunks/chunk-UNCRDLP6.mjs.map +7 -0
  71. package/dist/js/chunks/{chunk-GUB3TNO2.mjs → chunk-VGNYF6FB.mjs} +3 -6
  72. package/dist/js/chunks/{chunk-GUB3TNO2.mjs.map → chunk-VGNYF6FB.mjs.map} +2 -2
  73. package/dist/js/chunks/{chunk-X7OCHZVF.mjs → chunk-VGPGBNGL.mjs} +4 -12
  74. package/dist/js/chunks/chunk-VGPGBNGL.mjs.map +7 -0
  75. package/dist/js/chunks/chunk-VKAUVTQY.mjs +1 -0
  76. package/dist/js/chunks/{chunk-HKT2S7VM.mjs → chunk-VM4FTS7L.mjs} +3 -3
  77. package/dist/js/chunks/{chunk-3GVFZ4XO.mjs → chunk-WDK4T63U.mjs} +8 -11
  78. package/dist/js/chunks/chunk-WDK4T63U.mjs.map +7 -0
  79. package/dist/js/chunks/{chunk-GZKEFWPM.mjs → chunk-WOCCTVUF.mjs} +38 -34
  80. package/dist/js/chunks/chunk-WOCCTVUF.mjs.map +7 -0
  81. package/dist/js/chunks/{chunk-QJABDLSD.mjs → chunk-WQYN5L4E.mjs} +11 -16
  82. package/dist/js/chunks/chunk-WQYN5L4E.mjs.map +7 -0
  83. package/dist/js/chunks/{chunk-DAIU5SLG.mjs → chunk-X4ISMKE2.mjs} +2 -2
  84. package/dist/js/chunks/{chunk-3DHK5CZU.mjs → chunk-XAEAEHIX.mjs} +6 -8
  85. package/dist/js/chunks/chunk-XAEAEHIX.mjs.map +7 -0
  86. package/dist/js/chunks/{chunk-4HZMB7LI.mjs → chunk-ZX6M7SWO.mjs} +24 -24
  87. package/dist/js/chunks/chunk-ZX6M7SWO.mjs.map +7 -0
  88. package/dist/js/expressive.cjs +484 -507
  89. package/dist/js/expressive.cjs.map +4 -4
  90. package/dist/js/expressive.js +484 -507
  91. package/dist/js/expressive.js.map +4 -4
  92. package/dist/js/expressive.min.js +10 -13
  93. package/dist/js/expressive.min.js.map +4 -4
  94. package/dist/js/expressive.mjs +54 -50
  95. package/dist/js/expressive.mjs.map +1 -1
  96. package/dist/js/internal/behaviors/bottomSheets.mjs +3 -3
  97. package/dist/js/internal/behaviors/dialogs.mjs +2 -2
  98. package/dist/js/internal/behaviors/forms.mjs +2 -2
  99. package/dist/js/internal/behaviors/sheetDrag.mjs +2 -2
  100. package/dist/js/internal/behaviors/sideSheets.mjs +3 -3
  101. package/dist/js/internal/components/appBar.mjs +2 -2
  102. package/dist/js/internal/components/autocomplete.mjs +4 -4
  103. package/dist/js/internal/components/barChart.mjs +4 -4
  104. package/dist/js/internal/components/buttonGroup.mjs +2 -2
  105. package/dist/js/internal/components/buttons.mjs +3 -3
  106. package/dist/js/internal/components/cards.mjs +3 -3
  107. package/dist/js/internal/components/carousel.mjs +3 -3
  108. package/dist/js/internal/components/characterCounter.mjs +2 -2
  109. package/dist/js/internal/components/chips.mjs +5 -5
  110. package/dist/js/internal/components/columnChart.mjs +3 -3
  111. package/dist/js/internal/components/commandPalette.mjs +3 -3
  112. package/dist/js/internal/components/confetti.mjs +2 -2
  113. package/dist/js/internal/components/datepicker.mjs +6 -6
  114. package/dist/js/internal/components/expandingCard.mjs +3 -3
  115. package/dist/js/internal/components/heatmapChart.mjs +3 -3
  116. package/dist/js/internal/components/index.mjs +47 -43
  117. package/dist/js/internal/components/keypad.mjs +9 -0
  118. package/dist/js/internal/components/keypad.mjs.map +7 -0
  119. package/dist/js/internal/components/lightbox.mjs +3 -3
  120. package/dist/js/internal/components/lineChart.mjs +6 -2
  121. package/dist/js/internal/components/mapView.mjs +3 -3
  122. package/dist/js/internal/components/menu.mjs +3 -3
  123. package/dist/js/internal/components/messageScroller.mjs +3 -3
  124. package/dist/js/internal/components/mixedChart.mjs +4 -4
  125. package/dist/js/internal/components/navigationRail.mjs +2 -2
  126. package/dist/js/internal/components/particles.mjs +2 -2
  127. package/dist/js/internal/components/pieChart.mjs +3 -3
  128. package/dist/js/internal/components/questionnaire.mjs +3 -3
  129. package/dist/js/internal/components/radarChart.mjs +3 -3
  130. package/dist/js/internal/components/radialChart.mjs +3 -3
  131. package/dist/js/internal/components/registry.mjs +41 -40
  132. package/dist/js/internal/components/richTextEditor.mjs +3 -3
  133. package/dist/js/internal/components/scrollspy.mjs +2 -2
  134. package/dist/js/internal/components/select.mjs +4 -4
  135. package/dist/js/internal/components/slider.mjs +3 -3
  136. package/dist/js/internal/components/snackbar.mjs +2 -2
  137. package/dist/js/internal/components/tabs.mjs +4 -4
  138. package/dist/js/internal/components/timepicker.mjs +4 -4
  139. package/dist/js/internal/components/tooltip.mjs +3 -3
  140. package/dist/js/internal/core/component.mjs +1 -1
  141. package/dist/js/internal/core/utils.mjs +1 -1
  142. package/dist/js/internal/plugins/dockedDisplayPlugin.mjs +2 -2
  143. package/dist/js/modular.mjs +54 -50
  144. package/dist/types/components/autocomplete.d.ts +1 -0
  145. package/dist/types/components/datepicker.d.ts +3 -4
  146. package/dist/types/components/expandingCard.d.ts +2 -0
  147. package/dist/types/components/index.d.ts +1 -0
  148. package/dist/types/components/keypad.d.ts +34 -0
  149. package/dist/types/components/lightbox.d.ts +3 -5
  150. package/dist/types/components/lineChart.d.ts +4 -0
  151. package/dist/types/components/menu.d.ts +1 -0
  152. package/dist/types/components/radialChart.d.ts +0 -1
  153. package/dist/types/components/registry.d.ts +4 -0
  154. package/dist/types/components/slider.d.ts +2 -0
  155. package/dist/types/components/snackbar.d.ts +1 -0
  156. package/dist/types/components/tabs.d.ts +4 -0
  157. package/dist/types/components/timepicker.d.ts +2 -0
  158. package/dist/types/modular.d.ts +1 -1
  159. package/dist/types/plugins/dockedDisplayPlugin.d.ts +1 -0
  160. package/package.json +1 -1
  161. package/src/sass/abstracts/_breakpoints.scss +0 -1
  162. package/src/sass/abstracts/_elevation.scss +1 -1
  163. package/src/sass/abstracts/_mixins.scss +20 -60
  164. package/src/sass/abstracts/_variables.scss +10 -0
  165. package/src/sass/base/_global.scss +3 -12
  166. package/src/sass/base/_index.scss +1 -1
  167. package/src/sass/components/_badges.scss +1 -8
  168. package/src/sass/components/_bar-chart.scss +1 -1
  169. package/src/sass/components/_button-groups.scss +31 -66
  170. package/src/sass/components/_cards.scss +6 -25
  171. package/src/sass/components/_carousel.scss +16 -55
  172. package/src/sass/components/_chips.scss +0 -6
  173. package/src/sass/components/_column-chart.scss +1 -1
  174. package/src/sass/components/_data-table.scss +1 -3
  175. package/src/sass/components/_datepicker.scss +3 -22
  176. package/src/sass/components/_dialog.scss +1 -4
  177. package/src/sass/components/_heatmap-chart.scss +2 -2
  178. package/src/sass/components/_icon-buttons.scss +0 -1
  179. package/src/sass/components/_index.scss +1 -0
  180. package/src/sass/components/_keypad.scss +162 -0
  181. package/src/sass/components/_lightbox.scss +3 -8
  182. package/src/sass/components/_map.scss +2 -2
  183. package/src/sass/components/_menu.scss +31 -74
  184. package/src/sass/components/_mixed-chart.scss +1 -1
  185. package/src/sass/components/_navbar.scss +9 -45
  186. package/src/sass/components/_navigation-rail.scss +23 -32
  187. package/src/sass/components/_page-footer.scss +15 -12
  188. package/src/sass/components/_panes.scss +2 -6
  189. package/src/sass/components/_progress.scss +6 -4
  190. package/src/sass/components/_side-sheet.scss +1 -4
  191. package/src/sass/components/_stepper.scss +0 -4
  192. package/src/sass/components/_timepicker.scss +4 -36
  193. package/src/sass/components/_toolbar.scss +0 -4
  194. package/src/sass/components/forms/_checkboxes.scss +37 -65
  195. package/src/sass/components/forms/_fieldset.scss +3 -3
  196. package/src/sass/components/forms/_file-input.scss +0 -1
  197. package/src/sass/components/forms/_radio-buttons.scss +10 -36
  198. package/src/sass/components/forms/_select.scss +0 -3
  199. package/src/sass/components/forms/_slider.scss +72 -259
  200. package/src/sass/tokens/_state.scss +2 -2
  201. package/src/sass/tokens/_theme.scss +1 -1
  202. package/src/sass/utilities/_colors.scss +6 -1
  203. package/src/sass/utilities/_index.scss +1 -1
  204. package/dist/js/chunks/chunk-3DHK5CZU.mjs.map +0 -7
  205. package/dist/js/chunks/chunk-3GVFZ4XO.mjs.map +0 -7
  206. package/dist/js/chunks/chunk-4HZMB7LI.mjs.map +0 -7
  207. package/dist/js/chunks/chunk-5BKHWHYY.mjs.map +0 -7
  208. package/dist/js/chunks/chunk-5HQSGDZ5.mjs.map +0 -7
  209. package/dist/js/chunks/chunk-6N2XAEFK.mjs.map +0 -7
  210. package/dist/js/chunks/chunk-A7ALMYUR.mjs.map +0 -7
  211. package/dist/js/chunks/chunk-GZKEFWPM.mjs.map +0 -7
  212. package/dist/js/chunks/chunk-ILP3PDTL.mjs.map +0 -7
  213. package/dist/js/chunks/chunk-JIDMQGK6.mjs.map +0 -7
  214. package/dist/js/chunks/chunk-KBNN3QDH.mjs +0 -7
  215. package/dist/js/chunks/chunk-KHV6DZXX.mjs.map +0 -7
  216. package/dist/js/chunks/chunk-KY6U46SM.mjs.map +0 -7
  217. package/dist/js/chunks/chunk-LRZMJZ3T.mjs.map +0 -7
  218. package/dist/js/chunks/chunk-LTWPGFBR.mjs.map +0 -7
  219. package/dist/js/chunks/chunk-MNPROCZF.mjs.map +0 -7
  220. package/dist/js/chunks/chunk-O5XPWXIQ.mjs.map +0 -7
  221. package/dist/js/chunks/chunk-QERLECVU.mjs.map +0 -7
  222. package/dist/js/chunks/chunk-QJABDLSD.mjs.map +0 -7
  223. package/dist/js/chunks/chunk-RHRQKTTX.mjs.map +0 -7
  224. package/dist/js/chunks/chunk-S3XDFGSZ.mjs.map +0 -7
  225. package/dist/js/chunks/chunk-SPETGK25.mjs.map +0 -7
  226. package/dist/js/chunks/chunk-VGZSAFTX.mjs.map +0 -7
  227. package/dist/js/chunks/chunk-X7OCHZVF.mjs.map +0 -7
  228. package/dist/js/chunks/chunk-Z2NRKI7R.mjs.map +0 -7
  229. package/dist/js/chunks/chunk-ZKZKNSLC.mjs +0 -1
  230. /package/dist/js/chunks/{chunk-4KMNFIFZ.mjs.map → chunk-33QVDDGR.mjs.map} +0 -0
  231. /package/dist/js/chunks/{chunk-CUQPB25U.mjs.map → chunk-AIURVCG6.mjs.map} +0 -0
  232. /package/dist/js/chunks/{chunk-BG6ZRB5H.mjs.map → chunk-C6CHEWYP.mjs.map} +0 -0
  233. /package/dist/js/chunks/{chunk-GVGT6MIU.mjs.map → chunk-CK2XCICY.mjs.map} +0 -0
  234. /package/dist/js/chunks/{chunk-UEXCIMJZ.mjs.map → chunk-KUFHW3DS.mjs.map} +0 -0
  235. /package/dist/js/chunks/{chunk-YDCS5S3J.mjs.map → chunk-L27Q6ZMI.mjs.map} +0 -0
  236. /package/dist/js/chunks/{chunk-NS2UMNZV.mjs.map → chunk-LQWUDNHZ.mjs.map} +0 -0
  237. /package/dist/js/chunks/{chunk-ZAS25YFD.mjs.map → chunk-PDG64UHF.mjs.map} +0 -0
  238. /package/dist/js/chunks/{chunk-FS7XY3HT.mjs.map → chunk-SMY7GJSS.mjs.map} +0 -0
  239. /package/dist/js/chunks/{chunk-4TKTLGEM.mjs.map → chunk-UETTGDLI.mjs.map} +0 -0
  240. /package/dist/js/chunks/{chunk-ZKZKNSLC.mjs.map → chunk-VKAUVTQY.mjs.map} +0 -0
  241. /package/dist/js/chunks/{chunk-HKT2S7VM.mjs.map → chunk-VM4FTS7L.mjs.map} +0 -0
  242. /package/dist/js/chunks/{chunk-DAIU5SLG.mjs.map → chunk-X4ISMKE2.mjs.map} +0 -0
@@ -222,11 +222,7 @@ article > :is(h1, h2, h3, h4, h5, h6),
222
222
  article > :is(header, .primary-action) > :is(h1, h2, h3, h4, h5, h6) {
223
223
  margin: 0;
224
224
  padding: var(--md-comp-card-content-padding) var(--md-comp-card-content-padding) 0;
225
- font-family: var(--md-sys-typescale-title-medium-font-family-name);
226
- font-size: var(--md-sys-typescale-title-medium-font-size);
227
- font-weight: var(--md-sys-typescale-title-medium-font-weight);
228
- line-height: var(--md-sys-typescale-title-medium-line-height);
229
- letter-spacing: var(--md-sys-typescale-title-medium-letter-spacing);
225
+ @include typescale("title-medium");
230
226
  color: var(--md-comp-card-headline-color);
231
227
  }
232
228
 
@@ -234,11 +230,7 @@ article > p,
234
230
  article > :is(header, .primary-action) > p {
235
231
  margin: 0;
236
232
  padding: var(--md-comp-card-between-space) var(--md-comp-card-content-padding) var(--md-comp-card-content-padding);
237
- font-family: var(--md-sys-typescale-body-medium-font-family-name);
238
- font-size: var(--md-sys-typescale-body-medium-font-size);
239
- font-weight: var(--md-sys-typescale-body-medium-font-weight);
240
- line-height: var(--md-sys-typescale-body-medium-line-height);
241
- letter-spacing: var(--md-sys-typescale-body-medium-letter-spacing);
233
+ @include typescale("body-medium");
242
234
  color: var(--md-comp-card-supporting-text-color);
243
235
  }
244
236
 
@@ -248,11 +240,7 @@ article > p.subhead,
248
240
  article > :is(header, .primary-action) > p.subhead {
249
241
  margin: 0;
250
242
  padding: 4px var(--md-comp-card-content-padding) 0;
251
- font-family: var(--md-sys-typescale-title-small-font-family-name);
252
- font-size: var(--md-sys-typescale-title-small-font-size);
253
- font-weight: var(--md-sys-typescale-title-small-font-weight);
254
- line-height: var(--md-sys-typescale-title-small-line-height);
255
- letter-spacing: var(--md-sys-typescale-title-small-letter-spacing);
243
+ @include typescale("title-small");
256
244
  color: var(--md-comp-card-subhead-color);
257
245
  }
258
246
 
@@ -304,10 +292,7 @@ article > .primary-action > figure img {
304
292
  border-radius: var(--md-comp-card-media-shape);
305
293
  }
306
294
 
307
- article > #{$_media-figure} {
308
- position: relative;
309
- }
310
-
295
+ article > #{$_media-figure},
311
296
  article > .primary-action > #{$_media-figure} {
312
297
  position: relative;
313
298
  }
@@ -655,17 +640,13 @@ article > aside > .reveal-actions > .reveal-action {
655
640
  padding-inline: 0;
656
641
  color: var(--md-sys-color-on-surface);
657
642
  border-radius: 8px;
658
- font-family: var(--md-sys-typescale-body-medium-font-family-name);
659
- font-size: var(--md-sys-typescale-body-medium-font-size);
660
- font-weight: var(--md-sys-typescale-body-medium-font-weight);
661
- line-height: var(--md-sys-typescale-body-medium-line-height);
662
- letter-spacing: var(--md-sys-typescale-body-medium-letter-spacing);
643
+ @include typescale("body-medium");
663
644
  }
664
645
 
665
646
  article > aside > .reveal-actions > .reveal-action:hover {
666
647
  background-color: color-mix(
667
648
  in oklab,
668
- var(--md-sys-color-on-surface) calc(var(--md-sys-state-hover-state-layer-opacity) * 100%),
649
+ var(--md-sys-color-on-surface) state-opacity("hover"),
669
650
  transparent
670
651
  );
671
652
  }
@@ -20,6 +20,11 @@
20
20
  // item shape 28dp
21
21
  // small item width 40–56dp
22
22
 
23
+ // A small item's width: $share of the track, held between the min and max tokens.
24
+ @function _small-item-width($share) {
25
+ @return clamp(var(--md-comp-carousel-small-item-min-width), $share, var(--md-comp-carousel-small-item-max-width));
26
+ }
27
+
23
28
  .carousel {
24
29
  --md-comp-carousel-height: 240px;
25
30
  --md-comp-carousel-shape: 28px;
@@ -110,16 +115,8 @@
110
115
  }
111
116
 
112
117
  &[data-carousel-size="small"] {
113
- flex-basis: clamp(
114
- var(--md-comp-carousel-small-item-min-width),
115
- 12%,
116
- var(--md-comp-carousel-small-item-max-width)
117
- );
118
- width: clamp(
119
- var(--md-comp-carousel-small-item-min-width),
120
- 12%,
121
- var(--md-comp-carousel-small-item-max-width)
122
- );
118
+ flex-basis: _small-item-width(12%);
119
+ width: _small-item-width(12%);
123
120
  }
124
121
 
125
122
  &[data-carousel-size="small"] > .carousel-item-content {
@@ -325,16 +322,8 @@
325
322
  );
326
323
 
327
324
  .carousel-track > .carousel-item[data-carousel-size="small"] {
328
- flex-basis: clamp(
329
- var(--md-comp-carousel-small-item-min-width),
330
- 8%,
331
- var(--md-comp-carousel-small-item-max-width)
332
- );
333
- width: clamp(
334
- var(--md-comp-carousel-small-item-min-width),
335
- 8%,
336
- var(--md-comp-carousel-small-item-max-width)
337
- );
325
+ flex-basis: _small-item-width(8%);
326
+ width: _small-item-width(8%);
338
327
  }
339
328
  }
340
329
 
@@ -360,16 +349,8 @@
360
349
  );
361
350
 
362
351
  .carousel-track > .carousel-item[data-carousel-size="small"] {
363
- flex-basis: clamp(
364
- var(--md-comp-carousel-small-item-min-width),
365
- 6%,
366
- var(--md-comp-carousel-small-item-max-width)
367
- );
368
- width: clamp(
369
- var(--md-comp-carousel-small-item-min-width),
370
- 6%,
371
- var(--md-comp-carousel-small-item-max-width)
372
- );
352
+ flex-basis: _small-item-width(6%);
353
+ width: _small-item-width(6%);
373
354
  }
374
355
  }
375
356
 
@@ -395,16 +376,8 @@
395
376
  );
396
377
 
397
378
  .carousel-track > .carousel-item[data-carousel-size="small"] {
398
- flex-basis: clamp(
399
- var(--md-comp-carousel-small-item-min-width),
400
- 4%,
401
- var(--md-comp-carousel-small-item-max-width)
402
- );
403
- width: clamp(
404
- var(--md-comp-carousel-small-item-min-width),
405
- 4%,
406
- var(--md-comp-carousel-small-item-max-width)
407
- );
379
+ flex-basis: _small-item-width(4%);
380
+ width: _small-item-width(4%);
408
381
  }
409
382
  }
410
383
 
@@ -445,11 +418,7 @@
445
418
  --md-comp-carousel-large-item-width: min(calc(100% - 96px), 720px);
446
419
 
447
420
  .carousel-track > .carousel-item[data-carousel-size="small"] {
448
- flex-basis: clamp(
449
- var(--md-comp-carousel-small-item-min-width),
450
- 12%,
451
- var(--md-comp-carousel-small-item-max-width)
452
- );
421
+ flex-basis: _small-item-width(12%);
453
422
  }
454
423
 
455
424
  &.center-aligned {
@@ -534,16 +503,8 @@
534
503
  border-radius: var(--md-comp-carousel-shape);
535
504
 
536
505
  &[data-carousel-size="small"] {
537
- flex-basis: clamp(
538
- var(--md-comp-carousel-small-item-min-width),
539
- 12%,
540
- var(--md-comp-carousel-small-item-max-width)
541
- );
542
- width: clamp(
543
- var(--md-comp-carousel-small-item-min-width),
544
- 12%,
545
- var(--md-comp-carousel-small-item-max-width)
546
- );
506
+ flex-basis: _small-item-width(12%);
507
+ width: _small-item-width(12%);
547
508
  }
548
509
 
549
510
  > img,
@@ -144,7 +144,6 @@
144
144
  box-shadow: none;
145
145
  margin: 0 0 8px 0;
146
146
  padding: 4px;
147
- // min-height: 45px;
148
147
  outline: none;
149
148
  transition: all .3s;
150
149
 
@@ -167,13 +166,10 @@
167
166
  color: var(--md-sys-color-on-background);
168
167
  display: inline-block;
169
168
  font-size: 16px;
170
- // height: 32px;
171
- // line-height: 32px;
172
169
  height: 32px;
173
170
  outline: 0;
174
171
  margin: 0;
175
172
  padding: 0;
176
- width: 120px;
177
173
  width: fit-content;
178
174
  min-width: 100px;
179
175
  max-width: 200px;
@@ -194,14 +190,12 @@
194
190
  // Form prefix
195
191
  .prefix ~ .chips {
196
192
  margin-left: 3rem;
197
- width: 92%;
198
193
  width: calc(100% - 3rem);
199
194
  }
200
195
 
201
196
  // Form suffix
202
197
  .suffix ~ .chips {
203
198
  margin-right: 3rem;
204
- width: 92%;
205
199
  width: calc(100% - 3rem);
206
200
  }
207
201
 
@@ -119,7 +119,7 @@
119
119
  z-index: -1;
120
120
  width: calc(100% / var(--rows, 1));
121
121
  border-radius: var(--md-comp-column-chart-shape);
122
- background-color: color-mix(in srgb, var(--md-sys-color-on-surface) state-opacity("hover"), transparent);
122
+ background-color: color-mix(in oklab, var(--md-sys-color-on-surface) state-opacity("hover"), transparent);
123
123
  translate: -50% 0;
124
124
  }
125
125
 
@@ -23,8 +23,6 @@
23
23
  // --md-comp-data-table-cell-padding 16px
24
24
  // --md-comp-data-table-selected-container-color secondary-container
25
25
 
26
- $_data-table-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11 20V7.8l-5.6 5.6L4 12l8-8 8 8-1.4 1.4L13 7.8V20z'/%3E%3C/svg%3E");
27
-
28
26
  .data-table {
29
27
  --md-comp-data-table-container-color: var(--md-sys-color-surface);
30
28
  --md-comp-data-table-shape: 12px;
@@ -152,7 +150,7 @@ $_data-table-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000
152
150
  width: 18px;
153
151
  height: 18px;
154
152
  background-color: currentColor;
155
- mask: $_data-table-arrow center / 18px no-repeat;
153
+ mask: $trend-arrow center / 18px no-repeat;
156
154
  opacity: 0;
157
155
  transition: opacity 0.2s ease-out, transform 0.2s ease-out;
158
156
  }
@@ -88,9 +88,6 @@
88
88
  /* Date Display */
89
89
  :is(.datepicker-date-display, .date-picker-date-display) {
90
90
  flex: 1 auto;
91
- // @removed since v2.2.1-dev regarding Material M3 standards
92
- // background-color: var(--md-sys-color-primary);
93
- // color: var(--md-sys-color-on-primary);
94
91
  padding: 20px 22px;
95
92
  border-bottom: 1px solid var(--md-sys-color-surface-variant);
96
93
  font-weight: 500;
@@ -99,7 +96,6 @@
99
96
  display: block;
100
97
  font-size: 1.5rem;
101
98
  line-height: 25px;
102
- color: var(--md-sys-color-on-primary);
103
99
  }
104
100
 
105
101
  .date-text {
@@ -148,28 +144,13 @@
148
144
  :is(.datepicker-day, .date-picker-day) {
149
145
  padding: 0;
150
146
  color: var(--md-sys-color-on-background);
151
- // border-radius: 50%;
152
147
 
153
148
  &.is-today {
154
149
  color: var(--md-sys-color-primary);
155
150
  }
156
-
157
- /*&.is-selected button {
158
- background-color: var(--md-sys-color-primary);
159
- color: var(--md-sys-color-on-primary);
160
- }*/
161
151
  }
162
152
  }
163
153
 
164
- // @todo
165
- :is(.datepicker-day, .date-picker-day).has-event {}
166
- // @todo
167
- :is(.datepicker-day, .date-picker-day).is-inrange {}
168
- // @todo
169
- :is(.datepicker-day, .date-picker-day).is-startrange {}
170
- // @todo
171
- :is(.datepicker-day, .date-picker-day).is-endrange {}
172
-
173
154
  :is(.datepicker-day, .date-picker-day).is-daterange-start,
174
155
  :is(.datepicker-day, .date-picker-day).is-daterange-end,
175
156
  :is(.datepicker-day, .date-picker-day).is-daterange {
@@ -231,9 +212,9 @@
231
212
  }
232
213
  }
233
214
 
234
- &.is-outside-current-month button,
235
- &.is-disabled button {
236
- color: var(--md-sys-color-on-surface);
215
+ // The state classes sit on the <td>, not the button.
216
+ :is(.is-outside-current-month, .is-disabled) & {
217
+ color: color-mix(in oklab, var(--md-sys-color-on-surface) 38%, transparent);
237
218
  pointer-events: none;
238
219
  }
239
220
  }
@@ -247,10 +247,7 @@ dialog.max {
247
247
  background-color: color-mix(in oklab, var(--md-sys-color-on-surface) state-opacity("hover"), transparent);
248
248
  }
249
249
 
250
- &:focus-visible {
251
- outline: 3px solid var(--md-sys-color-secondary);
252
- outline-offset: 2px;
253
- }
250
+ @include focus-visible;
254
251
  }
255
252
 
256
253
  // Confirming action in the header is a text button, not an icon.
@@ -112,14 +112,14 @@
112
112
  }
113
113
 
114
114
  .heatmap-chart-tooltip {
115
+ translate: 8px 0;
116
+
115
117
  // A gap's swatch, outlined like its cell.
116
118
  > span.gap::before {
117
119
  background: none;
118
120
  box-shadow: inset 0 0 0 1px var(--md-comp-heatmap-chart-grid-color);
119
121
  }
120
122
 
121
- translate: 8px 0;
122
-
123
123
  &.end {
124
124
  translate: calc(-100% - 8px) 0;
125
125
  }
@@ -1,4 +1,3 @@
1
- @use "sass:map";
2
1
  @use "../abstracts" as *;
3
2
 
4
3
  // Icon buttons.
@@ -77,3 +77,4 @@
77
77
  @forward "marquee";
78
78
  @forward "confetti";
79
79
  @forward "particles";
80
+ @forward "keypad";
@@ -0,0 +1,162 @@
1
+ @use "../abstracts" as *;
2
+
3
+ // Keypad and keyboard: on-screen keys that type into a text field.
4
+ //
5
+ // Anatomy is the HTML. Every key is a <button type="button">. A key with a
6
+ // `value` types that value; a key with `data-key` is a function key
7
+ // (Backspace, Enter, Shift). `.keypad` is a three-column grid of round keys,
8
+ // the dial pad and PIN pad. `.keyboard` is a column of rows (any <div>), each
9
+ // row a flex line of keys. A key carrying a button style class (.filled,
10
+ // .tonal, .outlined, .elevated, .text) keeps that style, so a call or submit
11
+ // key is written the same way as any other button.
12
+ //
13
+ // Keys press the same way button-group items do: the corner squares off on a
14
+ // spring and springs back on release.
15
+ //
16
+ // Keyboard width comes from a column count rather than per-key classes. A
17
+ // character key is one column wide and may shrink; a function key is one and
18
+ // a half; the space bar takes what is left. Ten columns gives QWERTY's
19
+ // half-key indent on the nine-key row with no extra markup.
20
+
21
+ $_key: "button:not(.filled, .tonal, .outlined, .elevated, .text, :disabled)";
22
+
23
+ :is(.keypad, .keyboard) {
24
+ --md-comp-keypad-key-color: var(--md-sys-color-surface-container-highest);
25
+ --md-comp-keypad-key-label-color: var(--md-sys-color-on-surface);
26
+ --md-comp-keypad-function-key-color: var(--md-sys-color-secondary-container);
27
+ --md-comp-keypad-function-key-label-color: var(--md-sys-color-on-secondary-container);
28
+ --md-comp-keypad-key-pressed-shape: 12px;
29
+ // Material's fast-spatial spring, the curve button groups press with.
30
+ --md-comp-keypad-motion: #{$motion-fast-spatial};
31
+
32
+ touch-action: manipulation;
33
+
34
+ button {
35
+ --_color: var(--md-comp-keypad-key-color);
36
+ --_label: var(--md-comp-keypad-key-label-color);
37
+ min-width: 0;
38
+ padding: 0;
39
+ transition:
40
+ border-radius 200ms var(--md-comp-keypad-motion),
41
+ background-color 200ms ease-out;
42
+
43
+ &[data-key] {
44
+ --_color: var(--md-comp-keypad-function-key-color);
45
+ --_label: var(--md-comp-keypad-function-key-label-color);
46
+ }
47
+
48
+ // The state layer's opacity. Only the rule below reads it, so a key
49
+ // that keeps a button style ignores it.
50
+ @each $state, $selector in ("hover": "&:hover", "focus": "&:focus", "pressed": "&:active") {
51
+ #{$selector} {
52
+ --_state: #{state-opacity($state)};
53
+ }
54
+ }
55
+
56
+ &:active:not(:disabled) {
57
+ border-radius: var(--md-comp-keypad-key-pressed-shape);
58
+ }
59
+
60
+ // The shape stops moving; the color still fades, which is not motion.
61
+ @media (prefers-reduced-motion: reduce) {
62
+ transition-property: background-color;
63
+ }
64
+ }
65
+
66
+ #{$_key} {
67
+ color: var(--_label);
68
+ background-color: color-mix(in oklab, var(--_label) var(--_state, 0%), var(--_color));
69
+ }
70
+
71
+ // A latched Shift reads as selected: primary, like a selected toggle.
72
+ [data-key="Shift"][aria-pressed="true"] {
73
+ --_color: var(--md-sys-color-primary);
74
+ --_label: var(--md-sys-color-on-primary);
75
+ }
76
+ }
77
+
78
+ // Dial pad and PIN pad: three columns of round keys. A digit key may carry
79
+ // its letters in a <small> under the digit. An empty cell is an empty <span>.
80
+ // Keys fill their cell, so `.wide` spans two and becomes a pill: a call key
81
+ // beside Backspace leaves no hole in the last row.
82
+ .keypad {
83
+ --md-comp-keypad-key-size: 72px;
84
+ --md-comp-keypad-gap: 12px;
85
+
86
+ display: inline-grid;
87
+ grid-template-columns: repeat(3, var(--md-comp-keypad-key-size));
88
+ gap: var(--md-comp-keypad-gap);
89
+
90
+ button {
91
+ flex-direction: column;
92
+ gap: 0;
93
+ width: 100%;
94
+ height: var(--md-comp-keypad-key-size);
95
+ border-radius: calc(var(--md-comp-keypad-key-size) / 2);
96
+ @include typescale("headline-medium");
97
+
98
+ &.wide {
99
+ grid-column: span 2;
100
+ }
101
+
102
+ > small {
103
+ @include typescale("label-small");
104
+ color: inherit;
105
+ opacity: .78;
106
+ }
107
+ }
108
+ }
109
+
110
+ // On-screen keyboard. The container is a docked surface; each row is a line
111
+ // of keys sized from the column count. An optional `.numbers` row of digits
112
+ // sits above the letters with shorter keys, as on a phone; `hidden` drops it.
113
+ // Rows skip `display: flex` while hidden, which would otherwise outrank the
114
+ // browser's `[hidden]` rule.
115
+ .keyboard {
116
+ --md-comp-keyboard-columns: 10;
117
+ --md-comp-keyboard-gap: 6px;
118
+ --md-comp-keyboard-key-height: 48px;
119
+ --md-comp-keyboard-number-key-height: 40px;
120
+ --md-comp-keyboard-key-shape: 12px;
121
+ --md-comp-keypad-key-pressed-shape: 6px;
122
+ --md-comp-keyboard-container-color: var(--md-sys-color-surface-container);
123
+ --md-comp-keyboard-container-shape: 16px;
124
+
125
+ display: flex;
126
+ flex-direction: column;
127
+ gap: 8px;
128
+ padding: 8px;
129
+ border-radius: var(--md-comp-keyboard-container-shape);
130
+ background-color: var(--md-comp-keyboard-container-color);
131
+
132
+ > :not([hidden]) {
133
+ --_unit: calc((100% - (var(--md-comp-keyboard-columns) - 1) * var(--md-comp-keyboard-gap)) / var(--md-comp-keyboard-columns));
134
+ display: flex;
135
+ justify-content: center;
136
+ gap: var(--md-comp-keyboard-gap);
137
+ }
138
+
139
+ button {
140
+ flex: 0 1 var(--_unit);
141
+ height: var(--md-comp-keyboard-key-height);
142
+ border-radius: var(--md-comp-keyboard-key-shape);
143
+ @include typescale("title-medium");
144
+
145
+ &[data-key] {
146
+ flex-basis: calc(1.5 * var(--_unit) + .5 * var(--md-comp-keyboard-gap));
147
+ }
148
+
149
+ &[value=" "] {
150
+ flex-grow: 1;
151
+ }
152
+ }
153
+
154
+ > .numbers button {
155
+ height: var(--md-comp-keyboard-number-key-height);
156
+ }
157
+
158
+ // Shift shows capitals on the character keys while it is latched.
159
+ &:has([data-key="Shift"][aria-pressed="true"]) button[value] {
160
+ text-transform: uppercase;
161
+ }
162
+ }
@@ -11,10 +11,8 @@
11
11
  border-radius: 12px;
12
12
  }
13
13
 
14
- &:hover {
15
- &:not(.active) {
16
- opacity: .8;
17
- }
14
+ &:hover:not(.active) {
15
+ opacity: .8;
18
16
  }
19
17
  &.active {
20
18
  cursor: zoom-out;
@@ -23,10 +21,7 @@
23
21
 
24
22
  #lightbox-overlay {
25
23
  position:fixed;
26
- top: 0;
27
- right: 0;
28
- bottom: 0;
29
- left: 0;
24
+ inset: 0;
30
25
  background-color: var(--md-sys-color-background);
31
26
  z-index: 1000;
32
27
  will-change: opacity;
@@ -85,7 +85,7 @@
85
85
  &.location {
86
86
  --md-comp-map-marker-color: var(--md-sys-color-tertiary);
87
87
 
88
- box-shadow: 0 0 0 8px color-mix(in srgb, var(--md-comp-map-marker-color) 24%, transparent);
88
+ box-shadow: 0 0 0 8px color-mix(in oklab, var(--md-comp-map-marker-color) 24%, transparent);
89
89
  cursor: default;
90
90
  }
91
91
  }
@@ -151,7 +151,7 @@
151
151
  line-height: 1;
152
152
 
153
153
  &:hover {
154
- background-color: color-mix(in srgb, currentColor 8%, transparent) !important;
154
+ background-color: color-mix(in oklab, currentColor 8%, transparent) !important;
155
155
  }
156
156
 
157
157
  @include focus-visible;