@wick-charts/vue 0.4.2 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/README.md +5 -3
  2. package/dist/BarSeries.vue.js +44 -0
  3. package/dist/BarSeries.vue2.js +4 -0
  4. package/dist/CandlestickSeries.vue.js +45 -0
  5. package/dist/CandlestickSeries.vue2.js +4 -0
  6. package/dist/ChartContainer.vue.js +168 -0
  7. package/dist/ChartContainer.vue2.js +4 -0
  8. package/dist/LineSeries.vue.js +44 -0
  9. package/dist/LineSeries.vue2.js +4 -0
  10. package/dist/PieSeries.vue.js +34 -0
  11. package/dist/PieSeries.vue2.js +4 -0
  12. package/dist/composables.js +44 -0
  13. package/dist/context.js +25 -0
  14. package/dist/core/dist/animation/animator.js +72 -0
  15. package/dist/core/dist/animation/config.js +145 -0
  16. package/dist/core/dist/animation/easing.js +4 -0
  17. package/dist/core/dist/animation/scalar-spring.js +57 -0
  18. package/dist/core/dist/animation/spring.js +11 -0
  19. package/dist/core/dist/animation/time.js +19 -0
  20. package/dist/core/dist/animation/viewport-engine.js +174 -0
  21. package/dist/core/dist/animation/visible-range-spring.js +64 -0
  22. package/dist/core/dist/animation/y-range-hermite.js +72 -0
  23. package/dist/core/dist/animation/y-range-snap.js +31 -0
  24. package/dist/core/dist/animation/y-range-spring.js +59 -0
  25. package/dist/core/dist/axis/dom-labels.js +60 -0
  26. package/dist/core/dist/canvas-manager.js +109 -0
  27. package/dist/core/dist/chart/edge-indicators.js +26 -0
  28. package/dist/core/dist/chart/fit-to-data.js +9 -0
  29. package/dist/core/dist/chart/last-value.js +31 -0
  30. package/dist/core/dist/chart/options.js +35 -0
  31. package/dist/core/dist/chart/pan-zoom-math.js +66 -0
  32. package/dist/core/dist/chart/streaming-cadence.js +70 -0
  33. package/dist/core/dist/chart/streaming-target.js +22 -0
  34. package/dist/core/dist/chart/viewport-padding.js +6 -0
  35. package/dist/core/dist/chart/y-target.js +24 -0
  36. package/dist/core/dist/chart.js +1495 -0
  37. package/dist/core/dist/components/crosshair.js +9 -0
  38. package/dist/core/dist/components/edge-indicator.js +36 -0
  39. package/dist/core/dist/components/grid.js +22 -0
  40. package/dist/core/dist/components/marker.js +41 -0
  41. package/dist/core/dist/components/reference-line.js +48 -0
  42. package/dist/core/dist/components/time-region.js +35 -0
  43. package/dist/core/dist/data/decimation.js +54 -0
  44. package/dist/core/dist/data/store.js +76 -0
  45. package/dist/core/dist/data/sync.js +47 -0
  46. package/dist/core/dist/events.js +19 -0
  47. package/dist/core/dist/interactions/handler.js +84 -0
  48. package/dist/core/dist/interactions/pan.js +26 -0
  49. package/dist/core/dist/interactions/zoom.js +21 -0
  50. package/dist/core/dist/navigator/controller.js +374 -0
  51. package/dist/core/dist/navigator/decimate.js +44 -0
  52. package/dist/core/dist/navigator/interactions.js +28 -0
  53. package/dist/core/dist/navigator/render.js +68 -0
  54. package/dist/core/dist/perf/counting-context.js +19 -0
  55. package/dist/core/dist/perf/perf-hud.js +453 -0
  56. package/dist/core/dist/perf/perf-monitor.js +132 -0
  57. package/dist/core/dist/render-scheduler.js +31 -0
  58. package/dist/core/dist/scales/tick-tracker.js +110 -0
  59. package/dist/core/dist/scales/x-scale.js +145 -0
  60. package/dist/core/dist/scales/y-scale.js +156 -0
  61. package/dist/core/dist/series/bar.js +341 -0
  62. package/dist/core/dist/series/base-multi-layer.js +438 -0
  63. package/dist/core/dist/series/candlestick.js +481 -0
  64. package/dist/core/dist/series/definition.js +11 -0
  65. package/dist/core/dist/series/line.js +446 -0
  66. package/dist/core/dist/series/painters/builtins.js +36 -0
  67. package/dist/core/dist/series/painters/canvas-path.js +79 -0
  68. package/dist/core/dist/series/painters/resolve.js +32 -0
  69. package/dist/core/dist/series/pie.js +545 -0
  70. package/dist/core/dist/series/register-builtins.js +11 -0
  71. package/dist/core/dist/series/stack-math.js +17 -0
  72. package/dist/core/dist/snapshots.js +107 -0
  73. package/dist/core/dist/theme/create.js +176 -0
  74. package/dist/core/dist/theme/resolve.js +14 -0
  75. package/dist/core/dist/theme/themes/andromeda.js +33 -0
  76. package/dist/core/dist/theme/themes/ayu-mirage.js +33 -0
  77. package/dist/core/dist/theme/themes/catppuccin.js +33 -0
  78. package/dist/core/dist/theme/themes/dracula.js +35 -0
  79. package/dist/core/dist/theme/themes/github-light.js +34 -0
  80. package/dist/core/dist/theme/themes/gruvbox.js +33 -0
  81. package/dist/core/dist/theme/themes/handwritten.js +101 -0
  82. package/dist/core/dist/theme/themes/high-contrast.js +33 -0
  83. package/dist/core/dist/theme/themes/lavender-mist.js +33 -0
  84. package/dist/core/dist/theme/themes/light-pink.js +34 -0
  85. package/dist/core/dist/theme/themes/material-palenight.js +33 -0
  86. package/dist/core/dist/theme/themes/minimal-light.js +34 -0
  87. package/dist/core/dist/theme/themes/mint-breeze.js +33 -0
  88. package/dist/core/dist/theme/themes/monokai-pro.js +33 -0
  89. package/dist/core/dist/theme/themes/night-owl.js +35 -0
  90. package/dist/core/dist/theme/themes/one-dark-pro.js +33 -0
  91. package/dist/core/dist/theme/themes/panda.js +33 -0
  92. package/dist/core/dist/theme/themes/peach-cream.js +33 -0
  93. package/dist/core/dist/theme/themes/quiet-light.js +37 -0
  94. package/dist/core/dist/theme/themes/rose-pine-dawn.js +33 -0
  95. package/dist/core/dist/theme/themes/sand-dune.js +33 -0
  96. package/dist/core/dist/theme/themes/solarized-light.js +34 -0
  97. package/dist/core/dist/tooltip-position.js +10 -0
  98. package/dist/core/dist/utils/color.js +37 -0
  99. package/dist/core/dist/utils/format.js +29 -0
  100. package/dist/core/dist/utils/math.js +26 -0
  101. package/dist/core/dist/utils/poisoned-data-reporter.js +15 -0
  102. package/dist/core/dist/utils/time.js +41 -0
  103. package/dist/index.d.ts +827 -63
  104. package/dist/index.js +142 -8025
  105. package/dist/ui/Crosshair.vue.js +53 -0
  106. package/dist/ui/Crosshair.vue2.js +4 -0
  107. package/dist/ui/InfoBar.vue.js +143 -0
  108. package/dist/ui/InfoBar.vue2.js +4 -0
  109. package/dist/ui/Legend.vue.js +212 -0
  110. package/dist/ui/Legend.vue2.js +4 -0
  111. package/dist/ui/Marker.vue.js +47 -0
  112. package/dist/ui/Marker.vue2.js +4 -0
  113. package/dist/ui/Navigator.vue.js +58 -0
  114. package/dist/ui/Navigator.vue2.js +4 -0
  115. package/dist/ui/NumberFlow.vue.js +69 -0
  116. package/dist/ui/NumberFlow.vue2.js +4 -0
  117. package/dist/ui/PieLegend.vue.js +132 -0
  118. package/dist/ui/PieLegend.vue2.js +4 -0
  119. package/dist/ui/PieTooltip.vue.js +135 -0
  120. package/dist/ui/PieTooltip.vue2.js +4 -0
  121. package/dist/ui/ReferenceLine.vue.js +44 -0
  122. package/dist/ui/ReferenceLine.vue2.js +4 -0
  123. package/dist/ui/TimeAxis.vue.js +43 -0
  124. package/dist/ui/TimeAxis.vue2.js +4 -0
  125. package/dist/ui/TimeRegion.vue.js +41 -0
  126. package/dist/ui/TimeRegion.vue2.js +4 -0
  127. package/dist/ui/Title.vue.js +54 -0
  128. package/dist/ui/Title.vue2.js +4 -0
  129. package/dist/ui/Tooltip.vue.js +195 -0
  130. package/dist/ui/Tooltip.vue2.js +4 -0
  131. package/dist/ui/YAxis.vue.js +42 -0
  132. package/dist/ui/YAxis.vue2.js +4 -0
  133. package/dist/ui/YLabel.vue.js +105 -0
  134. package/dist/ui/YLabel.vue2.js +4 -0
  135. package/package.json +2 -2
  136. package/src/BarSeries.vue +12 -13
  137. package/src/CandlestickSeries.vue +17 -6
  138. package/src/LineSeries.vue +12 -13
  139. package/src/PieSeries.vue +2 -1
  140. package/src/index.ts +23 -0
  141. package/src/ui/Legend.vue +1 -2
  142. package/src/ui/Marker.vue +62 -0
  143. package/src/ui/ReferenceLine.vue +58 -0
  144. package/src/ui/TimeRegion.vue +54 -0
@@ -0,0 +1,176 @@
1
+ import { lighten as E } from "../utils/color.js";
2
+ import { resolveCandlestickBodyColor as R } from "./resolve.js";
3
+ function g(a) {
4
+ if (!a.startsWith("#") || a.length !== 4) return a;
5
+ const o = a[1], s = a[2], n = a[3];
6
+ return `#${o}${o}${s}${s}${n}${n}`;
7
+ }
8
+ function P(a) {
9
+ const o = g(a);
10
+ return !o.startsWith("#") || o.length < 7 ? !1 : parseInt(o.slice(1, 3), 16) * 0.299 + parseInt(o.slice(3, 5), 16) * 0.587 + parseInt(o.slice(5, 7), 16) * 0.114 < 128;
11
+ }
12
+ function G(a) {
13
+ const { name: o = "Custom", description: s, fontUrl: n = null } = a, e = g(a.background), r = P(e), h = r ? "#d1d4dc" : "#24292f", b = r ? "#787b86" : "#8b949e", t = r ? "#26a69a" : "#2da44e", u = r ? "#ef5350" : "#cf222e", w = r ? "#2962ff" : "#0969da", y = r ? "rgba(42,46,57,0.6)" : "rgba(200,200,200,0.5)", m = r ? "rgba(150,150,150,0.5)" : "rgba(170,170,170,0.3)", S = r ? p(e, 0.1) : x(e, 0.05), $ = r ? i(e, 0.92) : i(e, 0.95), I = r ? i(p(e, 0.15), 0.6) : "rgba(200,200,200,0.5)", T = v, C = a.candlestick?.up?.body ?? t, k = a.candlestick?.down?.body ?? u, f = R(C), l = R(k), L = (F) => F >= 0 ? f : l, c = a.line?.color ?? w, M = a.tooltip?.textColor ?? h, B = a.axis?.textColor ?? b, A = a.typography?.fontFamily ?? T, O = a.typography?.fontSize ?? 12, U = a.chartGradient ?? (r ? [p(e, 0.04), x(e, 0.06)] : [p(e, 0.06), e]), _ = {
14
+ background: e,
15
+ chartGradient: U,
16
+ typography: {
17
+ fontFamily: A,
18
+ fontSize: O
19
+ },
20
+ grid: {
21
+ color: a.grid?.color ?? y,
22
+ style: a.grid?.style ?? "solid"
23
+ },
24
+ candlestick: {
25
+ up: {
26
+ body: C,
27
+ wick: a.candlestick?.up?.wick ?? f
28
+ },
29
+ down: {
30
+ body: k,
31
+ wick: a.candlestick?.down?.wick ?? l
32
+ }
33
+ },
34
+ line: {
35
+ color: c,
36
+ width: a.line?.width ?? 1,
37
+ areaTopColor: a.line?.areaTopColor ?? i(c, 0.08),
38
+ areaBottomColor: a.line?.areaBottomColor ?? i(c, 0.01)
39
+ },
40
+ seriesColors: a.seriesColors ?? [c, t, u],
41
+ bar: {
42
+ color: a.bar?.color ?? L
43
+ },
44
+ pie: {
45
+ // The dim axis tone doubles as the "Other" slice fill — muted enough to
46
+ // read as an aggregate, and it already adapts to theme polarity.
47
+ otherColor: a.pie?.otherColor ?? B
48
+ },
49
+ bands: {
50
+ upper: a.bands?.upper ?? c,
51
+ lower: a.bands?.lower ?? l
52
+ },
53
+ crosshair: {
54
+ color: a.crosshair?.color ?? m,
55
+ labelBackground: a.crosshair?.labelBackground ?? S,
56
+ labelTextColor: a.crosshair?.labelTextColor ?? M
57
+ },
58
+ axis: {
59
+ fontSize: a.axis?.fontSize ?? 10,
60
+ textColor: B,
61
+ // Shallow-copy the override so later caller mutations don't leak into the theme.
62
+ ...a.axis?.x ? { x: { ...a.axis.x } } : {},
63
+ ...a.axis?.y ? { y: { ...a.axis.y } } : {}
64
+ },
65
+ yLabel: {
66
+ fontSize: a.yLabel?.fontSize ?? 11,
67
+ upBackground: a.yLabel?.upBackground ?? f,
68
+ downBackground: a.yLabel?.downBackground ?? l,
69
+ neutralBackground: a.yLabel?.neutralBackground ?? S,
70
+ textColor: a.yLabel?.textColor ?? "#ffffff"
71
+ },
72
+ tooltip: {
73
+ fontSize: a.tooltip?.fontSize ?? O,
74
+ background: a.tooltip?.background ?? $,
75
+ textColor: M,
76
+ borderColor: a.tooltip?.borderColor ?? I
77
+ },
78
+ navigator: z({
79
+ dark: r,
80
+ bg: e,
81
+ neutralFg: B,
82
+ upBody: C,
83
+ downBody: k,
84
+ upBase: f,
85
+ downBase: l,
86
+ config: a.navigator
87
+ })
88
+ };
89
+ return { name: o, description: s, fontUrl: n, dark: r, theme: _ };
90
+ }
91
+ function z(a) {
92
+ const { dark: o, bg: s, neutralFg: n, upBody: e, downBody: r, upBase: h, downBase: b, config: t } = a, u = t?.background ?? "transparent", w = o ? "rgba(255,255,255,1)" : "rgba(0,0,0,1)", y = t?.handle?.color ?? d(w, 0.3), m = t?.mask?.fill ?? d(s, o ? 0.78 : 0.82);
93
+ return {
94
+ height: t?.height ?? 48,
95
+ background: u,
96
+ borderColor: t?.borderColor ?? d(n, o ? 0.18 : 0.22),
97
+ line: {
98
+ color: t?.line?.color ?? n,
99
+ width: t?.line?.width ?? 1,
100
+ areaTopColor: t?.line?.areaTopColor ?? d(n, o ? 0.22 : 0.18),
101
+ areaBottomColor: t?.line?.areaBottomColor ?? d(n, 0)
102
+ },
103
+ candlestick: {
104
+ up: {
105
+ body: t?.candlestick?.up?.body ?? e,
106
+ wick: t?.candlestick?.up?.wick ?? h
107
+ },
108
+ down: {
109
+ body: t?.candlestick?.down?.body ?? r,
110
+ wick: t?.candlestick?.down?.wick ?? b
111
+ }
112
+ },
113
+ // Window has no chrome — the unmasked region IS the window.
114
+ window: {
115
+ fill: t?.window?.fill ?? "transparent",
116
+ border: t?.window?.border ?? "transparent",
117
+ borderWidth: t?.window?.borderWidth ?? 0
118
+ },
119
+ handle: {
120
+ color: y,
121
+ width: t?.handle?.width ?? 6
122
+ },
123
+ mask: {
124
+ fill: m
125
+ }
126
+ };
127
+ }
128
+ function d(a, o) {
129
+ if (a.startsWith("#") && a.length === 7) return i(a, o);
130
+ const s = a.match(/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/);
131
+ return s ? `rgba(${s[1]},${s[2]},${s[3]},${o})` : a;
132
+ }
133
+ function i(a, o) {
134
+ const s = g(a), n = parseInt(s.slice(1, 3), 16), e = parseInt(s.slice(3, 5), 16), r = parseInt(s.slice(5, 7), 16);
135
+ return `rgba(${n}, ${e}, ${r}, ${o})`;
136
+ }
137
+ function p(a, o) {
138
+ return a.startsWith("#") ? E(g(a), o) : a;
139
+ }
140
+ function x(a, o) {
141
+ if (!a.startsWith("#")) return a;
142
+ const s = g(a), n = Math.max(0, Math.round(parseInt(s.slice(1, 3), 16) * (1 - o))), e = Math.max(0, Math.round(parseInt(s.slice(3, 5), 16) * (1 - o))), r = Math.max(0, Math.round(parseInt(s.slice(5, 7), 16) * (1 - o)));
143
+ return `#${n.toString(16).padStart(2, "0")}${e.toString(16).padStart(2, "0")}${r.toString(16).padStart(2, "0")}`;
144
+ }
145
+ function N(a) {
146
+ const o = a.startsWith("#") && a.length === 7 ? [p(a, 0.2), x(a, 0.15)] : [a, a];
147
+ return Object.defineProperty(o, "source", { value: a, enumerable: !1 }), o;
148
+ }
149
+ const D = "'JetBrains Mono', 'Fira Code', monospace", H = "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&display=swap", v = "'Outfit', -apple-system, BlinkMacSystemFont, sans-serif", K = "https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600&display=swap", V = "'Roboto Mono', monospace", j = "https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@400;500;600&display=swap", q = "'IBM Plex Mono', monospace", Q = "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&display=swap", X = "'Fira Code', monospace", Y = "https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;600&display=swap", Z = "'Source Code Pro', monospace", aa = "https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@400;500;600&display=swap", oa = "'Space Mono', monospace", ta = "https://fonts.googleapis.com/css2?family=Space+Mono:wght@400;700&display=swap", sa = "'Plus Jakarta Sans', sans-serif", ra = "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap", ea = "'Caveat', 'Comic Sans MS', cursive", na = "https://fonts.googleapis.com/css2?family=Caveat:wght@400;500;600;700&display=swap";
150
+ export {
151
+ ea as CAVEAT,
152
+ na as CAVEAT_URL,
153
+ X as FIRA,
154
+ Y as FIRA_URL,
155
+ v as GEIST,
156
+ K as GEIST_URL,
157
+ q as IBM,
158
+ Q as IBM_URL,
159
+ sa as JAKARTA,
160
+ ra as JAKARTA_URL,
161
+ D as MONO,
162
+ H as MONO_URL,
163
+ V as ROBOTO,
164
+ j as ROBOTO_URL,
165
+ Z as SOURCE_CODE,
166
+ aa as SOURCE_CODE_URL,
167
+ oa as SPACE_MONO,
168
+ ta as SPACE_MONO_URL,
169
+ N as autoGradient,
170
+ G as createTheme,
171
+ x as darkenHex,
172
+ g as expandHex,
173
+ i as hexToRgba,
174
+ P as isDarkBg,
175
+ p as lightenHex
176
+ };
@@ -0,0 +1,14 @@
1
+ function t(o, i) {
2
+ return i === "x" && o.axis.x?.fontSize !== void 0 ? o.axis.x.fontSize : i === "y" && o.axis.y?.fontSize !== void 0 ? o.axis.y.fontSize : o.axis.fontSize;
3
+ }
4
+ function x(o, i) {
5
+ return i === "x" && o.axis.x?.textColor !== void 0 ? o.axis.x.textColor : i === "y" && o.axis.y?.textColor !== void 0 ? o.axis.y.textColor : o.axis.textColor;
6
+ }
7
+ function e(o) {
8
+ return Array.isArray(o) ? o.source ?? o[0] : o;
9
+ }
10
+ export {
11
+ t as resolveAxisFontSize,
12
+ x as resolveAxisTextColor,
13
+ e as resolveCandlestickBodyColor
14
+ };
@@ -0,0 +1,33 @@
1
+ import { createTheme as o, autoGradient as e, ROBOTO_URL as r, ROBOTO as d } from "../create.js";
2
+ const c = o({
3
+ name: "Andromeda",
4
+ description: "Deep space purples and cosmic blues",
5
+ background: "#23262e",
6
+ grid: { color: "rgba(90,88,100,0.2)" },
7
+ candlestick: {
8
+ up: { body: e("#96e072"), wick: "#96e072" },
9
+ down: { body: e("#ee5d43"), wick: "#ee5d43" }
10
+ },
11
+ line: { color: "#00e8c6" },
12
+ seriesColors: [
13
+ "#00e8c6",
14
+ "#f39c12",
15
+ "#96e072",
16
+ "#c74ded",
17
+ "#ee5d43",
18
+ "#ffe66d",
19
+ "#00e8c6",
20
+ "#ee5d43",
21
+ "#7cb7ff",
22
+ "#c74ded"
23
+ ],
24
+ bands: { upper: "#7cb7ff", lower: "#c74ded" },
25
+ crosshair: { color: "rgba(102,94,110,0.7)", labelBackground: "#2e3038" },
26
+ axis: { textColor: "#665e6e" },
27
+ tooltip: { background: "rgba(35,38,46,0.92)", textColor: "#d5ced9", borderColor: "rgba(50,48,56,0.6)" },
28
+ typography: { fontFamily: d },
29
+ fontUrl: r
30
+ });
31
+ export {
32
+ c as andromeda
33
+ };
@@ -0,0 +1,33 @@
1
+ import { createTheme as r, autoGradient as a, GEIST_URL as o, GEIST as e } from "../create.js";
2
+ const f = r({
3
+ name: "Ayu Mirage",
4
+ description: "Warm dark with amber accents",
5
+ background: "#1f2430",
6
+ grid: { color: "rgba(82,90,108,0.2)" },
7
+ candlestick: {
8
+ up: { body: a("#bae67e"), wick: "#bae67e" },
9
+ down: { body: a("#f27983"), wick: "#f27983" }
10
+ },
11
+ line: { color: "#73d0ff" },
12
+ seriesColors: [
13
+ "#73d0ff",
14
+ "#ffad66",
15
+ "#bae67e",
16
+ "#d4bfff",
17
+ "#f27983",
18
+ "#ffd580",
19
+ "#95e6cb",
20
+ "#f28779",
21
+ "#5ccfe6",
22
+ "#d4bfff"
23
+ ],
24
+ bands: { upper: "#5ccfe6", lower: "#f28779" },
25
+ crosshair: { color: "rgba(92,103,115,0.7)", labelBackground: "#2a3040" },
26
+ axis: { textColor: "#5c6773" },
27
+ tooltip: { background: "rgba(31,36,48,0.92)", textColor: "#cbccc6", borderColor: "rgba(42,48,60,0.6)" },
28
+ typography: { fontFamily: e },
29
+ fontUrl: o
30
+ });
31
+ export {
32
+ f as ayuMirage
33
+ };
@@ -0,0 +1,33 @@
1
+ import { createTheme as o, autoGradient as a, GEIST_URL as e, GEIST as r } from "../create.js";
2
+ const b = o({
3
+ name: "Catppuccin",
4
+ description: "Pastel tones on a mocha base",
5
+ background: "#1e1e2e",
6
+ grid: { color: "rgba(90,92,116,0.2)" },
7
+ candlestick: {
8
+ up: { body: a("#a6e3a1"), wick: "#a6e3a1" },
9
+ down: { body: a("#f38ba8"), wick: "#f38ba8" }
10
+ },
11
+ line: { color: "#89b4fa" },
12
+ seriesColors: [
13
+ "#89b4fa",
14
+ "#fab387",
15
+ "#a6e3a1",
16
+ "#cba6f7",
17
+ "#f38ba8",
18
+ "#f9e2af",
19
+ "#94e2d5",
20
+ "#eba0ac",
21
+ "#74c7ec",
22
+ "#cba6f7"
23
+ ],
24
+ bands: { upper: "#74c7ec", lower: "#f38ba8" },
25
+ crosshair: { color: "rgba(108,112,134,0.7)", labelBackground: "#313244" },
26
+ axis: { textColor: "#6c7086" },
27
+ tooltip: { background: "rgba(30,30,46,0.92)", textColor: "#cdd6f4", borderColor: "rgba(49,50,68,0.6)" },
28
+ typography: { fontFamily: r },
29
+ fontUrl: e
30
+ });
31
+ export {
32
+ b as catppuccin
33
+ };
@@ -0,0 +1,35 @@
1
+ import { createTheme as o, FIRA_URL as r, FIRA as f, autoGradient as a } from "../create.js";
2
+ const c = o({
3
+ name: "Dracula",
4
+ description: "Classic dark with vibrant highlights",
5
+ background: "#282a36",
6
+ grid: {
7
+ color: "rgba(108,113,140,0.2)"
8
+ },
9
+ candlestick: {
10
+ up: { body: a("#50fa7b"), wick: "#50fa7b" },
11
+ down: { body: a("#ff5555"), wick: "#ff5555" }
12
+ },
13
+ line: { color: "#bd93f9" },
14
+ seriesColors: [
15
+ "#bd93f9",
16
+ "#8be9fd",
17
+ "#50fa7b",
18
+ "#ff79c6",
19
+ "#ffb86c",
20
+ "#f1fa8c",
21
+ "#ff5555",
22
+ "#6272a4",
23
+ "#ff5555",
24
+ "#ff79c6"
25
+ ],
26
+ bands: { upper: "#8be9fd", lower: "#ff79c6" },
27
+ crosshair: { color: "rgba(98,114,164,0.7)", labelBackground: "#44475a" },
28
+ axis: { textColor: "#a0b0d0" },
29
+ tooltip: { background: "rgba(40,42,54,0.92)", textColor: "#f8f8f2", borderColor: "rgba(68,71,90,0.6)" },
30
+ typography: { fontFamily: f },
31
+ fontUrl: r
32
+ });
33
+ export {
34
+ c as dracula
35
+ };
@@ -0,0 +1,34 @@
1
+ import { createTheme as o, JAKARTA_URL as r, JAKARTA as e, autoGradient as a } from "../create.js";
2
+ const t = o({
3
+ name: "GitHub Light",
4
+ description: "Clean and familiar, GitHub-inspired",
5
+ background: "#fafbfc",
6
+ chartGradient: ["#ffffff", "#fafbfc"],
7
+ grid: { color: "rgba(208,215,222,0.4)" },
8
+ candlestick: {
9
+ up: { body: a("#2da44e"), wick: "#2da44e" },
10
+ down: { body: a("#cf222e"), wick: "#cf222e" }
11
+ },
12
+ line: { color: "#0969da", areaTopColor: "rgba(9,105,218,0.05)", areaBottomColor: "rgba(9,105,218,0.005)" },
13
+ seriesColors: [
14
+ "#0969da",
15
+ "#c4820e",
16
+ "#2da44e",
17
+ "#8250df",
18
+ "#cf222e",
19
+ "#c4820e",
20
+ "#0550ae",
21
+ "#cf222e",
22
+ "#2da44e",
23
+ "#8250df"
24
+ ],
25
+ bands: { upper: "#0550ae", lower: "#cf222e" },
26
+ crosshair: { color: "rgba(80,90,100,0.5)", labelBackground: "#f0f3f6" },
27
+ axis: { textColor: "#8b949e" },
28
+ tooltip: { background: "rgba(250,251,252,0.95)", textColor: "#24292f", borderColor: "rgba(216,222,228,0.5)" },
29
+ typography: { fontFamily: e },
30
+ fontUrl: r
31
+ });
32
+ export {
33
+ t as githubLight
34
+ };
@@ -0,0 +1,33 @@
1
+ import { createTheme as r, MONO_URL as b, MONO as a, autoGradient as o } from "../create.js";
2
+ const t = r({
3
+ name: "Gruvbox",
4
+ description: "Retro warm with earthy tones",
5
+ background: "#282828",
6
+ grid: { color: "rgba(100,94,90,0.2)" },
7
+ candlestick: {
8
+ up: { body: o("#b8bb26"), wick: "#b8bb26" },
9
+ down: { body: o("#fb4934"), wick: "#fb4934" }
10
+ },
11
+ line: { color: "#83a598" },
12
+ seriesColors: [
13
+ "#83a598",
14
+ "#fe8019",
15
+ "#b8bb26",
16
+ "#d3869b",
17
+ "#fb4934",
18
+ "#fabd2f",
19
+ "#8ec07c",
20
+ "#fb4934",
21
+ "#458588",
22
+ "#d3869b"
23
+ ],
24
+ bands: { upper: "#83a598", lower: "#d3869b" },
25
+ crosshair: { color: "rgba(146,131,116,0.7)", labelBackground: "#3c3836" },
26
+ axis: { textColor: "#928374" },
27
+ tooltip: { background: "rgba(40,40,40,0.92)", textColor: "#ebdbb2", borderColor: "rgba(60,56,54,0.6)" },
28
+ typography: { fontFamily: a },
29
+ fontUrl: b
30
+ });
31
+ export {
32
+ t as gruvbox
33
+ };
@@ -0,0 +1,101 @@
1
+ import { CAVEAT as o, CAVEAT_URL as r, autoGradient as a } from "../create.js";
2
+ const t = {
3
+ name: "Handwritten",
4
+ description: "Sketch-style with a personal touch",
5
+ fontUrl: r,
6
+ dark: !1,
7
+ theme: {
8
+ background: "#fdf5e6",
9
+ chartGradient: ["#fef6e3", "#fdf5e6"],
10
+ // Caveat reads larger than monospace at the same px size, but `18` was
11
+ // overshooting — sidebar items and prop descriptions sat ~50 % taller
12
+ // than every other theme. `15` lands in the same visual weight class
13
+ // while still feeling distinctly handwritten.
14
+ typography: {
15
+ fontFamily: o,
16
+ fontSize: 15
17
+ },
18
+ grid: {
19
+ color: "rgba(180,170,150,0.2)",
20
+ style: "solid"
21
+ },
22
+ candlestick: {
23
+ up: { body: a("#7a9a5e"), wick: "#7a9a5e" },
24
+ down: { body: a("#b07060"), wick: "#b07060" }
25
+ },
26
+ line: {
27
+ color: "#6a8fa0",
28
+ width: 1,
29
+ areaTopColor: "rgba(106,143,160,0.08)",
30
+ areaBottomColor: "rgba(106,143,160,0.01)"
31
+ },
32
+ seriesColors: [
33
+ "#6a8fa0",
34
+ "#c09050",
35
+ "#7a9a5e",
36
+ "#8a7098",
37
+ "#b07060",
38
+ "#a09030",
39
+ "#508878",
40
+ "#a06878",
41
+ "#6888a0",
42
+ "#8870a0"
43
+ ],
44
+ bands: {
45
+ upper: "#6888a0",
46
+ lower: "#a06878"
47
+ },
48
+ crosshair: {
49
+ color: "rgba(160,152,128,0.3)",
50
+ labelBackground: "#f5edd8",
51
+ labelTextColor: "#5c5040"
52
+ },
53
+ axis: {
54
+ fontSize: 13,
55
+ textColor: "#a09880"
56
+ },
57
+ yLabel: {
58
+ fontSize: 15,
59
+ upBackground: "#7a9a5e",
60
+ downBackground: "#b07060",
61
+ neutralBackground: "#e8dcc8",
62
+ textColor: "#fdf5e6"
63
+ },
64
+ tooltip: {
65
+ fontSize: 14,
66
+ background: "rgba(253,245,230,0.95)",
67
+ textColor: "#5c5040",
68
+ borderColor: "rgba(180,170,150,0.3)"
69
+ },
70
+ navigator: {
71
+ height: 48,
72
+ background: "transparent",
73
+ borderColor: "rgba(106,143,160,0.22)",
74
+ line: {
75
+ color: "#92806c",
76
+ width: 1,
77
+ areaTopColor: "rgba(146,128,108,0.18)",
78
+ areaBottomColor: "rgba(146,128,108,0)"
79
+ },
80
+ candlestick: {
81
+ up: { body: a("#7a9a5e"), wick: "#7a9a5e" },
82
+ down: { body: a("#b07060"), wick: "#b07060" }
83
+ },
84
+ window: {
85
+ fill: "transparent",
86
+ border: "transparent",
87
+ borderWidth: 0
88
+ },
89
+ handle: {
90
+ color: "rgba(0,0,0,0.30)",
91
+ width: 6
92
+ },
93
+ mask: {
94
+ fill: "rgba(253,245,230,0.78)"
95
+ }
96
+ }
97
+ }
98
+ };
99
+ export {
100
+ t as handwritten
101
+ };
@@ -0,0 +1,33 @@
1
+ import { createTheme as o, autoGradient as a } from "../create.js";
2
+ const r = "'Silkscreen', cursive", c = "https://fonts.googleapis.com/css2?family=Silkscreen:wght@400;700&display=swap", f = o({
3
+ name: "Matrix",
4
+ background: "#000000",
5
+ candlestick: {
6
+ up: { body: a("#00ff41"), wick: "#00ff41" },
7
+ down: { body: a("#00802a"), wick: "#00802a" }
8
+ },
9
+ line: { color: "#00ff41" },
10
+ seriesColors: [
11
+ "#00ff41",
12
+ "#00cc33",
13
+ "#00992a",
14
+ "#33ff66",
15
+ "#66ff88",
16
+ "#00e639",
17
+ "#00b830",
18
+ "#4dff78",
19
+ "#00ff41",
20
+ "#00cc33"
21
+ ],
22
+ bands: { upper: "#33ff66", lower: "#00802a" },
23
+ grid: { color: "rgba(0,255,65,0.08)" },
24
+ axis: { textColor: "#00cc33" },
25
+ crosshair: { color: "rgba(0,255,65,0.3)", labelBackground: "#0a1a0a" },
26
+ tooltip: { background: "rgba(0,10,0,0.95)", textColor: "#00ff41", borderColor: "rgba(0,255,65,0.2)" },
27
+ typography: { fontFamily: r },
28
+ fontUrl: c,
29
+ chartGradient: ["#010a01", "#000000"]
30
+ });
31
+ export {
32
+ f as highContrast
33
+ };
@@ -0,0 +1,33 @@
1
+ import { createTheme as a, JAKARTA_URL as o, JAKARTA as r, autoGradient as e } from "../create.js";
2
+ const c = a({
3
+ name: "Lavender Mist",
4
+ background: "#f5f0f4",
5
+ candlestick: {
6
+ up: { body: e("#6b8e5e"), wick: "#6b8e5e" },
7
+ down: { body: e("#b85468"), wick: "#b85468" }
8
+ },
9
+ line: { color: "#7c6bc4" },
10
+ seriesColors: [
11
+ "#7c6bc4",
12
+ "#d4885a",
13
+ "#6b8e5e",
14
+ "#c46b8e",
15
+ "#b85468",
16
+ "#8e7a4e",
17
+ "#4e8e8a",
18
+ "#b85468",
19
+ "#7c6bc4",
20
+ "#c46b8e"
21
+ ],
22
+ bands: { upper: "#4e8e8a", lower: "#b85468" },
23
+ grid: { color: "rgba(150,130,155,0.3)", style: "dashed" },
24
+ axis: { textColor: "#9a88a0" },
25
+ crosshair: { color: "rgba(80,60,90,0.45)", labelBackground: "#ebe4e8" },
26
+ tooltip: { background: "rgba(245,240,244,0.95)", textColor: "#3a3050", borderColor: "rgba(150,130,155,0.25)" },
27
+ typography: { fontFamily: r },
28
+ fontUrl: o,
29
+ chartGradient: ["#f8f4f7", "#f5f0f4"]
30
+ });
31
+ export {
32
+ c as lavenderMist
33
+ };
@@ -0,0 +1,34 @@
1
+ import { createTheme as o, GEIST_URL as r, GEIST as e, autoGradient as a } from "../create.js";
2
+ const c = o({
3
+ name: "Love",
4
+ description: "Soft romantic pinks and roses",
5
+ background: "#fef7f8",
6
+ chartGradient: ["#fffafb", "#fef7f8"],
7
+ grid: { color: "rgba(200,160,175,0.25)", style: "dotted" },
8
+ candlestick: {
9
+ up: { body: a("#6a9a6e"), wick: "#6a9a6e" },
10
+ down: { body: a("#c45070"), wick: "#c45070" }
11
+ },
12
+ line: { color: "#a05080" },
13
+ seriesColors: [
14
+ "#a05080",
15
+ "#d08850",
16
+ "#6a9a6e",
17
+ "#7868a8",
18
+ "#c45070",
19
+ "#c89040",
20
+ "#508890",
21
+ "#c45070",
22
+ "#a05080",
23
+ "#7868a8"
24
+ ],
25
+ bands: { upper: "#508890", lower: "#c45070" },
26
+ crosshair: { color: "rgba(120,70,90,0.5)", labelBackground: "#f0dce2" },
27
+ axis: { textColor: "#b08898" },
28
+ tooltip: { background: "rgba(253,242,244,0.95)", textColor: "#4a3040", borderColor: "rgba(200,160,175,0.25)" },
29
+ typography: { fontFamily: e },
30
+ fontUrl: r
31
+ });
32
+ export {
33
+ c as lightPink
34
+ };
@@ -0,0 +1,33 @@
1
+ import { createTheme as o, ROBOTO_URL as r, ROBOTO as e, autoGradient as a } from "../create.js";
2
+ const t = o({
3
+ name: "Material Palenight",
4
+ description: "Material Design in moonlit hues",
5
+ background: "#292d3e",
6
+ grid: { color: "rgba(95,99,120,0.2)" },
7
+ candlestick: {
8
+ up: { body: a("#c3e88d"), wick: "#c3e88d" },
9
+ down: { body: a("#f07178"), wick: "#f07178" }
10
+ },
11
+ line: { color: "#82aaff" },
12
+ seriesColors: [
13
+ "#82aaff",
14
+ "#f78c6c",
15
+ "#c3e88d",
16
+ "#c792ea",
17
+ "#f07178",
18
+ "#ffcb6b",
19
+ "#89ddff",
20
+ "#ff5370",
21
+ "#82aaff",
22
+ "#c792ea"
23
+ ],
24
+ bands: { upper: "#89ddff", lower: "#f07178" },
25
+ crosshair: { color: "rgba(103,110,149,0.7)", labelBackground: "#34324a" },
26
+ axis: { textColor: "#676e95" },
27
+ tooltip: { background: "rgba(41,45,62,0.92)", textColor: "#a6accd", borderColor: "rgba(55,59,75,0.6)" },
28
+ typography: { fontFamily: e },
29
+ fontUrl: r
30
+ });
31
+ export {
32
+ t as materialPalenight
33
+ };
@@ -0,0 +1,34 @@
1
+ import { createTheme as a, autoGradient as o } from "../create.js";
2
+ const b = "'Silkscreen', cursive", r = "https://fonts.googleapis.com/css2?family=Silkscreen:wght@400;700&display=swap", c = a({
3
+ name: "Monochrome",
4
+ description: "Pure black and white, pixel font",
5
+ background: "#ffffff",
6
+ chartGradient: ["#ffffff", "#fafafa"],
7
+ grid: { color: "rgba(0,0,0,0.04)", style: "solid" },
8
+ candlestick: {
9
+ up: { body: o("#111111"), wick: "#111111" },
10
+ down: { body: o("#bbbbbb"), wick: "#bbbbbb" }
11
+ },
12
+ line: { color: "#111111" },
13
+ seriesColors: [
14
+ "#111111",
15
+ "#888888",
16
+ "#bbbbbb",
17
+ "#555555",
18
+ "#999999",
19
+ "#333333",
20
+ "#aaaaaa",
21
+ "#666666",
22
+ "#cccccc",
23
+ "#444444"
24
+ ],
25
+ bands: { upper: "#555555", lower: "#bbbbbb" },
26
+ crosshair: { color: "rgba(0,0,0,0.35)", labelBackground: "#f0f0f0" },
27
+ axis: { textColor: "#b0b0b0" },
28
+ tooltip: { fontSize: 9, background: "rgba(255,255,255,0.97)", textColor: "#222222", borderColor: "rgba(0,0,0,0.04)" },
29
+ typography: { fontFamily: b },
30
+ fontUrl: r
31
+ });
32
+ export {
33
+ c as minimalLight
34
+ };