@cascivo/charts 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,61 +1 @@
1
- "use client";
2
- import { i as e, l as t, t as n } from "./chart-frame.module-CkOcXGSL.js";
3
- import { Fragment as r, jsx as i, jsxs as a } from "react/jsx-runtime";
4
- //#region src/core/mini-frame.tsx
5
- var o = {
6
- position: "absolute",
7
- insetInlineStart: "-9999px",
8
- inlineSize: "1px",
9
- blockSize: "1px",
10
- overflow: "hidden",
11
- clipPath: "inset(50%)",
12
- whiteSpace: "nowrap"
13
- };
14
- function s({ title: e, width: t, height: r, className: s, fallback: c, children: l }) {
15
- return /* @__PURE__ */ a("div", {
16
- className: [n.frame, s].filter(Boolean).join(" "),
17
- "data-plain": "",
18
- children: [/* @__PURE__ */ i("svg", {
19
- role: "img",
20
- "aria-label": e,
21
- width: t,
22
- height: r,
23
- viewBox: `0 0 ${t} ${r}`,
24
- children: l
25
- }), c && /* @__PURE__ */ i("div", {
26
- className: n.fallback,
27
- style: o,
28
- children: c
29
- })]
30
- });
31
- }
32
- //#endregion
33
- //#region src/charts/sparkline/sparkline-lite.tsx
34
- function c({ data: n, width: o = 120, height: c = 32, label: l, ariaLabel: u, color: d = "var(--cascivo-chart-1)", endDot: f = !0, className: p }) {
35
- let m = (() => {
36
- if (n.length === 0) return [];
37
- let e = t([0, n.length - 1], [2, o - 2]), r = Math.min(...n), i = Math.max(...n), a = t([r === i ? r - 1 : r, i], [c - 2, 2]);
38
- return n.map((t, n) => [e.map(n), a.map(t)]);
39
- })(), h = m[m.length - 1];
40
- return /* @__PURE__ */ i(s, {
41
- title: l ?? u,
42
- width: o,
43
- height: c,
44
- ...p === void 0 ? {} : { className: p },
45
- children: m.length > 0 && /* @__PURE__ */ a(r, { children: [/* @__PURE__ */ i("path", {
46
- d: e(m, "monotone"),
47
- fill: "none",
48
- stroke: d,
49
- strokeWidth: 1.5,
50
- strokeLinecap: "round",
51
- strokeLinejoin: "round"
52
- }), f && h && /* @__PURE__ */ i("circle", {
53
- cx: h[0],
54
- cy: h[1],
55
- r: 2.5,
56
- fill: d
57
- })] })
58
- });
59
- }
60
- //#endregion
61
- export { c as Sparkline };
1
+ "use client";import{i as e,l as t,t as n}from"./chart-frame.module-B498IKO9.js";import{Fragment as r,jsx as i,jsxs as a}from"react/jsx-runtime";var o={position:`absolute`,insetInlineStart:`-9999px`,inlineSize:`1px`,blockSize:`1px`,overflow:`hidden`,clipPath:`inset(50%)`,whiteSpace:`nowrap`};function MiniFrame({title:e,width:t,height:r,className:s,fallback:c,children:l}){return a(`div`,{className:[n.frame,s].filter(Boolean).join(` `),"data-plain":``,children:[i(`svg`,{role:`img`,"aria-label":e,width:t,height:r,viewBox:`0 0 ${t} ${r}`,children:l}),c&&i(`div`,{className:n.fallback,style:o,children:c})]})}function Sparkline({data:n,width:o=120,height:s=32,label:c,ariaLabel:l,color:u=`var(--cascivo-chart-1)`,endDot:d=!0,className:f}){let p=(()=>{if(n.length===0)return[];let e=t([0,n.length-1],[2,o-2]),r=Math.min(...n),i=Math.max(...n),a=t([r===i?r-1:r,i],[s-2,2]);return n.map((t,n)=>[e.map(n),a.map(t)])})(),m=p[p.length-1];return i(MiniFrame,{title:c??l,width:o,height:s,...f===void 0?{}:{className:f},children:p.length>0&&a(r,{children:[i(`path`,{d:e(p,`monotone`),fill:`none`,stroke:u,strokeWidth:1.5,strokeLinecap:`round`,strokeLinejoin:`round`}),d&&m&&i(`circle`,{cx:m[0],cy:m[1],r:2.5,fill:u})]})})}export{Sparkline};
package/dist/sparkline.js CHANGED
@@ -1,62 +1,3 @@
1
1
  "use client";
2
2
  import './charts.css';
3
- import { i as e, l as t, t as n } from "./chart-frame.module-CkOcXGSL.js";
4
- import { Fragment as r, jsx as i, jsxs as a } from "react/jsx-runtime";
5
- //#region src/core/mini-frame.tsx
6
- var o = {
7
- position: "absolute",
8
- insetInlineStart: "-9999px",
9
- inlineSize: "1px",
10
- blockSize: "1px",
11
- overflow: "hidden",
12
- clipPath: "inset(50%)",
13
- whiteSpace: "nowrap"
14
- };
15
- function s({ title: e, width: t, height: r, className: s, fallback: c, children: l }) {
16
- return /* @__PURE__ */ a("div", {
17
- className: [n.frame, s].filter(Boolean).join(" "),
18
- "data-plain": "",
19
- children: [/* @__PURE__ */ i("svg", {
20
- role: "img",
21
- "aria-label": e,
22
- width: t,
23
- height: r,
24
- viewBox: `0 0 ${t} ${r}`,
25
- children: l
26
- }), c && /* @__PURE__ */ i("div", {
27
- className: n.fallback,
28
- style: o,
29
- children: c
30
- })]
31
- });
32
- }
33
- //#endregion
34
- //#region src/charts/sparkline/sparkline-lite.tsx
35
- function c({ data: n, width: o = 120, height: c = 32, label: l, ariaLabel: u, color: d = "var(--cascivo-chart-1)", endDot: f = !0, className: p }) {
36
- let m = (() => {
37
- if (n.length === 0) return [];
38
- let e = t([0, n.length - 1], [2, o - 2]), r = Math.min(...n), i = Math.max(...n), a = t([r === i ? r - 1 : r, i], [c - 2, 2]);
39
- return n.map((t, n) => [e.map(n), a.map(t)]);
40
- })(), h = m[m.length - 1];
41
- return /* @__PURE__ */ i(s, {
42
- title: l ?? u,
43
- width: o,
44
- height: c,
45
- ...p === void 0 ? {} : { className: p },
46
- children: m.length > 0 && /* @__PURE__ */ a(r, { children: [/* @__PURE__ */ i("path", {
47
- d: e(m, "monotone"),
48
- fill: "none",
49
- stroke: d,
50
- strokeWidth: 1.5,
51
- strokeLinecap: "round",
52
- strokeLinejoin: "round"
53
- }), f && h && /* @__PURE__ */ i("circle", {
54
- cx: h[0],
55
- cy: h[1],
56
- r: 2.5,
57
- fill: d
58
- })] })
59
- });
60
- }
61
- //#endregion
62
- export { c as Sparkline };
3
+ import{i as e,l as t,t as n}from"./chart-frame.module-B498IKO9.js";import{Fragment as r,jsx as i,jsxs as a}from"react/jsx-runtime";var o={position:`absolute`,insetInlineStart:`-9999px`,inlineSize:`1px`,blockSize:`1px`,overflow:`hidden`,clipPath:`inset(50%)`,whiteSpace:`nowrap`};function MiniFrame({title:e,width:t,height:r,className:s,fallback:c,children:l}){return a(`div`,{className:[n.frame,s].filter(Boolean).join(` `),"data-plain":``,children:[i(`svg`,{role:`img`,"aria-label":e,width:t,height:r,viewBox:`0 0 ${t} ${r}`,children:l}),c&&i(`div`,{className:n.fallback,style:o,children:c})]})}function Sparkline({data:n,width:o=120,height:s=32,label:c,ariaLabel:l,color:u=`var(--cascivo-chart-1)`,endDot:d=!0,className:f}){let p=(()=>{if(n.length===0)return[];let e=t([0,n.length-1],[2,o-2]),r=Math.min(...n),i=Math.max(...n),a=t([r===i?r-1:r,i],[s-2,2]);return n.map((t,n)=>[e.map(n),a.map(t)])})(),m=p[p.length-1];return i(MiniFrame,{title:c??l,width:o,height:s,...f===void 0?{}:{className:f},children:p.length>0&&a(r,{children:[i(`path`,{d:e(p,`monotone`),fill:`none`,stroke:u,strokeWidth:1.5,strokeLinecap:`round`,strokeLinejoin:`round`}),d&&m&&i(`circle`,{cx:m[0],cy:m[1],r:2.5,fill:u})]})})}export{Sparkline};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cascivo/charts",
3
- "version": "1.0.0",
3
+ "version": "1.2.0",
4
4
  "private": false,
5
5
  "description": "Chart components built from scratch — scales, shapes, and signal-driven rendering, zero dependencies. Colors come from @cascivo/themes; components from @cascivo/react. Docs offline: npx @cascivo/docs",
6
6
  "keywords": [
@@ -51,8 +51,8 @@
51
51
  "provenance": true
52
52
  },
53
53
  "dependencies": {
54
- "@cascivo/core": "^1.0.0",
55
- "@cascivo/i18n": "^1.0.0"
54
+ "@cascivo/core": "^1.2.0",
55
+ "@cascivo/i18n": "^1.2.0"
56
56
  },
57
57
  "devDependencies": {
58
58
  "@preact/signals": "^2",
@@ -1,191 +0,0 @@
1
- "use client";
2
- //#region src/engine/scale.ts
3
- function e(e, n) {
4
- let [r, i] = e, [a, o] = n, s = i - r;
5
- return {
6
- domain: e,
7
- range: n,
8
- map: (e) => s === 0 ? a : a + (e - r) / s * (o - a),
9
- invert: (e) => o - a === 0 ? r : r + (e - a) / (o - a) * s,
10
- ticks: (e = 5, n) => t(r, i, e, n)
11
- };
12
- }
13
- function t(e, t, n = 5, r) {
14
- if (!Number.isFinite(e) || !Number.isFinite(t) || e === t) return [e];
15
- e > t && ([e, t] = [t, e]);
16
- let i = r ?? !(Number.isInteger(e) && Number.isInteger(t)), a = (t - e) / Math.max(1, n), o = 10 ** Math.floor(Math.log10(a)), s = i ? [
17
- 1,
18
- 2,
19
- 2.5,
20
- 5,
21
- 10
22
- ] : [
23
- 1,
24
- 2,
25
- 5,
26
- 10
27
- ], c = a / o, l = (s.find((e) => e >= c) ?? 10) * o;
28
- i || (l = Math.max(1, Math.round(l)));
29
- let u = Math.ceil(e / l), d = Math.floor(t / l + 1e-9), f = [], p = Math.max(0, Math.ceil(-Math.log10(l)) + 2);
30
- for (let e = u; e <= d; e++) f.push(parseFloat((e * l).toFixed(p)));
31
- return f;
32
- }
33
- function n(e, t, n = .1) {
34
- let [r, i] = t, a = e.length, o = (i - r) / Math.max(1, a + n * (a + 1)), s = o, c = o * n, l = new Map(e.map((e, t) => [e, t]));
35
- return {
36
- domain: e,
37
- range: t,
38
- bandwidth: s,
39
- map: (e) => {
40
- let t = l.get(e);
41
- return t === void 0 ? void 0 : r + c + t * (o + c);
42
- }
43
- };
44
- }
45
- function r(e, t) {
46
- let [n, r] = e, [i, a] = t, o = Math.sqrt(Math.max(0, n)), s = Math.sqrt(Math.max(0, r)) - o;
47
- return (e) => s === 0 ? (i + a) / 2 : i + (Math.sqrt(Math.max(0, e)) - o) / s * (a - i);
48
- }
49
- //#endregion
50
- //#region src/engine/shape.ts
51
- function i(e) {
52
- return Math.round(e * 100) / 100;
53
- }
54
- function a(e, t = !1) {
55
- if (t) {
56
- let t = e.filter((e) => e !== null);
57
- return t.length > 0 ? [t] : [];
58
- }
59
- let n = [], r = [];
60
- for (let t of e) t === null ? (r.length > 0 && n.push(r), r = []) : r.push(t);
61
- return r.length > 0 && n.push(r), n;
62
- }
63
- function o(e, t = "linear") {
64
- if (e.length === 0) return "";
65
- if (e.length === 1 || t === "linear") return e.map(([e, t], n) => `${n === 0 ? "M" : "L"}${e},${t}`).join("");
66
- switch (t) {
67
- case "monotone": return p(e);
68
- case "step":
69
- case "stepBefore":
70
- case "stepAfter": return s(e, t);
71
- case "natural": return l(e);
72
- case "basis": return u(e);
73
- case "cardinal": return d(e, 0);
74
- case "catmullRom": return f(e, .5);
75
- default: return p(e);
76
- }
77
- }
78
- function s(e, t) {
79
- let n = `M${e[0][0]},${e[0][1]}`;
80
- for (let r = 0; r < e.length - 1; r++) {
81
- let [i, a] = e[r], [o, s] = e[r + 1];
82
- if (t === "stepBefore") n += `L${i},${s}L${o},${s}`;
83
- else if (t === "stepAfter") n += `L${o},${a}L${o},${s}`;
84
- else {
85
- let e = (i + o) / 2;
86
- n += `L${e},${a}L${e},${s}L${o},${s}`;
87
- }
88
- }
89
- return n;
90
- }
91
- function c(e) {
92
- let t = e.length - 1;
93
- if (t < 1) return [[], []];
94
- let n = Array(t), r = Array(t), i = Array(t);
95
- r[0] = 2, i[0] = e[0] + 2 * e[1];
96
- for (let a = 1; a < t - 1; a++) n[a] = 1, r[a] = 4, i[a] = 4 * e[a] + 2 * e[a + 1];
97
- n[t - 1] = 2, r[t - 1] = 7, i[t - 1] = 8 * e[t - 1] + e[t];
98
- for (let e = 1; e < t; e++) {
99
- let t = (n[e] ?? 0) / r[e - 1];
100
- r[e] = r[e] - t, i[e] = i[e] - t * i[e - 1];
101
- }
102
- let a = Array(t), o = Array(t);
103
- a[t - 1] = i[t - 1] / r[t - 1];
104
- for (let e = t - 2; e >= 0; e--) a[e] = (i[e] - a[e + 1]) / r[e];
105
- for (let n = 0; n < t - 1; n++) o[n] = 2 * e[n + 1] - a[n + 1];
106
- return o[t - 1] = (e[t] + a[t - 1]) / 2, [a, o];
107
- }
108
- function l(e) {
109
- let t = e.length;
110
- if (t < 3) return e.map(([e, t], n) => `${n === 0 ? "M" : "L"}${e},${t}`).join("");
111
- let n = e.map((e) => e[0]), r = e.map((e) => e[1]), [i, a] = c(n), [o, s] = c(r), l = `M${n[0]},${r[0]}`;
112
- for (let e = 0; e < t - 1; e++) l += `C${i[e]},${o[e]} ${a[e]},${s[e]} ${n[e + 1]},${r[e + 1]}`;
113
- return l;
114
- }
115
- function u(e) {
116
- let t = e.length;
117
- if (t < 3) return e.map(([e, t], n) => `${n === 0 ? "M" : "L"}${e},${t}`).join("");
118
- let n = (n) => e[Math.max(0, Math.min(t - 1, n))][0], r = (n) => e[Math.max(0, Math.min(t - 1, n))][1], i = `M${n(0)},${r(0)}`;
119
- for (let e = 0; e < t - 1; e++) {
120
- let t = n(e - 1), a = r(e - 1), o = n(e), s = r(e), c = n(e + 1), l = r(e + 1), u = (2 * t + o) / 3, d = (2 * a + s) / 3, f = (t + 2 * o) / 3, p = (a + 2 * s) / 3, m = (t + 4 * o + c) / 6, h = (a + 4 * s + l) / 6;
121
- i += `C${u},${d} ${f},${p} ${m},${h}`;
122
- }
123
- let a = e[t - 1];
124
- return i += `L${a[0]},${a[1]}`, i;
125
- }
126
- function d(e, t) {
127
- let n = e.length;
128
- if (n < 3) return e.map(([e, t], n) => `${n === 0 ? "M" : "L"}${e},${t}`).join("");
129
- let r = (1 - t) / 6, i = (t) => e[Math.max(0, Math.min(n - 1, t))], a = `M${e[0][0]},${e[0][1]}`;
130
- for (let e = 0; e < n - 1; e++) {
131
- let t = i(e - 1), n = i(e), o = i(e + 1), s = i(e + 2), c = n[0] + r * (o[0] - t[0]), l = n[1] + r * (o[1] - t[1]), u = o[0] - r * (s[0] - n[0]), d = o[1] - r * (s[1] - n[1]);
132
- a += `C${c},${l} ${u},${d} ${o[0]},${o[1]}`;
133
- }
134
- return a;
135
- }
136
- function f(e, t) {
137
- let n = e.length;
138
- if (n < 3) return e.map(([e, t], n) => `${n === 0 ? "M" : "L"}${e},${t}`).join("");
139
- let r = (t) => e[Math.max(0, Math.min(n - 1, t))], i = (e, t) => Math.hypot(t[0] - e[0], t[1] - e[1]), a = `M${e[0][0]},${e[0][1]}`;
140
- for (let e = 0; e < n - 1; e++) {
141
- let n = r(e - 1), o = r(e), s = r(e + 1), c = r(e + 2), l = i(n, o) ** +t || 1e-6, u = i(o, s) ** +t || 1e-6, d = i(s, c) ** +t || 1e-6, f = s[0] - o[0] + u * ((o[0] - n[0]) / l - (s[0] - n[0]) / (l + u)), p = s[1] - o[1] + u * ((o[1] - n[1]) / l - (s[1] - n[1]) / (l + u)), m = s[0] - o[0] + u * ((c[0] - s[0]) / d - (c[0] - o[0]) / (u + d)), h = s[1] - o[1] + u * ((c[1] - s[1]) / d - (c[1] - o[1]) / (u + d)), g = o[0] + f / 3, _ = o[1] + p / 3, v = s[0] - m / 3, y = s[1] - h / 3;
142
- a += `C${g},${_} ${v},${y} ${s[0]},${s[1]}`;
143
- }
144
- return a;
145
- }
146
- function p(e) {
147
- let t = e.length, n = [], r = [], i = [];
148
- for (let a = 0; a < t - 1; a++) n[a] = e[a + 1][0] - e[a][0], r[a] = e[a + 1][1] - e[a][1], i[a] = n[a] === 0 ? 0 : r[a] / n[a];
149
- let a = [i[0] ?? 0];
150
- for (let e = 1; e < t - 1; e++) {
151
- let t = i[e - 1], n = i[e];
152
- a[e] = t * n <= 0 ? 0 : 2 * t * n / (t + n);
153
- }
154
- a[t - 1] = i[t - 2] ?? 0;
155
- let o = `M${e[0][0]},${e[0][1]}`;
156
- for (let n = 0; n < t - 1; n++) {
157
- let [t, r] = e[n], [i, s] = e[n + 1], c = (i - t) / 3;
158
- o += `C${t + c},${r + c * a[n]} ${i - c},${s - c * a[n + 1]} ${i},${s}`;
159
- }
160
- return o;
161
- }
162
- function m(e, t, n = "linear") {
163
- if (e.length === 0) return "";
164
- let r = o(e, n), i = e[e.length - 1], a = e[0];
165
- return `${r}L${i[0]},${t}L${a[0]},${t}Z`;
166
- }
167
- function h(e, t, n, r, a, o) {
168
- let s = 2 * Math.PI;
169
- if (Math.abs(o - a) >= s - 1e-9) {
170
- let i = a + Math.PI;
171
- return h(e, t, n, r, a, i) + h(e, t, n, r, i, a + s - 1e-9);
172
- }
173
- let c = (n, r) => [i(e + n * Math.sin(r)), i(t - n * Math.cos(r))], l = +(o - a > Math.PI), u = i(n), d = i(r), [f, p] = c(n, a), [m, g] = c(n, o);
174
- if (r <= 0) return `M${i(e)},${i(t)}L${f},${p}A${u},${u} 0 ${l} 1 ${m},${g}Z`;
175
- let [_, v] = c(r, o), [y, b] = c(r, a);
176
- return `M${f},${p}A${u},${u} 0 ${l} 1 ${m},${g}L${_},${v}A${d},${d} 0 ${l} 0 ${y},${b}Z`;
177
- }
178
- function g(e) {
179
- let t = e[0]?.length ?? 0, n = Array.from({ length: t }, () => 0);
180
- return e.map((e) => e.map((e, t) => {
181
- let r = n[t];
182
- return n[t] = r + e, [r, n[t]];
183
- }));
184
- }
185
- var _ = {
186
- frame: "_frame_1gm0a_2",
187
- "cascivo-chart-in": "_cascivo-chart-in_1gm0a_1",
188
- fallback: "_fallback_1gm0a_78"
189
- };
190
- //#endregion
191
- export { i as a, n as c, r as d, o as i, e as l, h as n, a as o, m as r, g as s, _ as t, t as u };
@@ -1,191 +0,0 @@
1
- "use client";
2
- //#region src/engine/scale.ts
3
- function e(e, n) {
4
- let [r, i] = e, [a, o] = n, s = i - r;
5
- return {
6
- domain: e,
7
- range: n,
8
- map: (e) => s === 0 ? a : a + (e - r) / s * (o - a),
9
- invert: (e) => o - a === 0 ? r : r + (e - a) / (o - a) * s,
10
- ticks: (e = 5, n) => t(r, i, e, n)
11
- };
12
- }
13
- function t(e, t, n = 5, r) {
14
- if (!Number.isFinite(e) || !Number.isFinite(t) || e === t) return [e];
15
- e > t && ([e, t] = [t, e]);
16
- let i = r ?? !(Number.isInteger(e) && Number.isInteger(t)), a = (t - e) / Math.max(1, n), o = 10 ** Math.floor(Math.log10(a)), s = i ? [
17
- 1,
18
- 2,
19
- 2.5,
20
- 5,
21
- 10
22
- ] : [
23
- 1,
24
- 2,
25
- 5,
26
- 10
27
- ], c = a / o, l = (s.find((e) => e >= c) ?? 10) * o;
28
- i || (l = Math.max(1, Math.round(l)));
29
- let u = Math.ceil(e / l), d = Math.floor(t / l + 1e-9), f = [], p = Math.max(0, Math.ceil(-Math.log10(l)) + 2);
30
- for (let e = u; e <= d; e++) f.push(parseFloat((e * l).toFixed(p)));
31
- return f;
32
- }
33
- function n(e, t, n = .1) {
34
- let [r, i] = t, a = e.length, o = (i - r) / Math.max(1, a + n * (a + 1)), s = o, c = o * n, l = new Map(e.map((e, t) => [e, t]));
35
- return {
36
- domain: e,
37
- range: t,
38
- bandwidth: s,
39
- map: (e) => {
40
- let t = l.get(e);
41
- return t === void 0 ? void 0 : r + c + t * (o + c);
42
- }
43
- };
44
- }
45
- function r(e, t) {
46
- let [n, r] = e, [i, a] = t, o = Math.sqrt(Math.max(0, n)), s = Math.sqrt(Math.max(0, r)) - o;
47
- return (e) => s === 0 ? (i + a) / 2 : i + (Math.sqrt(Math.max(0, e)) - o) / s * (a - i);
48
- }
49
- //#endregion
50
- //#region src/engine/shape.ts
51
- function i(e) {
52
- return Math.round(e * 100) / 100;
53
- }
54
- function a(e, t = !1) {
55
- if (t) {
56
- let t = e.filter((e) => e !== null);
57
- return t.length > 0 ? [t] : [];
58
- }
59
- let n = [], r = [];
60
- for (let t of e) t === null ? (r.length > 0 && n.push(r), r = []) : r.push(t);
61
- return r.length > 0 && n.push(r), n;
62
- }
63
- function o(e, t = "linear") {
64
- if (e.length === 0) return "";
65
- if (e.length === 1 || t === "linear") return e.map(([e, t], n) => `${n === 0 ? "M" : "L"}${e},${t}`).join("");
66
- switch (t) {
67
- case "monotone": return p(e);
68
- case "step":
69
- case "stepBefore":
70
- case "stepAfter": return s(e, t);
71
- case "natural": return l(e);
72
- case "basis": return u(e);
73
- case "cardinal": return d(e, 0);
74
- case "catmullRom": return f(e, .5);
75
- default: return p(e);
76
- }
77
- }
78
- function s(e, t) {
79
- let n = `M${e[0][0]},${e[0][1]}`;
80
- for (let r = 0; r < e.length - 1; r++) {
81
- let [i, a] = e[r], [o, s] = e[r + 1];
82
- if (t === "stepBefore") n += `L${i},${s}L${o},${s}`;
83
- else if (t === "stepAfter") n += `L${o},${a}L${o},${s}`;
84
- else {
85
- let e = (i + o) / 2;
86
- n += `L${e},${a}L${e},${s}L${o},${s}`;
87
- }
88
- }
89
- return n;
90
- }
91
- function c(e) {
92
- let t = e.length - 1;
93
- if (t < 1) return [[], []];
94
- let n = Array(t), r = Array(t), i = Array(t);
95
- r[0] = 2, i[0] = e[0] + 2 * e[1];
96
- for (let a = 1; a < t - 1; a++) n[a] = 1, r[a] = 4, i[a] = 4 * e[a] + 2 * e[a + 1];
97
- n[t - 1] = 2, r[t - 1] = 7, i[t - 1] = 8 * e[t - 1] + e[t];
98
- for (let e = 1; e < t; e++) {
99
- let t = (n[e] ?? 0) / r[e - 1];
100
- r[e] = r[e] - t, i[e] = i[e] - t * i[e - 1];
101
- }
102
- let a = Array(t), o = Array(t);
103
- a[t - 1] = i[t - 1] / r[t - 1];
104
- for (let e = t - 2; e >= 0; e--) a[e] = (i[e] - a[e + 1]) / r[e];
105
- for (let n = 0; n < t - 1; n++) o[n] = 2 * e[n + 1] - a[n + 1];
106
- return o[t - 1] = (e[t] + a[t - 1]) / 2, [a, o];
107
- }
108
- function l(e) {
109
- let t = e.length;
110
- if (t < 3) return e.map(([e, t], n) => `${n === 0 ? "M" : "L"}${e},${t}`).join("");
111
- let n = e.map((e) => e[0]), r = e.map((e) => e[1]), [i, a] = c(n), [o, s] = c(r), l = `M${n[0]},${r[0]}`;
112
- for (let e = 0; e < t - 1; e++) l += `C${i[e]},${o[e]} ${a[e]},${s[e]} ${n[e + 1]},${r[e + 1]}`;
113
- return l;
114
- }
115
- function u(e) {
116
- let t = e.length;
117
- if (t < 3) return e.map(([e, t], n) => `${n === 0 ? "M" : "L"}${e},${t}`).join("");
118
- let n = (n) => e[Math.max(0, Math.min(t - 1, n))][0], r = (n) => e[Math.max(0, Math.min(t - 1, n))][1], i = `M${n(0)},${r(0)}`;
119
- for (let e = 0; e < t - 1; e++) {
120
- let t = n(e - 1), a = r(e - 1), o = n(e), s = r(e), c = n(e + 1), l = r(e + 1), u = (2 * t + o) / 3, d = (2 * a + s) / 3, f = (t + 2 * o) / 3, p = (a + 2 * s) / 3, m = (t + 4 * o + c) / 6, h = (a + 4 * s + l) / 6;
121
- i += `C${u},${d} ${f},${p} ${m},${h}`;
122
- }
123
- let a = e[t - 1];
124
- return i += `L${a[0]},${a[1]}`, i;
125
- }
126
- function d(e, t) {
127
- let n = e.length;
128
- if (n < 3) return e.map(([e, t], n) => `${n === 0 ? "M" : "L"}${e},${t}`).join("");
129
- let r = (1 - t) / 6, i = (t) => e[Math.max(0, Math.min(n - 1, t))], a = `M${e[0][0]},${e[0][1]}`;
130
- for (let e = 0; e < n - 1; e++) {
131
- let t = i(e - 1), n = i(e), o = i(e + 1), s = i(e + 2), c = n[0] + r * (o[0] - t[0]), l = n[1] + r * (o[1] - t[1]), u = o[0] - r * (s[0] - n[0]), d = o[1] - r * (s[1] - n[1]);
132
- a += `C${c},${l} ${u},${d} ${o[0]},${o[1]}`;
133
- }
134
- return a;
135
- }
136
- function f(e, t) {
137
- let n = e.length;
138
- if (n < 3) return e.map(([e, t], n) => `${n === 0 ? "M" : "L"}${e},${t}`).join("");
139
- let r = (t) => e[Math.max(0, Math.min(n - 1, t))], i = (e, t) => Math.hypot(t[0] - e[0], t[1] - e[1]), a = `M${e[0][0]},${e[0][1]}`;
140
- for (let e = 0; e < n - 1; e++) {
141
- let n = r(e - 1), o = r(e), s = r(e + 1), c = r(e + 2), l = i(n, o) ** +t || 1e-6, u = i(o, s) ** +t || 1e-6, d = i(s, c) ** +t || 1e-6, f = s[0] - o[0] + u * ((o[0] - n[0]) / l - (s[0] - n[0]) / (l + u)), p = s[1] - o[1] + u * ((o[1] - n[1]) / l - (s[1] - n[1]) / (l + u)), m = s[0] - o[0] + u * ((c[0] - s[0]) / d - (c[0] - o[0]) / (u + d)), h = s[1] - o[1] + u * ((c[1] - s[1]) / d - (c[1] - o[1]) / (u + d)), g = o[0] + f / 3, _ = o[1] + p / 3, v = s[0] - m / 3, y = s[1] - h / 3;
142
- a += `C${g},${_} ${v},${y} ${s[0]},${s[1]}`;
143
- }
144
- return a;
145
- }
146
- function p(e) {
147
- let t = e.length, n = [], r = [], i = [];
148
- for (let a = 0; a < t - 1; a++) n[a] = e[a + 1][0] - e[a][0], r[a] = e[a + 1][1] - e[a][1], i[a] = n[a] === 0 ? 0 : r[a] / n[a];
149
- let a = [i[0] ?? 0];
150
- for (let e = 1; e < t - 1; e++) {
151
- let t = i[e - 1], n = i[e];
152
- a[e] = t * n <= 0 ? 0 : 2 * t * n / (t + n);
153
- }
154
- a[t - 1] = i[t - 2] ?? 0;
155
- let o = `M${e[0][0]},${e[0][1]}`;
156
- for (let n = 0; n < t - 1; n++) {
157
- let [t, r] = e[n], [i, s] = e[n + 1], c = (i - t) / 3;
158
- o += `C${t + c},${r + c * a[n]} ${i - c},${s - c * a[n + 1]} ${i},${s}`;
159
- }
160
- return o;
161
- }
162
- function m(e, t, n = "linear") {
163
- if (e.length === 0) return "";
164
- let r = o(e, n), i = e[e.length - 1], a = e[0];
165
- return `${r}L${i[0]},${t}L${a[0]},${t}Z`;
166
- }
167
- function h(e, t, n, r, a, o) {
168
- let s = 2 * Math.PI;
169
- if (Math.abs(o - a) >= s - 1e-9) {
170
- let i = a + Math.PI;
171
- return h(e, t, n, r, a, i) + h(e, t, n, r, i, a + s - 1e-9);
172
- }
173
- let c = (n, r) => [i(e + n * Math.sin(r)), i(t - n * Math.cos(r))], l = +(o - a > Math.PI), u = i(n), d = i(r), [f, p] = c(n, a), [m, g] = c(n, o);
174
- if (r <= 0) return `M${i(e)},${i(t)}L${f},${p}A${u},${u} 0 ${l} 1 ${m},${g}Z`;
175
- let [_, v] = c(r, o), [y, b] = c(r, a);
176
- return `M${f},${p}A${u},${u} 0 ${l} 1 ${m},${g}L${_},${v}A${d},${d} 0 ${l} 0 ${y},${b}Z`;
177
- }
178
- function g(e) {
179
- let t = e[0]?.length ?? 0, n = Array.from({ length: t }, () => 0);
180
- return e.map((e) => e.map((e, t) => {
181
- let r = n[t];
182
- return n[t] = r + e, [r, n[t]];
183
- }));
184
- }
185
- var _ = {
186
- frame: "_frame_1gm0a_2",
187
- "cascivo-chart-in": "_cascivo-chart-in_1gm0a_1",
188
- fallback: "_fallback_1gm0a_78"
189
- };
190
- //#endregion
191
- export { i as a, n as c, r as d, o as i, e as l, h as n, a as o, m as r, g as s, _ as t, t as u };