@363045841yyt/klinechart-core 0.7.5 → 0.7.7
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/README.md +8 -8
- package/README.zh-CN.md +8 -8
- 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/controllers/createChartController.d.ts.map +1 -1
- package/dist/controllers/createChartController.js +145 -21
- package/dist/controllers/createChartController.js.map +1 -1
- package/dist/controllers/index.d.ts +9 -1
- package/dist/controllers/index.d.ts.map +1 -1
- package/dist/controllers/index.js +9 -0
- package/dist/controllers/index.js.map +1 -1
- package/dist/controllers/types.d.ts +65 -8
- package/dist/controllers/types.d.ts.map +1 -1
- package/dist/engine/chart.d.ts +2 -12
- package/dist/engine/chart.d.ts.map +1 -1
- package/dist/engine/chart.js +32 -31
- package/dist/engine/chart.js.map +1 -1
- package/dist/engine/controller/interaction.d.ts +1 -1
- package/dist/engine/controller/interaction.d.ts.map +1 -1
- package/dist/engine/controller/interaction.js +10 -2
- package/dist/engine/controller/interaction.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/interaction.d.ts +3 -3
- package/dist/engine/drawing/interaction.d.ts.map +1 -1
- package/dist/engine/drawing/interaction.js +38 -46
- package/dist/engine/drawing/interaction.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 +15 -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.d.ts +5 -24
- package/dist/engine/renderers/paneTitle.d.ts.map +1 -1
- package/dist/engine/renderers/paneTitle.js +16 -11
- 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 +4 -4
- package/dist/engine/renderers/webgl/candleSurface.d.ts.map +1 -1
- package/dist/engine/renderers/webgl/candleSurface.js +72 -60
- 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/engine/subPaneManager.d.ts +2 -0
- package/dist/engine/subPaneManager.d.ts.map +1 -1
- package/dist/engine/subPaneManager.js +25 -1
- package/dist/engine/subPaneManager.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/semantic/controller.d.ts +1 -2
- package/dist/semantic/controller.d.ts.map +1 -1
- package/dist/semantic/index.d.ts +1 -1
- package/dist/semantic/index.d.ts.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 +6 -6
- package/src/config/chartSettings.ts +11 -2
- package/src/controllers/createChartController.ts +158 -29
- package/src/controllers/index.ts +33 -0
- package/src/controllers/types.ts +79 -8
- package/src/engine/chart.ts +32 -37
- package/src/engine/controller/interaction.ts +9 -2
- package/src/engine/draw/pixelAlign.ts +0 -2
- package/src/engine/drawing/interaction.ts +38 -47
- 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 +18 -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 +22 -31
- package/src/engine/renderers/subVolume.ts +23 -20
- package/src/engine/renderers/timeAxis.ts +9 -9
- package/src/engine/renderers/webgl/candleSurface.ts +80 -60
- package/src/engine/renderers/yAxis.ts +6 -5
- package/src/engine/subPaneManager.ts +28 -1
- package/src/index.ts +1 -0
- package/src/plugin/types.ts +5 -1
- package/src/semantic/controller.ts +1 -1
- package/src/semantic/index.ts +1 -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/chart-store.d.ts +0 -75
- package/dist/engine/chart-store.d.ts.map +0 -1
- package/dist/engine/chart-store.js +0 -88
- package/dist/engine/chart-store.js.map +0 -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/chart-store.ts +0 -121
- package/src/engine/theme/colors.ts +0 -642
|
@@ -0,0 +1,108 @@
|
|
|
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
|
+
const DEFAULT_PREFIX = '--klc-';
|
|
29
|
+
/**
|
|
30
|
+
* camelCase → kebab-case.
|
|
31
|
+
*
|
|
32
|
+
* 'candleUpBody' → 'candle-up-body'
|
|
33
|
+
* 'fontWeightRegular' → 'font-weight-regular'
|
|
34
|
+
* 'i1' → 'i1' (already kebab-safe)
|
|
35
|
+
*/
|
|
36
|
+
export function camelToKebab(s) {
|
|
37
|
+
return s.replace(/[A-Z]/g, (m, i) => (i === 0 ? m.toLowerCase() : '-' + m.toLowerCase()));
|
|
38
|
+
}
|
|
39
|
+
function flattenColors(colors, prefix) {
|
|
40
|
+
const out = {};
|
|
41
|
+
for (const [k, v] of Object.entries(colors)) {
|
|
42
|
+
if (typeof v === 'object' && v !== null) {
|
|
43
|
+
const ns = camelToKebab(k);
|
|
44
|
+
for (const [nk, nv] of Object.entries(v)) {
|
|
45
|
+
out[`${prefix}color-${ns}-${camelToKebab(nk)}`] = nv;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
out[`${prefix}color-${camelToKebab(k)}`] = v;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return out;
|
|
53
|
+
}
|
|
54
|
+
function flattenFamily(family, prefix, namespace) {
|
|
55
|
+
const out = {};
|
|
56
|
+
for (const [k, v] of Object.entries(family)) {
|
|
57
|
+
out[`${prefix}${namespace}-${camelToKebab(k)}`] = String(v);
|
|
58
|
+
}
|
|
59
|
+
return out;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Emit a `{ [cssVarName]: value }` map for the given theme.
|
|
63
|
+
*
|
|
64
|
+
* Hand the result to:
|
|
65
|
+
*
|
|
66
|
+
* - React: `<div style={vars as React.CSSProperties}>...`
|
|
67
|
+
* - Vue: `:style="vars"`
|
|
68
|
+
* - Angular: `[ngStyle]="vars"`
|
|
69
|
+
* - Vanilla: `Object.assign(el.style, vars)` or emit
|
|
70
|
+
* `':root { ... }'` directly via {@link toCssDeclarationBlock}.
|
|
71
|
+
*
|
|
72
|
+
* The shape is stable: the same theme produces the same map across calls,
|
|
73
|
+
* and `mergeTheme(base, override)` produces a superset emit (keys are the
|
|
74
|
+
* same; values may differ).
|
|
75
|
+
*/
|
|
76
|
+
export function themeToCssVars(theme, opts) {
|
|
77
|
+
const prefix = opts?.prefix ?? DEFAULT_PREFIX;
|
|
78
|
+
if (!prefix.startsWith('--')) {
|
|
79
|
+
// Misuse caught here is much friendlier than the silent no-op CSS
|
|
80
|
+
// would give downstream.
|
|
81
|
+
throw new Error(`themeToCssVars: prefix must start with '--', got ${JSON.stringify(prefix)}`);
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
...flattenColors(theme.colors, prefix),
|
|
85
|
+
...flattenFamily(theme.spacing, prefix, 'spacing'),
|
|
86
|
+
...flattenFamily(theme.typography, prefix, 'typography'),
|
|
87
|
+
...flattenFamily(theme.motion, prefix, 'motion'),
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Render the emitted map as a `:root { ... }` CSS declaration block.
|
|
92
|
+
* Useful for SSR scenarios where you want to inject a `<style>` element
|
|
93
|
+
* server-side so the first paint already carries the theme.
|
|
94
|
+
*
|
|
95
|
+
* const css = toCssDeclarationBlock(themeToCssVars(darkTheme))
|
|
96
|
+
* // → ":root {\n --klc-color-background: #0E1116;\n ...\n}"
|
|
97
|
+
*
|
|
98
|
+
* The selector defaults to `:root` but can be overridden — common
|
|
99
|
+
* alternatives are `[data-theme="dark"]` for runtime theme switching
|
|
100
|
+
* or `.klc-theme-dark` for scoped overrides.
|
|
101
|
+
*/
|
|
102
|
+
export function toCssDeclarationBlock(vars, selector = ':root') {
|
|
103
|
+
const decls = Object.entries(vars)
|
|
104
|
+
.map(([k, v]) => ` ${k}: ${v};`)
|
|
105
|
+
.join('\n');
|
|
106
|
+
return `${selector} {\n${decls}\n}`;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=themeToCssVars.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"themeToCssVars.js","sourceRoot":"","sources":["../../src/tokens/themeToCssVars.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Design token contract — the typed surface every theme must satisfy.
|
|
3
|
+
*
|
|
4
|
+
* Tokens are **semantic** (named by role: `candleUpBody`, not by value:
|
|
5
|
+
* `green500`). Themes are concrete `Record<TokenKey, string>` objects
|
|
6
|
+
* conforming to {@link Theme}. Two presets ship: {@link lightTheme}
|
|
7
|
+
* and {@link darkTheme}. Consumers compose their own theme by spreading
|
|
8
|
+
* a preset and overriding the keys they care about.
|
|
9
|
+
*
|
|
10
|
+
* Rationale: TradingView's customisation surface is ad-hoc settings
|
|
11
|
+
* sprawl. A token contract is the foundation for (1) a coherent default
|
|
12
|
+
* look, (2) a no-code theme editor, (3) visual regression baselines,
|
|
13
|
+
* and (4) WCAG audits that run in CI.
|
|
14
|
+
*
|
|
15
|
+
* Scope of v1: chart-visible roles only. We do **not** ship UI-chrome
|
|
16
|
+
* tokens (button colors, modal background, etc.) — those live with the
|
|
17
|
+
* host app. The contract is the chart canvas surface.
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* Concrete color value. Always a CSS color string — `#rrggbb`, `#rrggbbaa`,
|
|
21
|
+
* `rgb(...)`, `rgba(...)`, or named CSS color. Themes typically use 6- or
|
|
22
|
+
* 8-digit hex for renderer-friendly parsing.
|
|
23
|
+
*/
|
|
24
|
+
export type ColorValue = string;
|
|
25
|
+
/**
|
|
26
|
+
* CSS length. Always a string with a unit (`'8px'`, `'0.5rem'`, `'1.25em'`).
|
|
27
|
+
* Renderers parse with the host CSSOM; bench-time renderers may use a
|
|
28
|
+
* px-only fast path.
|
|
29
|
+
*/
|
|
30
|
+
export type CssLength = string;
|
|
31
|
+
/**
|
|
32
|
+
* CSS duration string (`'120ms'`, `'0.2s'`). For motion tokens.
|
|
33
|
+
*/
|
|
34
|
+
export type CssDuration = string;
|
|
35
|
+
/**
|
|
36
|
+
* CSS easing function (`'ease-out'`, `'cubic-bezier(0.4, 0, 0.2, 1)'`).
|
|
37
|
+
*/
|
|
38
|
+
export type CssEasing = string;
|
|
39
|
+
/**
|
|
40
|
+
* Indicator palette. Ten distinguishable colors for overlay/separate-pane
|
|
41
|
+
* indicators (MA1, MA2, ..., MA10). The palette is *qualitative* — perceptual
|
|
42
|
+
* distance optimised for category distinction, not for ordinal scale. WCAG
|
|
43
|
+
* AA contrast against both light- and dark-pane backgrounds.
|
|
44
|
+
*/
|
|
45
|
+
export interface IndicatorPalette {
|
|
46
|
+
readonly i1: ColorValue;
|
|
47
|
+
readonly i2: ColorValue;
|
|
48
|
+
readonly i3: ColorValue;
|
|
49
|
+
readonly i4: ColorValue;
|
|
50
|
+
readonly i5: ColorValue;
|
|
51
|
+
readonly i6: ColorValue;
|
|
52
|
+
readonly i7: ColorValue;
|
|
53
|
+
readonly i8: ColorValue;
|
|
54
|
+
readonly i9: ColorValue;
|
|
55
|
+
readonly i10: ColorValue;
|
|
56
|
+
readonly indicatorAtr: ColorValue;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Semantic color roles every renderable surface element claims.
|
|
60
|
+
*
|
|
61
|
+
* "Up" / "Down" is the bull / bear axis. We deliberately do **not**
|
|
62
|
+
* call them green / red — Asian markets use the opposite convention
|
|
63
|
+
* and the token must let that flip with a single override.
|
|
64
|
+
*/
|
|
65
|
+
/**
|
|
66
|
+
* Text colors — importance levels for UI labels & annotations.
|
|
67
|
+
*/
|
|
68
|
+
export interface TextColors {
|
|
69
|
+
readonly primary: ColorValue;
|
|
70
|
+
readonly secondary: ColorValue;
|
|
71
|
+
readonly tertiary: ColorValue;
|
|
72
|
+
readonly weak: ColorValue;
|
|
73
|
+
readonly white: ColorValue;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Price accent colors — tick highlights, last-price marker, etc.
|
|
77
|
+
* The main up/down body colors live on the top-level ColorTokens
|
|
78
|
+
* (candleUpBody / candleDownBody); this group covers extras.
|
|
79
|
+
*/
|
|
80
|
+
export interface PriceColors {
|
|
81
|
+
readonly upLight: ColorValue;
|
|
82
|
+
readonly upTick: ColorValue;
|
|
83
|
+
readonly downLight: ColorValue;
|
|
84
|
+
readonly downTick: ColorValue;
|
|
85
|
+
readonly lastPrice: ColorValue;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Tag / label background colours — toolbar buttons, active states.
|
|
89
|
+
*/
|
|
90
|
+
export interface TagBgColors {
|
|
91
|
+
readonly white: ColorValue;
|
|
92
|
+
readonly lightGray: ColorValue;
|
|
93
|
+
readonly pureWhite: ColorValue;
|
|
94
|
+
readonly transparent: ColorValue;
|
|
95
|
+
readonly active: ColorValue;
|
|
96
|
+
readonly activeHover: ColorValue;
|
|
97
|
+
readonly hover: ColorValue;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Border / stroke colours for UI chrome.
|
|
101
|
+
*/
|
|
102
|
+
export interface BorderColors {
|
|
103
|
+
readonly dark: ColorValue;
|
|
104
|
+
readonly medium: ColorValue;
|
|
105
|
+
readonly light: ColorValue;
|
|
106
|
+
readonly separator: ColorValue;
|
|
107
|
+
readonly button: ColorValue;
|
|
108
|
+
readonly chart: ColorValue;
|
|
109
|
+
}
|
|
110
|
+
/** Moving-average line colours (MA5 / MA10 / MA20 / MA30 / MA60). */
|
|
111
|
+
export interface MAColors {
|
|
112
|
+
readonly ma5: ColorValue;
|
|
113
|
+
readonly ma10: ColorValue;
|
|
114
|
+
readonly ma20: ColorValue;
|
|
115
|
+
readonly ma30: ColorValue;
|
|
116
|
+
readonly ma60: ColorValue;
|
|
117
|
+
}
|
|
118
|
+
/** Bollinger Bands stroke & fill colours. */
|
|
119
|
+
export interface BOLLColors {
|
|
120
|
+
readonly upper: ColorValue;
|
|
121
|
+
readonly middle: ColorValue;
|
|
122
|
+
readonly lower: ColorValue;
|
|
123
|
+
readonly bandFill: ColorValue;
|
|
124
|
+
}
|
|
125
|
+
/** MACD indicator colours. */
|
|
126
|
+
export interface MACDColors {
|
|
127
|
+
readonly dif: ColorValue;
|
|
128
|
+
readonly dea: ColorValue;
|
|
129
|
+
readonly barUp: ColorValue;
|
|
130
|
+
readonly barUpLight: ColorValue;
|
|
131
|
+
readonly barDown: ColorValue;
|
|
132
|
+
readonly barDownLight: ColorValue;
|
|
133
|
+
}
|
|
134
|
+
/** RSI indicator colours. */
|
|
135
|
+
export interface RSIColors {
|
|
136
|
+
readonly rsi1: ColorValue;
|
|
137
|
+
readonly rsi2: ColorValue;
|
|
138
|
+
readonly rsi3: ColorValue;
|
|
139
|
+
}
|
|
140
|
+
/** CCI indicator colours. */
|
|
141
|
+
export interface CCIColors {
|
|
142
|
+
readonly cci: ColorValue;
|
|
143
|
+
readonly overbought: ColorValue;
|
|
144
|
+
readonly oversold: ColorValue;
|
|
145
|
+
}
|
|
146
|
+
/** KDJ / Stochastic indicator colours. */
|
|
147
|
+
export interface KDJColors {
|
|
148
|
+
readonly k: ColorValue;
|
|
149
|
+
readonly d: ColorValue;
|
|
150
|
+
readonly j: ColorValue;
|
|
151
|
+
}
|
|
152
|
+
/** MOM (Momentum) indicator colours. */
|
|
153
|
+
export interface MOMColors {
|
|
154
|
+
readonly mom: ColorValue;
|
|
155
|
+
readonly zero: ColorValue;
|
|
156
|
+
}
|
|
157
|
+
/** WMSR (Williams %R) indicator colours. */
|
|
158
|
+
export interface WMSRColors {
|
|
159
|
+
readonly wmsr: ColorValue;
|
|
160
|
+
readonly overbought: ColorValue;
|
|
161
|
+
readonly oversold: ColorValue;
|
|
162
|
+
}
|
|
163
|
+
/** KST (Know Sure Thing) indicator colours. */
|
|
164
|
+
export interface KSTColors {
|
|
165
|
+
readonly kst: ColorValue;
|
|
166
|
+
readonly signal: ColorValue;
|
|
167
|
+
}
|
|
168
|
+
/** EXPMA (Exponential MA) indicator colours. */
|
|
169
|
+
export interface EXPMAColors {
|
|
170
|
+
readonly fast: ColorValue;
|
|
171
|
+
readonly slow: ColorValue;
|
|
172
|
+
}
|
|
173
|
+
/** ENE (Envelope) indicator colours. */
|
|
174
|
+
export interface ENEColors {
|
|
175
|
+
readonly upper: ColorValue;
|
|
176
|
+
readonly middle: ColorValue;
|
|
177
|
+
readonly lower: ColorValue;
|
|
178
|
+
readonly bandFill: ColorValue;
|
|
179
|
+
}
|
|
180
|
+
/** Generic label colours (tooltip-like overlays). */
|
|
181
|
+
export interface LabelColors {
|
|
182
|
+
readonly bg: ColorValue;
|
|
183
|
+
readonly text: ColorValue;
|
|
184
|
+
}
|
|
185
|
+
/** Last-price marker label colours. */
|
|
186
|
+
export interface LastPriceLabelColors {
|
|
187
|
+
readonly bg: ColorValue;
|
|
188
|
+
}
|
|
189
|
+
/** Volume-price relationship markers. */
|
|
190
|
+
export interface VolumePriceColors {
|
|
191
|
+
readonly riseWith: ColorValue;
|
|
192
|
+
readonly riseWithout: ColorValue;
|
|
193
|
+
readonly fallWith: ColorValue;
|
|
194
|
+
readonly fallWithout: ColorValue;
|
|
195
|
+
}
|
|
196
|
+
/** Structure (SMC) indicator — HH/HL/LH/LL/CHoCH/BOS. */
|
|
197
|
+
export interface StructureColors {
|
|
198
|
+
readonly hh: ColorValue;
|
|
199
|
+
readonly hl: ColorValue;
|
|
200
|
+
readonly lh: ColorValue;
|
|
201
|
+
readonly ll: ColorValue;
|
|
202
|
+
readonly choch: ColorValue;
|
|
203
|
+
readonly bos: ColorValue;
|
|
204
|
+
}
|
|
205
|
+
/** Zones / FVG / Order-Block indicator colours. */
|
|
206
|
+
export interface ZonesColors {
|
|
207
|
+
readonly fvgBullFill: ColorValue;
|
|
208
|
+
readonly fvgBearFill: ColorValue;
|
|
209
|
+
readonly fvgBullBorder: ColorValue;
|
|
210
|
+
readonly fvgBearBorder: ColorValue;
|
|
211
|
+
readonly obBullFill: ColorValue;
|
|
212
|
+
readonly obBearFill: ColorValue;
|
|
213
|
+
}
|
|
214
|
+
export interface ColorTokens {
|
|
215
|
+
readonly background: ColorValue;
|
|
216
|
+
readonly foreground: ColorValue;
|
|
217
|
+
readonly chartBackground: ColorValue;
|
|
218
|
+
readonly candleUpBody: ColorValue;
|
|
219
|
+
readonly candleUpBorder: ColorValue;
|
|
220
|
+
readonly candleUpWick: ColorValue;
|
|
221
|
+
readonly candleDownBody: ColorValue;
|
|
222
|
+
readonly candleDownBorder: ColorValue;
|
|
223
|
+
readonly candleDownWick: ColorValue;
|
|
224
|
+
readonly candleDojiBorder: ColorValue;
|
|
225
|
+
readonly volumeUp: ColorValue;
|
|
226
|
+
readonly volumeDown: ColorValue;
|
|
227
|
+
readonly axisText: ColorValue;
|
|
228
|
+
readonly axisLine: ColorValue;
|
|
229
|
+
readonly axisTick: ColorValue;
|
|
230
|
+
readonly gridMajor: ColorValue;
|
|
231
|
+
readonly gridMinor: ColorValue;
|
|
232
|
+
readonly crosshairLine: ColorValue;
|
|
233
|
+
readonly crosshairLabelBg: ColorValue;
|
|
234
|
+
readonly crosshairLabelText: ColorValue;
|
|
235
|
+
readonly selectionFill: ColorValue;
|
|
236
|
+
readonly selectionStroke: ColorValue;
|
|
237
|
+
readonly tooltipBg: ColorValue;
|
|
238
|
+
readonly tooltipText: ColorValue;
|
|
239
|
+
readonly tooltipBorder: ColorValue;
|
|
240
|
+
readonly heatmapColdest: ColorValue;
|
|
241
|
+
readonly heatmapHottest: ColorValue;
|
|
242
|
+
readonly volumeProfileFill: ColorValue;
|
|
243
|
+
readonly volumeProfilePoc: ColorValue;
|
|
244
|
+
readonly volumeProfileValueArea: ColorValue;
|
|
245
|
+
readonly footprintAsk: ColorValue;
|
|
246
|
+
readonly footprintBid: ColorValue;
|
|
247
|
+
readonly footprintImbalance: ColorValue;
|
|
248
|
+
readonly alertActive: ColorValue;
|
|
249
|
+
readonly alertTriggered: ColorValue;
|
|
250
|
+
readonly alertMuted: ColorValue;
|
|
251
|
+
readonly avwapLine: ColorValue;
|
|
252
|
+
readonly avwapBand: ColorValue;
|
|
253
|
+
readonly mtfOverlay: ColorValue;
|
|
254
|
+
readonly palette: IndicatorPalette;
|
|
255
|
+
readonly text: TextColors;
|
|
256
|
+
readonly price: PriceColors;
|
|
257
|
+
readonly tagBg: TagBgColors;
|
|
258
|
+
readonly border: BorderColors;
|
|
259
|
+
readonly ma: MAColors;
|
|
260
|
+
readonly boll: BOLLColors;
|
|
261
|
+
readonly macd: MACDColors;
|
|
262
|
+
readonly rsi: RSIColors;
|
|
263
|
+
readonly cci: CCIColors;
|
|
264
|
+
readonly kdj: KDJColors;
|
|
265
|
+
readonly mom: MOMColors;
|
|
266
|
+
readonly wmsr: WMSRColors;
|
|
267
|
+
readonly kst: KSTColors;
|
|
268
|
+
readonly expma: EXPMAColors;
|
|
269
|
+
readonly ene: ENEColors;
|
|
270
|
+
readonly label: LabelColors;
|
|
271
|
+
readonly lastPriceLabel: LastPriceLabelColors;
|
|
272
|
+
readonly volumePrice: VolumePriceColors;
|
|
273
|
+
readonly structure: StructureColors;
|
|
274
|
+
readonly zones: ZonesColors;
|
|
275
|
+
readonly wmsrGrid: ColorValue;
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Spatial rhythm. All tokens are CSS length strings with units; renderers
|
|
279
|
+
* parse to px at apply time. The progression is a 4-px base scale that
|
|
280
|
+
* scales linearly up to 32px, then doubles.
|
|
281
|
+
*/
|
|
282
|
+
export interface SpacingTokens {
|
|
283
|
+
readonly none: CssLength;
|
|
284
|
+
readonly xxs: CssLength;
|
|
285
|
+
readonly xs: CssLength;
|
|
286
|
+
readonly sm: CssLength;
|
|
287
|
+
readonly md: CssLength;
|
|
288
|
+
readonly lg: CssLength;
|
|
289
|
+
readonly xl: CssLength;
|
|
290
|
+
readonly xxl: CssLength;
|
|
291
|
+
readonly xxxl: CssLength;
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Typography stack. Renderers compose a font shorthand from these.
|
|
295
|
+
*/
|
|
296
|
+
export interface TypographyTokens {
|
|
297
|
+
readonly fontFamily: string;
|
|
298
|
+
readonly fontFamilyMono: string;
|
|
299
|
+
readonly fontSizeSm: CssLength;
|
|
300
|
+
readonly fontSizeMd: CssLength;
|
|
301
|
+
readonly fontSizeLg: CssLength;
|
|
302
|
+
readonly fontWeightRegular: number;
|
|
303
|
+
readonly fontWeightMedium: number;
|
|
304
|
+
readonly fontWeightBold: number;
|
|
305
|
+
readonly lineHeightTight: number;
|
|
306
|
+
readonly lineHeightStandard: number;
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Animation. We use them sparingly (zoom inertia, crosshair fade)
|
|
310
|
+
* but the tokens exist so the same easing is reused everywhere.
|
|
311
|
+
*/
|
|
312
|
+
export interface MotionTokens {
|
|
313
|
+
readonly durationInstant: CssDuration;
|
|
314
|
+
readonly durationFast: CssDuration;
|
|
315
|
+
readonly durationModerate: CssDuration;
|
|
316
|
+
readonly easingStandard: CssEasing;
|
|
317
|
+
readonly easingDecelerate: CssEasing;
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* Complete theme — all four token families.
|
|
321
|
+
*/
|
|
322
|
+
export interface Theme {
|
|
323
|
+
readonly name: string;
|
|
324
|
+
readonly colors: ColorTokens;
|
|
325
|
+
readonly spacing: SpacingTokens;
|
|
326
|
+
readonly typography: TypographyTokens;
|
|
327
|
+
readonly motion: MotionTokens;
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* Convenience: deep-Partial used for `mergeTheme(base, override)`.
|
|
331
|
+
*/
|
|
332
|
+
export type ThemeOverride = {
|
|
333
|
+
readonly [K in keyof Theme]?: K extends 'name' ? string : Theme[K] extends object ? Partial<Theme[K]> : Theme[K];
|
|
334
|
+
};
|
|
335
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tokens/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Design token contract — the typed surface every theme must satisfy.
|
|
3
|
+
*
|
|
4
|
+
* Tokens are **semantic** (named by role: `candleUpBody`, not by value:
|
|
5
|
+
* `green500`). Themes are concrete `Record<TokenKey, string>` objects
|
|
6
|
+
* conforming to {@link Theme}. Two presets ship: {@link lightTheme}
|
|
7
|
+
* and {@link darkTheme}. Consumers compose their own theme by spreading
|
|
8
|
+
* a preset and overriding the keys they care about.
|
|
9
|
+
*
|
|
10
|
+
* Rationale: TradingView's customisation surface is ad-hoc settings
|
|
11
|
+
* sprawl. A token contract is the foundation for (1) a coherent default
|
|
12
|
+
* look, (2) a no-code theme editor, (3) visual regression baselines,
|
|
13
|
+
* and (4) WCAG audits that run in CI.
|
|
14
|
+
*
|
|
15
|
+
* Scope of v1: chart-visible roles only. We do **not** ship UI-chrome
|
|
16
|
+
* tokens (button colors, modal background, etc.) — those live with the
|
|
17
|
+
* host app. The contract is the chart canvas surface.
|
|
18
|
+
*/
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tokens/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { KLineData } from '../../types/price';
|
|
2
|
+
import type { ColorPresetSettings } from '../../tokens';
|
|
2
3
|
export interface PriceAxisOptions {
|
|
3
4
|
x: number;
|
|
4
5
|
y: number;
|
|
@@ -24,7 +25,7 @@ export interface PriceAxisOptions {
|
|
|
24
25
|
priceOffset?: number;
|
|
25
26
|
}
|
|
26
27
|
/** 右侧价格轴(固定,不随 translate/scroll 变化) */
|
|
27
|
-
export declare function drawPriceAxis(ctx: CanvasRenderingContext2D, opts: PriceAxisOptions, theme?: 'light' | 'dark'): void;
|
|
28
|
+
export declare function drawPriceAxis(ctx: CanvasRenderingContext2D, opts: PriceAxisOptions, theme?: 'light' | 'dark', isAsiaMarket?: boolean, colorPresetSettings?: ColorPresetSettings): void;
|
|
28
29
|
export interface TimeAxisOptions {
|
|
29
30
|
x: number;
|
|
30
31
|
y: number;
|
|
@@ -113,12 +114,12 @@ export interface CrosshairTimeLabelOptions {
|
|
|
113
114
|
paddingX?: number;
|
|
114
115
|
paddingY?: number;
|
|
115
116
|
}
|
|
116
|
-
export declare function drawCrosshairTimeLabel(ctx: CanvasRenderingContext2D, opts: CrosshairTimeLabelOptions, theme?: 'light' | 'dark'): void;
|
|
117
|
-
export declare function drawCrosshairPriceLabel(ctx: CanvasRenderingContext2D, opts: CrosshairPriceLabelOptions, theme?: 'light' | 'dark'): void;
|
|
117
|
+
export declare function drawCrosshairTimeLabel(ctx: CanvasRenderingContext2D, opts: CrosshairTimeLabelOptions, theme?: 'light' | 'dark', isAsiaMarket?: boolean, colorPresetSettings?: ColorPresetSettings): void;
|
|
118
|
+
export declare function drawCrosshairPriceLabel(ctx: CanvasRenderingContext2D, opts: CrosshairPriceLabelOptions, theme?: 'light' | 'dark', isAsiaMarket?: boolean, colorPresetSettings?: ColorPresetSettings): void;
|
|
118
119
|
/** 绘制"最新价水平虚线"(画在 plotCanvas 的 world 坐标系:需在 translate(-scrollLeft,0) 之后调用) */
|
|
119
|
-
export declare function drawLastPriceDashedLine(ctx: CanvasRenderingContext2D, opts: LastPriceLineOptions, theme?: 'light' | 'dark'): void;
|
|
120
|
+
export declare function drawLastPriceDashedLine(ctx: CanvasRenderingContext2D, opts: LastPriceLineOptions, theme?: 'light' | 'dark', isAsiaMarket?: boolean, colorPresetSettings?: ColorPresetSettings): void;
|
|
120
121
|
/** 底部时间轴(X方向随 scrollLeft 变化) */
|
|
121
|
-
export declare function drawTimeAxis(ctx: CanvasRenderingContext2D, opts: TimeAxisOptions, theme?: 'light' | 'dark'): void;
|
|
122
|
+
export declare function drawTimeAxis(ctx: CanvasRenderingContext2D, opts: TimeAxisOptions, theme?: 'light' | 'dark', isAsiaMarket?: boolean, colorPresetSettings?: ColorPresetSettings): void;
|
|
122
123
|
/** ============ 轴标签绘制函数 ============ */
|
|
123
124
|
export interface AxisPriceLabelOptions {
|
|
124
125
|
x: number;
|
|
@@ -133,7 +134,7 @@ export interface AxisPriceLabelOptions {
|
|
|
133
134
|
textColor?: string;
|
|
134
135
|
fontSize?: number;
|
|
135
136
|
}
|
|
136
|
-
export declare function drawAxisPriceLabel(ctx: CanvasRenderingContext2D, opts: AxisPriceLabelOptions, theme?: 'light' | 'dark'): void;
|
|
137
|
+
export declare function drawAxisPriceLabel(ctx: CanvasRenderingContext2D, opts: AxisPriceLabelOptions, theme?: 'light' | 'dark', isAsiaMarket?: boolean, colorPresetSettings?: ColorPresetSettings): void;
|
|
137
138
|
export interface AxisTimeLabelOptions {
|
|
138
139
|
x: number;
|
|
139
140
|
y: number;
|
|
@@ -147,5 +148,5 @@ export interface AxisTimeLabelOptions {
|
|
|
147
148
|
fontSize?: number;
|
|
148
149
|
paddingX?: number;
|
|
149
150
|
}
|
|
150
|
-
export declare function drawAxisTimeLabel(ctx: CanvasRenderingContext2D, opts: AxisTimeLabelOptions, theme?: 'light' | 'dark'): void;
|
|
151
|
+
export declare function drawAxisTimeLabel(ctx: CanvasRenderingContext2D, opts: AxisTimeLabelOptions, theme?: 'light' | 'dark', isAsiaMarket?: boolean, colorPresetSettings?: ColorPresetSettings): void;
|
|
151
152
|
//# sourceMappingURL=axis.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axis.d.ts","sourceRoot":"","sources":["../../../src/utils/kLineDraw/axis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"axis.d.ts","sourceRoot":"","sources":["../../../src/utils/kLineDraw/axis.ts"],"names":[],"mappings":"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"}
|