@camunda/design-system 0.17.0 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/dist/carbon-compat/radio-button.d.ts.map +1 -1
  2. package/dist/carbon-compat/radio-button.js +2 -2
  3. package/dist/carbon-compat/radio-button.js.map +1 -1
  4. package/dist/src/components/ui/bar-chart.d.ts +26 -0
  5. package/dist/src/components/ui/bar-chart.d.ts.map +1 -0
  6. package/dist/src/components/ui/bar-chart.js +76 -0
  7. package/dist/src/components/ui/bar-chart.js.map +1 -0
  8. package/dist/src/components/ui/chart.d.ts +32 -0
  9. package/dist/src/components/ui/chart.d.ts.map +1 -0
  10. package/dist/src/components/ui/chart.js +84 -0
  11. package/dist/src/components/ui/chart.js.map +1 -0
  12. package/dist/src/components/ui/page-layout.d.ts +4 -1
  13. package/dist/src/components/ui/page-layout.d.ts.map +1 -1
  14. package/dist/src/components/ui/page-layout.js +22 -8
  15. package/dist/src/components/ui/page-layout.js.map +1 -1
  16. package/dist/src/examples/cost-dashboard/CostBreakdownChart.d.ts.map +1 -1
  17. package/dist/src/examples/cost-dashboard/CostBreakdownChart.js +9 -8
  18. package/dist/src/examples/cost-dashboard/CostBreakdownChart.js.map +1 -1
  19. package/dist/src/examples/cost-dashboard/CostDashboardPage.d.ts.map +1 -1
  20. package/dist/src/examples/cost-dashboard/CostDashboardPage.js +6 -2
  21. package/dist/src/examples/cost-dashboard/CostDashboardPage.js.map +1 -1
  22. package/dist/src/examples/cost-dashboard/TrendChart.d.ts.map +1 -1
  23. package/dist/src/examples/cost-dashboard/TrendChart.js +7 -9
  24. package/dist/src/examples/cost-dashboard/TrendChart.js.map +1 -1
  25. package/dist/src/examples/project-detail/ProjectDetailPage.d.ts.map +1 -1
  26. package/dist/src/examples/project-detail/ProjectDetailPage.js +3 -3
  27. package/dist/src/examples/project-detail/ProjectDetailPage.js.map +1 -1
  28. package/dist/src/examples/projects-list/ProjectsListPage.d.ts.map +1 -1
  29. package/dist/src/examples/projects-list/ProjectsListPage.js +7 -7
  30. package/dist/src/examples/projects-list/ProjectsListPage.js.map +1 -1
  31. package/dist/src/examples/shared/AppShell.d.ts +6 -1
  32. package/dist/src/examples/shared/AppShell.d.ts.map +1 -1
  33. package/dist/src/examples/shared/AppShell.js +7 -2
  34. package/dist/src/examples/shared/AppShell.js.map +1 -1
  35. package/dist/src/index.d.ts +2 -0
  36. package/dist/src/index.d.ts.map +1 -1
  37. package/dist/src/index.js +2 -0
  38. package/dist/src/index.js.map +1 -1
  39. package/dist/styles.css +123 -0
  40. package/package.json +1 -1
  41. package/dist/src/examples/cost-dashboard/useChartColors.d.ts +0 -10
  42. package/dist/src/examples/cost-dashboard/useChartColors.d.ts.map +0 -1
  43. package/dist/src/examples/cost-dashboard/useChartColors.js +0 -20
  44. package/dist/src/examples/cost-dashboard/useChartColors.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"radio-button.d.ts","sourceRoot":"","sources":["../../carbon-compat/radio-button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EACV,qBAAqB,IAAI,2BAA2B,EACpD,gBAAgB,IAAI,sBAAsB,EAC3C,MAAM,eAAe,CAAC;AAEvB,MAAM,MAAM,qBAAqB,GAAG,2BAA2B,CAAC;AAChE,MAAM,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AAEtD,iBAAS,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,qBA4GrD;AAED,iBAAS,WAAW,CAAC,KAAK,EAAE,gBAAgB,qBAkD3C;AAED,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"radio-button.d.ts","sourceRoot":"","sources":["../../carbon-compat/radio-button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EACV,qBAAqB,IAAI,2BAA2B,EACpD,gBAAgB,IAAI,sBAAsB,EAC3C,MAAM,eAAe,CAAC;AAEvB,MAAM,MAAM,qBAAqB,GAAG,2BAA2B,CAAC;AAChE,MAAM,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AAEtD,iBAAS,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,qBA6GrD;AAED,iBAAS,WAAW,CAAC,KAAK,EAAE,gBAAgB,qBAkD3C;AAED,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC"}
@@ -33,9 +33,9 @@ function RadioButtonGroup(props) {
33
33
  onChange?.(value, name, synthetic);
34
34
  }
35
35
  : undefined;
36
- const group = (_jsx(RadioGroup, { name: name, value: valueSelected, defaultValue: defaultSelected, disabled: disabled, orientation: orientation === "horizontal" ? "horizontal" : "vertical", onValueChange: handleValueChange, className: cn(orientation === "horizontal" && "flex flex-row gap-4", className), ...rest, children: children }));
36
+ const group = (_jsx(RadioGroup, { name: name, value: valueSelected, defaultValue: defaultSelected, disabled: disabled, orientation: orientation === "horizontal" ? "horizontal" : "vertical", onValueChange: handleValueChange, className: cn(legendText && "gap-2", orientation === "horizontal" && "flex flex-row gap-4", className), ...rest, children: children }));
37
37
  if (legendText) {
38
- return (_jsxs("fieldset", { className: "space-y-2", children: [_jsx("legend", { className: "text-sm font-medium", children: legendText }), group] }));
38
+ return (_jsxs("fieldset", { className: "space-y-3", children: [_jsx("legend", { className: "text-sm font-medium", children: legendText }), group] }));
39
39
  }
40
40
  return group;
41
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"radio-button.js","sourceRoot":"","sources":["../../carbon-compat/radio-button.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"radio-button.js","sourceRoot":"","sources":["../../carbon-compat/radio-button.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { type ChartConfig } from "./chart.js";
2
+ interface ReferenceLineConfig {
3
+ value: number;
4
+ label?: string;
5
+ axis?: "x" | "y";
6
+ }
7
+ interface BarChartProps {
8
+ data: Record<string, unknown>[];
9
+ categoryKey: string;
10
+ config: ChartConfig;
11
+ orientation?: "vertical" | "horizontal";
12
+ stacked?: boolean;
13
+ getCellColor?: (value: number, dataKey: string) => string;
14
+ showLabels?: boolean;
15
+ referenceLines?: ReferenceLineConfig[];
16
+ legend?: boolean;
17
+ loading?: boolean;
18
+ empty?: boolean;
19
+ radius?: number;
20
+ tickFormatter?: (value: unknown) => string;
21
+ className?: string;
22
+ }
23
+ declare function BarChart({ data, categoryKey, config, orientation, stacked, getCellColor, showLabels, referenceLines, legend, loading, empty, radius, tickFormatter, className, }: BarChartProps): import("react").JSX.Element;
24
+ export { BarChart };
25
+ export type { BarChartProps };
26
+ //# sourceMappingURL=bar-chart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bar-chart.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/bar-chart.tsx"],"names":[],"mappings":"AAWA,OAAO,EAML,KAAK,WAAW,EACjB,MAAM,SAAS,CAAC;AAEjB,UAAU,mBAAmB;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;CAClB;AAsCD,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IAC1D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,iBAAS,QAAQ,CAAC,EAChB,IAAI,EACJ,WAAW,EACX,MAAM,EACN,WAAwB,EACxB,OAAe,EACf,YAAY,EACZ,UAAkB,EAClB,cAAc,EACd,MAAM,EACN,OAAe,EACf,KAAa,EACb,MAAU,EACV,aAAa,EACb,SAAS,GACV,EAAE,aAAa,+BAqHf;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,YAAY,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,76 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Bar, BarChart as RechartsBarChart, CartesianGrid, Cell, LabelList, ReferenceLine, XAxis, YAxis, } from "recharts";
3
+ import { ChartContainer, ChartLegend, ChartLegendContent, ChartTooltip, ChartTooltipContent, } from "./chart.js";
4
+ // Recharts' <Bar radius> accepts a single number (all four corners) or a
5
+ // [topLeft, topRight, bottomRight, bottomLeft] tuple. For a stacked chart with
6
+ // 2+ series, only the outer-facing edge of the base and outer segments should
7
+ // round — internal seams between stacked segments must stay flat so the stack
8
+ // reads as one continuous bar. "Outer-facing" depends on orientation: vertical
9
+ // stacks grow up from the x-axis (first key = base = bottom corners round,
10
+ // last key = top = top corners round); horizontal stacks grow right from the
11
+ // y-axis (first key = base = left corners round, last key = right = right
12
+ // corners round). Grouped (stacked=false) or single-series charts keep the
13
+ // flat-4-corner radius. The `0` branches (flat/middle-of-stack segments) stay
14
+ // `0` regardless of `radius` — only the rounded branches scale with it.
15
+ function getBarRadius(index, total, stacked, orientation, radius) {
16
+ if (!stacked || total <= 1) {
17
+ return radius;
18
+ }
19
+ const isBase = index === 0;
20
+ const isOuter = index === total - 1;
21
+ if (orientation === "vertical") {
22
+ // [topLeft, topRight, bottomRight, bottomLeft]
23
+ if (isOuter)
24
+ return [radius, radius, 0, 0];
25
+ if (isBase)
26
+ return [0, 0, radius, radius];
27
+ return 0;
28
+ }
29
+ // orientation === "horizontal": base touches the y-axis (left), outer segment
30
+ // is right-most.
31
+ if (isBase)
32
+ return [radius, 0, 0, radius];
33
+ if (isOuter)
34
+ return [0, radius, radius, 0];
35
+ return 0;
36
+ }
37
+ function BarChart({ data, categoryKey, config, orientation = "vertical", stacked = false, getCellColor, showLabels = false, referenceLines, legend, loading = false, empty = false, radius = 4, tickFormatter, className, }) {
38
+ const seriesKeys = Object.keys(config);
39
+ const showLegend = legend ?? seriesKeys.length > 1;
40
+ // Public `orientation` describes bar growth direction. Recharts' `layout` is the
41
+ // inverse of that: its default ("horizontal") grows bars vertically, and
42
+ // "vertical" grows bars sideways. Translate here so no Recharts terminology
43
+ // leaks into the DS prop.
44
+ const rechartsLayout = orientation === "horizontal" ? "vertical" : "horizontal";
45
+ // Reference-line axis defaults to the value axis — the axis opposite categoryKey.
46
+ const defaultReferenceAxis = orientation === "horizontal" ? "x" : "y";
47
+ return (_jsx(ChartContainer, { config: config, loading: loading, empty: empty, className: className, children: _jsxs(RechartsBarChart, { data: data, layout: rechartsLayout, accessibilityLayer: true, children: [_jsx(CartesianGrid, { vertical: orientation === "horizontal", horizontal: orientation === "vertical", stroke: "var(--border)" }), orientation === "vertical" ? (_jsxs(_Fragment, { children: [_jsx(XAxis, { dataKey: categoryKey, tickLine: false, axisLine: false,
48
+ // Matches shadcn's own chart-bar-interactive registry default —
49
+ // Recharts skips tick labels that would render closer together
50
+ // than this pixel gap, avoiding crowded/overlapping labels on
51
+ // dense datasets (e.g. ~90 daily points). Sparse datasets are
52
+ // unaffected since their ticks already clear 32px.
53
+ minTickGap: 32, tickFormatter: tickFormatter }), _jsx(YAxis, { tickLine: false, axisLine: false })] })) : (_jsxs(_Fragment, { children: [_jsx(XAxis, { type: "number", tickLine: false, axisLine: false }), _jsx(YAxis, { dataKey: categoryKey, type: "category", tickLine: false, axisLine: false,
54
+ // Recharts' default category-axis width (60px) truncates longer
55
+ // labels (e.g. process/connector names) — "auto" measures each
56
+ // label and sizes the axis to fit, per this prop's purpose.
57
+ width: "auto", minTickGap: 32, tickFormatter: tickFormatter })] })), _jsx(ChartTooltip, { content: _jsx(ChartTooltipContent, {}) }), showLegend && _jsx(ChartLegend, { content: _jsx(ChartLegendContent, {}) }), referenceLines?.map((referenceLine, index) => (_jsx(ReferenceLine, { ...(referenceLine.axis
58
+ ? { [referenceLine.axis]: referenceLine.value }
59
+ : { [defaultReferenceAxis]: referenceLine.value }), ...(referenceLine.label
60
+ ? {
61
+ label: {
62
+ value: referenceLine.label,
63
+ position: "insideTopRight",
64
+ },
65
+ }
66
+ : {}), strokeDasharray: "4 4",
67
+ // chart.tsx's global style forces `.recharts-reference-line-line` to
68
+ // `stroke-border` via a Tailwind arbitrary-variant class, which beats
69
+ // the `stroke` SVG presentation attribute (lowest CSS priority). Set
70
+ // the color via inline `style` instead so it wins over that class.
71
+ style: { stroke: "var(--neutral-foreground-subtle)" } }, index))), seriesKeys.map((key, index) => (_jsxs(Bar, { dataKey: key, fill: `var(--color-${key})`, stackId: stacked ? "stack" : undefined, radius: getBarRadius(index, seriesKeys.length, stacked, orientation, radius), children: [getCellColor && seriesKeys.length === 1
72
+ ? data.map((row, index) => (_jsx(Cell, { fill: getCellColor(Number(row[key]), key) }, index)))
73
+ : null, showLabels && (_jsx(LabelList, { dataKey: key, position: orientation === "horizontal" ? "right" : "top", className: "fill-neutral-foreground-strong", fontSize: 12 }))] }, key)))] }) }));
74
+ }
75
+ export { BarChart };
76
+ //# sourceMappingURL=bar-chart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bar-chart.js","sourceRoot":"","sources":["../../../../src/components/ui/bar-chart.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import * as React from "react";
2
+ import * as RechartsPrimitive from "recharts";
3
+ export type ChartConfig = Record<string, {
4
+ label: React.ReactNode;
5
+ icon?: React.ComponentType<React.SVGProps<SVGSVGElement>>;
6
+ color?: string;
7
+ }>;
8
+ declare function ChartContainer({ id, className, children, config, loading, empty, emptyMessage, ...props }: React.ComponentProps<"div"> & {
9
+ config: ChartConfig;
10
+ loading?: boolean;
11
+ empty?: boolean;
12
+ emptyMessage?: string;
13
+ children: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>["children"];
14
+ }): React.JSX.Element;
15
+ declare const ChartTooltip: typeof RechartsPrimitive.Tooltip;
16
+ declare function ChartTooltipContent({ active, payload, className, indicator, hideLabel, hideIndicator, label, labelFormatter, formatter, color, labelClassName, }: Partial<RechartsPrimitive.TooltipContentProps> & {
17
+ className?: string;
18
+ indicator?: "line" | "dot" | "dashed";
19
+ hideLabel?: boolean;
20
+ hideIndicator?: boolean;
21
+ color?: string;
22
+ labelClassName?: string;
23
+ }): React.JSX.Element | null;
24
+ declare const ChartLegend: React.MemoExoticComponent<(outsideProps: RechartsPrimitive.LegendProps) => React.ReactPortal | null>;
25
+ declare function ChartLegendContent({ className, hideIcon, payload, verticalAlign, }: {
26
+ className?: string;
27
+ payload?: readonly RechartsPrimitive.LegendPayload[];
28
+ verticalAlign?: RechartsPrimitive.LegendProps["verticalAlign"];
29
+ hideIcon?: boolean;
30
+ }): React.JSX.Element | null;
31
+ export { ChartContainer, ChartTooltip, ChartTooltipContent, ChartLegend, ChartLegendContent, };
32
+ //# sourceMappingURL=chart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/chart.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,iBAAiB,MAAM,UAAU,CAAC;AAK9C,MAAM,MAAM,WAAW,GAAG,MAAM,CAC9B,MAAM,EACN;IACE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CACF,CAAC;AAgBF,iBAAS,cAAc,CAAC,EACtB,EAAE,EACF,SAAS,EACT,QAAQ,EACR,MAAM,EACN,OAAe,EACf,KAAa,EACb,YAAkC,EAClC,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/B,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,KAAK,CAAC,cAAc,CAC5B,OAAO,iBAAiB,CAAC,mBAAmB,CAC7C,CAAC,UAAU,CAAC,CAAC;CACf,qBAgCA;AAoBD,QAAA,MAAM,YAAY,kCAA4B,CAAC;AAE/C,iBAAS,mBAAmB,CAAC,EAC3B,MAAM,EACN,OAAO,EACP,SAAS,EACT,SAAiB,EACjB,SAAiB,EACjB,aAAqB,EACrB,KAAK,EACL,cAAc,EACd,SAAS,EACT,KAAK,EACL,cAAc,GACf,EAAE,OAAO,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,GAAG;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IACtC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,4BAkHA;AAED,QAAA,MAAM,WAAW,sGAA2B,CAAC;AAE7C,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,QAAgB,EAChB,OAAO,EACP,aAAwB,GACzB,EAAE;IACD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,iBAAiB,CAAC,aAAa,EAAE,CAAC;IACrD,aAAa,CAAC,EAAE,iBAAiB,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IAC/D,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,4BA4CA;AAED,OAAO,EACL,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,WAAW,EACX,kBAAkB,GACnB,CAAC"}
@@ -0,0 +1,84 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import * as RechartsPrimitive from "recharts";
4
+ import { cn } from "../../lib/utils.js";
5
+ import { Skeleton } from "./skeleton.js";
6
+ const ChartContext = React.createContext(null);
7
+ function useChart() {
8
+ const context = React.useContext(ChartContext);
9
+ if (!context) {
10
+ throw new Error("useChart must be used within a <ChartContainer />");
11
+ }
12
+ return context;
13
+ }
14
+ function ChartContainer({ id, className, children, config, loading = false, empty = false, emptyMessage = "No data available", ...props }) {
15
+ const generatedId = React.useId();
16
+ const chartId = `chart-${generatedId.replace(/:/g, "")}`;
17
+ return (_jsx(ChartContext.Provider, { value: { config }, children: _jsxs("div", { id: id, "data-slot": "chart", "data-chart": chartId, "aria-busy": loading || undefined, className: cn("flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-neutral-foreground-subtle [&_.recharts-cartesian-grid_line]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-radial-bar-background-sector]:fill-neutral-background-strong [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-neutral-background-strong [&_.recharts-reference-line-line]:stroke-border [&_.recharts-sector]:outline-hidden [&_.recharts-surface]:outline-hidden", className), ...props, children: [_jsx(ChartStyle, { id: chartId, config: config }), loading ? (_jsx(Skeleton, { className: "h-full w-full" })) : empty ? (_jsx("div", { className: "flex h-full w-full items-center justify-center text-neutral-foreground-subtle", children: emptyMessage })) : (_jsx(RechartsPrimitive.ResponsiveContainer, { children: children }))] }) }));
18
+ }
19
+ function ChartStyle({ id, config }) {
20
+ const colorConfig = Object.entries(config).filter(([, entryConfig]) => entryConfig.color);
21
+ if (!colorConfig.length) {
22
+ return null;
23
+ }
24
+ return (_jsx("style", { children: `[data-chart="${id}"] {
25
+ ${colorConfig
26
+ .map(([key, entryConfig]) => ` --color-${key}: ${entryConfig.color};`)
27
+ .join("\n")}
28
+ }` }));
29
+ }
30
+ const ChartTooltip = RechartsPrimitive.Tooltip;
31
+ function ChartTooltipContent({ active, payload, className, indicator = "dot", hideLabel = false, hideIndicator = false, label, labelFormatter, formatter, color, labelClassName, }) {
32
+ const { config } = useChart();
33
+ const tooltipLabel = React.useMemo(() => {
34
+ if (hideLabel || !payload?.length) {
35
+ return null;
36
+ }
37
+ const value = !labelFormatter && typeof label === "string"
38
+ ? (config[label]?.label ?? label)
39
+ : label;
40
+ if (labelFormatter) {
41
+ return (_jsx("div", { className: cn("font-medium", labelClassName), children: labelFormatter(value, payload) }));
42
+ }
43
+ if (!value) {
44
+ return null;
45
+ }
46
+ return _jsx("div", { className: cn("font-medium", labelClassName), children: value });
47
+ }, [label, labelFormatter, payload, hideLabel, labelClassName, config]);
48
+ if (!active || !payload?.length) {
49
+ return null;
50
+ }
51
+ const nestLabel = payload.length === 1 && indicator !== "dot";
52
+ return (_jsxs("div", { "data-slot": "chart-tooltip-content", className: cn("grid min-w-32 items-start gap-1.5 rounded-lg border border-border bg-popover px-2.5 py-1.5 text-xs text-popover-foreground shadow-lg", className), children: [!nestLabel ? tooltipLabel : null, _jsx("div", { className: "grid gap-1.5", children: payload.map((item, index) => {
53
+ const key = `${item.dataKey ?? item.name ?? "value"}`;
54
+ const itemConfig = config[key];
55
+ const indicatorColor = color ?? item.color ?? item.payload?.fill;
56
+ return (_jsx("div", { className: cn("flex w-full flex-wrap items-stretch gap-2 [&>svg]:size-2.5 [&>svg]:text-neutral-foreground-subtle", indicator === "dot" && "items-center"), children: formatter && item.value !== undefined && item.name ? (formatter(item.value, item.name, item, index, item.payload)) : (_jsxs(_Fragment, { children: [itemConfig?.icon ? (_jsx(itemConfig.icon, { "aria-hidden": "true" })) : (!hideIndicator && (_jsx("div", { "aria-hidden": "true", className: cn("shrink-0 rounded-[2px] border-(--color-border-tooltip) bg-(--color-indicator-tooltip)", {
57
+ "h-2.5 w-2.5": indicator === "dot",
58
+ "h-full w-1": indicator === "line",
59
+ "w-0 border-[1.5px] border-dashed bg-transparent": indicator === "dashed",
60
+ "my-0.5": nestLabel && indicator === "dashed",
61
+ }), style: {
62
+ "--color-indicator-tooltip": indicatorColor,
63
+ "--color-border-tooltip": indicatorColor,
64
+ } }))), _jsxs("div", { className: cn("flex flex-1 justify-between leading-none", nestLabel ? "items-end" : "items-center"), children: [_jsxs("div", { className: "grid gap-1.5", children: [nestLabel ? tooltipLabel : null, _jsx("span", { className: "text-neutral-foreground-subtle", children: itemConfig?.label ?? item.name })] }), item.value !== undefined && item.value !== null && (_jsx("span", { className: "font-mono font-medium tabular-nums text-neutral-foreground-strong", children: typeof item.value === "number"
65
+ ? item.value.toLocaleString()
66
+ : item.value }))] })] })) }, key || index));
67
+ }) })] }));
68
+ }
69
+ const ChartLegend = RechartsPrimitive.Legend;
70
+ function ChartLegendContent({ className, hideIcon = false, payload, verticalAlign = "bottom", }) {
71
+ const { config } = useChart();
72
+ if (!payload?.length) {
73
+ return null;
74
+ }
75
+ return (_jsx("div", { "data-slot": "chart-legend-content", className: cn("flex items-center justify-center gap-4", verticalAlign === "top" ? "pb-3" : "pt-3", className), children: payload.map((item, index) => {
76
+ const lookupKey = `${item.dataKey ?? "value"}`;
77
+ const itemConfig = config[lookupKey];
78
+ return (_jsxs("div", { className: "flex items-center gap-1.5 text-neutral-foreground-subtle [&>svg]:size-3 [&>svg]:text-neutral-foreground-subtle", children: [itemConfig?.icon && !hideIcon ? (_jsx(itemConfig.icon, { "aria-hidden": "true" })) : (_jsx("div", { "aria-hidden": "true", className: "h-2 w-2 shrink-0 rounded-[2px] bg-(--color-indicator-legend)", style: {
79
+ "--color-indicator-legend": item.color,
80
+ } })), itemConfig?.label] }, `${lookupKey}-${index}`));
81
+ }) }));
82
+ }
83
+ export { ChartContainer, ChartTooltip, ChartTooltipContent, ChartLegend, ChartLegendContent, };
84
+ //# sourceMappingURL=chart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart.js","sourceRoot":"","sources":["../../../../src/components/ui/chart.tsx"],"names":[],"mappings":"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"}
@@ -3,7 +3,10 @@ import { type VariantProps } from "class-variance-authority";
3
3
  declare const pageLayoutVariants: (props?: ({
4
4
  padding?: "default" | "none" | null | undefined;
5
5
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
- type PageLayoutProps = React.ComponentProps<"main"> & VariantProps<typeof pageLayoutVariants> & {
6
+ declare const pageContentWidthVariants: (props?: ({
7
+ width?: "constrained" | "full" | null | undefined;
8
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
9
+ type PageLayoutProps = React.ComponentProps<"main"> & VariantProps<typeof pageLayoutVariants> & VariantProps<typeof pageContentWidthVariants> & {
7
10
  separator?: boolean;
8
11
  };
9
12
  declare const PageLayout: React.ForwardRefExoticComponent<Omit<PageLayoutProps, "ref"> & React.RefAttributes<HTMLElement>>;
@@ -1 +1 @@
1
- {"version":3,"file":"page-layout.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/page-layout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAUlE,QAAA,MAAM,kBAAkB;;8EAavB,CAAC;AAEF,KAAK,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,GACjD,YAAY,CAAC,OAAO,kBAAkB,CAAC,GAAG;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AA0DJ,QAAA,MAAM,UAAU,kGAAwD,CAAC;AAOzE,KAAK,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB,CAAC;AAiDF,QAAA,MAAM,UAAU,kGAAwD,CAAC;AAGzE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AAClC,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"page-layout.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/page-layout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAUlE,QAAA,MAAM,kBAAkB;;8EAavB,CAAC;AAEF,QAAA,MAAM,wBAAwB;;8EAU5B,CAAC;AAEH,KAAK,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,GACjD,YAAY,CAAC,OAAO,kBAAkB,CAAC,GACvC,YAAY,CAAC,OAAO,wBAAwB,CAAC,GAAG;IAC9C,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAsDJ,QAAA,MAAM,UAAU,kGAAwD,CAAC;AAOzE,KAAK,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB,CAAC;AAiDF,QAAA,MAAM,UAAU,kGAAwD,CAAC;AAGzE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AAClC,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC"}
@@ -18,16 +18,30 @@ const pageLayoutVariants = cva("flex flex-col min-h-0 flex-1 bg-background text-
18
18
  padding: "default",
19
19
  },
20
20
  });
21
- function PageLayoutImpl({ id = "main-content", padding, separator = false, className, children, ref, ...props }) {
21
+ const pageContentWidthVariants = cva("flex flex-1 min-h-0 flex-col w-full", {
22
+ variants: {
23
+ width: {
24
+ constrained: "mx-auto max-w-[1584px]",
25
+ full: "",
26
+ },
27
+ },
28
+ defaultVariants: {
29
+ width: "constrained",
30
+ },
31
+ });
32
+ function PageLayoutImpl({ id = "main-content", padding, width, separator = false, className, children, ref, ...props }) {
22
33
  const childArray = React.Children.toArray(children);
23
- if (!separator) {
24
- return (_jsx("main", { "data-slot": "page-layout", id: id, className: cn(pageLayoutVariants({ padding }), className), ref: ref, ...props, children: children }));
34
+ let content = children;
35
+ if (separator) {
36
+ // Inject a <Separator> after the first PageHeader child.
37
+ const firstPageHeaderIndex = childArray.findIndex((child) => React.isValidElement(child) &&
38
+ child.type.displayName ===
39
+ "PageHeader");
40
+ if (firstPageHeaderIndex !== -1) {
41
+ content = (_jsxs(_Fragment, { children: [childArray.slice(0, firstPageHeaderIndex + 1), _jsx(Separator, {}), childArray.slice(firstPageHeaderIndex + 1)] }));
42
+ }
25
43
  }
26
- // When separator=true, inject a <Separator> after the first PageHeader child.
27
- const firstPageHeaderIndex = childArray.findIndex((child) => React.isValidElement(child) &&
28
- child.type.displayName === "PageHeader");
29
- const content = firstPageHeaderIndex === -1 ? (children) : (_jsxs(_Fragment, { children: [childArray.slice(0, firstPageHeaderIndex + 1), _jsx(Separator, {}), childArray.slice(firstPageHeaderIndex + 1)] }));
30
- return (_jsx("main", { "data-slot": "page-layout", id: id, className: cn(pageLayoutVariants({ padding }), className), ref: ref, ...props, children: content }));
44
+ return (_jsx("main", { "data-slot": "page-layout", id: id, className: cn(pageLayoutVariants({ padding }), className), ref: ref, ...props, children: _jsx("div", { "data-slot": "page-content", className: cn(pageContentWidthVariants({ width })), children: content }) }));
31
45
  }
32
46
  const PageLayout = withRef(PageLayoutImpl);
33
47
  PageLayout.displayName = "PageLayout";
@@ -1 +1 @@
1
- {"version":3,"file":"page-layout.js","sourceRoot":"","sources":["../../../../src/components/ui/page-layout.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"page-layout.js","sourceRoot":"","sources":["../../../../src/components/ui/page-layout.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CostBreakdownChart.d.ts","sourceRoot":"","sources":["../../../../src/examples/cost-dashboard/CostBreakdownChart.tsx"],"names":[],"mappings":"AAeA,wBAAgB,kBAAkB,gCAqDjC"}
1
+ {"version":3,"file":"CostBreakdownChart.d.ts","sourceRoot":"","sources":["../../../../src/examples/cost-dashboard/CostBreakdownChart.tsx"],"names":[],"mappings":"AAoBA,wBAAgB,kBAAkB,gCAyDjC"}
@@ -1,20 +1,21 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { PieChart, Pie, Cell, ResponsiveContainer } from "recharts";
2
+ import { PieChart, Pie, Cell } from "recharts";
3
+ import { ChartContainer } from "../../index.js";
3
4
  import { agents, totalLlmSpend } from "./mock-data.js";
4
- import { useChartColors } from "./useChartColors.js";
5
5
  // Spend split into input vs output cost (summed across the definition's agents).
6
6
  const totalInput = +agents.reduce((sum, a) => sum + a.inCostUsd, 0).toFixed(2);
7
7
  const totalOutput = +agents
8
8
  .reduce((sum, a) => sum + a.outCostUsd, 0)
9
9
  .toFixed(2);
10
10
  const segments = [
11
- { name: "Input", value: totalInput },
12
- { name: "Output", value: totalOutput },
11
+ { name: "Input", key: "input", value: totalInput },
12
+ { name: "Output", key: "output", value: totalOutput },
13
13
  ];
14
+ const chartConfig = {
15
+ input: { label: "Input", color: "var(--chart-1)" },
16
+ output: { label: "Output", color: "var(--chart-2)" },
17
+ };
14
18
  export function CostBreakdownChart() {
15
- const [ref, colors] = useChartColors();
16
- return (_jsxs("div", { ref: ref, className: "flex flex-col items-center", children: [_jsxs("div", { className: "relative h-44 w-44", children: [colors.length >= segments.length && (_jsx(ResponsiveContainer, { width: "100%", height: "100%", children: _jsx(PieChart, { children: _jsx(Pie, { data: segments, dataKey: "value", nameKey: "name", innerRadius: 52, outerRadius: 84, stroke: "none", children: segments.map((s, i) => (_jsx(Cell, { fill: colors[i] }, s.name))) }) }) })), _jsxs("div", { className: "pointer-events-none absolute inset-0 flex flex-col items-center justify-center", children: [_jsxs("span", { className: "text-xl font-semibold tabular-nums", children: ["$", totalLlmSpend.toFixed(2)] }), _jsx("span", { className: "text-xs text-neutral-foreground-subtle", children: "total spend" })] })] }), _jsx("ul", { className: "mt-4 w-full space-y-1 text-xs", children: segments.map((s, i) => (_jsxs("li", { className: "flex items-center justify-between gap-2", children: [_jsxs("span", { className: "flex items-center gap-1.5", children: [_jsx("span", { className: "inline-block size-2.5 rounded-[2px]", style: {
17
- background: colors[i] ?? "var(--neutral-background-strong)",
18
- } }), s.name] }), _jsxs("span", { className: "tabular-nums text-neutral-foreground-subtle", children: ["$", s.value.toFixed(2)] })] }, s.name))) })] }));
19
+ return (_jsxs("div", { className: "flex flex-col items-center", children: [_jsxs("div", { className: "relative h-44 w-44", children: [_jsx(ChartContainer, { config: chartConfig, className: "h-full w-full", children: _jsx(PieChart, { children: _jsx(Pie, { data: segments, dataKey: "value", nameKey: "name", innerRadius: 52, outerRadius: 84, stroke: "none", isAnimationActive: false, children: segments.map((s) => (_jsx(Cell, { fill: `var(--color-${s.key})` }, s.name))) }) }) }), _jsxs("div", { className: "pointer-events-none absolute inset-0 flex flex-col items-center justify-center", children: [_jsxs("span", { className: "text-xl font-semibold tabular-nums", children: ["$", totalLlmSpend.toFixed(2)] }), _jsx("span", { className: "text-xs text-neutral-foreground-subtle", children: "total spend" })] })] }), _jsx("ul", { className: "mt-4 w-full space-y-1 text-xs", children: segments.map((s) => (_jsxs("li", { className: "flex items-center justify-between gap-2", children: [_jsxs("span", { className: "flex items-center gap-1.5", children: [_jsx("span", { className: "inline-block size-2.5 rounded-[2px]", style: { background: chartConfig[s.key]?.color } }), s.name] }), _jsxs("span", { className: "tabular-nums text-neutral-foreground-subtle", children: ["$", s.value.toFixed(2)] })] }, s.name))) })] }));
19
20
  }
20
21
  //# sourceMappingURL=CostBreakdownChart.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CostBreakdownChart.js","sourceRoot":"","sources":["../../../../src/examples/cost-dashboard/CostBreakdownChart.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEpE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,iFAAiF;AACjF,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC/E,MAAM,WAAW,GAAG,CAAC,MAAM;KACxB,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;KACzC,OAAO,CAAC,CAAC,CAAC,CAAC;AACd,MAAM,QAAQ,GAAG;IACf,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE;IACpC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE;CACvC,CAAC;AAEF,MAAM,UAAU,kBAAkB;IAChC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,cAAc,EAAE,CAAC;IACvC,OAAO,CACL,eAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAC,4BAA4B,aACnD,eAAK,SAAS,EAAC,oBAAoB,aAEhC,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,IAAI,CACnC,KAAC,mBAAmB,IAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,YAC7C,KAAC,QAAQ,cACP,KAAC,GAAG,IACF,IAAI,EAAE,QAAQ,EACd,OAAO,EAAC,OAAO,EACf,OAAO,EAAC,MAAM,EACd,WAAW,EAAE,EAAE,EACf,WAAW,EAAE,EAAE,EACf,MAAM,EAAC,MAAM,YAEZ,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACtB,KAAC,IAAI,IAAc,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAvB,CAAC,CAAC,IAAI,CAAqB,CACvC,CAAC,GACE,GACG,GACS,CACvB,EACD,eAAK,SAAS,EAAC,gFAAgF,aAC7F,gBAAM,SAAS,EAAC,oCAAoC,kBAChD,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,IACrB,EACP,eAAM,SAAS,EAAC,wCAAwC,4BAEjD,IACH,IACF,EACN,aAAI,SAAS,EAAC,+BAA+B,YAC1C,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACtB,cAAiB,SAAS,EAAC,yCAAyC,aAClE,gBAAM,SAAS,EAAC,2BAA2B,aACzC,eACE,SAAS,EAAC,qCAAqC,EAC/C,KAAK,EAAE;wCACL,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,kCAAkC;qCAC5D,GACD,EACD,CAAC,CAAC,IAAI,IACF,EACP,gBAAM,SAAS,EAAC,6CAA6C,kBACzD,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IACf,KAZA,CAAC,CAAC,IAAI,CAaV,CACN,CAAC,GACC,IACD,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"CostBreakdownChart.js","sourceRoot":"","sources":["../../../../src/examples/cost-dashboard/CostBreakdownChart.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAoB,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEpD,iFAAiF;AACjF,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC/E,MAAM,WAAW,GAAG,CAAC,MAAM;KACxB,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;KACzC,OAAO,CAAC,CAAC,CAAC,CAAC;AACd,MAAM,QAAQ,GAAG;IACf,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE;IAClD,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE;CACtD,CAAC;AAEF,MAAM,WAAW,GAAgB;IAC/B,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE;IAClD,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE;CACrD,CAAC;AAEF,MAAM,UAAU,kBAAkB;IAChC,OAAO,CACL,eAAK,SAAS,EAAC,4BAA4B,aACzC,eAAK,SAAS,EAAC,oBAAoB,aACjC,KAAC,cAAc,IAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAC,eAAe,YAC5D,KAAC,QAAQ,cACP,KAAC,GAAG,IACF,IAAI,EAAE,QAAQ,EACd,OAAO,EAAC,OAAO,EACf,OAAO,EAAC,MAAM,EACd,WAAW,EAAE,EAAE,EACf,WAAW,EAAE,EAAE,EACf,MAAM,EAAC,MAAM,EACb,iBAAiB,EAAE,KAAK,YAEvB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACnB,KAAC,IAAI,IAAc,IAAI,EAAE,eAAe,CAAC,CAAC,GAAG,GAAG,IAArC,CAAC,CAAC,IAAI,CAAmC,CACrD,CAAC,GACE,GACG,GACI,EAEjB,eAAK,SAAS,EAAC,gFAAgF,aAC7F,gBAAM,SAAS,EAAC,oCAAoC,kBAChD,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,IACrB,EACP,eAAM,SAAS,EAAC,wCAAwC,4BAEjD,IACH,IACF,EASN,aAAI,SAAS,EAAC,+BAA+B,YAC1C,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACnB,cAAiB,SAAS,EAAC,yCAAyC,aAClE,gBAAM,SAAS,EAAC,2BAA2B,aACzC,eACE,SAAS,EAAC,qCAAqC,EAC/C,KAAK,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,GAChD,EACD,CAAC,CAAC,IAAI,IACF,EACP,gBAAM,SAAS,EAAC,6CAA6C,kBACzD,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IACf,KAVA,CAAC,CAAC,IAAI,CAWV,CACN,CAAC,GACC,IACD,CACP,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CostDashboardPage.d.ts","sourceRoot":"","sources":["../../../../src/examples/cost-dashboard/CostDashboardPage.tsx"],"names":[],"mappings":"AAgIA,wBAAgB,iBAAiB,gCAuIhC"}
1
+ {"version":3,"file":"CostDashboardPage.d.ts","sourceRoot":"","sources":["../../../../src/examples/cost-dashboard/CostDashboardPage.tsx"],"names":[],"mappings":"AAkIA,wBAAgB,iBAAiB,gCAoJhC"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { ArrowDown, ArrowUp, CalendarDays } from "lucide-react";
3
- import { DataTable, Card, CardHeader, CardTitle, CardDescription, CardAction, CardContent, Badge, Button, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, Popover, PopoverTrigger, PopoverContent, cn, } from "../../index.js";
3
+ import { DataTable, Card, CardHeader, CardTitle, CardDescription, CardAction, CardContent, Badge, Button, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, Popover, PopoverTrigger, PopoverContent, PageLayout, PageHeader, cn, } from "../../index.js";
4
4
  import { AppShell } from "../shared/AppShell.js";
5
5
  import { costNav, costBackNav, costBreadcrumb } from "../shared/cost-nav.js";
6
6
  import { definition, instances, totalLlmSpend, totalTokens, totalRuns, } from "./mock-data.js";
@@ -47,6 +47,10 @@ const instanceColumns = [
47
47
  ];
48
48
  export function CostDashboardPage() {
49
49
  // TODO: Replace with API call to GET /v1/definitions/{id}/versions/{v}/instances?range=...
50
- return (_jsx(AppShell, { sidebarLabel: "Agent Cost Monitor navigation", items: costNav, backNav: costBackNav, breadcrumb: costBreadcrumb, children: _jsxs("div", { className: "p-6 space-y-6", children: [_jsxs("div", { className: "flex items-start justify-between gap-4", children: [_jsx("div", { children: _jsx("h1", { className: "text-2xl font-semibold", children: "Process definitions" }) }), _jsxs("div", { className: "flex flex-col items-end gap-1", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsxs(Select, { defaultValue: definition.name, children: [_jsx(SelectTrigger, { "aria-label": "Process definition", className: "w-44", children: _jsx(SelectValue, {}) }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: "OrderFulfillment", children: "OrderFulfillment" }), _jsx(SelectItem, { value: "InvoiceApproval", children: "InvoiceApproval" }), _jsx(SelectItem, { value: "SupportTriage", children: "SupportTriage" })] })] }), _jsxs(Select, { defaultValue: String(definition.version), children: [_jsx(SelectTrigger, { "aria-label": "Process version", className: "w-24", children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { children: definition.versions.map((v) => (_jsxs(SelectItem, { value: String(v), children: ["v", v] }, v))) })] }), _jsxs(Popover, { children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs(Button, { variant: "secondary", children: [_jsx(CalendarDays, {}), "Last 7 days"] }) }), _jsxs(PopoverContent, { align: "end", className: "w-48 gap-1 p-1.5", children: [_jsx(Button, { variant: "ghost", className: "w-full justify-start", children: "Last 24 hours" }), _jsx(Button, { variant: "ghost", className: "w-full justify-start", children: "Last 7 days" }), _jsx(Button, { variant: "ghost", className: "w-full justify-start", children: "Last 30 days" }), _jsx(Button, { variant: "ghost", className: "w-full justify-start", children: "Custom range" })] })] })] }), _jsx("p", { className: "text-right text-xs text-neutral-foreground-subtle", children: "Compared to Jun 1\u20137" })] })] }), _jsxs("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4", children: [_jsx(Stat, { label: "LLM spend", value: `$${totalLlmSpend.toFixed(2)}`, trend: { value: "3%", direction: "up", sentiment: "neutral" } }), _jsx(Stat, { label: "Total tokens", value: totalTokens.toLocaleString(), trend: { value: "8%", direction: "up", sentiment: "neutral" } }), _jsx(Stat, { label: "Total runs", value: totalRuns.toLocaleString(), trend: { value: "5%", direction: "down", sentiment: "neutral" } }), _jsx(Stat, { label: "Avg cost per run", value: `$${(totalLlmSpend / totalRuns).toFixed(2)}`, trend: { value: "12%", direction: "up", sentiment: "negative" } })] }), _jsxs("div", { className: "grid grid-cols-1 gap-4 lg:grid-cols-3", children: [_jsxs(Card, { className: "lg:col-span-2", children: [_jsx(CardHeader, { children: _jsx(CardTitle, { children: "Token usage trend" }) }), _jsx(CardContent, { children: _jsx(TrendChart, {}) })] }), _jsxs(Card, { children: [_jsx(CardHeader, { children: _jsx(CardTitle, { children: "Cost breakdown" }) }), _jsx(CardContent, { children: _jsx(CostBreakdownChart, {}) })] })] }), _jsxs(Card, { children: [_jsx(CardHeader, { children: _jsx(CardTitle, { children: "Recent instances" }) }), _jsx(CardContent, { children: _jsx(DataTable, { columns: instanceColumns, data: instances, sorting: true, getRowId: (row) => row.key }) })] })] }) }));
50
+ return (_jsx(AppShell, { sidebarLabel: "Agent Cost Monitor navigation", items: costNav, backNav: costBackNav, breadcrumb: costBreadcrumb, children: _jsxs(PageLayout, { tabIndex: -1, width: "constrained", children: [_jsx(PageHeader, { title: "Process definitions", actions: _jsxs("div", { className: "flex flex-col items-end gap-1", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsxs(Select, { defaultValue: definition.name, children: [_jsx(SelectTrigger, { "aria-label": "Process definition", className: "w-44", children: _jsx(SelectValue, {}) }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: "OrderFulfillment", children: "OrderFulfillment" }), _jsx(SelectItem, { value: "InvoiceApproval", children: "InvoiceApproval" }), _jsx(SelectItem, { value: "SupportTriage", children: "SupportTriage" })] })] }), _jsxs(Select, { defaultValue: String(definition.version), children: [_jsx(SelectTrigger, { "aria-label": "Process version", className: "w-24", children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { children: definition.versions.map((v) => (_jsxs(SelectItem, { value: String(v), children: ["v", v] }, v))) })] }), _jsxs(Popover, { children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs(Button, { variant: "secondary", children: [_jsx(CalendarDays, {}), "Last 7 days"] }) }), _jsxs(PopoverContent, { align: "end", className: "w-48 gap-1 p-1.5", children: [_jsx(Button, { variant: "ghost", className: "w-full justify-start", children: "Last 24 hours" }), _jsx(Button, { variant: "ghost", className: "w-full justify-start", children: "Last 7 days" }), _jsx(Button, { variant: "ghost", className: "w-full justify-start", children: "Last 30 days" }), _jsx(Button, { variant: "ghost", className: "w-full justify-start", children: "Custom range" })] })] })] }), _jsx("p", { className: "text-right text-xs text-neutral-foreground-subtle", children: "Compared to Jun 1\u20137" })] }) }), _jsxs("div", { className: "mt-6 space-y-6", children: [_jsxs("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4", children: [_jsx(Stat, { label: "LLM spend", value: `$${totalLlmSpend.toFixed(2)}`, trend: { value: "3%", direction: "up", sentiment: "neutral" } }), _jsx(Stat, { label: "Total tokens", value: totalTokens.toLocaleString(), trend: { value: "8%", direction: "up", sentiment: "neutral" } }), _jsx(Stat, { label: "Total runs", value: totalRuns.toLocaleString(), trend: { value: "5%", direction: "down", sentiment: "neutral" } }), _jsx(Stat, { label: "Avg cost per run", value: `$${(totalLlmSpend / totalRuns).toFixed(2)}`, trend: {
51
+ value: "12%",
52
+ direction: "up",
53
+ sentiment: "negative",
54
+ } })] }), _jsxs("div", { className: "grid grid-cols-1 gap-4 lg:grid-cols-3", children: [_jsxs(Card, { className: "lg:col-span-2", children: [_jsx(CardHeader, { children: _jsx(CardTitle, { children: "Token usage trend" }) }), _jsx(CardContent, { children: _jsx(TrendChart, {}) })] }), _jsxs(Card, { children: [_jsx(CardHeader, { children: _jsx(CardTitle, { children: "Cost breakdown" }) }), _jsx(CardContent, { children: _jsx(CostBreakdownChart, {}) })] })] }), _jsxs(Card, { children: [_jsx(CardHeader, { children: _jsx(CardTitle, { children: "Recent instances" }) }), _jsx(CardContent, { children: _jsx(DataTable, { columns: instanceColumns, data: instances, sorting: true, getRowId: (row) => row.key }) })] })] })] }) }));
51
55
  }
52
56
  //# sourceMappingURL=CostDashboardPage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CostDashboardPage.js","sourceRoot":"","sources":["../../../../src/examples/cost-dashboard/CostDashboardPage.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CostDashboardPage.js","sourceRoot":"","sources":["../../../../src/examples/cost-dashboard/CostDashboardPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGhE,OAAO,EACL,SAAS,EACT,IAAI,EACJ,UAAU,EACV,SAAS,EACT,eAAe,EACf,UAAU,EACV,WAAW,EACX,KAAK,EACL,MAAM,EACN,MAAM,EACN,aAAa,EACb,WAAW,EACX,aAAa,EACb,UAAU,EACV,OAAO,EACP,cAAc,EACd,cAAc,EACd,UAAU,EACV,UAAU,EACV,EAAE,GACH,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EACL,UAAU,EACV,SAAS,EACT,aAAa,EACb,WAAW,EACX,SAAS,GAEV,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,4EAA4E;AAC5E,gFAAgF;AAChF,MAAM,WAAW,GAAG;IAClB,QAAQ,EAAE,0DAA0D;IACpE,QAAQ,EAAE,2DAA2D;IACrE,OAAO,EAAE,6DAA6D;CAC9D,CAAC;AAQX,SAAS,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAS;IACvD,MAAM,KAAK,GAAG,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACvD,OAAO,CACL,gBACE,SAAS,EAAE,EAAE,CACX,4FAA4F,EAC5F,WAAW,CAAC,SAAS,CAAC,CACvB,aAED,KAAC,KAAK,IAAC,SAAS,EAAC,QAAQ,wBAAe,EACvC,KAAK,IACD,CACR,CAAC;AACJ,CAAC;AAED,SAAS,IAAI,CAAC,EACZ,KAAK,EACL,KAAK,EACL,KAAK,GAKN;IACC,OAAO,CACL,KAAC,IAAI,cACH,MAAC,UAAU,eACT,KAAC,eAAe,cAAE,KAAK,GAAmB,EAG1C,eAAM,SAAS,EAAC,oDAAoD,YACjE,KAAK,GACD,EACN,KAAK,CAAC,CAAC,CAAC,CACP,KAAC,UAAU,cACT,KAAC,SAAS,OAAK,KAAK,GAAI,GACb,CACd,CAAC,CAAC,CAAC,IAAI,IACG,GACR,CACR,CAAC;AACJ,CAAC;AAED,MAAM,eAAe,GAA6B;IAChD;QACE,WAAW,EAAE,KAAK;QAClB,MAAM,EAAE,cAAc;KACvB;IACD;QACE,WAAW,EAAE,SAAS;QACtB,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE;KAC9C;IACD;QACE,WAAW,EAAE,OAAO;QACpB,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAChB,GAAG,CAAC,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAChC,KAAC,KAAK,IAAC,OAAO,EAAC,SAAS,uBAAe,CACxC,CAAC,CAAC,CAAC,CACF,KAAC,KAAK,IAAC,OAAO,EAAC,SAAS,0BAAkB,CAC3C;KACJ;IACD;QACE,WAAW,EAAE,SAAS;QACtB,MAAM,EAAE,UAAU;QAClB,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CACjB,gBAAM,SAAS,EAAC,+BAA+B,kBAC3C,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAC5B,CACR;KACF;IACD;QACE,WAAW,EAAE,SAAS;QACtB,MAAM,EAAE,SAAS;KAClB;CACF,CAAC;AAEF,MAAM,UAAU,iBAAiB;IAC/B,2FAA2F;IAC3F,OAAO,CACL,KAAC,QAAQ,IACP,YAAY,EAAC,+BAA+B,EAC5C,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,cAAc,YAE1B,MAAC,UAAU,IAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,EAAC,aAAa,aAC3C,KAAC,UAAU,IACT,KAAK,EAAC,qBAAqB,EAC3B,OAAO,EACL,eAAK,SAAS,EAAC,+BAA+B,aAC5C,eAAK,SAAS,EAAC,yBAAyB,aACtC,MAAC,MAAM,IAAC,YAAY,EAAE,UAAU,CAAC,IAAI,aACnC,KAAC,aAAa,kBACD,oBAAoB,EAC/B,SAAS,EAAC,MAAM,YAEhB,KAAC,WAAW,KAAG,GACD,EAChB,MAAC,aAAa,eACZ,KAAC,UAAU,IAAC,KAAK,EAAC,kBAAkB,iCAEvB,EACb,KAAC,UAAU,IAAC,KAAK,EAAC,iBAAiB,gCAEtB,EACb,KAAC,UAAU,IAAC,KAAK,EAAC,eAAe,8BAEpB,IACC,IACT,EACT,MAAC,MAAM,IAAC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,aAC9C,KAAC,aAAa,kBACD,iBAAiB,EAC5B,SAAS,EAAC,MAAM,YAEhB,KAAC,WAAW,KAAG,GACD,EAChB,KAAC,aAAa,cACX,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAC9B,MAAC,UAAU,IAAS,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,kBAChC,CAAC,KADY,CAAC,CAEL,CACd,CAAC,GACY,IACT,EACT,MAAC,OAAO,eACN,KAAC,cAAc,IAAC,OAAO,kBACrB,MAAC,MAAM,IAAC,OAAO,EAAC,WAAW,aACzB,KAAC,YAAY,KAAG,mBAET,GACM,EACjB,MAAC,cAAc,IAAC,KAAK,EAAC,KAAK,EAAC,SAAS,EAAC,kBAAkB,aACtD,KAAC,MAAM,IAAC,OAAO,EAAC,OAAO,EAAC,SAAS,EAAC,sBAAsB,8BAE/C,EACT,KAAC,MAAM,IAAC,OAAO,EAAC,OAAO,EAAC,SAAS,EAAC,sBAAsB,4BAE/C,EACT,KAAC,MAAM,IAAC,OAAO,EAAC,OAAO,EAAC,SAAS,EAAC,sBAAsB,6BAE/C,EACT,KAAC,MAAM,IAAC,OAAO,EAAC,OAAO,EAAC,SAAS,EAAC,sBAAsB,6BAE/C,IACM,IACT,IACN,EACN,YAAG,SAAS,EAAC,mDAAmD,yCAE5D,IACA,GAER,EAEF,eAAK,SAAS,EAAC,gBAAgB,aAI7B,eAAK,SAAS,EAAC,sDAAsD,aACnE,KAAC,IAAI,IACH,KAAK,EAAC,WAAW,EACjB,KAAK,EAAE,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EACrC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,GAC7D,EACF,KAAC,IAAI,IACH,KAAK,EAAC,cAAc,EACpB,KAAK,EAAE,WAAW,CAAC,cAAc,EAAE,EACnC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,GAC7D,EACF,KAAC,IAAI,IACH,KAAK,EAAC,YAAY,EAClB,KAAK,EAAE,SAAS,CAAC,cAAc,EAAE,EACjC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAC/D,EACF,KAAC,IAAI,IACH,KAAK,EAAC,kBAAkB,EACxB,KAAK,EAAE,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EACnD,KAAK,EAAE;wCACL,KAAK,EAAE,KAAK;wCACZ,SAAS,EAAE,IAAI;wCACf,SAAS,EAAE,UAAU;qCACtB,GACD,IACE,EAGN,eAAK,SAAS,EAAC,uCAAuC,aACpD,MAAC,IAAI,IAAC,SAAS,EAAC,eAAe,aAC7B,KAAC,UAAU,cACT,KAAC,SAAS,oCAA8B,GAC7B,EACb,KAAC,WAAW,cACV,KAAC,UAAU,KAAG,GACF,IACT,EACP,MAAC,IAAI,eACH,KAAC,UAAU,cACT,KAAC,SAAS,iCAA2B,GAC1B,EACb,KAAC,WAAW,cACV,KAAC,kBAAkB,KAAG,GACV,IACT,IACH,EAGN,MAAC,IAAI,eACH,KAAC,UAAU,cACT,KAAC,SAAS,mCAA6B,GAC5B,EACb,KAAC,WAAW,cACV,KAAC,SAAS,IACR,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE,SAAS,EACf,OAAO,QACP,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,GAC1B,GACU,IACT,IACH,IACK,GACJ,CACZ,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TrendChart.d.ts","sourceRoot":"","sources":["../../../../src/examples/cost-dashboard/TrendChart.tsx"],"names":[],"mappings":"AAyBA,wBAAgB,UAAU,gCAmDzB"}
1
+ {"version":3,"file":"TrendChart.d.ts","sourceRoot":"","sources":["../../../../src/examples/cost-dashboard/TrendChart.tsx"],"names":[],"mappings":"AA4BA,wBAAgB,UAAU,gCAsCzB"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer, } from "recharts";
2
+ import { LineChart, Line, XAxis, YAxis, CartesianGrid } from "recharts";
3
+ import { ChartContainer, ChartTooltip, ChartTooltipContent, ChartLegend, ChartLegendContent, } from "../../index.js";
3
4
  import { agents, trend } from "./mock-data.js";
4
- import { useChartColors } from "./useChartColors.js";
5
5
  // Input vs output tokens per period, summed across the definition's agents.
6
6
  // Coalesce missing series keys to 0 so a data shape change can't produce NaN.
7
7
  const data = trend.map((point) => ({
@@ -9,13 +9,11 @@ const data = trend.map((point) => ({
9
9
  input: agents.reduce((sum, a) => sum + (point[`${a.elementId}_in`] ?? 0), 0),
10
10
  output: agents.reduce((sum, a) => sum + (point[`${a.elementId}_out`] ?? 0), 0),
11
11
  }));
12
+ const chartConfig = {
13
+ input: { label: "Input tokens", color: "var(--chart-1)" },
14
+ output: { label: "Output tokens", color: "var(--chart-2)" },
15
+ };
12
16
  export function TrendChart() {
13
- const [ref, colors] = useChartColors();
14
- return (_jsx("div", { ref: ref, className: "h-72 w-full", children: colors.length >= 2 && (_jsx(ResponsiveContainer, { width: "100%", height: "100%", children: _jsxs(LineChart, { data: data, margin: { top: 8, right: 16, bottom: 0, left: -8 }, children: [_jsx(CartesianGrid, { strokeDasharray: "3 3", stroke: "var(--border)" }), _jsx(XAxis, { dataKey: "idx", tick: { fontSize: 11 }, stroke: "var(--neutral-foreground-subtle)" }), _jsx(YAxis, { tick: { fontSize: 11 }, stroke: "var(--neutral-foreground-subtle)" }), _jsx(Tooltip, { contentStyle: {
15
- background: "var(--popover)",
16
- border: "1px solid var(--border)",
17
- borderRadius: 8,
18
- fontSize: 12,
19
- } }), _jsx(Legend, { wrapperStyle: { fontSize: 11 } }), _jsx(Line, { type: "monotone", dataKey: "input", name: "Input tokens", stroke: colors[0], dot: false, strokeWidth: 2 }), _jsx(Line, { type: "monotone", dataKey: "output", name: "Output tokens", stroke: colors[1], dot: false, strokeWidth: 2 })] }) })) }));
17
+ return (_jsx(ChartContainer, { config: chartConfig, className: "h-72 w-full", children: _jsxs(LineChart, { data: data, margin: { top: 8, right: 16, bottom: 0, left: -8 }, children: [_jsx(CartesianGrid, { strokeDasharray: "3 3", stroke: "var(--border)" }), _jsx(XAxis, { dataKey: "idx", tick: { fontSize: 11 }, stroke: "var(--neutral-foreground-subtle)" }), _jsx(YAxis, { tick: { fontSize: 11 }, stroke: "var(--neutral-foreground-subtle)" }), _jsx(ChartTooltip, { content: _jsx(ChartTooltipContent, {}) }), _jsx(ChartLegend, { content: _jsx(ChartLegendContent, {}) }), _jsx(Line, { type: "monotone", dataKey: "input", stroke: "var(--color-input)", dot: false, strokeWidth: 2, isAnimationActive: false }), _jsx(Line, { type: "monotone", dataKey: "output", stroke: "var(--color-output)", dot: false, strokeWidth: 2, isAnimationActive: false })] }) }));
20
18
  }
21
19
  //# sourceMappingURL=TrendChart.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TrendChart.js","sourceRoot":"","sources":["../../../../src/examples/cost-dashboard/TrendChart.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,SAAS,EACT,IAAI,EACJ,KAAK,EACL,KAAK,EACL,aAAa,EACb,OAAO,EACP,MAAM,EACN,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,4EAA4E;AAC5E,8EAA8E;AAC9E,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACjC,GAAG,EAAE,KAAK,CAAC,GAAG;IACd,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5E,MAAM,EAAE,MAAM,CAAC,MAAM,CACnB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,CAAC,EACpD,CAAC,CACF;CACF,CAAC,CAAC,CAAC;AAEJ,MAAM,UAAU,UAAU;IACxB,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,cAAc,EAAE,CAAC;IACvC,OAAO,CACL,cAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAC,aAAa,YAEnC,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CACrB,KAAC,mBAAmB,IAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,YAC7C,MAAC,SAAS,IACR,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,aAElD,KAAC,aAAa,IAAC,eAAe,EAAC,KAAK,EAAC,MAAM,EAAC,eAAe,GAAG,EAC9D,KAAC,KAAK,IACJ,OAAO,EAAC,KAAK,EACb,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EACtB,MAAM,EAAC,kCAAkC,GACzC,EACF,KAAC,KAAK,IACJ,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EACtB,MAAM,EAAC,kCAAkC,GACzC,EACF,KAAC,OAAO,IACN,YAAY,EAAE;4BACZ,UAAU,EAAE,gBAAgB;4BAC5B,MAAM,EAAE,yBAAyB;4BACjC,YAAY,EAAE,CAAC;4BACf,QAAQ,EAAE,EAAE;yBACb,GACD,EACF,KAAC,MAAM,IAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAI,EAC1C,KAAC,IAAI,IACH,IAAI,EAAC,UAAU,EACf,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,cAAc,EACnB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EACjB,GAAG,EAAE,KAAK,EACV,WAAW,EAAE,CAAC,GACd,EACF,KAAC,IAAI,IACH,IAAI,EAAC,UAAU,EACf,OAAO,EAAC,QAAQ,EAChB,IAAI,EAAC,eAAe,EACpB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EACjB,GAAG,EAAE,KAAK,EACV,WAAW,EAAE,CAAC,GACd,IACQ,GACQ,CACvB,GACG,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"TrendChart.js","sourceRoot":"","sources":["../../../../src/examples/cost-dashboard/TrendChart.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAExE,OAAO,EACL,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,WAAW,EACX,kBAAkB,GAEnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAE5C,4EAA4E;AAC5E,8EAA8E;AAC9E,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACjC,GAAG,EAAE,KAAK,CAAC,GAAG;IACd,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5E,MAAM,EAAE,MAAM,CAAC,MAAM,CACnB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,CAAC,EACpD,CAAC,CACF;CACF,CAAC,CAAC,CAAC;AAEJ,MAAM,WAAW,GAAgB;IAC/B,KAAK,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE;IACzD,MAAM,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,gBAAgB,EAAE;CAC5D,CAAC;AAEF,MAAM,UAAU,UAAU;IACxB,OAAO,CACL,KAAC,cAAc,IAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAC,aAAa,YAC1D,MAAC,SAAS,IACR,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,aAElD,KAAC,aAAa,IAAC,eAAe,EAAC,KAAK,EAAC,MAAM,EAAC,eAAe,GAAG,EAC9D,KAAC,KAAK,IACJ,OAAO,EAAC,KAAK,EACb,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EACtB,MAAM,EAAC,kCAAkC,GACzC,EACF,KAAC,KAAK,IACJ,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EACtB,MAAM,EAAC,kCAAkC,GACzC,EACF,KAAC,YAAY,IAAC,OAAO,EAAE,KAAC,mBAAmB,KAAG,GAAI,EAClD,KAAC,WAAW,IAAC,OAAO,EAAE,KAAC,kBAAkB,KAAG,GAAI,EAChD,KAAC,IAAI,IACH,IAAI,EAAC,UAAU,EACf,OAAO,EAAC,OAAO,EACf,MAAM,EAAC,oBAAoB,EAC3B,GAAG,EAAE,KAAK,EACV,WAAW,EAAE,CAAC,EACd,iBAAiB,EAAE,KAAK,GACxB,EACF,KAAC,IAAI,IACH,IAAI,EAAC,UAAU,EACf,OAAO,EAAC,QAAQ,EAChB,MAAM,EAAC,qBAAqB,EAC5B,GAAG,EAAE,KAAK,EACV,WAAW,EAAE,CAAC,EACd,iBAAiB,EAAE,KAAK,GACxB,IACQ,GACG,CAClB,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectDetailPage.d.ts","sourceRoot":"","sources":["../../../../src/examples/project-detail/ProjectDetailPage.tsx"],"names":[],"mappings":"AA2HA,wBAAgB,iBAAiB,gCAkUhC"}
1
+ {"version":3,"file":"ProjectDetailPage.d.ts","sourceRoot":"","sources":["../../../../src/examples/project-detail/ProjectDetailPage.tsx"],"names":[],"mappings":"AA6HA,wBAAgB,iBAAiB,gCAgUhC"}