@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.
- package/dist/{chunk-QUENPT24.js → chunk-2NY6DDLO.js} +5 -5
- package/dist/{chunk-QUENPT24.js.map → chunk-2NY6DDLO.js.map} +1 -1
- package/dist/chunk-345S7BBL.js +3 -0
- package/dist/{chunk-IXJHHR3Y.js.map → chunk-345S7BBL.js.map} +1 -1
- package/dist/{chunk-7GCTZEMK.js → chunk-5U5XAOES.js} +68 -47
- package/dist/chunk-5U5XAOES.js.map +1 -0
- package/dist/chunk-COZXTBIU.js +176 -0
- package/dist/chunk-COZXTBIU.js.map +1 -0
- package/dist/{chunk-4KOJTZVU.js → chunk-FCIF6H6E.js} +3 -3
- package/dist/{chunk-4KOJTZVU.js.map → chunk-FCIF6H6E.js.map} +1 -1
- package/dist/{chunk-37IIHQP4.js → chunk-IMUBWKZC.js} +52 -4
- package/dist/chunk-IMUBWKZC.js.map +1 -0
- package/dist/chunk-KDJCZXLB.js +91 -0
- package/dist/chunk-KDJCZXLB.js.map +1 -0
- package/dist/chunk-TP4PDKFE.js +3 -0
- package/dist/{chunk-KRHL3YH2.js.map → chunk-TP4PDKFE.js.map} +1 -1
- package/dist/{chunk-FDES5YDF.js → chunk-WMG2MMJF.js} +3 -3
- package/dist/chunk-WMG2MMJF.js.map +1 -0
- package/dist/{chunk-2Z722V5K.js → chunk-ZPAWUKJI.js} +40 -5
- package/dist/chunk-ZPAWUKJI.js.map +1 -0
- package/dist/components/advanced/ReportBuilder/index.js +2 -2
- package/dist/components/advanced/index.js +9 -9
- package/dist/components/data-display/BarChart/index.js +1 -1
- package/dist/components/data-display/BarList/index.js +1 -1
- package/dist/components/data-display/EmptyState/index.js +1 -1
- package/dist/components/data-display/LineChart/index.js +1 -1
- package/dist/components/data-display/index.js +14 -14
- package/dist/components/feedback/index.js +4 -4
- package/dist/components/forms/index.js +10 -11
- package/dist/components/index.js +97 -97
- package/dist/components/layout/index.js +3 -3
- package/dist/components/navigation/AccountSwitch/index.js +1 -1
- package/dist/components/navigation/Sidebar/index.js +1 -1
- package/dist/components/navigation/index.js +8 -8
- package/dist/components/primitives/ArrowAnimated/index.js +2 -89
- package/dist/components/primitives/ArrowAnimated/index.js.map +1 -1
- package/dist/components/primitives/index.js +11 -10
- package/dist/components/workflow/index.js +5 -5
- package/dist/index.d.ts +902 -867
- package/dist/index.js +97 -97
- package/dist/styles.css +63 -50
- package/package.json +12 -13
- package/dist/chunk-2Z722V5K.js.map +0 -1
- package/dist/chunk-37IIHQP4.js.map +0 -1
- package/dist/chunk-7GCTZEMK.js.map +0 -1
- package/dist/chunk-FDES5YDF.js.map +0 -1
- package/dist/chunk-IXJHHR3Y.js +0 -3
- package/dist/chunk-KRHL3YH2.js +0 -3
- package/dist/chunk-QYWCXM7F.js +0 -96
- package/dist/chunk-QYWCXM7F.js.map +0 -1
- package/dist/chunk-SXJMERQL.js +0 -40
- package/dist/chunk-SXJMERQL.js.map +0 -1
- package/dist/components/data-display/DashboardFilterbar/index.js +0 -111
- package/dist/components/data-display/DashboardFilterbar/index.js.map +0 -1
- package/dist/components/forms/ToggleGroup/index.js +0 -6
- package/dist/components/forms/ToggleGroup/index.js.map +0 -1
- package/dist/components/navigation/MobileSidebar/index.js +0 -190
- package/dist/components/navigation/MobileSidebar/index.js.map +0 -1
- package/dist/components/navigation/UserProfileDropdown/index.js +0 -224
- package/dist/components/navigation/UserProfileDropdown/index.js.map +0 -1
- package/dist/components/navigation/WorkspaceDropdown/index.js +0 -192
- 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-
|
|
233
|
-
//# sourceMappingURL=chunk-
|
|
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"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-
|
|
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-
|
|
159
|
-
//# sourceMappingURL=chunk-
|
|
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
|
|
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-
|
|
231
|
-
//# sourceMappingURL=chunk-
|
|
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-
|
|
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 {
|
|
3
|
-
export { ReportBuilder } from '../../chunk-
|
|
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 {
|
|
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
|
-
|
|
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 { Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, emptyMediaVariants } from '../../../chunk-
|
|
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,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
|
-
|
|
19
|
-
export {
|
|
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 {
|
|
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 {
|
|
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';
|