pxengine 0.1.19 → 0.1.22

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 React96 from "react";
8
+ import React98 from "react";
9
9
 
10
10
  // src/atoms/index.ts
11
11
  var atoms_exports = {};
@@ -118,7 +118,8 @@ var buttonVariants = cva(
118
118
  outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
119
119
  secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
120
120
  ghost: "hover:bg-accent hover:text-accent-foreground",
121
- link: "text-primary underline-offset-4 hover:underline"
121
+ link: "text-primary underline-offset-4 hover:underline",
122
+ purple: "bg-purpleLight dark:bg-purple200 hover:bg-purpleText1 dark:hover:bg-purple100 text-purpleText2 dark:text-purpleText border border-purpleText1 dark:border-purpleText shadow-none font-medium"
122
123
  },
123
124
  size: {
124
125
  default: "h-10 px-4 py-2",
@@ -25262,7 +25263,8 @@ var badgeVariants = cva3(
25262
25263
  default: "border-transparent bg-primary text-primary-foreground hover:bg-primary/80",
25263
25264
  secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
25264
25265
  destructive: "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",
25265
- outline: "text-foreground"
25266
+ outline: "text-foreground",
25267
+ purple: "bg-purpleLight dark:bg-purple200 hover:bg-purpleText1 dark:hover:bg-purple100 text-purpleText2 dark:text-purpleText border border-purpleText1 dark:border-purpleText"
25266
25268
  }
25267
25269
  },
25268
25270
  defaultVariants: {
@@ -33283,6 +33285,7 @@ __export(molecules_exports, {
33283
33285
  AudienceDemographicsCard: () => AudienceDemographicsCard,
33284
33286
  AudienceMetricCard: () => AudienceMetricCard,
33285
33287
  BrandAffinityGroup: () => BrandAffinityGroup,
33288
+ CampaignConceptCard: () => CampaignConceptCard,
33286
33289
  CampaignSeedCard: () => CampaignSeedCard,
33287
33290
  ContentPreviewGallery: () => ContentPreviewGallery,
33288
33291
  CountrySelectDisplay: () => CountrySelectDisplay,
@@ -33290,6 +33293,7 @@ __export(molecules_exports, {
33290
33293
  CreatorActionHeader: () => CreatorActionHeader,
33291
33294
  CreatorGridCard: () => CreatorGridCard,
33292
33295
  CreatorProfileSummary: () => CreatorProfileSummary,
33296
+ CreatorSearch: () => CreatorSearch,
33293
33297
  DataGrid: () => DataGrid,
33294
33298
  EditableField: () => EditableField,
33295
33299
  EmptyState: () => EmptyState,
@@ -33640,12 +33644,13 @@ var EditableField = React85.memo(
33640
33644
  onSave,
33641
33645
  onCancel,
33642
33646
  isSaving = false,
33643
- isChanged = false,
33644
33647
  config = {},
33645
33648
  className,
33646
33649
  renderDisplay,
33647
- renderEdit
33650
+ renderEdit,
33651
+ ...rest
33648
33652
  }) => {
33653
+ void rest;
33649
33654
  const [localValue, setLocalValue] = useState5(value);
33650
33655
  const inputRef = useRef4(null);
33651
33656
  useEffect4(() => {
@@ -33682,7 +33687,7 @@ var EditableField = React85.memo(
33682
33687
  onKeyDown: handleKeyDown,
33683
33688
  placeholder: config.placeholder,
33684
33689
  rows: config.rows || 3,
33685
- className: "min-h-[80px] resize-none"
33690
+ className: "min-h-[80px] resize-none bg-background dark:bg-gray100 border-gray300"
33686
33691
  }
33687
33692
  );
33688
33693
  case "select":
@@ -33711,9 +33716,12 @@ var EditableField = React85.memo(
33711
33716
  /* @__PURE__ */ jsx94(
33712
33717
  Slider,
33713
33718
  {
33714
- defaultValue: [localValue?.min || 0, localValue?.max || 100],
33715
- max: config.sliderConfig?.max || 100,
33719
+ defaultValue: [
33720
+ localValue?.min || 0,
33721
+ localValue?.max || 100
33722
+ ],
33716
33723
  min: config.sliderConfig?.min || 0,
33724
+ max: config.sliderConfig?.max || 100,
33717
33725
  step: config.sliderConfig?.step || 1,
33718
33726
  onValueChange: ([min2, max2]) => setLocalValue({ min: min2, max: max2 })
33719
33727
  }
@@ -33731,7 +33739,8 @@ var EditableField = React85.memo(
33731
33739
  onKeyDown: handleKeyDown,
33732
33740
  min: config.numberConfig?.min,
33733
33741
  max: config.numberConfig?.max,
33734
- step: config.numberConfig?.step
33742
+ step: config.numberConfig?.step,
33743
+ className: "bg-background dark:bg-gray100 border-gray300"
33735
33744
  }
33736
33745
  );
33737
33746
  default:
@@ -33743,7 +33752,8 @@ var EditableField = React85.memo(
33743
33752
  value: localValue || "",
33744
33753
  onChange: (e) => setLocalValue(e.target.value),
33745
33754
  onKeyDown: handleKeyDown,
33746
- placeholder: config.placeholder
33755
+ placeholder: config.placeholder,
33756
+ className: "bg-background dark:bg-gray100 border-gray300"
33747
33757
  }
33748
33758
  );
33749
33759
  }
@@ -33753,60 +33763,77 @@ var EditableField = React85.memo(
33753
33763
  if (type === "slider") {
33754
33764
  return config.sliderConfig?.formatValue ? config.sliderConfig.formatValue(value) : `${value?.min} - ${value?.max}`;
33755
33765
  }
33756
- if (!value) return /* @__PURE__ */ jsx94("span", { className: "opacity-0", children: "-" });
33766
+ if (!value) {
33767
+ return /* @__PURE__ */ jsx94("span", { className: "opacity-0", children: "-" });
33768
+ }
33757
33769
  return value.toString();
33758
33770
  };
33759
- return /* @__PURE__ */ jsxs54("div", { className: cn("group flex flex-col gap-1 py-1.5", className), children: [
33760
- /* @__PURE__ */ jsxs54("div", { className: "flex items-center justify-between", children: [
33761
- /* @__PURE__ */ jsx94(Label, { className: "text-[13px] font-bold text-foreground opacity-80 uppercase tracking-wider", children: label }),
33762
- isChanged && !isEditingProp && /* @__PURE__ */ jsx94(
33763
- "div",
33764
- {
33765
- className: "w-2 h-2 rounded-full bg-amber-500 shadow-[0_0_8px_rgba(245,158,11,0.6)]",
33766
- title: "Unsaved changes"
33767
- }
33768
- )
33769
- ] }),
33770
- isEditingProp ? /* @__PURE__ */ jsxs54("div", { className: "flex flex-col gap-3", children: [
33771
- renderInput(),
33772
- /* @__PURE__ */ jsxs54("div", { className: "flex items-center justify-end gap-2", children: [
33773
- /* @__PURE__ */ jsx94(
33774
- Button,
33775
- {
33776
- size: "icon",
33777
- variant: "outline",
33778
- className: "h-9 w-9 text-destructive border-destructive/20 hover:bg-destructive/10 rounded-xl",
33779
- onClick: onCancel,
33780
- disabled: isSaving,
33781
- children: /* @__PURE__ */ jsx94(X, { className: "h-5 w-5" })
33782
- }
33783
- ),
33784
- /* @__PURE__ */ jsx94(
33785
- Button,
33771
+ return /* @__PURE__ */ jsxs54(
33772
+ "div",
33773
+ {
33774
+ className: cn(
33775
+ "relative z-10 group flex flex-col gap-2 p-3 bg-[#0A0A0A] rounded-md mb-8",
33776
+ className
33777
+ ),
33778
+ children: [
33779
+ /* @__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: [
33780
+ /* @__PURE__ */ jsx94(
33781
+ "h4",
33782
+ {
33783
+ className: "px-2 py-1 tracking-widest bg-purple200/50 dark:bg-purple-500/20 text-purpleText dark:text-purple-400 text-[10px] font-bold rounded uppercase",
33784
+ style: { fontFamily: "Noto Sans, sans-serif" },
33785
+ children: label
33786
+ }
33787
+ ),
33788
+ !isEditingProp && /* @__PURE__ */ jsxs54("span", { className: "inline-flex items-center gap-1 text-[10px] font-medium text-green-600 dark:text-green-500", children: [
33789
+ "Suggested by an Agent",
33790
+ /* @__PURE__ */ jsx94(
33791
+ Pencil,
33792
+ {
33793
+ className: "h-3 w-3 hover:text-green-700 cursor-pointer",
33794
+ onClick: onEdit
33795
+ }
33796
+ )
33797
+ ] })
33798
+ ] }) }),
33799
+ isEditingProp ? /* @__PURE__ */ jsxs54("div", { className: "flex flex-col gap-3", children: [
33800
+ renderInput(),
33801
+ /* @__PURE__ */ jsxs54("div", { className: "flex items-center justify-end gap-2", children: [
33802
+ /* @__PURE__ */ jsx94(
33803
+ Button,
33804
+ {
33805
+ size: "icon",
33806
+ variant: "outline",
33807
+ className: "h-8 w-8 text-destructive border-destructive/20 hover:bg-destructive/10 rounded-lg",
33808
+ onClick: onCancel,
33809
+ disabled: isSaving,
33810
+ children: /* @__PURE__ */ jsx94(X, { className: "h-4 w-4" })
33811
+ }
33812
+ ),
33813
+ /* @__PURE__ */ jsx94(
33814
+ Button,
33815
+ {
33816
+ size: "icon",
33817
+ className: "h-8 w-8 bg-purpleLight text-purpleText2 hover:bg-purpleText1 rounded-lg border border-purpleText1 shadow-none",
33818
+ onClick: handleSave,
33819
+ disabled: isSaving,
33820
+ children: isSaving ? /* @__PURE__ */ jsx94(LoaderCircle, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsx94(Check, { className: "h-4 w-4" })
33821
+ }
33822
+ )
33823
+ ] })
33824
+ ] }) : /* @__PURE__ */ jsx94(
33825
+ "div",
33786
33826
  {
33787
- size: "icon",
33788
- className: "h-9 w-9 bg-primary hover:opacity-90 text-primary-foreground rounded-xl shadow-lg shadow-primary/20",
33789
- onClick: handleSave,
33790
- disabled: isSaving,
33791
- children: isSaving ? /* @__PURE__ */ jsx94(LoaderCircle, { className: "h-5 w-5 animate-spin" }) : /* @__PURE__ */ jsx94(Check, { className: "h-5 w-5" })
33827
+ className: cn(
33828
+ "relative flex items-center justify-between rounded-lg px-3 py-2",
33829
+ "text-[14px] text-foreground font-normal leading-relaxed"
33830
+ ),
33831
+ children: /* @__PURE__ */ jsx94("div", { className: "flex-1", children: formattedValue() })
33792
33832
  }
33793
33833
  )
33794
- ] })
33795
- ] }) : /* @__PURE__ */ jsxs54(
33796
- "div",
33797
- {
33798
- className: cn(
33799
- "relative flex items-center justify-between rounded-xl px-2 py-1.5 transition-all duration-200",
33800
- "hover:bg-muted cursor-pointer border border-transparent hover:border-border group-hover:shadow-sm"
33801
- ),
33802
- onClick: onEdit,
33803
- children: [
33804
- /* @__PURE__ */ jsx94("div", { className: "text-[14px] text-foreground font-semibold truncate flex-1 leading-relaxed", children: formattedValue() }),
33805
- /* @__PURE__ */ jsx94(Pencil, { className: "h-4 w-4 text-muted-foreground opacity-0 group-hover:opacity-100 transition-opacity" })
33806
- ]
33807
- }
33808
- )
33809
- ] });
33834
+ ]
33835
+ }
33836
+ );
33810
33837
  }
33811
33838
  );
33812
33839
  EditableField.displayName = "EditableField";
@@ -33864,6 +33891,7 @@ var ActionButton = React86.memo(
33864
33891
  "relative min-w-[140px] overflow-hidden group transition-all duration-300",
33865
33892
  "bg-[var(--primary-color)] hover:opacity-90 text-white font-bold rounded-full px-5 py-2.5 shadow-[0_4px_14px_0_hsl(var(--primary)/30%)] hover:shadow-[0_6px_20px_0_hsl(var(--primary)/40%)]",
33866
33893
  variant === "outline" && "bg-transparent border-[var(--primary-color)] text-[var(--primary-color)] hover:bg-[var(--primary-color)]/5",
33894
+ variant === "purple" && "bg-gray100 hover:bg-gray200 text-foreground border border-purple100 shadow-none font-semibold px-8 py-3 h-auto",
33867
33895
  isLoading && "opacity-80"
33868
33896
  ),
33869
33897
  children: [
@@ -33903,7 +33931,7 @@ var ActionButton = React86.memo(
33903
33931
  ActionButton.displayName = "ActionButton";
33904
33932
 
33905
33933
  // src/molecules/generic/FormCard/FormCard.tsx
33906
- import React87 from "react";
33934
+ import React87, { useState as useState7 } from "react";
33907
33935
  import { jsx as jsx96, jsxs as jsxs56 } from "react/jsx-runtime";
33908
33936
  var FormCard = React87.memo(
33909
33937
  ({
@@ -33916,94 +33944,103 @@ var FormCard = React87.memo(
33916
33944
  onFieldEdit,
33917
33945
  onFieldSave,
33918
33946
  onFieldCancel,
33919
- showTimeline = false,
33920
- // Default to false to remove "bullets"
33947
+ showTimeline = true,
33921
33948
  proceedLabel,
33922
- countdown,
33923
- isPaused = false,
33924
- onPause,
33925
33949
  onProceed,
33950
+ isLatestMessage = true,
33926
33951
  className,
33927
33952
  footer
33928
33953
  }) => {
33954
+ const [showCopyButton, setShowCopyButton] = useState7(false);
33929
33955
  const handleCopyAll = () => {
33930
- const text = fields.map(
33931
- (f) => `${f.label}: ${typeof data[f.key] === "object" ? JSON.stringify(data[f.key]) : data[f.key]}`
33932
- ).join("\n");
33956
+ const text = fields.map((field) => {
33957
+ const value = data[field.key];
33958
+ return `${field.label}: ${typeof value === "object" ? JSON.stringify(value) : value}`;
33959
+ }).join("\n");
33933
33960
  navigator.clipboard.writeText(text);
33934
33961
  };
33935
33962
  return /* @__PURE__ */ jsxs56(
33936
- Card,
33963
+ "div",
33937
33964
  {
33938
33965
  className: cn(
33939
- "w-full rounded-[24px] border border-border bg-card shadow-lg overflow-hidden transition-all duration-300 hover:shadow-xl",
33966
+ "relative w-full rounded-[20px] bg-background dark:bg-gray50 border border-gray400 shadow-lg overflow-hidden mb-6",
33940
33967
  className
33941
33968
  ),
33969
+ onMouseEnter: () => setShowCopyButton(true),
33970
+ onMouseLeave: () => setShowCopyButton(false),
33942
33971
  children: [
33943
- /* @__PURE__ */ jsxs56(CardHeader, { className: "flex flex-row items-center justify-between pb-3 pt-4 px-6 space-y-0", children: [
33944
- /* @__PURE__ */ jsx96(CardTitle, { className: "text-lg font-bold text-foreground tracking-tight", children: title }),
33972
+ showCopyButton && /* @__PURE__ */ jsx96(
33973
+ "button",
33974
+ {
33975
+ onClick: handleCopyAll,
33976
+ title: "Copy all details",
33977
+ className: "absolute top-4 right-4 p-2 rounded-lg hover:bg-gray-100 dark:hover:bg-gray200 text-gray-400 hover:text-gray-600 dark:hover:text-gray300 transition-all active:scale-95 z-10",
33978
+ children: /* @__PURE__ */ jsx96(Copy, { className: "h-4 w-4" })
33979
+ }
33980
+ ),
33981
+ /* @__PURE__ */ jsxs56("div", { className: "p-6 relative", children: [
33945
33982
  /* @__PURE__ */ jsx96(
33946
- "button",
33983
+ "h3",
33947
33984
  {
33948
- onClick: handleCopyAll,
33949
- className: "p-1.5 rounded-xl hover:bg-foreground/5 text-foreground/40 hover:text-foreground/60 transition-all active:scale-95",
33950
- title: "Copy all details",
33951
- children: /* @__PURE__ */ jsx96(Copy, { className: "h-4 w-4" })
33985
+ className: "text-gray900 mb-12",
33986
+ style: { fontFamily: "Noto Sans, sans-serif" },
33987
+ children: title
33952
33988
  }
33953
- )
33954
- ] }),
33955
- /* @__PURE__ */ jsx96(CardContent, { className: "px-6 pt-1 pb-4", children: /* @__PURE__ */ jsxs56("div", { className: "relative", children: [
33956
- showTimeline && /* @__PURE__ */ jsx96("div", { className: "absolute left-[7px] top-2 bottom-6 w-0.5 border-l-2 border-dotted border-border pointer-events-none" }),
33957
- /* @__PURE__ */ jsx96("div", { className: "space-y-2.5", children: fields.map((field) => /* @__PURE__ */ jsxs56(
33989
+ ),
33990
+ showTimeline && /* @__PURE__ */ jsx96(
33958
33991
  "div",
33959
33992
  {
33960
- className: cn(
33961
- "relative transition-all duration-300",
33962
- showTimeline && "pl-8"
33963
- ),
33964
- children: [
33965
- showTimeline && /* @__PURE__ */ jsx96(
33966
- "div",
33967
- {
33968
- className: cn(
33969
- "absolute left-0 top-[18px] w-[14px] h-[14px] -translate-x-1/2 rounded-full border-2 bg-background z-10 transition-all duration-300",
33970
- changedFields[field.key] ? "border-amber-500 shadow-[0_0_8px_rgba(245,158,11,0.4)]" : "border-border shadow-sm"
33971
- )
33972
- }
33973
- ),
33974
- /* @__PURE__ */ jsx96(
33975
- EditableField,
33976
- {
33977
- label: field.label,
33978
- value: data[field.key],
33979
- type: field.type,
33980
- config: field,
33981
- isEditing: editingFields[field.key],
33982
- isChanged: changedFields[field.key],
33983
- isSaving: savingFields[field.key],
33984
- onEdit: () => onFieldEdit?.(field.key),
33985
- onSave: (val) => onFieldSave?.(field.key, val),
33986
- onCancel: () => onFieldCancel?.(field.key)
33987
- }
33988
- )
33989
- ]
33993
+ className: "absolute z-0 left-[60px] top-[100px] bottom-[60px] w-[3px]",
33994
+ style: {
33995
+ background: `
33996
+ radial-gradient(circle closest-side, #3C3D3E 98%, transparent) 50%/2px 5px repeat-y,
33997
+ linear-gradient(#3C3D3E 50%, transparent 0) 50%/2px 10px repeat-y
33998
+ `
33999
+ }
34000
+ }
34001
+ ),
34002
+ fields.map((field, index) => /* @__PURE__ */ jsx96(
34003
+ EditableField,
34004
+ {
34005
+ label: field.label,
34006
+ value: data[field.key],
34007
+ type: field.type,
34008
+ config: field,
34009
+ isEditing: editingFields[field.key],
34010
+ isChanged: changedFields[field.key],
34011
+ isSaving: savingFields[field.key],
34012
+ isLatestMessage,
34013
+ onEdit: () => onFieldEdit?.(field.key),
34014
+ onSave: (val) => onFieldSave?.(field.key, val),
34015
+ onCancel: () => onFieldCancel?.(field.key),
34016
+ renderDisplay: field.renderDisplay,
34017
+ renderEdit: field.renderEdit,
34018
+ showIndex: showTimeline,
34019
+ index,
34020
+ totalFields: fields.length
33990
34021
  },
33991
34022
  field.key
33992
- )) })
33993
- ] }) }),
33994
- (onProceed || footer) && /* @__PURE__ */ jsxs56(CardFooter, { className: "flex flex-col gap-3 border-t border-border bg-foreground/[0.03] p-6", children: [
33995
- onProceed && proceedLabel && /* @__PURE__ */ jsx96("div", { className: "w-full flex justify-center", children: /* @__PURE__ */ jsx96(
33996
- ActionButton,
33997
- {
33998
- label: proceedLabel,
33999
- countdown,
34000
- isPaused,
34001
- onPause,
34002
- onProceed
34003
- }
34004
- ) }),
34005
- footer
34006
- ] })
34023
+ ))
34024
+ ] }),
34025
+ isLatestMessage && onProceed && proceedLabel ? /* @__PURE__ */ jsx96("div", { className: "my-6 flex justify-center", children: /* @__PURE__ */ jsxs56(
34026
+ "button",
34027
+ {
34028
+ onClick: () => {
34029
+ if (isLatestMessage) {
34030
+ onProceed();
34031
+ }
34032
+ },
34033
+ className: cn(
34034
+ "px-6 py-2.5 border rounded-full transition-colors text-sm font-medium flex items-center gap-2",
34035
+ "bg-purpleLight dark:bg-purple200 text-purpleText2 dark:text-purpleText border-purpleText1 dark:border-purple100",
34036
+ "hover:bg-purpleText1 dark:hover:bg-purple100 dark:hover:text-white"
34037
+ ),
34038
+ children: [
34039
+ proceedLabel,
34040
+ /* @__PURE__ */ jsx96(ChevronRight, { className: "w-4 h-4" })
34041
+ ]
34042
+ }
34043
+ ) }) : !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
34007
34044
  ]
34008
34045
  }
34009
34046
  );
@@ -34525,59 +34562,41 @@ var CampaignSeedCard = React90.memo(
34525
34562
  const fields = useMemo4(() => {
34526
34563
  return providedFields || generateFieldsFromData(data);
34527
34564
  }, [providedFields, data]);
34528
- return /* @__PURE__ */ jsx106("div", { className: "flex flex-col gap-2", children: /* @__PURE__ */ jsx106(
34529
- FormCard,
34530
- {
34531
- ...formCardProps,
34532
- data,
34533
- title: formCardProps.title || "Campaign Brief",
34534
- fields,
34535
- className,
34536
- footer: !isLatestMessage && selectionStatus ? /* @__PURE__ */ jsxs66("div", { className: "flex justify-end items-center gap-1.5 text-green-600 text-xs font-semibold py-1", children: [
34537
- /* @__PURE__ */ jsx106(CircleCheck, { className: "h-4 w-4" }),
34538
- /* @__PURE__ */ jsx106("span", { children: selectionStatus === "agent" ? "Selected by Agent" : "Selected by User" })
34539
- ] }) : formCardProps.footer
34540
- }
34541
- ) });
34565
+ return /* @__PURE__ */ jsxs66("div", { className: "flex flex-col gap-2 mb-10", children: [
34566
+ /* @__PURE__ */ jsx106(
34567
+ FormCard,
34568
+ {
34569
+ ...formCardProps,
34570
+ data,
34571
+ title: formCardProps.title || "Campaign Brief",
34572
+ fields,
34573
+ className,
34574
+ footer: !isLatestMessage && selectionStatus ? /* @__PURE__ */ jsxs66("div", { className: "flex justify-end items-center gap-1.5 text-green-600 text-xs font-semibold py-1 mb-6", children: [
34575
+ /* @__PURE__ */ jsx106(CircleCheck, { className: "h-4 w-4" }),
34576
+ /* @__PURE__ */ jsx106("span", { children: selectionStatus === "agent" ? "Selected by Agent" : "Selected by User" })
34577
+ ] }) : formCardProps.footer
34578
+ }
34579
+ ),
34580
+ !isLatestMessage && selectionStatus && /* @__PURE__ */ jsx106("div", { className: "flex justify-center mt-4", children: /* @__PURE__ */ jsx106(
34581
+ "button",
34582
+ {
34583
+ className: cn(
34584
+ "flex items-center gap-2 px-6 py-2.5 border rounded-full text-sm transition-all active:scale-95",
34585
+ "bg-purpleLight dark:bg-purple200 hover:bg-purpleText1 dark:hover:bg-purple100 text-purpleText2 dark:text-purpleText border-purpleText1 dark:border-purpleText dark:hover:text-white"
34586
+ ),
34587
+ children: "Continue"
34588
+ }
34589
+ ) })
34590
+ ] });
34542
34591
  }
34543
34592
  );
34544
34593
  CampaignSeedCard.displayName = "CampaignSeedCard";
34545
34594
 
34546
34595
  // src/molecules/creator-discovery/SearchSpecCard/SearchSpecCard.tsx
34547
34596
  import React91, { useMemo as useMemo5 } from "react";
34548
- import { jsx as jsx107, jsxs as jsxs67 } from "react/jsx-runtime";
34549
- var SearchSpecCard = React91.memo(
34550
- ({
34551
- selectionStatus,
34552
- isLatestMessage = true,
34553
- className,
34554
- fields: providedFields,
34555
- data,
34556
- ...formCardProps
34557
- }) => {
34558
- const fields = useMemo5(() => {
34559
- return providedFields || generateFieldsFromData(data);
34560
- }, [providedFields, data]);
34561
- return /* @__PURE__ */ jsx107(
34562
- FormCard,
34563
- {
34564
- ...formCardProps,
34565
- data,
34566
- title: formCardProps.title || "Search Specification",
34567
- fields,
34568
- className,
34569
- footer: !isLatestMessage && selectionStatus ? /* @__PURE__ */ jsxs67("div", { className: "flex justify-end items-center gap-1.5 text-green-600 text-xs font-semibold py-1", children: [
34570
- /* @__PURE__ */ jsx107(CircleCheck, { className: "h-4 w-4" }),
34571
- /* @__PURE__ */ jsx107("span", { children: selectionStatus === "agent" ? "Selected by Agent" : "Selected by User" })
34572
- ] }) : formCardProps.footer
34573
- }
34574
- );
34575
- }
34576
- );
34577
- SearchSpecCard.displayName = "SearchSpecCard";
34578
34597
 
34579
34598
  // src/molecules/creator-discovery/SearchSpecCard/CustomFieldRenderers.tsx
34580
- import { useState as useState7, useRef as useRef5, useEffect as useEffect6 } from "react";
34599
+ import { useState as useState8, useRef as useRef5, useEffect as useEffect6 } from "react";
34581
34600
 
34582
34601
  // src/lib/countries.ts
34583
34602
  var countries = [
@@ -34784,13 +34803,13 @@ var countriesWithFlags = Object.fromEntries(
34784
34803
  );
34785
34804
 
34786
34805
  // src/molecules/creator-discovery/SearchSpecCard/CustomFieldRenderers.tsx
34787
- import { jsx as jsx108, jsxs as jsxs68 } from "react/jsx-runtime";
34806
+ import { jsx as jsx107, jsxs as jsxs67 } from "react/jsx-runtime";
34788
34807
  var CountrySelectEdit = ({
34789
34808
  value,
34790
34809
  onChange
34791
34810
  }) => {
34792
- const [isDropdownOpen, setIsDropdownOpen] = useState7(false);
34793
- const [searchTerm, setSearchTerm] = useState7("");
34811
+ const [isDropdownOpen, setIsDropdownOpen] = useState8(false);
34812
+ const [searchTerm, setSearchTerm] = useState8("");
34794
34813
  const dropdownRef = useRef5(null);
34795
34814
  useEffect6(() => {
34796
34815
  const handleClickOutside = (event) => {
@@ -34802,16 +34821,16 @@ var CountrySelectEdit = ({
34802
34821
  return () => document.removeEventListener("mousedown", handleClickOutside);
34803
34822
  }, []);
34804
34823
  const inputValue = Array.isArray(value) ? value : [];
34805
- return /* @__PURE__ */ jsxs68("div", { className: "space-y-3", children: [
34806
- /* @__PURE__ */ jsxs68("div", { className: "relative", ref: dropdownRef, children: [
34807
- /* @__PURE__ */ jsxs68(
34824
+ return /* @__PURE__ */ jsxs67("div", { className: "space-y-3", children: [
34825
+ /* @__PURE__ */ jsxs67("div", { className: "relative", ref: dropdownRef, children: [
34826
+ /* @__PURE__ */ jsxs67(
34808
34827
  "div",
34809
34828
  {
34810
34829
  className: "flex-1 bg-white border border-gray200 rounded-md px-3 py-2 text-sm cursor-pointer flex items-center justify-between font-medium hover:border-purple500 transition-colors",
34811
34830
  onClick: () => setIsDropdownOpen(!isDropdownOpen),
34812
34831
  children: [
34813
- /* @__PURE__ */ jsx108("span", { className: "text-gray-700", children: inputValue.length > 0 ? `${inputValue.length} ${inputValue.length === 1 ? "country" : "countries"} selected` : "Select countries..." }),
34814
- /* @__PURE__ */ jsx108(
34832
+ /* @__PURE__ */ jsx107("span", { className: "text-gray-700", children: inputValue.length > 0 ? `${inputValue.length} ${inputValue.length === 1 ? "country" : "countries"} selected` : "Select countries..." }),
34833
+ /* @__PURE__ */ jsx107(
34815
34834
  ChevronDown,
34816
34835
  {
34817
34836
  className: cn(
@@ -34823,8 +34842,8 @@ var CountrySelectEdit = ({
34823
34842
  ]
34824
34843
  }
34825
34844
  ),
34826
- isDropdownOpen && /* @__PURE__ */ jsxs68("div", { className: "absolute top-full left-0 right-0 mt-1 bg-white border border-gray200 rounded-lg shadow-xl z-50 max-h-60 overflow-hidden animate-in fade-in slide-in-from-top-1", children: [
34827
- /* @__PURE__ */ jsx108("div", { className: "p-2 border-b border-gray-100", children: /* @__PURE__ */ jsx108(
34845
+ isDropdownOpen && /* @__PURE__ */ jsxs67("div", { className: "absolute top-full left-0 right-0 mt-1 bg-white border border-gray200 rounded-lg shadow-xl z-50 max-h-60 overflow-hidden animate-in fade-in slide-in-from-top-1", children: [
34846
+ /* @__PURE__ */ jsx107("div", { className: "p-2 border-b border-gray-100", children: /* @__PURE__ */ jsx107(
34828
34847
  "input",
34829
34848
  {
34830
34849
  type: "text",
@@ -34835,9 +34854,9 @@ var CountrySelectEdit = ({
34835
34854
  onClick: (e) => e.stopPropagation()
34836
34855
  }
34837
34856
  ) }),
34838
- /* @__PURE__ */ jsx108("div", { className: "max-h-40 overflow-y-auto p-1", children: countries.filter(
34857
+ /* @__PURE__ */ jsx107("div", { className: "max-h-40 overflow-y-auto p-1", children: countries.filter(
34839
34858
  (country) => country.name.toLowerCase().includes(searchTerm.toLowerCase()) || country.code.toLowerCase().includes(searchTerm.toLowerCase())
34840
- ).map((country) => /* @__PURE__ */ jsxs68(
34859
+ ).map((country) => /* @__PURE__ */ jsxs67(
34841
34860
  "div",
34842
34861
  {
34843
34862
  className: cn(
@@ -34858,31 +34877,31 @@ var CountrySelectEdit = ({
34858
34877
  }
34859
34878
  },
34860
34879
  children: [
34861
- /* @__PURE__ */ jsxs68("div", { className: "flex items-center gap-2", children: [
34862
- /* @__PURE__ */ jsx108("span", { className: "text-sm text-gray-700", children: country.name }),
34863
- /* @__PURE__ */ jsx108("span", { className: "text-xs text-gray-400 font-mono", children: country.code })
34880
+ /* @__PURE__ */ jsxs67("div", { className: "flex items-center gap-2", children: [
34881
+ /* @__PURE__ */ jsx107("span", { className: "text-sm text-gray-700", children: country.name }),
34882
+ /* @__PURE__ */ jsx107("span", { className: "text-xs text-gray-400 font-mono", children: country.code })
34864
34883
  ] }),
34865
- inputValue.includes(country.code) && /* @__PURE__ */ jsx108(Check, { className: "h-4 w-4 text-purple500" })
34884
+ inputValue.includes(country.code) && /* @__PURE__ */ jsx107(Check, { className: "h-4 w-4 text-purple500" })
34866
34885
  ]
34867
34886
  },
34868
34887
  country.code
34869
34888
  )) })
34870
34889
  ] })
34871
34890
  ] }),
34872
- inputValue.length > 0 && /* @__PURE__ */ jsx108("div", { className: "flex flex-wrap gap-1.5", children: inputValue.map((countryCode) => /* @__PURE__ */ jsxs68(
34891
+ inputValue.length > 0 && /* @__PURE__ */ jsx107("div", { className: "flex flex-wrap gap-1.5", children: inputValue.map((countryCode) => /* @__PURE__ */ jsxs67(
34873
34892
  Badge2,
34874
34893
  {
34875
34894
  variant: "secondary",
34876
34895
  className: "bg-purple50 text-purple700 border-purple100 hover:bg-purple100 cursor-default flex items-center gap-1 pr-1",
34877
34896
  children: [
34878
34897
  countryCode,
34879
- /* @__PURE__ */ jsxs68(
34898
+ /* @__PURE__ */ jsxs67(
34880
34899
  "button",
34881
34900
  {
34882
34901
  onClick: () => onChange(inputValue.filter((c) => c !== countryCode)),
34883
34902
  className: "hover:bg-purple200 rounded-full p-0.5 transition-colors",
34884
34903
  children: [
34885
- /* @__PURE__ */ jsx108(ChevronDown, { className: "h-3 w-3 rotate-45" }),
34904
+ /* @__PURE__ */ jsx107(ChevronDown, { className: "h-3 w-3 rotate-45" }),
34886
34905
  " "
34887
34906
  ]
34888
34907
  }
@@ -34895,9 +34914,9 @@ var CountrySelectEdit = ({
34895
34914
  };
34896
34915
  var CountrySelectDisplay = ({ value }) => {
34897
34916
  if (!value || !Array.isArray(value) || value.length === 0) {
34898
- return /* @__PURE__ */ jsx108("span", { className: "text-muted-foreground italic", children: "Not specified" });
34917
+ return /* @__PURE__ */ jsx107("span", { className: "text-muted-foreground italic", children: "Not specified" });
34899
34918
  }
34900
- return /* @__PURE__ */ jsx108("div", { className: "flex flex-wrap gap-1.5", children: value.map((countryCode) => /* @__PURE__ */ jsx108(
34919
+ return /* @__PURE__ */ jsx107("div", { className: "flex flex-wrap gap-1.5", children: value.map((countryCode) => /* @__PURE__ */ jsx107(
34901
34920
  Badge2,
34902
34921
  {
34903
34922
  variant: "outline",
@@ -34919,22 +34938,22 @@ var KeywordBundlesEdit = ({
34919
34938
  groups[p].push({ bundle: b, index: idx });
34920
34939
  });
34921
34940
  const sortedPriorities = Object.keys(groups).map((n) => parseInt(n)).sort((a, b) => a - b);
34922
- return /* @__PURE__ */ jsx108("div", { className: "space-y-6 pt-2", children: sortedPriorities.map((priority) => /* @__PURE__ */ jsxs68("div", { className: "space-y-3", children: [
34923
- /* @__PURE__ */ jsxs68("div", { className: "flex items-center gap-2", children: [
34924
- /* @__PURE__ */ jsxs68(Badge2, { className: "bg-purple500 hover:bg-purple500", children: [
34941
+ return /* @__PURE__ */ jsx107("div", { className: "space-y-6 pt-2", children: sortedPriorities.map((priority) => /* @__PURE__ */ jsxs67("div", { className: "space-y-3", children: [
34942
+ /* @__PURE__ */ jsxs67("div", { className: "flex items-center gap-2", children: [
34943
+ /* @__PURE__ */ jsxs67(Badge2, { className: "bg-purple500 hover:bg-purple500", children: [
34925
34944
  "Priority ",
34926
34945
  priority
34927
34946
  ] }),
34928
- /* @__PURE__ */ jsx108("div", { className: "h-px flex-1 bg-gray-100" })
34947
+ /* @__PURE__ */ jsx107("div", { className: "h-px flex-1 bg-gray-100" })
34929
34948
  ] }),
34930
- groups[priority].map(({ bundle, index: bundleIndex }) => /* @__PURE__ */ jsx108(
34949
+ groups[priority].map(({ bundle, index: bundleIndex }) => /* @__PURE__ */ jsx107(
34931
34950
  "div",
34932
34951
  {
34933
34952
  className: "bg-gray-50/50 border border-gray-100 rounded-xl p-4 transition-all hover:bg-gray-50 hover:border-gray-200 shadow-sm",
34934
- children: /* @__PURE__ */ jsxs68("div", { className: "flex flex-col gap-3", children: [
34935
- /* @__PURE__ */ jsx108("label", { className: "text-[10px] font-bold text-gray-400 uppercase tracking-widest pl-1", children: "Keywords" }),
34936
- /* @__PURE__ */ jsxs68("div", { className: "space-y-3", children: [
34937
- /* @__PURE__ */ jsx108("div", { className: "flex flex-wrap gap-1.5", children: Array.isArray(bundle.keywords) && bundle.keywords.map((keyword, kIndex) => /* @__PURE__ */ jsxs68(
34953
+ children: /* @__PURE__ */ jsxs67("div", { className: "flex flex-col gap-3", children: [
34954
+ /* @__PURE__ */ jsx107("label", { className: "text-[10px] font-bold text-gray-400 uppercase tracking-widest pl-1", children: "Keywords" }),
34955
+ /* @__PURE__ */ jsxs67("div", { className: "space-y-3", children: [
34956
+ /* @__PURE__ */ jsx107("div", { className: "flex flex-wrap gap-1.5", children: Array.isArray(bundle.keywords) && bundle.keywords.map((keyword, kIndex) => /* @__PURE__ */ jsxs67(
34938
34957
  Badge2,
34939
34958
  {
34940
34959
  className: "bg-white border-gray-200 text-gray-700 hover:bg-red-50 hover:text-red-600 hover:border-red-100 transition-all cursor-pointer group",
@@ -34950,12 +34969,12 @@ var KeywordBundlesEdit = ({
34950
34969
  },
34951
34970
  children: [
34952
34971
  keyword,
34953
- /* @__PURE__ */ jsx108("span", { className: "ml-1 opacity-0 group-hover:opacity-100 transition-opacity", children: "\xD7" })
34972
+ /* @__PURE__ */ jsx107("span", { className: "ml-1 opacity-0 group-hover:opacity-100 transition-opacity", children: "\xD7" })
34954
34973
  ]
34955
34974
  },
34956
34975
  kIndex
34957
34976
  )) }),
34958
- /* @__PURE__ */ jsx108("div", { className: "flex gap-2", children: /* @__PURE__ */ jsx108(
34977
+ /* @__PURE__ */ jsx107("div", { className: "flex gap-2", children: /* @__PURE__ */ jsx107(
34959
34978
  "input",
34960
34979
  {
34961
34980
  type: "text",
@@ -34979,9 +34998,9 @@ var KeywordBundlesEdit = ({
34979
34998
  }
34980
34999
  ) })
34981
35000
  ] }),
34982
- /* @__PURE__ */ jsxs68("div", { className: "flex flex-col gap-1.5 mt-1", children: [
34983
- /* @__PURE__ */ jsx108("label", { className: "text-[10px] font-bold text-gray-400 uppercase tracking-widest pl-1", children: "Priority Level (1-5)" }),
34984
- /* @__PURE__ */ jsx108(
35001
+ /* @__PURE__ */ jsxs67("div", { className: "flex flex-col gap-1.5 mt-1", children: [
35002
+ /* @__PURE__ */ jsx107("label", { className: "text-[10px] font-bold text-gray-400 uppercase tracking-widest pl-1", children: "Priority Level (1-5)" }),
35003
+ /* @__PURE__ */ jsx107(
34985
35004
  "input",
34986
35005
  {
34987
35006
  type: "number",
@@ -35009,7 +35028,7 @@ var KeywordBundlesEdit = ({
35009
35028
  var KeywordBundlesDisplay = ({ value }) => {
35010
35029
  const bundles = Array.isArray(value) ? value : [];
35011
35030
  if (bundles.length === 0)
35012
- return /* @__PURE__ */ jsx108("span", { className: "text-muted-foreground italic", children: "Not specified" });
35031
+ return /* @__PURE__ */ jsx107("span", { className: "text-gray-500 italic text-sm", children: "Not specified" });
35013
35032
  const groups = {};
35014
35033
  bundles.forEach((b) => {
35015
35034
  const p = Number(b?.priority) || 1;
@@ -35018,28 +35037,20 @@ var KeywordBundlesDisplay = ({ value }) => {
35018
35037
  groups[p].push(...keywords);
35019
35038
  });
35020
35039
  const sortedPriorities = Object.keys(groups).map((n) => parseInt(n)).sort((a, b) => a - b);
35021
- return /* @__PURE__ */ jsx108("div", { className: "space-y-4 pt-1", children: sortedPriorities.map((priority) => {
35040
+ return /* @__PURE__ */ jsx107("div", { className: "space-y-4 pt-2", children: sortedPriorities.map((priority) => {
35022
35041
  const deduped = Array.from(new Set(groups[priority]));
35023
- return /* @__PURE__ */ jsxs68("div", { className: "space-y-2", children: [
35024
- /* @__PURE__ */ jsxs68("div", { className: "flex items-center gap-2", children: [
35025
- /* @__PURE__ */ jsxs68(
35026
- Badge2,
35027
- {
35028
- variant: "outline",
35029
- className: "text-[10px] uppercase tracking-wider text-purple600 border-purple100 bg-purple50/30",
35030
- children: [
35031
- "Priority ",
35032
- priority
35033
- ]
35034
- }
35035
- ),
35036
- /* @__PURE__ */ jsx108("div", { className: "h-px flex-1 bg-gray-100/50" })
35042
+ return /* @__PURE__ */ jsxs67("div", { className: "space-y-2", children: [
35043
+ /* @__PURE__ */ jsxs67("div", { className: "flex items-center gap-2", children: [
35044
+ /* @__PURE__ */ jsxs67("span", { className: "text-[10px] uppercase tracking-widest text-purple-400 font-bold", children: [
35045
+ "Priority ",
35046
+ priority
35047
+ ] }),
35048
+ /* @__PURE__ */ jsx107("div", { className: "h-[1px] flex-1 bg-white/10" })
35037
35049
  ] }),
35038
- /* @__PURE__ */ jsx108("div", { className: "flex flex-wrap gap-1.5", children: deduped.map((keyword) => /* @__PURE__ */ jsx108(
35039
- Badge2,
35050
+ /* @__PURE__ */ jsx107("div", { className: "flex flex-wrap gap-2", children: deduped.map((keyword) => /* @__PURE__ */ jsx107(
35051
+ "div",
35040
35052
  {
35041
- variant: "secondary",
35042
- className: "bg-white border-gray-200 text-gray-700 font-medium",
35053
+ className: "px-2 py-1 rounded bg-[#1A1A1A] border border-white/10 text-gray-300 text-xs font-medium",
35043
35054
  children: keyword
35044
35055
  },
35045
35056
  keyword
@@ -35048,124 +35059,223 @@ var KeywordBundlesDisplay = ({ value }) => {
35048
35059
  }) });
35049
35060
  };
35050
35061
 
35062
+ // src/molecules/creator-discovery/SearchSpecCard/SearchSpecCard.tsx
35063
+ import { jsx as jsx108, jsxs as jsxs68 } from "react/jsx-runtime";
35064
+ var ObjectDisplay = ({ value }) => {
35065
+ if (!value || typeof value !== "object") return null;
35066
+ return /* @__PURE__ */ jsx108("div", { className: "space-y-1 pt-1", children: Object.entries(value).map(([k, v]) => /* @__PURE__ */ jsxs68("div", { className: "flex gap-2 text-sm", children: [
35067
+ /* @__PURE__ */ jsxs68("span", { className: "text-muted-foreground capitalize min-w-[120px]", children: [
35068
+ k.replace(/_/g, " "),
35069
+ ":"
35070
+ ] }),
35071
+ /* @__PURE__ */ jsx108("span", { className: "text-foreground font-medium", children: Array.isArray(v) ? v.join(", ") : String(v) })
35072
+ ] }, k)) });
35073
+ };
35074
+ var StringArrayDisplay = ({ value }) => {
35075
+ if (!Array.isArray(value) || value.length === 0)
35076
+ return /* @__PURE__ */ jsx108("span", { className: "text-muted-foreground italic text-sm", children: "Not specified" });
35077
+ return /* @__PURE__ */ jsx108("div", { className: "flex flex-wrap gap-1.5 pt-1", children: value.map((item) => /* @__PURE__ */ jsx108(Badge2, { variant: "outline", className: "text-xs", children: item }, item)) });
35078
+ };
35079
+ function buildSearchSpecFields(data) {
35080
+ if (!data || typeof data !== "object") return [];
35081
+ return Object.keys(data).map((key) => {
35082
+ const value = data[key];
35083
+ if (key === "keyword_bundles") {
35084
+ return {
35085
+ key,
35086
+ label: "Keyword Bundles",
35087
+ type: "custom",
35088
+ renderDisplay: (v) => /* @__PURE__ */ jsx108(KeywordBundlesDisplay, { value: v }),
35089
+ renderEdit: (v, onChange) => /* @__PURE__ */ jsx108(KeywordBundlesEdit, { value: v, onChange })
35090
+ };
35091
+ }
35092
+ if (key === "geography") {
35093
+ return {
35094
+ key,
35095
+ label: "Geography",
35096
+ type: "custom",
35097
+ renderDisplay: (v) => /* @__PURE__ */ jsx108(CountrySelectDisplay, { value: v }),
35098
+ renderEdit: (v, onChange) => /* @__PURE__ */ jsx108(CountrySelectEdit, { value: v, onChange })
35099
+ };
35100
+ }
35101
+ if (key === "platforms" && Array.isArray(value)) {
35102
+ return {
35103
+ key,
35104
+ label: "Platforms",
35105
+ type: "custom",
35106
+ renderDisplay: (v) => /* @__PURE__ */ jsx108(StringArrayDisplay, { value: v })
35107
+ };
35108
+ }
35109
+ if (typeof value === "object" && value !== null && !Array.isArray(value) && !("min" in value && "max" in value)) {
35110
+ const label = key.split("_").map((w) => w.charAt(0).toUpperCase() + w.slice(1)).join(" ");
35111
+ return {
35112
+ key,
35113
+ label,
35114
+ type: "custom",
35115
+ renderDisplay: (v) => /* @__PURE__ */ jsx108(ObjectDisplay, { value: v })
35116
+ };
35117
+ }
35118
+ const [generated] = generateFieldsFromData({ [key]: value });
35119
+ return generated;
35120
+ });
35121
+ }
35122
+ var SearchSpecCard = React91.memo(
35123
+ ({
35124
+ selectionStatus,
35125
+ isLatestMessage = true,
35126
+ className,
35127
+ fields: providedFields,
35128
+ data,
35129
+ specData,
35130
+ ...formCardProps
35131
+ }) => {
35132
+ const resolvedData = data || specData;
35133
+ const fields = useMemo5(() => {
35134
+ return providedFields || buildSearchSpecFields(resolvedData ?? {});
35135
+ }, [providedFields, resolvedData]);
35136
+ return /* @__PURE__ */ jsx108(
35137
+ FormCard,
35138
+ {
35139
+ ...formCardProps,
35140
+ data: resolvedData ?? {},
35141
+ title: formCardProps.title || "Search Specification",
35142
+ fields,
35143
+ className,
35144
+ footer: !isLatestMessage && selectionStatus ? /* @__PURE__ */ jsxs68("div", { className: "flex justify-end items-center gap-1.5 text-green-600 text-xs font-semibold py-1", children: [
35145
+ /* @__PURE__ */ jsx108(CircleCheck, { className: "h-4 w-4" }),
35146
+ /* @__PURE__ */ jsx108("span", { children: selectionStatus === "agent" ? "Selected by Agent" : "Selected by User" })
35147
+ ] }) : formCardProps.footer
35148
+ }
35149
+ );
35150
+ }
35151
+ );
35152
+ SearchSpecCard.displayName = "SearchSpecCard";
35153
+
35051
35154
  // src/molecules/creator-discovery/MCQCard/MCQCard.tsx
35052
- import React92, { useState as useState8 } from "react";
35155
+ import React92 from "react";
35053
35156
  import { jsx as jsx109, jsxs as jsxs69 } from "react/jsx-runtime";
35054
35157
  var MCQCard = React92.memo(
35055
35158
  ({
35056
35159
  question,
35057
35160
  options,
35058
35161
  recommended,
35059
- selectedOption,
35162
+ selectedOption: propsSelectedOption,
35060
35163
  onSelect,
35061
- onAction,
35164
+ onProceed,
35062
35165
  isLatestMessage = true,
35063
- countdown,
35064
- isPaused = false,
35065
- onPause,
35066
35166
  isLoading = false,
35067
35167
  className,
35068
- selectionStatus
35168
+ selectionStatus,
35169
+ onAction,
35170
+ disabled = false
35069
35171
  }) => {
35070
- const [localSelected, setLocalSelected] = useState8(null);
35071
- const effectiveSelected = selectedOption ?? localSelected;
35072
- const handleOptionClick = (key) => {
35073
- if (!isLoading) {
35074
- setLocalSelected(key);
35172
+ const [selectedOption, setSelectedOption] = React92.useState(propsSelectedOption);
35173
+ const [isProceeded, setIsProceeded] = React92.useState(false);
35174
+ React92.useEffect(() => {
35175
+ if (propsSelectedOption) {
35176
+ setSelectedOption(propsSelectedOption);
35177
+ setIsProceeded(true);
35178
+ }
35179
+ }, [propsSelectedOption]);
35180
+ const handleOptionClick = (key, e) => {
35181
+ e.preventDefault();
35182
+ e.stopPropagation();
35183
+ if (isLatestMessage && !isLoading && !disabled && !isProceeded) {
35184
+ setSelectedOption(key);
35075
35185
  onSelect?.(key);
35076
35186
  }
35077
35187
  };
35078
- const handleProceed = () => {
35079
- const value = effectiveSelected || recommended || "";
35080
- if (value) {
35081
- if (onAction) {
35082
- onAction(value);
35083
- }
35188
+ const handleProceed = (e) => {
35189
+ e.preventDefault();
35190
+ e.stopPropagation();
35191
+ if ((selectedOption || recommended) && !disabled && !isProceeded) {
35192
+ const result = selectedOption || recommended || "";
35193
+ setIsProceeded(true);
35194
+ onProceed?.(result);
35195
+ onAction?.({
35196
+ type: "mcq_selection",
35197
+ value: result,
35198
+ label: options[result] || result
35199
+ });
35084
35200
  }
35085
35201
  };
35202
+ const isInteractionDisabled = disabled || !isLatestMessage || isProceeded;
35086
35203
  return /* @__PURE__ */ jsxs69(
35087
- Card,
35204
+ "div",
35088
35205
  {
35089
35206
  className: cn(
35090
- "w-full rounded-[24px] border border-border bg-card shadow-sm overflow-hidden",
35207
+ "p-6 rounded-[20px] border border-gray400 bg-background dark:bg-gray200 font-noto w-full",
35091
35208
  className
35092
35209
  ),
35093
35210
  children: [
35094
- /* @__PURE__ */ jsx109(CardHeader, { className: "pb-2", children: /* @__PURE__ */ jsx109(CardTitle, { className: "text-lg font-bold text-foreground tracking-tight leading-snug", children: question }) }),
35095
- /* @__PURE__ */ jsx109(CardContent, { className: "space-y-3 pb-6", children: Object.entries(options).map(([key, label]) => {
35096
- const isSelected = effectiveSelected === key;
35211
+ /* @__PURE__ */ jsx109("div", { className: "mb-4", children: /* @__PURE__ */ jsx109("h4", { className: "font-medium text-foreground px-3 py-1 rounded-md inline-block mb-2", children: question }) }),
35212
+ /* @__PURE__ */ jsx109("div", { className: "mb-6", children: /* @__PURE__ */ jsx109("div", { className: "space-y-4", children: Object.entries(options).map(([key, label]) => {
35213
+ const isSelected = selectedOption === key;
35097
35214
  const isRecommended = key === recommended;
35098
35215
  return /* @__PURE__ */ jsxs69(
35099
35216
  "div",
35100
35217
  {
35101
- onClick: () => handleOptionClick(key),
35218
+ onClick: (e) => handleOptionClick(key, e),
35102
35219
  className: cn(
35103
- "group relative flex items-start gap-4 p-4 rounded-2xl border transition-all duration-200 cursor-pointer",
35104
- isSelected ? "border-primary bg-primary/5 shadow-[0_0_0_1px_theme(colors.primary.DEFAULT)]" : "border-border bg-background/30 hover:border-gray-300 hover:bg-background/50",
35105
- isLoading && "opacity-50 cursor-not-allowed"
35220
+ "cursor-pointer rounded-xl p-3 transition-colors relative",
35221
+ "border border-transparent bg-paperBackground",
35222
+ !selectedOption && !isInteractionDisabled && "hover:border-gray500",
35223
+ (isLoading || isInteractionDisabled) && "opacity-50 cursor-not-allowed"
35106
35224
  ),
35107
35225
  children: [
35108
- /* @__PURE__ */ jsx109(
35226
+ /* @__PURE__ */ jsx109("div", { className: "absolute top-1/2 left-4 transform -translate-y-1/2", children: /* @__PURE__ */ jsx109(
35109
35227
  "div",
35110
35228
  {
35111
35229
  className: cn(
35112
- "mt-1 w-5 h-5 rounded-full border-2 flex items-center justify-center transition-colors",
35113
- isSelected ? "border-primary bg-primary" : "border-border bg-background group-hover:border-gray-400"
35230
+ "w-5 h-5 rounded-full border flex items-center justify-center transition-colors",
35231
+ isSelected ? "border-purple100 bg-gray300" : cn(
35232
+ "border-gray300 bg-background",
35233
+ !selectedOption && !isInteractionDisabled && "hover:border-purple100"
35234
+ )
35114
35235
  ),
35115
- children: isSelected && /* @__PURE__ */ jsx109("div", { className: "w-1.5 h-1.5 rounded-full bg-white" })
35236
+ children: isSelected && /* @__PURE__ */ jsx109("div", { className: "w-2.5 h-2.5 rounded-full bg-purple100" })
35116
35237
  }
35117
- ),
35118
- /* @__PURE__ */ jsx109("div", { className: "flex-1 space-y-1.5", children: /* @__PURE__ */ jsxs69("div", { className: "flex items-center gap-2 flex-wrap", children: [
35119
- /* @__PURE__ */ jsx109(
35120
- "span",
35121
- {
35122
- className: cn(
35123
- "text-sm font-semibold transition-colors",
35124
- isSelected ? "text-foreground" : "text-foreground/80"
35125
- ),
35126
- children: label
35127
- }
35128
- ),
35129
- isRecommended && /* @__PURE__ */ jsxs69(
35130
- Badge2,
35131
- {
35132
- variant: "outline",
35133
- className: "bg-green-500/10 text-green-500 border-green-500/20 flex items-center gap-1 text-[10px] py-0 h-5",
35134
- children: [
35135
- /* @__PURE__ */ jsx109(Sparkles, { className: "h-3 w-3" }),
35136
- "Recommended"
35137
- ]
35138
- }
35139
- ),
35140
- isSelected && /* @__PURE__ */ jsx109(
35141
- Badge2,
35142
- {
35143
- variant: "outline",
35144
- className: "bg-[var(--primary-color)]/10 text-[var(--primary-color)] border-[var(--primary-color)]/20 text-[10px] py-0 h-5",
35145
- children: "Selected"
35146
- }
35147
- )
35148
- ] }) })
35238
+ ) }),
35239
+ /* @__PURE__ */ jsxs69("div", { className: "pl-12", children: [
35240
+ (isRecommended || isSelected) && /* @__PURE__ */ jsxs69("div", { className: "flex gap-2 mb-2 flex-wrap", children: [
35241
+ isRecommended && /* @__PURE__ */ jsx109("div", { className: "flex text-xs font-semibold", children: /* @__PURE__ */ jsx109("p", { className: "bg-greenBackground text-greenText px-2 py-1 rounded-[20px]", children: "Recommended" }) }),
35242
+ isSelected && /* @__PURE__ */ jsx109("div", { className: "flex text-xs font-semibold", children: /* @__PURE__ */ jsx109(
35243
+ "p",
35244
+ {
35245
+ className: cn(
35246
+ "px-2 py-1 rounded-[20px]",
35247
+ selectedOption === recommended ? "bg-purpleLight text-purpleText2 dark:bg-primary/20 dark:text-primary" : "bg-paperBackground text-primaryDark2 dark:bg-primary/20 dark:text-primary"
35248
+ ),
35249
+ children: "Selected by you"
35250
+ }
35251
+ ) })
35252
+ ] }),
35253
+ /* @__PURE__ */ jsx109("div", { className: "text-base font-medium text-txtColor", children: label })
35254
+ ] })
35149
35255
  ]
35150
35256
  },
35151
35257
  key
35152
35258
  );
35153
- }) }),
35154
- /* @__PURE__ */ jsx109(CardFooter, { className: "flex flex-col gap-4 pt-0 border-t border-[var(--border-color)] bg-black/5 p-6", children: isLatestMessage ? /* @__PURE__ */ jsx109("div", { className: "w-full flex justify-center", children: /* @__PURE__ */ jsx109(
35155
- ActionButton,
35156
- {
35157
- label: effectiveSelected ? "Continue" : "Proceed with Recommendation",
35158
- countdown,
35159
- isPaused,
35160
- onPause,
35161
- onProceed: handleProceed,
35162
- isLoading,
35163
- disabled: !effectiveSelected && !recommended
35164
- }
35165
- ) }) : /* @__PURE__ */ jsxs69("div", { className: "w-full flex justify-end items-center gap-1.5 text-green-500 text-xs font-semibold", children: [
35166
- /* @__PURE__ */ jsx109(CircleCheck, { className: "h-4 w-4" }),
35167
- /* @__PURE__ */ jsx109("span", { children: selectionStatus === "agent" ? "Suggested by Agent, Approved by You" : "Selected by You" })
35168
- ] }) })
35259
+ }) }) }),
35260
+ /* @__PURE__ */ jsxs69("div", { className: "flex justify-between items-center", children: [
35261
+ /* @__PURE__ */ jsx109("div", { className: "flex-1" }),
35262
+ /* @__PURE__ */ jsx109(
35263
+ "button",
35264
+ {
35265
+ onClick: (e) => handleProceed(e),
35266
+ disabled: isInteractionDisabled || isLoading || !selectedOption && !recommended,
35267
+ className: cn(
35268
+ "flex-3 px-4 py-2 border rounded-full text-sm disabled:opacity-50 disabled:cursor-not-allowed transition-colors",
35269
+ "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"
35270
+ ),
35271
+ children: isLoading ? "Sending..." : "Continue"
35272
+ }
35273
+ ),
35274
+ isLatestMessage ? /* @__PURE__ */ jsx109("div", { className: "flex-1" }) : /* @__PURE__ */ jsx109("div", { className: "flex-1 text-right text-xs bg-green100 text-green-600 dark:text-green500", children: selectionStatus === "agent" ? /* @__PURE__ */ jsxs69("div", { className: "flex flex-col gap-1 sm:flex-row sm:justify-end", children: [
35275
+ /* @__PURE__ */ jsx109("span", { className: "whitespace-nowrap", children: "Suggested by an Agent," }),
35276
+ /* @__PURE__ */ jsx109("span", { className: "whitespace-nowrap", children: "Approved by You" })
35277
+ ] }) : /* @__PURE__ */ jsx109("span", { children: "Selected by you" }) })
35278
+ ] })
35169
35279
  ]
35170
35280
  }
35171
35281
  );
@@ -35645,6 +35755,216 @@ var CreatorActionHeader = ({
35645
35755
  );
35646
35756
  };
35647
35757
 
35758
+ // src/molecules/creator-discovery/CreatorSearchBox/CreatorSearch.tsx
35759
+ import React93, { useMemo as useMemo6 } from "react";
35760
+ import { jsx as jsx120, jsxs as jsxs79 } from "react/jsx-runtime";
35761
+ var CreatorSearch = React93.memo(
35762
+ ({
35763
+ selectionStatus,
35764
+ isLatestMessage = true,
35765
+ className,
35766
+ fields: providedFields,
35767
+ data,
35768
+ ...formCardProps
35769
+ }) => {
35770
+ const fields = useMemo6(() => {
35771
+ const baseFields = providedFields || generateFieldsFromData(data);
35772
+ return baseFields.map((field) => {
35773
+ if (field.key === "platforms") {
35774
+ return {
35775
+ ...field,
35776
+ renderDisplay: (val) => {
35777
+ const platforms = Array.isArray(val) ? val : [val];
35778
+ return /* @__PURE__ */ jsx120("div", { className: "flex flex-wrap gap-2", children: platforms.map((p) => /* @__PURE__ */ jsx120(
35779
+ BadgeAtom,
35780
+ {
35781
+ id: `platform-${p}`,
35782
+ type: "badge",
35783
+ label: p,
35784
+ variant: "outline",
35785
+ className: "bg-[#1A1A1A] border-gray400 text-white font-medium"
35786
+ },
35787
+ p
35788
+ )) });
35789
+ }
35790
+ };
35791
+ }
35792
+ if (field.key === "geography") {
35793
+ return {
35794
+ ...field,
35795
+ renderDisplay: (val) => /* @__PURE__ */ jsx120(CountrySelectDisplay, { value: val })
35796
+ };
35797
+ }
35798
+ if (field.key === "keywordBundles") {
35799
+ return {
35800
+ ...field,
35801
+ renderDisplay: (val) => /* @__PURE__ */ jsx120(KeywordBundlesDisplay, { value: val })
35802
+ };
35803
+ }
35804
+ if (field.key === "followerRange") {
35805
+ return {
35806
+ ...field,
35807
+ renderDisplay: (val) => {
35808
+ if (typeof val === "object" && val !== null) {
35809
+ return /* @__PURE__ */ jsx120("span", { className: "text-white font-medium", children: `${val.min?.toLocaleString()} - ${val.max?.toLocaleString()} followers` });
35810
+ }
35811
+ return /* @__PURE__ */ jsxs79("span", { className: "text-white font-medium", children: [
35812
+ val,
35813
+ " followers"
35814
+ ] });
35815
+ }
35816
+ };
35817
+ }
35818
+ if (field.key === "initialCreators") {
35819
+ return {
35820
+ ...field,
35821
+ renderDisplay: (val) => /* @__PURE__ */ jsxs79("span", { className: "text-white font-medium", children: [
35822
+ val,
35823
+ " creators"
35824
+ ] })
35825
+ };
35826
+ }
35827
+ return field;
35828
+ });
35829
+ }, [providedFields, data]);
35830
+ return /* @__PURE__ */ jsx120("div", { className: "flex flex-col gap-2", children: /* @__PURE__ */ jsx120(
35831
+ FormCard,
35832
+ {
35833
+ ...formCardProps,
35834
+ data,
35835
+ title: formCardProps.title || "Creator Search Settings",
35836
+ fields,
35837
+ showTimeline: true,
35838
+ className: cn("font-noto", className),
35839
+ footer: !isLatestMessage && selectionStatus ? /* @__PURE__ */ jsxs79("div", { className: "flex justify-end items-center gap-1.5 text-green-600 text-[10px] font-semibold py-4 pr-6", children: [
35840
+ /* @__PURE__ */ jsx120(CircleCheck, { className: "h-3.5 w-3.5" }),
35841
+ /* @__PURE__ */ jsx120("span", { children: selectionStatus === "agent" ? "Suggested by Agent" : "Selected by you" })
35842
+ ] }) : formCardProps.footer
35843
+ }
35844
+ ) });
35845
+ }
35846
+ );
35847
+ CreatorSearch.displayName = "CreatorSearch";
35848
+
35849
+ // src/molecules/creator-discovery/CampaignConceptCard/CampaignConceptCard.tsx
35850
+ import React94, { useMemo as useMemo7, useState as useState9 } from "react";
35851
+ import { motion, AnimatePresence } from "framer-motion";
35852
+ import { jsx as jsx121, jsxs as jsxs80 } from "react/jsx-runtime";
35853
+ var CampaignConceptCard = React94.memo(
35854
+ ({
35855
+ isRecommended,
35856
+ isOpen: controlledIsOpen,
35857
+ onToggle,
35858
+ data,
35859
+ fields: providedFields,
35860
+ title,
35861
+ selectionStatus,
35862
+ isLatestMessage = true,
35863
+ className,
35864
+ ...formCardProps
35865
+ }) => {
35866
+ const [internalIsOpen, setInternalIsOpen] = useState9(false);
35867
+ const isOpen = controlledIsOpen !== void 0 ? controlledIsOpen : internalIsOpen;
35868
+ const handleToggle = () => {
35869
+ if (onToggle) {
35870
+ onToggle();
35871
+ } else {
35872
+ setInternalIsOpen(!internalIsOpen);
35873
+ }
35874
+ };
35875
+ const fields = useMemo7(() => {
35876
+ const baseFields = providedFields || generateFieldsFromData(data);
35877
+ return baseFields.map((field) => {
35878
+ if (field.key === "budgetAllocation") {
35879
+ return {
35880
+ ...field,
35881
+ renderDisplay: (val) => {
35882
+ if (!Array.isArray(val)) return /* @__PURE__ */ jsx121("span", { children: val });
35883
+ return /* @__PURE__ */ jsx121("div", { className: "space-y-2", children: val.map((item, idx) => /* @__PURE__ */ jsxs80("div", { className: "flex items-center gap-2 text-xs font-medium", children: [
35884
+ /* @__PURE__ */ jsxs80("span", { children: [
35885
+ idx + 1,
35886
+ "."
35887
+ ] }),
35888
+ /* @__PURE__ */ jsx121("div", { className: "bg-[#1A1A1A] border border-white/10 px-2 py-0.5 rounded text-gray-300", children: item.label }),
35889
+ /* @__PURE__ */ jsx121("span", { className: "text-gray-400", children: "=" }),
35890
+ /* @__PURE__ */ jsx121("div", { className: "bg-[#1A1A1A] border border-white/10 px-2 py-0.5 rounded text-gray-300", children: item.value })
35891
+ ] }, idx)) });
35892
+ }
35893
+ };
35894
+ }
35895
+ if (field.key === "estimatedCreators") {
35896
+ return {
35897
+ ...field,
35898
+ renderDisplay: (val) => {
35899
+ if (!Array.isArray(val)) return /* @__PURE__ */ jsx121("span", { className: "text-white font-medium", children: val });
35900
+ return /* @__PURE__ */ jsx121("div", { className: "flex gap-2", children: val.map((v, idx) => /* @__PURE__ */ jsx121("div", { className: "bg-[#1A1A1A] border border-white/10 px-2 py-0.5 rounded text-white text-xs font-medium", children: v }, idx)) });
35901
+ }
35902
+ };
35903
+ }
35904
+ return {
35905
+ ...field,
35906
+ renderDisplay: (val) => /* @__PURE__ */ jsx121("span", { className: "text-gray-300 text-sm", children: val })
35907
+ };
35908
+ });
35909
+ }, [providedFields, data]);
35910
+ return /* @__PURE__ */ jsxs80(
35911
+ "div",
35912
+ {
35913
+ className: cn(
35914
+ "w-full rounded-[20px] transition-all duration-300 bg-background dark:bg-gray50",
35915
+ isOpen ? "border border-green-500/50 shadow-[0_0_15px_rgba(34,197,94,0.1)]" : "border border-gray400",
35916
+ className
35917
+ ),
35918
+ children: [
35919
+ /* @__PURE__ */ jsxs80(
35920
+ "div",
35921
+ {
35922
+ className: "flex items-center justify-between p-6 cursor-pointer select-none",
35923
+ onClick: handleToggle,
35924
+ children: [
35925
+ /* @__PURE__ */ jsxs80("div", { className: "flex flex-col gap-2", children: [
35926
+ /* @__PURE__ */ jsx121("h3", { className: "text-lg font-semibold text-white tracking-wide", children: title || data.title }),
35927
+ isRecommended && /* @__PURE__ */ jsx121("div", { className: "inline-flex text-[10px] font-bold uppercase tracking-widest text-[#22C55E]", children: /* @__PURE__ */ jsx121("span", { className: "bg-[#22C55E]/10 px-2 py-0.5 rounded border border-[#22C55E]/20", children: "Recommended" }) })
35928
+ ] }),
35929
+ /* @__PURE__ */ jsx121("div", { className: cn(
35930
+ "p-2 rounded-lg bg-white/5 border border-white/10 text-gray-400 transition-transform duration-300",
35931
+ isOpen && "rotate-180"
35932
+ ), children: /* @__PURE__ */ jsx121(ChevronDown, { className: "h-4 w-4" }) })
35933
+ ]
35934
+ }
35935
+ ),
35936
+ /* @__PURE__ */ jsx121(AnimatePresence, { initial: false, children: isOpen && /* @__PURE__ */ jsx121(
35937
+ motion.div,
35938
+ {
35939
+ initial: { height: 0, opacity: 0 },
35940
+ animate: { height: "auto", opacity: 1 },
35941
+ exit: { height: 0, opacity: 0 },
35942
+ transition: { duration: 0.3, ease: "easeInOut" },
35943
+ className: "overflow-hidden",
35944
+ children: /* @__PURE__ */ jsx121("div", { className: "px-6 pb-6 pt-0 border-t border-white/5", children: /* @__PURE__ */ jsx121(
35945
+ FormCard,
35946
+ {
35947
+ ...formCardProps,
35948
+ title: title || data.title || "Campaign Concept",
35949
+ data,
35950
+ fields,
35951
+ showTimeline: true,
35952
+ className: "bg-transparent border-none shadow-none mb-0 p-0",
35953
+ footer: !isLatestMessage && selectionStatus ? /* @__PURE__ */ jsxs80("div", { className: "flex justify-end items-center gap-1.5 text-green-600 text-[10px] font-semibold py-4 pr-6", children: [
35954
+ /* @__PURE__ */ jsx121(CircleCheck, { className: "h-3.5 w-3.5" }),
35955
+ /* @__PURE__ */ jsx121("span", { children: selectionStatus === "agent" ? "Selected by Agent" : "Selected by You" })
35956
+ ] }) : formCardProps.footer
35957
+ }
35958
+ ) })
35959
+ }
35960
+ ) })
35961
+ ]
35962
+ }
35963
+ );
35964
+ }
35965
+ );
35966
+ CampaignConceptCard.displayName = "CampaignConceptCard";
35967
+
35648
35968
  // src/components/ui/index.ts
35649
35969
  var ui_exports = {};
35650
35970
  __export(ui_exports, {
@@ -35937,7 +36257,7 @@ __export(ui_exports, {
35937
36257
  // src/components/ui/button-group.tsx
35938
36258
  import { Slot as Slot4 } from "@radix-ui/react-slot";
35939
36259
  import { cva as cva8 } from "class-variance-authority";
35940
- import { jsx as jsx120 } from "react/jsx-runtime";
36260
+ import { jsx as jsx122 } from "react/jsx-runtime";
35941
36261
  var buttonGroupVariants = cva8(
35942
36262
  "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",
35943
36263
  {
@@ -35957,7 +36277,7 @@ function ButtonGroup({
35957
36277
  orientation,
35958
36278
  ...props
35959
36279
  }) {
35960
- return /* @__PURE__ */ jsx120(
36280
+ return /* @__PURE__ */ jsx122(
35961
36281
  "div",
35962
36282
  {
35963
36283
  role: "group",
@@ -35974,7 +36294,7 @@ function ButtonGroupText({
35974
36294
  ...props
35975
36295
  }) {
35976
36296
  const Comp = asChild ? Slot4 : "div";
35977
- return /* @__PURE__ */ jsx120(
36297
+ return /* @__PURE__ */ jsx122(
35978
36298
  Comp,
35979
36299
  {
35980
36300
  className: cn(
@@ -35990,7 +36310,7 @@ function ButtonGroupSeparator({
35990
36310
  orientation = "vertical",
35991
36311
  ...props
35992
36312
  }) {
35993
- return /* @__PURE__ */ jsx120(
36313
+ return /* @__PURE__ */ jsx122(
35994
36314
  Separator2,
35995
36315
  {
35996
36316
  "data-slot": "button-group-separator",
@@ -36006,9 +36326,9 @@ function ButtonGroupSeparator({
36006
36326
 
36007
36327
  // src/components/ui/empty.tsx
36008
36328
  import { cva as cva9 } from "class-variance-authority";
36009
- import { jsx as jsx121 } from "react/jsx-runtime";
36329
+ import { jsx as jsx123 } from "react/jsx-runtime";
36010
36330
  function Empty({ className, ...props }) {
36011
- return /* @__PURE__ */ jsx121(
36331
+ return /* @__PURE__ */ jsx123(
36012
36332
  "div",
36013
36333
  {
36014
36334
  "data-slot": "empty",
@@ -36021,7 +36341,7 @@ function Empty({ className, ...props }) {
36021
36341
  );
36022
36342
  }
36023
36343
  function EmptyHeader({ className, ...props }) {
36024
- return /* @__PURE__ */ jsx121(
36344
+ return /* @__PURE__ */ jsx123(
36025
36345
  "div",
36026
36346
  {
36027
36347
  "data-slot": "empty-header",
@@ -36052,7 +36372,7 @@ function EmptyMedia({
36052
36372
  variant = "default",
36053
36373
  ...props
36054
36374
  }) {
36055
- return /* @__PURE__ */ jsx121(
36375
+ return /* @__PURE__ */ jsx123(
36056
36376
  "div",
36057
36377
  {
36058
36378
  "data-slot": "empty-icon",
@@ -36063,7 +36383,7 @@ function EmptyMedia({
36063
36383
  );
36064
36384
  }
36065
36385
  function EmptyTitle({ className, ...props }) {
36066
- return /* @__PURE__ */ jsx121(
36386
+ return /* @__PURE__ */ jsx123(
36067
36387
  "div",
36068
36388
  {
36069
36389
  "data-slot": "empty-title",
@@ -36073,7 +36393,7 @@ function EmptyTitle({ className, ...props }) {
36073
36393
  );
36074
36394
  }
36075
36395
  function EmptyDescription({ className, ...props }) {
36076
- return /* @__PURE__ */ jsx121(
36396
+ return /* @__PURE__ */ jsx123(
36077
36397
  "div",
36078
36398
  {
36079
36399
  "data-slot": "empty-description",
@@ -36086,7 +36406,7 @@ function EmptyDescription({ className, ...props }) {
36086
36406
  );
36087
36407
  }
36088
36408
  function EmptyContent({ className, ...props }) {
36089
- return /* @__PURE__ */ jsx121(
36409
+ return /* @__PURE__ */ jsx123(
36090
36410
  "div",
36091
36411
  {
36092
36412
  "data-slot": "empty-content",
@@ -36100,11 +36420,11 @@ function EmptyContent({ className, ...props }) {
36100
36420
  }
36101
36421
 
36102
36422
  // src/components/ui/field.tsx
36103
- import { useMemo as useMemo6 } from "react";
36423
+ import { useMemo as useMemo8 } from "react";
36104
36424
  import { cva as cva10 } from "class-variance-authority";
36105
- import { jsx as jsx122, jsxs as jsxs79 } from "react/jsx-runtime";
36425
+ import { jsx as jsx124, jsxs as jsxs81 } from "react/jsx-runtime";
36106
36426
  function FieldSet({ className, ...props }) {
36107
- return /* @__PURE__ */ jsx122(
36427
+ return /* @__PURE__ */ jsx124(
36108
36428
  "fieldset",
36109
36429
  {
36110
36430
  "data-slot": "field-set",
@@ -36122,7 +36442,7 @@ function FieldLegend({
36122
36442
  variant = "legend",
36123
36443
  ...props
36124
36444
  }) {
36125
- return /* @__PURE__ */ jsx122(
36445
+ return /* @__PURE__ */ jsx124(
36126
36446
  "legend",
36127
36447
  {
36128
36448
  "data-slot": "field-legend",
@@ -36138,7 +36458,7 @@ function FieldLegend({
36138
36458
  );
36139
36459
  }
36140
36460
  function FieldGroup({ className, ...props }) {
36141
- return /* @__PURE__ */ jsx122(
36461
+ return /* @__PURE__ */ jsx124(
36142
36462
  "div",
36143
36463
  {
36144
36464
  "data-slot": "field-group",
@@ -36178,7 +36498,7 @@ function Field({
36178
36498
  orientation = "vertical",
36179
36499
  ...props
36180
36500
  }) {
36181
- return /* @__PURE__ */ jsx122(
36501
+ return /* @__PURE__ */ jsx124(
36182
36502
  "div",
36183
36503
  {
36184
36504
  role: "group",
@@ -36190,7 +36510,7 @@ function Field({
36190
36510
  );
36191
36511
  }
36192
36512
  function FieldContent({ className, ...props }) {
36193
- return /* @__PURE__ */ jsx122(
36513
+ return /* @__PURE__ */ jsx124(
36194
36514
  "div",
36195
36515
  {
36196
36516
  "data-slot": "field-content",
@@ -36206,7 +36526,7 @@ function FieldLabel({
36206
36526
  className,
36207
36527
  ...props
36208
36528
  }) {
36209
- return /* @__PURE__ */ jsx122(
36529
+ return /* @__PURE__ */ jsx124(
36210
36530
  Label,
36211
36531
  {
36212
36532
  "data-slot": "field-label",
@@ -36221,7 +36541,7 @@ function FieldLabel({
36221
36541
  );
36222
36542
  }
36223
36543
  function FieldTitle({ className, ...props }) {
36224
- return /* @__PURE__ */ jsx122(
36544
+ return /* @__PURE__ */ jsx124(
36225
36545
  "div",
36226
36546
  {
36227
36547
  "data-slot": "field-label",
@@ -36234,7 +36554,7 @@ function FieldTitle({ className, ...props }) {
36234
36554
  );
36235
36555
  }
36236
36556
  function FieldDescription({ className, ...props }) {
36237
- return /* @__PURE__ */ jsx122(
36557
+ return /* @__PURE__ */ jsx124(
36238
36558
  "p",
36239
36559
  {
36240
36560
  "data-slot": "field-description",
@@ -36253,7 +36573,7 @@ function FieldSeparator({
36253
36573
  className,
36254
36574
  ...props
36255
36575
  }) {
36256
- return /* @__PURE__ */ jsxs79(
36576
+ return /* @__PURE__ */ jsxs81(
36257
36577
  "div",
36258
36578
  {
36259
36579
  "data-slot": "field-separator",
@@ -36264,8 +36584,8 @@ function FieldSeparator({
36264
36584
  ),
36265
36585
  ...props,
36266
36586
  children: [
36267
- /* @__PURE__ */ jsx122(Separator2, { className: "absolute inset-0 top-1/2" }),
36268
- children && /* @__PURE__ */ jsx122(
36587
+ /* @__PURE__ */ jsx124(Separator2, { className: "absolute inset-0 top-1/2" }),
36588
+ children && /* @__PURE__ */ jsx124(
36269
36589
  "span",
36270
36590
  {
36271
36591
  className: "bg-background text-muted-foreground relative mx-auto block w-fit px-2",
@@ -36283,7 +36603,7 @@ function FieldError({
36283
36603
  errors,
36284
36604
  ...props
36285
36605
  }) {
36286
- const content = useMemo6(() => {
36606
+ const content = useMemo8(() => {
36287
36607
  if (children) {
36288
36608
  return children;
36289
36609
  }
@@ -36293,14 +36613,14 @@ function FieldError({
36293
36613
  if (errors?.length === 1 && errors[0]?.message) {
36294
36614
  return errors[0].message;
36295
36615
  }
36296
- return /* @__PURE__ */ jsx122("ul", { className: "ml-4 flex list-disc flex-col gap-1", children: errors.map(
36297
- (error, index) => error?.message && /* @__PURE__ */ jsx122("li", { children: error.message }, index)
36616
+ return /* @__PURE__ */ jsx124("ul", { className: "ml-4 flex list-disc flex-col gap-1", children: errors.map(
36617
+ (error, index) => error?.message && /* @__PURE__ */ jsx124("li", { children: error.message }, index)
36298
36618
  ) });
36299
36619
  }, [children, errors]);
36300
36620
  if (!content) {
36301
36621
  return null;
36302
36622
  }
36303
- return /* @__PURE__ */ jsx122(
36623
+ return /* @__PURE__ */ jsx124(
36304
36624
  "div",
36305
36625
  {
36306
36626
  role: "alert",
@@ -36314,9 +36634,9 @@ function FieldError({
36314
36634
 
36315
36635
  // src/components/ui/input-group.tsx
36316
36636
  import { cva as cva11 } from "class-variance-authority";
36317
- import { jsx as jsx123 } from "react/jsx-runtime";
36637
+ import { jsx as jsx125 } from "react/jsx-runtime";
36318
36638
  function InputGroup({ className, ...props }) {
36319
- return /* @__PURE__ */ jsx123(
36639
+ return /* @__PURE__ */ jsx125(
36320
36640
  "div",
36321
36641
  {
36322
36642
  "data-slot": "input-group",
@@ -36360,7 +36680,7 @@ function InputGroupAddon({
36360
36680
  align = "inline-start",
36361
36681
  ...props
36362
36682
  }) {
36363
- return /* @__PURE__ */ jsx123(
36683
+ return /* @__PURE__ */ jsx125(
36364
36684
  "div",
36365
36685
  {
36366
36686
  role: "group",
@@ -36400,7 +36720,7 @@ function InputGroupButton({
36400
36720
  size = "xs",
36401
36721
  ...props
36402
36722
  }) {
36403
- return /* @__PURE__ */ jsx123(
36723
+ return /* @__PURE__ */ jsx125(
36404
36724
  Button,
36405
36725
  {
36406
36726
  type,
@@ -36412,7 +36732,7 @@ function InputGroupButton({
36412
36732
  );
36413
36733
  }
36414
36734
  function InputGroupText({ className, ...props }) {
36415
- return /* @__PURE__ */ jsx123(
36735
+ return /* @__PURE__ */ jsx125(
36416
36736
  "span",
36417
36737
  {
36418
36738
  className: cn(
@@ -36427,7 +36747,7 @@ function InputGroupInput({
36427
36747
  className,
36428
36748
  ...props
36429
36749
  }) {
36430
- return /* @__PURE__ */ jsx123(
36750
+ return /* @__PURE__ */ jsx125(
36431
36751
  Input,
36432
36752
  {
36433
36753
  "data-slot": "input-group-control",
@@ -36443,7 +36763,7 @@ function InputGroupTextarea({
36443
36763
  className,
36444
36764
  ...props
36445
36765
  }) {
36446
- return /* @__PURE__ */ jsx123(
36766
+ return /* @__PURE__ */ jsx125(
36447
36767
  Textarea,
36448
36768
  {
36449
36769
  "data-slot": "input-group-control",
@@ -36459,9 +36779,9 @@ function InputGroupTextarea({
36459
36779
  // src/components/ui/item.tsx
36460
36780
  import { Slot as Slot5 } from "@radix-ui/react-slot";
36461
36781
  import { cva as cva12 } from "class-variance-authority";
36462
- import { jsx as jsx124 } from "react/jsx-runtime";
36782
+ import { jsx as jsx126 } from "react/jsx-runtime";
36463
36783
  function ItemGroup({ className, ...props }) {
36464
- return /* @__PURE__ */ jsx124(
36784
+ return /* @__PURE__ */ jsx126(
36465
36785
  "div",
36466
36786
  {
36467
36787
  role: "list",
@@ -36475,7 +36795,7 @@ function ItemSeparator({
36475
36795
  className,
36476
36796
  ...props
36477
36797
  }) {
36478
- return /* @__PURE__ */ jsx124(
36798
+ return /* @__PURE__ */ jsx126(
36479
36799
  Separator2,
36480
36800
  {
36481
36801
  "data-slot": "item-separator",
@@ -36513,7 +36833,7 @@ function Item8({
36513
36833
  ...props
36514
36834
  }) {
36515
36835
  const Comp = asChild ? Slot5 : "div";
36516
- return /* @__PURE__ */ jsx124(
36836
+ return /* @__PURE__ */ jsx126(
36517
36837
  Comp,
36518
36838
  {
36519
36839
  "data-slot": "item",
@@ -36544,7 +36864,7 @@ function ItemMedia({
36544
36864
  variant = "default",
36545
36865
  ...props
36546
36866
  }) {
36547
- return /* @__PURE__ */ jsx124(
36867
+ return /* @__PURE__ */ jsx126(
36548
36868
  "div",
36549
36869
  {
36550
36870
  "data-slot": "item-media",
@@ -36555,7 +36875,7 @@ function ItemMedia({
36555
36875
  );
36556
36876
  }
36557
36877
  function ItemContent({ className, ...props }) {
36558
- return /* @__PURE__ */ jsx124(
36878
+ return /* @__PURE__ */ jsx126(
36559
36879
  "div",
36560
36880
  {
36561
36881
  "data-slot": "item-content",
@@ -36568,7 +36888,7 @@ function ItemContent({ className, ...props }) {
36568
36888
  );
36569
36889
  }
36570
36890
  function ItemTitle({ className, ...props }) {
36571
- return /* @__PURE__ */ jsx124(
36891
+ return /* @__PURE__ */ jsx126(
36572
36892
  "div",
36573
36893
  {
36574
36894
  "data-slot": "item-title",
@@ -36581,7 +36901,7 @@ function ItemTitle({ className, ...props }) {
36581
36901
  );
36582
36902
  }
36583
36903
  function ItemDescription({ className, ...props }) {
36584
- return /* @__PURE__ */ jsx124(
36904
+ return /* @__PURE__ */ jsx126(
36585
36905
  "p",
36586
36906
  {
36587
36907
  "data-slot": "item-description",
@@ -36595,7 +36915,7 @@ function ItemDescription({ className, ...props }) {
36595
36915
  );
36596
36916
  }
36597
36917
  function ItemActions({ className, ...props }) {
36598
- return /* @__PURE__ */ jsx124(
36918
+ return /* @__PURE__ */ jsx126(
36599
36919
  "div",
36600
36920
  {
36601
36921
  "data-slot": "item-actions",
@@ -36605,7 +36925,7 @@ function ItemActions({ className, ...props }) {
36605
36925
  );
36606
36926
  }
36607
36927
  function ItemHeader({ className, ...props }) {
36608
- return /* @__PURE__ */ jsx124(
36928
+ return /* @__PURE__ */ jsx126(
36609
36929
  "div",
36610
36930
  {
36611
36931
  "data-slot": "item-header",
@@ -36618,7 +36938,7 @@ function ItemHeader({ className, ...props }) {
36618
36938
  );
36619
36939
  }
36620
36940
  function ItemFooter({ className, ...props }) {
36621
- return /* @__PURE__ */ jsx124(
36941
+ return /* @__PURE__ */ jsx126(
36622
36942
  "div",
36623
36943
  {
36624
36944
  "data-slot": "item-footer",
@@ -36632,9 +36952,9 @@ function ItemFooter({ className, ...props }) {
36632
36952
  }
36633
36953
 
36634
36954
  // src/components/ui/kbd.tsx
36635
- import { jsx as jsx125 } from "react/jsx-runtime";
36955
+ import { jsx as jsx127 } from "react/jsx-runtime";
36636
36956
  function Kbd({ className, ...props }) {
36637
- return /* @__PURE__ */ jsx125(
36957
+ return /* @__PURE__ */ jsx127(
36638
36958
  "kbd",
36639
36959
  {
36640
36960
  "data-slot": "kbd",
@@ -36649,7 +36969,7 @@ function Kbd({ className, ...props }) {
36649
36969
  );
36650
36970
  }
36651
36971
  function KbdGroup({ className, ...props }) {
36652
- return /* @__PURE__ */ jsx125(
36972
+ return /* @__PURE__ */ jsx127(
36653
36973
  "kbd",
36654
36974
  {
36655
36975
  "data-slot": "kbd-group",
@@ -36660,16 +36980,16 @@ function KbdGroup({ className, ...props }) {
36660
36980
  }
36661
36981
 
36662
36982
  // src/components/ui/sidebar.tsx
36663
- import * as React94 from "react";
36983
+ import * as React96 from "react";
36664
36984
  import { Slot as Slot6 } from "@radix-ui/react-slot";
36665
36985
  import { cva as cva13 } from "class-variance-authority";
36666
36986
 
36667
36987
  // src/hooks/use-mobile.tsx
36668
- import * as React93 from "react";
36988
+ import * as React95 from "react";
36669
36989
  var MOBILE_BREAKPOINT = 768;
36670
36990
  function useIsMobile() {
36671
- const [isMobile, setIsMobile] = React93.useState(void 0);
36672
- React93.useEffect(() => {
36991
+ const [isMobile, setIsMobile] = React95.useState(void 0);
36992
+ React95.useEffect(() => {
36673
36993
  const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
36674
36994
  const onChange = () => {
36675
36995
  setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
@@ -36682,22 +37002,22 @@ function useIsMobile() {
36682
37002
  }
36683
37003
 
36684
37004
  // src/components/ui/sidebar.tsx
36685
- import { jsx as jsx126, jsxs as jsxs80 } from "react/jsx-runtime";
37005
+ import { jsx as jsx128, jsxs as jsxs82 } from "react/jsx-runtime";
36686
37006
  var SIDEBAR_COOKIE_NAME = "sidebar_state";
36687
37007
  var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
36688
37008
  var SIDEBAR_WIDTH = "16rem";
36689
37009
  var SIDEBAR_WIDTH_MOBILE = "18rem";
36690
37010
  var SIDEBAR_WIDTH_ICON = "3rem";
36691
37011
  var SIDEBAR_KEYBOARD_SHORTCUT = "b";
36692
- var SidebarContext = React94.createContext(null);
37012
+ var SidebarContext = React96.createContext(null);
36693
37013
  function useSidebar() {
36694
- const context = React94.useContext(SidebarContext);
37014
+ const context = React96.useContext(SidebarContext);
36695
37015
  if (!context) {
36696
37016
  throw new Error("useSidebar must be used within a SidebarProvider.");
36697
37017
  }
36698
37018
  return context;
36699
37019
  }
36700
- var SidebarProvider = React94.forwardRef(
37020
+ var SidebarProvider = React96.forwardRef(
36701
37021
  ({
36702
37022
  defaultOpen = true,
36703
37023
  open: openProp,
@@ -36708,10 +37028,10 @@ var SidebarProvider = React94.forwardRef(
36708
37028
  ...props
36709
37029
  }, ref) => {
36710
37030
  const isMobile = useIsMobile();
36711
- const [openMobile, setOpenMobile] = React94.useState(false);
36712
- const [_open, _setOpen] = React94.useState(defaultOpen);
37031
+ const [openMobile, setOpenMobile] = React96.useState(false);
37032
+ const [_open, _setOpen] = React96.useState(defaultOpen);
36713
37033
  const open = openProp ?? _open;
36714
- const setOpen = React94.useCallback(
37034
+ const setOpen = React96.useCallback(
36715
37035
  (value) => {
36716
37036
  const openState = typeof value === "function" ? value(open) : value;
36717
37037
  if (setOpenProp) {
@@ -36723,10 +37043,10 @@ var SidebarProvider = React94.forwardRef(
36723
37043
  },
36724
37044
  [setOpenProp, open]
36725
37045
  );
36726
- const toggleSidebar = React94.useCallback(() => {
37046
+ const toggleSidebar = React96.useCallback(() => {
36727
37047
  return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
36728
37048
  }, [isMobile, setOpen, setOpenMobile]);
36729
- React94.useEffect(() => {
37049
+ React96.useEffect(() => {
36730
37050
  const handleKeyDown = (event) => {
36731
37051
  if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
36732
37052
  event.preventDefault();
@@ -36737,7 +37057,7 @@ var SidebarProvider = React94.forwardRef(
36737
37057
  return () => window.removeEventListener("keydown", handleKeyDown);
36738
37058
  }, [toggleSidebar]);
36739
37059
  const state = open ? "expanded" : "collapsed";
36740
- const contextValue = React94.useMemo(
37060
+ const contextValue = React96.useMemo(
36741
37061
  () => ({
36742
37062
  state,
36743
37063
  open,
@@ -36749,7 +37069,7 @@ var SidebarProvider = React94.forwardRef(
36749
37069
  }),
36750
37070
  [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]
36751
37071
  );
36752
- return /* @__PURE__ */ jsx126(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx126(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ jsx126(
37072
+ return /* @__PURE__ */ jsx128(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx128(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ jsx128(
36753
37073
  "div",
36754
37074
  {
36755
37075
  style: {
@@ -36769,7 +37089,7 @@ var SidebarProvider = React94.forwardRef(
36769
37089
  }
36770
37090
  );
36771
37091
  SidebarProvider.displayName = "SidebarProvider";
36772
- var Sidebar = React94.forwardRef(
37092
+ var Sidebar = React96.forwardRef(
36773
37093
  ({
36774
37094
  side = "left",
36775
37095
  variant = "sidebar",
@@ -36780,7 +37100,7 @@ var Sidebar = React94.forwardRef(
36780
37100
  }, ref) => {
36781
37101
  const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
36782
37102
  if (collapsible === "none") {
36783
- return /* @__PURE__ */ jsx126(
37103
+ return /* @__PURE__ */ jsx128(
36784
37104
  "div",
36785
37105
  {
36786
37106
  className: cn(
@@ -36794,7 +37114,7 @@ var Sidebar = React94.forwardRef(
36794
37114
  );
36795
37115
  }
36796
37116
  if (isMobile) {
36797
- return /* @__PURE__ */ jsx126(Sheet2, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ jsxs80(
37117
+ return /* @__PURE__ */ jsx128(Sheet2, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ jsxs82(
36798
37118
  SheetContent,
36799
37119
  {
36800
37120
  "data-sidebar": "sidebar",
@@ -36805,16 +37125,16 @@ var Sidebar = React94.forwardRef(
36805
37125
  },
36806
37126
  side,
36807
37127
  children: [
36808
- /* @__PURE__ */ jsxs80(SheetHeader, { className: "sr-only", children: [
36809
- /* @__PURE__ */ jsx126(SheetTitle, { children: "Sidebar" }),
36810
- /* @__PURE__ */ jsx126(SheetDescription, { children: "Displays the mobile sidebar." })
37128
+ /* @__PURE__ */ jsxs82(SheetHeader, { className: "sr-only", children: [
37129
+ /* @__PURE__ */ jsx128(SheetTitle, { children: "Sidebar" }),
37130
+ /* @__PURE__ */ jsx128(SheetDescription, { children: "Displays the mobile sidebar." })
36811
37131
  ] }),
36812
- /* @__PURE__ */ jsx126("div", { className: "flex h-full w-full flex-col", children })
37132
+ /* @__PURE__ */ jsx128("div", { className: "flex h-full w-full flex-col", children })
36813
37133
  ]
36814
37134
  }
36815
37135
  ) });
36816
37136
  }
36817
- return /* @__PURE__ */ jsxs80(
37137
+ return /* @__PURE__ */ jsxs82(
36818
37138
  "div",
36819
37139
  {
36820
37140
  ref,
@@ -36824,7 +37144,7 @@ var Sidebar = React94.forwardRef(
36824
37144
  "data-variant": variant,
36825
37145
  "data-side": side,
36826
37146
  children: [
36827
- /* @__PURE__ */ jsx126(
37147
+ /* @__PURE__ */ jsx128(
36828
37148
  "div",
36829
37149
  {
36830
37150
  className: cn(
@@ -36835,7 +37155,7 @@ var Sidebar = React94.forwardRef(
36835
37155
  )
36836
37156
  }
36837
37157
  ),
36838
- /* @__PURE__ */ jsx126(
37158
+ /* @__PURE__ */ jsx128(
36839
37159
  "div",
36840
37160
  {
36841
37161
  className: cn(
@@ -36846,7 +37166,7 @@ var Sidebar = React94.forwardRef(
36846
37166
  className
36847
37167
  ),
36848
37168
  ...props,
36849
- children: /* @__PURE__ */ jsx126(
37169
+ children: /* @__PURE__ */ jsx128(
36850
37170
  "div",
36851
37171
  {
36852
37172
  "data-sidebar": "sidebar",
@@ -36862,9 +37182,9 @@ var Sidebar = React94.forwardRef(
36862
37182
  }
36863
37183
  );
36864
37184
  Sidebar.displayName = "Sidebar";
36865
- var SidebarTrigger = React94.forwardRef(({ className, onClick, ...props }, ref) => {
37185
+ var SidebarTrigger = React96.forwardRef(({ className, onClick, ...props }, ref) => {
36866
37186
  const { toggleSidebar } = useSidebar();
36867
- return /* @__PURE__ */ jsxs80(
37187
+ return /* @__PURE__ */ jsxs82(
36868
37188
  Button,
36869
37189
  {
36870
37190
  ref,
@@ -36878,16 +37198,16 @@ var SidebarTrigger = React94.forwardRef(({ className, onClick, ...props }, ref)
36878
37198
  },
36879
37199
  ...props,
36880
37200
  children: [
36881
- /* @__PURE__ */ jsx126(PanelLeft, {}),
36882
- /* @__PURE__ */ jsx126("span", { className: "sr-only", children: "Toggle Sidebar" })
37201
+ /* @__PURE__ */ jsx128(PanelLeft, {}),
37202
+ /* @__PURE__ */ jsx128("span", { className: "sr-only", children: "Toggle Sidebar" })
36883
37203
  ]
36884
37204
  }
36885
37205
  );
36886
37206
  });
36887
37207
  SidebarTrigger.displayName = "SidebarTrigger";
36888
- var SidebarRail = React94.forwardRef(({ className, ...props }, ref) => {
37208
+ var SidebarRail = React96.forwardRef(({ className, ...props }, ref) => {
36889
37209
  const { toggleSidebar } = useSidebar();
36890
- return /* @__PURE__ */ jsx126(
37210
+ return /* @__PURE__ */ jsx128(
36891
37211
  "button",
36892
37212
  {
36893
37213
  ref,
@@ -36910,8 +37230,8 @@ var SidebarRail = React94.forwardRef(({ className, ...props }, ref) => {
36910
37230
  );
36911
37231
  });
36912
37232
  SidebarRail.displayName = "SidebarRail";
36913
- var SidebarInset = React94.forwardRef(({ className, ...props }, ref) => {
36914
- return /* @__PURE__ */ jsx126(
37233
+ var SidebarInset = React96.forwardRef(({ className, ...props }, ref) => {
37234
+ return /* @__PURE__ */ jsx128(
36915
37235
  "main",
36916
37236
  {
36917
37237
  ref,
@@ -36925,8 +37245,8 @@ var SidebarInset = React94.forwardRef(({ className, ...props }, ref) => {
36925
37245
  );
36926
37246
  });
36927
37247
  SidebarInset.displayName = "SidebarInset";
36928
- var SidebarInput = React94.forwardRef(({ className, ...props }, ref) => {
36929
- return /* @__PURE__ */ jsx126(
37248
+ var SidebarInput = React96.forwardRef(({ className, ...props }, ref) => {
37249
+ return /* @__PURE__ */ jsx128(
36930
37250
  Input,
36931
37251
  {
36932
37252
  ref,
@@ -36940,8 +37260,8 @@ var SidebarInput = React94.forwardRef(({ className, ...props }, ref) => {
36940
37260
  );
36941
37261
  });
36942
37262
  SidebarInput.displayName = "SidebarInput";
36943
- var SidebarHeader = React94.forwardRef(({ className, ...props }, ref) => {
36944
- return /* @__PURE__ */ jsx126(
37263
+ var SidebarHeader = React96.forwardRef(({ className, ...props }, ref) => {
37264
+ return /* @__PURE__ */ jsx128(
36945
37265
  "div",
36946
37266
  {
36947
37267
  ref,
@@ -36952,8 +37272,8 @@ var SidebarHeader = React94.forwardRef(({ className, ...props }, ref) => {
36952
37272
  );
36953
37273
  });
36954
37274
  SidebarHeader.displayName = "SidebarHeader";
36955
- var SidebarFooter = React94.forwardRef(({ className, ...props }, ref) => {
36956
- return /* @__PURE__ */ jsx126(
37275
+ var SidebarFooter = React96.forwardRef(({ className, ...props }, ref) => {
37276
+ return /* @__PURE__ */ jsx128(
36957
37277
  "div",
36958
37278
  {
36959
37279
  ref,
@@ -36964,8 +37284,8 @@ var SidebarFooter = React94.forwardRef(({ className, ...props }, ref) => {
36964
37284
  );
36965
37285
  });
36966
37286
  SidebarFooter.displayName = "SidebarFooter";
36967
- var SidebarSeparator = React94.forwardRef(({ className, ...props }, ref) => {
36968
- return /* @__PURE__ */ jsx126(
37287
+ var SidebarSeparator = React96.forwardRef(({ className, ...props }, ref) => {
37288
+ return /* @__PURE__ */ jsx128(
36969
37289
  Separator2,
36970
37290
  {
36971
37291
  ref,
@@ -36976,8 +37296,8 @@ var SidebarSeparator = React94.forwardRef(({ className, ...props }, ref) => {
36976
37296
  );
36977
37297
  });
36978
37298
  SidebarSeparator.displayName = "SidebarSeparator";
36979
- var SidebarContent = React94.forwardRef(({ className, ...props }, ref) => {
36980
- return /* @__PURE__ */ jsx126(
37299
+ var SidebarContent = React96.forwardRef(({ className, ...props }, ref) => {
37300
+ return /* @__PURE__ */ jsx128(
36981
37301
  "div",
36982
37302
  {
36983
37303
  ref,
@@ -36991,8 +37311,8 @@ var SidebarContent = React94.forwardRef(({ className, ...props }, ref) => {
36991
37311
  );
36992
37312
  });
36993
37313
  SidebarContent.displayName = "SidebarContent";
36994
- var SidebarGroup = React94.forwardRef(({ className, ...props }, ref) => {
36995
- return /* @__PURE__ */ jsx126(
37314
+ var SidebarGroup = React96.forwardRef(({ className, ...props }, ref) => {
37315
+ return /* @__PURE__ */ jsx128(
36996
37316
  "div",
36997
37317
  {
36998
37318
  ref,
@@ -37003,9 +37323,9 @@ var SidebarGroup = React94.forwardRef(({ className, ...props }, ref) => {
37003
37323
  );
37004
37324
  });
37005
37325
  SidebarGroup.displayName = "SidebarGroup";
37006
- var SidebarGroupLabel = React94.forwardRef(({ className, asChild = false, ...props }, ref) => {
37326
+ var SidebarGroupLabel = React96.forwardRef(({ className, asChild = false, ...props }, ref) => {
37007
37327
  const Comp = asChild ? Slot6 : "div";
37008
- return /* @__PURE__ */ jsx126(
37328
+ return /* @__PURE__ */ jsx128(
37009
37329
  Comp,
37010
37330
  {
37011
37331
  ref,
@@ -37020,9 +37340,9 @@ var SidebarGroupLabel = React94.forwardRef(({ className, asChild = false, ...pro
37020
37340
  );
37021
37341
  });
37022
37342
  SidebarGroupLabel.displayName = "SidebarGroupLabel";
37023
- var SidebarGroupAction = React94.forwardRef(({ className, asChild = false, ...props }, ref) => {
37343
+ var SidebarGroupAction = React96.forwardRef(({ className, asChild = false, ...props }, ref) => {
37024
37344
  const Comp = asChild ? Slot6 : "button";
37025
- return /* @__PURE__ */ jsx126(
37345
+ return /* @__PURE__ */ jsx128(
37026
37346
  Comp,
37027
37347
  {
37028
37348
  ref,
@@ -37039,7 +37359,7 @@ var SidebarGroupAction = React94.forwardRef(({ className, asChild = false, ...pr
37039
37359
  );
37040
37360
  });
37041
37361
  SidebarGroupAction.displayName = "SidebarGroupAction";
37042
- var SidebarGroupContent = React94.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx126(
37362
+ var SidebarGroupContent = React96.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx128(
37043
37363
  "div",
37044
37364
  {
37045
37365
  ref,
@@ -37049,7 +37369,7 @@ var SidebarGroupContent = React94.forwardRef(({ className, ...props }, ref) => /
37049
37369
  }
37050
37370
  ));
37051
37371
  SidebarGroupContent.displayName = "SidebarGroupContent";
37052
- var SidebarMenu = React94.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx126(
37372
+ var SidebarMenu = React96.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx128(
37053
37373
  "ul",
37054
37374
  {
37055
37375
  ref,
@@ -37059,7 +37379,7 @@ var SidebarMenu = React94.forwardRef(({ className, ...props }, ref) => /* @__PUR
37059
37379
  }
37060
37380
  ));
37061
37381
  SidebarMenu.displayName = "SidebarMenu";
37062
- var SidebarMenuItem = React94.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx126(
37382
+ var SidebarMenuItem = React96.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx128(
37063
37383
  "li",
37064
37384
  {
37065
37385
  ref,
@@ -37089,7 +37409,7 @@ var sidebarMenuButtonVariants = cva13(
37089
37409
  }
37090
37410
  }
37091
37411
  );
37092
- var SidebarMenuButton = React94.forwardRef(
37412
+ var SidebarMenuButton = React96.forwardRef(
37093
37413
  ({
37094
37414
  asChild = false,
37095
37415
  isActive = false,
@@ -37101,7 +37421,7 @@ var SidebarMenuButton = React94.forwardRef(
37101
37421
  }, ref) => {
37102
37422
  const Comp = asChild ? Slot6 : "button";
37103
37423
  const { isMobile, state } = useSidebar();
37104
- const button = /* @__PURE__ */ jsx126(
37424
+ const button = /* @__PURE__ */ jsx128(
37105
37425
  Comp,
37106
37426
  {
37107
37427
  ref,
@@ -37120,9 +37440,9 @@ var SidebarMenuButton = React94.forwardRef(
37120
37440
  children: tooltip
37121
37441
  };
37122
37442
  }
37123
- return /* @__PURE__ */ jsxs80(Tooltip, { children: [
37124
- /* @__PURE__ */ jsx126(TooltipTrigger, { asChild: true, children: button }),
37125
- /* @__PURE__ */ jsx126(
37443
+ return /* @__PURE__ */ jsxs82(Tooltip, { children: [
37444
+ /* @__PURE__ */ jsx128(TooltipTrigger, { asChild: true, children: button }),
37445
+ /* @__PURE__ */ jsx128(
37126
37446
  TooltipContent,
37127
37447
  {
37128
37448
  side: "right",
@@ -37135,9 +37455,9 @@ var SidebarMenuButton = React94.forwardRef(
37135
37455
  }
37136
37456
  );
37137
37457
  SidebarMenuButton.displayName = "SidebarMenuButton";
37138
- var SidebarMenuAction = React94.forwardRef(({ className, asChild = false, showOnHover = false, ...props }, ref) => {
37458
+ var SidebarMenuAction = React96.forwardRef(({ className, asChild = false, showOnHover = false, ...props }, ref) => {
37139
37459
  const Comp = asChild ? Slot6 : "button";
37140
- return /* @__PURE__ */ jsx126(
37460
+ return /* @__PURE__ */ jsx128(
37141
37461
  Comp,
37142
37462
  {
37143
37463
  ref,
@@ -37158,7 +37478,7 @@ var SidebarMenuAction = React94.forwardRef(({ className, asChild = false, showOn
37158
37478
  );
37159
37479
  });
37160
37480
  SidebarMenuAction.displayName = "SidebarMenuAction";
37161
- var SidebarMenuBadge = React94.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx126(
37481
+ var SidebarMenuBadge = React96.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx128(
37162
37482
  "div",
37163
37483
  {
37164
37484
  ref,
@@ -37176,11 +37496,11 @@ var SidebarMenuBadge = React94.forwardRef(({ className, ...props }, ref) => /* @
37176
37496
  }
37177
37497
  ));
37178
37498
  SidebarMenuBadge.displayName = "SidebarMenuBadge";
37179
- var SidebarMenuSkeleton = React94.forwardRef(({ className, showIcon = false, ...props }, ref) => {
37180
- const width = React94.useMemo(() => {
37499
+ var SidebarMenuSkeleton = React96.forwardRef(({ className, showIcon = false, ...props }, ref) => {
37500
+ const width = React96.useMemo(() => {
37181
37501
  return `${Math.floor(Math.random() * 40) + 50}%`;
37182
37502
  }, []);
37183
- return /* @__PURE__ */ jsxs80(
37503
+ return /* @__PURE__ */ jsxs82(
37184
37504
  "div",
37185
37505
  {
37186
37506
  ref,
@@ -37188,14 +37508,14 @@ var SidebarMenuSkeleton = React94.forwardRef(({ className, showIcon = false, ...
37188
37508
  className: cn("flex h-8 items-center gap-2 rounded-md px-2", className),
37189
37509
  ...props,
37190
37510
  children: [
37191
- showIcon && /* @__PURE__ */ jsx126(
37511
+ showIcon && /* @__PURE__ */ jsx128(
37192
37512
  Skeleton,
37193
37513
  {
37194
37514
  className: "size-4 rounded-md",
37195
37515
  "data-sidebar": "menu-skeleton-icon"
37196
37516
  }
37197
37517
  ),
37198
- /* @__PURE__ */ jsx126(
37518
+ /* @__PURE__ */ jsx128(
37199
37519
  Skeleton,
37200
37520
  {
37201
37521
  className: "h-4 max-w-[--skeleton-width] flex-1",
@@ -37210,7 +37530,7 @@ var SidebarMenuSkeleton = React94.forwardRef(({ className, showIcon = false, ...
37210
37530
  );
37211
37531
  });
37212
37532
  SidebarMenuSkeleton.displayName = "SidebarMenuSkeleton";
37213
- var SidebarMenuSub = React94.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx126(
37533
+ var SidebarMenuSub = React96.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx128(
37214
37534
  "ul",
37215
37535
  {
37216
37536
  ref,
@@ -37224,11 +37544,11 @@ var SidebarMenuSub = React94.forwardRef(({ className, ...props }, ref) => /* @__
37224
37544
  }
37225
37545
  ));
37226
37546
  SidebarMenuSub.displayName = "SidebarMenuSub";
37227
- var SidebarMenuSubItem = React94.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx126("li", { ref, ...props }));
37547
+ var SidebarMenuSubItem = React96.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx128("li", { ref, ...props }));
37228
37548
  SidebarMenuSubItem.displayName = "SidebarMenuSubItem";
37229
- var SidebarMenuSubButton = React94.forwardRef(({ asChild = false, size = "md", isActive, className, ...props }, ref) => {
37549
+ var SidebarMenuSubButton = React96.forwardRef(({ asChild = false, size = "md", isActive, className, ...props }, ref) => {
37230
37550
  const Comp = asChild ? Slot6 : "a";
37231
- return /* @__PURE__ */ jsx126(
37551
+ return /* @__PURE__ */ jsx128(
37232
37552
  Comp,
37233
37553
  {
37234
37554
  ref,
@@ -37252,20 +37572,20 @@ SidebarMenuSubButton.displayName = "SidebarMenuSubButton";
37252
37572
  // src/components/ui/sonner.tsx
37253
37573
  import { useTheme } from "next-themes";
37254
37574
  import { Toaster as Sonner } from "sonner";
37255
- import { jsx as jsx127 } from "react/jsx-runtime";
37575
+ import { jsx as jsx129 } from "react/jsx-runtime";
37256
37576
  var Toaster = ({ ...props }) => {
37257
37577
  const { theme = "system" } = useTheme();
37258
- return /* @__PURE__ */ jsx127(
37578
+ return /* @__PURE__ */ jsx129(
37259
37579
  Sonner,
37260
37580
  {
37261
37581
  theme,
37262
37582
  className: "toaster group",
37263
37583
  icons: {
37264
- success: /* @__PURE__ */ jsx127(CircleCheck, { className: "h-4 w-4" }),
37265
- info: /* @__PURE__ */ jsx127(Info, { className: "h-4 w-4" }),
37266
- warning: /* @__PURE__ */ jsx127(TriangleAlert, { className: "h-4 w-4" }),
37267
- error: /* @__PURE__ */ jsx127(OctagonX, { className: "h-4 w-4" }),
37268
- loading: /* @__PURE__ */ jsx127(LoaderCircle, { className: "h-4 w-4 animate-spin" })
37584
+ success: /* @__PURE__ */ jsx129(CircleCheck, { className: "h-4 w-4" }),
37585
+ info: /* @__PURE__ */ jsx129(Info, { className: "h-4 w-4" }),
37586
+ warning: /* @__PURE__ */ jsx129(TriangleAlert, { className: "h-4 w-4" }),
37587
+ error: /* @__PURE__ */ jsx129(OctagonX, { className: "h-4 w-4" }),
37588
+ loading: /* @__PURE__ */ jsx129(LoaderCircle, { className: "h-4 w-4 animate-spin" })
37269
37589
  },
37270
37590
  toastOptions: {
37271
37591
  classNames: {
@@ -37281,26 +37601,26 @@ var Toaster = ({ ...props }) => {
37281
37601
  };
37282
37602
 
37283
37603
  // src/components/ui/toggle-group.tsx
37284
- import * as React95 from "react";
37604
+ import * as React97 from "react";
37285
37605
  import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
37286
- import { jsx as jsx128 } from "react/jsx-runtime";
37287
- var ToggleGroupContext = React95.createContext({
37606
+ import { jsx as jsx130 } from "react/jsx-runtime";
37607
+ var ToggleGroupContext = React97.createContext({
37288
37608
  size: "default",
37289
37609
  variant: "default"
37290
37610
  });
37291
- var ToggleGroup = React95.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsx128(
37611
+ var ToggleGroup = React97.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsx130(
37292
37612
  ToggleGroupPrimitive.Root,
37293
37613
  {
37294
37614
  ref,
37295
37615
  className: cn("flex items-center justify-center gap-1", className),
37296
37616
  ...props,
37297
- children: /* @__PURE__ */ jsx128(ToggleGroupContext.Provider, { value: { variant, size }, children })
37617
+ children: /* @__PURE__ */ jsx130(ToggleGroupContext.Provider, { value: { variant, size }, children })
37298
37618
  }
37299
37619
  ));
37300
37620
  ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
37301
- var ToggleGroupItem = React95.forwardRef(({ className, children, variant, size, ...props }, ref) => {
37302
- const context = React95.useContext(ToggleGroupContext);
37303
- return /* @__PURE__ */ jsx128(
37621
+ var ToggleGroupItem = React97.forwardRef(({ className, children, variant, size, ...props }, ref) => {
37622
+ const context = React97.useContext(ToggleGroupContext);
37623
+ return /* @__PURE__ */ jsx130(
37304
37624
  ToggleGroupPrimitive.Item,
37305
37625
  {
37306
37626
  ref,
@@ -37319,7 +37639,7 @@ var ToggleGroupItem = React95.forwardRef(({ className, children, variant, size,
37319
37639
  ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
37320
37640
 
37321
37641
  // src/render/PXEngineRenderer.tsx
37322
- import { jsx as jsx129, jsxs as jsxs81 } from "react/jsx-runtime";
37642
+ import { jsx as jsx131, jsxs as jsxs83 } from "react/jsx-runtime";
37323
37643
  var CONTEXT_DEPENDENT_COMPONENTS = /* @__PURE__ */ new Set([
37324
37644
  // Form components - require FormField + FormItem context
37325
37645
  "FormLabel",
@@ -37411,24 +37731,24 @@ var COMPONENT_SUGGESTIONS = {
37411
37731
  };
37412
37732
  var renderContextDependentError = (componentName, normalizedName, key) => {
37413
37733
  const suggestion = COMPONENT_SUGGESTIONS[normalizedName] || `${componentName}Atom (if available)`;
37414
- return /* @__PURE__ */ jsxs81(
37734
+ return /* @__PURE__ */ jsxs83(
37415
37735
  "div",
37416
37736
  {
37417
37737
  className: "p-4 border-2 border-amber-500/50 rounded-lg bg-amber-50/80 space-y-2 my-2",
37418
37738
  children: [
37419
- /* @__PURE__ */ jsxs81("div", { className: "flex items-start gap-2", children: [
37420
- /* @__PURE__ */ jsx129("span", { className: "text-amber-600 font-bold text-lg", children: "\u26A0\uFE0F" }),
37421
- /* @__PURE__ */ jsxs81("div", { className: "flex-1", children: [
37422
- /* @__PURE__ */ jsxs81("p", { className: "text-sm font-semibold text-amber-900", children: [
37739
+ /* @__PURE__ */ jsxs83("div", { className: "flex items-start gap-2", children: [
37740
+ /* @__PURE__ */ jsx131("span", { className: "text-amber-600 font-bold text-lg", children: "\u26A0\uFE0F" }),
37741
+ /* @__PURE__ */ jsxs83("div", { className: "flex-1", children: [
37742
+ /* @__PURE__ */ jsxs83("p", { className: "text-sm font-semibold text-amber-900", children: [
37423
37743
  "Invalid Component: ",
37424
37744
  componentName
37425
37745
  ] }),
37426
- /* @__PURE__ */ jsx129("p", { className: "text-xs text-amber-700 mt-1", children: "This component requires React Context and cannot be rendered directly in schemas." })
37746
+ /* @__PURE__ */ jsx131("p", { className: "text-xs text-amber-700 mt-1", children: "This component requires React Context and cannot be rendered directly in schemas." })
37427
37747
  ] })
37428
37748
  ] }),
37429
- /* @__PURE__ */ jsxs81("div", { className: "bg-white/60 p-3 rounded border border-amber-200", children: [
37430
- /* @__PURE__ */ jsx129("p", { className: "text-xs font-semibold text-gray-700 mb-1.5", children: "\u2713 Use instead:" }),
37431
- /* @__PURE__ */ jsx129("code", { className: "text-xs text-blue-700 bg-blue-50 px-2 py-1 rounded", children: suggestion })
37749
+ /* @__PURE__ */ jsxs83("div", { className: "bg-white/60 p-3 rounded border border-amber-200", children: [
37750
+ /* @__PURE__ */ jsx131("p", { className: "text-xs font-semibold text-gray-700 mb-1.5", children: "\u2713 Use instead:" }),
37751
+ /* @__PURE__ */ jsx131("code", { className: "text-xs text-blue-700 bg-blue-50 px-2 py-1 rounded", children: suggestion })
37432
37752
  ] })
37433
37753
  ]
37434
37754
  },
@@ -37499,7 +37819,8 @@ var normalizeProps = (props) => {
37499
37819
  };
37500
37820
  var PXEngineRenderer = ({
37501
37821
  schema,
37502
- onAction
37822
+ onAction,
37823
+ disabled
37503
37824
  }) => {
37504
37825
  if (!schema) return null;
37505
37826
  const root = schema.root || schema;
@@ -37507,7 +37828,7 @@ var PXEngineRenderer = ({
37507
37828
  if (typeof component === "string" || typeof component === "number") {
37508
37829
  return component;
37509
37830
  }
37510
- if (React96.isValidElement(component)) {
37831
+ if (React98.isValidElement(component)) {
37511
37832
  return component;
37512
37833
  }
37513
37834
  if (!component || typeof component !== "object") return null;
@@ -37523,6 +37844,9 @@ var PXEngineRenderer = ({
37523
37844
  const componentName = name || type || componentType;
37524
37845
  if (!componentName || typeof componentName !== "string") return null;
37525
37846
  const rawProps = { ...remainingProps, ...props };
37847
+ if (disabled !== void 0 && rawProps.disabled === void 0) {
37848
+ rawProps.disabled = disabled;
37849
+ }
37526
37850
  const { normalized: finalProps, dynamicStyle } = normalizeProps(rawProps);
37527
37851
  if (id && !finalProps.id) {
37528
37852
  finalProps.id = id;
@@ -37582,7 +37906,7 @@ var PXEngineRenderer = ({
37582
37906
  const isAtomWithRenderProp = ATOMS_WITH_RENDER.has(atomName);
37583
37907
  const finalStyle = { ...dynamicStyle, ...finalProps.style || {} };
37584
37908
  if (isAtomWithRenderProp) {
37585
- return /* @__PURE__ */ jsx129(
37909
+ return /* @__PURE__ */ jsx131(
37586
37910
  TargetComponent,
37587
37911
  {
37588
37912
  ...finalProps,
@@ -37594,7 +37918,7 @@ var PXEngineRenderer = ({
37594
37918
  uniqueKey
37595
37919
  );
37596
37920
  } else {
37597
- return /* @__PURE__ */ jsx129(
37921
+ return /* @__PURE__ */ jsx131(
37598
37922
  TargetComponent,
37599
37923
  {
37600
37924
  ...finalProps,
@@ -37606,7 +37930,7 @@ var PXEngineRenderer = ({
37606
37930
  );
37607
37931
  }
37608
37932
  };
37609
- return /* @__PURE__ */ jsx129("div", { className: "px-engine-root relative w-full h-full", children: renderRecursive(root) });
37933
+ return /* @__PURE__ */ jsx131("div", { className: "px-engine-root relative w-full h-full", children: renderRecursive(root) });
37610
37934
  };
37611
37935
  export {
37612
37936
  Accordion,
@@ -37652,6 +37976,7 @@ export {
37652
37976
  ButtonAtom,
37653
37977
  Calendar2 as Calendar,
37654
37978
  CalendarAtom,
37979
+ CampaignConceptCard,
37655
37980
  CampaignSeedCard,
37656
37981
  Card,
37657
37982
  CardAtom,
@@ -37699,6 +38024,7 @@ export {
37699
38024
  CreatorActionHeader,
37700
38025
  CreatorGridCard,
37701
38026
  CreatorProfileSummary,
38027
+ CreatorSearch,
37702
38028
  DataGrid,
37703
38029
  Dialog,
37704
38030
  DialogAtom,