pxengine 0.1.32 → 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 +782 -175
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +105 -4
- package/dist/index.d.ts +105 -4
- package/dist/index.mjs +775 -173
- package/dist/index.mjs.map +1 -1
- package/dist/registry.json +223 -17
- package/package.json +3 -3
package/dist/index.mjs
CHANGED
|
@@ -5,7 +5,7 @@ var __export = (target, all) => {
|
|
|
5
5
|
};
|
|
6
6
|
|
|
7
7
|
// src/render/PXEngineRenderer.tsx
|
|
8
|
-
import
|
|
8
|
+
import React101 from "react";
|
|
9
9
|
|
|
10
10
|
// src/atoms/index.ts
|
|
11
11
|
var atoms_exports = {};
|
|
@@ -33298,6 +33298,8 @@ ArrowToggleAtom.displayName = "ArrowToggleAtom";
|
|
|
33298
33298
|
var molecules_exports = {};
|
|
33299
33299
|
__export(molecules_exports, {
|
|
33300
33300
|
ActionButton: () => ActionButton,
|
|
33301
|
+
AgentCard: () => AgentCard,
|
|
33302
|
+
AgentDataTable: () => AgentDataTable,
|
|
33301
33303
|
AudienceDemographicsCard: () => AudienceDemographicsCard,
|
|
33302
33304
|
AudienceMetricCard: () => AudienceMetricCard,
|
|
33303
33305
|
BrandAffinityGroup: () => BrandAffinityGroup,
|
|
@@ -33317,6 +33319,7 @@ __export(molecules_exports, {
|
|
|
33317
33319
|
FilterBar: () => FilterBar,
|
|
33318
33320
|
FormCard: () => FormCard,
|
|
33319
33321
|
GrowthChartCard: () => GrowthChartCard,
|
|
33322
|
+
InstructionPreview: () => InstructionPreview,
|
|
33320
33323
|
KeywordBundlesDisplay: () => KeywordBundlesDisplay,
|
|
33321
33324
|
KeywordBundlesEdit: () => KeywordBundlesEdit,
|
|
33322
33325
|
LoadingOverlay: () => LoadingOverlay,
|
|
@@ -33329,7 +33332,9 @@ __export(molecules_exports, {
|
|
|
33329
33332
|
StatsGrid: () => StatsGrid,
|
|
33330
33333
|
StepWizard: () => StepWizard,
|
|
33331
33334
|
TagCloud: () => TagCloud,
|
|
33332
|
-
|
|
33335
|
+
ToolListCard: () => ToolListCard,
|
|
33336
|
+
TopPostsGrid: () => TopPostsGrid,
|
|
33337
|
+
WorkflowVisualizer: () => WorkflowVisualizer
|
|
33333
33338
|
});
|
|
33334
33339
|
|
|
33335
33340
|
// src/molecules/generic/EditableField/EditableField.tsx
|
|
@@ -35152,22 +35157,30 @@ var KeywordBundlesDisplay = ({ value }) => {
|
|
|
35152
35157
|
var DEFAULT_PLATFORMS = ["Instagram", "YouTube", "TikTok"];
|
|
35153
35158
|
var PlatformSelectEdit = ({
|
|
35154
35159
|
value,
|
|
35155
|
-
onChange
|
|
35156
|
-
config = {}
|
|
35160
|
+
onChange
|
|
35157
35161
|
}) => {
|
|
35158
|
-
const selectedPlatforms =
|
|
35159
|
-
|
|
35160
|
-
|
|
35161
|
-
|
|
35162
|
-
|
|
35163
|
-
|
|
35162
|
+
const selectedPlatforms = useMemo4(() => {
|
|
35163
|
+
if (Array.isArray(value)) return value;
|
|
35164
|
+
if (typeof value === "string" && value.trim() !== "") {
|
|
35165
|
+
return value.split(",").map((s) => s.trim()).filter(Boolean);
|
|
35166
|
+
}
|
|
35167
|
+
return [];
|
|
35168
|
+
}, [value]);
|
|
35169
|
+
const isSelected = (p) => selectedPlatforms.some((s) => s.toLowerCase() === p.toLowerCase());
|
|
35164
35170
|
const togglePlatform = (platform) => {
|
|
35165
|
-
if (
|
|
35166
|
-
onChange(
|
|
35171
|
+
if (isSelected(platform)) {
|
|
35172
|
+
onChange(
|
|
35173
|
+
selectedPlatforms.filter(
|
|
35174
|
+
(p) => p.toLowerCase() !== platform.toLowerCase()
|
|
35175
|
+
)
|
|
35176
|
+
);
|
|
35167
35177
|
} else {
|
|
35168
35178
|
onChange([...selectedPlatforms, platform]);
|
|
35169
35179
|
}
|
|
35170
35180
|
};
|
|
35181
|
+
const options = useMemo4(() => {
|
|
35182
|
+
return DEFAULT_PLATFORMS;
|
|
35183
|
+
}, []);
|
|
35171
35184
|
return /* @__PURE__ */ jsx106("div", { className: "flex flex-wrap gap-4 py-2", children: options.map((platform) => /* @__PURE__ */ jsxs66(
|
|
35172
35185
|
"label",
|
|
35173
35186
|
{
|
|
@@ -35178,10 +35191,10 @@ var PlatformSelectEdit = ({
|
|
|
35178
35191
|
{
|
|
35179
35192
|
className: cn(
|
|
35180
35193
|
"w-5 h-5 rounded flex items-center justify-center border-2 transition-all",
|
|
35181
|
-
|
|
35194
|
+
isSelected(platform) ? "bg-purple-600 border-purple-600" : "border-gray-300 group-hover:border-purple-400"
|
|
35182
35195
|
),
|
|
35183
35196
|
onClick: () => togglePlatform(platform),
|
|
35184
|
-
children:
|
|
35197
|
+
children: isSelected(platform) && /* @__PURE__ */ jsx106(Check, { className: "h-3.5 w-3.5 text-white stroke-[3]" })
|
|
35185
35198
|
}
|
|
35186
35199
|
),
|
|
35187
35200
|
/* @__PURE__ */ jsx106("span", { className: "text-sm font-medium text-foreground select-none", children: platform })
|
|
@@ -35191,10 +35204,17 @@ var PlatformSelectEdit = ({
|
|
|
35191
35204
|
)) });
|
|
35192
35205
|
};
|
|
35193
35206
|
var PlatformSelectDisplay = ({ value }) => {
|
|
35194
|
-
|
|
35207
|
+
const displayValues = useMemo4(() => {
|
|
35208
|
+
if (Array.isArray(value)) return value;
|
|
35209
|
+
if (typeof value === "string" && value.trim() !== "") {
|
|
35210
|
+
return value.split(",").map((s) => s.trim()).filter(Boolean);
|
|
35211
|
+
}
|
|
35212
|
+
return [];
|
|
35213
|
+
}, [value]);
|
|
35214
|
+
if (displayValues.length === 0) {
|
|
35195
35215
|
return /* @__PURE__ */ jsx106("span", { className: "text-muted-foreground italic text-sm", children: "Not specified" });
|
|
35196
35216
|
}
|
|
35197
|
-
return /* @__PURE__ */ jsx106("div", { className: "flex flex-wrap gap-2 pt-1", children:
|
|
35217
|
+
return /* @__PURE__ */ jsx106("div", { className: "flex flex-wrap gap-2 pt-1", children: displayValues.map((platform) => /* @__PURE__ */ jsx106(
|
|
35198
35218
|
"div",
|
|
35199
35219
|
{
|
|
35200
35220
|
className: "flex items-center gap-2 px-3 py-1 bg-grayPill border border-foreground rounded-md text-foreground text-sm font-grotesk font-medium",
|
|
@@ -35284,10 +35304,7 @@ function buildCampaignSeedFields(data) {
|
|
|
35284
35304
|
PlatformSelectEdit,
|
|
35285
35305
|
{
|
|
35286
35306
|
value: v,
|
|
35287
|
-
onChange
|
|
35288
|
-
config: {
|
|
35289
|
-
options: data.platform_options || data.available_platforms || data.platforms_list || []
|
|
35290
|
-
}
|
|
35307
|
+
onChange
|
|
35291
35308
|
}
|
|
35292
35309
|
)
|
|
35293
35310
|
};
|
|
@@ -35451,8 +35468,7 @@ function buildSearchSpecFields(data) {
|
|
|
35451
35468
|
PlatformSelectEdit,
|
|
35452
35469
|
{
|
|
35453
35470
|
value: v,
|
|
35454
|
-
onChange
|
|
35455
|
-
config: { options: data.platform_options || data.available_platforms || data.platforms_list || [] }
|
|
35471
|
+
onChange
|
|
35456
35472
|
}
|
|
35457
35473
|
)
|
|
35458
35474
|
};
|
|
@@ -36462,10 +36478,7 @@ var CampaignConceptCard = React94.memo(
|
|
|
36462
36478
|
PlatformSelectEdit,
|
|
36463
36479
|
{
|
|
36464
36480
|
value: v,
|
|
36465
|
-
onChange
|
|
36466
|
-
config: {
|
|
36467
|
-
options: data.platform_options || data.available_platforms || data.platforms_list || []
|
|
36468
|
-
}
|
|
36481
|
+
onChange
|
|
36469
36482
|
}
|
|
36470
36483
|
)
|
|
36471
36484
|
};
|
|
@@ -36495,7 +36508,7 @@ var CampaignConceptCard = React94.memo(
|
|
|
36495
36508
|
}) });
|
|
36496
36509
|
}
|
|
36497
36510
|
if (typeof val === "object" && val !== null) {
|
|
36498
|
-
return /* @__PURE__ */ jsx121("div", { className: "text-muted-foreground text-xs font-mono bg-paperBackground p-2 rounded
|
|
36511
|
+
return /* @__PURE__ */ jsx121("div", { className: "text-muted-foreground text-xs font-mono bg-paperBackground p-2 rounded mt-1 overflow-auto max-h-24", children: Object.entries(val).map(([k, v]) => `${k.replace(/_/g, " ")}: ${v}`).join("\n") });
|
|
36499
36512
|
}
|
|
36500
36513
|
return /* @__PURE__ */ jsx121("span", { className: "text-foreground text-sm", children: val !== void 0 && val !== null ? String(val) : "-" });
|
|
36501
36514
|
}
|
|
@@ -36600,6 +36613,590 @@ var CampaignConceptCard = React94.memo(
|
|
|
36600
36613
|
);
|
|
36601
36614
|
CampaignConceptCard.displayName = "CampaignConceptCard";
|
|
36602
36615
|
|
|
36616
|
+
// src/molecules/agent-builder/ToolListCard/ToolListCard.tsx
|
|
36617
|
+
import { jsx as jsx122, jsxs as jsxs81 } from "react/jsx-runtime";
|
|
36618
|
+
var ICON_MAP = {
|
|
36619
|
+
Search,
|
|
36620
|
+
Database,
|
|
36621
|
+
Globe,
|
|
36622
|
+
FileText,
|
|
36623
|
+
Zap,
|
|
36624
|
+
Layout: PanelsTopLeft,
|
|
36625
|
+
Wrench,
|
|
36626
|
+
BookOpen,
|
|
36627
|
+
BarChart3: ChartColumn,
|
|
36628
|
+
Link,
|
|
36629
|
+
MessageSquare,
|
|
36630
|
+
Sparkles,
|
|
36631
|
+
FolderOpen,
|
|
36632
|
+
Code,
|
|
36633
|
+
Shield,
|
|
36634
|
+
Image,
|
|
36635
|
+
Mail,
|
|
36636
|
+
Calendar
|
|
36637
|
+
};
|
|
36638
|
+
var CATEGORY_FALLBACK = {
|
|
36639
|
+
search: Search,
|
|
36640
|
+
data: Database,
|
|
36641
|
+
knowledge: BookOpen,
|
|
36642
|
+
web: Globe,
|
|
36643
|
+
content: FileText,
|
|
36644
|
+
ui: PanelsTopLeft,
|
|
36645
|
+
analytics: ChartColumn,
|
|
36646
|
+
integration: Link,
|
|
36647
|
+
communication: MessageSquare,
|
|
36648
|
+
generation: Sparkles,
|
|
36649
|
+
file: FolderOpen,
|
|
36650
|
+
code: Code,
|
|
36651
|
+
security: Shield,
|
|
36652
|
+
general: Zap
|
|
36653
|
+
};
|
|
36654
|
+
function resolveIcon(tool) {
|
|
36655
|
+
if (tool.icon && ICON_MAP[tool.icon]) return ICON_MAP[tool.icon];
|
|
36656
|
+
if (tool.category && CATEGORY_FALLBACK[tool.category.toLowerCase()])
|
|
36657
|
+
return CATEGORY_FALLBACK[tool.category.toLowerCase()];
|
|
36658
|
+
return Wrench;
|
|
36659
|
+
}
|
|
36660
|
+
function resolveCategoryIcon(category) {
|
|
36661
|
+
return CATEGORY_FALLBACK[category.toLowerCase()] || Wrench;
|
|
36662
|
+
}
|
|
36663
|
+
var ToolListCard = ({
|
|
36664
|
+
tools,
|
|
36665
|
+
className
|
|
36666
|
+
}) => {
|
|
36667
|
+
const grouped = {};
|
|
36668
|
+
for (const tool of tools) {
|
|
36669
|
+
const cat = tool.category || "General";
|
|
36670
|
+
if (!grouped[cat]) grouped[cat] = [];
|
|
36671
|
+
grouped[cat].push(tool);
|
|
36672
|
+
}
|
|
36673
|
+
const categories = Object.keys(grouped);
|
|
36674
|
+
return /* @__PURE__ */ jsxs81(
|
|
36675
|
+
"div",
|
|
36676
|
+
{
|
|
36677
|
+
className: cn(
|
|
36678
|
+
"my-3 rounded-xl border border-[var(--border-color)] bg-[var(--card-background)] overflow-hidden shadow-sm",
|
|
36679
|
+
className
|
|
36680
|
+
),
|
|
36681
|
+
children: [
|
|
36682
|
+
/* @__PURE__ */ jsxs81("div", { className: "px-4 py-3 border-b border-[var(--border-color)] bg-[var(--foreground)]/[0.03] flex items-center gap-2.5", children: [
|
|
36683
|
+
/* @__PURE__ */ jsx122("div", { className: "w-6 h-6 rounded-md bg-[var(--primary-color)]/10 flex items-center justify-center", children: /* @__PURE__ */ jsx122(Wrench, { className: "w-3.5 h-3.5 text-[var(--primary-color)]" }) }),
|
|
36684
|
+
/* @__PURE__ */ jsx122("h4", { className: "text-sm font-semibold text-[var(--foreground)]", children: "Available Tools" }),
|
|
36685
|
+
/* @__PURE__ */ jsx122("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 })
|
|
36686
|
+
] }),
|
|
36687
|
+
/* @__PURE__ */ jsx122("div", { className: "divide-y divide-[var(--border-color)]", children: categories.map((cat) => {
|
|
36688
|
+
const CatIcon = resolveCategoryIcon(cat);
|
|
36689
|
+
return /* @__PURE__ */ jsxs81("div", { className: "px-4 py-3", children: [
|
|
36690
|
+
/* @__PURE__ */ jsxs81("div", { className: "flex items-center gap-2 mb-2.5", children: [
|
|
36691
|
+
/* @__PURE__ */ jsx122(CatIcon, { className: "w-3.5 h-3.5 text-[var(--primary-color)]/70" }),
|
|
36692
|
+
/* @__PURE__ */ jsx122("span", { className: "text-[11px] font-semibold text-[var(--foreground)]/50 uppercase tracking-wider", children: cat }),
|
|
36693
|
+
/* @__PURE__ */ jsx122("span", { className: "text-[10px] text-[var(--foreground)]/30", children: grouped[cat].length })
|
|
36694
|
+
] }),
|
|
36695
|
+
/* @__PURE__ */ jsx122("div", { className: "space-y-1.5", children: grouped[cat].map((tool) => {
|
|
36696
|
+
const ToolIcon = resolveIcon(tool);
|
|
36697
|
+
return /* @__PURE__ */ jsxs81(
|
|
36698
|
+
"div",
|
|
36699
|
+
{
|
|
36700
|
+
className: "group flex items-start gap-3 px-3 py-2 rounded-lg hover:bg-[var(--foreground)]/[0.03] transition-colors",
|
|
36701
|
+
children: [
|
|
36702
|
+
/* @__PURE__ */ jsx122("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__ */ jsx122(ToolIcon, { className: "w-3 h-3 text-[var(--primary-color)]/60" }) }),
|
|
36703
|
+
/* @__PURE__ */ jsxs81("div", { className: "flex-1 min-w-0", children: [
|
|
36704
|
+
/* @__PURE__ */ jsxs81("div", { className: "flex items-center gap-2 flex-wrap", children: [
|
|
36705
|
+
tool.display_name && tool.display_name !== tool.name && /* @__PURE__ */ jsx122("span", { className: "text-[13px] font-medium text-[var(--foreground)]", children: tool.display_name }),
|
|
36706
|
+
/* @__PURE__ */ jsx122("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 })
|
|
36707
|
+
] }),
|
|
36708
|
+
tool.description && /* @__PURE__ */ jsx122("p", { className: "text-xs text-[var(--foreground)]/50 leading-relaxed mt-0.5", children: tool.description })
|
|
36709
|
+
] })
|
|
36710
|
+
]
|
|
36711
|
+
},
|
|
36712
|
+
tool.name
|
|
36713
|
+
);
|
|
36714
|
+
}) })
|
|
36715
|
+
] }, cat);
|
|
36716
|
+
}) })
|
|
36717
|
+
]
|
|
36718
|
+
}
|
|
36719
|
+
);
|
|
36720
|
+
};
|
|
36721
|
+
|
|
36722
|
+
// src/molecules/agent-builder/AgentCard/AgentCard.tsx
|
|
36723
|
+
import { useState as useState10, useCallback as useCallback4 } from "react";
|
|
36724
|
+
import { Fragment as Fragment4, jsx as jsx123, jsxs as jsxs82 } from "react/jsx-runtime";
|
|
36725
|
+
var AgentCard = ({
|
|
36726
|
+
agent,
|
|
36727
|
+
editable = true,
|
|
36728
|
+
compact = false,
|
|
36729
|
+
onSave,
|
|
36730
|
+
className
|
|
36731
|
+
}) => {
|
|
36732
|
+
const [isEditing, setIsEditing] = useState10(false);
|
|
36733
|
+
const [isSaving, setIsSaving] = useState10(false);
|
|
36734
|
+
const [editState, setEditState] = useState10({
|
|
36735
|
+
display_name: agent.display_name,
|
|
36736
|
+
description: agent.description,
|
|
36737
|
+
image: agent.image || ""
|
|
36738
|
+
});
|
|
36739
|
+
const avatarUrl = agent.image || `https://api.dicebear.com/7.x/avataaars/svg?seed=${agent.name}`;
|
|
36740
|
+
const handleEdit = useCallback4(() => {
|
|
36741
|
+
setEditState({
|
|
36742
|
+
display_name: agent.display_name,
|
|
36743
|
+
description: agent.description,
|
|
36744
|
+
image: agent.image || ""
|
|
36745
|
+
});
|
|
36746
|
+
setIsEditing(true);
|
|
36747
|
+
}, [agent]);
|
|
36748
|
+
const handleCancel = useCallback4(() => {
|
|
36749
|
+
setIsEditing(false);
|
|
36750
|
+
}, []);
|
|
36751
|
+
const handleSave = useCallback4(async () => {
|
|
36752
|
+
if (!onSave) return;
|
|
36753
|
+
const updates = {};
|
|
36754
|
+
if (editState.display_name !== agent.display_name)
|
|
36755
|
+
updates.display_name = editState.display_name;
|
|
36756
|
+
if (editState.description !== agent.description)
|
|
36757
|
+
updates.description = editState.description;
|
|
36758
|
+
if (editState.image !== (agent.image || ""))
|
|
36759
|
+
updates.image = editState.image;
|
|
36760
|
+
if (Object.keys(updates).length === 0) {
|
|
36761
|
+
setIsEditing(false);
|
|
36762
|
+
return;
|
|
36763
|
+
}
|
|
36764
|
+
setIsSaving(true);
|
|
36765
|
+
try {
|
|
36766
|
+
await onSave(agent, updates);
|
|
36767
|
+
setIsEditing(false);
|
|
36768
|
+
} catch (err) {
|
|
36769
|
+
console.error("AgentCard save failed:", err);
|
|
36770
|
+
} finally {
|
|
36771
|
+
setIsSaving(false);
|
|
36772
|
+
}
|
|
36773
|
+
}, [onSave, agent, editState]);
|
|
36774
|
+
if (compact) {
|
|
36775
|
+
return /* @__PURE__ */ jsxs82(
|
|
36776
|
+
"div",
|
|
36777
|
+
{
|
|
36778
|
+
className: cn(
|
|
36779
|
+
"flex items-center gap-3 py-1",
|
|
36780
|
+
className
|
|
36781
|
+
),
|
|
36782
|
+
children: [
|
|
36783
|
+
/* @__PURE__ */ jsxs82(Avatar, { className: "h-8 w-8 shrink-0", children: [
|
|
36784
|
+
/* @__PURE__ */ jsx123(AvatarImage, { src: avatarUrl, alt: agent.display_name }),
|
|
36785
|
+
/* @__PURE__ */ jsx123(AvatarFallback, { className: "bg-[var(--primary-color)]/10 text-[var(--primary-color)] text-xs font-bold", children: agent.display_name.charAt(0) })
|
|
36786
|
+
] }),
|
|
36787
|
+
/* @__PURE__ */ jsxs82("div", { className: "flex-1 min-w-0", children: [
|
|
36788
|
+
/* @__PURE__ */ jsxs82("div", { className: "flex items-center gap-2", children: [
|
|
36789
|
+
/* @__PURE__ */ jsx123("span", { className: "text-[var(--foreground)] text-sm font-semibold truncate", children: agent.display_name }),
|
|
36790
|
+
/* @__PURE__ */ jsx123(
|
|
36791
|
+
"span",
|
|
36792
|
+
{
|
|
36793
|
+
className: cn(
|
|
36794
|
+
"text-[10px] px-1.5 py-0.5 rounded-full font-medium",
|
|
36795
|
+
agent.enabled ? "bg-emerald-500/10 text-emerald-600" : "bg-red-500/10 text-red-500"
|
|
36796
|
+
),
|
|
36797
|
+
children: agent.enabled ? "Active" : "Disabled"
|
|
36798
|
+
}
|
|
36799
|
+
)
|
|
36800
|
+
] }),
|
|
36801
|
+
/* @__PURE__ */ jsx123("p", { className: "text-[var(--foreground)]/50 text-xs truncate", children: agent.description })
|
|
36802
|
+
] })
|
|
36803
|
+
]
|
|
36804
|
+
}
|
|
36805
|
+
);
|
|
36806
|
+
}
|
|
36807
|
+
return /* @__PURE__ */ jsxs82(
|
|
36808
|
+
"div",
|
|
36809
|
+
{
|
|
36810
|
+
className: cn(
|
|
36811
|
+
"my-3 rounded-xl border border-[var(--border-color)] bg-[var(--card-background)] overflow-hidden",
|
|
36812
|
+
className
|
|
36813
|
+
),
|
|
36814
|
+
children: [
|
|
36815
|
+
/* @__PURE__ */ jsxs82("div", { className: "flex items-start gap-4 px-5 py-4", children: [
|
|
36816
|
+
/* @__PURE__ */ jsxs82(Avatar, { className: "h-12 w-12 shrink-0 border-2 border-[var(--primary-color)]/20", children: [
|
|
36817
|
+
/* @__PURE__ */ jsx123(AvatarImage, { src: isEditing && editState.image ? editState.image : avatarUrl, alt: agent.display_name }),
|
|
36818
|
+
/* @__PURE__ */ jsx123(AvatarFallback, { className: "bg-[var(--primary-color)]/10 text-[var(--primary-color)] text-lg font-bold", children: agent.display_name.charAt(0) })
|
|
36819
|
+
] }),
|
|
36820
|
+
/* @__PURE__ */ jsx123("div", { className: "flex-1 min-w-0", children: isEditing ? /* @__PURE__ */ jsxs82("div", { className: "space-y-2", children: [
|
|
36821
|
+
/* @__PURE__ */ jsx123(
|
|
36822
|
+
"input",
|
|
36823
|
+
{
|
|
36824
|
+
type: "text",
|
|
36825
|
+
value: editState.display_name,
|
|
36826
|
+
onChange: (e) => setEditState((s) => ({ ...s, display_name: e.target.value })),
|
|
36827
|
+
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",
|
|
36828
|
+
placeholder: "Display name"
|
|
36829
|
+
}
|
|
36830
|
+
),
|
|
36831
|
+
/* @__PURE__ */ jsx123(
|
|
36832
|
+
"textarea",
|
|
36833
|
+
{
|
|
36834
|
+
value: editState.description,
|
|
36835
|
+
onChange: (e) => setEditState((s) => ({ ...s, description: e.target.value })),
|
|
36836
|
+
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",
|
|
36837
|
+
rows: 2,
|
|
36838
|
+
placeholder: "Description"
|
|
36839
|
+
}
|
|
36840
|
+
),
|
|
36841
|
+
/* @__PURE__ */ jsx123(
|
|
36842
|
+
"input",
|
|
36843
|
+
{
|
|
36844
|
+
type: "text",
|
|
36845
|
+
value: editState.image,
|
|
36846
|
+
onChange: (e) => setEditState((s) => ({ ...s, image: e.target.value })),
|
|
36847
|
+
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",
|
|
36848
|
+
placeholder: "Avatar image URL"
|
|
36849
|
+
}
|
|
36850
|
+
)
|
|
36851
|
+
] }) : /* @__PURE__ */ jsxs82(Fragment4, { children: [
|
|
36852
|
+
/* @__PURE__ */ jsxs82("div", { className: "flex items-center gap-2", children: [
|
|
36853
|
+
/* @__PURE__ */ jsx123("h4", { className: "text-sm font-semibold text-[var(--foreground)] truncate", children: agent.display_name }),
|
|
36854
|
+
/* @__PURE__ */ jsx123("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 }),
|
|
36855
|
+
/* @__PURE__ */ jsx123(
|
|
36856
|
+
"span",
|
|
36857
|
+
{
|
|
36858
|
+
className: cn(
|
|
36859
|
+
"text-[10px] px-1.5 py-0.5 rounded-full font-medium",
|
|
36860
|
+
agent.enabled ? "bg-emerald-500/10 text-emerald-600" : "bg-red-500/10 text-red-500"
|
|
36861
|
+
),
|
|
36862
|
+
children: agent.enabled ? "Active" : "Disabled"
|
|
36863
|
+
}
|
|
36864
|
+
)
|
|
36865
|
+
] }),
|
|
36866
|
+
/* @__PURE__ */ jsx123("p", { className: "text-xs text-[var(--foreground)]/60 mt-1 leading-relaxed", children: agent.description })
|
|
36867
|
+
] }) }),
|
|
36868
|
+
editable && onSave && /* @__PURE__ */ jsx123("div", { className: "flex items-center gap-1.5 shrink-0", children: isEditing ? /* @__PURE__ */ jsxs82(Fragment4, { children: [
|
|
36869
|
+
/* @__PURE__ */ jsx123(
|
|
36870
|
+
"button",
|
|
36871
|
+
{
|
|
36872
|
+
onClick: handleCancel,
|
|
36873
|
+
disabled: isSaving,
|
|
36874
|
+
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",
|
|
36875
|
+
children: "Cancel"
|
|
36876
|
+
}
|
|
36877
|
+
),
|
|
36878
|
+
/* @__PURE__ */ jsx123(
|
|
36879
|
+
"button",
|
|
36880
|
+
{
|
|
36881
|
+
onClick: handleSave,
|
|
36882
|
+
disabled: isSaving,
|
|
36883
|
+
className: "text-[11px] px-2.5 py-1 rounded-md bg-[var(--primary-color)] text-white hover:opacity-90 transition-opacity disabled:opacity-50",
|
|
36884
|
+
children: isSaving ? "Saving..." : "Save"
|
|
36885
|
+
}
|
|
36886
|
+
)
|
|
36887
|
+
] }) : /* @__PURE__ */ jsx123(
|
|
36888
|
+
"button",
|
|
36889
|
+
{
|
|
36890
|
+
onClick: handleEdit,
|
|
36891
|
+
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",
|
|
36892
|
+
children: "Edit"
|
|
36893
|
+
}
|
|
36894
|
+
) })
|
|
36895
|
+
] }),
|
|
36896
|
+
/* @__PURE__ */ jsx123("div", { className: "flex flex-wrap items-center gap-3 px-5 pb-3 text-xs", children: /* @__PURE__ */ jsxs82("span", { className: "text-[var(--foreground)]/40", children: [
|
|
36897
|
+
"Model:",
|
|
36898
|
+
" ",
|
|
36899
|
+
/* @__PURE__ */ jsx123("span", { className: "font-mono text-[var(--foreground)]/70", children: agent.model })
|
|
36900
|
+
] }) }),
|
|
36901
|
+
agent.tools && agent.tools.length > 0 && /* @__PURE__ */ jsxs82("div", { className: "border-t border-[var(--border-color)] px-5 py-3", children: [
|
|
36902
|
+
/* @__PURE__ */ jsxs82("p", { className: "text-[11px] font-semibold text-[var(--foreground)]/40 uppercase tracking-wide mb-2", children: [
|
|
36903
|
+
"Tools (",
|
|
36904
|
+
agent.tools.length,
|
|
36905
|
+
")"
|
|
36906
|
+
] }),
|
|
36907
|
+
/* @__PURE__ */ jsx123("div", { className: "flex flex-wrap gap-1.5", children: agent.tools.map((tool) => /* @__PURE__ */ jsx123(
|
|
36908
|
+
"span",
|
|
36909
|
+
{
|
|
36910
|
+
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",
|
|
36911
|
+
children: tool
|
|
36912
|
+
},
|
|
36913
|
+
tool
|
|
36914
|
+
)) })
|
|
36915
|
+
] })
|
|
36916
|
+
]
|
|
36917
|
+
}
|
|
36918
|
+
);
|
|
36919
|
+
};
|
|
36920
|
+
|
|
36921
|
+
// src/molecules/agent-builder/AgentDataTable/AgentDataTable.tsx
|
|
36922
|
+
import { jsx as jsx124, jsxs as jsxs83 } from "react/jsx-runtime";
|
|
36923
|
+
var AgentDataTable = ({
|
|
36924
|
+
headers,
|
|
36925
|
+
rows,
|
|
36926
|
+
className
|
|
36927
|
+
}) => {
|
|
36928
|
+
const renderCell = (value) => {
|
|
36929
|
+
if (typeof value === "boolean") {
|
|
36930
|
+
return /* @__PURE__ */ jsxs83(
|
|
36931
|
+
"span",
|
|
36932
|
+
{
|
|
36933
|
+
className: cn(
|
|
36934
|
+
"inline-flex items-center gap-1 text-[11px] font-medium px-2 py-0.5 rounded-full",
|
|
36935
|
+
value ? "bg-emerald-500/10 text-emerald-600" : "bg-red-500/10 text-red-500"
|
|
36936
|
+
),
|
|
36937
|
+
children: [
|
|
36938
|
+
/* @__PURE__ */ jsx124(
|
|
36939
|
+
"span",
|
|
36940
|
+
{
|
|
36941
|
+
className: cn(
|
|
36942
|
+
"w-1.5 h-1.5 rounded-full",
|
|
36943
|
+
value ? "bg-emerald-500" : "bg-red-500"
|
|
36944
|
+
)
|
|
36945
|
+
}
|
|
36946
|
+
),
|
|
36947
|
+
value ? "Yes" : "No"
|
|
36948
|
+
]
|
|
36949
|
+
}
|
|
36950
|
+
);
|
|
36951
|
+
}
|
|
36952
|
+
return /* @__PURE__ */ jsx124("span", { className: "text-[var(--foreground)]", children: String(value) });
|
|
36953
|
+
};
|
|
36954
|
+
return /* @__PURE__ */ jsx124(
|
|
36955
|
+
"div",
|
|
36956
|
+
{
|
|
36957
|
+
className: cn(
|
|
36958
|
+
"my-3 rounded-xl border border-[var(--border-color)] bg-[var(--card-background)] overflow-hidden",
|
|
36959
|
+
className
|
|
36960
|
+
),
|
|
36961
|
+
children: /* @__PURE__ */ jsx124("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsxs83("table", { className: "w-full text-xs", children: [
|
|
36962
|
+
/* @__PURE__ */ jsx124("thead", { children: /* @__PURE__ */ jsx124("tr", { className: "border-b border-[var(--border-color)] bg-[var(--foreground)]/[0.03]", children: headers.map((header) => /* @__PURE__ */ jsx124(
|
|
36963
|
+
"th",
|
|
36964
|
+
{
|
|
36965
|
+
className: "text-left px-4 py-2.5 text-[11px] font-semibold text-[var(--foreground)]/60 uppercase tracking-wide whitespace-nowrap",
|
|
36966
|
+
children: header
|
|
36967
|
+
},
|
|
36968
|
+
header
|
|
36969
|
+
)) }) }),
|
|
36970
|
+
/* @__PURE__ */ jsx124("tbody", { children: rows.map((row, rowIdx) => /* @__PURE__ */ jsx124(
|
|
36971
|
+
"tr",
|
|
36972
|
+
{
|
|
36973
|
+
className: "border-b border-[var(--border-color)] last:border-b-0 hover:bg-[var(--foreground)]/[0.02] transition-colors",
|
|
36974
|
+
children: row.map((cell, cellIdx) => /* @__PURE__ */ jsx124(
|
|
36975
|
+
"td",
|
|
36976
|
+
{
|
|
36977
|
+
className: "px-4 py-2.5 text-xs whitespace-nowrap",
|
|
36978
|
+
children: renderCell(cell)
|
|
36979
|
+
},
|
|
36980
|
+
cellIdx
|
|
36981
|
+
))
|
|
36982
|
+
},
|
|
36983
|
+
rowIdx
|
|
36984
|
+
)) })
|
|
36985
|
+
] }) })
|
|
36986
|
+
}
|
|
36987
|
+
);
|
|
36988
|
+
};
|
|
36989
|
+
|
|
36990
|
+
// src/molecules/agent-builder/WorkflowVisualizer/WorkflowVisualizer.tsx
|
|
36991
|
+
import { useState as useState11 } from "react";
|
|
36992
|
+
import { jsx as jsx125, jsxs as jsxs84 } from "react/jsx-runtime";
|
|
36993
|
+
var WorkflowVisualizer = ({
|
|
36994
|
+
steps,
|
|
36995
|
+
className
|
|
36996
|
+
}) => {
|
|
36997
|
+
const [expandedStep, setExpandedStep] = useState11(null);
|
|
36998
|
+
return /* @__PURE__ */ jsxs84(
|
|
36999
|
+
"div",
|
|
37000
|
+
{
|
|
37001
|
+
className: cn(
|
|
37002
|
+
"my-3 rounded-xl border border-[var(--border-color)] bg-[var(--card-background)] overflow-hidden shadow-sm",
|
|
37003
|
+
className
|
|
37004
|
+
),
|
|
37005
|
+
children: [
|
|
37006
|
+
/* @__PURE__ */ jsxs84("div", { className: "px-4 py-3 border-b border-[var(--border-color)] bg-[var(--foreground)]/[0.03] flex items-center gap-2.5", children: [
|
|
37007
|
+
/* @__PURE__ */ jsx125("div", { className: "w-6 h-6 rounded-md bg-[var(--primary-color)]/10 flex items-center justify-center", children: /* @__PURE__ */ jsx125(
|
|
37008
|
+
"svg",
|
|
37009
|
+
{
|
|
37010
|
+
width: "14",
|
|
37011
|
+
height: "14",
|
|
37012
|
+
viewBox: "0 0 24 24",
|
|
37013
|
+
fill: "none",
|
|
37014
|
+
stroke: "var(--primary-color)",
|
|
37015
|
+
strokeWidth: "2",
|
|
37016
|
+
strokeLinecap: "round",
|
|
37017
|
+
strokeLinejoin: "round",
|
|
37018
|
+
children: /* @__PURE__ */ jsx125("polyline", { points: "22 12 18 12 15 21 9 3 6 12 2 12" })
|
|
37019
|
+
}
|
|
37020
|
+
) }),
|
|
37021
|
+
/* @__PURE__ */ jsx125("h4", { className: "text-sm font-semibold text-[var(--foreground)]", children: "Workflow" }),
|
|
37022
|
+
/* @__PURE__ */ jsxs84("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: [
|
|
37023
|
+
steps.length,
|
|
37024
|
+
" steps"
|
|
37025
|
+
] })
|
|
37026
|
+
] }),
|
|
37027
|
+
/* @__PURE__ */ jsx125("div", { className: "px-4 py-3", children: steps.map((step, idx) => {
|
|
37028
|
+
const isLast = idx === steps.length - 1;
|
|
37029
|
+
const isExpanded = expandedStep === step.id;
|
|
37030
|
+
return /* @__PURE__ */ jsxs84("div", { className: "flex gap-3", children: [
|
|
37031
|
+
/* @__PURE__ */ jsxs84("div", { className: "flex flex-col items-center shrink-0", children: [
|
|
37032
|
+
/* @__PURE__ */ jsx125("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__ */ jsx125("span", { className: "text-[10px] font-bold text-[var(--primary-color)]", children: idx + 1 }) }),
|
|
37033
|
+
!isLast && /* @__PURE__ */ jsx125("div", { className: "w-0.5 flex-1 min-h-[16px] bg-[var(--primary-color)]/15" })
|
|
37034
|
+
] }),
|
|
37035
|
+
/* @__PURE__ */ jsxs84(
|
|
37036
|
+
"div",
|
|
37037
|
+
{
|
|
37038
|
+
className: cn(
|
|
37039
|
+
"flex-1 mb-3 rounded-lg border border-[var(--border-color)] transition-colors",
|
|
37040
|
+
isExpanded ? "bg-[var(--foreground)]/[0.02]" : "hover:bg-[var(--foreground)]/[0.02]"
|
|
37041
|
+
),
|
|
37042
|
+
children: [
|
|
37043
|
+
/* @__PURE__ */ jsxs84(
|
|
37044
|
+
"button",
|
|
37045
|
+
{
|
|
37046
|
+
onClick: () => setExpandedStep(isExpanded ? null : step.id),
|
|
37047
|
+
className: "w-full text-left px-3 py-2.5 flex items-center gap-2",
|
|
37048
|
+
children: [
|
|
37049
|
+
/* @__PURE__ */ jsxs84("div", { className: "flex-1 min-w-0", children: [
|
|
37050
|
+
/* @__PURE__ */ jsx125("span", { className: "text-[13px] font-medium text-[var(--foreground)]", children: step.name }),
|
|
37051
|
+
step.description && !isExpanded && /* @__PURE__ */ jsxs84("span", { className: "text-xs text-[var(--foreground)]/40 ml-2", children: [
|
|
37052
|
+
"\u2014 ",
|
|
37053
|
+
step.description
|
|
37054
|
+
] })
|
|
37055
|
+
] }),
|
|
37056
|
+
/* @__PURE__ */ jsx125(
|
|
37057
|
+
"svg",
|
|
37058
|
+
{
|
|
37059
|
+
width: "12",
|
|
37060
|
+
height: "12",
|
|
37061
|
+
viewBox: "0 0 24 24",
|
|
37062
|
+
fill: "none",
|
|
37063
|
+
stroke: "currentColor",
|
|
37064
|
+
strokeWidth: "2",
|
|
37065
|
+
className: cn(
|
|
37066
|
+
"shrink-0 text-[var(--foreground)]/30 transition-transform",
|
|
37067
|
+
isExpanded && "rotate-180"
|
|
37068
|
+
),
|
|
37069
|
+
children: /* @__PURE__ */ jsx125("polyline", { points: "6 9 12 15 18 9" })
|
|
37070
|
+
}
|
|
37071
|
+
)
|
|
37072
|
+
]
|
|
37073
|
+
}
|
|
37074
|
+
),
|
|
37075
|
+
isExpanded && /* @__PURE__ */ jsxs84("div", { className: "px-3 pb-3 space-y-2.5", children: [
|
|
37076
|
+
step.description && /* @__PURE__ */ jsx125("p", { className: "text-xs text-[var(--foreground)]/50 leading-relaxed", children: step.description }),
|
|
37077
|
+
step.sub_steps && step.sub_steps.length > 0 && /* @__PURE__ */ jsx125("div", { className: "space-y-1", children: step.sub_steps.map((sub) => /* @__PURE__ */ jsxs84(
|
|
37078
|
+
"div",
|
|
37079
|
+
{
|
|
37080
|
+
className: "flex items-start gap-2 text-xs",
|
|
37081
|
+
children: [
|
|
37082
|
+
/* @__PURE__ */ jsx125("span", { className: "shrink-0 mt-0.5 w-1.5 h-1.5 rounded-full bg-[var(--primary-color)]/40" }),
|
|
37083
|
+
/* @__PURE__ */ jsx125("span", { className: "text-[var(--foreground)]/60", children: sub.action })
|
|
37084
|
+
]
|
|
37085
|
+
},
|
|
37086
|
+
sub.id
|
|
37087
|
+
)) }),
|
|
37088
|
+
step.tools && step.tools.length > 0 && /* @__PURE__ */ jsxs84("div", { className: "flex items-center gap-1.5 flex-wrap", children: [
|
|
37089
|
+
/* @__PURE__ */ jsx125("span", { className: "text-[10px] text-[var(--foreground)]/30 uppercase font-semibold tracking-wider", children: "Tools:" }),
|
|
37090
|
+
step.tools.map((tool) => /* @__PURE__ */ jsx125(
|
|
37091
|
+
"span",
|
|
37092
|
+
{
|
|
37093
|
+
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",
|
|
37094
|
+
children: tool
|
|
37095
|
+
},
|
|
37096
|
+
tool
|
|
37097
|
+
))
|
|
37098
|
+
] }),
|
|
37099
|
+
step.on_failure && /* @__PURE__ */ jsxs84("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: [
|
|
37100
|
+
/* @__PURE__ */ jsx125("span", { className: "shrink-0 text-[10px] font-semibold text-[#ef4444]/70 uppercase tracking-wider mt-px", children: "On failure:" }),
|
|
37101
|
+
/* @__PURE__ */ jsx125("span", { className: "text-[var(--foreground)]/50", children: step.on_failure })
|
|
37102
|
+
] })
|
|
37103
|
+
] })
|
|
37104
|
+
]
|
|
37105
|
+
}
|
|
37106
|
+
)
|
|
37107
|
+
] }, step.id);
|
|
37108
|
+
}) })
|
|
37109
|
+
]
|
|
37110
|
+
}
|
|
37111
|
+
);
|
|
37112
|
+
};
|
|
37113
|
+
|
|
37114
|
+
// src/molecules/agent-builder/InstructionPreview/InstructionPreview.tsx
|
|
37115
|
+
import { useState as useState12 } from "react";
|
|
37116
|
+
import { jsx as jsx126, jsxs as jsxs85 } from "react/jsx-runtime";
|
|
37117
|
+
var InstructionPreview = ({
|
|
37118
|
+
agent_name,
|
|
37119
|
+
description,
|
|
37120
|
+
instruction,
|
|
37121
|
+
workflow_summary,
|
|
37122
|
+
tools,
|
|
37123
|
+
className
|
|
37124
|
+
}) => {
|
|
37125
|
+
const [isExpanded, setIsExpanded] = useState12(false);
|
|
37126
|
+
const previewLength = 300;
|
|
37127
|
+
const isLong = instruction.length > previewLength;
|
|
37128
|
+
const displayText = isExpanded || !isLong ? instruction : instruction.slice(0, previewLength) + "...";
|
|
37129
|
+
return /* @__PURE__ */ jsxs85(
|
|
37130
|
+
"div",
|
|
37131
|
+
{
|
|
37132
|
+
className: cn(
|
|
37133
|
+
"my-3 rounded-xl border border-[var(--border-color)] bg-[var(--card-background)] overflow-hidden shadow-sm",
|
|
37134
|
+
className
|
|
37135
|
+
),
|
|
37136
|
+
children: [
|
|
37137
|
+
/* @__PURE__ */ jsx126("div", { className: "px-4 py-3 border-b border-[var(--border-color)] bg-[var(--foreground)]/[0.03]", children: /* @__PURE__ */ jsxs85("div", { className: "flex items-center gap-2.5", children: [
|
|
37138
|
+
/* @__PURE__ */ jsx126("div", { className: "w-6 h-6 rounded-md bg-[var(--primary-color)]/10 flex items-center justify-center", children: /* @__PURE__ */ jsxs85(
|
|
37139
|
+
"svg",
|
|
37140
|
+
{
|
|
37141
|
+
width: "14",
|
|
37142
|
+
height: "14",
|
|
37143
|
+
viewBox: "0 0 24 24",
|
|
37144
|
+
fill: "none",
|
|
37145
|
+
stroke: "var(--primary-color)",
|
|
37146
|
+
strokeWidth: "2",
|
|
37147
|
+
strokeLinecap: "round",
|
|
37148
|
+
strokeLinejoin: "round",
|
|
37149
|
+
children: [
|
|
37150
|
+
/* @__PURE__ */ jsx126("path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }),
|
|
37151
|
+
/* @__PURE__ */ jsx126("polyline", { points: "14 2 14 8 20 8" }),
|
|
37152
|
+
/* @__PURE__ */ jsx126("line", { x1: "16", y1: "13", x2: "8", y2: "13" }),
|
|
37153
|
+
/* @__PURE__ */ jsx126("line", { x1: "16", y1: "17", x2: "8", y2: "17" }),
|
|
37154
|
+
/* @__PURE__ */ jsx126("polyline", { points: "10 9 9 9 8 9" })
|
|
37155
|
+
]
|
|
37156
|
+
}
|
|
37157
|
+
) }),
|
|
37158
|
+
/* @__PURE__ */ jsxs85("div", { className: "flex-1 min-w-0", children: [
|
|
37159
|
+
/* @__PURE__ */ jsx126("h4", { className: "text-sm font-semibold text-[var(--foreground)]", children: agent_name }),
|
|
37160
|
+
description && /* @__PURE__ */ jsx126("p", { className: "text-[11px] text-[var(--foreground)]/40 mt-0.5", children: description })
|
|
37161
|
+
] })
|
|
37162
|
+
] }) }),
|
|
37163
|
+
/* @__PURE__ */ jsxs85("div", { className: "px-4 py-3 space-y-3", children: [
|
|
37164
|
+
/* @__PURE__ */ jsxs85("div", { children: [
|
|
37165
|
+
/* @__PURE__ */ jsx126("p", { className: "text-[10px] font-semibold text-[var(--foreground)]/30 uppercase tracking-wider mb-1.5", children: "Instruction" }),
|
|
37166
|
+
/* @__PURE__ */ jsx126("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 }),
|
|
37167
|
+
isLong && /* @__PURE__ */ jsx126(
|
|
37168
|
+
"button",
|
|
37169
|
+
{
|
|
37170
|
+
onClick: () => setIsExpanded(!isExpanded),
|
|
37171
|
+
className: "text-[11px] text-[var(--primary-color)] hover:underline mt-1",
|
|
37172
|
+
children: isExpanded ? "Show less" : "Show full instruction"
|
|
37173
|
+
}
|
|
37174
|
+
)
|
|
37175
|
+
] }),
|
|
37176
|
+
workflow_summary && workflow_summary.length > 0 && /* @__PURE__ */ jsxs85("div", { children: [
|
|
37177
|
+
/* @__PURE__ */ jsx126("p", { className: "text-[10px] font-semibold text-[var(--foreground)]/30 uppercase tracking-wider mb-1.5", children: "Workflow" }),
|
|
37178
|
+
/* @__PURE__ */ jsx126("div", { className: "space-y-1", children: workflow_summary.map((step, idx) => /* @__PURE__ */ jsxs85("div", { className: "flex items-start gap-2 text-xs", children: [
|
|
37179
|
+
/* @__PURE__ */ jsx126("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 }),
|
|
37180
|
+
/* @__PURE__ */ jsx126("span", { className: "text-[var(--foreground)]/50 mt-0.5", children: step })
|
|
37181
|
+
] }, idx)) })
|
|
37182
|
+
] }),
|
|
37183
|
+
tools && tools.length > 0 && /* @__PURE__ */ jsxs85("div", { children: [
|
|
37184
|
+
/* @__PURE__ */ jsx126("p", { className: "text-[10px] font-semibold text-[var(--foreground)]/30 uppercase tracking-wider mb-1.5", children: "Tools" }),
|
|
37185
|
+
/* @__PURE__ */ jsx126("div", { className: "flex flex-wrap gap-1.5", children: tools.map((tool) => /* @__PURE__ */ jsx126(
|
|
37186
|
+
"span",
|
|
37187
|
+
{
|
|
37188
|
+
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",
|
|
37189
|
+
children: tool
|
|
37190
|
+
},
|
|
37191
|
+
tool
|
|
37192
|
+
)) })
|
|
37193
|
+
] })
|
|
37194
|
+
] })
|
|
37195
|
+
]
|
|
37196
|
+
}
|
|
37197
|
+
);
|
|
37198
|
+
};
|
|
37199
|
+
|
|
36603
37200
|
// src/components/ui/index.ts
|
|
36604
37201
|
var ui_exports = {};
|
|
36605
37202
|
__export(ui_exports, {
|
|
@@ -36892,7 +37489,7 @@ __export(ui_exports, {
|
|
|
36892
37489
|
// src/components/ui/button-group.tsx
|
|
36893
37490
|
import { Slot as Slot4 } from "@radix-ui/react-slot";
|
|
36894
37491
|
import { cva as cva8 } from "class-variance-authority";
|
|
36895
|
-
import { jsx as
|
|
37492
|
+
import { jsx as jsx127 } from "react/jsx-runtime";
|
|
36896
37493
|
var buttonGroupVariants = cva8(
|
|
36897
37494
|
"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",
|
|
36898
37495
|
{
|
|
@@ -36912,7 +37509,7 @@ function ButtonGroup({
|
|
|
36912
37509
|
orientation,
|
|
36913
37510
|
...props
|
|
36914
37511
|
}) {
|
|
36915
|
-
return /* @__PURE__ */
|
|
37512
|
+
return /* @__PURE__ */ jsx127(
|
|
36916
37513
|
"div",
|
|
36917
37514
|
{
|
|
36918
37515
|
role: "group",
|
|
@@ -36929,7 +37526,7 @@ function ButtonGroupText({
|
|
|
36929
37526
|
...props
|
|
36930
37527
|
}) {
|
|
36931
37528
|
const Comp = asChild ? Slot4 : "div";
|
|
36932
|
-
return /* @__PURE__ */
|
|
37529
|
+
return /* @__PURE__ */ jsx127(
|
|
36933
37530
|
Comp,
|
|
36934
37531
|
{
|
|
36935
37532
|
className: cn(
|
|
@@ -36945,7 +37542,7 @@ function ButtonGroupSeparator({
|
|
|
36945
37542
|
orientation = "vertical",
|
|
36946
37543
|
...props
|
|
36947
37544
|
}) {
|
|
36948
|
-
return /* @__PURE__ */
|
|
37545
|
+
return /* @__PURE__ */ jsx127(
|
|
36949
37546
|
Separator2,
|
|
36950
37547
|
{
|
|
36951
37548
|
"data-slot": "button-group-separator",
|
|
@@ -36961,9 +37558,9 @@ function ButtonGroupSeparator({
|
|
|
36961
37558
|
|
|
36962
37559
|
// src/components/ui/empty.tsx
|
|
36963
37560
|
import { cva as cva9 } from "class-variance-authority";
|
|
36964
|
-
import { jsx as
|
|
37561
|
+
import { jsx as jsx128 } from "react/jsx-runtime";
|
|
36965
37562
|
function Empty({ className, ...props }) {
|
|
36966
|
-
return /* @__PURE__ */
|
|
37563
|
+
return /* @__PURE__ */ jsx128(
|
|
36967
37564
|
"div",
|
|
36968
37565
|
{
|
|
36969
37566
|
"data-slot": "empty",
|
|
@@ -36976,7 +37573,7 @@ function Empty({ className, ...props }) {
|
|
|
36976
37573
|
);
|
|
36977
37574
|
}
|
|
36978
37575
|
function EmptyHeader({ className, ...props }) {
|
|
36979
|
-
return /* @__PURE__ */
|
|
37576
|
+
return /* @__PURE__ */ jsx128(
|
|
36980
37577
|
"div",
|
|
36981
37578
|
{
|
|
36982
37579
|
"data-slot": "empty-header",
|
|
@@ -37007,7 +37604,7 @@ function EmptyMedia({
|
|
|
37007
37604
|
variant = "default",
|
|
37008
37605
|
...props
|
|
37009
37606
|
}) {
|
|
37010
|
-
return /* @__PURE__ */
|
|
37607
|
+
return /* @__PURE__ */ jsx128(
|
|
37011
37608
|
"div",
|
|
37012
37609
|
{
|
|
37013
37610
|
"data-slot": "empty-icon",
|
|
@@ -37018,7 +37615,7 @@ function EmptyMedia({
|
|
|
37018
37615
|
);
|
|
37019
37616
|
}
|
|
37020
37617
|
function EmptyTitle({ className, ...props }) {
|
|
37021
|
-
return /* @__PURE__ */
|
|
37618
|
+
return /* @__PURE__ */ jsx128(
|
|
37022
37619
|
"div",
|
|
37023
37620
|
{
|
|
37024
37621
|
"data-slot": "empty-title",
|
|
@@ -37028,7 +37625,7 @@ function EmptyTitle({ className, ...props }) {
|
|
|
37028
37625
|
);
|
|
37029
37626
|
}
|
|
37030
37627
|
function EmptyDescription({ className, ...props }) {
|
|
37031
|
-
return /* @__PURE__ */
|
|
37628
|
+
return /* @__PURE__ */ jsx128(
|
|
37032
37629
|
"div",
|
|
37033
37630
|
{
|
|
37034
37631
|
"data-slot": "empty-description",
|
|
@@ -37041,7 +37638,7 @@ function EmptyDescription({ className, ...props }) {
|
|
|
37041
37638
|
);
|
|
37042
37639
|
}
|
|
37043
37640
|
function EmptyContent({ className, ...props }) {
|
|
37044
|
-
return /* @__PURE__ */
|
|
37641
|
+
return /* @__PURE__ */ jsx128(
|
|
37045
37642
|
"div",
|
|
37046
37643
|
{
|
|
37047
37644
|
"data-slot": "empty-content",
|
|
@@ -37057,9 +37654,9 @@ function EmptyContent({ className, ...props }) {
|
|
|
37057
37654
|
// src/components/ui/field.tsx
|
|
37058
37655
|
import { useMemo as useMemo9 } from "react";
|
|
37059
37656
|
import { cva as cva10 } from "class-variance-authority";
|
|
37060
|
-
import { jsx as
|
|
37657
|
+
import { jsx as jsx129, jsxs as jsxs86 } from "react/jsx-runtime";
|
|
37061
37658
|
function FieldSet({ className, ...props }) {
|
|
37062
|
-
return /* @__PURE__ */
|
|
37659
|
+
return /* @__PURE__ */ jsx129(
|
|
37063
37660
|
"fieldset",
|
|
37064
37661
|
{
|
|
37065
37662
|
"data-slot": "field-set",
|
|
@@ -37077,7 +37674,7 @@ function FieldLegend({
|
|
|
37077
37674
|
variant = "legend",
|
|
37078
37675
|
...props
|
|
37079
37676
|
}) {
|
|
37080
|
-
return /* @__PURE__ */
|
|
37677
|
+
return /* @__PURE__ */ jsx129(
|
|
37081
37678
|
"legend",
|
|
37082
37679
|
{
|
|
37083
37680
|
"data-slot": "field-legend",
|
|
@@ -37093,7 +37690,7 @@ function FieldLegend({
|
|
|
37093
37690
|
);
|
|
37094
37691
|
}
|
|
37095
37692
|
function FieldGroup({ className, ...props }) {
|
|
37096
|
-
return /* @__PURE__ */
|
|
37693
|
+
return /* @__PURE__ */ jsx129(
|
|
37097
37694
|
"div",
|
|
37098
37695
|
{
|
|
37099
37696
|
"data-slot": "field-group",
|
|
@@ -37133,7 +37730,7 @@ function Field({
|
|
|
37133
37730
|
orientation = "vertical",
|
|
37134
37731
|
...props
|
|
37135
37732
|
}) {
|
|
37136
|
-
return /* @__PURE__ */
|
|
37733
|
+
return /* @__PURE__ */ jsx129(
|
|
37137
37734
|
"div",
|
|
37138
37735
|
{
|
|
37139
37736
|
role: "group",
|
|
@@ -37145,7 +37742,7 @@ function Field({
|
|
|
37145
37742
|
);
|
|
37146
37743
|
}
|
|
37147
37744
|
function FieldContent({ className, ...props }) {
|
|
37148
|
-
return /* @__PURE__ */
|
|
37745
|
+
return /* @__PURE__ */ jsx129(
|
|
37149
37746
|
"div",
|
|
37150
37747
|
{
|
|
37151
37748
|
"data-slot": "field-content",
|
|
@@ -37161,7 +37758,7 @@ function FieldLabel({
|
|
|
37161
37758
|
className,
|
|
37162
37759
|
...props
|
|
37163
37760
|
}) {
|
|
37164
|
-
return /* @__PURE__ */
|
|
37761
|
+
return /* @__PURE__ */ jsx129(
|
|
37165
37762
|
Label,
|
|
37166
37763
|
{
|
|
37167
37764
|
"data-slot": "field-label",
|
|
@@ -37176,7 +37773,7 @@ function FieldLabel({
|
|
|
37176
37773
|
);
|
|
37177
37774
|
}
|
|
37178
37775
|
function FieldTitle({ className, ...props }) {
|
|
37179
|
-
return /* @__PURE__ */
|
|
37776
|
+
return /* @__PURE__ */ jsx129(
|
|
37180
37777
|
"div",
|
|
37181
37778
|
{
|
|
37182
37779
|
"data-slot": "field-label",
|
|
@@ -37189,7 +37786,7 @@ function FieldTitle({ className, ...props }) {
|
|
|
37189
37786
|
);
|
|
37190
37787
|
}
|
|
37191
37788
|
function FieldDescription({ className, ...props }) {
|
|
37192
|
-
return /* @__PURE__ */
|
|
37789
|
+
return /* @__PURE__ */ jsx129(
|
|
37193
37790
|
"p",
|
|
37194
37791
|
{
|
|
37195
37792
|
"data-slot": "field-description",
|
|
@@ -37208,7 +37805,7 @@ function FieldSeparator({
|
|
|
37208
37805
|
className,
|
|
37209
37806
|
...props
|
|
37210
37807
|
}) {
|
|
37211
|
-
return /* @__PURE__ */
|
|
37808
|
+
return /* @__PURE__ */ jsxs86(
|
|
37212
37809
|
"div",
|
|
37213
37810
|
{
|
|
37214
37811
|
"data-slot": "field-separator",
|
|
@@ -37219,8 +37816,8 @@ function FieldSeparator({
|
|
|
37219
37816
|
),
|
|
37220
37817
|
...props,
|
|
37221
37818
|
children: [
|
|
37222
|
-
/* @__PURE__ */
|
|
37223
|
-
children && /* @__PURE__ */
|
|
37819
|
+
/* @__PURE__ */ jsx129(Separator2, { className: "absolute inset-0 top-1/2" }),
|
|
37820
|
+
children && /* @__PURE__ */ jsx129(
|
|
37224
37821
|
"span",
|
|
37225
37822
|
{
|
|
37226
37823
|
className: "bg-background text-muted-foreground relative mx-auto block w-fit px-2",
|
|
@@ -37248,14 +37845,14 @@ function FieldError({
|
|
|
37248
37845
|
if (errors?.length === 1 && errors[0]?.message) {
|
|
37249
37846
|
return errors[0].message;
|
|
37250
37847
|
}
|
|
37251
|
-
return /* @__PURE__ */
|
|
37252
|
-
(error, index) => error?.message && /* @__PURE__ */
|
|
37848
|
+
return /* @__PURE__ */ jsx129("ul", { className: "ml-4 flex list-disc flex-col gap-1", children: errors.map(
|
|
37849
|
+
(error, index) => error?.message && /* @__PURE__ */ jsx129("li", { children: error.message }, index)
|
|
37253
37850
|
) });
|
|
37254
37851
|
}, [children, errors]);
|
|
37255
37852
|
if (!content) {
|
|
37256
37853
|
return null;
|
|
37257
37854
|
}
|
|
37258
|
-
return /* @__PURE__ */
|
|
37855
|
+
return /* @__PURE__ */ jsx129(
|
|
37259
37856
|
"div",
|
|
37260
37857
|
{
|
|
37261
37858
|
role: "alert",
|
|
@@ -37269,9 +37866,9 @@ function FieldError({
|
|
|
37269
37866
|
|
|
37270
37867
|
// src/components/ui/input-group.tsx
|
|
37271
37868
|
import { cva as cva11 } from "class-variance-authority";
|
|
37272
|
-
import { jsx as
|
|
37869
|
+
import { jsx as jsx130 } from "react/jsx-runtime";
|
|
37273
37870
|
function InputGroup({ className, ...props }) {
|
|
37274
|
-
return /* @__PURE__ */
|
|
37871
|
+
return /* @__PURE__ */ jsx130(
|
|
37275
37872
|
"div",
|
|
37276
37873
|
{
|
|
37277
37874
|
"data-slot": "input-group",
|
|
@@ -37315,7 +37912,7 @@ function InputGroupAddon({
|
|
|
37315
37912
|
align = "inline-start",
|
|
37316
37913
|
...props
|
|
37317
37914
|
}) {
|
|
37318
|
-
return /* @__PURE__ */
|
|
37915
|
+
return /* @__PURE__ */ jsx130(
|
|
37319
37916
|
"div",
|
|
37320
37917
|
{
|
|
37321
37918
|
role: "group",
|
|
@@ -37355,7 +37952,7 @@ function InputGroupButton({
|
|
|
37355
37952
|
size = "xs",
|
|
37356
37953
|
...props
|
|
37357
37954
|
}) {
|
|
37358
|
-
return /* @__PURE__ */
|
|
37955
|
+
return /* @__PURE__ */ jsx130(
|
|
37359
37956
|
Button,
|
|
37360
37957
|
{
|
|
37361
37958
|
type,
|
|
@@ -37367,7 +37964,7 @@ function InputGroupButton({
|
|
|
37367
37964
|
);
|
|
37368
37965
|
}
|
|
37369
37966
|
function InputGroupText({ className, ...props }) {
|
|
37370
|
-
return /* @__PURE__ */
|
|
37967
|
+
return /* @__PURE__ */ jsx130(
|
|
37371
37968
|
"span",
|
|
37372
37969
|
{
|
|
37373
37970
|
className: cn(
|
|
@@ -37382,7 +37979,7 @@ function InputGroupInput({
|
|
|
37382
37979
|
className,
|
|
37383
37980
|
...props
|
|
37384
37981
|
}) {
|
|
37385
|
-
return /* @__PURE__ */
|
|
37982
|
+
return /* @__PURE__ */ jsx130(
|
|
37386
37983
|
Input,
|
|
37387
37984
|
{
|
|
37388
37985
|
"data-slot": "input-group-control",
|
|
@@ -37398,7 +37995,7 @@ function InputGroupTextarea({
|
|
|
37398
37995
|
className,
|
|
37399
37996
|
...props
|
|
37400
37997
|
}) {
|
|
37401
|
-
return /* @__PURE__ */
|
|
37998
|
+
return /* @__PURE__ */ jsx130(
|
|
37402
37999
|
Textarea,
|
|
37403
38000
|
{
|
|
37404
38001
|
"data-slot": "input-group-control",
|
|
@@ -37414,9 +38011,9 @@ function InputGroupTextarea({
|
|
|
37414
38011
|
// src/components/ui/item.tsx
|
|
37415
38012
|
import { Slot as Slot5 } from "@radix-ui/react-slot";
|
|
37416
38013
|
import { cva as cva12 } from "class-variance-authority";
|
|
37417
|
-
import { jsx as
|
|
38014
|
+
import { jsx as jsx131 } from "react/jsx-runtime";
|
|
37418
38015
|
function ItemGroup({ className, ...props }) {
|
|
37419
|
-
return /* @__PURE__ */
|
|
38016
|
+
return /* @__PURE__ */ jsx131(
|
|
37420
38017
|
"div",
|
|
37421
38018
|
{
|
|
37422
38019
|
role: "list",
|
|
@@ -37430,7 +38027,7 @@ function ItemSeparator({
|
|
|
37430
38027
|
className,
|
|
37431
38028
|
...props
|
|
37432
38029
|
}) {
|
|
37433
|
-
return /* @__PURE__ */
|
|
38030
|
+
return /* @__PURE__ */ jsx131(
|
|
37434
38031
|
Separator2,
|
|
37435
38032
|
{
|
|
37436
38033
|
"data-slot": "item-separator",
|
|
@@ -37468,7 +38065,7 @@ function Item8({
|
|
|
37468
38065
|
...props
|
|
37469
38066
|
}) {
|
|
37470
38067
|
const Comp = asChild ? Slot5 : "div";
|
|
37471
|
-
return /* @__PURE__ */
|
|
38068
|
+
return /* @__PURE__ */ jsx131(
|
|
37472
38069
|
Comp,
|
|
37473
38070
|
{
|
|
37474
38071
|
"data-slot": "item",
|
|
@@ -37499,7 +38096,7 @@ function ItemMedia({
|
|
|
37499
38096
|
variant = "default",
|
|
37500
38097
|
...props
|
|
37501
38098
|
}) {
|
|
37502
|
-
return /* @__PURE__ */
|
|
38099
|
+
return /* @__PURE__ */ jsx131(
|
|
37503
38100
|
"div",
|
|
37504
38101
|
{
|
|
37505
38102
|
"data-slot": "item-media",
|
|
@@ -37510,7 +38107,7 @@ function ItemMedia({
|
|
|
37510
38107
|
);
|
|
37511
38108
|
}
|
|
37512
38109
|
function ItemContent({ className, ...props }) {
|
|
37513
|
-
return /* @__PURE__ */
|
|
38110
|
+
return /* @__PURE__ */ jsx131(
|
|
37514
38111
|
"div",
|
|
37515
38112
|
{
|
|
37516
38113
|
"data-slot": "item-content",
|
|
@@ -37523,7 +38120,7 @@ function ItemContent({ className, ...props }) {
|
|
|
37523
38120
|
);
|
|
37524
38121
|
}
|
|
37525
38122
|
function ItemTitle({ className, ...props }) {
|
|
37526
|
-
return /* @__PURE__ */
|
|
38123
|
+
return /* @__PURE__ */ jsx131(
|
|
37527
38124
|
"div",
|
|
37528
38125
|
{
|
|
37529
38126
|
"data-slot": "item-title",
|
|
@@ -37536,7 +38133,7 @@ function ItemTitle({ className, ...props }) {
|
|
|
37536
38133
|
);
|
|
37537
38134
|
}
|
|
37538
38135
|
function ItemDescription({ className, ...props }) {
|
|
37539
|
-
return /* @__PURE__ */
|
|
38136
|
+
return /* @__PURE__ */ jsx131(
|
|
37540
38137
|
"p",
|
|
37541
38138
|
{
|
|
37542
38139
|
"data-slot": "item-description",
|
|
@@ -37550,7 +38147,7 @@ function ItemDescription({ className, ...props }) {
|
|
|
37550
38147
|
);
|
|
37551
38148
|
}
|
|
37552
38149
|
function ItemActions({ className, ...props }) {
|
|
37553
|
-
return /* @__PURE__ */
|
|
38150
|
+
return /* @__PURE__ */ jsx131(
|
|
37554
38151
|
"div",
|
|
37555
38152
|
{
|
|
37556
38153
|
"data-slot": "item-actions",
|
|
@@ -37560,7 +38157,7 @@ function ItemActions({ className, ...props }) {
|
|
|
37560
38157
|
);
|
|
37561
38158
|
}
|
|
37562
38159
|
function ItemHeader({ className, ...props }) {
|
|
37563
|
-
return /* @__PURE__ */
|
|
38160
|
+
return /* @__PURE__ */ jsx131(
|
|
37564
38161
|
"div",
|
|
37565
38162
|
{
|
|
37566
38163
|
"data-slot": "item-header",
|
|
@@ -37573,7 +38170,7 @@ function ItemHeader({ className, ...props }) {
|
|
|
37573
38170
|
);
|
|
37574
38171
|
}
|
|
37575
38172
|
function ItemFooter({ className, ...props }) {
|
|
37576
|
-
return /* @__PURE__ */
|
|
38173
|
+
return /* @__PURE__ */ jsx131(
|
|
37577
38174
|
"div",
|
|
37578
38175
|
{
|
|
37579
38176
|
"data-slot": "item-footer",
|
|
@@ -37587,9 +38184,9 @@ function ItemFooter({ className, ...props }) {
|
|
|
37587
38184
|
}
|
|
37588
38185
|
|
|
37589
38186
|
// src/components/ui/kbd.tsx
|
|
37590
|
-
import { jsx as
|
|
38187
|
+
import { jsx as jsx132 } from "react/jsx-runtime";
|
|
37591
38188
|
function Kbd({ className, ...props }) {
|
|
37592
|
-
return /* @__PURE__ */
|
|
38189
|
+
return /* @__PURE__ */ jsx132(
|
|
37593
38190
|
"kbd",
|
|
37594
38191
|
{
|
|
37595
38192
|
"data-slot": "kbd",
|
|
@@ -37604,7 +38201,7 @@ function Kbd({ className, ...props }) {
|
|
|
37604
38201
|
);
|
|
37605
38202
|
}
|
|
37606
38203
|
function KbdGroup({ className, ...props }) {
|
|
37607
|
-
return /* @__PURE__ */
|
|
38204
|
+
return /* @__PURE__ */ jsx132(
|
|
37608
38205
|
"kbd",
|
|
37609
38206
|
{
|
|
37610
38207
|
"data-slot": "kbd-group",
|
|
@@ -37615,16 +38212,16 @@ function KbdGroup({ className, ...props }) {
|
|
|
37615
38212
|
}
|
|
37616
38213
|
|
|
37617
38214
|
// src/components/ui/sidebar.tsx
|
|
37618
|
-
import * as
|
|
38215
|
+
import * as React99 from "react";
|
|
37619
38216
|
import { Slot as Slot6 } from "@radix-ui/react-slot";
|
|
37620
38217
|
import { cva as cva13 } from "class-variance-authority";
|
|
37621
38218
|
|
|
37622
38219
|
// src/hooks/use-mobile.tsx
|
|
37623
|
-
import * as
|
|
38220
|
+
import * as React98 from "react";
|
|
37624
38221
|
var MOBILE_BREAKPOINT = 768;
|
|
37625
38222
|
function useIsMobile() {
|
|
37626
|
-
const [isMobile, setIsMobile] =
|
|
37627
|
-
|
|
38223
|
+
const [isMobile, setIsMobile] = React98.useState(void 0);
|
|
38224
|
+
React98.useEffect(() => {
|
|
37628
38225
|
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
37629
38226
|
const onChange = () => {
|
|
37630
38227
|
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
@@ -37637,22 +38234,22 @@ function useIsMobile() {
|
|
|
37637
38234
|
}
|
|
37638
38235
|
|
|
37639
38236
|
// src/components/ui/sidebar.tsx
|
|
37640
|
-
import { jsx as
|
|
38237
|
+
import { jsx as jsx133, jsxs as jsxs87 } from "react/jsx-runtime";
|
|
37641
38238
|
var SIDEBAR_COOKIE_NAME = "sidebar_state";
|
|
37642
38239
|
var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
|
|
37643
38240
|
var SIDEBAR_WIDTH = "16rem";
|
|
37644
38241
|
var SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
37645
38242
|
var SIDEBAR_WIDTH_ICON = "3rem";
|
|
37646
38243
|
var SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
37647
|
-
var SidebarContext =
|
|
38244
|
+
var SidebarContext = React99.createContext(null);
|
|
37648
38245
|
function useSidebar() {
|
|
37649
|
-
const context =
|
|
38246
|
+
const context = React99.useContext(SidebarContext);
|
|
37650
38247
|
if (!context) {
|
|
37651
38248
|
throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
37652
38249
|
}
|
|
37653
38250
|
return context;
|
|
37654
38251
|
}
|
|
37655
|
-
var SidebarProvider =
|
|
38252
|
+
var SidebarProvider = React99.forwardRef(
|
|
37656
38253
|
({
|
|
37657
38254
|
defaultOpen = true,
|
|
37658
38255
|
open: openProp,
|
|
@@ -37663,10 +38260,10 @@ var SidebarProvider = React96.forwardRef(
|
|
|
37663
38260
|
...props
|
|
37664
38261
|
}, ref) => {
|
|
37665
38262
|
const isMobile = useIsMobile();
|
|
37666
|
-
const [openMobile, setOpenMobile] =
|
|
37667
|
-
const [_open, _setOpen] =
|
|
38263
|
+
const [openMobile, setOpenMobile] = React99.useState(false);
|
|
38264
|
+
const [_open, _setOpen] = React99.useState(defaultOpen);
|
|
37668
38265
|
const open = openProp ?? _open;
|
|
37669
|
-
const setOpen =
|
|
38266
|
+
const setOpen = React99.useCallback(
|
|
37670
38267
|
(value) => {
|
|
37671
38268
|
const openState = typeof value === "function" ? value(open) : value;
|
|
37672
38269
|
if (setOpenProp) {
|
|
@@ -37678,10 +38275,10 @@ var SidebarProvider = React96.forwardRef(
|
|
|
37678
38275
|
},
|
|
37679
38276
|
[setOpenProp, open]
|
|
37680
38277
|
);
|
|
37681
|
-
const toggleSidebar =
|
|
38278
|
+
const toggleSidebar = React99.useCallback(() => {
|
|
37682
38279
|
return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
|
|
37683
38280
|
}, [isMobile, setOpen, setOpenMobile]);
|
|
37684
|
-
|
|
38281
|
+
React99.useEffect(() => {
|
|
37685
38282
|
const handleKeyDown = (event) => {
|
|
37686
38283
|
if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
|
|
37687
38284
|
event.preventDefault();
|
|
@@ -37692,7 +38289,7 @@ var SidebarProvider = React96.forwardRef(
|
|
|
37692
38289
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
37693
38290
|
}, [toggleSidebar]);
|
|
37694
38291
|
const state = open ? "expanded" : "collapsed";
|
|
37695
|
-
const contextValue =
|
|
38292
|
+
const contextValue = React99.useMemo(
|
|
37696
38293
|
() => ({
|
|
37697
38294
|
state,
|
|
37698
38295
|
open,
|
|
@@ -37704,7 +38301,7 @@ var SidebarProvider = React96.forwardRef(
|
|
|
37704
38301
|
}),
|
|
37705
38302
|
[state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]
|
|
37706
38303
|
);
|
|
37707
|
-
return /* @__PURE__ */
|
|
38304
|
+
return /* @__PURE__ */ jsx133(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx133(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ jsx133(
|
|
37708
38305
|
"div",
|
|
37709
38306
|
{
|
|
37710
38307
|
style: {
|
|
@@ -37724,7 +38321,7 @@ var SidebarProvider = React96.forwardRef(
|
|
|
37724
38321
|
}
|
|
37725
38322
|
);
|
|
37726
38323
|
SidebarProvider.displayName = "SidebarProvider";
|
|
37727
|
-
var Sidebar =
|
|
38324
|
+
var Sidebar = React99.forwardRef(
|
|
37728
38325
|
({
|
|
37729
38326
|
side = "left",
|
|
37730
38327
|
variant = "sidebar",
|
|
@@ -37735,7 +38332,7 @@ var Sidebar = React96.forwardRef(
|
|
|
37735
38332
|
}, ref) => {
|
|
37736
38333
|
const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
|
|
37737
38334
|
if (collapsible === "none") {
|
|
37738
|
-
return /* @__PURE__ */
|
|
38335
|
+
return /* @__PURE__ */ jsx133(
|
|
37739
38336
|
"div",
|
|
37740
38337
|
{
|
|
37741
38338
|
className: cn(
|
|
@@ -37749,7 +38346,7 @@ var Sidebar = React96.forwardRef(
|
|
|
37749
38346
|
);
|
|
37750
38347
|
}
|
|
37751
38348
|
if (isMobile) {
|
|
37752
|
-
return /* @__PURE__ */
|
|
38349
|
+
return /* @__PURE__ */ jsx133(Sheet2, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ jsxs87(
|
|
37753
38350
|
SheetContent,
|
|
37754
38351
|
{
|
|
37755
38352
|
"data-sidebar": "sidebar",
|
|
@@ -37760,16 +38357,16 @@ var Sidebar = React96.forwardRef(
|
|
|
37760
38357
|
},
|
|
37761
38358
|
side,
|
|
37762
38359
|
children: [
|
|
37763
|
-
/* @__PURE__ */
|
|
37764
|
-
/* @__PURE__ */
|
|
37765
|
-
/* @__PURE__ */
|
|
38360
|
+
/* @__PURE__ */ jsxs87(SheetHeader, { className: "sr-only", children: [
|
|
38361
|
+
/* @__PURE__ */ jsx133(SheetTitle, { children: "Sidebar" }),
|
|
38362
|
+
/* @__PURE__ */ jsx133(SheetDescription, { children: "Displays the mobile sidebar." })
|
|
37766
38363
|
] }),
|
|
37767
|
-
/* @__PURE__ */
|
|
38364
|
+
/* @__PURE__ */ jsx133("div", { className: "flex h-full w-full flex-col", children })
|
|
37768
38365
|
]
|
|
37769
38366
|
}
|
|
37770
38367
|
) });
|
|
37771
38368
|
}
|
|
37772
|
-
return /* @__PURE__ */
|
|
38369
|
+
return /* @__PURE__ */ jsxs87(
|
|
37773
38370
|
"div",
|
|
37774
38371
|
{
|
|
37775
38372
|
ref,
|
|
@@ -37779,7 +38376,7 @@ var Sidebar = React96.forwardRef(
|
|
|
37779
38376
|
"data-variant": variant,
|
|
37780
38377
|
"data-side": side,
|
|
37781
38378
|
children: [
|
|
37782
|
-
/* @__PURE__ */
|
|
38379
|
+
/* @__PURE__ */ jsx133(
|
|
37783
38380
|
"div",
|
|
37784
38381
|
{
|
|
37785
38382
|
className: cn(
|
|
@@ -37790,7 +38387,7 @@ var Sidebar = React96.forwardRef(
|
|
|
37790
38387
|
)
|
|
37791
38388
|
}
|
|
37792
38389
|
),
|
|
37793
|
-
/* @__PURE__ */
|
|
38390
|
+
/* @__PURE__ */ jsx133(
|
|
37794
38391
|
"div",
|
|
37795
38392
|
{
|
|
37796
38393
|
className: cn(
|
|
@@ -37801,7 +38398,7 @@ var Sidebar = React96.forwardRef(
|
|
|
37801
38398
|
className
|
|
37802
38399
|
),
|
|
37803
38400
|
...props,
|
|
37804
|
-
children: /* @__PURE__ */
|
|
38401
|
+
children: /* @__PURE__ */ jsx133(
|
|
37805
38402
|
"div",
|
|
37806
38403
|
{
|
|
37807
38404
|
"data-sidebar": "sidebar",
|
|
@@ -37817,9 +38414,9 @@ var Sidebar = React96.forwardRef(
|
|
|
37817
38414
|
}
|
|
37818
38415
|
);
|
|
37819
38416
|
Sidebar.displayName = "Sidebar";
|
|
37820
|
-
var SidebarTrigger =
|
|
38417
|
+
var SidebarTrigger = React99.forwardRef(({ className, onClick, ...props }, ref) => {
|
|
37821
38418
|
const { toggleSidebar } = useSidebar();
|
|
37822
|
-
return /* @__PURE__ */
|
|
38419
|
+
return /* @__PURE__ */ jsxs87(
|
|
37823
38420
|
Button,
|
|
37824
38421
|
{
|
|
37825
38422
|
ref,
|
|
@@ -37833,16 +38430,16 @@ var SidebarTrigger = React96.forwardRef(({ className, onClick, ...props }, ref)
|
|
|
37833
38430
|
},
|
|
37834
38431
|
...props,
|
|
37835
38432
|
children: [
|
|
37836
|
-
/* @__PURE__ */
|
|
37837
|
-
/* @__PURE__ */
|
|
38433
|
+
/* @__PURE__ */ jsx133(PanelLeft, {}),
|
|
38434
|
+
/* @__PURE__ */ jsx133("span", { className: "sr-only", children: "Toggle Sidebar" })
|
|
37838
38435
|
]
|
|
37839
38436
|
}
|
|
37840
38437
|
);
|
|
37841
38438
|
});
|
|
37842
38439
|
SidebarTrigger.displayName = "SidebarTrigger";
|
|
37843
|
-
var SidebarRail =
|
|
38440
|
+
var SidebarRail = React99.forwardRef(({ className, ...props }, ref) => {
|
|
37844
38441
|
const { toggleSidebar } = useSidebar();
|
|
37845
|
-
return /* @__PURE__ */
|
|
38442
|
+
return /* @__PURE__ */ jsx133(
|
|
37846
38443
|
"button",
|
|
37847
38444
|
{
|
|
37848
38445
|
ref,
|
|
@@ -37865,8 +38462,8 @@ var SidebarRail = React96.forwardRef(({ className, ...props }, ref) => {
|
|
|
37865
38462
|
);
|
|
37866
38463
|
});
|
|
37867
38464
|
SidebarRail.displayName = "SidebarRail";
|
|
37868
|
-
var SidebarInset =
|
|
37869
|
-
return /* @__PURE__ */
|
|
38465
|
+
var SidebarInset = React99.forwardRef(({ className, ...props }, ref) => {
|
|
38466
|
+
return /* @__PURE__ */ jsx133(
|
|
37870
38467
|
"main",
|
|
37871
38468
|
{
|
|
37872
38469
|
ref,
|
|
@@ -37880,8 +38477,8 @@ var SidebarInset = React96.forwardRef(({ className, ...props }, ref) => {
|
|
|
37880
38477
|
);
|
|
37881
38478
|
});
|
|
37882
38479
|
SidebarInset.displayName = "SidebarInset";
|
|
37883
|
-
var SidebarInput =
|
|
37884
|
-
return /* @__PURE__ */
|
|
38480
|
+
var SidebarInput = React99.forwardRef(({ className, ...props }, ref) => {
|
|
38481
|
+
return /* @__PURE__ */ jsx133(
|
|
37885
38482
|
Input,
|
|
37886
38483
|
{
|
|
37887
38484
|
ref,
|
|
@@ -37895,8 +38492,8 @@ var SidebarInput = React96.forwardRef(({ className, ...props }, ref) => {
|
|
|
37895
38492
|
);
|
|
37896
38493
|
});
|
|
37897
38494
|
SidebarInput.displayName = "SidebarInput";
|
|
37898
|
-
var SidebarHeader =
|
|
37899
|
-
return /* @__PURE__ */
|
|
38495
|
+
var SidebarHeader = React99.forwardRef(({ className, ...props }, ref) => {
|
|
38496
|
+
return /* @__PURE__ */ jsx133(
|
|
37900
38497
|
"div",
|
|
37901
38498
|
{
|
|
37902
38499
|
ref,
|
|
@@ -37907,8 +38504,8 @@ var SidebarHeader = React96.forwardRef(({ className, ...props }, ref) => {
|
|
|
37907
38504
|
);
|
|
37908
38505
|
});
|
|
37909
38506
|
SidebarHeader.displayName = "SidebarHeader";
|
|
37910
|
-
var SidebarFooter =
|
|
37911
|
-
return /* @__PURE__ */
|
|
38507
|
+
var SidebarFooter = React99.forwardRef(({ className, ...props }, ref) => {
|
|
38508
|
+
return /* @__PURE__ */ jsx133(
|
|
37912
38509
|
"div",
|
|
37913
38510
|
{
|
|
37914
38511
|
ref,
|
|
@@ -37919,8 +38516,8 @@ var SidebarFooter = React96.forwardRef(({ className, ...props }, ref) => {
|
|
|
37919
38516
|
);
|
|
37920
38517
|
});
|
|
37921
38518
|
SidebarFooter.displayName = "SidebarFooter";
|
|
37922
|
-
var SidebarSeparator =
|
|
37923
|
-
return /* @__PURE__ */
|
|
38519
|
+
var SidebarSeparator = React99.forwardRef(({ className, ...props }, ref) => {
|
|
38520
|
+
return /* @__PURE__ */ jsx133(
|
|
37924
38521
|
Separator2,
|
|
37925
38522
|
{
|
|
37926
38523
|
ref,
|
|
@@ -37931,8 +38528,8 @@ var SidebarSeparator = React96.forwardRef(({ className, ...props }, ref) => {
|
|
|
37931
38528
|
);
|
|
37932
38529
|
});
|
|
37933
38530
|
SidebarSeparator.displayName = "SidebarSeparator";
|
|
37934
|
-
var SidebarContent =
|
|
37935
|
-
return /* @__PURE__ */
|
|
38531
|
+
var SidebarContent = React99.forwardRef(({ className, ...props }, ref) => {
|
|
38532
|
+
return /* @__PURE__ */ jsx133(
|
|
37936
38533
|
"div",
|
|
37937
38534
|
{
|
|
37938
38535
|
ref,
|
|
@@ -37946,8 +38543,8 @@ var SidebarContent = React96.forwardRef(({ className, ...props }, ref) => {
|
|
|
37946
38543
|
);
|
|
37947
38544
|
});
|
|
37948
38545
|
SidebarContent.displayName = "SidebarContent";
|
|
37949
|
-
var SidebarGroup =
|
|
37950
|
-
return /* @__PURE__ */
|
|
38546
|
+
var SidebarGroup = React99.forwardRef(({ className, ...props }, ref) => {
|
|
38547
|
+
return /* @__PURE__ */ jsx133(
|
|
37951
38548
|
"div",
|
|
37952
38549
|
{
|
|
37953
38550
|
ref,
|
|
@@ -37958,9 +38555,9 @@ var SidebarGroup = React96.forwardRef(({ className, ...props }, ref) => {
|
|
|
37958
38555
|
);
|
|
37959
38556
|
});
|
|
37960
38557
|
SidebarGroup.displayName = "SidebarGroup";
|
|
37961
|
-
var SidebarGroupLabel =
|
|
38558
|
+
var SidebarGroupLabel = React99.forwardRef(({ className, asChild = false, ...props }, ref) => {
|
|
37962
38559
|
const Comp = asChild ? Slot6 : "div";
|
|
37963
|
-
return /* @__PURE__ */
|
|
38560
|
+
return /* @__PURE__ */ jsx133(
|
|
37964
38561
|
Comp,
|
|
37965
38562
|
{
|
|
37966
38563
|
ref,
|
|
@@ -37975,9 +38572,9 @@ var SidebarGroupLabel = React96.forwardRef(({ className, asChild = false, ...pro
|
|
|
37975
38572
|
);
|
|
37976
38573
|
});
|
|
37977
38574
|
SidebarGroupLabel.displayName = "SidebarGroupLabel";
|
|
37978
|
-
var SidebarGroupAction =
|
|
38575
|
+
var SidebarGroupAction = React99.forwardRef(({ className, asChild = false, ...props }, ref) => {
|
|
37979
38576
|
const Comp = asChild ? Slot6 : "button";
|
|
37980
|
-
return /* @__PURE__ */
|
|
38577
|
+
return /* @__PURE__ */ jsx133(
|
|
37981
38578
|
Comp,
|
|
37982
38579
|
{
|
|
37983
38580
|
ref,
|
|
@@ -37994,7 +38591,7 @@ var SidebarGroupAction = React96.forwardRef(({ className, asChild = false, ...pr
|
|
|
37994
38591
|
);
|
|
37995
38592
|
});
|
|
37996
38593
|
SidebarGroupAction.displayName = "SidebarGroupAction";
|
|
37997
|
-
var SidebarGroupContent =
|
|
38594
|
+
var SidebarGroupContent = React99.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx133(
|
|
37998
38595
|
"div",
|
|
37999
38596
|
{
|
|
38000
38597
|
ref,
|
|
@@ -38004,7 +38601,7 @@ var SidebarGroupContent = React96.forwardRef(({ className, ...props }, ref) => /
|
|
|
38004
38601
|
}
|
|
38005
38602
|
));
|
|
38006
38603
|
SidebarGroupContent.displayName = "SidebarGroupContent";
|
|
38007
|
-
var SidebarMenu =
|
|
38604
|
+
var SidebarMenu = React99.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx133(
|
|
38008
38605
|
"ul",
|
|
38009
38606
|
{
|
|
38010
38607
|
ref,
|
|
@@ -38014,7 +38611,7 @@ var SidebarMenu = React96.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
38014
38611
|
}
|
|
38015
38612
|
));
|
|
38016
38613
|
SidebarMenu.displayName = "SidebarMenu";
|
|
38017
|
-
var SidebarMenuItem =
|
|
38614
|
+
var SidebarMenuItem = React99.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx133(
|
|
38018
38615
|
"li",
|
|
38019
38616
|
{
|
|
38020
38617
|
ref,
|
|
@@ -38044,7 +38641,7 @@ var sidebarMenuButtonVariants = cva13(
|
|
|
38044
38641
|
}
|
|
38045
38642
|
}
|
|
38046
38643
|
);
|
|
38047
|
-
var SidebarMenuButton =
|
|
38644
|
+
var SidebarMenuButton = React99.forwardRef(
|
|
38048
38645
|
({
|
|
38049
38646
|
asChild = false,
|
|
38050
38647
|
isActive = false,
|
|
@@ -38056,7 +38653,7 @@ var SidebarMenuButton = React96.forwardRef(
|
|
|
38056
38653
|
}, ref) => {
|
|
38057
38654
|
const Comp = asChild ? Slot6 : "button";
|
|
38058
38655
|
const { isMobile, state } = useSidebar();
|
|
38059
|
-
const button = /* @__PURE__ */
|
|
38656
|
+
const button = /* @__PURE__ */ jsx133(
|
|
38060
38657
|
Comp,
|
|
38061
38658
|
{
|
|
38062
38659
|
ref,
|
|
@@ -38075,9 +38672,9 @@ var SidebarMenuButton = React96.forwardRef(
|
|
|
38075
38672
|
children: tooltip
|
|
38076
38673
|
};
|
|
38077
38674
|
}
|
|
38078
|
-
return /* @__PURE__ */
|
|
38079
|
-
/* @__PURE__ */
|
|
38080
|
-
/* @__PURE__ */
|
|
38675
|
+
return /* @__PURE__ */ jsxs87(Tooltip, { children: [
|
|
38676
|
+
/* @__PURE__ */ jsx133(TooltipTrigger, { asChild: true, children: button }),
|
|
38677
|
+
/* @__PURE__ */ jsx133(
|
|
38081
38678
|
TooltipContent,
|
|
38082
38679
|
{
|
|
38083
38680
|
side: "right",
|
|
@@ -38090,9 +38687,9 @@ var SidebarMenuButton = React96.forwardRef(
|
|
|
38090
38687
|
}
|
|
38091
38688
|
);
|
|
38092
38689
|
SidebarMenuButton.displayName = "SidebarMenuButton";
|
|
38093
|
-
var SidebarMenuAction =
|
|
38690
|
+
var SidebarMenuAction = React99.forwardRef(({ className, asChild = false, showOnHover = false, ...props }, ref) => {
|
|
38094
38691
|
const Comp = asChild ? Slot6 : "button";
|
|
38095
|
-
return /* @__PURE__ */
|
|
38692
|
+
return /* @__PURE__ */ jsx133(
|
|
38096
38693
|
Comp,
|
|
38097
38694
|
{
|
|
38098
38695
|
ref,
|
|
@@ -38113,7 +38710,7 @@ var SidebarMenuAction = React96.forwardRef(({ className, asChild = false, showOn
|
|
|
38113
38710
|
);
|
|
38114
38711
|
});
|
|
38115
38712
|
SidebarMenuAction.displayName = "SidebarMenuAction";
|
|
38116
|
-
var SidebarMenuBadge =
|
|
38713
|
+
var SidebarMenuBadge = React99.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx133(
|
|
38117
38714
|
"div",
|
|
38118
38715
|
{
|
|
38119
38716
|
ref,
|
|
@@ -38131,11 +38728,11 @@ var SidebarMenuBadge = React96.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
38131
38728
|
}
|
|
38132
38729
|
));
|
|
38133
38730
|
SidebarMenuBadge.displayName = "SidebarMenuBadge";
|
|
38134
|
-
var SidebarMenuSkeleton =
|
|
38135
|
-
const width =
|
|
38731
|
+
var SidebarMenuSkeleton = React99.forwardRef(({ className, showIcon = false, ...props }, ref) => {
|
|
38732
|
+
const width = React99.useMemo(() => {
|
|
38136
38733
|
return `${Math.floor(Math.random() * 40) + 50}%`;
|
|
38137
38734
|
}, []);
|
|
38138
|
-
return /* @__PURE__ */
|
|
38735
|
+
return /* @__PURE__ */ jsxs87(
|
|
38139
38736
|
"div",
|
|
38140
38737
|
{
|
|
38141
38738
|
ref,
|
|
@@ -38143,14 +38740,14 @@ var SidebarMenuSkeleton = React96.forwardRef(({ className, showIcon = false, ...
|
|
|
38143
38740
|
className: cn("flex h-8 items-center gap-2 rounded-md px-2", className),
|
|
38144
38741
|
...props,
|
|
38145
38742
|
children: [
|
|
38146
|
-
showIcon && /* @__PURE__ */
|
|
38743
|
+
showIcon && /* @__PURE__ */ jsx133(
|
|
38147
38744
|
Skeleton,
|
|
38148
38745
|
{
|
|
38149
38746
|
className: "size-4 rounded-md",
|
|
38150
38747
|
"data-sidebar": "menu-skeleton-icon"
|
|
38151
38748
|
}
|
|
38152
38749
|
),
|
|
38153
|
-
/* @__PURE__ */
|
|
38750
|
+
/* @__PURE__ */ jsx133(
|
|
38154
38751
|
Skeleton,
|
|
38155
38752
|
{
|
|
38156
38753
|
className: "h-4 max-w-[--skeleton-width] flex-1",
|
|
@@ -38165,7 +38762,7 @@ var SidebarMenuSkeleton = React96.forwardRef(({ className, showIcon = false, ...
|
|
|
38165
38762
|
);
|
|
38166
38763
|
});
|
|
38167
38764
|
SidebarMenuSkeleton.displayName = "SidebarMenuSkeleton";
|
|
38168
|
-
var SidebarMenuSub =
|
|
38765
|
+
var SidebarMenuSub = React99.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx133(
|
|
38169
38766
|
"ul",
|
|
38170
38767
|
{
|
|
38171
38768
|
ref,
|
|
@@ -38179,11 +38776,11 @@ var SidebarMenuSub = React96.forwardRef(({ className, ...props }, ref) => /* @__
|
|
|
38179
38776
|
}
|
|
38180
38777
|
));
|
|
38181
38778
|
SidebarMenuSub.displayName = "SidebarMenuSub";
|
|
38182
|
-
var SidebarMenuSubItem =
|
|
38779
|
+
var SidebarMenuSubItem = React99.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx133("li", { ref, ...props }));
|
|
38183
38780
|
SidebarMenuSubItem.displayName = "SidebarMenuSubItem";
|
|
38184
|
-
var SidebarMenuSubButton =
|
|
38781
|
+
var SidebarMenuSubButton = React99.forwardRef(({ asChild = false, size = "md", isActive, className, ...props }, ref) => {
|
|
38185
38782
|
const Comp = asChild ? Slot6 : "a";
|
|
38186
|
-
return /* @__PURE__ */
|
|
38783
|
+
return /* @__PURE__ */ jsx133(
|
|
38187
38784
|
Comp,
|
|
38188
38785
|
{
|
|
38189
38786
|
ref,
|
|
@@ -38207,20 +38804,20 @@ SidebarMenuSubButton.displayName = "SidebarMenuSubButton";
|
|
|
38207
38804
|
// src/components/ui/sonner.tsx
|
|
38208
38805
|
import { useTheme } from "next-themes";
|
|
38209
38806
|
import { Toaster as Sonner } from "sonner";
|
|
38210
|
-
import { jsx as
|
|
38807
|
+
import { jsx as jsx134 } from "react/jsx-runtime";
|
|
38211
38808
|
var Toaster = ({ ...props }) => {
|
|
38212
38809
|
const { theme = "system" } = useTheme();
|
|
38213
|
-
return /* @__PURE__ */
|
|
38810
|
+
return /* @__PURE__ */ jsx134(
|
|
38214
38811
|
Sonner,
|
|
38215
38812
|
{
|
|
38216
38813
|
theme,
|
|
38217
38814
|
className: "toaster group",
|
|
38218
38815
|
icons: {
|
|
38219
|
-
success: /* @__PURE__ */
|
|
38220
|
-
info: /* @__PURE__ */
|
|
38221
|
-
warning: /* @__PURE__ */
|
|
38222
|
-
error: /* @__PURE__ */
|
|
38223
|
-
loading: /* @__PURE__ */
|
|
38816
|
+
success: /* @__PURE__ */ jsx134(CircleCheck, { className: "h-4 w-4" }),
|
|
38817
|
+
info: /* @__PURE__ */ jsx134(Info, { className: "h-4 w-4" }),
|
|
38818
|
+
warning: /* @__PURE__ */ jsx134(TriangleAlert, { className: "h-4 w-4" }),
|
|
38819
|
+
error: /* @__PURE__ */ jsx134(OctagonX, { className: "h-4 w-4" }),
|
|
38820
|
+
loading: /* @__PURE__ */ jsx134(LoaderCircle, { className: "h-4 w-4 animate-spin" })
|
|
38224
38821
|
},
|
|
38225
38822
|
toastOptions: {
|
|
38226
38823
|
classNames: {
|
|
@@ -38236,26 +38833,26 @@ var Toaster = ({ ...props }) => {
|
|
|
38236
38833
|
};
|
|
38237
38834
|
|
|
38238
38835
|
// src/components/ui/toggle-group.tsx
|
|
38239
|
-
import * as
|
|
38836
|
+
import * as React100 from "react";
|
|
38240
38837
|
import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
|
|
38241
|
-
import { jsx as
|
|
38242
|
-
var ToggleGroupContext =
|
|
38838
|
+
import { jsx as jsx135 } from "react/jsx-runtime";
|
|
38839
|
+
var ToggleGroupContext = React100.createContext({
|
|
38243
38840
|
size: "default",
|
|
38244
38841
|
variant: "default"
|
|
38245
38842
|
});
|
|
38246
|
-
var ToggleGroup =
|
|
38843
|
+
var ToggleGroup = React100.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsx135(
|
|
38247
38844
|
ToggleGroupPrimitive.Root,
|
|
38248
38845
|
{
|
|
38249
38846
|
ref,
|
|
38250
38847
|
className: cn("flex items-center justify-center gap-1", className),
|
|
38251
38848
|
...props,
|
|
38252
|
-
children: /* @__PURE__ */
|
|
38849
|
+
children: /* @__PURE__ */ jsx135(ToggleGroupContext.Provider, { value: { variant, size }, children })
|
|
38253
38850
|
}
|
|
38254
38851
|
));
|
|
38255
38852
|
ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
|
|
38256
|
-
var ToggleGroupItem =
|
|
38257
|
-
const context =
|
|
38258
|
-
return /* @__PURE__ */
|
|
38853
|
+
var ToggleGroupItem = React100.forwardRef(({ className, children, variant, size, ...props }, ref) => {
|
|
38854
|
+
const context = React100.useContext(ToggleGroupContext);
|
|
38855
|
+
return /* @__PURE__ */ jsx135(
|
|
38259
38856
|
ToggleGroupPrimitive.Item,
|
|
38260
38857
|
{
|
|
38261
38858
|
ref,
|
|
@@ -38274,7 +38871,7 @@ var ToggleGroupItem = React97.forwardRef(({ className, children, variant, size,
|
|
|
38274
38871
|
ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
|
|
38275
38872
|
|
|
38276
38873
|
// src/render/PXEngineRenderer.tsx
|
|
38277
|
-
import { jsx as
|
|
38874
|
+
import { jsx as jsx136, jsxs as jsxs88 } from "react/jsx-runtime";
|
|
38278
38875
|
var CONTEXT_DEPENDENT_COMPONENTS = /* @__PURE__ */ new Set([
|
|
38279
38876
|
// Form components - require FormField + FormItem context
|
|
38280
38877
|
"FormLabel",
|
|
@@ -38366,24 +38963,24 @@ var COMPONENT_SUGGESTIONS = {
|
|
|
38366
38963
|
};
|
|
38367
38964
|
var renderContextDependentError = (componentName, normalizedName, key) => {
|
|
38368
38965
|
const suggestion = COMPONENT_SUGGESTIONS[normalizedName] || `${componentName}Atom (if available)`;
|
|
38369
|
-
return /* @__PURE__ */
|
|
38966
|
+
return /* @__PURE__ */ jsxs88(
|
|
38370
38967
|
"div",
|
|
38371
38968
|
{
|
|
38372
38969
|
className: "p-4 border-2 border-amber-500/50 rounded-lg bg-amber-50/80 space-y-2 my-2",
|
|
38373
38970
|
children: [
|
|
38374
|
-
/* @__PURE__ */
|
|
38375
|
-
/* @__PURE__ */
|
|
38376
|
-
/* @__PURE__ */
|
|
38377
|
-
/* @__PURE__ */
|
|
38971
|
+
/* @__PURE__ */ jsxs88("div", { className: "flex items-start gap-2", children: [
|
|
38972
|
+
/* @__PURE__ */ jsx136("span", { className: "text-amber-600 font-bold text-lg", children: "\u26A0\uFE0F" }),
|
|
38973
|
+
/* @__PURE__ */ jsxs88("div", { className: "flex-1", children: [
|
|
38974
|
+
/* @__PURE__ */ jsxs88("p", { className: "text-sm font-semibold text-amber-900", children: [
|
|
38378
38975
|
"Invalid Component: ",
|
|
38379
38976
|
componentName
|
|
38380
38977
|
] }),
|
|
38381
|
-
/* @__PURE__ */
|
|
38978
|
+
/* @__PURE__ */ jsx136("p", { className: "text-xs text-amber-700 mt-1", children: "This component requires React Context and cannot be rendered directly in schemas." })
|
|
38382
38979
|
] })
|
|
38383
38980
|
] }),
|
|
38384
|
-
/* @__PURE__ */
|
|
38385
|
-
/* @__PURE__ */
|
|
38386
|
-
/* @__PURE__ */
|
|
38981
|
+
/* @__PURE__ */ jsxs88("div", { className: "bg-white/60 p-3 rounded border border-amber-200", children: [
|
|
38982
|
+
/* @__PURE__ */ jsx136("p", { className: "text-xs font-semibold text-gray-700 mb-1.5", children: "\u2713 Use instead:" }),
|
|
38983
|
+
/* @__PURE__ */ jsx136("code", { className: "text-xs text-blue-700 bg-blue-50 px-2 py-1 rounded", children: suggestion })
|
|
38387
38984
|
] })
|
|
38388
38985
|
]
|
|
38389
38986
|
},
|
|
@@ -38463,7 +39060,7 @@ var PXEngineRenderer = ({
|
|
|
38463
39060
|
if (typeof component === "string" || typeof component === "number") {
|
|
38464
39061
|
return component;
|
|
38465
39062
|
}
|
|
38466
|
-
if (
|
|
39063
|
+
if (React101.isValidElement(component)) {
|
|
38467
39064
|
return component;
|
|
38468
39065
|
}
|
|
38469
39066
|
if (!component || typeof component !== "object") return null;
|
|
@@ -38541,7 +39138,7 @@ var PXEngineRenderer = ({
|
|
|
38541
39138
|
const isAtomWithRenderProp = ATOMS_WITH_RENDER.has(atomName);
|
|
38542
39139
|
const finalStyle = { ...dynamicStyle, ...finalProps.style || {} };
|
|
38543
39140
|
if (isAtomWithRenderProp) {
|
|
38544
|
-
return /* @__PURE__ */
|
|
39141
|
+
return /* @__PURE__ */ jsx136(
|
|
38545
39142
|
TargetComponent,
|
|
38546
39143
|
{
|
|
38547
39144
|
...finalProps,
|
|
@@ -38553,7 +39150,7 @@ var PXEngineRenderer = ({
|
|
|
38553
39150
|
uniqueKey
|
|
38554
39151
|
);
|
|
38555
39152
|
} else {
|
|
38556
|
-
return /* @__PURE__ */
|
|
39153
|
+
return /* @__PURE__ */ jsx136(
|
|
38557
39154
|
TargetComponent,
|
|
38558
39155
|
{
|
|
38559
39156
|
...finalProps,
|
|
@@ -38565,7 +39162,7 @@ var PXEngineRenderer = ({
|
|
|
38565
39162
|
);
|
|
38566
39163
|
}
|
|
38567
39164
|
};
|
|
38568
|
-
return /* @__PURE__ */
|
|
39165
|
+
return /* @__PURE__ */ jsx136("div", { className: "px-engine-root relative w-full h-full", children: renderRecursive(root) });
|
|
38569
39166
|
};
|
|
38570
39167
|
export {
|
|
38571
39168
|
Accordion,
|
|
@@ -38574,6 +39171,8 @@ export {
|
|
|
38574
39171
|
AccordionItem,
|
|
38575
39172
|
AccordionTrigger,
|
|
38576
39173
|
ActionButton,
|
|
39174
|
+
AgentCard,
|
|
39175
|
+
AgentDataTable,
|
|
38577
39176
|
Alert,
|
|
38578
39177
|
AlertAtom,
|
|
38579
39178
|
AlertDescription,
|
|
@@ -38718,6 +39317,7 @@ export {
|
|
|
38718
39317
|
InputOTPGroup,
|
|
38719
39318
|
InputOTPSeparator,
|
|
38720
39319
|
InputOTPSlot,
|
|
39320
|
+
InstructionPreview,
|
|
38721
39321
|
KbdAtom,
|
|
38722
39322
|
KeywordBundlesDisplay,
|
|
38723
39323
|
KeywordBundlesEdit,
|
|
@@ -38822,6 +39422,7 @@ export {
|
|
|
38822
39422
|
TextareaAtom,
|
|
38823
39423
|
TimelineAtom,
|
|
38824
39424
|
ToggleAtom,
|
|
39425
|
+
ToolListCard,
|
|
38825
39426
|
Tooltip,
|
|
38826
39427
|
TooltipAtom,
|
|
38827
39428
|
TooltipContent,
|
|
@@ -38829,6 +39430,7 @@ export {
|
|
|
38829
39430
|
TooltipTrigger,
|
|
38830
39431
|
TopPostsGrid,
|
|
38831
39432
|
VideoAtom,
|
|
39433
|
+
WorkflowVisualizer,
|
|
38832
39434
|
cn
|
|
38833
39435
|
};
|
|
38834
39436
|
/*! Bundled license information:
|