@schandlergarcia/sf-web-components 1.0.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/.a4drules/skills/building-data-visualization/SKILL.md +72 -0
- package/.a4drules/skills/building-data-visualization/implementation/bar-line-chart.md +316 -0
- package/.a4drules/skills/building-data-visualization/implementation/dashboard-layout.md +189 -0
- package/.a4drules/skills/building-data-visualization/implementation/donut-chart.md +181 -0
- package/.a4drules/skills/building-data-visualization/implementation/stat-card.md +150 -0
- package/.a4drules/skills/building-react-components/SKILL.md +96 -0
- package/.a4drules/skills/building-react-components/implementation/component.md +78 -0
- package/.a4drules/skills/building-react-components/implementation/header-footer.md +132 -0
- package/.a4drules/skills/building-react-components/implementation/page.md +93 -0
- package/.a4drules/skills/configuring-csp-trusted-sites/SKILL.md +90 -0
- package/.a4drules/skills/configuring-csp-trusted-sites/implementation/metadata-format.md +281 -0
- package/.a4drules/skills/configuring-webapp-metadata/SKILL.md +158 -0
- package/.a4drules/skills/creating-webapp/SKILL.md +140 -0
- package/.a4drules/skills/deploying-to-salesforce/SKILL.md +226 -0
- package/.a4drules/skills/implementing-file-upload/SKILL.md +396 -0
- package/.a4drules/skills/installing-webapp-features/SKILL.md +210 -0
- package/.a4drules/skills/managing-agentforce-conversation-client/SKILL.md +186 -0
- package/.a4drules/skills/managing-agentforce-conversation-client/references/constraints.md +134 -0
- package/.a4drules/skills/managing-agentforce-conversation-client/references/examples.md +132 -0
- package/.a4drules/skills/managing-agentforce-conversation-client/references/style-tokens.md +101 -0
- package/.a4drules/skills/managing-agentforce-conversation-client/references/troubleshooting.md +57 -0
- package/.a4drules/skills/using-salesforce-data/SKILL.md +363 -0
- package/.a4drules/skills/using-salesforce-data/graphql-search.sh +139 -0
- package/.a4drules/webapp-data.md +353 -0
- package/.a4drules/webapp-ui.md +16 -0
- package/README.md +124 -0
- package/dist/components/library/cards/ActionList.js +27 -0
- package/dist/components/library/cards/ActionList.js.map +1 -0
- package/dist/components/library/cards/ActivityCard.js +40 -0
- package/dist/components/library/cards/ActivityCard.js.map +1 -0
- package/dist/components/library/cards/BaseCard.js +89 -0
- package/dist/components/library/cards/BaseCard.js.map +1 -0
- package/dist/components/library/cards/CalloutCard.js +28 -0
- package/dist/components/library/cards/CalloutCard.js.map +1 -0
- package/dist/components/library/cards/ChartCard.js +79 -0
- package/dist/components/library/cards/ChartCard.js.map +1 -0
- package/dist/components/library/cards/FeedPanel.js +38 -0
- package/dist/components/library/cards/FeedPanel.js.map +1 -0
- package/dist/components/library/cards/ListCard.js +112 -0
- package/dist/components/library/cards/ListCard.js.map +1 -0
- package/dist/components/library/cards/MetricCard.js +86 -0
- package/dist/components/library/cards/MetricCard.js.map +1 -0
- package/dist/components/library/cards/MetricsStrip.js +60 -0
- package/dist/components/library/cards/MetricsStrip.js.map +1 -0
- package/dist/components/library/cards/SectionCard.js +59 -0
- package/dist/components/library/cards/SectionCard.js.map +1 -0
- package/dist/components/library/cards/StatusCard.js +137 -0
- package/dist/components/library/cards/StatusCard.js.map +1 -0
- package/dist/components/library/cards/TableCard.js +244 -0
- package/dist/components/library/cards/TableCard.js.map +1 -0
- package/dist/components/library/cards/WidgetCard.js +60 -0
- package/dist/components/library/cards/WidgetCard.js.map +1 -0
- package/dist/components/library/charts/D3Chart.js +74 -0
- package/dist/components/library/charts/D3Chart.js.map +1 -0
- package/dist/components/library/charts/D3ChartTemplates.js +44 -0
- package/dist/components/library/charts/D3ChartTemplates.js.map +1 -0
- package/dist/components/library/charts/GeoMap.js +229 -0
- package/dist/components/library/charts/GeoMap.js.map +1 -0
- package/dist/components/library/chat/ChatBar.js +194 -0
- package/dist/components/library/chat/ChatBar.js.map +1 -0
- package/dist/components/library/chat/ChatInput.js +67 -0
- package/dist/components/library/chat/ChatInput.js.map +1 -0
- package/dist/components/library/chat/ChatMessage.js +112 -0
- package/dist/components/library/chat/ChatMessage.js.map +1 -0
- package/dist/components/library/chat/ChatMessageList.js +50 -0
- package/dist/components/library/chat/ChatMessageList.js.map +1 -0
- package/dist/components/library/chat/ChatPanel.js +77 -0
- package/dist/components/library/chat/ChatPanel.js.map +1 -0
- package/dist/components/library/chat/ChatSuggestions.js +22 -0
- package/dist/components/library/chat/ChatSuggestions.js.map +1 -0
- package/dist/components/library/chat/ChatToolCall.js +87 -0
- package/dist/components/library/chat/ChatToolCall.js.map +1 -0
- package/dist/components/library/chat/ChatTypingIndicator.js +20 -0
- package/dist/components/library/chat/ChatTypingIndicator.js.map +1 -0
- package/dist/components/library/chat/ChatWelcome.js +24 -0
- package/dist/components/library/chat/ChatWelcome.js.map +1 -0
- package/dist/components/library/chat/useChatState.js +77 -0
- package/dist/components/library/chat/useChatState.js.map +1 -0
- package/dist/components/library/data/DataModeProvider.js +47 -0
- package/dist/components/library/data/DataModeProvider.js.map +1 -0
- package/dist/components/library/data/DataModeToggle.js +28 -0
- package/dist/components/library/data/DataModeToggle.js.map +1 -0
- package/dist/components/library/data/filterUtils.js +71 -0
- package/dist/components/library/data/filterUtils.js.map +1 -0
- package/dist/components/library/data/useDataSource.js +13 -0
- package/dist/components/library/data/useDataSource.js.map +1 -0
- package/dist/components/library/data/usePageFilters.js +46 -0
- package/dist/components/library/data/usePageFilters.js.map +1 -0
- package/dist/components/library/filters/FilterBar.js +89 -0
- package/dist/components/library/filters/FilterBar.js.map +1 -0
- package/dist/components/library/filters/SearchFilter.js +44 -0
- package/dist/components/library/filters/SearchFilter.js.map +1 -0
- package/dist/components/library/filters/SelectFilter.js +44 -0
- package/dist/components/library/filters/SelectFilter.js.map +1 -0
- package/dist/components/library/filters/ToggleFilter.js +48 -0
- package/dist/components/library/filters/ToggleFilter.js.map +1 -0
- package/dist/components/library/forms/FormField.js +256 -0
- package/dist/components/library/forms/FormField.js.map +1 -0
- package/dist/components/library/forms/FormModal.js +161 -0
- package/dist/components/library/forms/FormModal.js.map +1 -0
- package/dist/components/library/forms/FormRenderer.js +32 -0
- package/dist/components/library/forms/FormRenderer.js.map +1 -0
- package/dist/components/library/forms/FormSection.js +49 -0
- package/dist/components/library/forms/FormSection.js.map +1 -0
- package/dist/components/library/forms/useFormState.js +85 -0
- package/dist/components/library/forms/useFormState.js.map +1 -0
- package/dist/components/library/heroui/Accordion.js +12 -0
- package/dist/components/library/heroui/Accordion.js.map +1 -0
- package/dist/components/library/heroui/Alert.js +12 -0
- package/dist/components/library/heroui/Alert.js.map +1 -0
- package/dist/components/library/heroui/Badge.js +12 -0
- package/dist/components/library/heroui/Badge.js.map +1 -0
- package/dist/components/library/heroui/Breadcrumbs.js +12 -0
- package/dist/components/library/heroui/Breadcrumbs.js.map +1 -0
- package/dist/components/library/heroui/Button.js +18 -0
- package/dist/components/library/heroui/Button.js.map +1 -0
- package/dist/components/library/heroui/Card.js +12 -0
- package/dist/components/library/heroui/Card.js.map +1 -0
- package/dist/components/library/heroui/Drawer.js +12 -0
- package/dist/components/library/heroui/Drawer.js.map +1 -0
- package/dist/components/library/heroui/Dropdown.js +12 -0
- package/dist/components/library/heroui/Dropdown.js.map +1 -0
- package/dist/components/library/heroui/Input.js +10 -0
- package/dist/components/library/heroui/Input.js.map +1 -0
- package/dist/components/library/heroui/Kbd.js +12 -0
- package/dist/components/library/heroui/Kbd.js.map +1 -0
- package/dist/components/library/heroui/Meter.js +12 -0
- package/dist/components/library/heroui/Meter.js.map +1 -0
- package/dist/components/library/heroui/Modal.js +12 -0
- package/dist/components/library/heroui/Modal.js.map +1 -0
- package/dist/components/library/heroui/Pagination.js +12 -0
- package/dist/components/library/heroui/Pagination.js.map +1 -0
- package/dist/components/library/heroui/ProgressBar.js +12 -0
- package/dist/components/library/heroui/ProgressBar.js.map +1 -0
- package/dist/components/library/heroui/ProgressCircle.js +12 -0
- package/dist/components/library/heroui/ProgressCircle.js.map +1 -0
- package/dist/components/library/heroui/ScrollShadow.js +12 -0
- package/dist/components/library/heroui/ScrollShadow.js.map +1 -0
- package/dist/components/library/heroui/Select.js +12 -0
- package/dist/components/library/heroui/Select.js.map +1 -0
- package/dist/components/library/heroui/Separator.js +12 -0
- package/dist/components/library/heroui/Separator.js.map +1 -0
- package/dist/components/library/heroui/Skeleton.js +12 -0
- package/dist/components/library/heroui/Skeleton.js.map +1 -0
- package/dist/components/library/heroui/Tabs.js +12 -0
- package/dist/components/library/heroui/Tabs.js.map +1 -0
- package/dist/components/library/heroui/Toast.js +13 -0
- package/dist/components/library/heroui/Toast.js.map +1 -0
- package/dist/components/library/heroui/Toggle.js +12 -0
- package/dist/components/library/heroui/Toggle.js.map +1 -0
- package/dist/components/library/heroui/Tooltip.js +12 -0
- package/dist/components/library/heroui/Tooltip.js.map +1 -0
- package/dist/components/library/layout/PageContainer.js +9 -0
- package/dist/components/library/layout/PageContainer.js.map +1 -0
- package/dist/components/library/skeletons/CardSkeleton.js +29 -0
- package/dist/components/library/skeletons/CardSkeleton.js.map +1 -0
- package/dist/components/library/theme/AppThemeProvider.js +55 -0
- package/dist/components/library/theme/AppThemeProvider.js.map +1 -0
- package/dist/components/library/theme/tokens.js +55 -0
- package/dist/components/library/theme/tokens.js.map +1 -0
- package/dist/components/library/ui/Avatar.js +33 -0
- package/dist/components/library/ui/Avatar.js.map +1 -0
- package/dist/components/library/ui/Button.js +50 -0
- package/dist/components/library/ui/Button.js.map +1 -0
- package/dist/components/library/ui/Card.js +21 -0
- package/dist/components/library/ui/Card.js.map +1 -0
- package/dist/components/library/ui/Chip.js +31 -0
- package/dist/components/library/ui/Chip.js.map +1 -0
- package/dist/components/library/ui/Container.js +42 -0
- package/dist/components/library/ui/Container.js.map +1 -0
- package/dist/components/library/ui/EmptyState.js +27 -0
- package/dist/components/library/ui/EmptyState.js.map +1 -0
- package/dist/components/library/ui/Input.js +22 -0
- package/dist/components/library/ui/Input.js.map +1 -0
- package/dist/components/library/ui/Spinner.js +64 -0
- package/dist/components/library/ui/Spinner.js.map +1 -0
- package/dist/components/library/ui/Text.js +43 -0
- package/dist/components/library/ui/Text.js.map +1 -0
- package/dist/components/library/ui/Toggle.js +47 -0
- package/dist/components/library/ui/Toggle.js.map +1 -0
- package/dist/components/workspace/ComponentRegistry.js +231 -0
- package/dist/components/workspace/ComponentRegistry.js.map +1 -0
- package/dist/index.js +185 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/utils.js +9 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/node_modules/clsx/dist/clsx.js +17 -0
- package/dist/node_modules/clsx/dist/clsx.js.map +1 -0
- package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +2925 -0
- package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -0
- package/package.json +81 -0
- package/scripts/get-graphql-schema.mjs +68 -0
- package/scripts/reset-command-center.sh +358 -0
- package/scripts/rewrite-e2e-assets.mjs +23 -0
- package/scripts/validate-dashboard.sh +290 -0
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import { jsxs as i, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import b from "react";
|
|
3
|
+
import "../library/theme/AppThemeProvider.js";
|
|
4
|
+
import u from "../library/ui/Button.js";
|
|
5
|
+
import p from "../library/ui/Chip.js";
|
|
6
|
+
import h from "../library/cards/ChartCard.js";
|
|
7
|
+
import g from "../library/cards/MetricCard.js";
|
|
8
|
+
import f from "../library/cards/StatusCard.js";
|
|
9
|
+
import k from "../library/cards/TableCard.js";
|
|
10
|
+
import "framer-motion";
|
|
11
|
+
import "@heroicons/react/24/outline";
|
|
12
|
+
import v from "../library/charts/D3Chart.js";
|
|
13
|
+
import { D3ChartTemplates as N } from "../library/charts/D3ChartTemplates.js";
|
|
14
|
+
import "../library/charts/GeoMap.js";
|
|
15
|
+
import "react-dom";
|
|
16
|
+
import "../library/data/DataModeProvider.js";
|
|
17
|
+
import "@heroicons/react/24/solid";
|
|
18
|
+
import "@heroui/react";
|
|
19
|
+
const y = {
|
|
20
|
+
NarrativeSummary({ summary: t, title: a }) {
|
|
21
|
+
return /* @__PURE__ */ i("div", { className: "text-sm text-slate-600 dark:text-slate-300", children: [
|
|
22
|
+
a && /* @__PURE__ */ e("div", { className: "mb-1 font-medium text-slate-900 dark:text-slate-50", children: a }),
|
|
23
|
+
t
|
|
24
|
+
] });
|
|
25
|
+
},
|
|
26
|
+
MetricsStrip({ metrics: t = [], title: a, collapsible: d = !1, collapsed: l = !1 }) {
|
|
27
|
+
const [o, s] = b.useState(l), n = t.length ? t : [
|
|
28
|
+
{ label: "Metric A", value: "—", trend: null },
|
|
29
|
+
{ label: "Metric B", value: "—", trend: null },
|
|
30
|
+
{ label: "Metric C", value: "—", trend: null }
|
|
31
|
+
];
|
|
32
|
+
return d && o ? /* @__PURE__ */ i(
|
|
33
|
+
"button",
|
|
34
|
+
{
|
|
35
|
+
type: "button",
|
|
36
|
+
onClick: () => s(!1),
|
|
37
|
+
className: "flex w-full items-center justify-between rounded-lg border border-slate-200 bg-white px-3 py-2 text-left text-xs text-slate-500 hover:bg-slate-50 dark:border-slate-800 dark:bg-slate-900 dark:text-slate-400 dark:hover:bg-slate-800",
|
|
38
|
+
children: [
|
|
39
|
+
/* @__PURE__ */ i("span", { children: [
|
|
40
|
+
a ?? "Metrics",
|
|
41
|
+
": ",
|
|
42
|
+
n.map((r) => `${r.label} ${r.value}`).join(" · ")
|
|
43
|
+
] }),
|
|
44
|
+
/* @__PURE__ */ e("span", { children: "▸" })
|
|
45
|
+
]
|
|
46
|
+
}
|
|
47
|
+
) : /* @__PURE__ */ i("div", { className: "rounded-xl border border-slate-200 bg-white p-3 dark:border-slate-800 dark:bg-slate-900", children: [
|
|
48
|
+
(a || d) && /* @__PURE__ */ i("div", { className: "mb-2 flex items-center justify-between", children: [
|
|
49
|
+
/* @__PURE__ */ e("span", { className: "text-xs font-medium text-slate-500 dark:text-slate-400", children: a ?? "Metrics" }),
|
|
50
|
+
d && /* @__PURE__ */ e(
|
|
51
|
+
"button",
|
|
52
|
+
{
|
|
53
|
+
type: "button",
|
|
54
|
+
onClick: () => s(!0),
|
|
55
|
+
className: "text-xs text-slate-400 hover:text-slate-600 dark:text-slate-500 dark:hover:text-slate-300",
|
|
56
|
+
children: "Collapse"
|
|
57
|
+
}
|
|
58
|
+
)
|
|
59
|
+
] }),
|
|
60
|
+
/* @__PURE__ */ e("div", { className: "flex flex-wrap gap-4", children: n.map((r) => /* @__PURE__ */ i("div", { className: "min-w-[80px]", children: [
|
|
61
|
+
/* @__PURE__ */ e("div", { className: "text-xs text-slate-400 dark:text-slate-500", children: r.label }),
|
|
62
|
+
/* @__PURE__ */ i("div", { className: "flex items-baseline gap-1.5", children: [
|
|
63
|
+
/* @__PURE__ */ e("span", { className: "text-sm font-semibold text-slate-700 dark:text-slate-200", children: r.value }),
|
|
64
|
+
r.trend && /* @__PURE__ */ e("span", { className: `text-xs ${String(r.trend).startsWith?.("+") || r.trend > 0 ? "text-red-500" : "text-emerald-500"}`, children: typeof r.trend == "number" && r.trend > 0 ? `+${r.trend}` : r.trend })
|
|
65
|
+
] })
|
|
66
|
+
] }, r.label)) })
|
|
67
|
+
] });
|
|
68
|
+
},
|
|
69
|
+
ItemList({ items: t = [], title: a, onItemClick: d }) {
|
|
70
|
+
const [l, o] = b.useState(null);
|
|
71
|
+
return t.length ? /* @__PURE__ */ i("div", { className: "space-y-2", children: [
|
|
72
|
+
a && /* @__PURE__ */ i("div", { className: "flex items-center justify-between", children: [
|
|
73
|
+
/* @__PURE__ */ e("span", { className: "text-sm font-medium text-slate-900 dark:text-slate-50", children: a }),
|
|
74
|
+
/* @__PURE__ */ i("span", { className: "text-xs text-slate-400 dark:text-slate-500", children: [
|
|
75
|
+
t.length,
|
|
76
|
+
" items"
|
|
77
|
+
] })
|
|
78
|
+
] }),
|
|
79
|
+
/* @__PURE__ */ e("div", { className: "space-y-1.5", children: t.map((s, n) => /* @__PURE__ */ i("div", { className: "rounded-xl border border-slate-200 bg-white dark:border-slate-800 dark:bg-slate-900", children: [
|
|
80
|
+
/* @__PURE__ */ e(
|
|
81
|
+
"button",
|
|
82
|
+
{
|
|
83
|
+
type: "button",
|
|
84
|
+
onClick: () => {
|
|
85
|
+
o(l === (s.id ?? n) ? null : s.id ?? n), d?.(s);
|
|
86
|
+
},
|
|
87
|
+
className: "flex w-full items-start justify-between gap-3 p-3 text-left",
|
|
88
|
+
children: /* @__PURE__ */ i("div", { className: "min-w-0 flex-1", children: [
|
|
89
|
+
/* @__PURE__ */ i("div", { className: "flex items-start justify-between gap-2", children: [
|
|
90
|
+
/* @__PURE__ */ e("div", { className: "text-sm font-medium text-slate-900 dark:text-slate-50", children: s.title ?? s.name ?? `Item ${n + 1}` }),
|
|
91
|
+
s.status && /* @__PURE__ */ e(p, { tone: s.status === "critical" ? "danger" : s.status === "warning" ? "warning" : "neutral", className: "shrink-0", children: s.status })
|
|
92
|
+
] }),
|
|
93
|
+
s.description && /* @__PURE__ */ e("div", { className: "mt-1 text-xs text-slate-500 dark:text-slate-400", children: s.description })
|
|
94
|
+
] })
|
|
95
|
+
}
|
|
96
|
+
),
|
|
97
|
+
l === (s.id ?? n) && s.actions && /* @__PURE__ */ e("div", { className: "border-t border-slate-100 px-3 py-2 dark:border-slate-800", children: /* @__PURE__ */ e("div", { className: "flex flex-wrap gap-1.5", children: s.actions.map((r, m) => /* @__PURE__ */ e(
|
|
98
|
+
"button",
|
|
99
|
+
{
|
|
100
|
+
type: "button",
|
|
101
|
+
className: `rounded-md px-2.5 py-1 text-xs font-medium transition-colors ${m === 0 ? "bg-slate-900 text-white hover:bg-slate-800 dark:bg-slate-50 dark:text-slate-900 dark:hover:bg-slate-200" : "bg-slate-100 text-slate-700 hover:bg-slate-200 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-slate-700"}`,
|
|
102
|
+
children: typeof r == "string" ? r : r.label
|
|
103
|
+
},
|
|
104
|
+
typeof r == "string" ? r : r.label
|
|
105
|
+
)) }) })
|
|
106
|
+
] }, s.id ?? n)) })
|
|
107
|
+
] }) : /* @__PURE__ */ e("div", { className: "text-sm text-slate-500 dark:text-slate-400", children: "No items." });
|
|
108
|
+
},
|
|
109
|
+
DataTable({ title: t, subtitle: a, columns: d = [], data: l = [], rows: o, searchable: s = !0, sortable: n = !0, paginated: r = !0, pageSize: m = 5 }) {
|
|
110
|
+
const c = l.length ? l : o ?? [], x = d.length ? d : [
|
|
111
|
+
{ key: "name", label: "Name" },
|
|
112
|
+
{ key: "status", label: "Status" },
|
|
113
|
+
{ key: "value", label: "Value" }
|
|
114
|
+
];
|
|
115
|
+
return /* @__PURE__ */ e(
|
|
116
|
+
k,
|
|
117
|
+
{
|
|
118
|
+
title: t ?? "Data",
|
|
119
|
+
subtitle: a,
|
|
120
|
+
columns: x,
|
|
121
|
+
data: c,
|
|
122
|
+
searchable: s,
|
|
123
|
+
sortable: n,
|
|
124
|
+
paginated: r,
|
|
125
|
+
pageSize: m
|
|
126
|
+
}
|
|
127
|
+
);
|
|
128
|
+
},
|
|
129
|
+
DataChart({ title: t, subtitle: a, chartType: d = "line", data: l = [], height: o = 200 }) {
|
|
130
|
+
const s = l.length ? l : Array.from({ length: 12 }, (n, r) => ({ x: r, y: Math.random() * 100 }));
|
|
131
|
+
return /* @__PURE__ */ e(
|
|
132
|
+
h,
|
|
133
|
+
{
|
|
134
|
+
title: t ?? "Trend",
|
|
135
|
+
subtitle: a ?? "Data visualization",
|
|
136
|
+
chartType: d,
|
|
137
|
+
height: o,
|
|
138
|
+
chart: /* @__PURE__ */ e(
|
|
139
|
+
v,
|
|
140
|
+
{
|
|
141
|
+
data: s,
|
|
142
|
+
responsive: !0,
|
|
143
|
+
height: o,
|
|
144
|
+
ariaLabel: t,
|
|
145
|
+
renderChart: (n, r, m, c) => N.lineChart(n, r, m, c),
|
|
146
|
+
options: { xKey: "x", yKey: "y", showGrid: !0, showAxes: !0 }
|
|
147
|
+
}
|
|
148
|
+
)
|
|
149
|
+
}
|
|
150
|
+
);
|
|
151
|
+
},
|
|
152
|
+
MetricCard({ title: t, label: a, value: d, trend: l, change: o, changeType: s, color: n, icon: r, description: m }) {
|
|
153
|
+
return /* @__PURE__ */ e(
|
|
154
|
+
g,
|
|
155
|
+
{
|
|
156
|
+
title: t ?? a,
|
|
157
|
+
value: d ?? "—",
|
|
158
|
+
trend: l,
|
|
159
|
+
change: o,
|
|
160
|
+
changeType: s,
|
|
161
|
+
color: n,
|
|
162
|
+
icon: r,
|
|
163
|
+
description: m
|
|
164
|
+
}
|
|
165
|
+
);
|
|
166
|
+
},
|
|
167
|
+
StatusCard({ title: t, subtitle: a, status: d, items: l, layout: o, showProgress: s, showTimestamp: n }) {
|
|
168
|
+
return /* @__PURE__ */ e(
|
|
169
|
+
f,
|
|
170
|
+
{
|
|
171
|
+
title: t,
|
|
172
|
+
subtitle: a,
|
|
173
|
+
status: d,
|
|
174
|
+
items: l,
|
|
175
|
+
layout: o,
|
|
176
|
+
showProgress: s,
|
|
177
|
+
showTimestamp: n
|
|
178
|
+
}
|
|
179
|
+
);
|
|
180
|
+
},
|
|
181
|
+
ActionList({ actions: t = [], title: a, onAction: d }) {
|
|
182
|
+
return /* @__PURE__ */ i("div", { className: "rounded-2xl border border-slate-200 bg-white p-4 dark:border-slate-800 dark:bg-slate-900", children: [
|
|
183
|
+
a && /* @__PURE__ */ e("div", { className: "mb-3 text-sm font-medium text-slate-900 dark:text-slate-50", children: a }),
|
|
184
|
+
/* @__PURE__ */ e("div", { className: "flex flex-wrap gap-2", children: t.map((l, o) => /* @__PURE__ */ e(
|
|
185
|
+
u,
|
|
186
|
+
{
|
|
187
|
+
size: "sm",
|
|
188
|
+
variant: o === 0 ? "primary" : "outline",
|
|
189
|
+
onClick: () => d?.(l),
|
|
190
|
+
children: typeof l == "string" ? l : l.label
|
|
191
|
+
},
|
|
192
|
+
o
|
|
193
|
+
)) })
|
|
194
|
+
] });
|
|
195
|
+
},
|
|
196
|
+
CalloutCard({ title: t, message: a, tone: d = "neutral" }) {
|
|
197
|
+
const l = {
|
|
198
|
+
neutral: "border-slate-200 bg-slate-50 text-slate-700 dark:border-slate-800 dark:bg-slate-950/30 dark:text-slate-200",
|
|
199
|
+
success: "border-emerald-200 bg-emerald-50 text-emerald-800 dark:border-emerald-900/40 dark:bg-emerald-950/20 dark:text-emerald-200",
|
|
200
|
+
warning: "border-amber-200 bg-amber-50 text-amber-800 dark:border-amber-900/40 dark:bg-amber-950/20 dark:text-amber-200",
|
|
201
|
+
danger: "border-rose-200 bg-rose-50 text-rose-800 dark:border-rose-900/40 dark:bg-rose-950/20 dark:text-rose-200"
|
|
202
|
+
};
|
|
203
|
+
return /* @__PURE__ */ i("div", { className: `rounded-xl border p-4 ${l[d] ?? l.neutral}`, children: [
|
|
204
|
+
t && /* @__PURE__ */ e("div", { className: "mb-1 text-sm font-semibold", children: t }),
|
|
205
|
+
/* @__PURE__ */ e("div", { className: "text-sm", children: a })
|
|
206
|
+
] });
|
|
207
|
+
},
|
|
208
|
+
Divider() {
|
|
209
|
+
return /* @__PURE__ */ e("div", { className: "h-px bg-slate-200 dark:bg-slate-800" });
|
|
210
|
+
},
|
|
211
|
+
Spacer({ size: t = "md" }) {
|
|
212
|
+
const a = { sm: "h-2", md: "h-4", lg: "h-6" };
|
|
213
|
+
return /* @__PURE__ */ e("div", { className: a[t] ?? a.md });
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
let C = { ...y };
|
|
217
|
+
function w() {
|
|
218
|
+
return C;
|
|
219
|
+
}
|
|
220
|
+
function P(t, a) {
|
|
221
|
+
const l = w()[t.type];
|
|
222
|
+
return l ? /* @__PURE__ */ e(l, { ...t.props ?? {} }, t.id ?? a) : /* @__PURE__ */ i("div", { className: "rounded-lg border border-dashed border-slate-300 p-3 text-xs text-slate-500 dark:border-slate-700", children: [
|
|
223
|
+
"Unknown component: ",
|
|
224
|
+
t.type
|
|
225
|
+
] }, a);
|
|
226
|
+
}
|
|
227
|
+
export {
|
|
228
|
+
w as getComponentRegistry,
|
|
229
|
+
P as renderSchemaComponent
|
|
230
|
+
};
|
|
231
|
+
//# sourceMappingURL=ComponentRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComponentRegistry.js","sources":["../../../src/components/workspace/ComponentRegistry.jsx"],"sourcesContent":["import React from \"react\";\nimport {\n BaseCard,\n MetricCard,\n TableCard,\n ChartCard,\n D3Chart,\n D3ChartTemplates,\n StatusCard,\n ListCard,\n UIButton,\n UIChip,\n UIText\n} from \"@/components/library\";\n\nconst BUILTIN_COMPONENTS = {\n NarrativeSummary({ summary, title }) {\n return (\n <div className=\"text-sm text-slate-600 dark:text-slate-300\">\n {title && <div className=\"mb-1 font-medium text-slate-900 dark:text-slate-50\">{title}</div>}\n {summary}\n </div>\n );\n },\n\n MetricsStrip({ metrics = [], title, collapsible = false, collapsed: initialCollapsed = false }) {\n const [collapsed, setCollapsed] = React.useState(initialCollapsed);\n\n const items = metrics.length ? metrics : [\n { label: \"Metric A\", value: \"—\", trend: null },\n { label: \"Metric B\", value: \"—\", trend: null },\n { label: \"Metric C\", value: \"—\", trend: null }\n ];\n\n if (collapsible && collapsed) {\n return (\n <button\n type=\"button\"\n onClick={() => setCollapsed(false)}\n className=\"flex w-full items-center justify-between rounded-lg border border-slate-200 bg-white px-3 py-2 text-left text-xs text-slate-500 hover:bg-slate-50 dark:border-slate-800 dark:bg-slate-900 dark:text-slate-400 dark:hover:bg-slate-800\"\n >\n <span>{title ?? \"Metrics\"}: {items.map(m => `${m.label} ${m.value}`).join(\" · \")}</span>\n <span>▸</span>\n </button>\n );\n }\n\n return (\n <div className=\"rounded-xl border border-slate-200 bg-white p-3 dark:border-slate-800 dark:bg-slate-900\">\n {(title || collapsible) && (\n <div className=\"mb-2 flex items-center justify-between\">\n <span className=\"text-xs font-medium text-slate-500 dark:text-slate-400\">{title ?? \"Metrics\"}</span>\n {collapsible && (\n <button\n type=\"button\"\n onClick={() => setCollapsed(true)}\n className=\"text-xs text-slate-400 hover:text-slate-600 dark:text-slate-500 dark:hover:text-slate-300\"\n >\n Collapse\n </button>\n )}\n </div>\n )}\n <div className=\"flex flex-wrap gap-4\">\n {items.map((m) => (\n <div key={m.label} className=\"min-w-[80px]\">\n <div className=\"text-xs text-slate-400 dark:text-slate-500\">{m.label}</div>\n <div className=\"flex items-baseline gap-1.5\">\n <span className=\"text-sm font-semibold text-slate-700 dark:text-slate-200\">{m.value}</span>\n {m.trend && (\n <span className={`text-xs ${String(m.trend).startsWith?.(\"+\") || m.trend > 0 ? \"text-red-500\" : \"text-emerald-500\"}`}>\n {typeof m.trend === \"number\" ? (m.trend > 0 ? `+${m.trend}` : m.trend) : m.trend}\n </span>\n )}\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n },\n\n ItemList({ items = [], title, onItemClick }) {\n const [expanded, setExpanded] = React.useState(null);\n if (!items.length) {\n return <div className=\"text-sm text-slate-500 dark:text-slate-400\">No items.</div>;\n }\n return (\n <div className=\"space-y-2\">\n {title && (\n <div className=\"flex items-center justify-between\">\n <span className=\"text-sm font-medium text-slate-900 dark:text-slate-50\">{title}</span>\n <span className=\"text-xs text-slate-400 dark:text-slate-500\">{items.length} items</span>\n </div>\n )}\n <div className=\"space-y-1.5\">\n {items.map((item, idx) => (\n <div key={item.id ?? idx} className=\"rounded-xl border border-slate-200 bg-white dark:border-slate-800 dark:bg-slate-900\">\n <button\n type=\"button\"\n onClick={() => {\n setExpanded(expanded === (item.id ?? idx) ? null : (item.id ?? idx));\n onItemClick?.(item);\n }}\n className=\"flex w-full items-start justify-between gap-3 p-3 text-left\"\n >\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-start justify-between gap-2\">\n <div className=\"text-sm font-medium text-slate-900 dark:text-slate-50\">\n {item.title ?? item.name ?? `Item ${idx + 1}`}\n </div>\n {item.status && (\n <UIChip tone={item.status === \"critical\" ? \"danger\" : item.status === \"warning\" ? \"warning\" : \"neutral\"} className=\"shrink-0\">\n {item.status}\n </UIChip>\n )}\n </div>\n {item.description && (\n <div className=\"mt-1 text-xs text-slate-500 dark:text-slate-400\">{item.description}</div>\n )}\n </div>\n </button>\n {expanded === (item.id ?? idx) && item.actions && (\n <div className=\"border-t border-slate-100 px-3 py-2 dark:border-slate-800\">\n <div className=\"flex flex-wrap gap-1.5\">\n {item.actions.map((action, i) => (\n <button\n key={typeof action === \"string\" ? action : action.label}\n type=\"button\"\n className={`rounded-md px-2.5 py-1 text-xs font-medium transition-colors ${\n i === 0\n ? \"bg-slate-900 text-white hover:bg-slate-800 dark:bg-slate-50 dark:text-slate-900 dark:hover:bg-slate-200\"\n : \"bg-slate-100 text-slate-700 hover:bg-slate-200 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-slate-700\"\n }`}\n >\n {typeof action === \"string\" ? action : action.label}\n </button>\n ))}\n </div>\n </div>\n )}\n </div>\n ))}\n </div>\n </div>\n );\n },\n\n DataTable({ title, subtitle, columns = [], data = [], rows, searchable = true, sortable = true, paginated = true, pageSize = 5 }) {\n const tableData = data.length ? data : (rows ?? []);\n const cols = columns.length ? columns : [\n { key: \"name\", label: \"Name\" },\n { key: \"status\", label: \"Status\" },\n { key: \"value\", label: \"Value\" }\n ];\n return (\n <TableCard\n title={title ?? \"Data\"}\n subtitle={subtitle}\n columns={cols}\n data={tableData}\n searchable={searchable}\n sortable={sortable}\n paginated={paginated}\n pageSize={pageSize}\n />\n );\n },\n\n DataChart({ title, subtitle, chartType = \"line\", data = [], height = 200 }) {\n const series = data.length ? data : Array.from({ length: 12 }, (_, i) => ({ x: i, y: Math.random() * 100 }));\n return (\n <ChartCard\n title={title ?? \"Trend\"}\n subtitle={subtitle ?? \"Data visualization\"}\n chartType={chartType}\n height={height}\n chart={\n <D3Chart\n data={series}\n responsive\n height={height}\n ariaLabel={title}\n renderChart={(svg, d, dims, opts) => D3ChartTemplates.lineChart(svg, d, dims, opts)}\n options={{ xKey: \"x\", yKey: \"y\", showGrid: true, showAxes: true }}\n />\n }\n />\n );\n },\n\n MetricCard({ title, label, value, trend, change, changeType, color, icon, description }) {\n return (\n <MetricCard\n title={title ?? label}\n value={value ?? \"—\"}\n trend={trend}\n change={change}\n changeType={changeType}\n color={color}\n icon={icon}\n description={description}\n />\n );\n },\n\n StatusCard({ title, subtitle, status, items, layout, showProgress, showTimestamp }) {\n return (\n <StatusCard\n title={title}\n subtitle={subtitle}\n status={status}\n items={items}\n layout={layout}\n showProgress={showProgress}\n showTimestamp={showTimestamp}\n />\n );\n },\n\n ActionList({ actions = [], title, onAction }) {\n return (\n <div className=\"rounded-2xl border border-slate-200 bg-white p-4 dark:border-slate-800 dark:bg-slate-900\">\n {title && <div className=\"mb-3 text-sm font-medium text-slate-900 dark:text-slate-50\">{title}</div>}\n <div className=\"flex flex-wrap gap-2\">\n {actions.map((action, i) => (\n <UIButton\n key={i}\n size=\"sm\"\n variant={i === 0 ? \"primary\" : \"outline\"}\n onClick={() => onAction?.(action)}\n >\n {typeof action === \"string\" ? action : action.label}\n </UIButton>\n ))}\n </div>\n </div>\n );\n },\n\n CalloutCard({ title, message, tone = \"neutral\" }) {\n const toneClasses = {\n neutral: \"border-slate-200 bg-slate-50 text-slate-700 dark:border-slate-800 dark:bg-slate-950/30 dark:text-slate-200\",\n success: \"border-emerald-200 bg-emerald-50 text-emerald-800 dark:border-emerald-900/40 dark:bg-emerald-950/20 dark:text-emerald-200\",\n warning: \"border-amber-200 bg-amber-50 text-amber-800 dark:border-amber-900/40 dark:bg-amber-950/20 dark:text-amber-200\",\n danger: \"border-rose-200 bg-rose-50 text-rose-800 dark:border-rose-900/40 dark:bg-rose-950/20 dark:text-rose-200\"\n };\n return (\n <div className={`rounded-xl border p-4 ${toneClasses[tone] ?? toneClasses.neutral}`}>\n {title && <div className=\"mb-1 text-sm font-semibold\">{title}</div>}\n <div className=\"text-sm\">{message}</div>\n </div>\n );\n },\n\n Divider() {\n return <div className=\"h-px bg-slate-200 dark:bg-slate-800\" />;\n },\n\n Spacer({ size = \"md\" }) {\n const heights = { sm: \"h-2\", md: \"h-4\", lg: \"h-6\" };\n return <div className={heights[size] ?? heights.md} />;\n }\n};\n\nlet _registry = { ...BUILTIN_COMPONENTS };\n\nexport function getComponentRegistry() {\n return _registry;\n}\n\nexport function registerComponent(type, Component) {\n _registry = { ..._registry, [type]: Component };\n}\n\nexport function registerComponents(map) {\n _registry = { ..._registry, ...map };\n}\n\nexport function renderSchemaComponent(component, index) {\n const registry = getComponentRegistry();\n const Component = registry[component.type];\n if (!Component) {\n return (\n <div key={index} className=\"rounded-lg border border-dashed border-slate-300 p-3 text-xs text-slate-500 dark:border-slate-700\">\n Unknown component: {component.type}\n </div>\n );\n }\n return <Component key={component.id ?? index} {...(component.props ?? {})} />;\n}\n\nexport function renderSchema(components = []) {\n return components.map((c, i) => renderSchemaComponent(c, i));\n}\n\nexport default BUILTIN_COMPONENTS;\n"],"names":["BUILTIN_COMPONENTS","summary","title","jsxs","jsx","metrics","collapsible","initialCollapsed","collapsed","setCollapsed","React","items","m","onItemClick","expanded","setExpanded","item","idx","UIChip","action","i","subtitle","columns","data","rows","searchable","sortable","paginated","pageSize","tableData","cols","TableCard","chartType","height","series","_","ChartCard","D3Chart","svg","d","dims","opts","D3ChartTemplates","label","value","trend","change","changeType","color","icon","description","MetricCard","status","layout","showProgress","showTimestamp","StatusCard","actions","onAction","UIButton","message","tone","toneClasses","size","heights","_registry","getComponentRegistry","renderSchemaComponent","component","index","Component"],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { cn as o } from "./lib/utils.js";
|
|
2
|
+
import { default as t, useThemeMode as f } from "./components/library/theme/AppThemeProvider.js";
|
|
3
|
+
import { default as d } from "./components/library/ui/Button.js";
|
|
4
|
+
import { default as p } from "./components/library/ui/Input.js";
|
|
5
|
+
import { default as m } from "./components/library/ui/Toggle.js";
|
|
6
|
+
import { default as i } from "./components/library/ui/Text.js";
|
|
7
|
+
import { default as n } from "./components/library/ui/Card.js";
|
|
8
|
+
import { default as U } from "./components/library/ui/Container.js";
|
|
9
|
+
import { default as c } from "./components/library/ui/Chip.js";
|
|
10
|
+
import { default as H } from "./components/library/ui/Avatar.js";
|
|
11
|
+
import { default as T } from "./components/library/ui/Spinner.js";
|
|
12
|
+
import { default as M } from "./components/library/ui/EmptyState.js";
|
|
13
|
+
import { default as P } from "./components/library/cards/BaseCard.js";
|
|
14
|
+
import { default as y } from "./components/library/cards/ChartCard.js";
|
|
15
|
+
import { default as b } from "./components/library/cards/ListCard.js";
|
|
16
|
+
import { default as v } from "./components/library/cards/MetricCard.js";
|
|
17
|
+
import { default as K } from "./components/library/cards/SectionCard.js";
|
|
18
|
+
import { default as R } from "./components/library/cards/StatusCard.js";
|
|
19
|
+
import { default as E } from "./components/library/cards/TableCard.js";
|
|
20
|
+
import { default as V } from "./components/library/cards/WidgetCard.js";
|
|
21
|
+
import { default as q } from "./components/library/cards/FeedPanel.js";
|
|
22
|
+
import { default as J } from "./components/library/cards/ActivityCard.js";
|
|
23
|
+
import { default as O } from "./components/library/cards/MetricsStrip.js";
|
|
24
|
+
import { default as X } from "./components/library/cards/CalloutCard.js";
|
|
25
|
+
import { default as Z } from "./components/library/cards/ActionList.js";
|
|
26
|
+
import { default as $ } from "./components/library/charts/D3Chart.js";
|
|
27
|
+
import { D3ChartTemplates as re } from "./components/library/charts/D3ChartTemplates.js";
|
|
28
|
+
import { default as ae } from "./components/library/charts/GeoMap.js";
|
|
29
|
+
import { default as fe } from "./components/library/layout/PageContainer.js";
|
|
30
|
+
import { default as de } from "./components/library/skeletons/CardSkeleton.js";
|
|
31
|
+
import { default as pe } from "./components/library/forms/FormModal.js";
|
|
32
|
+
import { default as me } from "./components/library/forms/FormRenderer.js";
|
|
33
|
+
import { default as ie } from "./components/library/forms/FormSection.js";
|
|
34
|
+
import { default as ne } from "./components/library/forms/FormField.js";
|
|
35
|
+
import { default as Ue } from "./components/library/forms/useFormState.js";
|
|
36
|
+
import { default as ce } from "./components/library/filters/FilterBar.js";
|
|
37
|
+
import { default as He } from "./components/library/filters/SearchFilter.js";
|
|
38
|
+
import { default as Te } from "./components/library/filters/SelectFilter.js";
|
|
39
|
+
import { default as Me } from "./components/library/filters/ToggleFilter.js";
|
|
40
|
+
import { default as Pe, useDataMode as De } from "./components/library/data/DataModeProvider.js";
|
|
41
|
+
import { default as Ae } from "./components/library/data/DataModeToggle.js";
|
|
42
|
+
import { default as we } from "./components/library/data/useDataSource.js";
|
|
43
|
+
import { default as ke } from "./components/library/data/usePageFilters.js";
|
|
44
|
+
import { applyFilters as Le, filterByDateRange as Re, filterBySearch as We, filterByToggle as Ee, filterByValue as Ge, sortByKey as Ve } from "./components/library/data/filterUtils.js";
|
|
45
|
+
import { default as qe } from "./components/library/chat/ChatPanel.js";
|
|
46
|
+
import { default as Je } from "./components/library/chat/ChatBar.js";
|
|
47
|
+
import { default as Oe } from "./components/library/chat/ChatMessageList.js";
|
|
48
|
+
import { default as Xe } from "./components/library/chat/ChatMessage.js";
|
|
49
|
+
import { default as Ze } from "./components/library/chat/ChatInput.js";
|
|
50
|
+
import { default as $e } from "./components/library/chat/ChatTypingIndicator.js";
|
|
51
|
+
import { default as rr } from "./components/library/chat/ChatSuggestions.js";
|
|
52
|
+
import { default as ar } from "./components/library/chat/ChatToolCall.js";
|
|
53
|
+
import { default as fr } from "./components/library/chat/ChatWelcome.js";
|
|
54
|
+
import { default as dr } from "./components/library/chat/useChatState.js";
|
|
55
|
+
import { default as pr } from "./components/library/heroui/Button.js";
|
|
56
|
+
import { default as mr } from "./components/library/heroui/Input.js";
|
|
57
|
+
import { default as ir } from "./components/library/heroui/Card.js";
|
|
58
|
+
import { default as nr } from "./components/library/heroui/Toggle.js";
|
|
59
|
+
import { default as Ur } from "./components/library/heroui/Tabs.js";
|
|
60
|
+
import { default as cr } from "./components/library/heroui/Accordion.js";
|
|
61
|
+
import { default as Hr } from "./components/library/heroui/Breadcrumbs.js";
|
|
62
|
+
import { default as Tr } from "./components/library/heroui/Separator.js";
|
|
63
|
+
import { default as Mr } from "./components/library/heroui/Pagination.js";
|
|
64
|
+
import { default as Pr } from "./components/library/heroui/Drawer.js";
|
|
65
|
+
import { default as yr } from "./components/library/heroui/Modal.js";
|
|
66
|
+
import { default as br } from "./components/library/heroui/Dropdown.js";
|
|
67
|
+
import { default as vr } from "./components/library/heroui/Tooltip.js";
|
|
68
|
+
import { default as Kr } from "./components/library/heroui/Toast.js";
|
|
69
|
+
import { default as Rr } from "./components/library/heroui/Alert.js";
|
|
70
|
+
import { default as Er } from "./components/library/heroui/Badge.js";
|
|
71
|
+
import { default as Vr } from "./components/library/heroui/ProgressBar.js";
|
|
72
|
+
import { default as qr } from "./components/library/heroui/ProgressCircle.js";
|
|
73
|
+
import { default as Jr } from "./components/library/heroui/Meter.js";
|
|
74
|
+
import { default as Or } from "./components/library/heroui/Skeleton.js";
|
|
75
|
+
import { default as Xr } from "./components/library/heroui/Select.js";
|
|
76
|
+
import { default as Zr } from "./components/library/heroui/Kbd.js";
|
|
77
|
+
import { default as $r } from "./components/library/heroui/ScrollShadow.js";
|
|
78
|
+
import { Accordion as ro, Alert as oo, Badge as ao, Breadcrumbs as to, Drawer as fo, Dropdown as lo, Kbd as so, Meter as po, Modal as uo, Pagination as mo, ProgressBar as xo, ProgressCircle as io, ScrollShadow as Io, Select as no, Separator as Co, Skeleton as Uo, Tabs as go, Toast as co, Tooltip as So, toast as Ho } from "@heroui/react";
|
|
79
|
+
export {
|
|
80
|
+
ro as Accordion,
|
|
81
|
+
Z as ActionList,
|
|
82
|
+
J as ActivityCard,
|
|
83
|
+
oo as Alert,
|
|
84
|
+
t as AppThemeProvider,
|
|
85
|
+
H as Avatar,
|
|
86
|
+
ao as Badge,
|
|
87
|
+
P as BaseCard,
|
|
88
|
+
to as Breadcrumbs,
|
|
89
|
+
X as CalloutCard,
|
|
90
|
+
de as CardSkeleton,
|
|
91
|
+
y as ChartCard,
|
|
92
|
+
Je as ChatBar,
|
|
93
|
+
Ze as ChatInput,
|
|
94
|
+
Xe as ChatMessage,
|
|
95
|
+
Oe as ChatMessageList,
|
|
96
|
+
qe as ChatPanel,
|
|
97
|
+
rr as ChatSuggestions,
|
|
98
|
+
ar as ChatToolCall,
|
|
99
|
+
$e as ChatTypingIndicator,
|
|
100
|
+
fr as ChatWelcome,
|
|
101
|
+
$ as D3Chart,
|
|
102
|
+
re as D3ChartTemplates,
|
|
103
|
+
Pe as DataModeProvider,
|
|
104
|
+
Ae as DataModeToggle,
|
|
105
|
+
fo as Drawer,
|
|
106
|
+
lo as Dropdown,
|
|
107
|
+
M as EmptyState,
|
|
108
|
+
q as FeedPanel,
|
|
109
|
+
ce as FilterBar,
|
|
110
|
+
ne as FormField,
|
|
111
|
+
pe as FormModal,
|
|
112
|
+
me as FormRenderer,
|
|
113
|
+
ie as FormSection,
|
|
114
|
+
ae as GeoMap,
|
|
115
|
+
cr as HeroUIAccordion,
|
|
116
|
+
Rr as HeroUIAlert,
|
|
117
|
+
Er as HeroUIBadge,
|
|
118
|
+
Hr as HeroUIBreadcrumbs,
|
|
119
|
+
pr as HeroUIButton,
|
|
120
|
+
ir as HeroUICard,
|
|
121
|
+
Pr as HeroUIDrawer,
|
|
122
|
+
br as HeroUIDropdown,
|
|
123
|
+
mr as HeroUIInput,
|
|
124
|
+
Zr as HeroUIKbd,
|
|
125
|
+
Jr as HeroUIMeter,
|
|
126
|
+
yr as HeroUIModal,
|
|
127
|
+
Mr as HeroUIPagination,
|
|
128
|
+
Vr as HeroUIProgressBar,
|
|
129
|
+
qr as HeroUIProgressCircle,
|
|
130
|
+
$r as HeroUIScrollShadow,
|
|
131
|
+
Xr as HeroUISelect,
|
|
132
|
+
Tr as HeroUISeparator,
|
|
133
|
+
Or as HeroUISkeleton,
|
|
134
|
+
Ur as HeroUITabs,
|
|
135
|
+
Kr as HeroUIToast,
|
|
136
|
+
nr as HeroUIToggle,
|
|
137
|
+
vr as HeroUITooltip,
|
|
138
|
+
so as Kbd,
|
|
139
|
+
b as ListCard,
|
|
140
|
+
po as Meter,
|
|
141
|
+
v as MetricCard,
|
|
142
|
+
O as MetricsStrip,
|
|
143
|
+
uo as Modal,
|
|
144
|
+
fe as PageContainer,
|
|
145
|
+
mo as Pagination,
|
|
146
|
+
xo as ProgressBar,
|
|
147
|
+
io as ProgressCircle,
|
|
148
|
+
Io as ScrollShadow,
|
|
149
|
+
He as SearchFilter,
|
|
150
|
+
K as SectionCard,
|
|
151
|
+
no as Select,
|
|
152
|
+
Te as SelectFilter,
|
|
153
|
+
Co as Separator,
|
|
154
|
+
Uo as Skeleton,
|
|
155
|
+
T as Spinner,
|
|
156
|
+
R as StatusCard,
|
|
157
|
+
E as TableCard,
|
|
158
|
+
go as Tabs,
|
|
159
|
+
co as Toast,
|
|
160
|
+
Me as ToggleFilter,
|
|
161
|
+
So as Tooltip,
|
|
162
|
+
d as UIButton,
|
|
163
|
+
n as UICard,
|
|
164
|
+
c as UIChip,
|
|
165
|
+
U as UIContainer,
|
|
166
|
+
p as UIInput,
|
|
167
|
+
i as UIText,
|
|
168
|
+
m as UIToggle,
|
|
169
|
+
V as WidgetCard,
|
|
170
|
+
Le as applyFilters,
|
|
171
|
+
o as cn,
|
|
172
|
+
Re as filterByDateRange,
|
|
173
|
+
We as filterBySearch,
|
|
174
|
+
Ee as filterByToggle,
|
|
175
|
+
Ge as filterByValue,
|
|
176
|
+
Ve as sortByKey,
|
|
177
|
+
Ho as toast,
|
|
178
|
+
dr as useChatState,
|
|
179
|
+
De as useDataMode,
|
|
180
|
+
we as useDataSource,
|
|
181
|
+
Ue as useFormState,
|
|
182
|
+
ke as usePageFilters,
|
|
183
|
+
f as useThemeMode
|
|
184
|
+
};
|
|
185
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../src/lib/utils.ts"],"sourcesContent":["import { clsx, type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"],"names":["cn","inputs","twMerge","clsx"],"mappings":";;AAGO,SAASA,KAAMC,GAAsB;AAC1C,SAAOC,EAAQC,EAAKF,CAAM,CAAC;AAC7B;"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
function i(r) {
|
|
2
|
+
var f, n, t = "";
|
|
3
|
+
if (typeof r == "string" || typeof r == "number") t += r;
|
|
4
|
+
else if (typeof r == "object") if (Array.isArray(r)) {
|
|
5
|
+
var o = r.length;
|
|
6
|
+
for (f = 0; f < o; f++) r[f] && (n = i(r[f])) && (t && (t += " "), t += n);
|
|
7
|
+
} else for (n in r) r[n] && (t && (t += " "), t += n);
|
|
8
|
+
return t;
|
|
9
|
+
}
|
|
10
|
+
function a() {
|
|
11
|
+
for (var r, f, n = 0, t = "", o = arguments.length; n < o; n++) (r = arguments[n]) && (f = i(r)) && (t && (t += " "), t += f);
|
|
12
|
+
return t;
|
|
13
|
+
}
|
|
14
|
+
export {
|
|
15
|
+
a as clsx
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=clsx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clsx.js","sources":["../../../../node_modules/clsx/dist/clsx.mjs"],"sourcesContent":["function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;"],"names":["r","e","t","f","n","clsx"],"mappings":"AAAA,SAASA,EAAEC,GAAE;AAAC,MAAIC,GAAEC,GAAEC,IAAE;AAAG,MAAa,OAAOH,KAAjB,YAA8B,OAAOA,KAAjB,SAAmB,CAAAG,KAAGH;AAAA,WAAoB,OAAOA,KAAjB,SAAmB,KAAG,MAAM,QAAQA,CAAC,GAAE;AAAC,QAAI,IAAEA,EAAE;AAAO,SAAIC,IAAE,GAAEA,IAAE,GAAEA,IAAI,CAAAD,EAAEC,CAAC,MAAIC,IAAEH,EAAEC,EAAEC,CAAC,CAAC,OAAKE,MAAIA,KAAG,MAAKA,KAAGD;AAAA,EAAE,MAAM,MAAIA,KAAKF,EAAE,CAAAA,EAAEE,CAAC,MAAIC,MAAIA,KAAG,MAAKA,KAAGD;AAAG,SAAOC;AAAC;AAAQ,SAASC,IAAM;AAAC,WAAQJ,GAAEC,GAAEC,IAAE,GAAEC,IAAE,IAAG,IAAE,UAAU,QAAOD,IAAE,GAAEA,IAAI,EAACF,IAAE,UAAUE,CAAC,OAAKD,IAAEF,EAAEC,CAAC,OAAKG,MAAIA,KAAG,MAAKA,KAAGF;AAAG,SAAOE;AAAC;","x_google_ignoreList":[0]}
|