@alfadocs/ui-kit-debug 1.65.0 → 1.66.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 (123) hide show
  1. package/dist/_chunks/chart-CwmyCuWe.js +1340 -0
  2. package/dist/_chunks/chart-CwmyCuWe.js.map +1 -0
  3. package/dist/_chunks/heatmap-C1TeC7wT.js +3650 -0
  4. package/dist/_chunks/heatmap-C1TeC7wT.js.map +1 -0
  5. package/dist/agent-catalog.json +1 -1
  6. package/dist/components/_shared/use-apex-radial-centre.d.ts +7 -4
  7. package/dist/components/_shared/use-apex-radial-centre.d.ts.map +1 -1
  8. package/dist/components/chart/index.js +1 -1
  9. package/dist/components/heatmap/heatmap-context.d.ts +3 -0
  10. package/dist/components/heatmap/heatmap-context.d.ts.map +1 -1
  11. package/dist/components/heatmap/heatmap-disclosure.d.ts +67 -0
  12. package/dist/components/heatmap/heatmap-disclosure.d.ts.map +1 -0
  13. package/dist/components/heatmap/heatmap-format.d.ts.map +1 -1
  14. package/dist/components/heatmap/heatmap-grid.d.ts +1 -1
  15. package/dist/components/heatmap/heatmap-grid.d.ts.map +1 -1
  16. package/dist/components/heatmap/heatmap-legend.d.ts +5 -2
  17. package/dist/components/heatmap/heatmap-legend.d.ts.map +1 -1
  18. package/dist/components/heatmap/heatmap-model.d.ts +107 -15
  19. package/dist/components/heatmap/heatmap-model.d.ts.map +1 -1
  20. package/dist/components/heatmap/heatmap-table-view.d.ts +3 -2
  21. package/dist/components/heatmap/heatmap-table-view.d.ts.map +1 -1
  22. package/dist/components/heatmap/heatmap.d.ts +33 -7
  23. package/dist/components/heatmap/heatmap.d.ts.map +1 -1
  24. package/dist/components/heatmap/index.d.ts +1 -1
  25. package/dist/components/heatmap/index.d.ts.map +1 -1
  26. package/dist/components/heatmap/index.js +1 -1
  27. package/dist/i18n/locales/ar.d.ts +2 -0
  28. package/dist/i18n/locales/ar.d.ts.map +1 -1
  29. package/dist/i18n/locales/ar.js +2 -0
  30. package/dist/i18n/locales/ar.js.map +1 -1
  31. package/dist/i18n/locales/de.d.ts +2 -0
  32. package/dist/i18n/locales/de.d.ts.map +1 -1
  33. package/dist/i18n/locales/de.js +2 -0
  34. package/dist/i18n/locales/de.js.map +1 -1
  35. package/dist/i18n/locales/el.d.ts +2 -0
  36. package/dist/i18n/locales/el.d.ts.map +1 -1
  37. package/dist/i18n/locales/el.js +2 -0
  38. package/dist/i18n/locales/el.js.map +1 -1
  39. package/dist/i18n/locales/en.d.ts +2 -0
  40. package/dist/i18n/locales/en.d.ts.map +1 -1
  41. package/dist/i18n/locales/en.js +2 -0
  42. package/dist/i18n/locales/en.js.map +1 -1
  43. package/dist/i18n/locales/es.d.ts +2 -0
  44. package/dist/i18n/locales/es.d.ts.map +1 -1
  45. package/dist/i18n/locales/es.js +2 -0
  46. package/dist/i18n/locales/es.js.map +1 -1
  47. package/dist/i18n/locales/fr.d.ts +2 -0
  48. package/dist/i18n/locales/fr.d.ts.map +1 -1
  49. package/dist/i18n/locales/fr.js +2 -0
  50. package/dist/i18n/locales/fr.js.map +1 -1
  51. package/dist/i18n/locales/hi.d.ts +2 -0
  52. package/dist/i18n/locales/hi.d.ts.map +1 -1
  53. package/dist/i18n/locales/hi.js +2 -0
  54. package/dist/i18n/locales/hi.js.map +1 -1
  55. package/dist/i18n/locales/it.d.ts +2 -0
  56. package/dist/i18n/locales/it.d.ts.map +1 -1
  57. package/dist/i18n/locales/it.js +2 -0
  58. package/dist/i18n/locales/it.js.map +1 -1
  59. package/dist/i18n/locales/ja.d.ts +2 -0
  60. package/dist/i18n/locales/ja.d.ts.map +1 -1
  61. package/dist/i18n/locales/ja.js +2 -0
  62. package/dist/i18n/locales/ja.js.map +1 -1
  63. package/dist/i18n/locales/nl.d.ts +2 -0
  64. package/dist/i18n/locales/nl.d.ts.map +1 -1
  65. package/dist/i18n/locales/nl.js +2 -0
  66. package/dist/i18n/locales/nl.js.map +1 -1
  67. package/dist/i18n/locales/pl.d.ts +2 -0
  68. package/dist/i18n/locales/pl.d.ts.map +1 -1
  69. package/dist/i18n/locales/pl.js +2 -0
  70. package/dist/i18n/locales/pl.js.map +1 -1
  71. package/dist/i18n/locales/pt.d.ts +2 -0
  72. package/dist/i18n/locales/pt.d.ts.map +1 -1
  73. package/dist/i18n/locales/pt.js +2 -0
  74. package/dist/i18n/locales/pt.js.map +1 -1
  75. package/dist/i18n/locales/ro.d.ts +2 -0
  76. package/dist/i18n/locales/ro.d.ts.map +1 -1
  77. package/dist/i18n/locales/ro.js +2 -0
  78. package/dist/i18n/locales/ro.js.map +1 -1
  79. package/dist/i18n/locales/ru.d.ts +2 -0
  80. package/dist/i18n/locales/ru.d.ts.map +1 -1
  81. package/dist/i18n/locales/ru.js +2 -0
  82. package/dist/i18n/locales/ru.js.map +1 -1
  83. package/dist/i18n/locales/sq.d.ts +2 -0
  84. package/dist/i18n/locales/sq.d.ts.map +1 -1
  85. package/dist/i18n/locales/sq.js +2 -0
  86. package/dist/i18n/locales/sq.js.map +1 -1
  87. package/dist/i18n/locales/sv.d.ts +2 -0
  88. package/dist/i18n/locales/sv.d.ts.map +1 -1
  89. package/dist/i18n/locales/sv.js +2 -0
  90. package/dist/i18n/locales/sv.js.map +1 -1
  91. package/dist/i18n/locales/tr.d.ts +2 -0
  92. package/dist/i18n/locales/tr.d.ts.map +1 -1
  93. package/dist/i18n/locales/tr.js +2 -0
  94. package/dist/i18n/locales/tr.js.map +1 -1
  95. package/dist/i18n/locales/zh.d.ts +2 -0
  96. package/dist/i18n/locales/zh.d.ts.map +1 -1
  97. package/dist/i18n/locales/zh.js +2 -0
  98. package/dist/i18n/locales/zh.js.map +1 -1
  99. package/dist/index.js +2 -2
  100. package/dist/locales/ar.json +2 -0
  101. package/dist/locales/de.json +2 -0
  102. package/dist/locales/el.json +2 -0
  103. package/dist/locales/en.json +2 -0
  104. package/dist/locales/es.json +2 -0
  105. package/dist/locales/fr.json +2 -0
  106. package/dist/locales/hi.json +2 -0
  107. package/dist/locales/it.json +2 -0
  108. package/dist/locales/ja.json +2 -0
  109. package/dist/locales/nl.json +2 -0
  110. package/dist/locales/pl.json +2 -0
  111. package/dist/locales/pt.json +2 -0
  112. package/dist/locales/ro.json +2 -0
  113. package/dist/locales/ru.json +2 -0
  114. package/dist/locales/sq.json +2 -0
  115. package/dist/locales/sv.json +2 -0
  116. package/dist/locales/tr.json +2 -0
  117. package/dist/locales/zh.json +2 -0
  118. package/dist/tokens.css +1 -1
  119. package/package.json +1 -1
  120. package/dist/_chunks/chart-CIzXxNeM.js +0 -1322
  121. package/dist/_chunks/chart-CIzXxNeM.js.map +0 -1
  122. package/dist/_chunks/heatmap-BxRHM8Et.js +0 -2865
  123. package/dist/_chunks/heatmap-BxRHM8Et.js.map +0 -1
@@ -0,0 +1,1340 @@
1
+ import { jsx as H, jsxs as ge } from "react/jsx-runtime";
2
+ import { useEffect as ce, forwardRef as mt, useId as ft, useMemo as V, useRef as de, useState as ie, useImperativeHandle as yt } from "react";
3
+ import { c as Oe } from "./index-D2ZczOXr.js";
4
+ import { useTranslation as gt } from "react-i18next";
5
+ import bt from "react-apexcharts";
6
+ import Je from "apexcharts";
7
+ import { u as vt, a as xt, g as Qe, b as St, r as wt } from "./apexcharts-theme-DNoXvgnZ.js";
8
+ import { u as At } from "./use-prefers-reduced-motion-BMwIQRjB.js";
9
+ import { u as Et } from "./use-isomorphic-layout-effect-BGfaCOP1.js";
10
+ import { c as Lt } from "./intl-locale-FWh-Y5_3.js";
11
+ import { e as be } from "./escape-html-Cn9Fao6a.js";
12
+ import { c as Ct } from "./compose-refs-C0k0tdqF.js";
13
+ import { u as Tt } from "./registry-DvAUVLHh.js";
14
+ import { I as Mt } from "./icon-button-C_1TgRiK.js";
15
+ import { I as It } from "./icon-button-group-NIHji7_y.js";
16
+ import { c as we } from "./createLucideIcon-DhHxpK9K.js";
17
+ /**
18
+ * @license lucide-react v1.22.0 - ISC
19
+ *
20
+ * This source code is licensed under the ISC license.
21
+ * See the LICENSE file in the root directory of this source tree.
22
+ */
23
+ const Rt = [
24
+ ["path", { d: "M3 3v16a2 2 0 0 0 2 2h16", key: "c24i48" }],
25
+ [
26
+ "path",
27
+ {
28
+ d: "M7 11.207a.5.5 0 0 1 .146-.353l2-2a.5.5 0 0 1 .708 0l3.292 3.292a.5.5 0 0 0 .708 0l4.292-4.292a.5.5 0 0 1 .854.353V16a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1z",
29
+ key: "q0gr47"
30
+ }
31
+ ]
32
+ ], Nt = we("chart-area", Rt);
33
+ /**
34
+ * @license lucide-react v1.22.0 - ISC
35
+ *
36
+ * This source code is licensed under the ISC license.
37
+ * See the LICENSE file in the root directory of this source tree.
38
+ */
39
+ const Ot = [
40
+ ["path", { d: "M3 3v16a2 2 0 0 0 2 2h16", key: "c24i48" }],
41
+ ["path", { d: "M18 17V9", key: "2bz60n" }],
42
+ ["path", { d: "M13 17V5", key: "1frdt8" }],
43
+ ["path", { d: "M8 17v-3", key: "17ska0" }]
44
+ ], Pt = we("chart-column", Ot);
45
+ /**
46
+ * @license lucide-react v1.22.0 - ISC
47
+ *
48
+ * This source code is licensed under the ISC license.
49
+ * See the LICENSE file in the root directory of this source tree.
50
+ */
51
+ const _t = [
52
+ ["path", { d: "M3 3v16a2 2 0 0 0 2 2h16", key: "c24i48" }],
53
+ ["path", { d: "m19 9-5 5-4-4-3 3", key: "2osh9i" }]
54
+ ], kt = we("chart-line", _t);
55
+ /**
56
+ * @license lucide-react v1.22.0 - ISC
57
+ *
58
+ * This source code is licensed under the ISC license.
59
+ * See the LICENSE file in the root directory of this source tree.
60
+ */
61
+ const zt = [
62
+ [
63
+ "path",
64
+ {
65
+ d: "M21 12c.552 0 1.005-.449.95-.998a10 10 0 0 0-8.953-8.951c-.55-.055-.998.398-.998.95v8a1 1 0 0 0 1 1z",
66
+ key: "pzmjnu"
67
+ }
68
+ ],
69
+ ["path", { d: "M21.21 15.89A10 10 0 1 1 8 2.83", key: "k2fpak" }]
70
+ ], Bt = we("chart-pie", zt);
71
+ /**
72
+ * @license lucide-react v1.22.0 - ISC
73
+ *
74
+ * This source code is licensed under the ISC license.
75
+ * See the LICENSE file in the root directory of this source tree.
76
+ */
77
+ const $t = [
78
+ [
79
+ "path",
80
+ {
81
+ d: "M20.5 10a2.5 2.5 0 0 1-2.4-3H18a2.95 2.95 0 0 1-2.6-4.4 10 10 0 1 0 6.3 7.1c-.3.2-.8.3-1.2.3",
82
+ key: "19sr3x"
83
+ }
84
+ ],
85
+ ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
86
+ ], qt = we("donut", $t), Ft = ".apexcharts-legend, .apexcharts-toolbar";
87
+ function Me(e, a, t) {
88
+ !e || e.getAttribute(a) === t || (t === null ? e.removeAttribute(a) : e.setAttribute(a, t));
89
+ }
90
+ function Ht(e, a) {
91
+ ce(() => {
92
+ if (!e) return;
93
+ const t = () => {
94
+ e.querySelectorAll(".apexcharts-canvas").forEach((l) => {
95
+ Array.from(l.children).forEach((x) => {
96
+ x.matches(Ft) || Me(x, "aria-hidden", "true");
97
+ });
98
+ }), e.querySelectorAll(".apexcharts-toolbar").forEach((l) => {
99
+ var b;
100
+ const x = ((b = l.querySelector(".apexcharts-menu-icon")) == null ? void 0 : b.getAttribute("aria-expanded")) === "true";
101
+ Me(
102
+ l.querySelector(".apexcharts-menu"),
103
+ "inert",
104
+ x ? null : ""
105
+ );
106
+ }), e.querySelectorAll(
107
+ '.apexcharts-legend-series[role="button"]'
108
+ ).forEach((l) => {
109
+ Me(l, "aria-label", null);
110
+ const x = l.getAttribute("data:collapsed") === "true" ? "false" : "true";
111
+ Me(l, "aria-pressed", a ? x : null);
112
+ });
113
+ };
114
+ let o = 0;
115
+ const h = (l) => {
116
+ const x = l.target instanceof Element ? l.target.closest(".apexcharts-legend-series") : null, b = x == null ? void 0 : x.getAttribute("rel");
117
+ b && (cancelAnimationFrame(o), o = requestAnimationFrame(() => {
118
+ var r;
119
+ const w = document.activeElement;
120
+ w && w !== document.body || (r = e.querySelector(
121
+ `.apexcharts-legend-series[rel="${CSS.escape(b)}"]`
122
+ )) == null || r.focus();
123
+ }));
124
+ };
125
+ t();
126
+ const s = new MutationObserver(t);
127
+ return s.observe(e, {
128
+ childList: !0,
129
+ subtree: !0,
130
+ attributes: !0,
131
+ attributeFilter: [
132
+ "aria-hidden",
133
+ "aria-label",
134
+ "aria-pressed",
135
+ "aria-expanded"
136
+ ]
137
+ }), e.addEventListener("click", h), () => {
138
+ s.disconnect(), e.removeEventListener("click", h), cancelAnimationFrame(o);
139
+ };
140
+ }, [e, a]);
141
+ }
142
+ const _e = '.apexcharts-legend-series[role="button"]', et = ".apexcharts-legend-text", Ie = "--chart-legend-item-size", ke = "--chart-legend-value-size", Wt = ".chart-legend-value", Dt = ".chart-legend-name", Vt = 350;
143
+ function Re(e, a, t) {
144
+ t && e.getAttribute(a) !== "true" ? e.setAttribute(a, "true") : !t && e.hasAttribute(a) && e.removeAttribute(a);
145
+ }
146
+ const ae = (e, a) => Number.parseFloat(e.getPropertyValue(a)) || 0;
147
+ function Gt(e, a) {
148
+ ce(() => {
149
+ if (!e || !a) return;
150
+ let t = null, o = 0, h = 0;
151
+ const s = () => {
152
+ if (!t) return;
153
+ const i = Math.abs(t.scrollLeft), u = t.scrollWidth - t.clientWidth;
154
+ h = i, Re(t, "data-fade-start", i > 1), Re(t, "data-fade-end", u - i > 1);
155
+ }, l = () => {
156
+ if (!t) return;
157
+ const i = getComputedStyle(t).direction === "rtl" ? -1 : 1;
158
+ Math.abs(Math.abs(t.scrollLeft) - h) > 1 && (t.scrollLeft = i * h);
159
+ }, x = () => {
160
+ if (!t) return;
161
+ const i = t.clientWidth, u = Array.from(
162
+ t.querySelectorAll(`:scope > ${_e}`)
163
+ ).filter((A) => A.getClientRects().length > 0), f = (A, E, g = "") => ae(A, `${E}-inline-start${g}`) + ae(A, `${E}-inline-end${g}`), y = u.map((A) => {
164
+ const E = A.querySelector(Wt);
165
+ if (!E) return 0;
166
+ const g = getComputedStyle(A);
167
+ let R = f(g, "padding") + f(g, "border", "-width");
168
+ for (const T of Array.from(A.children)) {
169
+ const L = getComputedStyle(T);
170
+ R += f(L, "margin") + (T.contains(E) ? f(L, "padding") + f(L, "border", "-width") : T.getBoundingClientRect().width);
171
+ }
172
+ return R + E.getBoundingClientRect().width;
173
+ }), $ = getComputedStyle(t), _ = ae($, "padding-inline-start"), B = ae($, "padding-inline-end"), M = t.style.getPropertyValue(Ie);
174
+ if (t.style.removeProperty(Ie), u.length === 0) return;
175
+ u.forEach((A, E) => {
176
+ y[E] > 0 ? A.style.setProperty(ke, `${Math.ceil(y[E])}px`) : A.style.removeProperty(ke);
177
+ });
178
+ const Z = u.map(
179
+ (A) => ae(getComputedStyle(A), "min-inline-size")
180
+ ), j = Math.max(...Z), Q = getComputedStyle(u[0]), N = ae(Q, "margin-inline-start") + ae(Q, "margin-inline-end"), n = Z.reduce((A, E) => A + E + N, 0);
181
+ if (j <= 0 || _ + B + n <= i)
182
+ return;
183
+ const m = Math.floor(
184
+ (i - _ - N / 2 - j / 2) / (j + N)
185
+ );
186
+ if (m < 1) return;
187
+ const S = (i - _ - N / 2 - m * N) / (m + 0.5);
188
+ t.style.setProperty(
189
+ Ie,
190
+ M && Math.abs(Number.parseFloat(M) - S) < 0.5 ? M : `${Math.floor(S * 100) / 100}px`
191
+ );
192
+ }, b = new ResizeObserver(() => {
193
+ x(), s();
194
+ }), { fonts: w } = e.ownerDocument, r = () => {
195
+ x(), s();
196
+ }, c = () => {
197
+ const i = e.querySelector(".apexcharts-legend"), u = i !== t;
198
+ u && (t && (t.removeEventListener("scroll", s), b.unobserve(t)), t = i, t && (t.addEventListener("scroll", s, { passive: !0 }), b.observe(t))), x(), u && l(), s();
199
+ };
200
+ let p = !1, d = 0, W;
201
+ const G = (i) => t !== null && i.target instanceof Node && t.contains(i.target), O = () => {
202
+ cancelAnimationFrame(d), clearTimeout(W), p = !1;
203
+ }, J = (i) => {
204
+ O(), p = G(i);
205
+ }, U = (i) => {
206
+ if (p) {
207
+ if (!G(i)) {
208
+ O();
209
+ return;
210
+ }
211
+ clearTimeout(W), W = setTimeout(
212
+ O,
213
+ i.pointerType === "touch" ? Vt : 0
214
+ );
215
+ }
216
+ }, Y = () => {
217
+ p && (clearTimeout(W), cancelAnimationFrame(d), d = requestAnimationFrame(() => {
218
+ d = requestAnimationFrame(() => {
219
+ p = !1;
220
+ });
221
+ }));
222
+ }, te = (i) => {
223
+ if (!t) return;
224
+ const u = t.getBoundingClientRect(), f = i.getBoundingClientRect(), y = getComputedStyle(t), $ = u.left + ae(y, "scroll-padding-left"), _ = u.right - ae(y, "scroll-padding-right");
225
+ f.left < $ || f.width > _ - $ ? t.scrollLeft -= $ - f.left : f.right > _ && (t.scrollLeft += f.right - _);
226
+ }, K = (i) => {
227
+ const { target: u } = i;
228
+ !t || !(u instanceof HTMLElement) || t.contains(u) && (p && !u.matches(":focus-visible") ? l() : te(u), s());
229
+ }, C = () => {
230
+ cancelAnimationFrame(o), o = requestAnimationFrame(s);
231
+ }, k = (i) => {
232
+ var $;
233
+ const { target: u } = i, f = u instanceof Element ? ($ = u.closest(_e)) == null ? void 0 : $.querySelector(et) : null;
234
+ if (!f || !(t != null && t.contains(f))) return;
235
+ const y = f.querySelector(Dt) ?? f;
236
+ if (y.scrollWidth > y.clientWidth) {
237
+ const _ = f.textContent ?? "";
238
+ f.title !== _ && (f.title = _);
239
+ } else f.hasAttribute("title") && f.removeAttribute("title");
240
+ }, z = (i) => i instanceof Element && (i.closest(".apexcharts-legend") !== null || i.querySelector(".apexcharts-legend") !== null), I = new MutationObserver((i) => {
241
+ i.some(
242
+ (f) => [f.target, ...f.addedNodes, ...f.removedNodes].some(
243
+ z
244
+ )
245
+ ) && c();
246
+ }), P = e.ownerDocument.defaultView ?? window;
247
+ return c(), I.observe(e, { childList: !0, subtree: !0 }), P.addEventListener("pointerdown", J, !0), P.addEventListener("pointerup", U, !0), P.addEventListener("pointercancel", O, !0), P.addEventListener("click", Y, !0), P.addEventListener("blur", O), e.addEventListener("keydown", O), e.addEventListener("focusin", K), e.addEventListener("focusout", C), e.addEventListener("mouseover", k), w == null || w.addEventListener("loadingdone", r), () => {
248
+ I.disconnect(), b.disconnect(), cancelAnimationFrame(o), O(), P.removeEventListener("pointerdown", J, !0), P.removeEventListener("pointerup", U, !0), P.removeEventListener("pointercancel", O, !0), P.removeEventListener("click", Y, !0), P.removeEventListener("blur", O), e.removeEventListener("keydown", O), e.removeEventListener("focusin", K), e.removeEventListener("focusout", C), e.removeEventListener("mouseover", k), w == null || w.removeEventListener("loadingdone", r), e.querySelectorAll(`${et}[title]`).forEach((i) => i.removeAttribute("title")), t && (t.removeEventListener("scroll", s), t.style.removeProperty(Ie), t.querySelectorAll(_e).forEach((i) => i.style.removeProperty(ke)), Re(t, "data-fade-start", !1), Re(t, "data-fade-end", !1));
249
+ };
250
+ }, [e, a]);
251
+ }
252
+ const Ut = ".apexcharts-xaxis-texts-g > text.apexcharts-xaxis-label", Kt = 0.5;
253
+ function jt(e) {
254
+ const a = e.getCTM();
255
+ if (!a) return null;
256
+ const { x: t, y: o, width: h, height: s } = e.getBBox();
257
+ return h === 0 && s === 0 ? null : [
258
+ [t, o],
259
+ [t + h, o],
260
+ [t + h, o + s],
261
+ [t, o + s]
262
+ ].map(([l, x]) => {
263
+ const b = new DOMPoint(l, x).matrixTransform(a);
264
+ return { x: b.x, y: b.y };
265
+ });
266
+ }
267
+ function Xt(e, a, t) {
268
+ return [e, a].some(
269
+ (o) => o.some((h, s) => {
270
+ const l = o[(s + 1) % o.length], x = h.y - l.y, b = l.x - h.x, w = Math.hypot(x, b);
271
+ if (w === 0) return !1;
272
+ const r = (d) => d.map((W) => (W.x * x + W.y * b) / w), c = r(e), p = r(a);
273
+ return Math.min(...p) - Math.max(...c) >= t || Math.min(...c) - Math.max(...p) >= t;
274
+ })
275
+ );
276
+ }
277
+ function Yt(e) {
278
+ ce(() => {
279
+ if (!e) return;
280
+ const a = () => {
281
+ const s = Array.from(
282
+ e.querySelectorAll(Ut)
283
+ ).filter((r) => (r.textContent ?? "").trim() !== "");
284
+ if (s.length === 0 || typeof s[0].getBBox != "function")
285
+ return;
286
+ const l = s.map(jt), x = Kt * (Number.parseFloat(getComputedStyle(s[0]).fontSize) || 0), b = (r) => {
287
+ for (let c = r; c < s.length; c += r) {
288
+ const p = l[c - r], d = l[c];
289
+ if (p && d && !Xt(p, d, x)) return !1;
290
+ }
291
+ return !0;
292
+ };
293
+ let w = 1;
294
+ for (; w < s.length && !b(w); ) w += 1;
295
+ s.forEach((r, c) => {
296
+ const p = c % w === 0;
297
+ p && r.hasAttribute("visibility") ? r.removeAttribute("visibility") : !p && r.getAttribute("visibility") !== "hidden" && r.setAttribute("visibility", "hidden");
298
+ });
299
+ }, t = (s) => s instanceof Element && (s.closest(".apexcharts-xaxis") !== null || s.querySelector(".apexcharts-xaxis") !== null), o = new MutationObserver((s) => {
300
+ s.some(
301
+ (l) => [l.target, ...l.addedNodes].some(t)
302
+ ) && a();
303
+ }), { fonts: h } = e.ownerDocument;
304
+ return a(), o.observe(e, { childList: !0, subtree: !0 }), h == null || h.addEventListener("loadingdone", a), () => {
305
+ o.disconnect(), h == null || h.removeEventListener("loadingdone", a);
306
+ };
307
+ }, [e]);
308
+ }
309
+ const tt = "http://www.w3.org/2000/svg", Ne = ".apexcharts-radialbar .apexcharts-datalabels-group", Zt = ".apexcharts-datalabel-label", Jt = ".apexcharts-datalabel-value", Qt = ".apexcharts-radialbar-hollow", ve = "--chart-centre-size", er = "var(--type-label-size)", tr = 0.5, rr = 0.25, nr = 1, ar = 0.06, rt = "data-centre-name", ze = "data-centre-line", nt = /[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}]/u, sr = /^[)\]})】」』〕〉》、。,.・:;!?ー…]/u, or = /[([{(【「『〔〈《]$/u;
310
+ function ir(e) {
311
+ if (typeof Intl.Segmenter != "function") return null;
312
+ try {
313
+ return new Intl.Segmenter(e, { granularity: "word" });
314
+ } catch {
315
+ return new Intl.Segmenter(void 0, { granularity: "word" });
316
+ }
317
+ }
318
+ function cr(e, a) {
319
+ const t = [[e]], o = ir(a), h = o ? Array.from(o.segment(e), (l) => l.segment) : e.split(/(\s+)/);
320
+ let s = 0;
321
+ return h.forEach((l, x) => {
322
+ s += l.length;
323
+ const b = h[x + 1];
324
+ if (b === void 0) return;
325
+ const w = /^\s+$/.test(l) || /^\s+$/.test(b), r = nt.test(l.slice(-1)) || nt.test(b.charAt(0));
326
+ if (!w && !r) return;
327
+ const c = e.slice(0, s).trim(), p = e.slice(s).trim();
328
+ !c || !p || sr.test(p) || or.test(c) || t.some(([d, W]) => d === c && W === p) || t.push([c, p]);
329
+ }), t;
330
+ }
331
+ function lr(e, a, t) {
332
+ ce(() => {
333
+ if (!e || !a) return;
334
+ const o = () => {
335
+ try {
336
+ h();
337
+ } finally {
338
+ l.takeRecords();
339
+ }
340
+ }, h = () => {
341
+ if (e.getClientRects().length === 0) return;
342
+ const r = e.querySelector(Ne), c = e.querySelector(Qt), p = (r == null ? void 0 : r.querySelector(Jt)) ?? null, d = (r == null ? void 0 : r.querySelector(Zt)) ?? null;
343
+ if (!r || !c) return;
344
+ const W = c.getCTM(), G = r.getCTM();
345
+ if (!W || !G) return;
346
+ const O = G.inverse().multiply(W), J = new DOMPoint(
347
+ c.cx.baseVal.value,
348
+ c.cy.baseVal.value
349
+ ).matrixTransform(O), U = c.r.baseVal.value * Math.hypot(O.a, O.b), Y = U - nr;
350
+ if (Y <= 0) return;
351
+ const { x: te, y: K } = J, C = ar * 2 * U, k = (n, m, S) => {
352
+ const A = K - m / 2;
353
+ let E = -1 / 0, g = 1 / 0;
354
+ for (const { width: T, start: L, end: re } of n) {
355
+ if (T / 2 > Y) return null;
356
+ const se = Math.sqrt(Y ** 2 - (T / 2) ** 2);
357
+ E = Math.max(E, K - se - L), g = Math.min(g, K + se - re);
358
+ }
359
+ const R = Math.max(A, E);
360
+ return R <= Math.min(g, A + S) ? R : null;
361
+ }, z = d && d.querySelector(`tspan[${ze}]`) ? d.getAttribute(rt) ?? "" : (d == null ? void 0 : d.textContent) ?? "";
362
+ for (const n of [d, p])
363
+ n == null || n.style.removeProperty(ve), n == null || n.removeAttribute("visibility");
364
+ const I = (n) => Number.parseFloat(getComputedStyle(n).fontSize) || 0, P = (n, m) => {
365
+ n.style.setProperty(ve, er);
366
+ const S = Math.min(I(n), m);
367
+ return n.style.removeProperty(ve), S;
368
+ };
369
+ let i = 0, u = 0, f = 0;
370
+ if (p && (p.textContent ?? "") !== "") {
371
+ i = I(p);
372
+ const n = P(p, i);
373
+ u = p.getComputedTextLength(), f = p.getBBox().height;
374
+ const m = Math.hypot(u / 2, f / 2);
375
+ if (m > Y) {
376
+ const S = Math.max(Y / m, n / i);
377
+ i *= S, u *= S, f *= S;
378
+ }
379
+ }
380
+ const y = i > 0 ? rr * i : 0, $ = (n) => n.length > 0 ? y : 0;
381
+ let _ = 0, B = null, M = 0;
382
+ if (d && z.trim() !== "") {
383
+ M = I(d);
384
+ const n = P(d, M), m = (T) => (d.textContent = T, d.getComputedTextLength());
385
+ d.textContent = z, _ = d.getBBox().height / M;
386
+ const [S, ...A] = cr(z, t).map((T) => ({
387
+ lines: T,
388
+ widths: T.map(m)
389
+ })), E = [
390
+ S,
391
+ ...A.sort(
392
+ (T, L) => Math.max(...T.widths) - Math.max(...L.widths)
393
+ )
394
+ ], g = [];
395
+ for (let T = M; T > n + 0.01; T -= tr)
396
+ g.push(T);
397
+ g.push(n);
398
+ const R = (T, L) => {
399
+ for (const re of L) {
400
+ const se = re / M, oe = _ * re;
401
+ let pe = null, he = 1 / 0;
402
+ for (const { lines: me, widths: Ae } of E) {
403
+ const fe = me.length * oe + $(me), X = fe + f, le = Ae.map((Ee, ye) => ({
404
+ width: Ee * se,
405
+ start: ye * oe,
406
+ end: (ye + 1) * oe
407
+ }));
408
+ f > 0 && le.push({
409
+ width: u,
410
+ start: fe,
411
+ end: X
412
+ });
413
+ const ne = k(le, X, T);
414
+ ne !== null && ne - (K - X / 2) < he && (pe = { lines: me, size: re, top: ne }, he = ne - (K - X / 2));
415
+ }
416
+ if (pe) return pe;
417
+ }
418
+ return null;
419
+ };
420
+ B = R(0, g) ?? R(C, [n]);
421
+ }
422
+ const Z = (B == null ? void 0 : B.lines) ?? [], j = B ? _ * B.size : 0, Q = Z.length * j + $(Z) + f, N = (B == null ? void 0 : B.top) ?? K - Q / 2;
423
+ if (d)
424
+ if (d.textContent = "", d.setAttribute(rt, z), d.setAttribute("dominant-baseline", "central"), d.setAttribute("x", String(te)), d.setAttribute("y", String(N + j / 2)), Z.forEach((n, m) => {
425
+ const S = e.ownerDocument.createElementNS(tt, "tspan");
426
+ S.setAttribute(ze, ""), S.setAttribute("x", String(te)), S.setAttribute("y", String(N + (m + 0.5) * j)), S.textContent = n, d.appendChild(S);
427
+ }), B)
428
+ B.size < M - 0.01 && d.style.setProperty(ve, `${B.size}px`);
429
+ else {
430
+ const n = e.ownerDocument.createElementNS(tt, "tspan");
431
+ n.setAttribute(ze, ""), n.textContent = z, d.appendChild(n), d.setAttribute("visibility", "hidden");
432
+ }
433
+ p && f > 0 && (p.setAttribute("dominant-baseline", "central"), p.setAttribute("x", String(te)), p.setAttribute("y", String(N + Q - f / 2)), i < I(p) - 0.01 && p.style.setProperty(ve, `${i}px`));
434
+ }, s = (r) => {
435
+ var c;
436
+ return r instanceof Element && (r.closest(Ne) !== null || r.querySelector(Ne) !== null) || r instanceof Text && ((c = r.parentElement) == null ? void 0 : c.closest(Ne)) != null;
437
+ }, l = new MutationObserver((r) => {
438
+ r.some(
439
+ (c) => [c.target, ...c.addedNodes].some(s)
440
+ ) && o();
441
+ }), x = (r) => (r ?? "").split(/\s+/).filter((c) => c.startsWith("theme-")).sort().join(" "), b = new MutationObserver((r) => {
442
+ r.some(
443
+ (c) => c.target instanceof Element && x(c.oldValue) !== x(c.target.getAttribute("class"))
444
+ ) && o();
445
+ });
446
+ for (let r = e.parentElement; r; r = r.parentElement)
447
+ b.observe(r, {
448
+ attributes: !0,
449
+ attributeFilter: ["class"],
450
+ attributeOldValue: !0
451
+ });
452
+ const { fonts: w } = e.ownerDocument;
453
+ return o(), l.observe(e, {
454
+ childList: !0,
455
+ subtree: !0,
456
+ characterData: !0
457
+ }), w == null || w.addEventListener("loadingdone", o), () => {
458
+ l.disconnect(), b.disconnect(), w == null || w.removeEventListener("loadingdone", o);
459
+ };
460
+ }, [e, a, t]);
461
+ }
462
+ const ur = {
463
+ id: "chart",
464
+ // view_change backs the opt-in type switcher (`switchableTypes` prop):
465
+ // the same chart re-presented as line / bar / area / pie / donut.
466
+ capabilities: ["view_change"],
467
+ state: {
468
+ declaredType: {
469
+ type: "'line' | 'bar' | 'pie' | 'donut' | 'area' | 'radialBar'",
470
+ descriptionKey: "ui.agent.chart.state.declaredType",
471
+ description: "The consumer-declared chart type — the shape `update_series` expects.",
472
+ read: (e) => e.getTypeState().declaredType
473
+ },
474
+ effectiveType: {
475
+ type: "'line' | 'bar' | 'pie' | 'donut' | 'area' | 'radialBar'",
476
+ descriptionKey: "ui.agent.chart.state.effectiveType",
477
+ description: "The type currently rendered — differs from declaredType after a type-switcher pick.",
478
+ read: (e) => e.getTypeState().effectiveType
479
+ },
480
+ availableTypes: {
481
+ type: "ChartType[]",
482
+ descriptionKey: "ui.agent.chart.state.availableTypes",
483
+ description: "Types the switcher offers. Empty when the chart has no type switcher.",
484
+ read: (e) => e.getTypeState().availableTypes
485
+ }
486
+ },
487
+ actions: {
488
+ change_view: {
489
+ // Switching the presentation is a write (it changes what the user
490
+ // sees) but is trivially reversible by switching back.
491
+ safety: "write",
492
+ argsType: "type",
493
+ argsSchema: {
494
+ type: "object",
495
+ properties: {
496
+ type: {
497
+ type: "string",
498
+ enum: ["line", "bar", "area", "pie", "donut"],
499
+ description: "The chart type to render."
500
+ }
501
+ },
502
+ required: ["type"]
503
+ },
504
+ returns: "boolean (accepted)",
505
+ returnsSchema: {
506
+ type: "boolean",
507
+ description: "True when the switch was applied; false when the chart has no type switcher or the type is not offered (check availableTypes first)."
508
+ },
509
+ idempotent: !0,
510
+ descriptionKey: "ui.agent.chart.actions.changeView",
511
+ description: "Switch the rendered chart type via the type switcher. No-op (returns false) when the chart has no switcher or the type is not offered.",
512
+ invoke: (e, a) => e.setType(a.type)
513
+ },
514
+ update_series: {
515
+ // Replacing the rendered series mutates what the chart displays — it
516
+ // is a write, reversible by pushing the prior series back.
517
+ safety: "write",
518
+ argsType: "series",
519
+ // `series` is `ChartSeries[]` (line/bar/area) OR `number[]`
520
+ // (pie/donut/radialBar). Both shapes are accepted; the handle routes
521
+ // by chart type internally.
522
+ argsSchema: {
523
+ type: "object",
524
+ properties: {
525
+ series: {
526
+ oneOf: [
527
+ {
528
+ type: "array",
529
+ description: "Categorical series for line / bar / area charts.",
530
+ items: {
531
+ type: "object",
532
+ properties: {
533
+ name: { type: "string" },
534
+ data: { type: "array", items: { type: "number" } },
535
+ role: {
536
+ type: "string",
537
+ enum: ["primary", "compare"],
538
+ description: "Optional. 'compare' renders this series as a secondary, colour-blind-safe overlay (e.g. the previous period) — a dotted stroke in its paired primary's colour for line/area, a tinted bar with a dotted outline for bar. Omit for a normal primary series."
539
+ }
540
+ },
541
+ required: ["name", "data"]
542
+ }
543
+ },
544
+ {
545
+ type: "array",
546
+ description: "Flat values for pie / donut / radialBar charts.",
547
+ items: { type: "number" }
548
+ }
549
+ ]
550
+ }
551
+ },
552
+ required: ["series"]
553
+ },
554
+ idempotent: !0,
555
+ descriptionKey: "ui.agent.chart.actions.updateSeries",
556
+ description: "Replace the chart series without remounting. Pass the DECLARED type’s shape (see declaredType state); when the user has switched the view cross-shape the values are converted to the rendered shape. The data and its summary table persist across type switches, resizes and theme changes until the host passes a new series prop.",
557
+ invoke: (e, a) => {
558
+ e.updateSeries(a.series);
559
+ }
560
+ },
561
+ export_png: {
562
+ safety: "read",
563
+ returns: "string (PNG data URI)",
564
+ returnsSchema: {
565
+ type: "string",
566
+ description: "A `data:image/png;base64,…` URI of the rendered chart."
567
+ },
568
+ idempotent: !0,
569
+ descriptionKey: "ui.agent.chart.actions.exportPng",
570
+ description: "Return a PNG data URI of the chart for export or screenshotting. Waits until series pushed with update_series are drawn.",
571
+ invoke: (e) => e.dataURI()
572
+ }
573
+ },
574
+ domHooks: {
575
+ root: { attr: "data-component", value: "chart" },
576
+ instanceId: {
577
+ attr: "data-component-id",
578
+ sourceProp: "id",
579
+ description: "Sourced from the id prop."
580
+ }
581
+ }
582
+ }, dr = Oe(
583
+ "ds:relative ds:block ds:w-full apex-theme-alfadocs",
584
+ {
585
+ variants: {
586
+ density: {
587
+ compact: "ds:min-h-[var(--chart-min-height-compact)]",
588
+ comfortable: "ds:min-h-[var(--chart-min-height-comfortable)]",
589
+ // Applied when an explicit `height` prop is given and no density was
590
+ // requested: the wrapper must not exceed the caller's height (a 96px
591
+ // KPI chart inside a card must not reserve 320px).
592
+ none: ""
593
+ }
594
+ },
595
+ defaultVariants: { density: "comfortable" }
596
+ }
597
+ ), pr = Oe("", {
598
+ variants: {
599
+ fill: {
600
+ none: "",
601
+ // The figure is the root: it takes the share itself.
602
+ root: "ds:h-[var(--chart-fill-size)] ds:min-h-[var(--chart-min-height-fill)]",
603
+ // Below the switcher row: the rest.
604
+ rest: "ds:min-h-[var(--chart-min-height-fill)] ds:flex-1"
605
+ }
606
+ },
607
+ defaultVariants: { fill: "none" }
608
+ }), hr = Oe("", {
609
+ variants: {
610
+ fill: { false: "", true: "ds:absolute ds:inset-0" }
611
+ },
612
+ defaultVariants: { fill: !1 }
613
+ }), mr = Oe("ds:w-full", {
614
+ variants: {
615
+ fill: {
616
+ false: "ds:block",
617
+ true: "ds:flex ds:flex-col ds:h-[var(--chart-fill-size)] ds:min-h-min"
618
+ }
619
+ },
620
+ defaultVariants: { fill: !1 }
621
+ }), fr = [
622
+ "verticalLines",
623
+ "horizontalLines",
624
+ "slantedLines",
625
+ "squares",
626
+ "circles"
627
+ ], yr = ["line", "bar", "area"], gr = ["pie", "donut", "radialBar"], at = [
628
+ "line",
629
+ "bar",
630
+ "area",
631
+ "pie",
632
+ "donut"
633
+ ], br = {
634
+ line: "chart.typeSwitcher.line",
635
+ bar: "chart.typeSwitcher.bar",
636
+ area: "chart.typeSwitcher.area",
637
+ pie: "chart.typeSwitcher.pie",
638
+ donut: "chart.typeSwitcher.donut"
639
+ }, vr = {
640
+ line: /* @__PURE__ */ H(kt, {}),
641
+ bar: /* @__PURE__ */ H(Pt, {}),
642
+ area: /* @__PURE__ */ H(Nt, {}),
643
+ pie: /* @__PURE__ */ H(Bt, {}),
644
+ donut: /* @__PURE__ */ H(qt, {})
645
+ }, xr = 2, ct = "0 6", Sr = 5, wr = 20, Ar = -45, Er = 640, Lr = 300, Cr = 160;
646
+ function Tr(e, a) {
647
+ !e || a.length === 0 || e.querySelectorAll(
648
+ ".apexcharts-bar-series > .apexcharts-series"
649
+ ).forEach((t) => {
650
+ const o = Number(t.getAttribute("data:realIndex"));
651
+ a.includes(o) && t.querySelectorAll("path.apexcharts-bar-area").forEach(
652
+ (h) => {
653
+ if (typeof h.getBBox != "function") return;
654
+ const s = h.getBBox();
655
+ h.setAttribute(
656
+ "d",
657
+ `M ${s.x} ${s.y + s.height} L ${s.x} ${s.y} L ${s.x + s.width} ${s.y} L ${s.x + s.width} ${s.y + s.height}`
658
+ ), h.setAttribute("stroke-dasharray", ct), h.setAttribute("stroke-linecap", "round");
659
+ }
660
+ );
661
+ });
662
+ }
663
+ function st(e) {
664
+ const a = getComputedStyle(e), t = (o) => Number.parseFloat(a.getPropertyValue(o)) || 0;
665
+ return t("--min-target-size") + t("--focus-ring-offset") + t("--focus-ring-width");
666
+ }
667
+ function Mr(e, a) {
668
+ if (e === void 0) return a;
669
+ if (typeof e == "number") return e;
670
+ const t = Number.parseInt(e, 10);
671
+ return e.trim().endsWith("%") ? a * t / 100 : t;
672
+ }
673
+ function lt(e, a) {
674
+ if (a) return a;
675
+ const t = new Intl.NumberFormat(e, {
676
+ style: "percent",
677
+ maximumFractionDigits: 2
678
+ });
679
+ return (o) => t.format(o / 100);
680
+ }
681
+ function Ir(e) {
682
+ return typeof e == "number" ? e : e.trim().endsWith("%") ? Number.NaN : Number.parseInt(e, 10);
683
+ }
684
+ function ot(e, a, t, o, h, s) {
685
+ if (o === h)
686
+ return {
687
+ effectiveSeries: e,
688
+ effectiveCategories: a,
689
+ effectiveLabels: t
690
+ };
691
+ if (!o) {
692
+ const b = e.filter((r) => r.role !== "compare");
693
+ return {
694
+ effectiveSeries: b.map((r) => r.data.reduce((c, p) => c + p, 0)),
695
+ effectiveCategories: void 0,
696
+ effectiveLabels: b.map((r) => r.name)
697
+ };
698
+ }
699
+ return {
700
+ effectiveSeries: [{ name: s, data: e }],
701
+ effectiveCategories: t ?? [],
702
+ effectiveLabels: void 0
703
+ };
704
+ }
705
+ function it({
706
+ themeOptions: e,
707
+ toolbarBand: a,
708
+ chartId: t,
709
+ toolbar: o,
710
+ reducedMotion: h,
711
+ toolbarLocale: s,
712
+ locale: l,
713
+ effectiveLabels: x,
714
+ formatValue: b,
715
+ noDataText: w,
716
+ effectiveType: r,
717
+ effectiveSeries: c,
718
+ effectiveCategories: p,
719
+ isRtl: d,
720
+ patterns: W,
721
+ stacked: G,
722
+ orientation: O,
723
+ curve: J,
724
+ colors: U,
725
+ radialValueFormatter: Y,
726
+ narrow: te,
727
+ short: K,
728
+ wrapperRef: C
729
+ }) {
730
+ var B, M, Z, j, Q, N;
731
+ const k = e, z = Se(r) && Array.isArray(c) ? c.map((n) => n.role === "compare") : [], I = z.some(Boolean), P = I && r === "bar", i = P && c.some(
732
+ (n) => n.role === "compare" && n.data.some((m) => m < 0)
733
+ ), u = P && O === "vertical" && !i, f = I ? St() : 0.3, y = {
734
+ ...k,
735
+ chart: {
736
+ ...k.chart,
737
+ id: t,
738
+ toolbar: { show: o },
739
+ zoom: { enabled: o },
740
+ animations: {
741
+ enabled: !h,
742
+ dynamicAnimation: { enabled: !h }
743
+ },
744
+ locales: [s],
745
+ defaultLocale: l,
746
+ parentHeightOffset: 0,
747
+ // Keep the keyboard-operable legend; drop Apex's data-point navigation
748
+ // and live announcements (English-only, and the summary table covers them).
749
+ accessibility: {
750
+ enabled: !0,
751
+ announcements: { enabled: !1 },
752
+ keyboard: { enabled: !0, navigation: { enabled: !1 } }
753
+ },
754
+ // Stacking is axis-only, so a slice or radial chart never receives it.
755
+ // Sent as false too: ApexCharts merges an update into its config, so
756
+ // leaving it out would keep an earlier `true`.
757
+ ...Se(r) ? { stacked: G } : {}
758
+ },
759
+ // Only set `labels` when the effective type actually has them (slice
760
+ // charts). Emitting `labels: undefined` crashes ApexCharts' bar
761
+ // renderer — `parseDataAxisCharts` reads `labels.length` and throws
762
+ // "Cannot read properties of undefined (reading 'length')", which
763
+ // aborts the render and leaves a blank chart. Absent is safe; area /
764
+ // line tolerate the undefined but bar does not, so never pass it.
765
+ ...x ? { labels: x } : {},
766
+ legend: {
767
+ ...k.legend,
768
+ position: "bottom",
769
+ // ApexCharts legend.horizontalAlign is a physical prop mapped internally
770
+ // to the chart's own text flow. For RTL we flip via `yaxis.opposite`
771
+ // and ApexCharts' own `direction: 'rtl'` handling; legend stays anchored
772
+ // to the inline-start by asking for 'left' on LTR and 'right' on RTL.
773
+ horizontalAlign: d ? "right" : "left",
774
+ fontFamily: "inherit",
775
+ // apexcharts-theme.css sizes the legend hit areas and ring room from
776
+ // this 4px; pinned so an ApexCharts default change cannot break them.
777
+ itemMargin: { horizontal: 5, vertical: 4 },
778
+ // ApexCharts writes legend text as HTML: a series named "R&D" or
779
+ // "<b>" must read as written, not as markup.
780
+ formatter: (n) => be(String(n))
781
+ },
782
+ // The tooltip, like the legend, is written as HTML: its heading (the
783
+ // category) and each series name are escaped too.
784
+ tooltip: {
785
+ ...k.tooltip,
786
+ x: {
787
+ ...(B = k.tooltip) == null ? void 0 : B.x,
788
+ // A line or area chart hands ApexCharts its categories as positions
789
+ // (1..n), so the heading is named from the point's index, as
790
+ // ApexCharts' own axis label is.
791
+ formatter: (n, m) => be(
792
+ String((p == null ? void 0 : p[(m == null ? void 0 : m.dataPointIndex) ?? -1]) ?? n)
793
+ )
794
+ },
795
+ y: {
796
+ formatter: (n) => b(n),
797
+ title: {
798
+ formatter: (n) => n ? `${be(String(n))}: ` : ""
799
+ }
800
+ }
801
+ },
802
+ noData: {
803
+ text: w
804
+ }
805
+ }, $ = o && a ? a : 0, _ = K && Se(r) ? wr : 0;
806
+ if (y.title = $ || _ ? { ...y.title, text: "", margin: $ - _ } : { ...y.title, text: void 0, margin: Sr }, U && U.length > 0 && (y.colors = U), I) {
807
+ const n = y.colors ?? k.colors ?? [], m = (g) => n[g % Math.max(n.length, 1)], S = c.map((g, R) => g.role === "compare" ? -1 : R).filter((g) => g >= 0);
808
+ let A = 0;
809
+ y.colors = c.map((g, R) => {
810
+ if (g.role !== "compare") return m(R);
811
+ const T = S.length ? S[Math.min(A++, S.length - 1)] : R;
812
+ return m(T);
813
+ });
814
+ const E = y.colors.map(
815
+ (g, R) => z[R] ? wt(g) : g
816
+ );
817
+ y.legend = {
818
+ ...y.legend,
819
+ markers: {
820
+ ...((M = y.legend) == null ? void 0 : M.markers) ?? {},
821
+ fillColors: E
822
+ }
823
+ };
824
+ }
825
+ if (Se(r)) {
826
+ const n = r === "bar" && O === "horizontal";
827
+ y.xaxis = {
828
+ ...k.xaxis,
829
+ categories: p ?? [],
830
+ labels: {
831
+ ...(Z = k.xaxis) == null ? void 0 : Z.labels,
832
+ formatter: n ? (m) => b(Number(m)) : void 0,
833
+ // A narrow chart thins crowded labels rather than turning them sideways.
834
+ // Sent both ways, so a widened chart rotates. ApexCharts draws every
835
+ // label and useApexXLabelSpacing thins them: its own test keeps two
836
+ // labels that touch, or overlap when the second is wider.
837
+ rotate: te ? 0 : Ar,
838
+ hideOverlappingLabels: !1
839
+ },
840
+ // The hover tooltip already heads with the category. ApexCharts' own
841
+ // x-axis box repeats it below the axis, outside the chart's box.
842
+ tooltip: { enabled: !1 }
843
+ }, y.yaxis = {
844
+ ...k.yaxis,
845
+ opposite: d,
846
+ ...n ? {} : { labels: { formatter: (m) => b(m) } }
847
+ }, y.stroke = {
848
+ curve: J,
849
+ width: r === "bar" ? I ? z.map((m) => m ? xr : 0) : 0 : 2,
850
+ ...I ? {
851
+ lineCap: "round",
852
+ // Runtime accepts a string dash; the published types say
853
+ // `number` → one documented cast. `'0 6'` + round cap ⇒ dots.
854
+ dashArray: z.map(
855
+ (m) => m ? ct : 0
856
+ )
857
+ } : {}
858
+ }, y.dataLabels = { enabled: !1 };
859
+ }
860
+ if (r === "radialBar") {
861
+ const n = lt(l, Y), m = k.plotOptions ?? {}, S = (j = m.radialBar) == null ? void 0 : j.dataLabels;
862
+ y.plotOptions = {
863
+ ...m,
864
+ radialBar: {
865
+ ...m.radialBar ?? {},
866
+ dataLabels: {
867
+ ...S ?? {},
868
+ name: { ...(S == null ? void 0 : S.name) ?? {}, color: (Q = k.chart) == null ? void 0 : Q.foreColor },
869
+ value: {
870
+ ...(S == null ? void 0 : S.value) ?? {},
871
+ formatter: (g) => n(Number(g))
872
+ }
873
+ }
874
+ }
875
+ };
876
+ const A = Array.isArray(c) && c.length > 1, E = d ? "rtl" : "ltr";
877
+ y.legend = {
878
+ ...y.legend,
879
+ show: A,
880
+ ...A ? {
881
+ formatter: (g, R) => {
882
+ const T = Number(
883
+ c[(R == null ? void 0 : R.seriesIndex) ?? 0]
884
+ );
885
+ return `<span class="chart-legend-ring" dir="${E}"><span class="chart-legend-name">${be(String(g))}</span> <span class="chart-legend-value">${be(n(T))}</span></span>`;
886
+ }
887
+ } : {}
888
+ };
889
+ }
890
+ if (r === "bar") {
891
+ const n = k.plotOptions ?? {};
892
+ y.plotOptions = {
893
+ ...n,
894
+ bar: {
895
+ ...n.bar ?? {},
896
+ horizontal: O === "horizontal"
897
+ }
898
+ };
899
+ }
900
+ if (W ? y.fill = {
901
+ type: I ? z.map((n) => n ? "solid" : "pattern") : "pattern",
902
+ opacity: I ? z.map(
903
+ (n) => n ? f : r === "area" ? 0.3 : 1
904
+ ) : r === "area" ? 0.3 : 1,
905
+ pattern: {
906
+ style: [...fr],
907
+ strokeWidth: 2
908
+ }
909
+ } : P ? y.fill = {
910
+ type: "solid",
911
+ opacity: z.map((n) => n ? f : 1)
912
+ } : r === "area" && (y.fill = I ? {
913
+ type: "gradient",
914
+ opacity: z.map((n) => n ? f : 0.3)
915
+ } : {
916
+ type: "gradient",
917
+ opacity: 0.3
918
+ }), u) {
919
+ const n = z.map((A, E) => A ? E : -1).filter((A) => A >= 0), m = () => Tr(C.current, n), S = () => typeof requestAnimationFrame == "function" ? requestAnimationFrame(m) : m();
920
+ y.chart = {
921
+ ...y.chart,
922
+ events: {
923
+ ...((N = y.chart) == null ? void 0 : N.events) ?? {},
924
+ mounted: () => S(),
925
+ updated: () => S(),
926
+ animationEnd: () => m()
927
+ }
928
+ };
929
+ }
930
+ return Rr(y, r);
931
+ }
932
+ function Rr(e, a) {
933
+ var o, h, s, l, x, b;
934
+ if (!Se(a)) return e;
935
+ const t = (o = e.chart) == null ? void 0 : o.events;
936
+ return {
937
+ ...e,
938
+ colors: e.colors,
939
+ chart: {
940
+ ...e.chart,
941
+ events: {
942
+ ...t,
943
+ mounted: t == null ? void 0 : t.mounted,
944
+ updated: t == null ? void 0 : t.updated,
945
+ animationEnd: t == null ? void 0 : t.animationEnd
946
+ }
947
+ },
948
+ stroke: {
949
+ ...e.stroke,
950
+ lineCap: ((h = e.stroke) == null ? void 0 : h.lineCap) ?? (a === "bar" ? "square" : "butt"),
951
+ dashArray: ((s = e.stroke) == null ? void 0 : s.dashArray) ?? 0
952
+ },
953
+ legend: {
954
+ ...e.legend,
955
+ markers: {
956
+ ...(l = e.legend) == null ? void 0 : l.markers,
957
+ fillColors: (b = (x = e.legend) == null ? void 0 : x.markers) == null ? void 0 : b.fillColors
958
+ }
959
+ },
960
+ fill: e.fill ?? { type: "solid", opacity: 0.85 }
961
+ };
962
+ }
963
+ function xe(e) {
964
+ return gr.includes(e);
965
+ }
966
+ function Se(e) {
967
+ return yr.includes(e);
968
+ }
969
+ function Nr(e, a) {
970
+ return xe(a) ? [
971
+ {
972
+ name: "",
973
+ data: e
974
+ }
975
+ ] : e;
976
+ }
977
+ const Or = mt(
978
+ ({
979
+ title: e,
980
+ id: a,
981
+ type: t,
982
+ series: o,
983
+ categories: h,
984
+ labels: s,
985
+ height: l,
986
+ width: x,
987
+ patterns: b = !1,
988
+ stacked: w = !1,
989
+ orientation: r = "vertical",
990
+ curve: c = "smooth",
991
+ colors: p,
992
+ toolbar: d = !1,
993
+ locale: W,
994
+ radialValueFormatter: G,
995
+ valueFormatter: O,
996
+ switchableTypes: J,
997
+ onTypeChange: U,
998
+ density: Y,
999
+ className: te
1000
+ }, K) => {
1001
+ const { t: C, i18n: k } = gt("ui"), z = ft(), I = V(
1002
+ () => `chart-${z.replace(/[^a-zA-Z0-9-_]/g, "")}`,
1003
+ [z]
1004
+ ), P = `${I}-summary`, i = de(null), [u, f] = ie(null), y = V(
1005
+ () => Ct(i, f),
1006
+ []
1007
+ ), $ = V(() => ({ current: u }), [u]), [_, B] = ie(0), M = typeof l == "string" && l.trim().endsWith("%") ? l.trim() : void 0, [Z, j] = ie(0), Q = de(!1);
1008
+ Q.current = M !== void 0, Et(() => {
1009
+ M && u && j(Math.floor(u.clientHeight));
1010
+ }, [M, u]), vt($), xt($);
1011
+ const N = Lt(
1012
+ W ?? k.language ?? "en",
1013
+ k.language
1014
+ ), [n, m] = ie(() => {
1015
+ try {
1016
+ return Qe();
1017
+ } catch {
1018
+ return {};
1019
+ }
1020
+ });
1021
+ ce(() => {
1022
+ if (typeof document > "u") return;
1023
+ let v;
1024
+ const q = new MutationObserver(() => {
1025
+ clearTimeout(v), v = setTimeout(() => {
1026
+ try {
1027
+ m(Qe());
1028
+ } catch {
1029
+ }
1030
+ }, 50);
1031
+ });
1032
+ return q.observe(document.documentElement, {
1033
+ attributes: !0,
1034
+ attributeFilter: ["class"]
1035
+ }), () => {
1036
+ clearTimeout(v), q.disconnect();
1037
+ };
1038
+ }, []);
1039
+ const [S, A] = ie(
1040
+ () => typeof document > "u" ? 0 : st(document.documentElement)
1041
+ );
1042
+ ce(() => {
1043
+ if (!u || !d) return;
1044
+ const v = new ResizeObserver(() => q()), q = () => {
1045
+ const F = u.querySelector(".apexcharts-toolbar");
1046
+ F && v.observe(F), A(
1047
+ Math.max(st(u), (F == null ? void 0 : F.offsetHeight) ?? 0)
1048
+ );
1049
+ };
1050
+ q();
1051
+ const ee = new MutationObserver(q);
1052
+ for (let F = u.parentElement; F; F = F.parentElement)
1053
+ ee.observe(F, { attributes: !0, attributeFilter: ["class"] });
1054
+ const D = new MutationObserver((F) => {
1055
+ F.flatMap((ue) => [...ue.addedNodes]).some(
1056
+ (ue) => ue instanceof Element && (ue.matches(".apexcharts-toolbar") || ue.querySelector(".apexcharts-toolbar"))
1057
+ ) && q();
1058
+ });
1059
+ return D.observe(u, { childList: !0, subtree: !0 }), () => {
1060
+ v.disconnect(), ee.disconnect(), D.disconnect();
1061
+ };
1062
+ }, [u, d]), ce(() => {
1063
+ const v = u;
1064
+ if (!v || typeof ResizeObserver > "u") return;
1065
+ const q = new ResizeObserver((ee) => {
1066
+ const D = ee[0];
1067
+ D && (B(Math.floor(D.contentRect.width)), Q.current && j(Math.floor(D.contentRect.height)));
1068
+ });
1069
+ return q.observe(v), () => q.disconnect();
1070
+ }, [u]);
1071
+ const E = V(() => {
1072
+ if (!J || J.length === 0) return [];
1073
+ const v = J.filter(
1074
+ (ee) => at.includes(ee)
1075
+ );
1076
+ if (!at.includes(t))
1077
+ return [];
1078
+ const q = v.includes(t) ? v : [t, ...v];
1079
+ return [...new Set(q)];
1080
+ }, [J, t]), g = E.length >= 2, [R, T] = ie(null), L = g && R && E.includes(R) ? R : t;
1081
+ Ht(
1082
+ u,
1083
+ L !== "pie" && L !== "donut"
1084
+ );
1085
+ const re = xe(t), se = xe(L), [oe, pe] = ie(null), [he, me] = ie(o);
1086
+ he !== o && (me(o), oe && pe(null));
1087
+ const Ae = oe && oe.base === o && he === o ? oe.next : o, fe = de(o);
1088
+ fe.current = o;
1089
+ const { effectiveSeries: X, effectiveCategories: le, effectiveLabels: ne } = V(
1090
+ () => ot(
1091
+ Ae,
1092
+ h,
1093
+ s,
1094
+ re,
1095
+ se,
1096
+ C("chart.table.value")
1097
+ ),
1098
+ [Ae, h, s, re, se, C]
1099
+ ), Ee = (v) => ot(
1100
+ v,
1101
+ h,
1102
+ s,
1103
+ re,
1104
+ se,
1105
+ C("chart.table.value")
1106
+ ), ye = de(Ee);
1107
+ ye.current = Ee;
1108
+ const Be = de(Promise.resolve()), Pe = V(
1109
+ () => ({
1110
+ async dataURI() {
1111
+ await Be.current;
1112
+ const v = Je.getChartByID(I);
1113
+ return v ? (await v.dataURI()).imgURI : "";
1114
+ },
1115
+ updateSeries(v) {
1116
+ pe({ base: fe.current, next: v });
1117
+ const q = Je.getChartByID(I);
1118
+ if (!q) return;
1119
+ const ee = ye.current(v), D = { ...je.current, ...ee };
1120
+ Be.current = q.updateOptions(
1121
+ { ...it(D), series: ee.effectiveSeries },
1122
+ !1,
1123
+ !0
1124
+ ).catch(() => {
1125
+ });
1126
+ },
1127
+ setType(v) {
1128
+ return !g || !E.includes(v) ? !1 : (T(v), !0);
1129
+ },
1130
+ getTypeState() {
1131
+ return {
1132
+ declaredType: t,
1133
+ effectiveType: L,
1134
+ availableTypes: g ? [...E] : []
1135
+ };
1136
+ }
1137
+ }),
1138
+ [I, t, L, g, E]
1139
+ );
1140
+ yt(K, () => Pe, [Pe]), Tt(ur, Pe, a);
1141
+ const $e = typeof document < "u" && document.documentElement.dir === "rtl", qe = V(
1142
+ () => Nr(X, L),
1143
+ [X, L]
1144
+ ), Fe = V(
1145
+ () => new Intl.NumberFormat(N),
1146
+ [N]
1147
+ ), Le = V(
1148
+ () => O ?? ((v) => Fe.format(v)),
1149
+ [O, Fe]
1150
+ ), He = V(
1151
+ () => ({
1152
+ name: N,
1153
+ options: {
1154
+ toolbar: {
1155
+ download: C("chart.toolbar.download"),
1156
+ // Names the button that opens the export menu (Apex: "Menu").
1157
+ menu: C("chart.toolbar.download"),
1158
+ selection: C("chart.toolbar.selection"),
1159
+ selectionZoom: C("chart.toolbar.selectionZoom"),
1160
+ zoomIn: C("chart.toolbar.zoomIn"),
1161
+ zoomOut: C("chart.toolbar.zoomOut"),
1162
+ pan: C("chart.toolbar.pan"),
1163
+ reset: C("chart.toolbar.reset"),
1164
+ exportToSVG: C("chart.toolbar.exportToSVG"),
1165
+ exportToPNG: C("chart.toolbar.exportToPNG"),
1166
+ exportToCSV: C("chart.toolbar.exportToCSV")
1167
+ }
1168
+ }
1169
+ }),
1170
+ [N, C]
1171
+ ), We = At(), De = C("chart.noData"), Ve = Mr(x, _), Ge = Ve > 0 && Ve < Er, ut = x ?? (_ > 0 ? _ : "100%"), Ue = M ? Z > 0 ? Z : Cr : l ?? 320, Ke = Ir(Ue), Ce = Ke > 0 && Ke < Lr;
1172
+ Gt(u, Ce), Yt(u), lr(u, L === "radialBar", N), de(!1), ce(() => {
1173
+ }, [L, G, X]);
1174
+ const Te = V(
1175
+ () => ({
1176
+ themeOptions: n,
1177
+ toolbarBand: S,
1178
+ chartId: I,
1179
+ toolbar: d,
1180
+ reducedMotion: We,
1181
+ toolbarLocale: He,
1182
+ locale: N,
1183
+ effectiveLabels: ne,
1184
+ formatValue: Le,
1185
+ noDataText: De,
1186
+ effectiveType: L,
1187
+ effectiveSeries: X,
1188
+ effectiveCategories: le,
1189
+ isRtl: $e,
1190
+ patterns: b,
1191
+ stacked: w,
1192
+ orientation: r,
1193
+ curve: c,
1194
+ colors: p,
1195
+ radialValueFormatter: G,
1196
+ narrow: Ge,
1197
+ short: Ce,
1198
+ wrapperRef: i
1199
+ }),
1200
+ [
1201
+ n,
1202
+ S,
1203
+ I,
1204
+ d,
1205
+ We,
1206
+ He,
1207
+ N,
1208
+ ne,
1209
+ Le,
1210
+ De,
1211
+ L,
1212
+ X,
1213
+ le,
1214
+ $e,
1215
+ b,
1216
+ w,
1217
+ r,
1218
+ c,
1219
+ p,
1220
+ G,
1221
+ Ge,
1222
+ Ce
1223
+ ]
1224
+ ), dt = V(
1225
+ () => it(Te),
1226
+ [Te]
1227
+ ), je = de(Te);
1228
+ je.current = Te;
1229
+ const pt = V(() => {
1230
+ const v = xe(L) ? ne ?? [] : le ?? [], q = qe, ee = L === "radialBar" ? lt(N, G) : Le;
1231
+ return /* @__PURE__ */ H("div", { className: "ds:sr-only", children: /* @__PURE__ */ ge("table", { id: P, children: [
1232
+ /* @__PURE__ */ H("caption", { children: e }),
1233
+ /* @__PURE__ */ H("thead", { children: /* @__PURE__ */ ge("tr", { children: [
1234
+ /* @__PURE__ */ H("th", { scope: "col", children: C("chart.table.series") }),
1235
+ v.map((D, F) => /* @__PURE__ */ H("th", { scope: "col", children: D }, `${D}-${F}`))
1236
+ ] }) }),
1237
+ /* @__PURE__ */ H("tbody", { children: q.map((D, F) => /* @__PURE__ */ ge("tr", { children: [
1238
+ /* @__PURE__ */ H("th", { scope: "row", children: D.name || C("chart.table.value") }),
1239
+ D.data.map((Ze, ue) => /* @__PURE__ */ H("td", { children: ee(Ze) }, `${F}-${ue}`))
1240
+ ] }, `${D.name}-${F}`)) })
1241
+ ] }) });
1242
+ }, [
1243
+ L,
1244
+ qe,
1245
+ ne,
1246
+ le,
1247
+ P,
1248
+ e,
1249
+ C,
1250
+ Le,
1251
+ G,
1252
+ N
1253
+ ]), ht = V(() => (xe(L), X), [X, L]), Xe = M ? {
1254
+ "--chart-fill-size": M
1255
+ } : void 0, Ye = /* @__PURE__ */ ge(
1256
+ "div",
1257
+ {
1258
+ ref: y,
1259
+ role: "figure",
1260
+ "aria-label": e,
1261
+ "aria-describedby": P,
1262
+ "data-legend-layout": Ce ? "row" : void 0,
1263
+ className: dr({
1264
+ // Explicit height wins over the density min-height unless the
1265
+ // caller also asked for a density explicitly.
1266
+ // A `%` height takes its height from the parent, never a density.
1267
+ density: M ? "none" : Y ?? (l !== void 0 ? "none" : void 0),
1268
+ className: [
1269
+ pr({
1270
+ fill: M ? g ? "rest" : "root" : "none"
1271
+ }),
1272
+ g ? void 0 : te
1273
+ ].filter(Boolean).join(" ")
1274
+ }),
1275
+ style: g ? void 0 : Xe,
1276
+ ...g ? {} : { "data-component": "chart", "data-component-id": a },
1277
+ children: [
1278
+ pt,
1279
+ /* @__PURE__ */ H(
1280
+ bt,
1281
+ {
1282
+ className: hr({ fill: M !== void 0 }),
1283
+ type: L,
1284
+ series: ht,
1285
+ options: dt,
1286
+ width: ut,
1287
+ height: Ue
1288
+ },
1289
+ L
1290
+ )
1291
+ ]
1292
+ }
1293
+ );
1294
+ return g ? /* @__PURE__ */ ge(
1295
+ "div",
1296
+ {
1297
+ "data-component": "chart",
1298
+ "data-component-id": a,
1299
+ className: mr({
1300
+ fill: M !== void 0,
1301
+ className: te
1302
+ }),
1303
+ style: Xe,
1304
+ children: [
1305
+ /* @__PURE__ */ H("div", { className: "ds:mb-[var(--spacing-xs)] ds:flex ds:justify-end", children: /* @__PURE__ */ H(
1306
+ It,
1307
+ {
1308
+ role: "radiogroup",
1309
+ mode: "toggle-single",
1310
+ size: "sm",
1311
+ "aria-label": C("chart.typeSwitcher.label"),
1312
+ value: L,
1313
+ onValueChange: (v) => {
1314
+ v !== L && (T(v), U == null || U(v));
1315
+ },
1316
+ children: E.map((v) => /* @__PURE__ */ H(
1317
+ Mt,
1318
+ {
1319
+ value: v,
1320
+ type: "button",
1321
+ icon: vr[v],
1322
+ "aria-label": C(br[v])
1323
+ },
1324
+ v
1325
+ ))
1326
+ }
1327
+ ) }),
1328
+ Ye
1329
+ ]
1330
+ }
1331
+ ) : Ye;
1332
+ }
1333
+ );
1334
+ Or.displayName = "Chart";
1335
+ export {
1336
+ Or as C,
1337
+ dr as a,
1338
+ ur as c
1339
+ };
1340
+ //# sourceMappingURL=chart-CwmyCuWe.js.map