mtrl 0.10.0 → 0.10.2

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 (92) hide show
  1. package/dist/components/bottom-sheet/config.js +1 -1
  2. package/dist/components/chips/api.js +4 -0
  3. package/dist/components/chips/features/controller.js +6 -1
  4. package/dist/components/chips/types.d.ts +10 -0
  5. package/dist/components/dialog/config.js +1 -1
  6. package/dist/components/fab-menu/fab-menu.js +12 -4
  7. package/dist/components/fab-menu/types.d.ts +5 -1
  8. package/dist/components/loading-indicator/constants.js +2 -2
  9. package/dist/components/loading-indicator/features/renderer.js +13 -2
  10. package/dist/components/side-sheet/config.js +1 -1
  11. package/dist/components/tabs/utils.js +3 -2
  12. package/dist/components/timepicker/config.js +1 -1
  13. package/dist/core/shapes/cubic.d.ts +2 -0
  14. package/dist/core/shapes/cubic.js +14 -0
  15. package/dist/core/shapes/index.d.ts +3 -3
  16. package/dist/core/shapes/index.js +3 -3
  17. package/dist/core/shapes/material.d.ts +136 -6
  18. package/dist/core/shapes/material.js +226 -25
  19. package/dist/core/shapes/polygon.d.ts +2 -0
  20. package/dist/core/shapes/polygon.js +27 -10
  21. package/dist/elements/css/fab-menu.js +1 -1
  22. package/dist/elements/fab-menu.js +1 -1
  23. package/dist/elements/preupgrade.css +1 -1
  24. package/dist/index.cjs +0 -0
  25. package/dist/package.json +1 -1
  26. package/dist/styles/badge.css +1 -1
  27. package/dist/styles/base.css +1 -1
  28. package/dist/styles/bottom-app-bar.css +1 -1
  29. package/dist/styles/bottom-sheet.css +1 -1
  30. package/dist/styles/button-group.css +1 -1
  31. package/dist/styles/button.css +1 -1
  32. package/dist/styles/card.css +1 -1
  33. package/dist/styles/carousel.css +1 -1
  34. package/dist/styles/checkbox.css +1 -1
  35. package/dist/styles/chips.css +1 -1
  36. package/dist/styles/datepicker.css +1 -1
  37. package/dist/styles/dialog.css +1 -1
  38. package/dist/styles/divider.css +1 -1
  39. package/dist/styles/drawer.css +1 -1
  40. package/dist/styles/extended-fab.css +1 -1
  41. package/dist/styles/fab-menu.css +2 -2
  42. package/dist/styles/fab.css +1 -1
  43. package/dist/styles/icon-button.css +1 -1
  44. package/dist/styles/list.css +1 -1
  45. package/dist/styles/loading-indicator.css +1 -1
  46. package/dist/styles/menu.css +1 -1
  47. package/dist/styles/navigation-rail.css +1 -1
  48. package/dist/styles/progress.css +1 -1
  49. package/dist/styles/radios.css +1 -1
  50. package/dist/styles/search.css +1 -1
  51. package/dist/styles/segmented-button.css +1 -1
  52. package/dist/styles/select.css +1 -1
  53. package/dist/styles/side-sheet.css +1 -1
  54. package/dist/styles/slider.css +1 -1
  55. package/dist/styles/snackbar.css +1 -1
  56. package/dist/styles/split-button.css +1 -1
  57. package/dist/styles/switch.css +1 -1
  58. package/dist/styles/tabs.css +1 -1
  59. package/dist/styles/textfield.css +1 -1
  60. package/dist/styles/timepicker.css +1 -1
  61. package/dist/styles/toolbar.css +1 -1
  62. package/dist/styles/tooltip.css +1 -1
  63. package/dist/styles/top-app-bar.css +1 -1
  64. package/dist/styles/utilities.css +1 -1
  65. package/dist/styles.css +2 -2
  66. package/dist/themes/autumn.css +1 -1
  67. package/dist/themes/baseline.css +1 -1
  68. package/dist/themes/brownbeige.css +1 -1
  69. package/dist/themes/browngreen.css +1 -1
  70. package/dist/themes/content.css +1 -1
  71. package/dist/themes/desert.css +1 -1
  72. package/dist/themes/expressive.css +1 -1
  73. package/dist/themes/fidelity.css +1 -1
  74. package/dist/themes/forest.css +1 -1
  75. package/dist/themes/fruit-salad.css +1 -1
  76. package/dist/themes/highcontrast.css +1 -1
  77. package/dist/themes/legacy.css +1 -1
  78. package/dist/themes/material.css +1 -1
  79. package/dist/themes/monochrome.css +1 -1
  80. package/dist/themes/neutral.css +1 -1
  81. package/dist/themes/ocean.css +1 -1
  82. package/dist/themes/rainbow.css +1 -1
  83. package/dist/themes/sageivory.css +1 -1
  84. package/dist/themes/spring.css +1 -1
  85. package/dist/themes/summer.css +1 -1
  86. package/dist/themes/sunset.css +1 -1
  87. package/dist/themes/tealcaramel.css +1 -1
  88. package/dist/themes/vibrant.css +1 -1
  89. package/dist/themes/winter.css +1 -1
  90. package/package.json +1 -129
  91. package/src/styles/abstract/_variables.scss +22 -1
  92. package/src/styles/components/_fab-menu.scss +34 -20
@@ -1,9 +1,33 @@
1
+ // src/core/shapes/material.ts
2
+ //
3
+ // The Material 3 Expressive shapes: all 35 of Compose Material 3's
4
+ // `MaterialShapes`, built as it builds them (vertex lists repeated around a
5
+ // centre, stars, rectangles, circles), normalised into the unit square.
6
+ //
7
+ // Ported from androidx (Apache License 2.0, Copyright The Android Open Source
8
+ // Project): compose/material3/material3/src/commonMain/kotlin/androidx/compose/
9
+ // material3/MaterialShapes.kt at 080d2b3e5326ba80392d93442c4a51a02dc22650, on
10
+ // the geometry of androidx.graphics:graphics-shapes 1.0.1, the version Compose
11
+ // Material 3 depends on. test/fixtures/material-shapes.json holds every shape
12
+ // as Compose builds it (scripts/generate-material-shapes.kt), and the tests
13
+ // hold this port to it.
14
+ //
15
+ // Each shape is its own export, built once on first use, so a bundle carries
16
+ // only the shapes it names. `materialShape(name)` looks any of them up by name,
17
+ // and carries them all.
1
18
  import { pointOnCurve } from "./cubic.js";
2
- import { circle, normalizePolygon, polygonBounds, polygonMaxRadius, rotatePolygon, roundedPolygon, scalePolygon, star, } from "./polygon.js";
19
+ import { circle, normalizePolygon, polygonBounds, polygonMaxRadius, rectangle, regularPolygon, rotatePolygon, roundedPolygon, scalePolygon, star, } from "./polygon.js";
3
20
  const cornerRound15 = { radius: 0.15 };
21
+ const cornerRound20 = { radius: 0.2 };
22
+ const cornerRound30 = { radius: 0.3 };
4
23
  const cornerRound50 = { radius: 0.5 };
5
- const point = (x, y, r = { radius: 0 }) => ({ x, y, r });
24
+ const cornerRound100 = { radius: 1 };
25
+ const point = (x, y, radius = 0, smoothing = 0) => ({ x, y, r: { radius, smoothing } });
6
26
  const toRadians = (degrees) => (degrees / 360) * 2 * Math.PI;
27
+ /**
28
+ * Repeats a few points around the centre, `reps` times, optionally mirroring
29
+ * every other repetition (MaterialShapes.doRepeat)
30
+ */
7
31
  const repeat = (points, reps, cx, cy, mirroring) => {
8
32
  const result = [];
9
33
  if (mirroring) {
@@ -16,7 +40,7 @@ const repeat = (points, reps, cx, cy, mirroring) => {
16
40
  const i = it % 2 === 0 ? index : points.length - 1 - index;
17
41
  if (i > 0 || it % 2 === 0) {
18
42
  const a = toRadians(sectionAngle * it + (it % 2 === 0 ? angles[i] : sectionAngle - angles[i] + 2 * angles[0]));
19
- result.push(point(Math.cos(a) * distances[i] + cx, Math.sin(a) * distances[i] + cy, points[i].r));
43
+ result.push({ x: Math.cos(a) * distances[i] + cx, y: Math.sin(a) * distances[i] + cy, r: points[i].r });
20
44
  }
21
45
  }
22
46
  }
@@ -28,43 +52,184 @@ const repeat = (points, reps, cx, cy, mirroring) => {
28
52
  const a = toRadians(Math.floor(it / np) * (360 / reps));
29
53
  const dx = p.x - cx;
30
54
  const dy = p.y - cy;
31
- result.push(point(dx * Math.cos(a) - dy * Math.sin(a) + cx, dx * Math.sin(a) + dy * Math.cos(a) + cy, p.r));
55
+ result.push({ x: dx * Math.cos(a) - dy * Math.sin(a) + cx, y: dx * Math.sin(a) + dy * Math.cos(a) + cy, r: p.r });
32
56
  }
33
57
  return result;
34
58
  };
35
- const customPolygon = (pnr, reps, mirroring = false, cx = 0.5, cy = 0.5) => {
36
- const points = repeat(pnr, reps, cx, cy, mirroring);
59
+ /** MaterialShapes.customPolygon: points repeated around (0.5, 0.5) */
60
+ const custom = (pnr, reps, mirroring = false) => {
61
+ const points = repeat(pnr, reps, 0.5, 0.5, mirroring);
37
62
  const vertices = [];
38
63
  for (const p of points)
39
64
  vertices.push(p.x, p.y);
40
- return roundedPolygon(vertices, undefined, points.map((p) => p.r), cx, cy);
65
+ return roundedPolygon(vertices, undefined, points.map((p) => p.r), 0.5, 0.5);
41
66
  };
42
- const builders = {
43
- circle: () => circle(10),
44
- oval: () => rotatePolygon(scalePolygon(circle(), 1, 0.64), -45),
45
- pill: () => customPolygon([point(0.961, 0.039, { radius: 0.426 }), point(1.001, 0.428), point(1.0, 0.609, { radius: 1 })], 2, true),
46
- pentagon: () => customPolygon([point(0.5, -0.009, { radius: 0.172 }), point(1.03, 0.365, { radius: 0.164 }), point(0.828, 0.97, { radius: 0.169 })], 1, true),
47
- sunny: () => star(8, 1, 0.8, cornerRound15),
48
- cookie4: () => customPolygon([point(1.237, 1.236, { radius: 0.258 }), point(0.5, 0.918, { radius: 0.233 })], 4),
49
- cookie9: () => rotatePolygon(star(9, 1, 0.8, cornerRound50), -90),
50
- softBurst: () => customPolygon([point(0.193, 0.277, { radius: 0.053 }), point(0.176, 0.055, { radius: 0.053 })], 10),
67
+ /** A shape built once, on first use, and normalised into the unit square */
68
+ const shape = (build) => {
69
+ let built;
70
+ return () => (built ?? (built = normalizePolygon(build())));
51
71
  };
52
- const cache = new Map();
53
- export const materialShape = (name) => {
54
- let shape = cache.get(name);
55
- if (!shape) {
56
- shape = normalizePolygon(builders[name]());
57
- cache.set(name, shape);
58
- }
59
- return shape;
72
+ /** Circle */
73
+ export const shapeCircle = /*#__PURE__*/ shape(() => circle(10));
74
+ /** A rounded square */
75
+ export const shapeSquare = /*#__PURE__*/ shape(() => rectangle(1, 1, cornerRound30));
76
+ /** A slanted square */
77
+ export const shapeSlanted = /*#__PURE__*/ shape(() => custom([point(0.926, 0.97, 0.189, 0.811), point(-0.021, 0.967, 0.187, 0.057)], 2));
78
+ /** An arch */
79
+ export const shapeArch = /*#__PURE__*/ shape(() => rotatePolygon(regularPolygon(4, 1, 0, 0, undefined, [cornerRound100, cornerRound100, cornerRound20, cornerRound20]), -135));
80
+ /** A fan */
81
+ export const shapeFan = /*#__PURE__*/ shape(() => custom([point(1.004, 1.0, 0.148, 0.417), point(0.0, 1.0, 0.151), point(0.0, -0.003, 0.148), point(0.978, 0.02, 0.803)], 1));
82
+ /** An arrow */
83
+ export const shapeArrow = /*#__PURE__*/ shape(() => custom([point(0.5, 0.892, 0.313), point(-0.216, 1.05, 0.207), point(0.499, -0.16, 0.215, 1.0), point(1.225, 1.06, 0.211)], 1));
84
+ /** A semicircle */
85
+ export const shapeSemiCircle = /*#__PURE__*/ shape(() => rectangle(1.6, 1, undefined, [cornerRound20, cornerRound20, cornerRound100, cornerRound100]));
86
+ /** An oval */
87
+ export const shapeOval = /*#__PURE__*/ shape(() => rotatePolygon(scalePolygon(circle(), 1, 0.64), -45));
88
+ /** A pill */
89
+ export const shapePill = /*#__PURE__*/ shape(() => custom([point(0.961, 0.039, 0.426), point(1.001, 0.428), point(1.0, 0.609, 1.0)], 2, true));
90
+ /** A triangle */
91
+ export const shapeTriangle = /*#__PURE__*/ shape(() => rotatePolygon(regularPolygon(3, 1, 0, 0, cornerRound20), -90));
92
+ /** A diamond */
93
+ export const shapeDiamond = /*#__PURE__*/ shape(() => custom([point(0.5, 1.096, 0.151, 0.524), point(0.04, 0.5, 0.159)], 2));
94
+ /** A clam shell */
95
+ export const shapeClamShell = /*#__PURE__*/ shape(() => custom([point(0.171, 0.841, 0.159), point(-0.02, 0.5, 0.14), point(0.17, 0.159, 0.159)], 2));
96
+ /** A pentagon */
97
+ export const shapePentagon = /*#__PURE__*/ shape(() => custom([point(0.5, -0.009, 0.172), point(1.03, 0.365, 0.164), point(0.828, 0.97, 0.169)], 1, true));
98
+ /** A gem */
99
+ export const shapeGem = /*#__PURE__*/ shape(() => custom([point(0.499, 1.023, 0.241, 0.778), point(-0.005, 0.792, 0.208), point(0.073, 0.258, 0.228), point(0.433, -0.0, 0.491)], 1, true));
100
+ /** A sunny shape: an 8-point star */
101
+ export const shapeSunny = /*#__PURE__*/ shape(() => star(8, 1, 0.8, cornerRound15));
102
+ /** A very sunny shape */
103
+ export const shapeVerySunny = /*#__PURE__*/ shape(() => custom([point(0.5, 1.08, 0.085), point(0.358, 0.843, 0.085)], 8));
104
+ /** A 4-sided cookie */
105
+ export const shapeCookie4Sided = /*#__PURE__*/ shape(() => custom([point(1.237, 1.236, 0.258), point(0.5, 0.918, 0.233)], 4));
106
+ /** A 6-sided cookie */
107
+ export const shapeCookie6Sided = /*#__PURE__*/ shape(() => custom([point(0.723, 0.884, 0.394), point(0.5, 1.099, 0.398)], 6));
108
+ /** A 7-sided cookie */
109
+ export const shapeCookie7Sided = /*#__PURE__*/ shape(() => rotatePolygon(star(7, 1, 0.75, cornerRound50), -90));
110
+ /** A 9-sided cookie */
111
+ export const shapeCookie9Sided = /*#__PURE__*/ shape(() => rotatePolygon(star(9, 1, 0.8, cornerRound50), -90));
112
+ /** A 12-sided cookie */
113
+ export const shapeCookie12Sided = /*#__PURE__*/ shape(() => rotatePolygon(star(12, 1, 0.8, cornerRound50), -90));
114
+ /** A ghost-ish shape */
115
+ export const shapeGhostish = /*#__PURE__*/ shape(() => custom([point(0.5, 0, 1.0), point(1, 0, 1.0), point(1, 1.14, 0.254, 0.106), point(0.575, 0.906, 0.253)], 1, true));
116
+ /** A 4-leaf clover */
117
+ export const shapeClover4Leaf = /*#__PURE__*/ shape(() => custom([point(0.5, 0.074), point(0.725, -0.099, 0.476)], 4, true));
118
+ /** An 8-leaf clover */
119
+ export const shapeClover8Leaf = /*#__PURE__*/ shape(() => custom([point(0.5, 0.036), point(0.758, -0.101, 0.209)], 8));
120
+ /** A burst */
121
+ export const shapeBurst = /*#__PURE__*/ shape(() => custom([point(0.5, -0.006, 0.006), point(0.592, 0.158, 0.006)], 12));
122
+ /** A soft burst */
123
+ export const shapeSoftBurst = /*#__PURE__*/ shape(() => custom([point(0.193, 0.277, 0.053), point(0.176, 0.055, 0.053)], 10));
124
+ /** A boom */
125
+ export const shapeBoom = /*#__PURE__*/ shape(() => custom([point(0.457, 0.296, 0.007), point(0.5, -0.051, 0.007)], 15));
126
+ /** A soft boom */
127
+ export const shapeSoftBoom = /*#__PURE__*/ shape(() => custom([point(0.733, 0.454), point(0.839, 0.437, 0.532), point(0.949, 0.449, 0.439, 1.0), point(0.998, 0.478, 0.174)], 16, true));
128
+ /** A flower */
129
+ export const shapeFlower = /*#__PURE__*/ shape(() => custom([point(0.37, 0.187), point(0.416, 0.049, 0.381), point(0.479, 0.001, 0.095)], 8, true));
130
+ /** A puffy shape */
131
+ export const shapePuffy = /*#__PURE__*/ shape(() => scalePolygon(custom([
132
+ point(0.5, 0.053), point(0.545, -0.04, 0.405), point(0.67, -0.035, 0.426), point(0.717, 0.066, 0.574),
133
+ point(0.722, 0.128), point(0.777, 0.002, 0.36), point(0.914, 0.149, 0.66), point(0.926, 0.289, 0.66),
134
+ point(0.881, 0.346), point(0.94, 0.344, 0.126), point(1.003, 0.437, 0.255),
135
+ ], 2, true), 1, 0.742));
136
+ /** A puffy diamond */
137
+ export const shapePuffyDiamond = /*#__PURE__*/ shape(() => custom([point(0.87, 0.13, 0.146), point(0.818, 0.357), point(1.0, 0.332, 0.853)], 4, true));
138
+ /** A pixelated circle */
139
+ export const shapePixelCircle = /*#__PURE__*/ shape(() => custom([
140
+ point(0.5, 0.0), point(0.704, 0.0), point(0.704, 0.065), point(0.843, 0.065),
141
+ point(0.843, 0.148), point(0.926, 0.148), point(0.926, 0.296), point(1.0, 0.296),
142
+ ], 2, true));
143
+ /** A pixelated triangle */
144
+ export const shapePixelTriangle = /*#__PURE__*/ shape(() => custom([
145
+ point(0.11, 0.5), point(0.113, 0.0), point(0.287, 0.0), point(0.287, 0.087), point(0.421, 0.087),
146
+ point(0.421, 0.17), point(0.56, 0.17), point(0.56, 0.265), point(0.674, 0.265), point(0.675, 0.344),
147
+ point(0.789, 0.344), point(0.789, 0.439), point(0.888, 0.439),
148
+ ], 1, true));
149
+ /** A bun */
150
+ export const shapeBun = /*#__PURE__*/ shape(() => custom([point(0.796, 0.5), point(0.853, 0.518, 1), point(0.992, 0.631, 1), point(0.968, 1.0, 1)], 2, true));
151
+ /** A heart */
152
+ export const shapeHeart = /*#__PURE__*/ shape(() => custom([point(0.5, 0.268, 0.016), point(0.792, -0.066, 0.958), point(1.064, 0.276, 1.0), point(0.501, 0.946, 0.129)], 1, true));
153
+ const byName = {
154
+ circle: shapeCircle,
155
+ square: shapeSquare,
156
+ slanted: shapeSlanted,
157
+ arch: shapeArch,
158
+ fan: shapeFan,
159
+ arrow: shapeArrow,
160
+ semiCircle: shapeSemiCircle,
161
+ oval: shapeOval,
162
+ pill: shapePill,
163
+ triangle: shapeTriangle,
164
+ diamond: shapeDiamond,
165
+ clamShell: shapeClamShell,
166
+ pentagon: shapePentagon,
167
+ gem: shapeGem,
168
+ sunny: shapeSunny,
169
+ verySunny: shapeVerySunny,
170
+ cookie4Sided: shapeCookie4Sided,
171
+ cookie6Sided: shapeCookie6Sided,
172
+ cookie7Sided: shapeCookie7Sided,
173
+ cookie9Sided: shapeCookie9Sided,
174
+ cookie12Sided: shapeCookie12Sided,
175
+ ghostish: shapeGhostish,
176
+ clover4Leaf: shapeClover4Leaf,
177
+ clover8Leaf: shapeClover8Leaf,
178
+ burst: shapeBurst,
179
+ softBurst: shapeSoftBurst,
180
+ boom: shapeBoom,
181
+ softBoom: shapeSoftBoom,
182
+ flower: shapeFlower,
183
+ puffy: shapePuffy,
184
+ puffyDiamond: shapePuffyDiamond,
185
+ pixelCircle: shapePixelCircle,
186
+ pixelTriangle: shapePixelTriangle,
187
+ bun: shapeBun,
188
+ heart: shapeHeart,
189
+ /** @deprecated Use 'cookie4Sided' */
190
+ cookie4: shapeCookie4Sided,
191
+ /** @deprecated Use 'cookie9Sided' */
192
+ cookie9: shapeCookie9Sided,
193
+ };
194
+ /** A Material shape by name, normalised into the unit square. Carries every shape; import `shapeX` to carry one. */
195
+ export const materialShape = (name) => byName[name]();
196
+ const num = (value) => {
197
+ const rounded = Math.round(value * 1000) / 1000;
198
+ return String(Object.is(rounded, -0) ? 0 : rounded);
60
199
  };
200
+ /**
201
+ * A polygon's outline as an SVG path ("M … C … Z"), scaled by `size`: a
202
+ * normalised shape fills a `size` × `size` box. Coordinates keep three decimals.
203
+ */
204
+ export const polygonPath = (polygon, size = 1) => {
205
+ const cubics = polygon.cubics;
206
+ if (!cubics.length)
207
+ return '';
208
+ const s = (v) => num(v * size);
209
+ let d = `M${s(cubics[0][0])} ${s(cubics[0][1])}`;
210
+ for (const c of cubics)
211
+ d += `C${s(c[2])} ${s(c[3])} ${s(c[4])} ${s(c[5])} ${s(c[6])} ${s(c[7])}`;
212
+ return `${d}Z`;
213
+ };
214
+ /** A Material shape as an SVG path in a `size` × `size` box. Carries every shape, as materialShape does. */
215
+ export const materialShapePath = (name, size = 1) => polygonPath(materialShape(name), size);
61
216
  const TWO_PI = Math.PI * 2;
62
- export const radialProfile = (polygon, samples = 360, stepsPerCubic = 24) => {
217
+ /**
218
+ * radialProfile without its star-shape check, for callers whose shapes are
219
+ * known to be star-shaped: the loading indicator's, which the tests check.
220
+ * The centroid, not the bounds centre, is the pivot: a pentagon's mass sits
221
+ * below the middle of its box, and turning it about the box would make it
222
+ * orbit.
223
+ * @internal
224
+ */
225
+ export const sampleProfile = (polygon, samples = 360, stepsPerCubic = 24) => {
226
+ // The outline as a dense polygon
63
227
  const points = [];
64
228
  for (const cubic of polygon.cubics) {
65
229
  for (let s = 0; s < stepsPerCubic; s++)
66
230
  points.push(pointOnCurve(cubic, s / stepsPerCubic));
67
231
  }
232
+ // Its area centroid (shoelace formula)
68
233
  let area = 0;
69
234
  let centerX = 0;
70
235
  let centerY = 0;
@@ -85,6 +250,7 @@ export const radialProfile = (polygon, samples = 360, stepsPerCubic = 24) => {
85
250
  centerX = (bounds[0] + bounds[2]) / 2;
86
251
  centerY = (bounds[1] + bounds[3]) / 2;
87
252
  }
253
+ // The outline as (angle, radius) pairs, sorted by angle
88
254
  const outline = [];
89
255
  for (const [x, y] of points) {
90
256
  const dx = x - centerX;
@@ -116,4 +282,39 @@ export const radialProfile = (polygon, samples = 360, stepsPerCubic = 24) => {
116
282
  }
117
283
  return { radii, centerX, centerY, maxRadius };
118
284
  };
285
+ /**
286
+ * Samples the outline at `samples` angles around the shape's area centroid.
287
+ * Throws for a shape that is not star-shaped around it. Of the Material
288
+ * shapes, 33 are; Puffy and PixelTriangle are not (their outlines double back
289
+ * as seen from the centroid, Puffy by about 0.1°): a ray from the centroid
290
+ * would cross the outline more than once, and the profile would be wrong.
291
+ */
292
+ export const radialProfile = (polygon, samples = 360, stepsPerCubic = 24) => {
293
+ const profile = sampleProfile(polygon, samples, stepsPerCubic);
294
+ const { centerX, centerY } = profile;
295
+ const points = [];
296
+ for (const cubic of polygon.cubics) {
297
+ for (let s = 0; s < stepsPerCubic; s++)
298
+ points.push(pointOnCurve(cubic, s / stepsPerCubic));
299
+ }
300
+ // Star-shaped around the centroid: walking the outline, the angle seen from
301
+ // the centroid only ever turns one way. A shape that doubles back (a heart's
302
+ // notch, an arch's inner curve) would be sampled wrong: refuse it.
303
+ let turn = 0;
304
+ for (let i = 0; i < points.length; i++) {
305
+ const [x0, y0] = points[i];
306
+ const [x1, y1] = points[(i + 1) % points.length];
307
+ let step = Math.atan2(y1 - centerY, x1 - centerX) - Math.atan2(y0 - centerY, x0 - centerX);
308
+ if (step > Math.PI)
309
+ step -= TWO_PI;
310
+ else if (step < -Math.PI)
311
+ step += TWO_PI;
312
+ if (turn === 0)
313
+ turn = Math.sign(step);
314
+ else if (step * turn < -1e-9) {
315
+ throw new Error("radialProfile: the shape is not star-shaped around its centroid, so it has no radial profile");
316
+ }
317
+ }
318
+ return profile;
319
+ };
119
320
  export { polygonMaxRadius };
@@ -23,6 +23,8 @@ export declare const regularPolygon: (numVertices: number, radius?: number, cent
23
23
  export declare const circle: (numVertices?: number, radius?: number, centerX?: number, centerY?: number) => RoundedPolygon;
24
24
  /** A star with `numVerticesPerRadius` outer and inner vertices, outer first at angle 0 */
25
25
  export declare const star: (numVerticesPerRadius: number, radius?: number, innerRadius?: number, rounding?: CornerRounding, innerRounding?: CornerRounding, perVertexRounding?: CornerRounding[], centerX?: number, centerY?: number) => RoundedPolygon;
26
+ /** A rectangle centred on (centerX, centerY), its first vertex at the bottom right (graphics-shapes rectangle) */
27
+ export declare const rectangle: (width?: number, height?: number, rounding?: CornerRounding, perVertexRounding?: CornerRounding[], centerX?: number, centerY?: number) => RoundedPolygon;
26
28
  export declare const transformPolygon: (polygon: RoundedPolygon, f: PointTransformer) => RoundedPolygon;
27
29
  /** Rotation about the origin, in degrees, positive clockwise on a y-down canvas */
28
30
  export declare const rotatePolygon: (polygon: RoundedPolygon, degrees: number) => RoundedPolygon;
@@ -1,4 +1,4 @@
1
- import { DISTANCE_EPSILON, circularArc, cubicBounds, direction, distance, dot, lerp, pointOnCurve, reverseCubic, rotate90, straightLine, transformCubic, zeroLength, } from "./cubic.js";
1
+ import { DISTANCE_EPSILON, circularArc, cubicBounds, direction, distance, dot, lerp, pointOnCurve, reverseCubic, splitCubic, rotate90, straightLine, transformCubic, zeroLength, } from "./cubic.js";
2
2
  export const UNROUNDED = { radius: 0, smoothing: 0 };
3
3
  const sub = (a, b) => [a[0] - b[0], a[1] - b[1]];
4
4
  const add = (a, b) => [a[0] + b[0], a[1] + b[1]];
@@ -118,18 +118,23 @@ export const roundedPolygon = (vertices, rounding = UNROUNDED, perVertexRounding
118
118
  }
119
119
  cornerRuns.push(cornerCubics(corner, allowed[0], allowed[1]));
120
120
  }
121
- const cubics = [];
121
+ const features = [];
122
122
  for (let i = 0; i < n; i++) {
123
123
  const run = cornerRuns[i];
124
- const nextRun = cornerRuns[(i + 1) % n];
125
- for (const c of run)
126
- if (!zeroLength(c))
127
- cubics.push(c);
128
124
  const last = run[run.length - 1];
129
- const first = nextRun[0];
130
- const edge = straightLine(last[6], last[7], first[0], first[1]);
131
- if (!zeroLength(edge))
132
- cubics.push(edge);
125
+ const first = cornerRuns[(i + 1) % n][0];
126
+ features.push(run, [straightLine(last[6], last[7], first[0], first[1])]);
127
+ }
128
+ const first = features[0];
129
+ const split = first.length === 3 ? splitCubic(first[1], 0.5) : null;
130
+ const all = split ? [split[1], first[2], ...features.slice(1).flat(), first[0], split[0]] : features.flat();
131
+ const cubics = [];
132
+ for (const c of all) {
133
+ const last = cubics.length - 1;
134
+ if (!zeroLength(c))
135
+ cubics.push(c);
136
+ else if (last >= 0)
137
+ cubics[last] = [...cubics[last].slice(0, 6), c[6], c[7]];
133
138
  }
134
139
  let cx = centerX;
135
140
  let cy = centerY;
@@ -143,6 +148,11 @@ export const roundedPolygon = (vertices, rounding = UNROUNDED, perVertexRounding
143
148
  cx = sx / n;
144
149
  cy = sy / n;
145
150
  }
151
+ const last = cubics.length - 1;
152
+ if (last >= 0)
153
+ cubics[last] = [...cubics[last].slice(0, 6), cubics[0][0], cubics[0][1]];
154
+ else
155
+ cubics.push([cx, cy, cx, cy, cx, cy, cx, cy]);
146
156
  return { cubics, centerX: cx, centerY: cy };
147
157
  };
148
158
  const radial = (radius, angle, cx, cy) => [cx + Math.cos(angle) * radius, cy + Math.sin(angle) * radius];
@@ -177,6 +187,13 @@ export const star = (numVerticesPerRadius, radius = 1, innerRadius = 0.5, roundi
177
187
  }
178
188
  return roundedPolygon(vertices, rounding, pvRounding, centerX, centerY);
179
189
  };
190
+ export const rectangle = (width = 2, height = 2, rounding = UNROUNDED, perVertexRounding, centerX = 0, centerY = 0) => {
191
+ const left = centerX - width / 2;
192
+ const top = centerY - height / 2;
193
+ const right = centerX + width / 2;
194
+ const bottom = centerY + height / 2;
195
+ return roundedPolygon([right, bottom, left, bottom, left, top, right, top], rounding, perVertexRounding, centerX, centerY);
196
+ };
180
197
  export const transformPolygon = (polygon, f) => {
181
198
  const center = f(polygon.centerX, polygon.centerY);
182
199
  return { cubics: polygon.cubics.map((c) => transformCubic(c, f)), centerX: center[0], centerY: center[1] };
@@ -2,5 +2,5 @@ import "./ripple.js";
2
2
  import "./fab.js";
3
3
  import "./menu.js";
4
4
  import { registerStyles, registerPreupgrade } from "../styles.js";
5
- registerStyles({ "fab-menu": ".mtrl-fab-menu{position:relative;display:inline-block;width:56px;height:56px;vertical-align:middle}.mtrl-fab-menu--medium{width:80px;height:80px}.mtrl-fab-menu--large{width:96px;height:96px}.mtrl-fab-menu--primary{--mtrl-fab-menu-close: var(--mtrl-sys-color-primary);--mtrl-fab-menu-on-close: var(--mtrl-sys-color-on-primary);--mtrl-fab-menu-item: var(--mtrl-sys-color-primary-container);--mtrl-fab-menu-on-item: var(--mtrl-sys-color-on-primary-container)}.mtrl-fab-menu--secondary{--mtrl-fab-menu-close: var(--mtrl-sys-color-secondary);--mtrl-fab-menu-on-close: var(--mtrl-sys-color-on-secondary);--mtrl-fab-menu-item: var(--mtrl-sys-color-secondary-container);--mtrl-fab-menu-on-item: var(--mtrl-sys-color-on-secondary-container)}.mtrl-fab-menu--tertiary{--mtrl-fab-menu-close: var(--mtrl-sys-color-tertiary);--mtrl-fab-menu-on-close: var(--mtrl-sys-color-on-tertiary);--mtrl-fab-menu-item: var(--mtrl-sys-color-tertiary-container);--mtrl-fab-menu-on-item: var(--mtrl-sys-color-on-tertiary-container)}.mtrl-fab-menu--bottom-end,.mtrl-fab-menu--bottom-start{--mtrl-fab-menu-margin: 16px;position:absolute;bottom:var(--mtrl-fab-menu-margin);z-index:50}@media(min-width: 1200px){.mtrl-fab-menu--bottom-end,.mtrl-fab-menu--bottom-start{--mtrl-fab-menu-margin: 24px}}.mtrl-fab-menu--bottom-end{inset-inline-end:var(--mtrl-fab-menu-margin)}.mtrl-fab-menu--bottom-start{inset-inline-start:var(--mtrl-fab-menu-margin)}.mtrl-fab.mtrl-fab-menu__fab{position:absolute;inset-block-start:0;inset-inline-end:0;display:grid;place-items:center;transition:width 425ms linear(0, 0.102, 0.323, 0.57, 0.784, 0.942, 1.039, 1.085, 1.094, 1.082, 1.06, 1.037, 1.018, 1.004, 0.995, 0.992, 0.991, 0.992, 0.995, 0.997, 0.999, 1, 1.001, 1.001, 1),height 425ms linear(0, 0.102, 0.323, 0.57, 0.784, 0.942, 1.039, 1.085, 1.094, 1.082, 1.06, 1.037, 1.018, 1.004, 0.995, 0.992, 0.991, 0.992, 0.995, 0.997, 0.999, 1, 1.001, 1.001, 1),border-radius 425ms linear(0, 0.102, 0.323, 0.57, 0.784, 0.942, 1.039, 1.085, 1.094, 1.082, 1.06, 1.037, 1.018, 1.004, 0.995, 0.992, 0.991, 0.992, 0.995, 0.997, 0.999, 1, 1.001, 1.001, 1),background-color 425ms linear(0, 0.102, 0.323, 0.57, 0.784, 0.942, 1.039, 1.085, 1.094, 1.082, 1.06, 1.037, 1.018, 1.004, 0.995, 0.992, 0.991, 0.992, 0.995, 0.997, 0.999, 1, 1.001, 1.001, 1),color 425ms linear(0, 0.102, 0.323, 0.57, 0.784, 0.942, 1.039, 1.085, 1.094, 1.082, 1.06, 1.037, 1.018, 1.004, 0.995, 0.992, 0.991, 0.992, 0.995, 0.997, 0.999, 1, 1.001, 1.001, 1),box-shadow 425ms linear(0, 0.102, 0.323, 0.57, 0.784, 0.942, 1.039, 1.085, 1.094, 1.082, 1.06, 1.037, 1.018, 1.004, 0.995, 0.992, 0.991, 0.992, 0.995, 0.997, 0.999, 1, 1.001, 1.001, 1)}.mtrl-fab.mtrl-fab-menu__fab>*{grid-area:1/1}.mtrl-fab.mtrl-fab-menu__fab .mtrl-fab__icon,.mtrl-fab.mtrl-fab-menu__fab .mtrl-fab-menu__close{transition:visibility 0s linear 48ms}.mtrl-fab-menu__close{display:inline-flex;width:20px;height:20px;visibility:hidden}.mtrl-fab-menu__close svg{width:20px;height:20px;fill:currentColor}.mtrl-fab-menu--list.mtrl-fab-menu--open .mtrl-fab-menu__fab{width:56px;height:56px;border-radius:var(--mtrl-sys-shape-corner-full, 9999px);background-color:var(--mtrl-fab-menu-close);color:var(--mtrl-fab-menu-on-close)}.mtrl-fab-menu--list.mtrl-fab-menu--open .mtrl-fab-menu__fab .mtrl-fab__icon{visibility:hidden}.mtrl-fab-menu--list.mtrl-fab-menu--open .mtrl-fab-menu__fab .mtrl-fab-menu__close{visibility:visible}.mtrl-fab-menu__list{position:absolute;bottom:calc(100% + 8px);inset-inline-end:0;display:flex;flex-direction:column;align-items:flex-end;gap:4px;overflow-y:auto;visibility:hidden;transition:visibility 0s linear var(--mtrl-fab-menu-exit, 0ms)}.mtrl-fab-menu--menu .mtrl-fab-menu__list{display:none}.mtrl-fab-menu--open .mtrl-fab-menu__list{visibility:visible;transition-delay:0s}.mtrl-fab-menu__item{position:relative;display:inline-flex;flex-shrink:0;align-items:center;gap:8px;box-sizing:border-box;min-width:56px;height:56px;padding:0 24px;border:none;border-radius:var(--mtrl-sys-shape-corner-full, 9999px);background-color:var(--mtrl-fab-menu-item);color:var(--mtrl-fab-menu-on-item);font-family:var(--mtrl-ref-typeface-brand, Roboto, sans-serif);font-size:16px;line-height:24px;letter-spacing:.15px;font-weight:500;white-space:nowrap;cursor:pointer;overflow:hidden;opacity:0;clip-path:inset(0 0 0 100%);transition:opacity 175ms linear(0, 0.075, 0.227, 0.39, 0.537, 0.657, 0.751, 0.822, 0.874, 0.912, 0.939, 0.958, 0.971, 0.98, 0.987, 0.991, 0.994, 0.996, 0.997, 0.998, 0.999, 0.999, 0.999, 1, 1),clip-path 425ms linear(0, 0.102, 0.323, 0.57, 0.784, 0.942, 1.039, 1.085, 1.094, 1.082, 1.06, 1.037, 1.018, 1.004, 0.995, 0.992, 0.991, 0.992, 0.995, 0.997, 0.999, 1, 1.001, 1.001, 1);transition-delay:var(--mtrl-fab-menu-delay, 0ms)}.mtrl-fab-menu__item:dir(rtl){clip-path:inset(0 100% 0 0)}.mtrl-fab-menu__item:hover{position:relative}.mtrl-fab-menu__item:hover::before{content:\"\";position:absolute;inset:0;background-color:currentColor;opacity:.08;pointer-events:none;border-radius:inherit}.mtrl-fab-menu__item:focus-visible{position:relative;outline:2px solid var(--mtrl-sys-color-secondary);outline-offset:2px}.mtrl-fab-menu__item:focus-visible::before{content:\"\";position:absolute;inset:0;background-color:currentColor;opacity:.1;pointer-events:none;border-radius:inherit}.mtrl-fab-menu__item:active{position:relative}.mtrl-fab-menu__item:active:not(:has(>.mtrl-ripple))::before{content:\"\";position:absolute;inset:0;background-color:currentColor;opacity:.1;pointer-events:none;border-radius:inherit}.mtrl-fab-menu--open .mtrl-fab-menu__item{opacity:1;clip-path:inset(0)}.mtrl-fab-menu__item-icon{display:inline-flex;width:24px;height:24px}.mtrl-fab-menu__item-icon svg{width:24px;height:24px;fill:currentColor}@media(prefers-reduced-motion: reduce){.mtrl-fab.mtrl-fab-menu__fab{transition:background-color 175ms linear(0, 0.075, 0.227, 0.39, 0.537, 0.657, 0.751, 0.822, 0.874, 0.912, 0.939, 0.958, 0.971, 0.98, 0.987, 0.991, 0.994, 0.996, 0.997, 0.998, 0.999, 0.999, 0.999, 1, 1),color 175ms linear(0, 0.075, 0.227, 0.39, 0.537, 0.657, 0.751, 0.822, 0.874, 0.912, 0.939, 0.958, 0.971, 0.98, 0.987, 0.991, 0.994, 0.996, 0.997, 0.998, 0.999, 0.999, 0.999, 1, 1)}.mtrl-fab-menu__item,.mtrl-fab-menu__item:dir(rtl){clip-path:none;transition:opacity 175ms linear(0, 0.075, 0.227, 0.39, 0.537, 0.657, 0.751, 0.822, 0.874, 0.912, 0.939, 0.958, 0.971, 0.98, 0.987, 0.991, 0.994, 0.996, 0.997, 0.998, 0.999, 0.999, 0.999, 1, 1)}}" });
5
+ registerStyles({ "fab-menu": ".mtrl-fab-menu{position:relative;display:inline-block;width:56px;height:56px;vertical-align:middle}.mtrl-fab-menu--medium{width:80px;height:80px}.mtrl-fab-menu--large{width:96px;height:96px}.mtrl-fab-menu--primary{--mtrl-fab-menu-close: var(--mtrl-sys-color-primary);--mtrl-fab-menu-on-close: var(--mtrl-sys-color-on-primary);--mtrl-fab-menu-item: var(--mtrl-sys-color-primary-container);--mtrl-fab-menu-on-item: var(--mtrl-sys-color-on-primary-container)}.mtrl-fab-menu--secondary{--mtrl-fab-menu-close: var(--mtrl-sys-color-secondary);--mtrl-fab-menu-on-close: var(--mtrl-sys-color-on-secondary);--mtrl-fab-menu-item: var(--mtrl-sys-color-secondary-container);--mtrl-fab-menu-on-item: var(--mtrl-sys-color-on-secondary-container)}.mtrl-fab-menu--tertiary{--mtrl-fab-menu-close: var(--mtrl-sys-color-tertiary);--mtrl-fab-menu-on-close: var(--mtrl-sys-color-on-tertiary);--mtrl-fab-menu-item: var(--mtrl-sys-color-tertiary-container);--mtrl-fab-menu-on-item: var(--mtrl-sys-color-on-tertiary-container)}.mtrl-fab-menu--bottom-end,.mtrl-fab-menu--bottom-start{--mtrl-fab-menu-margin: 16px;position:absolute;bottom:var(--mtrl-fab-menu-margin);z-index:50}@media(min-width: 1200px){.mtrl-fab-menu--bottom-end,.mtrl-fab-menu--bottom-start{--mtrl-fab-menu-margin: 24px}}.mtrl-fab-menu--bottom-end{inset-inline-end:var(--mtrl-fab-menu-margin)}.mtrl-fab-menu--bottom-start{inset-inline-start:var(--mtrl-fab-menu-margin)}.mtrl-fab.mtrl-fab-menu__fab{position:absolute;inset-block-start:0;inset-inline-end:0;display:grid;place-items:center;transition:width 425ms linear(0, 0.102, 0.323, 0.57, 0.784, 0.942, 1.039, 1.085, 1.094, 1.082, 1.06, 1.037, 1.018, 1.004, 0.995, 0.992, 0.991, 0.992, 0.995, 0.997, 0.999, 1, 1.001, 1.001, 1),height 425ms linear(0, 0.102, 0.323, 0.57, 0.784, 0.942, 1.039, 1.085, 1.094, 1.082, 1.06, 1.037, 1.018, 1.004, 0.995, 0.992, 0.991, 0.992, 0.995, 0.997, 0.999, 1, 1.001, 1.001, 1),border-radius 425ms linear(0, 0.102, 0.323, 0.57, 0.784, 0.942, 1.039, 1.085, 1.094, 1.082, 1.06, 1.037, 1.018, 1.004, 0.995, 0.992, 0.991, 0.992, 0.995, 0.997, 0.999, 1, 1.001, 1.001, 1),background-color 425ms linear(0, 0.102, 0.323, 0.57, 0.784, 0.942, 1, 1, 1, 1, 1, 1, 1, 1, 0.995, 0.992, 0.991, 0.992, 0.995, 0.997, 0.999, 1, 1, 1, 1),color 425ms linear(0, 0.102, 0.323, 0.57, 0.784, 0.942, 1, 1, 1, 1, 1, 1, 1, 1, 0.995, 0.992, 0.991, 0.992, 0.995, 0.997, 0.999, 1, 1, 1, 1),box-shadow 425ms linear(0, 0.102, 0.323, 0.57, 0.784, 0.942, 1.039, 1.085, 1.094, 1.082, 1.06, 1.037, 1.018, 1.004, 0.995, 0.992, 0.991, 0.992, 0.995, 0.997, 0.999, 1, 1.001, 1.001, 1)}.mtrl-fab.mtrl-fab-menu__fab>*{grid-area:1/1}.mtrl-fab.mtrl-fab-menu__fab .mtrl-fab__icon,.mtrl-fab.mtrl-fab-menu__fab .mtrl-fab-menu__close{transition:visibility 0s linear 48ms}.mtrl-fab-menu__close{display:inline-flex;width:20px;height:20px;visibility:hidden}.mtrl-fab-menu__close svg{width:20px;height:20px;fill:currentColor}.mtrl-fab-menu--list.mtrl-fab-menu--open .mtrl-fab-menu__fab{width:56px;height:56px;border-radius:28px;background-color:var(--mtrl-fab-menu-close);color:var(--mtrl-fab-menu-on-close)}.mtrl-fab-menu--list.mtrl-fab-menu--open .mtrl-fab-menu__fab .mtrl-fab__icon{visibility:hidden}.mtrl-fab-menu--list.mtrl-fab-menu--open .mtrl-fab-menu__fab .mtrl-fab-menu__close{visibility:visible}.mtrl-fab-menu__list{position:absolute;bottom:calc(100% + 8px);inset-inline-end:0;display:flex;flex-direction:column;align-items:flex-end;gap:4px;overflow-y:auto;visibility:hidden;transition:visibility 0s linear var(--mtrl-fab-menu-exit, 0ms)}.mtrl-fab-menu--menu .mtrl-fab-menu__list{display:none}.mtrl-fab-menu--open .mtrl-fab-menu__list{visibility:visible;transition-delay:0s}.mtrl-fab-menu__item{position:relative;display:inline-flex;flex-shrink:0;justify-content:flex-end;box-sizing:border-box;width:0;height:56px;padding:0;border:none;border-radius:var(--mtrl-sys-shape-corner-full, 9999px);background-color:var(--mtrl-fab-menu-item);color:var(--mtrl-fab-menu-on-item);font-family:var(--mtrl-ref-typeface-brand, Roboto, sans-serif);font-size:16px;line-height:24px;letter-spacing:.15px;font-weight:500;white-space:nowrap;cursor:pointer;overflow:hidden;opacity:0;transition:opacity 175ms linear(0, 0.075, 0.227, 0.39, 0.537, 0.657, 0.751, 0.822, 0.874, 0.912, 0.939, 0.958, 0.971, 0.98, 0.987, 0.991, 0.994, 0.996, 0.997, 0.998, 0.999, 0.999, 0.999, 1, 1),width 425ms linear(0, 0.102, 0.323, 0.57, 0.784, 0.942, 1.039, 1.085, 1.094, 1.082, 1.06, 1.037, 1.018, 1.004, 0.995, 0.992, 0.991, 0.992, 0.995, 0.997, 0.999, 1, 1.001, 1.001, 1);transition-delay:var(--mtrl-fab-menu-delay, 0ms)}.mtrl-fab-menu__item:hover{position:relative}.mtrl-fab-menu__item:hover::before{content:\"\";position:absolute;inset:0;background-color:currentColor;opacity:.08;pointer-events:none;border-radius:inherit}.mtrl-fab-menu__item:focus-visible{position:relative;outline:2px solid var(--mtrl-sys-color-secondary);outline-offset:2px}.mtrl-fab-menu__item:focus-visible::before{content:\"\";position:absolute;inset:0;background-color:currentColor;opacity:.1;pointer-events:none;border-radius:inherit}.mtrl-fab-menu__item:active{position:relative}.mtrl-fab-menu__item:active:not(:has(>.mtrl-ripple))::before{content:\"\";position:absolute;inset:0;background-color:currentColor;opacity:.1;pointer-events:none;border-radius:inherit}.mtrl-fab-menu__item-content{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;gap:8px;box-sizing:border-box;min-width:56px;height:100%;padding:0 24px}.mtrl-fab-menu--open .mtrl-fab-menu__item{opacity:1;width:var(--mtrl-fab-menu-item-width, auto)}.mtrl-fab-menu__item-icon{display:inline-flex;width:24px;height:24px}.mtrl-fab-menu__item-icon svg{width:24px;height:24px;fill:currentColor}@media(prefers-reduced-motion: reduce){.mtrl-fab.mtrl-fab-menu__fab{transition:background-color 175ms linear(0, 0.075, 0.227, 0.39, 0.537, 0.657, 0.751, 0.822, 0.874, 0.912, 0.939, 0.958, 0.971, 0.98, 0.987, 0.991, 0.994, 0.996, 0.997, 0.998, 0.999, 0.999, 0.999, 1, 1),color 175ms linear(0, 0.075, 0.227, 0.39, 0.537, 0.657, 0.751, 0.822, 0.874, 0.912, 0.939, 0.958, 0.971, 0.98, 0.987, 0.991, 0.994, 0.996, 0.997, 0.998, 0.999, 0.999, 0.999, 1, 1)}.mtrl-fab-menu__item{transition:opacity 175ms linear(0, 0.075, 0.227, 0.39, 0.537, 0.657, 0.751, 0.822, 0.874, 0.912, 0.939, 0.958, 0.971, 0.98, 0.987, 0.991, 0.994, 0.996, 0.997, 0.998, 0.999, 0.999, 0.999, 1, 1)}}" });
6
6
  registerPreupgrade({ "fab-menu": "m-fab-menu:not(:defined){display:inline-block;vertical-align:middle;box-sizing:border-box;overflow:hidden;background-color:var(--mtrl-sys-color-primary-container);width:56px;height:56px;border-radius:var(--mtrl-sys-shape-corner-large, 16px)}m-fab-menu:not(:defined)[size=default]{width:56px;height:56px;border-radius:var(--mtrl-sys-shape-corner-large, 16px)}m-fab-menu:not(:defined)[size=medium]{width:80px;height:80px;border-radius:var(--mtrl-sys-shape-corner-large-increased, 20px)}m-fab-menu:not(:defined)[size=large]{width:96px;height:96px;border-radius:var(--mtrl-sys-shape-corner-extra-large, 28px)}m-fab-menu:not(:defined)[color=secondary]{background-color:var(--mtrl-sys-color-secondary-container)}m-fab-menu:not(:defined)[color=tertiary]{background-color:var(--mtrl-sys-color-tertiary-container)}m-fab-menu:not(:defined)>*{visibility:hidden;display:none}" });
@@ -42,7 +42,7 @@ const fabMenuSpec = {
42
42
  events: {
43
43
  open: { detail: () => ({}), state: true },
44
44
  close: { detail: () => ({}), state: true },
45
- select: { detail: (payload) => ({ value: payload.id }) },
45
+ select: { detail: (payload) => ({ value: payload.value }) },
46
46
  },
47
47
  config: (host) => ({ host, items: declaredItems(host, `${host.localName}-item`) }),
48
48
  setup: (host, c) => {
@@ -1,2 +1,2 @@
1
- /*! mtrl v0.10.0 | MIT */
1
+ /*! mtrl v0.10.2 | MIT */
2
2
  @layer mtrl.preupgrade{m-button:not(:defined){display:inline-flex;vertical-align:middle;align-items:center;justify-content:center;box-sizing:border-box;min-width:58px;white-space:nowrap;background-color:var(--mtrl-sys-color-primary);color:var(--mtrl-sys-color-on-primary);height:40px;padding:0 16px;gap:8px;border-radius:20px;font-family:var(--mtrl-ref-typeface-plain, Roboto, sans-serif);font-size:14px;line-height:20px;letter-spacing:.1px;font-weight:500}m-button:not(:defined)[icon]::before{width:20px;height:20px}m-button:not(:defined)[size=xs]{height:32px;padding:0 12px;gap:8px;border-radius:16px;font-family:var(--mtrl-ref-typeface-plain, Roboto, sans-serif);font-size:14px;line-height:20px;letter-spacing:.1px;font-weight:500}m-button:not(:defined)[size=xs][icon]::before{width:20px;height:20px}m-button:not(:defined)[size=s]{height:40px;padding:0 16px;gap:8px;border-radius:20px;font-family:var(--mtrl-ref-typeface-plain, Roboto, sans-serif);font-size:14px;line-height:20px;letter-spacing:.1px;font-weight:500}m-button:not(:defined)[size=s][icon]::before{width:20px;height:20px}m-button:not(:defined)[size=m]{height:56px;padding:0 24px;gap:8px;border-radius:28px;font-family:var(--mtrl-ref-typeface-brand, Roboto, sans-serif);font-size:16px;line-height:24px;letter-spacing:.15px;font-weight:500}m-button:not(:defined)[size=m][icon]::before{width:24px;height:24px}m-button:not(:defined)[size=l]{height:96px;padding:0 48px;gap:12px;border-radius:48px;font-family:var(--mtrl-ref-typeface-brand, Roboto, sans-serif);font-size:24px;line-height:32px;letter-spacing:0;font-weight:400}m-button:not(:defined)[size=l][icon]::before{width:32px;height:32px}m-button:not(:defined)[size=xl]{height:136px;padding:0 64px;gap:16px;border-radius:68px;font-family:var(--mtrl-ref-typeface-brand, Roboto, sans-serif);font-size:32px;line-height:40px;letter-spacing:0;font-weight:400}m-button:not(:defined)[size=xl][icon]::before{width:40px;height:40px}m-button:not(:defined)[variant=filled]{background-color:var(--mtrl-sys-color-primary);color:var(--mtrl-sys-color-on-primary)}m-button:not(:defined)[variant=elevated]{background-color:var(--mtrl-sys-color-surface-container-low);color:var(--mtrl-sys-color-primary)}m-button:not(:defined)[variant=tonal]{background-color:var(--mtrl-sys-color-secondary-container);color:var(--mtrl-sys-color-on-secondary-container)}m-button:not(:defined)[variant=outlined]{background-color:rgba(0,0,0,0);color:var(--mtrl-sys-color-on-surface-variant)}m-button:not(:defined)[variant=text]{background-color:rgba(0,0,0,0);color:var(--mtrl-sys-color-primary)}m-button:not(:defined)[variant=outlined]{border:1px solid var(--mtrl-sys-color-outline-variant)}m-button:not(:defined)[variant=text]{padding:0 12px}m-button:not(:defined)[icon]::before{content:"";flex:none}m-button:not(:defined)[icon]:not([size]),m-button:not(:defined)[icon][size=s]{padding-left:12px}m-switch:not(:defined){display:inline-grid;grid-template-columns:auto auto;align-content:center;align-items:center;column-gap:12px;box-sizing:border-box;min-height:56px;padding:4px 0;color:var(--mtrl-sys-color-on-surface);font-family:var(--mtrl-ref-typeface-plain, Roboto, sans-serif);font-size:16px;line-height:24px;letter-spacing:.5px;font-weight:400}m-switch:not(:defined)::after{content:"";grid-column:2;grid-row:1;box-sizing:border-box;width:52px;height:32px;border:2px solid var(--mtrl-sys-color-outline);border-radius:var(--mtrl-sys-shape-corner-full, 9999px);background:radial-gradient(circle at 14px 50%, var(--mtrl-sys-color-outline) 8px, transparent 8.5px) var(--mtrl-sys-color-surface-container-highest)}m-switch:not(:defined)[checked]::after{border-color:var(--mtrl-sys-color-primary);background:radial-gradient(circle at calc(100% - 14px) 50%, var(--mtrl-sys-color-on-primary) 12px, transparent 12.5px) var(--mtrl-sys-color-primary)}m-switch:not(:defined)[supporting-text]::after{grid-row:1/span 2}m-switch:not(:defined)[supporting-text]::before{content:attr(supporting-text);grid-column:1;grid-row:2;color:var(--mtrl-sys-color-on-surface-variant);font-family:var(--mtrl-ref-typeface-plain, Roboto, sans-serif);font-size:14px;line-height:20px;letter-spacing:.25px;font-weight:400}m-tabs:not(:defined){display:block;box-sizing:border-box;height:48px;overflow:hidden;border-bottom:1px solid var(--mtrl-sys-color-outline-variant)}m-tabs:not(:defined):has(>[icon]){height:64px}m-tabs:not(:defined)>*{visibility:hidden;display:none}m-progress:not(:defined){display:block;box-sizing:border-box;height:4px;padding:0 4px;overflow:hidden;color:rgba(0,0,0,0);background:var(--mtrl-sys-color-secondary-container) content-box}m-progress:not(:defined)[variant=circular]{display:inline-flex;vertical-align:middle;width:40px;height:40px;padding:0;background:none}m-loading-indicator:not(:defined){display:inline-flex;vertical-align:middle;width:48px;height:48px;overflow:hidden;color:rgba(0,0,0,0)}m-badge:not(:defined){display:inline-flex;vertical-align:middle;width:0;height:0;overflow:hidden}m-divider:not(:defined){display:block;height:1px;overflow:hidden;color:rgba(0,0,0,0);background-color:var(--mtrl-sys-color-outline-variant)}m-divider:not(:defined)[orientation=vertical]{display:inline-block;align-self:stretch;width:1px;height:auto}m-icon-button:not(:defined){display:inline-block;vertical-align:middle;box-sizing:border-box;overflow:hidden;color:rgba(0,0,0,0);height:40px;width:40px;border-radius:20px}m-icon-button:not(:defined)[size=xs]{height:32px;width:32px;border-radius:16px}m-icon-button:not(:defined)[size=xs][width=narrow]{height:32px;width:28px;border-radius:16px}m-icon-button:not(:defined)[size=xs][width=wide]{height:32px;width:40px;border-radius:16px}m-icon-button:not(:defined)[width=narrow]{height:40px;width:32px;border-radius:20px}m-icon-button:not(:defined)[width=wide]{height:40px;width:52px;border-radius:20px}m-icon-button:not(:defined)[size=m]{height:56px;width:56px;border-radius:28px}m-icon-button:not(:defined)[size=m][width=narrow]{height:56px;width:48px;border-radius:28px}m-icon-button:not(:defined)[size=m][width=wide]{height:56px;width:72px;border-radius:28px}m-icon-button:not(:defined)[size=l]{height:96px;width:96px;border-radius:48px}m-icon-button:not(:defined)[size=l][width=narrow]{height:96px;width:64px;border-radius:48px}m-icon-button:not(:defined)[size=l][width=wide]{height:96px;width:128px;border-radius:48px}m-icon-button:not(:defined)[size=xl]{height:136px;width:136px;border-radius:68px}m-icon-button:not(:defined)[size=xl][width=narrow]{height:136px;width:104px;border-radius:68px}m-icon-button:not(:defined)[size=xl][width=wide]{height:136px;width:184px;border-radius:68px}m-icon-button:not(:defined)[variant=filled]{background-color:var(--mtrl-sys-color-primary)}m-icon-button:not(:defined)[variant=tonal]{background-color:var(--mtrl-sys-color-secondary-container)}m-icon-button:not(:defined)[variant=outlined]{border:1px solid var(--mtrl-sys-color-outline-variant)}m-fab:not(:defined){display:inline-block;vertical-align:middle;box-sizing:border-box;overflow:hidden;color:rgba(0,0,0,0);background-color:var(--mtrl-sys-color-primary-container);width:56px;height:56px;border-radius:var(--mtrl-sys-shape-corner-large, 16px)}m-fab:not(:defined)[size=small]{width:40px;height:40px;border-radius:var(--mtrl-sys-shape-corner-medium, 12px)}m-fab:not(:defined)[size=default]{width:56px;height:56px;border-radius:var(--mtrl-sys-shape-corner-large, 16px)}m-fab:not(:defined)[size=medium]{width:80px;height:80px;border-radius:var(--mtrl-sys-shape-corner-large-increased, 20px)}m-fab:not(:defined)[size=large]{width:96px;height:96px;border-radius:var(--mtrl-sys-shape-corner-extra-large, 28px)}m-extended-fab:not(:defined){display:inline-flex;vertical-align:middle;align-items:center;justify-content:center;box-sizing:border-box;white-space:nowrap;background-color:var(--mtrl-sys-color-primary-container);color:var(--mtrl-sys-color-on-primary-container);height:56px;min-width:56px;padding:0 16px;gap:8px;border-radius:var(--mtrl-sys-shape-corner-large, 16px);font-family:var(--mtrl-ref-typeface-brand, Roboto, sans-serif);font-size:16px;line-height:24px;letter-spacing:.15px;font-weight:500}m-extended-fab:not(:defined)[icon]::before{width:24px;height:24px}m-extended-fab:not(:defined)[icon]::before{content:"";flex:none}m-extended-fab:not(:defined)[icon-position=end]::before{order:1}m-extended-fab:not(:defined)[size=medium]{height:80px;min-width:80px;padding:0 26px;gap:16px;border-radius:var(--mtrl-sys-shape-corner-large-increased, 20px);font-family:var(--mtrl-ref-typeface-brand, Roboto, sans-serif);font-size:22px;line-height:28px;letter-spacing:0;font-weight:400}m-extended-fab:not(:defined)[size=medium][icon]::before{width:28px;height:28px}m-extended-fab:not(:defined)[size=large]{height:96px;min-width:96px;padding:0 28px;gap:20px;border-radius:var(--mtrl-sys-shape-corner-extra-large, 28px);font-family:var(--mtrl-ref-typeface-brand, Roboto, sans-serif);font-size:24px;line-height:32px;letter-spacing:0;font-weight:400}m-extended-fab:not(:defined)[size=large][icon]::before{width:32px;height:32px}m-checkbox:not(:defined){display:inline-flex;align-items:center;box-sizing:border-box;min-height:48px;padding:4px 0;color:var(--mtrl-sys-color-on-surface);font-family:var(--mtrl-ref-typeface-plain, Roboto, sans-serif);font-size:16px;line-height:24px;letter-spacing:.5px;font-weight:400}m-checkbox:not(:defined)::before{content:"";flex:none;box-sizing:border-box;width:18px;height:18px;margin-inline-end:12px;border:2px solid var(--mtrl-sys-color-on-surface-variant);border-radius:2px}m-checkbox:not(:defined)[checked]::before{border-color:var(--mtrl-sys-color-primary);background-color:var(--mtrl-sys-color-primary)}m-checkbox:not(:defined)[label-position=start]::before{order:1;margin-inline:12px 0}m-slider:not(:defined){display:block;height:48px;overflow:hidden;color:rgba(0,0,0,0)}m-textfield:not(:defined){display:inline-block;position:relative;box-sizing:border-box;width:280px;height:56px;padding:22px 16px 0 16px;border-radius:var(--mtrl-sys-shape-corner-extra-small, 4px) var(--mtrl-sys-shape-corner-extra-small, 4px) 0 0;border-bottom:1px solid var(--mtrl-sys-color-on-surface-variant);background-color:var(--mtrl-sys-color-surface-container-highest);color:var(--mtrl-sys-color-on-surface);white-space:nowrap;overflow:clip;font-family:var(--mtrl-ref-typeface-plain, Roboto, sans-serif);font-size:16px;line-height:24px;letter-spacing:.5px;font-weight:400}m-textfield:not(:defined)::before{content:attr(value) " ";white-space:pre}m-textfield:not(:defined)[label]::after{content:attr(label);position:absolute;top:16px;left:16px;color:var(--mtrl-sys-color-on-surface-variant)}m-textfield:not(:defined)[label][value]:not([value=""])::after{top:8px;font-family:var(--mtrl-ref-typeface-plain, Roboto, sans-serif);font-size:12px;line-height:16px;letter-spacing:.4px;font-weight:400}m-textfield:not(:defined)[variant=outlined]{padding-top:15.5px;border:1px solid var(--mtrl-sys-color-outline);border-radius:var(--mtrl-sys-shape-corner-extra-small, 4px);background:none}m-textfield:not(:defined)[variant=outlined][label][value]:not([value=""])::after{top:-8px;padding:0 4px;left:12px}m-textfield:not(:defined)[density=compact]{height:40px;padding-top:13.5px;font-family:var(--mtrl-ref-typeface-plain, Roboto, sans-serif);font-size:14px;line-height:20px;letter-spacing:.25px;font-weight:400}m-textfield:not(:defined)[density=compact]::after{top:10px;font-family:var(--mtrl-ref-typeface-plain, Roboto, sans-serif);font-size:14px;line-height:20px;letter-spacing:.25px;font-weight:400}m-textfield:not(:defined)[density=compact][variant=outlined]{padding-top:9.5px}m-textfield:not(:defined)[supporting-text]:not([supporting-text=""]),m-textfield:not(:defined)[maxlength]{height:calc(56px + 20px);border-bottom:20px solid rgba(0,0,0,0);background-clip:padding-box;background-image:linear-gradient(to top, var(--mtrl-sys-color-on-surface-variant) 1px, transparent 1px)}m-textfield:not(:defined)[supporting-text]:not([supporting-text=""])[variant=outlined],m-textfield:not(:defined)[maxlength][variant=outlined]{padding-top:calc(15.5px + 1px);padding-left:calc(16px + 1px);border-width:0 0 20px;border-radius:var(--mtrl-sys-shape-corner-extra-small, 4px)/var(--mtrl-sys-shape-corner-extra-small, 4px) var(--mtrl-sys-shape-corner-extra-small, 4px) calc(var(--mtrl-sys-shape-corner-extra-small, 4px) + 20px) calc(var(--mtrl-sys-shape-corner-extra-small, 4px) + 20px);background-image:none;box-shadow:inset 0 0 0 1px var(--mtrl-sys-color-outline)}m-textfield:not(:defined)[supporting-text]:not([supporting-text=""])[density=compact],m-textfield:not(:defined)[maxlength][density=compact]{height:calc(40px + 20px)}m-textfield:not(:defined)>*{display:none}m-radios:not(:defined){display:block;font-family:var(--mtrl-ref-typeface-plain, Roboto, sans-serif);font-size:16px;line-height:24px;letter-spacing:.5px;font-weight:400}m-radios:not(:defined)[direction=horizontal]{display:flex;flex-wrap:wrap}m-radios:not(:defined)>*{visibility:hidden;display:flex;align-items:center;box-sizing:border-box;height:48px;padding-inline-start:48px}m-navigation-rail:not(:defined){display:block;box-sizing:border-box;padding:132px 0 16px;background:linear-gradient(var(--mtrl-sys-color-surface), var(--mtrl-sys-color-surface)) no-repeat 0 0/96px 100%}m-navigation-rail:not(:defined)>*{visibility:hidden;display:block;height:64px;overflow:hidden}m-navigation-rail:not(:defined)>*+*{margin-top:4px}m-drawer:not(:defined){display:block;flex-shrink:0;padding:12px 0}m-drawer:not(:defined)[open]{background-color:var(--mtrl-sys-color-surface)}m-drawer:not(:defined)>*{visibility:hidden;display:block;height:56px;overflow:hidden}m-top-app-bar:not(:defined){position:absolute;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;box-sizing:border-box;height:64px;padding:0 12px 0 28px;background-color:var(--mtrl-sys-color-surface);color:var(--mtrl-sys-color-on-surface);white-space:nowrap;overflow:hidden;font-family:var(--mtrl-ref-typeface-brand, Roboto, sans-serif);font-size:22px;line-height:28px;letter-spacing:0;font-weight:400}m-top-app-bar:not(:defined)[type=center]{justify-content:center}m-top-app-bar:not(:defined)[type=medium],m-top-app-bar:not(:defined)[type=large]{align-items:flex-end;padding-left:44px;padding-bottom:24px;height:112px;font-family:var(--mtrl-ref-typeface-brand, Roboto, sans-serif);font-size:24px;line-height:32px;letter-spacing:0;font-weight:400}m-top-app-bar:not(:defined)[type=large]{padding-bottom:28px;height:152px;font-family:var(--mtrl-ref-typeface-brand, Roboto, sans-serif);font-size:28px;line-height:36px;letter-spacing:0;font-weight:400}m-top-app-bar:not(:defined)>[slot=leading]{order:-1}m-top-app-bar:not(:defined)>[slot=trailing]{order:1;margin-left:auto}m-bottom-app-bar:not(:defined){position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;gap:4px;box-sizing:border-box;height:80px;padding:12px 16px 12px 4px;background-color:var(--mtrl-sys-color-surface-container)}m-bottom-app-bar:not(:defined)>[slot=fab]{margin-left:auto}m-button-group:not(:defined){display:inline-flex;vertical-align:middle;gap:12px;white-space:nowrap}m-button-group:not(:defined)>*{visibility:hidden;display:inline-flex;align-items:center;box-sizing:border-box;height:40px;padding:0 16px;border:1px solid rgba(0,0,0,0);font-family:var(--mtrl-ref-typeface-plain, Roboto, sans-serif);font-size:14px;line-height:20px;letter-spacing:.1px;font-weight:500}m-chips:not(:defined){display:flex;flex-wrap:wrap;gap:8px}m-chips:not(:defined)[vertical]{flex-direction:column;align-items:flex-start}m-chips:not(:defined)[scrollable]{flex-wrap:nowrap;overflow:hidden}m-chips:not(:defined)>*{visibility:hidden;display:inline-flex;align-items:center;box-sizing:border-box;height:32px;padding:0 16px;white-space:nowrap;font-family:var(--mtrl-ref-typeface-plain, Roboto, sans-serif);font-size:14px;line-height:20px;letter-spacing:.1px;font-weight:500}m-list:not(:defined){display:block;padding:8px 0;background-color:var(--mtrl-sys-color-surface)}m-list:not(:defined)>*{visibility:hidden;display:block;height:56px;overflow:hidden}m-list:not(:defined)>*[supporting-text],m-list:not(:defined)>*[overline]{height:72px}m-list:not(:defined)>*[kind=divider]{height:1px}m-list:not(:defined)>*[kind=subheader]{height:auto;padding:16px 16px 8px;font-family:var(--mtrl-ref-typeface-plain, Roboto, sans-serif);font-size:14px;line-height:20px;letter-spacing:.1px;font-weight:500}m-card:not(:defined){display:flex;flex-direction:column;box-sizing:border-box;padding:16px;border-radius:var(--mtrl-sys-shape-corner-medium, 12px);background-color:var(--mtrl-sys-color-surface-container-low);color:var(--mtrl-sys-color-on-surface);font-family:var(--mtrl-ref-typeface-plain, Roboto, sans-serif);font-size:14px;line-height:20px;letter-spacing:.25px;font-weight:400}m-card:not(:defined)[variant=filled]{background-color:var(--mtrl-sys-color-surface-container-highest)}m-card:not(:defined)[variant=outlined]{border:1px solid var(--mtrl-sys-color-outline-variant);background-color:var(--mtrl-sys-color-surface)}m-card:not(:defined)[headline]::before{content:attr(headline);order:-2;font-family:var(--mtrl-ref-typeface-brand, Roboto, sans-serif);font-size:22px;line-height:28px;letter-spacing:0;font-weight:400}m-card:not(:defined)[subhead]::after{content:attr(subhead);order:-1;color:var(--mtrl-sys-color-on-surface-variant)}m-card:not(:defined)[headline]:not([subhead])::before,m-card:not(:defined)[subhead]::after{margin-bottom:16px}m-card:not(:defined)>[slot=headline]{order:-2;font-family:var(--mtrl-ref-typeface-brand, Roboto, sans-serif);font-size:22px;line-height:28px;letter-spacing:0;font-weight:400}m-card:not(:defined)>[slot=subhead]{order:-1;color:var(--mtrl-sys-color-on-surface-variant)}m-carousel:not(:defined){display:block}m-carousel:not(:defined)>*{visibility:hidden;display:none}m-menu:not(:defined){display:none}m-fab-menu:not(:defined){display:inline-block;vertical-align:middle;box-sizing:border-box;overflow:hidden;background-color:var(--mtrl-sys-color-primary-container);width:56px;height:56px;border-radius:var(--mtrl-sys-shape-corner-large, 16px)}m-fab-menu:not(:defined)[size=default]{width:56px;height:56px;border-radius:var(--mtrl-sys-shape-corner-large, 16px)}m-fab-menu:not(:defined)[size=medium]{width:80px;height:80px;border-radius:var(--mtrl-sys-shape-corner-large-increased, 20px)}m-fab-menu:not(:defined)[size=large]{width:96px;height:96px;border-radius:var(--mtrl-sys-shape-corner-extra-large, 28px)}m-fab-menu:not(:defined)[color=secondary]{background-color:var(--mtrl-sys-color-secondary-container)}m-fab-menu:not(:defined)[color=tertiary]{background-color:var(--mtrl-sys-color-tertiary-container)}m-fab-menu:not(:defined)>*{visibility:hidden;display:none}m-select:not(:defined){display:inline-block;position:relative;box-sizing:border-box;width:280px;height:56px;padding:22px 44px 0 16px;border-radius:var(--mtrl-sys-shape-corner-extra-small, 4px) var(--mtrl-sys-shape-corner-extra-small, 4px) 0 0;border-bottom:1px solid var(--mtrl-sys-color-on-surface-variant);background-color:var(--mtrl-sys-color-surface-container-highest);color:var(--mtrl-sys-color-on-surface);white-space:nowrap;overflow:clip;font-family:var(--mtrl-ref-typeface-plain, Roboto, sans-serif);font-size:16px;line-height:24px;letter-spacing:.5px;font-weight:400}m-select:not(:defined)::before{content:attr(value) " ";white-space:pre}m-select:not(:defined)[label]::after{content:attr(label);position:absolute;top:16px;left:16px;color:var(--mtrl-sys-color-on-surface-variant)}m-select:not(:defined)[label][value]:not([value=""])::after{top:8px;font-family:var(--mtrl-ref-typeface-plain, Roboto, sans-serif);font-size:12px;line-height:16px;letter-spacing:.4px;font-weight:400}m-select:not(:defined)[variant=outlined]{padding-top:15.5px;border:1px solid var(--mtrl-sys-color-outline);border-radius:var(--mtrl-sys-shape-corner-extra-small, 4px);background:none}m-select:not(:defined)[variant=outlined][label][value]:not([value=""])::after{top:-8px;padding:0 4px;left:12px}m-select:not(:defined)[density=compact]{height:40px;padding-top:13.5px;font-family:var(--mtrl-ref-typeface-plain, Roboto, sans-serif);font-size:14px;line-height:20px;letter-spacing:.25px;font-weight:400}m-select:not(:defined)[density=compact]::after{top:10px;font-family:var(--mtrl-ref-typeface-plain, Roboto, sans-serif);font-size:14px;line-height:20px;letter-spacing:.25px;font-weight:400}m-select:not(:defined)[density=compact][variant=outlined]{padding-top:9.5px}m-select:not(:defined)[supporting-text]:not([supporting-text=""]),m-select:not(:defined)[maxlength]{height:calc(56px + 20px);border-bottom:20px solid rgba(0,0,0,0);background-clip:padding-box;background-image:linear-gradient(to top, var(--mtrl-sys-color-on-surface-variant) 1px, transparent 1px)}m-select:not(:defined)[supporting-text]:not([supporting-text=""])[variant=outlined],m-select:not(:defined)[maxlength][variant=outlined]{padding-top:calc(15.5px + 1px);padding-left:calc(16px + 1px);border-width:0 0 20px;border-radius:var(--mtrl-sys-shape-corner-extra-small, 4px)/var(--mtrl-sys-shape-corner-extra-small, 4px) var(--mtrl-sys-shape-corner-extra-small, 4px) calc(var(--mtrl-sys-shape-corner-extra-small, 4px) + 20px) calc(var(--mtrl-sys-shape-corner-extra-small, 4px) + 20px);background-image:none;box-shadow:inset 0 0 0 1px var(--mtrl-sys-color-outline)}m-select:not(:defined)[supporting-text]:not([supporting-text=""])[density=compact],m-select:not(:defined)[maxlength][density=compact]{height:calc(40px + 20px)}m-select:not(:defined)>*{display:none}m-select:not(:defined)::before{content:" "}m-split-button:not(:defined){display:inline-flex;vertical-align:middle;align-items:center;position:relative;z-index:0;box-sizing:border-box;height:40px;padding:0 calc(12px + 50px) 0 16px;color:var(--mtrl-sys-color-on-primary);white-space:nowrap;font-family:var(--mtrl-ref-typeface-plain, Roboto, sans-serif);font-size:14px;line-height:20px;letter-spacing:.1px;font-weight:500}m-split-button:not(:defined)::before,m-split-button:not(:defined)::after{content:"";position:absolute;z-index:-1;top:0;bottom:0;background-color:var(--mtrl-sys-color-primary)}m-split-button:not(:defined)::before{left:0;right:50px;border-radius:20px 4px 4px 20px}m-split-button:not(:defined)::after{right:0;width:48px;border-radius:4px 20px 20px 4px}m-split-button:not(:defined)>*{display:none}m-tooltip:not(:defined){display:none}m-toolbar:not(:defined){display:flex;align-items:center;justify-content:space-between;gap:8px;box-sizing:border-box;min-height:64px;padding-inline:16px;background-color:var(--mtrl-sys-color-surface-container)}m-toolbar:not(:defined)[arrangement=center]{justify-content:center;gap:32px}m-toolbar:not(:defined)[variant=floating]{width:fit-content;justify-content:center;gap:4px;padding:8px;border-radius:var(--mtrl-sys-shape-corner-full, 9999px)}m-toolbar:not(:defined)[variant=floating]:not([flat]){box-shadow:0px 1px 2px rgba(0,0,0,.3),0px 1px 3px 1px rgba(0,0,0,.15)}m-toolbar:not(:defined)[variant=floating][orientation=vertical]{flex-direction:column;min-height:0;min-width:64px}m-toolbar:not(:defined)[color=vibrant]{background-color:var(--mtrl-sys-color-primary-container)}m-snackbar:not(:defined){display:none}m-dialog:not(:defined){display:none}m-bottom-sheet:not(:defined){display:none}m-side-sheet:not(:defined){display:none}m-datepicker:not(:defined){display:inline-block;box-sizing:border-box;width:280px;vertical-align:baseline;white-space:nowrap}m-datepicker:not(:defined)::before{content:attr(label) " ";white-space:pre;display:inline-block;width:100%;padding-bottom:80px;color:var(--mtrl-sys-color-on-surface);font-family:var(--mtrl-ref-typeface-plain, Roboto, sans-serif);font-size:12px;line-height:16px;letter-spacing:.4px;font-weight:400}m-datepicker:not(:defined)>*{display:none}m-timepicker:not(:defined){display:none}m-search:not(:defined){display:flex;align-items:center;box-sizing:border-box;height:56px;padding:0 56px 0 60px;border-radius:var(--mtrl-sys-shape-corner-full, 9999px);background-color:var(--mtrl-sys-color-surface-container-high);color:var(--mtrl-sys-color-on-surface-variant);white-space:nowrap;overflow:hidden;font-family:var(--mtrl-ref-typeface-plain, Roboto, sans-serif);font-size:16px;line-height:24px;letter-spacing:.5px;font-weight:400}m-search:not(:defined)::before{content:attr(placeholder)}m-search:not(:defined)[value]:not([value=""])::before{content:attr(value);color:var(--mtrl-sys-color-on-surface)}m-search:not(:defined)>*{visibility:hidden;display:none}}
package/dist/index.cjs CHANGED
Binary file
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mtrl",
3
- "version": "0.10.0",
3
+ "version": "0.10.2",
4
4
  "description": "A functional TypeScript/JavaScript component library with composable architecture based on Material Design 3",
5
5
  "author": "floor",
6
6
  "license": "MIT",
@@ -1,2 +1,2 @@
1
- /*! mtrl v0.10.0 | MIT */
1
+ /*! mtrl v0.10.2 | MIT */
2
2
  @layer mtrl.base,mtrl.utilities,mtrl.textfield,mtrl.badge,mtrl.bottom-app-bar,mtrl.bottom-sheet,mtrl.side-sheet,mtrl.menu,mtrl.slider,mtrl.switch,mtrl.select,mtrl.progress,mtrl.button,mtrl.tabs,mtrl.top-app-bar,mtrl.icon-button,mtrl.button-group,mtrl.fab,mtrl.fab-menu,mtrl.extended-fab,mtrl.segmented-button,mtrl.card,mtrl.carousel,mtrl.checkbox,mtrl.chips,mtrl.divider,mtrl.dialog,mtrl.drawer,mtrl.loading-indicator,mtrl.split-button,mtrl.radios,mtrl.datepicker,mtrl.timepicker,mtrl.search,mtrl.snackbar,mtrl.navigation-rail,mtrl.list,mtrl.tooltip,mtrl.toolbar;@layer mtrl.badge{.mtrl-badge__wrapper{position:relative;display:inline-flex;flex-shrink:0}.mtrl-badge{position:absolute;display:flex;align-items:center;justify-content:center;font-weight:500;box-sizing:border-box;overflow:hidden;transition:all 200ms ease;text-overflow:ellipsis}.mtrl-badge--invisible{display:none}.mtrl-badge--small{width:6px;height:6px;min-width:6px;border-radius:var(--mtrl-sys-shape-corner-full, 9999px);font-size:0;padding:0}.mtrl-badge--large{height:16px;min-width:16px;border-radius:var(--mtrl-sys-shape-corner-full, 9999px);padding:0 4px;font-size:11px;line-height:16px;padding-top:.5px}.mtrl-badge--large.mtrl-badge--overflow{min-width:auto;max-width:34px;padding:0 4px}.mtrl-badge--positioned.mtrl-badge--small.mtrl-badge--top-right{top:-3px;right:-3px}.mtrl-badge--positioned.mtrl-badge--small.mtrl-badge--top-left{top:-3px;left:-3px}.mtrl-badge--positioned.mtrl-badge--small.mtrl-badge--bottom-right{bottom:-3px;right:-3px}.mtrl-badge--positioned.mtrl-badge--small.mtrl-badge--bottom-left{bottom:-3px;left:-3px}.mtrl-badge--positioned.mtrl-badge--large.mtrl-badge--top-right{top:-8px;right:-8px}.mtrl-badge--positioned.mtrl-badge--large.mtrl-badge--top-left{top:-8px;left:-8px}.mtrl-badge--positioned.mtrl-badge--large.mtrl-badge--bottom-right{bottom:-8px;right:-8px}.mtrl-badge--positioned.mtrl-badge--large.mtrl-badge--bottom-left{bottom:-8px;left:-8px}.mtrl-badge--error{background-color:var(--mtrl-sys-color-error);color:var(--mtrl-sys-color-on-error)}.mtrl-badge--primary{background-color:var(--mtrl-sys-color-primary);color:var(--mtrl-sys-color-on-primary)}.mtrl-badge--secondary{background-color:var(--mtrl-sys-color-secondary);color:var(--mtrl-sys-color-on-secondary)}.mtrl-badge--tertiary{background-color:var(--mtrl-sys-color-tertiary);color:var(--mtrl-sys-color-on-tertiary)}.mtrl-badge--success{background-color:var(--mtrl-sys-color-success);color:var(--mtrl-sys-color-on-success)}.mtrl-badge--warning{background-color:var(--mtrl-sys-color-warning);color:var(--mtrl-sys-color-on-warning)}.mtrl-badge--info{background-color:var(--mtrl-sys-color-info);color:var(--mtrl-sys-color-on-info)}[dir=rtl] .mtrl-badge--positioned.mtrl-badge--top-right{right:auto;left:-8px}[dir=rtl] .mtrl-badge--positioned.mtrl-badge--top-left{left:auto;right:-8px}[dir=rtl] .mtrl-badge--positioned.mtrl-badge--bottom-right{right:auto;left:-8px}[dir=rtl] .mtrl-badge--positioned.mtrl-badge--bottom-left{left:auto;right:-8px}}
@@ -1,2 +1,2 @@
1
- /*! mtrl v0.10.0 | MIT */
1
+ /*! mtrl v0.10.2 | MIT */
2
2
  @layer mtrl.base,mtrl.utilities,mtrl.textfield,mtrl.badge,mtrl.bottom-app-bar,mtrl.bottom-sheet,mtrl.side-sheet,mtrl.menu,mtrl.slider,mtrl.switch,mtrl.select,mtrl.progress,mtrl.button,mtrl.tabs,mtrl.top-app-bar,mtrl.icon-button,mtrl.button-group,mtrl.fab,mtrl.fab-menu,mtrl.extended-fab,mtrl.segmented-button,mtrl.card,mtrl.carousel,mtrl.checkbox,mtrl.chips,mtrl.divider,mtrl.dialog,mtrl.drawer,mtrl.loading-indicator,mtrl.split-button,mtrl.radios,mtrl.datepicker,mtrl.timepicker,mtrl.search,mtrl.snackbar,mtrl.navigation-rail,mtrl.list,mtrl.tooltip,mtrl.toolbar;@layer mtrl.base{:root{--mtrl-sys-color-error: #B3261E;--mtrl-sys-color-on-error: #FFFFFF;--mtrl-sys-color-error-container: #F9DEDC;--mtrl-sys-color-on-error-container: #410E0B;--mtrl-sys-color-success: #007B5A;--mtrl-sys-color-on-success: #FFFFFF;--mtrl-sys-color-warning: #DD6D06;--mtrl-sys-color-on-warning: #FFFFFF;--mtrl-sys-color-info: #0061A4;--mtrl-sys-color-on-info: #FFFFFF;--mtrl-sys-color-primary: #6750a4;--mtrl-sys-color-on-primary: #ffffff;--mtrl-sys-color-primary-container: #eaddff;--mtrl-sys-color-on-primary-container: #21005d;--mtrl-sys-color-secondary: #625b71;--mtrl-sys-color-on-secondary: #ffffff;--mtrl-sys-color-secondary-container: #e8def8;--mtrl-sys-color-on-secondary-container: #1d192b;--mtrl-sys-color-tertiary: #7d5260;--mtrl-sys-color-on-tertiary: #ffffff;--mtrl-sys-color-tertiary-container: #ffd8e4;--mtrl-sys-color-on-tertiary-container: #31111d;--mtrl-sys-color-primary-fixed: #eaddff;--mtrl-sys-color-primary-fixed-dim: #d0bcff;--mtrl-sys-color-on-primary-fixed: #21005d;--mtrl-sys-color-on-primary-fixed-variant: #4f378b;--mtrl-sys-color-secondary-fixed: #e8def8;--mtrl-sys-color-secondary-fixed-dim: #ccc2dc;--mtrl-sys-color-on-secondary-fixed: #1d192b;--mtrl-sys-color-on-secondary-fixed-variant: #4a4458;--mtrl-sys-color-tertiary-fixed: #ffd8e4;--mtrl-sys-color-tertiary-fixed-dim: #efb8c8;--mtrl-sys-color-on-tertiary-fixed: #31111d;--mtrl-sys-color-on-tertiary-fixed-variant: #633b48;--mtrl-sys-color-surface: #fef7ff;--mtrl-sys-color-surface-dim: #ded8e1;--mtrl-sys-color-surface-bright: #fef7ff;--mtrl-sys-color-surface-variant: #e7e0ec;--mtrl-sys-color-surface-container-lowest: #ffffff;--mtrl-sys-color-surface-container-low: #f7f2fa;--mtrl-sys-color-surface-container: #f3edf7;--mtrl-sys-color-surface-container-high: #ece6f0;--mtrl-sys-color-surface-container-highest: #e6e0e9;--mtrl-sys-color-on-surface: #1d1b20;--mtrl-sys-color-on-surface-variant: #49454f;--mtrl-sys-color-outline: #79747e;--mtrl-sys-color-outline-variant: #cac4d0;--mtrl-sys-color-shadow: #000000;--mtrl-sys-color-scrim: #000000;--mtrl-sys-color-inverse-surface: #322f35;--mtrl-sys-color-inverse-on-surface: #f5eff7;--mtrl-sys-color-inverse-primary: #d0bcff;--mtrl-sys-state-hover-state-layer-opacity: 0.08;--mtrl-sys-state-focus-state-layer-opacity: 0.1;--mtrl-sys-state-pressed-state-layer-opacity: 0.1;--mtrl-sys-state-dragged-state-layer-opacity: 0.16}@media(prefers-color-scheme: dark){:root{--mtrl-sys-color-error: #F2B8B5;--mtrl-sys-color-on-error: #601410;--mtrl-sys-color-error-container: #8C1D18;--mtrl-sys-color-on-error-container: #F9DEDC;--mtrl-sys-color-success: #85CFA9;--mtrl-sys-color-on-success: #00392D;--mtrl-sys-color-warning: #FFB95C;--mtrl-sys-color-on-warning: #3F2200;--mtrl-sys-color-info: #99CBFF;--mtrl-sys-color-on-info: #003060;--mtrl-sys-color-primary: #d0bcff;--mtrl-sys-color-on-primary: #381e72;--mtrl-sys-color-primary-container: #4f378b;--mtrl-sys-color-on-primary-container: #eaddff;--mtrl-sys-color-secondary: #ccc2dc;--mtrl-sys-color-on-secondary: #332d41;--mtrl-sys-color-secondary-container: #4a4458;--mtrl-sys-color-on-secondary-container: #e8def8;--mtrl-sys-color-tertiary: #efb8c8;--mtrl-sys-color-on-tertiary: #492532;--mtrl-sys-color-tertiary-container: #633b48;--mtrl-sys-color-on-tertiary-container: #ffd8e4;--mtrl-sys-color-primary-fixed: #eaddff;--mtrl-sys-color-primary-fixed-dim: #d0bcff;--mtrl-sys-color-on-primary-fixed: #21005d;--mtrl-sys-color-on-primary-fixed-variant: #4f378b;--mtrl-sys-color-secondary-fixed: #e8def8;--mtrl-sys-color-secondary-fixed-dim: #ccc2dc;--mtrl-sys-color-on-secondary-fixed: #1d192b;--mtrl-sys-color-on-secondary-fixed-variant: #4a4458;--mtrl-sys-color-tertiary-fixed: #ffd8e4;--mtrl-sys-color-tertiary-fixed-dim: #efb8c8;--mtrl-sys-color-on-tertiary-fixed: #31111d;--mtrl-sys-color-on-tertiary-fixed-variant: #633b48;--mtrl-sys-color-surface: #141218;--mtrl-sys-color-surface-dim: #141218;--mtrl-sys-color-surface-bright: #3b383e;--mtrl-sys-color-surface-variant: #49454f;--mtrl-sys-color-surface-container-lowest: #0f0d13;--mtrl-sys-color-surface-container-low: #1d1b20;--mtrl-sys-color-surface-container: #211f26;--mtrl-sys-color-surface-container-high: #2b2930;--mtrl-sys-color-surface-container-highest: #36343b;--mtrl-sys-color-on-surface: #e6e0e9;--mtrl-sys-color-on-surface-variant: #cac4d0;--mtrl-sys-color-outline: #938f99;--mtrl-sys-color-outline-variant: #49454f;--mtrl-sys-color-shadow: #000000;--mtrl-sys-color-scrim: #000000;--mtrl-sys-color-inverse-surface: #e6e0e9;--mtrl-sys-color-inverse-on-surface: #322f35;--mtrl-sys-color-inverse-primary: #6750a4}}.dark-theme{--mtrl-sys-color-error: #F2B8B5;--mtrl-sys-color-on-error: #601410;--mtrl-sys-color-error-container: #8C1D18;--mtrl-sys-color-on-error-container: #F9DEDC;--mtrl-sys-color-success: #85CFA9;--mtrl-sys-color-on-success: #00392D;--mtrl-sys-color-warning: #FFB95C;--mtrl-sys-color-on-warning: #3F2200;--mtrl-sys-color-info: #99CBFF;--mtrl-sys-color-on-info: #003060;--mtrl-sys-color-primary: #d0bcff;--mtrl-sys-color-on-primary: #381e72;--mtrl-sys-color-primary-container: #4f378b;--mtrl-sys-color-on-primary-container: #eaddff;--mtrl-sys-color-secondary: #ccc2dc;--mtrl-sys-color-on-secondary: #332d41;--mtrl-sys-color-secondary-container: #4a4458;--mtrl-sys-color-on-secondary-container: #e8def8;--mtrl-sys-color-tertiary: #efb8c8;--mtrl-sys-color-on-tertiary: #492532;--mtrl-sys-color-tertiary-container: #633b48;--mtrl-sys-color-on-tertiary-container: #ffd8e4;--mtrl-sys-color-primary-fixed: #eaddff;--mtrl-sys-color-primary-fixed-dim: #d0bcff;--mtrl-sys-color-on-primary-fixed: #21005d;--mtrl-sys-color-on-primary-fixed-variant: #4f378b;--mtrl-sys-color-secondary-fixed: #e8def8;--mtrl-sys-color-secondary-fixed-dim: #ccc2dc;--mtrl-sys-color-on-secondary-fixed: #1d192b;--mtrl-sys-color-on-secondary-fixed-variant: #4a4458;--mtrl-sys-color-tertiary-fixed: #ffd8e4;--mtrl-sys-color-tertiary-fixed-dim: #efb8c8;--mtrl-sys-color-on-tertiary-fixed: #31111d;--mtrl-sys-color-on-tertiary-fixed-variant: #633b48;--mtrl-sys-color-surface: #141218;--mtrl-sys-color-surface-dim: #141218;--mtrl-sys-color-surface-bright: #3b383e;--mtrl-sys-color-surface-variant: #49454f;--mtrl-sys-color-surface-container-lowest: #0f0d13;--mtrl-sys-color-surface-container-low: #1d1b20;--mtrl-sys-color-surface-container: #211f26;--mtrl-sys-color-surface-container-high: #2b2930;--mtrl-sys-color-surface-container-highest: #36343b;--mtrl-sys-color-on-surface: #e6e0e9;--mtrl-sys-color-on-surface-variant: #cac4d0;--mtrl-sys-color-outline: #938f99;--mtrl-sys-color-outline-variant: #49454f;--mtrl-sys-color-shadow: #000000;--mtrl-sys-color-scrim: #000000;--mtrl-sys-color-inverse-surface: #e6e0e9;--mtrl-sys-color-inverse-on-surface: #322f35;--mtrl-sys-color-inverse-primary: #6750a4}[data-theme=baseline]{--mtrl-sys-color-error: #B3261E;--mtrl-sys-color-on-error: #FFFFFF;--mtrl-sys-color-error-container: #F9DEDC;--mtrl-sys-color-on-error-container: #410E0B;--mtrl-sys-color-success: #007B5A;--mtrl-sys-color-on-success: #FFFFFF;--mtrl-sys-color-warning: #DD6D06;--mtrl-sys-color-on-warning: #FFFFFF;--mtrl-sys-color-info: #0061A4;--mtrl-sys-color-on-info: #FFFFFF;--mtrl-sys-color-primary: #6750a4;--mtrl-sys-color-on-primary: #ffffff;--mtrl-sys-color-primary-container: #eaddff;--mtrl-sys-color-on-primary-container: #21005d;--mtrl-sys-color-secondary: #625b71;--mtrl-sys-color-on-secondary: #ffffff;--mtrl-sys-color-secondary-container: #e8def8;--mtrl-sys-color-on-secondary-container: #1d192b;--mtrl-sys-color-tertiary: #7d5260;--mtrl-sys-color-on-tertiary: #ffffff;--mtrl-sys-color-tertiary-container: #ffd8e4;--mtrl-sys-color-on-tertiary-container: #31111d;--mtrl-sys-color-primary-fixed: #eaddff;--mtrl-sys-color-primary-fixed-dim: #d0bcff;--mtrl-sys-color-on-primary-fixed: #21005d;--mtrl-sys-color-on-primary-fixed-variant: #4f378b;--mtrl-sys-color-secondary-fixed: #e8def8;--mtrl-sys-color-secondary-fixed-dim: #ccc2dc;--mtrl-sys-color-on-secondary-fixed: #1d192b;--mtrl-sys-color-on-secondary-fixed-variant: #4a4458;--mtrl-sys-color-tertiary-fixed: #ffd8e4;--mtrl-sys-color-tertiary-fixed-dim: #efb8c8;--mtrl-sys-color-on-tertiary-fixed: #31111d;--mtrl-sys-color-on-tertiary-fixed-variant: #633b48;--mtrl-sys-color-surface: #fef7ff;--mtrl-sys-color-surface-dim: #ded8e1;--mtrl-sys-color-surface-bright: #fef7ff;--mtrl-sys-color-surface-variant: #e7e0ec;--mtrl-sys-color-surface-container-lowest: #ffffff;--mtrl-sys-color-surface-container-low: #f7f2fa;--mtrl-sys-color-surface-container: #f3edf7;--mtrl-sys-color-surface-container-high: #ece6f0;--mtrl-sys-color-surface-container-highest: #e6e0e9;--mtrl-sys-color-on-surface: #1d1b20;--mtrl-sys-color-on-surface-variant: #49454f;--mtrl-sys-color-outline: #79747e;--mtrl-sys-color-outline-variant: #cac4d0;--mtrl-sys-color-shadow: #000000;--mtrl-sys-color-scrim: #000000;--mtrl-sys-color-inverse-surface: #322f35;--mtrl-sys-color-inverse-on-surface: #f5eff7;--mtrl-sys-color-inverse-primary: #d0bcff;--mtrl-sys-state-hover-state-layer-opacity: 0.08;--mtrl-sys-state-focus-state-layer-opacity: 0.1;--mtrl-sys-state-pressed-state-layer-opacity: 0.1;--mtrl-sys-state-dragged-state-layer-opacity: 0.16}[data-theme=baseline][data-theme-mode=dark]{--mtrl-sys-color-error: #F2B8B5;--mtrl-sys-color-on-error: #601410;--mtrl-sys-color-error-container: #8C1D18;--mtrl-sys-color-on-error-container: #F9DEDC;--mtrl-sys-color-success: #85CFA9;--mtrl-sys-color-on-success: #00392D;--mtrl-sys-color-warning: #FFB95C;--mtrl-sys-color-on-warning: #3F2200;--mtrl-sys-color-info: #99CBFF;--mtrl-sys-color-on-info: #003060;--mtrl-sys-color-primary: #d0bcff;--mtrl-sys-color-on-primary: #381e72;--mtrl-sys-color-primary-container: #4f378b;--mtrl-sys-color-on-primary-container: #eaddff;--mtrl-sys-color-secondary: #ccc2dc;--mtrl-sys-color-on-secondary: #332d41;--mtrl-sys-color-secondary-container: #4a4458;--mtrl-sys-color-on-secondary-container: #e8def8;--mtrl-sys-color-tertiary: #efb8c8;--mtrl-sys-color-on-tertiary: #492532;--mtrl-sys-color-tertiary-container: #633b48;--mtrl-sys-color-on-tertiary-container: #ffd8e4;--mtrl-sys-color-primary-fixed: #eaddff;--mtrl-sys-color-primary-fixed-dim: #d0bcff;--mtrl-sys-color-on-primary-fixed: #21005d;--mtrl-sys-color-on-primary-fixed-variant: #4f378b;--mtrl-sys-color-secondary-fixed: #e8def8;--mtrl-sys-color-secondary-fixed-dim: #ccc2dc;--mtrl-sys-color-on-secondary-fixed: #1d192b;--mtrl-sys-color-on-secondary-fixed-variant: #4a4458;--mtrl-sys-color-tertiary-fixed: #ffd8e4;--mtrl-sys-color-tertiary-fixed-dim: #efb8c8;--mtrl-sys-color-on-tertiary-fixed: #31111d;--mtrl-sys-color-on-tertiary-fixed-variant: #633b48;--mtrl-sys-color-surface: #141218;--mtrl-sys-color-surface-dim: #141218;--mtrl-sys-color-surface-bright: #3b383e;--mtrl-sys-color-surface-variant: #49454f;--mtrl-sys-color-surface-container-lowest: #0f0d13;--mtrl-sys-color-surface-container-low: #1d1b20;--mtrl-sys-color-surface-container: #211f26;--mtrl-sys-color-surface-container-high: #2b2930;--mtrl-sys-color-surface-container-highest: #36343b;--mtrl-sys-color-on-surface: #e6e0e9;--mtrl-sys-color-on-surface-variant: #cac4d0;--mtrl-sys-color-outline: #938f99;--mtrl-sys-color-outline-variant: #49454f;--mtrl-sys-color-shadow: #000000;--mtrl-sys-color-scrim: #000000;--mtrl-sys-color-inverse-surface: #e6e0e9;--mtrl-sys-color-inverse-on-surface: #322f35;--mtrl-sys-color-inverse-primary: #6750a4}:root{--mtrl-ref-typeface-brand: Roboto, sans-serif;--mtrl-ref-typeface-plain: Roboto, sans-serif;--mtrl-sys-shape-corner-none: 0;--mtrl-sys-shape-corner-extra-tiny: 1px;--mtrl-sys-shape-corner-tiny: 2px;--mtrl-sys-shape-corner-extra-small: 4px;--mtrl-sys-shape-corner-small: 8px;--mtrl-sys-shape-corner-medium: 12px;--mtrl-sys-shape-corner-large: 16px;--mtrl-sys-shape-corner-large-increased: 20px;--mtrl-sys-shape-corner-extra-large: 28px;--mtrl-sys-shape-corner-full: 9999px;--mtrl-sys-shape-corner-pill: 100px;--mtrl-sys-typescale-display-large-font: var(--mtrl-ref-typeface-brand);--mtrl-sys-typescale-display-large-font-size: 57px;--mtrl-sys-typescale-display-large-line-height: 64px;--mtrl-sys-typescale-display-large-letter-spacing: -0.25px;--mtrl-sys-typescale-display-large-font-weight: 400;--mtrl-sys-typescale-display-medium-font: var(--mtrl-ref-typeface-brand);--mtrl-sys-typescale-display-medium-font-size: 45px;--mtrl-sys-typescale-display-medium-line-height: 52px;--mtrl-sys-typescale-display-medium-letter-spacing: 0;--mtrl-sys-typescale-display-medium-font-weight: 400;--mtrl-sys-typescale-display-small-font: var(--mtrl-ref-typeface-brand);--mtrl-sys-typescale-display-small-font-size: 36px;--mtrl-sys-typescale-display-small-line-height: 44px;--mtrl-sys-typescale-display-small-letter-spacing: 0;--mtrl-sys-typescale-display-small-font-weight: 400;--mtrl-sys-typescale-headline-large-font: var(--mtrl-ref-typeface-brand);--mtrl-sys-typescale-headline-large-font-size: 32px;--mtrl-sys-typescale-headline-large-line-height: 40px;--mtrl-sys-typescale-headline-large-letter-spacing: 0;--mtrl-sys-typescale-headline-large-font-weight: 400;--mtrl-sys-typescale-headline-medium-font: var(--mtrl-ref-typeface-brand);--mtrl-sys-typescale-headline-medium-font-size: 28px;--mtrl-sys-typescale-headline-medium-line-height: 36px;--mtrl-sys-typescale-headline-medium-letter-spacing: 0;--mtrl-sys-typescale-headline-medium-font-weight: 400;--mtrl-sys-typescale-headline-small-font: var(--mtrl-ref-typeface-brand);--mtrl-sys-typescale-headline-small-font-size: 24px;--mtrl-sys-typescale-headline-small-line-height: 32px;--mtrl-sys-typescale-headline-small-letter-spacing: 0;--mtrl-sys-typescale-headline-small-font-weight: 400;--mtrl-sys-typescale-title-large-font: var(--mtrl-ref-typeface-brand);--mtrl-sys-typescale-title-large-font-size: 22px;--mtrl-sys-typescale-title-large-line-height: 28px;--mtrl-sys-typescale-title-large-letter-spacing: 0;--mtrl-sys-typescale-title-large-font-weight: 400;--mtrl-sys-typescale-title-medium-font: var(--mtrl-ref-typeface-brand);--mtrl-sys-typescale-title-medium-font-size: 16px;--mtrl-sys-typescale-title-medium-line-height: 24px;--mtrl-sys-typescale-title-medium-letter-spacing: 0.15px;--mtrl-sys-typescale-title-medium-font-weight: 500;--mtrl-sys-typescale-title-small-font: var(--mtrl-ref-typeface-brand);--mtrl-sys-typescale-title-small-font-size: 14px;--mtrl-sys-typescale-title-small-line-height: 20px;--mtrl-sys-typescale-title-small-letter-spacing: 0.1px;--mtrl-sys-typescale-title-small-font-weight: 500;--mtrl-sys-typescale-body-large-font: var(--mtrl-ref-typeface-plain);--mtrl-sys-typescale-body-large-font-size: 16px;--mtrl-sys-typescale-body-large-line-height: 24px;--mtrl-sys-typescale-body-large-letter-spacing: 0.5px;--mtrl-sys-typescale-body-large-font-weight: 400;--mtrl-sys-typescale-body-medium-font: var(--mtrl-ref-typeface-plain);--mtrl-sys-typescale-body-medium-font-size: 14px;--mtrl-sys-typescale-body-medium-line-height: 20px;--mtrl-sys-typescale-body-medium-letter-spacing: 0.25px;--mtrl-sys-typescale-body-medium-font-weight: 400;--mtrl-sys-typescale-body-small-font: var(--mtrl-ref-typeface-plain);--mtrl-sys-typescale-body-small-font-size: 12px;--mtrl-sys-typescale-body-small-line-height: 16px;--mtrl-sys-typescale-body-small-letter-spacing: 0.4px;--mtrl-sys-typescale-body-small-font-weight: 400;--mtrl-sys-typescale-label-large-font: var(--mtrl-ref-typeface-plain);--mtrl-sys-typescale-label-large-font-size: 14px;--mtrl-sys-typescale-label-large-line-height: 20px;--mtrl-sys-typescale-label-large-letter-spacing: 0.1px;--mtrl-sys-typescale-label-large-font-weight: 500;--mtrl-sys-typescale-label-medium-font: var(--mtrl-ref-typeface-plain);--mtrl-sys-typescale-label-medium-font-size: 12px;--mtrl-sys-typescale-label-medium-line-height: 16px;--mtrl-sys-typescale-label-medium-letter-spacing: 0.5px;--mtrl-sys-typescale-label-medium-font-weight: 500;--mtrl-sys-typescale-label-small-font: var(--mtrl-ref-typeface-plain);--mtrl-sys-typescale-label-small-font-size: 11px;--mtrl-sys-typescale-label-small-line-height: 16px;--mtrl-sys-typescale-label-small-letter-spacing: 0.5px;--mtrl-sys-typescale-label-small-font-weight: 500}*,*::before,*::after{box-sizing:border-box}html,body,h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd{margin:0;padding:0}body{min-height:100vh;text-rendering:optimizeSpeed;line-height:1.5}img,picture{max-width:100%;display:block}input,button,textarea,select{font:inherit}@media(prefers-reduced-motion: reduce){html:focus-within{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-property:opacity,color,background-color,border-color,outline-color,box-shadow,visibility !important;scroll-behavior:auto !important}}button{background:rgba(0,0,0,0);border:none;cursor:pointer;padding:0}ul,ol{list-style:none;margin:0;padding:0}a{text-decoration:none;color:inherit}table{border-collapse:collapse;border-spacing:0}.mtrl-display-large{font-family:var(--mtrl-sys-typescale-display-large-font);font-size:var(--mtrl-sys-typescale-display-large-font-size);line-height:var(--mtrl-sys-typescale-display-large-line-height);letter-spacing:var(--mtrl-sys-typescale-display-large-letter-spacing);font-weight:var(--mtrl-sys-typescale-display-large-font-weight)}.mtrl-display-medium{font-family:var(--mtrl-sys-typescale-display-medium-font);font-size:var(--mtrl-sys-typescale-display-medium-font-size);line-height:var(--mtrl-sys-typescale-display-medium-line-height);letter-spacing:var(--mtrl-sys-typescale-display-medium-letter-spacing);font-weight:var(--mtrl-sys-typescale-display-medium-font-weight)}.mtrl-display-small{font-family:var(--mtrl-sys-typescale-display-small-font);font-size:var(--mtrl-sys-typescale-display-small-font-size);line-height:var(--mtrl-sys-typescale-display-small-line-height);letter-spacing:var(--mtrl-sys-typescale-display-small-letter-spacing);font-weight:var(--mtrl-sys-typescale-display-small-font-weight)}.mtrl-headline-large{font-family:var(--mtrl-sys-typescale-headline-large-font);font-size:var(--mtrl-sys-typescale-headline-large-font-size);line-height:var(--mtrl-sys-typescale-headline-large-line-height);letter-spacing:var(--mtrl-sys-typescale-headline-large-letter-spacing);font-weight:var(--mtrl-sys-typescale-headline-large-font-weight)}.mtrl-headline-medium{font-family:var(--mtrl-sys-typescale-headline-medium-font);font-size:var(--mtrl-sys-typescale-headline-medium-font-size);line-height:var(--mtrl-sys-typescale-headline-medium-line-height);letter-spacing:var(--mtrl-sys-typescale-headline-medium-letter-spacing);font-weight:var(--mtrl-sys-typescale-headline-medium-font-weight)}.mtrl-headline-small{font-family:var(--mtrl-sys-typescale-headline-small-font);font-size:var(--mtrl-sys-typescale-headline-small-font-size);line-height:var(--mtrl-sys-typescale-headline-small-line-height);letter-spacing:var(--mtrl-sys-typescale-headline-small-letter-spacing);font-weight:var(--mtrl-sys-typescale-headline-small-font-weight)}.mtrl-title-large{font-family:var(--mtrl-sys-typescale-title-large-font);font-size:var(--mtrl-sys-typescale-title-large-font-size);line-height:var(--mtrl-sys-typescale-title-large-line-height);letter-spacing:var(--mtrl-sys-typescale-title-large-letter-spacing);font-weight:var(--mtrl-sys-typescale-title-large-font-weight)}.mtrl-title-medium{font-family:var(--mtrl-sys-typescale-title-medium-font);font-size:var(--mtrl-sys-typescale-title-medium-font-size);line-height:var(--mtrl-sys-typescale-title-medium-line-height);letter-spacing:var(--mtrl-sys-typescale-title-medium-letter-spacing);font-weight:var(--mtrl-sys-typescale-title-medium-font-weight)}.mtrl-title-small{font-family:var(--mtrl-sys-typescale-title-small-font);font-size:var(--mtrl-sys-typescale-title-small-font-size);line-height:var(--mtrl-sys-typescale-title-small-line-height);letter-spacing:var(--mtrl-sys-typescale-title-small-letter-spacing);font-weight:var(--mtrl-sys-typescale-title-small-font-weight)}.mtrl-body-large{font-family:var(--mtrl-sys-typescale-body-large-font);font-size:var(--mtrl-sys-typescale-body-large-font-size);line-height:var(--mtrl-sys-typescale-body-large-line-height);letter-spacing:var(--mtrl-sys-typescale-body-large-letter-spacing);font-weight:var(--mtrl-sys-typescale-body-large-font-weight)}.mtrl-body-medium{font-family:var(--mtrl-sys-typescale-body-medium-font);font-size:var(--mtrl-sys-typescale-body-medium-font-size);line-height:var(--mtrl-sys-typescale-body-medium-line-height);letter-spacing:var(--mtrl-sys-typescale-body-medium-letter-spacing);font-weight:var(--mtrl-sys-typescale-body-medium-font-weight)}.mtrl-body-small{font-family:var(--mtrl-sys-typescale-body-small-font);font-size:var(--mtrl-sys-typescale-body-small-font-size);line-height:var(--mtrl-sys-typescale-body-small-line-height);letter-spacing:var(--mtrl-sys-typescale-body-small-letter-spacing);font-weight:var(--mtrl-sys-typescale-body-small-font-weight)}.mtrl-label-large{font-family:var(--mtrl-sys-typescale-label-large-font);font-size:var(--mtrl-sys-typescale-label-large-font-size);line-height:var(--mtrl-sys-typescale-label-large-line-height);letter-spacing:var(--mtrl-sys-typescale-label-large-letter-spacing);font-weight:var(--mtrl-sys-typescale-label-large-font-weight)}.mtrl-label-medium{font-family:var(--mtrl-sys-typescale-label-medium-font);font-size:var(--mtrl-sys-typescale-label-medium-font-size);line-height:var(--mtrl-sys-typescale-label-medium-line-height);letter-spacing:var(--mtrl-sys-typescale-label-medium-letter-spacing);font-weight:var(--mtrl-sys-typescale-label-medium-font-weight)}.mtrl-label-small{font-family:var(--mtrl-sys-typescale-label-small-font);font-size:var(--mtrl-sys-typescale-label-small-font-size);line-height:var(--mtrl-sys-typescale-label-small-line-height);letter-spacing:var(--mtrl-sys-typescale-label-small-letter-spacing);font-weight:var(--mtrl-sys-typescale-label-small-font-weight)}.mtrl-text-center{text-align:center}.mtrl-text-left{text-align:left}.mtrl-text-right{text-align:right}.mtrl-font-thin{font-weight:100}.mtrl-font-light{font-weight:300}.mtrl-font-regular{font-weight:400}.mtrl-font-medium{font-weight:500}.mtrl-font-bold{font-weight:700}.mtrl-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mtrl-truncate-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.mtrl-truncate-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}h1{font-family:var(--mtrl-sys-typescale-headline-large-font);font-size:var(--mtrl-sys-typescale-headline-large-font-size);line-height:var(--mtrl-sys-typescale-headline-large-line-height);letter-spacing:var(--mtrl-sys-typescale-headline-large-letter-spacing);font-weight:var(--mtrl-sys-typescale-headline-large-font-weight);margin-bottom:.5em}h2{font-family:var(--mtrl-sys-typescale-headline-medium-font);font-size:var(--mtrl-sys-typescale-headline-medium-font-size);line-height:var(--mtrl-sys-typescale-headline-medium-line-height);letter-spacing:var(--mtrl-sys-typescale-headline-medium-letter-spacing);font-weight:var(--mtrl-sys-typescale-headline-medium-font-weight);margin-bottom:.5em}h3{font-family:var(--mtrl-sys-typescale-headline-small-font);font-size:var(--mtrl-sys-typescale-headline-small-font-size);line-height:var(--mtrl-sys-typescale-headline-small-line-height);letter-spacing:var(--mtrl-sys-typescale-headline-small-letter-spacing);font-weight:var(--mtrl-sys-typescale-headline-small-font-weight);margin-bottom:.5em}h4{font-family:var(--mtrl-sys-typescale-title-large-font);font-size:var(--mtrl-sys-typescale-title-large-font-size);line-height:var(--mtrl-sys-typescale-title-large-line-height);letter-spacing:var(--mtrl-sys-typescale-title-large-letter-spacing);font-weight:var(--mtrl-sys-typescale-title-large-font-weight);margin-bottom:.5em}h5{font-family:var(--mtrl-sys-typescale-title-medium-font);font-size:var(--mtrl-sys-typescale-title-medium-font-size);line-height:var(--mtrl-sys-typescale-title-medium-line-height);letter-spacing:var(--mtrl-sys-typescale-title-medium-letter-spacing);font-weight:var(--mtrl-sys-typescale-title-medium-font-weight);margin-bottom:.5em}h6{font-family:var(--mtrl-sys-typescale-title-small-font);font-size:var(--mtrl-sys-typescale-title-small-font-size);line-height:var(--mtrl-sys-typescale-title-small-line-height);letter-spacing:var(--mtrl-sys-typescale-title-small-letter-spacing);font-weight:var(--mtrl-sys-typescale-title-small-font-weight);margin-bottom:.5em}p{font-family:var(--mtrl-sys-typescale-body-medium-font);font-size:var(--mtrl-sys-typescale-body-medium-font-size);line-height:var(--mtrl-sys-typescale-body-medium-line-height);letter-spacing:var(--mtrl-sys-typescale-body-medium-letter-spacing);font-weight:var(--mtrl-sys-typescale-body-medium-font-weight);margin-bottom:1em}.mtrl-ripple{position:absolute;top:0;left:0;right:0;bottom:0;overflow:hidden;border-radius:inherit;pointer-events:none;z-index:0}.mtrl-ripple-wave{position:absolute;border-radius:50%;background-color:currentColor;opacity:0;transform:scale(0);pointer-events:none;will-change:transform,opacity;transition:opacity .4s cubic-bezier(0.4, 0, 0.2, 1)}.mtrl-ripple-wave.active{animation:mtrl-ripple-expand .4s cubic-bezier(0.4, 0, 0.2, 1) both;opacity:.1}.mtrl-ripple-wave.fade-out{opacity:0}@keyframes mtrl-ripple-expand{from{transform:scale(0)}to{transform:scale(1)}}@media(prefers-reduced-motion: reduce){.mtrl-ripple-wave.active{animation:none;transform:scale(1)}.mtrl-ripple-wave{transition:none}}[data-ripple]{position:relative;overflow:hidden}[data-ripple]::after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;z-index:0;pointer-events:none}[data-ripple][data-ripple=light]::after{background-color:hsla(0,0%,100%,.3)}[data-ripple][data-ripple=dark]::after{background-color:rgba(0,0,0,.1)}[data-ripple]>*{position:relative;z-index:1}body{margin:0;padding:0;background-color:var(--mtrl-sys-color-surface);color:var(--mtrl-sys-color-on-surface);font-family:var(--mtrl-sys-typescale-body-medium-font);font-size:var(--mtrl-sys-typescale-body-medium-font-size);line-height:var(--mtrl-sys-typescale-body-medium-line-height);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color 100ms cubic-bezier(0.2, 0, 0, 1),color 100ms cubic-bezier(0.2, 0, 0, 1)}html{scroll-behavior:smooth}@media(prefers-reduced-motion: reduce){html{scroll-behavior:auto}}*,*::before,*::after{box-sizing:border-box}}
@@ -1,2 +1,2 @@
1
- /*! mtrl v0.10.0 | MIT */
1
+ /*! mtrl v0.10.2 | MIT */
2
2
  @layer mtrl.base,mtrl.utilities,mtrl.textfield,mtrl.badge,mtrl.bottom-app-bar,mtrl.bottom-sheet,mtrl.side-sheet,mtrl.menu,mtrl.slider,mtrl.switch,mtrl.select,mtrl.progress,mtrl.button,mtrl.tabs,mtrl.top-app-bar,mtrl.icon-button,mtrl.button-group,mtrl.fab,mtrl.fab-menu,mtrl.extended-fab,mtrl.segmented-button,mtrl.card,mtrl.carousel,mtrl.checkbox,mtrl.chips,mtrl.divider,mtrl.dialog,mtrl.drawer,mtrl.loading-indicator,mtrl.split-button,mtrl.radios,mtrl.datepicker,mtrl.timepicker,mtrl.search,mtrl.snackbar,mtrl.navigation-rail,mtrl.list,mtrl.tooltip,mtrl.toolbar;@layer mtrl.bottom-app-bar{.mtrl-bottom-app-bar{position:absolute;bottom:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;height:80px;padding:12px 16px 12px 4px;background-color:var(--mtrl-sys-color-surface-container);box-shadow:0px 1px 2px rgba(0,0,0,.3),0px 2px 6px 2px rgba(0,0,0,.15);transition:transform .3s ease-in-out}.mtrl-bottom-app-bar__actions{display:flex;align-items:center;gap:4px;height:100%}.mtrl-bottom-app-bar__actions>*{flex-shrink:0}.mtrl-bottom-app-bar__fab-container{display:flex;align-items:center;justify-content:center;margin-left:auto}.mtrl-bottom-app-bar--with-fab{height:72px}.mtrl-bottom-app-bar--fab-center .mtrl-bottom-app-bar__fab-container{position:absolute;left:50%;transform:translateX(-50%)}.mtrl-bottom-app-bar--hidden{transform:translateY(100%)}[dir=rtl] .mtrl-bottom-app-bar{padding:12px 4px 12px 16px}[dir=rtl] .mtrl-bottom-app-bar__actions{flex-direction:row-reverse}[dir=rtl] .mtrl-bottom-app-bar__fab-container{margin-right:auto;margin-left:initial}@media(prefers-reduced-motion: reduce){.mtrl-bottom-app-bar{transition-duration:.01ms}}@media(forced-colors: active){.mtrl-bottom-app-bar{border-top:1px solid currentColor}}}
@@ -1,2 +1,2 @@
1
- /*! mtrl v0.10.0 | MIT */
1
+ /*! mtrl v0.10.2 | MIT */
2
2
  @layer mtrl.base,mtrl.utilities,mtrl.textfield,mtrl.badge,mtrl.bottom-app-bar,mtrl.bottom-sheet,mtrl.side-sheet,mtrl.menu,mtrl.slider,mtrl.switch,mtrl.select,mtrl.progress,mtrl.button,mtrl.tabs,mtrl.top-app-bar,mtrl.icon-button,mtrl.button-group,mtrl.fab,mtrl.fab-menu,mtrl.extended-fab,mtrl.segmented-button,mtrl.card,mtrl.carousel,mtrl.checkbox,mtrl.chips,mtrl.divider,mtrl.dialog,mtrl.drawer,mtrl.loading-indicator,mtrl.split-button,mtrl.radios,mtrl.datepicker,mtrl.timepicker,mtrl.search,mtrl.snackbar,mtrl.navigation-rail,mtrl.list,mtrl.tooltip,mtrl.toolbar;@layer mtrl.bottom-sheet{.mtrl-bottom-sheet{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-end;justify-content:center;pointer-events:none}.mtrl-bottom-sheet--scrim-visible,.mtrl-bottom-sheet--partial,.mtrl-bottom-sheet--expanded{pointer-events:auto}.mtrl-bottom-sheet__scrim{position:absolute;inset:0;background-color:color-mix(in srgb, var(--mtrl-sys-color-scrim) 32%, transparent);opacity:0;visibility:hidden;transition:opacity 250ms linear(0, 0.066, 0.203, 0.355, 0.496, 0.616, 0.713, 0.788, 0.845, 0.888, 0.92, 0.943, 0.96, 0.971, 0.98, 0.986, 0.99, 0.993, 0.995, 0.997, 0.998, 0.998, 0.999, 0.999, 1),visibility 0s linear 250ms}.mtrl-bottom-sheet__container{position:relative;width:100%;max-width:640px;max-height:100%;display:flex;flex-direction:column;box-sizing:border-box;pointer-events:auto;background-color:var(--mtrl-sys-color-surface-container-low);color:var(--mtrl-sys-color-on-surface);border-start-start-radius:var(--mtrl-sys-shape-corner-extra-large, 28px);border-start-end-radius:var(--mtrl-sys-shape-corner-extra-large, 28px);box-shadow:0px 1px 2px rgba(0,0,0,.3),0px 1px 3px 1px rgba(0,0,0,.15),0 32px 0 0 var(--mtrl-sys-color-surface-container-low);transform:translateY(100%);transition:transform 175ms linear(0, 0.075, 0.227, 0.39, 0.537, 0.657, 0.751, 0.822, 0.874, 0.912, 0.939, 0.958, 0.971, 0.98, 0.987, 0.991, 0.994, 0.996, 0.997, 0.998, 0.999, 0.999, 0.999, 1, 1)}.mtrl-bottom-sheet__container:focus{outline:none}.mtrl-bottom-sheet__container:focus-visible{outline:3px solid var(--mtrl-sys-color-secondary);outline-offset:-3px}.mtrl-bottom-sheet__handle{flex:0 0 auto;position:relative;align-self:center;width:48px;height:48px;margin:0 auto;padding:0;border:0;border-radius:50%;background:none;cursor:grab;touch-action:none}.mtrl-bottom-sheet__handle::before{content:"";position:absolute;inset:22px 8px;border-radius:var(--mtrl-sys-shape-corner-extra-large, 28px);background-color:var(--mtrl-sys-color-on-surface-variant)}.mtrl-bottom-sheet__handle:active{cursor:grabbing}.mtrl-bottom-sheet__handle:focus-visible{outline:3px solid var(--mtrl-sys-color-secondary);outline-offset:-3px}.mtrl-bottom-sheet__header{flex:0 0 auto;padding:0 24px 16px}.mtrl-bottom-sheet__title{margin:0;color:var(--mtrl-sys-color-on-surface);font-family:var(--mtrl-ref-typeface-brand, Roboto, sans-serif);font-size:24px;line-height:32px;letter-spacing:0;font-weight:400}.mtrl-bottom-sheet__content{flex:1 1 auto;min-height:0;overflow-y:auto;padding:0 24px 24px;font-family:var(--mtrl-ref-typeface-plain, Roboto, sans-serif);font-size:14px;line-height:20px;letter-spacing:.25px;font-weight:400;color:var(--mtrl-sys-color-on-surface-variant)}.mtrl-bottom-sheet--partial .mtrl-bottom-sheet__container{transform:translateY(0);max-height:var(--mtrl-bottom-sheet-peek-height, 50%);transition:transform 450ms linear(0, 0.055, 0.18, 0.332, 0.483, 0.619, 0.733, 0.823, 0.891, 0.94, 0.973, 0.994, 1.007, 1.013, 1.015, 1.015, 1.013, 1.011, 1.009, 1.006, 1.005, 1.003, 1.002, 1.001, 1)}.mtrl-bottom-sheet--partial .mtrl-bottom-sheet__scrim{opacity:1;visibility:visible;transition:opacity 250ms linear(0, 0.066, 0.203, 0.355, 0.496, 0.616, 0.713, 0.788, 0.845, 0.888, 0.92, 0.943, 0.96, 0.971, 0.98, 0.986, 0.99, 0.993, 0.995, 0.997, 0.998, 0.998, 0.999, 0.999, 1),visibility 0s}.mtrl-bottom-sheet--expanded .mtrl-bottom-sheet__container{transform:translateY(0);max-height:100%;transition:transform 450ms linear(0, 0.055, 0.18, 0.332, 0.483, 0.619, 0.733, 0.823, 0.891, 0.94, 0.973, 0.994, 1.007, 1.013, 1.015, 1.015, 1.013, 1.011, 1.009, 1.006, 1.005, 1.003, 1.002, 1.001, 1)}.mtrl-bottom-sheet--expanded .mtrl-bottom-sheet__container:where(.mtrl-bottom-sheet--full-height *){border-start-start-radius:0;border-start-end-radius:0}.mtrl-bottom-sheet--expanded .mtrl-bottom-sheet__scrim{opacity:1;visibility:visible;transition:opacity 250ms linear(0, 0.066, 0.203, 0.355, 0.496, 0.616, 0.713, 0.788, 0.845, 0.888, 0.92, 0.943, 0.96, 0.971, 0.98, 0.986, 0.99, 0.993, 0.995, 0.997, 0.998, 0.998, 0.999, 0.999, 1),visibility 0s}.mtrl-bottom-sheet--standard{pointer-events:none}.mtrl-bottom-sheet--standard .mtrl-bottom-sheet__container{pointer-events:auto}@media(prefers-reduced-motion: reduce){.mtrl-bottom-sheet .mtrl-bottom-sheet__container,.mtrl-bottom-sheet .mtrl-bottom-sheet__scrim,.mtrl-bottom-sheet--partial .mtrl-bottom-sheet__container,.mtrl-bottom-sheet--partial .mtrl-bottom-sheet__scrim,.mtrl-bottom-sheet--expanded .mtrl-bottom-sheet__container,.mtrl-bottom-sheet--expanded .mtrl-bottom-sheet__scrim{transition:none}}dialog.mtrl-bottom-sheet{width:auto;height:auto;max-width:none;max-height:none;margin:0;padding:0;border:0;overflow:visible;background:rgba(0,0,0,0);color:inherit;transition:overlay 250ms allow-discrete}dialog.mtrl-bottom-sheet::backdrop{background-color:color-mix(in srgb, var(--mtrl-sys-color-scrim) 32%, transparent);opacity:0;transition:opacity 250ms linear(0, 0.066, 0.203, 0.355, 0.496, 0.616, 0.713, 0.788, 0.845, 0.888, 0.92, 0.943, 0.96, 0.971, 0.98, 0.986, 0.99, 0.993, 0.995, 0.997, 0.998, 0.998, 0.999, 0.999, 1)}dialog.mtrl-bottom-sheet.mtrl-bottom-sheet--partial::backdrop,dialog.mtrl-bottom-sheet.mtrl-bottom-sheet--expanded::backdrop{opacity:1}@media(prefers-reduced-motion: reduce){dialog.mtrl-bottom-sheet,dialog.mtrl-bottom-sheet::backdrop{transition:none}}}
@@ -1,2 +1,2 @@
1
- /*! mtrl v0.10.0 | MIT */
1
+ /*! mtrl v0.10.2 | MIT */
2
2
  @layer mtrl.base,mtrl.utilities,mtrl.textfield,mtrl.badge,mtrl.bottom-app-bar,mtrl.bottom-sheet,mtrl.side-sheet,mtrl.menu,mtrl.slider,mtrl.switch,mtrl.select,mtrl.progress,mtrl.button,mtrl.tabs,mtrl.top-app-bar,mtrl.icon-button,mtrl.button-group,mtrl.fab,mtrl.fab-menu,mtrl.extended-fab,mtrl.segmented-button,mtrl.card,mtrl.carousel,mtrl.checkbox,mtrl.chips,mtrl.divider,mtrl.dialog,mtrl.drawer,mtrl.loading-indicator,mtrl.split-button,mtrl.radios,mtrl.datepicker,mtrl.timepicker,mtrl.search,mtrl.snackbar,mtrl.navigation-rail,mtrl.list,mtrl.tooltip,mtrl.toolbar;@layer mtrl.button-group{.mtrl-button-group{position:relative;display:inline-flex;flex-direction:row;align-items:center;gap:var(--mtrl-button-group-gap, 12px);--mtrl-button-group-height: 40px;--mtrl-button-group-icon: 20px;--mtrl-button-group-gap: 12px;--mtrl-button-group-inner-corner: var(--mtrl-sys-shape-corner-small, 8px);--mtrl-button-group-pressed-corner: var(--mtrl-sys-shape-corner-extra-small, 4px);--mtrl-button-group-radius: 20px}.mtrl-button-group--vertical{flex-direction:column;align-items:stretch}.mtrl-button-group>.mtrl-button,.mtrl-button-group>.mtrl-icon-button{margin:0;flex-shrink:0;height:var(--mtrl-button-group-height);transition:background-color 250ms linear(0, 0.066, 0.203, 0.355, 0.496, 0.616, 0.713, 0.788, 0.845, 0.888, 0.92, 0.943, 0.96, 0.971, 0.98, 0.986, 0.99, 0.993, 0.995, 0.997, 0.998, 0.998, 0.999, 0.999, 1),color 250ms linear(0, 0.066, 0.203, 0.355, 0.496, 0.616, 0.713, 0.788, 0.845, 0.888, 0.92, 0.943, 0.96, 0.971, 0.98, 0.986, 0.99, 0.993, 0.995, 0.997, 0.998, 0.998, 0.999, 0.999, 1),box-shadow 250ms linear(0, 0.066, 0.203, 0.355, 0.496, 0.616, 0.713, 0.788, 0.845, 0.888, 0.92, 0.943, 0.96, 0.971, 0.98, 0.986, 0.99, 0.993, 0.995, 0.997, 0.998, 0.998, 0.999, 0.999, 1),border-color 250ms linear(0, 0.066, 0.203, 0.355, 0.496, 0.616, 0.713, 0.788, 0.845, 0.888, 0.92, 0.943, 0.96, 0.971, 0.98, 0.986, 0.99, 0.993, 0.995, 0.997, 0.998, 0.998, 0.999, 0.999, 1),border-radius 425ms linear(0, 0.102, 0.323, 0.57, 0.784, 0.942, 1.039, 1.085, 1.094, 1.082, 1.06, 1.037, 1.018, 1.004, 0.995, 0.992, 0.991, 0.992, 0.995, 0.997, 0.999, 1, 1.001, 1.001, 1),width 425ms linear(0, 0.102, 0.323, 0.57, 0.784, 0.942, 1.039, 1.085, 1.094, 1.082, 1.06, 1.037, 1.018, 1.004, 0.995, 0.992, 0.991, 0.992, 0.995, 0.997, 0.999, 1, 1.001, 1.001, 1),padding 425ms linear(0, 0.102, 0.323, 0.57, 0.784, 0.942, 1.039, 1.085, 1.094, 1.082, 1.06, 1.037, 1.018, 1.004, 0.995, 0.992, 0.991, 0.992, 0.995, 0.997, 0.999, 1, 1.001, 1.001, 1),gap 425ms linear(0, 0.102, 0.323, 0.57, 0.784, 0.942, 1.039, 1.085, 1.094, 1.082, 1.06, 1.037, 1.018, 1.004, 0.995, 0.992, 0.991, 0.992, 0.995, 0.997, 0.999, 1, 1.001, 1.001, 1)}.mtrl-button-group>.mtrl-button:active,.mtrl-button-group>.mtrl-icon-button:active{transition:background-color 250ms linear(0, 0.066, 0.203, 0.355, 0.496, 0.616, 0.713, 0.788, 0.845, 0.888, 0.92, 0.943, 0.96, 0.971, 0.98, 0.986, 0.99, 0.993, 0.995, 0.997, 0.998, 0.998, 0.999, 0.999, 1),color 250ms linear(0, 0.066, 0.203, 0.355, 0.496, 0.616, 0.713, 0.788, 0.845, 0.888, 0.92, 0.943, 0.96, 0.971, 0.98, 0.986, 0.99, 0.993, 0.995, 0.997, 0.998, 0.998, 0.999, 0.999, 1),box-shadow 250ms linear(0, 0.066, 0.203, 0.355, 0.496, 0.616, 0.713, 0.788, 0.845, 0.888, 0.92, 0.943, 0.96, 0.971, 0.98, 0.986, 0.99, 0.993, 0.995, 0.997, 0.998, 0.998, 0.999, 0.999, 1),border-color 250ms linear(0, 0.066, 0.203, 0.355, 0.496, 0.616, 0.713, 0.788, 0.845, 0.888, 0.92, 0.943, 0.96, 0.971, 0.98, 0.986, 0.99, 0.993, 0.995, 0.997, 0.998, 0.998, 0.999, 0.999, 1),border-radius 450ms linear(0, 0.055, 0.18, 0.332, 0.483, 0.619, 0.733, 0.823, 0.891, 0.94, 0.973, 0.994, 1.007, 1.013, 1.015, 1.015, 1.013, 1.011, 1.009, 1.006, 1.005, 1.003, 1.002, 1.001, 1),width 425ms linear(0, 0.102, 0.323, 0.57, 0.784, 0.942, 1.039, 1.085, 1.094, 1.082, 1.06, 1.037, 1.018, 1.004, 0.995, 0.992, 0.991, 0.992, 0.995, 0.997, 0.999, 1, 1.001, 1.001, 1),padding 425ms linear(0, 0.102, 0.323, 0.57, 0.784, 0.942, 1.039, 1.085, 1.094, 1.082, 1.06, 1.037, 1.018, 1.004, 0.995, 0.992, 0.991, 0.992, 0.995, 0.997, 0.999, 1, 1.001, 1.001, 1),gap 425ms linear(0, 0.102, 0.323, 0.57, 0.784, 0.942, 1.039, 1.085, 1.094, 1.082, 1.06, 1.037, 1.018, 1.004, 0.995, 0.992, 0.991, 0.992, 0.995, 0.997, 0.999, 1, 1.001, 1.001, 1)}.mtrl-button-group>.mtrl-icon-button{width:var(--mtrl-button-group-height)}.mtrl-button-group--equal-width>.mtrl-button{flex:1 1 0;justify-content:center}.mtrl-button-group--disabled{pointer-events:none}.mtrl-button-group--connected>.mtrl-button,.mtrl-button-group--connected>.mtrl-icon-button{--mtrl-button-shape:var(--mtrl-button-group-inner-corner);--mtrl-button-shape-pressed:var(--mtrl-button-group-pressed-corner);--mtrl-button-shape-selected:var(--mtrl-button-group-radius)}.mtrl-button-group--connected>.mtrl-button-group__button--first{--mtrl-button-shape:var(--mtrl-button-group-radius) var(--mtrl-button-group-inner-corner) var(--mtrl-button-group-inner-corner) var(--mtrl-button-group-radius);--mtrl-button-shape-pressed:var(--mtrl-button-group-radius) var(--mtrl-button-group-pressed-corner) var(--mtrl-button-group-pressed-corner) var(--mtrl-button-group-radius)}.mtrl-button-group--connected>.mtrl-button-group__button--last{--mtrl-button-shape:var(--mtrl-button-group-inner-corner) var(--mtrl-button-group-radius) var(--mtrl-button-group-radius) var(--mtrl-button-group-inner-corner);--mtrl-button-shape-pressed:var(--mtrl-button-group-pressed-corner) var(--mtrl-button-group-radius) var(--mtrl-button-group-radius) var(--mtrl-button-group-pressed-corner)}.mtrl-button-group--connected>.mtrl-button-group__button--single{--mtrl-button-shape:var(--mtrl-button-group-radius);--mtrl-button-shape-pressed:var(--mtrl-button-group-radius)}.mtrl-button-group--connected.mtrl-button-group--vertical>.mtrl-button-group__button--first{--mtrl-button-shape:var(--mtrl-button-group-radius) var(--mtrl-button-group-radius) var(--mtrl-button-group-inner-corner) var(--mtrl-button-group-inner-corner);--mtrl-button-shape-pressed:var(--mtrl-button-group-radius) var(--mtrl-button-group-radius) var(--mtrl-button-group-pressed-corner) var(--mtrl-button-group-pressed-corner)}.mtrl-button-group--connected.mtrl-button-group--vertical>.mtrl-button-group__button--last{--mtrl-button-shape:var(--mtrl-button-group-inner-corner) var(--mtrl-button-group-inner-corner) var(--mtrl-button-group-radius) var(--mtrl-button-group-radius);--mtrl-button-shape-pressed:var(--mtrl-button-group-pressed-corner) var(--mtrl-button-group-pressed-corner) var(--mtrl-button-group-radius) var(--mtrl-button-group-radius)}.mtrl-button-group--connected.mtrl-button-group--square>.mtrl-button-group__button--first,.mtrl-button-group--connected.mtrl-button-group--square>.mtrl-button-group__button--last,.mtrl-button-group--connected.mtrl-button-group--square>.mtrl-button-group__button--single{--mtrl-button-shape:var(--mtrl-button-group-inner-corner);--mtrl-button-shape-pressed:var(--mtrl-button-group-pressed-corner)}.mtrl-button-group--connected.mtrl-button-group--size-xs>.mtrl-button,.mtrl-button-group--connected.mtrl-button-group--size-xs>.mtrl-icon-button,.mtrl-button-group--connected.mtrl-button-group--size-s>.mtrl-button,.mtrl-button-group--connected.mtrl-button-group--size-s>.mtrl-icon-button{min-width:48px}.mtrl-button-group--labels-selected>.mtrl-button{gap:0;min-width:var(--mtrl-button-group-height);padding:0 calc((var(--mtrl-button-group-height) - var(--mtrl-button-group-icon))/2)}.mtrl-button-group--labels-selected>.mtrl-button .mtrl-button__text{display:inline-block;max-width:0;opacity:0;overflow:hidden;white-space:nowrap;text-overflow:clip;transition:max-width 425ms linear(0, 0.102, 0.323, 0.57, 0.784, 0.942, 1.039, 1.085, 1.094, 1.082, 1.06, 1.037, 1.018, 1.004, 0.995, 0.992, 0.991, 0.992, 0.995, 0.997, 0.999, 1, 1.001, 1.001, 1),opacity 250ms linear(0, 0.066, 0.203, 0.355, 0.496, 0.616, 0.713, 0.788, 0.845, 0.888, 0.92, 0.943, 0.96, 0.971, 0.98, 0.986, 0.99, 0.993, 0.995, 0.997, 0.998, 0.998, 0.999, 0.999, 1)}.mtrl-button-group--labels-selected>.mtrl-button-group__button--selected{gap:8px;padding:0 16px}.mtrl-button-group--labels-selected>.mtrl-button-group__button--selected .mtrl-button__text{max-width:12em;opacity:1}}