@aspprev/versi-ds 0.5.6 → 0.5.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -27
- package/dist/charts.js +1 -1
- package/dist/{chunk-2KJU6VM4.js → chunk-2XE4FX42.js} +75 -23
- package/dist/chunk-2XE4FX42.js.map +1 -0
- package/dist/{chunk-ZPY72ILO.js → chunk-D3IKGVVK.js} +9 -9
- package/dist/chunk-D3IKGVVK.js.map +1 -0
- package/dist/{chunk-VUXHE4S6.js → chunk-DUWSR2UN.js} +15 -15
- package/dist/chunk-DUWSR2UN.js.map +1 -0
- package/dist/{chunk-HKCVDOGK.js → chunk-YEUOULSF.js} +90 -24
- package/dist/chunk-YEUOULSF.js.map +1 -0
- package/dist/core.d.ts +30 -1
- package/dist/core.js +7 -1
- package/dist/forms.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +10 -4
- package/dist/manifest.json +5 -5
- package/dist/overlays.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/themes.css +3341 -1
- package/package.json +4 -3
- package/dist/chunk-2KJU6VM4.js.map +0 -1
- package/dist/chunk-HKCVDOGK.js.map +0 -1
- package/dist/chunk-VUXHE4S6.js.map +0 -1
- package/dist/chunk-ZPY72ILO.js.map +0 -1
|
@@ -144,13 +144,67 @@ function useHighContrastPreference() {
|
|
|
144
144
|
return highContrast;
|
|
145
145
|
}
|
|
146
146
|
|
|
147
|
+
// src/hooks/useChartTheme.ts
|
|
148
|
+
import { useEffect as useEffect3, useState as useState3 } from "react";
|
|
149
|
+
function useChartTheme() {
|
|
150
|
+
const [theme, setTheme] = useState3(getChartTheme);
|
|
151
|
+
useEffect3(() => {
|
|
152
|
+
let frame = 0;
|
|
153
|
+
const read = () => {
|
|
154
|
+
const next = getChartTheme();
|
|
155
|
+
setTheme((previous) => JSON.stringify(previous) === JSON.stringify(next) ? previous : next);
|
|
156
|
+
};
|
|
157
|
+
const observer = new MutationObserver(() => {
|
|
158
|
+
cancelAnimationFrame(frame);
|
|
159
|
+
frame = requestAnimationFrame(read);
|
|
160
|
+
});
|
|
161
|
+
const options = { attributes: true, attributeFilter: ["class", "style", "data-ds-theme", "data-color-scheme", "data-contrast", "data-contrast-theme"] };
|
|
162
|
+
observer.observe(document.documentElement, options);
|
|
163
|
+
observer.observe(document.body, options);
|
|
164
|
+
read();
|
|
165
|
+
return () => {
|
|
166
|
+
observer.disconnect();
|
|
167
|
+
cancelAnimationFrame(frame);
|
|
168
|
+
};
|
|
169
|
+
}, []);
|
|
170
|
+
return theme;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
// src/components/chart/donut-data-labels.ts
|
|
174
|
+
function decorateDonutDataLabels(root, semanticColor) {
|
|
175
|
+
if (!root?.isConnected) return;
|
|
176
|
+
for (const label of root.querySelectorAll("text.apexcharts-pie-label")) {
|
|
177
|
+
const group = label.parentElement;
|
|
178
|
+
if (!group) continue;
|
|
179
|
+
let backdrop = group.querySelector("rect[data-versi-chart-label]");
|
|
180
|
+
if (!backdrop) {
|
|
181
|
+
backdrop = document.createElementNS("http://www.w3.org/2000/svg", "rect");
|
|
182
|
+
backdrop.setAttribute("data-versi-chart-label", "");
|
|
183
|
+
backdrop.setAttribute("aria-hidden", "true");
|
|
184
|
+
backdrop.setAttribute("pointer-events", "none");
|
|
185
|
+
backdrop.setAttribute("rx", "3");
|
|
186
|
+
if (label.classList.contains("apexcharts-pie-label-delay")) {
|
|
187
|
+
backdrop.classList.add("apexcharts-pie-label-delay");
|
|
188
|
+
backdrop.style.animationDelay = label.style.animationDelay;
|
|
189
|
+
}
|
|
190
|
+
group.insertBefore(backdrop, label);
|
|
191
|
+
}
|
|
192
|
+
label.setAttribute("data-versi-semantic-label", String(semanticColor));
|
|
193
|
+
const bounds = label.getBBox();
|
|
194
|
+
backdrop.setAttribute("x", String(bounds.x - 3));
|
|
195
|
+
backdrop.setAttribute("y", String(bounds.y - 2));
|
|
196
|
+
backdrop.setAttribute("width", String(bounds.width + 6));
|
|
197
|
+
backdrop.setAttribute("height", String(bounds.height + 4));
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
|
|
147
201
|
// src/components/chart/InteractiveDonutChart.tsx
|
|
148
202
|
import {
|
|
149
|
-
useEffect as
|
|
203
|
+
useEffect as useEffect4,
|
|
150
204
|
useId,
|
|
151
205
|
useMemo,
|
|
152
206
|
useRef,
|
|
153
|
-
useState as
|
|
207
|
+
useState as useState4
|
|
154
208
|
} from "react";
|
|
155
209
|
import { jsx as jsx2, jsxs } from "react/jsx-runtime";
|
|
156
210
|
function InteractiveDonutChart({
|
|
@@ -175,17 +229,17 @@ function InteractiveDonutChart({
|
|
|
175
229
|
}) {
|
|
176
230
|
const storedHighContrast = useHighContrastPreference();
|
|
177
231
|
const highContrast = highContrastOverride ?? storedHighContrast;
|
|
178
|
-
const [selectedIndex, setSelectedIndex] =
|
|
179
|
-
const [legendSelectedIndex, setLegendSelectedIndex] =
|
|
232
|
+
const [selectedIndex, setSelectedIndex] = useState4(null);
|
|
233
|
+
const [legendSelectedIndex, setLegendSelectedIndex] = useState4(
|
|
180
234
|
null
|
|
181
235
|
);
|
|
182
236
|
const containerRef = useRef(null);
|
|
183
237
|
const instructionsId = useId();
|
|
184
|
-
const chartTheme =
|
|
238
|
+
const chartTheme = useChartTheme();
|
|
185
239
|
const baseColors = !highContrast && colors?.length ? colors : chartTheme.donutSeries;
|
|
186
240
|
const neutralColors = !highContrast && mutedColors?.length ? mutedColors : chartTheme.mutedSeries;
|
|
187
241
|
const labels = useMemo(() => options.labels ?? [], [options.labels]);
|
|
188
|
-
|
|
242
|
+
useEffect4(() => {
|
|
189
243
|
setSelectedIndex(
|
|
190
244
|
(current) => current !== null && current >= series.length ? null : current
|
|
191
245
|
);
|
|
@@ -193,7 +247,7 @@ function InteractiveDonutChart({
|
|
|
193
247
|
(current) => current !== null && current >= series.length ? null : current
|
|
194
248
|
);
|
|
195
249
|
}, [series.length]);
|
|
196
|
-
|
|
250
|
+
useEffect4(() => {
|
|
197
251
|
const resetOnOutsideClick = (event) => {
|
|
198
252
|
if (containerRef.current?.contains(event.target)) return;
|
|
199
253
|
setSelectedIndex(null);
|
|
@@ -202,11 +256,11 @@ function InteractiveDonutChart({
|
|
|
202
256
|
document.addEventListener("pointerdown", resetOnOutsideClick);
|
|
203
257
|
return () => document.removeEventListener("pointerdown", resetOnOutsideClick);
|
|
204
258
|
}, []);
|
|
205
|
-
const [pieCircle, setPieCircle] =
|
|
206
|
-
const [measuredChartHeight, setMeasuredChartHeight] =
|
|
259
|
+
const [pieCircle, setPieCircle] = useState4(null);
|
|
260
|
+
const [measuredChartHeight, setMeasuredChartHeight] = useState4(
|
|
207
261
|
null
|
|
208
262
|
);
|
|
209
|
-
|
|
263
|
+
useEffect4(() => {
|
|
210
264
|
const container = containerRef.current;
|
|
211
265
|
if (!container) return;
|
|
212
266
|
const measure = () => {
|
|
@@ -299,11 +353,23 @@ function InteractiveDonutChart({
|
|
|
299
353
|
type: options.fill?.type ?? "solid",
|
|
300
354
|
opacity: options.fill?.opacity ?? 1
|
|
301
355
|
},
|
|
302
|
-
stroke: highContrast ? { ...options.stroke, colors: ["#ffffff"], width: 2 } : options.stroke,
|
|
356
|
+
stroke: highContrast ? { ...options.stroke, colors: ["#ffffff"], width: 2 } : options.stroke ?? {},
|
|
303
357
|
chart: {
|
|
304
358
|
...options.chart,
|
|
305
359
|
events: {
|
|
306
360
|
...options.chart?.events,
|
|
361
|
+
mounted(context, config) {
|
|
362
|
+
options.chart?.events?.mounted?.(context, config);
|
|
363
|
+
decorateDonutDataLabels(context.el, highContrast || !options.dataLabels?.style?.colors?.length);
|
|
364
|
+
},
|
|
365
|
+
updated(context, config) {
|
|
366
|
+
options.chart?.events?.updated?.(context, config);
|
|
367
|
+
decorateDonutDataLabels(context.el, highContrast || !options.dataLabels?.style?.colors?.length);
|
|
368
|
+
},
|
|
369
|
+
animationEnd(context, config) {
|
|
370
|
+
options.chart?.events?.animationEnd?.(context, config);
|
|
371
|
+
decorateDonutDataLabels(context.el, highContrast || !options.dataLabels?.style?.colors?.length);
|
|
372
|
+
},
|
|
307
373
|
dataPointSelection(event, chart, config) {
|
|
308
374
|
originalSelection?.(event, chart, config);
|
|
309
375
|
const nextIndex = Number(config?.dataPointIndex);
|
|
@@ -396,7 +462,7 @@ function InteractiveDonutChart({
|
|
|
396
462
|
"aria-label": ariaLabel,
|
|
397
463
|
"aria-describedby": instructionsId,
|
|
398
464
|
onKeyDown: handleKeyDown,
|
|
399
|
-
className: `chart-keyboard-focus-ring relative min-w-0 rounded-sm ${className ?? ""}`.trim(),
|
|
465
|
+
className: `versi-chart chart-keyboard-focus-ring relative min-w-0 rounded-sm ${className ?? ""}`.trim(),
|
|
400
466
|
children: [
|
|
401
467
|
loading ? /* @__PURE__ */ jsx2("div", { role: "status", "aria-busy": "true", "aria-live": "polite", className: "flex min-h-32 items-center justify-center text-sm text-content-secondary", children: loadingMessage }) : error ? /* @__PURE__ */ jsx2("div", { role: "alert", className: "flex min-h-32 items-center justify-center text-sm text-field-assistive-error", children: error }) : series.length === 0 ? /* @__PURE__ */ jsx2("div", { role: "status", className: "flex min-h-32 items-center justify-center text-sm text-content-secondary", children: emptyMessage }) : /* @__PURE__ */ jsx2(
|
|
402
468
|
LazyApexChart,
|
|
@@ -408,7 +474,7 @@ function InteractiveDonutChart({
|
|
|
408
474
|
series,
|
|
409
475
|
type: "donut"
|
|
410
476
|
},
|
|
411
|
-
highContrast
|
|
477
|
+
[highContrast, ...chartTheme.donutSeries, ...chartTheme.mutedSeries, chartTheme.axis, chartTheme.surface].join("|")
|
|
412
478
|
),
|
|
413
479
|
legendValue && pieCircle && /* @__PURE__ */ jsxs(
|
|
414
480
|
"div",
|
|
@@ -436,7 +502,7 @@ function InteractiveDonutChart({
|
|
|
436
502
|
}
|
|
437
503
|
|
|
438
504
|
// src/components/chart/TimeSeriesChart.tsx
|
|
439
|
-
import { useEffect as
|
|
505
|
+
import { useEffect as useEffect5, useRef as useRef2, useState as useState5 } from "react";
|
|
440
506
|
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
441
507
|
function TimeSeriesChart({
|
|
442
508
|
options,
|
|
@@ -453,10 +519,10 @@ function TimeSeriesChart({
|
|
|
453
519
|
}) {
|
|
454
520
|
const storedHighContrast = useHighContrastPreference();
|
|
455
521
|
const highContrast = highContrastOverride ?? storedHighContrast;
|
|
456
|
-
const theme =
|
|
522
|
+
const theme = useChartTheme();
|
|
457
523
|
const containerRef = useRef2(null);
|
|
458
|
-
const [measuredHeight, setMeasuredHeight] =
|
|
459
|
-
const [measuredWidth, setMeasuredWidth] =
|
|
524
|
+
const [measuredHeight, setMeasuredHeight] = useState5(null);
|
|
525
|
+
const [measuredWidth, setMeasuredWidth] = useState5(null);
|
|
460
526
|
const themeKey = [
|
|
461
527
|
highContrast ? "high-contrast" : "standard",
|
|
462
528
|
theme.axis,
|
|
@@ -465,7 +531,7 @@ function TimeSeriesChart({
|
|
|
465
531
|
theme.surface,
|
|
466
532
|
...theme.series
|
|
467
533
|
].join("|");
|
|
468
|
-
|
|
534
|
+
useEffect5(() => {
|
|
469
535
|
if (!responsiveHeight) {
|
|
470
536
|
setMeasuredHeight(null);
|
|
471
537
|
setMeasuredWidth(null);
|
|
@@ -565,7 +631,7 @@ function TimeSeriesChart({
|
|
|
565
631
|
};
|
|
566
632
|
const sharedOptions = {
|
|
567
633
|
...options,
|
|
568
|
-
colors: highContrast ? [...theme.series] : options.colors,
|
|
634
|
+
colors: highContrast ? [...theme.series] : options.colors ?? [...theme.series],
|
|
569
635
|
chart: {
|
|
570
636
|
toolbar: { show: false },
|
|
571
637
|
zoom: { enabled: false },
|
|
@@ -617,12 +683,12 @@ function TimeSeriesChart({
|
|
|
617
683
|
},
|
|
618
684
|
annotations: highContrast ? {
|
|
619
685
|
...options.annotations,
|
|
620
|
-
xaxis: options.annotations?.xaxis
|
|
686
|
+
xaxis: (options.annotations?.xaxis ?? []).map((annotation, index) => ({
|
|
621
687
|
...annotation,
|
|
622
688
|
fillColor: theme.series[index % theme.series.length],
|
|
623
689
|
opacity: 0.28
|
|
624
690
|
}))
|
|
625
|
-
} : options.annotations,
|
|
691
|
+
} : options.annotations ?? {},
|
|
626
692
|
xaxis: {
|
|
627
693
|
tooltip: { enabled: false },
|
|
628
694
|
axisBorder: { color: theme.axisBorder },
|
|
@@ -669,7 +735,7 @@ function TimeSeriesChart({
|
|
|
669
735
|
}
|
|
670
736
|
}
|
|
671
737
|
};
|
|
672
|
-
return /* @__PURE__ */ jsx3("div", { ref: containerRef, role: "img", "aria-label": ariaLabel, className, children: loading ? /* @__PURE__ */ jsx3("div", { role: "status", "aria-busy": "true", "aria-live": "polite", className: "flex min-h-32 items-center justify-center text-sm text-content-secondary", children: loadingMessage }) : error ? /* @__PURE__ */ jsx3("div", { role: "alert", className: "flex min-h-32 items-center justify-center text-sm text-field-assistive-error", children: error }) : !hasSeriesData ? /* @__PURE__ */ jsx3("div", { role: "status", className: "flex min-h-32 items-center justify-center text-sm text-content-secondary", children: emptyMessage }) : /* @__PURE__ */ jsx3(
|
|
738
|
+
return /* @__PURE__ */ jsx3("div", { ref: containerRef, role: "img", "aria-label": ariaLabel, className: `versi-chart ${className ?? ""}`.trim(), children: loading ? /* @__PURE__ */ jsx3("div", { role: "status", "aria-busy": "true", "aria-live": "polite", className: "flex min-h-32 items-center justify-center text-sm text-content-secondary", children: loadingMessage }) : error ? /* @__PURE__ */ jsx3("div", { role: "alert", className: "flex min-h-32 items-center justify-center text-sm text-field-assistive-error", children: error }) : !hasSeriesData ? /* @__PURE__ */ jsx3("div", { role: "status", className: "flex min-h-32 items-center justify-center text-sm text-content-secondary", children: emptyMessage }) : /* @__PURE__ */ jsx3(
|
|
673
739
|
LazyApexChart,
|
|
674
740
|
{
|
|
675
741
|
...chartProps,
|
|
@@ -705,7 +771,7 @@ function TimeRangeSelector({
|
|
|
705
771
|
type: "button",
|
|
706
772
|
"aria-pressed": isSelected,
|
|
707
773
|
onClick: () => onSelect(range),
|
|
708
|
-
className: `shrink-0 whitespace-nowrap rounded-sm border px-2.5 py-1 text-sm font-semibold transition-colors ${isSelected ? "border-selection-border bg-selection-background text-selection-content" : "border-
|
|
774
|
+
className: `shrink-0 whitespace-nowrap rounded-sm border px-2.5 py-1 text-sm font-semibold transition-colors ${isSelected ? "border-selection-border bg-selection-background text-selection-content" : "border-content-link text-content-link hover:bg-action-primary-ghost"}`,
|
|
709
775
|
children: range
|
|
710
776
|
},
|
|
711
777
|
range
|
|
@@ -759,4 +825,4 @@ export {
|
|
|
759
825
|
normalizeTimeSeriesTooltipColor,
|
|
760
826
|
buildTimeSeriesTooltip
|
|
761
827
|
};
|
|
762
|
-
//# sourceMappingURL=chunk-
|
|
828
|
+
//# sourceMappingURL=chunk-YEUOULSF.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/chart/LazyApexChart.tsx","../src/utils/chart-theme.ts","../src/components/chart/interactive-donut-utils.ts","../src/hooks/useHighContrastPreference.ts","../src/hooks/useChartTheme.ts","../src/components/chart/donut-data-labels.ts","../src/components/chart/InteractiveDonutChart.tsx","../src/components/chart/TimeSeriesChart.tsx","../src/components/chart/TimeRangeSelector.tsx","../src/components/chart/time-series-chart-utils.ts"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useState } from \"react\";\nimport type { Props as ReactApexChartProps } from \"react-apexcharts\";\n\nexport type Props = ReactApexChartProps;\n\nexport default function LazyApexChart(props: Props) {\n const [ApexChart, setApexChart] = useState<\n React.ComponentType<Props> | null\n >(null);\n\n useEffect(() => {\n let active = true;\n import(\"react-apexcharts\").then(({ default: component }) => {\n if (active) setApexChart(() => component);\n });\n return () => {\n active = false;\n };\n }, []);\n\n if (!ApexChart) {\n return (\n <div\n className=\"flex min-h-40 items-center justify-center text-sm text-content-muted\"\n role=\"status\"\n aria-label=\"Carregando grafico\"\n >\n Carregando grafico...\n </div>\n );\n }\n\n return <ApexChart {...props} />;\n}\n","const SERIES_FALLBACKS = [\n \"#0f62c1\",\n \"#16d39a\",\n \"#feb019\",\n \"#ff4560\",\n \"#775dd0\",\n \"#00b8d9\",\n \"#ff8f00\",\n \"#26a69a\",\n \"#ec407a\",\n \"#7cb342\",\n \"#5c6bc0\",\n \"#8d6e63\",\n] as const;\n\nconst DONUT_SERIES_FALLBACKS = [\n \"#66d288\",\n \"#3182f6\",\n \"#ffc25c\",\n \"#7c58e8\",\n \"#ff6b6b\",\n ...SERIES_FALLBACKS.slice(5),\n] as const;\n\nconst MUTED_SERIES_FALLBACKS = [\n \"#c5cad0\",\n \"#d9dde1\",\n \"#eceef0\",\n \"#aeb5bd\",\n] as const;\n\nconst readColorToken = (token: string, fallback: string): string => {\n if (typeof window === \"undefined\") return fallback;\n const value = window\n .getComputedStyle(document.body ?? document.documentElement)\n .getPropertyValue(token)\n .trim();\n return value ? `rgb(${value})` : fallback;\n};\n\nexport const getChartTheme = () => ({\n series: SERIES_FALLBACKS.map((fallback, index) =>\n readColorToken(`--chart-${index + 1}`, fallback),\n ),\n donutSeries: DONUT_SERIES_FALLBACKS.map((fallback, index) =>\n readColorToken(`--chart-donut-${index + 1}`, fallback),\n ),\n mutedSeries: MUTED_SERIES_FALLBACKS.map((fallback, index) =>\n readColorToken(`--chart-muted-${index + 1}`, fallback),\n ),\n balance: readColorToken(\"--chart-balance\", \"#00a76f\"),\n invested: readColorToken(\"--chart-invested\", \"#1e90ff\"),\n grid: readColorToken(\"--chart-grid\", \"#e5e7eb\"),\n axis: readColorToken(\"--chart-axis\", \"#6b7280\"),\n axisBorder: readColorToken(\"--chart-axis-border\", \"#d1d5db\"),\n tooltipText: readColorToken(\"--chart-tooltip-text\", \"#111827\"),\n neutralLine: readColorToken(\"--chart-line-neutral\", \"#181818\"),\n surface: readColorToken(\"--surface-card\", \"#ffffff\"),\n});\n\nexport const getChartSeriesRecord = (\n backendColors?: Record<number, string>,\n count = 5,\n): Record<number, string> => {\n const { series } = getChartTheme();\n const fallbackColors = Object.fromEntries(\n Array.from({ length: count }, (_, index) => [index + 1, series[index]]),\n );\n\n const isDarkSchemeActive =\n typeof document !== \"undefined\" &&\n document.documentElement.dataset.colorScheme === \"dark\";\n\n const highContrastActive =\n typeof document !== \"undefined\" &&\n document.documentElement.dataset.contrast === \"high\";\n\n return highContrastActive || isDarkSchemeActive\n ? fallbackColors\n : { ...fallbackColors, ...backendColors };\n};\n","export function resolveInteractiveDonutColors({\n count,\n colors,\n mutedColors,\n selectedIndex,\n}: {\n count: number;\n colors: string[];\n mutedColors: string[];\n selectedIndex: number | null;\n}) {\n if (colors.length === 0 || mutedColors.length === 0) return [];\n\n return Array.from({ length: count }, (_, index) => {\n const color = colors[index % colors.length];\n\n if (selectedIndex === null || index === selectedIndex) return color;\n\n return mutedColors[index % mutedColors.length];\n });\n}\n\nexport function resolveRelativeDonutSelection({\n currentIndex,\n direction,\n count,\n}: {\n currentIndex: number | null;\n direction: -1 | 1;\n count: number;\n}) {\n if (count <= 0) return null;\n if (currentIndex === null) return direction > 0 ? 0 : count - 1;\n\n return (currentIndex + direction + count) % count;\n}\n\nconst TOOLTIP_ENTITIES: Record<string, string> = {\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n '\"': \""\",\n \"'\": \"'\",\n};\n\nexport function escapeDonutTooltipText(value: unknown) {\n return String(value ?? \"\").replace(\n /[&<>\"']/g,\n (character) => TOOLTIP_ENTITIES[character],\n );\n}\n","\"use client\";\n\nimport { useEffect, useState } from \"react\";\n\nexport function useHighContrastPreference() {\n const [highContrast, setHighContrast] = useState(false);\n\n useEffect(() => {\n const root = document.documentElement;\n const read = () => setHighContrast(root.dataset.contrast === \"high\");\n read();\n\n const observer = new MutationObserver(read);\n observer.observe(root, {\n attributes: true,\n attributeFilter: [\"data-contrast\"],\n });\n return () => observer.disconnect();\n }, []);\n\n return highContrast;\n}\n","\"use client\";\n\nimport { useEffect, useState } from \"react\";\nimport { getChartTheme } from \"../utils/chart-theme\";\n\n/** Refresh mounted charts when the consumer changes identity or display mode. */\nexport function useChartTheme() {\n const [theme, setTheme] = useState(getChartTheme);\n useEffect(() => {\n let frame = 0;\n const read = () => {\n const next = getChartTheme();\n setTheme(previous => JSON.stringify(previous) === JSON.stringify(next) ? previous : next);\n };\n const observer = new MutationObserver(() => {\n cancelAnimationFrame(frame);\n frame = requestAnimationFrame(read);\n });\n const options = { attributes: true, attributeFilter: [\"class\", \"style\", \"data-ds-theme\", \"data-color-scheme\", \"data-contrast\", \"data-contrast-theme\"] };\n observer.observe(document.documentElement, options);\n observer.observe(document.body, options);\n read();\n return () => { observer.disconnect(); cancelAnimationFrame(frame); };\n }, []);\n return theme;\n}\n","/** Apex pie labels do not implement the dataLabels.background option. Add a\n * neutral SVG backdrop so labels remain readable on solids and HC patterns. */\nexport function decorateDonutDataLabels(root: Element | undefined, semanticColor: boolean) {\n if (!root?.isConnected) return;\n for (const label of root.querySelectorAll<SVGGraphicsElement>(\"text.apexcharts-pie-label\")) {\n const group = label.parentElement;\n if (!group) continue;\n let backdrop = group.querySelector<SVGRectElement>(\"rect[data-versi-chart-label]\");\n if (!backdrop) {\n backdrop = document.createElementNS(\"http://www.w3.org/2000/svg\", \"rect\");\n backdrop.setAttribute(\"data-versi-chart-label\", \"\");\n backdrop.setAttribute(\"aria-hidden\", \"true\");\n backdrop.setAttribute(\"pointer-events\", \"none\");\n backdrop.setAttribute(\"rx\", \"3\");\n if (label.classList.contains(\"apexcharts-pie-label-delay\")) {\n backdrop.classList.add(\"apexcharts-pie-label-delay\");\n backdrop.style.animationDelay = label.style.animationDelay;\n }\n group.insertBefore(backdrop, label);\n }\n label.setAttribute(\"data-versi-semantic-label\", String(semanticColor));\n const bounds = label.getBBox();\n backdrop.setAttribute(\"x\", String(bounds.x - 3));\n backdrop.setAttribute(\"y\", String(bounds.y - 2));\n backdrop.setAttribute(\"width\", String(bounds.width + 6));\n backdrop.setAttribute(\"height\", String(bounds.height + 4));\n }\n}\n","\"use client\";\n\nimport { useHighContrastPreference } from \"../../hooks/useHighContrastPreference\";\nimport { useChartTheme } from \"../../hooks/useChartTheme\";\nimport { decorateDonutDataLabels } from \"./donut-data-labels\";\nimport {\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n type KeyboardEvent,\n type ReactNode,\n} from \"react\";\nimport Chart, { type Props as DonutChartProps } from \"./LazyApexChart\";\nimport {\n escapeDonutTooltipText,\n resolveInteractiveDonutColors,\n resolveRelativeDonutSelection,\n} from \"./interactive-donut-utils\";\n\nexport type InteractiveDonutOptions = NonNullable<DonutChartProps[\"options\"]>;\n\nexport type InteractiveDonutProps = Omit<\n DonutChartProps,\n \"options\" | \"series\" | \"type\"\n> & {\n options?: InteractiveDonutOptions;\n series: number[];\n loading?: boolean;\n loadingMessage?: ReactNode;\n error?: ReactNode;\n emptyMessage?: ReactNode;\n colors?: string[];\n mutedColors?: string[];\n valueFormatter?: (value: number) => string;\n ariaLabel?: string;\n className?: string;\n chartClassName?: string;\n responsiveHeight?: boolean;\n highContrastOverride?: boolean;\n};\n\nexport default function InteractiveDonutChart({\n options = {},\n series,\n loading = false,\n loadingMessage = \"Carregando gráfico…\",\n error,\n emptyMessage = \"Nenhum dado disponível.\",\n colors,\n mutedColors,\n valueFormatter = (value) =>\n new Intl.NumberFormat(\"pt-BR\", {\n style: \"currency\",\n currency: \"BRL\",\n }).format(value),\n ariaLabel = \"Gráfico de distribuição\",\n className,\n chartClassName,\n responsiveHeight = false,\n highContrastOverride,\n ...rest\n}: InteractiveDonutProps) {\n const storedHighContrast = useHighContrastPreference();\n const highContrast = highContrastOverride ?? storedHighContrast;\n const [selectedIndex, setSelectedIndex] = useState<number | null>(null);\n const [legendSelectedIndex, setLegendSelectedIndex] = useState<number | null>(\n null,\n );\n const containerRef = useRef<HTMLDivElement>(null);\n const instructionsId = useId();\n const chartTheme = useChartTheme();\n const baseColors =\n !highContrast && colors?.length ? colors : chartTheme.donutSeries;\n const neutralColors = !highContrast && mutedColors?.length\n ? mutedColors\n : chartTheme.mutedSeries;\n const labels = useMemo(() => options.labels ?? [], [options.labels]);\n\n useEffect(() => {\n setSelectedIndex((current) =>\n current !== null && current >= series.length ? null : current,\n );\n setLegendSelectedIndex((current) =>\n current !== null && current >= series.length ? null : current,\n );\n }, [series.length]);\n\n useEffect(() => {\n const resetOnOutsideClick = (event: PointerEvent) => {\n if (containerRef.current?.contains(event.target as Node)) return;\n\n setSelectedIndex(null);\n setLegendSelectedIndex(null);\n };\n\n document.addEventListener(\"pointerdown\", resetOnOutsideClick);\n return () =>\n document.removeEventListener(\"pointerdown\", resetOnOutsideClick);\n }, []);\n\n const [pieCircle, setPieCircle] = useState<{\n cx: number;\n cy: number;\n diameter: number;\n } | null>(null);\n const [measuredChartHeight, setMeasuredChartHeight] = useState<number | null>(\n null,\n );\n\n useEffect(() => {\n const container = containerRef.current;\n if (!container) return;\n\n const measure = () => {\n const containerRect = container.getBoundingClientRect();\n\n if (responsiveHeight) {\n const fallbackHeight =\n typeof rest.height === \"number\" ? rest.height : 0;\n const nextHeight = Math.max(\n fallbackHeight,\n Math.floor(containerRect.height),\n );\n\n if (nextHeight > 0) {\n setMeasuredChartHeight((current) =>\n current === nextHeight ? current : nextHeight,\n );\n }\n }\n\n const areas = container.querySelectorAll<SVGPathElement>(\n \".apexcharts-pie-area\",\n );\n if (!areas.length) return;\n\n let minX = Infinity;\n let minY = Infinity;\n let maxX = -Infinity;\n let maxY = -Infinity;\n\n areas.forEach((area) => {\n const rect = area.getBoundingClientRect();\n minX = Math.min(minX, rect.left);\n minY = Math.min(minY, rect.top);\n maxX = Math.max(maxX, rect.right);\n maxY = Math.max(maxY, rect.bottom);\n });\n\n setPieCircle({\n cx: (minX + maxX) / 2 - containerRect.left,\n cy: (minY + maxY) / 2 - containerRect.top,\n diameter: Math.min(maxX - minX, maxY - minY),\n });\n };\n\n measure();\n\n const resizeObserver = new ResizeObserver(measure);\n resizeObserver.observe(container);\n\n const mutationObserver = new MutationObserver(measure);\n mutationObserver.observe(container, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: [\"d\"],\n });\n\n return () => {\n resizeObserver.disconnect();\n mutationObserver.disconnect();\n };\n }, [responsiveHeight, rest.height, series.length]);\n\n const donutSizeRatio = useMemo(() => {\n const size = options.plotOptions?.pie?.donut?.size ?? \"65%\";\n const parsed = parseFloat(String(size));\n return Number.isFinite(parsed) ? parsed / 100 : 0.65;\n }, [options.plotOptions?.pie?.donut?.size]);\n\n const displayColors = resolveInteractiveDonutColors({\n count: series.length,\n colors: baseColors,\n mutedColors: neutralColors,\n selectedIndex,\n });\n\n const legendValue =\n legendSelectedIndex !== null\n ? {\n label:\n labels[legendSelectedIndex] ??\n `Categoria ${legendSelectedIndex + 1}`,\n value: Number(series[legendSelectedIndex] ?? 0),\n }\n : null;\n\n const interactiveOptions = useMemo<InteractiveDonutOptions>(() => {\n const originalSelection = options.chart?.events?.dataPointSelection;\n const originalLegendClick = options.chart?.events?.legendClick;\n\n return {\n ...options,\n colors: displayColors,\n fill: highContrast\n ? {\n type: \"pattern\",\n pattern: {\n style: [\n \"verticalLines\",\n \"horizontalLines\",\n \"slantedLines\",\n \"squares\",\n \"circles\",\n ],\n width: 6,\n height: 6,\n strokeWidth: 2,\n },\n }\n : {\n ...options.fill,\n type: options.fill?.type ?? \"solid\",\n opacity: options.fill?.opacity ?? 1,\n },\n stroke: highContrast\n ? { ...options.stroke, colors: [\"#ffffff\"], width: 2 }\n : (options.stroke ?? {}),\n chart: {\n ...options.chart,\n events: {\n ...options.chart?.events,\n mounted(context, config) {\n options.chart?.events?.mounted?.(context, config);\n decorateDonutDataLabels(context.el, highContrast || !options.dataLabels?.style?.colors?.length);\n },\n updated(context, config) {\n options.chart?.events?.updated?.(context, config);\n decorateDonutDataLabels(context.el, highContrast || !options.dataLabels?.style?.colors?.length);\n },\n animationEnd(context, config) {\n options.chart?.events?.animationEnd?.(context, config);\n decorateDonutDataLabels(context.el, highContrast || !options.dataLabels?.style?.colors?.length);\n },\n dataPointSelection(event, chart, config) {\n originalSelection?.(event, chart, config);\n const nextIndex = Number(config?.dataPointIndex);\n\n if (!Number.isInteger(nextIndex) || nextIndex < 0) return;\n\n setSelectedIndex((current) =>\n current === nextIndex ? null : nextIndex,\n );\n },\n legendClick(chartContext, seriesIndex, config) {\n originalLegendClick?.(chartContext, seriesIndex, config);\n\n if (typeof seriesIndex !== \"number\" || seriesIndex < 0) return;\n\n setLegendSelectedIndex((current) =>\n current === seriesIndex ? null : seriesIndex,\n );\n },\n },\n },\n legend: {\n ...options.legend,\n labels: {\n ...options.legend?.labels,\n colors: chartTheme.axis,\n },\n onItemClick: {\n ...options.legend?.onItemClick,\n toggleDataSeries: false,\n },\n },\n states: {\n ...options.states,\n hover: {\n ...options.states?.hover,\n filter: { type: \"none\" },\n },\n active: {\n ...options.states?.active,\n allowMultipleDataPointsSelection: false,\n filter: { type: \"none\" },\n },\n },\n tooltip: {\n ...options.tooltip,\n enabled: true,\n followCursor: true,\n custom({ series: tooltipSeries, seriesIndex }) {\n const value = Number(tooltipSeries?.[seriesIndex] ?? 0);\n const label = escapeDonutTooltipText(\n labels[seriesIndex] ?? `Categoria ${seriesIndex + 1}`,\n );\n const formattedValue = escapeDonutTooltipText(valueFormatter(value));\n\n return `<div class=\"donut-chart-tooltip\"><span class=\"donut-chart-tooltip-label\">${label}</span><strong class=\"donut-chart-tooltip-value\">${formattedValue}</strong></div>`;\n },\n },\n };\n }, [\n chartTheme.axis,\n displayColors,\n highContrast,\n labels,\n options,\n valueFormatter,\n ]);\n\n const selectedLabel =\n selectedIndex === null\n ? \"Nenhuma categoria selecionada\"\n : `${labels[selectedIndex] ?? `Categoria ${selectedIndex + 1}`}: ${valueFormatter(\n Number(series[selectedIndex] ?? 0),\n )}`;\n\n const legendValueLabel =\n legendSelectedIndex === null\n ? \"\"\n : `Valor em destaque: ${\n labels[legendSelectedIndex] ?? `Categoria ${legendSelectedIndex + 1}`\n }: ${valueFormatter(Number(series[legendSelectedIndex] ?? 0))}`;\n\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (\n [\"ArrowRight\", \"ArrowDown\", \"ArrowLeft\", \"ArrowUp\"].includes(event.key)\n ) {\n event.preventDefault();\n const direction =\n event.key === \"ArrowRight\" || event.key === \"ArrowDown\" ? 1 : -1;\n setSelectedIndex((current) =>\n resolveRelativeDonutSelection({\n currentIndex: current,\n direction,\n count: series.length,\n }),\n );\n }\n\n if (event.key === \"Escape\") {\n setSelectedIndex(null);\n setLegendSelectedIndex(null);\n }\n };\n\n return (\n <div\n ref={containerRef}\n role=\"group\"\n tabIndex={0}\n aria-label={ariaLabel}\n aria-describedby={instructionsId}\n onKeyDown={handleKeyDown}\n className={`versi-chart chart-keyboard-focus-ring relative min-w-0 rounded-sm ${className ?? \"\"}`.trim()}\n >\n {loading ? (\n <div role=\"status\" aria-busy=\"true\" aria-live=\"polite\" className=\"flex min-h-32 items-center justify-center text-sm text-content-secondary\">\n {loadingMessage}\n </div>\n ) : error ? (\n <div role=\"alert\" className=\"flex min-h-32 items-center justify-center text-sm text-field-assistive-error\">\n {error}\n </div>\n ) : series.length === 0 ? (\n <div role=\"status\" className=\"flex min-h-32 items-center justify-center text-sm text-content-secondary\">\n {emptyMessage}\n </div>\n ) : (\n <Chart\n key={[highContrast, ...chartTheme.donutSeries, ...chartTheme.mutedSeries, chartTheme.axis, chartTheme.surface].join(\"|\")}\n {...rest}\n className={chartClassName}\n height={\n responsiveHeight && measuredChartHeight\n ? measuredChartHeight\n : rest.height\n }\n options={interactiveOptions}\n series={series}\n type=\"donut\"\n />\n )}\n {legendValue && pieCircle && (\n <div\n aria-hidden=\"true\"\n className=\"pointer-events-none absolute flex flex-col items-center justify-center text-center\"\n style={{\n left: pieCircle.cx,\n top: pieCircle.cy,\n width: pieCircle.diameter * donutSizeRatio * 0.94,\n transform: \"translate(-50%, -50%)\",\n }}\n >\n <span className=\"w-full truncate text-xs leading-tight text-content-secondary\">\n {legendValue.label}\n </span>\n <span className=\"w-full break-words text-md font-bold leading-tight text-content-primary\">\n {valueFormatter(legendValue.value)}\n </span>\n </div>\n )}\n <span className=\"sr-only\" aria-live=\"polite\">\n {selectedLabel}\n </span>\n <span className=\"sr-only\" aria-live=\"polite\">\n {legendValueLabel}\n </span>\n <span id={instructionsId} className=\"sr-only\">\n Use as setas para navegar pelas categorias e Escape para limpar a\n seleção.\n </span>\n </div>\n );\n}\n","\"use client\";\n\nimport { useHighContrastPreference } from \"../../hooks/useHighContrastPreference\";\nimport { useChartTheme } from \"../../hooks/useChartTheme\";\nimport { useEffect, useRef, useState, type ReactNode } from \"react\";\nimport Chart, { type Props as ApexChartProps } from \"./LazyApexChart\";\n\nexport type TimeSeriesChartOptions = NonNullable<ApexChartProps[\"options\"]>;\n\nexport type TimeSeriesChartProps = Omit<ApexChartProps, \"options\"> & {\n options: TimeSeriesChartOptions;\n ariaLabel: string;\n loading?: boolean;\n loadingMessage?: ReactNode;\n error?: ReactNode;\n emptyMessage?: ReactNode;\n className?: string;\n chartClassName?: string;\n responsiveHeight?: boolean;\n highContrastOverride?: boolean;\n};\n\nexport default function TimeSeriesChart({\n options,\n ariaLabel,\n loading = false,\n loadingMessage = \"Carregando gráfico…\",\n error,\n emptyMessage = \"Nenhum dado disponível.\",\n className,\n chartClassName,\n responsiveHeight = false,\n highContrastOverride,\n ...chartProps\n}: TimeSeriesChartProps) {\n const storedHighContrast = useHighContrastPreference();\n const highContrast = highContrastOverride ?? storedHighContrast;\n const theme = useChartTheme();\n const containerRef = useRef<HTMLDivElement>(null);\n const [measuredHeight, setMeasuredHeight] = useState<number | null>(null);\n const [measuredWidth, setMeasuredWidth] = useState<number | null>(null);\n const themeKey = [\n highContrast ? \"high-contrast\" : \"standard\",\n theme.axis,\n theme.axisBorder,\n theme.grid,\n theme.surface,\n ...theme.series,\n ].join(\"|\");\n\n useEffect(() => {\n if (!responsiveHeight) {\n setMeasuredHeight(null);\n setMeasuredWidth(null);\n return;\n }\n\n const container = containerRef.current;\n if (!container || typeof ResizeObserver === \"undefined\") return;\n\n const fallbackHeight =\n typeof chartProps.height === \"number\" ? chartProps.height : 0;\n let frame = 0;\n const measure = () => {\n cancelAnimationFrame(frame);\n frame = requestAnimationFrame(() => {\n const bounds = container.getBoundingClientRect();\n const nextWidth = Math.floor(bounds.width);\n const nextHeight = Math.max(\n fallbackHeight,\n Math.floor(bounds.height),\n );\n\n if (nextWidth > 0) {\n setMeasuredWidth((current) =>\n current === nextWidth ? current : nextWidth,\n );\n }\n\n if (nextHeight > 0) {\n setMeasuredHeight((current) =>\n current === nextHeight ? current : nextHeight,\n );\n }\n });\n };\n\n measure();\n const resizeObserver = new ResizeObserver(measure);\n resizeObserver.observe(container);\n return () => {\n cancelAnimationFrame(frame);\n resizeObserver.disconnect();\n };\n }, [chartProps.height, responsiveHeight]);\n\n const renderedHeight =\n responsiveHeight && measuredHeight ? measuredHeight : chartProps.height;\n const renderedWidth =\n responsiveHeight && measuredWidth ? measuredWidth : chartProps.width;\n const hasSeriesData =\n Array.isArray(chartProps.series) &&\n chartProps.series.some((entry) => {\n if (!entry || typeof entry !== \"object\") return false;\n const data = (entry as { data?: unknown }).data;\n return Array.isArray(data) ? data.length > 0 : data !== undefined;\n });\n const xAxis = options.xaxis;\n const xAxisCategories = Array.isArray(xAxis?.categories)\n ? xAxis.categories\n : [];\n const availableWidth =\n typeof renderedWidth === \"number\" ? renderedWidth : 720;\n const maxVisibleXAxisLabels = Math.max(\n 4,\n Math.min(12, Math.floor(availableWidth / 88)),\n );\n const xAxisLabelStep = Math.max(\n 1,\n Math.ceil(xAxisCategories.length / maxVisibleXAxisLabels),\n );\n const hasDenseXAxis = xAxisCategories.length > maxVisibleXAxisLabels;\n const xAxisCategoriesKey = JSON.stringify(xAxisCategories);\n const responsiveXAxisFormatter = xAxisCategories.length\n ? (\n value: string | number,\n _timestamp?: number,\n opts?: { dataPointIndex?: number },\n ) => {\n const fallbackIndex = xAxisCategories.findIndex(\n (category) => String(category) === String(value),\n );\n const index =\n opts?.dataPointIndex ?? (fallbackIndex >= 0 ? fallbackIndex : 0);\n const isLast = index === xAxisCategories.length - 1;\n\n return index % xAxisLabelStep === 0 || isLast\n ? String(xAxisCategories[index] ?? value)\n : \"\";\n }\n : xAxis?.labels?.formatter;\n const renderKey = [\n themeKey,\n renderedWidth ?? \"auto-width\",\n renderedHeight ?? \"auto-height\",\n xAxisCategoriesKey,\n ].join(\"|\");\n\n const yAxis = Array.isArray(options.yaxis)\n ? options.yaxis.map((axis) => ({\n ...axis,\n labels: {\n ...axis.labels,\n show: true,\n style: {\n fontSize: \"11px\",\n fontWeight: 500,\n ...axis.labels?.style,\n colors: theme.axis,\n },\n },\n }))\n : {\n ...options.yaxis,\n labels: {\n ...options.yaxis?.labels,\n show: true,\n style: {\n fontSize: \"11px\",\n fontWeight: 500,\n ...options.yaxis?.labels?.style,\n colors: theme.axis,\n },\n },\n };\n\n const sharedOptions: TimeSeriesChartOptions = {\n ...options,\n colors: highContrast ? [...theme.series] : (options.colors ?? [...theme.series]),\n chart: {\n toolbar: { show: false },\n zoom: { enabled: false },\n parentHeightOffset: 0,\n redrawOnParentResize: true,\n redrawOnWindowResize: true,\n ...options.chart,\n foreColor: theme.axis,\n },\n dataLabels: {\n enabled: false,\n ...options.dataLabels,\n },\n grid: {\n show: true,\n borderColor: theme.grid,\n strokeDashArray: 0,\n ...options.grid,\n xaxis: {\n lines: {\n ...options.grid?.xaxis?.lines,\n show: hasDenseXAxis\n ? false\n : (options.grid?.xaxis?.lines?.show ?? true),\n },\n },\n yaxis: {\n lines: { show: true, ...options.grid?.yaxis?.lines },\n },\n padding: {\n top: 0,\n right: 8,\n bottom: 8,\n left: 8,\n ...options.grid?.padding,\n },\n },\n stroke: {\n width: 2,\n curve: \"straight\",\n ...options.stroke,\n colors: highContrast ? [...theme.series] : options.stroke?.colors,\n dashArray: highContrast\n ? [0, 6, 2, 8, 4, 10, 1, 7, 3, 9, 5, 11]\n : (options.stroke?.dashArray ?? 0),\n },\n markers: {\n strokeWidth: 1,\n strokeColors: [theme.surface],\n ...options.markers,\n size: highContrast ? 4 : (options.markers?.size ?? 3),\n hover: { size: 4, ...options.markers?.hover },\n },\n annotations: highContrast\n ? {\n ...options.annotations,\n xaxis: (options.annotations?.xaxis ?? []).map((annotation, index) => ({\n ...annotation,\n fillColor: theme.series[index % theme.series.length],\n opacity: 0.28,\n })),\n }\n : (options.annotations ?? {}),\n xaxis: {\n tooltip: { enabled: false },\n axisBorder: { color: theme.axisBorder },\n ...xAxis,\n tickAmount: xAxisCategories.length ? undefined : xAxis?.tickAmount,\n axisTicks: {\n color: theme.axisBorder,\n ...xAxis?.axisTicks,\n show: hasDenseXAxis ? false : (xAxis?.axisTicks?.show ?? true),\n },\n labels: {\n ...xAxis?.labels,\n show: true,\n formatter: responsiveXAxisFormatter,\n style: {\n fontSize: \"11px\",\n fontWeight: 500,\n ...xAxis?.labels?.style,\n colors: theme.axis,\n },\n },\n },\n yaxis: yAxis,\n tooltip: {\n shared: true,\n intersect: false,\n followCursor: true,\n ...options.tooltip,\n },\n legend: {\n ...options.legend,\n labels: {\n ...options.legend?.labels,\n colors: theme.axis,\n },\n },\n noData: {\n text: \"Nenhum dado disponível no período selecionado\",\n ...options.noData,\n style: {\n fontSize: \"15px\",\n ...options.noData?.style,\n color: theme.axis,\n },\n },\n };\n\n return (\n <div ref={containerRef} role=\"img\" aria-label={ariaLabel} className={`versi-chart ${className ?? \"\"}`.trim()}>\n {loading ? (\n <div role=\"status\" aria-busy=\"true\" aria-live=\"polite\" className=\"flex min-h-32 items-center justify-center text-sm text-content-secondary\">\n {loadingMessage}\n </div>\n ) : error ? (\n <div role=\"alert\" className=\"flex min-h-32 items-center justify-center text-sm text-field-assistive-error\">\n {error}\n </div>\n ) : !hasSeriesData ? (\n <div role=\"status\" className=\"flex min-h-32 items-center justify-center text-sm text-content-secondary\">\n {emptyMessage}\n </div>\n ) : (\n <Chart\n key={renderKey}\n {...chartProps}\n className={chartClassName}\n width={renderedWidth}\n height={renderedHeight}\n options={sharedOptions}\n />\n )}\n </div>\n );\n}\n","\"use client\";\n\nexport type TimeRangeSelectorProps<T extends string | number> = {\n options: readonly T[];\n selected: T;\n onSelect: (range: T) => void;\n ariaLabel?: string;\n className?: string;\n};\n\nexport default function TimeRangeSelector<T extends string | number>({\n options,\n selected,\n onSelect,\n ariaLabel = \"Período do gráfico\",\n className,\n}: TimeRangeSelectorProps<T>) {\n return (\n <div\n role=\"group\"\n aria-label={ariaLabel}\n className={`flex min-w-0 flex-wrap justify-start gap-1.5 ${className ?? \"\"}`.trim()}\n >\n {options.map((range) => {\n const isSelected = selected === range;\n\n return (\n <button\n key={range}\n type=\"button\"\n aria-pressed={isSelected}\n onClick={() => onSelect(range)}\n className={`shrink-0 whitespace-nowrap rounded-sm border px-2.5 py-1 text-sm font-semibold transition-colors ${\n isSelected\n ? \"border-selection-border bg-selection-background text-selection-content\"\n : \"border-content-link text-content-link hover:bg-action-primary-ghost\"\n }`}\n >\n {range}\n </button>\n );\n })}\n </div>\n );\n}\n","const TOOLTIP_ENTITIES: Record<string, string> = {\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n '\"': \""\",\n \"'\": \"'\",\n};\n\nexport function escapeTimeSeriesTooltipText(value: unknown) {\n return String(value ?? \"\").replace(\n /[&<>\"']/g,\n (character) => TOOLTIP_ENTITIES[character],\n );\n}\n\nconst SAFE_TOOLTIP_COLOR =\n /^(?:#[\\da-f]{3,8}|rgba?\\([\\d\\s.,%]+\\)|hsla?\\([\\d\\s.,%]+\\)|var\\(--[\\w-]+\\)|[a-z]+)$/i;\n\nexport function normalizeTimeSeriesTooltipColor(value?: string) {\n const color = String(value ?? \"\").trim();\n return SAFE_TOOLTIP_COLOR.test(color) ? color : \"currentColor\";\n}\n\nexport type TimeSeriesTooltipRow = {\n label: string;\n value: string;\n color?: string;\n};\n\nexport function buildTimeSeriesTooltip({\n reference,\n rows,\n}: {\n reference: string;\n rows: TimeSeriesTooltipRow[];\n}) {\n const content = rows\n .map(({ label, value, color }) => {\n const marker = color\n ? `<span class=\"time-series-chart-tooltip-marker\" style=\"background-color:${normalizeTimeSeriesTooltipColor(color)}\"></span>`\n : \"\";\n\n return `<div class=\"time-series-chart-tooltip-row\"><span class=\"time-series-chart-tooltip-name\">${marker}${escapeTimeSeriesTooltipText(label)}</span><strong>${escapeTimeSeriesTooltipText(value)}</strong></div>`;\n })\n .join(\"\");\n\n return `<div class=\"time-series-chart-tooltip\"><div class=\"time-series-chart-tooltip-reference\">${escapeTimeSeriesTooltipText(reference)}</div>${content}</div>`;\n}\n"],"mappings":"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","names":["useEffect","useState","useEffect","useState","useState","useEffect","useEffect","useState","jsx","useState","useEffect","useEffect","useRef","useState","jsx","useRef","useState","useEffect","jsx","TOOLTIP_ENTITIES"]}
|
package/dist/core.d.ts
CHANGED
|
@@ -545,4 +545,33 @@ interface UseContainerBreakpointOptions {
|
|
|
545
545
|
declare function resolveContainerBreakpoint(width: number, breakpoints?: ContainerBreakpointMap): ContainerBreakpoint;
|
|
546
546
|
declare function useContainerBreakpoint<TElement extends HTMLElement = HTMLElement>(ref: RefObject<TElement | null>, options?: UseContainerBreakpointOptions): ContainerBreakpoint;
|
|
547
547
|
|
|
548
|
-
|
|
548
|
+
/** Existing presets remain available for consumers that use their original names. */
|
|
549
|
+
declare const LEGACY_THEMES: readonly ["default", "azul1", "azul2", "azul3", "laranja1", "laranja2", "verde1", "verde2", "verde3", "verde4", "rosa1"];
|
|
550
|
+
/** Client palettes are proposals for visual review, not certified brand manuals. */
|
|
551
|
+
declare const CLIENT_THEMES: readonly [{
|
|
552
|
+
readonly id: "basf";
|
|
553
|
+
readonly label: "BASF";
|
|
554
|
+
}, {
|
|
555
|
+
readonly id: "funssest";
|
|
556
|
+
readonly label: "FUNSSEST";
|
|
557
|
+
}, {
|
|
558
|
+
readonly id: "maisprevidencia";
|
|
559
|
+
readonly label: "Mais Previdência";
|
|
560
|
+
}, {
|
|
561
|
+
readonly id: "aceprev";
|
|
562
|
+
readonly label: "ACEPREV";
|
|
563
|
+
}, {
|
|
564
|
+
readonly id: "cibrius";
|
|
565
|
+
readonly label: "Cibrius";
|
|
566
|
+
}, {
|
|
567
|
+
readonly id: "serpros";
|
|
568
|
+
readonly label: "SERPROS";
|
|
569
|
+
}, {
|
|
570
|
+
readonly id: "einvest";
|
|
571
|
+
readonly label: "E-Invest";
|
|
572
|
+
}];
|
|
573
|
+
declare const DESIGN_SYSTEM_THEMES: readonly ["default", "azul1", "azul2", "azul3", "laranja1", "laranja2", "verde1", "verde2", "verde3", "verde4", "rosa1", ...("basf" | "funssest" | "maisprevidencia" | "aceprev" | "cibrius" | "serpros" | "einvest")[]];
|
|
574
|
+
type ClientTheme = typeof CLIENT_THEMES[number]["id"];
|
|
575
|
+
type DesignSystemTheme = typeof DESIGN_SYSTEM_THEMES[number];
|
|
576
|
+
|
|
577
|
+
export { Avatar, type AvatarProps, type BoxProps, type Breakpoint, Button, type ButtonProps, CLIENT_THEMES, CheckBox, type CheckBoxProps, Checkbox, type CheckboxProps, CircularLoading, type CircularLoadingProps, type ClientTheme, type ContainerBreakpoint, type ContainerBreakpointMap, DESIGN_SYSTEM_THEMES, type DesignSystemTheme, Divider, DomainStatusBadge, type DomainStatusBadgeProps, FilterBar, type FilterBarProps, FocusNavigationMode, FormActions, type FormActionsProps, FormErrorNavigation, FormGrid, type FormGridProps, type IFilterControl, type IFilterOption, type IFilterProps, type IHeaderItem, type IMobileCardTableExpandableConfig, type IMobileCardTableHeader, type ITableColumnConfig, type ITableExpandableConfig, type ITablePaginationProps, IconProvider, type IconProviderProps, InfoGrid, type InfoGridProps, InfoItem, type InfoItemProps, InputSlider, type InputSliderProps, LEGACY_THEMES, type LegacyStatusAppearanceConfig, LoadingDots, type LoadingDotsProps, MobileCardTable, type MobileCardTableProps, ModalCardView as ModalCard, type ModalCardProps, NoticeView as Notice, type OptionalValuePolicy, PageHeading, type PageHeadingBackAction, type PageHeadingProps, PageState, type PageStateProps, type PageStateVariant, type PageTabItem, PageTabsHeader, type PageTabsHeaderProps, PaginationView as Pagination, type PaginationProps, type PaginationSize, type PaginationVariant, IconProvider as PortalIconProvider, type ResolvedStatusAppearance, SkipLink, type SkipLinkProps, Slider, type SliderProps, type StatusAppearance, type StatusAppearanceConfig, type StatusAppearanceMap, StatusBadge, type StatusBadgeColor, type StatusBadgeProps, type StatusDomain, type StatusResolverOptions, type StatusTone, Surface, type SurfaceProps, Table, type TableDensity, type TableHeaderVariant, type TableOverflowMode, type TableProps, type TableRowVariant, TextGroup, type TextGroupProps, ThemedImage, type ThemedImageProps, Tooltip, type TooltipProps, Typography, Typography as TypographyComponent, type TypographyProps, type TypographySemanticRole, type UseContainerBreakpointOptions, breakpoints, findFirstInvalidField, getBreakpoint, getStatusBadgeClassName, normalizeStatus, resolveContainerBreakpoint, resolveStatusAppearance, useBreakpoint, useContainerBreakpoint };
|
package/dist/core.js
CHANGED
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
import {
|
|
3
3
|
Avatar_default,
|
|
4
4
|
Button_default,
|
|
5
|
+
CLIENT_THEMES,
|
|
5
6
|
CheckBox,
|
|
6
7
|
Checkbox,
|
|
7
8
|
CircularLoading,
|
|
9
|
+
DESIGN_SYSTEM_THEMES,
|
|
8
10
|
Divider_default,
|
|
9
11
|
DomainStatusBadge,
|
|
10
12
|
FilterBar,
|
|
@@ -16,6 +18,7 @@ import {
|
|
|
16
18
|
InfoGrid,
|
|
17
19
|
InfoItem,
|
|
18
20
|
InputSliderView_default,
|
|
21
|
+
LEGACY_THEMES,
|
|
19
22
|
LoadingDotsView_default,
|
|
20
23
|
MobileCardTable_default,
|
|
21
24
|
ModalCardView_default,
|
|
@@ -39,7 +42,7 @@ import {
|
|
|
39
42
|
resolveStatusAppearance,
|
|
40
43
|
typography_default,
|
|
41
44
|
useContainerBreakpoint
|
|
42
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-2XE4FX42.js";
|
|
43
46
|
import {
|
|
44
47
|
DocumentItem
|
|
45
48
|
} from "./chunk-2XXVEFFY.js";
|
|
@@ -52,9 +55,11 @@ import {
|
|
|
52
55
|
export {
|
|
53
56
|
Avatar_default as Avatar,
|
|
54
57
|
Button_default as Button,
|
|
58
|
+
CLIENT_THEMES,
|
|
55
59
|
CheckBox,
|
|
56
60
|
Checkbox,
|
|
57
61
|
CircularLoading,
|
|
62
|
+
DESIGN_SYSTEM_THEMES,
|
|
58
63
|
Divider_default as Divider,
|
|
59
64
|
DocumentItem,
|
|
60
65
|
DomainStatusBadge,
|
|
@@ -67,6 +72,7 @@ export {
|
|
|
67
72
|
InfoGrid,
|
|
68
73
|
InfoItem,
|
|
69
74
|
InputSliderView_default as InputSlider,
|
|
75
|
+
LEGACY_THEMES,
|
|
70
76
|
LoadingDotsView_default as LoadingDots,
|
|
71
77
|
MobileCardTable_default as MobileCardTable,
|
|
72
78
|
ModalCardView_default as ModalCard,
|
package/dist/forms.js
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { Avatar, AvatarProps, BoxProps, Breakpoint, Button, ButtonProps, CheckBox, CheckBoxProps, Checkbox, CheckboxProps, CircularLoading, CircularLoadingProps, ContainerBreakpoint, ContainerBreakpointMap, Divider, DomainStatusBadge, DomainStatusBadgeProps, FilterBar, FilterBarProps, FocusNavigationMode, FormActions, FormActionsProps, FormErrorNavigation, FormGrid, FormGridProps, IFilterControl, IFilterOption, IFilterProps, IHeaderItem, IMobileCardTableExpandableConfig, IMobileCardTableHeader, ITableColumnConfig, ITableExpandableConfig, ITablePaginationProps, IconProvider, IconProviderProps, InfoGrid, InfoGridProps, InfoItem, InfoItemProps, InputSlider, InputSliderProps, LegacyStatusAppearanceConfig, LoadingDots, LoadingDotsProps, MobileCardTable, MobileCardTableProps, ModalCard, ModalCardProps, Notice, OptionalValuePolicy, PageHeading, PageHeadingBackAction, PageHeadingProps, PageState, PageStateProps, PageStateVariant, PageTabItem, PageTabsHeader, PageTabsHeaderProps, Pagination, PaginationProps, PaginationSize, PaginationVariant, IconProvider as PortalIconProvider, ResolvedStatusAppearance, SkipLink, SkipLinkProps, Slider, SliderProps, StatusAppearance, StatusAppearanceConfig, StatusAppearanceMap, StatusBadge, StatusBadgeColor, StatusBadgeProps, StatusDomain, StatusResolverOptions, StatusTone, Surface, SurfaceProps, Table, TableDensity, TableHeaderVariant, TableOverflowMode, TableProps, TableRowVariant, TextGroup, TextGroupProps, ThemedImage, ThemedImageProps, Tooltip, TooltipProps, Typography, Typography as TypographyComponent, TypographyProps, TypographySemanticRole, UseContainerBreakpointOptions, breakpoints, findFirstInvalidField, getBreakpoint, getStatusBadgeClassName, normalizeStatus, resolveContainerBreakpoint, resolveStatusAppearance, useBreakpoint, useContainerBreakpoint } from './core.js';
|
|
1
|
+
export { Avatar, AvatarProps, BoxProps, Breakpoint, Button, ButtonProps, CLIENT_THEMES, CheckBox, CheckBoxProps, Checkbox, CheckboxProps, CircularLoading, CircularLoadingProps, ClientTheme, ContainerBreakpoint, ContainerBreakpointMap, DESIGN_SYSTEM_THEMES, DesignSystemTheme, Divider, DomainStatusBadge, DomainStatusBadgeProps, FilterBar, FilterBarProps, FocusNavigationMode, FormActions, FormActionsProps, FormErrorNavigation, FormGrid, FormGridProps, IFilterControl, IFilterOption, IFilterProps, IHeaderItem, IMobileCardTableExpandableConfig, IMobileCardTableHeader, ITableColumnConfig, ITableExpandableConfig, ITablePaginationProps, IconProvider, IconProviderProps, InfoGrid, InfoGridProps, InfoItem, InfoItemProps, InputSlider, InputSliderProps, LEGACY_THEMES, LegacyStatusAppearanceConfig, LoadingDots, LoadingDotsProps, MobileCardTable, MobileCardTableProps, ModalCard, ModalCardProps, Notice, OptionalValuePolicy, PageHeading, PageHeadingBackAction, PageHeadingProps, PageState, PageStateProps, PageStateVariant, PageTabItem, PageTabsHeader, PageTabsHeaderProps, Pagination, PaginationProps, PaginationSize, PaginationVariant, IconProvider as PortalIconProvider, ResolvedStatusAppearance, SkipLink, SkipLinkProps, Slider, SliderProps, StatusAppearance, StatusAppearanceConfig, StatusAppearanceMap, StatusBadge, StatusBadgeColor, StatusBadgeProps, StatusDomain, StatusResolverOptions, StatusTone, Surface, SurfaceProps, Table, TableDensity, TableHeaderVariant, TableOverflowMode, TableProps, TableRowVariant, TextGroup, TextGroupProps, ThemedImage, ThemedImageProps, Tooltip, TooltipProps, Typography, Typography as TypographyComponent, TypographyProps, TypographySemanticRole, UseContainerBreakpointOptions, breakpoints, findFirstInvalidField, getBreakpoint, getStatusBadgeClassName, normalizeStatus, resolveContainerBreakpoint, resolveStatusAppearance, useBreakpoint, useContainerBreakpoint } from './core.js';
|
|
2
2
|
export { AccessibilityColorScheme, AccessibilityFontScale, AccessibilityHighContrastTheme, AccessibilityPreferences, AccessibilityPreferencesPanel, AccessibilityPreferencesPanelProps, ContrastPreference, ContrastPreferenceProps, DEFAULT_ACCESSIBILITY_PREFERENCES, FontSizePreference, FontSizePreferenceProps, HighContrastToggle, HighContrastToggleProps, InputSwitch, InputSwitchProps, Modal, ModalProps, ReadingPreferences, ReadingPreferencesProps, ThemePreference, ThemePreferenceProps } from './overlays.js';
|
|
3
3
|
export { CountrySelect, CountrySelectOption, CountrySelectProps, DatePicker, DatePickerNavigationVariant, DatePickerProps, DatePickerSelectionMode, Datepicker, DatepickerNavigationVariant, DatepickerProps, Input, InputFormatter, InputMask, InputPhone, InputPhoneCountryOption, InputPhoneProps, InputPhoneValue, InputProps, InputSelect, InputSelectOption, InputSelectProps, InputStandalone, InputStandaloneProps, MultiSelect, MultiSelectOption, MultiSelectProps, MultiSelectViewProps, OtpCodeInput, OtpCodeInputHandle, OtpCodeInputMask, OtpCodeInputProps, PhoneCountryOption, PhoneInput, PhoneInputProps, PhoneValue, RadioCardGroup, RadioCardGroupProps, RadioCardOption, RadioGroup, RadioGroupProps, SelectCountry, SelectCountryOption, SelectCountryProps, SelectMulti, SelectMultiOption, SelectMultiProps, SelectMultiViewProps, TextArea, TextAreaProps, buildPhonePayload, parsePhonePayload } from './forms.js';
|
|
4
4
|
export { BoletoBarCode, BoletoBarCodeProps, FileDropzone, FileDropzoneProps, FileList, FileListProps, FileRejection, FileRejectionContext, FileUploadItem, FileUploadItemStatus, FileUploadProgress, FileUploadProgressProps, FileUploadProgressStatus, FileValidationMessage, FileValidationOptions, FileValidationReason, FileValidationResult, FileViewer, FileViewerProps, FileViewerSource, FileViewerSourceInput, QRCode, QRCodeErrorCorrectionLevel, QRCodeProps, validateFiles } from './documents.js';
|
package/dist/index.js
CHANGED
|
@@ -12,13 +12,15 @@ import {
|
|
|
12
12
|
normalizeTimeSeriesTooltipColor,
|
|
13
13
|
resolveInteractiveDonutColors,
|
|
14
14
|
resolveRelativeDonutSelection
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-YEUOULSF.js";
|
|
16
16
|
import {
|
|
17
17
|
Avatar_default,
|
|
18
18
|
Button_default,
|
|
19
|
+
CLIENT_THEMES,
|
|
19
20
|
CheckBox,
|
|
20
21
|
Checkbox,
|
|
21
22
|
CircularLoading,
|
|
23
|
+
DESIGN_SYSTEM_THEMES,
|
|
22
24
|
Divider_default,
|
|
23
25
|
DomainStatusBadge,
|
|
24
26
|
FilterBar,
|
|
@@ -30,6 +32,7 @@ import {
|
|
|
30
32
|
InfoGrid,
|
|
31
33
|
InfoItem,
|
|
32
34
|
InputSliderView_default,
|
|
35
|
+
LEGACY_THEMES,
|
|
33
36
|
LoadingDotsView_default,
|
|
34
37
|
MobileCardTable_default,
|
|
35
38
|
ModalCardView_default,
|
|
@@ -53,7 +56,7 @@ import {
|
|
|
53
56
|
resolveStatusAppearance,
|
|
54
57
|
typography_default,
|
|
55
58
|
useContainerBreakpoint
|
|
56
|
-
} from "./chunk-
|
|
59
|
+
} from "./chunk-2XE4FX42.js";
|
|
57
60
|
import {
|
|
58
61
|
BoletoBarCode,
|
|
59
62
|
FileDropzone_default,
|
|
@@ -84,7 +87,7 @@ import {
|
|
|
84
87
|
buildPhonePayload,
|
|
85
88
|
datePicker_default,
|
|
86
89
|
parsePhonePayload
|
|
87
|
-
} from "./chunk-
|
|
90
|
+
} from "./chunk-DUWSR2UN.js";
|
|
88
91
|
import {
|
|
89
92
|
Tooltip_default,
|
|
90
93
|
breakpoints,
|
|
@@ -102,18 +105,20 @@ import {
|
|
|
102
105
|
Modal_default,
|
|
103
106
|
ReadingPreferences,
|
|
104
107
|
ThemePreference
|
|
105
|
-
} from "./chunk-
|
|
108
|
+
} from "./chunk-D3IKGVVK.js";
|
|
106
109
|
export {
|
|
107
110
|
AccessibilityPreferencesPanel,
|
|
108
111
|
Avatar_default as Avatar,
|
|
109
112
|
BoletoBarCode,
|
|
110
113
|
Button_default as Button,
|
|
114
|
+
CLIENT_THEMES,
|
|
111
115
|
CheckBox,
|
|
112
116
|
Checkbox,
|
|
113
117
|
CircularLoading,
|
|
114
118
|
ContrastPreference,
|
|
115
119
|
CountrySelect,
|
|
116
120
|
DEFAULT_ACCESSIBILITY_PREFERENCES,
|
|
121
|
+
DESIGN_SYSTEM_THEMES,
|
|
117
122
|
datePicker_default as DatePicker,
|
|
118
123
|
Datepicker,
|
|
119
124
|
Divider_default as Divider,
|
|
@@ -140,6 +145,7 @@ export {
|
|
|
140
145
|
InputStandalone,
|
|
141
146
|
InputSwitch_default as InputSwitch,
|
|
142
147
|
InteractiveDonutChart,
|
|
148
|
+
LEGACY_THEMES,
|
|
143
149
|
LazyApexChart,
|
|
144
150
|
LoadingDotsView_default as LoadingDots,
|
|
145
151
|
MobileCardTable_default as MobileCardTable,
|
package/dist/manifest.json
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aspprev/versi-ds",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.9",
|
|
4
4
|
"files": [
|
|
5
5
|
"DocumentItem-BU0J2QGP.d.ts",
|
|
6
6
|
"charts.d.ts",
|
|
7
7
|
"charts.js",
|
|
8
|
-
"chunk-
|
|
8
|
+
"chunk-2XE4FX42.js",
|
|
9
9
|
"chunk-2XXVEFFY.js",
|
|
10
|
-
"chunk-
|
|
10
|
+
"chunk-D3IKGVVK.js",
|
|
11
|
+
"chunk-DUWSR2UN.js",
|
|
11
12
|
"chunk-IS7ACRMB.js",
|
|
12
13
|
"chunk-MMTKCHRP.js",
|
|
13
14
|
"chunk-PMU4AIIJ.js",
|
|
14
|
-
"chunk-
|
|
15
|
-
"chunk-ZPY72ILO.js",
|
|
15
|
+
"chunk-YEUOULSF.js",
|
|
16
16
|
"core.d.ts",
|
|
17
17
|
"core.js",
|
|
18
18
|
"countries-browser.d.ts",
|