pxengine 0.1.59 → 0.1.61
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/config/tailwind-preset.js +4 -0
- package/dist/index.cjs +245 -1600
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -207
- package/dist/index.d.ts +2 -207
- package/dist/index.mjs +243 -1588
- package/dist/index.mjs.map +1 -1
- package/dist/registry.json +1 -394
- package/package.json +1 -1
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 React102 from "react";
|
|
9
9
|
|
|
10
10
|
// src/atoms/index.ts
|
|
11
11
|
var atoms_exports = {};
|
|
@@ -33526,8 +33526,6 @@ ArrowToggleAtom.displayName = "ArrowToggleAtom";
|
|
|
33526
33526
|
var molecules_exports = {};
|
|
33527
33527
|
__export(molecules_exports, {
|
|
33528
33528
|
ActionButton: () => ActionButton,
|
|
33529
|
-
AgentCard: () => AgentCard,
|
|
33530
|
-
AgentDataTable: () => AgentDataTable,
|
|
33531
33529
|
AudienceDemographicsCard: () => AudienceDemographicsCard,
|
|
33532
33530
|
AudienceMetricCard: () => AudienceMetricCard,
|
|
33533
33531
|
BrandAffinityGroup: () => BrandAffinityGroup,
|
|
@@ -33561,14 +33559,10 @@ __export(molecules_exports, {
|
|
|
33561
33559
|
GoogleSheetsConnectCard: () => GoogleSheetsConnectCard,
|
|
33562
33560
|
GoogleSheetsListCard: () => GoogleSheetsListCard,
|
|
33563
33561
|
GrowthChartCard: () => GrowthChartCard,
|
|
33564
|
-
InstructionPreview: () => InstructionPreview,
|
|
33565
33562
|
KeywordBundlesDisplay: () => KeywordBundlesDisplay,
|
|
33566
33563
|
KeywordBundlesEdit: () => KeywordBundlesEdit,
|
|
33567
33564
|
LoadingOverlay: () => LoadingOverlay,
|
|
33568
33565
|
MCQCard: () => MCQCard,
|
|
33569
|
-
MultiAgentCard: () => MultiAgentCard,
|
|
33570
|
-
MultiAgentPlan: () => MultiAgentPlan,
|
|
33571
|
-
MultiAgentUISelector: () => MultiAgentUISelector,
|
|
33572
33566
|
NotificationList: () => NotificationList,
|
|
33573
33567
|
PlatformIconGroup: () => PlatformIconGroup,
|
|
33574
33568
|
PlatformSelectDisplay: () => PlatformSelectDisplay,
|
|
@@ -33576,14 +33570,10 @@ __export(molecules_exports, {
|
|
|
33576
33570
|
RecommendationCard: () => RecommendationCard,
|
|
33577
33571
|
SearchSpecCard: () => SearchSpecCard,
|
|
33578
33572
|
SocialPostCard: () => SocialPostCard,
|
|
33579
|
-
StageIndicator: () => StageIndicator,
|
|
33580
33573
|
StatsGrid: () => StatsGrid,
|
|
33581
33574
|
StepWizard: () => StepWizard,
|
|
33582
33575
|
TagCloud: () => TagCloud,
|
|
33583
|
-
ToolListCard: () => ToolListCard,
|
|
33584
33576
|
TopPostsGrid: () => TopPostsGrid,
|
|
33585
|
-
UIComponentSelector: () => UIComponentSelector,
|
|
33586
|
-
WorkflowVisualizer: () => WorkflowVisualizer,
|
|
33587
33577
|
defaultFetchSelections: () => defaultFetchSelections,
|
|
33588
33578
|
defaultPersistSelection: () => defaultPersistSelection,
|
|
33589
33579
|
useCreatorWidgetPolling: () => useCreatorWidgetPolling
|
|
@@ -34049,19 +34039,19 @@ var EditableField = React85.memo(
|
|
|
34049
34039
|
"div",
|
|
34050
34040
|
{
|
|
34051
34041
|
className: cn(
|
|
34052
|
-
"relative z-10 group flex flex-col gap-
|
|
34042
|
+
"relative z-10 group flex flex-col gap-1.5 p-2.5 bg-black border border-cardBorder rounded-lg mb-4",
|
|
34053
34043
|
className
|
|
34054
34044
|
),
|
|
34055
34045
|
children: [
|
|
34056
|
-
/* @__PURE__ */ jsx94("div", { className: "flex justify-between items-start mb-
|
|
34046
|
+
/* @__PURE__ */ jsx94("div", { className: "flex justify-between items-start mb-1.5", children: /* @__PURE__ */ jsxs54("div", { className: "w-full flex justify-between items-center flex-wrap gap-1.5", children: [
|
|
34057
34047
|
/* @__PURE__ */ jsx94(
|
|
34058
34048
|
"h4",
|
|
34059
34049
|
{
|
|
34060
|
-
className: "px-
|
|
34050
|
+
className: "px-1.5 py-px tracking-widest border border-cardBorder text-gold text-[9px] font-medium uppercase rounded-[3px]",
|
|
34061
34051
|
children: label
|
|
34062
34052
|
}
|
|
34063
34053
|
),
|
|
34064
|
-
isEditingProp ? /* @__PURE__ */ jsxs54("div", { className: "flex items-center gap-
|
|
34054
|
+
isEditingProp ? /* @__PURE__ */ jsxs54("div", { className: "flex items-center gap-2", children: [
|
|
34065
34055
|
/* @__PURE__ */ jsx94(
|
|
34066
34056
|
"button",
|
|
34067
34057
|
{
|
|
@@ -34072,7 +34062,7 @@ var EditableField = React85.memo(
|
|
|
34072
34062
|
className: "text-gray-500 hover:text-gray-700 transition-colors",
|
|
34073
34063
|
disabled: isSaving,
|
|
34074
34064
|
title: "Cancel",
|
|
34075
|
-
children: /* @__PURE__ */ jsx94(X, { className: "h-
|
|
34065
|
+
children: /* @__PURE__ */ jsx94(X, { className: "h-4 w-4" })
|
|
34076
34066
|
}
|
|
34077
34067
|
),
|
|
34078
34068
|
/* @__PURE__ */ jsx94(
|
|
@@ -34085,37 +34075,31 @@ var EditableField = React85.memo(
|
|
|
34085
34075
|
className: "text-gray600 hover:text-gray600 transition-colors",
|
|
34086
34076
|
disabled: isSaving,
|
|
34087
34077
|
title: "Save",
|
|
34088
|
-
children: isSaving ? /* @__PURE__ */ jsx94(LoaderCircle, { className: "h-
|
|
34078
|
+
children: isSaving ? /* @__PURE__ */ jsx94(LoaderCircle, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsx94(Save, { className: "h-4 w-4" })
|
|
34089
34079
|
}
|
|
34090
34080
|
)
|
|
34091
|
-
] }) : /* @__PURE__ */
|
|
34092
|
-
"
|
|
34093
|
-
|
|
34094
|
-
|
|
34095
|
-
|
|
34096
|
-
|
|
34097
|
-
|
|
34098
|
-
|
|
34099
|
-
|
|
34100
|
-
|
|
34101
|
-
|
|
34102
|
-
|
|
34103
|
-
|
|
34104
|
-
|
|
34105
|
-
},
|
|
34106
|
-
children: /* @__PURE__ */ jsx94(SquarePen, { className: "h-5 w-5" })
|
|
34107
|
-
}
|
|
34108
|
-
)
|
|
34109
|
-
] })
|
|
34081
|
+
] }) : isLatestMessage ? /* @__PURE__ */ jsx94(
|
|
34082
|
+
"button",
|
|
34083
|
+
{
|
|
34084
|
+
className: "p-1 rounded-md text-muted-foreground hover:text-foreground hover:bg-gray300 transition-colors",
|
|
34085
|
+
onClick: (e) => {
|
|
34086
|
+
if (shouldStopPropagation !== false) {
|
|
34087
|
+
e.stopPropagation();
|
|
34088
|
+
}
|
|
34089
|
+
onEdit?.();
|
|
34090
|
+
},
|
|
34091
|
+
title: "Edit",
|
|
34092
|
+
children: /* @__PURE__ */ jsx94(SquarePen, { className: "h-3.5 w-3.5" })
|
|
34093
|
+
}
|
|
34094
|
+
) : null
|
|
34110
34095
|
] }) }),
|
|
34111
34096
|
isEditingProp ? /* @__PURE__ */ jsx94("div", { className: "flex flex-col gap-3", children: renderInput() }) : /* @__PURE__ */ jsx94(
|
|
34112
34097
|
"div",
|
|
34113
34098
|
{
|
|
34114
34099
|
className: cn(
|
|
34115
|
-
"relative flex items-start justify-between rounded-
|
|
34116
|
-
"text-
|
|
34100
|
+
"relative flex items-start justify-between rounded-md px-2 py-1.5",
|
|
34101
|
+
"text-sm text-cardText font-medium leading-relaxed"
|
|
34117
34102
|
),
|
|
34118
|
-
style: { fontFamily: "Noto Sans, sans-serif" },
|
|
34119
34103
|
children: /* @__PURE__ */ jsx94("div", { className: "flex-1", children: formattedValue() })
|
|
34120
34104
|
}
|
|
34121
34105
|
)
|
|
@@ -34326,7 +34310,7 @@ var FormCard = React87.memo(
|
|
|
34326
34310
|
"div",
|
|
34327
34311
|
{
|
|
34328
34312
|
className: cn(
|
|
34329
|
-
"relative w-full rounded-
|
|
34313
|
+
"relative w-full rounded-lg bg-cardSurface border border-gray400 shadow-sm overflow-hidden mb-4",
|
|
34330
34314
|
className
|
|
34331
34315
|
),
|
|
34332
34316
|
children: [
|
|
@@ -34339,18 +34323,18 @@ var FormCard = React87.memo(
|
|
|
34339
34323
|
children: copied ? /* @__PURE__ */ jsx96(Check, { className: "h-4 w-4 text-green-500" }) : /* @__PURE__ */ jsx96(Copy, { className: "h-4 w-4" })
|
|
34340
34324
|
}
|
|
34341
34325
|
),
|
|
34342
|
-
/* @__PURE__ */ jsxs56("div", { className: "p-
|
|
34326
|
+
/* @__PURE__ */ jsxs56("div", { className: "p-4 relative", children: [
|
|
34343
34327
|
!hideTitle && title && /* @__PURE__ */ jsx96(
|
|
34344
34328
|
"h3",
|
|
34345
34329
|
{
|
|
34346
|
-
className: "text-
|
|
34330
|
+
className: "text-cardText mb-6 text-sm font-semibold",
|
|
34347
34331
|
children: title
|
|
34348
34332
|
}
|
|
34349
34333
|
),
|
|
34350
34334
|
showTimeline && /* @__PURE__ */ jsx96(
|
|
34351
34335
|
"div",
|
|
34352
34336
|
{
|
|
34353
|
-
className: "absolute z-0 left-[
|
|
34337
|
+
className: "absolute z-0 left-[48px] top-[70px] bottom-[40px] w-[2px]",
|
|
34354
34338
|
style: {
|
|
34355
34339
|
background: `
|
|
34356
34340
|
radial-gradient(circle closest-side, #3C3D3E 98%, transparent) 50%/2px 5px repeat-y,
|
|
@@ -34383,7 +34367,7 @@ var FormCard = React87.memo(
|
|
|
34383
34367
|
field.key
|
|
34384
34368
|
))
|
|
34385
34369
|
] }),
|
|
34386
|
-
isLatestMessage && onProceed && proceedLabel ? /* @__PURE__ */ jsx96("div", { className: "my-
|
|
34370
|
+
isLatestMessage && onProceed && proceedLabel ? /* @__PURE__ */ jsx96("div", { className: "my-4 flex justify-center", children: /* @__PURE__ */ jsx96(
|
|
34387
34371
|
"button",
|
|
34388
34372
|
{
|
|
34389
34373
|
onClick: () => {
|
|
@@ -34392,14 +34376,10 @@ var FormCard = React87.memo(
|
|
|
34392
34376
|
}
|
|
34393
34377
|
},
|
|
34394
34378
|
className: cn(
|
|
34395
|
-
"px-
|
|
34396
|
-
"bg-
|
|
34397
|
-
"hover:bg-purpleText1 dark:hover:bg-purple100 dark:hover:text-white"
|
|
34379
|
+
"px-4 py-1.5 border rounded-lg transition-colors text-xs font-medium",
|
|
34380
|
+
"bg-cardSurface hover:bg-cardSurface/80 text-gold border-cardBorder"
|
|
34398
34381
|
),
|
|
34399
|
-
children:
|
|
34400
|
-
proceedLabel,
|
|
34401
|
-
/* @__PURE__ */ jsx96(ChevronRight, { className: "w-4 h-4" })
|
|
34402
|
-
]
|
|
34382
|
+
children: proceedLabel
|
|
34403
34383
|
}
|
|
34404
34384
|
) }) : !isLatestMessage && footer ? /* @__PURE__ */ jsx96("div", { className: "flex justify-end items-center pb-4 pr-4 gap-1 text-green-600 text-sm font-medium", children: footer }) : null
|
|
34405
34385
|
]
|
|
@@ -36838,7 +36818,7 @@ var CountrySelectEdit = ({
|
|
|
36838
36818
|
inputValue.length > 0 && /* @__PURE__ */ jsx122("div", { className: "flex flex-wrap gap-1.5", children: inputValue.map((countryCode) => /* @__PURE__ */ jsxs82(
|
|
36839
36819
|
Badge2,
|
|
36840
36820
|
{
|
|
36841
|
-
className: "flex items-center gap-1 px-2 py-
|
|
36821
|
+
className: "flex items-center gap-1 px-2 py-0.5 bg-grayPill border border-gray400 rounded-md text-white text-xs font-medium",
|
|
36842
36822
|
children: [
|
|
36843
36823
|
countryCode,
|
|
36844
36824
|
/* @__PURE__ */ jsxs82(
|
|
@@ -36874,7 +36854,7 @@ var CountrySelectDisplay = ({ value }) => {
|
|
|
36874
36854
|
return /* @__PURE__ */ jsx122(
|
|
36875
36855
|
"div",
|
|
36876
36856
|
{
|
|
36877
|
-
className: "flex items-center gap-
|
|
36857
|
+
className: "flex items-center gap-1.5 px-2 py-0.5 bg-grayPill border border-gray400 rounded-md text-foreground text-xs font-medium",
|
|
36878
36858
|
children: country ? country.name : item
|
|
36879
36859
|
},
|
|
36880
36860
|
item
|
|
@@ -36923,7 +36903,7 @@ var KeywordBundlesEdit = ({
|
|
|
36923
36903
|
/* @__PURE__ */ jsx122("div", { className: "flex flex-wrap gap-1.5", children: Array.isArray(bundle.keywords) && bundle.keywords.map((keyword, kIndex) => /* @__PURE__ */ jsxs82(
|
|
36924
36904
|
"div",
|
|
36925
36905
|
{
|
|
36926
|
-
className: "flex items-center gap-
|
|
36906
|
+
className: "flex items-center gap-1.5 px-2 py-0.5 bg-grayPill border border-gray400 rounded-md text-white text-xs font-medium hover:bg-red-900/40 hover:border-red-500 transition-all cursor-pointer group",
|
|
36927
36907
|
onClick: () => {
|
|
36928
36908
|
const updatedBundles = [...bundles];
|
|
36929
36909
|
const currentKeywords = parseKeywords(updatedBundles[bundleIndex].keywords);
|
|
@@ -37022,7 +37002,7 @@ var KeywordBundlesDisplay = ({ value }) => {
|
|
|
37022
37002
|
/* @__PURE__ */ jsx122("div", { className: "flex flex-wrap gap-2 pt-1", children: deduped.map((keyword) => /* @__PURE__ */ jsx122(
|
|
37023
37003
|
"div",
|
|
37024
37004
|
{
|
|
37025
|
-
className: "flex items-center gap-
|
|
37005
|
+
className: "flex items-center gap-1.5 px-2 py-0.5 bg-grayPill border border-gray400 rounded-md text-white text-xs font-medium",
|
|
37026
37006
|
children: keyword
|
|
37027
37007
|
},
|
|
37028
37008
|
keyword
|
|
@@ -37093,7 +37073,7 @@ var PlatformSelectDisplay = ({ value }) => {
|
|
|
37093
37073
|
return /* @__PURE__ */ jsx122("div", { className: "flex flex-wrap gap-2 pt-1", children: displayValues.map((platform) => /* @__PURE__ */ jsx122(
|
|
37094
37074
|
"div",
|
|
37095
37075
|
{
|
|
37096
|
-
className: "flex items-center gap-
|
|
37076
|
+
className: "flex items-center gap-1.5 px-2 py-0.5 bg-grayPill border border-gray400 rounded-md text-foreground text-xs font-medium",
|
|
37097
37077
|
children: platform
|
|
37098
37078
|
},
|
|
37099
37079
|
platform
|
|
@@ -37118,7 +37098,7 @@ var StringArrayDisplay = ({ value }) => {
|
|
|
37118
37098
|
return /* @__PURE__ */ jsx123("div", { className: "flex flex-wrap gap-2 pt-1", children: value.map((item) => /* @__PURE__ */ jsx123(
|
|
37119
37099
|
"div",
|
|
37120
37100
|
{
|
|
37121
|
-
className: "flex items-center gap-
|
|
37101
|
+
className: "flex items-center gap-1.5 px-2 py-0.5 bg-grayPill border border-gray400 rounded-md text-foreground text-xs font-medium",
|
|
37122
37102
|
children: item
|
|
37123
37103
|
},
|
|
37124
37104
|
item
|
|
@@ -37277,9 +37257,9 @@ var CampaignSeedCard = React94.memo(
|
|
|
37277
37257
|
onProceed: handleProceed,
|
|
37278
37258
|
showTimeline: true,
|
|
37279
37259
|
isLatestMessage: effectiveIsLatest,
|
|
37280
|
-
className
|
|
37281
|
-
footer: !effectiveIsLatest && selectionStatus ? /* @__PURE__ */ jsxs83("div", { className: "flex justify-end items-center gap-1
|
|
37282
|
-
/* @__PURE__ */ jsx123(CircleCheck, { className: "h-3
|
|
37260
|
+
className,
|
|
37261
|
+
footer: !effectiveIsLatest && selectionStatus ? /* @__PURE__ */ jsxs83("div", { className: "flex justify-end items-center gap-1 text-green-600 text-[10px] font-semibold py-2 pr-4", children: [
|
|
37262
|
+
/* @__PURE__ */ jsx123(CircleCheck, { className: "h-3 w-3" }),
|
|
37283
37263
|
/* @__PURE__ */ jsx123("span", { children: selectionStatus === "agent" ? "Suggested by Agent" : "Selected by you" })
|
|
37284
37264
|
] }) : formCardProps.footer
|
|
37285
37265
|
}
|
|
@@ -37444,8 +37424,8 @@ var SearchSpecCard = React95.memo(
|
|
|
37444
37424
|
onProceed: handleProceed,
|
|
37445
37425
|
isLatestMessage: effectiveIsLatest,
|
|
37446
37426
|
className,
|
|
37447
|
-
footer: !effectiveIsLatest && selectionStatus ? /* @__PURE__ */ jsxs84("div", { className: "flex justify-end items-center gap-1
|
|
37448
|
-
/* @__PURE__ */ jsx124(CircleCheck, { className: "h-
|
|
37427
|
+
footer: !effectiveIsLatest && selectionStatus ? /* @__PURE__ */ jsxs84("div", { className: "flex justify-end items-center gap-1 text-green-600 text-[10px] font-semibold py-1", children: [
|
|
37428
|
+
/* @__PURE__ */ jsx124(CircleCheck, { className: "h-3 w-3" }),
|
|
37449
37429
|
/* @__PURE__ */ jsx124("span", { children: selectionStatus === "agent" ? "Selected by Agent" : "Selected by User" })
|
|
37450
37430
|
] }) : formCardProps.footer
|
|
37451
37431
|
}
|
|
@@ -37603,75 +37583,61 @@ var MCQCard = React96.memo(
|
|
|
37603
37583
|
"div",
|
|
37604
37584
|
{
|
|
37605
37585
|
className: cn(
|
|
37606
|
-
"p-
|
|
37586
|
+
"p-4 rounded-lg border border-gray400 bg-cardSurface w-full",
|
|
37607
37587
|
className
|
|
37608
37588
|
),
|
|
37609
37589
|
children: [
|
|
37610
|
-
/* @__PURE__ */ jsx125("div", { className: "mb-4", children: /* @__PURE__ */ jsx125("
|
|
37611
|
-
/* @__PURE__ */ jsx125("div", { className: "
|
|
37590
|
+
/* @__PURE__ */ jsx125("div", { className: "mb-4", children: /* @__PURE__ */ jsx125("p", { className: "text-sm text-cardText", children: question }) }),
|
|
37591
|
+
/* @__PURE__ */ jsx125("div", { className: "space-y-2.5 mb-4", children: optionsEntries.map(([key, label]) => {
|
|
37612
37592
|
const isSelected = selectedOption === key;
|
|
37613
37593
|
const isRecommended = key === recommended;
|
|
37614
|
-
return /* @__PURE__ */
|
|
37594
|
+
return /* @__PURE__ */ jsx125(
|
|
37615
37595
|
"div",
|
|
37616
37596
|
{
|
|
37617
37597
|
onClick: (e) => handleOptionClick(key, e),
|
|
37618
37598
|
className: cn(
|
|
37619
|
-
"cursor-pointer rounded-
|
|
37620
|
-
"border
|
|
37599
|
+
"cursor-pointer rounded-lg p-3 transition-colors",
|
|
37600
|
+
"border bg-black",
|
|
37601
|
+
isSelected ? "border-cardBorder" : "border-gray400",
|
|
37621
37602
|
!selectedOption && !isOptionsDisabled && "hover:border-gray500",
|
|
37622
37603
|
(isLoading || isOptionsDisabled) && "opacity-50 cursor-not-allowed"
|
|
37623
37604
|
),
|
|
37624
|
-
children: [
|
|
37625
|
-
/* @__PURE__ */ jsx125("div", { className: "
|
|
37605
|
+
children: /* @__PURE__ */ jsxs85("div", { className: "flex items-start gap-3", children: [
|
|
37606
|
+
/* @__PURE__ */ jsx125("div", { className: "mt-0.5 flex-shrink-0", children: /* @__PURE__ */ jsx125(
|
|
37626
37607
|
"div",
|
|
37627
37608
|
{
|
|
37628
37609
|
className: cn(
|
|
37629
|
-
"w-
|
|
37630
|
-
isSelected ? "border-
|
|
37631
|
-
"border-
|
|
37632
|
-
!selectedOption && !isOptionsDisabled && "hover:border-
|
|
37610
|
+
"w-4 h-4 rounded-full border-2 flex items-center justify-center transition-colors",
|
|
37611
|
+
isSelected ? "border-gold" : cn(
|
|
37612
|
+
"border-gray500",
|
|
37613
|
+
!selectedOption && !isOptionsDisabled && "hover:border-gold"
|
|
37633
37614
|
)
|
|
37634
37615
|
),
|
|
37635
|
-
children: isSelected && /* @__PURE__ */ jsx125("div", { className: "w-2
|
|
37616
|
+
children: isSelected && /* @__PURE__ */ jsx125("div", { className: "w-2 h-2 rounded-full bg-gold" })
|
|
37636
37617
|
}
|
|
37637
37618
|
) }),
|
|
37638
|
-
/* @__PURE__ */ jsxs85("div", { className: "
|
|
37639
|
-
|
|
37640
|
-
|
|
37641
|
-
isSelected && /* @__PURE__ */ jsx125("div", { className: "flex text-xs font-semibold", children: /* @__PURE__ */ jsx125(
|
|
37642
|
-
"p",
|
|
37643
|
-
{
|
|
37644
|
-
className: cn(
|
|
37645
|
-
"px-2 py-1 rounded-[20px]",
|
|
37646
|
-
selectedOption === recommended ? "bg-purpleLight text-purpleText2 dark:bg-primary/20 dark:text-primary" : "bg-paperBackground text-primaryDark2 dark:bg-primary/20 dark:text-primary"
|
|
37647
|
-
),
|
|
37648
|
-
children: "Selected by you"
|
|
37649
|
-
}
|
|
37650
|
-
) })
|
|
37651
|
-
] }),
|
|
37652
|
-
/* @__PURE__ */ jsx125("div", { className: "text-base font-medium text-txtColor", children: label })
|
|
37619
|
+
/* @__PURE__ */ jsxs85("div", { className: "flex-1 min-w-0", children: [
|
|
37620
|
+
isRecommended && /* @__PURE__ */ jsx125("p", { className: "text-xs font-semibold text-gold mb-1", children: "Recommended" }),
|
|
37621
|
+
/* @__PURE__ */ jsx125("p", { className: "text-sm text-cardText", children: label })
|
|
37653
37622
|
] })
|
|
37654
|
-
]
|
|
37623
|
+
] })
|
|
37655
37624
|
},
|
|
37656
37625
|
key
|
|
37657
37626
|
);
|
|
37658
|
-
}) })
|
|
37659
|
-
/* @__PURE__ */
|
|
37660
|
-
|
|
37661
|
-
|
|
37662
|
-
|
|
37663
|
-
|
|
37664
|
-
|
|
37665
|
-
|
|
37666
|
-
|
|
37667
|
-
|
|
37668
|
-
|
|
37669
|
-
|
|
37670
|
-
|
|
37671
|
-
|
|
37672
|
-
),
|
|
37673
|
-
/* @__PURE__ */ jsx125("div", { className: "flex-1" })
|
|
37674
|
-
] })
|
|
37627
|
+
}) }),
|
|
37628
|
+
/* @__PURE__ */ jsx125("div", { className: "flex justify-end", children: /* @__PURE__ */ jsx125(
|
|
37629
|
+
"button",
|
|
37630
|
+
{
|
|
37631
|
+
onClick: handleProceed,
|
|
37632
|
+
disabled: isContinueDisabled || isLoading || !selectedOption && !recommended,
|
|
37633
|
+
className: cn(
|
|
37634
|
+
"px-4 py-1.5 border rounded-lg text-xs font-medium transition-colors",
|
|
37635
|
+
"disabled:opacity-50 disabled:cursor-not-allowed",
|
|
37636
|
+
"bg-cardSurface hover:bg-cardSurface/80 text-gold border-cardBorder"
|
|
37637
|
+
),
|
|
37638
|
+
children: isLoading ? "Sending..." : "Continue"
|
|
37639
|
+
}
|
|
37640
|
+
) })
|
|
37675
37641
|
]
|
|
37676
37642
|
}
|
|
37677
37643
|
);
|
|
@@ -38332,9 +38298,9 @@ var CampaignConceptCard = React98.memo(
|
|
|
38332
38298
|
idx + 1,
|
|
38333
38299
|
"."
|
|
38334
38300
|
] }),
|
|
38335
|
-
/* @__PURE__ */ jsx137("span", { className: "inline-flex items-center bg-
|
|
38336
|
-
/* @__PURE__ */ jsx137("span", { className: "text-
|
|
38337
|
-
/* @__PURE__ */ jsx137("span", { className: "inline-flex items-center bg-
|
|
38301
|
+
/* @__PURE__ */ jsx137("span", { className: "inline-flex items-center bg-black border border-cardBorder px-2 py-0.5 text-cardText text-xs font-medium rounded-md", children: String(label) }),
|
|
38302
|
+
/* @__PURE__ */ jsx137("span", { className: "text-cardText", children: "=" }),
|
|
38303
|
+
/* @__PURE__ */ jsx137("span", { className: "inline-flex items-center bg-black border border-cardBorder px-2 py-1 text-cardText text-sm rounded-md font-grotesk font-medium", children: formatVal(value) })
|
|
38338
38304
|
] }, idx);
|
|
38339
38305
|
}) });
|
|
38340
38306
|
}
|
|
@@ -38347,9 +38313,9 @@ var CampaignConceptCard = React98.memo(
|
|
|
38347
38313
|
idx + 1,
|
|
38348
38314
|
"."
|
|
38349
38315
|
] }),
|
|
38350
|
-
/* @__PURE__ */ jsx137("span", { className: "inline-flex items-center bg-
|
|
38351
|
-
/* @__PURE__ */ jsx137("span", { className: "text-
|
|
38352
|
-
/* @__PURE__ */ jsx137("span", { className: "inline-flex items-center bg-
|
|
38316
|
+
/* @__PURE__ */ jsx137("span", { className: "inline-flex items-center bg-black border border-cardBorder px-2 py-0.5 text-cardText text-xs font-medium rounded-md", children: formatKey(k) }),
|
|
38317
|
+
/* @__PURE__ */ jsx137("span", { className: "text-cardText", children: "=" }),
|
|
38318
|
+
/* @__PURE__ */ jsx137("span", { className: "inline-flex items-center bg-black border border-cardBorder px-2 py-1 text-cardText text-sm rounded-md font-grotesk font-medium", children: formatVal(v) })
|
|
38353
38319
|
] }, k)) });
|
|
38354
38320
|
}
|
|
38355
38321
|
return /* @__PURE__ */ jsx137("span", { className: "text-muted-foreground text-sm", children: String(val) });
|
|
@@ -38391,7 +38357,7 @@ var CampaignConceptCard = React98.memo(
|
|
|
38391
38357
|
if (!val)
|
|
38392
38358
|
return /* @__PURE__ */ jsx137("span", { className: "text-muted-foreground text-sm", children: "-" });
|
|
38393
38359
|
const displayValue = typeof val === "object" && !Array.isArray(val) ? `${val.min ?? 0}-${val.max ?? 0}` : String(val);
|
|
38394
|
-
return /* @__PURE__ */ jsx137("span", { className: "text-
|
|
38360
|
+
return /* @__PURE__ */ jsx137("span", { className: "text-cardText text-sm", children: displayValue });
|
|
38395
38361
|
},
|
|
38396
38362
|
renderEdit: (v, onChange) => /* @__PURE__ */ jsx137(
|
|
38397
38363
|
Input,
|
|
@@ -38416,7 +38382,7 @@ var CampaignConceptCard = React98.memo(
|
|
|
38416
38382
|
return {
|
|
38417
38383
|
...field,
|
|
38418
38384
|
label: field.label || "Primary KPI",
|
|
38419
|
-
renderDisplay: (val) => /* @__PURE__ */ jsx137("span", { className: "text-
|
|
38385
|
+
renderDisplay: (val) => /* @__PURE__ */ jsx137("span", { className: "text-cardText text-sm", children: val ? String(val) : "-" }),
|
|
38420
38386
|
renderEdit: (v, onChange) => /* @__PURE__ */ jsx137(
|
|
38421
38387
|
Input,
|
|
38422
38388
|
{
|
|
@@ -38434,7 +38400,7 @@ var CampaignConceptCard = React98.memo(
|
|
|
38434
38400
|
label: field.label || "Secondary KPIs",
|
|
38435
38401
|
renderDisplay: (val) => {
|
|
38436
38402
|
const display = Array.isArray(val) ? val.map(String).join(", ") : val ? String(val) : "-";
|
|
38437
|
-
return /* @__PURE__ */ jsx137("span", { className: "text-
|
|
38403
|
+
return /* @__PURE__ */ jsx137("span", { className: "text-cardText text-sm", children: display });
|
|
38438
38404
|
},
|
|
38439
38405
|
renderEdit: (v, onChange) => /* @__PURE__ */ jsx137(
|
|
38440
38406
|
Textarea,
|
|
@@ -38461,7 +38427,7 @@ var CampaignConceptCard = React98.memo(
|
|
|
38461
38427
|
return {
|
|
38462
38428
|
...field,
|
|
38463
38429
|
type: "textarea",
|
|
38464
|
-
renderDisplay: (val) => /* @__PURE__ */ jsx137("span", { className: "text-
|
|
38430
|
+
renderDisplay: (val) => /* @__PURE__ */ jsx137("span", { className: "text-cardText text-sm leading-relaxed", children: val ? String(val) : "-" })
|
|
38465
38431
|
};
|
|
38466
38432
|
}
|
|
38467
38433
|
return {
|
|
@@ -38475,7 +38441,7 @@ var CampaignConceptCard = React98.memo(
|
|
|
38475
38441
|
return /* @__PURE__ */ jsx137(
|
|
38476
38442
|
"span",
|
|
38477
38443
|
{
|
|
38478
|
-
className: "inline-flex items-center bg-
|
|
38444
|
+
className: "inline-flex items-center bg-black border border-cardBorder px-2 py-0.5 text-cardText text-xs font-medium rounded-md",
|
|
38479
38445
|
children: label
|
|
38480
38446
|
},
|
|
38481
38447
|
idx
|
|
@@ -38485,7 +38451,7 @@ var CampaignConceptCard = React98.memo(
|
|
|
38485
38451
|
if (typeof val === "object" && val !== null) {
|
|
38486
38452
|
return /* @__PURE__ */ jsx137("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") });
|
|
38487
38453
|
}
|
|
38488
|
-
return /* @__PURE__ */ jsx137("span", { className: "text-
|
|
38454
|
+
return /* @__PURE__ */ jsx137("span", { className: "text-cardText text-sm", children: val !== void 0 && val !== null ? String(val) : "-" });
|
|
38489
38455
|
}
|
|
38490
38456
|
};
|
|
38491
38457
|
});
|
|
@@ -38494,19 +38460,19 @@ var CampaignConceptCard = React98.memo(
|
|
|
38494
38460
|
"div",
|
|
38495
38461
|
{
|
|
38496
38462
|
className: cn(
|
|
38497
|
-
"w-full rounded-
|
|
38498
|
-
isSelected || isRecommended ? "border-2 border-
|
|
38463
|
+
"w-full rounded-lg border bg-cardSurface relative transition-all duration-300",
|
|
38464
|
+
isSelected || isRecommended ? "border-2 border-cardBorder" : "border-gray400",
|
|
38499
38465
|
className
|
|
38500
38466
|
),
|
|
38501
38467
|
children: [
|
|
38502
38468
|
/* @__PURE__ */ jsxs96(
|
|
38503
38469
|
"div",
|
|
38504
38470
|
{
|
|
38505
|
-
className: "px-
|
|
38471
|
+
className: "px-4 py-2.5 relative flex items-center justify-between cursor-pointer select-none",
|
|
38506
38472
|
onClick: handleToggle,
|
|
38507
38473
|
children: [
|
|
38508
38474
|
/* @__PURE__ */ jsxs96("div", { className: "flex-1", children: [
|
|
38509
|
-
/* @__PURE__ */ jsxs96("h3", { className: "
|
|
38475
|
+
/* @__PURE__ */ jsxs96("h3", { className: "text-cardText font-semibold text-sm", children: [
|
|
38510
38476
|
"Concept ",
|
|
38511
38477
|
index !== void 0 ? index : "",
|
|
38512
38478
|
" :",
|
|
@@ -38514,8 +38480,8 @@ var CampaignConceptCard = React98.memo(
|
|
|
38514
38480
|
typeof cardTitle === "object" ? JSON.stringify(cardTitle) : String(cardTitle)
|
|
38515
38481
|
] }),
|
|
38516
38482
|
/* @__PURE__ */ jsxs96("div", { className: "flex flex-wrap gap-2", children: [
|
|
38517
|
-
isRecommended && /* @__PURE__ */ jsx137("
|
|
38518
|
-
!effectiveIsLatest && selectionStatus && /* @__PURE__ */ jsx137("
|
|
38483
|
+
isRecommended && /* @__PURE__ */ jsx137("span", { className: "text-[10px] font-semibold uppercase tracking-widest text-gold", children: "Recommended" }),
|
|
38484
|
+
!effectiveIsLatest && selectionStatus && /* @__PURE__ */ jsx137("span", { className: "text-[10px] font-semibold uppercase tracking-widest text-gold", children: selectionStatus === "agent" ? "Selected by Agent" : "Selected by You" })
|
|
38519
38485
|
] })
|
|
38520
38486
|
] }),
|
|
38521
38487
|
/* @__PURE__ */ jsx137(
|
|
@@ -38531,7 +38497,7 @@ var CampaignConceptCard = React98.memo(
|
|
|
38531
38497
|
e.stopPropagation();
|
|
38532
38498
|
handleToggle();
|
|
38533
38499
|
},
|
|
38534
|
-
className: "p-2 bg-
|
|
38500
|
+
className: "p-2 bg-cardSurface hover:bg-gray200 text-cardText rounded-lg",
|
|
38535
38501
|
"aria-label": isOpen ? "Collapse" : "Expand",
|
|
38536
38502
|
title: isOpen ? "Collapse" : "Expand",
|
|
38537
38503
|
children: /* @__PURE__ */ jsx137(
|
|
@@ -38555,11 +38521,11 @@ var CampaignConceptCard = React98.memo(
|
|
|
38555
38521
|
exit: { height: 0, opacity: 0 },
|
|
38556
38522
|
transition: { duration: 0.2, ease: "easeIn" },
|
|
38557
38523
|
className: "overflow-hidden",
|
|
38558
|
-
children: /* @__PURE__ */ jsxs96("div", { className: "px-
|
|
38524
|
+
children: /* @__PURE__ */ jsxs96("div", { className: "px-3 py-2 w-full relative", children: [
|
|
38559
38525
|
/* @__PURE__ */ jsx137(
|
|
38560
38526
|
"div",
|
|
38561
38527
|
{
|
|
38562
|
-
className: "absolute left-[
|
|
38528
|
+
className: "absolute left-[48px] top-[70px] bottom-[40px] w-[2px]",
|
|
38563
38529
|
style: {
|
|
38564
38530
|
background: `radial-gradient(circle closest-side, #3C3D3E 98%, transparent) 50%/2px 5px repeat-y, linear-gradient(#3C3D3E 50%, transparent 0) 50%/2px 10px repeat-y`
|
|
38565
38531
|
}
|
|
@@ -38579,7 +38545,7 @@ var CampaignConceptCard = React98.memo(
|
|
|
38579
38545
|
hideTitle: true,
|
|
38580
38546
|
hideCopyButton: true,
|
|
38581
38547
|
className: "bg-transparent border-none shadow-none mb-0 p-0",
|
|
38582
|
-
footer: !effectiveIsLatest && selectionStatus ? /* @__PURE__ */ jsxs96("div", { className: "flex justify-end items-center gap-1
|
|
38548
|
+
footer: !effectiveIsLatest && selectionStatus ? /* @__PURE__ */ jsxs96("div", { className: "flex justify-end items-center gap-1 text-green-600 text-[10px] font-semibold py-2 pr-4", children: [
|
|
38583
38549
|
/* @__PURE__ */ jsx137(CircleCheck, { className: "h-3.5 w-3.5" }),
|
|
38584
38550
|
/* @__PURE__ */ jsx137("span", { children: selectionStatus === "agent" ? "Selected by Agent" : "Selected by You" })
|
|
38585
38551
|
] }) : formCardProps.footer
|
|
@@ -40781,1307 +40747,6 @@ function CreatorWidgetInner({
|
|
|
40781
40747
|
}
|
|
40782
40748
|
var CreatorWidget = memo(CreatorWidgetInner);
|
|
40783
40749
|
|
|
40784
|
-
// src/molecules/workstream-builder/ToolListCard/ToolListCard.tsx
|
|
40785
|
-
import { jsx as jsx150, jsxs as jsxs108 } from "react/jsx-runtime";
|
|
40786
|
-
var FONT_STYLE = {
|
|
40787
|
-
fontFamily: "Inter, system-ui, sans-serif"
|
|
40788
|
-
};
|
|
40789
|
-
var ICON_MAP = {
|
|
40790
|
-
Search,
|
|
40791
|
-
Database,
|
|
40792
|
-
Globe,
|
|
40793
|
-
FileText,
|
|
40794
|
-
Zap,
|
|
40795
|
-
Layout: PanelsTopLeft,
|
|
40796
|
-
Wrench,
|
|
40797
|
-
BookOpen,
|
|
40798
|
-
BarChart3: ChartColumn,
|
|
40799
|
-
Link,
|
|
40800
|
-
MessageSquare,
|
|
40801
|
-
Sparkles,
|
|
40802
|
-
FolderOpen,
|
|
40803
|
-
Code,
|
|
40804
|
-
Shield,
|
|
40805
|
-
Image,
|
|
40806
|
-
Mail,
|
|
40807
|
-
Calendar
|
|
40808
|
-
};
|
|
40809
|
-
var CATEGORY_FALLBACK = {
|
|
40810
|
-
search: Search,
|
|
40811
|
-
data: Database,
|
|
40812
|
-
knowledge: BookOpen,
|
|
40813
|
-
web: Globe,
|
|
40814
|
-
content: FileText,
|
|
40815
|
-
ui: PanelsTopLeft,
|
|
40816
|
-
analytics: ChartColumn,
|
|
40817
|
-
integration: Link,
|
|
40818
|
-
communication: MessageSquare,
|
|
40819
|
-
generation: Sparkles,
|
|
40820
|
-
file: FolderOpen,
|
|
40821
|
-
code: Code,
|
|
40822
|
-
security: Shield,
|
|
40823
|
-
general: Zap
|
|
40824
|
-
};
|
|
40825
|
-
var CATEGORY_HEADER_BG = {
|
|
40826
|
-
search: "bg-blue-500/[0.04]",
|
|
40827
|
-
data: "bg-emerald-500/[0.04]",
|
|
40828
|
-
knowledge: "bg-purple-500/[0.04]",
|
|
40829
|
-
web: "bg-cyan-500/[0.04]",
|
|
40830
|
-
content: "bg-pink-500/[0.04]",
|
|
40831
|
-
ui: "bg-violet-500/[0.04]",
|
|
40832
|
-
analytics: "bg-orange-500/[0.04]",
|
|
40833
|
-
integration: "bg-amber-500/[0.04]",
|
|
40834
|
-
general: "bg-[var(--foreground)]/[0.02]"
|
|
40835
|
-
};
|
|
40836
|
-
function resolveIcon(tool) {
|
|
40837
|
-
if (tool.icon && ICON_MAP[tool.icon]) return ICON_MAP[tool.icon];
|
|
40838
|
-
if (tool.category && CATEGORY_FALLBACK[tool.category.toLowerCase()])
|
|
40839
|
-
return CATEGORY_FALLBACK[tool.category.toLowerCase()];
|
|
40840
|
-
return Wrench;
|
|
40841
|
-
}
|
|
40842
|
-
function resolveCategoryIcon(category) {
|
|
40843
|
-
return CATEGORY_FALLBACK[category.toLowerCase()] || Wrench;
|
|
40844
|
-
}
|
|
40845
|
-
var ToolListCard = ({
|
|
40846
|
-
tools,
|
|
40847
|
-
className
|
|
40848
|
-
}) => {
|
|
40849
|
-
const grouped = {};
|
|
40850
|
-
for (const tool of tools) {
|
|
40851
|
-
const cat = tool.category || "General";
|
|
40852
|
-
if (!grouped[cat]) grouped[cat] = [];
|
|
40853
|
-
grouped[cat].push(tool);
|
|
40854
|
-
}
|
|
40855
|
-
const categories = Object.keys(grouped);
|
|
40856
|
-
return /* @__PURE__ */ jsxs108(
|
|
40857
|
-
"div",
|
|
40858
|
-
{
|
|
40859
|
-
className: cn(
|
|
40860
|
-
"text-foreground hover:bg-muted/50 hover:text-foreground my-3 rounded-xl border border-[var(--border-color)] bg-[var(--card-background)] overflow-hidden shadow-sm",
|
|
40861
|
-
className
|
|
40862
|
-
),
|
|
40863
|
-
style: FONT_STYLE,
|
|
40864
|
-
children: [
|
|
40865
|
-
/* @__PURE__ */ jsxs108("div", { className: "px-4 py-3 border-b border-[var(--border-color)] bg-[var(--foreground)]/[0.03] flex items-center gap-2.5", children: [
|
|
40866
|
-
/* @__PURE__ */ jsx150("div", { className: "w-6 h-6 rounded-md bg-interactive/10 flex items-center justify-center", children: /* @__PURE__ */ jsx150(Wrench, { className: "w-3.5 h-3.5 text-interactive" }) }),
|
|
40867
|
-
/* @__PURE__ */ jsx150("h4", { className: "text-sm font-semibold text-[var(--foreground)]", children: "Available Tools" }),
|
|
40868
|
-
/* @__PURE__ */ jsx150("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 })
|
|
40869
|
-
] }),
|
|
40870
|
-
/* @__PURE__ */ jsx150("div", { className: "divide-y divide-[var(--border-color)]", children: categories.map((cat) => {
|
|
40871
|
-
const CatIcon = resolveCategoryIcon(cat);
|
|
40872
|
-
const headerBg = CATEGORY_HEADER_BG[cat.toLowerCase()] || CATEGORY_HEADER_BG.general;
|
|
40873
|
-
return /* @__PURE__ */ jsxs108("div", { className: "px-4 py-3", children: [
|
|
40874
|
-
/* @__PURE__ */ jsxs108("div", { className: cn("flex items-center gap-2 mb-2.5 -mx-4 px-4 py-1.5", headerBg), children: [
|
|
40875
|
-
/* @__PURE__ */ jsx150(CatIcon, { className: "w-3.5 h-3.5 text-interactive/70" }),
|
|
40876
|
-
/* @__PURE__ */ jsx150("span", { className: "text-[11px] font-semibold text-[var(--foreground)]/50 uppercase tracking-wider", children: cat }),
|
|
40877
|
-
/* @__PURE__ */ jsx150("span", { className: "text-[10px] text-[var(--foreground)]/30", children: grouped[cat].length })
|
|
40878
|
-
] }),
|
|
40879
|
-
/* @__PURE__ */ jsx150("div", { className: "space-y-1.5", children: grouped[cat].map((tool) => {
|
|
40880
|
-
const ToolIcon = resolveIcon(tool);
|
|
40881
|
-
return /* @__PURE__ */ jsxs108(
|
|
40882
|
-
"div",
|
|
40883
|
-
{
|
|
40884
|
-
className: "group flex items-start gap-3 px-3 py-2 rounded-lg hover:bg-[var(--foreground)]/[0.03] transition-colors",
|
|
40885
|
-
children: [
|
|
40886
|
-
/* @__PURE__ */ jsx150("div", { className: "shrink-0 mt-0.5 w-5 h-5 rounded flex items-center justify-center bg-interactive/[0.08]", children: /* @__PURE__ */ jsx150(ToolIcon, { className: "w-3 h-3 text-interactive/60" }) }),
|
|
40887
|
-
/* @__PURE__ */ jsxs108("div", { className: "flex-1 min-w-0", children: [
|
|
40888
|
-
/* @__PURE__ */ jsxs108("div", { className: "flex items-center gap-2 flex-wrap", children: [
|
|
40889
|
-
tool.display_name && tool.display_name !== tool.name && /* @__PURE__ */ jsx150("span", { className: "text-[13px] font-medium text-[var(--foreground)] truncate max-w-full", children: tool.display_name }),
|
|
40890
|
-
/* @__PURE__ */ jsx150("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] truncate", children: tool.name })
|
|
40891
|
-
] }),
|
|
40892
|
-
tool.description && /* @__PURE__ */ jsx150("p", { className: "text-xs text-[var(--foreground)]/50 leading-relaxed mt-0.5 break-words whitespace-normal", children: tool.description })
|
|
40893
|
-
] })
|
|
40894
|
-
]
|
|
40895
|
-
},
|
|
40896
|
-
tool.name
|
|
40897
|
-
);
|
|
40898
|
-
}) })
|
|
40899
|
-
] }, cat);
|
|
40900
|
-
}) })
|
|
40901
|
-
]
|
|
40902
|
-
}
|
|
40903
|
-
);
|
|
40904
|
-
};
|
|
40905
|
-
|
|
40906
|
-
// src/molecules/workstream-builder/AgentCard/AgentCard.tsx
|
|
40907
|
-
import { useState as useState20, useCallback as useCallback8 } from "react";
|
|
40908
|
-
import { Fragment as Fragment10, jsx as jsx151, jsxs as jsxs109 } from "react/jsx-runtime";
|
|
40909
|
-
var FONT_STYLE2 = {
|
|
40910
|
-
fontFamily: "Inter, system-ui, sans-serif"
|
|
40911
|
-
};
|
|
40912
|
-
var AgentCard = ({
|
|
40913
|
-
agent,
|
|
40914
|
-
editable = true,
|
|
40915
|
-
compact = false,
|
|
40916
|
-
onSave,
|
|
40917
|
-
className
|
|
40918
|
-
}) => {
|
|
40919
|
-
const [isEditing, setIsEditing] = useState20(false);
|
|
40920
|
-
const [isSaving, setIsSaving] = useState20(false);
|
|
40921
|
-
const [editState, setEditState] = useState20({
|
|
40922
|
-
display_name: agent.display_name,
|
|
40923
|
-
description: agent.description,
|
|
40924
|
-
image: agent.image || ""
|
|
40925
|
-
});
|
|
40926
|
-
const avatarUrl = agent.image || `https://api.dicebear.com/7.x/avataaars/svg?seed=${agent.name}`;
|
|
40927
|
-
const handleEdit = useCallback8(() => {
|
|
40928
|
-
setEditState({
|
|
40929
|
-
display_name: agent.display_name,
|
|
40930
|
-
description: agent.description,
|
|
40931
|
-
image: agent.image || ""
|
|
40932
|
-
});
|
|
40933
|
-
setIsEditing(true);
|
|
40934
|
-
}, [agent]);
|
|
40935
|
-
const handleCancel = useCallback8(() => {
|
|
40936
|
-
setIsEditing(false);
|
|
40937
|
-
}, []);
|
|
40938
|
-
const handleSave = useCallback8(async () => {
|
|
40939
|
-
if (!onSave) return;
|
|
40940
|
-
const updates = {};
|
|
40941
|
-
if (editState.display_name !== agent.display_name)
|
|
40942
|
-
updates.display_name = editState.display_name;
|
|
40943
|
-
if (editState.description !== agent.description)
|
|
40944
|
-
updates.description = editState.description;
|
|
40945
|
-
if (editState.image !== (agent.image || ""))
|
|
40946
|
-
updates.image = editState.image;
|
|
40947
|
-
if (Object.keys(updates).length === 0) {
|
|
40948
|
-
setIsEditing(false);
|
|
40949
|
-
return;
|
|
40950
|
-
}
|
|
40951
|
-
setIsSaving(true);
|
|
40952
|
-
try {
|
|
40953
|
-
await onSave(agent, updates);
|
|
40954
|
-
setIsEditing(false);
|
|
40955
|
-
} catch (err) {
|
|
40956
|
-
console.error("AgentCard save failed:", err);
|
|
40957
|
-
} finally {
|
|
40958
|
-
setIsSaving(false);
|
|
40959
|
-
}
|
|
40960
|
-
}, [onSave, agent, editState]);
|
|
40961
|
-
if (compact) {
|
|
40962
|
-
return /* @__PURE__ */ jsxs109(
|
|
40963
|
-
"div",
|
|
40964
|
-
{
|
|
40965
|
-
className: cn(
|
|
40966
|
-
"flex items-center gap-3 py-1",
|
|
40967
|
-
className
|
|
40968
|
-
),
|
|
40969
|
-
style: FONT_STYLE2,
|
|
40970
|
-
children: [
|
|
40971
|
-
/* @__PURE__ */ jsxs109(Avatar, { className: "h-8 w-8 shrink-0", children: [
|
|
40972
|
-
/* @__PURE__ */ jsx151(AvatarImage, { src: avatarUrl, alt: agent.display_name }),
|
|
40973
|
-
/* @__PURE__ */ jsx151(AvatarFallback, { className: "bg-interactive/10 text-interactive text-xs font-bold", children: agent.display_name.charAt(0) })
|
|
40974
|
-
] }),
|
|
40975
|
-
/* @__PURE__ */ jsxs109("div", { className: "flex-1 min-w-0", children: [
|
|
40976
|
-
/* @__PURE__ */ jsxs109("div", { className: "flex items-center gap-2", children: [
|
|
40977
|
-
/* @__PURE__ */ jsx151("span", { className: "text-[var(--foreground)] text-sm font-semibold truncate", children: agent.display_name }),
|
|
40978
|
-
/* @__PURE__ */ jsxs109(
|
|
40979
|
-
"span",
|
|
40980
|
-
{
|
|
40981
|
-
className: cn(
|
|
40982
|
-
"inline-flex items-center gap-1 text-[10px] px-1.5 py-0.5 rounded-full font-medium",
|
|
40983
|
-
agent.enabled ? "bg-emerald-500/10 text-emerald-600" : "bg-red-500/10 text-red-500"
|
|
40984
|
-
),
|
|
40985
|
-
children: [
|
|
40986
|
-
/* @__PURE__ */ jsx151("span", { className: cn(
|
|
40987
|
-
"w-1.5 h-1.5 rounded-full",
|
|
40988
|
-
agent.enabled ? "bg-emerald-500" : "bg-red-500"
|
|
40989
|
-
) }),
|
|
40990
|
-
agent.enabled ? "Active" : "Disabled"
|
|
40991
|
-
]
|
|
40992
|
-
}
|
|
40993
|
-
)
|
|
40994
|
-
] }),
|
|
40995
|
-
/* @__PURE__ */ jsx151("p", { className: "text-[var(--foreground)]/50 text-xs truncate", children: agent.description })
|
|
40996
|
-
] })
|
|
40997
|
-
]
|
|
40998
|
-
}
|
|
40999
|
-
);
|
|
41000
|
-
}
|
|
41001
|
-
return /* @__PURE__ */ jsxs109(
|
|
41002
|
-
"div",
|
|
41003
|
-
{
|
|
41004
|
-
className: cn(
|
|
41005
|
-
"text-foreground hover:bg-muted/50 hover:text-foreground my-3 rounded-xl border border-[var(--border-color)] bg-[var(--card-background)] overflow-hidden",
|
|
41006
|
-
className
|
|
41007
|
-
),
|
|
41008
|
-
style: FONT_STYLE2,
|
|
41009
|
-
children: [
|
|
41010
|
-
/* @__PURE__ */ jsxs109("div", { className: "flex items-start gap-4 px-5 py-4 bg-gradient-to-r from-[var(--foreground)]/[0.02] to-transparent", children: [
|
|
41011
|
-
/* @__PURE__ */ jsxs109(Avatar, { className: "h-12 w-12 shrink-0 border-2 border-interactive/20", children: [
|
|
41012
|
-
/* @__PURE__ */ jsx151(AvatarImage, { src: isEditing && editState.image ? editState.image : avatarUrl, alt: agent.display_name }),
|
|
41013
|
-
/* @__PURE__ */ jsx151(AvatarFallback, { className: "bg-interactive/10 text-interactive text-lg font-bold", children: agent.display_name.charAt(0) })
|
|
41014
|
-
] }),
|
|
41015
|
-
/* @__PURE__ */ jsxs109("div", { className: "flex-1 min-w-0", children: [
|
|
41016
|
-
/* @__PURE__ */ jsxs109("div", { className: "flex items-center gap-2", children: [
|
|
41017
|
-
isEditing ? /* @__PURE__ */ jsx151(
|
|
41018
|
-
"input",
|
|
41019
|
-
{
|
|
41020
|
-
type: "text",
|
|
41021
|
-
value: editState.display_name,
|
|
41022
|
-
onChange: (e) => setEditState((s) => ({ ...s, display_name: e.target.value })),
|
|
41023
|
-
disabled: isSaving,
|
|
41024
|
-
className: "flex-1 bg-transparent border-b border-interactive/30 text-sm font-semibold text-foreground outline-none focus:border-interactive transition-all",
|
|
41025
|
-
placeholder: "Agent name"
|
|
41026
|
-
}
|
|
41027
|
-
) : /* @__PURE__ */ jsx151("h4", { className: "text-sm font-semibold text-[var(--foreground)] truncate", children: agent.display_name }),
|
|
41028
|
-
/* @__PURE__ */ jsx151("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 }),
|
|
41029
|
-
/* @__PURE__ */ jsxs109(
|
|
41030
|
-
"span",
|
|
41031
|
-
{
|
|
41032
|
-
className: cn(
|
|
41033
|
-
"inline-flex items-center gap-1 text-[10px] px-2 py-0.5 rounded-full font-medium",
|
|
41034
|
-
agent.enabled ? "bg-emerald-500/10 text-emerald-600" : "bg-red-500/10 text-red-500"
|
|
41035
|
-
),
|
|
41036
|
-
children: [
|
|
41037
|
-
/* @__PURE__ */ jsx151("span", { className: cn(
|
|
41038
|
-
"w-1.5 h-1.5 rounded-full",
|
|
41039
|
-
agent.enabled ? "bg-emerald-500" : "bg-red-500"
|
|
41040
|
-
) }),
|
|
41041
|
-
agent.enabled ? "Active" : "Disabled"
|
|
41042
|
-
]
|
|
41043
|
-
}
|
|
41044
|
-
)
|
|
41045
|
-
] }),
|
|
41046
|
-
/* @__PURE__ */ jsx151("div", { className: "mt-1", children: isEditing ? /* @__PURE__ */ jsx151(
|
|
41047
|
-
"textarea",
|
|
41048
|
-
{
|
|
41049
|
-
value: editState.description,
|
|
41050
|
-
onChange: (e) => setEditState((s) => ({ ...s, description: e.target.value })),
|
|
41051
|
-
disabled: isSaving,
|
|
41052
|
-
className: "w-full bg-transparent border-b border-interactive/30 text-xs text-foreground/70 outline-none focus:border-interactive transition-all resize-none leading-relaxed min-h-[40px]",
|
|
41053
|
-
rows: 2,
|
|
41054
|
-
placeholder: "Describe this agent..."
|
|
41055
|
-
}
|
|
41056
|
-
) : /* @__PURE__ */ jsx151("p", { className: "text-xs text-[var(--foreground)]/60 leading-relaxed whitespace-normal", children: agent.description }) }),
|
|
41057
|
-
isEditing && /* @__PURE__ */ jsxs109("div", { className: "mt-2 flex items-center gap-2", children: [
|
|
41058
|
-
/* @__PURE__ */ jsx151("span", { className: "text-[10px] text-[var(--foreground)]/30 uppercase font-semibold", children: "Avatar:" }),
|
|
41059
|
-
/* @__PURE__ */ jsx151(
|
|
41060
|
-
"input",
|
|
41061
|
-
{
|
|
41062
|
-
type: "text",
|
|
41063
|
-
value: editState.image,
|
|
41064
|
-
onChange: (e) => setEditState((s) => ({ ...s, image: e.target.value })),
|
|
41065
|
-
disabled: isSaving,
|
|
41066
|
-
className: "flex-1 bg-foreground/[0.03] border border-[var(--border-color)] rounded px-2 py-0.5 text-[10px] text-foreground/50 font-mono outline-none focus:border-interactive/50 transition-colors",
|
|
41067
|
-
placeholder: "URL"
|
|
41068
|
-
}
|
|
41069
|
-
)
|
|
41070
|
-
] })
|
|
41071
|
-
] }),
|
|
41072
|
-
editable && onSave && /* @__PURE__ */ jsx151("div", { className: "flex items-center gap-1.5 shrink-0", children: isEditing ? /* @__PURE__ */ jsxs109(Fragment10, { children: [
|
|
41073
|
-
/* @__PURE__ */ jsx151(
|
|
41074
|
-
"button",
|
|
41075
|
-
{
|
|
41076
|
-
onClick: handleCancel,
|
|
41077
|
-
disabled: isSaving,
|
|
41078
|
-
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",
|
|
41079
|
-
children: "Cancel"
|
|
41080
|
-
}
|
|
41081
|
-
),
|
|
41082
|
-
/* @__PURE__ */ jsx151(
|
|
41083
|
-
"button",
|
|
41084
|
-
{
|
|
41085
|
-
onClick: handleSave,
|
|
41086
|
-
disabled: isSaving,
|
|
41087
|
-
className: "text-[11px] px-2.5 py-1 rounded-md bg-[var(--border-color)] text-foreground border border-[var(--border-color)] hover:opacity-90 transition-opacity disabled:opacity-50",
|
|
41088
|
-
children: isSaving ? "Saving..." : "Save"
|
|
41089
|
-
}
|
|
41090
|
-
)
|
|
41091
|
-
] }) : /* @__PURE__ */ jsx151(
|
|
41092
|
-
"button",
|
|
41093
|
-
{
|
|
41094
|
-
onClick: handleEdit,
|
|
41095
|
-
className: "text-[11px] px-2.5 py-1 rounded-md border border-[var(--border-color)] text-foreground/50 hover:text-foreground hover:border-interactive/50 transition-colors",
|
|
41096
|
-
children: "Edit"
|
|
41097
|
-
}
|
|
41098
|
-
) })
|
|
41099
|
-
] }),
|
|
41100
|
-
/* @__PURE__ */ jsx151("div", { className: "flex flex-wrap items-center gap-3 px-5 pb-3 text-xs", children: /* @__PURE__ */ jsxs109("span", { className: "text-[var(--foreground)]/40", children: [
|
|
41101
|
-
"Model:",
|
|
41102
|
-
" ",
|
|
41103
|
-
/* @__PURE__ */ jsx151("span", { className: "font-mono text-[var(--foreground)]/70", children: agent.model })
|
|
41104
|
-
] }) }),
|
|
41105
|
-
agent.tools && agent.tools.length > 0 && /* @__PURE__ */ jsxs109("div", { className: "border-t border-[var(--border-color)] px-5 py-3", children: [
|
|
41106
|
-
/* @__PURE__ */ jsxs109("p", { className: "text-[11px] font-semibold text-[var(--foreground)]/40 uppercase tracking-wide mb-2", children: [
|
|
41107
|
-
"Tools (",
|
|
41108
|
-
agent.tools.length,
|
|
41109
|
-
")"
|
|
41110
|
-
] }),
|
|
41111
|
-
/* @__PURE__ */ jsx151("div", { className: "flex flex-wrap gap-1.5", children: agent.tools.map((tool) => /* @__PURE__ */ jsx151(
|
|
41112
|
-
"span",
|
|
41113
|
-
{
|
|
41114
|
-
className: "text-[11px] px-2 py-0.5 rounded-md bg-interactive/10 text-interactive font-mono border border-interactive/20",
|
|
41115
|
-
children: tool
|
|
41116
|
-
},
|
|
41117
|
-
tool
|
|
41118
|
-
)) })
|
|
41119
|
-
] })
|
|
41120
|
-
]
|
|
41121
|
-
}
|
|
41122
|
-
);
|
|
41123
|
-
};
|
|
41124
|
-
|
|
41125
|
-
// src/molecules/workstream-builder/AgentDataTable/AgentDataTable.tsx
|
|
41126
|
-
import { jsx as jsx152, jsxs as jsxs110 } from "react/jsx-runtime";
|
|
41127
|
-
var FONT_STYLE3 = {
|
|
41128
|
-
fontFamily: "Inter, system-ui, sans-serif"
|
|
41129
|
-
};
|
|
41130
|
-
var AgentDataTable = ({
|
|
41131
|
-
headers,
|
|
41132
|
-
rows,
|
|
41133
|
-
className
|
|
41134
|
-
}) => {
|
|
41135
|
-
const renderCell = (value) => {
|
|
41136
|
-
if (typeof value === "boolean") {
|
|
41137
|
-
return /* @__PURE__ */ jsxs110(
|
|
41138
|
-
"span",
|
|
41139
|
-
{
|
|
41140
|
-
className: cn(
|
|
41141
|
-
"inline-flex items-center gap-1.5 text-[11px] font-medium px-2 py-0.5 rounded-full",
|
|
41142
|
-
value ? "bg-emerald-500/10 text-emerald-600" : "bg-red-500/10 text-red-500"
|
|
41143
|
-
),
|
|
41144
|
-
children: [
|
|
41145
|
-
value ? /* @__PURE__ */ jsx152("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx152("polyline", { points: "20 6 9 17 4 12" }) }) : /* @__PURE__ */ jsxs110("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
41146
|
-
/* @__PURE__ */ jsx152("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
|
|
41147
|
-
/* @__PURE__ */ jsx152("line", { x1: "6", y1: "6", x2: "18", y2: "18" })
|
|
41148
|
-
] }),
|
|
41149
|
-
value ? "Yes" : "No"
|
|
41150
|
-
]
|
|
41151
|
-
}
|
|
41152
|
-
);
|
|
41153
|
-
}
|
|
41154
|
-
return /* @__PURE__ */ jsx152("span", { className: "text-[var(--foreground)]", children: String(value) });
|
|
41155
|
-
};
|
|
41156
|
-
return /* @__PURE__ */ jsx152(
|
|
41157
|
-
"div",
|
|
41158
|
-
{
|
|
41159
|
-
className: cn(
|
|
41160
|
-
"text-foreground hover:bg-muted/50 hover:text-foreground my-3 rounded-xl border border-[var(--border-color)] bg-[var(--card-background)] overflow-hidden",
|
|
41161
|
-
className
|
|
41162
|
-
),
|
|
41163
|
-
style: FONT_STYLE3,
|
|
41164
|
-
children: /* @__PURE__ */ jsx152("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsxs110("table", { className: "w-full text-xs", children: [
|
|
41165
|
-
/* @__PURE__ */ jsx152("thead", { children: /* @__PURE__ */ jsx152("tr", { className: "border-b border-[var(--border-color)] bg-[var(--foreground)]/[0.03]", children: headers.map((header) => /* @__PURE__ */ jsx152(
|
|
41166
|
-
"th",
|
|
41167
|
-
{
|
|
41168
|
-
className: "text-left px-4 py-2.5 text-[11px] font-semibold text-[var(--foreground)]/60 uppercase tracking-wide whitespace-nowrap",
|
|
41169
|
-
children: header
|
|
41170
|
-
},
|
|
41171
|
-
header
|
|
41172
|
-
)) }) }),
|
|
41173
|
-
/* @__PURE__ */ jsx152("tbody", { children: rows.map((row, rowIdx) => /* @__PURE__ */ jsx152(
|
|
41174
|
-
"tr",
|
|
41175
|
-
{
|
|
41176
|
-
className: cn(
|
|
41177
|
-
"border-b border-[var(--border-color)] last:border-b-0 hover:bg-[var(--foreground)]/[0.03] transition-colors",
|
|
41178
|
-
rowIdx % 2 === 1 && "bg-[var(--foreground)]/[0.015]"
|
|
41179
|
-
),
|
|
41180
|
-
children: row.map((cell, cellIdx) => /* @__PURE__ */ jsx152(
|
|
41181
|
-
"td",
|
|
41182
|
-
{
|
|
41183
|
-
className: "px-4 py-2.5 text-xs whitespace-nowrap",
|
|
41184
|
-
children: renderCell(cell)
|
|
41185
|
-
},
|
|
41186
|
-
cellIdx
|
|
41187
|
-
))
|
|
41188
|
-
},
|
|
41189
|
-
rowIdx
|
|
41190
|
-
)) })
|
|
41191
|
-
] }) })
|
|
41192
|
-
}
|
|
41193
|
-
);
|
|
41194
|
-
};
|
|
41195
|
-
|
|
41196
|
-
// src/molecules/workstream-builder/WorkflowVisualizer/WorkflowVisualizer.tsx
|
|
41197
|
-
import { useState as useState21 } from "react";
|
|
41198
|
-
import { jsx as jsx153, jsxs as jsxs111 } from "react/jsx-runtime";
|
|
41199
|
-
var FONT_STYLE4 = {
|
|
41200
|
-
fontFamily: "Inter, system-ui, sans-serif"
|
|
41201
|
-
};
|
|
41202
|
-
var WorkflowVisualizer = ({
|
|
41203
|
-
steps,
|
|
41204
|
-
className
|
|
41205
|
-
}) => {
|
|
41206
|
-
const [expandedStep, setExpandedStep] = useState21(
|
|
41207
|
-
steps[0]?.id || null
|
|
41208
|
-
);
|
|
41209
|
-
return /* @__PURE__ */ jsxs111(
|
|
41210
|
-
"div",
|
|
41211
|
-
{
|
|
41212
|
-
className: cn(
|
|
41213
|
-
"text-foreground hover:bg-muted/50 hover:text-foreground my-3 rounded-xl border border-[var(--border-color)] bg-[var(--card-background)] overflow-hidden shadow-sm",
|
|
41214
|
-
className
|
|
41215
|
-
),
|
|
41216
|
-
style: FONT_STYLE4,
|
|
41217
|
-
children: [
|
|
41218
|
-
/* @__PURE__ */ jsxs111("div", { className: "px-4 py-3 border-b border-[var(--border-color)] bg-[var(--foreground)]/[0.03] flex items-center gap-2.5", children: [
|
|
41219
|
-
/* @__PURE__ */ jsx153("div", { className: "w-6 h-6 rounded-md bg-interactive/10 flex items-center justify-center", children: /* @__PURE__ */ jsx153(
|
|
41220
|
-
"svg",
|
|
41221
|
-
{
|
|
41222
|
-
width: "14",
|
|
41223
|
-
height: "14",
|
|
41224
|
-
viewBox: "0 0 24 24",
|
|
41225
|
-
fill: "none",
|
|
41226
|
-
stroke: "currentColor",
|
|
41227
|
-
strokeWidth: "2",
|
|
41228
|
-
className: "text-interactive",
|
|
41229
|
-
strokeLinecap: "round",
|
|
41230
|
-
strokeLinejoin: "round",
|
|
41231
|
-
children: /* @__PURE__ */ jsx153("polyline", { points: "22 12 18 12 15 21 9 3 6 12 2 12" })
|
|
41232
|
-
}
|
|
41233
|
-
) }),
|
|
41234
|
-
/* @__PURE__ */ jsx153("h4", { className: "text-sm font-semibold text-[var(--foreground)]", children: "Workflow" }),
|
|
41235
|
-
/* @__PURE__ */ jsxs111("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: [
|
|
41236
|
-
steps.length,
|
|
41237
|
-
" steps"
|
|
41238
|
-
] })
|
|
41239
|
-
] }),
|
|
41240
|
-
/* @__PURE__ */ jsx153("div", { className: "px-4 py-3", children: steps.map((step, idx) => {
|
|
41241
|
-
const isLast = idx === steps.length - 1;
|
|
41242
|
-
const isExpanded = expandedStep === step.id;
|
|
41243
|
-
return /* @__PURE__ */ jsxs111("div", { className: "flex gap-3", children: [
|
|
41244
|
-
/* @__PURE__ */ jsxs111("div", { className: "flex flex-col items-center shrink-0", children: [
|
|
41245
|
-
/* @__PURE__ */ jsx153("div", { className: "w-7 h-7 rounded-full bg-interactive/10 border-2 border-interactive/30 flex items-center justify-center", children: /* @__PURE__ */ jsx153("span", { className: "text-[10px] font-bold text-interactive", children: idx + 1 }) }),
|
|
41246
|
-
!isLast && /* @__PURE__ */ jsx153("div", { className: "w-0.5 flex-1 min-h-[16px] bg-interactive/15" })
|
|
41247
|
-
] }),
|
|
41248
|
-
/* @__PURE__ */ jsxs111(
|
|
41249
|
-
"div",
|
|
41250
|
-
{
|
|
41251
|
-
className: cn(
|
|
41252
|
-
"flex-1 mb-3 rounded-lg border border-[var(--border-color)] transition-all",
|
|
41253
|
-
isExpanded ? "bg-[var(--foreground)]/[0.02] shadow-sm" : "hover:bg-[var(--foreground)]/[0.02] hover:shadow-sm hover:-translate-y-0.5"
|
|
41254
|
-
),
|
|
41255
|
-
children: [
|
|
41256
|
-
/* @__PURE__ */ jsxs111(
|
|
41257
|
-
"button",
|
|
41258
|
-
{
|
|
41259
|
-
onClick: () => setExpandedStep(isExpanded ? null : step.id),
|
|
41260
|
-
className: "w-full text-left px-3 py-2.5 flex items-center gap-2 whitespace-normal",
|
|
41261
|
-
children: [
|
|
41262
|
-
/* @__PURE__ */ jsx153("div", { className: "flex-1 min-w-0", children: /* @__PURE__ */ jsx153("span", { className: "text-[13px] font-medium text-[var(--foreground)]", children: step.name }) }),
|
|
41263
|
-
/* @__PURE__ */ jsx153(
|
|
41264
|
-
"svg",
|
|
41265
|
-
{
|
|
41266
|
-
width: "12",
|
|
41267
|
-
height: "12",
|
|
41268
|
-
viewBox: "0 0 24 24",
|
|
41269
|
-
fill: "none",
|
|
41270
|
-
stroke: "currentColor",
|
|
41271
|
-
strokeWidth: "2",
|
|
41272
|
-
className: cn(
|
|
41273
|
-
"shrink-0 text-[var(--foreground)]/30 transition-transform",
|
|
41274
|
-
isExpanded && "rotate-180"
|
|
41275
|
-
),
|
|
41276
|
-
children: /* @__PURE__ */ jsx153("polyline", { points: "6 9 12 15 18 9" })
|
|
41277
|
-
}
|
|
41278
|
-
)
|
|
41279
|
-
]
|
|
41280
|
-
}
|
|
41281
|
-
),
|
|
41282
|
-
isExpanded && /* @__PURE__ */ jsxs111("div", { className: "px-3 pb-3 space-y-2.5", children: [
|
|
41283
|
-
step.description && /* @__PURE__ */ jsx153("p", { className: "text-xs text-[var(--foreground)]/50 leading-relaxed whitespace-normal", children: step.description }),
|
|
41284
|
-
step.sub_steps && step.sub_steps.length > 0 && /* @__PURE__ */ jsx153("div", { className: "space-y-1", children: step.sub_steps.map((sub) => /* @__PURE__ */ jsxs111(
|
|
41285
|
-
"div",
|
|
41286
|
-
{
|
|
41287
|
-
className: "flex items-start gap-2 text-xs",
|
|
41288
|
-
children: [
|
|
41289
|
-
/* @__PURE__ */ jsx153("span", { className: "shrink-0 mt-0.5 w-1.5 h-1.5 rounded-full bg-interactive/40" }),
|
|
41290
|
-
/* @__PURE__ */ jsx153("span", { className: "text-[var(--foreground)]/60", children: sub.action })
|
|
41291
|
-
]
|
|
41292
|
-
},
|
|
41293
|
-
sub.id
|
|
41294
|
-
)) }),
|
|
41295
|
-
step.tools && step.tools.length > 0 && /* @__PURE__ */ jsxs111("div", { className: "flex items-center gap-1.5 flex-wrap", children: [
|
|
41296
|
-
/* @__PURE__ */ jsx153("span", { className: "text-[10px] text-[var(--foreground)]/30 uppercase font-semibold tracking-wider", children: "Tools:" }),
|
|
41297
|
-
step.tools.map((tool) => /* @__PURE__ */ jsx153(
|
|
41298
|
-
"span",
|
|
41299
|
-
{
|
|
41300
|
-
className: "text-[10px] font-mono px-1.5 py-0.5 rounded bg-interactive/[0.08] text-interactive/70 border border-interactive/10",
|
|
41301
|
-
children: tool
|
|
41302
|
-
},
|
|
41303
|
-
tool
|
|
41304
|
-
))
|
|
41305
|
-
] }),
|
|
41306
|
-
step.on_failure && /* @__PURE__ */ jsxs111("div", { className: "flex items-start gap-2 text-xs bg-[var(--redBackground,_#ef4444)]/[0.06] border border-[var(--redText,_#ef4444)]/10 rounded-md px-2.5 py-2 whitespace-normal", children: [
|
|
41307
|
-
/* @__PURE__ */ jsx153("span", { className: "shrink-0 text-[10px] font-semibold text-[var(--redText,_#ef4444)]/70 uppercase tracking-wider mt-px", children: "On failure:" }),
|
|
41308
|
-
/* @__PURE__ */ jsx153("span", { className: "text-[var(--foreground)]/50", children: step.on_failure })
|
|
41309
|
-
] })
|
|
41310
|
-
] })
|
|
41311
|
-
]
|
|
41312
|
-
}
|
|
41313
|
-
)
|
|
41314
|
-
] }, step.id);
|
|
41315
|
-
}) })
|
|
41316
|
-
]
|
|
41317
|
-
}
|
|
41318
|
-
);
|
|
41319
|
-
};
|
|
41320
|
-
|
|
41321
|
-
// src/molecules/workstream-builder/InstructionPreview/InstructionPreview.tsx
|
|
41322
|
-
import { useState as useState22, useCallback as useCallback9 } from "react";
|
|
41323
|
-
import { jsx as jsx154, jsxs as jsxs112 } from "react/jsx-runtime";
|
|
41324
|
-
var FONT_STYLE5 = {
|
|
41325
|
-
fontFamily: "Inter, system-ui, sans-serif"
|
|
41326
|
-
};
|
|
41327
|
-
var InstructionPreview = ({
|
|
41328
|
-
agent_name,
|
|
41329
|
-
description,
|
|
41330
|
-
instruction,
|
|
41331
|
-
workflow_summary,
|
|
41332
|
-
tools,
|
|
41333
|
-
className
|
|
41334
|
-
}) => {
|
|
41335
|
-
const [isExpanded, setIsExpanded] = useState22(false);
|
|
41336
|
-
const [copied, setCopied] = useState22(false);
|
|
41337
|
-
const previewLength = 300;
|
|
41338
|
-
const isLong = instruction.length > previewLength;
|
|
41339
|
-
const displayText = isExpanded || !isLong ? instruction : instruction.slice(0, previewLength) + "...";
|
|
41340
|
-
const handleCopy = useCallback9(async () => {
|
|
41341
|
-
try {
|
|
41342
|
-
await navigator.clipboard.writeText(instruction);
|
|
41343
|
-
setCopied(true);
|
|
41344
|
-
setTimeout(() => setCopied(false), 2e3);
|
|
41345
|
-
} catch {
|
|
41346
|
-
const textarea = document.createElement("textarea");
|
|
41347
|
-
textarea.value = instruction;
|
|
41348
|
-
textarea.style.position = "fixed";
|
|
41349
|
-
textarea.style.opacity = "0";
|
|
41350
|
-
document.body.appendChild(textarea);
|
|
41351
|
-
textarea.select();
|
|
41352
|
-
document.execCommand("copy");
|
|
41353
|
-
document.body.removeChild(textarea);
|
|
41354
|
-
setCopied(true);
|
|
41355
|
-
setTimeout(() => setCopied(false), 2e3);
|
|
41356
|
-
}
|
|
41357
|
-
}, [instruction]);
|
|
41358
|
-
return /* @__PURE__ */ jsxs112(
|
|
41359
|
-
"div",
|
|
41360
|
-
{
|
|
41361
|
-
className: cn(
|
|
41362
|
-
"text-foreground hover:bg-muted/50 hover:text-foreground my-3 rounded-xl border border-[var(--border-color)] bg-[var(--card-background)] overflow-hidden shadow-sm",
|
|
41363
|
-
className
|
|
41364
|
-
),
|
|
41365
|
-
style: FONT_STYLE5,
|
|
41366
|
-
children: [
|
|
41367
|
-
/* @__PURE__ */ jsx154("div", { className: "px-4 py-3 border-b border-[var(--border-color)] bg-[var(--foreground)]/[0.03]", children: /* @__PURE__ */ jsxs112("div", { className: "flex items-center gap-2.5", children: [
|
|
41368
|
-
/* @__PURE__ */ jsx154("div", { className: "w-6 h-6 rounded-md bg-interactive/10 flex items-center justify-center", children: /* @__PURE__ */ jsxs112(
|
|
41369
|
-
"svg",
|
|
41370
|
-
{
|
|
41371
|
-
width: "14",
|
|
41372
|
-
height: "14",
|
|
41373
|
-
viewBox: "0 0 24 24",
|
|
41374
|
-
fill: "none",
|
|
41375
|
-
stroke: "currentColor",
|
|
41376
|
-
strokeWidth: "2",
|
|
41377
|
-
className: "text-interactive",
|
|
41378
|
-
strokeLinecap: "round",
|
|
41379
|
-
strokeLinejoin: "round",
|
|
41380
|
-
children: [
|
|
41381
|
-
/* @__PURE__ */ jsx154("path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }),
|
|
41382
|
-
/* @__PURE__ */ jsx154("polyline", { points: "14 2 14 8 20 8" }),
|
|
41383
|
-
/* @__PURE__ */ jsx154("line", { x1: "16", y1: "13", x2: "8", y2: "13" }),
|
|
41384
|
-
/* @__PURE__ */ jsx154("line", { x1: "16", y1: "17", x2: "8", y2: "17" }),
|
|
41385
|
-
/* @__PURE__ */ jsx154("polyline", { points: "10 9 9 9 8 9" })
|
|
41386
|
-
]
|
|
41387
|
-
}
|
|
41388
|
-
) }),
|
|
41389
|
-
/* @__PURE__ */ jsxs112("div", { className: "flex-1 min-w-0", children: [
|
|
41390
|
-
/* @__PURE__ */ jsx154("h4", { className: "text-sm font-semibold text-[var(--foreground)]", children: agent_name }),
|
|
41391
|
-
description && /* @__PURE__ */ jsx154("p", { className: "text-[11px] text-[var(--foreground)]/40 mt-0.5 whitespace-normal", children: description })
|
|
41392
|
-
] })
|
|
41393
|
-
] }) }),
|
|
41394
|
-
/* @__PURE__ */ jsxs112("div", { className: "px-4 py-3 space-y-3", children: [
|
|
41395
|
-
/* @__PURE__ */ jsxs112("div", { children: [
|
|
41396
|
-
/* @__PURE__ */ jsxs112("div", { className: "flex items-center justify-between mb-1.5", children: [
|
|
41397
|
-
/* @__PURE__ */ jsx154("p", { className: "text-[10px] font-semibold text-[var(--foreground)]/30 uppercase tracking-wider", children: "Instruction" }),
|
|
41398
|
-
/* @__PURE__ */ jsx154(
|
|
41399
|
-
"button",
|
|
41400
|
-
{
|
|
41401
|
-
onClick: handleCopy,
|
|
41402
|
-
className: "text-[10px] px-2 py-0.5 rounded-md text-interactive hover:bg-interactive/10 transition-colors font-medium",
|
|
41403
|
-
children: copied ? "Copied!" : "Copy"
|
|
41404
|
-
}
|
|
41405
|
-
)
|
|
41406
|
-
] }),
|
|
41407
|
-
/* @__PURE__ */ jsx154("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 }),
|
|
41408
|
-
isLong && /* @__PURE__ */ jsxs112(
|
|
41409
|
-
"button",
|
|
41410
|
-
{
|
|
41411
|
-
onClick: () => setIsExpanded(!isExpanded),
|
|
41412
|
-
className: "inline-flex items-center gap-1 text-[11px] text-interactive hover:underline mt-1",
|
|
41413
|
-
children: [
|
|
41414
|
-
/* @__PURE__ */ jsx154(
|
|
41415
|
-
"svg",
|
|
41416
|
-
{
|
|
41417
|
-
width: "12",
|
|
41418
|
-
height: "12",
|
|
41419
|
-
viewBox: "0 0 24 24",
|
|
41420
|
-
fill: "none",
|
|
41421
|
-
stroke: "currentColor",
|
|
41422
|
-
strokeWidth: "2",
|
|
41423
|
-
className: cn("transition-transform", isExpanded && "rotate-180"),
|
|
41424
|
-
children: /* @__PURE__ */ jsx154("polyline", { points: "6 9 12 15 18 9" })
|
|
41425
|
-
}
|
|
41426
|
-
),
|
|
41427
|
-
isExpanded ? "Show less" : "Show full instruction"
|
|
41428
|
-
]
|
|
41429
|
-
}
|
|
41430
|
-
)
|
|
41431
|
-
] }),
|
|
41432
|
-
workflow_summary && workflow_summary.length > 0 && /* @__PURE__ */ jsxs112("div", { children: [
|
|
41433
|
-
/* @__PURE__ */ jsx154("p", { className: "text-[10px] font-semibold text-[var(--foreground)]/30 uppercase tracking-wider mb-1.5", children: "Workflow" }),
|
|
41434
|
-
/* @__PURE__ */ jsx154("div", { className: "space-y-1", children: workflow_summary.map((step, idx) => /* @__PURE__ */ jsxs112("div", { className: "flex items-start gap-2 text-xs", children: [
|
|
41435
|
-
/* @__PURE__ */ jsx154("span", { className: "shrink-0 w-5 h-5 rounded-full bg-interactive/10 flex items-center justify-center text-[10px] font-bold text-interactive", children: idx + 1 }),
|
|
41436
|
-
/* @__PURE__ */ jsx154("span", { className: "text-[var(--foreground)]/50 mt-0.5", children: step })
|
|
41437
|
-
] }, idx)) })
|
|
41438
|
-
] }),
|
|
41439
|
-
tools && tools.length > 0 && /* @__PURE__ */ jsxs112("div", { children: [
|
|
41440
|
-
/* @__PURE__ */ jsx154("p", { className: "text-[10px] font-semibold text-[var(--foreground)]/30 uppercase tracking-wider mb-1.5", children: "Tools" }),
|
|
41441
|
-
/* @__PURE__ */ jsx154("div", { className: "flex flex-wrap gap-1.5", children: tools.map((tool) => /* @__PURE__ */ jsx154(
|
|
41442
|
-
"span",
|
|
41443
|
-
{
|
|
41444
|
-
className: "text-[10px] font-mono px-2 py-0.5 rounded bg-interactive/[0.08] text-interactive/70 border border-interactive/10",
|
|
41445
|
-
children: tool
|
|
41446
|
-
},
|
|
41447
|
-
tool
|
|
41448
|
-
)) })
|
|
41449
|
-
] })
|
|
41450
|
-
] })
|
|
41451
|
-
]
|
|
41452
|
-
}
|
|
41453
|
-
);
|
|
41454
|
-
};
|
|
41455
|
-
|
|
41456
|
-
// src/molecules/workstream-builder/UIComponentSelector/UIComponentSelector.tsx
|
|
41457
|
-
import { useState as useState23 } from "react";
|
|
41458
|
-
import { jsx as jsx155, jsxs as jsxs113 } from "react/jsx-runtime";
|
|
41459
|
-
var FONT_STYLE6 = {
|
|
41460
|
-
fontFamily: "Inter, system-ui, sans-serif"
|
|
41461
|
-
};
|
|
41462
|
-
function UIComponentSelector({
|
|
41463
|
-
components,
|
|
41464
|
-
onSelect,
|
|
41465
|
-
onPreview,
|
|
41466
|
-
className,
|
|
41467
|
-
isLatestMessage = true
|
|
41468
|
-
}) {
|
|
41469
|
-
const [selected, setSelected] = useState23(() => {
|
|
41470
|
-
const recommended = components.filter((c) => c.recommended).map((c) => c.name);
|
|
41471
|
-
return new Set(recommended);
|
|
41472
|
-
});
|
|
41473
|
-
const [submitted, setSubmitted] = useState23(false);
|
|
41474
|
-
const grouped = components.reduce(
|
|
41475
|
-
(acc, comp) => {
|
|
41476
|
-
const cat = comp.category || "Other";
|
|
41477
|
-
if (!acc[cat]) acc[cat] = [];
|
|
41478
|
-
acc[cat].push(comp);
|
|
41479
|
-
return acc;
|
|
41480
|
-
},
|
|
41481
|
-
{}
|
|
41482
|
-
);
|
|
41483
|
-
const toggle = (name) => {
|
|
41484
|
-
if (submitted || !isLatestMessage) return;
|
|
41485
|
-
setSelected((prev) => {
|
|
41486
|
-
const next = new Set(prev);
|
|
41487
|
-
if (next.has(name)) next.delete(name);
|
|
41488
|
-
else next.add(name);
|
|
41489
|
-
return next;
|
|
41490
|
-
});
|
|
41491
|
-
};
|
|
41492
|
-
const handleContinue = () => {
|
|
41493
|
-
setSubmitted(true);
|
|
41494
|
-
onSelect?.(Array.from(selected));
|
|
41495
|
-
};
|
|
41496
|
-
const categoryOrder = Object.keys(grouped).sort();
|
|
41497
|
-
return /* @__PURE__ */ jsxs113(
|
|
41498
|
-
"div",
|
|
41499
|
-
{
|
|
41500
|
-
className: cn(
|
|
41501
|
-
"my-3 rounded-xl border border-border bg-card overflow-hidden shadow-sm",
|
|
41502
|
-
className
|
|
41503
|
-
),
|
|
41504
|
-
style: FONT_STYLE6,
|
|
41505
|
-
children: [
|
|
41506
|
-
/* @__PURE__ */ jsx155("div", { className: "px-4 py-3 border-b border-border/60 bg-muted/40", children: /* @__PURE__ */ jsxs113("div", { className: "flex items-center gap-2", children: [
|
|
41507
|
-
/* @__PURE__ */ jsx155("div", { className: "w-5 h-5 rounded-md bg-interactive/15 flex items-center justify-center", children: /* @__PURE__ */ jsxs113(
|
|
41508
|
-
"svg",
|
|
41509
|
-
{
|
|
41510
|
-
width: "12",
|
|
41511
|
-
height: "12",
|
|
41512
|
-
viewBox: "0 0 24 24",
|
|
41513
|
-
fill: "none",
|
|
41514
|
-
stroke: "currentColor",
|
|
41515
|
-
strokeWidth: "2",
|
|
41516
|
-
className: "text-interactive",
|
|
41517
|
-
children: [
|
|
41518
|
-
/* @__PURE__ */ jsx155("rect", { x: "3", y: "3", width: "7", height: "7" }),
|
|
41519
|
-
/* @__PURE__ */ jsx155("rect", { x: "14", y: "3", width: "7", height: "7" }),
|
|
41520
|
-
/* @__PURE__ */ jsx155("rect", { x: "3", y: "14", width: "7", height: "7" }),
|
|
41521
|
-
/* @__PURE__ */ jsx155("rect", { x: "14", y: "14", width: "7", height: "7" })
|
|
41522
|
-
]
|
|
41523
|
-
}
|
|
41524
|
-
) }),
|
|
41525
|
-
/* @__PURE__ */ jsxs113("div", { children: [
|
|
41526
|
-
/* @__PURE__ */ jsx155("h3", { className: "text-xs font-semibold text-foreground", children: "Select UI Components" }),
|
|
41527
|
-
/* @__PURE__ */ jsx155("p", { className: "text-[10px] text-muted-foreground mt-0.5", children: "Choose which visual components this agent can use in its responses." })
|
|
41528
|
-
] })
|
|
41529
|
-
] }) }),
|
|
41530
|
-
/* @__PURE__ */ jsx155("div", { className: "px-4 py-3 space-y-4", children: categoryOrder.map((category) => /* @__PURE__ */ jsxs113("div", { children: [
|
|
41531
|
-
/* @__PURE__ */ jsx155("h4", { className: "text-[10px] font-semibold text-muted-foreground uppercase tracking-wider mb-2", children: category }),
|
|
41532
|
-
/* @__PURE__ */ jsx155("div", { className: "space-y-1.5", children: grouped[category].map((comp) => /* @__PURE__ */ jsxs113(
|
|
41533
|
-
"label",
|
|
41534
|
-
{
|
|
41535
|
-
className: cn(
|
|
41536
|
-
"flex items-start gap-3 px-3 py-2 rounded-lg cursor-pointer transition-all",
|
|
41537
|
-
submitted || !isLatestMessage ? "cursor-default opacity-60" : "hover:bg-muted/80",
|
|
41538
|
-
selected.has(comp.name) && !submitted && "bg-interactive/5 border border-interactive/20",
|
|
41539
|
-
selected.has(comp.name) && submitted && "bg-interactive/5"
|
|
41540
|
-
),
|
|
41541
|
-
children: [
|
|
41542
|
-
/* @__PURE__ */ jsx155(
|
|
41543
|
-
"div",
|
|
41544
|
-
{
|
|
41545
|
-
className: cn(
|
|
41546
|
-
"mt-0.5 w-4 h-4 rounded border flex items-center justify-center shrink-0 transition-colors",
|
|
41547
|
-
selected.has(comp.name) ? "bg-interactive border-interactive" : "border-muted-foreground/30"
|
|
41548
|
-
),
|
|
41549
|
-
onClick: (e) => {
|
|
41550
|
-
e.preventDefault();
|
|
41551
|
-
toggle(comp.name);
|
|
41552
|
-
},
|
|
41553
|
-
children: selected.has(comp.name) && /* @__PURE__ */ jsx155(
|
|
41554
|
-
"svg",
|
|
41555
|
-
{
|
|
41556
|
-
width: "10",
|
|
41557
|
-
height: "10",
|
|
41558
|
-
viewBox: "0 0 24 24",
|
|
41559
|
-
fill: "none",
|
|
41560
|
-
stroke: "white",
|
|
41561
|
-
strokeWidth: "3",
|
|
41562
|
-
children: /* @__PURE__ */ jsx155("polyline", { points: "20 6 9 17 4 12" })
|
|
41563
|
-
}
|
|
41564
|
-
)
|
|
41565
|
-
}
|
|
41566
|
-
),
|
|
41567
|
-
/* @__PURE__ */ jsx155(
|
|
41568
|
-
"input",
|
|
41569
|
-
{
|
|
41570
|
-
type: "checkbox",
|
|
41571
|
-
checked: selected.has(comp.name),
|
|
41572
|
-
onChange: () => toggle(comp.name),
|
|
41573
|
-
disabled: submitted || !isLatestMessage,
|
|
41574
|
-
className: "sr-only"
|
|
41575
|
-
}
|
|
41576
|
-
),
|
|
41577
|
-
/* @__PURE__ */ jsxs113("div", { className: "flex-1 min-w-0", children: [
|
|
41578
|
-
/* @__PURE__ */ jsxs113("div", { className: "flex items-center gap-1", children: [
|
|
41579
|
-
/* @__PURE__ */ jsx155("span", { className: "text-sm font-medium text-foreground", children: comp.display_name }),
|
|
41580
|
-
comp.recommended && /* @__PURE__ */ jsx155("span", { className: "px-1.5 py-0.5 text-[9px] font-semibold uppercase tracking-wider rounded-full bg-emerald-500/10 text-emerald-600 border border-emerald-500/20", children: "Recommended" }),
|
|
41581
|
-
onPreview && /* @__PURE__ */ jsx155(
|
|
41582
|
-
"button",
|
|
41583
|
-
{
|
|
41584
|
-
type: "button",
|
|
41585
|
-
onClick: (e) => {
|
|
41586
|
-
e.preventDefault();
|
|
41587
|
-
e.stopPropagation();
|
|
41588
|
-
onPreview(comp.name);
|
|
41589
|
-
},
|
|
41590
|
-
className: "shrink-0 p-0.5 rounded hover:bg-muted transition-colors",
|
|
41591
|
-
title: `Preview ${comp.display_name}`,
|
|
41592
|
-
children: /* @__PURE__ */ jsxs113(
|
|
41593
|
-
"svg",
|
|
41594
|
-
{
|
|
41595
|
-
width: "14",
|
|
41596
|
-
height: "14",
|
|
41597
|
-
viewBox: "0 0 24 24",
|
|
41598
|
-
fill: "none",
|
|
41599
|
-
stroke: "currentColor",
|
|
41600
|
-
strokeWidth: "2",
|
|
41601
|
-
strokeLinecap: "round",
|
|
41602
|
-
strokeLinejoin: "round",
|
|
41603
|
-
className: "text-muted-foreground hover:text-interactive",
|
|
41604
|
-
children: [
|
|
41605
|
-
/* @__PURE__ */ jsx155("circle", { cx: "12", cy: "12", r: "10" }),
|
|
41606
|
-
/* @__PURE__ */ jsx155("line", { x1: "12", y1: "16", x2: "12", y2: "12" }),
|
|
41607
|
-
/* @__PURE__ */ jsx155("line", { x1: "12", y1: "8", x2: "12.01", y2: "8" })
|
|
41608
|
-
]
|
|
41609
|
-
}
|
|
41610
|
-
)
|
|
41611
|
-
}
|
|
41612
|
-
)
|
|
41613
|
-
] }),
|
|
41614
|
-
/* @__PURE__ */ jsx155("span", { className: "ml-0 text-xs text-muted-foreground", children: comp.description })
|
|
41615
|
-
] })
|
|
41616
|
-
]
|
|
41617
|
-
},
|
|
41618
|
-
comp.name
|
|
41619
|
-
)) })
|
|
41620
|
-
] }, category)) }),
|
|
41621
|
-
!submitted && isLatestMessage && /* @__PURE__ */ jsxs113("div", { className: "px-4 py-3 border-t border-border/60 flex items-center justify-between bg-muted/30", children: [
|
|
41622
|
-
/* @__PURE__ */ jsxs113("span", { className: "text-xs text-muted-foreground", children: [
|
|
41623
|
-
selected.size,
|
|
41624
|
-
" selected"
|
|
41625
|
-
] }),
|
|
41626
|
-
/* @__PURE__ */ jsx155(
|
|
41627
|
-
"button",
|
|
41628
|
-
{
|
|
41629
|
-
onClick: handleContinue,
|
|
41630
|
-
className: "px-4 py-1.5 text-sm font-medium rounded-lg bg-interactive text-white hover:bg-interactive/90 transition-colors",
|
|
41631
|
-
children: "Continue"
|
|
41632
|
-
}
|
|
41633
|
-
)
|
|
41634
|
-
] }),
|
|
41635
|
-
submitted && /* @__PURE__ */ jsx155("div", { className: "px-4 pb-3", children: /* @__PURE__ */ jsx155("div", { className: "text-[10px] text-emerald-600 font-medium text-center py-1.5", children: "Selections confirmed" }) })
|
|
41636
|
-
]
|
|
41637
|
-
}
|
|
41638
|
-
);
|
|
41639
|
-
}
|
|
41640
|
-
|
|
41641
|
-
// src/molecules/workstream-builder/MultiAgentCard/MultiAgentCard.tsx
|
|
41642
|
-
import { jsx as jsx156, jsxs as jsxs114 } from "react/jsx-runtime";
|
|
41643
|
-
var FONT_STYLE7 = {
|
|
41644
|
-
fontFamily: "Inter, system-ui, sans-serif"
|
|
41645
|
-
};
|
|
41646
|
-
var MultiAgentCard = ({
|
|
41647
|
-
name,
|
|
41648
|
-
display_name,
|
|
41649
|
-
description,
|
|
41650
|
-
stages = [],
|
|
41651
|
-
enabled = true,
|
|
41652
|
-
className
|
|
41653
|
-
}) => {
|
|
41654
|
-
const avatarUrl = `https://api.dicebear.com/7.x/avataaars/svg?seed=${name}`;
|
|
41655
|
-
return /* @__PURE__ */ jsxs114(
|
|
41656
|
-
"div",
|
|
41657
|
-
{
|
|
41658
|
-
className: cn(
|
|
41659
|
-
"text-foreground hover:bg-muted/50 hover:text-foreground my-3 rounded-xl border border-[var(--border-color)] bg-[var(--card-background)] overflow-hidden shadow-sm",
|
|
41660
|
-
className
|
|
41661
|
-
),
|
|
41662
|
-
style: FONT_STYLE7,
|
|
41663
|
-
children: [
|
|
41664
|
-
/* @__PURE__ */ jsxs114("div", { className: "flex items-start gap-4 px-5 py-4 bg-gradient-to-r from-[var(--foreground)]/[0.02] to-transparent", children: [
|
|
41665
|
-
/* @__PURE__ */ jsx156("div", { className: "h-12 w-12 shrink-0 rounded-full border-2 border-interactive/20 overflow-hidden bg-interactive/10 flex items-center justify-center", children: /* @__PURE__ */ jsx156("img", { src: avatarUrl, alt: display_name, className: "h-full w-full" }) }),
|
|
41666
|
-
/* @__PURE__ */ jsxs114("div", { className: "flex-1 min-w-0", children: [
|
|
41667
|
-
/* @__PURE__ */ jsxs114("div", { className: "flex items-center gap-2", children: [
|
|
41668
|
-
/* @__PURE__ */ jsx156("h4", { className: "text-sm font-semibold text-[var(--foreground)] truncate", children: display_name }),
|
|
41669
|
-
/* @__PURE__ */ jsx156("span", { className: "text-[11px] font-mono text-[var(--foreground)]/40 bg-[var(--foreground)]/[0.05] px-1.5 py-0.5 rounded", children: name }),
|
|
41670
|
-
/* @__PURE__ */ jsx156("span", { className: "text-[10px] px-2 py-0.5 rounded-full font-medium bg-interactive/10 text-interactive", children: "Multi-Agent" }),
|
|
41671
|
-
/* @__PURE__ */ jsxs114(
|
|
41672
|
-
"span",
|
|
41673
|
-
{
|
|
41674
|
-
className: cn(
|
|
41675
|
-
"inline-flex items-center gap-1 text-[10px] px-2 py-0.5 rounded-full font-medium",
|
|
41676
|
-
enabled ? "bg-emerald-500/10 text-emerald-600" : "bg-red-500/10 text-red-500"
|
|
41677
|
-
),
|
|
41678
|
-
children: [
|
|
41679
|
-
/* @__PURE__ */ jsx156("span", { className: cn(
|
|
41680
|
-
"w-1.5 h-1.5 rounded-full",
|
|
41681
|
-
enabled ? "bg-emerald-500" : "bg-red-500"
|
|
41682
|
-
) }),
|
|
41683
|
-
enabled ? "Active" : "Disabled"
|
|
41684
|
-
]
|
|
41685
|
-
}
|
|
41686
|
-
)
|
|
41687
|
-
] }),
|
|
41688
|
-
/* @__PURE__ */ jsx156("p", { className: "text-xs text-[var(--foreground)]/60 leading-relaxed mt-1 whitespace-normal", style: { textWrap: "auto" }, children: description })
|
|
41689
|
-
] })
|
|
41690
|
-
] }),
|
|
41691
|
-
stages.length > 0 && /* @__PURE__ */ jsxs114("div", { className: "border-t border-[var(--border-color)] px-5 py-4", children: [
|
|
41692
|
-
/* @__PURE__ */ jsxs114("p", { className: "text-[11px] font-semibold text-[var(--foreground)]/40 uppercase tracking-wide mb-3", children: [
|
|
41693
|
-
"Stages (",
|
|
41694
|
-
stages.length,
|
|
41695
|
-
")"
|
|
41696
|
-
] }),
|
|
41697
|
-
/* @__PURE__ */ jsx156("div", { className: "flex flex-col gap-0", children: stages.map((stage, idx) => /* @__PURE__ */ jsxs114("div", { className: "flex items-stretch", children: [
|
|
41698
|
-
/* @__PURE__ */ jsxs114("div", { className: "flex flex-col items-center mr-3 w-5", children: [
|
|
41699
|
-
/* @__PURE__ */ jsx156(
|
|
41700
|
-
"div",
|
|
41701
|
-
{
|
|
41702
|
-
className: cn(
|
|
41703
|
-
"w-5 h-5 rounded-full flex items-center justify-center text-[10px] font-bold shrink-0",
|
|
41704
|
-
"bg-interactive/10 text-interactive border border-interactive/30"
|
|
41705
|
-
),
|
|
41706
|
-
children: idx + 1
|
|
41707
|
-
}
|
|
41708
|
-
),
|
|
41709
|
-
idx < stages.length - 1 && /* @__PURE__ */ jsx156("div", { className: "w-px flex-1 min-h-[16px] border-l border-dashed border-interactive/30" })
|
|
41710
|
-
] }),
|
|
41711
|
-
/* @__PURE__ */ jsxs114("div", { className: "flex-1 mb-2 p-3 rounded-lg border border-[var(--border-color)] bg-[var(--foreground)]/[0.02]", children: [
|
|
41712
|
-
/* @__PURE__ */ jsxs114("div", { className: "flex items-center gap-2", children: [
|
|
41713
|
-
/* @__PURE__ */ jsx156("span", { className: "text-xs font-semibold text-[var(--foreground)]", children: stage.name }),
|
|
41714
|
-
/* @__PURE__ */ jsx156("span", { className: "text-[10px] font-mono text-[var(--foreground)]/30 bg-[var(--foreground)]/[0.04] px-1.5 py-0.5 rounded", children: stage.agent_name })
|
|
41715
|
-
] }),
|
|
41716
|
-
/* @__PURE__ */ jsxs114("div", { className: "flex items-center gap-3 mt-1.5 text-[10px] text-[var(--foreground)]/50", children: [
|
|
41717
|
-
stage.tools && stage.tools.length > 0 && /* @__PURE__ */ jsxs114("span", { children: [
|
|
41718
|
-
stage.tools.length,
|
|
41719
|
-
" tool",
|
|
41720
|
-
stage.tools.length !== 1 ? "s" : ""
|
|
41721
|
-
] }),
|
|
41722
|
-
stage.ui_components && stage.ui_components.length > 0 && /* @__PURE__ */ jsxs114("span", { children: [
|
|
41723
|
-
stage.ui_components.length,
|
|
41724
|
-
" component",
|
|
41725
|
-
stage.ui_components.length !== 1 ? "s" : ""
|
|
41726
|
-
] })
|
|
41727
|
-
] })
|
|
41728
|
-
] })
|
|
41729
|
-
] }, stage.agent_name || idx)) })
|
|
41730
|
-
] })
|
|
41731
|
-
]
|
|
41732
|
-
}
|
|
41733
|
-
);
|
|
41734
|
-
};
|
|
41735
|
-
|
|
41736
|
-
// src/molecules/workstream-builder/MultiAgentPlan/MultiAgentPlan.tsx
|
|
41737
|
-
import { jsx as jsx157, jsxs as jsxs115 } from "react/jsx-runtime";
|
|
41738
|
-
var FONT_STYLE8 = {
|
|
41739
|
-
fontFamily: "Inter, system-ui, sans-serif"
|
|
41740
|
-
};
|
|
41741
|
-
var MultiAgentPlan = ({
|
|
41742
|
-
stages = [],
|
|
41743
|
-
className
|
|
41744
|
-
}) => {
|
|
41745
|
-
return /* @__PURE__ */ jsxs115(
|
|
41746
|
-
"div",
|
|
41747
|
-
{
|
|
41748
|
-
className: cn(
|
|
41749
|
-
"text-foreground hover:bg-muted/50 hover:text-foreground my-3 rounded-xl border border-[var(--border-color)] bg-[var(--card-background)] overflow-hidden shadow-sm",
|
|
41750
|
-
className
|
|
41751
|
-
),
|
|
41752
|
-
style: FONT_STYLE8,
|
|
41753
|
-
children: [
|
|
41754
|
-
/* @__PURE__ */ jsx157("div", { className: "px-4 py-3 border-b border-[var(--border-color)] bg-gradient-to-r from-[var(--foreground)]/[0.02] to-transparent", children: /* @__PURE__ */ jsxs115("div", { className: "flex items-center gap-2", children: [
|
|
41755
|
-
/* @__PURE__ */ jsx157("div", { className: "w-4 h-4 rounded bg-violet-500/20 flex items-center justify-center", children: /* @__PURE__ */ jsx157(
|
|
41756
|
-
"svg",
|
|
41757
|
-
{
|
|
41758
|
-
width: "10",
|
|
41759
|
-
height: "10",
|
|
41760
|
-
viewBox: "0 0 24 24",
|
|
41761
|
-
fill: "none",
|
|
41762
|
-
stroke: "currentColor",
|
|
41763
|
-
strokeWidth: "2",
|
|
41764
|
-
className: "text-violet-600",
|
|
41765
|
-
children: /* @__PURE__ */ jsx157("path", { d: "M16 3h5v5M4 20L21 3M21 16v5h-5M15 15l6 6M4 4l5 5" })
|
|
41766
|
-
}
|
|
41767
|
-
) }),
|
|
41768
|
-
/* @__PURE__ */ jsx157("span", { className: "text-xs font-semibold text-[var(--foreground)]", children: "Proposed Multi-Agent Workflow" }),
|
|
41769
|
-
/* @__PURE__ */ jsx157("span", { className: "text-[10px] px-1.5 py-0.5 rounded-full bg-amber-500/10 text-amber-600 font-medium", children: "Draft" })
|
|
41770
|
-
] }) }),
|
|
41771
|
-
/* @__PURE__ */ jsx157("div", { className: "px-4 py-3", children: /* @__PURE__ */ jsx157("div", { className: "flex flex-col gap-0", children: stages.map((stage, idx) => /* @__PURE__ */ jsxs115("div", { className: "flex items-stretch min-w-0", children: [
|
|
41772
|
-
/* @__PURE__ */ jsxs115("div", { className: "flex flex-col items-center mr-3 w-6", children: [
|
|
41773
|
-
/* @__PURE__ */ jsx157("div", { className: "w-6 h-6 rounded-full flex items-center justify-center text-[10px] font-bold shrink-0 bg-interactive/10 text-interactive border border-interactive/30", children: idx + 1 }),
|
|
41774
|
-
idx < stages.length - 1 && /* @__PURE__ */ jsx157("div", { className: "w-px flex-1 min-h-[12px] border-l border-dashed border-interactive/30" })
|
|
41775
|
-
] }),
|
|
41776
|
-
/* @__PURE__ */ jsxs115("div", { className: "flex-1 mb-2 pb-2 min-w-0", children: [
|
|
41777
|
-
/* @__PURE__ */ jsx157("p", { className: "text-xs font-semibold text-foreground", children: stage.name }),
|
|
41778
|
-
stage.description && /* @__PURE__ */ jsx157(
|
|
41779
|
-
"p",
|
|
41780
|
-
{
|
|
41781
|
-
className: "text-[11px] text-foreground/50 mt-0.5 whitespace-normal",
|
|
41782
|
-
style: { textWrap: "auto" },
|
|
41783
|
-
children: stage.description
|
|
41784
|
-
}
|
|
41785
|
-
),
|
|
41786
|
-
stage.proposed_tools && stage.proposed_tools.length > 0 && /* @__PURE__ */ jsx157("div", { className: "flex flex-wrap gap-1 mt-1.5", children: stage.proposed_tools.map((tool) => /* @__PURE__ */ jsx157(
|
|
41787
|
-
"span",
|
|
41788
|
-
{
|
|
41789
|
-
className: "text-[10px] px-1.5 py-0.5 rounded bg-interactive/10 text-interactive font-mono",
|
|
41790
|
-
children: tool
|
|
41791
|
-
},
|
|
41792
|
-
tool
|
|
41793
|
-
)) })
|
|
41794
|
-
] })
|
|
41795
|
-
] }, stage.name || idx)) }) })
|
|
41796
|
-
]
|
|
41797
|
-
}
|
|
41798
|
-
);
|
|
41799
|
-
};
|
|
41800
|
-
|
|
41801
|
-
// src/molecules/workstream-builder/MultiAgentUISelector/MultiAgentUISelector.tsx
|
|
41802
|
-
import { useState as useState24, useCallback as useCallback10 } from "react";
|
|
41803
|
-
import { jsx as jsx158, jsxs as jsxs116 } from "react/jsx-runtime";
|
|
41804
|
-
var FONT_STYLE9 = {
|
|
41805
|
-
fontFamily: "Inter, system-ui, sans-serif"
|
|
41806
|
-
};
|
|
41807
|
-
var MultiAgentUISelector = ({
|
|
41808
|
-
stages = [],
|
|
41809
|
-
components = [],
|
|
41810
|
-
onSelect,
|
|
41811
|
-
onPreview,
|
|
41812
|
-
className,
|
|
41813
|
-
isLatestMessage = true
|
|
41814
|
-
}) => {
|
|
41815
|
-
const [activeStageId, setActiveStageId] = useState24(stages[0]?.id || "");
|
|
41816
|
-
const [selections, setSelections] = useState24(
|
|
41817
|
-
() => {
|
|
41818
|
-
const init = {};
|
|
41819
|
-
const recommendedNames = components.filter((c) => c.recommended).map((c) => c.name);
|
|
41820
|
-
for (const stage of stages) {
|
|
41821
|
-
const stageRecs = stage.recommended_components?.length ? stage.recommended_components : recommendedNames;
|
|
41822
|
-
init[stage.id] = new Set(stageRecs);
|
|
41823
|
-
}
|
|
41824
|
-
return init;
|
|
41825
|
-
}
|
|
41826
|
-
);
|
|
41827
|
-
const [submitted, setSubmitted] = useState24(false);
|
|
41828
|
-
const grouped = components.reduce((acc, comp) => {
|
|
41829
|
-
const cat = comp.category || "Other";
|
|
41830
|
-
if (!acc[cat]) acc[cat] = [];
|
|
41831
|
-
acc[cat].push(comp);
|
|
41832
|
-
return acc;
|
|
41833
|
-
}, {});
|
|
41834
|
-
const toggleComponent = useCallback10(
|
|
41835
|
-
(stageId, compName) => {
|
|
41836
|
-
if (submitted || !isLatestMessage) return;
|
|
41837
|
-
setSelections((prev) => {
|
|
41838
|
-
const updated = { ...prev };
|
|
41839
|
-
const set = new Set(updated[stageId] || []);
|
|
41840
|
-
if (set.has(compName)) {
|
|
41841
|
-
set.delete(compName);
|
|
41842
|
-
} else {
|
|
41843
|
-
set.add(compName);
|
|
41844
|
-
}
|
|
41845
|
-
updated[stageId] = set;
|
|
41846
|
-
return updated;
|
|
41847
|
-
});
|
|
41848
|
-
},
|
|
41849
|
-
[submitted]
|
|
41850
|
-
);
|
|
41851
|
-
const selectAll = useCallback10(
|
|
41852
|
-
(stageId) => {
|
|
41853
|
-
if (submitted || !isLatestMessage) return;
|
|
41854
|
-
setSelections((prev) => {
|
|
41855
|
-
const updated = { ...prev };
|
|
41856
|
-
updated[stageId] = new Set(components.map((c) => c.name));
|
|
41857
|
-
return updated;
|
|
41858
|
-
});
|
|
41859
|
-
},
|
|
41860
|
-
[submitted, isLatestMessage, components]
|
|
41861
|
-
);
|
|
41862
|
-
const clearAll = useCallback10(
|
|
41863
|
-
(stageId) => {
|
|
41864
|
-
if (submitted || !isLatestMessage) return;
|
|
41865
|
-
setSelections((prev) => {
|
|
41866
|
-
const updated = { ...prev };
|
|
41867
|
-
updated[stageId] = /* @__PURE__ */ new Set();
|
|
41868
|
-
return updated;
|
|
41869
|
-
});
|
|
41870
|
-
},
|
|
41871
|
-
[submitted, isLatestMessage]
|
|
41872
|
-
);
|
|
41873
|
-
const handleContinue = useCallback10(() => {
|
|
41874
|
-
setSubmitted(true);
|
|
41875
|
-
if (onSelect) {
|
|
41876
|
-
const result = {};
|
|
41877
|
-
for (const [stageId, set] of Object.entries(selections)) {
|
|
41878
|
-
result[stageId] = Array.from(set);
|
|
41879
|
-
}
|
|
41880
|
-
onSelect(result);
|
|
41881
|
-
}
|
|
41882
|
-
}, [onSelect, selections]);
|
|
41883
|
-
const activeStage = stages.find((s) => s.id === activeStageId);
|
|
41884
|
-
return /* @__PURE__ */ jsxs116(
|
|
41885
|
-
"div",
|
|
41886
|
-
{
|
|
41887
|
-
className: cn(
|
|
41888
|
-
"my-3 rounded-xl border border-border bg-card overflow-hidden shadow-sm",
|
|
41889
|
-
className
|
|
41890
|
-
),
|
|
41891
|
-
style: FONT_STYLE9,
|
|
41892
|
-
children: [
|
|
41893
|
-
/* @__PURE__ */ jsx158("div", { className: "px-4 py-3 border-b border-border/60 bg-muted/40", children: /* @__PURE__ */ jsxs116("div", { className: "flex items-center gap-2", children: [
|
|
41894
|
-
/* @__PURE__ */ jsx158("div", { className: "w-5 h-5 rounded-md bg-interactive/15 flex items-center justify-center", children: /* @__PURE__ */ jsxs116(
|
|
41895
|
-
"svg",
|
|
41896
|
-
{
|
|
41897
|
-
width: "12",
|
|
41898
|
-
height: "12",
|
|
41899
|
-
viewBox: "0 0 24 24",
|
|
41900
|
-
fill: "none",
|
|
41901
|
-
stroke: "currentColor",
|
|
41902
|
-
strokeWidth: "2",
|
|
41903
|
-
className: "text-interactive",
|
|
41904
|
-
children: [
|
|
41905
|
-
/* @__PURE__ */ jsx158("rect", { x: "3", y: "3", width: "7", height: "7" }),
|
|
41906
|
-
/* @__PURE__ */ jsx158("rect", { x: "14", y: "3", width: "7", height: "7" }),
|
|
41907
|
-
/* @__PURE__ */ jsx158("rect", { x: "3", y: "14", width: "7", height: "7" }),
|
|
41908
|
-
/* @__PURE__ */ jsx158("rect", { x: "14", y: "14", width: "7", height: "7" })
|
|
41909
|
-
]
|
|
41910
|
-
}
|
|
41911
|
-
) }),
|
|
41912
|
-
/* @__PURE__ */ jsx158("span", { className: "text-xs font-semibold text-foreground", children: "UI Components per Stage" })
|
|
41913
|
-
] }) }),
|
|
41914
|
-
/* @__PURE__ */ jsx158("div", { className: "flex gap-1 border-b border-border/60 px-4 py-2 bg-muted/20", children: stages.map((stage) => /* @__PURE__ */ jsx158(
|
|
41915
|
-
"button",
|
|
41916
|
-
{
|
|
41917
|
-
onClick: () => setActiveStageId(stage.id),
|
|
41918
|
-
className: cn(
|
|
41919
|
-
"px-3 py-1.5 text-[11px] font-medium rounded-full transition-colors",
|
|
41920
|
-
activeStageId === stage.id ? "bg-interactive text-white" : "text-muted-foreground hover:text-foreground hover:bg-muted"
|
|
41921
|
-
),
|
|
41922
|
-
children: stage.name
|
|
41923
|
-
},
|
|
41924
|
-
stage.id
|
|
41925
|
-
)) }),
|
|
41926
|
-
/* @__PURE__ */ jsxs116("div", { className: "px-4 py-3", children: [
|
|
41927
|
-
activeStage && /* @__PURE__ */ jsxs116("div", { className: "flex items-center justify-between mb-3", children: [
|
|
41928
|
-
/* @__PURE__ */ jsxs116("p", { className: "text-[10px] text-muted-foreground", children: [
|
|
41929
|
-
"Select components for ",
|
|
41930
|
-
/* @__PURE__ */ jsx158("strong", { className: "text-foreground", children: activeStage.name }),
|
|
41931
|
-
" (",
|
|
41932
|
-
activeStage.agent_name,
|
|
41933
|
-
")"
|
|
41934
|
-
] }),
|
|
41935
|
-
!submitted && isLatestMessage && /* @__PURE__ */ jsxs116("div", { className: "flex items-center gap-2", children: [
|
|
41936
|
-
/* @__PURE__ */ jsx158(
|
|
41937
|
-
"button",
|
|
41938
|
-
{
|
|
41939
|
-
onClick: () => selectAll(activeStageId),
|
|
41940
|
-
className: "text-[10px] text-interactive hover:underline font-medium",
|
|
41941
|
-
children: "Select All"
|
|
41942
|
-
}
|
|
41943
|
-
),
|
|
41944
|
-
/* @__PURE__ */ jsx158("span", { className: "text-muted-foreground/40", children: "|" }),
|
|
41945
|
-
/* @__PURE__ */ jsx158(
|
|
41946
|
-
"button",
|
|
41947
|
-
{
|
|
41948
|
-
onClick: () => clearAll(activeStageId),
|
|
41949
|
-
className: "text-[10px] text-muted-foreground hover:text-foreground font-medium",
|
|
41950
|
-
children: "Clear"
|
|
41951
|
-
}
|
|
41952
|
-
)
|
|
41953
|
-
] })
|
|
41954
|
-
] }),
|
|
41955
|
-
Object.entries(grouped).map(([category, comps]) => /* @__PURE__ */ jsxs116("div", { className: "mb-3", children: [
|
|
41956
|
-
/* @__PURE__ */ jsx158("p", { className: "text-[10px] font-semibold text-muted-foreground uppercase tracking-wide mb-1.5", children: category }),
|
|
41957
|
-
/* @__PURE__ */ jsx158("div", { className: "grid grid-cols-2 gap-1.5", children: comps.map((comp) => {
|
|
41958
|
-
const isSelected = selections[activeStageId]?.has(comp.name) || false;
|
|
41959
|
-
return /* @__PURE__ */ jsxs116(
|
|
41960
|
-
"div",
|
|
41961
|
-
{
|
|
41962
|
-
role: "button",
|
|
41963
|
-
tabIndex: 0,
|
|
41964
|
-
onClick: () => toggleComponent(activeStageId, comp.name),
|
|
41965
|
-
onKeyDown: (e) => {
|
|
41966
|
-
if (e.key === "Enter" || e.key === " ") {
|
|
41967
|
-
e.preventDefault();
|
|
41968
|
-
toggleComponent(activeStageId, comp.name);
|
|
41969
|
-
}
|
|
41970
|
-
},
|
|
41971
|
-
className: cn(
|
|
41972
|
-
"text-left p-2.5 rounded-lg border text-[11px] transition-all overflow-hidden cursor-pointer",
|
|
41973
|
-
isSelected ? "border-interactive bg-interactive/5" : "border-border hover:border-interactive/50",
|
|
41974
|
-
(submitted || !isLatestMessage) && "opacity-60 cursor-default"
|
|
41975
|
-
),
|
|
41976
|
-
children: [
|
|
41977
|
-
/* @__PURE__ */ jsxs116("div", { className: "flex items-center gap-1.5", children: [
|
|
41978
|
-
/* @__PURE__ */ jsx158(
|
|
41979
|
-
"div",
|
|
41980
|
-
{
|
|
41981
|
-
className: cn(
|
|
41982
|
-
"w-3.5 h-3.5 rounded border flex items-center justify-center shrink-0",
|
|
41983
|
-
isSelected ? "bg-interactive border-interactive" : "border-muted-foreground/30"
|
|
41984
|
-
),
|
|
41985
|
-
children: isSelected && /* @__PURE__ */ jsx158(
|
|
41986
|
-
"svg",
|
|
41987
|
-
{
|
|
41988
|
-
width: "8",
|
|
41989
|
-
height: "8",
|
|
41990
|
-
viewBox: "0 0 24 24",
|
|
41991
|
-
fill: "none",
|
|
41992
|
-
stroke: "white",
|
|
41993
|
-
strokeWidth: "3",
|
|
41994
|
-
children: /* @__PURE__ */ jsx158("polyline", { points: "20 6 9 17 4 12" })
|
|
41995
|
-
}
|
|
41996
|
-
)
|
|
41997
|
-
}
|
|
41998
|
-
),
|
|
41999
|
-
/* @__PURE__ */ jsx158("span", { className: "font-medium text-foreground", children: comp.display_name }),
|
|
42000
|
-
comp.recommended && /* @__PURE__ */ jsx158("span", { className: "px-1 py-px text-[8px] font-semibold uppercase tracking-wider rounded-full bg-emerald-500/10 text-emerald-600 border border-emerald-500/20 leading-tight", children: "Rec" }),
|
|
42001
|
-
onPreview && /* @__PURE__ */ jsx158(
|
|
42002
|
-
"button",
|
|
42003
|
-
{
|
|
42004
|
-
type: "button",
|
|
42005
|
-
onClick: (e) => {
|
|
42006
|
-
e.stopPropagation();
|
|
42007
|
-
onPreview(comp.name);
|
|
42008
|
-
},
|
|
42009
|
-
className: "ml-auto shrink-0 p-0.5 rounded hover:bg-muted transition-colors",
|
|
42010
|
-
title: `Preview ${comp.display_name}`,
|
|
42011
|
-
children: /* @__PURE__ */ jsxs116(
|
|
42012
|
-
"svg",
|
|
42013
|
-
{
|
|
42014
|
-
width: "14",
|
|
42015
|
-
height: "14",
|
|
42016
|
-
viewBox: "0 0 24 24",
|
|
42017
|
-
fill: "none",
|
|
42018
|
-
stroke: "currentColor",
|
|
42019
|
-
strokeWidth: "2",
|
|
42020
|
-
strokeLinecap: "round",
|
|
42021
|
-
strokeLinejoin: "round",
|
|
42022
|
-
className: "text-muted-foreground hover:text-primary",
|
|
42023
|
-
children: [
|
|
42024
|
-
/* @__PURE__ */ jsx158("circle", { cx: "12", cy: "12", r: "10" }),
|
|
42025
|
-
/* @__PURE__ */ jsx158("line", { x1: "12", y1: "16", x2: "12", y2: "12" }),
|
|
42026
|
-
/* @__PURE__ */ jsx158("line", { x1: "12", y1: "8", x2: "12.01", y2: "8" })
|
|
42027
|
-
]
|
|
42028
|
-
}
|
|
42029
|
-
)
|
|
42030
|
-
}
|
|
42031
|
-
)
|
|
42032
|
-
] }),
|
|
42033
|
-
/* @__PURE__ */ jsx158("p", { className: "text-[10px] text-muted-foreground mt-0.5 ml-5 whitespace-normal", children: comp.description })
|
|
42034
|
-
]
|
|
42035
|
-
},
|
|
42036
|
-
comp.name
|
|
42037
|
-
);
|
|
42038
|
-
}) })
|
|
42039
|
-
] }, category))
|
|
42040
|
-
] }),
|
|
42041
|
-
!submitted && isLatestMessage && /* @__PURE__ */ jsx158("div", { className: "px-4 py-3 border-t border-border/60 bg-muted/30", children: /* @__PURE__ */ jsx158(
|
|
42042
|
-
"button",
|
|
42043
|
-
{
|
|
42044
|
-
onClick: handleContinue,
|
|
42045
|
-
className: "w-full py-2 rounded-lg bg-interactive text-white text-xs font-medium hover:opacity-90 transition-opacity",
|
|
42046
|
-
children: "Continue"
|
|
42047
|
-
}
|
|
42048
|
-
) }),
|
|
42049
|
-
submitted && /* @__PURE__ */ jsx158("div", { className: "px-4 pb-3", children: /* @__PURE__ */ jsx158("div", { className: "text-[10px] text-emerald-600 font-medium text-center py-1.5", children: "Selections confirmed" }) })
|
|
42050
|
-
]
|
|
42051
|
-
}
|
|
42052
|
-
);
|
|
42053
|
-
};
|
|
42054
|
-
|
|
42055
|
-
// src/molecules/workstream-builder/StageIndicator/StageIndicator.tsx
|
|
42056
|
-
import { jsx as jsx159, jsxs as jsxs117 } from "react/jsx-runtime";
|
|
42057
|
-
var FONT_STYLE10 = {
|
|
42058
|
-
fontFamily: "Inter, system-ui, sans-serif"
|
|
42059
|
-
};
|
|
42060
|
-
var StageIndicator = ({
|
|
42061
|
-
stage_name,
|
|
42062
|
-
agent_name,
|
|
42063
|
-
className
|
|
42064
|
-
}) => {
|
|
42065
|
-
return /* @__PURE__ */ jsxs117(
|
|
42066
|
-
"div",
|
|
42067
|
-
{
|
|
42068
|
-
className: cn(
|
|
42069
|
-
"flex items-center gap-3 my-4",
|
|
42070
|
-
className
|
|
42071
|
-
),
|
|
42072
|
-
style: { ...FONT_STYLE10, animation: "fadeIn 0.3s ease-out" },
|
|
42073
|
-
children: [
|
|
42074
|
-
/* @__PURE__ */ jsx159("div", { className: "flex-1 h-px bg-[var(--border-color)]" }),
|
|
42075
|
-
/* @__PURE__ */ jsxs117("div", { className: "flex items-center gap-1.5 px-3 py-1 rounded-full bg-violet-500/10 border border-violet-500/20", children: [
|
|
42076
|
-
/* @__PURE__ */ jsx159("div", { className: "w-1.5 h-1.5 rounded-full bg-violet-500 animate-pulse" }),
|
|
42077
|
-
/* @__PURE__ */ jsx159("span", { className: "text-[10px] font-medium text-violet-600", children: stage_name || agent_name })
|
|
42078
|
-
] }),
|
|
42079
|
-
/* @__PURE__ */ jsx159("div", { className: "flex-1 h-px bg-[var(--border-color)]" })
|
|
42080
|
-
]
|
|
42081
|
-
}
|
|
42082
|
-
);
|
|
42083
|
-
};
|
|
42084
|
-
|
|
42085
40750
|
// src/components/ui/index.ts
|
|
42086
40751
|
var ui_exports = {};
|
|
42087
40752
|
__export(ui_exports, {
|
|
@@ -42374,7 +41039,7 @@ __export(ui_exports, {
|
|
|
42374
41039
|
// src/components/ui/button-group.tsx
|
|
42375
41040
|
import { Slot as Slot4 } from "@radix-ui/react-slot";
|
|
42376
41041
|
import { cva as cva8 } from "class-variance-authority";
|
|
42377
|
-
import { jsx as
|
|
41042
|
+
import { jsx as jsx150 } from "react/jsx-runtime";
|
|
42378
41043
|
var buttonGroupVariants = cva8(
|
|
42379
41044
|
"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",
|
|
42380
41045
|
{
|
|
@@ -42394,7 +41059,7 @@ function ButtonGroup({
|
|
|
42394
41059
|
orientation,
|
|
42395
41060
|
...props
|
|
42396
41061
|
}) {
|
|
42397
|
-
return /* @__PURE__ */
|
|
41062
|
+
return /* @__PURE__ */ jsx150(
|
|
42398
41063
|
"div",
|
|
42399
41064
|
{
|
|
42400
41065
|
role: "group",
|
|
@@ -42411,7 +41076,7 @@ function ButtonGroupText({
|
|
|
42411
41076
|
...props
|
|
42412
41077
|
}) {
|
|
42413
41078
|
const Comp = asChild ? Slot4 : "div";
|
|
42414
|
-
return /* @__PURE__ */
|
|
41079
|
+
return /* @__PURE__ */ jsx150(
|
|
42415
41080
|
Comp,
|
|
42416
41081
|
{
|
|
42417
41082
|
className: cn(
|
|
@@ -42427,7 +41092,7 @@ function ButtonGroupSeparator({
|
|
|
42427
41092
|
orientation = "vertical",
|
|
42428
41093
|
...props
|
|
42429
41094
|
}) {
|
|
42430
|
-
return /* @__PURE__ */
|
|
41095
|
+
return /* @__PURE__ */ jsx150(
|
|
42431
41096
|
Separator2,
|
|
42432
41097
|
{
|
|
42433
41098
|
"data-slot": "button-group-separator",
|
|
@@ -42443,9 +41108,9 @@ function ButtonGroupSeparator({
|
|
|
42443
41108
|
|
|
42444
41109
|
// src/components/ui/empty.tsx
|
|
42445
41110
|
import { cva as cva9 } from "class-variance-authority";
|
|
42446
|
-
import { jsx as
|
|
41111
|
+
import { jsx as jsx151 } from "react/jsx-runtime";
|
|
42447
41112
|
function Empty({ className, ...props }) {
|
|
42448
|
-
return /* @__PURE__ */
|
|
41113
|
+
return /* @__PURE__ */ jsx151(
|
|
42449
41114
|
"div",
|
|
42450
41115
|
{
|
|
42451
41116
|
"data-slot": "empty",
|
|
@@ -42458,7 +41123,7 @@ function Empty({ className, ...props }) {
|
|
|
42458
41123
|
);
|
|
42459
41124
|
}
|
|
42460
41125
|
function EmptyHeader({ className, ...props }) {
|
|
42461
|
-
return /* @__PURE__ */
|
|
41126
|
+
return /* @__PURE__ */ jsx151(
|
|
42462
41127
|
"div",
|
|
42463
41128
|
{
|
|
42464
41129
|
"data-slot": "empty-header",
|
|
@@ -42489,7 +41154,7 @@ function EmptyMedia({
|
|
|
42489
41154
|
variant = "default",
|
|
42490
41155
|
...props
|
|
42491
41156
|
}) {
|
|
42492
|
-
return /* @__PURE__ */
|
|
41157
|
+
return /* @__PURE__ */ jsx151(
|
|
42493
41158
|
"div",
|
|
42494
41159
|
{
|
|
42495
41160
|
"data-slot": "empty-icon",
|
|
@@ -42500,7 +41165,7 @@ function EmptyMedia({
|
|
|
42500
41165
|
);
|
|
42501
41166
|
}
|
|
42502
41167
|
function EmptyTitle({ className, ...props }) {
|
|
42503
|
-
return /* @__PURE__ */
|
|
41168
|
+
return /* @__PURE__ */ jsx151(
|
|
42504
41169
|
"div",
|
|
42505
41170
|
{
|
|
42506
41171
|
"data-slot": "empty-title",
|
|
@@ -42510,7 +41175,7 @@ function EmptyTitle({ className, ...props }) {
|
|
|
42510
41175
|
);
|
|
42511
41176
|
}
|
|
42512
41177
|
function EmptyDescription({ className, ...props }) {
|
|
42513
|
-
return /* @__PURE__ */
|
|
41178
|
+
return /* @__PURE__ */ jsx151(
|
|
42514
41179
|
"div",
|
|
42515
41180
|
{
|
|
42516
41181
|
"data-slot": "empty-description",
|
|
@@ -42523,7 +41188,7 @@ function EmptyDescription({ className, ...props }) {
|
|
|
42523
41188
|
);
|
|
42524
41189
|
}
|
|
42525
41190
|
function EmptyContent({ className, ...props }) {
|
|
42526
|
-
return /* @__PURE__ */
|
|
41191
|
+
return /* @__PURE__ */ jsx151(
|
|
42527
41192
|
"div",
|
|
42528
41193
|
{
|
|
42529
41194
|
"data-slot": "empty-content",
|
|
@@ -42539,9 +41204,9 @@ function EmptyContent({ className, ...props }) {
|
|
|
42539
41204
|
// src/components/ui/field.tsx
|
|
42540
41205
|
import { useMemo as useMemo11 } from "react";
|
|
42541
41206
|
import { cva as cva10 } from "class-variance-authority";
|
|
42542
|
-
import { jsx as
|
|
41207
|
+
import { jsx as jsx152, jsxs as jsxs108 } from "react/jsx-runtime";
|
|
42543
41208
|
function FieldSet({ className, ...props }) {
|
|
42544
|
-
return /* @__PURE__ */
|
|
41209
|
+
return /* @__PURE__ */ jsx152(
|
|
42545
41210
|
"fieldset",
|
|
42546
41211
|
{
|
|
42547
41212
|
"data-slot": "field-set",
|
|
@@ -42559,7 +41224,7 @@ function FieldLegend({
|
|
|
42559
41224
|
variant = "legend",
|
|
42560
41225
|
...props
|
|
42561
41226
|
}) {
|
|
42562
|
-
return /* @__PURE__ */
|
|
41227
|
+
return /* @__PURE__ */ jsx152(
|
|
42563
41228
|
"legend",
|
|
42564
41229
|
{
|
|
42565
41230
|
"data-slot": "field-legend",
|
|
@@ -42575,7 +41240,7 @@ function FieldLegend({
|
|
|
42575
41240
|
);
|
|
42576
41241
|
}
|
|
42577
41242
|
function FieldGroup({ className, ...props }) {
|
|
42578
|
-
return /* @__PURE__ */
|
|
41243
|
+
return /* @__PURE__ */ jsx152(
|
|
42579
41244
|
"div",
|
|
42580
41245
|
{
|
|
42581
41246
|
"data-slot": "field-group",
|
|
@@ -42615,7 +41280,7 @@ function Field({
|
|
|
42615
41280
|
orientation = "vertical",
|
|
42616
41281
|
...props
|
|
42617
41282
|
}) {
|
|
42618
|
-
return /* @__PURE__ */
|
|
41283
|
+
return /* @__PURE__ */ jsx152(
|
|
42619
41284
|
"div",
|
|
42620
41285
|
{
|
|
42621
41286
|
role: "group",
|
|
@@ -42627,7 +41292,7 @@ function Field({
|
|
|
42627
41292
|
);
|
|
42628
41293
|
}
|
|
42629
41294
|
function FieldContent({ className, ...props }) {
|
|
42630
|
-
return /* @__PURE__ */
|
|
41295
|
+
return /* @__PURE__ */ jsx152(
|
|
42631
41296
|
"div",
|
|
42632
41297
|
{
|
|
42633
41298
|
"data-slot": "field-content",
|
|
@@ -42643,7 +41308,7 @@ function FieldLabel({
|
|
|
42643
41308
|
className,
|
|
42644
41309
|
...props
|
|
42645
41310
|
}) {
|
|
42646
|
-
return /* @__PURE__ */
|
|
41311
|
+
return /* @__PURE__ */ jsx152(
|
|
42647
41312
|
Label,
|
|
42648
41313
|
{
|
|
42649
41314
|
"data-slot": "field-label",
|
|
@@ -42658,7 +41323,7 @@ function FieldLabel({
|
|
|
42658
41323
|
);
|
|
42659
41324
|
}
|
|
42660
41325
|
function FieldTitle({ className, ...props }) {
|
|
42661
|
-
return /* @__PURE__ */
|
|
41326
|
+
return /* @__PURE__ */ jsx152(
|
|
42662
41327
|
"div",
|
|
42663
41328
|
{
|
|
42664
41329
|
"data-slot": "field-label",
|
|
@@ -42671,7 +41336,7 @@ function FieldTitle({ className, ...props }) {
|
|
|
42671
41336
|
);
|
|
42672
41337
|
}
|
|
42673
41338
|
function FieldDescription({ className, ...props }) {
|
|
42674
|
-
return /* @__PURE__ */
|
|
41339
|
+
return /* @__PURE__ */ jsx152(
|
|
42675
41340
|
"p",
|
|
42676
41341
|
{
|
|
42677
41342
|
"data-slot": "field-description",
|
|
@@ -42690,7 +41355,7 @@ function FieldSeparator({
|
|
|
42690
41355
|
className,
|
|
42691
41356
|
...props
|
|
42692
41357
|
}) {
|
|
42693
|
-
return /* @__PURE__ */
|
|
41358
|
+
return /* @__PURE__ */ jsxs108(
|
|
42694
41359
|
"div",
|
|
42695
41360
|
{
|
|
42696
41361
|
"data-slot": "field-separator",
|
|
@@ -42701,8 +41366,8 @@ function FieldSeparator({
|
|
|
42701
41366
|
),
|
|
42702
41367
|
...props,
|
|
42703
41368
|
children: [
|
|
42704
|
-
/* @__PURE__ */
|
|
42705
|
-
children && /* @__PURE__ */
|
|
41369
|
+
/* @__PURE__ */ jsx152(Separator2, { className: "absolute inset-0 top-1/2" }),
|
|
41370
|
+
children && /* @__PURE__ */ jsx152(
|
|
42706
41371
|
"span",
|
|
42707
41372
|
{
|
|
42708
41373
|
className: "bg-background text-muted-foreground relative mx-auto block w-fit px-2",
|
|
@@ -42730,14 +41395,14 @@ function FieldError({
|
|
|
42730
41395
|
if (errors?.length === 1 && errors[0]?.message) {
|
|
42731
41396
|
return errors[0].message;
|
|
42732
41397
|
}
|
|
42733
|
-
return /* @__PURE__ */
|
|
42734
|
-
(error, index) => error?.message && /* @__PURE__ */
|
|
41398
|
+
return /* @__PURE__ */ jsx152("ul", { className: "ml-4 flex list-disc flex-col gap-1", children: errors.map(
|
|
41399
|
+
(error, index) => error?.message && /* @__PURE__ */ jsx152("li", { children: error.message }, index)
|
|
42735
41400
|
) });
|
|
42736
41401
|
}, [children, errors]);
|
|
42737
41402
|
if (!content) {
|
|
42738
41403
|
return null;
|
|
42739
41404
|
}
|
|
42740
|
-
return /* @__PURE__ */
|
|
41405
|
+
return /* @__PURE__ */ jsx152(
|
|
42741
41406
|
"div",
|
|
42742
41407
|
{
|
|
42743
41408
|
role: "alert",
|
|
@@ -42751,9 +41416,9 @@ function FieldError({
|
|
|
42751
41416
|
|
|
42752
41417
|
// src/components/ui/input-group.tsx
|
|
42753
41418
|
import { cva as cva11 } from "class-variance-authority";
|
|
42754
|
-
import { jsx as
|
|
41419
|
+
import { jsx as jsx153 } from "react/jsx-runtime";
|
|
42755
41420
|
function InputGroup({ className, ...props }) {
|
|
42756
|
-
return /* @__PURE__ */
|
|
41421
|
+
return /* @__PURE__ */ jsx153(
|
|
42757
41422
|
"div",
|
|
42758
41423
|
{
|
|
42759
41424
|
"data-slot": "input-group",
|
|
@@ -42797,7 +41462,7 @@ function InputGroupAddon({
|
|
|
42797
41462
|
align = "inline-start",
|
|
42798
41463
|
...props
|
|
42799
41464
|
}) {
|
|
42800
|
-
return /* @__PURE__ */
|
|
41465
|
+
return /* @__PURE__ */ jsx153(
|
|
42801
41466
|
"div",
|
|
42802
41467
|
{
|
|
42803
41468
|
role: "group",
|
|
@@ -42837,7 +41502,7 @@ function InputGroupButton({
|
|
|
42837
41502
|
size = "xs",
|
|
42838
41503
|
...props
|
|
42839
41504
|
}) {
|
|
42840
|
-
return /* @__PURE__ */
|
|
41505
|
+
return /* @__PURE__ */ jsx153(
|
|
42841
41506
|
Button,
|
|
42842
41507
|
{
|
|
42843
41508
|
type,
|
|
@@ -42849,7 +41514,7 @@ function InputGroupButton({
|
|
|
42849
41514
|
);
|
|
42850
41515
|
}
|
|
42851
41516
|
function InputGroupText({ className, ...props }) {
|
|
42852
|
-
return /* @__PURE__ */
|
|
41517
|
+
return /* @__PURE__ */ jsx153(
|
|
42853
41518
|
"span",
|
|
42854
41519
|
{
|
|
42855
41520
|
className: cn(
|
|
@@ -42864,7 +41529,7 @@ function InputGroupInput({
|
|
|
42864
41529
|
className,
|
|
42865
41530
|
...props
|
|
42866
41531
|
}) {
|
|
42867
|
-
return /* @__PURE__ */
|
|
41532
|
+
return /* @__PURE__ */ jsx153(
|
|
42868
41533
|
Input,
|
|
42869
41534
|
{
|
|
42870
41535
|
"data-slot": "input-group-control",
|
|
@@ -42880,7 +41545,7 @@ function InputGroupTextarea({
|
|
|
42880
41545
|
className,
|
|
42881
41546
|
...props
|
|
42882
41547
|
}) {
|
|
42883
|
-
return /* @__PURE__ */
|
|
41548
|
+
return /* @__PURE__ */ jsx153(
|
|
42884
41549
|
Textarea,
|
|
42885
41550
|
{
|
|
42886
41551
|
"data-slot": "input-group-control",
|
|
@@ -42896,9 +41561,9 @@ function InputGroupTextarea({
|
|
|
42896
41561
|
// src/components/ui/item.tsx
|
|
42897
41562
|
import { Slot as Slot5 } from "@radix-ui/react-slot";
|
|
42898
41563
|
import { cva as cva12 } from "class-variance-authority";
|
|
42899
|
-
import { jsx as
|
|
41564
|
+
import { jsx as jsx154 } from "react/jsx-runtime";
|
|
42900
41565
|
function ItemGroup({ className, ...props }) {
|
|
42901
|
-
return /* @__PURE__ */
|
|
41566
|
+
return /* @__PURE__ */ jsx154(
|
|
42902
41567
|
"div",
|
|
42903
41568
|
{
|
|
42904
41569
|
role: "list",
|
|
@@ -42912,7 +41577,7 @@ function ItemSeparator({
|
|
|
42912
41577
|
className,
|
|
42913
41578
|
...props
|
|
42914
41579
|
}) {
|
|
42915
|
-
return /* @__PURE__ */
|
|
41580
|
+
return /* @__PURE__ */ jsx154(
|
|
42916
41581
|
Separator2,
|
|
42917
41582
|
{
|
|
42918
41583
|
"data-slot": "item-separator",
|
|
@@ -42950,7 +41615,7 @@ function Item8({
|
|
|
42950
41615
|
...props
|
|
42951
41616
|
}) {
|
|
42952
41617
|
const Comp = asChild ? Slot5 : "div";
|
|
42953
|
-
return /* @__PURE__ */
|
|
41618
|
+
return /* @__PURE__ */ jsx154(
|
|
42954
41619
|
Comp,
|
|
42955
41620
|
{
|
|
42956
41621
|
"data-slot": "item",
|
|
@@ -42981,7 +41646,7 @@ function ItemMedia({
|
|
|
42981
41646
|
variant = "default",
|
|
42982
41647
|
...props
|
|
42983
41648
|
}) {
|
|
42984
|
-
return /* @__PURE__ */
|
|
41649
|
+
return /* @__PURE__ */ jsx154(
|
|
42985
41650
|
"div",
|
|
42986
41651
|
{
|
|
42987
41652
|
"data-slot": "item-media",
|
|
@@ -42992,7 +41657,7 @@ function ItemMedia({
|
|
|
42992
41657
|
);
|
|
42993
41658
|
}
|
|
42994
41659
|
function ItemContent({ className, ...props }) {
|
|
42995
|
-
return /* @__PURE__ */
|
|
41660
|
+
return /* @__PURE__ */ jsx154(
|
|
42996
41661
|
"div",
|
|
42997
41662
|
{
|
|
42998
41663
|
"data-slot": "item-content",
|
|
@@ -43005,7 +41670,7 @@ function ItemContent({ className, ...props }) {
|
|
|
43005
41670
|
);
|
|
43006
41671
|
}
|
|
43007
41672
|
function ItemTitle({ className, ...props }) {
|
|
43008
|
-
return /* @__PURE__ */
|
|
41673
|
+
return /* @__PURE__ */ jsx154(
|
|
43009
41674
|
"div",
|
|
43010
41675
|
{
|
|
43011
41676
|
"data-slot": "item-title",
|
|
@@ -43018,7 +41683,7 @@ function ItemTitle({ className, ...props }) {
|
|
|
43018
41683
|
);
|
|
43019
41684
|
}
|
|
43020
41685
|
function ItemDescription({ className, ...props }) {
|
|
43021
|
-
return /* @__PURE__ */
|
|
41686
|
+
return /* @__PURE__ */ jsx154(
|
|
43022
41687
|
"p",
|
|
43023
41688
|
{
|
|
43024
41689
|
"data-slot": "item-description",
|
|
@@ -43032,7 +41697,7 @@ function ItemDescription({ className, ...props }) {
|
|
|
43032
41697
|
);
|
|
43033
41698
|
}
|
|
43034
41699
|
function ItemActions({ className, ...props }) {
|
|
43035
|
-
return /* @__PURE__ */
|
|
41700
|
+
return /* @__PURE__ */ jsx154(
|
|
43036
41701
|
"div",
|
|
43037
41702
|
{
|
|
43038
41703
|
"data-slot": "item-actions",
|
|
@@ -43042,7 +41707,7 @@ function ItemActions({ className, ...props }) {
|
|
|
43042
41707
|
);
|
|
43043
41708
|
}
|
|
43044
41709
|
function ItemHeader({ className, ...props }) {
|
|
43045
|
-
return /* @__PURE__ */
|
|
41710
|
+
return /* @__PURE__ */ jsx154(
|
|
43046
41711
|
"div",
|
|
43047
41712
|
{
|
|
43048
41713
|
"data-slot": "item-header",
|
|
@@ -43055,7 +41720,7 @@ function ItemHeader({ className, ...props }) {
|
|
|
43055
41720
|
);
|
|
43056
41721
|
}
|
|
43057
41722
|
function ItemFooter({ className, ...props }) {
|
|
43058
|
-
return /* @__PURE__ */
|
|
41723
|
+
return /* @__PURE__ */ jsx154(
|
|
43059
41724
|
"div",
|
|
43060
41725
|
{
|
|
43061
41726
|
"data-slot": "item-footer",
|
|
@@ -43069,9 +41734,9 @@ function ItemFooter({ className, ...props }) {
|
|
|
43069
41734
|
}
|
|
43070
41735
|
|
|
43071
41736
|
// src/components/ui/kbd.tsx
|
|
43072
|
-
import { jsx as
|
|
41737
|
+
import { jsx as jsx155 } from "react/jsx-runtime";
|
|
43073
41738
|
function Kbd({ className, ...props }) {
|
|
43074
|
-
return /* @__PURE__ */
|
|
41739
|
+
return /* @__PURE__ */ jsx155(
|
|
43075
41740
|
"kbd",
|
|
43076
41741
|
{
|
|
43077
41742
|
"data-slot": "kbd",
|
|
@@ -43086,7 +41751,7 @@ function Kbd({ className, ...props }) {
|
|
|
43086
41751
|
);
|
|
43087
41752
|
}
|
|
43088
41753
|
function KbdGroup({ className, ...props }) {
|
|
43089
|
-
return /* @__PURE__ */
|
|
41754
|
+
return /* @__PURE__ */ jsx155(
|
|
43090
41755
|
"kbd",
|
|
43091
41756
|
{
|
|
43092
41757
|
"data-slot": "kbd-group",
|
|
@@ -43097,16 +41762,16 @@ function KbdGroup({ className, ...props }) {
|
|
|
43097
41762
|
}
|
|
43098
41763
|
|
|
43099
41764
|
// src/components/ui/sidebar.tsx
|
|
43100
|
-
import * as
|
|
41765
|
+
import * as React100 from "react";
|
|
43101
41766
|
import { Slot as Slot6 } from "@radix-ui/react-slot";
|
|
43102
41767
|
import { cva as cva13 } from "class-variance-authority";
|
|
43103
41768
|
|
|
43104
41769
|
// src/hooks/use-mobile.tsx
|
|
43105
|
-
import * as
|
|
41770
|
+
import * as React99 from "react";
|
|
43106
41771
|
var MOBILE_BREAKPOINT = 768;
|
|
43107
41772
|
function useIsMobile() {
|
|
43108
|
-
const [isMobile, setIsMobile] =
|
|
43109
|
-
|
|
41773
|
+
const [isMobile, setIsMobile] = React99.useState(void 0);
|
|
41774
|
+
React99.useEffect(() => {
|
|
43110
41775
|
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
43111
41776
|
const onChange = () => {
|
|
43112
41777
|
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
@@ -43119,22 +41784,22 @@ function useIsMobile() {
|
|
|
43119
41784
|
}
|
|
43120
41785
|
|
|
43121
41786
|
// src/components/ui/sidebar.tsx
|
|
43122
|
-
import { jsx as
|
|
41787
|
+
import { jsx as jsx156, jsxs as jsxs109 } from "react/jsx-runtime";
|
|
43123
41788
|
var SIDEBAR_COOKIE_NAME = "sidebar_state";
|
|
43124
41789
|
var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
|
|
43125
41790
|
var SIDEBAR_WIDTH = "16rem";
|
|
43126
41791
|
var SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
43127
41792
|
var SIDEBAR_WIDTH_ICON = "3rem";
|
|
43128
41793
|
var SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
43129
|
-
var SidebarContext =
|
|
41794
|
+
var SidebarContext = React100.createContext(null);
|
|
43130
41795
|
function useSidebar() {
|
|
43131
|
-
const context =
|
|
41796
|
+
const context = React100.useContext(SidebarContext);
|
|
43132
41797
|
if (!context) {
|
|
43133
41798
|
throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
43134
41799
|
}
|
|
43135
41800
|
return context;
|
|
43136
41801
|
}
|
|
43137
|
-
var SidebarProvider =
|
|
41802
|
+
var SidebarProvider = React100.forwardRef(
|
|
43138
41803
|
({
|
|
43139
41804
|
defaultOpen = true,
|
|
43140
41805
|
open: openProp,
|
|
@@ -43145,10 +41810,10 @@ var SidebarProvider = React104.forwardRef(
|
|
|
43145
41810
|
...props
|
|
43146
41811
|
}, ref) => {
|
|
43147
41812
|
const isMobile = useIsMobile();
|
|
43148
|
-
const [openMobile, setOpenMobile] =
|
|
43149
|
-
const [_open, _setOpen] =
|
|
41813
|
+
const [openMobile, setOpenMobile] = React100.useState(false);
|
|
41814
|
+
const [_open, _setOpen] = React100.useState(defaultOpen);
|
|
43150
41815
|
const open = openProp ?? _open;
|
|
43151
|
-
const setOpen =
|
|
41816
|
+
const setOpen = React100.useCallback(
|
|
43152
41817
|
(value) => {
|
|
43153
41818
|
const openState = typeof value === "function" ? value(open) : value;
|
|
43154
41819
|
if (setOpenProp) {
|
|
@@ -43160,10 +41825,10 @@ var SidebarProvider = React104.forwardRef(
|
|
|
43160
41825
|
},
|
|
43161
41826
|
[setOpenProp, open]
|
|
43162
41827
|
);
|
|
43163
|
-
const toggleSidebar =
|
|
41828
|
+
const toggleSidebar = React100.useCallback(() => {
|
|
43164
41829
|
return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
|
|
43165
41830
|
}, [isMobile, setOpen, setOpenMobile]);
|
|
43166
|
-
|
|
41831
|
+
React100.useEffect(() => {
|
|
43167
41832
|
const handleKeyDown = (event) => {
|
|
43168
41833
|
if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
|
|
43169
41834
|
event.preventDefault();
|
|
@@ -43174,7 +41839,7 @@ var SidebarProvider = React104.forwardRef(
|
|
|
43174
41839
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
43175
41840
|
}, [toggleSidebar]);
|
|
43176
41841
|
const state = open ? "expanded" : "collapsed";
|
|
43177
|
-
const contextValue =
|
|
41842
|
+
const contextValue = React100.useMemo(
|
|
43178
41843
|
() => ({
|
|
43179
41844
|
state,
|
|
43180
41845
|
open,
|
|
@@ -43186,7 +41851,7 @@ var SidebarProvider = React104.forwardRef(
|
|
|
43186
41851
|
}),
|
|
43187
41852
|
[state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]
|
|
43188
41853
|
);
|
|
43189
|
-
return /* @__PURE__ */
|
|
41854
|
+
return /* @__PURE__ */ jsx156(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx156(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ jsx156(
|
|
43190
41855
|
"div",
|
|
43191
41856
|
{
|
|
43192
41857
|
style: {
|
|
@@ -43206,7 +41871,7 @@ var SidebarProvider = React104.forwardRef(
|
|
|
43206
41871
|
}
|
|
43207
41872
|
);
|
|
43208
41873
|
SidebarProvider.displayName = "SidebarProvider";
|
|
43209
|
-
var Sidebar =
|
|
41874
|
+
var Sidebar = React100.forwardRef(
|
|
43210
41875
|
({
|
|
43211
41876
|
side = "left",
|
|
43212
41877
|
variant = "sidebar",
|
|
@@ -43217,7 +41882,7 @@ var Sidebar = React104.forwardRef(
|
|
|
43217
41882
|
}, ref) => {
|
|
43218
41883
|
const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
|
|
43219
41884
|
if (collapsible === "none") {
|
|
43220
|
-
return /* @__PURE__ */
|
|
41885
|
+
return /* @__PURE__ */ jsx156(
|
|
43221
41886
|
"div",
|
|
43222
41887
|
{
|
|
43223
41888
|
className: cn(
|
|
@@ -43231,7 +41896,7 @@ var Sidebar = React104.forwardRef(
|
|
|
43231
41896
|
);
|
|
43232
41897
|
}
|
|
43233
41898
|
if (isMobile) {
|
|
43234
|
-
return /* @__PURE__ */
|
|
41899
|
+
return /* @__PURE__ */ jsx156(Sheet2, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ jsxs109(
|
|
43235
41900
|
SheetContent,
|
|
43236
41901
|
{
|
|
43237
41902
|
"data-sidebar": "sidebar",
|
|
@@ -43242,16 +41907,16 @@ var Sidebar = React104.forwardRef(
|
|
|
43242
41907
|
},
|
|
43243
41908
|
side,
|
|
43244
41909
|
children: [
|
|
43245
|
-
/* @__PURE__ */
|
|
43246
|
-
/* @__PURE__ */
|
|
43247
|
-
/* @__PURE__ */
|
|
41910
|
+
/* @__PURE__ */ jsxs109(SheetHeader, { className: "sr-only", children: [
|
|
41911
|
+
/* @__PURE__ */ jsx156(SheetTitle, { children: "Sidebar" }),
|
|
41912
|
+
/* @__PURE__ */ jsx156(SheetDescription, { children: "Displays the mobile sidebar." })
|
|
43248
41913
|
] }),
|
|
43249
|
-
/* @__PURE__ */
|
|
41914
|
+
/* @__PURE__ */ jsx156("div", { className: "flex h-full w-full flex-col", children })
|
|
43250
41915
|
]
|
|
43251
41916
|
}
|
|
43252
41917
|
) });
|
|
43253
41918
|
}
|
|
43254
|
-
return /* @__PURE__ */
|
|
41919
|
+
return /* @__PURE__ */ jsxs109(
|
|
43255
41920
|
"div",
|
|
43256
41921
|
{
|
|
43257
41922
|
ref,
|
|
@@ -43261,7 +41926,7 @@ var Sidebar = React104.forwardRef(
|
|
|
43261
41926
|
"data-variant": variant,
|
|
43262
41927
|
"data-side": side,
|
|
43263
41928
|
children: [
|
|
43264
|
-
/* @__PURE__ */
|
|
41929
|
+
/* @__PURE__ */ jsx156(
|
|
43265
41930
|
"div",
|
|
43266
41931
|
{
|
|
43267
41932
|
className: cn(
|
|
@@ -43272,7 +41937,7 @@ var Sidebar = React104.forwardRef(
|
|
|
43272
41937
|
)
|
|
43273
41938
|
}
|
|
43274
41939
|
),
|
|
43275
|
-
/* @__PURE__ */
|
|
41940
|
+
/* @__PURE__ */ jsx156(
|
|
43276
41941
|
"div",
|
|
43277
41942
|
{
|
|
43278
41943
|
className: cn(
|
|
@@ -43283,7 +41948,7 @@ var Sidebar = React104.forwardRef(
|
|
|
43283
41948
|
className
|
|
43284
41949
|
),
|
|
43285
41950
|
...props,
|
|
43286
|
-
children: /* @__PURE__ */
|
|
41951
|
+
children: /* @__PURE__ */ jsx156(
|
|
43287
41952
|
"div",
|
|
43288
41953
|
{
|
|
43289
41954
|
"data-sidebar": "sidebar",
|
|
@@ -43299,9 +41964,9 @@ var Sidebar = React104.forwardRef(
|
|
|
43299
41964
|
}
|
|
43300
41965
|
);
|
|
43301
41966
|
Sidebar.displayName = "Sidebar";
|
|
43302
|
-
var SidebarTrigger =
|
|
41967
|
+
var SidebarTrigger = React100.forwardRef(({ className, onClick, ...props }, ref) => {
|
|
43303
41968
|
const { toggleSidebar } = useSidebar();
|
|
43304
|
-
return /* @__PURE__ */
|
|
41969
|
+
return /* @__PURE__ */ jsxs109(
|
|
43305
41970
|
Button,
|
|
43306
41971
|
{
|
|
43307
41972
|
ref,
|
|
@@ -43315,16 +41980,16 @@ var SidebarTrigger = React104.forwardRef(({ className, onClick, ...props }, ref)
|
|
|
43315
41980
|
},
|
|
43316
41981
|
...props,
|
|
43317
41982
|
children: [
|
|
43318
|
-
/* @__PURE__ */
|
|
43319
|
-
/* @__PURE__ */
|
|
41983
|
+
/* @__PURE__ */ jsx156(PanelLeft, {}),
|
|
41984
|
+
/* @__PURE__ */ jsx156("span", { className: "sr-only", children: "Toggle Sidebar" })
|
|
43320
41985
|
]
|
|
43321
41986
|
}
|
|
43322
41987
|
);
|
|
43323
41988
|
});
|
|
43324
41989
|
SidebarTrigger.displayName = "SidebarTrigger";
|
|
43325
|
-
var SidebarRail =
|
|
41990
|
+
var SidebarRail = React100.forwardRef(({ className, ...props }, ref) => {
|
|
43326
41991
|
const { toggleSidebar } = useSidebar();
|
|
43327
|
-
return /* @__PURE__ */
|
|
41992
|
+
return /* @__PURE__ */ jsx156(
|
|
43328
41993
|
"button",
|
|
43329
41994
|
{
|
|
43330
41995
|
ref,
|
|
@@ -43347,8 +42012,8 @@ var SidebarRail = React104.forwardRef(({ className, ...props }, ref) => {
|
|
|
43347
42012
|
);
|
|
43348
42013
|
});
|
|
43349
42014
|
SidebarRail.displayName = "SidebarRail";
|
|
43350
|
-
var SidebarInset =
|
|
43351
|
-
return /* @__PURE__ */
|
|
42015
|
+
var SidebarInset = React100.forwardRef(({ className, ...props }, ref) => {
|
|
42016
|
+
return /* @__PURE__ */ jsx156(
|
|
43352
42017
|
"main",
|
|
43353
42018
|
{
|
|
43354
42019
|
ref,
|
|
@@ -43362,8 +42027,8 @@ var SidebarInset = React104.forwardRef(({ className, ...props }, ref) => {
|
|
|
43362
42027
|
);
|
|
43363
42028
|
});
|
|
43364
42029
|
SidebarInset.displayName = "SidebarInset";
|
|
43365
|
-
var SidebarInput =
|
|
43366
|
-
return /* @__PURE__ */
|
|
42030
|
+
var SidebarInput = React100.forwardRef(({ className, ...props }, ref) => {
|
|
42031
|
+
return /* @__PURE__ */ jsx156(
|
|
43367
42032
|
Input,
|
|
43368
42033
|
{
|
|
43369
42034
|
ref,
|
|
@@ -43377,8 +42042,8 @@ var SidebarInput = React104.forwardRef(({ className, ...props }, ref) => {
|
|
|
43377
42042
|
);
|
|
43378
42043
|
});
|
|
43379
42044
|
SidebarInput.displayName = "SidebarInput";
|
|
43380
|
-
var SidebarHeader =
|
|
43381
|
-
return /* @__PURE__ */
|
|
42045
|
+
var SidebarHeader = React100.forwardRef(({ className, ...props }, ref) => {
|
|
42046
|
+
return /* @__PURE__ */ jsx156(
|
|
43382
42047
|
"div",
|
|
43383
42048
|
{
|
|
43384
42049
|
ref,
|
|
@@ -43389,8 +42054,8 @@ var SidebarHeader = React104.forwardRef(({ className, ...props }, ref) => {
|
|
|
43389
42054
|
);
|
|
43390
42055
|
});
|
|
43391
42056
|
SidebarHeader.displayName = "SidebarHeader";
|
|
43392
|
-
var SidebarFooter =
|
|
43393
|
-
return /* @__PURE__ */
|
|
42057
|
+
var SidebarFooter = React100.forwardRef(({ className, ...props }, ref) => {
|
|
42058
|
+
return /* @__PURE__ */ jsx156(
|
|
43394
42059
|
"div",
|
|
43395
42060
|
{
|
|
43396
42061
|
ref,
|
|
@@ -43401,8 +42066,8 @@ var SidebarFooter = React104.forwardRef(({ className, ...props }, ref) => {
|
|
|
43401
42066
|
);
|
|
43402
42067
|
});
|
|
43403
42068
|
SidebarFooter.displayName = "SidebarFooter";
|
|
43404
|
-
var SidebarSeparator =
|
|
43405
|
-
return /* @__PURE__ */
|
|
42069
|
+
var SidebarSeparator = React100.forwardRef(({ className, ...props }, ref) => {
|
|
42070
|
+
return /* @__PURE__ */ jsx156(
|
|
43406
42071
|
Separator2,
|
|
43407
42072
|
{
|
|
43408
42073
|
ref,
|
|
@@ -43413,8 +42078,8 @@ var SidebarSeparator = React104.forwardRef(({ className, ...props }, ref) => {
|
|
|
43413
42078
|
);
|
|
43414
42079
|
});
|
|
43415
42080
|
SidebarSeparator.displayName = "SidebarSeparator";
|
|
43416
|
-
var SidebarContent =
|
|
43417
|
-
return /* @__PURE__ */
|
|
42081
|
+
var SidebarContent = React100.forwardRef(({ className, ...props }, ref) => {
|
|
42082
|
+
return /* @__PURE__ */ jsx156(
|
|
43418
42083
|
"div",
|
|
43419
42084
|
{
|
|
43420
42085
|
ref,
|
|
@@ -43428,8 +42093,8 @@ var SidebarContent = React104.forwardRef(({ className, ...props }, ref) => {
|
|
|
43428
42093
|
);
|
|
43429
42094
|
});
|
|
43430
42095
|
SidebarContent.displayName = "SidebarContent";
|
|
43431
|
-
var SidebarGroup =
|
|
43432
|
-
return /* @__PURE__ */
|
|
42096
|
+
var SidebarGroup = React100.forwardRef(({ className, ...props }, ref) => {
|
|
42097
|
+
return /* @__PURE__ */ jsx156(
|
|
43433
42098
|
"div",
|
|
43434
42099
|
{
|
|
43435
42100
|
ref,
|
|
@@ -43440,9 +42105,9 @@ var SidebarGroup = React104.forwardRef(({ className, ...props }, ref) => {
|
|
|
43440
42105
|
);
|
|
43441
42106
|
});
|
|
43442
42107
|
SidebarGroup.displayName = "SidebarGroup";
|
|
43443
|
-
var SidebarGroupLabel =
|
|
42108
|
+
var SidebarGroupLabel = React100.forwardRef(({ className, asChild = false, ...props }, ref) => {
|
|
43444
42109
|
const Comp = asChild ? Slot6 : "div";
|
|
43445
|
-
return /* @__PURE__ */
|
|
42110
|
+
return /* @__PURE__ */ jsx156(
|
|
43446
42111
|
Comp,
|
|
43447
42112
|
{
|
|
43448
42113
|
ref,
|
|
@@ -43457,9 +42122,9 @@ var SidebarGroupLabel = React104.forwardRef(({ className, asChild = false, ...pr
|
|
|
43457
42122
|
);
|
|
43458
42123
|
});
|
|
43459
42124
|
SidebarGroupLabel.displayName = "SidebarGroupLabel";
|
|
43460
|
-
var SidebarGroupAction =
|
|
42125
|
+
var SidebarGroupAction = React100.forwardRef(({ className, asChild = false, ...props }, ref) => {
|
|
43461
42126
|
const Comp = asChild ? Slot6 : "button";
|
|
43462
|
-
return /* @__PURE__ */
|
|
42127
|
+
return /* @__PURE__ */ jsx156(
|
|
43463
42128
|
Comp,
|
|
43464
42129
|
{
|
|
43465
42130
|
ref,
|
|
@@ -43476,7 +42141,7 @@ var SidebarGroupAction = React104.forwardRef(({ className, asChild = false, ...p
|
|
|
43476
42141
|
);
|
|
43477
42142
|
});
|
|
43478
42143
|
SidebarGroupAction.displayName = "SidebarGroupAction";
|
|
43479
|
-
var SidebarGroupContent =
|
|
42144
|
+
var SidebarGroupContent = React100.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx156(
|
|
43480
42145
|
"div",
|
|
43481
42146
|
{
|
|
43482
42147
|
ref,
|
|
@@ -43486,7 +42151,7 @@ var SidebarGroupContent = React104.forwardRef(({ className, ...props }, ref) =>
|
|
|
43486
42151
|
}
|
|
43487
42152
|
));
|
|
43488
42153
|
SidebarGroupContent.displayName = "SidebarGroupContent";
|
|
43489
|
-
var SidebarMenu =
|
|
42154
|
+
var SidebarMenu = React100.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx156(
|
|
43490
42155
|
"ul",
|
|
43491
42156
|
{
|
|
43492
42157
|
ref,
|
|
@@ -43496,7 +42161,7 @@ var SidebarMenu = React104.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
43496
42161
|
}
|
|
43497
42162
|
));
|
|
43498
42163
|
SidebarMenu.displayName = "SidebarMenu";
|
|
43499
|
-
var SidebarMenuItem =
|
|
42164
|
+
var SidebarMenuItem = React100.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx156(
|
|
43500
42165
|
"li",
|
|
43501
42166
|
{
|
|
43502
42167
|
ref,
|
|
@@ -43526,7 +42191,7 @@ var sidebarMenuButtonVariants = cva13(
|
|
|
43526
42191
|
}
|
|
43527
42192
|
}
|
|
43528
42193
|
);
|
|
43529
|
-
var SidebarMenuButton =
|
|
42194
|
+
var SidebarMenuButton = React100.forwardRef(
|
|
43530
42195
|
({
|
|
43531
42196
|
asChild = false,
|
|
43532
42197
|
isActive = false,
|
|
@@ -43538,7 +42203,7 @@ var SidebarMenuButton = React104.forwardRef(
|
|
|
43538
42203
|
}, ref) => {
|
|
43539
42204
|
const Comp = asChild ? Slot6 : "button";
|
|
43540
42205
|
const { isMobile, state } = useSidebar();
|
|
43541
|
-
const button = /* @__PURE__ */
|
|
42206
|
+
const button = /* @__PURE__ */ jsx156(
|
|
43542
42207
|
Comp,
|
|
43543
42208
|
{
|
|
43544
42209
|
ref,
|
|
@@ -43557,9 +42222,9 @@ var SidebarMenuButton = React104.forwardRef(
|
|
|
43557
42222
|
children: tooltip
|
|
43558
42223
|
};
|
|
43559
42224
|
}
|
|
43560
|
-
return /* @__PURE__ */
|
|
43561
|
-
/* @__PURE__ */
|
|
43562
|
-
/* @__PURE__ */
|
|
42225
|
+
return /* @__PURE__ */ jsxs109(Tooltip, { children: [
|
|
42226
|
+
/* @__PURE__ */ jsx156(TooltipTrigger, { asChild: true, children: button }),
|
|
42227
|
+
/* @__PURE__ */ jsx156(
|
|
43563
42228
|
TooltipContent,
|
|
43564
42229
|
{
|
|
43565
42230
|
side: "right",
|
|
@@ -43572,9 +42237,9 @@ var SidebarMenuButton = React104.forwardRef(
|
|
|
43572
42237
|
}
|
|
43573
42238
|
);
|
|
43574
42239
|
SidebarMenuButton.displayName = "SidebarMenuButton";
|
|
43575
|
-
var SidebarMenuAction =
|
|
42240
|
+
var SidebarMenuAction = React100.forwardRef(({ className, asChild = false, showOnHover = false, ...props }, ref) => {
|
|
43576
42241
|
const Comp = asChild ? Slot6 : "button";
|
|
43577
|
-
return /* @__PURE__ */
|
|
42242
|
+
return /* @__PURE__ */ jsx156(
|
|
43578
42243
|
Comp,
|
|
43579
42244
|
{
|
|
43580
42245
|
ref,
|
|
@@ -43595,7 +42260,7 @@ var SidebarMenuAction = React104.forwardRef(({ className, asChild = false, showO
|
|
|
43595
42260
|
);
|
|
43596
42261
|
});
|
|
43597
42262
|
SidebarMenuAction.displayName = "SidebarMenuAction";
|
|
43598
|
-
var SidebarMenuBadge =
|
|
42263
|
+
var SidebarMenuBadge = React100.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx156(
|
|
43599
42264
|
"div",
|
|
43600
42265
|
{
|
|
43601
42266
|
ref,
|
|
@@ -43613,11 +42278,11 @@ var SidebarMenuBadge = React104.forwardRef(({ className, ...props }, ref) => /*
|
|
|
43613
42278
|
}
|
|
43614
42279
|
));
|
|
43615
42280
|
SidebarMenuBadge.displayName = "SidebarMenuBadge";
|
|
43616
|
-
var SidebarMenuSkeleton =
|
|
43617
|
-
const width =
|
|
42281
|
+
var SidebarMenuSkeleton = React100.forwardRef(({ className, showIcon = false, ...props }, ref) => {
|
|
42282
|
+
const width = React100.useMemo(() => {
|
|
43618
42283
|
return `${Math.floor(Math.random() * 40) + 50}%`;
|
|
43619
42284
|
}, []);
|
|
43620
|
-
return /* @__PURE__ */
|
|
42285
|
+
return /* @__PURE__ */ jsxs109(
|
|
43621
42286
|
"div",
|
|
43622
42287
|
{
|
|
43623
42288
|
ref,
|
|
@@ -43625,14 +42290,14 @@ var SidebarMenuSkeleton = React104.forwardRef(({ className, showIcon = false, ..
|
|
|
43625
42290
|
className: cn("flex h-8 items-center gap-2 rounded-md px-2", className),
|
|
43626
42291
|
...props,
|
|
43627
42292
|
children: [
|
|
43628
|
-
showIcon && /* @__PURE__ */
|
|
42293
|
+
showIcon && /* @__PURE__ */ jsx156(
|
|
43629
42294
|
Skeleton,
|
|
43630
42295
|
{
|
|
43631
42296
|
className: "size-4 rounded-md",
|
|
43632
42297
|
"data-sidebar": "menu-skeleton-icon"
|
|
43633
42298
|
}
|
|
43634
42299
|
),
|
|
43635
|
-
/* @__PURE__ */
|
|
42300
|
+
/* @__PURE__ */ jsx156(
|
|
43636
42301
|
Skeleton,
|
|
43637
42302
|
{
|
|
43638
42303
|
className: "h-4 max-w-[--skeleton-width] flex-1",
|
|
@@ -43647,7 +42312,7 @@ var SidebarMenuSkeleton = React104.forwardRef(({ className, showIcon = false, ..
|
|
|
43647
42312
|
);
|
|
43648
42313
|
});
|
|
43649
42314
|
SidebarMenuSkeleton.displayName = "SidebarMenuSkeleton";
|
|
43650
|
-
var SidebarMenuSub =
|
|
42315
|
+
var SidebarMenuSub = React100.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx156(
|
|
43651
42316
|
"ul",
|
|
43652
42317
|
{
|
|
43653
42318
|
ref,
|
|
@@ -43661,11 +42326,11 @@ var SidebarMenuSub = React104.forwardRef(({ className, ...props }, ref) => /* @_
|
|
|
43661
42326
|
}
|
|
43662
42327
|
));
|
|
43663
42328
|
SidebarMenuSub.displayName = "SidebarMenuSub";
|
|
43664
|
-
var SidebarMenuSubItem =
|
|
42329
|
+
var SidebarMenuSubItem = React100.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx156("li", { ref, ...props }));
|
|
43665
42330
|
SidebarMenuSubItem.displayName = "SidebarMenuSubItem";
|
|
43666
|
-
var SidebarMenuSubButton =
|
|
42331
|
+
var SidebarMenuSubButton = React100.forwardRef(({ asChild = false, size = "md", isActive, className, ...props }, ref) => {
|
|
43667
42332
|
const Comp = asChild ? Slot6 : "a";
|
|
43668
|
-
return /* @__PURE__ */
|
|
42333
|
+
return /* @__PURE__ */ jsx156(
|
|
43669
42334
|
Comp,
|
|
43670
42335
|
{
|
|
43671
42336
|
ref,
|
|
@@ -43689,20 +42354,20 @@ SidebarMenuSubButton.displayName = "SidebarMenuSubButton";
|
|
|
43689
42354
|
// src/components/ui/sonner.tsx
|
|
43690
42355
|
import { useTheme } from "next-themes";
|
|
43691
42356
|
import { Toaster as Sonner } from "sonner";
|
|
43692
|
-
import { jsx as
|
|
42357
|
+
import { jsx as jsx157 } from "react/jsx-runtime";
|
|
43693
42358
|
var Toaster = ({ ...props }) => {
|
|
43694
42359
|
const { theme = "system" } = useTheme();
|
|
43695
|
-
return /* @__PURE__ */
|
|
42360
|
+
return /* @__PURE__ */ jsx157(
|
|
43696
42361
|
Sonner,
|
|
43697
42362
|
{
|
|
43698
42363
|
theme,
|
|
43699
42364
|
className: "toaster group",
|
|
43700
42365
|
icons: {
|
|
43701
|
-
success: /* @__PURE__ */
|
|
43702
|
-
info: /* @__PURE__ */
|
|
43703
|
-
warning: /* @__PURE__ */
|
|
43704
|
-
error: /* @__PURE__ */
|
|
43705
|
-
loading: /* @__PURE__ */
|
|
42366
|
+
success: /* @__PURE__ */ jsx157(CircleCheck, { className: "h-4 w-4" }),
|
|
42367
|
+
info: /* @__PURE__ */ jsx157(Info, { className: "h-4 w-4" }),
|
|
42368
|
+
warning: /* @__PURE__ */ jsx157(TriangleAlert, { className: "h-4 w-4" }),
|
|
42369
|
+
error: /* @__PURE__ */ jsx157(OctagonX, { className: "h-4 w-4" }),
|
|
42370
|
+
loading: /* @__PURE__ */ jsx157(LoaderCircle, { className: "h-4 w-4 animate-spin" })
|
|
43706
42371
|
},
|
|
43707
42372
|
toastOptions: {
|
|
43708
42373
|
classNames: {
|
|
@@ -43718,26 +42383,26 @@ var Toaster = ({ ...props }) => {
|
|
|
43718
42383
|
};
|
|
43719
42384
|
|
|
43720
42385
|
// src/components/ui/toggle-group.tsx
|
|
43721
|
-
import * as
|
|
42386
|
+
import * as React101 from "react";
|
|
43722
42387
|
import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
|
|
43723
|
-
import { jsx as
|
|
43724
|
-
var ToggleGroupContext =
|
|
42388
|
+
import { jsx as jsx158 } from "react/jsx-runtime";
|
|
42389
|
+
var ToggleGroupContext = React101.createContext({
|
|
43725
42390
|
size: "default",
|
|
43726
42391
|
variant: "default"
|
|
43727
42392
|
});
|
|
43728
|
-
var ToggleGroup =
|
|
42393
|
+
var ToggleGroup = React101.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsx158(
|
|
43729
42394
|
ToggleGroupPrimitive.Root,
|
|
43730
42395
|
{
|
|
43731
42396
|
ref,
|
|
43732
42397
|
className: cn("flex items-center justify-center gap-1", className),
|
|
43733
42398
|
...props,
|
|
43734
|
-
children: /* @__PURE__ */
|
|
42399
|
+
children: /* @__PURE__ */ jsx158(ToggleGroupContext.Provider, { value: { variant, size }, children })
|
|
43735
42400
|
}
|
|
43736
42401
|
));
|
|
43737
42402
|
ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
|
|
43738
|
-
var ToggleGroupItem =
|
|
43739
|
-
const context =
|
|
43740
|
-
return /* @__PURE__ */
|
|
42403
|
+
var ToggleGroupItem = React101.forwardRef(({ className, children, variant, size, ...props }, ref) => {
|
|
42404
|
+
const context = React101.useContext(ToggleGroupContext);
|
|
42405
|
+
return /* @__PURE__ */ jsx158(
|
|
43741
42406
|
ToggleGroupPrimitive.Item,
|
|
43742
42407
|
{
|
|
43743
42408
|
ref,
|
|
@@ -43756,7 +42421,7 @@ var ToggleGroupItem = React105.forwardRef(({ className, children, variant, size,
|
|
|
43756
42421
|
ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
|
|
43757
42422
|
|
|
43758
42423
|
// src/render/PXEngineRenderer.tsx
|
|
43759
|
-
import { jsx as
|
|
42424
|
+
import { jsx as jsx159, jsxs as jsxs110 } from "react/jsx-runtime";
|
|
43760
42425
|
var CONTEXT_DEPENDENT_COMPONENTS = /* @__PURE__ */ new Set([
|
|
43761
42426
|
// Form components - require FormField + FormItem context
|
|
43762
42427
|
"FormLabel",
|
|
@@ -43861,24 +42526,24 @@ var REGISTERED_COMPONENTS = /* @__PURE__ */ new Set([
|
|
|
43861
42526
|
]);
|
|
43862
42527
|
var renderContextDependentError = (componentName, normalizedName, key) => {
|
|
43863
42528
|
const suggestion = COMPONENT_SUGGESTIONS[normalizedName] || `${componentName}Atom (if available)`;
|
|
43864
|
-
return /* @__PURE__ */
|
|
42529
|
+
return /* @__PURE__ */ jsxs110(
|
|
43865
42530
|
"div",
|
|
43866
42531
|
{
|
|
43867
42532
|
className: "p-4 border-2 border-amber-500/50 rounded-lg bg-amber-50/80 space-y-2 my-2",
|
|
43868
42533
|
children: [
|
|
43869
|
-
/* @__PURE__ */
|
|
43870
|
-
/* @__PURE__ */
|
|
43871
|
-
/* @__PURE__ */
|
|
43872
|
-
/* @__PURE__ */
|
|
42534
|
+
/* @__PURE__ */ jsxs110("div", { className: "flex items-start gap-2", children: [
|
|
42535
|
+
/* @__PURE__ */ jsx159("span", { className: "text-amber-600 font-bold text-lg", children: "\u26A0\uFE0F" }),
|
|
42536
|
+
/* @__PURE__ */ jsxs110("div", { className: "flex-1", children: [
|
|
42537
|
+
/* @__PURE__ */ jsxs110("p", { className: "text-sm font-semibold text-amber-900", children: [
|
|
43873
42538
|
"Invalid Component: ",
|
|
43874
42539
|
componentName
|
|
43875
42540
|
] }),
|
|
43876
|
-
/* @__PURE__ */
|
|
42541
|
+
/* @__PURE__ */ jsx159("p", { className: "text-xs text-amber-700 mt-1", children: "This component requires React Context and cannot be rendered directly in schemas." })
|
|
43877
42542
|
] })
|
|
43878
42543
|
] }),
|
|
43879
|
-
/* @__PURE__ */
|
|
43880
|
-
/* @__PURE__ */
|
|
43881
|
-
/* @__PURE__ */
|
|
42544
|
+
/* @__PURE__ */ jsxs110("div", { className: "bg-white/60 p-3 rounded border border-amber-200", children: [
|
|
42545
|
+
/* @__PURE__ */ jsx159("p", { className: "text-xs font-semibold text-gray-700 mb-1.5", children: "\u2713 Use instead:" }),
|
|
42546
|
+
/* @__PURE__ */ jsx159("code", { className: "text-xs text-blue-700 bg-blue-50 px-2 py-1 rounded", children: suggestion })
|
|
43882
42547
|
] })
|
|
43883
42548
|
]
|
|
43884
42549
|
},
|
|
@@ -43956,12 +42621,12 @@ var PXEngineRenderer = ({
|
|
|
43956
42621
|
const root = schema.root || schema;
|
|
43957
42622
|
const renderRecursive = (component, index) => {
|
|
43958
42623
|
if (Array.isArray(component)) {
|
|
43959
|
-
return /* @__PURE__ */
|
|
42624
|
+
return /* @__PURE__ */ jsx159(React102.Fragment, { children: component.map((child, idx) => renderRecursive(child, idx)) }, index !== void 0 ? `array-${index}` : "array-root");
|
|
43960
42625
|
}
|
|
43961
42626
|
if (typeof component === "string" || typeof component === "number") {
|
|
43962
42627
|
return component;
|
|
43963
42628
|
}
|
|
43964
|
-
if (
|
|
42629
|
+
if (React102.isValidElement(component)) {
|
|
43965
42630
|
return component;
|
|
43966
42631
|
}
|
|
43967
42632
|
if (!component || typeof component !== "object") return null;
|
|
@@ -44040,7 +42705,7 @@ var PXEngineRenderer = ({
|
|
|
44040
42705
|
const isAtomWithRenderProp = ATOMS_WITH_RENDER.has(atomName);
|
|
44041
42706
|
const finalStyle = { ...dynamicStyle, ...finalProps.style || {} };
|
|
44042
42707
|
if (isAtomWithRenderProp) {
|
|
44043
|
-
return /* @__PURE__ */
|
|
42708
|
+
return /* @__PURE__ */ jsx159(
|
|
44044
42709
|
TargetComponent,
|
|
44045
42710
|
{
|
|
44046
42711
|
...finalProps,
|
|
@@ -44052,7 +42717,7 @@ var PXEngineRenderer = ({
|
|
|
44052
42717
|
uniqueKey
|
|
44053
42718
|
);
|
|
44054
42719
|
} else {
|
|
44055
|
-
return /* @__PURE__ */
|
|
42720
|
+
return /* @__PURE__ */ jsx159(
|
|
44056
42721
|
TargetComponent,
|
|
44057
42722
|
{
|
|
44058
42723
|
...finalProps,
|
|
@@ -44064,7 +42729,7 @@ var PXEngineRenderer = ({
|
|
|
44064
42729
|
);
|
|
44065
42730
|
}
|
|
44066
42731
|
};
|
|
44067
|
-
return /* @__PURE__ */
|
|
42732
|
+
return /* @__PURE__ */ jsx159("div", { className: "px-engine-root relative w-full h-full", children: renderRecursive(root) });
|
|
44068
42733
|
};
|
|
44069
42734
|
export {
|
|
44070
42735
|
Accordion,
|
|
@@ -44073,8 +42738,6 @@ export {
|
|
|
44073
42738
|
AccordionItem,
|
|
44074
42739
|
AccordionTrigger,
|
|
44075
42740
|
ActionButton,
|
|
44076
|
-
AgentCard,
|
|
44077
|
-
AgentDataTable,
|
|
44078
42741
|
Alert,
|
|
44079
42742
|
AlertAtom,
|
|
44080
42743
|
AlertDescription,
|
|
@@ -44233,7 +42896,6 @@ export {
|
|
|
44233
42896
|
InputOTPGroup,
|
|
44234
42897
|
InputOTPSeparator,
|
|
44235
42898
|
InputOTPSlot,
|
|
44236
|
-
InstructionPreview,
|
|
44237
42899
|
KbdAtom,
|
|
44238
42900
|
KeywordBundlesDisplay,
|
|
44239
42901
|
KeywordBundlesEdit,
|
|
@@ -44251,9 +42913,6 @@ export {
|
|
|
44251
42913
|
MenubarSeparator,
|
|
44252
42914
|
MenubarShortcut,
|
|
44253
42915
|
MenubarTrigger,
|
|
44254
|
-
MultiAgentCard,
|
|
44255
|
-
MultiAgentPlan,
|
|
44256
|
-
MultiAgentUISelector,
|
|
44257
42916
|
NavigationMenu,
|
|
44258
42917
|
NavigationMenuContent,
|
|
44259
42918
|
NavigationMenuItem,
|
|
@@ -44321,7 +42980,6 @@ export {
|
|
|
44321
42980
|
SocialPostCard,
|
|
44322
42981
|
Spinner,
|
|
44323
42982
|
SpinnerAtom,
|
|
44324
|
-
StageIndicator,
|
|
44325
42983
|
StatsGrid,
|
|
44326
42984
|
StepWizard,
|
|
44327
42985
|
Switch,
|
|
@@ -44345,16 +43003,13 @@ export {
|
|
|
44345
43003
|
TextareaAtom,
|
|
44346
43004
|
TimelineAtom,
|
|
44347
43005
|
ToggleAtom,
|
|
44348
|
-
ToolListCard,
|
|
44349
43006
|
Tooltip,
|
|
44350
43007
|
TooltipAtom,
|
|
44351
43008
|
TooltipContent,
|
|
44352
43009
|
TooltipProvider,
|
|
44353
43010
|
TooltipTrigger,
|
|
44354
43011
|
TopPostsGrid,
|
|
44355
|
-
UIComponentSelector,
|
|
44356
43012
|
VideoAtom,
|
|
44357
|
-
WorkflowVisualizer,
|
|
44358
43013
|
cn,
|
|
44359
43014
|
defaultFetchSelections,
|
|
44360
43015
|
defaultPersistSelection,
|