@blukavantui/charts-community 0.0.0-stage → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.txt +103 -0
- package/README.md +98 -2
- package/THIRD_PARTY_NOTICES.txt +288 -0
- package/dist/accessibility.d.ts +53 -0
- package/dist/async.d.ts +2 -0
- package/dist/bar.css +1 -0
- package/dist/bar.d.ts +5 -0
- package/dist/bar.js +1 -0
- package/dist/browser/charts-community.css +1 -0
- package/dist/browser/charts-community.js +52 -0
- package/dist/build-audit.json +209 -0
- package/dist/builders/bar.d.ts +6 -0
- package/dist/builders/doughnut.d.ts +6 -0
- package/dist/builders/heatmap.d.ts +16 -0
- package/dist/builders/line.d.ts +6 -0
- package/dist/builders/pie.d.ts +6 -0
- package/dist/builders/radar.d.ts +6 -0
- package/dist/builders/scatter.d.ts +6 -0
- package/dist/catalogue-model.d.ts +11 -0
- package/dist/catalogue-runtime.d.ts +23 -0
- package/dist/catalogue-types.d.ts +167 -0
- package/dist/chart-state.d.ts +18 -0
- package/dist/chunk-2GUWWKHW.js +1 -0
- package/dist/chunk-3PITHTEO.js +1 -0
- package/dist/chunk-4B5MQ6GZ.js +1 -0
- package/dist/chunk-4EQMOBBN.js +1 -0
- package/dist/chunk-4WDZUJDS.js +1 -0
- package/dist/chunk-5NUOOMHV.js +1 -0
- package/dist/chunk-7OCMRHIH.js +1 -0
- package/dist/chunk-CF5Q2DDP.js +1 -0
- package/dist/chunk-EITBQBN2.js +1 -0
- package/dist/chunk-FXNKAHRG.js +1 -0
- package/dist/chunk-IDMAFTWV.js +1 -0
- package/dist/chunk-ILTENI35.js +1 -0
- package/dist/chunk-KRMM7EWI.js +1 -0
- package/dist/chunk-LUUPBBD4.js +1 -0
- package/dist/chunk-MR5VITXX.js +1 -0
- package/dist/chunk-NASBRHIW.js +1 -0
- package/dist/chunk-NXDBBMF5.js +1 -0
- package/dist/chunk-OQ6MP7PY.js +1 -0
- package/dist/chunk-RC2TCMJF.js +1 -0
- package/dist/chunk-RXOGAN23.js +1 -0
- package/dist/chunk-UGXWOWAG.js +2 -0
- package/dist/chunk-UO2KNHTU.js +2 -0
- package/dist/chunk-UQMMBG26.js +3 -0
- package/dist/chunk-VTJ4XPRV.js +1 -0
- package/dist/chunk-WJ3UHH6J.js +1 -0
- package/dist/chunk-XLJUSNGV.js +1 -0
- package/dist/colors.d.ts +15 -0
- package/dist/community.d.ts +11 -0
- package/dist/doughnut.css +1 -0
- package/dist/doughnut.d.ts +5 -0
- package/dist/doughnut.js +1 -0
- package/dist/export.d.ts +5 -0
- package/dist/fonts/dm-sans-LICENSE.txt +93 -0
- package/dist/fonts/dm-sans-latin-ext-wght-italic.woff2 +0 -0
- package/dist/fonts/dm-sans-latin-ext-wght-normal.woff2 +0 -0
- package/dist/fonts/dm-sans-latin-wght-italic.woff2 +0 -0
- package/dist/fonts/dm-sans-latin-wght-normal.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-LICENSE.txt +93 -0
- package/dist/fonts/ibm-plex-mono-latin-100-italic.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-latin-100-normal.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-latin-200-italic.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-latin-200-normal.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-latin-300-italic.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-latin-300-normal.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-latin-400-italic.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-latin-400-normal.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-latin-500-italic.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-latin-500-normal.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-latin-600-italic.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-latin-600-normal.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-latin-700-italic.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-latin-700-normal.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-latin-ext-100-italic.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-latin-ext-100-normal.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-latin-ext-200-italic.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-latin-ext-200-normal.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-latin-ext-300-italic.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-latin-ext-300-normal.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-latin-ext-400-italic.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-latin-ext-400-normal.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-latin-ext-500-italic.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-latin-ext-500-normal.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-latin-ext-600-italic.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-latin-ext-600-normal.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-latin-ext-700-italic.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-latin-ext-700-normal.woff2 +0 -0
- package/dist/fonts/inter-LICENSE.txt +93 -0
- package/dist/fonts/inter-latin-ext-wght-italic.woff2 +0 -0
- package/dist/fonts/inter-latin-ext-wght-normal.woff2 +0 -0
- package/dist/fonts/inter-latin-wght-italic.woff2 +0 -0
- package/dist/fonts/inter-latin-wght-normal.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-LICENSE.txt +93 -0
- package/dist/fonts/jetbrains-mono-latin-ext-wght-italic.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-latin-ext-wght-normal.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-latin-wght-italic.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-latin-wght-normal.woff2 +0 -0
- package/dist/fonts/lora-LICENSE.txt +93 -0
- package/dist/fonts/lora-latin-ext-wght-italic.woff2 +0 -0
- package/dist/fonts/lora-latin-ext-wght-normal.woff2 +0 -0
- package/dist/fonts/lora-latin-wght-italic.woff2 +0 -0
- package/dist/fonts/lora-latin-wght-normal.woff2 +0 -0
- package/dist/fonts/manifest.json +618 -0
- package/dist/fonts/manrope-LICENSE.txt +93 -0
- package/dist/fonts/manrope-latin-ext-wght-normal.woff2 +0 -0
- package/dist/fonts/manrope-latin-wght-normal.woff2 +0 -0
- package/dist/fonts/merriweather-LICENSE.txt +93 -0
- package/dist/fonts/merriweather-latin-ext-wght-italic.woff2 +0 -0
- package/dist/fonts/merriweather-latin-ext-wght-normal.woff2 +0 -0
- package/dist/fonts/merriweather-latin-wght-italic.woff2 +0 -0
- package/dist/fonts/merriweather-latin-wght-normal.woff2 +0 -0
- package/dist/fonts/montserrat-LICENSE.txt +93 -0
- package/dist/fonts/montserrat-latin-ext-wght-italic.woff2 +0 -0
- package/dist/fonts/montserrat-latin-ext-wght-normal.woff2 +0 -0
- package/dist/fonts/montserrat-latin-wght-italic.woff2 +0 -0
- package/dist/fonts/montserrat-latin-wght-normal.woff2 +0 -0
- package/dist/fonts/playfair-display-LICENSE.txt +93 -0
- package/dist/fonts/playfair-display-latin-ext-wght-italic.woff2 +0 -0
- package/dist/fonts/playfair-display-latin-ext-wght-normal.woff2 +0 -0
- package/dist/fonts/playfair-display-latin-wght-italic.woff2 +0 -0
- package/dist/fonts/playfair-display-latin-wght-normal.woff2 +0 -0
- package/dist/fonts/roboto-LICENSE.txt +93 -0
- package/dist/fonts/roboto-latin-ext-wght-italic.woff2 +0 -0
- package/dist/fonts/roboto-latin-ext-wght-normal.woff2 +0 -0
- package/dist/fonts/roboto-latin-wght-italic.woff2 +0 -0
- package/dist/fonts/roboto-latin-wght-normal.woff2 +0 -0
- package/dist/fonts/source-sans-3-LICENSE.txt +93 -0
- package/dist/fonts/source-sans-3-latin-ext-wght-italic.woff2 +0 -0
- package/dist/fonts/source-sans-3-latin-ext-wght-normal.woff2 +0 -0
- package/dist/fonts/source-sans-3-latin-wght-italic.woff2 +0 -0
- package/dist/fonts/source-sans-3-latin-wght-normal.woff2 +0 -0
- package/dist/heatmap.css +1 -0
- package/dist/heatmap.d.ts +3 -0
- package/dist/heatmap.js +1 -0
- package/dist/index.css +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +1 -0
- package/dist/legend-export.d.ts +9 -0
- package/dist/legend-model.d.ts +39 -0
- package/dist/legend.d.ts +19 -0
- package/dist/limits.d.ts +16 -0
- package/dist/line.css +1 -0
- package/dist/line.d.ts +5 -0
- package/dist/line.js +1 -0
- package/dist/loading-state.d.ts +6 -0
- package/dist/map-assets.d.ts +4 -0
- package/dist/map-resources.d.ts +24 -0
- package/dist/messages.d.ts +3 -0
- package/dist/model.d.ts +41 -0
- package/dist/motion/bar.css +1 -0
- package/dist/motion/bar.d.ts +8 -0
- package/dist/motion/bar.js +1 -0
- package/dist/motion/doughnut.css +1 -0
- package/dist/motion/doughnut.d.ts +8 -0
- package/dist/motion/doughnut.js +1 -0
- package/dist/motion/heatmap.css +1 -0
- package/dist/motion/heatmap.d.ts +7 -0
- package/dist/motion/heatmap.js +1 -0
- package/dist/motion/line.css +1 -0
- package/dist/motion/line.d.ts +8 -0
- package/dist/motion/line.js +1 -0
- package/dist/motion/pie.css +1 -0
- package/dist/motion/pie.d.ts +8 -0
- package/dist/motion/pie.js +1 -0
- package/dist/motion/radar.css +1 -0
- package/dist/motion/radar.d.ts +8 -0
- package/dist/motion/radar.js +1 -0
- package/dist/motion/scatter.css +1 -0
- package/dist/motion/scatter.d.ts +8 -0
- package/dist/motion/scatter.js +1 -0
- package/dist/motion/sparkline.d.ts +7 -0
- package/dist/motion/sparkline.js +1 -0
- package/dist/motion-collection.d.ts +7 -0
- package/dist/motion-community.d.ts +40 -0
- package/dist/motion-policy.d.ts +14 -0
- package/dist/motion.css +1 -0
- package/dist/motion.d.ts +40 -0
- package/dist/motion.js +1 -0
- package/dist/options.d.ts +11 -0
- package/dist/pie.css +1 -0
- package/dist/pie.d.ts +5 -0
- package/dist/pie.js +1 -0
- package/dist/radar.css +1 -0
- package/dist/radar.d.ts +4 -0
- package/dist/radar.js +1 -0
- package/dist/runtime.d.ts +4 -0
- package/dist/scatter.css +1 -0
- package/dist/scatter.d.ts +5 -0
- package/dist/scatter.js +1 -0
- package/dist/sparkline-runtime/runtime.d.ts +10 -0
- package/dist/sparkline-validation.d.ts +3 -0
- package/dist/sparkline.css +25 -0
- package/dist/sparkline.d.ts +44 -0
- package/dist/sparkline.js +1 -0
- package/dist/state-announcement.d.ts +6 -0
- package/dist/styles.css +496 -0
- package/dist/theme.css +1391 -0
- package/dist/types.d.ts +137 -0
- package/dist/validation.d.ts +8 -0
- package/dist/web-api.json +4305 -0
- package/dist/web-motion-sparkline.d.ts +4 -0
- package/edition.json +48 -0
- package/package.json +103 -4
- package/src/accessibility.ts +81 -0
- package/src/assets.d.ts +1 -0
- package/src/async.ts +12 -0
- package/src/bar.ts +13 -0
- package/src/builders/bar.ts +39 -0
- package/src/builders/doughnut.ts +66 -0
- package/src/builders/heatmap.ts +60 -0
- package/src/builders/line.ts +39 -0
- package/src/builders/pie.ts +66 -0
- package/src/builders/radar.ts +65 -0
- package/src/builders/scatter.ts +34 -0
- package/src/catalogue-model.ts +235 -0
- package/src/catalogue-runtime.ts +244 -0
- package/src/catalogue-types.ts +163 -0
- package/src/chart-state.ts +35 -0
- package/src/charts.css +135 -0
- package/src/colors.ts +277 -0
- package/src/community.ts +11 -0
- package/src/doughnut.ts +12 -0
- package/src/export.ts +50 -0
- package/src/heatmap.ts +11 -0
- package/src/index.ts +11 -0
- package/src/legend-export.ts +36 -0
- package/src/legend-model.ts +76 -0
- package/src/legend.css +64 -0
- package/src/legend.ts +90 -0
- package/src/limits.ts +7 -0
- package/src/line.ts +13 -0
- package/src/loading-state.ts +39 -0
- package/src/map-assets.ts +1 -0
- package/src/map-resources.ts +46 -0
- package/src/messages.ts +5 -0
- package/src/model.ts +32 -0
- package/src/motion/bar.ts +15 -0
- package/src/motion/doughnut.ts +14 -0
- package/src/motion/heatmap.ts +14 -0
- package/src/motion/line.ts +15 -0
- package/src/motion/pie.ts +14 -0
- package/src/motion/radar.ts +15 -0
- package/src/motion/scatter.ts +15 -0
- package/src/motion/sparkline.ts +10 -0
- package/src/motion-collection.ts +20 -0
- package/src/motion-community.ts +22 -0
- package/src/motion-policy.ts +36 -0
- package/src/options.ts +24 -0
- package/src/pie.ts +12 -0
- package/src/radar.ts +12 -0
- package/src/runtime.ts +7 -0
- package/src/scatter.ts +13 -0
- package/src/sparkline-runtime/runtime.d.ts +10 -0
- package/src/sparkline-runtime/runtime.js +263 -0
- package/src/sparkline-validation.ts +19 -0
- package/src/sparkline.css +25 -0
- package/src/sparkline.ts +68 -0
- package/src/state-announcement.ts +17 -0
- package/src/types.ts +104 -0
- package/src/validation.ts +75 -0
- package/src/web-motion-sparkline.ts +37 -0
package/dist/styles.css
ADDED
|
@@ -0,0 +1,496 @@
|
|
|
1
|
+
.blu-chart { width:100%; min-width:0; color:var(--bluui-text,#182230); background:var(--bluui-surface,#fff); font:13px/1.5 var(--blu-font-family,Inter,system-ui,sans-serif); }
|
|
2
|
+
.blu-chart [hidden] { display:none!important; }
|
|
3
|
+
.blu-chart__heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:18px 16px 12px; }
|
|
4
|
+
.blu-chart__heading>div:first-child { min-width:0; }
|
|
5
|
+
.blu-chart__heading h3 { margin:0; color:inherit; font-size:16px; font-weight:650; letter-spacing:-.3px; overflow-wrap:anywhere; }
|
|
6
|
+
.blu-chart__heading p { margin:5px 0 0; font-size:11px; color:var(--bluui-text-muted,#667085); line-height:1.6; overflow-wrap:anywhere; }
|
|
7
|
+
.blu-chart__export { display:flex; gap:5px; flex-shrink:0; margin-left:auto; }
|
|
8
|
+
.blu-chart__export :is(select,button) { font:inherit; font-size:11px; border:1px solid var(--bluui-border,#ddd); color:inherit; border-radius:6px; background:var(--bluui-surface,#fff); min-height:34px; padding:6px 8px; cursor:pointer; }
|
|
9
|
+
.blu-chart__export button:disabled { opacity:.5; cursor:default; }
|
|
10
|
+
.blu-chart__stage { position:relative; min-width:0; }
|
|
11
|
+
.blu-chart__plot { width:100%; min-width:0; }
|
|
12
|
+
.blu-chart__state { position:absolute; inset:0; display:grid; place-items:center; background:var(--bluui-surface-muted,#f8f8fa); color:var(--bluui-text-muted,#667085); padding:20px; text-align:center; }
|
|
13
|
+
.blu-chart__state--loading {grid-template-rows:minmax(0,1fr) auto;gap:14px;place-items:stretch;background:var(--bluui-surface,#fff);padding:16px}
|
|
14
|
+
.blu-chart__skeleton {display:flex;flex-direction:column;gap:24px;min-width:0;min-height:0}
|
|
15
|
+
.blu-chart__skeleton-key {display:flex;gap:16px;align-items:center;flex-wrap:wrap}
|
|
16
|
+
.blu-chart__skeleton-plot {flex:1;min-height:0}
|
|
17
|
+
.blu-chart__skeleton-plot>div {height:100%}
|
|
18
|
+
.blu-chart__state-message {font-size:12px}
|
|
19
|
+
.blu-chart__data { margin:12px 16px 0; border-top:1px solid var(--bluui-border,#ddd); font-size:11px; }
|
|
20
|
+
.blu-chart__data summary { cursor:pointer; padding:12px 0; color:var(--bluui-text-muted,#667085); }
|
|
21
|
+
.blu-chart__data--compact { margin-top:0; border-top:0; }
|
|
22
|
+
.blu-chart__data--compact summary { padding:6px 0; }
|
|
23
|
+
.blu-chart__table { overflow:auto; max-height:320px; }
|
|
24
|
+
.blu-chart__table table { width:100%; border-collapse:collapse; white-space:nowrap; font-size:11px; font-variant-numeric:tabular-nums; }
|
|
25
|
+
.blu-chart__table caption { text-align:left; color:var(--bluui-text-muted,#667085); padding:8px; }
|
|
26
|
+
.blu-chart__table th,.blu-chart__table td { padding:8px; border-bottom:1px solid var(--bluui-border,#ddd); text-align:right; }
|
|
27
|
+
.blu-chart__table th:first-child { text-align:left; }
|
|
28
|
+
.blu-chart__table button { font:inherit; color:var(--bluui-primary,#6557e8); background:transparent; border:0; border-radius:3px; padding:5px; cursor:pointer; }
|
|
29
|
+
.blu-chart__table button[aria-pressed=true] { background:var(--bluui-selected,#eeeaff); text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:3px; font-weight:700; }
|
|
30
|
+
.blu-chart :is(button,select,summary,[tabindex]):focus-visible { outline:2px solid var(--bluui-primary,#6557e8); outline-offset:2px; }
|
|
31
|
+
.blu-chart__status { font-size:11px; color:var(--bluui-text-muted,#667085); margin:0 16px; }
|
|
32
|
+
.blu-chart__status:not(:empty) { padding:8px 0; }
|
|
33
|
+
@media(max-width:640px) { .blu-chart__heading { flex-wrap:wrap; padding-inline:12px; }.blu-chart__export { margin-left:0; }.blu-chart__data { margin-inline:12px; } }
|
|
34
|
+
|
|
35
|
+
.blu-chart__navigation {display:flex;flex-wrap:wrap;gap:6px;padding:8px 16px}
|
|
36
|
+
.blu-chart__navigation button {min-width:32px;min-height:32px;padding:5px 9px;font:inherit;font-size:12px;color:var(--bluui-text);background:var(--bluui-surface);border:1px solid var(--bluui-control-border);border-radius:5px;cursor:pointer}
|
|
37
|
+
.blu-chart__stage[tabindex]:focus-visible {outline-offset:-3px}
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
.blu-chart__state-announcement { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
|
|
41
|
+
.blu-chart__patterns {display:flex;align-items:center;gap:8px;font-size:12px;padding:6px 0 12px;cursor:pointer}
|
|
42
|
+
.blu-chart__patterns input {width:24px;height:24px;margin:0;accent-color:var(--bluui-color-primary-solid)}
|
|
43
|
+
|
|
44
|
+
.blu-chart__missing-note {margin:8px 12px;color:var(--bluui-text-muted);font-size:12px;line-height:1.5}
|
|
45
|
+
|
|
46
|
+
/* BEGIN GENERATED SHARED CHECKBOX — scripts/build-checkbox-styles.mjs */
|
|
47
|
+
/* One checkbox design, emitted into each owning Block. Keep native input/tree/grid semantics. */
|
|
48
|
+
.blu-chart .blu-chart__patterns input[type="checkbox"] {
|
|
49
|
+
-webkit-appearance:none;
|
|
50
|
+
appearance:none;
|
|
51
|
+
box-sizing:border-box;
|
|
52
|
+
position:relative;
|
|
53
|
+
display:inline-block;
|
|
54
|
+
flex:0 0 22px;
|
|
55
|
+
width:22px;
|
|
56
|
+
height:22px;
|
|
57
|
+
min-width:22px;
|
|
58
|
+
min-height:22px;
|
|
59
|
+
margin:0;
|
|
60
|
+
padding:0;
|
|
61
|
+
border:1.5px solid var(--bluui-control-border,#7b8799);
|
|
62
|
+
border-radius:6px;
|
|
63
|
+
background-color:var(--bluui-surface,#fff);
|
|
64
|
+
background-image:none;
|
|
65
|
+
box-shadow:0 1px 2px rgb(15 23 42 / 6%);
|
|
66
|
+
vertical-align:middle;
|
|
67
|
+
cursor:pointer;
|
|
68
|
+
opacity:1;
|
|
69
|
+
filter:none;
|
|
70
|
+
transition:background-color 120ms ease,border-color 120ms ease,box-shadow 120ms ease;
|
|
71
|
+
}
|
|
72
|
+
.blu-chart .blu-chart__patterns input[type="checkbox"]::after { content:none; }
|
|
73
|
+
.blu-chart .blu-chart__patterns input[type="checkbox"]:checked,
|
|
74
|
+
.blu-chart .blu-chart__patterns input[type="checkbox"]:indeterminate {
|
|
75
|
+
border-color:var(--bluui-color-primary-solid,#4f46e5);
|
|
76
|
+
background-color:var(--bluui-color-primary-solid,#4f46e5);
|
|
77
|
+
}
|
|
78
|
+
.blu-chart .blu-chart__patterns input[type="checkbox"]:checked::after,
|
|
79
|
+
.blu-chart .blu-chart__patterns input[type="checkbox"]:indeterminate::after {
|
|
80
|
+
content:"";
|
|
81
|
+
box-sizing:content-box;
|
|
82
|
+
position:absolute;
|
|
83
|
+
inset:auto;
|
|
84
|
+
width:10px;
|
|
85
|
+
height:6px;
|
|
86
|
+
left:4px;
|
|
87
|
+
top:5px;
|
|
88
|
+
border:solid var(--bluui-color-primary-contrast,#fff);
|
|
89
|
+
border-width:0 0 2px 2px;
|
|
90
|
+
border-radius:0;
|
|
91
|
+
background:none;
|
|
92
|
+
-webkit-mask:none;
|
|
93
|
+
mask:none;
|
|
94
|
+
transform:rotate(-45deg);
|
|
95
|
+
pointer-events:none;
|
|
96
|
+
}
|
|
97
|
+
.blu-chart .blu-chart__patterns input[type="checkbox"]:indeterminate::after {
|
|
98
|
+
height:0;
|
|
99
|
+
top:8px;
|
|
100
|
+
border-width:0 0 2px;
|
|
101
|
+
transform:none;
|
|
102
|
+
}
|
|
103
|
+
.blu-chart .blu-chart__patterns input[type="checkbox"]:hover:not(:disabled) {
|
|
104
|
+
border-color:var(--bluui-color-primary-solid,#4f46e5);
|
|
105
|
+
box-shadow:0 0 0 3px var(--bluui-color-primary-soft,#eef2ff);
|
|
106
|
+
}
|
|
107
|
+
.blu-chart .blu-chart__patterns input[type="checkbox"]:focus-visible {
|
|
108
|
+
outline:2px solid var(--bluui-color-primary-solid,#4f46e5);
|
|
109
|
+
outline-offset:3px;
|
|
110
|
+
}
|
|
111
|
+
.blu-chart .blu-chart__patterns input[type="checkbox"]:disabled {
|
|
112
|
+
border-color:var(--bluui-border-strong,#b8c4d4);
|
|
113
|
+
background-color:var(--bluui-surface-muted,#f7f8fb);
|
|
114
|
+
box-shadow:none;
|
|
115
|
+
cursor:not-allowed;
|
|
116
|
+
}
|
|
117
|
+
.blu-chart .blu-chart__patterns input[type="checkbox"]:disabled:checked,
|
|
118
|
+
.blu-chart .blu-chart__patterns input[type="checkbox"]:disabled:indeterminate {
|
|
119
|
+
border-color:var(--bluui-text-muted,#5c6b80);
|
|
120
|
+
background-color:var(--bluui-text-muted,#5c6b80);
|
|
121
|
+
}
|
|
122
|
+
@media (prefers-reduced-motion:reduce) {
|
|
123
|
+
.blu-chart .blu-chart__patterns input[type="checkbox"] { transition:none; }
|
|
124
|
+
}
|
|
125
|
+
.blu-chart .blu-chart__patterns input[type="checkbox"]::before { content:none; }
|
|
126
|
+
@media (forced-colors:active) {
|
|
127
|
+
.blu-chart .blu-chart__patterns input[type="checkbox"],
|
|
128
|
+
.blu-chart .blu-chart__patterns input[type="checkbox"]:checked,
|
|
129
|
+
.blu-chart .blu-chart__patterns input[type="checkbox"]:indeterminate,
|
|
130
|
+
.blu-chart .blu-chart__patterns input[type="checkbox"]:disabled,
|
|
131
|
+
.blu-chart .blu-chart__patterns input[type="checkbox"]:disabled:checked,
|
|
132
|
+
.blu-chart .blu-chart__patterns input[type="checkbox"]:disabled:indeterminate { -webkit-appearance:checkbox; appearance:auto; background:revert; border:revert; box-shadow:none; forced-color-adjust:auto; }
|
|
133
|
+
.blu-chart .blu-chart__patterns input[type="checkbox"]:checked::after, .blu-chart .blu-chart__patterns input[type="checkbox"]:indeterminate::after { content:none; }
|
|
134
|
+
}
|
|
135
|
+
/* END GENERATED SHARED CHECKBOX */
|
|
136
|
+
|
|
137
|
+
.blu-chart__body {display:grid;grid-template-columns:minmax(0,1fr);gap:12px;min-width:0}
|
|
138
|
+
.blu-chart__body[data-legend-position=Top] .blu-chart__legend {grid-row:1}
|
|
139
|
+
.blu-chart__body[data-legend-position=Bottom] .blu-chart__legend {grid-row:2}
|
|
140
|
+
.blu-chart__body[data-legend-position=Left] {grid-template-columns:190px minmax(0,1fr);align-items:center}
|
|
141
|
+
.blu-chart__body[data-legend-position=Right] {grid-template-columns:minmax(0,1fr) 190px;align-items:center}
|
|
142
|
+
.blu-chart__body[data-legend-position=Left] .blu-chart__legend {grid-column:1;grid-row:1}
|
|
143
|
+
.blu-chart__body[data-legend-position=Left] .blu-chart__stage {grid-column:2;grid-row:1}
|
|
144
|
+
.blu-chart__body[data-legend-position=Right] .blu-chart__legend {grid-column:2;grid-row:1}
|
|
145
|
+
.blu-chart__body[data-legend-position=Right] .blu-chart__stage {grid-column:1;grid-row:1}
|
|
146
|
+
.blu-chart__body.blu-chart__body--no-legend {grid-template-columns:minmax(0,1fr);gap:0}
|
|
147
|
+
.blu-chart__body--no-legend .blu-chart__stage {grid-column:1!important;grid-row:1!important}
|
|
148
|
+
.blu-chart__legend {--legend-selected:color-mix(in srgb,var(--bluui-primary) 9%,var(--bluui-surface));min-width:0;padding:8px 20px 16px;font:12px/1.45 var(--bluui-font,Inter,system-ui,sans-serif);color:var(--bluui-text)}
|
|
149
|
+
.blu-chart__legend-items {display:flex;flex-wrap:wrap;gap:8px}
|
|
150
|
+
.blu-chart__legend-entry {min-width:0;max-width:100%;display:flex;align-items:center;gap:10px;border:1px solid transparent;background:transparent;color:inherit;font:inherit;text-align:left;padding:7px 8px;border-radius:8px;cursor:pointer;min-height:36px}
|
|
151
|
+
.blu-chart__legend-entry:hover {background:var(--bluui-surface-muted)}
|
|
152
|
+
.blu-chart__legend-entry[aria-pressed=true] {text-decoration:none;background:var(--legend-selected)}
|
|
153
|
+
.blu-chart__legend-heading {display:flex;align-items:center;gap:7px;min-width:0}
|
|
154
|
+
.blu-chart__legend-marker {display:flex;flex-shrink:0}
|
|
155
|
+
.blu-chart__legend-text {overflow-wrap:anywhere}
|
|
156
|
+
.blu-chart__legend-label {font-weight:500}
|
|
157
|
+
.blu-chart__legend-detail,.blu-chart__legend-percent,.blu-chart__legend-note {font-size:11px;color:var(--bluui-text-muted)}
|
|
158
|
+
.blu-chart__legend-numbers {display:flex;align-items:baseline;gap:10px;min-width:0;font-variant-numeric:tabular-nums}
|
|
159
|
+
.blu-chart__legend-value {font-weight:600;letter-spacing:-.25px}
|
|
160
|
+
.blu-chart__legend-check {visibility:hidden;margin-left:auto;color:var(--bluui-primary);font-weight:700;font-size:12px}
|
|
161
|
+
[aria-pressed=true] .blu-chart__legend-check {visibility:visible}
|
|
162
|
+
.blu-chart__legend[data-style=Standard] .blu-chart__legend-detail,.blu-chart__legend[data-style=Standard] .blu-chart__legend-check {display:none}
|
|
163
|
+
.blu-chart__legend[data-style=Standard] .blu-chart__legend-value {font-size:11px;color:var(--bluui-text-muted)}
|
|
164
|
+
.blu-chart__legend-track {display:none;height:3px;background:var(--bluui-border);border-radius:2px;overflow:hidden}
|
|
165
|
+
.blu-chart__legend-track>span {display:block;height:100%}
|
|
166
|
+
/* The compact key uses Community Chip; only this chart-specific appearance is scoped here. */
|
|
167
|
+
.blu-chart__legend-chip-host {min-width:0;max-width:100%}
|
|
168
|
+
.blu-chart__legend .blu-chip.blu-chart__legend-chip {--chip-bg:transparent;--chip-fg:var(--bluui-text);--chip-border:var(--bluui-border);max-width:100%;box-shadow:none}
|
|
169
|
+
.blu-chart__legend .blu-chart__legend-chip.blu-chip--selected {--chip-bg:var(--legend-selected);--chip-border:var(--bluui-primary);box-shadow:none}
|
|
170
|
+
.blu-chart__legend .blu-chart__legend-chip .blu-chip__select {min-height:38px;padding:9px 12px;gap:10px;font:inherit;font-size:11px;text-align:left;justify-content:flex-start}
|
|
171
|
+
.blu-chart__legend-chip .blu-chart__legend-label {font-weight:500}
|
|
172
|
+
.blu-chart__legend-chip .blu-chart__legend-detail,.blu-chart__legend-chip .blu-chart__legend-check {display:none}
|
|
173
|
+
.blu-chart__legend-chip [aria-pressed=true] {text-decoration:none}
|
|
174
|
+
.blu-chart__legend-chip [aria-pressed=true] .blu-chart__legend-label {text-decoration:underline;text-underline-offset:3px}
|
|
175
|
+
.blu-chart__legend-chip .blu-chart__legend-numbers {gap:7px;flex-wrap:wrap}
|
|
176
|
+
.blu-chart__legend[data-style=ValueList] .blu-chart__legend-items,.blu-chart__legend[data-style=SummaryCards] .blu-chart__legend-items {display:grid;grid-template-columns:repeat(var(--legend-columns,1),minmax(0,1fr));gap:10px}
|
|
177
|
+
.blu-chart__legend[data-style=ValueList] .blu-chart__legend-entry {display:flex;flex-direction:column;align-items:stretch;gap:5px;padding:10px 11px;border:0}
|
|
178
|
+
.blu-chart__legend[data-style=ValueList] .blu-chart__legend-numbers {margin-left:23px;justify-content:space-between}
|
|
179
|
+
.blu-chart__legend[data-style=ValueList] .blu-chart__legend-value {font-size:19px;letter-spacing:-.4px;line-height:1.3}
|
|
180
|
+
.blu-chart__legend[data-style=ValueList] .blu-chart__legend-detail {margin-left:23px}
|
|
181
|
+
.blu-chart__legend[data-style=ValueList] .blu-chart__legend-track {display:block;margin:3px 0 0 23px}
|
|
182
|
+
.blu-chart__legend[data-style=SummaryCards] .blu-chart__legend-entry {display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;padding:12px;min-height:36px;align-self:start;border-color:var(--bluui-border);border-radius:12px}
|
|
183
|
+
.blu-chart__legend[data-style=SummaryCards] .blu-chart__legend-entry[aria-pressed=true] {border-color:var(--bluui-primary)}
|
|
184
|
+
.blu-chart__legend[data-style=SummaryCards] .blu-chart__legend-heading {font-size:11px}
|
|
185
|
+
.blu-chart__legend[data-style=SummaryCards] .blu-chart__legend-numbers {flex-direction:column;align-items:stretch;gap:6px;margin-top:10px}
|
|
186
|
+
.blu-chart__legend[data-style=SummaryCards] .blu-chart__legend-value {font-size:24px;letter-spacing:-.6px;line-height:1.2}
|
|
187
|
+
.blu-chart__legend[data-style=SummaryCards] .blu-chart__legend-detail {margin-top:6px}
|
|
188
|
+
.blu-chart__body:is([data-legend-position=Left],[data-legend-position=Right]) .blu-chart__legend {padding:8px 12px 16px}
|
|
189
|
+
.blu-chart__body:is([data-legend-position=Left],[data-legend-position=Right]) .blu-chart__legend-items {display:flex;flex-direction:column}
|
|
190
|
+
.blu-chart__body:is([data-legend-position=Left],[data-legend-position=Right]) .blu-chart__legend-entry {width:100%}
|
|
191
|
+
.blu-chart__body:is([data-legend-position=Left],[data-legend-position=Right]) .blu-chart__legend[data-style=Standard] .blu-chart__legend-entry {flex-wrap:wrap;gap:4px 10px}
|
|
192
|
+
.blu-chart__legend-scale {max-width:360px;min-width:0;margin:0 0 8px}
|
|
193
|
+
.blu-chart__legend-scale-title {display:block;font-size:11px;font-weight:500;margin-bottom:10px;color:var(--bluui-text-muted)}
|
|
194
|
+
.blu-chart__legend-gradient {height:8px;border-radius:4px}
|
|
195
|
+
.blu-chart__legend-range {display:flex;justify-content:space-between;gap:12px;margin-top:8px;font-variant-numeric:tabular-nums}
|
|
196
|
+
.blu-chart__legend[data-style=Compact] .blu-chart__legend-scale {padding:12px 16px;border:1px solid var(--bluui-border);border-radius:18px}
|
|
197
|
+
.blu-chart__legend[data-style=ValueList] .blu-chart__legend-scale {padding:10px 11px}
|
|
198
|
+
.blu-chart__legend[data-style=SummaryCards] .blu-chart__legend-scale {padding:16px;border:1px solid var(--bluui-border);border-radius:12px}
|
|
199
|
+
.blu-chart__legend-note {display:block;margin-top:10px}
|
|
200
|
+
@media(forced-colors:active) {.blu-chart__legend-entry{border:1px solid ButtonText!important}.blu-chart__legend-entry[aria-pressed=true],.blu-chart__legend .blu-chart__legend-chip.blu-chip--selected{outline:1px solid Highlight}.blu-chart__legend-marker svg{forced-color-adjust:none}.blu-chart__legend-gradient{background:Canvas!important;border:1px solid CanvasText}}
|
|
201
|
+
|
|
202
|
+
/* BluKavantUi_Community_Core → Chip — Style Sheet.
|
|
203
|
+
Canonical Block CSS. Paste the whole file into this Block only.
|
|
204
|
+
Theme variables remain inherited; selectors keep the existing widget classes. */
|
|
205
|
+
|
|
206
|
+
.blu-chip {
|
|
207
|
+
box-sizing: border-box;
|
|
208
|
+
min-width: 0;
|
|
209
|
+
font-family: var(--bluui-font, Inter, ui-sans-serif, system-ui, sans-serif);
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
/* Chip — root and default color
|
|
213
|
+
The root wraps two sibling controls: selectable label and optional remove.
|
|
214
|
+
The default appearance is neutral; the modifier classes below map the
|
|
215
|
+
shared ComponentColor records to theme tokens. */
|
|
216
|
+
.blu-chip {
|
|
217
|
+
--chip-bg: var(--bluui-secondary-soft, #f1f5f9);
|
|
218
|
+
--chip-fg: var(--bluui-secondary-text, #334155);
|
|
219
|
+
--chip-border: var(--bluui-border, #cbd5e1);
|
|
220
|
+
display: inline-flex;
|
|
221
|
+
align-items: stretch;
|
|
222
|
+
width: auto;
|
|
223
|
+
max-width: 100%;
|
|
224
|
+
border: 1px solid var(--chip-border);
|
|
225
|
+
border-radius: 999px;
|
|
226
|
+
background: var(--chip-bg);
|
|
227
|
+
color: var(--chip-fg);
|
|
228
|
+
vertical-align: middle;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
/* Shared ComponentColor palette. Presets use Ant Design filled colors;
|
|
232
|
+
statuses use solid colors. Primary/Secondary retain their existing roles. */
|
|
233
|
+
.blu-chip.blu-chip--default {
|
|
234
|
+
--chip-bg: var(--bluui-color-default-solid);
|
|
235
|
+
--chip-fg: var(--bluui-color-default-contrast);
|
|
236
|
+
--chip-border: var(--bluui-color-default-solid);
|
|
237
|
+
}
|
|
238
|
+
.blu-chip.blu-chip--primary {
|
|
239
|
+
--chip-bg: var(--bluui-color-primary-solid);
|
|
240
|
+
--chip-fg: var(--bluui-color-primary-contrast);
|
|
241
|
+
--chip-border: var(--bluui-color-primary-solid);
|
|
242
|
+
}
|
|
243
|
+
.blu-chip.blu-chip--secondary {
|
|
244
|
+
--chip-bg: var(--bluui-color-secondary-soft);
|
|
245
|
+
--chip-fg: var(--bluui-color-secondary-text);
|
|
246
|
+
--chip-border: var(--bluui-color-secondary-soft);
|
|
247
|
+
}
|
|
248
|
+
.blu-chip.blu-chip--success {
|
|
249
|
+
--chip-bg: var(--bluui-color-success-solid);
|
|
250
|
+
--chip-fg: var(--bluui-color-success-contrast);
|
|
251
|
+
--chip-border: var(--bluui-color-success-solid);
|
|
252
|
+
}
|
|
253
|
+
.blu-chip.blu-chip--processing {
|
|
254
|
+
--chip-bg: var(--bluui-color-processing-solid);
|
|
255
|
+
--chip-fg: var(--bluui-color-processing-contrast);
|
|
256
|
+
--chip-border: var(--bluui-color-processing-solid);
|
|
257
|
+
}
|
|
258
|
+
.blu-chip.blu-chip--warning {
|
|
259
|
+
--chip-bg: var(--bluui-color-warning-solid);
|
|
260
|
+
--chip-fg: var(--bluui-color-warning-contrast);
|
|
261
|
+
--chip-border: var(--bluui-color-warning-solid);
|
|
262
|
+
}
|
|
263
|
+
.blu-chip.blu-chip--error {
|
|
264
|
+
--chip-bg: var(--bluui-color-error-solid);
|
|
265
|
+
--chip-fg: var(--bluui-color-error-contrast);
|
|
266
|
+
--chip-border: var(--bluui-color-error-solid);
|
|
267
|
+
}
|
|
268
|
+
.blu-chip.blu-chip--danger {
|
|
269
|
+
--chip-bg: var(--bluui-color-danger-solid);
|
|
270
|
+
--chip-fg: var(--bluui-color-danger-contrast);
|
|
271
|
+
--chip-border: var(--bluui-color-danger-solid);
|
|
272
|
+
}
|
|
273
|
+
.blu-chip.blu-chip--magenta {
|
|
274
|
+
--chip-bg: var(--bluui-color-magenta-soft);
|
|
275
|
+
--chip-fg: var(--bluui-color-magenta-text);
|
|
276
|
+
--chip-border: var(--bluui-color-magenta-soft);
|
|
277
|
+
}
|
|
278
|
+
.blu-chip.blu-chip--red {
|
|
279
|
+
--chip-bg: var(--bluui-color-red-soft);
|
|
280
|
+
--chip-fg: var(--bluui-color-red-text);
|
|
281
|
+
--chip-border: var(--bluui-color-red-soft);
|
|
282
|
+
}
|
|
283
|
+
.blu-chip.blu-chip--volcano {
|
|
284
|
+
--chip-bg: var(--bluui-color-volcano-soft);
|
|
285
|
+
--chip-fg: var(--bluui-color-volcano-text);
|
|
286
|
+
--chip-border: var(--bluui-color-volcano-soft);
|
|
287
|
+
}
|
|
288
|
+
.blu-chip.blu-chip--orange {
|
|
289
|
+
--chip-bg: var(--bluui-color-orange-soft);
|
|
290
|
+
--chip-fg: var(--bluui-color-orange-text);
|
|
291
|
+
--chip-border: var(--bluui-color-orange-soft);
|
|
292
|
+
}
|
|
293
|
+
.blu-chip.blu-chip--gold {
|
|
294
|
+
--chip-bg: var(--bluui-color-gold-soft);
|
|
295
|
+
--chip-fg: var(--bluui-color-gold-text);
|
|
296
|
+
--chip-border: var(--bluui-color-gold-soft);
|
|
297
|
+
}
|
|
298
|
+
.blu-chip.blu-chip--lime {
|
|
299
|
+
--chip-bg: var(--bluui-color-lime-soft);
|
|
300
|
+
--chip-fg: var(--bluui-color-lime-text);
|
|
301
|
+
--chip-border: var(--bluui-color-lime-soft);
|
|
302
|
+
}
|
|
303
|
+
.blu-chip.blu-chip--green {
|
|
304
|
+
--chip-bg: var(--bluui-color-green-soft);
|
|
305
|
+
--chip-fg: var(--bluui-color-green-text);
|
|
306
|
+
--chip-border: var(--bluui-color-green-soft);
|
|
307
|
+
}
|
|
308
|
+
.blu-chip.blu-chip--cyan {
|
|
309
|
+
--chip-bg: var(--bluui-color-cyan-soft);
|
|
310
|
+
--chip-fg: var(--bluui-color-cyan-text);
|
|
311
|
+
--chip-border: var(--bluui-color-cyan-soft);
|
|
312
|
+
}
|
|
313
|
+
.blu-chip.blu-chip--blue {
|
|
314
|
+
--chip-bg: var(--bluui-color-blue-soft);
|
|
315
|
+
--chip-fg: var(--bluui-color-blue-text);
|
|
316
|
+
--chip-border: var(--bluui-color-blue-soft);
|
|
317
|
+
}
|
|
318
|
+
.blu-chip.blu-chip--geekblue {
|
|
319
|
+
--chip-bg: var(--bluui-color-geekblue-soft);
|
|
320
|
+
--chip-fg: var(--bluui-color-geekblue-text);
|
|
321
|
+
--chip-border: var(--bluui-color-geekblue-soft);
|
|
322
|
+
}
|
|
323
|
+
.blu-chip.blu-chip--purple {
|
|
324
|
+
--chip-bg: var(--bluui-color-purple-soft);
|
|
325
|
+
--chip-fg: var(--bluui-color-purple-text);
|
|
326
|
+
--chip-border: var(--bluui-color-purple-soft);
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
/* State modifiers are independent of color. Selection adds an outline-like
|
|
330
|
+
ring; disabled styling accompanies native disabled controls and action guards. */
|
|
331
|
+
.blu-chip--selected {
|
|
332
|
+
box-shadow: 0 0 0 2px var(--bluui-primary, #4f46e5);
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
.blu-chip--disabled {
|
|
336
|
+
opacity: .55;
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
/* Internal native Buttons use chip sizing instead of the standard Button shape.
|
|
340
|
+
The repeated root class keeps these rules above later .phone .btn Theme rules.
|
|
341
|
+
Reset only these two scoped controls; preserve other BluUI Button styles. */
|
|
342
|
+
.blu-chip.blu-chip :is(.blu-chip__select, .blu-chip__remove) {
|
|
343
|
+
appearance: none;
|
|
344
|
+
display: inline-flex;
|
|
345
|
+
align-items: center;
|
|
346
|
+
justify-content: center;
|
|
347
|
+
width: auto;
|
|
348
|
+
min-height: 36px;
|
|
349
|
+
height: auto;
|
|
350
|
+
margin: 0;
|
|
351
|
+
border: 0;
|
|
352
|
+
border-radius: 999px;
|
|
353
|
+
padding: 7px 12px;
|
|
354
|
+
background: transparent;
|
|
355
|
+
color: inherit;
|
|
356
|
+
font: inherit;
|
|
357
|
+
font-size: 13px;
|
|
358
|
+
line-height: 1.4;
|
|
359
|
+
box-shadow: none;
|
|
360
|
+
cursor: pointer;
|
|
361
|
+
white-space: normal;
|
|
362
|
+
overflow-wrap: anywhere;
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
/* The separate remove control retains a usable target even for a short label. */
|
|
366
|
+
.blu-chip.blu-chip .blu-chip__remove {
|
|
367
|
+
min-width: 36px;
|
|
368
|
+
padding: 6px 10px;
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
/* Nonselectable chips display this plain label beside the optional remove button. */
|
|
372
|
+
.blu-chip .blu-chip__label {
|
|
373
|
+
display: inline-flex;
|
|
374
|
+
align-items: center;
|
|
375
|
+
padding: 7px 12px;
|
|
376
|
+
font-size: 13px;
|
|
377
|
+
overflow-wrap: anywhere;
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
.blu-chip.blu-chip :is(.blu-chip__select, .blu-chip__remove):disabled {
|
|
381
|
+
cursor: default;
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
/* Keyboard focus stays visible on the specific control, independently of selection. */
|
|
385
|
+
.blu-chip.blu-chip :is(.blu-chip__select, .blu-chip__remove):focus-visible {
|
|
386
|
+
outline: 2px solid var(--bluui-primary, #4f46e5);
|
|
387
|
+
outline-offset: 3px;
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
.blu-chip.blu-chip :is(.blu-chip__select, .blu-chip__remove):hover:not(:disabled) {
|
|
391
|
+
background: color-mix(in srgb, currentColor 8%, transparent);
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
/* BluKavantUi_Community_Core → Skeleton — Style Sheet.
|
|
395
|
+
Canonical Block CSS. Paste the whole file into this Block only.
|
|
396
|
+
Theme variables remain inherited; selectors keep the existing widget classes. */
|
|
397
|
+
|
|
398
|
+
.blu-skeleton {
|
|
399
|
+
box-sizing: border-box;
|
|
400
|
+
min-width: 0;
|
|
401
|
+
font-family: var(--bluui-font, Inter, ui-sans-serif, system-ui, sans-serif);
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
/* Skeleton — decorative loading shapes
|
|
405
|
+
The native Block supplies width/height through its style Attribute. For Circle,
|
|
406
|
+
the Block uses HeightPixels for both dimensions to prevent an oval. */
|
|
407
|
+
.blu-skeleton {
|
|
408
|
+
display: block;
|
|
409
|
+
position: relative;
|
|
410
|
+
overflow: hidden;
|
|
411
|
+
max-width: 100%;
|
|
412
|
+
-servicestudio-height: 16px;
|
|
413
|
+
-servicestudio-min-width: 120px;
|
|
414
|
+
-servicestudio-background-color: var(--bluui-skeleton-base, #e2e8f0);
|
|
415
|
+
-servicestudio-border-radius: 4px;
|
|
416
|
+
background: var(--bluui-skeleton-base, #e2e8f0);
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
.blu-skeleton--text {
|
|
420
|
+
border-radius: 4px;
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
.blu-skeleton--rectangle {
|
|
424
|
+
border-radius: 10px;
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
.blu-skeleton--circle {
|
|
428
|
+
border-radius: 50%;
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
/* Optional shimmer stops after 4.8 seconds. The static loading shape remains.
|
|
432
|
+
This prevents indefinite nonessential movement alongside loaded content. */
|
|
433
|
+
.blu-skeleton--animated::after {
|
|
434
|
+
content: '';
|
|
435
|
+
position: absolute;
|
|
436
|
+
inset: 0;
|
|
437
|
+
background: linear-gradient(90deg, transparent, var(--bluui-skeleton-shine, rgb(255 255 255 / 65%)), transparent);
|
|
438
|
+
transform: translateX(-100%);
|
|
439
|
+
animation: blu-skeleton-wave 1.6s ease-in-out 3;
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
@keyframes blu-skeleton-wave {
|
|
443
|
+
100% {
|
|
444
|
+
transform: translateX(100%);
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
/* Respect the user's motion preference even when IsAnimated is True.
|
|
449
|
+
The base shape remains visible when the animated overlay is removed. */
|
|
450
|
+
@media (prefers-reduced-motion: reduce) {
|
|
451
|
+
.blu-skeleton--animated::after {
|
|
452
|
+
animation: none;
|
|
453
|
+
display: none;
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
|
|
458
|
+
/* Visible default size only in the Service Studio canvas. */
|
|
459
|
+
.blu-skeleton {
|
|
460
|
+
-servicestudio-width: 180px;
|
|
461
|
+
-servicestudio-height: 20px;
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
/* The opt-in native motion adapter owns the shimmer. Avoid a second legacy
|
|
465
|
+
wave, including when the adapter is Reduced or Off. Removing the adapter
|
|
466
|
+
restores the existing IsAnimated behavior without changing its contract. */
|
|
467
|
+
.blu-skeleton[data-blu-native-motion="loading-skeleton"]::after {
|
|
468
|
+
animation: none !important;
|
|
469
|
+
display: none !important;
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
/* BluKavantUI Charts Community / Sparkline. SVG scales with the container; colors inherit the
|
|
473
|
+
shared palette. Values are always exposed through an accessible summary. */
|
|
474
|
+
.blu-sparkline { min-width: 0; width: 100%; color: var(--bluui-text); }
|
|
475
|
+
.blu-sparkline svg { display: block; width: 100%; height: var(--blu-sparkline-height, 64px); overflow: visible; }
|
|
476
|
+
.blu-sparkline__line { fill: none; stroke: var(--blu-sparkline-color); stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
|
|
477
|
+
.blu-sparkline__area { fill: var(--blu-sparkline-color); opacity: 1; }
|
|
478
|
+
.blu-sparkline__point { fill: var(--blu-sparkline-color); }
|
|
479
|
+
.blu-sparkline__empty { margin: 0; min-height: var(--blu-sparkline-height, 64px); display: flex; align-items: center; color: var(--bluui-text-muted); }
|
|
480
|
+
.blu-sparkline__data { margin-top: 8px; font-size: 13px; }
|
|
481
|
+
.blu-sparkline__data summary { width: fit-content; padding: 6px 0; cursor: pointer; color: var(--bluui-color-primary-text); }
|
|
482
|
+
.blu-sparkline__data table { border-collapse: collapse; width: 100%; margin-top: 8px; }
|
|
483
|
+
.blu-sparkline__data :is(th,td) { padding: 6px 12px; border-bottom: 1px solid var(--bluui-border); text-align: start; }
|
|
484
|
+
.blu-sparkline__data summary:focus-visible { outline: 2px solid var(--bluui-primary); outline-offset: 3px; }
|
|
485
|
+
|
|
486
|
+
|
|
487
|
+
/* A small point and its soft halo travel along the line, easing into the end. */
|
|
488
|
+
.blu-sparkline__traveler { pointer-events: none; fill: var(--blu-sparkline-color); }
|
|
489
|
+
.blu-sparkline__halo { opacity: .18; filter: blur(1.5px); }
|
|
490
|
+
.blu-sparkline__ring { opacity: .12; }
|
|
491
|
+
.blu-sparkline__cursor { stroke: none; }
|
|
492
|
+
.blu-sparkline__pause { margin-top: 8px; padding: 5px 8px; min-height: 28px; border: 1px solid var(--bluui-border); border-radius: 5px; background: var(--bluui-surface); color: var(--bluui-text-muted); font: inherit; font-size: 11px; cursor: pointer; }
|
|
493
|
+
.blu-sparkline__pause:focus-visible { outline: 2px solid var(--bluui-primary); outline-offset: 3px; }
|
|
494
|
+
@media (prefers-reduced-motion: reduce), (forced-colors: active) {
|
|
495
|
+
.blu-sparkline__traveler { display: none; }
|
|
496
|
+
}
|