@tangle-network/sandbox-ui 0.21.0 → 0.21.2

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/pages.js CHANGED
@@ -8,8 +8,11 @@ import {
8
8
  import {
9
9
  Badge,
10
10
  Button,
11
+ Input,
12
+ Switch,
11
13
  Textarea
12
- } from "./chunk-7ZA5SEK3.js";
14
+ } from "./chunk-SM7IJY4I.js";
15
+ import "./chunk-UHFJXO24.js";
13
16
  import "./chunk-4KAPMTPU.js";
14
17
  import {
15
18
  cn
@@ -292,6 +295,8 @@ var VALID_DRIVERS = /* @__PURE__ */ new Set([
292
295
  "firecracker",
293
296
  "tangle"
294
297
  ]);
298
+ var SECTION_CARD_CLASS = "rounded-lg border border-border bg-card p-5 shadow-sm";
299
+ var FIELD_LABEL_CLASS = "block text-xs font-medium text-muted-foreground uppercase tracking-[0.06em]";
295
300
  var STACK_DISPLAY = {
296
301
  universal: {
297
302
  name: "Default",
@@ -723,41 +728,43 @@ function ProvisioningWizard({
723
728
  const rateSuffix = pricingView === "hourly" ? "/h" : "/s";
724
729
  const fmtRate = (v) => pricingView === "hourly" ? v.toFixed(2) : formatPerSecondValue(v);
725
730
  return /* @__PURE__ */ jsxs2("div", { className: cn("max-w-6xl mx-auto flex flex-col", className), children: [
726
- /* @__PURE__ */ jsxs2("div", { className: "mb-6 flex items-center gap-4 shrink-0", children: [
731
+ /* @__PURE__ */ jsxs2("div", { className: "mb-4 flex items-center gap-3 shrink-0", children: [
727
732
  onBack && /* @__PURE__ */ jsx2(
728
- "button",
733
+ Button,
729
734
  {
730
735
  type: "button",
736
+ variant: "outline",
737
+ size: "icon",
731
738
  onClick: onBack,
732
- className: "flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-border hover:bg-muted/50 transition-colors text-foreground",
733
- children: /* @__PURE__ */ jsx2(ArrowLeft, { className: "h-5 w-5" })
739
+ className: "h-9 w-9 shrink-0",
740
+ children: /* @__PURE__ */ jsx2(ArrowLeft, { className: "h-4 w-4" })
734
741
  }
735
742
  ),
736
743
  /* @__PURE__ */ jsxs2("div", { children: [
737
- /* @__PURE__ */ jsx2("h1", { className: "text-3xl font-extrabold tracking-tight text-foreground mb-1", children: "Sandbox Provisioning" }),
744
+ /* @__PURE__ */ jsx2("h1", { className: "text-2xl font-semibold tracking-tight text-foreground", children: "Sandbox Provisioning" }),
738
745
  /* @__PURE__ */ jsx2("p", { className: "text-muted-foreground text-sm", children: "Select your stack, allocate resources, and deploy." })
739
746
  ] })
740
747
  ] }),
741
- /* @__PURE__ */ jsxs2("div", { className: "grid grid-cols-12 gap-6 flex-1 min-h-0", children: [
748
+ /* @__PURE__ */ jsxs2("div", { className: "grid grid-cols-12 gap-5 flex-1 min-h-0", children: [
742
749
  /* @__PURE__ */ jsxs2("div", { className: "col-span-12 xl:col-span-8 flex flex-col min-h-0", children: [
743
- isMultistep && /* @__PURE__ */ jsx2("div", { className: "flex items-center gap-2 mb-4 bg-card border border-border p-3 rounded-2xl mx-auto max-w-2xl justify-between shrink-0", children: stepLabels.map((label, index) => {
750
+ isMultistep && /* @__PURE__ */ jsx2("div", { className: "flex items-center gap-2 mb-4 rounded-lg border border-border bg-card px-4 py-2 shadow-sm mx-auto max-w-2xl justify-between shrink-0", children: stepLabels.map((label, index) => {
744
751
  const s = index + 1;
745
752
  return /* @__PURE__ */ jsxs2("div", { className: "flex items-center", children: [
746
753
  /* @__PURE__ */ jsx2(
747
754
  "div",
748
755
  {
749
756
  className: cn(
750
- "w-7 h-7 rounded-full flex items-center justify-center font-bold text-xs shrink-0 transition-all duration-200",
751
- currentStep === s ? "bg-primary text-primary-foreground ring-2 ring-primary/30 ring-offset-2 ring-offset-card shadow-sm" : currentStep > s ? "bg-primary text-primary-foreground" : "bg-muted border border-border text-muted-foreground"
757
+ "h-6 w-6 rounded-full flex items-center justify-center font-semibold text-xs shrink-0 transition-colors duration-200",
758
+ currentStep >= s ? "bg-primary text-primary-foreground" : "bg-muted border border-border text-muted-foreground"
752
759
  ),
753
- children: currentStep > s ? /* @__PURE__ */ jsx2(Check, { className: "h-3.5 w-3.5" }) : s
760
+ children: currentStep > s ? /* @__PURE__ */ jsx2(Check, { className: "h-3 w-3" }) : s
754
761
  }
755
762
  ),
756
763
  /* @__PURE__ */ jsx2(
757
764
  "span",
758
765
  {
759
766
  className: cn(
760
- "ml-2 sm:ml-3 font-bold text-sm tracking-tight hidden sm:inline transition-colors duration-200",
767
+ "ml-2 font-medium text-sm hidden sm:inline transition-colors duration-200",
761
768
  currentStep === s ? "text-foreground" : currentStep > s ? "text-primary" : "text-muted-foreground"
762
769
  ),
763
770
  children: label
@@ -767,22 +774,23 @@ function ProvisioningWizard({
767
774
  "div",
768
775
  {
769
776
  className: cn(
770
- "w-4 sm:w-8 h-0.5 mx-2 sm:mx-4 rounded-full transition-colors duration-300",
777
+ "w-4 sm:w-8 h-px mx-2 sm:mx-3 transition-colors duration-300",
771
778
  currentStep > s ? "bg-primary" : "bg-border"
772
779
  )
773
780
  }
774
781
  )
775
782
  ] }, s);
776
783
  }) }),
777
- dc && isMultistep && /* @__PURE__ */ jsxs2("div", { className: "flex items-center justify-between bg-card border border-border rounded-2xl px-4 py-3 shrink-0", children: [
784
+ dc && isMultistep && /* @__PURE__ */ jsxs2("div", { className: "flex items-center justify-between rounded-lg border border-border bg-card px-4 py-2.5 shadow-sm shrink-0 mb-4", children: [
778
785
  /* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-2 text-sm", children: [
779
786
  /* @__PURE__ */ jsx2(Info, { className: "h-4 w-4 text-primary shrink-0" }),
780
787
  /* @__PURE__ */ jsx2("span", { className: "text-muted-foreground", children: "Pre-configured from template." })
781
788
  ] }),
782
789
  /* @__PURE__ */ jsx2(
783
- "button",
790
+ Button,
784
791
  {
785
792
  type: "button",
793
+ variant: "link",
786
794
  onClick: () => {
787
795
  setCurrentStep(1);
788
796
  setSelectedEnv(environments[0]?.id ?? "");
@@ -800,30 +808,30 @@ function ProvisioningWizard({
800
808
  setActivePreset(null);
801
809
  setPricingView("hourly");
802
810
  },
803
- className: "text-xs font-bold text-primary hover:text-primary/70 transition-colors",
811
+ className: "h-auto p-0 text-xs",
804
812
  children: "Start from scratch"
805
813
  }
806
814
  )
807
815
  ] }),
808
- loadError && /* @__PURE__ */ jsxs2("div", { className: "rounded-2xl border border-destructive/30 bg-destructive/10 p-3 flex items-center gap-2 shrink-0", children: [
816
+ loadError && /* @__PURE__ */ jsxs2("div", { className: "rounded-lg border border-destructive/30 bg-destructive/10 p-3 flex items-center gap-2 shrink-0 mb-4", children: [
809
817
  /* @__PURE__ */ jsx2(Info, { className: "h-4 w-4 text-destructive shrink-0" }),
810
818
  /* @__PURE__ */ jsx2("p", { className: "text-sm font-medium text-destructive", children: loadError })
811
819
  ] }),
812
820
  /* @__PURE__ */ jsxs2("div", { className: "flex-1 overflow-y-auto min-h-0 space-y-4", children: [
813
- (!isMultistep || currentStep === 1) && /* @__PURE__ */ jsx2(React2.Fragment, { children: /* @__PURE__ */ jsxs2("section", { className: "bg-card border border-border rounded-[24px] p-6 shadow-2xl relative overflow-hidden animate-in fade-in slide-in-from-bottom-4 duration-300", children: [
814
- /* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-3 mb-6", children: [
815
- /* @__PURE__ */ jsx2("div", { className: "flex h-9 w-9 shrink-0 items-center justify-center rounded-xl bg-primary/10 border border-primary/20 text-primary", children: /* @__PURE__ */ jsx2(Layers, { className: "h-5 w-5" }) }),
816
- /* @__PURE__ */ jsx2("h2", { className: "text-lg font-bold text-foreground tracking-tight", children: "Environment Selection" })
821
+ (!isMultistep || currentStep === 1) && /* @__PURE__ */ jsx2(React2.Fragment, { children: /* @__PURE__ */ jsxs2("section", { className: SECTION_CARD_CLASS, children: [
822
+ /* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-2 mb-4", children: [
823
+ /* @__PURE__ */ jsx2(Layers, { className: "h-4 w-4 text-primary shrink-0" }),
824
+ /* @__PURE__ */ jsx2("h2", { className: "text-sm font-semibold uppercase tracking-[0.06em] text-muted-foreground", children: "Environment Selection" })
817
825
  ] }),
818
826
  /* @__PURE__ */ jsx2("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-3", children: isLoadingEnvironments && environments.length === 0 ? Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsxs2(
819
827
  "div",
820
828
  {
821
- className: "p-4 rounded-[16px] border border-border bg-card/50 animate-pulse",
829
+ className: "p-3.5 rounded-lg border border-border bg-card/50 animate-pulse",
822
830
  "aria-hidden": "true",
823
831
  children: [
824
- /* @__PURE__ */ jsxs2("div", { className: "flex justify-between items-start mb-3", children: [
832
+ /* @__PURE__ */ jsxs2("div", { className: "flex justify-between items-start mb-2.5", children: [
825
833
  /* @__PURE__ */ jsx2("div", { className: "w-10 h-10 rounded-full bg-muted/60 border border-border" }),
826
- /* @__PURE__ */ jsx2("div", { className: "w-5 h-5 rounded-full border-2 border-border" })
834
+ /* @__PURE__ */ jsx2("div", { className: "w-4 h-4 rounded-full border-2 border-border" })
827
835
  ] }),
828
836
  /* @__PURE__ */ jsx2("div", { className: "h-3 w-1/3 rounded bg-muted/60 mb-2" }),
829
837
  /* @__PURE__ */ jsx2("div", { className: "h-2.5 w-5/6 rounded bg-muted/50 mb-1.5" }),
@@ -837,39 +845,38 @@ function ProvisioningWizard({
837
845
  type: "button",
838
846
  onClick: () => setSelectedEnv(env.id),
839
847
  className: cn(
840
- "group relative p-4 rounded-[16px] text-left overflow-hidden border transition-all duration-200",
841
- selectedEnv === env.id ? "bg-primary/5 border-primary ring-2 ring-primary/20 shadow-md" : "bg-card border-border hover:border-primary/30 hover:shadow-sm hover:-translate-y-0.5 active:scale-[0.98]"
848
+ "group p-3.5 rounded-lg text-left border transition-colors duration-200",
849
+ selectedEnv === env.id ? "bg-primary/5 border-primary ring-1 ring-primary/20" : "bg-card border-border hover:border-primary/30 active:scale-[0.99]"
842
850
  ),
843
851
  children: [
844
- selectedEnv === env.id && /* @__PURE__ */ jsx2("div", { className: "absolute inset-0 bg-gradient-to-br from-primary/8 to-transparent pointer-events-none" }),
845
- /* @__PURE__ */ jsxs2("div", { className: "flex justify-between items-start mb-3 relative z-10", children: [
846
- /* @__PURE__ */ jsx2("div", { className: "w-10 h-10 rounded-full flex items-center justify-center bg-muted/50 border border-border shadow-inner", children: env.icon }),
852
+ /* @__PURE__ */ jsxs2("div", { className: "flex justify-between items-start mb-2.5", children: [
853
+ /* @__PURE__ */ jsx2("div", { className: "w-10 h-10 rounded-full flex items-center justify-center bg-muted/50 border border-border", children: env.icon }),
847
854
  /* @__PURE__ */ jsx2(
848
855
  "div",
849
856
  {
850
857
  className: cn(
851
- "w-5 h-5 rounded-full border-2 flex items-center justify-center transition-all duration-200",
858
+ "w-4 h-4 rounded-full border-2 flex items-center justify-center transition-colors duration-200",
852
859
  selectedEnv === env.id ? "border-primary bg-primary" : "border-border group-hover:border-primary/40"
853
860
  ),
854
- children: selectedEnv === env.id && /* @__PURE__ */ jsx2(Check, { className: "h-3 w-3 text-primary-foreground animate-in zoom-in duration-200" })
861
+ children: selectedEnv === env.id && /* @__PURE__ */ jsx2(Check, { className: "h-2.5 w-2.5 text-primary-foreground" })
855
862
  }
856
863
  )
857
864
  ] }),
858
- /* @__PURE__ */ jsx2("h3", { className: "font-bold text-sm mb-0.5 text-foreground relative z-10", children: env.name }),
859
- /* @__PURE__ */ jsx2("p", { className: "text-xs text-muted-foreground leading-relaxed relative z-10", children: env.description })
865
+ /* @__PURE__ */ jsx2("h3", { className: "font-semibold text-sm mb-0.5 text-foreground", children: env.name }),
866
+ /* @__PURE__ */ jsx2("p", { className: "text-xs text-muted-foreground leading-relaxed", children: env.description })
860
867
  ]
861
868
  },
862
869
  env.id
863
870
  )) })
864
871
  ] }) }),
865
- (!isMultistep || currentStep === 2) && /* @__PURE__ */ jsx2(React2.Fragment, { children: /* @__PURE__ */ jsxs2("section", { className: "bg-card border border-border rounded-[24px] p-6 shadow-2xl relative overflow-hidden animate-in fade-in slide-in-from-bottom-4 duration-300", children: [
866
- /* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-3 mb-5", children: [
867
- /* @__PURE__ */ jsx2("div", { className: "flex h-9 w-9 shrink-0 items-center justify-center rounded-xl bg-primary/10 border border-primary/20 text-primary", children: /* @__PURE__ */ jsx2(Cpu, { className: "h-5 w-5" }) }),
868
- /* @__PURE__ */ jsx2("h2", { className: "text-lg font-bold text-foreground tracking-tight", children: "Resource Allocation" })
872
+ (!isMultistep || currentStep === 2) && /* @__PURE__ */ jsx2(React2.Fragment, { children: /* @__PURE__ */ jsxs2("section", { className: SECTION_CARD_CLASS, children: [
873
+ /* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-2 mb-4", children: [
874
+ /* @__PURE__ */ jsx2(Cpu, { className: "h-4 w-4 text-primary shrink-0" }),
875
+ /* @__PURE__ */ jsx2("h2", { className: "text-sm font-semibold uppercase tracking-[0.06em] text-muted-foreground", children: "Resource Allocation" })
869
876
  ] }),
870
- /* @__PURE__ */ jsxs2("div", { className: "mb-6", children: [
871
- /* @__PURE__ */ jsx2("label", { className: "block font-label text-xs font-bold uppercase tracking-widest text-muted-foreground mb-3", children: "Compute Presets" }),
872
- /* @__PURE__ */ jsx2("div", { className: "grid grid-cols-3 gap-3", children: presets.map((p) => {
877
+ /* @__PURE__ */ jsxs2("div", { className: "mb-4", children: [
878
+ /* @__PURE__ */ jsx2("label", { className: cn(FIELD_LABEL_CLASS, "mb-2"), children: "Compute Presets" }),
879
+ /* @__PURE__ */ jsx2("div", { className: "grid grid-cols-3 gap-2", children: presets.map((p) => {
873
880
  const active = activePreset === p.name && !p.locked;
874
881
  return /* @__PURE__ */ jsxs2(
875
882
  "button",
@@ -878,16 +885,16 @@ function ProvisioningWizard({
878
885
  onClick: () => !p.locked && applyPreset(p.name, p.cpu, p.ram, p.storage),
879
886
  disabled: p.locked,
880
887
  className: cn(
881
- "p-3 rounded-[14px] transition-all duration-200 text-center group border relative",
882
- active ? "bg-primary/5 border-primary ring-1 ring-primary/20 shadow-sm" : p.locked ? "bg-muted/30 border-border opacity-60 cursor-not-allowed" : "bg-card border-border hover:border-primary/30 hover:shadow-sm active:scale-[0.97]"
888
+ "p-2.5 rounded-lg transition-colors duration-200 text-center group border relative",
889
+ active ? "bg-primary/5 border-primary ring-1 ring-primary/20" : p.locked ? "bg-muted/30 border-border opacity-60 cursor-not-allowed" : "bg-card border-border hover:border-primary/30 active:scale-[0.99]"
883
890
  ),
884
891
  children: [
885
- p.locked && /* @__PURE__ */ jsx2("div", { className: "absolute -top-1.5 -right-1.5 bg-primary text-primary-foreground text-[9px] font-bold px-1.5 py-0.5 rounded-full uppercase tracking-wider", children: p.unlockLabel }),
892
+ p.locked && /* @__PURE__ */ jsx2("div", { className: "absolute -top-1.5 -right-1.5 bg-primary text-primary-foreground text-[9px] font-semibold px-1.5 py-0.5 rounded-full uppercase tracking-wider", children: p.unlockLabel }),
886
893
  /* @__PURE__ */ jsx2(
887
894
  "div",
888
895
  {
889
896
  className: cn(
890
- "font-bold text-sm transition-colors duration-200",
897
+ "font-semibold text-sm transition-colors duration-200",
891
898
  active ? "text-primary" : p.locked ? "text-muted-foreground" : "text-foreground"
892
899
  ),
893
900
  children: p.name
@@ -910,7 +917,7 @@ function ProvisioningWizard({
910
917
  );
911
918
  }) })
912
919
  ] }),
913
- /* @__PURE__ */ jsx2("div", { className: "space-y-6", children: [
920
+ /* @__PURE__ */ jsx2("div", { className: "space-y-4", children: [
914
921
  {
915
922
  label: "Compute Cores (CPU)",
916
923
  value: cpuCores,
@@ -942,9 +949,9 @@ function ProvisioningWizard({
942
949
  ({ label, value, setter, min, max, step: s, unit }) => {
943
950
  const displayUnit = unit === "vCPU" ? `${value} vCPU${value === 1 ? "" : "s"}` : `${value}${unit}`;
944
951
  return /* @__PURE__ */ jsxs2("div", { children: [
945
- /* @__PURE__ */ jsxs2("div", { className: "flex justify-between items-end border-b border-border pb-1.5 mb-2", children: [
946
- /* @__PURE__ */ jsx2("label", { className: "font-label text-xs font-bold uppercase tracking-widest text-muted-foreground", children: label }),
947
- /* @__PURE__ */ jsx2("span", { className: "text-xl font-bold text-foreground tracking-tight", children: displayUnit })
952
+ /* @__PURE__ */ jsxs2("div", { className: "flex justify-between items-end pb-1 mb-1.5", children: [
953
+ /* @__PURE__ */ jsx2("label", { className: FIELD_LABEL_CLASS, children: label }),
954
+ /* @__PURE__ */ jsx2("span", { className: "text-sm font-semibold text-foreground tabular-nums", children: displayUnit })
948
955
  ] }),
949
956
  /* @__PURE__ */ jsx2(
950
957
  "input",
@@ -958,7 +965,7 @@ function ProvisioningWizard({
958
965
  setter(+e.target.value);
959
966
  setActivePreset(null);
960
967
  },
961
- className: "w-full h-2 rounded-full appearance-none cursor-pointer accent-primary [&::-webkit-slider-runnable-track]:bg-border [&::-webkit-slider-runnable-track]:rounded-full [&::-webkit-slider-runnable-track]:h-2 [&::-moz-range-track]:bg-border [&::-moz-range-track]:rounded-full [&::-moz-range-track]:h-2 [&::-webkit-slider-thumb]:bg-primary [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:h-5 [&::-webkit-slider-thumb]:w-5 [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:-mt-[6px] [&::-webkit-slider-thumb]:shadow-md [&::-webkit-slider-thumb]:border-2 [&::-webkit-slider-thumb]:border-primary-foreground [&::-webkit-slider-thumb]:transition-transform [&::-webkit-slider-thumb]:hover:scale-110"
968
+ className: "w-full h-1.5 rounded-full appearance-none cursor-pointer accent-primary [&::-webkit-slider-runnable-track]:bg-border [&::-webkit-slider-runnable-track]:rounded-full [&::-webkit-slider-runnable-track]:h-1.5 [&::-moz-range-track]:bg-border [&::-moz-range-track]:rounded-full [&::-moz-range-track]:h-1.5 [&::-webkit-slider-thumb]:bg-primary [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:h-4 [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:-mt-[5px] [&::-webkit-slider-thumb]:shadow-sm [&::-webkit-slider-thumb]:border-2 [&::-webkit-slider-thumb]:border-primary-foreground"
962
969
  }
963
970
  ),
964
971
  /* @__PURE__ */ jsxs2("div", { className: "flex justify-between text-[10px] font-mono text-muted-foreground/60 mt-1", children: [
@@ -975,37 +982,37 @@ function ProvisioningWizard({
975
982
  }
976
983
  ) })
977
984
  ] }) }),
978
- (!isMultistep || currentStep === 2) && /* @__PURE__ */ jsx2(React2.Fragment, { children: /* @__PURE__ */ jsx2("section", { className: "bg-card border border-border rounded-[24px] p-6 shadow-2xl relative overflow-hidden animate-in fade-in slide-in-from-bottom-4 duration-300", children: /* @__PURE__ */ jsx2("div", { className: "space-y-5", children: /* @__PURE__ */ jsxs2("div", { children: [
985
+ (!isMultistep || currentStep === 2) && /* @__PURE__ */ jsx2(React2.Fragment, { children: /* @__PURE__ */ jsx2("section", { className: SECTION_CARD_CLASS, children: /* @__PURE__ */ jsxs2("div", { children: [
979
986
  /* @__PURE__ */ jsxs2(
980
987
  "button",
981
988
  {
982
989
  type: "button",
983
990
  onClick: () => setShowAdvanced(!showAdvanced),
984
- className: "flex items-center gap-2 text-foreground/70 hover:text-foreground transition-colors text-sm font-bold focus:outline-none",
991
+ className: "flex items-center gap-2 text-muted-foreground hover:text-foreground transition-colors text-sm font-medium focus:outline-none",
985
992
  children: [
986
993
  /* @__PURE__ */ jsx2(Settings, { className: "w-4 h-4" }),
987
994
  showAdvanced ? "Hide Advanced Options" : "Show Advanced Options"
988
995
  ]
989
996
  }
990
997
  ),
991
- showAdvanced && /* @__PURE__ */ jsxs2("div", { className: "mt-6 space-y-5 animate-in slide-in-from-top-4 fade-in duration-300", children: [
998
+ showAdvanced && /* @__PURE__ */ jsxs2("div", { className: "mt-4 space-y-4", children: [
992
999
  /* @__PURE__ */ jsxs2("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [
993
1000
  /* @__PURE__ */ jsxs2("div", { children: [
994
- /* @__PURE__ */ jsx2("label", { className: "block font-label text-xs font-bold uppercase tracking-widest text-muted-foreground mb-2", children: "Workspace Name" }),
1001
+ /* @__PURE__ */ jsx2("label", { className: cn(FIELD_LABEL_CLASS, "mb-1.5"), children: "Workspace Name" }),
995
1002
  /* @__PURE__ */ jsx2(
996
- "input",
1003
+ Input,
997
1004
  {
998
1005
  type: "text",
999
1006
  value: name,
1000
1007
  onChange: (e) => setName(e.target.value),
1001
1008
  maxLength: 128,
1002
- className: "w-full bg-card border border-border rounded-xl h-12 px-4 font-bold text-sm text-foreground focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent placeholder:text-muted-foreground",
1009
+ className: "h-9 px-3 text-sm",
1003
1010
  placeholder: "my-cool-sandbox"
1004
1011
  }
1005
1012
  )
1006
1013
  ] }),
1007
1014
  /* @__PURE__ */ jsxs2("div", { children: [
1008
- /* @__PURE__ */ jsx2("label", { className: "block font-label text-xs font-bold uppercase tracking-widest text-muted-foreground mb-2", children: "Virtualization Driver" }),
1015
+ /* @__PURE__ */ jsx2("label", { className: cn(FIELD_LABEL_CLASS, "mb-1.5"), children: "Virtualization Driver" }),
1009
1016
  /* @__PURE__ */ jsxs2(
1010
1017
  "select",
1011
1018
  {
@@ -1016,7 +1023,7 @@ function ProvisioningWizard({
1016
1023
  e.target.value
1017
1024
  );
1018
1025
  },
1019
- className: "w-full bg-card border border-border rounded-xl h-12 px-4 font-bold text-sm text-foreground focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent appearance-none",
1026
+ className: "w-full bg-card border border-border rounded-lg h-9 px-3 text-sm text-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent appearance-none",
1020
1027
  children: [
1021
1028
  /* @__PURE__ */ jsx2("option", { value: "docker", className: "bg-gray-900", children: "Docker container (Default)" }),
1022
1029
  /* @__PURE__ */ jsx2(
@@ -1034,21 +1041,21 @@ function ProvisioningWizard({
1034
1041
  ] })
1035
1042
  ] }),
1036
1043
  /* @__PURE__ */ jsxs2("div", { children: [
1037
- /* @__PURE__ */ jsx2("label", { className: "block font-label text-xs font-bold uppercase tracking-widest text-muted-foreground mb-2", children: "Git Repository URL" }),
1044
+ /* @__PURE__ */ jsx2("label", { className: cn(FIELD_LABEL_CLASS, "mb-1.5"), children: "Git Repository URL" }),
1038
1045
  /* @__PURE__ */ jsx2(
1039
- "input",
1046
+ Input,
1040
1047
  {
1041
1048
  type: "text",
1042
1049
  value: gitUrl,
1043
1050
  onChange: (e) => setGitUrl(e.target.value),
1044
- className: "w-full bg-card border border-border rounded-xl h-12 px-4 font-bold text-sm text-foreground focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent placeholder:text-muted-foreground",
1051
+ className: "h-9 px-3 text-sm",
1045
1052
  placeholder: "https://github.com/my-org/my-repo.git"
1046
1053
  }
1047
1054
  )
1048
1055
  ] }),
1049
1056
  /* @__PURE__ */ jsxs2("div", { children: [
1050
- /* @__PURE__ */ jsxs2("div", { className: "flex justify-between items-center mb-2", children: [
1051
- /* @__PURE__ */ jsx2("label", { className: "block font-label text-xs font-bold uppercase tracking-widest text-muted-foreground", children: "Environment Variables" }),
1057
+ /* @__PURE__ */ jsxs2("div", { className: "flex justify-between items-center mb-1.5", children: [
1058
+ /* @__PURE__ */ jsx2("label", { className: FIELD_LABEL_CLASS, children: "Environment Variables" }),
1052
1059
  /* @__PURE__ */ jsxs2(
1053
1060
  "button",
1054
1061
  {
@@ -1057,7 +1064,7 @@ function ProvisioningWizard({
1057
1064
  ...envVars,
1058
1065
  { key: "", value: "" }
1059
1066
  ]),
1060
- className: "flex items-center gap-1 text-xs text-primary hover:text-primary/70 transition-colors font-bold",
1067
+ className: "flex items-center gap-1 text-xs text-primary hover:text-primary/70 transition-colors font-medium",
1061
1068
  children: [
1062
1069
  /* @__PURE__ */ jsx2(Plus, { className: "h-3 w-3" }),
1063
1070
  " Add Var"
@@ -1068,7 +1075,7 @@ function ProvisioningWizard({
1068
1075
  /* @__PURE__ */ jsxs2("div", { className: "space-y-2", children: [
1069
1076
  envVars.map((env, i) => /* @__PURE__ */ jsxs2("div", { className: "flex gap-2", children: [
1070
1077
  /* @__PURE__ */ jsx2(
1071
- "input",
1078
+ Input,
1072
1079
  {
1073
1080
  type: "text",
1074
1081
  value: env.key,
@@ -1077,12 +1084,12 @@ function ProvisioningWizard({
1077
1084
  (v, idx) => idx === i ? { ...v, key: e.target.value } : v
1078
1085
  )
1079
1086
  ),
1080
- className: "flex-1 bg-card border border-border rounded-xl h-10 px-3 font-mono text-sm text-foreground focus:outline-none focus:ring-1 focus:ring-primary placeholder:text-muted-foreground",
1087
+ className: "flex-1 h-9 px-3 font-mono text-sm",
1081
1088
  placeholder: "API_KEY"
1082
1089
  }
1083
1090
  ),
1084
1091
  /* @__PURE__ */ jsx2(
1085
- "input",
1092
+ Input,
1086
1093
  {
1087
1094
  type: "password",
1088
1095
  value: env.value,
@@ -1091,27 +1098,29 @@ function ProvisioningWizard({
1091
1098
  (v, idx) => idx === i ? { ...v, value: e.target.value } : v
1092
1099
  )
1093
1100
  ),
1094
- className: "flex-[2] bg-card border border-border rounded-xl h-10 px-3 font-mono text-sm text-foreground focus:outline-none focus:ring-1 focus:ring-primary placeholder:text-muted-foreground",
1101
+ className: "flex-[2] h-9 px-3 font-mono text-sm",
1095
1102
  placeholder: "sk-xxxxxxxxxxx"
1096
1103
  }
1097
1104
  ),
1098
1105
  /* @__PURE__ */ jsx2(
1099
- "button",
1106
+ Button,
1100
1107
  {
1101
1108
  type: "button",
1109
+ variant: "outline",
1110
+ size: "icon",
1102
1111
  onClick: () => setEnvVars(
1103
1112
  envVars.filter((_, idx) => idx !== i)
1104
1113
  ),
1105
- className: "h-10 w-10 flex items-center justify-center shrink-0 rounded-xl bg-card border border-border text-red-400 hover:bg-red-500/10 hover:border-red-500/30 transition-colors",
1114
+ className: "h-9 w-9 shrink-0 text-destructive hover:bg-destructive/10 hover:border-destructive/30",
1106
1115
  children: /* @__PURE__ */ jsx2(Trash2, { className: "h-4 w-4" })
1107
1116
  }
1108
1117
  )
1109
1118
  ] }, i)),
1110
- envVars.length === 0 && /* @__PURE__ */ jsx2("div", { className: "text-center p-3 bg-card border border-border rounded-xl text-muted-foreground/60 text-sm italic", children: "No environment variables set" })
1119
+ envVars.length === 0 && /* @__PURE__ */ jsx2("div", { className: "text-center p-3 border border-dashed border-border rounded-lg text-muted-foreground/60 text-xs italic", children: "No environment variables set" })
1111
1120
  ] })
1112
1121
  ] }),
1113
1122
  availableScripts.length > 0 && /* @__PURE__ */ jsxs2("div", { children: [
1114
- /* @__PURE__ */ jsx2("div", { className: "text-xs font-bold uppercase tracking-widest text-muted-foreground mb-2", children: "Startup Scripts" }),
1123
+ /* @__PURE__ */ jsx2("div", { className: cn(FIELD_LABEL_CLASS, "mb-1.5"), children: "Startup Scripts" }),
1115
1124
  /* @__PURE__ */ jsx2("div", { className: "space-y-2", children: availableScripts.filter((s) => s.enabled).map((script) => {
1116
1125
  const selected = startupScriptIds.includes(
1117
1126
  script.id
@@ -1178,46 +1187,49 @@ function ProvisioningWizard({
1178
1187
  );
1179
1188
  }) })
1180
1189
  ] }),
1181
- /* @__PURE__ */ jsx2("div", { className: "pt-2 border-t border-border", children: /* @__PURE__ */ jsxs2("label", { className: "flex items-center gap-3 cursor-pointer group", children: [
1182
- /* @__PURE__ */ jsxs2("div", { className: "relative flex items-center justify-center shrink-0", children: [
1190
+ /* @__PURE__ */ jsxs2("div", { className: "pt-3 border-t border-border flex items-start justify-between gap-3", children: [
1191
+ /* @__PURE__ */ jsxs2("div", { children: [
1183
1192
  /* @__PURE__ */ jsx2(
1184
- "input",
1193
+ "label",
1185
1194
  {
1186
- type: "checkbox",
1187
- className: "sr-only peer",
1188
- checked: bare,
1189
- onChange: (e) => setBare(e.target.checked)
1195
+ htmlFor: "wizard-bare-mode",
1196
+ className: "block text-sm font-medium text-foreground cursor-pointer",
1197
+ children: "Bare Mode"
1190
1198
  }
1191
1199
  ),
1192
- /* @__PURE__ */ jsx2("div", { className: "w-10 h-6 bg-muted peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-primary hover:bg-muted/80 transition-colors" })
1200
+ /* @__PURE__ */ jsx2("p", { className: "text-xs text-muted-foreground mt-0.5", children: "Start as a raw container without an embedded AI Agent backend." })
1193
1201
  ] }),
1194
- /* @__PURE__ */ jsxs2("div", { children: [
1195
- /* @__PURE__ */ jsx2("div", { className: "text-sm font-bold text-foreground mb-0.5 group-hover:text-primary transition-colors", children: "Bare Mode" }),
1196
- /* @__PURE__ */ jsx2("div", { className: "text-xs text-muted-foreground", children: "Start as a raw container without an embedded AI Agent backend." })
1197
- ] })
1198
- ] }) })
1202
+ /* @__PURE__ */ jsx2(
1203
+ Switch,
1204
+ {
1205
+ id: "wizard-bare-mode",
1206
+ checked: bare,
1207
+ onCheckedChange: setBare,
1208
+ className: "mt-0.5"
1209
+ }
1210
+ )
1211
+ ] })
1199
1212
  ] })
1200
- ] }) }) }) }),
1201
- sshAccess && (!isMultistep || currentStep === 3) && /* @__PURE__ */ jsx2(React2.Fragment, { children: /* @__PURE__ */ jsxs2("section", { className: "bg-card border border-border rounded-[24px] p-6 shadow-2xl relative overflow-hidden animate-in fade-in slide-in-from-bottom-4 duration-300", children: [
1202
- /* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-3 mb-5", children: [
1203
- /* @__PURE__ */ jsx2("div", { className: "flex h-9 w-9 shrink-0 items-center justify-center rounded-xl bg-primary/10 border border-primary/20 text-primary", children: /* @__PURE__ */ jsx2(Settings, { className: "h-5 w-5" }) }),
1204
- /* @__PURE__ */ jsx2("h2", { className: "text-lg font-bold text-foreground tracking-tight", children: "Access Configuration" })
1213
+ ] }) }) }),
1214
+ sshAccess && (!isMultistep || currentStep === 3) && /* @__PURE__ */ jsx2(React2.Fragment, { children: /* @__PURE__ */ jsxs2("section", { className: SECTION_CARD_CLASS, children: [
1215
+ /* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-2 mb-4", children: [
1216
+ /* @__PURE__ */ jsx2(Settings, { className: "h-4 w-4 text-primary shrink-0" }),
1217
+ /* @__PURE__ */ jsx2("h2", { className: "text-sm font-semibold uppercase tracking-[0.06em] text-muted-foreground", children: "Access Configuration" })
1205
1218
  ] }),
1206
1219
  /* @__PURE__ */ jsx2(SshAccessStep, { config: sshAccess })
1207
1220
  ] }) })
1208
1221
  ] })
1209
1222
  ] }),
1210
1223
  /* @__PURE__ */ jsxs2("div", { className: "col-span-12 xl:col-span-4 sticky top-4 space-y-4", children: [
1211
- /* @__PURE__ */ jsxs2("div", { className: "p-6 rounded-[24px] bg-card border border-primary/15 relative overflow-hidden", children: [
1212
- /* @__PURE__ */ jsx2("div", { className: "hidden" }),
1213
- /* @__PURE__ */ jsxs2("div", { className: "flex justify-between items-center mb-4 relative z-10", children: [
1214
- /* @__PURE__ */ jsx2("span", { className: "font-label text-xs font-bold uppercase tracking-widest text-muted-foreground", children: "Run Cost" }),
1224
+ /* @__PURE__ */ jsxs2("div", { className: "rounded-lg border border-border bg-card p-5 shadow-sm", children: [
1225
+ /* @__PURE__ */ jsxs2("div", { className: "flex justify-between items-center mb-3", children: [
1226
+ /* @__PURE__ */ jsx2("span", { className: FIELD_LABEL_CLASS, children: "Run Cost" }),
1215
1227
  /* @__PURE__ */ jsxs2(
1216
1228
  "div",
1217
1229
  {
1218
1230
  role: "group",
1219
1231
  "aria-label": "Pricing view",
1220
- className: "inline-flex items-center rounded-full border border-border bg-muted/50 p-0.5",
1232
+ className: "inline-flex items-center rounded-md border border-border bg-muted/50 p-0.5",
1221
1233
  children: [
1222
1234
  /* @__PURE__ */ jsx2(
1223
1235
  "button",
@@ -1226,7 +1238,7 @@ function ProvisioningWizard({
1226
1238
  "aria-pressed": pricingView === "hourly",
1227
1239
  onClick: () => setPricingView("hourly"),
1228
1240
  className: cn(
1229
- "rounded-full px-2.5 py-0.5 text-[10px] font-bold transition-all",
1241
+ "rounded px-2.5 py-0.5 text-[10px] font-medium transition-all",
1230
1242
  pricingView === "hourly" ? "bg-card text-foreground shadow-sm" : "text-muted-foreground hover:text-foreground"
1231
1243
  ),
1232
1244
  children: "Per Hour"
@@ -1239,7 +1251,7 @@ function ProvisioningWizard({
1239
1251
  "aria-pressed": pricingView === "perSecond",
1240
1252
  onClick: () => setPricingView("perSecond"),
1241
1253
  className: cn(
1242
- "rounded-full px-2.5 py-0.5 text-[10px] font-bold transition-all",
1254
+ "rounded px-2.5 py-0.5 text-[10px] font-medium transition-all",
1243
1255
  pricingView === "perSecond" ? "bg-card text-foreground shadow-sm" : "text-muted-foreground hover:text-foreground"
1244
1256
  ),
1245
1257
  children: "Per Second"
@@ -1249,13 +1261,13 @@ function ProvisioningWizard({
1249
1261
  }
1250
1262
  )
1251
1263
  ] }),
1252
- /* @__PURE__ */ jsxs2("div", { className: "flex items-baseline gap-2 mb-5 relative z-10", children: [
1264
+ /* @__PURE__ */ jsxs2("div", { className: "flex items-baseline gap-2 mb-4", children: [
1253
1265
  /* @__PURE__ */ jsxs2(
1254
1266
  "span",
1255
1267
  {
1256
1268
  className: cn(
1257
- "font-black text-foreground tracking-tighter animate-in fade-in duration-200",
1258
- pricingView === "hourly" ? "text-4xl" : "text-2xl"
1269
+ "font-semibold text-foreground tracking-tight tabular-nums animate-in fade-in duration-200",
1270
+ pricingView === "hourly" ? "text-3xl" : "text-xl"
1259
1271
  ),
1260
1272
  children: [
1261
1273
  "$",
@@ -1264,10 +1276,10 @@ function ProvisioningWizard({
1264
1276
  },
1265
1277
  pricingView
1266
1278
  ),
1267
- /* @__PURE__ */ jsx2("span", { className: "text-muted-foreground text-sm font-bold", children: pricingSuffix })
1279
+ /* @__PURE__ */ jsx2("span", { className: "text-muted-foreground text-sm", children: pricingSuffix })
1268
1280
  ] }),
1269
- /* @__PURE__ */ jsxs2("div", { className: "space-y-2 relative z-10 bg-card border border-border rounded-xl p-3", children: [
1270
- /* @__PURE__ */ jsxs2("div", { className: "flex justify-between text-xs font-mono tracking-widest text-muted-foreground", children: [
1281
+ /* @__PURE__ */ jsxs2("div", { className: "space-y-2 rounded-md border border-border bg-muted/30 p-3", children: [
1282
+ /* @__PURE__ */ jsxs2("div", { className: "flex justify-between text-xs font-mono tracking-wide text-muted-foreground", children: [
1271
1283
  /* @__PURE__ */ jsx2("span", { children: "COMPUTE" }),
1272
1284
  /* @__PURE__ */ jsxs2("span", { className: "text-foreground", children: [
1273
1285
  "$",
@@ -1275,7 +1287,7 @@ function ProvisioningWizard({
1275
1287
  rateSuffix
1276
1288
  ] })
1277
1289
  ] }),
1278
- /* @__PURE__ */ jsxs2("div", { className: "flex justify-between text-xs font-mono tracking-widest text-muted-foreground", children: [
1290
+ /* @__PURE__ */ jsxs2("div", { className: "flex justify-between text-xs font-mono tracking-wide text-muted-foreground", children: [
1279
1291
  /* @__PURE__ */ jsx2("span", { children: "MEMORY" }),
1280
1292
  /* @__PURE__ */ jsxs2("span", { className: "text-foreground/80", children: [
1281
1293
  "$",
@@ -1283,7 +1295,7 @@ function ProvisioningWizard({
1283
1295
  rateSuffix
1284
1296
  ] })
1285
1297
  ] }),
1286
- /* @__PURE__ */ jsxs2("div", { className: "flex justify-between text-xs font-mono tracking-widest text-muted-foreground", children: [
1298
+ /* @__PURE__ */ jsxs2("div", { className: "flex justify-between text-xs font-mono tracking-wide text-muted-foreground", children: [
1287
1299
  /* @__PURE__ */ jsx2("span", { children: "STORAGE" }),
1288
1300
  /* @__PURE__ */ jsxs2("span", { className: "text-foreground/80", children: [
1289
1301
  "$",
@@ -1291,7 +1303,7 @@ function ProvisioningWizard({
1291
1303
  rateSuffix
1292
1304
  ] })
1293
1305
  ] }),
1294
- hourlyCostBreakdown.floorApplies && /* @__PURE__ */ jsxs2("div", { className: "flex justify-between text-xs font-mono tracking-widest text-primary border-t border-border pt-2", children: [
1306
+ hourlyCostBreakdown.floorApplies && /* @__PURE__ */ jsxs2("div", { className: "flex justify-between text-xs font-mono tracking-wide text-primary border-t border-border pt-2", children: [
1295
1307
  /* @__PURE__ */ jsx2("span", { children: "MIN CHARGE" }),
1296
1308
  /* @__PURE__ */ jsxs2("span", { children: [
1297
1309
  "$",
@@ -1303,29 +1315,29 @@ function ProvisioningWizard({
1303
1315
  ] })
1304
1316
  ] })
1305
1317
  ] }),
1306
- deployError && /* @__PURE__ */ jsxs2("div", { className: "rounded-xl border border-destructive/30 bg-destructive/10 p-3 flex items-center gap-2", children: [
1318
+ deployError && /* @__PURE__ */ jsxs2("div", { className: "rounded-lg border border-destructive/30 bg-destructive/10 p-3 flex items-center gap-2", children: [
1307
1319
  /* @__PURE__ */ jsx2(Info, { className: "h-4 w-4 text-destructive shrink-0" }),
1308
1320
  /* @__PURE__ */ jsx2("p", { className: "text-sm font-medium text-destructive", children: deployError })
1309
1321
  ] }),
1310
- /* @__PURE__ */ jsx2("div", { className: "space-y-3", children: isMultistep ? /* @__PURE__ */ jsxs2(Fragment2, { children: [
1322
+ /* @__PURE__ */ jsx2("div", { className: "space-y-2", children: isMultistep ? /* @__PURE__ */ jsxs2(Fragment2, { children: [
1311
1323
  currentStep < finalStep ? /* @__PURE__ */ jsxs2(
1312
- "button",
1324
+ Button,
1313
1325
  {
1314
1326
  type: "button",
1315
1327
  onClick: () => setCurrentStep((s) => s + 1),
1316
- className: "w-full relative overflow-hidden h-12 bg-primary text-primary-foreground font-extrabold text-sm rounded-2xl hover:brightness-110 transition-all active:scale-[0.98] shadow-md",
1328
+ className: "w-full",
1317
1329
  children: [
1318
1330
  "Continue to ",
1319
1331
  stepLabels[currentStep]
1320
1332
  ]
1321
1333
  }
1322
1334
  ) : /* @__PURE__ */ jsx2(
1323
- "button",
1335
+ Button,
1324
1336
  {
1325
1337
  type: "button",
1326
1338
  onClick: handleDeploy,
1327
1339
  disabled: isDeploying || !selectedEnv,
1328
- className: "w-full h-12 bg-primary text-primary-foreground font-extrabold text-sm rounded-2xl tracking-wide shadow-md disabled:opacity-50 hover:brightness-110 active:scale-[0.98] transition-all",
1340
+ className: "w-full",
1329
1341
  children: isDeploying ? /* @__PURE__ */ jsxs2("span", { className: "flex items-center justify-center gap-2", children: [
1330
1342
  /* @__PURE__ */ jsx2(Loader2, { className: "h-4 w-4 animate-spin" }),
1331
1343
  "Deploying..."
@@ -1333,21 +1345,22 @@ function ProvisioningWizard({
1333
1345
  }
1334
1346
  ),
1335
1347
  currentStep > 1 && /* @__PURE__ */ jsx2(
1336
- "button",
1348
+ Button,
1337
1349
  {
1338
1350
  type: "button",
1351
+ variant: "secondary",
1339
1352
  onClick: () => setCurrentStep((s) => s - 1),
1340
- className: "w-full h-10 bg-secondary text-secondary-foreground border border-border font-bold text-sm rounded-2xl hover:brightness-95 active:scale-[0.98] transition-all",
1353
+ className: "w-full",
1341
1354
  children: "Back"
1342
1355
  }
1343
1356
  )
1344
1357
  ] }) : /* @__PURE__ */ jsx2(
1345
- "button",
1358
+ Button,
1346
1359
  {
1347
1360
  type: "button",
1348
1361
  onClick: handleDeploy,
1349
1362
  disabled: isDeploying || !selectedEnv,
1350
- className: "w-full h-12 bg-primary text-primary-foreground font-extrabold text-sm rounded-2xl tracking-wide shadow-md disabled:opacity-50 hover:brightness-110 active:scale-[0.98] transition-all",
1363
+ className: "w-full",
1351
1364
  children: isDeploying ? /* @__PURE__ */ jsxs2("span", { className: "flex items-center justify-center gap-2", children: [
1352
1365
  /* @__PURE__ */ jsx2(Loader2, { className: "h-4 w-4 animate-spin" }),
1353
1366
  "Spinning up environment..."
@@ -1523,7 +1536,7 @@ import {
1523
1536
  DialogTitle
1524
1537
  } from "@tangle-network/ui/primitives";
1525
1538
  import { EmptyState } from "@tangle-network/ui/primitives";
1526
- import { Input } from "@tangle-network/ui/primitives";
1539
+ import { Input as Input2 } from "@tangle-network/ui/primitives";
1527
1540
  import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
1528
1541
  var TIER_LIMITS = {
1529
1542
  free: 3,
@@ -1616,7 +1629,7 @@ function ProfilesPage({
1616
1629
  /* @__PURE__ */ jsxs4("div", { className: "relative max-w-md", children: [
1617
1630
  /* @__PURE__ */ jsx4(Search, { className: "absolute top-1/2 left-3 h-4 w-4 -translate-y-1/2 text-muted-foreground" }),
1618
1631
  /* @__PURE__ */ jsx4(
1619
- Input,
1632
+ Input2,
1620
1633
  {
1621
1634
  placeholder: "Search profiles...",
1622
1635
  value: searchQuery,
@@ -1892,7 +1905,7 @@ function ProfileFormDialog({
1892
1905
  /* @__PURE__ */ jsxs4("div", { children: [
1893
1906
  /* @__PURE__ */ jsx4("label", { className: "mb-1 block font-medium text-sm", children: "Name *" }),
1894
1907
  /* @__PURE__ */ jsx4(
1895
- Input,
1908
+ Input2,
1896
1909
  {
1897
1910
  value: formData.name,
1898
1911
  onChange: (e) => setFormData((d) => ({ ...d, name: e.target.value })),
@@ -1906,7 +1919,7 @@ function ProfileFormDialog({
1906
1919
  /* @__PURE__ */ jsxs4("div", { children: [
1907
1920
  /* @__PURE__ */ jsx4("label", { className: "mb-1 block font-medium text-sm", children: "Description" }),
1908
1921
  /* @__PURE__ */ jsx4(
1909
- Input,
1922
+ Input2,
1910
1923
  {
1911
1924
  value: formData.description,
1912
1925
  onChange: (e) => setFormData((d) => ({ ...d, description: e.target.value })),
@@ -1936,7 +1949,7 @@ function ProfileFormDialog({
1936
1949
  /* @__PURE__ */ jsxs4("div", { children: [
1937
1950
  /* @__PURE__ */ jsx4("label", { className: "mb-1 block font-medium text-sm", children: "Model" }),
1938
1951
  /* @__PURE__ */ jsx4(
1939
- Input,
1952
+ Input2,
1940
1953
  {
1941
1954
  value: formData.model,
1942
1955
  onChange: (e) => setFormData((d) => ({ ...d, model: e.target.value })),
@@ -1961,7 +1974,7 @@ function ProfileFormDialog({
1961
1974
  /* @__PURE__ */ jsxs4("div", { children: [
1962
1975
  /* @__PURE__ */ jsx4("label", { className: "mb-1 block font-medium text-sm", children: "Tags" }),
1963
1976
  /* @__PURE__ */ jsx4(
1964
- Input,
1977
+ Input2,
1965
1978
  {
1966
1979
  value: formData.tags?.join(", "),
1967
1980
  onChange: (e) => setFormData((d) => ({