@etus/ui 0.4.0-beta.14 → 0.4.0-beta.16

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 (62) hide show
  1. package/dist/{chunk-QUENPT24.js → chunk-2NY6DDLO.js} +5 -5
  2. package/dist/{chunk-QUENPT24.js.map → chunk-2NY6DDLO.js.map} +1 -1
  3. package/dist/chunk-345S7BBL.js +3 -0
  4. package/dist/{chunk-IXJHHR3Y.js.map → chunk-345S7BBL.js.map} +1 -1
  5. package/dist/{chunk-7GCTZEMK.js → chunk-5U5XAOES.js} +68 -47
  6. package/dist/chunk-5U5XAOES.js.map +1 -0
  7. package/dist/chunk-COZXTBIU.js +176 -0
  8. package/dist/chunk-COZXTBIU.js.map +1 -0
  9. package/dist/{chunk-4KOJTZVU.js → chunk-FCIF6H6E.js} +3 -3
  10. package/dist/{chunk-4KOJTZVU.js.map → chunk-FCIF6H6E.js.map} +1 -1
  11. package/dist/{chunk-37IIHQP4.js → chunk-IMUBWKZC.js} +52 -4
  12. package/dist/chunk-IMUBWKZC.js.map +1 -0
  13. package/dist/chunk-KDJCZXLB.js +91 -0
  14. package/dist/chunk-KDJCZXLB.js.map +1 -0
  15. package/dist/chunk-TP4PDKFE.js +3 -0
  16. package/dist/{chunk-KRHL3YH2.js.map → chunk-TP4PDKFE.js.map} +1 -1
  17. package/dist/{chunk-FDES5YDF.js → chunk-WMG2MMJF.js} +3 -3
  18. package/dist/chunk-WMG2MMJF.js.map +1 -0
  19. package/dist/{chunk-2Z722V5K.js → chunk-ZPAWUKJI.js} +40 -5
  20. package/dist/chunk-ZPAWUKJI.js.map +1 -0
  21. package/dist/components/advanced/ReportBuilder/index.js +2 -2
  22. package/dist/components/advanced/index.js +9 -9
  23. package/dist/components/data-display/BarChart/index.js +1 -1
  24. package/dist/components/data-display/BarList/index.js +1 -1
  25. package/dist/components/data-display/EmptyState/index.js +1 -1
  26. package/dist/components/data-display/LineChart/index.js +1 -1
  27. package/dist/components/data-display/index.js +14 -14
  28. package/dist/components/feedback/index.js +4 -4
  29. package/dist/components/forms/index.js +10 -11
  30. package/dist/components/index.js +97 -97
  31. package/dist/components/layout/index.js +3 -3
  32. package/dist/components/navigation/AccountSwitch/index.js +1 -1
  33. package/dist/components/navigation/Sidebar/index.js +1 -1
  34. package/dist/components/navigation/index.js +8 -8
  35. package/dist/components/primitives/ArrowAnimated/index.js +2 -89
  36. package/dist/components/primitives/ArrowAnimated/index.js.map +1 -1
  37. package/dist/components/primitives/index.js +11 -10
  38. package/dist/components/workflow/index.js +5 -5
  39. package/dist/index.d.ts +902 -867
  40. package/dist/index.js +97 -97
  41. package/dist/styles.css +63 -50
  42. package/package.json +12 -13
  43. package/dist/chunk-2Z722V5K.js.map +0 -1
  44. package/dist/chunk-37IIHQP4.js.map +0 -1
  45. package/dist/chunk-7GCTZEMK.js.map +0 -1
  46. package/dist/chunk-FDES5YDF.js.map +0 -1
  47. package/dist/chunk-IXJHHR3Y.js +0 -3
  48. package/dist/chunk-KRHL3YH2.js +0 -3
  49. package/dist/chunk-QYWCXM7F.js +0 -96
  50. package/dist/chunk-QYWCXM7F.js.map +0 -1
  51. package/dist/chunk-SXJMERQL.js +0 -40
  52. package/dist/chunk-SXJMERQL.js.map +0 -1
  53. package/dist/components/data-display/DashboardFilterbar/index.js +0 -111
  54. package/dist/components/data-display/DashboardFilterbar/index.js.map +0 -1
  55. package/dist/components/forms/ToggleGroup/index.js +0 -6
  56. package/dist/components/forms/ToggleGroup/index.js.map +0 -1
  57. package/dist/components/navigation/MobileSidebar/index.js +0 -190
  58. package/dist/components/navigation/MobileSidebar/index.js.map +0 -1
  59. package/dist/components/navigation/UserProfileDropdown/index.js +0 -224
  60. package/dist/components/navigation/UserProfileDropdown/index.js.map +0 -1
  61. package/dist/components/navigation/WorkspaceDropdown/index.js +0 -192
  62. package/dist/components/navigation/WorkspaceDropdown/index.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import { ChartTooltipContent, ChartContainer, ChartTooltip, ChartLegend, ChartLegendContent } from './chunk-7I6KK6QE.js';
2
2
  import { cn } from './chunk-HRNDJU7D.js';
3
3
  import * as React from 'react';
4
- import { BarChart as BarChart$1, CartesianGrid, XAxis, Label, YAxis, Bar } from 'recharts';
4
+ import { BarChart as BarChart$1, CartesianGrid, XAxis, Label, YAxis, Bar, LabelList } from 'recharts';
5
5
  import { jsx, jsxs } from 'react/jsx-runtime';
6
6
 
7
7
  function normalizeSeriesConfig(series) {
@@ -9,6 +9,43 @@ function normalizeSeriesConfig(series) {
9
9
  (s) => typeof s === "string" ? { dataKey: s } : s
10
10
  );
11
11
  }
12
+ function renderBarValueLabel(isHorizontal, formatter) {
13
+ return function BarValueLabel(labelProps) {
14
+ const props = labelProps;
15
+ if (props.value == null) return null;
16
+ const value = Number(props.value);
17
+ const height = Number(props.height ?? 0);
18
+ const width = Number(props.width ?? 0);
19
+ const x = Number(props.x ?? 0);
20
+ const y = Number(props.y ?? 0);
21
+ const text = formatter ? formatter(value) : String(props.value);
22
+ const negative = value < 0;
23
+ if ((isHorizontal ? width : height) === 0) return null;
24
+ if (isHorizontal) {
25
+ return /* @__PURE__ */ jsx(
26
+ "text",
27
+ {
28
+ className: "fill-foreground text-xs",
29
+ dominantBaseline: "central",
30
+ textAnchor: negative ? "end" : "start",
31
+ x: negative ? x - 6 : x + width + 6,
32
+ y: y + height / 2,
33
+ children: text
34
+ }
35
+ );
36
+ }
37
+ return /* @__PURE__ */ jsx(
38
+ "text",
39
+ {
40
+ className: "fill-foreground text-xs",
41
+ textAnchor: "middle",
42
+ x: x + width / 2,
43
+ y: negative ? y + height + 14 : Math.max(y - 6, 12),
44
+ children: text
45
+ }
46
+ );
47
+ };
48
+ }
12
49
  function BarChart({
13
50
  allowDecimals = true,
14
51
  ariaLabel,
@@ -31,6 +68,7 @@ function BarChart({
31
68
  series,
32
69
  showGrid = true,
33
70
  showLegend = false,
71
+ showValueLabels = false,
34
72
  showTooltip = true,
35
73
  showXAxis = true,
36
74
  showYAxis = true,
@@ -213,7 +251,17 @@ function BarChart({
213
251
  radius: barRadius,
214
252
  stackId: isStacked ? "bar-stack" : stackId,
215
253
  style: onValueChange ? { cursor: "pointer" } : void 0,
216
- onClick: onValueChange ? handleBarClick(dataKey) : void 0
254
+ onClick: onValueChange ? handleBarClick(dataKey) : void 0,
255
+ children: showValueLabels ? /* @__PURE__ */ jsx(
256
+ LabelList,
257
+ {
258
+ content: renderBarValueLabel(
259
+ isHorizontal,
260
+ typeof showValueLabels === "object" ? showValueLabels.formatter : void 0
261
+ ),
262
+ dataKey
263
+ }
264
+ ) : null
217
265
  },
218
266
  dataKey
219
267
  );
@@ -229,5 +277,5 @@ function BarChart({
229
277
  BarChart.displayName = "BarChart";
230
278
 
231
279
  export { BarChart };
232
- //# sourceMappingURL=chunk-37IIHQP4.js.map
233
- //# sourceMappingURL=chunk-37IIHQP4.js.map
280
+ //# sourceMappingURL=chunk-IMUBWKZC.js.map
281
+ //# sourceMappingURL=chunk-IMUBWKZC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/data-display/BarChart/BarChart.tsx"],"names":["data","props","RechartsBarChart"],"mappings":"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","file":"chunk-IMUBWKZC.js","sourcesContent":["\"use client\"\n\nimport type {\n BarChartProps,\n BarChartSeriesConfig,\n} from \"./BarChart.types\"\n\nimport * as React from \"react\"\nimport {\n Bar,\n CartesianGrid,\n Label,\n LabelList,\n BarChart as RechartsBarChart,\n XAxis,\n YAxis,\n} from \"recharts\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n ChartContainer,\n ChartLegend,\n ChartLegendContent,\n ChartTooltip,\n ChartTooltipContent,\n} from \"../Chart\"\n\n/**\n * Normalize series to BarChartSeriesConfig format\n */\nfunction normalizeSeriesConfig(\n series: (BarChartSeriesConfig | string)[]\n): BarChartSeriesConfig[] {\n return series.map((s) =>\n typeof s === \"string\" ? { dataKey: s } : s\n )\n}\n\n/**\n * BarChart - Data visualization component for categorical comparisons\n *\n * Displays quantitative values as rectangular bars. The height or width\n * of bars is proportional to the values they represent. Ideal for\n * comparing values between categories.\n *\n * @example\n * ```tsx\n * const data = [\n * { month: \"Jan\", desktop: 186, mobile: 80 },\n * { month: \"Feb\", desktop: 305, mobile: 200 },\n * ]\n *\n * const config = {\n * desktop: { label: \"Desktop\", color: \"hsl(var(--chart-1))\" },\n * mobile: { label: \"Mobile\", color: \"hsl(var(--chart-2))\" },\n * }\n *\n * <BarChart\n * data={data}\n * config={config}\n * xAxisKey=\"month\"\n * series={[\"desktop\", \"mobile\"]}\n * />\n * ```\n */\ninterface BarValueLabelProps {\n height?: number | string\n value?: number | string\n width?: number | string\n x?: number | string\n y?: number | string\n}\n\nfunction renderBarValueLabel(\n isHorizontal: boolean,\n formatter?: (value: number) => string\n) {\n return function BarValueLabel(labelProps: unknown) {\n const props = labelProps as BarValueLabelProps\n if (props.value == null) return null\n const value = Number(props.value)\n const height = Number(props.height ?? 0)\n const width = Number(props.width ?? 0)\n const x = Number(props.x ?? 0)\n const y = Number(props.y ?? 0)\n const text = formatter ? formatter(value) : String(props.value)\n const negative = value < 0\n // barra de tamanho zero não ganha rótulo (diverging: cada mês zera um lado)\n if ((isHorizontal ? width : height) === 0) return null\n if (isHorizontal) {\n return (\n <text\n className=\"fill-foreground text-xs\"\n dominantBaseline=\"central\"\n textAnchor={negative ? \"end\" : \"start\"}\n x={negative ? x - 6 : x + width + 6}\n y={y + height / 2}\n >\n {text}\n </text>\n )\n }\n return (\n <text\n className=\"fill-foreground text-xs\"\n textAnchor=\"middle\"\n x={x + width / 2}\n y={negative ? y + height + 14 : Math.max(y - 6, 12)}\n >\n {text}\n </text>\n )\n }\n}\n\nexport function BarChart({\n allowDecimals = true,\n ariaLabel,\n autoMinValue = false,\n barCategoryGap,\n barGap = 4,\n className,\n config,\n customTooltip,\n data,\n enableLegendSlider = false,\n gridDashArray = \"3 3\",\n intervalType,\n layout = \"vertical\",\n legendPosition = \"bottom\",\n maxValue,\n minValue,\n onValueChange,\n radius = 4,\n series,\n showGrid = true,\n showLegend = false,\n showValueLabels = false,\n showTooltip = true,\n showXAxis = true,\n showYAxis = true,\n startEndOnly = false,\n tickGap,\n tooltipCallback,\n tooltipIndicator = \"dot\",\n variant = \"default\",\n xAxisKey,\n xAxisLabel,\n xAxisTickFormatter,\n yAxisLabel,\n yAxisTickFormatter,\n yAxisWidth,\n ...props\n}: BarChartProps) {\n const normalizedSeries = normalizeSeriesConfig(series)\n const isStacked = variant === \"stacked\" || variant === \"stacked100\"\n const isHorizontal = layout === \"horizontal\"\n const prevTooltipStateRef = React.useRef<boolean>(false)\n\n // Handle bar click for onValueChange\n const handleBarClick = React.useCallback(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (dataKey: string) => (data: any) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (!onValueChange || !data?.payload) return\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const payload = data.payload as Record<string, unknown>\n const value = payload[dataKey]\n onValueChange({\n category: payload[xAxisKey],\n dataKey,\n payload,\n value: typeof value === \"number\" ? value : 0,\n })\n },\n [onValueChange, xAxisKey]\n )\n\n /* eslint-disable react-hooks/static-components, @eslint-react/no-nested-component-definitions, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access -- Intentional: memoized render function with Recharts any-typed props */\n // Custom tooltip content wrapper for tooltipCallback\n const TooltipContentWithCallback = React.useCallback(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (props: any) => {\n const { active = false, label, payload } = props\n\n // Call tooltipCallback when state changes\n if (tooltipCallback && active !== prevTooltipStateRef.current) {\n prevTooltipStateRef.current = active\n tooltipCallback({\n active,\n label,\n payload: payload?.map((p: { dataKey: number | string; payload: Record<string, unknown>; value: number; }) => ({\n dataKey: String(p.dataKey),\n value: p.value,\n payload: p.payload,\n })),\n })\n }\n\n return <ChartTooltipContent indicator={tooltipIndicator} {...props} />\n },\n [tooltipCallback, tooltipIndicator]\n )\n\n // Calculate value axis domain\n const valueDomain = React.useMemo(() => {\n const min = minValue ?? (autoMinValue ? \"auto\" : 0)\n const max = maxValue ?? \"auto\"\n return [min, max] as const\n }, [autoMinValue, maxValue, minValue])\n\n // Calculate category axis ticks for startEndOnly\n const categoryTicks = React.useMemo(() => {\n if (!startEndOnly || data.length < 2) return\n const first = data[0]\n const last = data[data.length - 1]\n if (!first || !last) return\n return [first[xAxisKey], last[xAxisKey]] as string[]\n }, [data, startEndOnly, xAxisKey])\n\n return (\n <div\n aria-label={ariaLabel}\n data-slot=\"bar-chart\"\n role={ariaLabel ? \"img\" : undefined}\n {...props}\n >\n <ChartContainer\n className={cn(className)}\n config={config}\n >\n <RechartsBarChart\n accessibilityLayer\n margin={{\n left: yAxisLabel ? 20 : 12,\n right: 12,\n bottom: xAxisLabel ? 20 : 0,\n }}\n barCategoryGap={barCategoryGap}\n barGap={barGap}\n data={data}\n layout={isHorizontal ? \"vertical\" : \"horizontal\"}\n >\n {showGrid && (\n <CartesianGrid\n horizontal={!isHorizontal}\n strokeDasharray={gridDashArray}\n vertical={isHorizontal}\n />\n )}\n\n {showXAxis && (\n isHorizontal ? (\n <XAxis\n axisLine={false}\n domain={valueDomain}\n interval={intervalType}\n minTickGap={tickGap}\n tickFormatter={xAxisTickFormatter}\n tickLine={false}\n tickMargin={8}\n type=\"number\"\n >\n {xAxisLabel && (\n <Label offset={-5} position=\"insideBottom\" value={xAxisLabel} />\n )}\n </XAxis>\n ) : (\n <XAxis\n axisLine={false}\n dataKey={xAxisKey}\n interval={intervalType}\n minTickGap={tickGap}\n tickFormatter={xAxisTickFormatter}\n tickLine={false}\n tickMargin={8}\n ticks={categoryTicks}\n >\n {xAxisLabel && (\n <Label offset={-5} position=\"insideBottom\" value={xAxisLabel} />\n )}\n </XAxis>\n )\n )}\n\n {showYAxis && (\n isHorizontal ? (\n <YAxis\n axisLine={false}\n dataKey={xAxisKey}\n tickFormatter={yAxisTickFormatter}\n tickLine={false}\n tickMargin={8}\n ticks={categoryTicks}\n type=\"category\"\n width={yAxisWidth}\n >\n {yAxisLabel && (\n <Label angle={-90} offset={-5} position=\"insideLeft\" value={yAxisLabel} />\n )}\n </YAxis>\n ) : (\n <YAxis\n allowDecimals={allowDecimals}\n axisLine={false}\n domain={valueDomain}\n tickFormatter={yAxisTickFormatter}\n tickLine={false}\n tickMargin={8}\n width={yAxisWidth}\n >\n {yAxisLabel && (\n <Label angle={-90} offset={-5} position=\"insideLeft\" value={yAxisLabel} />\n )}\n </YAxis>\n )\n )}\n\n {showTooltip && (\n <ChartTooltip\n content={\n customTooltip\n ?? (tooltipCallback\n ? <TooltipContentWithCallback />\n : <ChartTooltipContent indicator={tooltipIndicator} />)\n }\n cursor={false}\n />\n )}\n\n {showLegend && (\n <ChartLegend\n align={legendPosition === \"left\" ? \"left\" : legendPosition === \"right\" ? \"right\" : \"center\"}\n content={<ChartLegendContent enableSlider={enableLegendSlider} />}\n layout={legendPosition === \"left\" || legendPosition === \"right\" ? \"vertical\" : \"horizontal\"}\n verticalAlign={legendPosition === \"top\" ? \"top\" : legendPosition === \"bottom\" ? \"bottom\" : \"middle\"}\n />\n )}\n\n {normalizedSeries.map((seriesConfig) => {\n const { dataKey, radius: seriesRadius, stackId } = seriesConfig\n\n const fill = `var(--color-${dataKey})`\n const barRadius = seriesRadius ?? radius\n\n return (\n <Bar\n key={dataKey}\n dataKey={dataKey}\n fill={fill}\n radius={barRadius}\n stackId={isStacked ? \"bar-stack\" : stackId}\n style={onValueChange ? { cursor: \"pointer\" } : undefined}\n onClick={onValueChange ? handleBarClick(dataKey) : undefined}\n >\n {showValueLabels ? (\n <LabelList\n content={renderBarValueLabel(\n isHorizontal,\n typeof showValueLabels === \"object\" ? showValueLabels.formatter : undefined\n )}\n dataKey={dataKey}\n />\n ) : null}\n </Bar>\n )\n })}\n </RechartsBarChart>\n </ChartContainer>\n </div>\n )\n}\n\nBarChart.displayName = \"BarChart\"\n"]}
@@ -0,0 +1,91 @@
1
+ import { cn } from './chunk-HRNDJU7D.js';
2
+ import { cva } from 'class-variance-authority';
3
+ import { jsxs, jsx } from 'react/jsx-runtime';
4
+
5
+ var arrowAnimatedVariants = cva(
6
+ // Base styles
7
+ ["stroke-[1.5px]"],
8
+ {
9
+ variants: {
10
+ size: {
11
+ sm: "size-2.5",
12
+ md: "size-3",
13
+ lg: "size-4"
14
+ }
15
+ },
16
+ defaultVariants: {
17
+ size: "md"
18
+ }
19
+ }
20
+ );
21
+ var arrowAnimatedLineVariants = cva([
22
+ "opacity-0 transition-opacity duration-200",
23
+ "group-hover:opacity-100"
24
+ ]);
25
+ var arrowAnimatedHeadVariants = cva([
26
+ "transition-transform duration-200"
27
+ ]);
28
+ var arrowAnimatedHeadTransforms = {
29
+ right: "group-hover:translate-x-[3px]",
30
+ left: "group-hover:-translate-x-[3px]",
31
+ up: "group-hover:-translate-y-[3px]",
32
+ down: "group-hover:translate-y-[3px]"
33
+ };
34
+ var directionPaths = {
35
+ right: {
36
+ line: "M0 5h7",
37
+ head: "M1 1l4 4-4 4",
38
+ viewBox: "0 0 10 10"
39
+ },
40
+ left: {
41
+ line: "M3 5h7",
42
+ head: "M9 1l-4 4 4 4",
43
+ viewBox: "0 0 10 10"
44
+ },
45
+ up: {
46
+ line: "M5 3v7",
47
+ head: "M1 9l4-4 4 4",
48
+ viewBox: "0 0 10 10"
49
+ },
50
+ down: {
51
+ line: "M5 0v7",
52
+ head: "M1 1l4 4 4-4",
53
+ viewBox: "0 0 10 10"
54
+ }
55
+ };
56
+ function ArrowAnimated({
57
+ direction = "right",
58
+ size,
59
+ className,
60
+ ...props
61
+ }) {
62
+ const paths = directionPaths[direction];
63
+ const headTransform = arrowAnimatedHeadTransforms[direction];
64
+ return /* @__PURE__ */ jsxs(
65
+ "svg",
66
+ {
67
+ "aria-hidden": "true",
68
+ className: cn(arrowAnimatedVariants({ size }), className),
69
+ "data-slot": "arrow-animated",
70
+ fill: "none",
71
+ stroke: "currentColor",
72
+ viewBox: paths.viewBox,
73
+ ...props,
74
+ children: [
75
+ /* @__PURE__ */ jsx("path", { className: cn(arrowAnimatedLineVariants()), d: paths.line }),
76
+ /* @__PURE__ */ jsx(
77
+ "path",
78
+ {
79
+ className: cn(arrowAnimatedHeadVariants(), headTransform),
80
+ d: paths.head
81
+ }
82
+ )
83
+ ]
84
+ }
85
+ );
86
+ }
87
+ ArrowAnimated.displayName = "ArrowAnimated";
88
+
89
+ export { ArrowAnimated, arrowAnimatedHeadTransforms, arrowAnimatedHeadVariants, arrowAnimatedLineVariants, arrowAnimatedVariants };
90
+ //# sourceMappingURL=chunk-KDJCZXLB.js.map
91
+ //# sourceMappingURL=chunk-KDJCZXLB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/primitives/ArrowAnimated/ArrowAnimated.variants.ts","../src/components/primitives/ArrowAnimated/ArrowAnimated.tsx"],"names":[],"mappings":";;;;AAMO,IAAM,qBAAA,GAAwB,GAAA;AAAA;AAAA,EAEnC,CAAC,gBAAgB,CAAA;AAAA,EACjB;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,UAAA;AAAA,QACJ,EAAA,EAAI,QAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ;AAEO,IAAM,4BAA4B,GAAA,CAAI;AAAA,EAC3C,2CAAA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,4BAA4B,GAAA,CAAI;AAAA,EAC3C;AACF,CAAC;AAGM,IAAM,2BAAA,GAA8B;AAAA,EACzC,KAAA,EAAO,+BAAA;AAAA,EACP,IAAA,EAAM,gCAAA;AAAA,EACN,EAAA,EAAI,gCAAA;AAAA,EACJ,IAAA,EAAM;AACR;ACxBA,IAAM,cAAA,GAAiB;AAAA,EACrB,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,QAAA;AAAA,IACN,IAAA,EAAM,cAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,QAAA;AAAA,IACN,IAAA,EAAM,eAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA,EACA,EAAA,EAAI;AAAA,IACF,IAAA,EAAM,QAAA;AAAA,IACN,IAAA,EAAM,cAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,QAAA;AAAA,IACN,IAAA,EAAM,cAAA;AAAA,IACN,OAAA,EAAS;AAAA;AAEb,CAAA;AA4BA,SAAS,aAAA,CAAc;AAAA,EACrB,SAAA,GAAY,OAAA;AAAA,EACZ,IAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAuB;AACrB,EAAA,MAAM,KAAA,GAAQ,eAAe,SAAS,CAAA;AACtC,EAAA,MAAM,aAAA,GAAgB,4BAA4B,SAAS,CAAA;AAE3D,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,aAAA,EAAY,MAAA;AAAA,MACZ,WAAW,EAAA,CAAG,qBAAA,CAAsB,EAAE,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,MACxD,WAAA,EAAU,gBAAA;AAAA,MACV,IAAA,EAAK,MAAA;AAAA,MACL,MAAA,EAAO,cAAA;AAAA,MACP,SAAS,KAAA,CAAM,OAAA;AAAA,MACd,GAAG,KAAA;AAAA,MAGJ,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,WAAW,EAAA,CAAG,yBAAA,EAA2B,CAAA,EAAG,CAAA,EAAG,MAAM,IAAA,EAAM,CAAA;AAAA,wBAEjE,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,EAAA,CAAG,yBAAA,EAA0B,EAAG,aAAa,CAAA;AAAA,YACxD,GAAG,KAAA,CAAM;AAAA;AAAA;AACX;AAAA;AAAA,GACF;AAEJ;AAEA,aAAA,CAAc,WAAA,GAAc,eAAA","file":"chunk-KDJCZXLB.js","sourcesContent":["// ArrowAnimated/ArrowAnimated.variants.ts\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * ArrowAnimated style variants using CVA\n */\nexport const arrowAnimatedVariants = cva(\n // Base styles\n [\"stroke-[1.5px]\"],\n {\n variants: {\n size: {\n sm: \"size-2.5\",\n md: \"size-3\",\n lg: \"size-4\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport const arrowAnimatedLineVariants = cva([\n \"opacity-0 transition-opacity duration-200\",\n \"group-hover:opacity-100\",\n])\n\nexport const arrowAnimatedHeadVariants = cva([\n \"transition-transform duration-200\",\n])\n\n// Direction-specific translate transforms\nexport const arrowAnimatedHeadTransforms = {\n right: \"group-hover:translate-x-[3px]\",\n left: \"group-hover:-translate-x-[3px]\",\n up: \"group-hover:-translate-y-[3px]\",\n down: \"group-hover:translate-y-[3px]\",\n} as const\n\nexport type ArrowAnimatedVariantProps = VariantProps<\n typeof arrowAnimatedVariants\n>\n","// ArrowAnimated/ArrowAnimated.tsx\nimport type { ArrowAnimatedProps } from \"./ArrowAnimated.types\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n arrowAnimatedHeadTransforms,\n arrowAnimatedHeadVariants,\n arrowAnimatedLineVariants,\n arrowAnimatedVariants,\n} from \"./ArrowAnimated.variants\"\n\n/**\n * SVG path data for each direction\n */\nconst directionPaths = {\n right: {\n line: \"M0 5h7\",\n head: \"M1 1l4 4-4 4\",\n viewBox: \"0 0 10 10\",\n },\n left: {\n line: \"M3 5h7\",\n head: \"M9 1l-4 4 4 4\",\n viewBox: \"0 0 10 10\",\n },\n up: {\n line: \"M5 3v7\",\n head: \"M1 9l4-4 4 4\",\n viewBox: \"0 0 10 10\",\n },\n down: {\n line: \"M5 0v7\",\n head: \"M1 1l4 4 4-4\",\n viewBox: \"0 0 10 10\",\n },\n} as const\n\n/**\n * ArrowAnimated - Animated arrow icon for CTAs and links\n *\n * An SVG arrow that animates on hover (when parent has `group` class).\n * The line fades in and the arrow head translates in the direction of the arrow.\n *\n * @example\n * ```tsx\n * // Basic usage (requires parent with 'group' class)\n * <a href=\"/link\" className=\"group flex items-center\">\n * Learn more\n * <ArrowAnimated className=\"ml-1\" />\n * </a>\n *\n * // Different directions\n * <ArrowAnimated direction=\"right\" />\n * <ArrowAnimated direction=\"left\" />\n * <ArrowAnimated direction=\"up\" />\n * <ArrowAnimated direction=\"down\" />\n *\n * // Different sizes\n * <ArrowAnimated size=\"sm\" />\n * <ArrowAnimated size=\"md\" />\n * <ArrowAnimated size=\"lg\" />\n * ```\n */\nfunction ArrowAnimated({\n direction = \"right\",\n size,\n className,\n ...props\n}: ArrowAnimatedProps) {\n const paths = directionPaths[direction]\n const headTransform = arrowAnimatedHeadTransforms[direction]\n\n return (\n <svg\n aria-hidden=\"true\"\n className={cn(arrowAnimatedVariants({ size }), className)}\n data-slot=\"arrow-animated\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox={paths.viewBox}\n {...props}\n >\n {/* Line that fades in on hover */}\n <path className={cn(arrowAnimatedLineVariants())} d={paths.line} />\n {/* Arrow head that translates on hover */}\n <path\n className={cn(arrowAnimatedHeadVariants(), headTransform)}\n d={paths.head}\n />\n </svg>\n )\n}\n\nArrowAnimated.displayName = \"ArrowAnimated\"\n\nexport { ArrowAnimated }\n"]}
@@ -0,0 +1,3 @@
1
+
2
+ //# sourceMappingURL=chunk-TP4PDKFE.js.map
3
+ //# sourceMappingURL=chunk-TP4PDKFE.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-KRHL3YH2.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-TP4PDKFE.js"}
@@ -110,7 +110,7 @@ function BarList({
110
110
  ),
111
111
  /* @__PURE__ */ jsxs("div", { className: barListContentVariants(), children: [
112
112
  /* @__PURE__ */ jsxs("span", { className: barListNameVariants(), children: [
113
- item.icon,
113
+ React.isValidElement(item.icon) ? item.icon : null,
114
114
  item.href ? /* @__PURE__ */ jsx(
115
115
  "a",
116
116
  {
@@ -155,5 +155,5 @@ function BarList({
155
155
  BarList.displayName = "BarList";
156
156
 
157
157
  export { BarList };
158
- //# sourceMappingURL=chunk-FDES5YDF.js.map
159
- //# sourceMappingURL=chunk-FDES5YDF.js.map
158
+ //# sourceMappingURL=chunk-WMG2MMJF.js.map
159
+ //# sourceMappingURL=chunk-WMG2MMJF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/data-display/BarList/BarList.variants.ts","../src/components/data-display/BarList/BarList.tsx"],"names":[],"mappings":"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","file":"chunk-WMG2MMJF.js","sourcesContent":["import { cva } from \"class-variance-authority\"\n\nexport const barListVariants = cva(\n \"flex flex-col gap-2\",\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\nexport const barListItemVariants = cva(\n \"relative flex items-center\",\n {\n variants: {\n clickable: {\n true: \"cursor-pointer\",\n false: \"\",\n },\n },\n defaultVariants: {\n clickable: false,\n },\n }\n)\n\nexport const barListBarVariants = cva(\n \"absolute left-0 h-full rounded-[var(--radius-sm)] transition-all duration-300\",\n {\n variants: {\n animated: {\n true: \"\",\n false: \"!transition-none\",\n },\n },\n defaultVariants: {\n animated: true,\n },\n }\n)\n\nexport const barListContentVariants = cva(\n \"relative z-10 flex w-full items-center justify-between gap-2 px-2 py-1.5\",\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\nexport const barListNameVariants = cva(\n \"flex items-center gap-2 truncate text-sm font-medium\",\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\nexport const barListValueVariants = cva(\n \"text-sm tabular-nums text-muted-foreground\",\n {\n variants: {},\n defaultVariants: {},\n }\n)\n","\"use client\"\n\nimport type { BarListDataItem, BarListProps } from \"./BarList.types\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n barListBarVariants,\n barListContentVariants,\n barListItemVariants,\n barListNameVariants,\n barListValueVariants,\n barListVariants,\n} from \"./BarList.variants\"\n\n/**\n * Default value formatter\n */\nfunction defaultValueFormatter(value: number): string {\n return value.toLocaleString()\n}\n\n/**\n * Sort data by value\n */\nfunction sortData(\n data: BarListDataItem[],\n order: BarListProps[\"sortOrder\"]\n): BarListDataItem[] {\n if (order === \"none\") return data\n\n return [...data].sort((a, b) =>\n order === \"ascending\" ? a.value - b.value : b.value - a.value\n )\n}\n\n/**\n * BarList - Horizontal bar list for ranked data\n *\n * Displays items as horizontal bars proportional to their values.\n * Commonly used for top items, rankings, category breakdowns, etc.\n *\n * @example\n * ```tsx\n * const data = [\n * { name: \"Twitter\", value: 456 },\n * { name: \"Google\", value: 351 },\n * { name: \"GitHub\", value: 271 },\n * ]\n *\n * <BarList data={data} />\n * ```\n *\n * @example\n * ```tsx\n * // With custom colors and click handler\n * const data = [\n * { name: \"Direct\", value: 456, color: \"var(--chart-1)\" },\n * { name: \"Organic\", value: 351, color: \"var(--chart-2)\" },\n * ]\n *\n * <BarList\n * data={data}\n * onClick={(item) => console.log(item.name)}\n * valueFormatter={(v) => `${v} visits`}\n * />\n * ```\n */\nexport function BarList({\n className,\n color = \"var(--primary)\",\n data,\n onClick,\n showAnimation = true,\n sortOrder = \"descending\",\n valueFormatter = defaultValueFormatter,\n ...props\n}: BarListProps) {\n const sortedData = React.useMemo(\n () => sortData(data, sortOrder),\n [data, sortOrder]\n )\n\n // Calculate max value for bar widths\n const maxValue = React.useMemo(\n () => Math.max(...sortedData.map((d) => d.value), 0),\n [sortedData]\n )\n\n const isClickable = Boolean(onClick)\n\n return (\n <div\n className={cn(barListVariants(), className)}\n data-slot=\"bar-list\"\n {...props}\n >\n {sortedData.map((item, index) => {\n const percentage = maxValue > 0 ? (item.value / maxValue) * 100 : 0\n const barColor = item.color ?? color\n\n const content = (\n <>\n <div\n style={{\n backgroundColor: barColor,\n opacity: 0.15,\n width: `${String(percentage)}%`,\n }}\n className={cn(barListBarVariants({ animated: showAnimation }))}\n />\n <div className={barListContentVariants()}>\n <span className={barListNameVariants()}>\n {React.isValidElement(item.icon) ? item.icon : null}\n {item.href ? (\n <a\n className=\"hover:underline focus:outline-none focus:underline\"\n href={item.href}\n rel={item.target === \"_blank\" ? \"noopener noreferrer\" : undefined}\n target={item.target}\n onClick={(e) => {\n if (onClick) {\n e.preventDefault()\n onClick(item, index)\n }\n }}\n >\n {item.name}\n </a>\n ) : (\n item.name\n )}\n </span>\n <span className={barListValueVariants()}>\n {valueFormatter(item.value)}\n </span>\n </div>\n </>\n )\n\n return (\n <div\n key={item.name}\n className={cn(barListItemVariants({ clickable: isClickable && !item.href }))}\n role={isClickable && !item.href ? \"button\" : undefined}\n tabIndex={isClickable && !item.href ? 0 : undefined}\n onClick={\n isClickable && !item.href\n ? () => onClick?.(item, index)\n : undefined\n }\n onKeyDown={\n isClickable && !item.href\n ? (e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault()\n onClick?.(item, index)\n }\n }\n : undefined\n }\n >\n {content}\n </div>\n )\n })}\n </div>\n )\n}\n\nBarList.displayName = \"BarList\"\n"]}
@@ -1,7 +1,7 @@
1
1
  import { ChartTooltipContent, ChartContainer, ChartTooltip, ChartLegend, ChartLegendContent } from './chunk-7I6KK6QE.js';
2
2
  import { cn } from './chunk-HRNDJU7D.js';
3
3
  import * as React from 'react';
4
- import { LineChart as LineChart$1, CartesianGrid, XAxis, Label, YAxis, Line } from 'recharts';
4
+ import { LineChart as LineChart$1, CartesianGrid, XAxis, Label, YAxis, Line, LabelList } from 'recharts';
5
5
  import { cva } from 'class-variance-authority';
6
6
  import { jsx, jsxs } from 'react/jsx-runtime';
7
7
 
@@ -34,6 +34,27 @@ function normalizeSeriesConfig(series) {
34
34
  function getVariantStrokeDasharray(variant) {
35
35
  return lineStrokeDashArray[variant ?? "default"];
36
36
  }
37
+ function makePointDotRenderer(dataKey, dotColors, baseDot) {
38
+ const radius = typeof baseDot === "object" ? baseDot.r ?? 3 : 3;
39
+ return function PointDot({ cx, cy, index }) {
40
+ const pointIndex = index ?? 0;
41
+ return /* @__PURE__ */ jsx(
42
+ "circle",
43
+ {
44
+ cx,
45
+ cy,
46
+ fill: dotColors[pointIndex % dotColors.length],
47
+ r: radius
48
+ },
49
+ `${dataKey}-dot-${String(pointIndex)}`
50
+ );
51
+ };
52
+ }
53
+ function makePointLabelFormatter(showPointLabels) {
54
+ const formatter = typeof showPointLabels === "object" ? showPointLabels.formatter : void 0;
55
+ if (!formatter) return;
56
+ return (label) => formatter(Number(label));
57
+ }
37
58
  function LineChart({
38
59
  activeDot = { r: 6 },
39
60
  allowDecimals = true,
@@ -56,6 +77,7 @@ function LineChart({
56
77
  series,
57
78
  showGrid = true,
58
79
  showLegend = false,
80
+ showPointLabels = false,
59
81
  showTooltip = true,
60
82
  showXAxis = true,
61
83
  showYAxis = true,
@@ -73,6 +95,7 @@ function LineChart({
73
95
  yAxisWidth,
74
96
  ...props
75
97
  }) {
98
+ const pointLabelFormatter = makePointLabelFormatter(showPointLabels);
76
99
  const normalizedSeries = normalizeSeriesConfig(series);
77
100
  const variantStrokeDasharray = getVariantStrokeDasharray(variant);
78
101
  const prevTooltipStateRef = React.useRef(false);
@@ -190,13 +213,15 @@ function LineChart({
190
213
  activeDot: seriesActiveDot,
191
214
  dataKey,
192
215
  dot: seriesDot,
216
+ dotColors,
193
217
  strokeDasharray: seriesStrokeDasharray,
194
218
  strokeOpacity,
195
219
  strokeWidth: seriesStrokeWidth
196
220
  } = seriesConfig;
197
221
  const stroke = `var(--color-${dataKey})`;
198
222
  const finalStrokeDasharray = seriesStrokeDasharray ?? variantStrokeDasharray;
199
- const finalDot = seriesDot ?? dot;
223
+ const baseDot = seriesDot ?? dot;
224
+ const finalDot = dotColors?.length ? makePointDotRenderer(dataKey, dotColors, baseDot) : baseDot;
200
225
  const finalStrokeWidth = seriesStrokeWidth ?? strokeWidth;
201
226
  const baseActiveDot = seriesActiveDot ?? activeDot;
202
227
  const finalActiveDot = onValueChange ? typeof baseActiveDot === "object" ? { ...baseActiveDot, onClick: handleDotClick(dataKey), style: { cursor: "pointer" } } : !baseActiveDot ? false : { r: 6, onClick: handleDotClick(dataKey), style: { cursor: "pointer" } } : baseActiveDot;
@@ -211,7 +236,17 @@ function LineChart({
211
236
  strokeDasharray: finalStrokeDasharray,
212
237
  strokeOpacity,
213
238
  strokeWidth: finalStrokeWidth,
214
- type: curveType
239
+ type: curveType,
240
+ children: showPointLabels ? /* @__PURE__ */ jsx(
241
+ LabelList,
242
+ {
243
+ className: "fill-foreground text-xs",
244
+ dataKey,
245
+ formatter: pointLabelFormatter,
246
+ offset: 10,
247
+ position: "top"
248
+ }
249
+ ) : null
215
250
  },
216
251
  dataKey
217
252
  );
@@ -227,5 +262,5 @@ function LineChart({
227
262
  LineChart.displayName = "LineChart";
228
263
 
229
264
  export { LineChart };
230
- //# sourceMappingURL=chunk-2Z722V5K.js.map
231
- //# sourceMappingURL=chunk-2Z722V5K.js.map
265
+ //# sourceMappingURL=chunk-ZPAWUKJI.js.map
266
+ //# sourceMappingURL=chunk-ZPAWUKJI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/data-display/LineChart/LineChart.variants.ts","../src/components/data-display/LineChart/LineChart.tsx"],"names":["data","props","RechartsLineChart"],"mappings":"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","file":"chunk-ZPAWUKJI.js","sourcesContent":["// LineChart/LineChart.variants.ts\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * LineChart style variants using CVA\n *\n * Controls the line appearance and chart styling.\n *\n * @see https://cva.style/docs\n */\nexport const lineChartVariants = cva(\n // Base styles (always applied)\n \"\",\n {\n variants: {\n variant: {\n default: \"\",\n dashed: \"\",\n dotted: \"\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\n/**\n * Line stroke dash array configuration by variant\n */\nexport const lineStrokeDashArray: Record<string, string | undefined> = {\n default: undefined,\n dashed: \"5 5\",\n dotted: \"2 2\",\n}\n\n/**\n * Line curve type configuration\n */\nexport const curveTypes = {\n linear: \"linear\",\n monotone: \"monotone\",\n step: \"step\",\n stepAfter: \"stepAfter\",\n stepBefore: \"stepBefore\",\n natural: \"natural\",\n} as const\n\nexport type CurveType = keyof typeof curveTypes\n\n// Export variant prop types\nexport type LineChartVariantProps = VariantProps<typeof lineChartVariants>\n","\"use client\"\n\nimport type {\n LineChartProps,\n LineChartSeriesConfig,\n} from \"./LineChart.types\"\n\nimport * as React from \"react\"\nimport {\n CartesianGrid,\n Label,\n LabelList,\n Line,\n LineChart as RechartsLineChart,\n XAxis,\n YAxis,\n} from \"recharts\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n ChartContainer,\n ChartLegend,\n ChartLegendContent,\n ChartTooltip,\n ChartTooltipContent,\n} from \"../Chart\"\nimport { lineStrokeDashArray } from \"./LineChart.variants\"\n\n/**\n * Normalize series to LineChartSeriesConfig format\n */\nfunction normalizeSeriesConfig(\n series: (LineChartSeriesConfig | string)[]\n): LineChartSeriesConfig[] {\n return series.map((s) =>\n typeof s === \"string\" ? { dataKey: s } : s\n )\n}\n\n/**\n * Get stroke dash array based on variant\n */\nfunction getVariantStrokeDasharray(variant: LineChartProps[\"variant\"]): string | undefined {\n return lineStrokeDashArray[variant ?? \"default\"]\n}\n\ninterface PointDotProps {\n cx?: number\n cy?: number\n index?: number\n}\n\nfunction makePointDotRenderer(\n dataKey: string,\n dotColors: string[],\n baseDot: boolean | { fill?: string; r?: number }\n) {\n const radius = typeof baseDot === \"object\" ? (baseDot.r ?? 3) : 3\n return function PointDot({ cx, cy, index }: PointDotProps) {\n const pointIndex = index ?? 0\n return (\n <circle\n key={`${dataKey}-dot-${String(pointIndex)}`}\n cx={cx}\n cy={cy}\n fill={dotColors[pointIndex % dotColors.length]}\n r={radius}\n />\n )\n }\n}\n\nfunction makePointLabelFormatter(\n showPointLabels: boolean | { formatter?: (value: number) => string }\n) {\n const formatter =\n typeof showPointLabels === \"object\" ? showPointLabels.formatter : undefined\n if (!formatter) return\n return (label: React.ReactNode) => formatter(Number(label))\n}\n\n/**\n * LineChart - Data visualization component for trends and time series\n *\n * Connects data points with lines, ideal for showing trends and changes\n * over a continuous axis (usually time). Supports multiple series for\n * comparison.\n *\n * @example\n * ```tsx\n * const data = [\n * { month: \"Jan\", desktop: 186, mobile: 80 },\n * { month: \"Feb\", desktop: 305, mobile: 200 },\n * ]\n *\n * const config = {\n * desktop: { label: \"Desktop\", color: \"hsl(var(--chart-1))\" },\n * mobile: { label: \"Mobile\", color: \"hsl(var(--chart-2))\" },\n * }\n *\n * <LineChart\n * data={data}\n * config={config}\n * xAxisKey=\"month\"\n * series={[\"desktop\", \"mobile\"]}\n * />\n * ```\n */\nexport function LineChart({\n activeDot = { r: 6 },\n allowDecimals = true,\n ariaLabel,\n autoMinValue = false,\n className,\n config,\n connectNulls = false,\n customTooltip,\n curveType = \"monotone\",\n data,\n dot = false,\n enableLegendSlider = false,\n gridDashArray = \"3 3\",\n intervalType,\n legendPosition = \"bottom\",\n maxValue,\n minValue,\n onValueChange,\n series,\n showGrid = true,\n showLegend = false,\n showPointLabels = false,\n showTooltip = true,\n showXAxis = true,\n showYAxis = true,\n startEndOnly = false,\n strokeWidth = 2,\n tickGap,\n tooltipCallback,\n tooltipIndicator = \"dot\",\n variant = \"default\",\n xAxisLabel,\n xAxisKey,\n xAxisTickFormatter,\n yAxisLabel,\n yAxisTickFormatter,\n yAxisWidth,\n ...props\n}: LineChartProps) {\n const pointLabelFormatter = makePointLabelFormatter(showPointLabels)\n const normalizedSeries = normalizeSeriesConfig(series)\n const variantStrokeDasharray = getVariantStrokeDasharray(variant)\n const prevTooltipStateRef = React.useRef<boolean>(false)\n\n // Handle dot click for onValueChange\n const handleDotClick = React.useCallback(\n (dataKey: string) => (data: { payload: Record<string, unknown> }) => {\n if (!onValueChange) return\n const payload = data.payload\n const value = payload[dataKey]\n onValueChange({\n category: payload[xAxisKey],\n dataKey,\n payload,\n value: typeof value === \"number\" ? value : 0,\n })\n },\n [onValueChange, xAxisKey]\n )\n\n /* eslint-disable react-hooks/static-components, @eslint-react/no-nested-component-definitions, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access -- Intentional: memoized render function with Recharts any-typed props */\n // Custom tooltip content wrapper for tooltipCallback\n const TooltipContentWithCallback = React.useCallback(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (props: any) => {\n const { active = false, label, payload } = props\n\n // Call tooltipCallback when state changes\n if (tooltipCallback && active !== prevTooltipStateRef.current) {\n prevTooltipStateRef.current = active\n tooltipCallback({\n active,\n label,\n payload: payload?.map((p: { dataKey: number | string; payload: Record<string, unknown>; value: number; }) => ({\n dataKey: String(p.dataKey),\n value: p.value,\n payload: p.payload,\n })),\n })\n }\n\n return <ChartTooltipContent indicator={tooltipIndicator} {...props} />\n },\n [tooltipCallback, tooltipIndicator]\n )\n\n // Calculate Y-axis domain\n const yDomain = React.useMemo(() => {\n const min = minValue ?? (autoMinValue ? \"auto\" : 0)\n const max = maxValue ?? \"auto\"\n return [min, max] as const\n }, [autoMinValue, maxValue, minValue])\n\n // Calculate X-axis ticks for startEndOnly\n const xAxisTicks = React.useMemo(() => {\n if (!startEndOnly || data.length < 2) return\n const first = data[0]\n const last = data[data.length - 1]\n if (!first || !last) return\n return [first[xAxisKey], last[xAxisKey]] as string[]\n }, [data, startEndOnly, xAxisKey])\n\n return (\n <div\n aria-label={ariaLabel}\n data-slot=\"line-chart\"\n role={ariaLabel ? \"img\" : undefined}\n {...props}\n >\n <ChartContainer\n className={cn(className)}\n config={config}\n >\n <RechartsLineChart\n accessibilityLayer\n data={data}\n margin={{ left: xAxisLabel ? 20 : 12, right: 12, bottom: yAxisLabel ? 20 : 0 }}\n >\n {showGrid && (\n <CartesianGrid strokeDasharray={gridDashArray} vertical={false} />\n )}\n\n {showXAxis && (\n <XAxis\n axisLine={false}\n dataKey={xAxisKey}\n interval={intervalType}\n minTickGap={tickGap}\n tickFormatter={xAxisTickFormatter}\n tickLine={false}\n tickMargin={8}\n ticks={xAxisTicks}\n >\n {xAxisLabel && (\n <Label offset={-5} position=\"insideBottom\" value={xAxisLabel} />\n )}\n </XAxis>\n )}\n\n {showYAxis && (\n <YAxis\n allowDecimals={allowDecimals}\n axisLine={false}\n domain={yDomain}\n tickFormatter={yAxisTickFormatter}\n tickLine={false}\n tickMargin={8}\n width={yAxisWidth}\n >\n {yAxisLabel && (\n <Label angle={-90} offset={-5} position=\"insideLeft\" value={yAxisLabel} />\n )}\n </YAxis>\n )}\n\n {showTooltip && (\n <ChartTooltip\n content={\n customTooltip\n ?? (tooltipCallback\n ? <TooltipContentWithCallback />\n : <ChartTooltipContent indicator={tooltipIndicator} />)\n }\n cursor={false}\n />\n )}\n\n {showLegend && (\n <ChartLegend\n align={legendPosition === \"left\" ? \"left\" : legendPosition === \"right\" ? \"right\" : \"center\"}\n content={<ChartLegendContent enableSlider={enableLegendSlider} />}\n layout={legendPosition === \"left\" || legendPosition === \"right\" ? \"vertical\" : \"horizontal\"}\n verticalAlign={legendPosition === \"top\" ? \"top\" : legendPosition === \"bottom\" ? \"bottom\" : \"middle\"}\n />\n )}\n\n {normalizedSeries.map((seriesConfig) => {\n const {\n activeDot: seriesActiveDot,\n dataKey,\n dot: seriesDot,\n dotColors,\n strokeDasharray: seriesStrokeDasharray,\n strokeOpacity,\n strokeWidth: seriesStrokeWidth,\n } = seriesConfig\n\n const stroke = `var(--color-${dataKey})`\n const finalStrokeDasharray = seriesStrokeDasharray ?? variantStrokeDasharray\n const baseDot = seriesDot ?? dot\n const finalDot = dotColors?.length\n ? makePointDotRenderer(dataKey, dotColors, baseDot)\n : baseDot\n const finalStrokeWidth = seriesStrokeWidth ?? strokeWidth\n\n // Merge activeDot config with click handler\n const baseActiveDot = seriesActiveDot ?? activeDot\n const finalActiveDot = onValueChange\n ? typeof baseActiveDot === \"object\"\n ? { ...baseActiveDot, onClick: handleDotClick(dataKey), style: { cursor: \"pointer\" } }\n : !baseActiveDot\n ? false\n : { r: 6, onClick: handleDotClick(dataKey), style: { cursor: \"pointer\" } }\n : baseActiveDot\n\n return (\n <Line\n key={dataKey}\n activeDot={finalActiveDot}\n connectNulls={connectNulls}\n dataKey={dataKey}\n dot={finalDot}\n stroke={stroke}\n strokeDasharray={finalStrokeDasharray}\n strokeOpacity={strokeOpacity}\n strokeWidth={finalStrokeWidth}\n type={curveType}\n >\n {showPointLabels ? (\n <LabelList\n className=\"fill-foreground text-xs\"\n dataKey={dataKey}\n formatter={pointLabelFormatter}\n offset={10}\n position=\"top\"\n />\n ) : null}\n </Line>\n )\n })}\n </RechartsLineChart>\n </ChartContainer>\n </div>\n )\n}\n\nLineChart.displayName = \"LineChart\"\n"]}
@@ -1,9 +1,9 @@
1
- export { ReportBuilder } from '../../../chunk-4KOJTZVU.js';
1
+ export { ReportBuilder } from '../../../chunk-FCIF6H6E.js';
2
2
  import '../../../chunk-U74PNG4S.js';
3
- import '../../../chunk-GAMOVEZD.js';
4
3
  import '../../../chunk-WBE6VQOO.js';
5
4
  import '../../../chunk-XETKCF73.js';
6
5
  import '../../../chunk-DYDXGWH2.js';
6
+ import '../../../chunk-GAMOVEZD.js';
7
7
  import '../../../chunk-AFCSDND5.js';
8
8
  import '../../../chunk-HRNDJU7D.js';
9
9
  import '../../../chunk-UP2VWCW5.js';
@@ -1,29 +1,29 @@
1
1
  import '../../chunk-5ZWFIDO2.js';
2
- export { Portal, portalContainerVariants, portalContentVariants, portalOverlayVariants } from '../../chunk-L2XR5IFJ.js';
3
- export { ReportBuilder } from '../../chunk-4KOJTZVU.js';
2
+ export { MarkdownEditor, MarkdownHelp, MarkdownPreview, MarkdownToolbar } from '../../chunk-7EGN7IGY.js';
3
+ export { ReportBuilder } from '../../chunk-FCIF6H6E.js';
4
4
  export { RichTextBubbleMenuContent as RichTextBubbleMenu, RichTextEditor, RichTextFloatingMenuContent as RichTextFloatingMenu, RichTextToolbar, richTextEditorBubbleMenuVariants, richTextEditorContentVariants, richTextEditorFloatingMenuVariants, richTextEditorPlaceholderVariants, richTextEditorToolbarButtonVariants, richTextEditorToolbarVariants, richTextEditorVariants } from '../../chunk-X3AXEE3S.js';
5
5
  export { AdvancedSearchInput, Search, SearchEmpty, SearchFilters, SearchHighlight, SearchHistory, SearchLoading, SearchResultGroup, SearchResultItem, SearchResults, searchEmptyVariants, searchFilterVariants, searchFiltersContainerVariants, searchGroupHeadingVariants, searchHighlightVariants, searchHistoryHeaderVariants, searchInputVariants, searchInputWrapperVariants, searchLoadingVariants, searchResultIconVariants, searchResultItemVariants, searchResultsVariants, searchVariants } from '../../chunk-ESLSPRYA.js';
6
- export { SortableList, SortableListDragHandle, SortableListItem, sortableListHandleVariants, sortableListItemVariants, sortableListOverlayVariants, sortableListVariants } from '../../chunk-LNY2EXOV.js';
7
6
  export { ChangeIndicator, VersionActions, VersionBadge, VersionControl, VersionDiff, VersionItem, VersionList, VersionTimeline, changeIndicatorVariants, diffLineVariants, versionBadgeVariants, versionControlVariants, versionItemVariants, versionTimelineConnectorVariants, versionTimelineMarkerVariants } from '../../chunk-FPCRGFNY.js';
7
+ export { SortableList, SortableListDragHandle, SortableListItem, sortableListHandleVariants, sortableListItemVariants, sortableListOverlayVariants, sortableListVariants } from '../../chunk-LNY2EXOV.js';
8
8
  export { DefaultFallback, ErrorBoundary, errorBoundaryActionVariants, errorBoundaryCardVariants, errorBoundaryFallbackVariants, errorBoundaryIconVariants, errorBoundaryMessageVariants, errorBoundaryStackVariants, errorBoundaryTitleVariants } from '../../chunk-D2V2HKLX.js';
9
9
  export { EventCalendar, EventCalendarAgenda, EventCalendarDay, EventCalendarEvent, EventCalendarHeader, EventCalendarMonth, EventCalendarWeek, eventCalendarAgendaItemVariants, eventCalendarCellVariants, eventCalendarDayNumberVariants, eventCalendarEventVariants, eventCalendarHeaderVariants, eventCalendarTimeSlotVariants, eventCalendarVariants, eventCalendarViewButtonVariants, getEventVariant } from '../../chunk-T6XRYT6Q.js';
10
+ export { FileUpload, FileUploadAvatar, FileUploadDropzone, FileUploadInline, FileUploadList, FileUploadPreview, FileUploadProgressBar, FileUploadTrigger } from '../../chunk-B6KQKQ4S.js';
10
11
  export { FileDropzone, fileDropzoneVariants } from '../../chunk-2Q4I4VDB.js';
11
12
  export { FilePreview, filePreviewActionButtonVariants, filePreviewActionsVariants, filePreviewContentVariants, filePreviewFallbackVariants, filePreviewInfoVariants, filePreviewVariants } from '../../chunk-V7WEN4SD.js';
12
- export { FileUpload, FileUploadAvatar, FileUploadDropzone, FileUploadInline, FileUploadList, FileUploadPreview, FileUploadProgressBar, FileUploadTrigger } from '../../chunk-B6KQKQ4S.js';
13
13
  export { FilterBuilder, FilterGroupComponent as FilterGroup, FilterPreview, FilterRuleComponent as FilterRule, FilterToolbar, combinatorToggleVariants, emptyStateVariants, filterBuilderVariants, filterGroupHeaderVariants, filterGroupVariants, filterPreviewVariants, filterRuleVariants, filterToolbarVariants, isFilterGroup, isFilterRule, ruleFieldVariants, ruleOperatorVariants, ruleValueVariants, rulesContainerVariants } from '../../chunk-W7S7GPU5.js';
14
- export { MarkdownEditor, MarkdownHelp, MarkdownPreview, MarkdownToolbar } from '../../chunk-7EGN7IGY.js';
15
- import '../../chunk-U74PNG4S.js';
16
- export { DndContext, DragHandle, DragOverlay, Draggable, Droppable, SortableContext, SortableItem, arrayMove, closestCenter, closestCorners, dragHandleVariants, dragOverlayVariants, draggableVariants, droppableVariants, horizontalListSortingStrategy, pointerWithin, rectIntersection, rectSortingStrategy, rectSwappingStrategy, sortableItemVariants, verticalListSortingStrategy } from '../../chunk-BIUVOZQG.js';
14
+ export { Portal, portalContainerVariants, portalContentVariants, portalOverlayVariants } from '../../chunk-L2XR5IFJ.js';
17
15
  import '../../chunk-NGR4HFVA.js';
16
+ import '../../chunk-U74PNG4S.js';
17
+ export { Calendar, CalendarDayButton, calendarContainerVariants, calendarDayButtonVariants, calendarDayCellVariants, calendarDisabledVariants, calendarNavButtonVariants, calendarOutsideVariants, calendarRangeEndVariants, calendarRangeMiddleVariants, calendarRangeStartVariants, calendarTodayIndicatorVariants, calendarTodayVariants } from '../../chunk-YUHPTV2A.js';
18
18
  import '../../chunk-UPYT2XM5.js';
19
19
  export { AssetManager, AssetManagerEmpty, AssetManagerGrid, AssetManagerItem, AssetManagerList, AssetManagerSidebar, AssetManagerToolbar, AssetManagerUploader, assetManagerContentVariants, assetManagerEmptyVariants, assetManagerGridVariants, assetManagerItemInfoVariants, assetManagerItemVariants, assetManagerLoadingVariants, assetManagerSidebarVariants, assetManagerThumbnailVariants, assetManagerToolbarVariants, assetManagerUploaderVariants, assetManagerVariants } from '../../chunk-YCZ6M6EF.js';
20
- export { Calendar, CalendarDayButton, calendarContainerVariants, calendarDayButtonVariants, calendarDayCellVariants, calendarDisabledVariants, calendarNavButtonVariants, calendarOutsideVariants, calendarRangeEndVariants, calendarRangeMiddleVariants, calendarRangeStartVariants, calendarTodayIndicatorVariants, calendarTodayVariants } from '../../chunk-YUHPTV2A.js';
21
20
  export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, commandEmptyVariants, commandGroupVariants, commandInputClearVariants, commandInputIconVariants, commandInputVariants, commandInputWrapperVariants, commandItemVariants, commandListVariants, commandSeparatorVariants, commandShortcutVariants, commandVariants } from '../../chunk-JRWQHBJC.js';
22
- import '../../chunk-GAMOVEZD.js';
21
+ export { DndContext, DragHandle, DragOverlay, Draggable, Droppable, SortableContext, SortableItem, arrayMove, closestCenter, closestCorners, dragHandleVariants, dragOverlayVariants, draggableVariants, droppableVariants, horizontalListSortingStrategy, pointerWithin, rectIntersection, rectSortingStrategy, rectSwappingStrategy, sortableItemVariants, verticalListSortingStrategy } from '../../chunk-BIUVOZQG.js';
23
22
  import '../../chunk-WBE6VQOO.js';
24
23
  import '../../chunk-XETKCF73.js';
25
24
  import '../../chunk-PWCMCMDN.js';
26
25
  import '../../chunk-DYDXGWH2.js';
26
+ import '../../chunk-GAMOVEZD.js';
27
27
  import '../../chunk-AFCSDND5.js';
28
28
  import '../../chunk-7TF5PVEU.js';
29
29
  import '../../chunk-TAZPML2P.js';
@@ -1,4 +1,4 @@
1
- export { BarChart } from '../../../chunk-37IIHQP4.js';
1
+ export { BarChart } from '../../../chunk-IMUBWKZC.js';
2
2
  import '../../../chunk-7I6KK6QE.js';
3
3
  import '../../../chunk-HRNDJU7D.js';
4
4
  import '../../../chunk-UP2VWCW5.js';
@@ -1,4 +1,4 @@
1
- export { BarList } from '../../../chunk-FDES5YDF.js';
1
+ export { BarList } from '../../../chunk-WMG2MMJF.js';
2
2
  import '../../../chunk-HRNDJU7D.js';
3
3
  import '../../../chunk-UP2VWCW5.js';
4
4
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- export { Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, emptyMediaVariants } from '../../../chunk-QUENPT24.js';
1
+ export { Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, emptyMediaVariants } from '../../../chunk-2NY6DDLO.js';
2
2
  import '../../../chunk-HRNDJU7D.js';
3
3
  import '../../../chunk-UP2VWCW5.js';
4
4
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- export { LineChart } from '../../../chunk-2Z722V5K.js';
1
+ export { LineChart } from '../../../chunk-ZPAWUKJI.js';
2
2
  import '../../../chunk-7I6KK6QE.js';
3
3
  import '../../../chunk-HRNDJU7D.js';
4
4
  import '../../../chunk-UP2VWCW5.js';
@@ -1,13 +1,17 @@
1
1
  import '../../chunk-FES2I2OT.js';
2
- export { Timeline, TimelineConnector, TimelineContent, TimelineItemComponent as TimelineItem, TimelineMarker, timelineItemVariants, timelineMarkerVariants, timelineVariants } from '../../chunk-NCLOPI6U.js';
3
2
  export { Tracker } from '../../chunk-GPW57XOW.js';
3
+ export { Timeline, TimelineConnector, TimelineContent, TimelineItemComponent as TimelineItem, TimelineMarker, timelineItemVariants, timelineMarkerVariants, timelineVariants } from '../../chunk-NCLOPI6U.js';
4
4
  export { VirtualTable } from '../../chunk-IZC5YFGO.js';
5
+ export { LineChart } from '../../chunk-ZPAWUKJI.js';
6
+ export { List, ListItem, ListItemActions, ListItemContent, listItemVariants, listVariants } from '../../chunk-7HT32DZG.js';
5
7
  export { MarkerBar, markerBarContainerVariants, markerBarMarkerVariants, markerBarMarkerWrapperVariants, markerBarRangeVariants } from '../../chunk-X4YUWX7H.js';
6
- export { PieChart } from '../../chunk-BFBGESUI.js';
7
8
  export { RadarChart } from '../../chunk-BQMQULAC.js';
9
+ export { PieChart } from '../../chunk-BFBGESUI.js';
8
10
  export { RadialChart } from '../../chunk-2XJWE2XR.js';
9
- export { ScatterChart } from '../../chunk-AEE5GDNA.js';
10
11
  export { SingleStat } from '../../chunk-D6TH3EGA.js';
12
+ export { ScatterChart } from '../../chunk-AEE5GDNA.js';
13
+ export { Feed, FeedItemComponent as FeedItem, FeedSkeleton, feedItemVariants, feedVariants } from '../../chunk-B7ZLPQSO.js';
14
+ export { GaugeChart, gaugeChartVariants } from '../../chunk-5KTMPLDK.js';
11
15
  export { Heatmap, HeatmapCell, HeatmapLegend, heatmapVariants } from '../../chunk-6GWO7JNP.js';
12
16
  export { HoverCard, HoverCardContent, HoverCardTrigger } from '../../chunk-VWW3DJKI.js';
13
17
  export { ImageGallery, ImageGalleryItem } from '../../chunk-3NLWCX2F.js';
@@ -15,30 +19,26 @@ export { Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup,
15
19
  export { KPICard, KPICardGroup } from '../../chunk-7J5OM4ZD.js';
16
20
  export { Sparkline } from '../../chunk-2VHARFMD.js';
17
21
  export { Lightbox } from '../../chunk-2FJJOHHH.js';
18
- export { LineChart } from '../../chunk-2Z722V5K.js';
19
- export { List, ListItem, ListItemActions, ListItemContent, listItemVariants, listVariants } from '../../chunk-7HT32DZG.js';
22
+ import '../../chunk-G6SIIN2B.js';
23
+ export { ChartCard, chartCardChartVariants, chartCardHeaderVariants, chartCardPreviousValueVariants, chartCardTitleVariants, chartCardValueContainerVariants, chartCardValueVariants, chartCardVariants } from '../../chunk-3KOLK3OB.js';
24
+ export { DashboardCard, DashboardCardContent, DashboardCardFooter, DashboardCardHeader, DashboardCardTitle, DashboardCardValue, dashboardCardContentVariants, dashboardCardFooterVariants, dashboardCardHeaderVariants, dashboardCardTitleVariants, dashboardCardValueVariants, dashboardCardVariants } from '../../chunk-SM4AZOEP.js';
25
+ export { Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, emptyMediaVariants } from '../../chunk-2NY6DDLO.js';
20
26
  export { DeltaBar } from '../../chunk-DNAGXK2C.js';
21
- export { Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, emptyMediaVariants } from '../../chunk-QUENPT24.js';
22
27
  export { FeatureItem, featureItemVariants } from '../../chunk-K4MYVFWQ.js';
23
- export { Feed, FeedItemComponent as FeedItem, FeedSkeleton, feedItemVariants, feedVariants } from '../../chunk-B7ZLPQSO.js';
24
28
  export { DataTable, DataTableBooleanCell, DataTableCurrencyCell, DataTableDateCell, DataTableProgressCell, DataTableRatingCell, downloadFile, exportToCSV, exportToExcel, exportToPDF, tableToCSV } from '../../chunk-P27ERD6W.js';
25
29
  import '../../chunk-3W7FXRO5.js';
26
30
  export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from '../../chunk-5SUD32RK.js';
27
31
  export { FunnelChart } from '../../chunk-ZPCELVWJ.js';
28
- export { GaugeChart, gaugeChartVariants } from '../../chunk-5KTMPLDK.js';
32
+ export { Banner, bannerVariants } from '../../chunk-F7XARQUW.js';
33
+ export { BarChart } from '../../chunk-IMUBWKZC.js';
34
+ export { BarList } from '../../chunk-WMG2MMJF.js';
29
35
  export { Callout, calloutVariants } from '../../chunk-XLTSCY22.js';
30
36
  export { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious } from '../../chunk-2YSZPUQZ.js';
31
37
  export { CategoryBar } from '../../chunk-H4ANCFZG.js';
32
- export { ChartCard, chartCardChartVariants, chartCardHeaderVariants, chartCardPreviousValueVariants, chartCardTitleVariants, chartCardValueContainerVariants, chartCardValueVariants, chartCardVariants } from '../../chunk-3KOLK3OB.js';
33
38
  export { ComboChart } from '../../chunk-3MJNJKAF.js';
34
- import '../../chunk-G6SIIN2B.js';
35
- export { DashboardCard, DashboardCardContent, DashboardCardFooter, DashboardCardHeader, DashboardCardTitle, DashboardCardValue, dashboardCardContentVariants, dashboardCardFooterVariants, dashboardCardHeaderVariants, dashboardCardTitleVariants, dashboardCardValueVariants, dashboardCardVariants } from '../../chunk-SM4AZOEP.js';
36
39
  export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, accordionContentInnerVariants, accordionContentVariants, accordionItemVariants, accordionTriggerVariants } from '../../chunk-6SHOL6WR.js';
37
40
  export { AreaChart } from '../../chunk-HJ4E6YPW.js';
38
- export { Banner, bannerVariants } from '../../chunk-F7XARQUW.js';
39
- export { BarChart } from '../../chunk-37IIHQP4.js';
40
41
  export { ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent } from '../../chunk-7I6KK6QE.js';
41
- export { BarList } from '../../chunk-FDES5YDF.js';
42
42
  import '../../chunk-K45MMHLA.js';
43
43
  import '../../chunk-4Y72SPNL.js';
44
44
  import '../../chunk-45D4O7RK.js';
@@ -1,13 +1,13 @@
1
1
  import '../../chunk-MVOENLOZ.js';
2
- export { Toaster } from '../../chunk-JDTAG7KZ.js';
3
2
  export { UpdatesWidget } from '../../chunk-46ESMCEQ.js';
4
- export { ConfirmModal } from '../../chunk-ZP4HYVDG.js';
3
+ export { ErrorPage, errorDefaults } from '../../chunk-CYIFWQ5Y.js';
5
4
  export { Message, messageVariants } from '../../chunk-DL7D5F7B.js';
6
5
  export { FocusTrap } from '../../chunk-OQCGQG47.js';
7
- export { ErrorPage, errorDefaults } from '../../chunk-CYIFWQ5Y.js';
8
- export { Modal } from '../../chunk-VAVE4ZJF.js';
9
6
  export { Notification, NotificationDismissButton, notificationVariants, unreadDotVariants } from '../../chunk-U2CXFKRK.js';
7
+ export { Modal } from '../../chunk-VAVE4ZJF.js';
8
+ export { Toaster } from '../../chunk-JDTAG7KZ.js';
10
9
  export { Alert, AlertDescription, AlertTitle, alertVariants } from '../../chunk-G2MAGZHQ.js';
10
+ export { ConfirmModal } from '../../chunk-ZP4HYVDG.js';
11
11
  export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger } from '../../chunk-P7D6S6GX.js';
12
12
  export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from '../../chunk-GAMOVEZD.js';
13
13
  import '../../chunk-3BBOSSDG.js';