@camunda/design-system 0.1.0 → 0.2.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.
- package/dist/.storybook/CamundaLogo.d.ts +13 -0
- package/dist/.storybook/CamundaLogo.d.ts.map +1 -0
- package/dist/.storybook/CamundaLogo.js +14 -0
- package/dist/.storybook/CamundaLogo.js.map +1 -0
- package/dist/carbon-compat/filterable-multi-select.d.ts +39 -0
- package/dist/carbon-compat/filterable-multi-select.d.ts.map +1 -0
- package/dist/carbon-compat/filterable-multi-select.js +54 -0
- package/dist/carbon-compat/filterable-multi-select.js.map +1 -0
- package/dist/carbon-compat/form.d.ts +5 -0
- package/dist/carbon-compat/form.d.ts.map +1 -0
- package/dist/carbon-compat/form.js +6 -0
- package/dist/carbon-compat/form.js.map +1 -0
- package/dist/carbon-compat/index.d.ts +2 -0
- package/dist/carbon-compat/index.d.ts.map +1 -1
- package/dist/carbon-compat/index.js +2 -0
- package/dist/carbon-compat/index.js.map +1 -1
- package/dist/carbon-compat/multi-select.d.ts +37 -2
- package/dist/carbon-compat/multi-select.d.ts.map +1 -1
- package/dist/carbon-compat/multi-select.js +52 -2
- package/dist/carbon-compat/multi-select.js.map +1 -1
- package/dist/carbon-compat/select.d.ts +3 -3
- package/dist/carbon-compat/select.d.ts.map +1 -1
- package/dist/carbon-compat/select.js +47 -9
- package/dist/carbon-compat/select.js.map +1 -1
- package/dist/src/components/ui/checkbox.d.ts.map +1 -1
- package/dist/src/components/ui/checkbox.js +1 -1
- package/dist/src/components/ui/checkbox.js.map +1 -1
- package/dist/src/components/ui/data-table.d.ts.map +1 -1
- package/dist/src/components/ui/data-table.js +1 -1
- package/dist/src/components/ui/data-table.js.map +1 -1
- package/dist/src/components/ui/file-uploader.d.ts +39 -0
- package/dist/src/components/ui/file-uploader.d.ts.map +1 -0
- package/dist/src/components/ui/file-uploader.js +198 -0
- package/dist/src/components/ui/file-uploader.js.map +1 -0
- package/dist/src/components/ui/multi-select.d.ts +34 -0
- package/dist/src/components/ui/multi-select.d.ts.map +1 -0
- package/dist/src/components/ui/multi-select.js +88 -0
- package/dist/src/components/ui/multi-select.js.map +1 -0
- package/dist/src/components/ui/table.d.ts +1 -1
- package/dist/src/components/ui/table.d.ts.map +1 -1
- package/dist/src/components/ui/table.js +3 -3
- package/dist/src/components/ui/table.js.map +1 -1
- package/dist/src/examples/cost-dashboard/CostBreakdownChart.d.ts +2 -0
- package/dist/src/examples/cost-dashboard/CostBreakdownChart.d.ts.map +1 -0
- package/dist/src/examples/cost-dashboard/CostBreakdownChart.js +18 -0
- package/dist/src/examples/cost-dashboard/CostBreakdownChart.js.map +1 -0
- package/dist/src/examples/cost-dashboard/CostDashboardPage.d.ts +2 -0
- package/dist/src/examples/cost-dashboard/CostDashboardPage.d.ts.map +1 -0
- package/dist/src/examples/cost-dashboard/CostDashboardPage.js +53 -0
- package/dist/src/examples/cost-dashboard/CostDashboardPage.js.map +1 -0
- package/dist/src/examples/cost-dashboard/TrendChart.d.ts +2 -0
- package/dist/src/examples/cost-dashboard/TrendChart.d.ts.map +1 -0
- package/dist/src/examples/cost-dashboard/TrendChart.js +21 -0
- package/dist/src/examples/cost-dashboard/TrendChart.js.map +1 -0
- package/dist/src/examples/cost-dashboard/mock-data.d.ts +34 -0
- package/dist/src/examples/cost-dashboard/mock-data.d.ts.map +1 -0
- package/dist/src/examples/cost-dashboard/mock-data.js +120 -0
- package/dist/src/examples/cost-dashboard/mock-data.js.map +1 -0
- package/dist/src/examples/cost-dashboard/useChartColors.d.ts +10 -0
- package/dist/src/examples/cost-dashboard/useChartColors.d.ts.map +1 -0
- package/dist/src/examples/cost-dashboard/useChartColors.js +20 -0
- package/dist/src/examples/cost-dashboard/useChartColors.js.map +1 -0
- package/dist/src/examples/project-detail/ProjectDetailPage.d.ts +2 -0
- package/dist/src/examples/project-detail/ProjectDetailPage.d.ts.map +1 -0
- package/dist/src/examples/project-detail/ProjectDetailPage.js +68 -0
- package/dist/src/examples/project-detail/ProjectDetailPage.js.map +1 -0
- package/dist/src/examples/project-detail/mock-data.d.ts +38 -0
- package/dist/src/examples/project-detail/mock-data.d.ts.map +1 -0
- package/dist/src/examples/project-detail/mock-data.js +103 -0
- package/dist/src/examples/project-detail/mock-data.js.map +1 -0
- package/dist/src/examples/projects-list/ProjectsListPage.d.ts +4 -0
- package/dist/src/examples/projects-list/ProjectsListPage.d.ts.map +1 -0
- package/dist/src/examples/projects-list/ProjectsListPage.js +45 -0
- package/dist/src/examples/projects-list/ProjectsListPage.js.map +1 -0
- package/dist/src/examples/projects-list/mock-data.d.ts +10 -0
- package/dist/src/examples/projects-list/mock-data.d.ts.map +1 -0
- package/dist/src/examples/projects-list/mock-data.js +83 -0
- package/dist/src/examples/projects-list/mock-data.js.map +1 -0
- package/dist/src/examples/shared/AppShell.d.ts +13 -0
- package/dist/src/examples/shared/AppShell.d.ts.map +1 -0
- package/dist/src/examples/shared/AppShell.js +13 -0
- package/dist/src/examples/shared/AppShell.js.map +1 -0
- package/dist/src/examples/shared/console-nav.d.ts +5 -0
- package/dist/src/examples/shared/console-nav.d.ts.map +1 -0
- package/dist/src/examples/shared/console-nav.js +37 -0
- package/dist/src/examples/shared/console-nav.js.map +1 -0
- package/dist/src/examples/shared/cost-nav.d.ts +5 -0
- package/dist/src/examples/shared/cost-nav.d.ts.map +1 -0
- package/dist/src/examples/shared/cost-nav.js +47 -0
- package/dist/src/examples/shared/cost-nav.js.map +1 -0
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/specs/schema.d.ts +4 -0
- package/dist/src/specs/schema.d.ts.map +1 -1
- package/dist/styles.css +233 -0
- package/package.json +9 -1
- package/dist/carbon-compat/stories/breadcrumb-skeleton.stories.d.ts +0 -10
- package/dist/carbon-compat/stories/breadcrumb-skeleton.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/breadcrumb-skeleton.stories.js +0 -17
- package/dist/carbon-compat/stories/breadcrumb-skeleton.stories.js.map +0 -1
- package/dist/carbon-compat/stories/breadcrumb.stories.d.ts +0 -6
- package/dist/carbon-compat/stories/breadcrumb.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/breadcrumb.stories.js +0 -11
- package/dist/carbon-compat/stories/breadcrumb.stories.js.map +0 -1
- package/dist/carbon-compat/stories/button.stories.d.ts +0 -13
- package/dist/carbon-compat/stories/button.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/button.stories.js +0 -45
- package/dist/carbon-compat/stories/button.stories.js.map +0 -1
- package/dist/carbon-compat/stories/c3-cluster-tag.stories.d.ts +0 -11
- package/dist/carbon-compat/stories/c3-cluster-tag.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/c3-cluster-tag.stories.js +0 -12
- package/dist/carbon-compat/stories/c3-cluster-tag.stories.js.map +0 -1
- package/dist/carbon-compat/stories/c3-data-table.stories.d.ts +0 -32
- package/dist/carbon-compat/stories/c3-data-table.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/c3-data-table.stories.js +0 -244
- package/dist/carbon-compat/stories/c3-data-table.stories.js.map +0 -1
- package/dist/carbon-compat/stories/c3-responsive-stack.stories.d.ts +0 -9
- package/dist/carbon-compat/stories/c3-responsive-stack.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/c3-responsive-stack.stories.js +0 -28
- package/dist/carbon-compat/stories/c3-responsive-stack.stories.js.map +0 -1
- package/dist/carbon-compat/stories/checkbox-skeleton.stories.d.ts +0 -8
- package/dist/carbon-compat/stories/checkbox-skeleton.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/checkbox-skeleton.stories.js +0 -13
- package/dist/carbon-compat/stories/checkbox-skeleton.stories.js.map +0 -1
- package/dist/carbon-compat/stories/checkbox.stories.d.ts +0 -10
- package/dist/carbon-compat/stories/checkbox.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/checkbox.stories.js +0 -20
- package/dist/carbon-compat/stories/checkbox.stories.js.map +0 -1
- package/dist/carbon-compat/stories/code-snippet.stories.d.ts +0 -9
- package/dist/carbon-compat/stories/code-snippet.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/code-snippet.stories.js +0 -30
- package/dist/carbon-compat/stories/code-snippet.stories.js.map +0 -1
- package/dist/carbon-compat/stories/combo-box.stories.d.ts +0 -8
- package/dist/carbon-compat/stories/combo-box.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/combo-box.stories.js +0 -38
- package/dist/carbon-compat/stories/combo-box.stories.js.map +0 -1
- package/dist/carbon-compat/stories/content-switcher.stories.d.ts +0 -8
- package/dist/carbon-compat/stories/content-switcher.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/content-switcher.stories.js +0 -15
- package/dist/carbon-compat/stories/content-switcher.stories.js.map +0 -1
- package/dist/carbon-compat/stories/data-table-skeleton.stories.d.ts +0 -11
- package/dist/carbon-compat/stories/data-table-skeleton.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/data-table-skeleton.stories.js +0 -37
- package/dist/carbon-compat/stories/data-table-skeleton.stories.js.map +0 -1
- package/dist/carbon-compat/stories/data-table.stories.d.ts +0 -16
- package/dist/carbon-compat/stories/data-table.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/data-table.stories.js +0 -103
- package/dist/carbon-compat/stories/data-table.stories.js.map +0 -1
- package/dist/carbon-compat/stories/dropdown.stories.d.ts +0 -7
- package/dist/carbon-compat/stories/dropdown.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/dropdown.stories.js +0 -23
- package/dist/carbon-compat/stories/dropdown.stories.js.map +0 -1
- package/dist/carbon-compat/stories/icon-button.stories.d.ts +0 -9
- package/dist/carbon-compat/stories/icon-button.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/icon-button.stories.js +0 -29
- package/dist/carbon-compat/stories/icon-button.stories.js.map +0 -1
- package/dist/carbon-compat/stories/link.stories.d.ts +0 -11
- package/dist/carbon-compat/stories/link.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/link.stories.js +0 -24
- package/dist/carbon-compat/stories/link.stories.js.map +0 -1
- package/dist/carbon-compat/stories/loading.stories.d.ts +0 -9
- package/dist/carbon-compat/stories/loading.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/loading.stories.js +0 -22
- package/dist/carbon-compat/stories/loading.stories.js.map +0 -1
- package/dist/carbon-compat/stories/menu-button.stories.d.ts +0 -8
- package/dist/carbon-compat/stories/menu-button.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/menu-button.stories.js +0 -22
- package/dist/carbon-compat/stories/menu-button.stories.js.map +0 -1
- package/dist/carbon-compat/stories/modal.stories.d.ts +0 -8
- package/dist/carbon-compat/stories/modal.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/modal.stories.js +0 -28
- package/dist/carbon-compat/stories/modal.stories.js.map +0 -1
- package/dist/carbon-compat/stories/overflow-menu.stories.d.ts +0 -6
- package/dist/carbon-compat/stories/overflow-menu.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/overflow-menu.stories.js +0 -11
- package/dist/carbon-compat/stories/overflow-menu.stories.js.map +0 -1
- package/dist/carbon-compat/stories/popover.stories.d.ts +0 -6
- package/dist/carbon-compat/stories/popover.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/popover.stories.js +0 -16
- package/dist/carbon-compat/stories/popover.stories.js.map +0 -1
- package/dist/carbon-compat/stories/progress-bar.stories.d.ts +0 -11
- package/dist/carbon-compat/stories/progress-bar.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/progress-bar.stories.js +0 -23
- package/dist/carbon-compat/stories/progress-bar.stories.js.map +0 -1
- package/dist/carbon-compat/stories/radio-button.stories.d.ts +0 -11
- package/dist/carbon-compat/stories/radio-button.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/radio-button.stories.js +0 -25
- package/dist/carbon-compat/stories/radio-button.stories.js.map +0 -1
- package/dist/carbon-compat/stories/search.stories.d.ts +0 -12
- package/dist/carbon-compat/stories/search.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/search.stories.js +0 -31
- package/dist/carbon-compat/stories/search.stories.js.map +0 -1
- package/dist/carbon-compat/stories/select-skeleton.stories.d.ts +0 -8
- package/dist/carbon-compat/stories/select-skeleton.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/select-skeleton.stories.js +0 -13
- package/dist/carbon-compat/stories/select-skeleton.stories.js.map +0 -1
- package/dist/carbon-compat/stories/select.stories.d.ts +0 -7
- package/dist/carbon-compat/stories/select.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/select.stories.js +0 -18
- package/dist/carbon-compat/stories/select.stories.js.map +0 -1
- package/dist/carbon-compat/stories/skeleton-text.stories.d.ts +0 -10
- package/dist/carbon-compat/stories/skeleton-text.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/skeleton-text.stories.js +0 -26
- package/dist/carbon-compat/stories/skeleton-text.stories.js.map +0 -1
- package/dist/carbon-compat/stories/stack.stories.d.ts +0 -17
- package/dist/carbon-compat/stories/stack.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/stack.stories.js +0 -41
- package/dist/carbon-compat/stories/stack.stories.js.map +0 -1
- package/dist/carbon-compat/stories/structured-list-skeleton.stories.d.ts +0 -9
- package/dist/carbon-compat/stories/structured-list-skeleton.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/structured-list-skeleton.stories.js +0 -14
- package/dist/carbon-compat/stories/structured-list-skeleton.stories.js.map +0 -1
- package/dist/carbon-compat/stories/table.stories.d.ts +0 -6
- package/dist/carbon-compat/stories/table.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/table.stories.js +0 -16
- package/dist/carbon-compat/stories/table.stories.js.map +0 -1
- package/dist/carbon-compat/stories/tabs.stories.d.ts +0 -7
- package/dist/carbon-compat/stories/tabs.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/tabs.stories.js +0 -14
- package/dist/carbon-compat/stories/tabs.stories.js.map +0 -1
- package/dist/carbon-compat/stories/tag.stories.d.ts +0 -11
- package/dist/carbon-compat/stories/tag.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/tag.stories.js +0 -46
- package/dist/carbon-compat/stories/tag.stories.js.map +0 -1
- package/dist/carbon-compat/stories/text-area.stories.d.ts +0 -10
- package/dist/carbon-compat/stories/text-area.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/text-area.stories.js +0 -27
- package/dist/carbon-compat/stories/text-area.stories.js.map +0 -1
- package/dist/carbon-compat/stories/text-input.stories.d.ts +0 -11
- package/dist/carbon-compat/stories/text-input.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/text-input.stories.js +0 -30
- package/dist/carbon-compat/stories/text-input.stories.js.map +0 -1
- package/dist/carbon-compat/stories/tile.stories.d.ts +0 -11
- package/dist/carbon-compat/stories/tile.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/tile.stories.js +0 -22
- package/dist/carbon-compat/stories/tile.stories.js.map +0 -1
- package/dist/carbon-compat/stories/toggle.stories.d.ts +0 -11
- package/dist/carbon-compat/stories/toggle.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/toggle.stories.js +0 -23
- package/dist/carbon-compat/stories/toggle.stories.js.map +0 -1
- package/dist/carbon-compat/stories/tooltip.stories.d.ts +0 -7
- package/dist/carbon-compat/stories/tooltip.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/tooltip.stories.js +0 -15
- package/dist/carbon-compat/stories/tooltip.stories.js.map +0 -1
- package/dist/carbon-compat/stories/unordered-list.stories.d.ts +0 -9
- package/dist/carbon-compat/stories/unordered-list.stories.d.ts.map +0 -1
- package/dist/carbon-compat/stories/unordered-list.stories.js +0 -22
- package/dist/carbon-compat/stories/unordered-list.stories.js.map +0 -1
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer, } from "recharts";
|
|
3
|
+
import { agents, trend } from "./mock-data";
|
|
4
|
+
import { useChartColors } from "./useChartColors";
|
|
5
|
+
// Input vs output tokens per period, summed across the definition's agents.
|
|
6
|
+
// Coalesce missing series keys to 0 so a data shape change can't produce NaN.
|
|
7
|
+
const data = trend.map((point) => ({
|
|
8
|
+
idx: point.idx,
|
|
9
|
+
input: agents.reduce((sum, a) => sum + (point[`${a.elementId}_in`] ?? 0), 0),
|
|
10
|
+
output: agents.reduce((sum, a) => sum + (point[`${a.elementId}_out`] ?? 0), 0),
|
|
11
|
+
}));
|
|
12
|
+
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(--muted-foreground)" }), _jsx(YAxis, { tick: { fontSize: 11 }, stroke: "var(--muted-foreground)" }), _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 })] }) })) }));
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=TrendChart.js.map
|
|
@@ -0,0 +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,yBAAyB,GAChC,EACF,KAAC,KAAK,IAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,MAAM,EAAC,yBAAyB,GAAG,EAClE,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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export interface Agent {
|
|
2
|
+
elementId: string;
|
|
3
|
+
label: string;
|
|
4
|
+
runs: number;
|
|
5
|
+
inTokensMean: number;
|
|
6
|
+
outTokensMean: number;
|
|
7
|
+
inCostUsd: number;
|
|
8
|
+
outCostUsd: number;
|
|
9
|
+
valueCreatedUsd: number;
|
|
10
|
+
}
|
|
11
|
+
export declare const definition: {
|
|
12
|
+
name: string;
|
|
13
|
+
bpmnProcessId: string;
|
|
14
|
+
version: number;
|
|
15
|
+
versions: number[];
|
|
16
|
+
};
|
|
17
|
+
export declare const agents: Agent[];
|
|
18
|
+
export declare const totalLlmSpend: number;
|
|
19
|
+
export declare const totalTokens: number;
|
|
20
|
+
export declare const totalRuns: number;
|
|
21
|
+
export interface TrendPoint {
|
|
22
|
+
idx: number;
|
|
23
|
+
[series: string]: number;
|
|
24
|
+
}
|
|
25
|
+
export declare const trend: TrendPoint[];
|
|
26
|
+
export interface InstanceRow {
|
|
27
|
+
key: string;
|
|
28
|
+
version: number;
|
|
29
|
+
state: "ACTIVE" | "COMPLETED";
|
|
30
|
+
costUsd: number;
|
|
31
|
+
started: string;
|
|
32
|
+
}
|
|
33
|
+
export declare const instances: InstanceRow[];
|
|
34
|
+
//# sourceMappingURL=mock-data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-data.d.ts","sourceRoot":"","sources":["../../../../src/examples/cost-dashboard/mock-data.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,KAAK;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;CACzB;AACD,eAAO,MAAM,UAAU;;;;;CAKtB,CAAC;AACF,eAAO,MAAM,MAAM,EAAE,KAAK,EAyCzB,CAAC;AAEF,eAAO,MAAM,aAAa,QAEd,CAAC;AACb,eAAO,MAAM,WAAW,QAEvB,CAAC;AACF,eAAO,MAAM,SAAS,QAAiC,CAAC;AAExD,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AACD,eAAO,MAAM,KAAK,EAAE,UAAU,EAS5B,CAAC;AAEH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AACD,eAAO,MAAM,SAAS,EAAE,WAAW,EAyDlC,CAAC"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
export const definition = {
|
|
2
|
+
name: "OrderFulfillment",
|
|
3
|
+
bpmnProcessId: "order-fulfillment",
|
|
4
|
+
version: 3,
|
|
5
|
+
versions: [3, 2, 1],
|
|
6
|
+
};
|
|
7
|
+
export const agents = [
|
|
8
|
+
{
|
|
9
|
+
elementId: "ValidateOrder",
|
|
10
|
+
label: "Validate order",
|
|
11
|
+
runs: 156,
|
|
12
|
+
inTokensMean: 1200,
|
|
13
|
+
outTokensMean: 420,
|
|
14
|
+
inCostUsd: 28.1,
|
|
15
|
+
outCostUsd: 19.7,
|
|
16
|
+
valueCreatedUsd: 210,
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
elementId: "AssessRisk",
|
|
20
|
+
label: "Assess risk",
|
|
21
|
+
runs: 156,
|
|
22
|
+
inTokensMean: 1850,
|
|
23
|
+
outTokensMean: 610,
|
|
24
|
+
inCostUsd: 43.3,
|
|
25
|
+
outCostUsd: 28.6,
|
|
26
|
+
valueCreatedUsd: 320,
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
elementId: "ResolveAddress",
|
|
30
|
+
label: "Resolve address",
|
|
31
|
+
runs: 142,
|
|
32
|
+
inTokensMean: 640,
|
|
33
|
+
outTokensMean: 180,
|
|
34
|
+
inCostUsd: 13.6,
|
|
35
|
+
outCostUsd: 7.7,
|
|
36
|
+
valueCreatedUsd: 95,
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
elementId: "DraftReply",
|
|
40
|
+
label: "Draft customer reply",
|
|
41
|
+
runs: 138,
|
|
42
|
+
inTokensMean: 2100,
|
|
43
|
+
outTokensMean: 880,
|
|
44
|
+
inCostUsd: 47.5,
|
|
45
|
+
outCostUsd: 39.9,
|
|
46
|
+
valueCreatedUsd: 410,
|
|
47
|
+
},
|
|
48
|
+
];
|
|
49
|
+
const sum = (ns) => ns.reduce((a, b) => a + b, 0);
|
|
50
|
+
export const totalLlmSpend = +sum(agents.map((a) => a.inCostUsd + a.outCostUsd)).toFixed(2);
|
|
51
|
+
export const totalTokens = sum(agents.map((a) => (a.inTokensMean + a.outTokensMean) * a.runs));
|
|
52
|
+
export const totalRuns = sum(agents.map((a) => a.runs));
|
|
53
|
+
export const trend = Array.from({ length: 12 }, (_, i) => {
|
|
54
|
+
const wobble = (base, k) => Math.round(base * (1 + 0.12 * Math.sin((i + k) * 1.1)));
|
|
55
|
+
const p = { idx: i + 1 };
|
|
56
|
+
agents.forEach((a, k) => {
|
|
57
|
+
p[`${a.elementId}_in`] = wobble(a.inTokensMean, k);
|
|
58
|
+
p[`${a.elementId}_out`] = wobble(a.outTokensMean, k + 3);
|
|
59
|
+
});
|
|
60
|
+
return p;
|
|
61
|
+
});
|
|
62
|
+
export const instances = [
|
|
63
|
+
{
|
|
64
|
+
key: "2251799813700012",
|
|
65
|
+
version: 3,
|
|
66
|
+
state: "COMPLETED",
|
|
67
|
+
costUsd: 1.42,
|
|
68
|
+
started: "Jun 14, 2026 · 09:12",
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
key: "2251799813700018",
|
|
72
|
+
version: 3,
|
|
73
|
+
state: "COMPLETED",
|
|
74
|
+
costUsd: 1.05,
|
|
75
|
+
started: "Jun 14, 2026 · 09:31",
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
key: "2251799813700024",
|
|
79
|
+
version: 3,
|
|
80
|
+
state: "ACTIVE",
|
|
81
|
+
costUsd: 0.62,
|
|
82
|
+
started: "Jun 14, 2026 · 09:48",
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
key: "2251799813700031",
|
|
86
|
+
version: 2,
|
|
87
|
+
state: "COMPLETED",
|
|
88
|
+
costUsd: 1.88,
|
|
89
|
+
started: "Jun 14, 2026 · 10:02",
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
key: "2251799813700037",
|
|
93
|
+
version: 3,
|
|
94
|
+
state: "COMPLETED",
|
|
95
|
+
costUsd: 0.97,
|
|
96
|
+
started: "Jun 14, 2026 · 10:25",
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
key: "2251799813700044",
|
|
100
|
+
version: 3,
|
|
101
|
+
state: "ACTIVE",
|
|
102
|
+
costUsd: 0.41,
|
|
103
|
+
started: "Jun 14, 2026 · 10:51",
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
key: "2251799813700050",
|
|
107
|
+
version: 2,
|
|
108
|
+
state: "COMPLETED",
|
|
109
|
+
costUsd: 1.33,
|
|
110
|
+
started: "Jun 14, 2026 · 11:09",
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
key: "2251799813700057",
|
|
114
|
+
version: 3,
|
|
115
|
+
state: "COMPLETED",
|
|
116
|
+
costUsd: 1.16,
|
|
117
|
+
started: "Jun 14, 2026 · 11:42",
|
|
118
|
+
},
|
|
119
|
+
];
|
|
120
|
+
//# sourceMappingURL=mock-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-data.js","sourceRoot":"","sources":["../../../../src/examples/cost-dashboard/mock-data.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type RefObject } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Resolve --chart-1..5 to concrete colors from the nearest themed ancestor.
|
|
4
|
+
* recharts geometry (stroke/fill) needs literal color strings, not var(),
|
|
5
|
+
* and the tokens are scoped to .c4-ui, so we read the resolved values once.
|
|
6
|
+
* Note: read on mount only — a live light/dark toggle while mounted won't
|
|
7
|
+
* recolor the series until remount. Acceptable for a static showcase.
|
|
8
|
+
*/
|
|
9
|
+
export declare function useChartColors(): [RefObject<HTMLDivElement | null>, string[]];
|
|
10
|
+
//# sourceMappingURL=useChartColors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useChartColors.d.ts","sourceRoot":"","sources":["../../../../src/examples/cost-dashboard/useChartColors.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACpE;;;;;;GAMG;AACH,wBAAgB,cAAc,IAAI,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAW7E"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { useEffect, useRef, useState } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Resolve --chart-1..5 to concrete colors from the nearest themed ancestor.
|
|
4
|
+
* recharts geometry (stroke/fill) needs literal color strings, not var(),
|
|
5
|
+
* and the tokens are scoped to .c4-ui, so we read the resolved values once.
|
|
6
|
+
* Note: read on mount only — a live light/dark toggle while mounted won't
|
|
7
|
+
* recolor the series until remount. Acceptable for a static showcase.
|
|
8
|
+
*/
|
|
9
|
+
export function useChartColors() {
|
|
10
|
+
const ref = useRef(null);
|
|
11
|
+
const [colors, setColors] = useState([]);
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
if (!ref.current)
|
|
14
|
+
return;
|
|
15
|
+
const cs = getComputedStyle(ref.current);
|
|
16
|
+
setColors([1, 2, 3, 4, 5].map((n) => cs.getPropertyValue(`--chart-${n}`).trim()));
|
|
17
|
+
}, []);
|
|
18
|
+
return [ref, colors];
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=useChartColors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useChartColors.js","sourceRoot":"","sources":["../../../../src/examples/cost-dashboard/useChartColors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AACpE;;;;;;GAMG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACzC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAW,EAAE,CAAC,CAAC;IACnD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO;QACzB,MAAM,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACzC,SAAS,CACP,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CACvE,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectDetailPage.d.ts","sourceRoot":"","sources":["../../../../src/examples/project-detail/ProjectDetailPage.tsx"],"names":[],"mappings":"AA6IA,wBAAgB,iBAAiB,gCAkZhC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo, useState } from "react";
|
|
3
|
+
import { ArrowUpRight, Bot, BookOpen, CheckCircle2, ChevronDown, Cloud, Copy, Download, FolderInput, FolderOpen, GitBranch, LayoutList, Link2, MoreVertical, Pencil, Plus, Rocket, Search, Table2, Trash2, Workflow, } from "lucide-react";
|
|
4
|
+
import { Badge, Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, Card, CardContent, CardHeader, CardTitle, cn, Collapsible, CollapsibleContent, CollapsibleTrigger, DataTable, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, Input, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "../../index";
|
|
5
|
+
import { AppShell } from "../shared/AppShell";
|
|
6
|
+
import { consoleNav, consoleBreadcrumb } from "../shared/console-nav";
|
|
7
|
+
import { assets, deployment, files, git, project, } from "./mock-data";
|
|
8
|
+
// File-type icons mirror the shadcn reference's Create-menu / file-row icon set,
|
|
9
|
+
// rendered monochrome (text-muted-foreground) like the reference rather than tinted.
|
|
10
|
+
const fileIcon = {
|
|
11
|
+
bpmn: _jsx(Workflow, { className: "size-4 text-muted-foreground" }),
|
|
12
|
+
dmn: _jsx(Table2, { className: "size-4 text-muted-foreground" }),
|
|
13
|
+
form: _jsx(LayoutList, { className: "size-4 text-muted-foreground" }),
|
|
14
|
+
rpa: _jsx(Bot, { className: "size-4 text-muted-foreground" }),
|
|
15
|
+
folder: _jsx(FolderOpen, { className: "size-4 text-muted-foreground" }),
|
|
16
|
+
readme: _jsx(BookOpen, { className: "size-4 text-muted-foreground" }),
|
|
17
|
+
};
|
|
18
|
+
function AssetTag({ state }) {
|
|
19
|
+
if (state === "outdated")
|
|
20
|
+
return (
|
|
21
|
+
// Filled warning (amber bg + dark foreground) — amber as text on a
|
|
22
|
+
// transparent badge fails WCAG AA contrast.
|
|
23
|
+
_jsx(Badge, { className: "border-transparent bg-warning text-warning-foreground", children: "Outdated asset" }));
|
|
24
|
+
if (state === "deleted")
|
|
25
|
+
return _jsx(Badge, { variant: "secondary", children: "Deleted" });
|
|
26
|
+
return (_jsx(Badge, { variant: "outline", className: "text-success", children: "Catalog asset" }));
|
|
27
|
+
}
|
|
28
|
+
const fileColumns = [
|
|
29
|
+
{
|
|
30
|
+
accessorKey: "name",
|
|
31
|
+
header: "Name",
|
|
32
|
+
cell: ({ row }) => (_jsxs("span", { className: "flex items-center gap-2 font-medium", children: [fileIcon[row.original.type], row.original.name, row.original.asset ? _jsx(AssetTag, { state: row.original.asset }) : null] })),
|
|
33
|
+
},
|
|
34
|
+
{ accessorKey: "lastModified", header: "Last modified" },
|
|
35
|
+
{ accessorKey: "modifiedBy", header: "Modified by" },
|
|
36
|
+
{ accessorKey: "createdBy", header: "Created by" },
|
|
37
|
+
];
|
|
38
|
+
// TODO: Replace with API calls to the relevant /v2/projects/{projectId}/files endpoints
|
|
39
|
+
const fileRowActions = [
|
|
40
|
+
{ id: "rename", label: "Rename", icon: _jsx(Pencil, {}), onClick: () => { } },
|
|
41
|
+
{ id: "download", label: "Download", icon: _jsx(Download, {}), onClick: () => { } },
|
|
42
|
+
{ id: "duplicate", label: "Duplicate", icon: _jsx(Copy, {}), onClick: () => { } },
|
|
43
|
+
{ id: "move", label: "Move", icon: _jsx(FolderInput, {}), onClick: () => { } },
|
|
44
|
+
{
|
|
45
|
+
id: "delete",
|
|
46
|
+
label: "Delete",
|
|
47
|
+
variant: "destructive",
|
|
48
|
+
separatorBefore: true,
|
|
49
|
+
icon: _jsx(Trash2, {}),
|
|
50
|
+
onClick: () => { },
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
const assetsByGroup = assets.reduce((acc, asset) => {
|
|
54
|
+
(acc[asset.group] ??= []).push(asset);
|
|
55
|
+
return acc;
|
|
56
|
+
}, {});
|
|
57
|
+
export function ProjectDetailPage() {
|
|
58
|
+
// TODO: Replace with API call to GET /v2/projects/{projectId}/files (server-side filtering)
|
|
59
|
+
const [fileQuery, setFileQuery] = useState("");
|
|
60
|
+
const filteredFiles = useMemo(() => {
|
|
61
|
+
const query = fileQuery.trim().toLowerCase();
|
|
62
|
+
if (!query)
|
|
63
|
+
return files;
|
|
64
|
+
return files.filter((file) => file.name.toLowerCase().includes(query));
|
|
65
|
+
}, [fileQuery]);
|
|
66
|
+
return (_jsx(AppShell, { appName: "Console", sidebarLabel: "Workspace navigation", items: consoleNav, breadcrumb: consoleBreadcrumb, children: _jsxs("div", { className: "flex flex-col gap-6 p-6", children: [_jsx(Breadcrumb, { children: _jsxs(BreadcrumbList, { children: [_jsx(BreadcrumbItem, { children: _jsx(BreadcrumbLink, { href: "#", children: "Projects" }) }), _jsx(BreadcrumbSeparator, {}), _jsx(BreadcrumbItem, { children: _jsx(BreadcrumbPage, { children: project.name }) })] }) }), _jsxs("div", { className: "flex flex-wrap items-start justify-between gap-3", children: [_jsxs("div", { className: "flex items-center gap-1", children: [_jsx("h1", { className: "text-2xl font-semibold", children: project.name }), _jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(Button, { type: "button", variant: "ghost", size: "icon", "aria-label": "Project actions", children: _jsx(MoreVertical, {}) }) }), _jsxs(DropdownMenuContent, { align: "start", children: [_jsx(DropdownMenuItem, { onClick: () => { }, children: "Rename" }), _jsx(DropdownMenuItem, { onClick: () => { }, children: "Move" }), _jsx(DropdownMenuItem, { onClick: () => { }, children: "Duplicate" }), _jsx(DropdownMenuSeparator, {}), _jsx(DropdownMenuItem, { variant: "destructive", onClick: () => { }, children: "Delete" })] })] })] }), _jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsxs(Select, { defaultValue: project.version, children: [_jsx(SelectTrigger, { size: "sm", className: "w-32", "aria-label": "Version", children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { children: project.versions.map((version) => (_jsx(SelectItem, { value: version, children: version }, version))) })] }), _jsxs("div", { className: "inline-flex", children: [_jsx(Button, { type: "button", className: "rounded-r-none", onClick: () => { }, children: "Deploy & run" }), _jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(Button, { type: "button", size: "icon", "aria-label": "Deploy options", className: "-ml-px rounded-l-none", children: _jsx(ChevronDown, {}) }) }), _jsxs(DropdownMenuContent, { align: "end", children: [_jsx(DropdownMenuItem, { onClick: () => { }, children: "Deploy latest changes" }), _jsx(DropdownMenuItem, { onClick: () => { }, children: "Deploy a previous version" })] })] })] })] })] }), _jsxs("div", { className: "flex flex-col gap-6 lg:flex-row", children: [_jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-6", children: [_jsxs("div", { className: "overflow-hidden rounded-lg border border-border", children: [_jsxs("div", { className: "flex flex-wrap items-center justify-between gap-3 border-b border-border bg-card p-3", children: [_jsxs("div", { className: "relative w-64", children: [_jsx(Search, { "aria-hidden": "true", className: "absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground" }), _jsx(Input, { type: "search", role: "searchbox", "aria-label": "Filter files by name", placeholder: "Filter files\u2026", className: "pl-9", value: fileQuery, onChange: (event) => setFileQuery(event.target.value) })] }), _jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsxs(Button, { type: "button", variant: "outline", children: [_jsx(Plus, {}), "Create"] }) }), _jsxs(DropdownMenuContent, { align: "end", children: [_jsxs(DropdownMenuItem, { onClick: () => { }, children: [_jsx(FolderOpen, {}), "Folder"] }), _jsxs(DropdownMenuItem, { onClick: () => { }, children: [_jsx(Workflow, {}), "BPMN diagram"] }), _jsxs(DropdownMenuItem, { onClick: () => { }, children: [_jsx(Table2, {}), "DMN table"] }), _jsxs(DropdownMenuItem, { onClick: () => { }, children: [_jsx(LayoutList, {}), "Form"] }), _jsxs(DropdownMenuItem, { onClick: () => { }, children: [_jsx(Bot, {}), "RPA script"] }), _jsxs(DropdownMenuItem, { onClick: () => { }, children: [_jsx(BookOpen, {}), "README"] }), _jsx(DropdownMenuSeparator, {}), _jsxs(DropdownMenuItem, { onClick: () => { }, children: [_jsx(Plus, {}), "Upload file"] })] })] })] }), _jsx(DataTable, { columns: fileColumns, data: filteredFiles, rowActions: fileRowActions, getRowId: (row) => row.id, size: "md", emptyState: "No files match your filter.", className: cn("gap-0", "[&_[data-slot=table-container]]:rounded-none", "[&_[data-slot=table-container]]:border-0", "[&_[data-slot=table-container]]:shadow-none") })] }), _jsx(Card, { children: _jsxs(Collapsible, { defaultOpen: true, children: [_jsxs(CardHeader, { className: "flex flex-row items-center justify-between", children: [_jsx(CardTitle, { children: "README.md" }), _jsx(CollapsibleTrigger, { asChild: true, children: _jsx(Button, { type: "button", variant: "ghost", size: "icon", "aria-label": "Toggle readme", children: _jsx(ChevronDown, {}) }) })] }), _jsx(CollapsibleContent, { children: _jsxs(CardContent, { className: "flex flex-col gap-3 text-sm leading-relaxed", children: [_jsx("h3", { className: "text-base font-semibold", children: "Payment Processing" }), _jsx("p", { className: "text-muted-foreground", children: "End-to-end payment orchestration for the Camundanzia checkout flow. Handles card authorization, risk scoring, and reconciliation across the payment providers we integrate with." }), _jsx("p", { className: "font-medium", children: "This project contains:" }), _jsxs("ul", { className: "list-disc space-y-1 pl-5 text-muted-foreground", children: [_jsxs("li", { children: [_jsx("span", { className: "font-mono", children: "order-payment.bpmn" }), " \u2014 the main checkout orchestration process."] }), _jsxs("li", { children: [_jsx("span", { className: "font-mono", children: "risk-scoring.dmn" }), " \u2014 decision table for fraud and risk evaluation."] }), _jsxs("li", { children: [_jsx("span", { className: "font-mono", children: "refund-request.form" }), " \u2014 customer-facing refund intake form."] }), _jsxs("li", { children: [_jsx("span", { className: "font-mono", children: "reconcile.rpa" }), " \u2014 nightly reconciliation script against the ledger."] })] }), _jsxs("p", { className: "text-muted-foreground", children: ["Deploy to the", " ", _jsx("span", { className: "font-medium", children: "eu-1-prod" }), " cluster only after the staging smoke tests pass. See the runbook in the Payments workspace wiki before promoting a new version."] })] }) })] }) })] }), _jsxs("div", { className: "flex w-full shrink-0 flex-col gap-6 lg:w-80", children: [_jsxs(Card, { children: [_jsx(CardHeader, { children: _jsxs(CardTitle, { className: "flex items-center gap-2", children: [_jsx(Rocket, { className: "size-4 text-muted-foreground" }), "Latest deployment"] }) }), _jsx(CardContent, { children: _jsxs("button", { type: "button", "aria-label": `Open ${deployment.cluster} in Operate`, onClick: () => { }, className: "flex w-full items-center gap-3 rounded-md bg-muted/50 p-3 text-left transition-colors hover:bg-muted focus-visible:bg-muted focus-visible:outline-none", children: [_jsx(Cloud, { className: "size-5 shrink-0 text-muted-foreground" }), _jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-1.5", children: [_jsx("span", { className: "truncate text-sm font-medium", children: deployment.cluster }), _jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsx(Badge, { variant: "secondary", children: deployment.plan }), _jsx("span", { className: "text-xs text-muted-foreground", children: deployment.deployedAt })] })] }), _jsx(ArrowUpRight, { className: "size-3.5 shrink-0 text-muted-foreground" })] }) })] }), _jsxs(Card, { children: [_jsx(CardHeader, { children: _jsxs(CardTitle, { className: "flex items-center gap-2", children: [_jsx(GitBranch, { className: "size-4 text-muted-foreground" }), "Git repository"] }) }), _jsxs(CardContent, { className: "flex flex-col gap-4", children: [_jsxs("div", { className: "flex items-center gap-3 rounded-md bg-muted/50 p-3", children: [_jsx(GitBranch, { className: "size-5 shrink-0 text-muted-foreground" }), _jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [_jsx("span", { className: "truncate text-sm font-medium", children: git.repo }), _jsxs("span", { className: "text-xs text-muted-foreground", children: [git.branch, " branch"] })] }), git.synced ? (_jsx(CheckCircle2, { "aria-label": "Synced", className: "size-4 shrink-0 text-success" })) : null] }), _jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsx(Button, { type: "button", variant: "outline", size: "sm", onClick: () => { }, children: "Sync" }), _jsx(Button, { type: "button", variant: "ghost", size: "sm", onClick: () => { }, children: "Configure" })] })] })] }), _jsxs(Card, { children: [_jsx(CardHeader, { children: _jsxs(CardTitle, { className: "flex items-center gap-2", children: [_jsx(Link2, { className: "size-4 text-muted-foreground" }), "Assets"] }) }), _jsx(CardContent, { className: "flex flex-col gap-6", children: Object.keys(assetsByGroup).map((group) => (_jsxs("div", { className: "flex flex-col gap-2.5", children: [_jsx("h4", { className: "text-xs font-semibold text-muted-foreground", children: group }), _jsx("div", { className: "flex flex-col gap-2", children: assetsByGroup[group].map((asset) => (_jsxs("div", { className: "flex flex-col gap-2 rounded-md bg-muted/50 p-3", children: [_jsx("a", { href: "#", className: "text-sm font-medium text-info hover:underline", children: asset.name }), _jsxs("div", { className: "flex flex-wrap items-center gap-x-5 gap-y-2 text-xs text-muted-foreground", children: [_jsx(AssetTag, { state: asset.state }), _jsxs("span", { children: ["Version", " ", _jsxs("span", { className: "font-medium tabular-nums text-foreground", children: ["v", asset.version] })] })] }), _jsxs("div", { className: "flex flex-wrap items-center gap-1.5 text-xs text-muted-foreground", children: [_jsx("span", { children: "Used in" }), asset.usedIn.map((file, index) => (_jsxs("span", { children: [_jsx("code", { className: "rounded bg-muted px-1.5 py-0.5 font-mono text-foreground", children: file }), index < asset.usedIn.length - 1 ? "," : ""] }, file)))] })] }, asset.id))) })] }, group))) })] })] })] })] }) }));
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=ProjectDetailPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectDetailPage.js","sourceRoot":"","sources":["../../../../src/examples/project-detail/ProjectDetailPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export type FileType = "bpmn" | "dmn" | "form" | "rpa" | "folder" | "readme";
|
|
2
|
+
export type AssetState = "available" | "outdated" | "deleted";
|
|
3
|
+
export interface ProjectFile {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
type: FileType;
|
|
7
|
+
asset?: AssetState;
|
|
8
|
+
lastModified: string;
|
|
9
|
+
modifiedBy: string;
|
|
10
|
+
createdBy: string;
|
|
11
|
+
}
|
|
12
|
+
export interface LinkedAsset {
|
|
13
|
+
id: string;
|
|
14
|
+
name: string;
|
|
15
|
+
group: "Catalog" | "Shared resource";
|
|
16
|
+
state: AssetState;
|
|
17
|
+
version: string;
|
|
18
|
+
usedIn: string[];
|
|
19
|
+
}
|
|
20
|
+
export declare const project: {
|
|
21
|
+
id: string;
|
|
22
|
+
name: string;
|
|
23
|
+
version: string;
|
|
24
|
+
versions: string[];
|
|
25
|
+
};
|
|
26
|
+
export declare const files: ProjectFile[];
|
|
27
|
+
export declare const deployment: {
|
|
28
|
+
cluster: string;
|
|
29
|
+
plan: string;
|
|
30
|
+
deployedAt: string;
|
|
31
|
+
};
|
|
32
|
+
export declare const git: {
|
|
33
|
+
repo: string;
|
|
34
|
+
branch: string;
|
|
35
|
+
synced: boolean;
|
|
36
|
+
};
|
|
37
|
+
export declare const assets: LinkedAsset[];
|
|
38
|
+
//# sourceMappingURL=mock-data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-data.d.ts","sourceRoot":"","sources":["../../../../src/examples/project-detail/mock-data.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAC7E,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,CAAC;AAC9D,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AACD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,GAAG,iBAAiB,CAAC;IACrC,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AACD,eAAO,MAAM,OAAO;;;;;CAKnB,CAAC;AACF,eAAO,MAAM,KAAK,EAAE,WAAW,EA2D9B,CAAC;AACF,eAAO,MAAM,UAAU;;;;CAItB,CAAC;AACF,eAAO,MAAM,GAAG;;;;CAIf,CAAC;AACF,eAAO,MAAM,MAAM,EAAE,WAAW,EAyB/B,CAAC"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
export const project = {
|
|
2
|
+
id: "project-9",
|
|
3
|
+
name: "Payment Processing",
|
|
4
|
+
version: "v2.1.0",
|
|
5
|
+
versions: ["v2.1.0", "v2.0.3", "v1.9.0"],
|
|
6
|
+
};
|
|
7
|
+
export const files = [
|
|
8
|
+
{
|
|
9
|
+
id: "f1",
|
|
10
|
+
name: "order-payment.bpmn",
|
|
11
|
+
type: "bpmn",
|
|
12
|
+
asset: "available",
|
|
13
|
+
lastModified: "2 days ago",
|
|
14
|
+
modifiedBy: "Anita Schmidt",
|
|
15
|
+
createdBy: "Anita Schmidt",
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
id: "f2",
|
|
19
|
+
name: "risk-scoring.dmn",
|
|
20
|
+
type: "dmn",
|
|
21
|
+
asset: "outdated",
|
|
22
|
+
lastModified: "5 days ago",
|
|
23
|
+
modifiedBy: "Jonas Weber",
|
|
24
|
+
createdBy: "Jonas Weber",
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
id: "f3",
|
|
28
|
+
name: "charge-card.bpmn",
|
|
29
|
+
type: "bpmn",
|
|
30
|
+
lastModified: "1 week ago",
|
|
31
|
+
modifiedBy: "Anita Schmidt",
|
|
32
|
+
createdBy: "Marco Rossi",
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
id: "f4",
|
|
36
|
+
name: "refund-request.form",
|
|
37
|
+
type: "form",
|
|
38
|
+
lastModified: "1 week ago",
|
|
39
|
+
modifiedBy: "Priya Nair",
|
|
40
|
+
createdBy: "Priya Nair",
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
id: "f5",
|
|
44
|
+
name: "reconcile.rpa",
|
|
45
|
+
type: "rpa",
|
|
46
|
+
lastModified: "2 weeks ago",
|
|
47
|
+
modifiedBy: "Marco Rossi",
|
|
48
|
+
createdBy: "Marco Rossi",
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
id: "f6",
|
|
52
|
+
name: "shared-connectors",
|
|
53
|
+
type: "folder",
|
|
54
|
+
lastModified: "3 weeks ago",
|
|
55
|
+
modifiedBy: "Jonas Weber",
|
|
56
|
+
createdBy: "Jonas Weber",
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
id: "f7",
|
|
60
|
+
name: "README.md",
|
|
61
|
+
type: "readme",
|
|
62
|
+
lastModified: "3 weeks ago",
|
|
63
|
+
modifiedBy: "Anita Schmidt",
|
|
64
|
+
createdBy: "Anita Schmidt",
|
|
65
|
+
},
|
|
66
|
+
];
|
|
67
|
+
export const deployment = {
|
|
68
|
+
cluster: "eu-1-prod",
|
|
69
|
+
plan: "Production",
|
|
70
|
+
deployedAt: "Jun 14, 2026 · 09:42",
|
|
71
|
+
};
|
|
72
|
+
export const git = {
|
|
73
|
+
repo: "camundanzia/payments-project",
|
|
74
|
+
branch: "main",
|
|
75
|
+
synced: true,
|
|
76
|
+
};
|
|
77
|
+
export const assets = [
|
|
78
|
+
{
|
|
79
|
+
id: "a1",
|
|
80
|
+
name: "Payment Gateway Connector",
|
|
81
|
+
group: "Catalog",
|
|
82
|
+
state: "available",
|
|
83
|
+
version: "3.2.0",
|
|
84
|
+
usedIn: ["order-payment.bpmn", "charge-card.bpmn"],
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
id: "a2",
|
|
88
|
+
name: "Risk Scoring Model",
|
|
89
|
+
group: "Catalog",
|
|
90
|
+
state: "outdated",
|
|
91
|
+
version: "1.4.0",
|
|
92
|
+
usedIn: ["risk-scoring.dmn"],
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
id: "a3",
|
|
96
|
+
name: "Notification Templates",
|
|
97
|
+
group: "Shared resource",
|
|
98
|
+
state: "available",
|
|
99
|
+
version: "2.0.1",
|
|
100
|
+
usedIn: ["refund-request.form"],
|
|
101
|
+
},
|
|
102
|
+
];
|
|
103
|
+
//# sourceMappingURL=mock-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-data.js","sourceRoot":"","sources":["../../../../src/examples/project-detail/mock-data.ts"],"names":[],"mappings":"AAoBA,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,EAAE,EAAE,WAAW;IACf,IAAI,EAAE,oBAAoB;IAC1B,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;CACzC,CAAC;AACF,MAAM,CAAC,MAAM,KAAK,GAAkB;IAClC;QACE,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,WAAW;QAClB,YAAY,EAAE,YAAY;QAC1B,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,eAAe;KAC3B;IACD;QACE,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,UAAU;QACjB,YAAY,EAAE,YAAY;QAC1B,UAAU,EAAE,aAAa;QACzB,SAAS,EAAE,aAAa;KACzB;IACD;QACE,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,MAAM;QACZ,YAAY,EAAE,YAAY;QAC1B,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,aAAa;KACzB;IACD;QACE,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,MAAM;QACZ,YAAY,EAAE,YAAY;QAC1B,UAAU,EAAE,YAAY;QACxB,SAAS,EAAE,YAAY;KACxB;IACD;QACE,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,KAAK;QACX,YAAY,EAAE,aAAa;QAC3B,UAAU,EAAE,aAAa;QACzB,SAAS,EAAE,aAAa;KACzB;IACD;QACE,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,mBAAmB;QACzB,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,aAAa;QAC3B,UAAU,EAAE,aAAa;QACzB,SAAS,EAAE,aAAa;KACzB;IACD;QACE,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,aAAa;QAC3B,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,eAAe;KAC3B;CACF,CAAC;AACF,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,OAAO,EAAE,WAAW;IACpB,IAAI,EAAE,YAAY;IAClB,UAAU,EAAE,sBAAsB;CACnC,CAAC;AACF,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,IAAI,EAAE,8BAA8B;IACpC,MAAM,EAAE,MAAM;IACd,MAAM,EAAE,IAAI;CACb,CAAC;AACF,MAAM,CAAC,MAAM,MAAM,GAAkB;IACnC;QACE,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,2BAA2B;QACjC,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,OAAO;QAChB,MAAM,EAAE,CAAC,oBAAoB,EAAE,kBAAkB,CAAC;KACnD;IACD;QACE,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,oBAAoB;QAC1B,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,UAAU;QACjB,OAAO,EAAE,OAAO;QAChB,MAAM,EAAE,CAAC,kBAAkB,CAAC;KAC7B;IACD;QACE,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,wBAAwB;QAC9B,KAAK,EAAE,iBAAiB;QACxB,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,OAAO;QAChB,MAAM,EAAE,CAAC,qBAAqB,CAAC;KAChC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectsListPage.d.ts","sourceRoot":"","sources":["../../../../src/examples/projects-list/ProjectsListPage.tsx"],"names":[],"mappings":"AAiDA,wBAAgB,gBAAgB,CAAC,EAAE,KAAa,EAAE,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,+BAwFtE"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
import { Copy, FolderInput, FolderKanban, Pencil, Plus, Rocket, Search, Trash2, } from "lucide-react";
|
|
4
|
+
import { Button, Card, CardContent, DataTable, Input } from "../../index";
|
|
5
|
+
import { AppShell } from "../shared/AppShell";
|
|
6
|
+
import { consoleNav, consoleBreadcrumb } from "../shared/console-nav";
|
|
7
|
+
import { projects } from "./mock-data";
|
|
8
|
+
const columns = [
|
|
9
|
+
{
|
|
10
|
+
accessorKey: "name",
|
|
11
|
+
header: "Name",
|
|
12
|
+
cell: ({ row }) => (_jsxs("span", { className: "flex items-center gap-2 font-medium", children: [_jsx(FolderKanban, { className: "size-4 text-muted-foreground" }), row.original.name] })),
|
|
13
|
+
},
|
|
14
|
+
{ accessorKey: "fileCount", header: "Files" },
|
|
15
|
+
{ accessorKey: "lastModified", header: "Last modified" },
|
|
16
|
+
{ accessorKey: "createdBy", header: "Created by" },
|
|
17
|
+
];
|
|
18
|
+
// TODO: Replace with API calls to the relevant /v2/workspaces/{workspaceId}/projects endpoints
|
|
19
|
+
const rowActions = [
|
|
20
|
+
{ id: "rename", label: "Rename", icon: _jsx(Pencil, {}), onClick: () => { } },
|
|
21
|
+
{ id: "move", label: "Move", icon: _jsx(FolderInput, {}), onClick: () => { } },
|
|
22
|
+
{ id: "duplicate", label: "Duplicate", icon: _jsx(Copy, {}), onClick: () => { } },
|
|
23
|
+
{
|
|
24
|
+
id: "delete",
|
|
25
|
+
label: "Delete",
|
|
26
|
+
variant: "destructive",
|
|
27
|
+
separatorBefore: true,
|
|
28
|
+
icon: _jsx(Trash2, {}),
|
|
29
|
+
onClick: () => { },
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
export function ProjectsListPage({ empty = false }) {
|
|
33
|
+
const [query, setQuery] = useState("");
|
|
34
|
+
const data = empty
|
|
35
|
+
? []
|
|
36
|
+
: projects.filter((project) => project.name.toLowerCase().includes(query.toLowerCase()));
|
|
37
|
+
const emptyState = (_jsx(Card, { className: "mx-auto max-w-md border-dashed", children: _jsxs(CardContent, { className: "flex flex-col items-center gap-4 py-10 text-center", children: [_jsx("span", { className: "flex size-12 items-center justify-center rounded-full bg-muted", children: _jsx(Rocket, { className: "size-6 text-muted-foreground" }) }), _jsxs("div", { className: "flex flex-col gap-1", children: [_jsx("h2", { className: "text-base font-semibold", children: "No projects yet" }), _jsx("p", { className: "text-sm text-muted-foreground", children: "Projects organize your BPMN diagrams, DMN decisions, and forms. Create your first one to get started." })] }), _jsxs(Button, { type: "button", onClick: () => { }, children: [_jsx(Plus, {}), "New project"] })] }) }));
|
|
38
|
+
return (_jsx(AppShell, { appName: "Console", sidebarLabel: "Workspace navigation", items: consoleNav, breadcrumb: consoleBreadcrumb, children: _jsxs("div", { className: "p-6", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("div", { className: "flex flex-col gap-1", children: [_jsx("h1", { className: "text-2xl font-semibold", children: "Projects" }), _jsxs("p", { className: "text-sm text-muted-foreground", children: [empty ? 0 : projects.length, " projects"] })] }), _jsxs(Button, { type: "button", onClick: () => { }, children: [_jsx(Plus, {}), "New project"] })] }), empty ? (
|
|
39
|
+
// Render the empty state directly in the page — not inside the
|
|
40
|
+
// DataTable's empty cell, which would constrain it.
|
|
41
|
+
_jsx("div", { className: "mt-12", children: emptyState })) : (_jsxs(_Fragment, { children: [_jsxs("div", { className: "relative mt-6 max-w-xs", children: [_jsx(Search, { className: "pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground" }), _jsx(Input, { type: "search", placeholder: "Search projects", "aria-label": "Search projects", value: query, onChange: (event) => setQuery(event.target.value), className: "pl-9" })] }), _jsx("div", { className: "mt-4", children: _jsx(DataTable, { columns: columns, data: data, sorting: true, pagination: { pageSizes: [10, 25] }, rowActions: rowActions, getRowId: (row) => row.id,
|
|
42
|
+
// TODO: navigate to project detail
|
|
43
|
+
onRowClick: () => { } }) })] }))] }) }));
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=ProjectsListPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectsListPage.js","sourceRoot":"","sources":["../../../../src/examples/projects-list/ProjectsListPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-data.d.ts","sourceRoot":"","sources":["../../../../src/examples/projects-list/mock-data.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AACD,eAAO,MAAM,QAAQ,EAAE,OAAO,EAiF7B,CAAC"}
|