@expressivecss/expressive 0.13.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 (257) hide show
  1. package/CHANGELOG.md +196 -1
  2. package/README.md +2 -1
  3. package/dist/css/expressive.css +432 -311
  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-DTKR54I6.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-WJXDBPXQ.mjs → chunk-5CEAOLUA.mjs} +17 -20
  11. package/dist/js/chunks/chunk-5CEAOLUA.mjs.map +7 -0
  12. package/dist/js/chunks/{chunk-CKQP6P76.mjs → chunk-6VATUZC6.mjs} +12 -7
  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-DLWYKFEI.mjs → chunk-AIURVCG6.mjs} +3 -3
  17. package/dist/js/chunks/{chunk-NNYP33NB.mjs → chunk-BGZLF6JZ.mjs} +19 -18
  18. package/dist/js/chunks/chunk-BGZLF6JZ.mjs.map +7 -0
  19. package/dist/js/chunks/chunk-C6CHEWYP.mjs +154 -0
  20. package/dist/js/chunks/chunk-C6CHEWYP.mjs.map +7 -0
  21. package/dist/js/chunks/{chunk-GVGT6MIU.mjs → chunk-CK2XCICY.mjs} +2 -2
  22. package/dist/js/chunks/{chunk-XGHORT7J.mjs → chunk-CXXM2L4F.mjs} +8 -9
  23. package/dist/js/chunks/chunk-CXXM2L4F.mjs.map +7 -0
  24. package/dist/js/chunks/{chunk-QVVEWBOF.mjs → chunk-DXGRXYYL.mjs} +25 -37
  25. package/dist/js/chunks/chunk-DXGRXYYL.mjs.map +7 -0
  26. package/dist/js/chunks/{chunk-QV2JAWIZ.mjs → chunk-FM5CZOUB.mjs} +5 -8
  27. package/dist/js/chunks/{chunk-QV2JAWIZ.mjs.map → chunk-FM5CZOUB.mjs.map} +2 -2
  28. package/dist/js/chunks/{chunk-PLYXLSH3.mjs → chunk-GJL6GCIU.mjs} +46 -58
  29. package/dist/js/chunks/chunk-GJL6GCIU.mjs.map +7 -0
  30. package/dist/js/chunks/chunk-K3HZMFMD.mjs +135 -0
  31. package/dist/js/chunks/chunk-K3HZMFMD.mjs.map +7 -0
  32. package/dist/js/chunks/chunk-KHXZ2A4K.mjs +395 -0
  33. package/dist/js/chunks/chunk-KHXZ2A4K.mjs.map +7 -0
  34. package/dist/js/chunks/chunk-KQACNQ22.mjs +7 -0
  35. package/dist/js/chunks/{chunk-4PWAPV6F.mjs.map → chunk-KQACNQ22.mjs.map} +1 -1
  36. package/dist/js/chunks/chunk-KUFHW3DS.mjs +214 -0
  37. package/dist/js/chunks/chunk-KUFHW3DS.mjs.map +7 -0
  38. package/dist/js/chunks/{chunk-LWBQIX5J.mjs → chunk-KVJAVDBC.mjs} +46 -57
  39. package/dist/js/chunks/chunk-KVJAVDBC.mjs.map +7 -0
  40. package/dist/js/chunks/{chunk-YDCS5S3J.mjs → chunk-L27Q6ZMI.mjs} +2 -2
  41. package/dist/js/chunks/{chunk-CCWDV5CR.mjs → chunk-LQWUDNHZ.mjs} +3 -3
  42. package/dist/js/chunks/{chunk-6OMRGML6.mjs → chunk-M372EDXD.mjs} +7 -13
  43. package/dist/js/chunks/{chunk-6OMRGML6.mjs.map → chunk-M372EDXD.mjs.map} +2 -2
  44. package/dist/js/chunks/{chunk-EC63CHXU.mjs → chunk-M3MURWMB.mjs} +20 -16
  45. package/dist/js/chunks/chunk-M3MURWMB.mjs.map +7 -0
  46. package/dist/js/chunks/{chunk-U2OTHOTI.mjs → chunk-NUHMOAOY.mjs} +19 -33
  47. package/dist/js/chunks/chunk-NUHMOAOY.mjs.map +7 -0
  48. package/dist/js/chunks/{chunk-P3G3QHII.mjs → chunk-OWG3LMUL.mjs} +17 -14
  49. package/dist/js/chunks/chunk-OWG3LMUL.mjs.map +7 -0
  50. package/dist/js/chunks/{chunk-LTWPGFBR.mjs → chunk-PD6HYHAE.mjs} +4 -15
  51. package/dist/js/chunks/chunk-PD6HYHAE.mjs.map +7 -0
  52. package/dist/js/chunks/{chunk-PIJ2TAR3.mjs → chunk-PDG64UHF.mjs} +3 -3
  53. package/dist/js/chunks/{chunk-IFXVDDDH.mjs → chunk-PO3AXVR3.mjs} +38 -64
  54. package/dist/js/chunks/chunk-PO3AXVR3.mjs.map +7 -0
  55. package/dist/js/chunks/{chunk-QKWPQK5N.mjs → chunk-QYGK36OG.mjs} +16 -14
  56. package/dist/js/chunks/chunk-QYGK36OG.mjs.map +7 -0
  57. package/dist/js/chunks/{chunk-UNEMYWEW.mjs → chunk-SFI2U4YW.mjs} +28 -44
  58. package/dist/js/chunks/chunk-SFI2U4YW.mjs.map +7 -0
  59. package/dist/js/chunks/{chunk-VTLBW7QS.mjs → chunk-SMY7GJSS.mjs} +3 -3
  60. package/dist/js/chunks/{chunk-O5XPWXIQ.mjs → chunk-TCCA2HDG.mjs} +39 -31
  61. package/dist/js/chunks/chunk-TCCA2HDG.mjs.map +7 -0
  62. package/dist/js/chunks/{chunk-UBLRRJ7N.mjs → chunk-TSZYSW7F.mjs} +4 -4
  63. package/dist/js/chunks/{chunk-UBLRRJ7N.mjs.map → chunk-TSZYSW7F.mjs.map} +2 -2
  64. package/dist/js/chunks/{chunk-UEZUJQ66.mjs → chunk-UAZSDUVP.mjs} +3 -4
  65. package/dist/js/chunks/{chunk-UEZUJQ66.mjs.map → chunk-UAZSDUVP.mjs.map} +2 -2
  66. package/dist/js/chunks/{chunk-6N2XAEFK.mjs → chunk-UBRZZWRA.mjs} +10 -8
  67. package/dist/js/chunks/chunk-UBRZZWRA.mjs.map +7 -0
  68. package/dist/js/chunks/{chunk-3VOK6J7U.mjs → chunk-UCOE7ZDL.mjs} +47 -45
  69. package/dist/js/chunks/chunk-UCOE7ZDL.mjs.map +7 -0
  70. package/dist/js/chunks/{chunk-K4CJCRGE.mjs → chunk-UETTGDLI.mjs} +3 -3
  71. package/dist/js/chunks/{chunk-RHRQKTTX.mjs → chunk-UNCRDLP6.mjs} +6 -9
  72. package/dist/js/chunks/chunk-UNCRDLP6.mjs.map +7 -0
  73. package/dist/js/chunks/{chunk-LNCCYGPC.mjs → chunk-VGNYF6FB.mjs} +8 -10
  74. package/dist/js/chunks/chunk-VGNYF6FB.mjs.map +7 -0
  75. package/dist/js/chunks/{chunk-UAEAQBRC.mjs → chunk-VGPGBNGL.mjs} +4 -12
  76. package/dist/js/chunks/chunk-VGPGBNGL.mjs.map +7 -0
  77. package/dist/js/chunks/chunk-VKAUVTQY.mjs +1 -0
  78. package/dist/js/chunks/{chunk-HKT2S7VM.mjs → chunk-VM4FTS7L.mjs} +3 -3
  79. package/dist/js/chunks/{chunk-55IA2XUC.mjs → chunk-WDK4T63U.mjs} +8 -11
  80. package/dist/js/chunks/chunk-WDK4T63U.mjs.map +7 -0
  81. package/dist/js/chunks/{chunk-XH6BEEMY.mjs → chunk-WOCCTVUF.mjs} +51 -39
  82. package/dist/js/chunks/chunk-WOCCTVUF.mjs.map +7 -0
  83. package/dist/js/chunks/{chunk-GZWPXXY6.mjs → chunk-WQYN5L4E.mjs} +14 -16
  84. package/dist/js/chunks/chunk-WQYN5L4E.mjs.map +7 -0
  85. package/dist/js/chunks/{chunk-6WLSDZ4O.mjs → chunk-X4ISMKE2.mjs} +2 -2
  86. package/dist/js/chunks/{chunk-3DHK5CZU.mjs → chunk-XAEAEHIX.mjs} +6 -8
  87. package/dist/js/chunks/chunk-XAEAEHIX.mjs.map +7 -0
  88. package/dist/js/chunks/{chunk-3CLXLPYS.mjs → chunk-ZX6M7SWO.mjs} +43 -29
  89. package/dist/js/chunks/chunk-ZX6M7SWO.mjs.map +7 -0
  90. package/dist/js/expressive.cjs +1337 -572
  91. package/dist/js/expressive.cjs.map +4 -4
  92. package/dist/js/expressive.js +1337 -572
  93. package/dist/js/expressive.js.map +4 -4
  94. package/dist/js/expressive.min.js +10 -13
  95. package/dist/js/expressive.min.js.map +4 -4
  96. package/dist/js/expressive.mjs +71 -55
  97. package/dist/js/expressive.mjs.map +1 -1
  98. package/dist/js/internal/behaviors/bottomSheets.mjs +3 -3
  99. package/dist/js/internal/behaviors/dialogs.mjs +2 -2
  100. package/dist/js/internal/behaviors/forms.mjs +2 -2
  101. package/dist/js/internal/behaviors/sheetDrag.mjs +2 -2
  102. package/dist/js/internal/behaviors/sideSheets.mjs +3 -3
  103. package/dist/js/internal/components/appBar.mjs +2 -2
  104. package/dist/js/internal/components/autocomplete.mjs +4 -4
  105. package/dist/js/internal/components/barChart.mjs +4 -4
  106. package/dist/js/internal/components/buttonGroup.mjs +2 -2
  107. package/dist/js/internal/components/buttons.mjs +3 -3
  108. package/dist/js/internal/components/cards.mjs +3 -3
  109. package/dist/js/internal/components/carousel.mjs +3 -3
  110. package/dist/js/internal/components/characterCounter.mjs +2 -2
  111. package/dist/js/internal/components/chips.mjs +5 -5
  112. package/dist/js/internal/components/columnChart.mjs +3 -3
  113. package/dist/js/internal/components/commandPalette.mjs +3 -3
  114. package/dist/js/internal/components/confetti.mjs +8 -0
  115. package/dist/js/internal/components/confetti.mjs.map +7 -0
  116. package/dist/js/internal/components/datepicker.mjs +6 -6
  117. package/dist/js/internal/components/expandingCard.mjs +3 -3
  118. package/dist/js/internal/components/heatmapChart.mjs +3 -3
  119. package/dist/js/internal/components/index.mjs +64 -48
  120. package/dist/js/internal/components/keypad.mjs +9 -0
  121. package/dist/js/internal/components/keypad.mjs.map +7 -0
  122. package/dist/js/internal/components/lightbox.mjs +3 -3
  123. package/dist/js/internal/components/lineChart.mjs +6 -2
  124. package/dist/js/internal/components/mapView.mjs +9 -0
  125. package/dist/js/internal/components/mapView.mjs.map +7 -0
  126. package/dist/js/internal/components/menu.mjs +3 -3
  127. package/dist/js/internal/components/messageScroller.mjs +3 -3
  128. package/dist/js/internal/components/mixedChart.mjs +4 -4
  129. package/dist/js/internal/components/navigationRail.mjs +2 -2
  130. package/dist/js/internal/components/particles.mjs +8 -0
  131. package/dist/js/internal/components/particles.mjs.map +7 -0
  132. package/dist/js/internal/components/pieChart.mjs +3 -3
  133. package/dist/js/internal/components/questionnaire.mjs +3 -3
  134. package/dist/js/internal/components/radarChart.mjs +3 -3
  135. package/dist/js/internal/components/radialChart.mjs +3 -3
  136. package/dist/js/internal/components/registry.mjs +41 -37
  137. package/dist/js/internal/components/richTextEditor.mjs +3 -3
  138. package/dist/js/internal/components/scrollspy.mjs +2 -2
  139. package/dist/js/internal/components/select.mjs +4 -4
  140. package/dist/js/internal/components/slider.mjs +3 -3
  141. package/dist/js/internal/components/snackbar.mjs +2 -2
  142. package/dist/js/internal/components/tabs.mjs +4 -4
  143. package/dist/js/internal/components/timepicker.mjs +4 -4
  144. package/dist/js/internal/components/tooltip.mjs +3 -3
  145. package/dist/js/internal/core/component.mjs +1 -1
  146. package/dist/js/internal/core/utils.mjs +1 -1
  147. package/dist/js/internal/plugins/dockedDisplayPlugin.mjs +2 -2
  148. package/dist/js/modular.mjs +71 -55
  149. package/dist/types/behaviors/forms.d.ts +5 -0
  150. package/dist/types/components/autocomplete.d.ts +1 -0
  151. package/dist/types/components/carousel.d.ts +2 -0
  152. package/dist/types/components/confetti.d.ts +103 -0
  153. package/dist/types/components/datepicker.d.ts +5 -4
  154. package/dist/types/components/expandingCard.d.ts +2 -0
  155. package/dist/types/components/index.d.ts +4 -0
  156. package/dist/types/components/keypad.d.ts +34 -0
  157. package/dist/types/components/lightbox.d.ts +3 -5
  158. package/dist/types/components/lineChart.d.ts +4 -0
  159. package/dist/types/components/mapView.d.ts +151 -0
  160. package/dist/types/components/menu.d.ts +1 -0
  161. package/dist/types/components/particles.d.ts +72 -0
  162. package/dist/types/components/pieChart.d.ts +3 -0
  163. package/dist/types/components/radialChart.d.ts +0 -1
  164. package/dist/types/components/registry.d.ts +12 -0
  165. package/dist/types/components/slider.d.ts +3 -1
  166. package/dist/types/components/snackbar.d.ts +3 -0
  167. package/dist/types/components/tabs.d.ts +5 -1
  168. package/dist/types/components/timepicker.d.ts +2 -0
  169. package/dist/types/modular.d.ts +1 -1
  170. package/dist/types/plugins/dockedDisplayPlugin.d.ts +4 -3
  171. package/package.json +2 -1
  172. package/src/sass/abstracts/_breakpoints.scss +0 -1
  173. package/src/sass/abstracts/_elevation.scss +1 -1
  174. package/src/sass/abstracts/_mixins.scss +20 -60
  175. package/src/sass/abstracts/_variables.scss +10 -0
  176. package/src/sass/base/_global.scss +3 -12
  177. package/src/sass/base/_index.scss +1 -1
  178. package/src/sass/components/_badges.scss +1 -8
  179. package/src/sass/components/_bar-chart.scss +1 -1
  180. package/src/sass/components/_button-groups.scss +31 -66
  181. package/src/sass/components/_buttons.scss +1 -1
  182. package/src/sass/components/_cards.scss +6 -25
  183. package/src/sass/components/_carousel.scss +16 -55
  184. package/src/sass/components/_chips.scss +0 -6
  185. package/src/sass/components/_column-chart.scss +1 -1
  186. package/src/sass/components/_confetti.scss +14 -0
  187. package/src/sass/components/_data-table.scss +1 -3
  188. package/src/sass/components/_datepicker.scss +3 -22
  189. package/src/sass/components/_dialog.scss +1 -4
  190. package/src/sass/components/_heatmap-chart.scss +2 -2
  191. package/src/sass/components/_icon-buttons.scss +0 -1
  192. package/src/sass/components/_index.scss +4 -0
  193. package/src/sass/components/_keypad.scss +162 -0
  194. package/src/sass/components/_lightbox.scss +3 -8
  195. package/src/sass/components/_map.scss +188 -0
  196. package/src/sass/components/_menu.scss +31 -74
  197. package/src/sass/components/_mixed-chart.scss +1 -1
  198. package/src/sass/components/_navbar.scss +9 -45
  199. package/src/sass/components/_navigation-rail.scss +23 -32
  200. package/src/sass/components/_page-footer.scss +15 -12
  201. package/src/sass/components/_panes.scss +2 -6
  202. package/src/sass/components/_particles.scss +14 -0
  203. package/src/sass/components/_progress.scss +6 -4
  204. package/src/sass/components/_side-sheet.scss +1 -4
  205. package/src/sass/components/_stepper.scss +0 -4
  206. package/src/sass/components/_table_of_contents.scss +3 -1
  207. package/src/sass/components/_timepicker.scss +4 -36
  208. package/src/sass/components/_toolbar.scss +0 -4
  209. package/src/sass/components/forms/_checkboxes.scss +44 -67
  210. package/src/sass/components/forms/_fieldset.scss +3 -3
  211. package/src/sass/components/forms/_file-input.scss +0 -1
  212. package/src/sass/components/forms/_radio-buttons.scss +10 -36
  213. package/src/sass/components/forms/_select.scss +0 -3
  214. package/src/sass/components/forms/_slider.scss +72 -259
  215. package/src/sass/tokens/_state.scss +2 -2
  216. package/src/sass/tokens/_theme.scss +1 -1
  217. package/src/sass/utilities/_colors.scss +6 -1
  218. package/src/sass/utilities/_index.scss +1 -1
  219. package/dist/js/chunks/chunk-3CLXLPYS.mjs.map +0 -7
  220. package/dist/js/chunks/chunk-3DHK5CZU.mjs.map +0 -7
  221. package/dist/js/chunks/chunk-3VOK6J7U.mjs.map +0 -7
  222. package/dist/js/chunks/chunk-4PWAPV6F.mjs +0 -7
  223. package/dist/js/chunks/chunk-55IA2XUC.mjs.map +0 -7
  224. package/dist/js/chunks/chunk-6N2XAEFK.mjs.map +0 -7
  225. package/dist/js/chunks/chunk-CKQP6P76.mjs.map +0 -7
  226. package/dist/js/chunks/chunk-EC63CHXU.mjs.map +0 -7
  227. package/dist/js/chunks/chunk-GZWPXXY6.mjs.map +0 -7
  228. package/dist/js/chunks/chunk-IFXVDDDH.mjs.map +0 -7
  229. package/dist/js/chunks/chunk-LNCCYGPC.mjs.map +0 -7
  230. package/dist/js/chunks/chunk-LTWPGFBR.mjs.map +0 -7
  231. package/dist/js/chunks/chunk-LWBQIX5J.mjs.map +0 -7
  232. package/dist/js/chunks/chunk-NNYP33NB.mjs.map +0 -7
  233. package/dist/js/chunks/chunk-NQLC3YMW.mjs +0 -1
  234. package/dist/js/chunks/chunk-O5XPWXIQ.mjs.map +0 -7
  235. package/dist/js/chunks/chunk-P3G3QHII.mjs.map +0 -7
  236. package/dist/js/chunks/chunk-PLYXLSH3.mjs.map +0 -7
  237. package/dist/js/chunks/chunk-QKWPQK5N.mjs.map +0 -7
  238. package/dist/js/chunks/chunk-QVVEWBOF.mjs.map +0 -7
  239. package/dist/js/chunks/chunk-RHRQKTTX.mjs.map +0 -7
  240. package/dist/js/chunks/chunk-SPETGK25.mjs.map +0 -7
  241. package/dist/js/chunks/chunk-U2OTHOTI.mjs.map +0 -7
  242. package/dist/js/chunks/chunk-UAEAQBRC.mjs.map +0 -7
  243. package/dist/js/chunks/chunk-UNEMYWEW.mjs.map +0 -7
  244. package/dist/js/chunks/chunk-WJXDBPXQ.mjs.map +0 -7
  245. package/dist/js/chunks/chunk-XGHORT7J.mjs.map +0 -7
  246. package/dist/js/chunks/chunk-XH6BEEMY.mjs.map +0 -7
  247. /package/dist/js/chunks/{chunk-DTKR54I6.mjs.map → chunk-33QVDDGR.mjs.map} +0 -0
  248. /package/dist/js/chunks/{chunk-DLWYKFEI.mjs.map → chunk-AIURVCG6.mjs.map} +0 -0
  249. /package/dist/js/chunks/{chunk-GVGT6MIU.mjs.map → chunk-CK2XCICY.mjs.map} +0 -0
  250. /package/dist/js/chunks/{chunk-YDCS5S3J.mjs.map → chunk-L27Q6ZMI.mjs.map} +0 -0
  251. /package/dist/js/chunks/{chunk-CCWDV5CR.mjs.map → chunk-LQWUDNHZ.mjs.map} +0 -0
  252. /package/dist/js/chunks/{chunk-PIJ2TAR3.mjs.map → chunk-PDG64UHF.mjs.map} +0 -0
  253. /package/dist/js/chunks/{chunk-VTLBW7QS.mjs.map → chunk-SMY7GJSS.mjs.map} +0 -0
  254. /package/dist/js/chunks/{chunk-K4CJCRGE.mjs.map → chunk-UETTGDLI.mjs.map} +0 -0
  255. /package/dist/js/chunks/{chunk-NQLC3YMW.mjs.map → chunk-VKAUVTQY.mjs.map} +0 -0
  256. /package/dist/js/chunks/{chunk-HKT2S7VM.mjs.map → chunk-VM4FTS7L.mjs.map} +0 -0
  257. /package/dist/js/chunks/{chunk-6WLSDZ4O.mjs.map → chunk-X4ISMKE2.mjs.map} +0 -0
@@ -39,17 +39,6 @@ $_standard-space: (
39
39
  "xlarge": 8px,
40
40
  );
41
41
 
42
- // md.comp.button.<size>.{container-shape-square, pressed-container-shape}.
43
- // Common buttons and icon buttons share these numbers, so the group can morph
44
- // either kind of child through one pair of properties.
45
- $_item-shapes: (
46
- "xsmall": (square: 12px, pressed: 8px),
47
- "small": (square: 12px, pressed: 8px),
48
- "medium": (square: 16px, pressed: 12px),
49
- "large": (square: 28px, pressed: 16px),
50
- "xlarge": (square: 28px, pressed: 16px),
51
- );
52
-
53
42
  // md.comp.button-group.connected.<size>.{inner-corner, pressed.inner-corner}.
54
43
  // The live M3 measurement is authoritative for XS (4px). Material Web 34.0.21
55
44
  // still emits 8px there; S and M agree at 8px.
@@ -65,10 +54,17 @@ $_connected-corners: (
65
54
  @include z-depth("0");
66
55
  color: color-mix(in oklab, var(--md-sys-color-on-surface) 38%, transparent);
67
56
  pointer-events: none;
68
- box-shadow: none;
69
57
  cursor: default;
70
58
  }
71
59
 
60
+ // Toggle colors. The label and icon take the state-layer color.
61
+ @mixin _toggle-colors($container, $state) {
62
+ --_toggle-container-color: #{$container};
63
+ --_toggle-state-color: #{$state};
64
+ color: $state;
65
+ background-color: var(--_toggle-container-color);
66
+ }
67
+
72
68
  .button-group {
73
69
  --md-comp-button-group-between-space: 12px;
74
70
  --md-comp-button-group-item-shape-round: 9999px;
@@ -77,14 +73,9 @@ $_connected-corners: (
77
73
  // M3 states this as a percentage of the item's own width. CSS cannot
78
74
  // multiply a length by one, so it is the same figure as a ratio.
79
75
  --md-comp-button-group-pressed-item-width-multiplier: .15;
80
- // Material's fast-spatial spring (damping .9, stiffness 1400), sampled into
81
- // a CSS linear easing so width and corner motion use the published dynamics.
82
- --md-comp-button-group-motion: linear(
83
- 0, .056 5%, .1796 10%, .3252 15%, .4675 20%, .5936 25%,
84
- .6988 30%, .7828 35%, .8475 40%, .8959 45%, .931 50%,
85
- .9559 55%, .973 60%, .9845 65%, .9919 70%, .9965 75%,
86
- .9992 80%, 1.0006 85%, 1.0013 90%, 1.0015 95%, 1.0015
87
- );
76
+ // Material's fast-spatial spring, so width and corner motion use the
77
+ // published dynamics.
78
+ --md-comp-button-group-motion: #{$motion-fast-spatial};
88
79
 
89
80
  display: flex;
90
81
  align-items: center;
@@ -100,8 +91,9 @@ $_connected-corners: (
100
91
  @include button-size($name);
101
92
 
102
93
  --md-comp-button-group-between-space: #{map.get($_standard-space, $name)};
103
- --md-comp-button-group-item-shape-square: #{map.get(map.get($_item-shapes, $name), square)};
104
- --md-comp-button-group-pressed-item-shape: #{map.get(map.get($_item-shapes, $name), pressed)};
94
+ // Common and icon buttons share these two shapes.
95
+ --md-comp-button-group-item-shape-square: #{map.get($icon-button-sizes, $name, square)};
96
+ --md-comp-button-group-pressed-item-shape: #{map.get($icon-button-sizes, $name, pressed)};
105
97
 
106
98
  > #{$_label-item}:not(#{$_sized}) {
107
99
  @include typescale(map.get($s, label));
@@ -112,23 +104,23 @@ $_connected-corners: (
112
104
  }
113
105
 
114
106
  > .icon-button.narrow:not(#{$_sized}) {
115
- --md-comp-icon-button-leading-space: #{map.get(map.get($icon-button-sizes, $name), narrow)};
116
- --md-comp-icon-button-trailing-space: #{map.get(map.get($icon-button-sizes, $name), narrow)};
107
+ --md-comp-icon-button-leading-space: #{map.get($icon-button-sizes, $name, narrow)};
108
+ --md-comp-icon-button-trailing-space: #{map.get($icon-button-sizes, $name, narrow)};
117
109
  }
118
110
 
119
111
  > .icon-button.wide:not(#{$_sized}) {
120
- --md-comp-icon-button-leading-space: #{map.get(map.get($icon-button-sizes, $name), wide)};
121
- --md-comp-icon-button-trailing-space: #{map.get(map.get($icon-button-sizes, $name), wide)};
112
+ --md-comp-icon-button-leading-space: #{map.get($icon-button-sizes, $name, wide)};
113
+ --md-comp-icon-button-trailing-space: #{map.get($icon-button-sizes, $name, wide)};
122
114
  }
123
115
  }
124
116
 
125
117
  // Group shape tokens inherit, so an explicitly sized item must rewrite
126
118
  // them on itself just as its button geometry tokens do.
127
119
  > #{$_item}.#{$name} {
128
- --md-comp-button-group-item-shape-square: #{map.get(map.get($_item-shapes, $name), square)};
129
- --md-comp-button-group-pressed-item-shape: #{map.get(map.get($_item-shapes, $name), pressed)};
130
- --md-comp-button-group-inner-corner-corner-size: #{map.get(map.get($_connected-corners, $name), inner)};
131
- --md-comp-button-group-pressed-inner-corner-corner-size: #{map.get(map.get($_connected-corners, $name), pressed)};
120
+ --md-comp-button-group-item-shape-square: #{map.get($icon-button-sizes, $name, square)};
121
+ --md-comp-button-group-pressed-item-shape: #{map.get($icon-button-sizes, $name, pressed)};
122
+ --md-comp-button-group-inner-corner-corner-size: #{map.get($_connected-corners, $name, inner)};
123
+ --md-comp-button-group-pressed-inner-corner-corner-size: #{map.get($_connected-corners, $name, pressed)};
132
124
  }
133
125
  }
134
126
 
@@ -176,64 +168,40 @@ $_connected-corners: (
176
168
  // Shape and the filled icon below provide two non-color selection cues.
177
169
  > #{$_label-item}#{$_filled-item}[aria-pressed=false],
178
170
  > .icon-button.filled[aria-pressed=false] {
179
- --_toggle-container-color: var(--md-sys-color-surface-container);
180
- --_toggle-state-color: var(--md-sys-color-on-surface-variant);
181
- color: var(--md-sys-color-on-surface-variant);
182
- background-color: var(--_toggle-container-color);
171
+ @include _toggle-colors(var(--md-sys-color-surface-container), var(--md-sys-color-on-surface-variant));
183
172
  }
184
173
 
185
174
  > #{$_label-item}#{$_filled-item}[aria-pressed=true],
186
175
  > .icon-button.filled[aria-pressed=true] {
187
- --_toggle-container-color: var(--md-sys-color-primary);
188
- --_toggle-state-color: var(--md-sys-color-on-primary);
189
- color: var(--md-sys-color-on-primary);
190
- background-color: var(--_toggle-container-color);
176
+ @include _toggle-colors(var(--md-sys-color-primary), var(--md-sys-color-on-primary));
191
177
  }
192
178
 
193
179
  > #{$_label-item}.tonal[aria-pressed=false],
194
180
  > .icon-button.tonal[aria-pressed=false] {
195
- --_toggle-container-color: var(--md-sys-color-secondary-container);
196
- --_toggle-state-color: var(--md-sys-color-on-secondary-container);
197
- color: var(--md-sys-color-on-secondary-container);
198
- background-color: var(--_toggle-container-color);
181
+ @include _toggle-colors(var(--md-sys-color-secondary-container), var(--md-sys-color-on-secondary-container));
199
182
  }
200
183
 
201
184
  > #{$_label-item}.tonal[aria-pressed=true],
202
185
  > .icon-button.tonal[aria-pressed=true] {
203
- --_toggle-container-color: var(--md-sys-color-secondary);
204
- --_toggle-state-color: var(--md-sys-color-on-secondary);
205
- color: var(--md-sys-color-on-secondary);
206
- background-color: var(--_toggle-container-color);
186
+ @include _toggle-colors(var(--md-sys-color-secondary), var(--md-sys-color-on-secondary));
207
187
  }
208
188
 
209
189
  > #{$_label-item}.outlined[aria-pressed=false],
210
190
  > .icon-button.outlined[aria-pressed=false] {
211
- --_toggle-container-color: transparent;
212
- --_toggle-state-color: var(--md-sys-color-on-surface-variant);
213
- color: var(--md-sys-color-on-surface-variant);
214
- background-color: var(--_toggle-container-color);
191
+ @include _toggle-colors(transparent, var(--md-sys-color-on-surface-variant));
215
192
  }
216
193
 
217
194
  > #{$_label-item}.outlined[aria-pressed=true],
218
195
  > .icon-button.outlined[aria-pressed=true] {
219
- --_toggle-container-color: var(--md-sys-color-inverse-surface);
220
- --_toggle-state-color: var(--md-sys-color-inverse-on-surface);
221
- color: var(--md-sys-color-inverse-on-surface);
222
- background-color: var(--_toggle-container-color);
196
+ @include _toggle-colors(var(--md-sys-color-inverse-surface), var(--md-sys-color-inverse-on-surface));
223
197
  }
224
198
 
225
199
  > #{$_label-item}.elevated[aria-pressed=false] {
226
- --_toggle-container-color: var(--md-sys-color-surface-container-low);
227
- --_toggle-state-color: var(--md-sys-color-primary);
228
- color: var(--md-sys-color-primary);
229
- background-color: var(--_toggle-container-color);
200
+ @include _toggle-colors(var(--md-sys-color-surface-container-low), var(--md-sys-color-primary));
230
201
  }
231
202
 
232
203
  > #{$_label-item}.elevated[aria-pressed=true] {
233
- --_toggle-container-color: var(--md-sys-color-primary);
234
- --_toggle-state-color: var(--md-sys-color-on-primary);
235
- color: var(--md-sys-color-on-primary);
236
- background-color: var(--_toggle-container-color);
204
+ @include _toggle-colors(var(--md-sys-color-primary), var(--md-sys-color-on-primary));
237
205
  }
238
206
 
239
207
  > #{$_toggle-item}[aria-pressed]:hover {
@@ -315,10 +283,6 @@ $_connected-corners: (
315
283
  --md-comp-button-group-container-shape: var(--md-comp-button-group-inner-corner-corner-size);
316
284
  }
317
285
 
318
- > #{$_item} {
319
- min-width: 48px;
320
- }
321
-
322
286
  // The corner goes through a variable so that pressing an item changes one
323
287
  // value rather than restating `border-radius`. A shorthand for the pressed
324
288
  // state would take the end items' round outer corners with it.
@@ -334,6 +298,7 @@ $_connected-corners: (
334
298
  --_round: calc(var(--md-comp-filled-button-container-height, 40px) / 2);
335
299
 
336
300
  flex: 1 1 0;
301
+ min-width: 48px;
337
302
  border-radius: var(--_corner);
338
303
 
339
304
  &.icon-button {
@@ -51,7 +51,7 @@
51
51
  // specificity; `.chip .close` would make it two and shift every button rule.
52
52
  // The delete button needs no entry: `.chip .close` is already two classes, so
53
53
  // it ties the state rules and wins on order.
54
- $_not-btn: ".datepicker-day-button, .date-picker-day-button, .month-prev, .month-next, .chip, .icon-button";
54
+ $_not-btn: ".datepicker-day-button, .date-picker-day-button, .month-prev, .month-next, .chip, .icon-button, .map-marker, .maplibregl-popup-close-button, .maplibregl-ctrl-attrib-button";
55
55
 
56
56
  // `label.button` is here for the file input: the control has to be a <label>
57
57
  // so that clicking it reaches the <input type="file"> it wraps, but it is a
@@ -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
 
@@ -0,0 +1,14 @@
1
+ @use "../abstracts" as *;
2
+
3
+ // Confetti. A <canvas class="confetti"> covers its nearest positioned
4
+ // ancestor and lets clicks through to what is under it. The Confetti script
5
+ // draws on it. A burst over the whole viewport needs no markup; the script
6
+ // styles its own canvas inline.
7
+
8
+ canvas.confetti {
9
+ position: absolute;
10
+ inset: 0;
11
+ width: 100%;
12
+ height: 100%;
13
+ pointer-events: none;
14
+ }
@@ -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.
@@ -50,6 +50,7 @@
50
50
  @forward "message";
51
51
  @forward "message-scroller";
52
52
  @forward "rich-text-editor";
53
+ @forward "map";
53
54
  @forward "accordion";
54
55
  @forward "data-table";
55
56
  @forward "avatar";
@@ -74,3 +75,6 @@
74
75
  @forward "aura";
75
76
  @forward "kpi";
76
77
  @forward "marquee";
78
+ @forward "confetti";
79
+ @forward "particles";
80
+ @forward "keypad";