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/dist/index.mjs CHANGED
@@ -5,7 +5,7 @@ var __export = (target, all) => {
5
5
  };
6
6
 
7
7
  // src/render/PXEngineRenderer.tsx
8
- import React106 from "react";
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-2 p-3 bg-paperBackground rounded-md mb-8",
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-2", children: /* @__PURE__ */ jsxs54("div", { className: "w-full flex justify-between items-center flex-wrap gap-2", children: [
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-[6px] py-[2px] tracking-widest bg-purple200 hover:bg-purple200 text-purpleText text-xs font-normal rounded-[4px]",
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-3", children: [
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-5 w-5" })
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-5 w-5 animate-spin" }) : /* @__PURE__ */ jsx94(Save, { className: "h-5 w-5" })
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__ */ jsxs54("span", { className: cn(
34092
- "inline-flex items-center gap-1.5 text-[0.75rem] font-medium px-2 py-0.5 rounded-full",
34093
- isChanged ? "bg-yellow100 text-warningcolor" : "text-green-600 dark:text-green-500 bg-green-500/5"
34094
- ), children: [
34095
- isChanged ? "Changed by you" : "Suggested by an Agent",
34096
- isLatestMessage && /* @__PURE__ */ jsx94(
34097
- "span",
34098
- {
34099
- className: "flex items-center gap-1 cursor-pointer text-foreground hover:text-green-700 transition-colors ml-1 pl-1.5 ",
34100
- onClick: (e) => {
34101
- if (shouldStopPropagation !== false) {
34102
- e.stopPropagation();
34103
- }
34104
- onEdit?.();
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-lg px-3 py-2",
34116
- "text-base text-foreground/90 font-medium leading-relaxed"
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-[20px] bg-paperBackground dark:bg-gray100 border border-gray400 shadow-lg overflow-hidden mb-6 font-noto",
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-6 relative", children: [
34326
+ /* @__PURE__ */ jsxs56("div", { className: "p-4 relative", children: [
34343
34327
  !hideTitle && title && /* @__PURE__ */ jsx96(
34344
34328
  "h3",
34345
34329
  {
34346
- className: "text-gray900 dark:text-white mb-12 text-[1rem] font-bold",
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-[60px] top-[100px] bottom-[60px] w-[3px]",
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-6 flex justify-center", children: /* @__PURE__ */ jsxs56(
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-6 py-2.5 border rounded-full transition-colors text-sm font-medium flex items-center gap-2",
34396
- "bg-purpleLight dark:bg-purple200 text-purpleText2 dark:text-purpleText border-purpleText1 dark:border-purple100",
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-1 bg-grayPill border border-foreground rounded-md text-white text-sm font-grotesk font-medium",
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-2 px-3 py-1 bg-grayPill border border-foreground rounded-md text-foreground text-sm font-grotesk font-medium",
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-2 px-3 py-1 bg-grayPill border border-white rounded-md text-white text-sm font-medium hover:bg-red-900/40 hover:border-red-500 transition-all cursor-pointer group",
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-2 px-3 py-1 bg-grayPill border border-white rounded-md text-white text-sm font-medium",
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-2 px-3 py-1 bg-grayPill border border-foreground rounded-md text-foreground text-sm font-grotesk font-medium",
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-2 px-3 py-1 bg-grayPill border border-foreground rounded-md text-foreground text-sm font-grotesk font-medium",
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: cn("font-noto", className),
37281
- footer: !effectiveIsLatest && selectionStatus ? /* @__PURE__ */ jsxs83("div", { className: "flex justify-end items-center gap-1.5 text-green-600 text-[10px] font-semibold py-4 pr-6", children: [
37282
- /* @__PURE__ */ jsx123(CircleCheck, { className: "h-3.5 w-3.5" }),
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.5 text-green-600 text-xs font-semibold py-1", children: [
37448
- /* @__PURE__ */ jsx124(CircleCheck, { className: "h-4 w-4" }),
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-6 rounded-[20px] border border-gray400 bg-background dark:bg-gray200 font-noto w-full",
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("h4", { className: "font-medium text-foreground px-3 py-1 rounded-md inline-block mb-2", children: question }) }),
37611
- /* @__PURE__ */ jsx125("div", { className: "mb-6", children: /* @__PURE__ */ jsx125("div", { className: "space-y-4", children: optionsEntries.map(([key, label]) => {
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__ */ jsxs85(
37594
+ return /* @__PURE__ */ jsx125(
37615
37595
  "div",
37616
37596
  {
37617
37597
  onClick: (e) => handleOptionClick(key, e),
37618
37598
  className: cn(
37619
- "cursor-pointer rounded-xl p-3 transition-colors relative",
37620
- "border border-transparent bg-paperBackground",
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: "absolute top-1/2 left-4 transform -translate-y-1/2", children: /* @__PURE__ */ jsx125(
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-5 h-5 rounded-full border flex items-center justify-center transition-colors",
37630
- isSelected ? "border-purple100 bg-gray300" : cn(
37631
- "border-gray300 bg-background",
37632
- !selectedOption && !isOptionsDisabled && "hover:border-purple100"
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.5 h-2.5 rounded-full bg-purple100" })
37616
+ children: isSelected && /* @__PURE__ */ jsx125("div", { className: "w-2 h-2 rounded-full bg-gold" })
37636
37617
  }
37637
37618
  ) }),
37638
- /* @__PURE__ */ jsxs85("div", { className: "pl-12", children: [
37639
- (isRecommended || isSelected) && /* @__PURE__ */ jsxs85("div", { className: "flex gap-2 mb-2 flex-wrap", children: [
37640
- isRecommended && /* @__PURE__ */ jsx125("div", { className: "flex text-xs font-semibold", children: /* @__PURE__ */ jsx125("p", { className: "bg-greenBackground text-greenText px-2 py-1 rounded-[20px]", children: "Recommended" }) }),
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__ */ jsxs85("div", { className: "flex justify-between items-center", children: [
37660
- /* @__PURE__ */ jsx125("div", { className: "flex-1" }),
37661
- /* @__PURE__ */ jsx125(
37662
- "button",
37663
- {
37664
- onClick: handleProceed,
37665
- disabled: isContinueDisabled || isLoading || !selectedOption && !recommended,
37666
- className: cn(
37667
- "flex-3 px-4 py-2 border rounded-full text-sm disabled:opacity-50 disabled:cursor-not-allowed transition-colors",
37668
- "bg-purpleLight dark:bg-purple200 hover:bg-purpleText1 dark:hover:bg-purple100 text-purpleText2 dark:text-purpleText border-purpleText1 dark:border-purple-border dark:hover:text-white"
37669
- ),
37670
- children: isLoading ? "Sending..." : "Continue"
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-grayPill border border-foreground px-2 py-1 text-foreground text-sm font-grotesk font-medium rounded-md", children: String(label) }),
38336
- /* @__PURE__ */ jsx137("span", { className: "text-foreground", children: "=" }),
38337
- /* @__PURE__ */ jsx137("span", { className: "inline-flex items-center bg-grayPill border border-foreground px-2 py-1 text-foreground text-sm rounded-md font-grotesk font-medium", children: formatVal(value) })
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-grayPill border border-foreground px-2 py-1 text-foreground text-sm font-grotesk font-medium rounded-md", children: formatKey(k) }),
38351
- /* @__PURE__ */ jsx137("span", { className: "text-foreground", children: "=" }),
38352
- /* @__PURE__ */ jsx137("span", { className: "inline-flex items-center bg-grayPill border border-foreground px-2 py-1 text-foreground text-sm rounded-md font-grotesk font-medium", children: formatVal(v) })
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-foreground text-sm", children: displayValue });
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-foreground text-sm", children: val ? String(val) : "-" }),
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-foreground text-sm", children: display });
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-foreground text-sm leading-relaxed", children: val ? String(val) : "-" })
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-grayPill border border-foreground px-3 py-1 text-foreground text-sm font-grotesk font-medium rounded-md",
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-foreground text-sm", children: val !== void 0 && val !== null ? String(val) : "-" });
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-xl border bg-background dark:bg-gray100 relative transition-all duration-300",
38498
- isSelected || isRecommended ? "border-2 border-green500" : "border-gray400",
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-5 py-4 relative flex items-start justify-between cursor-pointer select-none",
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: "mb-1 py-1 text-txtColor font-bold text-lg", children: [
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("div", { className: "inline-flex text-[10px] font-bold uppercase tracking-widest", children: /* @__PURE__ */ jsx137("span", { className: "bg-green-600/20 text-green-600 px-2 py-1 rounded-[20px]", children: "Recommended" }) }),
38518
- !effectiveIsLatest && selectionStatus && /* @__PURE__ */ jsx137("div", { className: "inline-flex text-[10px] font-bold uppercase tracking-widest text-[#3B82F6]", children: /* @__PURE__ */ jsx137("span", { className: "bg-[#3B82F6]/10 px-2 py-0.5 rounded border border-[#3B82F6]/20", children: selectionStatus === "agent" ? "Selected by Agent" : "Selected by You" }) })
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-background hover:bg-gray200 dark:hover:bg-gray200 text-foreground rounded-lg shadow-lg",
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-4 py-3 w-full relative", children: [
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-[60px] top-[100px] bottom-[60px] w-[3px]",
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.5 text-green-600 text-[10px] font-semibold py-4 pr-6", children: [
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 jsx160 } from "react/jsx-runtime";
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__ */ jsx160(
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__ */ jsx160(
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__ */ jsx160(
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 jsx161 } from "react/jsx-runtime";
41111
+ import { jsx as jsx151 } from "react/jsx-runtime";
42447
41112
  function Empty({ className, ...props }) {
42448
- return /* @__PURE__ */ jsx161(
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__ */ jsx161(
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__ */ jsx161(
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__ */ jsx161(
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__ */ jsx161(
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__ */ jsx161(
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 jsx162, jsxs as jsxs118 } from "react/jsx-runtime";
41207
+ import { jsx as jsx152, jsxs as jsxs108 } from "react/jsx-runtime";
42543
41208
  function FieldSet({ className, ...props }) {
42544
- return /* @__PURE__ */ jsx162(
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__ */ jsx162(
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__ */ jsx162(
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__ */ jsx162(
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__ */ jsx162(
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__ */ jsx162(
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__ */ jsx162(
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__ */ jsx162(
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__ */ jsxs118(
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__ */ jsx162(Separator2, { className: "absolute inset-0 top-1/2" }),
42705
- children && /* @__PURE__ */ jsx162(
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__ */ jsx162("ul", { className: "ml-4 flex list-disc flex-col gap-1", children: errors.map(
42734
- (error, index) => error?.message && /* @__PURE__ */ jsx162("li", { children: error.message }, index)
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__ */ jsx162(
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 jsx163 } from "react/jsx-runtime";
41419
+ import { jsx as jsx153 } from "react/jsx-runtime";
42755
41420
  function InputGroup({ className, ...props }) {
42756
- return /* @__PURE__ */ jsx163(
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__ */ jsx163(
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__ */ jsx163(
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__ */ jsx163(
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__ */ jsx163(
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__ */ jsx163(
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 jsx164 } from "react/jsx-runtime";
41564
+ import { jsx as jsx154 } from "react/jsx-runtime";
42900
41565
  function ItemGroup({ className, ...props }) {
42901
- return /* @__PURE__ */ jsx164(
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__ */ jsx164(
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__ */ jsx164(
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__ */ jsx164(
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__ */ jsx164(
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__ */ jsx164(
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__ */ jsx164(
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__ */ jsx164(
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__ */ jsx164(
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__ */ jsx164(
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 jsx165 } from "react/jsx-runtime";
41737
+ import { jsx as jsx155 } from "react/jsx-runtime";
43073
41738
  function Kbd({ className, ...props }) {
43074
- return /* @__PURE__ */ jsx165(
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__ */ jsx165(
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 React104 from "react";
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 React103 from "react";
41770
+ import * as React99 from "react";
43106
41771
  var MOBILE_BREAKPOINT = 768;
43107
41772
  function useIsMobile() {
43108
- const [isMobile, setIsMobile] = React103.useState(void 0);
43109
- React103.useEffect(() => {
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 jsx166, jsxs as jsxs119 } from "react/jsx-runtime";
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 = React104.createContext(null);
41794
+ var SidebarContext = React100.createContext(null);
43130
41795
  function useSidebar() {
43131
- const context = React104.useContext(SidebarContext);
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 = React104.forwardRef(
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] = React104.useState(false);
43149
- const [_open, _setOpen] = React104.useState(defaultOpen);
41813
+ const [openMobile, setOpenMobile] = React100.useState(false);
41814
+ const [_open, _setOpen] = React100.useState(defaultOpen);
43150
41815
  const open = openProp ?? _open;
43151
- const setOpen = React104.useCallback(
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 = React104.useCallback(() => {
41828
+ const toggleSidebar = React100.useCallback(() => {
43164
41829
  return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
43165
41830
  }, [isMobile, setOpen, setOpenMobile]);
43166
- React104.useEffect(() => {
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 = React104.useMemo(
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__ */ jsx166(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx166(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ jsx166(
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 = React104.forwardRef(
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__ */ jsx166(
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__ */ jsx166(Sheet2, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ jsxs119(
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__ */ jsxs119(SheetHeader, { className: "sr-only", children: [
43246
- /* @__PURE__ */ jsx166(SheetTitle, { children: "Sidebar" }),
43247
- /* @__PURE__ */ jsx166(SheetDescription, { children: "Displays the mobile sidebar." })
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__ */ jsx166("div", { className: "flex h-full w-full flex-col", children })
41914
+ /* @__PURE__ */ jsx156("div", { className: "flex h-full w-full flex-col", children })
43250
41915
  ]
43251
41916
  }
43252
41917
  ) });
43253
41918
  }
43254
- return /* @__PURE__ */ jsxs119(
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__ */ jsx166(
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__ */ jsx166(
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__ */ jsx166(
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 = React104.forwardRef(({ className, onClick, ...props }, ref) => {
41967
+ var SidebarTrigger = React100.forwardRef(({ className, onClick, ...props }, ref) => {
43303
41968
  const { toggleSidebar } = useSidebar();
43304
- return /* @__PURE__ */ jsxs119(
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__ */ jsx166(PanelLeft, {}),
43319
- /* @__PURE__ */ jsx166("span", { className: "sr-only", children: "Toggle Sidebar" })
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 = React104.forwardRef(({ className, ...props }, ref) => {
41990
+ var SidebarRail = React100.forwardRef(({ className, ...props }, ref) => {
43326
41991
  const { toggleSidebar } = useSidebar();
43327
- return /* @__PURE__ */ jsx166(
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 = React104.forwardRef(({ className, ...props }, ref) => {
43351
- return /* @__PURE__ */ jsx166(
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 = React104.forwardRef(({ className, ...props }, ref) => {
43366
- return /* @__PURE__ */ jsx166(
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 = React104.forwardRef(({ className, ...props }, ref) => {
43381
- return /* @__PURE__ */ jsx166(
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 = React104.forwardRef(({ className, ...props }, ref) => {
43393
- return /* @__PURE__ */ jsx166(
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 = React104.forwardRef(({ className, ...props }, ref) => {
43405
- return /* @__PURE__ */ jsx166(
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 = React104.forwardRef(({ className, ...props }, ref) => {
43417
- return /* @__PURE__ */ jsx166(
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 = React104.forwardRef(({ className, ...props }, ref) => {
43432
- return /* @__PURE__ */ jsx166(
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 = React104.forwardRef(({ className, asChild = false, ...props }, ref) => {
42108
+ var SidebarGroupLabel = React100.forwardRef(({ className, asChild = false, ...props }, ref) => {
43444
42109
  const Comp = asChild ? Slot6 : "div";
43445
- return /* @__PURE__ */ jsx166(
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 = React104.forwardRef(({ className, asChild = false, ...props }, ref) => {
42125
+ var SidebarGroupAction = React100.forwardRef(({ className, asChild = false, ...props }, ref) => {
43461
42126
  const Comp = asChild ? Slot6 : "button";
43462
- return /* @__PURE__ */ jsx166(
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 = React104.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx166(
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 = React104.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx166(
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 = React104.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx166(
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 = React104.forwardRef(
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__ */ jsx166(
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__ */ jsxs119(Tooltip, { children: [
43561
- /* @__PURE__ */ jsx166(TooltipTrigger, { asChild: true, children: button }),
43562
- /* @__PURE__ */ jsx166(
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 = React104.forwardRef(({ className, asChild = false, showOnHover = false, ...props }, ref) => {
42240
+ var SidebarMenuAction = React100.forwardRef(({ className, asChild = false, showOnHover = false, ...props }, ref) => {
43576
42241
  const Comp = asChild ? Slot6 : "button";
43577
- return /* @__PURE__ */ jsx166(
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 = React104.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx166(
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 = React104.forwardRef(({ className, showIcon = false, ...props }, ref) => {
43617
- const width = React104.useMemo(() => {
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__ */ jsxs119(
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__ */ jsx166(
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__ */ jsx166(
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 = React104.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx166(
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 = React104.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx166("li", { ref, ...props }));
42329
+ var SidebarMenuSubItem = React100.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx156("li", { ref, ...props }));
43665
42330
  SidebarMenuSubItem.displayName = "SidebarMenuSubItem";
43666
- var SidebarMenuSubButton = React104.forwardRef(({ asChild = false, size = "md", isActive, className, ...props }, ref) => {
42331
+ var SidebarMenuSubButton = React100.forwardRef(({ asChild = false, size = "md", isActive, className, ...props }, ref) => {
43667
42332
  const Comp = asChild ? Slot6 : "a";
43668
- return /* @__PURE__ */ jsx166(
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 jsx167 } from "react/jsx-runtime";
42357
+ import { jsx as jsx157 } from "react/jsx-runtime";
43693
42358
  var Toaster = ({ ...props }) => {
43694
42359
  const { theme = "system" } = useTheme();
43695
- return /* @__PURE__ */ jsx167(
42360
+ return /* @__PURE__ */ jsx157(
43696
42361
  Sonner,
43697
42362
  {
43698
42363
  theme,
43699
42364
  className: "toaster group",
43700
42365
  icons: {
43701
- success: /* @__PURE__ */ jsx167(CircleCheck, { className: "h-4 w-4" }),
43702
- info: /* @__PURE__ */ jsx167(Info, { className: "h-4 w-4" }),
43703
- warning: /* @__PURE__ */ jsx167(TriangleAlert, { className: "h-4 w-4" }),
43704
- error: /* @__PURE__ */ jsx167(OctagonX, { className: "h-4 w-4" }),
43705
- loading: /* @__PURE__ */ jsx167(LoaderCircle, { className: "h-4 w-4 animate-spin" })
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 React105 from "react";
42386
+ import * as React101 from "react";
43722
42387
  import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
43723
- import { jsx as jsx168 } from "react/jsx-runtime";
43724
- var ToggleGroupContext = React105.createContext({
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 = React105.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsx168(
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__ */ jsx168(ToggleGroupContext.Provider, { value: { variant, size }, children })
42399
+ children: /* @__PURE__ */ jsx158(ToggleGroupContext.Provider, { value: { variant, size }, children })
43735
42400
  }
43736
42401
  ));
43737
42402
  ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
43738
- var ToggleGroupItem = React105.forwardRef(({ className, children, variant, size, ...props }, ref) => {
43739
- const context = React105.useContext(ToggleGroupContext);
43740
- return /* @__PURE__ */ jsx168(
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 jsx169, jsxs as jsxs120 } from "react/jsx-runtime";
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__ */ jsxs120(
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__ */ jsxs120("div", { className: "flex items-start gap-2", children: [
43870
- /* @__PURE__ */ jsx169("span", { className: "text-amber-600 font-bold text-lg", children: "\u26A0\uFE0F" }),
43871
- /* @__PURE__ */ jsxs120("div", { className: "flex-1", children: [
43872
- /* @__PURE__ */ jsxs120("p", { className: "text-sm font-semibold text-amber-900", children: [
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__ */ jsx169("p", { className: "text-xs text-amber-700 mt-1", children: "This component requires React Context and cannot be rendered directly in schemas." })
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__ */ jsxs120("div", { className: "bg-white/60 p-3 rounded border border-amber-200", children: [
43880
- /* @__PURE__ */ jsx169("p", { className: "text-xs font-semibold text-gray-700 mb-1.5", children: "\u2713 Use instead:" }),
43881
- /* @__PURE__ */ jsx169("code", { className: "text-xs text-blue-700 bg-blue-50 px-2 py-1 rounded", children: suggestion })
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__ */ jsx169(React106.Fragment, { children: component.map((child, idx) => renderRecursive(child, idx)) }, index !== void 0 ? `array-${index}` : "array-root");
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 (React106.isValidElement(component)) {
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__ */ jsx169(
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__ */ jsx169(
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__ */ jsx169("div", { className: "px-engine-root relative w-full h-full", children: renderRecursive(root) });
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,