@trdrs/quickcharts 4.1.0 → 5.0.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 +94 -0
- package/README.md +276 -59
- package/dist/adapters/rest.d.ts +4 -4
- package/dist/adapters/rest.js +1 -1
- package/dist/adapters/rest.js.map +1 -1
- package/dist/ar-TG26ZCCE.js +1322 -0
- package/dist/ar-TG26ZCCE.js.map +1 -0
- package/dist/{assets-BF-NDyHl.d.ts → assets-DF3nozNV.d.ts} +161 -17
- package/dist/ca_ES-WJWH5BXU.js +1322 -0
- package/dist/ca_ES-WJWH5BXU.js.map +1 -0
- package/dist/{chunk-D3S26ARP.js → chunk-EXJAJZTN.js} +1 -1
- package/dist/chunk-EXJAJZTN.js.map +1 -0
- package/dist/{chunk-TBOVLJAK.js → chunk-Q3DCXQDW.js} +85 -19
- package/dist/chunk-Q3DCXQDW.js.map +1 -0
- package/dist/de-SUDTTPQ3.js +1322 -0
- package/dist/de-SUDTTPQ3.js.map +1 -0
- package/dist/drawings.d.ts +3 -3
- package/dist/drawings.js +1 -1
- package/dist/es-FOBXUK2X.js +1322 -0
- package/dist/es-FOBXUK2X.js.map +1 -0
- package/dist/feature-manifest.json +105 -9
- package/dist/fr-7KQC4IJH.js +1322 -0
- package/dist/fr-7KQC4IJH.js.map +1 -0
- package/dist/he_IL-2T6XBA6D.js +1322 -0
- package/dist/he_IL-2T6XBA6D.js.map +1 -0
- package/dist/id_ID-SI25N57C.js +1322 -0
- package/dist/id_ID-SI25N57C.js.map +1 -0
- package/dist/index.d.ts +862 -103
- package/dist/index.js +12251 -7910
- package/dist/index.js.map +1 -1
- package/dist/it-PMSTWZDL.js +1322 -0
- package/dist/it-PMSTWZDL.js.map +1 -0
- package/dist/ja-PABDRAXV.js +1322 -0
- package/dist/ja-PABDRAXV.js.map +1 -0
- package/dist/ko-JHRYYFCV.js +1322 -0
- package/dist/ko-JHRYYFCV.js.map +1 -0
- package/dist/ms_MY-U4EE5Q4V.js +1322 -0
- package/dist/ms_MY-U4EE5Q4V.js.map +1 -0
- package/dist/pl-4HCG3T3J.js +1322 -0
- package/dist/pl-4HCG3T3J.js.map +1 -0
- package/dist/pt-6LTNN653.js +1322 -0
- package/dist/pt-6LTNN653.js.map +1 -0
- package/dist/quickcharts.css +586 -198
- package/dist/{resources-C0cYryO9.d.ts → resources-XglhzzW0.d.ts} +4 -2
- package/dist/rest-openapi.json +16 -11
- package/dist/ru-LFHCSDBV.js +1322 -0
- package/dist/ru-LFHCSDBV.js.map +1 -0
- package/dist/sv-4XVUXYK6.js +1322 -0
- package/dist/sv-4XVUXYK6.js.map +1 -0
- package/dist/{symbols-6V22WaRX.d.ts → symbols-DdHLHQFC.d.ts} +77 -8
- package/dist/symbols.d.ts +1 -1
- package/dist/th-WM2PVA24.js +1322 -0
- package/dist/th-WM2PVA24.js.map +1 -0
- package/dist/theme-manifest.json +105 -21
- package/dist/tr-HMAZXSJM.js +1322 -0
- package/dist/tr-HMAZXSJM.js.map +1 -0
- package/dist/vi-ITFBV5B7.js +1322 -0
- package/dist/vi-ITFBV5B7.js.map +1 -0
- package/dist/zh-ZGU2RI7K.js +1322 -0
- package/dist/zh-ZGU2RI7K.js.map +1 -0
- package/dist/zh_TW-PNINSQ6F.js +1322 -0
- package/dist/zh_TW-PNINSQ6F.js.map +1 -0
- package/package.json +1 -1
- package/dist/ar-VILLYPAA.js +0 -1181
- package/dist/ar-VILLYPAA.js.map +0 -1
- package/dist/ca_ES-EJXLAXOA.js +0 -1181
- package/dist/ca_ES-EJXLAXOA.js.map +0 -1
- package/dist/chunk-D3S26ARP.js.map +0 -1
- package/dist/chunk-TBOVLJAK.js.map +0 -1
- package/dist/de-PHID4SVN.js +0 -1181
- package/dist/de-PHID4SVN.js.map +0 -1
- package/dist/es-KD4FBLOP.js +0 -1181
- package/dist/es-KD4FBLOP.js.map +0 -1
- package/dist/fr-KTTX3FF3.js +0 -1181
- package/dist/fr-KTTX3FF3.js.map +0 -1
- package/dist/he_IL-Z3DXMAKZ.js +0 -1181
- package/dist/he_IL-Z3DXMAKZ.js.map +0 -1
- package/dist/id_ID-FFX6X4C5.js +0 -1181
- package/dist/id_ID-FFX6X4C5.js.map +0 -1
- package/dist/it-X2GFCLGU.js +0 -1181
- package/dist/it-X2GFCLGU.js.map +0 -1
- package/dist/ja-TG3WO2KH.js +0 -1181
- package/dist/ja-TG3WO2KH.js.map +0 -1
- package/dist/ko-4HHHO7KV.js +0 -1181
- package/dist/ko-4HHHO7KV.js.map +0 -1
- package/dist/ms_MY-HPVQKVPY.js +0 -1181
- package/dist/ms_MY-HPVQKVPY.js.map +0 -1
- package/dist/pl-2W2HP34O.js +0 -1181
- package/dist/pl-2W2HP34O.js.map +0 -1
- package/dist/pt-XQUBSXO7.js +0 -1181
- package/dist/pt-XQUBSXO7.js.map +0 -1
- package/dist/ru-XKFQPFDM.js +0 -1181
- package/dist/ru-XKFQPFDM.js.map +0 -1
- package/dist/sv-ZMEGAPCR.js +0 -1181
- package/dist/sv-ZMEGAPCR.js.map +0 -1
- package/dist/th-4735BUT4.js +0 -1181
- package/dist/th-4735BUT4.js.map +0 -1
- package/dist/tr-PG3CW2L3.js +0 -1181
- package/dist/tr-PG3CW2L3.js.map +0 -1
- package/dist/vi-YPRIAJ33.js +0 -1181
- package/dist/vi-YPRIAJ33.js.map +0 -1
- package/dist/zh-RVHEWNSW.js +0 -1181
- package/dist/zh-RVHEWNSW.js.map +0 -1
- package/dist/zh_TW-ZFJMDA64.js +0 -1181
- package/dist/zh_TW-ZFJMDA64.js.map +0 -1
package/dist/quickcharts.css
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
[data-qc-theme="light"] {
|
|
13
13
|
--qc-canvas-background: #ffffff;
|
|
14
14
|
--qc-canvas-paneBorder: #ebebeb;
|
|
15
|
+
--qc-canvas-watermark: rgba(80, 83, 94, 0.2);
|
|
15
16
|
--qc-chrome-border: #ebebeb;
|
|
16
17
|
--qc-chrome-borderStrong: #8c8c8c;
|
|
17
18
|
--qc-chrome-caret: #707070;
|
|
@@ -40,6 +41,8 @@
|
|
|
40
41
|
--qc-control-onPressed: #707070;
|
|
41
42
|
--qc-control-outline: #2e2e2e;
|
|
42
43
|
--qc-control-selectEdgeHover: #a8a8a8;
|
|
44
|
+
--qc-control-tipMark: #a8a8a8;
|
|
45
|
+
--qc-control-tipMarkHover: #707070;
|
|
43
46
|
--qc-drawing-fill: rgba(41, 98, 255, 0.15);
|
|
44
47
|
--qc-drawing-handle: #ffffff;
|
|
45
48
|
--qc-drawing-line: #2962ff;
|
|
@@ -64,17 +67,19 @@
|
|
|
64
67
|
--qc-overlay-separator: #ebebeb;
|
|
65
68
|
--qc-overlay-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
|
|
66
69
|
--qc-overlay-surface: #ffffff;
|
|
70
|
+
--qc-overlay-tooltip: #3d3d3d;
|
|
71
|
+
--qc-overlay-tooltipInk: #f2f2f2;
|
|
67
72
|
--qc-scale-background: #ffffff;
|
|
68
|
-
--qc-scale-border:
|
|
69
|
-
--qc-scale-crosshair: #
|
|
70
|
-
--qc-scale-crosshairLabelBackground: #
|
|
73
|
+
--qc-scale-border: rgba(46, 46, 46, 0);
|
|
74
|
+
--qc-scale-crosshair: #9c9c9c;
|
|
75
|
+
--qc-scale-crosshairLabelBackground: #0f0f0f;
|
|
71
76
|
--qc-scale-crosshairLabelText: #ffffff;
|
|
72
|
-
--qc-scale-grid: rgba(
|
|
73
|
-
--qc-scale-sessionAfterHours: rgba(
|
|
77
|
+
--qc-scale-grid: rgba(46, 46, 46, 0.2);
|
|
78
|
+
--qc-scale-sessionAfterHours: rgba(41, 98, 255, 0.08);
|
|
74
79
|
--qc-scale-sessionClosed: rgba(0, 0, 0, 0.05);
|
|
75
|
-
--qc-scale-sessionExtended: rgba(
|
|
76
|
-
--qc-scale-sessionPreMarket: rgba(
|
|
77
|
-
--qc-scale-text: #
|
|
80
|
+
--qc-scale-sessionExtended: rgba(213, 0, 249, 0.08);
|
|
81
|
+
--qc-scale-sessionPreMarket: rgba(255, 152, 0, 0.08);
|
|
82
|
+
--qc-scale-text: #0f0f0f;
|
|
78
83
|
--qc-series-down: #f23645;
|
|
79
84
|
--qc-series-neutral: #787b86;
|
|
80
85
|
--qc-series-up: #089981;
|
|
@@ -97,6 +102,7 @@
|
|
|
97
102
|
--qc-status-sessionOpen: #22c55e;
|
|
98
103
|
--qc-status-sessionPreMarket: #4c98fb;
|
|
99
104
|
--qc-status-warning: #ac6600;
|
|
105
|
+
--qc-text-caption: #707070;
|
|
100
106
|
--qc-text-disabled: #b8b8b8;
|
|
101
107
|
--qc-text-fontFamily: -apple-system, BlinkMacSystemFont, "Trebuchet MS", Roboto, Ubuntu, sans-serif;
|
|
102
108
|
--qc-text-fontSizeAxis: 13px;
|
|
@@ -116,6 +122,7 @@
|
|
|
116
122
|
[data-qc-theme="dark"] {
|
|
117
123
|
--qc-canvas-background: #0f0f0f;
|
|
118
124
|
--qc-canvas-paneBorder: #2e2e2e;
|
|
125
|
+
--qc-canvas-watermark: rgba(80, 83, 94, 0.3);
|
|
119
126
|
--qc-chrome-border: #2e2e2e;
|
|
120
127
|
--qc-chrome-borderStrong: #707070;
|
|
121
128
|
--qc-chrome-caret: #8c8c8c;
|
|
@@ -144,6 +151,8 @@
|
|
|
144
151
|
--qc-control-onPressed: #8c8c8c;
|
|
145
152
|
--qc-control-outline: #ffffff;
|
|
146
153
|
--qc-control-selectEdgeHover: #808080;
|
|
154
|
+
--qc-control-tipMark: #575757;
|
|
155
|
+
--qc-control-tipMarkHover: #8c8c8c;
|
|
147
156
|
--qc-drawing-fill: rgba(41, 98, 255, 0.15);
|
|
148
157
|
--qc-drawing-handle: #0f0f0f;
|
|
149
158
|
--qc-drawing-line: #2962ff;
|
|
@@ -168,17 +177,19 @@
|
|
|
168
177
|
--qc-overlay-separator: #4a4a4a;
|
|
169
178
|
--qc-overlay-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);
|
|
170
179
|
--qc-overlay-surface: #1f1f1f;
|
|
180
|
+
--qc-overlay-tooltip: #3d3d3d;
|
|
181
|
+
--qc-overlay-tooltipInk: #f2f2f2;
|
|
171
182
|
--qc-scale-background: #0f0f0f;
|
|
172
|
-
--qc-scale-border:
|
|
173
|
-
--qc-scale-crosshair: #
|
|
174
|
-
--qc-scale-crosshairLabelBackground: #
|
|
175
|
-
--qc-scale-crosshairLabelText: #
|
|
176
|
-
--qc-scale-grid: rgba(
|
|
177
|
-
--qc-scale-sessionAfterHours: rgba(
|
|
183
|
+
--qc-scale-border: rgba(242, 242, 242, 0);
|
|
184
|
+
--qc-scale-crosshair: #9c9c9c;
|
|
185
|
+
--qc-scale-crosshairLabelBackground: #3d3d3d;
|
|
186
|
+
--qc-scale-crosshairLabelText: #ffffff;
|
|
187
|
+
--qc-scale-grid: rgba(242, 242, 242, 0.2);
|
|
188
|
+
--qc-scale-sessionAfterHours: rgba(41, 98, 255, 0.08);
|
|
178
189
|
--qc-scale-sessionClosed: rgba(0, 0, 0, 0.22);
|
|
179
|
-
--qc-scale-sessionExtended: rgba(
|
|
180
|
-
--qc-scale-sessionPreMarket: rgba(
|
|
181
|
-
--qc-scale-text: #
|
|
190
|
+
--qc-scale-sessionExtended: rgba(213, 0, 249, 0.08);
|
|
191
|
+
--qc-scale-sessionPreMarket: rgba(255, 152, 0, 0.08);
|
|
192
|
+
--qc-scale-text: #b8b8b8;
|
|
182
193
|
--qc-series-down: #f23645;
|
|
183
194
|
--qc-series-neutral: #787b86;
|
|
184
195
|
--qc-series-up: #089981;
|
|
@@ -201,6 +212,7 @@
|
|
|
201
212
|
--qc-status-sessionOpen: #22c55e;
|
|
202
213
|
--qc-status-sessionPreMarket: #4c98fb;
|
|
203
214
|
--qc-status-warning: #ff9800;
|
|
215
|
+
--qc-text-caption: #8c8c8c;
|
|
204
216
|
--qc-text-disabled: #575757;
|
|
205
217
|
--qc-text-fontFamily: -apple-system, BlinkMacSystemFont, "Trebuchet MS", Roboto, Ubuntu, sans-serif;
|
|
206
218
|
--qc-text-fontSizeAxis: 13px;
|
|
@@ -819,9 +831,11 @@
|
|
|
819
831
|
|
|
820
832
|
/* Legend --------------------------------------------------------------------------------------- */
|
|
821
833
|
|
|
834
|
+
/* The legend stands 4px into the main pane, which the chart writes the top of as
|
|
835
|
+
* `--qcd-legend-top` once a viewer has moved it below another pane. */
|
|
822
836
|
[data-qc-theme] .qc-legend {
|
|
823
837
|
position: absolute;
|
|
824
|
-
top: 4px;
|
|
838
|
+
top: calc(4px + var(--qcd-legend-top, 0px));
|
|
825
839
|
inset-inline-end: 64px;
|
|
826
840
|
z-index: 3;
|
|
827
841
|
display: flex;
|
|
@@ -858,6 +872,10 @@
|
|
|
858
872
|
padding-inline: 4px;
|
|
859
873
|
border-radius: 4px;
|
|
860
874
|
pointer-events: auto;
|
|
875
|
+
/* The status line's backdrop: a plain fill of the chart's background at the setting's opacity,
|
|
876
|
+
* which the chart writes on the legend, so the bars under each part stand back. Unwritten, the
|
|
877
|
+
* legend stands on the bars. The reading and the indicator rows take the same fill. */
|
|
878
|
+
background-color: var(--qcd-legend-backdrop);
|
|
861
879
|
}
|
|
862
880
|
|
|
863
881
|
/* A band under the pointer reads as one solid chip over the candles: the canvas' own fill, so the
|
|
@@ -945,6 +963,7 @@
|
|
|
945
963
|
font-size: var(--qc-text-fontSizeAxis);
|
|
946
964
|
font-weight: 400;
|
|
947
965
|
font-variant-numeric: tabular-nums;
|
|
966
|
+
background-color: var(--qcd-legend-backdrop);
|
|
948
967
|
}
|
|
949
968
|
|
|
950
969
|
[data-qc-theme] .qc-legend-ohlc {
|
|
@@ -993,6 +1012,55 @@
|
|
|
993
1012
|
color: var(--qc-text-primary);
|
|
994
1013
|
}
|
|
995
1014
|
|
|
1015
|
+
/* The bar's volume after its change: the quiet mark, then the number in the direction's ink. */
|
|
1016
|
+
[data-qc-theme] .qc-legend-volume {
|
|
1017
|
+
display: inline-flex;
|
|
1018
|
+
align-items: center;
|
|
1019
|
+
}
|
|
1020
|
+
|
|
1021
|
+
[data-qc-theme] .qc-legend-volume > .qc-legend-mark {
|
|
1022
|
+
color: var(--qc-text-muted);
|
|
1023
|
+
margin-inline-end: 4px;
|
|
1024
|
+
}
|
|
1025
|
+
|
|
1026
|
+
[data-qc-theme] .qc-legend-quote[data-qc-direction='up'] .qc-legend-volume > :last-child {
|
|
1027
|
+
color: var(--qc-status-positive);
|
|
1028
|
+
}
|
|
1029
|
+
|
|
1030
|
+
[data-qc-theme] .qc-legend-quote[data-qc-direction='down'] .qc-legend-volume > :last-child {
|
|
1031
|
+
color: var(--qc-status-negative);
|
|
1032
|
+
}
|
|
1033
|
+
|
|
1034
|
+
/* The rows extensions place in the legend, under the reading and above the indicator rows, at the
|
|
1035
|
+
* header's own inset. The element in each is the extension's and takes the pointer; the slot
|
|
1036
|
+
* wears the status line's backdrop, as the legend's own parts do. */
|
|
1037
|
+
[data-qc-theme] .qc-legend-slots {
|
|
1038
|
+
display: flex;
|
|
1039
|
+
flex-direction: column;
|
|
1040
|
+
align-items: flex-start;
|
|
1041
|
+
padding-inline-start: 9px;
|
|
1042
|
+
pointer-events: none;
|
|
1043
|
+
}
|
|
1044
|
+
|
|
1045
|
+
[data-qc-theme] .qc-legend-slot {
|
|
1046
|
+
pointer-events: auto;
|
|
1047
|
+
background-color: var(--qcd-legend-backdrop);
|
|
1048
|
+
}
|
|
1049
|
+
|
|
1050
|
+
/* The change since the previous session's close, last in the reading, in its own direction's ink
|
|
1051
|
+
* rather than the read bar's. */
|
|
1052
|
+
[data-qc-theme] .qc-legend-day-change {
|
|
1053
|
+
color: var(--qc-text-primary);
|
|
1054
|
+
}
|
|
1055
|
+
|
|
1056
|
+
[data-qc-theme] .qc-legend-day-change[data-qc-tone='up'] {
|
|
1057
|
+
color: var(--qc-status-positive);
|
|
1058
|
+
}
|
|
1059
|
+
|
|
1060
|
+
[data-qc-theme] .qc-legend-day-change[data-qc-tone='down'] {
|
|
1061
|
+
color: var(--qc-status-negative);
|
|
1062
|
+
}
|
|
1063
|
+
|
|
996
1064
|
[data-qc-theme] .qc-legend-rows {
|
|
997
1065
|
/* Rows hug their own content: the chip a hovered row takes must be the width of the row, not
|
|
998
1066
|
* of the chart. They start at the same 9px inset the header does. */
|
|
@@ -1074,6 +1142,7 @@
|
|
|
1074
1142
|
font-weight: 400;
|
|
1075
1143
|
border-radius: 4px;
|
|
1076
1144
|
pointer-events: auto;
|
|
1145
|
+
background-color: var(--qcd-legend-backdrop);
|
|
1077
1146
|
}
|
|
1078
1147
|
|
|
1079
1148
|
/* The same chip the identity band takes, on the same terms. */
|
|
@@ -1286,6 +1355,19 @@
|
|
|
1286
1355
|
margin: 6px 0;
|
|
1287
1356
|
}
|
|
1288
1357
|
|
|
1358
|
+
/* The price menu the scale's plus opens: the context menu's box as wide as its widest row, so a
|
|
1359
|
+
* label shows whole and ellipsizes only where the viewport cannot hold its row. A shortcut stands
|
|
1360
|
+
* 10px after its label, in 12px. */
|
|
1361
|
+
[data-qc-theme] .qc-menu.qc-price-menu {
|
|
1362
|
+
width: max-content;
|
|
1363
|
+
max-width: calc(100vw - 16px);
|
|
1364
|
+
}
|
|
1365
|
+
|
|
1366
|
+
[data-qc-theme] .qc-menu.qc-price-menu .qc-menu-hint {
|
|
1367
|
+
padding-inline: 4px 0;
|
|
1368
|
+
font-size: 12px;
|
|
1369
|
+
}
|
|
1370
|
+
|
|
1289
1371
|
/* Indicator inputs ----------------------------------------------------------------------------- */
|
|
1290
1372
|
|
|
1291
1373
|
[data-qc-theme] .qc-inputs {
|
|
@@ -1514,6 +1596,7 @@
|
|
|
1514
1596
|
}
|
|
1515
1597
|
|
|
1516
1598
|
[data-qc-theme] .qc-nav[data-qc-near],
|
|
1599
|
+
[data-qc-theme] .qc-nav[data-qc-visibility='always'],
|
|
1517
1600
|
[data-qc-theme] .qc-nav:hover,
|
|
1518
1601
|
[data-qc-theme] .qc-nav:focus-within {
|
|
1519
1602
|
opacity: 1;
|
|
@@ -1567,8 +1650,8 @@
|
|
|
1567
1650
|
* the chart chrome layer 5, notices 6, the overlay layer 20, a menu panel 21, a dialog scrim 22.
|
|
1568
1651
|
* The replay transport takes no rung: it is an in-flow row of the root's column, not a float.
|
|
1569
1652
|
* The chart chrome layer is a stacking context of its own, and the drawing surfaces inside it
|
|
1570
|
-
* keep their own rungs: the drawing toolbar on 3,
|
|
1571
|
-
* editor 8, a flyout or palette 9, a drawing dialog's scrim 10.
|
|
1653
|
+
* keep their own rungs: the drawing toolbar on 3, a time-scale mark's tooltip 6, the floating
|
|
1654
|
+
* bars 7, the inline text editor 8, a flyout or palette 9, a drawing dialog's scrim 10.
|
|
1572
1655
|
* A host that must stack something above the widget gives its own element a stacking context
|
|
1573
1656
|
* above the root; nothing here reaches the top of the integer range. */
|
|
1574
1657
|
[data-qc-theme] .qc-overlays {
|
|
@@ -1942,6 +2025,24 @@
|
|
|
1942
2025
|
padding: 0 6px 6px;
|
|
1943
2026
|
}
|
|
1944
2027
|
|
|
2028
|
+
/* A hovered time-scale mark's words: 13 on 18 on the tooltip fill, its foot 4px above the mark,
|
|
2029
|
+
* never taking the pointer, on the chart chrome layer's rung 6. */
|
|
2030
|
+
[data-qc-theme] .qc-chrome > .qc-mark-tooltip {
|
|
2031
|
+
position: absolute;
|
|
2032
|
+
z-index: 6;
|
|
2033
|
+
box-sizing: border-box;
|
|
2034
|
+
max-width: 310px;
|
|
2035
|
+
padding: 3px 8px;
|
|
2036
|
+
color: var(--qc-overlay-tooltipInk);
|
|
2037
|
+
font-size: 13px;
|
|
2038
|
+
line-height: 18px;
|
|
2039
|
+
white-space: pre-line;
|
|
2040
|
+
background: var(--qc-overlay-tooltip);
|
|
2041
|
+
border-radius: 2px;
|
|
2042
|
+
transform: translateY(-100%);
|
|
2043
|
+
pointer-events: none;
|
|
2044
|
+
}
|
|
2045
|
+
|
|
1945
2046
|
/* The inline text editor over the pane, the glyph picker and the image picker. */
|
|
1946
2047
|
|
|
1947
2048
|
/* The text editor over the pane. Its place, size and type are written by the editor, because they
|
|
@@ -5485,6 +5586,16 @@
|
|
|
5485
5586
|
background: transparent;
|
|
5486
5587
|
}
|
|
5487
5588
|
|
|
5589
|
+
/* A dialog the chart stays live behind lets the pointer through its backdrop: only the box and what
|
|
5590
|
+
* it raises over the backdrop (its lists, popovers and tips) take the pointer. */
|
|
5591
|
+
[data-qc-theme] .qc-dialog-scrim[data-qc-pass='true'] {
|
|
5592
|
+
pointer-events: none;
|
|
5593
|
+
}
|
|
5594
|
+
|
|
5595
|
+
[data-qc-theme] .qc-dialog-scrim[data-qc-pass='true'] > * {
|
|
5596
|
+
pointer-events: auto;
|
|
5597
|
+
}
|
|
5598
|
+
|
|
5488
5599
|
[data-qc-theme] .qc-dialog {
|
|
5489
5600
|
display: flex;
|
|
5490
5601
|
flex-direction: column;
|
|
@@ -6348,6 +6459,124 @@
|
|
|
6348
6459
|
}
|
|
6349
6460
|
}
|
|
6350
6461
|
|
|
6462
|
+
/* The controls that stand on the main price scale, over the renderer's own drawing of it. The chart
|
|
6463
|
+
* places each over the scale's box as it measures it and writes `--qcd-chart-background`, the
|
|
6464
|
+
* chart's own background, which each control stands on. */
|
|
6465
|
+
|
|
6466
|
+
/* The auto-scale and logarithmic buttons at the foot of the scale: two 20x22 buttons 4px apart, a
|
|
6467
|
+
* letter each. Off, a button is a 1px outline on the chart's background; on, it is a held mode,
|
|
6468
|
+
* filled in the emphasis fill a checked box wears with its letter in the inverse ink. */
|
|
6469
|
+
[data-qc-theme] .qc-scale-modes {
|
|
6470
|
+
position: absolute;
|
|
6471
|
+
z-index: 4;
|
|
6472
|
+
display: flex;
|
|
6473
|
+
gap: 4px;
|
|
6474
|
+
pointer-events: auto;
|
|
6475
|
+
}
|
|
6476
|
+
|
|
6477
|
+
[data-qc-theme] .qc-scale-mode {
|
|
6478
|
+
box-sizing: border-box;
|
|
6479
|
+
display: inline-flex;
|
|
6480
|
+
width: 20px;
|
|
6481
|
+
height: 22px;
|
|
6482
|
+
align-items: center;
|
|
6483
|
+
justify-content: center;
|
|
6484
|
+
padding: 0;
|
|
6485
|
+
font: inherit;
|
|
6486
|
+
font-size: 12px;
|
|
6487
|
+
line-height: 1;
|
|
6488
|
+
color: var(--qc-text-primary);
|
|
6489
|
+
background: var(--qcd-chart-background, var(--qc-canvas-background));
|
|
6490
|
+
border: 1px solid var(--qc-overlay-separator);
|
|
6491
|
+
border-radius: 4px;
|
|
6492
|
+
cursor: pointer;
|
|
6493
|
+
}
|
|
6494
|
+
|
|
6495
|
+
[data-qc-theme] .qc-scale-mode:hover {
|
|
6496
|
+
background: var(--qc-state-hover);
|
|
6497
|
+
}
|
|
6498
|
+
|
|
6499
|
+
[data-qc-theme] .qc-scale-mode[aria-pressed='true'] {
|
|
6500
|
+
color: var(--qc-text-inverse);
|
|
6501
|
+
background: var(--qc-control-on);
|
|
6502
|
+
border-color: var(--qc-control-on);
|
|
6503
|
+
}
|
|
6504
|
+
|
|
6505
|
+
/* The box at the top of the scale naming what its prices are in: at least 64x26, four pixels in from
|
|
6506
|
+
* the scale's top and its side away from the plot, on the chart's background inside a 1px border
|
|
6507
|
+
* with a radius of 4, in 12px text. It takes no pointer, so the scale under it still drags. */
|
|
6508
|
+
[data-qc-theme] .qc-scale-unit {
|
|
6509
|
+
position: absolute;
|
|
6510
|
+
z-index: 4;
|
|
6511
|
+
box-sizing: border-box;
|
|
6512
|
+
display: flex;
|
|
6513
|
+
min-width: 64px;
|
|
6514
|
+
height: 26px;
|
|
6515
|
+
align-items: center;
|
|
6516
|
+
justify-content: center;
|
|
6517
|
+
padding: 0 6px;
|
|
6518
|
+
font-size: 12px;
|
|
6519
|
+
font-weight: 400;
|
|
6520
|
+
line-height: 12px;
|
|
6521
|
+
white-space: nowrap;
|
|
6522
|
+
color: var(--qc-text-primary);
|
|
6523
|
+
background: var(--qcd-chart-background, var(--qc-canvas-background));
|
|
6524
|
+
border: 1px solid var(--qc-overlay-separator);
|
|
6525
|
+
border-radius: 4px;
|
|
6526
|
+
pointer-events: none;
|
|
6527
|
+
}
|
|
6528
|
+
|
|
6529
|
+
/* The plus beside the crosshair's price label is painted by the renderer with the label. Its button
|
|
6530
|
+
* stands over the painted box, at the size the chart writes: transparent, and taking no pointer, so
|
|
6531
|
+
* a pointer resting on the plus stays on the plot and keeps the crosshair. It carries the plus's
|
|
6532
|
+
* name and takes the keyboard. The chrome gives every button its pointer back, so this rule names
|
|
6533
|
+
* the chrome as well and outranks that one: a button that took the pointer here would take it off
|
|
6534
|
+
* the plot, the crosshair and the plus with it, and give it back once the plus was gone. */
|
|
6535
|
+
[data-qc-theme] .qc-chrome .qc-scale-plus {
|
|
6536
|
+
position: absolute;
|
|
6537
|
+
z-index: 4;
|
|
6538
|
+
box-sizing: border-box;
|
|
6539
|
+
padding: 0;
|
|
6540
|
+
background: none;
|
|
6541
|
+
border: 0;
|
|
6542
|
+
border-radius: 2px;
|
|
6543
|
+
pointer-events: none;
|
|
6544
|
+
}
|
|
6545
|
+
|
|
6546
|
+
/* The buttons at the top right of each pane, 4px below its top and 4px in from the plot's edge: 24px
|
|
6547
|
+
* rounded squares 4px apart, a 1px border on the chart's background, a 15px line glyph in the text
|
|
6548
|
+
* ink, the raised hover fill under the pointer. */
|
|
6549
|
+
[data-qc-theme] .qc-pane-buttons {
|
|
6550
|
+
position: absolute;
|
|
6551
|
+
z-index: 4;
|
|
6552
|
+
display: flex;
|
|
6553
|
+
gap: 4px;
|
|
6554
|
+
pointer-events: auto;
|
|
6555
|
+
}
|
|
6556
|
+
|
|
6557
|
+
[data-qc-theme] .qc-pane-button {
|
|
6558
|
+
box-sizing: border-box;
|
|
6559
|
+
display: inline-flex;
|
|
6560
|
+
width: 24px;
|
|
6561
|
+
height: 24px;
|
|
6562
|
+
align-items: center;
|
|
6563
|
+
justify-content: center;
|
|
6564
|
+
padding: 0;
|
|
6565
|
+
color: var(--qc-text-primary);
|
|
6566
|
+
background: var(--qcd-chart-background, var(--qc-canvas-background));
|
|
6567
|
+
border: 1px solid var(--qc-overlay-separator);
|
|
6568
|
+
border-radius: 4px;
|
|
6569
|
+
cursor: pointer;
|
|
6570
|
+
}
|
|
6571
|
+
|
|
6572
|
+
[data-qc-theme] .qc-pane-button:hover {
|
|
6573
|
+
background: var(--qc-state-hover);
|
|
6574
|
+
}
|
|
6575
|
+
|
|
6576
|
+
[data-qc-theme] .qc-pane-button[aria-pressed='true'] {
|
|
6577
|
+
background: var(--qc-state-pressed);
|
|
6578
|
+
}
|
|
6579
|
+
|
|
6351
6580
|
/* The thin bar beside a list the viewer scrolls to find something: the search results, the
|
|
6352
6581
|
* indicator list, the saved layouts, a menu's rows, a dialog's body. Five pixels wide with a 3px
|
|
6353
6582
|
* thumb inside a transparent border, so it reads as a position marker rather than a control.
|
|
@@ -7005,12 +7234,16 @@
|
|
|
7005
7234
|
font-size: var(--qc-text-fontSizeSmall);
|
|
7006
7235
|
}
|
|
7007
7236
|
|
|
7008
|
-
/*
|
|
7009
|
-
* and
|
|
7010
|
-
|
|
7237
|
+
/* The chart settings dialog: a 750px card, as tall as the page it shows up to the viewport less
|
|
7238
|
+
* 40px, with the drawing dialogs' header and footer around a body of two columns: the rail of pages,
|
|
7239
|
+
* 226px with a 206px list 20px in, and the page beside it, which scrolls on its own. The page is the
|
|
7240
|
+
* drawing dialogs' settings grid; these rules add what the chart's settings rows carry beyond it:
|
|
7241
|
+
* checkbox rows with a hint or a tip, sub-rows, second lines of controls, the sliders and the tips. */
|
|
7242
|
+
[data-qc-theme] .qc-dialog.qc-chart-settings-dialog {
|
|
7011
7243
|
box-sizing: border-box;
|
|
7012
|
-
|
|
7013
|
-
max-
|
|
7244
|
+
min-width: min(610px, calc(100% - 16px));
|
|
7245
|
+
max-width: min(750px, calc(100% - 16px));
|
|
7246
|
+
max-height: calc(100% - 40px);
|
|
7014
7247
|
color: var(--qc-text-primary);
|
|
7015
7248
|
background: var(--qc-overlay-surface);
|
|
7016
7249
|
border: 0;
|
|
@@ -7018,302 +7251,457 @@
|
|
|
7018
7251
|
box-shadow: var(--qc-overlay-shadow);
|
|
7019
7252
|
}
|
|
7020
7253
|
|
|
7021
|
-
|
|
7022
|
-
|
|
7023
|
-
|
|
7024
|
-
padding: 0 14px 0 19px;
|
|
7025
|
-
}
|
|
7026
|
-
|
|
7027
|
-
[data-qc-theme] .qc-chart-settings-dialog .qc-dialog-title .qc-title {
|
|
7028
|
-
font-size: 20px;
|
|
7029
|
-
font-weight: 600;
|
|
7030
|
-
line-height: 28px;
|
|
7254
|
+
/* The close: a 34px cell whose hover fill rounds 8px at the corners. */
|
|
7255
|
+
[data-qc-theme] .qc-chart-settings-dialog .qc-dialog-close {
|
|
7256
|
+
border-radius: 8px;
|
|
7031
7257
|
}
|
|
7032
7258
|
|
|
7033
|
-
[data-qc-theme] .qc-chart-settings-dialog .qc-dialog-close {
|
|
7034
|
-
|
|
7035
|
-
height: 40px;
|
|
7036
|
-
border: 0;
|
|
7259
|
+
[data-qc-theme] .qc-chart-settings-dialog .qc-dialog-close:hover {
|
|
7260
|
+
background: var(--qc-state-hover);
|
|
7037
7261
|
}
|
|
7038
7262
|
|
|
7039
|
-
[data-qc-theme] .qc-chart-settings-body {
|
|
7263
|
+
[data-qc-theme] .qc-chart-settings-dialog .qc-chart-settings-body {
|
|
7040
7264
|
display: flex;
|
|
7041
7265
|
flex: 1 1 auto;
|
|
7042
7266
|
flex-direction: row;
|
|
7043
|
-
gap: 0;
|
|
7044
7267
|
min-height: 0;
|
|
7045
7268
|
padding: 0;
|
|
7046
7269
|
overflow: hidden;
|
|
7047
7270
|
}
|
|
7048
7271
|
|
|
7272
|
+
/* The rail stands as tall as the page beside it and adds nothing to the body's height of its own, so
|
|
7273
|
+
* a page shorter than the rail's tabs leaves the rail to scroll. */
|
|
7049
7274
|
[data-qc-theme] .qc-chart-settings-nav {
|
|
7050
7275
|
display: flex;
|
|
7051
7276
|
flex: 0 0 226px;
|
|
7052
7277
|
flex-direction: column;
|
|
7053
|
-
gap: 2px;
|
|
7054
7278
|
box-sizing: border-box;
|
|
7055
|
-
|
|
7056
|
-
|
|
7279
|
+
width: 226px;
|
|
7280
|
+
padding: 8px 0 8px 20px;
|
|
7281
|
+
overflow-x: hidden;
|
|
7282
|
+
overflow-y: auto;
|
|
7283
|
+
contain: size;
|
|
7284
|
+
scrollbar-width: auto;
|
|
7057
7285
|
}
|
|
7058
7286
|
|
|
7287
|
+
[data-qc-theme] .qc-chart-settings-nav::-webkit-scrollbar {
|
|
7288
|
+
display: block;
|
|
7289
|
+
width: 5px;
|
|
7290
|
+
}
|
|
7291
|
+
|
|
7292
|
+
[data-qc-theme] .qc-chart-settings-nav::-webkit-scrollbar-thumb {
|
|
7293
|
+
border: 1px solid transparent;
|
|
7294
|
+
border-radius: 3px;
|
|
7295
|
+
background-color: var(--qc-chrome-scrollThumb);
|
|
7296
|
+
background-clip: content-box;
|
|
7297
|
+
}
|
|
7298
|
+
|
|
7299
|
+
[data-qc-theme] .qc-chart-settings-nav::-webkit-scrollbar-track {
|
|
7300
|
+
background-color: transparent;
|
|
7301
|
+
}
|
|
7302
|
+
|
|
7303
|
+
@supports (-moz-appearance: none) {
|
|
7304
|
+
[data-qc-theme] .qc-chart-settings-nav {
|
|
7305
|
+
scrollbar-width: thin;
|
|
7306
|
+
scrollbar-color: var(--qc-chrome-scrollThumb) transparent;
|
|
7307
|
+
}
|
|
7308
|
+
}
|
|
7309
|
+
|
|
7310
|
+
/* A page's tab: 206 by 40 on an 8px corner, its 28px icon 12px in and its name 4px after it at 14 on
|
|
7311
|
+
* 18. The page shown and the tab under the pointer take the quiet fill and the strong ink; the page
|
|
7312
|
+
* shown is named in bold. */
|
|
7059
7313
|
[data-qc-theme] .qc-chart-settings-nav-item {
|
|
7060
7314
|
display: flex;
|
|
7061
|
-
|
|
7315
|
+
flex: 0 0 40px;
|
|
7316
|
+
gap: 4px;
|
|
7062
7317
|
align-items: center;
|
|
7063
|
-
|
|
7064
|
-
|
|
7065
|
-
|
|
7066
|
-
|
|
7318
|
+
box-sizing: border-box;
|
|
7319
|
+
width: 206px;
|
|
7320
|
+
height: 40px;
|
|
7321
|
+
padding: 0 16px 0 12px;
|
|
7322
|
+
color: var(--qc-text-primary);
|
|
7067
7323
|
font: inherit;
|
|
7068
7324
|
font-size: 14px;
|
|
7325
|
+
font-weight: 400;
|
|
7326
|
+
line-height: 18px;
|
|
7069
7327
|
text-align: start;
|
|
7070
7328
|
background: transparent;
|
|
7071
7329
|
border: 0;
|
|
7072
7330
|
border-radius: 8px;
|
|
7331
|
+
outline-offset: -2px;
|
|
7073
7332
|
cursor: pointer;
|
|
7074
7333
|
}
|
|
7075
7334
|
|
|
7076
7335
|
[data-qc-theme] .qc-chart-settings-nav-item:hover {
|
|
7077
|
-
color: var(--qc-
|
|
7336
|
+
color: var(--qc-control-neutralInk);
|
|
7078
7337
|
background: var(--qc-state-hover);
|
|
7079
7338
|
}
|
|
7080
7339
|
|
|
7081
7340
|
[data-qc-theme] .qc-chart-settings-nav-item[aria-selected='true'] {
|
|
7082
|
-
color: var(--qc-
|
|
7341
|
+
color: var(--qc-control-neutralInk);
|
|
7083
7342
|
font-weight: 600;
|
|
7084
|
-
background: var(--qc-
|
|
7343
|
+
background: var(--qc-control-neutral);
|
|
7085
7344
|
}
|
|
7086
7345
|
|
|
7087
|
-
[data-qc-theme] .qc-chart-settings-
|
|
7346
|
+
[data-qc-theme] .qc-chart-settings-nav-icon {
|
|
7088
7347
|
display: flex;
|
|
7348
|
+
flex: 0 0 28px;
|
|
7349
|
+
align-items: center;
|
|
7350
|
+
justify-content: center;
|
|
7351
|
+
width: 28px;
|
|
7352
|
+
height: 28px;
|
|
7353
|
+
}
|
|
7354
|
+
|
|
7355
|
+
[data-qc-theme] .qc-chart-settings-nav-label {
|
|
7356
|
+
min-width: 0;
|
|
7357
|
+
overflow: hidden;
|
|
7358
|
+
text-overflow: ellipsis;
|
|
7359
|
+
white-space: nowrap;
|
|
7360
|
+
}
|
|
7361
|
+
|
|
7362
|
+
/* The page: the settings grid 16px by 20px in, with 16px more under its last section. */
|
|
7363
|
+
[data-qc-theme] .qc-chart-settings-panel {
|
|
7089
7364
|
flex: 1 1 auto;
|
|
7090
|
-
|
|
7365
|
+
align-content: start;
|
|
7091
7366
|
min-width: 0;
|
|
7092
|
-
|
|
7367
|
+
box-sizing: border-box;
|
|
7368
|
+
padding: 16px 20px 32px;
|
|
7369
|
+
overflow-x: hidden;
|
|
7093
7370
|
overflow-y: auto;
|
|
7094
7371
|
outline: none;
|
|
7095
7372
|
}
|
|
7096
7373
|
|
|
7097
|
-
|
|
7098
|
-
|
|
7099
|
-
|
|
7100
|
-
padding: 0;
|
|
7101
|
-
color: var(--qc-text-muted);
|
|
7102
|
-
font-size: 11px;
|
|
7374
|
+
/* A section heading: 11px capitals in the caption ink in a 32px row, 16px clear of the section before. */
|
|
7375
|
+
[data-qc-theme] .qc-chart-settings-panel > .qc-settings-heading {
|
|
7376
|
+
color: var(--qc-text-caption);
|
|
7103
7377
|
font-weight: 400;
|
|
7104
|
-
line-height: 24px;
|
|
7105
|
-
letter-spacing: 0;
|
|
7106
7378
|
}
|
|
7107
7379
|
|
|
7108
|
-
[data-qc-theme] .qc-settings-
|
|
7109
|
-
|
|
7110
|
-
grid-template-columns: minmax(150px, 1fr) auto;
|
|
7111
|
-
gap: 16px;
|
|
7112
|
-
min-height: 44px;
|
|
7113
|
-
padding: 0;
|
|
7380
|
+
[data-qc-theme] .qc-chart-settings-panel > .qc-settings-heading:not(:first-child) {
|
|
7381
|
+
margin-top: 16px;
|
|
7114
7382
|
}
|
|
7115
7383
|
|
|
7116
|
-
|
|
7117
|
-
|
|
7118
|
-
|
|
7384
|
+
/* A checkbox row across both columns: the box, its words 8px after it, a tip 8px after the words,
|
|
7385
|
+
* and a hint at 13 on 18 in the muted ink under the line, after which the next row stands 16px off. */
|
|
7386
|
+
[data-qc-theme] .qc-settings-check {
|
|
7387
|
+
box-sizing: border-box;
|
|
7388
|
+
min-height: 50px;
|
|
7389
|
+
padding: 8px 0;
|
|
7119
7390
|
}
|
|
7120
7391
|
|
|
7121
|
-
|
|
7122
|
-
|
|
7123
|
-
|
|
7124
|
-
|
|
7125
|
-
|
|
7126
|
-
width: 38px;
|
|
7127
|
-
height: 34px;
|
|
7128
|
-
padding: 3px;
|
|
7392
|
+
[data-qc-theme] .qc-settings-check-line {
|
|
7393
|
+
display: flex;
|
|
7394
|
+
gap: 8px;
|
|
7395
|
+
align-items: center;
|
|
7396
|
+
min-height: 34px;
|
|
7129
7397
|
}
|
|
7130
7398
|
|
|
7131
|
-
[data-qc-theme] .qc-settings-
|
|
7132
|
-
|
|
7399
|
+
[data-qc-theme] .qc-settings-hint {
|
|
7400
|
+
color: var(--qc-text-caption);
|
|
7401
|
+
font-size: 13px;
|
|
7402
|
+
line-height: 18px;
|
|
7133
7403
|
}
|
|
7134
7404
|
|
|
7135
|
-
[data-qc-theme] .qc-settings-
|
|
7136
|
-
|
|
7137
|
-
|
|
7138
|
-
|
|
7405
|
+
[data-qc-theme] .qc-settings-check[data-hint='true'],
|
|
7406
|
+
[data-qc-theme] .qc-settings-hint-row {
|
|
7407
|
+
margin-bottom: 16px;
|
|
7408
|
+
}
|
|
7409
|
+
|
|
7410
|
+
[data-qc-theme] .qc-settings-hint-row {
|
|
7411
|
+
margin-top: -8px;
|
|
7412
|
+
}
|
|
7413
|
+
|
|
7414
|
+
/* A labelled row: its label cell stands its words, or its checkbox, level with the first line of
|
|
7415
|
+
* controls, and the controls' cell stacks its lines 8px apart. */
|
|
7416
|
+
[data-qc-theme] .qc-chart-settings-panel .qc-settings-label {
|
|
7417
|
+
gap: 8px;
|
|
7418
|
+
align-items: flex-start;
|
|
7139
7419
|
}
|
|
7140
7420
|
|
|
7141
|
-
|
|
7142
|
-
* accessible switch role. */
|
|
7143
|
-
[data-qc-theme] .qc-settings-menu .qc-switch-row {
|
|
7421
|
+
[data-qc-theme] .qc-settings-label-text {
|
|
7144
7422
|
display: flex;
|
|
7145
|
-
|
|
7146
|
-
|
|
7147
|
-
gap: 10px;
|
|
7148
|
-
min-height: 44px;
|
|
7149
|
-
padding: 0;
|
|
7150
|
-
color: var(--qc-text-secondary);
|
|
7151
|
-
cursor: pointer;
|
|
7423
|
+
align-items: center;
|
|
7424
|
+
min-height: 34px;
|
|
7152
7425
|
}
|
|
7153
7426
|
|
|
7154
|
-
[data-qc-theme] .qc-settings-
|
|
7155
|
-
|
|
7156
|
-
|
|
7157
|
-
|
|
7158
|
-
background: transparent;
|
|
7159
|
-
border: 1px solid var(--qc-control-on);
|
|
7160
|
-
border-radius: 3px;
|
|
7427
|
+
[data-qc-theme] .qc-chart-settings-panel .qc-settings-controls {
|
|
7428
|
+
flex-direction: column;
|
|
7429
|
+
gap: 8px;
|
|
7430
|
+
align-items: flex-start;
|
|
7161
7431
|
}
|
|
7162
7432
|
|
|
7163
|
-
[data-qc-theme] .qc-settings-
|
|
7164
|
-
|
|
7433
|
+
[data-qc-theme] .qc-settings-line {
|
|
7434
|
+
display: flex;
|
|
7435
|
+
gap: 8px;
|
|
7436
|
+
align-items: center;
|
|
7437
|
+
min-height: 34px;
|
|
7165
7438
|
}
|
|
7166
7439
|
|
|
7167
|
-
|
|
7168
|
-
|
|
7440
|
+
/* A sub-row stands its box 26px in, level with the words of the row above, and 8px closer to it. */
|
|
7441
|
+
[data-qc-theme] .qc-settings-check[data-indent='true'] {
|
|
7442
|
+
margin-top: -8px;
|
|
7443
|
+
padding-inline-start: 26px;
|
|
7169
7444
|
}
|
|
7170
7445
|
|
|
7171
|
-
[data-qc-theme] .qc-settings-
|
|
7172
|
-
|
|
7173
|
-
top: 3px;
|
|
7174
|
-
inset-inline-start: 6px;
|
|
7175
|
-
width: 5px;
|
|
7176
|
-
height: 9px;
|
|
7177
|
-
box-sizing: border-box;
|
|
7178
|
-
background: transparent;
|
|
7179
|
-
border: solid var(--qc-control-mark);
|
|
7180
|
-
border-width: 0 2px 2px 0;
|
|
7181
|
-
border-radius: 0;
|
|
7182
|
-
opacity: 0;
|
|
7183
|
-
transform: rotate(45deg);
|
|
7184
|
-
transition: opacity var(--qc-motion-durationFast) var(--qc-motion-easingLinear);
|
|
7446
|
+
[data-qc-theme] .qc-settings-row[data-indent='true'] > * {
|
|
7447
|
+
margin-top: -8px;
|
|
7185
7448
|
}
|
|
7186
7449
|
|
|
7187
|
-
[data-qc-theme] .qc-settings-
|
|
7188
|
-
|
|
7189
|
-
opacity: 1;
|
|
7450
|
+
[data-qc-theme] .qc-chart-settings-panel .qc-settings-row[data-indent='true'] > .qc-settings-label {
|
|
7451
|
+
padding-inline-start: 26px;
|
|
7190
7452
|
}
|
|
7191
7453
|
|
|
7192
|
-
|
|
7193
|
-
|
|
7194
|
-
|
|
7195
|
-
|
|
7196
|
-
width: min(100%, 360px);
|
|
7454
|
+
/* A row that cannot be used stands its words back with its box. */
|
|
7455
|
+
[data-qc-theme] [data-disabled='true'] > * > .qc-drawing-toggle > span,
|
|
7456
|
+
[data-qc-theme] [data-disabled='true'] > * > .qc-settings-label-text {
|
|
7457
|
+
opacity: 0.5;
|
|
7197
7458
|
}
|
|
7198
7459
|
|
|
7199
|
-
[data-qc-theme] .qc-
|
|
7200
|
-
|
|
7201
|
-
|
|
7460
|
+
[data-qc-theme] [data-disabled='true'] > * > .qc-drawing-toggle {
|
|
7461
|
+
cursor: default;
|
|
7462
|
+
}
|
|
7463
|
+
|
|
7464
|
+
/* A tip's mark: 18px in the tip ink, which steps up under the pointer. */
|
|
7465
|
+
[data-qc-theme] .qc-settings-tip {
|
|
7466
|
+
display: inline-flex;
|
|
7467
|
+
flex: 0 0 18px;
|
|
7202
7468
|
align-items: center;
|
|
7203
|
-
|
|
7204
|
-
|
|
7205
|
-
|
|
7206
|
-
|
|
7207
|
-
|
|
7208
|
-
|
|
7469
|
+
justify-content: center;
|
|
7470
|
+
width: 18px;
|
|
7471
|
+
height: 18px;
|
|
7472
|
+
margin-block: 8px;
|
|
7473
|
+
padding: 0;
|
|
7474
|
+
color: var(--qc-control-tipMark);
|
|
7475
|
+
background: none;
|
|
7209
7476
|
border: 0;
|
|
7210
|
-
border-radius:
|
|
7477
|
+
border-radius: 50%;
|
|
7211
7478
|
cursor: pointer;
|
|
7479
|
+
transition: color var(--qc-motion-durationFast) var(--qc-motion-easingLinear);
|
|
7212
7480
|
}
|
|
7213
7481
|
|
|
7214
|
-
[data-qc-theme] .qc-
|
|
7215
|
-
|
|
7216
|
-
|
|
7482
|
+
[data-qc-theme] .qc-settings-tip:hover,
|
|
7483
|
+
[data-qc-theme] .qc-settings-tip[aria-expanded='true'] {
|
|
7484
|
+
color: var(--qc-control-tipMarkHover);
|
|
7217
7485
|
}
|
|
7218
7486
|
|
|
7219
|
-
|
|
7220
|
-
|
|
7221
|
-
|
|
7487
|
+
/* A tip's line: 13 on 18 on the tooltip fill, 4px above its mark, never taking the pointer. */
|
|
7488
|
+
[data-qc-theme] .qc-dialog-scrim > .qc-settings-tooltip {
|
|
7489
|
+
position: fixed;
|
|
7490
|
+
z-index: 10;
|
|
7491
|
+
box-sizing: border-box;
|
|
7492
|
+
max-width: 310px;
|
|
7493
|
+
padding: 3px 8px;
|
|
7494
|
+
color: var(--qc-overlay-tooltipInk);
|
|
7495
|
+
font-size: 13px;
|
|
7496
|
+
line-height: 18px;
|
|
7497
|
+
background: var(--qc-overlay-tooltip);
|
|
7498
|
+
border-radius: 2px;
|
|
7499
|
+
pointer-events: none;
|
|
7222
7500
|
}
|
|
7223
7501
|
|
|
7224
|
-
|
|
7225
|
-
|
|
7226
|
-
|
|
7502
|
+
/* A tip's card: 352px on a 16px corner, 16px in, its title and its words at 16 on 24 and the link at
|
|
7503
|
+
* 14 on 18. */
|
|
7504
|
+
[data-qc-theme] .qc-drawing-popover.qc-settings-card-popover {
|
|
7227
7505
|
box-sizing: border-box;
|
|
7228
|
-
width:
|
|
7229
|
-
|
|
7230
|
-
border:
|
|
7231
|
-
border-radius: 50%;
|
|
7506
|
+
width: 352px;
|
|
7507
|
+
padding: 16px;
|
|
7508
|
+
border-radius: 16px;
|
|
7232
7509
|
}
|
|
7233
7510
|
|
|
7234
|
-
[data-qc-theme] .qc-
|
|
7235
|
-
|
|
7236
|
-
|
|
7237
|
-
|
|
7238
|
-
|
|
7239
|
-
border-radius: 50%;
|
|
7511
|
+
[data-qc-theme] .qc-settings-card-title {
|
|
7512
|
+
color: var(--qc-text-primary);
|
|
7513
|
+
font-size: 16px;
|
|
7514
|
+
font-weight: 600;
|
|
7515
|
+
line-height: 24px;
|
|
7240
7516
|
}
|
|
7241
7517
|
|
|
7242
|
-
[data-qc-theme] .qc-
|
|
7243
|
-
|
|
7244
|
-
|
|
7518
|
+
[data-qc-theme] .qc-settings-card-body {
|
|
7519
|
+
color: var(--qc-text-primary);
|
|
7520
|
+
font-size: 16px;
|
|
7521
|
+
line-height: 24px;
|
|
7522
|
+
}
|
|
7523
|
+
|
|
7524
|
+
[data-qc-theme] .qc-settings-card-link {
|
|
7525
|
+
display: inline-block;
|
|
7526
|
+
margin-top: 8px;
|
|
7527
|
+
color: var(--qc-text-link);
|
|
7528
|
+
font-size: 14px;
|
|
7529
|
+
line-height: 18px;
|
|
7530
|
+
text-decoration: none;
|
|
7531
|
+
}
|
|
7532
|
+
|
|
7533
|
+
/* A color that follows the bars shows the bars' two colors, the up color in the top corner. */
|
|
7534
|
+
[data-qc-theme] .qc-drawing-swatch-button[data-qc-follows='true'] .qc-drawing-well-fill {
|
|
7535
|
+
background: linear-gradient(to bottom left, var(--qc-series-up) 50%, var(--qc-series-down) 50%);
|
|
7536
|
+
}
|
|
7537
|
+
|
|
7538
|
+
/* A line's thickness on its own: a 34px field wearing a 14px bar of the width. */
|
|
7539
|
+
[data-qc-theme] .qc-drawing-select--mark.qc-settings-width {
|
|
7540
|
+
width: 34px;
|
|
7541
|
+
}
|
|
7542
|
+
|
|
7543
|
+
[data-qc-theme] .qc-settings-width > .qc-drawing-thickness-bar {
|
|
7544
|
+
width: 14px;
|
|
7545
|
+
}
|
|
7546
|
+
|
|
7547
|
+
/* A number field and its unit, 9px after it. */
|
|
7548
|
+
[data-qc-theme] .qc-settings-number {
|
|
7549
|
+
display: inline-flex;
|
|
7550
|
+
gap: 9px;
|
|
7245
7551
|
align-items: center;
|
|
7246
|
-
|
|
7552
|
+
}
|
|
7553
|
+
|
|
7554
|
+
[data-qc-theme] .qc-settings-suffix {
|
|
7555
|
+
color: var(--qc-text-primary);
|
|
7556
|
+
font-size: 14px;
|
|
7557
|
+
line-height: 18px;
|
|
7558
|
+
}
|
|
7559
|
+
|
|
7560
|
+
/* The sliders. The opacity is a 148 by 10 track on a 5px corner that fades from nothing into its color
|
|
7561
|
+
* over the checked ground, inside a 1px edge of the color; the volume is a 136 by 6 track after its
|
|
7562
|
+
* 18px speaker, 8px apart, filled in the on ink up to its knob. Both knobs are the color popover's, a
|
|
7563
|
+
* 12px dark disc with a 2px light rim. Black and white are the poles of the value axis, not theme
|
|
7564
|
+
* roles. */
|
|
7565
|
+
[data-qc-theme] .qc-settings-slider {
|
|
7566
|
+
--qcd-angle-0: 0deg;
|
|
7567
|
+
--qcd-black: hsl(var(--qcd-angle-0) 0% 0%);
|
|
7568
|
+
--qcd-white: hsl(var(--qcd-angle-0) 0% 100%);
|
|
7569
|
+
--qcd-check-hue: 224deg;
|
|
7570
|
+
--qcd-check: hsl(var(--qcd-check-hue) 15% 19% / 0.4);
|
|
7571
|
+
--qcd-ground: var(--qcd-black);
|
|
7572
|
+
display: inline-flex;
|
|
7573
|
+
gap: 8px;
|
|
7574
|
+
align-items: center;
|
|
7575
|
+
min-height: 34px;
|
|
7576
|
+
}
|
|
7577
|
+
|
|
7578
|
+
[data-qc-theme='light'] .qc-settings-slider {
|
|
7579
|
+
--qcd-ground: var(--qcd-white);
|
|
7580
|
+
}
|
|
7581
|
+
|
|
7582
|
+
[data-qc-theme] .qc-settings-speaker {
|
|
7583
|
+
flex: 0 0 18px;
|
|
7584
|
+
color: var(--qc-text-primary);
|
|
7585
|
+
}
|
|
7586
|
+
|
|
7587
|
+
[data-qc-theme] .qc-settings-opacity,
|
|
7588
|
+
[data-qc-theme] .qc-settings-volume {
|
|
7247
7589
|
box-sizing: border-box;
|
|
7248
|
-
|
|
7249
|
-
|
|
7590
|
+
margin: 0;
|
|
7591
|
+
outline: none;
|
|
7592
|
+
cursor: pointer;
|
|
7593
|
+
appearance: none;
|
|
7250
7594
|
}
|
|
7251
7595
|
|
|
7252
|
-
[data-qc-theme] .qc-
|
|
7253
|
-
|
|
7254
|
-
|
|
7596
|
+
[data-qc-theme] .qc-settings-opacity {
|
|
7597
|
+
flex: 0 0 148px;
|
|
7598
|
+
width: 148px;
|
|
7599
|
+
height: 10px;
|
|
7600
|
+
background:
|
|
7601
|
+
linear-gradient(to right, transparent, var(--qcd-swatch)),
|
|
7602
|
+
repeating-conic-gradient(from 270deg, var(--qcd-check) 0% 25%, transparent 0% 50%) 1px 50% / 8px 8px,
|
|
7603
|
+
var(--qcd-ground);
|
|
7604
|
+
border: 1px solid var(--qcd-swatch);
|
|
7605
|
+
border-radius: 5px;
|
|
7255
7606
|
}
|
|
7256
7607
|
|
|
7257
|
-
[data-qc-theme] .qc-
|
|
7258
|
-
|
|
7259
|
-
|
|
7260
|
-
|
|
7261
|
-
|
|
7262
|
-
|
|
7608
|
+
[data-qc-theme] .qc-settings-volume {
|
|
7609
|
+
flex: 0 0 136px;
|
|
7610
|
+
width: 136px;
|
|
7611
|
+
height: 6px;
|
|
7612
|
+
background: linear-gradient(to right, var(--qc-control-on) var(--qcd-level), var(--qc-state-pressed) var(--qcd-level));
|
|
7613
|
+
border-radius: 5px;
|
|
7263
7614
|
}
|
|
7264
7615
|
|
|
7265
|
-
[data-qc-theme] .qc-
|
|
7266
|
-
|
|
7616
|
+
[data-qc-theme][dir='rtl'] .qc-settings-opacity,
|
|
7617
|
+
[data-qc-theme] [dir='rtl'] .qc-settings-opacity {
|
|
7618
|
+
background:
|
|
7619
|
+
linear-gradient(to left, transparent, var(--qcd-swatch)),
|
|
7620
|
+
repeating-conic-gradient(from 270deg, var(--qcd-check) 0% 25%, transparent 0% 50%) right 1px top 50% / 8px 8px,
|
|
7621
|
+
var(--qcd-ground);
|
|
7267
7622
|
}
|
|
7268
7623
|
|
|
7269
|
-
[data-qc-theme] .qc-
|
|
7270
|
-
[data-qc-theme] .qc-
|
|
7271
|
-
|
|
7624
|
+
[data-qc-theme][dir='rtl'] .qc-settings-volume,
|
|
7625
|
+
[data-qc-theme] [dir='rtl'] .qc-settings-volume {
|
|
7626
|
+
background: linear-gradient(to left, var(--qc-control-on) var(--qcd-level), var(--qc-state-pressed) var(--qcd-level));
|
|
7272
7627
|
}
|
|
7273
7628
|
|
|
7274
|
-
[data-qc-theme] .qc-
|
|
7275
|
-
|
|
7629
|
+
[data-qc-theme] .qc-settings-opacity::-webkit-slider-thumb,
|
|
7630
|
+
[data-qc-theme] .qc-settings-volume::-webkit-slider-thumb {
|
|
7631
|
+
width: 12px;
|
|
7632
|
+
height: 12px;
|
|
7633
|
+
background: var(--qcd-black);
|
|
7634
|
+
border: 2px solid var(--qcd-white);
|
|
7635
|
+
border-radius: 50%;
|
|
7636
|
+
box-shadow: var(--qc-overlay-shadow);
|
|
7637
|
+
cursor: pointer;
|
|
7638
|
+
appearance: none;
|
|
7276
7639
|
}
|
|
7277
7640
|
|
|
7278
|
-
[data-qc-theme] .qc-
|
|
7279
|
-
|
|
7641
|
+
[data-qc-theme] .qc-settings-opacity::-moz-range-thumb,
|
|
7642
|
+
[data-qc-theme] .qc-settings-volume::-moz-range-thumb {
|
|
7643
|
+
box-sizing: border-box;
|
|
7644
|
+
width: 12px;
|
|
7645
|
+
height: 12px;
|
|
7646
|
+
background: var(--qcd-black);
|
|
7647
|
+
border: 2px solid var(--qcd-white);
|
|
7648
|
+
border-radius: 50%;
|
|
7649
|
+
box-shadow: var(--qc-overlay-shadow);
|
|
7650
|
+
cursor: pointer;
|
|
7280
7651
|
}
|
|
7281
7652
|
|
|
7653
|
+
[data-qc-theme] .qc-settings-opacity:focus-visible,
|
|
7654
|
+
[data-qc-theme] .qc-settings-volume:focus-visible {
|
|
7655
|
+
box-shadow: 0 0 0 2px var(--qc-state-focusRing);
|
|
7656
|
+
}
|
|
7657
|
+
|
|
7658
|
+
[data-qc-theme] .qc-settings-slider[data-disabled='true'] > * {
|
|
7659
|
+
opacity: 0.5;
|
|
7660
|
+
}
|
|
7661
|
+
|
|
7662
|
+
[data-qc-theme] .qc-settings-slider[data-disabled='true'] > input {
|
|
7663
|
+
cursor: default;
|
|
7664
|
+
}
|
|
7665
|
+
|
|
7666
|
+
/* The footer keeps its height whatever the page above it holds. */
|
|
7667
|
+
[data-qc-theme] .qc-chart-settings-dialog > .qc-chart-settings-footer {
|
|
7668
|
+
flex: 0 0 auto;
|
|
7669
|
+
}
|
|
7670
|
+
|
|
7671
|
+
/* The footer's Template menu opens over its button, as wide as its words. */
|
|
7672
|
+
[data-qc-theme] .qc-chart-settings-template-menu {
|
|
7673
|
+
min-width: 0;
|
|
7674
|
+
}
|
|
7675
|
+
|
|
7676
|
+
/* A narrow layer stacks the rail over the page as a strip of tabs. */
|
|
7282
7677
|
@media (max-width: 680px) {
|
|
7283
|
-
[data-qc-theme] .qc-chart-settings-dialog {
|
|
7678
|
+
[data-qc-theme] .qc-dialog.qc-chart-settings-dialog {
|
|
7284
7679
|
width: calc(100% - 20px) !important;
|
|
7285
|
-
|
|
7680
|
+
min-width: 0;
|
|
7286
7681
|
max-width: none;
|
|
7287
|
-
max-height: none;
|
|
7288
7682
|
}
|
|
7289
7683
|
|
|
7290
|
-
[data-qc-theme] .qc-chart-settings-body {
|
|
7684
|
+
[data-qc-theme] .qc-chart-settings-dialog .qc-chart-settings-body {
|
|
7291
7685
|
flex-direction: column;
|
|
7292
7686
|
}
|
|
7293
7687
|
|
|
7294
7688
|
[data-qc-theme] .qc-chart-settings-nav {
|
|
7295
7689
|
flex: 0 0 auto;
|
|
7296
7690
|
flex-direction: row;
|
|
7297
|
-
|
|
7298
|
-
padding:
|
|
7691
|
+
width: auto;
|
|
7692
|
+
padding: 0 10px 8px;
|
|
7299
7693
|
overflow-x: auto;
|
|
7300
|
-
|
|
7301
|
-
|
|
7694
|
+
overflow-y: hidden;
|
|
7695
|
+
contain: none;
|
|
7302
7696
|
}
|
|
7303
7697
|
|
|
7304
7698
|
[data-qc-theme] .qc-chart-settings-nav-item {
|
|
7699
|
+
flex: 0 0 auto;
|
|
7305
7700
|
width: auto;
|
|
7306
|
-
min-width: max-content;
|
|
7307
|
-
min-height: 36px;
|
|
7308
|
-
padding: 0 10px;
|
|
7309
7701
|
}
|
|
7310
7702
|
|
|
7311
7703
|
[data-qc-theme] .qc-chart-settings-panel {
|
|
7312
|
-
padding:
|
|
7313
|
-
}
|
|
7314
|
-
|
|
7315
|
-
[data-qc-theme] .qc-chart-settings-footer {
|
|
7316
|
-
padding: 0 12px;
|
|
7704
|
+
padding: 16px;
|
|
7317
7705
|
}
|
|
7318
7706
|
}
|
|
7319
7707
|
|