@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
@@ -16,7 +16,6 @@
16
16
  :is(.timepicker-digital-display, .time-picker-digital-display) {
17
17
  width: auto;
18
18
  flex: 1 auto;
19
- // background-color: var(--md-sys-color-surface);
20
19
  padding: 2rem .67rem .67rem .67rem;
21
20
  font-weight: 300;
22
21
  }
@@ -27,7 +26,6 @@
27
26
  text-align: left;
28
27
  color: var(--md-sys-color-on-surface-variant);
29
28
  font-weight: 400;
30
- /*position: relative;*/
31
29
  user-select: none;
32
30
  padding: 1rem 1rem 1.3rem 1rem;
33
31
 
@@ -80,15 +78,8 @@ input[type=text]:is(.timepicker-input-minutes, .time-picker-input-minutes) {
80
78
  text-align: center;
81
79
  }
82
80
 
83
- /*input[type=text].text-primary {
84
- color: var(--md-sys-color-on-background);
85
- }*/
86
-
87
81
  :is(.timepicker-display-am-pm, .time-picker-display-am-pm) {
88
82
  font-size: 1.3rem;
89
- /*position: absolute;
90
- top: 1rem;
91
- right: 1rem;*/
92
83
  font-weight: 400;
93
84
  }
94
85
 
@@ -109,7 +100,6 @@ input[type=text]:is(.timepicker-input-minutes, .time-picker-input-minutes) {
109
100
  line-height: 2rem;
110
101
  vertical-align: middle;
111
102
  text-align: center;
112
- // background-color: transparent;
113
103
  border: 1px solid var(--md-sys-color-outline);
114
104
  }
115
105
 
@@ -128,7 +118,6 @@ input[type=text]:is(.timepicker-input-minutes, .time-picker-input-minutes) {
128
118
  :is(.timepicker-analog-display, .time-picker-analog-display) {
129
119
  flex: 2.5 auto;
130
120
  padding: .67rem;
131
- // background-color: var(--md-sys-color-surface);
132
121
  }
133
122
 
134
123
  :is(.timepicker-plate, .time-picker-plate) {
@@ -149,10 +138,7 @@ input[type=text]:is(.timepicker-input-minutes, .time-picker-input-minutes) {
149
138
  :is(.timepicker-canvas, .time-picker-canvas),
150
139
  :is(.timepicker-dial, .time-picker-dial) {
151
140
  position: absolute;
152
- left: 0;
153
- right: 0;
154
- top: 0;
155
- bottom: 0;
141
+ inset: 0;
156
142
  }
157
143
 
158
144
  :is(.timepicker-minutes, .time-picker-minutes) {
@@ -206,11 +192,7 @@ input[type=text]:is(.timepicker-input-minutes, .time-picker-input-minutes) {
206
192
  opacity: 0.25;
207
193
  }
208
194
 
209
- :is(.timepicker-canvas-bearing, .time-picker-canvas-bearing) {
210
- stroke: none;
211
- fill: var(--md-sys-color-primary);
212
- }
213
-
195
+ :is(.timepicker-canvas-bearing, .time-picker-canvas-bearing),
214
196
  :is(.timepicker-canvas-bg, .time-picker-canvas-bg) {
215
197
  stroke: none;
216
198
  fill: var(--md-sys-color-primary);
@@ -243,9 +225,6 @@ input[type=text]:is(.timepicker-input-minutes, .time-picker-input-minutes) {
243
225
  :is(.timepicker-container, .time-picker-container) {
244
226
  width: auto;
245
227
  max-width: 620px;
246
- }
247
-
248
- :is(.timepicker-container, .time-picker-container) {
249
228
  flex-direction: row;
250
229
  }
251
230
 
@@ -254,7 +233,6 @@ input[type=text]:is(.timepicker-input-minutes, .time-picker-input-minutes) {
254
233
  }
255
234
 
256
235
  :is(.timepicker-text-container, .time-picker-text-container) {
257
- /*top: 31%;*/
258
236
  flex-direction: column;
259
237
  margin-top: 4.8rem;
260
238
  text-align: center;
@@ -277,24 +255,14 @@ input[type=text]:is(.timepicker-input-minutes, .time-picker-input-minutes) {
277
255
  :is(.timepicker-container, .time-picker-container) .am-btn,
278
256
  :is(.timepicker-container, .time-picker-container) .pm-btn {
279
257
  flex-grow: 1;
280
- /*width: auto;*/
281
- // Same two retired variables as above; both declarations
282
- // rendered as 0. The corner rules that follow square off the inner
283
- // edges, so the outer ones are the only radius in play.
284
- padding-inline: 0;
258
+ // A retired variable that always rendered as 0. Squares all four
259
+ // corners of both buttons.
285
260
  border-radius: 0;
286
261
  border: 1px solid var(--md-sys-color-outline);
287
262
  }
288
263
 
289
- :is(.timepicker-container, .time-picker-container) .am-btn {
290
- border-top-right-radius: 0;
291
- border-bottom-right-radius: 0;
292
- }
293
-
294
264
  :is(.timepicker-container, .time-picker-container) .pm-btn {
295
265
  border-left: 0;
296
- border-bottom-left-radius: 0;
297
- border-top-left-radius: 0;
298
266
  }
299
267
 
300
268
  :is(.timepicker-plate, .time-picker-plate) {
@@ -51,10 +51,6 @@
51
51
  // (rule 4) - and not role="toolbar" either, because that is a composite role
52
52
  // promising arrow-key navigation nothing here implements (rule 2). The <nav>
53
53
  // form is the older markup and still works.
54
- //
55
- // Wrapped in :is() so it stays one compound selector: interpolating a bare
56
- // comma-separated list breaks out of its context. That mistake shipped once
57
- // already, in $_bar.
58
54
  $_toolbar: ".toolbar";
59
55
 
60
56
  // The two axes. `.max` is an alias for docked; `.filled` is the older
@@ -19,6 +19,10 @@
19
19
  //
20
20
  // .filled-in is a no-op: the selected state is always the filled box.
21
21
 
22
+ @mixin _ring($color, $state) {
23
+ @include state-layer-ring(var(--md-comp-checkbox-state-layer-size), var(--md-comp-checkbox-container-size), $color, $state);
24
+ }
25
+
22
26
  $_cb-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M4 9.5 7.5 13 14 5.5'/%3E%3C/svg%3E");
23
27
  $_cb-dash: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' d='M4.5 9h9'/%3E%3C/svg%3E");
24
28
 
@@ -82,32 +86,17 @@ label:has(> [type="checkbox"]):not(.switch) > [type="checkbox"],
82
86
  }
83
87
 
84
88
  &:hover {
85
- @include state-layer-ring(
86
- var(--md-comp-checkbox-state-layer-size),
87
- var(--md-comp-checkbox-container-size),
88
- var(--md-sys-color-on-surface),
89
- "hover"
90
- );
89
+ @include _ring(var(--md-sys-color-on-surface), "hover");
91
90
  }
92
91
 
93
92
  &:checked:hover,
94
93
  &:indeterminate:hover {
95
- @include state-layer-ring(
96
- var(--md-comp-checkbox-state-layer-size),
97
- var(--md-comp-checkbox-container-size),
98
- var(--md-sys-color-primary),
99
- "hover"
100
- );
94
+ @include _ring(var(--md-sys-color-primary), "hover");
101
95
  }
102
96
 
103
97
  &:focus-visible,
104
98
  &.tabbed:focus {
105
- @include state-layer-ring(
106
- var(--md-comp-checkbox-state-layer-size),
107
- var(--md-comp-checkbox-container-size),
108
- var(--md-sys-color-primary),
109
- "focus"
110
- );
99
+ @include _ring(var(--md-sys-color-primary), "focus");
111
100
  outline: none;
112
101
  }
113
102
 
@@ -126,12 +115,7 @@ label:has(> [type="checkbox"]):not(.switch) > [type="checkbox"],
126
115
 
127
116
  &.invalid:hover,
128
117
  &[aria-invalid="true"]:hover {
129
- @include state-layer-ring(
130
- var(--md-comp-checkbox-state-layer-size),
131
- var(--md-comp-checkbox-container-size),
132
- var(--md-sys-color-error),
133
- "hover"
134
- );
118
+ @include _ring(var(--md-sys-color-error), "hover");
135
119
  }
136
120
 
137
121
  &:disabled {
@@ -208,13 +192,16 @@ label:has(> [type="checkbox"]:disabled):not(.switch),
208
192
 
209
193
  // Legacy / Select / Autocomplete: input + span draws the same
210
194
  // 18dp anatomy. Exclude .switch — that file paints the track on a span.
211
- $_cb-span: "*:not(.switch) > [type='checkbox'] + span:not(.lever, .supporting-text, .character-counter, .file-path)";
195
+ // $state is appended to the checkbox, e.g. ":checked" or ".invalid".
196
+ @function _cb-span($state: "") {
197
+ @return "*:not(.switch) > [type='checkbox']#{$state} + span:not(.lever, .supporting-text, .character-counter, .file-path)";
198
+ }
212
199
 
213
200
  // inline-block, not inline-flex: a flex span turns each text run and link
214
201
  // inside it into its own item, which drops the spaces around a link and
215
202
  // splits "I agree to the <a>Terms</a>" into columns. The block padding
216
203
  // centers one line in the 48px target, as align-items did.
217
- #{$_cb-span} {
204
+ #{_cb-span()} {
218
205
  position: relative;
219
206
  display: inline-block;
220
207
  box-sizing: border-box;
@@ -225,8 +212,8 @@ $_cb-span: "*:not(.switch) > [type='checkbox'] + span:not(.lever, .supporting-te
225
212
  user-select: none;
226
213
  }
227
214
 
228
- #{$_cb-span}::before,
229
- #{$_cb-span}::after {
215
+ #{_cb-span()}::before,
216
+ #{_cb-span()}::after {
230
217
  content: "";
231
218
  position: absolute;
232
219
  left: 0;
@@ -238,93 +225,78 @@ $_cb-span: "*:not(.switch) > [type='checkbox'] + span:not(.lever, .supporting-te
238
225
  border-radius: 2px;
239
226
  }
240
227
 
241
- #{$_cb-span}::before {
228
+ #{_cb-span()}::before {
242
229
  border: 2px solid var(--md-sys-color-on-surface-variant);
243
230
  background-color: transparent;
244
231
  transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
245
232
  }
246
233
 
247
- #{$_cb-span}::after {
234
+ #{_cb-span()}::after {
248
235
  background-color: var(--md-sys-color-on-primary);
249
236
  -webkit-mask: #{$_cb-check} center / contain no-repeat;
250
237
  mask: #{$_cb-check} center / contain no-repeat;
251
238
  opacity: 0;
252
239
  }
253
240
 
254
- *:not(.switch) > [type="checkbox"]:is(:checked, :indeterminate) + span:not(.lever, .supporting-text, .character-counter, .file-path)::before {
241
+ #{_cb-span(":is(:checked, :indeterminate)")}::before {
255
242
  border-color: var(--md-sys-color-primary);
256
243
  background-color: var(--md-sys-color-primary);
257
244
  }
258
245
 
259
- *:not(.switch) > [type="checkbox"]:is(:checked, :indeterminate) + span:not(.lever, .supporting-text, .character-counter, .file-path)::after {
246
+ #{_cb-span(":is(:checked, :indeterminate)")}::after {
260
247
  opacity: 1;
261
248
  }
262
249
 
263
- *:not(.switch) > [type="checkbox"]:indeterminate + span:not(.lever, .supporting-text, .character-counter, .file-path)::after {
250
+ #{_cb-span(":indeterminate")}::after {
264
251
  -webkit-mask-image: #{$_cb-dash};
265
252
  mask-image: #{$_cb-dash};
266
253
  }
267
254
 
268
- *:not(.switch) > [type="checkbox"]:hover + span:not(.lever, .supporting-text, .character-counter, .file-path)::before {
269
- @include state-layer-ring(
270
- var(--md-comp-checkbox-state-layer-size),
271
- var(--md-comp-checkbox-container-size),
272
- var(--md-sys-color-on-surface),
273
- "hover"
274
- );
255
+ #{_cb-span(":hover")}::before {
256
+ @include _ring(var(--md-sys-color-on-surface), "hover");
275
257
  }
276
258
 
277
- *:not(.switch) > [type="checkbox"]:is(:checked, :indeterminate):hover + span:not(.lever, .supporting-text, .character-counter, .file-path)::before {
278
- @include state-layer-ring(
279
- var(--md-comp-checkbox-state-layer-size),
280
- var(--md-comp-checkbox-container-size),
281
- var(--md-sys-color-primary),
282
- "hover"
283
- );
259
+ #{_cb-span(":is(:checked, :indeterminate):hover")}::before {
260
+ @include _ring(var(--md-sys-color-primary), "hover");
284
261
  }
285
262
 
286
- *:not(.switch) > [type="checkbox"]:focus-visible + span:not(.lever, .supporting-text, .character-counter, .file-path)::before,
287
- *:not(.switch) > [type="checkbox"].tabbed:focus + span:not(.lever, .supporting-text, .character-counter, .file-path)::before {
288
- @include state-layer-ring(
289
- var(--md-comp-checkbox-state-layer-size),
290
- var(--md-comp-checkbox-container-size),
291
- var(--md-sys-color-primary),
292
- "focus"
293
- );
263
+ #{_cb-span(":focus-visible")}::before,
264
+ #{_cb-span(".tabbed:focus")}::before {
265
+ @include _ring(var(--md-sys-color-primary), "focus");
294
266
  }
295
267
 
296
- *:not(.switch) > [type="checkbox"].invalid + span:not(.lever, .supporting-text, .character-counter, .file-path)::before,
297
- *:not(.switch) > [type="checkbox"][aria-invalid="true"] + span:not(.lever, .supporting-text, .character-counter, .file-path)::before {
268
+ #{_cb-span(".invalid")}::before,
269
+ #{_cb-span("[aria-invalid='true']")}::before {
298
270
  border-color: var(--md-sys-color-error);
299
271
  }
300
272
 
301
- *:not(.switch) > [type="checkbox"].invalid:is(:checked, :indeterminate) + span:not(.lever, .supporting-text, .character-counter, .file-path)::before,
302
- *:not(.switch) > [type="checkbox"][aria-invalid="true"]:is(:checked, :indeterminate) + span:not(.lever, .supporting-text, .character-counter, .file-path)::before {
273
+ #{_cb-span(".invalid:is(:checked, :indeterminate)")}::before,
274
+ #{_cb-span("[aria-invalid='true']:is(:checked, :indeterminate)")}::before {
303
275
  border-color: var(--md-sys-color-error);
304
276
  background-color: var(--md-sys-color-error);
305
277
  }
306
278
 
307
- *:not(.switch) > [type="checkbox"].invalid:is(:checked, :indeterminate) + span:not(.lever, .supporting-text, .character-counter, .file-path)::after,
308
- *:not(.switch) > [type="checkbox"][aria-invalid="true"]:is(:checked, :indeterminate) + span:not(.lever, .supporting-text, .character-counter, .file-path)::after {
279
+ #{_cb-span(".invalid:is(:checked, :indeterminate)")}::after,
280
+ #{_cb-span("[aria-invalid='true']:is(:checked, :indeterminate)")}::after {
309
281
  background-color: var(--md-sys-color-on-error);
310
282
  }
311
283
 
312
- *:not(.switch) > [type="checkbox"]:disabled + span:not(.lever, .supporting-text, .character-counter, .file-path) {
284
+ #{_cb-span(":disabled")} {
313
285
  color: color-mix(in oklab, var(--md-sys-color-on-surface) 38%, transparent);
314
286
  cursor: default;
315
287
  }
316
288
 
317
- *:not(.switch) > [type="checkbox"]:disabled + span:not(.lever, .supporting-text, .character-counter, .file-path)::before {
289
+ #{_cb-span(":disabled")}::before {
318
290
  border-color: color-mix(in oklab, var(--md-sys-color-on-surface) 38%, transparent);
319
291
  background-color: transparent;
320
292
  box-shadow: none;
321
293
  }
322
294
 
323
- *:not(.switch) > [type="checkbox"]:disabled:is(:checked, :indeterminate) + span:not(.lever, .supporting-text, .character-counter, .file-path)::before {
295
+ #{_cb-span(":disabled:is(:checked, :indeterminate)")}::before {
324
296
  border-color: transparent;
325
297
  background-color: color-mix(in oklab, var(--md-sys-color-on-surface) 38%, transparent);
326
298
  }
327
299
 
328
- *:not(.switch) > [type="checkbox"]:disabled:is(:checked, :indeterminate) + span:not(.lever, .supporting-text, .character-counter, .file-path)::after {
300
+ #{_cb-span(":disabled:is(:checked, :indeterminate)")}::after {
329
301
  background-color: var(--md-sys-color-surface);
330
302
  }
@@ -31,13 +31,13 @@ fieldset {
31
31
  min-inline-size: 0;
32
32
  margin: 0;
33
33
  padding: 16px;
34
+ border: var(--md-comp-fieldset-outline-width) solid var(--md-comp-fieldset-outline-color);
35
+ border-radius: var(--md-comp-fieldset-container-shape);
36
+ background-color: var(--md-comp-fieldset-container-color);
34
37
 
35
38
  & + & {
36
39
  margin-block-start: 24px;
37
40
  }
38
- border: var(--md-comp-fieldset-outline-width) solid var(--md-comp-fieldset-outline-color);
39
- border-radius: var(--md-comp-fieldset-container-shape);
40
- background-color: var(--md-comp-fieldset-container-color);
41
41
 
42
42
  > legend {
43
43
  float: none;
@@ -6,7 +6,6 @@
6
6
  // the selected filename instead of consuming the entire field.
7
7
  grid-template-columns: fit-content(50%) minmax(0, 1fr);
8
8
  gap: 10px;
9
- //position: relative;
10
9
 
11
10
  .file-path-wrapper {
12
11
  overflow: hidden;
@@ -16,6 +16,10 @@
16
16
  //
17
17
  // .with-gap is a no-op: the selected state is always the ring + inner.
18
18
 
19
+ @mixin _ring($color, $state) {
20
+ @include state-layer-ring(var(--md-comp-radio-button-state-layer-size), var(--md-comp-radio-button-icon-size), $color, $state);
21
+ }
22
+
19
23
  label:has(> [type="radio"]),
20
24
  .radio {
21
25
  --md-comp-radio-button-icon-size: 20px;
@@ -75,31 +79,16 @@ label:has(> [type="radio"]) > [type="radio"],
75
79
  }
76
80
 
77
81
  &:hover {
78
- @include state-layer-ring(
79
- var(--md-comp-radio-button-state-layer-size),
80
- var(--md-comp-radio-button-icon-size),
81
- var(--md-sys-color-on-surface),
82
- "hover"
83
- );
82
+ @include _ring(var(--md-sys-color-on-surface), "hover");
84
83
  }
85
84
 
86
85
  &:checked:hover {
87
- @include state-layer-ring(
88
- var(--md-comp-radio-button-state-layer-size),
89
- var(--md-comp-radio-button-icon-size),
90
- var(--md-sys-color-primary),
91
- "hover"
92
- );
86
+ @include _ring(var(--md-sys-color-primary), "hover");
93
87
  }
94
88
 
95
89
  &:focus-visible,
96
90
  &.tabbed:focus {
97
- @include state-layer-ring(
98
- var(--md-comp-radio-button-state-layer-size),
99
- var(--md-comp-radio-button-icon-size),
100
- var(--md-sys-color-primary),
101
- "focus"
102
- );
91
+ @include _ring(var(--md-sys-color-primary), "focus");
103
92
  outline: none;
104
93
  }
105
94
 
@@ -180,31 +169,16 @@ label:has(> [type="radio"]:disabled),
180
169
  }
181
170
 
182
171
  [type="radio"]:hover + span::before {
183
- @include state-layer-ring(
184
- var(--md-comp-radio-button-state-layer-size),
185
- var(--md-comp-radio-button-icon-size),
186
- var(--md-sys-color-on-surface),
187
- "hover"
188
- );
172
+ @include _ring(var(--md-sys-color-on-surface), "hover");
189
173
  }
190
174
 
191
175
  [type="radio"]:checked:hover + span::before {
192
- @include state-layer-ring(
193
- var(--md-comp-radio-button-state-layer-size),
194
- var(--md-comp-radio-button-icon-size),
195
- var(--md-sys-color-primary),
196
- "hover"
197
- );
176
+ @include _ring(var(--md-sys-color-primary), "hover");
198
177
  }
199
178
 
200
179
  [type="radio"]:focus-visible + span::before,
201
180
  [type="radio"].tabbed:focus + span::before {
202
- @include state-layer-ring(
203
- var(--md-comp-radio-button-state-layer-size),
204
- var(--md-comp-radio-button-icon-size),
205
- var(--md-sys-color-primary),
206
- "focus"
207
- );
181
+ @include _ring(var(--md-sys-color-primary), "focus");
208
182
  }
209
183
 
210
184
  [type="radio"]:disabled + span {
@@ -81,9 +81,6 @@ select.browser-default {
81
81
 
82
82
  > input.menu-trigger {
83
83
  border-radius: inherit;
84
- }
85
-
86
- > input.menu-trigger {
87
84
  padding-inline-end: 52px;
88
85
  }
89
86