@expressivecss/expressive 0.12.0 → 0.14.1
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.
- package/CHANGELOG.md +339 -1
- package/README.md +38 -1
- package/dist/css/expressive.css +5342 -105
- package/dist/css/expressive.css.map +1 -1
- package/dist/css/expressive.min.css +1 -1
- package/dist/css/expressive.min.css.map +1 -1
- package/dist/fonts/material-symbols-outlined.woff2 +0 -0
- package/dist/fonts/material-symbols-rounded.woff2 +0 -0
- package/dist/fonts/material-symbols-sharp.woff2 +0 -0
- package/dist/js/chunks/chunk-3DHK5CZU.mjs +105 -0
- package/dist/js/chunks/chunk-3DHK5CZU.mjs.map +7 -0
- package/dist/js/chunks/{chunk-HB6IW7QQ.mjs → chunk-3GVFZ4XO.mjs} +3 -3
- package/dist/js/chunks/{chunk-HLDXZ7XB.mjs → chunk-4HZMB7LI.mjs} +22 -8
- package/dist/js/chunks/chunk-4HZMB7LI.mjs.map +7 -0
- package/dist/js/chunks/chunk-4KMNFIFZ.mjs +270 -0
- package/dist/js/chunks/chunk-4KMNFIFZ.mjs.map +7 -0
- package/dist/js/chunks/chunk-4TKTLGEM.mjs +262 -0
- package/dist/js/chunks/chunk-4TKTLGEM.mjs.map +7 -0
- package/dist/js/chunks/{chunk-3VOK6J7U.mjs → chunk-5BKHWHYY.mjs} +13 -6
- package/dist/js/chunks/chunk-5BKHWHYY.mjs.map +7 -0
- package/dist/js/chunks/{chunk-H2WA4XHH.mjs → chunk-5HQSGDZ5.mjs} +16 -7
- package/dist/js/chunks/chunk-5HQSGDZ5.mjs.map +7 -0
- package/dist/js/chunks/{chunk-LWBQIX5J.mjs → chunk-A7ALMYUR.mjs} +41 -44
- package/dist/js/chunks/chunk-A7ALMYUR.mjs.map +7 -0
- package/dist/js/chunks/chunk-BG6ZRB5H.mjs +154 -0
- package/dist/js/chunks/chunk-BG6ZRB5H.mjs.map +7 -0
- package/dist/js/chunks/{chunk-DLWYKFEI.mjs → chunk-CUQPB25U.mjs} +3 -3
- package/dist/js/chunks/{chunk-6WLSDZ4O.mjs → chunk-DAIU5SLG.mjs} +2 -2
- package/dist/js/chunks/chunk-FS7XY3HT.mjs +124 -0
- package/dist/js/chunks/chunk-FS7XY3HT.mjs.map +7 -0
- package/dist/js/chunks/{chunk-WJXDBPXQ.mjs → chunk-GIW4K4SE.mjs} +8 -12
- package/dist/js/chunks/chunk-GIW4K4SE.mjs.map +7 -0
- package/dist/js/chunks/chunk-GUB3TNO2.mjs +164 -0
- package/dist/js/chunks/chunk-GUB3TNO2.mjs.map +7 -0
- package/dist/js/chunks/chunk-GVGT6MIU.mjs +47 -0
- package/dist/js/chunks/chunk-GVGT6MIU.mjs.map +7 -0
- package/dist/js/chunks/{chunk-HNFSMIBY.mjs → chunk-GZKEFWPM.mjs} +83 -22
- package/dist/js/chunks/chunk-GZKEFWPM.mjs.map +7 -0
- package/dist/js/chunks/chunk-HKT2S7VM.mjs +48 -0
- package/dist/js/chunks/chunk-HKT2S7VM.mjs.map +7 -0
- package/dist/js/chunks/chunk-ILP3PDTL.mjs +187 -0
- package/dist/js/chunks/chunk-ILP3PDTL.mjs.map +7 -0
- package/dist/js/chunks/{chunk-YSBCHYXP.mjs → chunk-JIDMQGK6.mjs} +118 -13
- package/dist/js/chunks/chunk-JIDMQGK6.mjs.map +7 -0
- package/dist/js/chunks/chunk-KBNN3QDH.mjs +7 -0
- package/dist/js/chunks/chunk-KBNN3QDH.mjs.map +7 -0
- package/dist/js/chunks/{chunk-NNYP33NB.mjs → chunk-KHV6DZXX.mjs} +5 -4
- package/dist/js/chunks/chunk-KHV6DZXX.mjs.map +7 -0
- package/dist/js/chunks/{chunk-RFZZCYVU.mjs → chunk-KY6U46SM.mjs} +3 -3
- package/dist/js/chunks/{chunk-CKQP6P76.mjs → chunk-LRZMJZ3T.mjs} +4 -3
- package/dist/js/chunks/chunk-LRZMJZ3T.mjs.map +7 -0
- package/dist/js/chunks/{chunk-6OMRGML6.mjs → chunk-MNPROCZF.mjs} +4 -4
- package/dist/js/chunks/{chunk-6OMRGML6.mjs.map → chunk-MNPROCZF.mjs.map} +2 -2
- package/dist/js/chunks/{chunk-QV2JAWIZ.mjs → chunk-MZ6Z24BX.mjs} +3 -2
- package/dist/js/chunks/{chunk-QV2JAWIZ.mjs.map → chunk-MZ6Z24BX.mjs.map} +2 -2
- package/dist/js/chunks/chunk-NS2UMNZV.mjs +292 -0
- package/dist/js/chunks/chunk-NS2UMNZV.mjs.map +7 -0
- package/dist/js/chunks/chunk-O5XPWXIQ.mjs +406 -0
- package/dist/js/chunks/chunk-O5XPWXIQ.mjs.map +7 -0
- package/dist/js/chunks/{chunk-UBLRRJ7N.mjs → chunk-PM655FXL.mjs} +2 -2
- package/dist/js/chunks/{chunk-IFXVDDDH.mjs → chunk-QERLECVU.mjs} +3 -3
- package/dist/js/chunks/{chunk-GZWPXXY6.mjs → chunk-QJABDLSD.mjs} +5 -2
- package/dist/js/chunks/chunk-QJABDLSD.mjs.map +7 -0
- package/dist/js/chunks/chunk-RHRQKTTX.mjs +139 -0
- package/dist/js/chunks/chunk-RHRQKTTX.mjs.map +7 -0
- package/dist/js/chunks/{chunk-UNEMYWEW.mjs → chunk-S3XDFGSZ.mjs} +2 -2
- package/dist/js/chunks/chunk-SPETGK25.mjs +59 -0
- package/dist/js/chunks/chunk-SPETGK25.mjs.map +7 -0
- package/dist/js/chunks/chunk-TBM3FT7G.mjs +398 -0
- package/dist/js/chunks/chunk-TBM3FT7G.mjs.map +7 -0
- package/dist/js/chunks/chunk-UEXCIMJZ.mjs +214 -0
- package/dist/js/chunks/chunk-UEXCIMJZ.mjs.map +7 -0
- package/dist/js/chunks/chunk-VGZSAFTX.mjs +173 -0
- package/dist/js/chunks/chunk-VGZSAFTX.mjs.map +7 -0
- package/dist/js/chunks/{chunk-UAEAQBRC.mjs → chunk-X7OCHZVF.mjs} +2 -2
- package/dist/js/chunks/{chunk-EC63CHXU.mjs → chunk-YMSXJON6.mjs} +7 -6
- package/dist/js/chunks/chunk-YMSXJON6.mjs.map +7 -0
- package/dist/js/chunks/{chunk-QVVEWBOF.mjs → chunk-Z2NRKI7R.mjs} +2 -2
- package/dist/js/chunks/{chunk-PIJ2TAR3.mjs → chunk-ZAS25YFD.mjs} +2 -2
- package/dist/js/chunks/chunk-ZKZKNSLC.mjs +1 -0
- package/dist/js/expressive.cjs +3113 -148
- package/dist/js/expressive.cjs.map +4 -4
- package/dist/js/expressive.js +3113 -148
- package/dist/js/expressive.js.map +4 -4
- package/dist/js/expressive.min.js +11 -11
- package/dist/js/expressive.min.js.map +4 -4
- package/dist/js/expressive.mjs +95 -35
- package/dist/js/expressive.mjs.map +1 -1
- package/dist/js/internal/behaviors/bottomSheets.mjs +3 -3
- package/dist/js/internal/behaviors/dialogs.mjs +2 -2
- package/dist/js/internal/behaviors/forms.mjs +2 -2
- package/dist/js/internal/behaviors/sheetDrag.mjs +2 -2
- package/dist/js/internal/behaviors/sideSheets.mjs +3 -3
- package/dist/js/internal/components/autocomplete.mjs +3 -3
- package/dist/js/internal/components/barChart.mjs +10 -0
- package/dist/js/internal/components/barChart.mjs.map +7 -0
- package/dist/js/internal/components/buttons.mjs +2 -2
- package/dist/js/internal/components/cards.mjs +2 -2
- package/dist/js/internal/components/carousel.mjs +2 -2
- package/dist/js/internal/components/chips.mjs +4 -4
- package/dist/js/internal/components/columnChart.mjs +9 -0
- package/dist/js/internal/components/columnChart.mjs.map +7 -0
- package/dist/js/internal/components/commandPalette.mjs +9 -0
- package/dist/js/internal/components/commandPalette.mjs.map +7 -0
- package/dist/js/internal/components/confetti.mjs +8 -0
- package/dist/js/internal/components/confetti.mjs.map +7 -0
- package/dist/js/internal/components/datepicker.mjs +5 -5
- package/dist/js/internal/components/expandingCard.mjs +2 -2
- package/dist/js/internal/components/heatmapChart.mjs +9 -0
- package/dist/js/internal/components/heatmapChart.mjs.map +7 -0
- package/dist/js/internal/components/index.mjs +88 -28
- package/dist/js/internal/components/lightbox.mjs +2 -2
- package/dist/js/internal/components/lineChart.mjs +12 -0
- package/dist/js/internal/components/lineChart.mjs.map +7 -0
- package/dist/js/internal/components/mapView.mjs +9 -0
- package/dist/js/internal/components/mapView.mjs.map +7 -0
- package/dist/js/internal/components/menu.mjs +2 -2
- package/dist/js/internal/components/messageScroller.mjs +9 -0
- package/dist/js/internal/components/messageScroller.mjs.map +7 -0
- package/dist/js/internal/components/mixedChart.mjs +10 -0
- package/dist/js/internal/components/mixedChart.mjs.map +7 -0
- package/dist/js/internal/components/particles.mjs +8 -0
- package/dist/js/internal/components/particles.mjs.map +7 -0
- package/dist/js/internal/components/pieChart.mjs +9 -0
- package/dist/js/internal/components/pieChart.mjs.map +7 -0
- package/dist/js/internal/components/questionnaire.mjs +9 -0
- package/dist/js/internal/components/questionnaire.mjs.map +7 -0
- package/dist/js/internal/components/radarChart.mjs +9 -0
- package/dist/js/internal/components/radarChart.mjs.map +7 -0
- package/dist/js/internal/components/radialChart.mjs +9 -0
- package/dist/js/internal/components/radialChart.mjs.map +7 -0
- package/dist/js/internal/components/registry.mjs +35 -20
- package/dist/js/internal/components/richTextEditor.mjs +9 -0
- package/dist/js/internal/components/richTextEditor.mjs.map +7 -0
- package/dist/js/internal/components/scrollspy.mjs +1 -1
- package/dist/js/internal/components/select.mjs +3 -3
- package/dist/js/internal/components/slider.mjs +2 -2
- package/dist/js/internal/components/snackbar.mjs +2 -2
- package/dist/js/internal/components/tabs.mjs +3 -3
- package/dist/js/internal/components/timepicker.mjs +3 -3
- package/dist/js/internal/components/tooltip.mjs +2 -2
- package/dist/js/internal/core/utils.mjs +1 -1
- package/dist/js/internal/plugins/dockedDisplayPlugin.mjs +2 -2
- package/dist/js/modular.mjs +95 -35
- package/dist/types/behaviors/forms.d.ts +27 -0
- package/dist/types/components/barChart.d.ts +24 -0
- package/dist/types/components/carousel.d.ts +2 -0
- package/dist/types/components/columnChart.d.ts +21 -0
- package/dist/types/components/commandPalette.d.ts +96 -0
- package/dist/types/components/confetti.d.ts +103 -0
- package/dist/types/components/datepicker.d.ts +2 -0
- package/dist/types/components/heatmapChart.d.ts +49 -0
- package/dist/types/components/index.d.ts +15 -0
- package/dist/types/components/lineChart.d.ts +134 -0
- package/dist/types/components/mapView.d.ts +151 -0
- package/dist/types/components/menu.d.ts +31 -0
- package/dist/types/components/messageScroller.d.ts +111 -0
- package/dist/types/components/mixedChart.d.ts +25 -0
- package/dist/types/components/particles.d.ts +72 -0
- package/dist/types/components/pieChart.d.ts +43 -0
- package/dist/types/components/questionnaire.d.ts +96 -0
- package/dist/types/components/radarChart.d.ts +39 -0
- package/dist/types/components/radialChart.d.ts +45 -0
- package/dist/types/components/registry.d.ts +52 -0
- package/dist/types/components/richTextEditor.d.ts +71 -0
- package/dist/types/components/slider.d.ts +1 -1
- package/dist/types/components/snackbar.d.ts +2 -0
- package/dist/types/components/tabs.d.ts +1 -1
- package/dist/types/modular.d.ts +10 -1
- package/dist/types/plugins/dockedDisplayPlugin.d.ts +3 -3
- package/package.json +5 -1
- package/src/sass/README.md +3 -6
- package/src/sass/abstracts/_index.scss +1 -1
- package/src/sass/abstracts/_mixins.scss +226 -0
- package/src/sass/abstracts/_variables.scss +14 -0
- package/src/sass/base/_typography.scss +45 -0
- package/src/sass/components/_accordion.scss +161 -0
- package/src/sass/components/_aura.scss +119 -0
- package/src/sass/components/_avatar.scss +86 -0
- package/src/sass/components/_bar-chart.scss +285 -0
- package/src/sass/components/_bottom-sheet.scss +1 -0
- package/src/sass/components/_button-groups.scss +13 -3
- package/src/sass/components/_buttons.scss +1 -1
- package/src/sass/components/_cards.scss +16 -13
- package/src/sass/components/_column-chart.scss +134 -0
- package/src/sass/components/_command-palette.scss +140 -0
- package/src/sass/components/_confetti.scss +14 -0
- package/src/sass/components/_countdown.scss +89 -0
- package/src/sass/components/_data-table.scss +188 -0
- package/src/sass/components/_dialog.scss +1 -0
- package/src/sass/components/_empty-state.scss +78 -0
- package/src/sass/components/_expanding-card.scss +3 -0
- package/src/sass/components/_heatmap-chart.scss +156 -0
- package/src/sass/components/_index.scss +30 -0
- package/src/sass/components/_kpi.scss +162 -0
- package/src/sass/components/_line-chart.scss +102 -0
- package/src/sass/components/_map.scss +188 -0
- package/src/sass/components/_marquee.scss +111 -0
- package/src/sass/components/_menu.scss +10 -0
- package/src/sass/components/_message-scroller.scss +66 -0
- package/src/sass/components/_message.scss +202 -0
- package/src/sass/components/_mixed-chart.scss +157 -0
- package/src/sass/components/_navigation-bar.scss +1 -0
- package/src/sass/components/_navigation-rail.scss +9 -0
- package/src/sass/components/_particles.scss +14 -0
- package/src/sass/components/_pie-chart.scss +203 -0
- package/src/sass/components/_popover.scss +112 -0
- package/src/sass/components/_questionnaire.scss +144 -0
- package/src/sass/components/_radar-chart.scss +205 -0
- package/src/sass/components/_radial-chart.scss +174 -0
- package/src/sass/components/_rich-text-editor.scss +99 -0
- package/src/sass/components/_search.scss +1 -0
- package/src/sass/components/_side-sheet.scss +1 -0
- package/src/sass/components/_skeleton.scss +81 -0
- package/src/sass/components/_snackbar.scss +1 -0
- package/src/sass/components/_stat.scss +86 -0
- package/src/sass/components/_stepper.scss +190 -0
- package/src/sass/components/_table_of_contents.scss +3 -1
- package/src/sass/components/_timeline.scss +114 -0
- package/src/sass/components/_toolbar.scss +1 -0
- package/src/sass/components/_tooltip.scss +2 -0
- package/src/sass/components/_tree.scss +139 -0
- package/src/sass/components/forms/_checkboxes.scss +7 -2
- package/src/sass/components/forms/_drop-zone.scss +128 -0
- package/src/sass/components/forms/_index.scss +2 -0
- package/src/sass/components/forms/_input-fields.scss +133 -2
- package/src/sass/components/forms/_rating.scss +165 -0
- package/src/sass/tokens/_reference.scss +3 -15
- package/src/sass/utilities/_index.scss +2 -0
- package/src/sass/utilities/_scroll-area.scss +35 -0
- package/src/sass/utilities/_shapes.scss +164 -0
- package/dist/js/chunks/chunk-3VOK6J7U.mjs.map +0 -7
- package/dist/js/chunks/chunk-CKQP6P76.mjs.map +0 -7
- package/dist/js/chunks/chunk-EC63CHXU.mjs.map +0 -7
- package/dist/js/chunks/chunk-G3I5H2U3.mjs +0 -7
- package/dist/js/chunks/chunk-G3I5H2U3.mjs.map +0 -7
- package/dist/js/chunks/chunk-GZWPXXY6.mjs.map +0 -7
- package/dist/js/chunks/chunk-H2WA4XHH.mjs.map +0 -7
- package/dist/js/chunks/chunk-HLDXZ7XB.mjs.map +0 -7
- package/dist/js/chunks/chunk-HNFSMIBY.mjs.map +0 -7
- package/dist/js/chunks/chunk-LWBQIX5J.mjs.map +0 -7
- package/dist/js/chunks/chunk-NNYP33NB.mjs.map +0 -7
- package/dist/js/chunks/chunk-PSSHQWCX.mjs +0 -100
- package/dist/js/chunks/chunk-PSSHQWCX.mjs.map +0 -7
- package/dist/js/chunks/chunk-WJXDBPXQ.mjs.map +0 -7
- package/dist/js/chunks/chunk-WWPAPHMA.mjs +0 -1
- package/dist/js/chunks/chunk-YSBCHYXP.mjs.map +0 -7
- /package/dist/js/chunks/{chunk-HB6IW7QQ.mjs.map → chunk-3GVFZ4XO.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-DLWYKFEI.mjs.map → chunk-CUQPB25U.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-6WLSDZ4O.mjs.map → chunk-DAIU5SLG.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-RFZZCYVU.mjs.map → chunk-KY6U46SM.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-UBLRRJ7N.mjs.map → chunk-PM655FXL.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-IFXVDDDH.mjs.map → chunk-QERLECVU.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-UNEMYWEW.mjs.map → chunk-S3XDFGSZ.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-UAEAQBRC.mjs.map → chunk-X7OCHZVF.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-QVVEWBOF.mjs.map → chunk-Z2NRKI7R.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-PIJ2TAR3.mjs.map → chunk-ZAS25YFD.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-WWPAPHMA.mjs.map → chunk-ZKZKNSLC.mjs.map} +0 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
@use "../abstracts" as *;
|
|
2
|
+
|
|
3
|
+
// Popover. A .popover is a native [popover] panel opened by the button that
|
|
4
|
+
// names it with popovertarget (or commandfor). The browser owns opening,
|
|
5
|
+
// light dismiss, Escape, the top layer and the button's expanded state; CSS
|
|
6
|
+
// anchor positioning places the panel against that button, so there is no
|
|
7
|
+
// JavaScript.
|
|
8
|
+
//
|
|
9
|
+
// It looks like an M3 rich tooltip, but it is a disclosure: it opens on
|
|
10
|
+
// press, stays open while the user reads or acts, and can hold links and
|
|
11
|
+
// buttons. A small one behind an info button is a toggletip.
|
|
12
|
+
//
|
|
13
|
+
// Placement (the panel flips to the other side when it would not fit):
|
|
14
|
+
// (default) below, start edges aligned
|
|
15
|
+
// .top above, start edges aligned
|
|
16
|
+
// .start before the button, centered on it
|
|
17
|
+
// .end after the button, centered on it
|
|
18
|
+
//
|
|
19
|
+
// Tokens:
|
|
20
|
+
// --md-comp-popover-container-color surface-container
|
|
21
|
+
// --md-comp-popover-shape 12px
|
|
22
|
+
// --md-comp-popover-padding 12px 16px
|
|
23
|
+
// --md-comp-popover-max-width 320px
|
|
24
|
+
// --md-comp-popover-gap 4px (from the button)
|
|
25
|
+
|
|
26
|
+
.popover {
|
|
27
|
+
--md-comp-popover-container-color: var(--md-sys-color-surface-container);
|
|
28
|
+
--md-comp-popover-shape: 12px;
|
|
29
|
+
--md-comp-popover-padding: 12px 16px;
|
|
30
|
+
--md-comp-popover-max-width: 320px;
|
|
31
|
+
--md-comp-popover-gap: 4px;
|
|
32
|
+
|
|
33
|
+
box-sizing: border-box;
|
|
34
|
+
width: max-content;
|
|
35
|
+
max-width: min(var(--md-comp-popover-max-width), calc(100vw - 16px));
|
|
36
|
+
inset: auto;
|
|
37
|
+
margin: var(--md-comp-popover-gap) 0;
|
|
38
|
+
padding: var(--md-comp-popover-padding);
|
|
39
|
+
overflow: visible;
|
|
40
|
+
border: 0;
|
|
41
|
+
border-radius: var(--md-comp-popover-shape);
|
|
42
|
+
background-color: var(--md-comp-popover-container-color);
|
|
43
|
+
color: var(--md-sys-color-on-surface-variant);
|
|
44
|
+
@include z-depth("2");
|
|
45
|
+
@include typescale("body-medium");
|
|
46
|
+
|
|
47
|
+
position-area: block-end span-inline-end;
|
|
48
|
+
position-try-fallbacks: flip-block, flip-inline, flip-block flip-inline;
|
|
49
|
+
|
|
50
|
+
opacity: 0;
|
|
51
|
+
transition:
|
|
52
|
+
opacity 150ms ease-out,
|
|
53
|
+
display 150ms allow-discrete,
|
|
54
|
+
overlay 150ms allow-discrete;
|
|
55
|
+
@include glass(var(--md-comp-popover-container-color));
|
|
56
|
+
|
|
57
|
+
&:popover-open {
|
|
58
|
+
opacity: 1;
|
|
59
|
+
|
|
60
|
+
@starting-style {
|
|
61
|
+
opacity: 0;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
&.top {
|
|
66
|
+
position-area: block-start span-inline-end;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
&.start,
|
|
70
|
+
&.end {
|
|
71
|
+
margin: 0 var(--md-comp-popover-gap);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
&.start {
|
|
75
|
+
position-area: center inline-start;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
&.end {
|
|
79
|
+
position-area: center inline-end;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
> :is(h1, h2, h3, h4, h5, h6) {
|
|
83
|
+
margin: 0 0 4px;
|
|
84
|
+
color: var(--md-sys-color-on-surface-variant);
|
|
85
|
+
@include typescale("title-small");
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
> p {
|
|
89
|
+
margin: 0;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
> p + p {
|
|
93
|
+
margin-block-start: 8px;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// Text buttons carry their own inset, so the row starts under the text.
|
|
97
|
+
> .popover-actions {
|
|
98
|
+
display: flex;
|
|
99
|
+
flex-wrap: wrap;
|
|
100
|
+
gap: 8px;
|
|
101
|
+
margin: 12px 0 -4px;
|
|
102
|
+
margin-inline-start: -12px;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
@media (prefers-reduced-motion: reduce) {
|
|
106
|
+
transition: none;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
@media (forced-colors: active) {
|
|
110
|
+
border: 1px solid CanvasText;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
@use "../abstracts" as *;
|
|
2
|
+
|
|
3
|
+
// Questionnaire. A <form class="questionnaire"> asks one question at a time.
|
|
4
|
+
// Each <fieldset> child is a question: its <legend> is the prompt, a <p> is
|
|
5
|
+
// the description, and the answers are radio or checkbox labels (a <small>
|
|
6
|
+
// in a label describes that answer) or a text field. A
|
|
7
|
+
// <p class="questionnaire-error"> shows when the question needs an answer. A
|
|
8
|
+
// <footer> holds the buttons: value="previous", "skip" and "next", and a
|
|
9
|
+
// submit button.
|
|
10
|
+
//
|
|
11
|
+
// The Questionnaire component hides every question but the current one,
|
|
12
|
+
// adds the progress row above them and shows only the buttons that apply.
|
|
13
|
+
// Without it every question shows, the navigation buttons stay hidden and
|
|
14
|
+
// the submit button sends the form.
|
|
15
|
+
//
|
|
16
|
+
// Choices are outlined rows; a selected one fills with secondary-container,
|
|
17
|
+
// the M3 colour for a selected item in a list.
|
|
18
|
+
//
|
|
19
|
+
// Tokens:
|
|
20
|
+
// --md-comp-questionnaire-choice-shape 12px
|
|
21
|
+
// --md-comp-questionnaire-choice-outline-color outline-variant
|
|
22
|
+
// --md-comp-questionnaire-choice-selected-color secondary-container
|
|
23
|
+
|
|
24
|
+
.questionnaire {
|
|
25
|
+
--md-comp-questionnaire-choice-shape: 12px;
|
|
26
|
+
--md-comp-questionnaire-choice-outline-color: var(--md-sys-color-outline-variant);
|
|
27
|
+
--md-comp-questionnaire-choice-selected-color: var(--md-sys-color-secondary-container);
|
|
28
|
+
|
|
29
|
+
display: flex;
|
|
30
|
+
flex-direction: column;
|
|
31
|
+
gap: 24px;
|
|
32
|
+
|
|
33
|
+
> .questionnaire-progress {
|
|
34
|
+
display: grid;
|
|
35
|
+
gap: 8px;
|
|
36
|
+
color: var(--md-sys-color-on-surface-variant);
|
|
37
|
+
@include typescale("label-large");
|
|
38
|
+
|
|
39
|
+
> .progress {
|
|
40
|
+
margin: 0;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
> fieldset {
|
|
45
|
+
margin: 0;
|
|
46
|
+
padding: 0;
|
|
47
|
+
border: 0;
|
|
48
|
+
|
|
49
|
+
> legend {
|
|
50
|
+
max-width: 100%;
|
|
51
|
+
margin: 0 0 8px;
|
|
52
|
+
padding: 0;
|
|
53
|
+
@include typescale("title-large");
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
> p {
|
|
57
|
+
margin: 0;
|
|
58
|
+
color: var(--md-sys-color-on-surface-variant);
|
|
59
|
+
@include typescale("body-medium");
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
> .questionnaire-error {
|
|
63
|
+
margin-block-start: 8px;
|
|
64
|
+
color: var(--md-sys-color-error);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
&:not(.invalid) > .questionnaire-error {
|
|
68
|
+
display: none;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
> label:has(> :is([type="radio"], [type="checkbox"])) {
|
|
72
|
+
display: grid;
|
|
73
|
+
grid-template-columns: auto 1fr;
|
|
74
|
+
align-items: center;
|
|
75
|
+
column-gap: 16px;
|
|
76
|
+
box-sizing: border-box;
|
|
77
|
+
min-height: 56px;
|
|
78
|
+
margin: 8px 0 0;
|
|
79
|
+
padding: 8px 16px;
|
|
80
|
+
border: 1px solid var(--md-comp-questionnaire-choice-outline-color);
|
|
81
|
+
border-radius: var(--md-comp-questionnaire-choice-shape);
|
|
82
|
+
transition: background-color .2s ease, border-color .2s ease;
|
|
83
|
+
|
|
84
|
+
p + & {
|
|
85
|
+
margin-block-start: 16px;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// The checkbox draws its tick on the label at left: 0; follow the
|
|
89
|
+
// padding, on either side.
|
|
90
|
+
&:has(> [type="checkbox"])::before {
|
|
91
|
+
left: auto;
|
|
92
|
+
inset-inline-start: 16px;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
&:has(> :checked) {
|
|
96
|
+
border-color: transparent;
|
|
97
|
+
background-color: var(--md-comp-questionnaire-choice-selected-color);
|
|
98
|
+
color: var(--md-sys-color-on-secondary-container);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
&:has(> :disabled) {
|
|
102
|
+
border-color: color-mix(in oklab, var(--md-sys-color-on-surface) 12%, transparent);
|
|
103
|
+
color: color-mix(in oklab, var(--md-sys-color-on-surface) 38%, transparent);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
&:has(> small) > input {
|
|
107
|
+
grid-row: span 2;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
> small {
|
|
111
|
+
grid-column: 2;
|
|
112
|
+
color: var(--md-sys-color-on-surface-variant);
|
|
113
|
+
@include typescale("body-medium");
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// The selector matches the page footer's, which every <footer> gets.
|
|
119
|
+
> footer:not(:has(> .navigation-bar:only-child)) {
|
|
120
|
+
margin: 0;
|
|
121
|
+
padding: 0;
|
|
122
|
+
border: 0;
|
|
123
|
+
display: flex;
|
|
124
|
+
flex-wrap: wrap;
|
|
125
|
+
justify-content: flex-end;
|
|
126
|
+
gap: 8px;
|
|
127
|
+
|
|
128
|
+
> [value="previous"] {
|
|
129
|
+
margin-inline-end: auto;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// Buttons set their own display, which would beat the [hidden] the
|
|
134
|
+
// component writes.
|
|
135
|
+
> fieldset[hidden],
|
|
136
|
+
> footer > button[hidden] {
|
|
137
|
+
display: none;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
// Before the component runs, every question shows and only submit applies.
|
|
141
|
+
&:not(:has(> .questionnaire-progress)) > footer > :is([value="previous"], [value="skip"], [value="next"]) {
|
|
142
|
+
display: none;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
@use "../abstracts" as *;
|
|
2
|
+
|
|
3
|
+
// Radar chart. The same <figure>, <figcaption> and <table> as a line chart;
|
|
4
|
+
// RadarChart draws each row as a spoke, clockwise from the top, and each
|
|
5
|
+
// series as a shape joining its values on the spokes, from zero in the
|
|
6
|
+
// middle to the scale's top at the rim. The tooltip, legend and swatches
|
|
7
|
+
// come from chart(); the plot is a square as wide as
|
|
8
|
+
// --md-comp-radar-chart-height, with room round it for the row labels.
|
|
9
|
+
//
|
|
10
|
+
// The grid and shapes are SVG in a -50 to 50 box whose edge is the rim.
|
|
11
|
+
// Strokes and points keep their pixel widths at any size. The axis labels,
|
|
12
|
+
// the cursor spoke and the tooltip are HTML placed by the --turn RadarChart
|
|
13
|
+
// sets, a fraction of a turn clockwise from the top.
|
|
14
|
+
//
|
|
15
|
+
// Modifiers: .area fills each shape, .points marks each value, .sparkline
|
|
16
|
+
// is a small chart with no labels, legend or tooltip.
|
|
17
|
+
// A series header cell's classes reach its shape: <th class="dashed">.
|
|
18
|
+
//
|
|
19
|
+
// Tokens:
|
|
20
|
+
// --md-comp-radar-chart-height 240px, the rim's diameter (sparkline 48px)
|
|
21
|
+
// --md-comp-radar-chart-line-width 2px (sparkline 1.5px)
|
|
22
|
+
// --md-comp-radar-chart-label-room 80px, the labels' width beside the rim
|
|
23
|
+
// --md-comp-radar-chart-grid-color outline-variant
|
|
24
|
+
// --md-comp-radar-chart-color-1..4 primary, tertiary, secondary,
|
|
25
|
+
// on-surface-variant
|
|
26
|
+
|
|
27
|
+
@include chart("radar-chart");
|
|
28
|
+
|
|
29
|
+
.radar-chart {
|
|
30
|
+
--md-comp-radar-chart-line-width: 2px;
|
|
31
|
+
--md-comp-radar-chart-label-room: 80px;
|
|
32
|
+
// How far past the rim a label starts.
|
|
33
|
+
--radar-chart-label-offset: 8px;
|
|
34
|
+
|
|
35
|
+
&.sparkline {
|
|
36
|
+
--md-comp-radar-chart-line-width: 1.5px;
|
|
37
|
+
--md-comp-radar-chart-label-room: 0px;
|
|
38
|
+
--radar-chart-label-offset: 0px;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.radar-chart-plot {
|
|
43
|
+
width: min(
|
|
44
|
+
100% - 2 * (var(--md-comp-radar-chart-label-room) + var(--radar-chart-label-offset)),
|
|
45
|
+
var(--md-comp-radar-chart-height)
|
|
46
|
+
);
|
|
47
|
+
height: auto;
|
|
48
|
+
aspect-ratio: 1;
|
|
49
|
+
// Two lines of label above the top spoke and below the bottom one.
|
|
50
|
+
margin:
|
|
51
|
+
min(
|
|
52
|
+
var(--md-comp-radar-chart-label-room),
|
|
53
|
+
2 * var(--md-sys-typescale-body-small-line-height) + var(--radar-chart-label-offset)
|
|
54
|
+
)
|
|
55
|
+
auto;
|
|
56
|
+
border: 0;
|
|
57
|
+
border-radius: 50%;
|
|
58
|
+
background: none;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.radar-chart-web {
|
|
62
|
+
position: absolute;
|
|
63
|
+
inset: 0;
|
|
64
|
+
|
|
65
|
+
> svg {
|
|
66
|
+
display: block;
|
|
67
|
+
width: 100%;
|
|
68
|
+
height: 100%;
|
|
69
|
+
overflow: visible;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.radar-chart-grid {
|
|
74
|
+
fill: none;
|
|
75
|
+
stroke: var(--md-comp-radar-chart-grid-color);
|
|
76
|
+
stroke-width: 1px;
|
|
77
|
+
vector-effect: non-scaling-stroke;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.radar-chart-shape,
|
|
81
|
+
.radar-chart-points {
|
|
82
|
+
stroke: var(--radar-chart-color);
|
|
83
|
+
stroke-linecap: round;
|
|
84
|
+
stroke-linejoin: round;
|
|
85
|
+
vector-effect: non-scaling-stroke;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.radar-chart-shape {
|
|
89
|
+
fill: var(--radar-chart-color);
|
|
90
|
+
fill-opacity: 0;
|
|
91
|
+
stroke-width: var(--md-comp-radar-chart-line-width);
|
|
92
|
+
|
|
93
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
94
|
+
transition: opacity 400ms cubic-bezier(0.2, 0, 0, 1), scale 400ms cubic-bezier(0.2, 0, 0, 1);
|
|
95
|
+
|
|
96
|
+
@starting-style {
|
|
97
|
+
opacity: 0;
|
|
98
|
+
scale: 0.6;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.radar-chart.area .radar-chart-shape {
|
|
104
|
+
fill-opacity: 0.24;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.radar-chart-series.dashed .radar-chart-shape {
|
|
108
|
+
stroke-dasharray: 2 6;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.radar-chart-points {
|
|
112
|
+
fill: none;
|
|
113
|
+
stroke-width: calc(var(--md-comp-radar-chart-line-width) * 3);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// Each label sits just past its spoke's tip and leans away from the middle:
|
|
117
|
+
// right of a spoke on the right, above the top one, and so on.
|
|
118
|
+
.radar-chart-axes {
|
|
119
|
+
margin: 0;
|
|
120
|
+
padding: 0;
|
|
121
|
+
list-style: none;
|
|
122
|
+
color: var(--md-sys-color-on-surface-variant);
|
|
123
|
+
@include typescale("body-small");
|
|
124
|
+
|
|
125
|
+
> li {
|
|
126
|
+
--radar-chart-angle: calc(var(--turn, 0) * 1turn);
|
|
127
|
+
|
|
128
|
+
position: absolute;
|
|
129
|
+
left: calc(50% + sin(var(--radar-chart-angle)) * (50% + var(--radar-chart-label-offset)));
|
|
130
|
+
top: calc(50% - cos(var(--radar-chart-angle)) * (50% + var(--radar-chart-label-offset)));
|
|
131
|
+
width: max-content;
|
|
132
|
+
max-width: var(--md-comp-radar-chart-label-room);
|
|
133
|
+
translate:
|
|
134
|
+
calc(-50% + sin(var(--radar-chart-angle)) * 50%)
|
|
135
|
+
calc(-50% - cos(var(--radar-chart-angle)) * 50%);
|
|
136
|
+
text-align: center;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
// A spoke from the middle to the rim, turned about the middle. LineChart
|
|
141
|
+
// places the points on it by their share of its length from the rim.
|
|
142
|
+
.radar-chart-cursor {
|
|
143
|
+
inset: auto auto 50% 50%;
|
|
144
|
+
width: 1px;
|
|
145
|
+
height: 50%;
|
|
146
|
+
background-color: var(--md-sys-color-outline);
|
|
147
|
+
transform-origin: bottom;
|
|
148
|
+
rotate: calc(var(--turn, 0) * 1turn);
|
|
149
|
+
|
|
150
|
+
> span {
|
|
151
|
+
position: absolute;
|
|
152
|
+
left: 0;
|
|
153
|
+
width: 10px;
|
|
154
|
+
height: 10px;
|
|
155
|
+
border: 2px solid var(--md-sys-color-surface);
|
|
156
|
+
border-radius: 50%;
|
|
157
|
+
background-color: var(--radar-chart-color);
|
|
158
|
+
translate: -50% -50%;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
// Past the spoke's tip, on the side away from the middle.
|
|
163
|
+
.radar-chart-tooltip {
|
|
164
|
+
--radar-chart-angle: calc(var(--turn, 0) * 1turn);
|
|
165
|
+
|
|
166
|
+
left: calc(50% + sin(var(--radar-chart-angle)) * 50%);
|
|
167
|
+
top: calc(50% - cos(var(--radar-chart-angle)) * 50%);
|
|
168
|
+
translate: 12px -50%;
|
|
169
|
+
|
|
170
|
+
&.end {
|
|
171
|
+
translate: calc(-100% - 12px) -50%;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
.radar-chart-legend {
|
|
176
|
+
justify-content: center;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
.radar-chart.sparkline {
|
|
180
|
+
.radar-chart-plot {
|
|
181
|
+
margin: 0;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
.radar-chart-axes {
|
|
185
|
+
display: none;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
@media (forced-colors: active) {
|
|
190
|
+
.radar-chart-web {
|
|
191
|
+
forced-color-adjust: none;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
.radar-chart-axes {
|
|
195
|
+
forced-color-adjust: auto;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
.radar-chart-cursor {
|
|
199
|
+
background-color: CanvasText;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
.radar-chart-cursor > span {
|
|
203
|
+
forced-color-adjust: none;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
@use "../abstracts" as *;
|
|
2
|
+
|
|
3
|
+
// Radial chart. The same <figure>, <figcaption> and <table> as a line chart;
|
|
4
|
+
// RadialChart draws each row of the first value column as a ring, outermost
|
|
5
|
+
// first, filled clockwise from the top as a share of data-max. The plot,
|
|
6
|
+
// tooltip and legend swatches come from chart(); the plot is a square as
|
|
7
|
+
// wide as --md-comp-radial-chart-height, or half of one for a gauge.
|
|
8
|
+
//
|
|
9
|
+
// The rings are SVG circles in a -50 to 50 box, turned to start at the top
|
|
10
|
+
// (or at nine o'clock for a gauge). Each fill's dash is its share of the
|
|
11
|
+
// circle, from the --radial-chart-dash RadialChart sets, so it can grow in;
|
|
12
|
+
// --radial-chart-offset moves a round-capped dash in by half the width.
|
|
13
|
+
//
|
|
14
|
+
// Modifiers: .gauge draws half circles over the middle, .sparkline is a
|
|
15
|
+
// small chart with no legend or tooltip. A <tfoot> row shows in the middle.
|
|
16
|
+
//
|
|
17
|
+
// Tokens:
|
|
18
|
+
// --md-comp-radial-chart-height 240px, the rings' diameter (sparkline 48px)
|
|
19
|
+
// --md-comp-radial-chart-thickness 8, a ring's width in hundredths of the
|
|
20
|
+
// diameter; thinner when rings crowd
|
|
21
|
+
// --md-comp-radial-chart-gap 2, the gap between rings, in the same units
|
|
22
|
+
// --md-comp-radial-chart-track-color surface-container-highest; transparent
|
|
23
|
+
// hides the tracks
|
|
24
|
+
// --md-comp-radial-chart-color-1..4 primary, tertiary, secondary,
|
|
25
|
+
// on-surface-variant
|
|
26
|
+
|
|
27
|
+
@include chart("radial-chart");
|
|
28
|
+
|
|
29
|
+
.radial-chart {
|
|
30
|
+
--md-comp-radial-chart-thickness: 8;
|
|
31
|
+
--md-comp-radial-chart-gap: 2;
|
|
32
|
+
--md-comp-radial-chart-track-color: var(--md-sys-color-surface-container-highest);
|
|
33
|
+
|
|
34
|
+
gap: 16px;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.radial-chart-plot {
|
|
38
|
+
width: min(100%, var(--md-comp-radial-chart-height));
|
|
39
|
+
height: auto;
|
|
40
|
+
aspect-ratio: 1;
|
|
41
|
+
margin-inline: auto;
|
|
42
|
+
border: 0;
|
|
43
|
+
border-radius: 50%;
|
|
44
|
+
background: none;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.radial-chart.gauge .radial-chart-plot {
|
|
48
|
+
aspect-ratio: 2;
|
|
49
|
+
border-radius: 50% 50% 0 0 / 100% 100% 0 0;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.radial-chart-rings {
|
|
53
|
+
position: absolute;
|
|
54
|
+
inset: 0;
|
|
55
|
+
|
|
56
|
+
> svg {
|
|
57
|
+
display: block;
|
|
58
|
+
width: 100%;
|
|
59
|
+
height: 100%;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.radial-chart-track,
|
|
64
|
+
.radial-chart-ring {
|
|
65
|
+
fill: none;
|
|
66
|
+
stroke-dasharray: var(--radial-chart-dash, none);
|
|
67
|
+
stroke-dashoffset: var(--radial-chart-offset, 0);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.radial-chart-track {
|
|
71
|
+
stroke: var(--md-comp-radial-chart-track-color);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// A gauge's track ends where its fill would, so it ends round too.
|
|
75
|
+
.radial-chart.gauge .radial-chart-track {
|
|
76
|
+
stroke-linecap: round;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.radial-chart-ring {
|
|
80
|
+
stroke: var(--radial-chart-color);
|
|
81
|
+
stroke-linecap: round;
|
|
82
|
+
|
|
83
|
+
&.empty {
|
|
84
|
+
visibility: hidden;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// The rings beside the active one fade.
|
|
88
|
+
.radial-chart-rings:has(.active) &:not(.active) {
|
|
89
|
+
opacity: 0.38;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
93
|
+
transition: stroke-dasharray 600ms cubic-bezier(0.2, 0, 0, 1), opacity 200ms cubic-bezier(0.2, 0, 0, 1);
|
|
94
|
+
|
|
95
|
+
@starting-style {
|
|
96
|
+
stroke-dasharray: 0 1000;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.radial-chart-tooltip {
|
|
102
|
+
translate: 12px -50%;
|
|
103
|
+
|
|
104
|
+
&.end {
|
|
105
|
+
translate: calc(-100% - 12px) -50%;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// The middle, inside the innermost ring; a gauge's sits on its base line.
|
|
110
|
+
.radial-chart-total {
|
|
111
|
+
position: absolute;
|
|
112
|
+
inset: 0;
|
|
113
|
+
display: flex;
|
|
114
|
+
flex-direction: column;
|
|
115
|
+
align-items: center;
|
|
116
|
+
justify-content: center;
|
|
117
|
+
text-align: center;
|
|
118
|
+
|
|
119
|
+
> * {
|
|
120
|
+
max-width: calc(var(--radial-chart-middle, 100%) * 0.8);
|
|
121
|
+
overflow-wrap: anywhere;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
> strong {
|
|
125
|
+
color: var(--md-sys-color-on-surface);
|
|
126
|
+
@include typescale("headline-small");
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
> span {
|
|
130
|
+
color: var(--md-sys-color-on-surface-variant);
|
|
131
|
+
@include typescale("body-small");
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
.radial-chart.gauge .radial-chart-total {
|
|
136
|
+
justify-content: end;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
// One row per ring: swatch, name and cell in aligned columns.
|
|
140
|
+
.radial-chart-legend {
|
|
141
|
+
display: grid;
|
|
142
|
+
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
143
|
+
align-items: center;
|
|
144
|
+
gap: 8px;
|
|
145
|
+
|
|
146
|
+
> li {
|
|
147
|
+
display: contents;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
> li > span:first-child {
|
|
151
|
+
overflow: hidden;
|
|
152
|
+
text-overflow: ellipsis;
|
|
153
|
+
white-space: nowrap;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
> li > span:last-child {
|
|
157
|
+
text-align: end;
|
|
158
|
+
color: var(--md-sys-color-on-surface);
|
|
159
|
+
font-weight: 500;
|
|
160
|
+
font-variant-numeric: tabular-nums;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
.radial-chart.sparkline .radial-chart-plot {
|
|
165
|
+
// A set width, so the chart keeps its size as a flex item.
|
|
166
|
+
width: var(--md-comp-radial-chart-height);
|
|
167
|
+
margin-inline: 0;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
@media (forced-colors: active) {
|
|
171
|
+
.radial-chart-rings {
|
|
172
|
+
forced-color-adjust: none;
|
|
173
|
+
}
|
|
174
|
+
}
|