@363045841yyt/klinechart-core 0.7.6 → 0.7.8
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/dist/config/chartSettings.d.ts +27 -2
- package/dist/config/chartSettings.d.ts.map +1 -1
- package/dist/config/chartSettings.js +6 -0
- package/dist/config/chartSettings.js.map +1 -1
- package/dist/engine/chart.d.ts.map +1 -1
- package/dist/engine/chart.js +4 -0
- package/dist/engine/chart.js.map +1 -1
- package/dist/engine/draw/pixelAlign.d.ts.map +1 -1
- package/dist/engine/draw/pixelAlign.js.map +1 -1
- package/dist/engine/drawing/plugin.js +1 -1
- package/dist/engine/drawing/plugin.js.map +1 -1
- package/dist/engine/renderers/Indicator/atr.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/atr.js +7 -4
- package/dist/engine/renderers/Indicator/atr.js.map +1 -1
- package/dist/engine/renderers/Indicator/boll.js +12 -12
- package/dist/engine/renderers/Indicator/boll.js.map +1 -1
- package/dist/engine/renderers/Indicator/cci.d.ts +1 -2
- package/dist/engine/renderers/Indicator/cci.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/cci.js +9 -9
- package/dist/engine/renderers/Indicator/cci.js.map +1 -1
- package/dist/engine/renderers/Indicator/ene.js +12 -12
- package/dist/engine/renderers/Indicator/ene.js.map +1 -1
- package/dist/engine/renderers/Indicator/expma.js +6 -6
- package/dist/engine/renderers/Indicator/expma.js.map +1 -1
- package/dist/engine/renderers/Indicator/fastk.d.ts +1 -2
- package/dist/engine/renderers/Indicator/fastk.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/fastk.js +7 -7
- package/dist/engine/renderers/Indicator/fastk.js.map +1 -1
- package/dist/engine/renderers/Indicator/kst.d.ts +1 -2
- package/dist/engine/renderers/Indicator/kst.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/kst.js +10 -10
- package/dist/engine/renderers/Indicator/kst.js.map +1 -1
- package/dist/engine/renderers/Indicator/ma.js +5 -5
- package/dist/engine/renderers/Indicator/ma.js.map +1 -1
- package/dist/engine/renderers/Indicator/macd.d.ts +1 -2
- package/dist/engine/renderers/Indicator/macd.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/macd.js +24 -24
- package/dist/engine/renderers/Indicator/macd.js.map +1 -1
- package/dist/engine/renderers/Indicator/macdLegend.js +6 -6
- package/dist/engine/renderers/Indicator/macdLegend.js.map +1 -1
- package/dist/engine/renderers/Indicator/mainIndicatorLegend.js +16 -16
- package/dist/engine/renderers/Indicator/mainIndicatorLegend.js.map +1 -1
- package/dist/engine/renderers/Indicator/mom.d.ts +1 -2
- package/dist/engine/renderers/Indicator/mom.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/mom.js +8 -8
- package/dist/engine/renderers/Indicator/mom.js.map +1 -1
- package/dist/engine/renderers/Indicator/rsi.d.ts +2 -3
- package/dist/engine/renderers/Indicator/rsi.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/rsi.js +19 -15
- package/dist/engine/renderers/Indicator/rsi.js.map +1 -1
- package/dist/engine/renderers/Indicator/scale/indicator_scale.d.ts +1 -2
- package/dist/engine/renderers/Indicator/scale/indicator_scale.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/scale/indicator_scale.js +5 -5
- package/dist/engine/renderers/Indicator/scale/indicator_scale.js.map +1 -1
- package/dist/engine/renderers/Indicator/stoch.d.ts +1 -2
- package/dist/engine/renderers/Indicator/stoch.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/stoch.js +10 -10
- package/dist/engine/renderers/Indicator/stoch.js.map +1 -1
- package/dist/engine/renderers/Indicator/structure.js +5 -5
- package/dist/engine/renderers/Indicator/structure.js.map +1 -1
- package/dist/engine/renderers/Indicator/wmsr.d.ts +1 -2
- package/dist/engine/renderers/Indicator/wmsr.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/wmsr.js +10 -10
- package/dist/engine/renderers/Indicator/wmsr.js.map +1 -1
- package/dist/engine/renderers/Indicator/zones.js +6 -6
- package/dist/engine/renderers/Indicator/zones.js.map +1 -1
- package/dist/engine/renderers/candle.d.ts +1 -1
- package/dist/engine/renderers/candle.d.ts.map +1 -1
- package/dist/engine/renderers/candle.js +21 -21
- package/dist/engine/renderers/candle.js.map +1 -1
- package/dist/engine/renderers/crosshair.js +3 -3
- package/dist/engine/renderers/crosshair.js.map +1 -1
- package/dist/engine/renderers/extremaMarkers.d.ts.map +1 -1
- package/dist/engine/renderers/extremaMarkers.js +12 -12
- package/dist/engine/renderers/extremaMarkers.js.map +1 -1
- package/dist/engine/renderers/gridLines.js +3 -3
- package/dist/engine/renderers/gridLines.js.map +1 -1
- package/dist/engine/renderers/lastPrice.js +7 -7
- package/dist/engine/renderers/lastPrice.js.map +1 -1
- package/dist/engine/renderers/paneTitle.js +6 -6
- package/dist/engine/renderers/paneTitle.js.map +1 -1
- package/dist/engine/renderers/subVolume.d.ts.map +1 -1
- package/dist/engine/renderers/subVolume.js +23 -20
- package/dist/engine/renderers/subVolume.js.map +1 -1
- package/dist/engine/renderers/timeAxis.js +9 -9
- package/dist/engine/renderers/timeAxis.js.map +1 -1
- package/dist/engine/renderers/webgl/candleSurface.d.ts.map +1 -1
- package/dist/engine/renderers/webgl/candleSurface.js +39 -7
- package/dist/engine/renderers/webgl/candleSurface.js.map +1 -1
- package/dist/engine/renderers/yAxis.d.ts.map +1 -1
- package/dist/engine/renderers/yAxis.js +5 -5
- package/dist/engine/renderers/yAxis.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/plugin/types.d.ts +5 -1
- package/dist/plugin/types.d.ts.map +1 -1
- package/dist/plugin/types.js.map +1 -1
- package/dist/tokens/colorPresetSettings.d.ts +15 -0
- package/dist/tokens/colorPresetSettings.d.ts.map +1 -0
- package/dist/tokens/colorPresetSettings.js +65 -0
- package/dist/tokens/colorPresetSettings.js.map +1 -0
- package/dist/tokens/index.d.ts +17 -0
- package/dist/tokens/index.d.ts.map +1 -0
- package/dist/tokens/index.js +16 -0
- package/dist/tokens/index.js.map +1 -0
- package/dist/tokens/mergeTheme.d.ts +17 -0
- package/dist/tokens/mergeTheme.d.ts.map +1 -0
- package/dist/tokens/mergeTheme.js +43 -0
- package/dist/tokens/mergeTheme.js.map +1 -0
- package/dist/tokens/theme-china.d.ts +45 -0
- package/dist/tokens/theme-china.d.ts.map +1 -0
- package/dist/tokens/theme-china.js +116 -0
- package/dist/tokens/theme-china.js.map +1 -0
- package/dist/tokens/theme-dark.d.ts +21 -0
- package/dist/tokens/theme-dark.d.ts.map +1 -0
- package/dist/tokens/theme-dark.js +228 -0
- package/dist/tokens/theme-dark.js.map +1 -0
- package/dist/tokens/theme-light.d.ts +23 -0
- package/dist/tokens/theme-light.d.ts.map +1 -0
- package/dist/tokens/theme-light.js +234 -0
- package/dist/tokens/theme-light.js.map +1 -0
- package/dist/tokens/themeToCssVars.d.ts +74 -0
- package/dist/tokens/themeToCssVars.d.ts.map +1 -0
- package/dist/tokens/themeToCssVars.js +108 -0
- package/dist/tokens/themeToCssVars.js.map +1 -0
- package/dist/tokens/types.d.ts +335 -0
- package/dist/tokens/types.d.ts.map +1 -0
- package/dist/tokens/types.js +20 -0
- package/dist/tokens/types.js.map +1 -0
- package/dist/utils/kLineDraw/axis.d.ts +8 -7
- package/dist/utils/kLineDraw/axis.d.ts.map +1 -1
- package/dist/utils/kLineDraw/axis.js +24 -24
- package/dist/utils/kLineDraw/axis.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/src/config/chartSettings.ts +11 -2
- package/src/engine/chart.ts +4 -0
- package/src/engine/draw/pixelAlign.ts +0 -2
- package/src/engine/drawing/plugin.ts +1 -1
- package/src/engine/renderers/Indicator/atr.ts +7 -3
- package/src/engine/renderers/Indicator/boll.ts +12 -12
- package/src/engine/renderers/Indicator/cci.ts +11 -10
- package/src/engine/renderers/Indicator/ene.ts +12 -12
- package/src/engine/renderers/Indicator/expma.ts +6 -6
- package/src/engine/renderers/Indicator/fastk.ts +9 -8
- package/src/engine/renderers/Indicator/kst.ts +12 -11
- package/src/engine/renderers/Indicator/ma.ts +5 -5
- package/src/engine/renderers/Indicator/macd.ts +27 -25
- package/src/engine/renderers/Indicator/macdLegend.ts +6 -6
- package/src/engine/renderers/Indicator/mainIndicatorLegend.ts +16 -16
- package/src/engine/renderers/Indicator/mom.ts +11 -10
- package/src/engine/renderers/Indicator/rsi.ts +22 -15
- package/src/engine/renderers/Indicator/scale/indicator_scale.ts +6 -6
- package/src/engine/renderers/Indicator/stoch.ts +12 -11
- package/src/engine/renderers/Indicator/structure.ts +5 -5
- package/src/engine/renderers/Indicator/wmsr.ts +13 -12
- package/src/engine/renderers/Indicator/zones.ts +7 -7
- package/src/engine/renderers/candle.ts +21 -21
- package/src/engine/renderers/crosshair.ts +3 -3
- package/src/engine/renderers/extremaMarkers.ts +13 -12
- package/src/engine/renderers/gridLines.ts +3 -3
- package/src/engine/renderers/lastPrice.ts +7 -7
- package/src/engine/renderers/paneTitle.ts +6 -6
- package/src/engine/renderers/subVolume.ts +23 -20
- package/src/engine/renderers/timeAxis.ts +9 -9
- package/src/engine/renderers/webgl/candleSurface.ts +43 -7
- package/src/engine/renderers/yAxis.ts +6 -5
- package/src/index.ts +1 -0
- package/src/plugin/types.ts +5 -1
- package/src/tokens/__tests__/__snapshots__/baseline.test.ts.snap +393 -0
- package/src/tokens/__tests__/baseline.test.ts +183 -0
- package/src/tokens/__tests__/themeToCssVars.test.ts +175 -0
- package/src/tokens/__tests__/tokens.test.ts +215 -0
- package/src/tokens/colorPresetSettings.ts +128 -0
- package/src/tokens/index.ts +65 -0
- package/src/tokens/mergeTheme.ts +48 -0
- package/src/tokens/theme-china.ts +132 -0
- package/src/tokens/theme-dark.ts +244 -0
- package/src/tokens/theme-light.ts +250 -0
- package/src/tokens/themeToCssVars.ts +138 -0
- package/src/tokens/types.ts +394 -0
- package/src/utils/kLineDraw/axis.ts +31 -30
- package/src/version.ts +1 -1
- package/dist/engine/theme/colors.d.ts +0 -223
- package/dist/engine/theme/colors.d.ts.map +0 -1
- package/dist/engine/theme/colors.js +0 -375
- package/dist/engine/theme/colors.js.map +0 -1
- package/src/engine/theme/colors.ts +0 -642
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dark theme — paired with {@link lightTheme}.
|
|
3
|
+
*
|
|
4
|
+
* Color choices:
|
|
5
|
+
*
|
|
6
|
+
* - Background = #0E1116 (deep but not pure black — pure black creates
|
|
7
|
+
* halation around bright lines on OLED).
|
|
8
|
+
* - Bull = brighter green (#22D69B) — needed on dark background for
|
|
9
|
+
* 7.5:1 contrast (passes WCAG AAA for non-text).
|
|
10
|
+
* - Bear = brighter red (#FF6464) — 6.2:1 contrast.
|
|
11
|
+
* - Grid is barely visible (1.2:1 over background) so it never competes
|
|
12
|
+
* with the data.
|
|
13
|
+
* - Indicator palette is the same Okabe-Ito set but with the few hues
|
|
14
|
+
* that need a brightness bump on dark background pre-tuned.
|
|
15
|
+
*
|
|
16
|
+
* Same shape as light — only values change. The parity test in
|
|
17
|
+
* `__tests__/themes.test.ts` enforces this.
|
|
18
|
+
*/
|
|
19
|
+
export const darkTheme = {
|
|
20
|
+
name: 'dark',
|
|
21
|
+
colors: {
|
|
22
|
+
background: '#111827',
|
|
23
|
+
foreground: '#E8EAED',
|
|
24
|
+
chartBackground: '#111827',
|
|
25
|
+
candleUpBody: '#22D69B',
|
|
26
|
+
candleUpBorder: '#22D69B',
|
|
27
|
+
candleUpWick: '#22D69B',
|
|
28
|
+
candleDownBody: '#FF6464',
|
|
29
|
+
candleDownBorder: '#FF6464',
|
|
30
|
+
candleDownWick: '#FF6464',
|
|
31
|
+
candleDojiBorder: '#8A8F98',
|
|
32
|
+
volumeUp: '#22D69B66',
|
|
33
|
+
volumeDown: '#FF646466',
|
|
34
|
+
axisText: '#9AA0A6',
|
|
35
|
+
axisLine: '#2A2F36',
|
|
36
|
+
axisTick: '#2A2F36',
|
|
37
|
+
gridMajor: '#1B1F26',
|
|
38
|
+
gridMinor: '#161A20',
|
|
39
|
+
crosshairLine: '#5F6368',
|
|
40
|
+
crosshairLabelBg: '#E8EAED',
|
|
41
|
+
crosshairLabelText: '#0E1116',
|
|
42
|
+
selectionFill: '#4A9EFF33',
|
|
43
|
+
selectionStroke: '#4A9EFF',
|
|
44
|
+
tooltipBg: '#1B1F26EE',
|
|
45
|
+
tooltipText: '#E8EAED',
|
|
46
|
+
tooltipBorder: '#2A2F36',
|
|
47
|
+
heatmapColdest: '#0E1116',
|
|
48
|
+
heatmapHottest: '#80B7FF',
|
|
49
|
+
volumeProfileFill: '#6B727A66',
|
|
50
|
+
volumeProfilePoc: '#FFA94D',
|
|
51
|
+
volumeProfileValueArea: '#4A9EFF33',
|
|
52
|
+
footprintAsk: '#22D69B80',
|
|
53
|
+
footprintBid: '#FF646480',
|
|
54
|
+
footprintImbalance: '#FFA94D',
|
|
55
|
+
alertActive: '#4A9EFF',
|
|
56
|
+
alertTriggered: '#FFA94D',
|
|
57
|
+
alertMuted: '#6B727A',
|
|
58
|
+
avwapLine: '#A78BFA',
|
|
59
|
+
avwapBand: '#A78BFA33',
|
|
60
|
+
mtfOverlay: '#38BDF8',
|
|
61
|
+
palette: {
|
|
62
|
+
// Same hue ordering as light theme; values tuned for dark BG.
|
|
63
|
+
i1: '#4A9EFF', // blue (brightened)
|
|
64
|
+
i2: '#FFB95A', // amber
|
|
65
|
+
i3: '#22D69B', // teal-green
|
|
66
|
+
i4: '#E879BA', // pink
|
|
67
|
+
i5: '#FF8848', // burnt orange
|
|
68
|
+
i6: '#7DD3FC', // sky
|
|
69
|
+
i7: '#FCE96A', // yellow
|
|
70
|
+
i8: '#A78BFA', // purple
|
|
71
|
+
i9: '#60A5FA', // blue
|
|
72
|
+
i10: '#9AA0A6', // neutral gray
|
|
73
|
+
indicatorAtr: '#F59E0B',
|
|
74
|
+
},
|
|
75
|
+
// ── Legacy indicator colours (from engine/theme/colors) ──
|
|
76
|
+
text: {
|
|
77
|
+
primary: 'hsl(210, 10%, 85%)',
|
|
78
|
+
secondary: 'hsl(210, 8%, 75%)',
|
|
79
|
+
tertiary: 'hsl(210, 6%, 60%)',
|
|
80
|
+
weak: 'hsl(210, 5%, 45%)',
|
|
81
|
+
white: 'rgba(255, 255, 255, 0.95)',
|
|
82
|
+
},
|
|
83
|
+
price: {
|
|
84
|
+
upLight: 'rgba(255, 80, 100, 0.85)',
|
|
85
|
+
upTick: 'hsl(0, 70%, 60%)',
|
|
86
|
+
downLight: 'rgba(60, 200, 160, 0.85)',
|
|
87
|
+
downTick: 'hsl(150, 50%, 65%)',
|
|
88
|
+
lastPrice: 'rgba(230, 100, 115, 0.95)',
|
|
89
|
+
},
|
|
90
|
+
tagBg: {
|
|
91
|
+
white: 'rgb(40, 40, 55)',
|
|
92
|
+
lightGray: 'rgba(50, 50, 65, 0.92)',
|
|
93
|
+
pureWhite: '#282837',
|
|
94
|
+
transparent: 'transparent',
|
|
95
|
+
active: '#1890ff',
|
|
96
|
+
activeHover: '#40a9ff',
|
|
97
|
+
hover: '#3a3a4a',
|
|
98
|
+
},
|
|
99
|
+
border: {
|
|
100
|
+
dark: 'rgba(255, 255, 255, 0.15)',
|
|
101
|
+
medium: 'rgba(255, 255, 255, 0.12)',
|
|
102
|
+
light: 'rgba(255, 255, 255, 0.08)',
|
|
103
|
+
separator: 'rgba(255, 255, 255, 0.10)',
|
|
104
|
+
button: '#505060',
|
|
105
|
+
chart: '#3A4048',
|
|
106
|
+
},
|
|
107
|
+
ma: {
|
|
108
|
+
ma5: 'rgba(255, 200, 50, 1)',
|
|
109
|
+
ma10: 'rgba(200, 150, 30, 1)',
|
|
110
|
+
ma20: 'rgba(90, 140, 255, 1)',
|
|
111
|
+
ma30: 'rgba(90, 190, 95, 1)',
|
|
112
|
+
ma60: 'rgba(170, 60, 195, 1)',
|
|
113
|
+
},
|
|
114
|
+
boll: {
|
|
115
|
+
upper: 'rgba(200, 60, 60, 1)',
|
|
116
|
+
middle: 'rgba(90, 140, 255, 1)',
|
|
117
|
+
lower: 'rgba(50, 170, 60, 1)',
|
|
118
|
+
bandFill: 'rgba(120, 170, 255, 0.15)',
|
|
119
|
+
},
|
|
120
|
+
macd: {
|
|
121
|
+
dif: 'rgba(90, 140, 255, 1)',
|
|
122
|
+
dea: 'rgba(255, 170, 50, 1)',
|
|
123
|
+
barUp: '#ff6b6b',
|
|
124
|
+
barUpLight: '#ffb3b3',
|
|
125
|
+
barDown: '#4ecdc4',
|
|
126
|
+
barDownLight: '#a8e6e1',
|
|
127
|
+
},
|
|
128
|
+
rsi: {
|
|
129
|
+
rsi1: 'rgba(90, 140, 255, 1)',
|
|
130
|
+
rsi2: 'rgba(255, 170, 50, 1)',
|
|
131
|
+
rsi3: 'rgba(180, 70, 205, 1)',
|
|
132
|
+
},
|
|
133
|
+
cci: {
|
|
134
|
+
cci: 'rgba(90, 140, 255, 1)',
|
|
135
|
+
overbought: 'rgba(255, 80, 100, 0.6)',
|
|
136
|
+
oversold: 'rgba(60, 200, 160, 0.6)',
|
|
137
|
+
},
|
|
138
|
+
kdj: {
|
|
139
|
+
k: 'rgba(90, 140, 255, 1)',
|
|
140
|
+
d: 'rgba(255, 170, 50, 1)',
|
|
141
|
+
j: 'rgba(180, 70, 205, 1)',
|
|
142
|
+
},
|
|
143
|
+
mom: {
|
|
144
|
+
mom: 'rgba(90, 140, 255, 1)',
|
|
145
|
+
zero: 'rgba(255, 255, 255, 0.2)',
|
|
146
|
+
},
|
|
147
|
+
wmsr: {
|
|
148
|
+
wmsr: 'rgba(90, 140, 255, 1)',
|
|
149
|
+
overbought: 'rgba(255, 80, 100, 0.6)',
|
|
150
|
+
oversold: 'rgba(60, 200, 160, 0.6)',
|
|
151
|
+
},
|
|
152
|
+
kst: {
|
|
153
|
+
kst: 'rgba(90, 140, 255, 1)',
|
|
154
|
+
signal: 'rgba(255, 170, 50, 1)',
|
|
155
|
+
},
|
|
156
|
+
expma: {
|
|
157
|
+
fast: 'rgba(255, 170, 50, 1)',
|
|
158
|
+
slow: 'rgba(90, 140, 255, 1)',
|
|
159
|
+
},
|
|
160
|
+
ene: {
|
|
161
|
+
upper: 'rgba(255, 80, 100, 1)',
|
|
162
|
+
middle: 'rgba(90, 140, 255, 1)',
|
|
163
|
+
lower: 'rgba(60, 200, 160, 1)',
|
|
164
|
+
bandFill: 'rgba(90, 140, 255, 0.12)',
|
|
165
|
+
},
|
|
166
|
+
label: {
|
|
167
|
+
bg: 'rgba(30, 30, 40, 0.9)',
|
|
168
|
+
text: '#ffffff',
|
|
169
|
+
},
|
|
170
|
+
lastPriceLabel: {
|
|
171
|
+
bg: 'rgba(60, 50, 55, 0.98)',
|
|
172
|
+
},
|
|
173
|
+
volumePrice: {
|
|
174
|
+
riseWith: '#FF6666',
|
|
175
|
+
riseWithout: '#66FF99',
|
|
176
|
+
fallWith: '#FF6666',
|
|
177
|
+
fallWithout: '#66FF99',
|
|
178
|
+
},
|
|
179
|
+
structure: {
|
|
180
|
+
hh: '#4ade80',
|
|
181
|
+
hl: '#22c55e',
|
|
182
|
+
lh: '#f87171',
|
|
183
|
+
ll: '#ef4444',
|
|
184
|
+
choch: '#a78bfa',
|
|
185
|
+
bos: '#fbbf24',
|
|
186
|
+
},
|
|
187
|
+
zones: {
|
|
188
|
+
fvgBullFill: 'rgba(74, 222, 128, 0.20)',
|
|
189
|
+
fvgBearFill: 'rgba(248, 113, 113, 0.20)',
|
|
190
|
+
fvgBullBorder: 'rgba(74, 222, 128, 0.8)',
|
|
191
|
+
fvgBearBorder: 'rgba(248, 113, 113, 0.8)',
|
|
192
|
+
obBullFill: 'rgba(74, 222, 128, 0.35)',
|
|
193
|
+
obBearFill: 'rgba(248, 113, 113, 0.35)',
|
|
194
|
+
},
|
|
195
|
+
wmsrGrid: 'rgba(255, 255, 255, 0.1)',
|
|
196
|
+
},
|
|
197
|
+
spacing: {
|
|
198
|
+
none: '0',
|
|
199
|
+
xxs: '2px',
|
|
200
|
+
xs: '4px',
|
|
201
|
+
sm: '8px',
|
|
202
|
+
md: '12px',
|
|
203
|
+
lg: '16px',
|
|
204
|
+
xl: '24px',
|
|
205
|
+
xxl: '32px',
|
|
206
|
+
xxxl: '64px',
|
|
207
|
+
},
|
|
208
|
+
typography: {
|
|
209
|
+
fontFamily: "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif",
|
|
210
|
+
fontFamilyMono: "ui-monospace, SFMono-Regular, Menlo, Consolas, 'Liberation Mono', monospace",
|
|
211
|
+
fontSizeSm: '10px',
|
|
212
|
+
fontSizeMd: '12px',
|
|
213
|
+
fontSizeLg: '14px',
|
|
214
|
+
fontWeightRegular: 400,
|
|
215
|
+
fontWeightMedium: 500,
|
|
216
|
+
fontWeightBold: 700,
|
|
217
|
+
lineHeightTight: 1.2,
|
|
218
|
+
lineHeightStandard: 1.4,
|
|
219
|
+
},
|
|
220
|
+
motion: {
|
|
221
|
+
durationInstant: '0ms',
|
|
222
|
+
durationFast: '120ms',
|
|
223
|
+
durationModerate: '200ms',
|
|
224
|
+
easingStandard: 'cubic-bezier(0.4, 0, 0.2, 1)',
|
|
225
|
+
easingDecelerate: 'cubic-bezier(0, 0, 0.2, 1)',
|
|
226
|
+
},
|
|
227
|
+
};
|
|
228
|
+
//# sourceMappingURL=theme-dark.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-dark.js","sourceRoot":"","sources":["../../src/tokens/theme-dark.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Light theme — concrete token values.
|
|
3
|
+
*
|
|
4
|
+
* Color choices:
|
|
5
|
+
*
|
|
6
|
+
* - Bull (up) = a dark saturated green (#0F8B5C). Picked to clear the
|
|
7
|
+
* WCAG AA non-text threshold (≥ 3:1) against #FAFAFA. The lighter
|
|
8
|
+
* industry-standard greens like #26A69A fail that bar by ~25 %.
|
|
9
|
+
* - Bear (down) = a dark saturated red (#C2363B). Same rationale —
|
|
10
|
+
* the common #EE4D4D fails AA at ~2.6:1.
|
|
11
|
+
* - Background = #FAFAFA (slightly off-white, kinder to eyes than pure
|
|
12
|
+
* #FFFFFF for long sessions).
|
|
13
|
+
* - Grid major / minor split: major lines for round-number price tiers,
|
|
14
|
+
* minor for between-tier rhythm. Both very low contrast (1.3:1, 1.1:1)
|
|
15
|
+
* so they don't dominate.
|
|
16
|
+
*
|
|
17
|
+
* Indicator palette: ten qualitatively distinct hues using the Okabe-Ito
|
|
18
|
+
* colorblind-safe set (extended to ten by adding three desaturated mids).
|
|
19
|
+
* Each WCAG AA against the background (>= 3:1 for non-text).
|
|
20
|
+
*/
|
|
21
|
+
import type { Theme } from './types';
|
|
22
|
+
export declare const lightTheme: Theme;
|
|
23
|
+
//# sourceMappingURL=theme-light.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-light.d.ts","sourceRoot":"","sources":["../../src/tokens/theme-light.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC,eAAO,MAAM,UAAU,EAAE,KAkOxB,CAAA"}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Light theme — concrete token values.
|
|
3
|
+
*
|
|
4
|
+
* Color choices:
|
|
5
|
+
*
|
|
6
|
+
* - Bull (up) = a dark saturated green (#0F8B5C). Picked to clear the
|
|
7
|
+
* WCAG AA non-text threshold (≥ 3:1) against #FAFAFA. The lighter
|
|
8
|
+
* industry-standard greens like #26A69A fail that bar by ~25 %.
|
|
9
|
+
* - Bear (down) = a dark saturated red (#C2363B). Same rationale —
|
|
10
|
+
* the common #EE4D4D fails AA at ~2.6:1.
|
|
11
|
+
* - Background = #FAFAFA (slightly off-white, kinder to eyes than pure
|
|
12
|
+
* #FFFFFF for long sessions).
|
|
13
|
+
* - Grid major / minor split: major lines for round-number price tiers,
|
|
14
|
+
* minor for between-tier rhythm. Both very low contrast (1.3:1, 1.1:1)
|
|
15
|
+
* so they don't dominate.
|
|
16
|
+
*
|
|
17
|
+
* Indicator palette: ten qualitatively distinct hues using the Okabe-Ito
|
|
18
|
+
* colorblind-safe set (extended to ten by adding three desaturated mids).
|
|
19
|
+
* Each WCAG AA against the background (>= 3:1 for non-text).
|
|
20
|
+
*/
|
|
21
|
+
export const lightTheme = {
|
|
22
|
+
name: 'light',
|
|
23
|
+
colors: {
|
|
24
|
+
background: '#FAFAFA',
|
|
25
|
+
foreground: '#1F1F1F',
|
|
26
|
+
chartBackground: '#FFFFFF',
|
|
27
|
+
candleUpBody: '#0F8B5C',
|
|
28
|
+
candleUpBorder: '#0F8B5C',
|
|
29
|
+
candleUpWick: '#0F8B5C',
|
|
30
|
+
candleDownBody: '#C2363B',
|
|
31
|
+
candleDownBorder: '#C2363B',
|
|
32
|
+
candleDownWick: '#C2363B',
|
|
33
|
+
candleDojiBorder: '#6E6E6E',
|
|
34
|
+
volumeUp: '#0F8B5C66', // 40% alpha — paired with candleUp
|
|
35
|
+
volumeDown: '#C2363B66',
|
|
36
|
+
axisText: '#5A5A5A',
|
|
37
|
+
axisLine: '#D0D0D0',
|
|
38
|
+
axisTick: '#D0D0D0',
|
|
39
|
+
gridMajor: '#E5E5E5',
|
|
40
|
+
gridMinor: '#F0F0F0',
|
|
41
|
+
crosshairLine: '#8C8C8C',
|
|
42
|
+
crosshairLabelBg: '#1F1F1F',
|
|
43
|
+
crosshairLabelText: '#FAFAFA',
|
|
44
|
+
selectionFill: '#2D7FF933',
|
|
45
|
+
selectionStroke: '#2D7FF9',
|
|
46
|
+
tooltipBg: '#FFFFFFEE',
|
|
47
|
+
tooltipText: '#1F1F1F',
|
|
48
|
+
tooltipBorder: '#D0D0D0',
|
|
49
|
+
heatmapColdest: '#F0F4F8',
|
|
50
|
+
heatmapHottest: '#1F3A5F',
|
|
51
|
+
volumeProfileFill: '#9CA3AF66',
|
|
52
|
+
volumeProfilePoc: '#F97316',
|
|
53
|
+
volumeProfileValueArea: '#2D7FF933',
|
|
54
|
+
footprintAsk: '#0F8B5C80',
|
|
55
|
+
footprintBid: '#C2363B80',
|
|
56
|
+
footprintImbalance: '#F97316',
|
|
57
|
+
alertActive: '#2D7FF9',
|
|
58
|
+
// alertTriggered: orange #F97316 was 2.69:1 on white (fails AA
|
|
59
|
+
// non-text). Darkened to #C2410C → 4.13:1.
|
|
60
|
+
alertTriggered: '#C2410C',
|
|
61
|
+
alertMuted: '#9CA3AF',
|
|
62
|
+
avwapLine: '#7C3AED',
|
|
63
|
+
avwapBand: '#7C3AED33',
|
|
64
|
+
// mtfOverlay: sky #0EA5E9 was 2.66:1 on white. Darkened to
|
|
65
|
+
// #0369A1 → 4.59:1.
|
|
66
|
+
mtfOverlay: '#0369A1',
|
|
67
|
+
palette: {
|
|
68
|
+
// Okabe-Ito-derived qualitative scale, AA on #FAFAFA
|
|
69
|
+
i1: '#0072B2', // strong blue
|
|
70
|
+
i2: '#E69F00', // amber
|
|
71
|
+
i3: '#009E73', // teal-green
|
|
72
|
+
i4: '#CC79A7', // pink
|
|
73
|
+
i5: '#D55E00', // burnt orange
|
|
74
|
+
i6: '#56B4E9', // sky
|
|
75
|
+
i7: '#F0E442', // yellow (use sparingly — low contrast)
|
|
76
|
+
i8: '#7C3AED', // purple
|
|
77
|
+
i9: '#2D7FF9', // blue
|
|
78
|
+
i10: '#6E6E6E', // neutral gray
|
|
79
|
+
indicatorAtr: '#d97706',
|
|
80
|
+
},
|
|
81
|
+
// ── Legacy indicator colours (from engine/theme/colors) ──
|
|
82
|
+
text: {
|
|
83
|
+
primary: 'hsl(210, 9%, 31%)',
|
|
84
|
+
secondary: 'hsl(210, 9%, 35%)',
|
|
85
|
+
tertiary: 'hsl(210, 8%, 50%)',
|
|
86
|
+
weak: 'hsl(210, 7%, 65%)',
|
|
87
|
+
white: 'rgba(255, 255, 255, 0.92)',
|
|
88
|
+
},
|
|
89
|
+
price: {
|
|
90
|
+
upLight: 'rgba(214, 10, 34, 0.92)',
|
|
91
|
+
upTick: 'hsl(0, 60%, 50%)',
|
|
92
|
+
downLight: 'rgba(3, 123, 102, 0.92)',
|
|
93
|
+
downTick: 'hsl(150, 30%, 60%)',
|
|
94
|
+
lastPrice: 'rgba(196, 74, 86, 0.95)',
|
|
95
|
+
},
|
|
96
|
+
tagBg: {
|
|
97
|
+
white: 'rgb(255, 255, 255)',
|
|
98
|
+
lightGray: 'rgba(255, 255, 255, 0.92)',
|
|
99
|
+
pureWhite: '#ffffff',
|
|
100
|
+
transparent: 'transparent',
|
|
101
|
+
active: '#1890ff',
|
|
102
|
+
activeHover: '#40a9ff',
|
|
103
|
+
hover: '#f0f0f0',
|
|
104
|
+
},
|
|
105
|
+
border: {
|
|
106
|
+
dark: 'rgba(0, 0, 0, 0.12)',
|
|
107
|
+
medium: 'rgba(0, 0, 0, 0.10)',
|
|
108
|
+
light: 'rgba(0, 0, 0, 0.08)',
|
|
109
|
+
separator: 'rgba(0, 0, 0, 0.10)',
|
|
110
|
+
button: '#d0d0d0',
|
|
111
|
+
chart: '#e5e5e5',
|
|
112
|
+
},
|
|
113
|
+
ma: {
|
|
114
|
+
ma5: 'rgba(255, 193, 37, 1)',
|
|
115
|
+
ma10: 'rgba(190, 131, 12, 1)',
|
|
116
|
+
ma20: 'rgba(69, 112, 249, 1)',
|
|
117
|
+
ma30: 'rgba(76, 175, 80, 1)',
|
|
118
|
+
ma60: 'rgba(156, 39, 176, 1)',
|
|
119
|
+
},
|
|
120
|
+
boll: {
|
|
121
|
+
upper: 'rgba(178, 34, 34, 1)',
|
|
122
|
+
middle: 'rgba(69, 112, 249, 1)',
|
|
123
|
+
lower: 'rgba(34, 139, 34, 1)',
|
|
124
|
+
bandFill: 'rgba(100, 149, 237, 0.1)',
|
|
125
|
+
},
|
|
126
|
+
macd: {
|
|
127
|
+
dif: 'rgba(69, 112, 249, 1)',
|
|
128
|
+
dea: 'rgba(255, 152, 0, 1)',
|
|
129
|
+
barUp: '#ff5252',
|
|
130
|
+
barUpLight: '#fccbcd',
|
|
131
|
+
barDown: '#22ab94',
|
|
132
|
+
barDownLight: '#ace5dc',
|
|
133
|
+
},
|
|
134
|
+
rsi: {
|
|
135
|
+
rsi1: 'rgba(69, 112, 249, 1)',
|
|
136
|
+
rsi2: 'rgba(255, 152, 0, 1)',
|
|
137
|
+
rsi3: 'rgba(156, 39, 176, 1)',
|
|
138
|
+
},
|
|
139
|
+
cci: {
|
|
140
|
+
cci: 'rgba(69, 112, 249, 1)',
|
|
141
|
+
overbought: 'rgba(214, 10, 34, 0.5)',
|
|
142
|
+
oversold: 'rgba(3, 123, 102, 0.5)',
|
|
143
|
+
},
|
|
144
|
+
kdj: {
|
|
145
|
+
k: 'rgba(69, 112, 249, 1)',
|
|
146
|
+
d: 'rgba(255, 152, 0, 1)',
|
|
147
|
+
j: 'rgba(156, 39, 176, 1)',
|
|
148
|
+
},
|
|
149
|
+
mom: {
|
|
150
|
+
mom: 'rgba(69, 112, 249, 1)',
|
|
151
|
+
zero: 'rgba(0, 0, 0, 0.2)',
|
|
152
|
+
},
|
|
153
|
+
wmsr: {
|
|
154
|
+
wmsr: 'rgba(69, 112, 249, 1)',
|
|
155
|
+
overbought: 'rgba(214, 10, 34, 0.5)',
|
|
156
|
+
oversold: 'rgba(3, 123, 102, 0.5)',
|
|
157
|
+
},
|
|
158
|
+
kst: {
|
|
159
|
+
kst: 'rgba(69, 112, 249, 1)',
|
|
160
|
+
signal: 'rgba(255, 152, 0, 1)',
|
|
161
|
+
},
|
|
162
|
+
expma: {
|
|
163
|
+
fast: 'rgba(255, 152, 0, 1)',
|
|
164
|
+
slow: 'rgba(69, 112, 249, 1)',
|
|
165
|
+
},
|
|
166
|
+
ene: {
|
|
167
|
+
upper: 'rgba(214, 10, 34, 1)',
|
|
168
|
+
middle: 'rgba(69, 112, 249, 1)',
|
|
169
|
+
lower: 'rgba(3, 123, 102, 1)',
|
|
170
|
+
bandFill: 'rgba(69, 112, 249, 0.08)',
|
|
171
|
+
},
|
|
172
|
+
label: {
|
|
173
|
+
bg: 'rgba(0, 0, 0, 0.8)',
|
|
174
|
+
text: '#ffffff',
|
|
175
|
+
},
|
|
176
|
+
lastPriceLabel: {
|
|
177
|
+
bg: 'rgba(255, 247, 248, 0.98)',
|
|
178
|
+
},
|
|
179
|
+
volumePrice: {
|
|
180
|
+
riseWith: '#FF4444',
|
|
181
|
+
riseWithout: '#00C853',
|
|
182
|
+
fallWith: '#FF4444',
|
|
183
|
+
fallWithout: '#00C853',
|
|
184
|
+
},
|
|
185
|
+
structure: {
|
|
186
|
+
hh: '#16a34a',
|
|
187
|
+
hl: '#22c55e',
|
|
188
|
+
lh: '#dc2626',
|
|
189
|
+
ll: '#ef4444',
|
|
190
|
+
choch: '#8b5cf6',
|
|
191
|
+
bos: '#f59e0b',
|
|
192
|
+
},
|
|
193
|
+
zones: {
|
|
194
|
+
fvgBullFill: 'rgba(34, 197, 94, 0.15)',
|
|
195
|
+
fvgBearFill: 'rgba(239, 68, 68, 0.15)',
|
|
196
|
+
fvgBullBorder: 'rgba(34, 197, 94, 0.6)',
|
|
197
|
+
fvgBearBorder: 'rgba(239, 68, 68, 0.6)',
|
|
198
|
+
obBullFill: 'rgba(34, 197, 94, 0.25)',
|
|
199
|
+
obBearFill: 'rgba(239, 68, 68, 0.25)',
|
|
200
|
+
},
|
|
201
|
+
wmsrGrid: 'rgba(0, 0, 0, 0.1)',
|
|
202
|
+
},
|
|
203
|
+
spacing: {
|
|
204
|
+
none: '0',
|
|
205
|
+
xxs: '2px',
|
|
206
|
+
xs: '4px',
|
|
207
|
+
sm: '8px',
|
|
208
|
+
md: '12px',
|
|
209
|
+
lg: '16px',
|
|
210
|
+
xl: '24px',
|
|
211
|
+
xxl: '32px',
|
|
212
|
+
xxxl: '64px',
|
|
213
|
+
},
|
|
214
|
+
typography: {
|
|
215
|
+
fontFamily: "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif",
|
|
216
|
+
fontFamilyMono: "ui-monospace, SFMono-Regular, Menlo, Consolas, 'Liberation Mono', monospace",
|
|
217
|
+
fontSizeSm: '10px',
|
|
218
|
+
fontSizeMd: '12px',
|
|
219
|
+
fontSizeLg: '14px',
|
|
220
|
+
fontWeightRegular: 400,
|
|
221
|
+
fontWeightMedium: 500,
|
|
222
|
+
fontWeightBold: 700,
|
|
223
|
+
lineHeightTight: 1.2,
|
|
224
|
+
lineHeightStandard: 1.4,
|
|
225
|
+
},
|
|
226
|
+
motion: {
|
|
227
|
+
durationInstant: '0ms',
|
|
228
|
+
durationFast: '120ms',
|
|
229
|
+
durationModerate: '200ms',
|
|
230
|
+
easingStandard: 'cubic-bezier(0.4, 0, 0.2, 1)',
|
|
231
|
+
easingDecelerate: 'cubic-bezier(0, 0, 0.2, 1)',
|
|
232
|
+
},
|
|
233
|
+
};
|
|
234
|
+
//# sourceMappingURL=theme-light.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-light.js","sourceRoot":"","sources":["../../src/tokens/theme-light.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Theme → CSS custom-property emitter.
|
|
3
|
+
*
|
|
4
|
+
* Bridges the typed tokens in `theme-light.ts` / `theme-dark.ts` to the
|
|
5
|
+
* actual stylesheet, so any framework can apply a theme by inserting a
|
|
6
|
+
* `:root { ... }` block or attaching a `style="..."` attribute.
|
|
7
|
+
*
|
|
8
|
+
* Naming convention (kebab-case, dot-paths flattened with `-`):
|
|
9
|
+
*
|
|
10
|
+
* Theme key CSS variable
|
|
11
|
+
* ─────────────────────────────────────── ────────────────────────────
|
|
12
|
+
* colors.background `--klc-color-background`
|
|
13
|
+
* colors.candleUpBody `--klc-color-candle-up-body`
|
|
14
|
+
* colors.palette.i1 `--klc-color-palette-i1`
|
|
15
|
+
* spacing.md `--klc-spacing-md`
|
|
16
|
+
* typography.fontFamily `--klc-typography-font-family`
|
|
17
|
+
* typography.fontWeightRegular `--klc-typography-font-weight-regular`
|
|
18
|
+
* motion.durationFast `--klc-motion-duration-fast`
|
|
19
|
+
*
|
|
20
|
+
* Numeric tokens (font weights, line heights) emit as strings — CSS doesn't
|
|
21
|
+
* care, and consumers consume them through `var(...)` so the type tag is
|
|
22
|
+
* lost in the round-trip anyway.
|
|
23
|
+
*
|
|
24
|
+
* Prefix is configurable. Default `--klc-` (KLineChart Quant) is short
|
|
25
|
+
* enough to type and unique enough to coexist with other token systems
|
|
26
|
+
* (Tailwind, MUI, Radix) on the same page.
|
|
27
|
+
*/
|
|
28
|
+
import type { Theme } from './types';
|
|
29
|
+
export interface ThemeToCssVarsOptions {
|
|
30
|
+
/**
|
|
31
|
+
* CSS custom-property prefix. Default `'--klc-'`. Must start with `--`.
|
|
32
|
+
* Including the trailing dash is recommended (kebab-case continues
|
|
33
|
+
* cleanly from there).
|
|
34
|
+
*/
|
|
35
|
+
readonly prefix?: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* camelCase → kebab-case.
|
|
39
|
+
*
|
|
40
|
+
* 'candleUpBody' → 'candle-up-body'
|
|
41
|
+
* 'fontWeightRegular' → 'font-weight-regular'
|
|
42
|
+
* 'i1' → 'i1' (already kebab-safe)
|
|
43
|
+
*/
|
|
44
|
+
export declare function camelToKebab(s: string): string;
|
|
45
|
+
/**
|
|
46
|
+
* Emit a `{ [cssVarName]: value }` map for the given theme.
|
|
47
|
+
*
|
|
48
|
+
* Hand the result to:
|
|
49
|
+
*
|
|
50
|
+
* - React: `<div style={vars as React.CSSProperties}>...`
|
|
51
|
+
* - Vue: `:style="vars"`
|
|
52
|
+
* - Angular: `[ngStyle]="vars"`
|
|
53
|
+
* - Vanilla: `Object.assign(el.style, vars)` or emit
|
|
54
|
+
* `':root { ... }'` directly via {@link toCssDeclarationBlock}.
|
|
55
|
+
*
|
|
56
|
+
* The shape is stable: the same theme produces the same map across calls,
|
|
57
|
+
* and `mergeTheme(base, override)` produces a superset emit (keys are the
|
|
58
|
+
* same; values may differ).
|
|
59
|
+
*/
|
|
60
|
+
export declare function themeToCssVars(theme: Theme, opts?: ThemeToCssVarsOptions): Record<string, string>;
|
|
61
|
+
/**
|
|
62
|
+
* Render the emitted map as a `:root { ... }` CSS declaration block.
|
|
63
|
+
* Useful for SSR scenarios where you want to inject a `<style>` element
|
|
64
|
+
* server-side so the first paint already carries the theme.
|
|
65
|
+
*
|
|
66
|
+
* const css = toCssDeclarationBlock(themeToCssVars(darkTheme))
|
|
67
|
+
* // → ":root {\n --klc-color-background: #0E1116;\n ...\n}"
|
|
68
|
+
*
|
|
69
|
+
* The selector defaults to `:root` but can be overridden — common
|
|
70
|
+
* alternatives are `[data-theme="dark"]` for runtime theme switching
|
|
71
|
+
* or `.klc-theme-dark` for scoped overrides.
|
|
72
|
+
*/
|
|
73
|
+
export declare function toCssDeclarationBlock(vars: Record<string, string>, selector?: string): string;
|
|
74
|
+
//# sourceMappingURL=themeToCssVars.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"themeToCssVars.d.ts","sourceRoot":"","sources":["../../src/tokens/themeToCssVars.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC,MAAM,WAAW,qBAAqB;IAClC;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAC3B;AAID;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE9C;AAgCD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAC1B,KAAK,EAAE,KAAK,EACZ,IAAI,CAAC,EAAE,qBAAqB,GAC7B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAexB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,QAAQ,GAAE,MAAgB,GAC3B,MAAM,CAKR"}
|