pxengine 0.1.33 → 0.1.34
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/index.cjs +749 -150
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +104 -2
- package/dist/index.d.ts +104 -2
- package/dist/index.mjs +742 -148
- package/dist/index.mjs.map +1 -1
- package/dist/registry.json +223 -11
- package/package.json +3 -3
package/dist/index.cjs
CHANGED
|
@@ -36,6 +36,8 @@ __export(index_exports, {
|
|
|
36
36
|
AccordionItem: () => AccordionItem,
|
|
37
37
|
AccordionTrigger: () => AccordionTrigger,
|
|
38
38
|
ActionButton: () => ActionButton,
|
|
39
|
+
AgentCard: () => AgentCard,
|
|
40
|
+
AgentDataTable: () => AgentDataTable,
|
|
39
41
|
Alert: () => Alert,
|
|
40
42
|
AlertAtom: () => AlertAtom,
|
|
41
43
|
AlertDescription: () => AlertDescription,
|
|
@@ -180,6 +182,7 @@ __export(index_exports, {
|
|
|
180
182
|
InputOTPGroup: () => InputOTPGroup,
|
|
181
183
|
InputOTPSeparator: () => InputOTPSeparator,
|
|
182
184
|
InputOTPSlot: () => InputOTPSlot,
|
|
185
|
+
InstructionPreview: () => InstructionPreview,
|
|
183
186
|
KbdAtom: () => KbdAtom,
|
|
184
187
|
KeywordBundlesDisplay: () => KeywordBundlesDisplay,
|
|
185
188
|
KeywordBundlesEdit: () => KeywordBundlesEdit,
|
|
@@ -284,6 +287,7 @@ __export(index_exports, {
|
|
|
284
287
|
TextareaAtom: () => TextareaAtom,
|
|
285
288
|
TimelineAtom: () => TimelineAtom,
|
|
286
289
|
ToggleAtom: () => ToggleAtom,
|
|
290
|
+
ToolListCard: () => ToolListCard,
|
|
287
291
|
Tooltip: () => Tooltip,
|
|
288
292
|
TooltipAtom: () => TooltipAtom,
|
|
289
293
|
TooltipContent: () => TooltipContent,
|
|
@@ -291,12 +295,13 @@ __export(index_exports, {
|
|
|
291
295
|
TooltipTrigger: () => TooltipTrigger,
|
|
292
296
|
TopPostsGrid: () => TopPostsGrid,
|
|
293
297
|
VideoAtom: () => VideoAtom,
|
|
298
|
+
WorkflowVisualizer: () => WorkflowVisualizer,
|
|
294
299
|
cn: () => cn
|
|
295
300
|
});
|
|
296
301
|
module.exports = __toCommonJS(index_exports);
|
|
297
302
|
|
|
298
303
|
// src/render/PXEngineRenderer.tsx
|
|
299
|
-
var
|
|
304
|
+
var import_react69 = __toESM(require("react"), 1);
|
|
300
305
|
|
|
301
306
|
// src/atoms/index.ts
|
|
302
307
|
var atoms_exports = {};
|
|
@@ -33568,6 +33573,8 @@ ArrowToggleAtom.displayName = "ArrowToggleAtom";
|
|
|
33568
33573
|
var molecules_exports = {};
|
|
33569
33574
|
__export(molecules_exports, {
|
|
33570
33575
|
ActionButton: () => ActionButton,
|
|
33576
|
+
AgentCard: () => AgentCard,
|
|
33577
|
+
AgentDataTable: () => AgentDataTable,
|
|
33571
33578
|
AudienceDemographicsCard: () => AudienceDemographicsCard,
|
|
33572
33579
|
AudienceMetricCard: () => AudienceMetricCard,
|
|
33573
33580
|
BrandAffinityGroup: () => BrandAffinityGroup,
|
|
@@ -33587,6 +33594,7 @@ __export(molecules_exports, {
|
|
|
33587
33594
|
FilterBar: () => FilterBar,
|
|
33588
33595
|
FormCard: () => FormCard,
|
|
33589
33596
|
GrowthChartCard: () => GrowthChartCard,
|
|
33597
|
+
InstructionPreview: () => InstructionPreview,
|
|
33590
33598
|
KeywordBundlesDisplay: () => KeywordBundlesDisplay,
|
|
33591
33599
|
KeywordBundlesEdit: () => KeywordBundlesEdit,
|
|
33592
33600
|
LoadingOverlay: () => LoadingOverlay,
|
|
@@ -33599,7 +33607,9 @@ __export(molecules_exports, {
|
|
|
33599
33607
|
StatsGrid: () => StatsGrid,
|
|
33600
33608
|
StepWizard: () => StepWizard,
|
|
33601
33609
|
TagCloud: () => TagCloud,
|
|
33602
|
-
|
|
33610
|
+
ToolListCard: () => ToolListCard,
|
|
33611
|
+
TopPostsGrid: () => TopPostsGrid,
|
|
33612
|
+
WorkflowVisualizer: () => WorkflowVisualizer
|
|
33603
33613
|
});
|
|
33604
33614
|
|
|
33605
33615
|
// src/molecules/generic/EditableField/EditableField.tsx
|
|
@@ -36878,6 +36888,590 @@ var CampaignConceptCard = import_react64.default.memo(
|
|
|
36878
36888
|
);
|
|
36879
36889
|
CampaignConceptCard.displayName = "CampaignConceptCard";
|
|
36880
36890
|
|
|
36891
|
+
// src/molecules/agent-builder/ToolListCard/ToolListCard.tsx
|
|
36892
|
+
var import_jsx_runtime122 = require("react/jsx-runtime");
|
|
36893
|
+
var ICON_MAP = {
|
|
36894
|
+
Search,
|
|
36895
|
+
Database,
|
|
36896
|
+
Globe,
|
|
36897
|
+
FileText,
|
|
36898
|
+
Zap,
|
|
36899
|
+
Layout: PanelsTopLeft,
|
|
36900
|
+
Wrench,
|
|
36901
|
+
BookOpen,
|
|
36902
|
+
BarChart3: ChartColumn,
|
|
36903
|
+
Link,
|
|
36904
|
+
MessageSquare,
|
|
36905
|
+
Sparkles,
|
|
36906
|
+
FolderOpen,
|
|
36907
|
+
Code,
|
|
36908
|
+
Shield,
|
|
36909
|
+
Image,
|
|
36910
|
+
Mail,
|
|
36911
|
+
Calendar
|
|
36912
|
+
};
|
|
36913
|
+
var CATEGORY_FALLBACK = {
|
|
36914
|
+
search: Search,
|
|
36915
|
+
data: Database,
|
|
36916
|
+
knowledge: BookOpen,
|
|
36917
|
+
web: Globe,
|
|
36918
|
+
content: FileText,
|
|
36919
|
+
ui: PanelsTopLeft,
|
|
36920
|
+
analytics: ChartColumn,
|
|
36921
|
+
integration: Link,
|
|
36922
|
+
communication: MessageSquare,
|
|
36923
|
+
generation: Sparkles,
|
|
36924
|
+
file: FolderOpen,
|
|
36925
|
+
code: Code,
|
|
36926
|
+
security: Shield,
|
|
36927
|
+
general: Zap
|
|
36928
|
+
};
|
|
36929
|
+
function resolveIcon(tool) {
|
|
36930
|
+
if (tool.icon && ICON_MAP[tool.icon]) return ICON_MAP[tool.icon];
|
|
36931
|
+
if (tool.category && CATEGORY_FALLBACK[tool.category.toLowerCase()])
|
|
36932
|
+
return CATEGORY_FALLBACK[tool.category.toLowerCase()];
|
|
36933
|
+
return Wrench;
|
|
36934
|
+
}
|
|
36935
|
+
function resolveCategoryIcon(category) {
|
|
36936
|
+
return CATEGORY_FALLBACK[category.toLowerCase()] || Wrench;
|
|
36937
|
+
}
|
|
36938
|
+
var ToolListCard = ({
|
|
36939
|
+
tools,
|
|
36940
|
+
className
|
|
36941
|
+
}) => {
|
|
36942
|
+
const grouped = {};
|
|
36943
|
+
for (const tool of tools) {
|
|
36944
|
+
const cat = tool.category || "General";
|
|
36945
|
+
if (!grouped[cat]) grouped[cat] = [];
|
|
36946
|
+
grouped[cat].push(tool);
|
|
36947
|
+
}
|
|
36948
|
+
const categories = Object.keys(grouped);
|
|
36949
|
+
return /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(
|
|
36950
|
+
"div",
|
|
36951
|
+
{
|
|
36952
|
+
className: cn(
|
|
36953
|
+
"my-3 rounded-xl border border-[var(--border-color)] bg-[var(--card-background)] overflow-hidden shadow-sm",
|
|
36954
|
+
className
|
|
36955
|
+
),
|
|
36956
|
+
children: [
|
|
36957
|
+
/* @__PURE__ */ (0, import_jsx_runtime122.jsxs)("div", { className: "px-4 py-3 border-b border-[var(--border-color)] bg-[var(--foreground)]/[0.03] flex items-center gap-2.5", children: [
|
|
36958
|
+
/* @__PURE__ */ (0, import_jsx_runtime122.jsx)("div", { className: "w-6 h-6 rounded-md bg-[var(--primary-color)]/10 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(Wrench, { className: "w-3.5 h-3.5 text-[var(--primary-color)]" }) }),
|
|
36959
|
+
/* @__PURE__ */ (0, import_jsx_runtime122.jsx)("h4", { className: "text-sm font-semibold text-[var(--foreground)]", children: "Available Tools" }),
|
|
36960
|
+
/* @__PURE__ */ (0, import_jsx_runtime122.jsx)("span", { className: "ml-auto text-[11px] font-medium text-[var(--foreground)]/40 bg-[var(--foreground)]/[0.06] px-2 py-0.5 rounded-full", children: tools.length })
|
|
36961
|
+
] }),
|
|
36962
|
+
/* @__PURE__ */ (0, import_jsx_runtime122.jsx)("div", { className: "divide-y divide-[var(--border-color)]", children: categories.map((cat) => {
|
|
36963
|
+
const CatIcon = resolveCategoryIcon(cat);
|
|
36964
|
+
return /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)("div", { className: "px-4 py-3", children: [
|
|
36965
|
+
/* @__PURE__ */ (0, import_jsx_runtime122.jsxs)("div", { className: "flex items-center gap-2 mb-2.5", children: [
|
|
36966
|
+
/* @__PURE__ */ (0, import_jsx_runtime122.jsx)(CatIcon, { className: "w-3.5 h-3.5 text-[var(--primary-color)]/70" }),
|
|
36967
|
+
/* @__PURE__ */ (0, import_jsx_runtime122.jsx)("span", { className: "text-[11px] font-semibold text-[var(--foreground)]/50 uppercase tracking-wider", children: cat }),
|
|
36968
|
+
/* @__PURE__ */ (0, import_jsx_runtime122.jsx)("span", { className: "text-[10px] text-[var(--foreground)]/30", children: grouped[cat].length })
|
|
36969
|
+
] }),
|
|
36970
|
+
/* @__PURE__ */ (0, import_jsx_runtime122.jsx)("div", { className: "space-y-1.5", children: grouped[cat].map((tool) => {
|
|
36971
|
+
const ToolIcon = resolveIcon(tool);
|
|
36972
|
+
return /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(
|
|
36973
|
+
"div",
|
|
36974
|
+
{
|
|
36975
|
+
className: "group flex items-start gap-3 px-3 py-2 rounded-lg hover:bg-[var(--foreground)]/[0.03] transition-colors",
|
|
36976
|
+
children: [
|
|
36977
|
+
/* @__PURE__ */ (0, import_jsx_runtime122.jsx)("div", { className: "shrink-0 mt-0.5 w-5 h-5 rounded flex items-center justify-center bg-[var(--primary-color)]/[0.08]", children: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(ToolIcon, { className: "w-3 h-3 text-[var(--primary-color)]/60" }) }),
|
|
36978
|
+
/* @__PURE__ */ (0, import_jsx_runtime122.jsxs)("div", { className: "flex-1 min-w-0", children: [
|
|
36979
|
+
/* @__PURE__ */ (0, import_jsx_runtime122.jsxs)("div", { className: "flex items-center gap-2 flex-wrap", children: [
|
|
36980
|
+
tool.display_name && tool.display_name !== tool.name && /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("span", { className: "text-[13px] font-medium text-[var(--foreground)]", children: tool.display_name }),
|
|
36981
|
+
/* @__PURE__ */ (0, import_jsx_runtime122.jsx)("span", { className: "text-[11px] font-mono px-1.5 py-0.5 rounded bg-[var(--foreground)]/[0.06] text-[var(--foreground)]/50 border border-[var(--foreground)]/[0.06]", children: tool.name })
|
|
36982
|
+
] }),
|
|
36983
|
+
tool.description && /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("p", { className: "text-xs text-[var(--foreground)]/50 leading-relaxed mt-0.5", children: tool.description })
|
|
36984
|
+
] })
|
|
36985
|
+
]
|
|
36986
|
+
},
|
|
36987
|
+
tool.name
|
|
36988
|
+
);
|
|
36989
|
+
}) })
|
|
36990
|
+
] }, cat);
|
|
36991
|
+
}) })
|
|
36992
|
+
]
|
|
36993
|
+
}
|
|
36994
|
+
);
|
|
36995
|
+
};
|
|
36996
|
+
|
|
36997
|
+
// src/molecules/agent-builder/AgentCard/AgentCard.tsx
|
|
36998
|
+
var import_react65 = require("react");
|
|
36999
|
+
var import_jsx_runtime123 = require("react/jsx-runtime");
|
|
37000
|
+
var AgentCard = ({
|
|
37001
|
+
agent,
|
|
37002
|
+
editable = true,
|
|
37003
|
+
compact = false,
|
|
37004
|
+
onSave,
|
|
37005
|
+
className
|
|
37006
|
+
}) => {
|
|
37007
|
+
const [isEditing, setIsEditing] = (0, import_react65.useState)(false);
|
|
37008
|
+
const [isSaving, setIsSaving] = (0, import_react65.useState)(false);
|
|
37009
|
+
const [editState, setEditState] = (0, import_react65.useState)({
|
|
37010
|
+
display_name: agent.display_name,
|
|
37011
|
+
description: agent.description,
|
|
37012
|
+
image: agent.image || ""
|
|
37013
|
+
});
|
|
37014
|
+
const avatarUrl = agent.image || `https://api.dicebear.com/7.x/avataaars/svg?seed=${agent.name}`;
|
|
37015
|
+
const handleEdit = (0, import_react65.useCallback)(() => {
|
|
37016
|
+
setEditState({
|
|
37017
|
+
display_name: agent.display_name,
|
|
37018
|
+
description: agent.description,
|
|
37019
|
+
image: agent.image || ""
|
|
37020
|
+
});
|
|
37021
|
+
setIsEditing(true);
|
|
37022
|
+
}, [agent]);
|
|
37023
|
+
const handleCancel = (0, import_react65.useCallback)(() => {
|
|
37024
|
+
setIsEditing(false);
|
|
37025
|
+
}, []);
|
|
37026
|
+
const handleSave = (0, import_react65.useCallback)(async () => {
|
|
37027
|
+
if (!onSave) return;
|
|
37028
|
+
const updates = {};
|
|
37029
|
+
if (editState.display_name !== agent.display_name)
|
|
37030
|
+
updates.display_name = editState.display_name;
|
|
37031
|
+
if (editState.description !== agent.description)
|
|
37032
|
+
updates.description = editState.description;
|
|
37033
|
+
if (editState.image !== (agent.image || ""))
|
|
37034
|
+
updates.image = editState.image;
|
|
37035
|
+
if (Object.keys(updates).length === 0) {
|
|
37036
|
+
setIsEditing(false);
|
|
37037
|
+
return;
|
|
37038
|
+
}
|
|
37039
|
+
setIsSaving(true);
|
|
37040
|
+
try {
|
|
37041
|
+
await onSave(agent, updates);
|
|
37042
|
+
setIsEditing(false);
|
|
37043
|
+
} catch (err) {
|
|
37044
|
+
console.error("AgentCard save failed:", err);
|
|
37045
|
+
} finally {
|
|
37046
|
+
setIsSaving(false);
|
|
37047
|
+
}
|
|
37048
|
+
}, [onSave, agent, editState]);
|
|
37049
|
+
if (compact) {
|
|
37050
|
+
return /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(
|
|
37051
|
+
"div",
|
|
37052
|
+
{
|
|
37053
|
+
className: cn(
|
|
37054
|
+
"flex items-center gap-3 py-1",
|
|
37055
|
+
className
|
|
37056
|
+
),
|
|
37057
|
+
children: [
|
|
37058
|
+
/* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(Avatar, { className: "h-8 w-8 shrink-0", children: [
|
|
37059
|
+
/* @__PURE__ */ (0, import_jsx_runtime123.jsx)(AvatarImage, { src: avatarUrl, alt: agent.display_name }),
|
|
37060
|
+
/* @__PURE__ */ (0, import_jsx_runtime123.jsx)(AvatarFallback, { className: "bg-[var(--primary-color)]/10 text-[var(--primary-color)] text-xs font-bold", children: agent.display_name.charAt(0) })
|
|
37061
|
+
] }),
|
|
37062
|
+
/* @__PURE__ */ (0, import_jsx_runtime123.jsxs)("div", { className: "flex-1 min-w-0", children: [
|
|
37063
|
+
/* @__PURE__ */ (0, import_jsx_runtime123.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
37064
|
+
/* @__PURE__ */ (0, import_jsx_runtime123.jsx)("span", { className: "text-[var(--foreground)] text-sm font-semibold truncate", children: agent.display_name }),
|
|
37065
|
+
/* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
|
|
37066
|
+
"span",
|
|
37067
|
+
{
|
|
37068
|
+
className: cn(
|
|
37069
|
+
"text-[10px] px-1.5 py-0.5 rounded-full font-medium",
|
|
37070
|
+
agent.enabled ? "bg-emerald-500/10 text-emerald-600" : "bg-red-500/10 text-red-500"
|
|
37071
|
+
),
|
|
37072
|
+
children: agent.enabled ? "Active" : "Disabled"
|
|
37073
|
+
}
|
|
37074
|
+
)
|
|
37075
|
+
] }),
|
|
37076
|
+
/* @__PURE__ */ (0, import_jsx_runtime123.jsx)("p", { className: "text-[var(--foreground)]/50 text-xs truncate", children: agent.description })
|
|
37077
|
+
] })
|
|
37078
|
+
]
|
|
37079
|
+
}
|
|
37080
|
+
);
|
|
37081
|
+
}
|
|
37082
|
+
return /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(
|
|
37083
|
+
"div",
|
|
37084
|
+
{
|
|
37085
|
+
className: cn(
|
|
37086
|
+
"my-3 rounded-xl border border-[var(--border-color)] bg-[var(--card-background)] overflow-hidden",
|
|
37087
|
+
className
|
|
37088
|
+
),
|
|
37089
|
+
children: [
|
|
37090
|
+
/* @__PURE__ */ (0, import_jsx_runtime123.jsxs)("div", { className: "flex items-start gap-4 px-5 py-4", children: [
|
|
37091
|
+
/* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(Avatar, { className: "h-12 w-12 shrink-0 border-2 border-[var(--primary-color)]/20", children: [
|
|
37092
|
+
/* @__PURE__ */ (0, import_jsx_runtime123.jsx)(AvatarImage, { src: isEditing && editState.image ? editState.image : avatarUrl, alt: agent.display_name }),
|
|
37093
|
+
/* @__PURE__ */ (0, import_jsx_runtime123.jsx)(AvatarFallback, { className: "bg-[var(--primary-color)]/10 text-[var(--primary-color)] text-lg font-bold", children: agent.display_name.charAt(0) })
|
|
37094
|
+
] }),
|
|
37095
|
+
/* @__PURE__ */ (0, import_jsx_runtime123.jsx)("div", { className: "flex-1 min-w-0", children: isEditing ? /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)("div", { className: "space-y-2", children: [
|
|
37096
|
+
/* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
|
|
37097
|
+
"input",
|
|
37098
|
+
{
|
|
37099
|
+
type: "text",
|
|
37100
|
+
value: editState.display_name,
|
|
37101
|
+
onChange: (e) => setEditState((s) => ({ ...s, display_name: e.target.value })),
|
|
37102
|
+
className: "w-full bg-[var(--card-background)] border border-[var(--border-color)] rounded-lg px-3 py-1.5 text-sm text-[var(--foreground)] font-semibold outline-none focus:border-[var(--primary-color)] transition-colors",
|
|
37103
|
+
placeholder: "Display name"
|
|
37104
|
+
}
|
|
37105
|
+
),
|
|
37106
|
+
/* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
|
|
37107
|
+
"textarea",
|
|
37108
|
+
{
|
|
37109
|
+
value: editState.description,
|
|
37110
|
+
onChange: (e) => setEditState((s) => ({ ...s, description: e.target.value })),
|
|
37111
|
+
className: "w-full bg-[var(--card-background)] border border-[var(--border-color)] rounded-lg px-3 py-1.5 text-xs text-[var(--foreground)]/70 outline-none focus:border-[var(--primary-color)] transition-colors resize-none",
|
|
37112
|
+
rows: 2,
|
|
37113
|
+
placeholder: "Description"
|
|
37114
|
+
}
|
|
37115
|
+
),
|
|
37116
|
+
/* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
|
|
37117
|
+
"input",
|
|
37118
|
+
{
|
|
37119
|
+
type: "text",
|
|
37120
|
+
value: editState.image,
|
|
37121
|
+
onChange: (e) => setEditState((s) => ({ ...s, image: e.target.value })),
|
|
37122
|
+
className: "w-full bg-[var(--card-background)] border border-[var(--border-color)] rounded-lg px-3 py-1.5 text-xs text-[var(--foreground)]/70 font-mono outline-none focus:border-[var(--primary-color)] transition-colors",
|
|
37123
|
+
placeholder: "Avatar image URL"
|
|
37124
|
+
}
|
|
37125
|
+
)
|
|
37126
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(import_jsx_runtime123.Fragment, { children: [
|
|
37127
|
+
/* @__PURE__ */ (0, import_jsx_runtime123.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
37128
|
+
/* @__PURE__ */ (0, import_jsx_runtime123.jsx)("h4", { className: "text-sm font-semibold text-[var(--foreground)] truncate", children: agent.display_name }),
|
|
37129
|
+
/* @__PURE__ */ (0, import_jsx_runtime123.jsx)("span", { className: "text-[11px] font-mono text-[var(--foreground)]/40 bg-[var(--foreground)]/[0.05] px-1.5 py-0.5 rounded", children: agent.name }),
|
|
37130
|
+
/* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
|
|
37131
|
+
"span",
|
|
37132
|
+
{
|
|
37133
|
+
className: cn(
|
|
37134
|
+
"text-[10px] px-1.5 py-0.5 rounded-full font-medium",
|
|
37135
|
+
agent.enabled ? "bg-emerald-500/10 text-emerald-600" : "bg-red-500/10 text-red-500"
|
|
37136
|
+
),
|
|
37137
|
+
children: agent.enabled ? "Active" : "Disabled"
|
|
37138
|
+
}
|
|
37139
|
+
)
|
|
37140
|
+
] }),
|
|
37141
|
+
/* @__PURE__ */ (0, import_jsx_runtime123.jsx)("p", { className: "text-xs text-[var(--foreground)]/60 mt-1 leading-relaxed", children: agent.description })
|
|
37142
|
+
] }) }),
|
|
37143
|
+
editable && onSave && /* @__PURE__ */ (0, import_jsx_runtime123.jsx)("div", { className: "flex items-center gap-1.5 shrink-0", children: isEditing ? /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(import_jsx_runtime123.Fragment, { children: [
|
|
37144
|
+
/* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
|
|
37145
|
+
"button",
|
|
37146
|
+
{
|
|
37147
|
+
onClick: handleCancel,
|
|
37148
|
+
disabled: isSaving,
|
|
37149
|
+
className: "text-[11px] px-2.5 py-1 rounded-md border border-[var(--border-color)] text-[var(--foreground)]/60 hover:text-[var(--foreground)] transition-colors disabled:opacity-50",
|
|
37150
|
+
children: "Cancel"
|
|
37151
|
+
}
|
|
37152
|
+
),
|
|
37153
|
+
/* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
|
|
37154
|
+
"button",
|
|
37155
|
+
{
|
|
37156
|
+
onClick: handleSave,
|
|
37157
|
+
disabled: isSaving,
|
|
37158
|
+
className: "text-[11px] px-2.5 py-1 rounded-md bg-[var(--primary-color)] text-white hover:opacity-90 transition-opacity disabled:opacity-50",
|
|
37159
|
+
children: isSaving ? "Saving..." : "Save"
|
|
37160
|
+
}
|
|
37161
|
+
)
|
|
37162
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
|
|
37163
|
+
"button",
|
|
37164
|
+
{
|
|
37165
|
+
onClick: handleEdit,
|
|
37166
|
+
className: "text-[11px] px-2.5 py-1 rounded-md border border-[var(--border-color)] text-[var(--foreground)]/50 hover:text-[var(--foreground)] hover:border-[var(--primary-color)]/50 transition-colors",
|
|
37167
|
+
children: "Edit"
|
|
37168
|
+
}
|
|
37169
|
+
) })
|
|
37170
|
+
] }),
|
|
37171
|
+
/* @__PURE__ */ (0, import_jsx_runtime123.jsx)("div", { className: "flex flex-wrap items-center gap-3 px-5 pb-3 text-xs", children: /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)("span", { className: "text-[var(--foreground)]/40", children: [
|
|
37172
|
+
"Model:",
|
|
37173
|
+
" ",
|
|
37174
|
+
/* @__PURE__ */ (0, import_jsx_runtime123.jsx)("span", { className: "font-mono text-[var(--foreground)]/70", children: agent.model })
|
|
37175
|
+
] }) }),
|
|
37176
|
+
agent.tools && agent.tools.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)("div", { className: "border-t border-[var(--border-color)] px-5 py-3", children: [
|
|
37177
|
+
/* @__PURE__ */ (0, import_jsx_runtime123.jsxs)("p", { className: "text-[11px] font-semibold text-[var(--foreground)]/40 uppercase tracking-wide mb-2", children: [
|
|
37178
|
+
"Tools (",
|
|
37179
|
+
agent.tools.length,
|
|
37180
|
+
")"
|
|
37181
|
+
] }),
|
|
37182
|
+
/* @__PURE__ */ (0, import_jsx_runtime123.jsx)("div", { className: "flex flex-wrap gap-1.5", children: agent.tools.map((tool) => /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
|
|
37183
|
+
"span",
|
|
37184
|
+
{
|
|
37185
|
+
className: "text-[11px] px-2 py-0.5 rounded-md bg-[var(--primary-color)]/10 text-[var(--primary-color)] font-mono border border-[var(--primary-color)]/20",
|
|
37186
|
+
children: tool
|
|
37187
|
+
},
|
|
37188
|
+
tool
|
|
37189
|
+
)) })
|
|
37190
|
+
] })
|
|
37191
|
+
]
|
|
37192
|
+
}
|
|
37193
|
+
);
|
|
37194
|
+
};
|
|
37195
|
+
|
|
37196
|
+
// src/molecules/agent-builder/AgentDataTable/AgentDataTable.tsx
|
|
37197
|
+
var import_jsx_runtime124 = require("react/jsx-runtime");
|
|
37198
|
+
var AgentDataTable = ({
|
|
37199
|
+
headers,
|
|
37200
|
+
rows,
|
|
37201
|
+
className
|
|
37202
|
+
}) => {
|
|
37203
|
+
const renderCell = (value) => {
|
|
37204
|
+
if (typeof value === "boolean") {
|
|
37205
|
+
return /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(
|
|
37206
|
+
"span",
|
|
37207
|
+
{
|
|
37208
|
+
className: cn(
|
|
37209
|
+
"inline-flex items-center gap-1 text-[11px] font-medium px-2 py-0.5 rounded-full",
|
|
37210
|
+
value ? "bg-emerald-500/10 text-emerald-600" : "bg-red-500/10 text-red-500"
|
|
37211
|
+
),
|
|
37212
|
+
children: [
|
|
37213
|
+
/* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
|
|
37214
|
+
"span",
|
|
37215
|
+
{
|
|
37216
|
+
className: cn(
|
|
37217
|
+
"w-1.5 h-1.5 rounded-full",
|
|
37218
|
+
value ? "bg-emerald-500" : "bg-red-500"
|
|
37219
|
+
)
|
|
37220
|
+
}
|
|
37221
|
+
),
|
|
37222
|
+
value ? "Yes" : "No"
|
|
37223
|
+
]
|
|
37224
|
+
}
|
|
37225
|
+
);
|
|
37226
|
+
}
|
|
37227
|
+
return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("span", { className: "text-[var(--foreground)]", children: String(value) });
|
|
37228
|
+
};
|
|
37229
|
+
return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
|
|
37230
|
+
"div",
|
|
37231
|
+
{
|
|
37232
|
+
className: cn(
|
|
37233
|
+
"my-3 rounded-xl border border-[var(--border-color)] bg-[var(--card-background)] overflow-hidden",
|
|
37234
|
+
className
|
|
37235
|
+
),
|
|
37236
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("div", { className: "overflow-x-auto", children: /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)("table", { className: "w-full text-xs", children: [
|
|
37237
|
+
/* @__PURE__ */ (0, import_jsx_runtime124.jsx)("thead", { children: /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("tr", { className: "border-b border-[var(--border-color)] bg-[var(--foreground)]/[0.03]", children: headers.map((header) => /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
|
|
37238
|
+
"th",
|
|
37239
|
+
{
|
|
37240
|
+
className: "text-left px-4 py-2.5 text-[11px] font-semibold text-[var(--foreground)]/60 uppercase tracking-wide whitespace-nowrap",
|
|
37241
|
+
children: header
|
|
37242
|
+
},
|
|
37243
|
+
header
|
|
37244
|
+
)) }) }),
|
|
37245
|
+
/* @__PURE__ */ (0, import_jsx_runtime124.jsx)("tbody", { children: rows.map((row, rowIdx) => /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
|
|
37246
|
+
"tr",
|
|
37247
|
+
{
|
|
37248
|
+
className: "border-b border-[var(--border-color)] last:border-b-0 hover:bg-[var(--foreground)]/[0.02] transition-colors",
|
|
37249
|
+
children: row.map((cell, cellIdx) => /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
|
|
37250
|
+
"td",
|
|
37251
|
+
{
|
|
37252
|
+
className: "px-4 py-2.5 text-xs whitespace-nowrap",
|
|
37253
|
+
children: renderCell(cell)
|
|
37254
|
+
},
|
|
37255
|
+
cellIdx
|
|
37256
|
+
))
|
|
37257
|
+
},
|
|
37258
|
+
rowIdx
|
|
37259
|
+
)) })
|
|
37260
|
+
] }) })
|
|
37261
|
+
}
|
|
37262
|
+
);
|
|
37263
|
+
};
|
|
37264
|
+
|
|
37265
|
+
// src/molecules/agent-builder/WorkflowVisualizer/WorkflowVisualizer.tsx
|
|
37266
|
+
var import_react66 = require("react");
|
|
37267
|
+
var import_jsx_runtime125 = require("react/jsx-runtime");
|
|
37268
|
+
var WorkflowVisualizer = ({
|
|
37269
|
+
steps,
|
|
37270
|
+
className
|
|
37271
|
+
}) => {
|
|
37272
|
+
const [expandedStep, setExpandedStep] = (0, import_react66.useState)(null);
|
|
37273
|
+
return /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(
|
|
37274
|
+
"div",
|
|
37275
|
+
{
|
|
37276
|
+
className: cn(
|
|
37277
|
+
"my-3 rounded-xl border border-[var(--border-color)] bg-[var(--card-background)] overflow-hidden shadow-sm",
|
|
37278
|
+
className
|
|
37279
|
+
),
|
|
37280
|
+
children: [
|
|
37281
|
+
/* @__PURE__ */ (0, import_jsx_runtime125.jsxs)("div", { className: "px-4 py-3 border-b border-[var(--border-color)] bg-[var(--foreground)]/[0.03] flex items-center gap-2.5", children: [
|
|
37282
|
+
/* @__PURE__ */ (0, import_jsx_runtime125.jsx)("div", { className: "w-6 h-6 rounded-md bg-[var(--primary-color)]/10 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
|
|
37283
|
+
"svg",
|
|
37284
|
+
{
|
|
37285
|
+
width: "14",
|
|
37286
|
+
height: "14",
|
|
37287
|
+
viewBox: "0 0 24 24",
|
|
37288
|
+
fill: "none",
|
|
37289
|
+
stroke: "var(--primary-color)",
|
|
37290
|
+
strokeWidth: "2",
|
|
37291
|
+
strokeLinecap: "round",
|
|
37292
|
+
strokeLinejoin: "round",
|
|
37293
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)("polyline", { points: "22 12 18 12 15 21 9 3 6 12 2 12" })
|
|
37294
|
+
}
|
|
37295
|
+
) }),
|
|
37296
|
+
/* @__PURE__ */ (0, import_jsx_runtime125.jsx)("h4", { className: "text-sm font-semibold text-[var(--foreground)]", children: "Workflow" }),
|
|
37297
|
+
/* @__PURE__ */ (0, import_jsx_runtime125.jsxs)("span", { className: "ml-auto text-[11px] font-medium text-[var(--foreground)]/40 bg-[var(--foreground)]/[0.06] px-2 py-0.5 rounded-full", children: [
|
|
37298
|
+
steps.length,
|
|
37299
|
+
" steps"
|
|
37300
|
+
] })
|
|
37301
|
+
] }),
|
|
37302
|
+
/* @__PURE__ */ (0, import_jsx_runtime125.jsx)("div", { className: "px-4 py-3", children: steps.map((step, idx) => {
|
|
37303
|
+
const isLast = idx === steps.length - 1;
|
|
37304
|
+
const isExpanded = expandedStep === step.id;
|
|
37305
|
+
return /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)("div", { className: "flex gap-3", children: [
|
|
37306
|
+
/* @__PURE__ */ (0, import_jsx_runtime125.jsxs)("div", { className: "flex flex-col items-center shrink-0", children: [
|
|
37307
|
+
/* @__PURE__ */ (0, import_jsx_runtime125.jsx)("div", { className: "w-7 h-7 rounded-full bg-[var(--primary-color)]/10 border-2 border-[var(--primary-color)]/30 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)("span", { className: "text-[10px] font-bold text-[var(--primary-color)]", children: idx + 1 }) }),
|
|
37308
|
+
!isLast && /* @__PURE__ */ (0, import_jsx_runtime125.jsx)("div", { className: "w-0.5 flex-1 min-h-[16px] bg-[var(--primary-color)]/15" })
|
|
37309
|
+
] }),
|
|
37310
|
+
/* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(
|
|
37311
|
+
"div",
|
|
37312
|
+
{
|
|
37313
|
+
className: cn(
|
|
37314
|
+
"flex-1 mb-3 rounded-lg border border-[var(--border-color)] transition-colors",
|
|
37315
|
+
isExpanded ? "bg-[var(--foreground)]/[0.02]" : "hover:bg-[var(--foreground)]/[0.02]"
|
|
37316
|
+
),
|
|
37317
|
+
children: [
|
|
37318
|
+
/* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(
|
|
37319
|
+
"button",
|
|
37320
|
+
{
|
|
37321
|
+
onClick: () => setExpandedStep(isExpanded ? null : step.id),
|
|
37322
|
+
className: "w-full text-left px-3 py-2.5 flex items-center gap-2",
|
|
37323
|
+
children: [
|
|
37324
|
+
/* @__PURE__ */ (0, import_jsx_runtime125.jsxs)("div", { className: "flex-1 min-w-0", children: [
|
|
37325
|
+
/* @__PURE__ */ (0, import_jsx_runtime125.jsx)("span", { className: "text-[13px] font-medium text-[var(--foreground)]", children: step.name }),
|
|
37326
|
+
step.description && !isExpanded && /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)("span", { className: "text-xs text-[var(--foreground)]/40 ml-2", children: [
|
|
37327
|
+
"\u2014 ",
|
|
37328
|
+
step.description
|
|
37329
|
+
] })
|
|
37330
|
+
] }),
|
|
37331
|
+
/* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
|
|
37332
|
+
"svg",
|
|
37333
|
+
{
|
|
37334
|
+
width: "12",
|
|
37335
|
+
height: "12",
|
|
37336
|
+
viewBox: "0 0 24 24",
|
|
37337
|
+
fill: "none",
|
|
37338
|
+
stroke: "currentColor",
|
|
37339
|
+
strokeWidth: "2",
|
|
37340
|
+
className: cn(
|
|
37341
|
+
"shrink-0 text-[var(--foreground)]/30 transition-transform",
|
|
37342
|
+
isExpanded && "rotate-180"
|
|
37343
|
+
),
|
|
37344
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)("polyline", { points: "6 9 12 15 18 9" })
|
|
37345
|
+
}
|
|
37346
|
+
)
|
|
37347
|
+
]
|
|
37348
|
+
}
|
|
37349
|
+
),
|
|
37350
|
+
isExpanded && /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)("div", { className: "px-3 pb-3 space-y-2.5", children: [
|
|
37351
|
+
step.description && /* @__PURE__ */ (0, import_jsx_runtime125.jsx)("p", { className: "text-xs text-[var(--foreground)]/50 leading-relaxed", children: step.description }),
|
|
37352
|
+
step.sub_steps && step.sub_steps.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime125.jsx)("div", { className: "space-y-1", children: step.sub_steps.map((sub) => /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(
|
|
37353
|
+
"div",
|
|
37354
|
+
{
|
|
37355
|
+
className: "flex items-start gap-2 text-xs",
|
|
37356
|
+
children: [
|
|
37357
|
+
/* @__PURE__ */ (0, import_jsx_runtime125.jsx)("span", { className: "shrink-0 mt-0.5 w-1.5 h-1.5 rounded-full bg-[var(--primary-color)]/40" }),
|
|
37358
|
+
/* @__PURE__ */ (0, import_jsx_runtime125.jsx)("span", { className: "text-[var(--foreground)]/60", children: sub.action })
|
|
37359
|
+
]
|
|
37360
|
+
},
|
|
37361
|
+
sub.id
|
|
37362
|
+
)) }),
|
|
37363
|
+
step.tools && step.tools.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)("div", { className: "flex items-center gap-1.5 flex-wrap", children: [
|
|
37364
|
+
/* @__PURE__ */ (0, import_jsx_runtime125.jsx)("span", { className: "text-[10px] text-[var(--foreground)]/30 uppercase font-semibold tracking-wider", children: "Tools:" }),
|
|
37365
|
+
step.tools.map((tool) => /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
|
|
37366
|
+
"span",
|
|
37367
|
+
{
|
|
37368
|
+
className: "text-[10px] font-mono px-1.5 py-0.5 rounded bg-[var(--primary-color)]/[0.08] text-[var(--primary-color)]/70 border border-[var(--primary-color)]/10",
|
|
37369
|
+
children: tool
|
|
37370
|
+
},
|
|
37371
|
+
tool
|
|
37372
|
+
))
|
|
37373
|
+
] }),
|
|
37374
|
+
step.on_failure && /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)("div", { className: "flex items-start gap-2 text-xs bg-[#ef4444]/[0.06] border border-[#ef4444]/10 rounded-md px-2.5 py-2", children: [
|
|
37375
|
+
/* @__PURE__ */ (0, import_jsx_runtime125.jsx)("span", { className: "shrink-0 text-[10px] font-semibold text-[#ef4444]/70 uppercase tracking-wider mt-px", children: "On failure:" }),
|
|
37376
|
+
/* @__PURE__ */ (0, import_jsx_runtime125.jsx)("span", { className: "text-[var(--foreground)]/50", children: step.on_failure })
|
|
37377
|
+
] })
|
|
37378
|
+
] })
|
|
37379
|
+
]
|
|
37380
|
+
}
|
|
37381
|
+
)
|
|
37382
|
+
] }, step.id);
|
|
37383
|
+
}) })
|
|
37384
|
+
]
|
|
37385
|
+
}
|
|
37386
|
+
);
|
|
37387
|
+
};
|
|
37388
|
+
|
|
37389
|
+
// src/molecules/agent-builder/InstructionPreview/InstructionPreview.tsx
|
|
37390
|
+
var import_react67 = require("react");
|
|
37391
|
+
var import_jsx_runtime126 = require("react/jsx-runtime");
|
|
37392
|
+
var InstructionPreview = ({
|
|
37393
|
+
agent_name,
|
|
37394
|
+
description,
|
|
37395
|
+
instruction,
|
|
37396
|
+
workflow_summary,
|
|
37397
|
+
tools,
|
|
37398
|
+
className
|
|
37399
|
+
}) => {
|
|
37400
|
+
const [isExpanded, setIsExpanded] = (0, import_react67.useState)(false);
|
|
37401
|
+
const previewLength = 300;
|
|
37402
|
+
const isLong = instruction.length > previewLength;
|
|
37403
|
+
const displayText = isExpanded || !isLong ? instruction : instruction.slice(0, previewLength) + "...";
|
|
37404
|
+
return /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(
|
|
37405
|
+
"div",
|
|
37406
|
+
{
|
|
37407
|
+
className: cn(
|
|
37408
|
+
"my-3 rounded-xl border border-[var(--border-color)] bg-[var(--card-background)] overflow-hidden shadow-sm",
|
|
37409
|
+
className
|
|
37410
|
+
),
|
|
37411
|
+
children: [
|
|
37412
|
+
/* @__PURE__ */ (0, import_jsx_runtime126.jsx)("div", { className: "px-4 py-3 border-b border-[var(--border-color)] bg-[var(--foreground)]/[0.03]", children: /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)("div", { className: "flex items-center gap-2.5", children: [
|
|
37413
|
+
/* @__PURE__ */ (0, import_jsx_runtime126.jsx)("div", { className: "w-6 h-6 rounded-md bg-[var(--primary-color)]/10 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(
|
|
37414
|
+
"svg",
|
|
37415
|
+
{
|
|
37416
|
+
width: "14",
|
|
37417
|
+
height: "14",
|
|
37418
|
+
viewBox: "0 0 24 24",
|
|
37419
|
+
fill: "none",
|
|
37420
|
+
stroke: "var(--primary-color)",
|
|
37421
|
+
strokeWidth: "2",
|
|
37422
|
+
strokeLinecap: "round",
|
|
37423
|
+
strokeLinejoin: "round",
|
|
37424
|
+
children: [
|
|
37425
|
+
/* @__PURE__ */ (0, import_jsx_runtime126.jsx)("path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }),
|
|
37426
|
+
/* @__PURE__ */ (0, import_jsx_runtime126.jsx)("polyline", { points: "14 2 14 8 20 8" }),
|
|
37427
|
+
/* @__PURE__ */ (0, import_jsx_runtime126.jsx)("line", { x1: "16", y1: "13", x2: "8", y2: "13" }),
|
|
37428
|
+
/* @__PURE__ */ (0, import_jsx_runtime126.jsx)("line", { x1: "16", y1: "17", x2: "8", y2: "17" }),
|
|
37429
|
+
/* @__PURE__ */ (0, import_jsx_runtime126.jsx)("polyline", { points: "10 9 9 9 8 9" })
|
|
37430
|
+
]
|
|
37431
|
+
}
|
|
37432
|
+
) }),
|
|
37433
|
+
/* @__PURE__ */ (0, import_jsx_runtime126.jsxs)("div", { className: "flex-1 min-w-0", children: [
|
|
37434
|
+
/* @__PURE__ */ (0, import_jsx_runtime126.jsx)("h4", { className: "text-sm font-semibold text-[var(--foreground)]", children: agent_name }),
|
|
37435
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime126.jsx)("p", { className: "text-[11px] text-[var(--foreground)]/40 mt-0.5", children: description })
|
|
37436
|
+
] })
|
|
37437
|
+
] }) }),
|
|
37438
|
+
/* @__PURE__ */ (0, import_jsx_runtime126.jsxs)("div", { className: "px-4 py-3 space-y-3", children: [
|
|
37439
|
+
/* @__PURE__ */ (0, import_jsx_runtime126.jsxs)("div", { children: [
|
|
37440
|
+
/* @__PURE__ */ (0, import_jsx_runtime126.jsx)("p", { className: "text-[10px] font-semibold text-[var(--foreground)]/30 uppercase tracking-wider mb-1.5", children: "Instruction" }),
|
|
37441
|
+
/* @__PURE__ */ (0, import_jsx_runtime126.jsx)("div", { className: "text-xs text-[var(--foreground)]/60 leading-relaxed whitespace-pre-wrap font-mono bg-[var(--foreground)]/[0.02] border border-[var(--border-color)] rounded-lg p-3", children: displayText }),
|
|
37442
|
+
isLong && /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
|
|
37443
|
+
"button",
|
|
37444
|
+
{
|
|
37445
|
+
onClick: () => setIsExpanded(!isExpanded),
|
|
37446
|
+
className: "text-[11px] text-[var(--primary-color)] hover:underline mt-1",
|
|
37447
|
+
children: isExpanded ? "Show less" : "Show full instruction"
|
|
37448
|
+
}
|
|
37449
|
+
)
|
|
37450
|
+
] }),
|
|
37451
|
+
workflow_summary && workflow_summary.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)("div", { children: [
|
|
37452
|
+
/* @__PURE__ */ (0, import_jsx_runtime126.jsx)("p", { className: "text-[10px] font-semibold text-[var(--foreground)]/30 uppercase tracking-wider mb-1.5", children: "Workflow" }),
|
|
37453
|
+
/* @__PURE__ */ (0, import_jsx_runtime126.jsx)("div", { className: "space-y-1", children: workflow_summary.map((step, idx) => /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)("div", { className: "flex items-start gap-2 text-xs", children: [
|
|
37454
|
+
/* @__PURE__ */ (0, import_jsx_runtime126.jsx)("span", { className: "shrink-0 w-5 h-5 rounded-full bg-[var(--primary-color)]/10 flex items-center justify-center text-[10px] font-bold text-[var(--primary-color)]", children: idx + 1 }),
|
|
37455
|
+
/* @__PURE__ */ (0, import_jsx_runtime126.jsx)("span", { className: "text-[var(--foreground)]/50 mt-0.5", children: step })
|
|
37456
|
+
] }, idx)) })
|
|
37457
|
+
] }),
|
|
37458
|
+
tools && tools.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)("div", { children: [
|
|
37459
|
+
/* @__PURE__ */ (0, import_jsx_runtime126.jsx)("p", { className: "text-[10px] font-semibold text-[var(--foreground)]/30 uppercase tracking-wider mb-1.5", children: "Tools" }),
|
|
37460
|
+
/* @__PURE__ */ (0, import_jsx_runtime126.jsx)("div", { className: "flex flex-wrap gap-1.5", children: tools.map((tool) => /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
|
|
37461
|
+
"span",
|
|
37462
|
+
{
|
|
37463
|
+
className: "text-[10px] font-mono px-2 py-0.5 rounded bg-[var(--primary-color)]/[0.08] text-[var(--primary-color)]/70 border border-[var(--primary-color)]/10",
|
|
37464
|
+
children: tool
|
|
37465
|
+
},
|
|
37466
|
+
tool
|
|
37467
|
+
)) })
|
|
37468
|
+
] })
|
|
37469
|
+
] })
|
|
37470
|
+
]
|
|
37471
|
+
}
|
|
37472
|
+
);
|
|
37473
|
+
};
|
|
37474
|
+
|
|
36881
37475
|
// src/components/ui/index.ts
|
|
36882
37476
|
var ui_exports = {};
|
|
36883
37477
|
__export(ui_exports, {
|
|
@@ -37170,7 +37764,7 @@ __export(ui_exports, {
|
|
|
37170
37764
|
// src/components/ui/button-group.tsx
|
|
37171
37765
|
var import_react_slot4 = require("@radix-ui/react-slot");
|
|
37172
37766
|
var import_class_variance_authority8 = require("class-variance-authority");
|
|
37173
|
-
var
|
|
37767
|
+
var import_jsx_runtime127 = require("react/jsx-runtime");
|
|
37174
37768
|
var buttonGroupVariants = (0, import_class_variance_authority8.cva)(
|
|
37175
37769
|
"flex w-fit items-stretch has-[>[data-slot=button-group]]:gap-2 [&>*]:focus-visible:relative [&>*]:focus-visible:z-10 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-md [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1",
|
|
37176
37770
|
{
|
|
@@ -37190,7 +37784,7 @@ function ButtonGroup({
|
|
|
37190
37784
|
orientation,
|
|
37191
37785
|
...props
|
|
37192
37786
|
}) {
|
|
37193
|
-
return /* @__PURE__ */ (0,
|
|
37787
|
+
return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
|
|
37194
37788
|
"div",
|
|
37195
37789
|
{
|
|
37196
37790
|
role: "group",
|
|
@@ -37207,7 +37801,7 @@ function ButtonGroupText({
|
|
|
37207
37801
|
...props
|
|
37208
37802
|
}) {
|
|
37209
37803
|
const Comp = asChild ? import_react_slot4.Slot : "div";
|
|
37210
|
-
return /* @__PURE__ */ (0,
|
|
37804
|
+
return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
|
|
37211
37805
|
Comp,
|
|
37212
37806
|
{
|
|
37213
37807
|
className: cn(
|
|
@@ -37223,7 +37817,7 @@ function ButtonGroupSeparator({
|
|
|
37223
37817
|
orientation = "vertical",
|
|
37224
37818
|
...props
|
|
37225
37819
|
}) {
|
|
37226
|
-
return /* @__PURE__ */ (0,
|
|
37820
|
+
return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
|
|
37227
37821
|
Separator2,
|
|
37228
37822
|
{
|
|
37229
37823
|
"data-slot": "button-group-separator",
|
|
@@ -37239,9 +37833,9 @@ function ButtonGroupSeparator({
|
|
|
37239
37833
|
|
|
37240
37834
|
// src/components/ui/empty.tsx
|
|
37241
37835
|
var import_class_variance_authority9 = require("class-variance-authority");
|
|
37242
|
-
var
|
|
37836
|
+
var import_jsx_runtime128 = require("react/jsx-runtime");
|
|
37243
37837
|
function Empty({ className, ...props }) {
|
|
37244
|
-
return /* @__PURE__ */ (0,
|
|
37838
|
+
return /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
|
|
37245
37839
|
"div",
|
|
37246
37840
|
{
|
|
37247
37841
|
"data-slot": "empty",
|
|
@@ -37254,7 +37848,7 @@ function Empty({ className, ...props }) {
|
|
|
37254
37848
|
);
|
|
37255
37849
|
}
|
|
37256
37850
|
function EmptyHeader({ className, ...props }) {
|
|
37257
|
-
return /* @__PURE__ */ (0,
|
|
37851
|
+
return /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
|
|
37258
37852
|
"div",
|
|
37259
37853
|
{
|
|
37260
37854
|
"data-slot": "empty-header",
|
|
@@ -37285,7 +37879,7 @@ function EmptyMedia({
|
|
|
37285
37879
|
variant = "default",
|
|
37286
37880
|
...props
|
|
37287
37881
|
}) {
|
|
37288
|
-
return /* @__PURE__ */ (0,
|
|
37882
|
+
return /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
|
|
37289
37883
|
"div",
|
|
37290
37884
|
{
|
|
37291
37885
|
"data-slot": "empty-icon",
|
|
@@ -37296,7 +37890,7 @@ function EmptyMedia({
|
|
|
37296
37890
|
);
|
|
37297
37891
|
}
|
|
37298
37892
|
function EmptyTitle({ className, ...props }) {
|
|
37299
|
-
return /* @__PURE__ */ (0,
|
|
37893
|
+
return /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
|
|
37300
37894
|
"div",
|
|
37301
37895
|
{
|
|
37302
37896
|
"data-slot": "empty-title",
|
|
@@ -37306,7 +37900,7 @@ function EmptyTitle({ className, ...props }) {
|
|
|
37306
37900
|
);
|
|
37307
37901
|
}
|
|
37308
37902
|
function EmptyDescription({ className, ...props }) {
|
|
37309
|
-
return /* @__PURE__ */ (0,
|
|
37903
|
+
return /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
|
|
37310
37904
|
"div",
|
|
37311
37905
|
{
|
|
37312
37906
|
"data-slot": "empty-description",
|
|
@@ -37319,7 +37913,7 @@ function EmptyDescription({ className, ...props }) {
|
|
|
37319
37913
|
);
|
|
37320
37914
|
}
|
|
37321
37915
|
function EmptyContent({ className, ...props }) {
|
|
37322
|
-
return /* @__PURE__ */ (0,
|
|
37916
|
+
return /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
|
|
37323
37917
|
"div",
|
|
37324
37918
|
{
|
|
37325
37919
|
"data-slot": "empty-content",
|
|
@@ -37333,11 +37927,11 @@ function EmptyContent({ className, ...props }) {
|
|
|
37333
37927
|
}
|
|
37334
37928
|
|
|
37335
37929
|
// src/components/ui/field.tsx
|
|
37336
|
-
var
|
|
37930
|
+
var import_react68 = require("react");
|
|
37337
37931
|
var import_class_variance_authority10 = require("class-variance-authority");
|
|
37338
|
-
var
|
|
37932
|
+
var import_jsx_runtime129 = require("react/jsx-runtime");
|
|
37339
37933
|
function FieldSet({ className, ...props }) {
|
|
37340
|
-
return /* @__PURE__ */ (0,
|
|
37934
|
+
return /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
|
|
37341
37935
|
"fieldset",
|
|
37342
37936
|
{
|
|
37343
37937
|
"data-slot": "field-set",
|
|
@@ -37355,7 +37949,7 @@ function FieldLegend({
|
|
|
37355
37949
|
variant = "legend",
|
|
37356
37950
|
...props
|
|
37357
37951
|
}) {
|
|
37358
|
-
return /* @__PURE__ */ (0,
|
|
37952
|
+
return /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
|
|
37359
37953
|
"legend",
|
|
37360
37954
|
{
|
|
37361
37955
|
"data-slot": "field-legend",
|
|
@@ -37371,7 +37965,7 @@ function FieldLegend({
|
|
|
37371
37965
|
);
|
|
37372
37966
|
}
|
|
37373
37967
|
function FieldGroup({ className, ...props }) {
|
|
37374
|
-
return /* @__PURE__ */ (0,
|
|
37968
|
+
return /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
|
|
37375
37969
|
"div",
|
|
37376
37970
|
{
|
|
37377
37971
|
"data-slot": "field-group",
|
|
@@ -37411,7 +38005,7 @@ function Field({
|
|
|
37411
38005
|
orientation = "vertical",
|
|
37412
38006
|
...props
|
|
37413
38007
|
}) {
|
|
37414
|
-
return /* @__PURE__ */ (0,
|
|
38008
|
+
return /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
|
|
37415
38009
|
"div",
|
|
37416
38010
|
{
|
|
37417
38011
|
role: "group",
|
|
@@ -37423,7 +38017,7 @@ function Field({
|
|
|
37423
38017
|
);
|
|
37424
38018
|
}
|
|
37425
38019
|
function FieldContent({ className, ...props }) {
|
|
37426
|
-
return /* @__PURE__ */ (0,
|
|
38020
|
+
return /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
|
|
37427
38021
|
"div",
|
|
37428
38022
|
{
|
|
37429
38023
|
"data-slot": "field-content",
|
|
@@ -37439,7 +38033,7 @@ function FieldLabel({
|
|
|
37439
38033
|
className,
|
|
37440
38034
|
...props
|
|
37441
38035
|
}) {
|
|
37442
|
-
return /* @__PURE__ */ (0,
|
|
38036
|
+
return /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
|
|
37443
38037
|
Label,
|
|
37444
38038
|
{
|
|
37445
38039
|
"data-slot": "field-label",
|
|
@@ -37454,7 +38048,7 @@ function FieldLabel({
|
|
|
37454
38048
|
);
|
|
37455
38049
|
}
|
|
37456
38050
|
function FieldTitle({ className, ...props }) {
|
|
37457
|
-
return /* @__PURE__ */ (0,
|
|
38051
|
+
return /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
|
|
37458
38052
|
"div",
|
|
37459
38053
|
{
|
|
37460
38054
|
"data-slot": "field-label",
|
|
@@ -37467,7 +38061,7 @@ function FieldTitle({ className, ...props }) {
|
|
|
37467
38061
|
);
|
|
37468
38062
|
}
|
|
37469
38063
|
function FieldDescription({ className, ...props }) {
|
|
37470
|
-
return /* @__PURE__ */ (0,
|
|
38064
|
+
return /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
|
|
37471
38065
|
"p",
|
|
37472
38066
|
{
|
|
37473
38067
|
"data-slot": "field-description",
|
|
@@ -37486,7 +38080,7 @@ function FieldSeparator({
|
|
|
37486
38080
|
className,
|
|
37487
38081
|
...props
|
|
37488
38082
|
}) {
|
|
37489
|
-
return /* @__PURE__ */ (0,
|
|
38083
|
+
return /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(
|
|
37490
38084
|
"div",
|
|
37491
38085
|
{
|
|
37492
38086
|
"data-slot": "field-separator",
|
|
@@ -37497,8 +38091,8 @@ function FieldSeparator({
|
|
|
37497
38091
|
),
|
|
37498
38092
|
...props,
|
|
37499
38093
|
children: [
|
|
37500
|
-
/* @__PURE__ */ (0,
|
|
37501
|
-
children && /* @__PURE__ */ (0,
|
|
38094
|
+
/* @__PURE__ */ (0, import_jsx_runtime129.jsx)(Separator2, { className: "absolute inset-0 top-1/2" }),
|
|
38095
|
+
children && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
|
|
37502
38096
|
"span",
|
|
37503
38097
|
{
|
|
37504
38098
|
className: "bg-background text-muted-foreground relative mx-auto block w-fit px-2",
|
|
@@ -37516,7 +38110,7 @@ function FieldError({
|
|
|
37516
38110
|
errors,
|
|
37517
38111
|
...props
|
|
37518
38112
|
}) {
|
|
37519
|
-
const content = (0,
|
|
38113
|
+
const content = (0, import_react68.useMemo)(() => {
|
|
37520
38114
|
if (children) {
|
|
37521
38115
|
return children;
|
|
37522
38116
|
}
|
|
@@ -37526,14 +38120,14 @@ function FieldError({
|
|
|
37526
38120
|
if (errors?.length === 1 && errors[0]?.message) {
|
|
37527
38121
|
return errors[0].message;
|
|
37528
38122
|
}
|
|
37529
|
-
return /* @__PURE__ */ (0,
|
|
37530
|
-
(error, index) => error?.message && /* @__PURE__ */ (0,
|
|
38123
|
+
return /* @__PURE__ */ (0, import_jsx_runtime129.jsx)("ul", { className: "ml-4 flex list-disc flex-col gap-1", children: errors.map(
|
|
38124
|
+
(error, index) => error?.message && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)("li", { children: error.message }, index)
|
|
37531
38125
|
) });
|
|
37532
38126
|
}, [children, errors]);
|
|
37533
38127
|
if (!content) {
|
|
37534
38128
|
return null;
|
|
37535
38129
|
}
|
|
37536
|
-
return /* @__PURE__ */ (0,
|
|
38130
|
+
return /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
|
|
37537
38131
|
"div",
|
|
37538
38132
|
{
|
|
37539
38133
|
role: "alert",
|
|
@@ -37547,9 +38141,9 @@ function FieldError({
|
|
|
37547
38141
|
|
|
37548
38142
|
// src/components/ui/input-group.tsx
|
|
37549
38143
|
var import_class_variance_authority11 = require("class-variance-authority");
|
|
37550
|
-
var
|
|
38144
|
+
var import_jsx_runtime130 = require("react/jsx-runtime");
|
|
37551
38145
|
function InputGroup({ className, ...props }) {
|
|
37552
|
-
return /* @__PURE__ */ (0,
|
|
38146
|
+
return /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
|
|
37553
38147
|
"div",
|
|
37554
38148
|
{
|
|
37555
38149
|
"data-slot": "input-group",
|
|
@@ -37593,7 +38187,7 @@ function InputGroupAddon({
|
|
|
37593
38187
|
align = "inline-start",
|
|
37594
38188
|
...props
|
|
37595
38189
|
}) {
|
|
37596
|
-
return /* @__PURE__ */ (0,
|
|
38190
|
+
return /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
|
|
37597
38191
|
"div",
|
|
37598
38192
|
{
|
|
37599
38193
|
role: "group",
|
|
@@ -37633,7 +38227,7 @@ function InputGroupButton({
|
|
|
37633
38227
|
size = "xs",
|
|
37634
38228
|
...props
|
|
37635
38229
|
}) {
|
|
37636
|
-
return /* @__PURE__ */ (0,
|
|
38230
|
+
return /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
|
|
37637
38231
|
Button,
|
|
37638
38232
|
{
|
|
37639
38233
|
type,
|
|
@@ -37645,7 +38239,7 @@ function InputGroupButton({
|
|
|
37645
38239
|
);
|
|
37646
38240
|
}
|
|
37647
38241
|
function InputGroupText({ className, ...props }) {
|
|
37648
|
-
return /* @__PURE__ */ (0,
|
|
38242
|
+
return /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
|
|
37649
38243
|
"span",
|
|
37650
38244
|
{
|
|
37651
38245
|
className: cn(
|
|
@@ -37660,7 +38254,7 @@ function InputGroupInput({
|
|
|
37660
38254
|
className,
|
|
37661
38255
|
...props
|
|
37662
38256
|
}) {
|
|
37663
|
-
return /* @__PURE__ */ (0,
|
|
38257
|
+
return /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
|
|
37664
38258
|
Input,
|
|
37665
38259
|
{
|
|
37666
38260
|
"data-slot": "input-group-control",
|
|
@@ -37676,7 +38270,7 @@ function InputGroupTextarea({
|
|
|
37676
38270
|
className,
|
|
37677
38271
|
...props
|
|
37678
38272
|
}) {
|
|
37679
|
-
return /* @__PURE__ */ (0,
|
|
38273
|
+
return /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
|
|
37680
38274
|
Textarea,
|
|
37681
38275
|
{
|
|
37682
38276
|
"data-slot": "input-group-control",
|
|
@@ -37692,9 +38286,9 @@ function InputGroupTextarea({
|
|
|
37692
38286
|
// src/components/ui/item.tsx
|
|
37693
38287
|
var import_react_slot5 = require("@radix-ui/react-slot");
|
|
37694
38288
|
var import_class_variance_authority12 = require("class-variance-authority");
|
|
37695
|
-
var
|
|
38289
|
+
var import_jsx_runtime131 = require("react/jsx-runtime");
|
|
37696
38290
|
function ItemGroup({ className, ...props }) {
|
|
37697
|
-
return /* @__PURE__ */ (0,
|
|
38291
|
+
return /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
|
|
37698
38292
|
"div",
|
|
37699
38293
|
{
|
|
37700
38294
|
role: "list",
|
|
@@ -37708,7 +38302,7 @@ function ItemSeparator({
|
|
|
37708
38302
|
className,
|
|
37709
38303
|
...props
|
|
37710
38304
|
}) {
|
|
37711
|
-
return /* @__PURE__ */ (0,
|
|
38305
|
+
return /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
|
|
37712
38306
|
Separator2,
|
|
37713
38307
|
{
|
|
37714
38308
|
"data-slot": "item-separator",
|
|
@@ -37746,7 +38340,7 @@ function Item8({
|
|
|
37746
38340
|
...props
|
|
37747
38341
|
}) {
|
|
37748
38342
|
const Comp = asChild ? import_react_slot5.Slot : "div";
|
|
37749
|
-
return /* @__PURE__ */ (0,
|
|
38343
|
+
return /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
|
|
37750
38344
|
Comp,
|
|
37751
38345
|
{
|
|
37752
38346
|
"data-slot": "item",
|
|
@@ -37777,7 +38371,7 @@ function ItemMedia({
|
|
|
37777
38371
|
variant = "default",
|
|
37778
38372
|
...props
|
|
37779
38373
|
}) {
|
|
37780
|
-
return /* @__PURE__ */ (0,
|
|
38374
|
+
return /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
|
|
37781
38375
|
"div",
|
|
37782
38376
|
{
|
|
37783
38377
|
"data-slot": "item-media",
|
|
@@ -37788,7 +38382,7 @@ function ItemMedia({
|
|
|
37788
38382
|
);
|
|
37789
38383
|
}
|
|
37790
38384
|
function ItemContent({ className, ...props }) {
|
|
37791
|
-
return /* @__PURE__ */ (0,
|
|
38385
|
+
return /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
|
|
37792
38386
|
"div",
|
|
37793
38387
|
{
|
|
37794
38388
|
"data-slot": "item-content",
|
|
@@ -37801,7 +38395,7 @@ function ItemContent({ className, ...props }) {
|
|
|
37801
38395
|
);
|
|
37802
38396
|
}
|
|
37803
38397
|
function ItemTitle({ className, ...props }) {
|
|
37804
|
-
return /* @__PURE__ */ (0,
|
|
38398
|
+
return /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
|
|
37805
38399
|
"div",
|
|
37806
38400
|
{
|
|
37807
38401
|
"data-slot": "item-title",
|
|
@@ -37814,7 +38408,7 @@ function ItemTitle({ className, ...props }) {
|
|
|
37814
38408
|
);
|
|
37815
38409
|
}
|
|
37816
38410
|
function ItemDescription({ className, ...props }) {
|
|
37817
|
-
return /* @__PURE__ */ (0,
|
|
38411
|
+
return /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
|
|
37818
38412
|
"p",
|
|
37819
38413
|
{
|
|
37820
38414
|
"data-slot": "item-description",
|
|
@@ -37828,7 +38422,7 @@ function ItemDescription({ className, ...props }) {
|
|
|
37828
38422
|
);
|
|
37829
38423
|
}
|
|
37830
38424
|
function ItemActions({ className, ...props }) {
|
|
37831
|
-
return /* @__PURE__ */ (0,
|
|
38425
|
+
return /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
|
|
37832
38426
|
"div",
|
|
37833
38427
|
{
|
|
37834
38428
|
"data-slot": "item-actions",
|
|
@@ -37838,7 +38432,7 @@ function ItemActions({ className, ...props }) {
|
|
|
37838
38432
|
);
|
|
37839
38433
|
}
|
|
37840
38434
|
function ItemHeader({ className, ...props }) {
|
|
37841
|
-
return /* @__PURE__ */ (0,
|
|
38435
|
+
return /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
|
|
37842
38436
|
"div",
|
|
37843
38437
|
{
|
|
37844
38438
|
"data-slot": "item-header",
|
|
@@ -37851,7 +38445,7 @@ function ItemHeader({ className, ...props }) {
|
|
|
37851
38445
|
);
|
|
37852
38446
|
}
|
|
37853
38447
|
function ItemFooter({ className, ...props }) {
|
|
37854
|
-
return /* @__PURE__ */ (0,
|
|
38448
|
+
return /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
|
|
37855
38449
|
"div",
|
|
37856
38450
|
{
|
|
37857
38451
|
"data-slot": "item-footer",
|
|
@@ -37865,9 +38459,9 @@ function ItemFooter({ className, ...props }) {
|
|
|
37865
38459
|
}
|
|
37866
38460
|
|
|
37867
38461
|
// src/components/ui/kbd.tsx
|
|
37868
|
-
var
|
|
38462
|
+
var import_jsx_runtime132 = require("react/jsx-runtime");
|
|
37869
38463
|
function Kbd({ className, ...props }) {
|
|
37870
|
-
return /* @__PURE__ */ (0,
|
|
38464
|
+
return /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(
|
|
37871
38465
|
"kbd",
|
|
37872
38466
|
{
|
|
37873
38467
|
"data-slot": "kbd",
|
|
@@ -37882,7 +38476,7 @@ function Kbd({ className, ...props }) {
|
|
|
37882
38476
|
);
|
|
37883
38477
|
}
|
|
37884
38478
|
function KbdGroup({ className, ...props }) {
|
|
37885
|
-
return /* @__PURE__ */ (0,
|
|
38479
|
+
return /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(
|
|
37886
38480
|
"kbd",
|
|
37887
38481
|
{
|
|
37888
38482
|
"data-slot": "kbd-group",
|
|
@@ -37893,16 +38487,16 @@ function KbdGroup({ className, ...props }) {
|
|
|
37893
38487
|
}
|
|
37894
38488
|
|
|
37895
38489
|
// src/components/ui/sidebar.tsx
|
|
37896
|
-
var
|
|
38490
|
+
var React99 = __toESM(require("react"), 1);
|
|
37897
38491
|
var import_react_slot6 = require("@radix-ui/react-slot");
|
|
37898
38492
|
var import_class_variance_authority13 = require("class-variance-authority");
|
|
37899
38493
|
|
|
37900
38494
|
// src/hooks/use-mobile.tsx
|
|
37901
|
-
var
|
|
38495
|
+
var React98 = __toESM(require("react"), 1);
|
|
37902
38496
|
var MOBILE_BREAKPOINT = 768;
|
|
37903
38497
|
function useIsMobile() {
|
|
37904
|
-
const [isMobile, setIsMobile] =
|
|
37905
|
-
|
|
38498
|
+
const [isMobile, setIsMobile] = React98.useState(void 0);
|
|
38499
|
+
React98.useEffect(() => {
|
|
37906
38500
|
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
37907
38501
|
const onChange = () => {
|
|
37908
38502
|
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
@@ -37915,22 +38509,22 @@ function useIsMobile() {
|
|
|
37915
38509
|
}
|
|
37916
38510
|
|
|
37917
38511
|
// src/components/ui/sidebar.tsx
|
|
37918
|
-
var
|
|
38512
|
+
var import_jsx_runtime133 = require("react/jsx-runtime");
|
|
37919
38513
|
var SIDEBAR_COOKIE_NAME = "sidebar_state";
|
|
37920
38514
|
var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
|
|
37921
38515
|
var SIDEBAR_WIDTH = "16rem";
|
|
37922
38516
|
var SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
37923
38517
|
var SIDEBAR_WIDTH_ICON = "3rem";
|
|
37924
38518
|
var SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
37925
|
-
var SidebarContext =
|
|
38519
|
+
var SidebarContext = React99.createContext(null);
|
|
37926
38520
|
function useSidebar() {
|
|
37927
|
-
const context =
|
|
38521
|
+
const context = React99.useContext(SidebarContext);
|
|
37928
38522
|
if (!context) {
|
|
37929
38523
|
throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
37930
38524
|
}
|
|
37931
38525
|
return context;
|
|
37932
38526
|
}
|
|
37933
|
-
var SidebarProvider =
|
|
38527
|
+
var SidebarProvider = React99.forwardRef(
|
|
37934
38528
|
({
|
|
37935
38529
|
defaultOpen = true,
|
|
37936
38530
|
open: openProp,
|
|
@@ -37941,10 +38535,10 @@ var SidebarProvider = React96.forwardRef(
|
|
|
37941
38535
|
...props
|
|
37942
38536
|
}, ref) => {
|
|
37943
38537
|
const isMobile = useIsMobile();
|
|
37944
|
-
const [openMobile, setOpenMobile] =
|
|
37945
|
-
const [_open, _setOpen] =
|
|
38538
|
+
const [openMobile, setOpenMobile] = React99.useState(false);
|
|
38539
|
+
const [_open, _setOpen] = React99.useState(defaultOpen);
|
|
37946
38540
|
const open = openProp ?? _open;
|
|
37947
|
-
const setOpen =
|
|
38541
|
+
const setOpen = React99.useCallback(
|
|
37948
38542
|
(value) => {
|
|
37949
38543
|
const openState = typeof value === "function" ? value(open) : value;
|
|
37950
38544
|
if (setOpenProp) {
|
|
@@ -37956,10 +38550,10 @@ var SidebarProvider = React96.forwardRef(
|
|
|
37956
38550
|
},
|
|
37957
38551
|
[setOpenProp, open]
|
|
37958
38552
|
);
|
|
37959
|
-
const toggleSidebar =
|
|
38553
|
+
const toggleSidebar = React99.useCallback(() => {
|
|
37960
38554
|
return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
|
|
37961
38555
|
}, [isMobile, setOpen, setOpenMobile]);
|
|
37962
|
-
|
|
38556
|
+
React99.useEffect(() => {
|
|
37963
38557
|
const handleKeyDown = (event) => {
|
|
37964
38558
|
if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
|
|
37965
38559
|
event.preventDefault();
|
|
@@ -37970,7 +38564,7 @@ var SidebarProvider = React96.forwardRef(
|
|
|
37970
38564
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
37971
38565
|
}, [toggleSidebar]);
|
|
37972
38566
|
const state = open ? "expanded" : "collapsed";
|
|
37973
|
-
const contextValue =
|
|
38567
|
+
const contextValue = React99.useMemo(
|
|
37974
38568
|
() => ({
|
|
37975
38569
|
state,
|
|
37976
38570
|
open,
|
|
@@ -37982,7 +38576,7 @@ var SidebarProvider = React96.forwardRef(
|
|
|
37982
38576
|
}),
|
|
37983
38577
|
[state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]
|
|
37984
38578
|
);
|
|
37985
|
-
return /* @__PURE__ */ (0,
|
|
38579
|
+
return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
37986
38580
|
"div",
|
|
37987
38581
|
{
|
|
37988
38582
|
style: {
|
|
@@ -38002,7 +38596,7 @@ var SidebarProvider = React96.forwardRef(
|
|
|
38002
38596
|
}
|
|
38003
38597
|
);
|
|
38004
38598
|
SidebarProvider.displayName = "SidebarProvider";
|
|
38005
|
-
var Sidebar =
|
|
38599
|
+
var Sidebar = React99.forwardRef(
|
|
38006
38600
|
({
|
|
38007
38601
|
side = "left",
|
|
38008
38602
|
variant = "sidebar",
|
|
@@ -38013,7 +38607,7 @@ var Sidebar = React96.forwardRef(
|
|
|
38013
38607
|
}, ref) => {
|
|
38014
38608
|
const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
|
|
38015
38609
|
if (collapsible === "none") {
|
|
38016
|
-
return /* @__PURE__ */ (0,
|
|
38610
|
+
return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
38017
38611
|
"div",
|
|
38018
38612
|
{
|
|
38019
38613
|
className: cn(
|
|
@@ -38027,7 +38621,7 @@ var Sidebar = React96.forwardRef(
|
|
|
38027
38621
|
);
|
|
38028
38622
|
}
|
|
38029
38623
|
if (isMobile) {
|
|
38030
|
-
return /* @__PURE__ */ (0,
|
|
38624
|
+
return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(Sheet2, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(
|
|
38031
38625
|
SheetContent,
|
|
38032
38626
|
{
|
|
38033
38627
|
"data-sidebar": "sidebar",
|
|
@@ -38038,16 +38632,16 @@ var Sidebar = React96.forwardRef(
|
|
|
38038
38632
|
},
|
|
38039
38633
|
side,
|
|
38040
38634
|
children: [
|
|
38041
|
-
/* @__PURE__ */ (0,
|
|
38042
|
-
/* @__PURE__ */ (0,
|
|
38043
|
-
/* @__PURE__ */ (0,
|
|
38635
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(SheetHeader, { className: "sr-only", children: [
|
|
38636
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)(SheetTitle, { children: "Sidebar" }),
|
|
38637
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)(SheetDescription, { children: "Displays the mobile sidebar." })
|
|
38044
38638
|
] }),
|
|
38045
|
-
/* @__PURE__ */ (0,
|
|
38639
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)("div", { className: "flex h-full w-full flex-col", children })
|
|
38046
38640
|
]
|
|
38047
38641
|
}
|
|
38048
38642
|
) });
|
|
38049
38643
|
}
|
|
38050
|
-
return /* @__PURE__ */ (0,
|
|
38644
|
+
return /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(
|
|
38051
38645
|
"div",
|
|
38052
38646
|
{
|
|
38053
38647
|
ref,
|
|
@@ -38057,7 +38651,7 @@ var Sidebar = React96.forwardRef(
|
|
|
38057
38651
|
"data-variant": variant,
|
|
38058
38652
|
"data-side": side,
|
|
38059
38653
|
children: [
|
|
38060
|
-
/* @__PURE__ */ (0,
|
|
38654
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
38061
38655
|
"div",
|
|
38062
38656
|
{
|
|
38063
38657
|
className: cn(
|
|
@@ -38068,7 +38662,7 @@ var Sidebar = React96.forwardRef(
|
|
|
38068
38662
|
)
|
|
38069
38663
|
}
|
|
38070
38664
|
),
|
|
38071
|
-
/* @__PURE__ */ (0,
|
|
38665
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
38072
38666
|
"div",
|
|
38073
38667
|
{
|
|
38074
38668
|
className: cn(
|
|
@@ -38079,7 +38673,7 @@ var Sidebar = React96.forwardRef(
|
|
|
38079
38673
|
className
|
|
38080
38674
|
),
|
|
38081
38675
|
...props,
|
|
38082
|
-
children: /* @__PURE__ */ (0,
|
|
38676
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
38083
38677
|
"div",
|
|
38084
38678
|
{
|
|
38085
38679
|
"data-sidebar": "sidebar",
|
|
@@ -38095,9 +38689,9 @@ var Sidebar = React96.forwardRef(
|
|
|
38095
38689
|
}
|
|
38096
38690
|
);
|
|
38097
38691
|
Sidebar.displayName = "Sidebar";
|
|
38098
|
-
var SidebarTrigger =
|
|
38692
|
+
var SidebarTrigger = React99.forwardRef(({ className, onClick, ...props }, ref) => {
|
|
38099
38693
|
const { toggleSidebar } = useSidebar();
|
|
38100
|
-
return /* @__PURE__ */ (0,
|
|
38694
|
+
return /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(
|
|
38101
38695
|
Button,
|
|
38102
38696
|
{
|
|
38103
38697
|
ref,
|
|
@@ -38111,16 +38705,16 @@ var SidebarTrigger = React96.forwardRef(({ className, onClick, ...props }, ref)
|
|
|
38111
38705
|
},
|
|
38112
38706
|
...props,
|
|
38113
38707
|
children: [
|
|
38114
|
-
/* @__PURE__ */ (0,
|
|
38115
|
-
/* @__PURE__ */ (0,
|
|
38708
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)(PanelLeft, {}),
|
|
38709
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)("span", { className: "sr-only", children: "Toggle Sidebar" })
|
|
38116
38710
|
]
|
|
38117
38711
|
}
|
|
38118
38712
|
);
|
|
38119
38713
|
});
|
|
38120
38714
|
SidebarTrigger.displayName = "SidebarTrigger";
|
|
38121
|
-
var SidebarRail =
|
|
38715
|
+
var SidebarRail = React99.forwardRef(({ className, ...props }, ref) => {
|
|
38122
38716
|
const { toggleSidebar } = useSidebar();
|
|
38123
|
-
return /* @__PURE__ */ (0,
|
|
38717
|
+
return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
38124
38718
|
"button",
|
|
38125
38719
|
{
|
|
38126
38720
|
ref,
|
|
@@ -38143,8 +38737,8 @@ var SidebarRail = React96.forwardRef(({ className, ...props }, ref) => {
|
|
|
38143
38737
|
);
|
|
38144
38738
|
});
|
|
38145
38739
|
SidebarRail.displayName = "SidebarRail";
|
|
38146
|
-
var SidebarInset =
|
|
38147
|
-
return /* @__PURE__ */ (0,
|
|
38740
|
+
var SidebarInset = React99.forwardRef(({ className, ...props }, ref) => {
|
|
38741
|
+
return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
38148
38742
|
"main",
|
|
38149
38743
|
{
|
|
38150
38744
|
ref,
|
|
@@ -38158,8 +38752,8 @@ var SidebarInset = React96.forwardRef(({ className, ...props }, ref) => {
|
|
|
38158
38752
|
);
|
|
38159
38753
|
});
|
|
38160
38754
|
SidebarInset.displayName = "SidebarInset";
|
|
38161
|
-
var SidebarInput =
|
|
38162
|
-
return /* @__PURE__ */ (0,
|
|
38755
|
+
var SidebarInput = React99.forwardRef(({ className, ...props }, ref) => {
|
|
38756
|
+
return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
38163
38757
|
Input,
|
|
38164
38758
|
{
|
|
38165
38759
|
ref,
|
|
@@ -38173,8 +38767,8 @@ var SidebarInput = React96.forwardRef(({ className, ...props }, ref) => {
|
|
|
38173
38767
|
);
|
|
38174
38768
|
});
|
|
38175
38769
|
SidebarInput.displayName = "SidebarInput";
|
|
38176
|
-
var SidebarHeader =
|
|
38177
|
-
return /* @__PURE__ */ (0,
|
|
38770
|
+
var SidebarHeader = React99.forwardRef(({ className, ...props }, ref) => {
|
|
38771
|
+
return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
38178
38772
|
"div",
|
|
38179
38773
|
{
|
|
38180
38774
|
ref,
|
|
@@ -38185,8 +38779,8 @@ var SidebarHeader = React96.forwardRef(({ className, ...props }, ref) => {
|
|
|
38185
38779
|
);
|
|
38186
38780
|
});
|
|
38187
38781
|
SidebarHeader.displayName = "SidebarHeader";
|
|
38188
|
-
var SidebarFooter =
|
|
38189
|
-
return /* @__PURE__ */ (0,
|
|
38782
|
+
var SidebarFooter = React99.forwardRef(({ className, ...props }, ref) => {
|
|
38783
|
+
return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
38190
38784
|
"div",
|
|
38191
38785
|
{
|
|
38192
38786
|
ref,
|
|
@@ -38197,8 +38791,8 @@ var SidebarFooter = React96.forwardRef(({ className, ...props }, ref) => {
|
|
|
38197
38791
|
);
|
|
38198
38792
|
});
|
|
38199
38793
|
SidebarFooter.displayName = "SidebarFooter";
|
|
38200
|
-
var SidebarSeparator =
|
|
38201
|
-
return /* @__PURE__ */ (0,
|
|
38794
|
+
var SidebarSeparator = React99.forwardRef(({ className, ...props }, ref) => {
|
|
38795
|
+
return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
38202
38796
|
Separator2,
|
|
38203
38797
|
{
|
|
38204
38798
|
ref,
|
|
@@ -38209,8 +38803,8 @@ var SidebarSeparator = React96.forwardRef(({ className, ...props }, ref) => {
|
|
|
38209
38803
|
);
|
|
38210
38804
|
});
|
|
38211
38805
|
SidebarSeparator.displayName = "SidebarSeparator";
|
|
38212
|
-
var SidebarContent =
|
|
38213
|
-
return /* @__PURE__ */ (0,
|
|
38806
|
+
var SidebarContent = React99.forwardRef(({ className, ...props }, ref) => {
|
|
38807
|
+
return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
38214
38808
|
"div",
|
|
38215
38809
|
{
|
|
38216
38810
|
ref,
|
|
@@ -38224,8 +38818,8 @@ var SidebarContent = React96.forwardRef(({ className, ...props }, ref) => {
|
|
|
38224
38818
|
);
|
|
38225
38819
|
});
|
|
38226
38820
|
SidebarContent.displayName = "SidebarContent";
|
|
38227
|
-
var SidebarGroup =
|
|
38228
|
-
return /* @__PURE__ */ (0,
|
|
38821
|
+
var SidebarGroup = React99.forwardRef(({ className, ...props }, ref) => {
|
|
38822
|
+
return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
38229
38823
|
"div",
|
|
38230
38824
|
{
|
|
38231
38825
|
ref,
|
|
@@ -38236,9 +38830,9 @@ var SidebarGroup = React96.forwardRef(({ className, ...props }, ref) => {
|
|
|
38236
38830
|
);
|
|
38237
38831
|
});
|
|
38238
38832
|
SidebarGroup.displayName = "SidebarGroup";
|
|
38239
|
-
var SidebarGroupLabel =
|
|
38833
|
+
var SidebarGroupLabel = React99.forwardRef(({ className, asChild = false, ...props }, ref) => {
|
|
38240
38834
|
const Comp = asChild ? import_react_slot6.Slot : "div";
|
|
38241
|
-
return /* @__PURE__ */ (0,
|
|
38835
|
+
return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
38242
38836
|
Comp,
|
|
38243
38837
|
{
|
|
38244
38838
|
ref,
|
|
@@ -38253,9 +38847,9 @@ var SidebarGroupLabel = React96.forwardRef(({ className, asChild = false, ...pro
|
|
|
38253
38847
|
);
|
|
38254
38848
|
});
|
|
38255
38849
|
SidebarGroupLabel.displayName = "SidebarGroupLabel";
|
|
38256
|
-
var SidebarGroupAction =
|
|
38850
|
+
var SidebarGroupAction = React99.forwardRef(({ className, asChild = false, ...props }, ref) => {
|
|
38257
38851
|
const Comp = asChild ? import_react_slot6.Slot : "button";
|
|
38258
|
-
return /* @__PURE__ */ (0,
|
|
38852
|
+
return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
38259
38853
|
Comp,
|
|
38260
38854
|
{
|
|
38261
38855
|
ref,
|
|
@@ -38272,7 +38866,7 @@ var SidebarGroupAction = React96.forwardRef(({ className, asChild = false, ...pr
|
|
|
38272
38866
|
);
|
|
38273
38867
|
});
|
|
38274
38868
|
SidebarGroupAction.displayName = "SidebarGroupAction";
|
|
38275
|
-
var SidebarGroupContent =
|
|
38869
|
+
var SidebarGroupContent = React99.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
38276
38870
|
"div",
|
|
38277
38871
|
{
|
|
38278
38872
|
ref,
|
|
@@ -38282,7 +38876,7 @@ var SidebarGroupContent = React96.forwardRef(({ className, ...props }, ref) => /
|
|
|
38282
38876
|
}
|
|
38283
38877
|
));
|
|
38284
38878
|
SidebarGroupContent.displayName = "SidebarGroupContent";
|
|
38285
|
-
var SidebarMenu =
|
|
38879
|
+
var SidebarMenu = React99.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
38286
38880
|
"ul",
|
|
38287
38881
|
{
|
|
38288
38882
|
ref,
|
|
@@ -38292,7 +38886,7 @@ var SidebarMenu = React96.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
38292
38886
|
}
|
|
38293
38887
|
));
|
|
38294
38888
|
SidebarMenu.displayName = "SidebarMenu";
|
|
38295
|
-
var SidebarMenuItem =
|
|
38889
|
+
var SidebarMenuItem = React99.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
38296
38890
|
"li",
|
|
38297
38891
|
{
|
|
38298
38892
|
ref,
|
|
@@ -38322,7 +38916,7 @@ var sidebarMenuButtonVariants = (0, import_class_variance_authority13.cva)(
|
|
|
38322
38916
|
}
|
|
38323
38917
|
}
|
|
38324
38918
|
);
|
|
38325
|
-
var SidebarMenuButton =
|
|
38919
|
+
var SidebarMenuButton = React99.forwardRef(
|
|
38326
38920
|
({
|
|
38327
38921
|
asChild = false,
|
|
38328
38922
|
isActive = false,
|
|
@@ -38334,7 +38928,7 @@ var SidebarMenuButton = React96.forwardRef(
|
|
|
38334
38928
|
}, ref) => {
|
|
38335
38929
|
const Comp = asChild ? import_react_slot6.Slot : "button";
|
|
38336
38930
|
const { isMobile, state } = useSidebar();
|
|
38337
|
-
const button = /* @__PURE__ */ (0,
|
|
38931
|
+
const button = /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
38338
38932
|
Comp,
|
|
38339
38933
|
{
|
|
38340
38934
|
ref,
|
|
@@ -38353,9 +38947,9 @@ var SidebarMenuButton = React96.forwardRef(
|
|
|
38353
38947
|
children: tooltip
|
|
38354
38948
|
};
|
|
38355
38949
|
}
|
|
38356
|
-
return /* @__PURE__ */ (0,
|
|
38357
|
-
/* @__PURE__ */ (0,
|
|
38358
|
-
/* @__PURE__ */ (0,
|
|
38950
|
+
return /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(Tooltip, { children: [
|
|
38951
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)(TooltipTrigger, { asChild: true, children: button }),
|
|
38952
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
38359
38953
|
TooltipContent,
|
|
38360
38954
|
{
|
|
38361
38955
|
side: "right",
|
|
@@ -38368,9 +38962,9 @@ var SidebarMenuButton = React96.forwardRef(
|
|
|
38368
38962
|
}
|
|
38369
38963
|
);
|
|
38370
38964
|
SidebarMenuButton.displayName = "SidebarMenuButton";
|
|
38371
|
-
var SidebarMenuAction =
|
|
38965
|
+
var SidebarMenuAction = React99.forwardRef(({ className, asChild = false, showOnHover = false, ...props }, ref) => {
|
|
38372
38966
|
const Comp = asChild ? import_react_slot6.Slot : "button";
|
|
38373
|
-
return /* @__PURE__ */ (0,
|
|
38967
|
+
return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
38374
38968
|
Comp,
|
|
38375
38969
|
{
|
|
38376
38970
|
ref,
|
|
@@ -38391,7 +38985,7 @@ var SidebarMenuAction = React96.forwardRef(({ className, asChild = false, showOn
|
|
|
38391
38985
|
);
|
|
38392
38986
|
});
|
|
38393
38987
|
SidebarMenuAction.displayName = "SidebarMenuAction";
|
|
38394
|
-
var SidebarMenuBadge =
|
|
38988
|
+
var SidebarMenuBadge = React99.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
38395
38989
|
"div",
|
|
38396
38990
|
{
|
|
38397
38991
|
ref,
|
|
@@ -38409,11 +39003,11 @@ var SidebarMenuBadge = React96.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
38409
39003
|
}
|
|
38410
39004
|
));
|
|
38411
39005
|
SidebarMenuBadge.displayName = "SidebarMenuBadge";
|
|
38412
|
-
var SidebarMenuSkeleton =
|
|
38413
|
-
const width =
|
|
39006
|
+
var SidebarMenuSkeleton = React99.forwardRef(({ className, showIcon = false, ...props }, ref) => {
|
|
39007
|
+
const width = React99.useMemo(() => {
|
|
38414
39008
|
return `${Math.floor(Math.random() * 40) + 50}%`;
|
|
38415
39009
|
}, []);
|
|
38416
|
-
return /* @__PURE__ */ (0,
|
|
39010
|
+
return /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(
|
|
38417
39011
|
"div",
|
|
38418
39012
|
{
|
|
38419
39013
|
ref,
|
|
@@ -38421,14 +39015,14 @@ var SidebarMenuSkeleton = React96.forwardRef(({ className, showIcon = false, ...
|
|
|
38421
39015
|
className: cn("flex h-8 items-center gap-2 rounded-md px-2", className),
|
|
38422
39016
|
...props,
|
|
38423
39017
|
children: [
|
|
38424
|
-
showIcon && /* @__PURE__ */ (0,
|
|
39018
|
+
showIcon && /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
38425
39019
|
Skeleton,
|
|
38426
39020
|
{
|
|
38427
39021
|
className: "size-4 rounded-md",
|
|
38428
39022
|
"data-sidebar": "menu-skeleton-icon"
|
|
38429
39023
|
}
|
|
38430
39024
|
),
|
|
38431
|
-
/* @__PURE__ */ (0,
|
|
39025
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
38432
39026
|
Skeleton,
|
|
38433
39027
|
{
|
|
38434
39028
|
className: "h-4 max-w-[--skeleton-width] flex-1",
|
|
@@ -38443,7 +39037,7 @@ var SidebarMenuSkeleton = React96.forwardRef(({ className, showIcon = false, ...
|
|
|
38443
39037
|
);
|
|
38444
39038
|
});
|
|
38445
39039
|
SidebarMenuSkeleton.displayName = "SidebarMenuSkeleton";
|
|
38446
|
-
var SidebarMenuSub =
|
|
39040
|
+
var SidebarMenuSub = React99.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
38447
39041
|
"ul",
|
|
38448
39042
|
{
|
|
38449
39043
|
ref,
|
|
@@ -38457,11 +39051,11 @@ var SidebarMenuSub = React96.forwardRef(({ className, ...props }, ref) => /* @__
|
|
|
38457
39051
|
}
|
|
38458
39052
|
));
|
|
38459
39053
|
SidebarMenuSub.displayName = "SidebarMenuSub";
|
|
38460
|
-
var SidebarMenuSubItem =
|
|
39054
|
+
var SidebarMenuSubItem = React99.forwardRef(({ ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime133.jsx)("li", { ref, ...props }));
|
|
38461
39055
|
SidebarMenuSubItem.displayName = "SidebarMenuSubItem";
|
|
38462
|
-
var SidebarMenuSubButton =
|
|
39056
|
+
var SidebarMenuSubButton = React99.forwardRef(({ asChild = false, size = "md", isActive, className, ...props }, ref) => {
|
|
38463
39057
|
const Comp = asChild ? import_react_slot6.Slot : "a";
|
|
38464
|
-
return /* @__PURE__ */ (0,
|
|
39058
|
+
return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
38465
39059
|
Comp,
|
|
38466
39060
|
{
|
|
38467
39061
|
ref,
|
|
@@ -38485,20 +39079,20 @@ SidebarMenuSubButton.displayName = "SidebarMenuSubButton";
|
|
|
38485
39079
|
// src/components/ui/sonner.tsx
|
|
38486
39080
|
var import_next_themes = require("next-themes");
|
|
38487
39081
|
var import_sonner = require("sonner");
|
|
38488
|
-
var
|
|
39082
|
+
var import_jsx_runtime134 = require("react/jsx-runtime");
|
|
38489
39083
|
var Toaster = ({ ...props }) => {
|
|
38490
39084
|
const { theme = "system" } = (0, import_next_themes.useTheme)();
|
|
38491
|
-
return /* @__PURE__ */ (0,
|
|
39085
|
+
return /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(
|
|
38492
39086
|
import_sonner.Toaster,
|
|
38493
39087
|
{
|
|
38494
39088
|
theme,
|
|
38495
39089
|
className: "toaster group",
|
|
38496
39090
|
icons: {
|
|
38497
|
-
success: /* @__PURE__ */ (0,
|
|
38498
|
-
info: /* @__PURE__ */ (0,
|
|
38499
|
-
warning: /* @__PURE__ */ (0,
|
|
38500
|
-
error: /* @__PURE__ */ (0,
|
|
38501
|
-
loading: /* @__PURE__ */ (0,
|
|
39091
|
+
success: /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(CircleCheck, { className: "h-4 w-4" }),
|
|
39092
|
+
info: /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(Info, { className: "h-4 w-4" }),
|
|
39093
|
+
warning: /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(TriangleAlert, { className: "h-4 w-4" }),
|
|
39094
|
+
error: /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(OctagonX, { className: "h-4 w-4" }),
|
|
39095
|
+
loading: /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(LoaderCircle, { className: "h-4 w-4 animate-spin" })
|
|
38502
39096
|
},
|
|
38503
39097
|
toastOptions: {
|
|
38504
39098
|
classNames: {
|
|
@@ -38514,26 +39108,26 @@ var Toaster = ({ ...props }) => {
|
|
|
38514
39108
|
};
|
|
38515
39109
|
|
|
38516
39110
|
// src/components/ui/toggle-group.tsx
|
|
38517
|
-
var
|
|
39111
|
+
var React100 = __toESM(require("react"), 1);
|
|
38518
39112
|
var ToggleGroupPrimitive = __toESM(require("@radix-ui/react-toggle-group"), 1);
|
|
38519
|
-
var
|
|
38520
|
-
var ToggleGroupContext =
|
|
39113
|
+
var import_jsx_runtime135 = require("react/jsx-runtime");
|
|
39114
|
+
var ToggleGroupContext = React100.createContext({
|
|
38521
39115
|
size: "default",
|
|
38522
39116
|
variant: "default"
|
|
38523
39117
|
});
|
|
38524
|
-
var ToggleGroup =
|
|
39118
|
+
var ToggleGroup = React100.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
|
|
38525
39119
|
ToggleGroupPrimitive.Root,
|
|
38526
39120
|
{
|
|
38527
39121
|
ref,
|
|
38528
39122
|
className: cn("flex items-center justify-center gap-1", className),
|
|
38529
39123
|
...props,
|
|
38530
|
-
children: /* @__PURE__ */ (0,
|
|
39124
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(ToggleGroupContext.Provider, { value: { variant, size }, children })
|
|
38531
39125
|
}
|
|
38532
39126
|
));
|
|
38533
39127
|
ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
|
|
38534
|
-
var ToggleGroupItem =
|
|
38535
|
-
const context =
|
|
38536
|
-
return /* @__PURE__ */ (0,
|
|
39128
|
+
var ToggleGroupItem = React100.forwardRef(({ className, children, variant, size, ...props }, ref) => {
|
|
39129
|
+
const context = React100.useContext(ToggleGroupContext);
|
|
39130
|
+
return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
|
|
38537
39131
|
ToggleGroupPrimitive.Item,
|
|
38538
39132
|
{
|
|
38539
39133
|
ref,
|
|
@@ -38552,7 +39146,7 @@ var ToggleGroupItem = React97.forwardRef(({ className, children, variant, size,
|
|
|
38552
39146
|
ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
|
|
38553
39147
|
|
|
38554
39148
|
// src/render/PXEngineRenderer.tsx
|
|
38555
|
-
var
|
|
39149
|
+
var import_jsx_runtime136 = require("react/jsx-runtime");
|
|
38556
39150
|
var CONTEXT_DEPENDENT_COMPONENTS = /* @__PURE__ */ new Set([
|
|
38557
39151
|
// Form components - require FormField + FormItem context
|
|
38558
39152
|
"FormLabel",
|
|
@@ -38644,24 +39238,24 @@ var COMPONENT_SUGGESTIONS = {
|
|
|
38644
39238
|
};
|
|
38645
39239
|
var renderContextDependentError = (componentName, normalizedName, key) => {
|
|
38646
39240
|
const suggestion = COMPONENT_SUGGESTIONS[normalizedName] || `${componentName}Atom (if available)`;
|
|
38647
|
-
return /* @__PURE__ */ (0,
|
|
39241
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(
|
|
38648
39242
|
"div",
|
|
38649
39243
|
{
|
|
38650
39244
|
className: "p-4 border-2 border-amber-500/50 rounded-lg bg-amber-50/80 space-y-2 my-2",
|
|
38651
39245
|
children: [
|
|
38652
|
-
/* @__PURE__ */ (0,
|
|
38653
|
-
/* @__PURE__ */ (0,
|
|
38654
|
-
/* @__PURE__ */ (0,
|
|
38655
|
-
/* @__PURE__ */ (0,
|
|
39246
|
+
/* @__PURE__ */ (0, import_jsx_runtime136.jsxs)("div", { className: "flex items-start gap-2", children: [
|
|
39247
|
+
/* @__PURE__ */ (0, import_jsx_runtime136.jsx)("span", { className: "text-amber-600 font-bold text-lg", children: "\u26A0\uFE0F" }),
|
|
39248
|
+
/* @__PURE__ */ (0, import_jsx_runtime136.jsxs)("div", { className: "flex-1", children: [
|
|
39249
|
+
/* @__PURE__ */ (0, import_jsx_runtime136.jsxs)("p", { className: "text-sm font-semibold text-amber-900", children: [
|
|
38656
39250
|
"Invalid Component: ",
|
|
38657
39251
|
componentName
|
|
38658
39252
|
] }),
|
|
38659
|
-
/* @__PURE__ */ (0,
|
|
39253
|
+
/* @__PURE__ */ (0, import_jsx_runtime136.jsx)("p", { className: "text-xs text-amber-700 mt-1", children: "This component requires React Context and cannot be rendered directly in schemas." })
|
|
38660
39254
|
] })
|
|
38661
39255
|
] }),
|
|
38662
|
-
/* @__PURE__ */ (0,
|
|
38663
|
-
/* @__PURE__ */ (0,
|
|
38664
|
-
/* @__PURE__ */ (0,
|
|
39256
|
+
/* @__PURE__ */ (0, import_jsx_runtime136.jsxs)("div", { className: "bg-white/60 p-3 rounded border border-amber-200", children: [
|
|
39257
|
+
/* @__PURE__ */ (0, import_jsx_runtime136.jsx)("p", { className: "text-xs font-semibold text-gray-700 mb-1.5", children: "\u2713 Use instead:" }),
|
|
39258
|
+
/* @__PURE__ */ (0, import_jsx_runtime136.jsx)("code", { className: "text-xs text-blue-700 bg-blue-50 px-2 py-1 rounded", children: suggestion })
|
|
38665
39259
|
] })
|
|
38666
39260
|
]
|
|
38667
39261
|
},
|
|
@@ -38741,7 +39335,7 @@ var PXEngineRenderer = ({
|
|
|
38741
39335
|
if (typeof component === "string" || typeof component === "number") {
|
|
38742
39336
|
return component;
|
|
38743
39337
|
}
|
|
38744
|
-
if (
|
|
39338
|
+
if (import_react69.default.isValidElement(component)) {
|
|
38745
39339
|
return component;
|
|
38746
39340
|
}
|
|
38747
39341
|
if (!component || typeof component !== "object") return null;
|
|
@@ -38819,7 +39413,7 @@ var PXEngineRenderer = ({
|
|
|
38819
39413
|
const isAtomWithRenderProp = ATOMS_WITH_RENDER.has(atomName);
|
|
38820
39414
|
const finalStyle = { ...dynamicStyle, ...finalProps.style || {} };
|
|
38821
39415
|
if (isAtomWithRenderProp) {
|
|
38822
|
-
return /* @__PURE__ */ (0,
|
|
39416
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(
|
|
38823
39417
|
TargetComponent,
|
|
38824
39418
|
{
|
|
38825
39419
|
...finalProps,
|
|
@@ -38831,7 +39425,7 @@ var PXEngineRenderer = ({
|
|
|
38831
39425
|
uniqueKey
|
|
38832
39426
|
);
|
|
38833
39427
|
} else {
|
|
38834
|
-
return /* @__PURE__ */ (0,
|
|
39428
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(
|
|
38835
39429
|
TargetComponent,
|
|
38836
39430
|
{
|
|
38837
39431
|
...finalProps,
|
|
@@ -38843,7 +39437,7 @@ var PXEngineRenderer = ({
|
|
|
38843
39437
|
);
|
|
38844
39438
|
}
|
|
38845
39439
|
};
|
|
38846
|
-
return /* @__PURE__ */ (0,
|
|
39440
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)("div", { className: "px-engine-root relative w-full h-full", children: renderRecursive(root) });
|
|
38847
39441
|
};
|
|
38848
39442
|
// Annotate the CommonJS export names for ESM import in node:
|
|
38849
39443
|
0 && (module.exports = {
|
|
@@ -38853,6 +39447,8 @@ var PXEngineRenderer = ({
|
|
|
38853
39447
|
AccordionItem,
|
|
38854
39448
|
AccordionTrigger,
|
|
38855
39449
|
ActionButton,
|
|
39450
|
+
AgentCard,
|
|
39451
|
+
AgentDataTable,
|
|
38856
39452
|
Alert,
|
|
38857
39453
|
AlertAtom,
|
|
38858
39454
|
AlertDescription,
|
|
@@ -38997,6 +39593,7 @@ var PXEngineRenderer = ({
|
|
|
38997
39593
|
InputOTPGroup,
|
|
38998
39594
|
InputOTPSeparator,
|
|
38999
39595
|
InputOTPSlot,
|
|
39596
|
+
InstructionPreview,
|
|
39000
39597
|
KbdAtom,
|
|
39001
39598
|
KeywordBundlesDisplay,
|
|
39002
39599
|
KeywordBundlesEdit,
|
|
@@ -39101,6 +39698,7 @@ var PXEngineRenderer = ({
|
|
|
39101
39698
|
TextareaAtom,
|
|
39102
39699
|
TimelineAtom,
|
|
39103
39700
|
ToggleAtom,
|
|
39701
|
+
ToolListCard,
|
|
39104
39702
|
Tooltip,
|
|
39105
39703
|
TooltipAtom,
|
|
39106
39704
|
TooltipContent,
|
|
@@ -39108,6 +39706,7 @@ var PXEngineRenderer = ({
|
|
|
39108
39706
|
TooltipTrigger,
|
|
39109
39707
|
TopPostsGrid,
|
|
39110
39708
|
VideoAtom,
|
|
39709
|
+
WorkflowVisualizer,
|
|
39111
39710
|
cn
|
|
39112
39711
|
});
|
|
39113
39712
|
/*! Bundled license information:
|