@mindtris/ui 0.1.7 → 0.1.8

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
@@ -2729,7 +2729,7 @@ function useThemeManager() {
2729
2729
  __name(useThemeManager, "useThemeManager");
2730
2730
 
2731
2731
  // components/theme-customizer/index.tsx
2732
- import React44 from "react";
2732
+ import React45 from "react";
2733
2733
  import { Settings, X as X9 } from "lucide-react";
2734
2734
 
2735
2735
  // components/ui/button.tsx
@@ -10398,7 +10398,7 @@ function FormItem({ className, ...props }) {
10398
10398
  "div",
10399
10399
  {
10400
10400
  "data-slot": "form-item",
10401
- className: cn("grid gap-2", className),
10401
+ className: cn("grid gap-1", className),
10402
10402
  ...props
10403
10403
  }
10404
10404
  ) });
@@ -10462,7 +10462,7 @@ function FormMessage({ className, ...props }) {
10462
10462
  {
10463
10463
  "data-slot": "form-message",
10464
10464
  id: formMessageId,
10465
- className: cn("text-sm text-destructive", className),
10465
+ className: cn("text-xs text-destructive mt-px", className),
10466
10466
  ...props,
10467
10467
  children: body
10468
10468
  }
@@ -10470,9 +10470,28 @@ function FormMessage({ className, ...props }) {
10470
10470
  }
10471
10471
  __name(FormMessage, "FormMessage");
10472
10472
 
10473
+ // components/ui/error-message.tsx
10474
+ import * as React35 from "react";
10475
+ import { jsx as jsx62 } from "react/jsx-runtime";
10476
+ var ErrorMessage = React35.forwardRef(
10477
+ ({ className, ...props }, ref) => {
10478
+ return /* @__PURE__ */ jsx62(
10479
+ "p",
10480
+ {
10481
+ ref,
10482
+ "data-slot": "error-message",
10483
+ role: "alert",
10484
+ className: cn("text-xs text-destructive mt-px", className),
10485
+ ...props
10486
+ }
10487
+ );
10488
+ }
10489
+ );
10490
+ ErrorMessage.displayName = "ErrorMessage";
10491
+
10473
10492
  // components/ui/navigation-menu.tsx
10474
10493
  import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
10475
- import { jsx as jsx62, jsxs as jsxs40 } from "react/jsx-runtime";
10494
+ import { jsx as jsx63, jsxs as jsxs40 } from "react/jsx-runtime";
10476
10495
  function NavigationMenuRoot({
10477
10496
  className,
10478
10497
  children,
@@ -10491,7 +10510,7 @@ function NavigationMenuRoot({
10491
10510
  ...props,
10492
10511
  children: [
10493
10512
  children,
10494
- viewport ? /* @__PURE__ */ jsx62(NavigationMenuViewport, {}) : null
10513
+ viewport ? /* @__PURE__ */ jsx63(NavigationMenuViewport, {}) : null
10495
10514
  ]
10496
10515
  }
10497
10516
  );
@@ -10501,7 +10520,7 @@ function NavigationMenuList({
10501
10520
  className,
10502
10521
  ...props
10503
10522
  }) {
10504
- return /* @__PURE__ */ jsx62(
10523
+ return /* @__PURE__ */ jsx63(
10505
10524
  NavigationMenuPrimitive.List,
10506
10525
  {
10507
10526
  "data-slot": "navigation-menu-list",
@@ -10518,7 +10537,7 @@ function NavigationMenuItem({
10518
10537
  className,
10519
10538
  ...props
10520
10539
  }) {
10521
- return /* @__PURE__ */ jsx62(
10540
+ return /* @__PURE__ */ jsx63(
10522
10541
  NavigationMenuPrimitive.Item,
10523
10542
  {
10524
10543
  "data-slot": "navigation-menu-item",
@@ -10542,7 +10561,7 @@ function NavigationMenuTrigger({
10542
10561
  ...props,
10543
10562
  children: [
10544
10563
  children,
10545
- /* @__PURE__ */ jsx62(
10564
+ /* @__PURE__ */ jsx63(
10546
10565
  ChevronIcon,
10547
10566
  {
10548
10567
  className: "relative size-3 transition-transform duration-200 group-data-[state=open]:rotate-180",
@@ -10558,7 +10577,7 @@ function ChevronIcon({
10558
10577
  className,
10559
10578
  ...props
10560
10579
  }) {
10561
- return /* @__PURE__ */ jsx62(
10580
+ return /* @__PURE__ */ jsx63(
10562
10581
  "svg",
10563
10582
  {
10564
10583
  xmlns: "http://www.w3.org/2000/svg",
@@ -10572,7 +10591,7 @@ function ChevronIcon({
10572
10591
  strokeLinejoin: "round",
10573
10592
  className: cn("shrink-0", className),
10574
10593
  ...props,
10575
- children: /* @__PURE__ */ jsx62("path", { d: "m6 9 6 6 6-6" })
10594
+ children: /* @__PURE__ */ jsx63("path", { d: "m6 9 6 6 6-6" })
10576
10595
  }
10577
10596
  );
10578
10597
  }
@@ -10581,7 +10600,7 @@ function NavigationMenuContent({
10581
10600
  className,
10582
10601
  ...props
10583
10602
  }) {
10584
- return /* @__PURE__ */ jsx62(
10603
+ return /* @__PURE__ */ jsx63(
10585
10604
  NavigationMenuPrimitive.Content,
10586
10605
  {
10587
10606
  "data-slot": "navigation-menu-content",
@@ -10601,7 +10620,7 @@ function NavigationMenuViewport({
10601
10620
  className,
10602
10621
  ...props
10603
10622
  }) {
10604
- return /* @__PURE__ */ jsx62("div", { className: "absolute left-0 top-full z-50 flex justify-center", children: /* @__PURE__ */ jsx62(
10623
+ return /* @__PURE__ */ jsx63("div", { className: "absolute left-0 top-full z-50 flex justify-center", children: /* @__PURE__ */ jsx63(
10605
10624
  NavigationMenuPrimitive.Viewport,
10606
10625
  {
10607
10626
  "data-slot": "navigation-menu-viewport",
@@ -10620,7 +10639,7 @@ function NavigationMenuLink({
10620
10639
  className,
10621
10640
  ...props
10622
10641
  }) {
10623
- return /* @__PURE__ */ jsx62(
10642
+ return /* @__PURE__ */ jsx63(
10624
10643
  NavigationMenuPrimitive.Link,
10625
10644
  {
10626
10645
  "data-slot": "navigation-menu-link",
@@ -10640,7 +10659,7 @@ function NavigationMenuIndicator({
10640
10659
  className,
10641
10660
  ...props
10642
10661
  }) {
10643
- return /* @__PURE__ */ jsx62(
10662
+ return /* @__PURE__ */ jsx63(
10644
10663
  NavigationMenuPrimitive.Indicator,
10645
10664
  {
10646
10665
  "data-slot": "navigation-menu-indicator",
@@ -10650,7 +10669,7 @@ function NavigationMenuIndicator({
10650
10669
  className
10651
10670
  ),
10652
10671
  ...props,
10653
- children: /* @__PURE__ */ jsx62("div", { className: "relative top-[60%] size-2 rotate-45 rounded-tl-sm border-border bg-border shadow-md" })
10672
+ children: /* @__PURE__ */ jsx63("div", { className: "relative top-[60%] size-2 rotate-45 rounded-tl-sm border-border bg-border shadow-md" })
10654
10673
  }
10655
10674
  );
10656
10675
  }
@@ -10677,7 +10696,7 @@ var ICON_SIZES = {
10677
10696
  };
10678
10697
 
10679
10698
  // components/ui/icon.tsx
10680
- import { jsx as jsx63 } from "react/jsx-runtime";
10699
+ import { jsx as jsx64 } from "react/jsx-runtime";
10681
10700
  function Icon({
10682
10701
  icon: IconComponent,
10683
10702
  size = "md",
@@ -10686,7 +10705,7 @@ function Icon({
10686
10705
  ...props
10687
10706
  }) {
10688
10707
  const sizeValue = typeof size === "number" ? size : ICON_SIZES[size];
10689
- return /* @__PURE__ */ jsx63(
10708
+ return /* @__PURE__ */ jsx64(
10690
10709
  IconComponent,
10691
10710
  {
10692
10711
  className: cn("shrink-0", className),
@@ -10704,7 +10723,7 @@ function createIcon(IconComponent, options = {}) {
10704
10723
  className
10705
10724
  } = options;
10706
10725
  const sizeValue = typeof size === "number" ? size : ICON_SIZES[size];
10707
- return /* @__PURE__ */ jsx63(
10726
+ return /* @__PURE__ */ jsx64(
10708
10727
  IconComponent,
10709
10728
  {
10710
10729
  className: cn("shrink-0", className),
@@ -10716,11 +10735,11 @@ function createIcon(IconComponent, options = {}) {
10716
10735
  __name(createIcon, "createIcon");
10717
10736
 
10718
10737
  // components/ui/theme-toggle-icon.tsx
10719
- import { jsx as jsx64, jsxs as jsxs41 } from "react/jsx-runtime";
10738
+ import { jsx as jsx65, jsxs as jsxs41 } from "react/jsx-runtime";
10720
10739
  function ThemeToggleIcon() {
10721
10740
  const { theme, setTheme } = useTheme2();
10722
10741
  return /* @__PURE__ */ jsxs41("div", { children: [
10723
- /* @__PURE__ */ jsx64(
10742
+ /* @__PURE__ */ jsx65(
10724
10743
  "input",
10725
10744
  {
10726
10745
  type: "checkbox",
@@ -10746,7 +10765,7 @@ function ThemeToggleIcon() {
10746
10765
  htmlFor: "light-switch",
10747
10766
  children: [
10748
10767
  createIcon(Moon, { size: 16, strokeWidth: 2.25, className: "text-muted-foreground" }),
10749
- /* @__PURE__ */ jsx64("span", { className: "sr-only", children: "Switch to light / dark version" })
10768
+ /* @__PURE__ */ jsx65("span", { className: "sr-only", children: "Switch to light / dark version" })
10750
10769
  ]
10751
10770
  }
10752
10771
  )
@@ -10755,16 +10774,16 @@ function ThemeToggleIcon() {
10755
10774
  __name(ThemeToggleIcon, "ThemeToggleIcon");
10756
10775
 
10757
10776
  // components/ui/kbd.tsx
10758
- import * as React35 from "react";
10759
- import { jsx as jsx65 } from "react/jsx-runtime";
10777
+ import * as React36 from "react";
10778
+ import { jsx as jsx66 } from "react/jsx-runtime";
10760
10779
  var sizeClasses7 = {
10761
10780
  sm: "px-1.5 py-0.5 text-[10px]",
10762
10781
  default: "px-2 py-1 text-xs",
10763
10782
  lg: "px-2.5 py-1.5 text-sm"
10764
10783
  };
10765
- var Kbd = React35.forwardRef(
10784
+ var Kbd = React36.forwardRef(
10766
10785
  ({ className, size = "default", children, ...props }, ref) => {
10767
- return /* @__PURE__ */ jsx65(
10786
+ return /* @__PURE__ */ jsx66(
10768
10787
  "kbd",
10769
10788
  {
10770
10789
  ref,
@@ -10786,15 +10805,15 @@ var Kbd = React35.forwardRef(
10786
10805
  Kbd.displayName = "Kbd";
10787
10806
 
10788
10807
  // components/ui/scroll-area.tsx
10789
- import * as React36 from "react";
10808
+ import * as React37 from "react";
10790
10809
  import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
10791
- import { jsx as jsx66, jsxs as jsxs42 } from "react/jsx-runtime";
10810
+ import { jsx as jsx67, jsxs as jsxs42 } from "react/jsx-runtime";
10792
10811
  function isHorizontalScrollBar(child) {
10793
- return React36.isValidElement(child) && child.type === ScrollBar && child.props.orientation === "horizontal";
10812
+ return React37.isValidElement(child) && child.type === ScrollBar && child.props.orientation === "horizontal";
10794
10813
  }
10795
10814
  __name(isHorizontalScrollBar, "isHorizontalScrollBar");
10796
- var ScrollArea = React36.forwardRef(({ className, children, ...props }, ref) => {
10797
- const childList = React36.Children.toArray(children);
10815
+ var ScrollArea = React37.forwardRef(({ className, children, ...props }, ref) => {
10816
+ const childList = React37.Children.toArray(children);
10798
10817
  const viewportChildren = childList.filter((c) => !isHorizontalScrollBar(c));
10799
10818
  const horizontalBars = childList.filter((c) => isHorizontalScrollBar(c));
10800
10819
  return /* @__PURE__ */ jsxs42(
@@ -10805,7 +10824,7 @@ var ScrollArea = React36.forwardRef(({ className, children, ...props }, ref) =>
10805
10824
  className: cn("relative overflow-hidden", className),
10806
10825
  ...props,
10807
10826
  children: [
10808
- /* @__PURE__ */ jsx66(
10827
+ /* @__PURE__ */ jsx67(
10809
10828
  ScrollAreaPrimitive.Viewport,
10810
10829
  {
10811
10830
  "data-slot": "scroll-area-viewport",
@@ -10813,15 +10832,15 @@ var ScrollArea = React36.forwardRef(({ className, children, ...props }, ref) =>
10813
10832
  children: viewportChildren
10814
10833
  }
10815
10834
  ),
10816
- /* @__PURE__ */ jsx66(ScrollBar, {}),
10835
+ /* @__PURE__ */ jsx67(ScrollBar, {}),
10817
10836
  horizontalBars,
10818
- /* @__PURE__ */ jsx66(ScrollAreaPrimitive.Corner, { "data-slot": "scroll-area-corner" })
10837
+ /* @__PURE__ */ jsx67(ScrollAreaPrimitive.Corner, { "data-slot": "scroll-area-corner" })
10819
10838
  ]
10820
10839
  }
10821
10840
  );
10822
10841
  });
10823
10842
  ScrollArea.displayName = "ScrollArea";
10824
- var ScrollBar = React36.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx66(
10843
+ var ScrollBar = React37.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx67(
10825
10844
  ScrollAreaPrimitive.Scrollbar,
10826
10845
  {
10827
10846
  ref,
@@ -10833,7 +10852,7 @@ var ScrollBar = React36.forwardRef(({ className, orientation = "vertical", ...pr
10833
10852
  className
10834
10853
  ),
10835
10854
  ...props,
10836
- children: /* @__PURE__ */ jsx66(
10855
+ children: /* @__PURE__ */ jsx67(
10837
10856
  ScrollAreaPrimitive.Thumb,
10838
10857
  {
10839
10858
  "data-slot": "scroll-area-thumb",
@@ -10847,10 +10866,10 @@ var ScrollBar = React36.forwardRef(({ className, orientation = "vertical", ...pr
10847
10866
  ScrollBar.displayName = "ScrollBar";
10848
10867
 
10849
10868
  // components/ui/resizable.tsx
10850
- import * as React37 from "react";
10869
+ import * as React38 from "react";
10851
10870
  import { Group as Group4, Panel, Separator as Separator6 } from "react-resizable-panels";
10852
10871
  import { GripVertical } from "lucide-react";
10853
- import { jsx as jsx67 } from "react/jsx-runtime";
10872
+ import { jsx as jsx68 } from "react/jsx-runtime";
10854
10873
  function ResizablePanelGroup({
10855
10874
  className,
10856
10875
  direction = "horizontal",
@@ -10858,7 +10877,7 @@ function ResizablePanelGroup({
10858
10877
  ...props
10859
10878
  }) {
10860
10879
  const orientation = orientationProp ?? direction;
10861
- return /* @__PURE__ */ jsx67(
10880
+ return /* @__PURE__ */ jsx68(
10862
10881
  Group4,
10863
10882
  {
10864
10883
  "data-slot": "resizable-panel-group",
@@ -10874,11 +10893,11 @@ function ResizablePanelGroup({
10874
10893
  }
10875
10894
  __name(ResizablePanelGroup, "ResizablePanelGroup");
10876
10895
  function ResizablePanel({ className, ...props }) {
10877
- return /* @__PURE__ */ jsx67(Panel, { "data-slot": "resizable-panel", className: cn(className), ...props });
10896
+ return /* @__PURE__ */ jsx68(Panel, { "data-slot": "resizable-panel", className: cn(className), ...props });
10878
10897
  }
10879
10898
  __name(ResizablePanel, "ResizablePanel");
10880
- var ResizableHandle = React37.forwardRef(({ className, withHandle = false, ...props }, ref) => {
10881
- return /* @__PURE__ */ jsx67(
10899
+ var ResizableHandle = React38.forwardRef(({ className, withHandle = false, ...props }, ref) => {
10900
+ return /* @__PURE__ */ jsx68(
10882
10901
  Separator6,
10883
10902
  {
10884
10903
  elementRef: ref,
@@ -10892,7 +10911,7 @@ var ResizableHandle = React37.forwardRef(({ className, withHandle = false, ...pr
10892
10911
  className
10893
10912
  ),
10894
10913
  ...props,
10895
- children: withHandle ? /* @__PURE__ */ jsx67(
10914
+ children: withHandle ? /* @__PURE__ */ jsx68(
10896
10915
  "div",
10897
10916
  {
10898
10917
  "data-slot": "resizable-handle-grip",
@@ -10900,7 +10919,7 @@ var ResizableHandle = React37.forwardRef(({ className, withHandle = false, ...pr
10900
10919
  "z-10 flex h-4 w-3 items-center justify-center rounded-sm border border-border bg-card",
10901
10920
  "data-[orientation=horizontal]:h-3 data-[orientation=horizontal]:w-4"
10902
10921
  ),
10903
- children: /* @__PURE__ */ jsx67(
10922
+ children: /* @__PURE__ */ jsx68(
10904
10923
  GripVertical,
10905
10924
  {
10906
10925
  className: cn(
@@ -10918,14 +10937,14 @@ var ResizableHandle = React37.forwardRef(({ className, withHandle = false, ...pr
10918
10937
  ResizableHandle.displayName = "ResizableHandle";
10919
10938
 
10920
10939
  // components/ui/typography.tsx
10921
- import { jsx as jsx68 } from "react/jsx-runtime";
10940
+ import { jsx as jsx69 } from "react/jsx-runtime";
10922
10941
  function Text({
10923
10942
  variant = "default",
10924
10943
  className,
10925
10944
  as: Component = "p",
10926
10945
  ...props
10927
10946
  }) {
10928
- return /* @__PURE__ */ jsx68(
10947
+ return /* @__PURE__ */ jsx69(
10929
10948
  Component,
10930
10949
  {
10931
10950
  "data-slot": "text",
@@ -10957,7 +10976,7 @@ function Heading({
10957
10976
  ...props
10958
10977
  }) {
10959
10978
  const Tag = as ?? `h${level}`;
10960
- return /* @__PURE__ */ jsx68(
10979
+ return /* @__PURE__ */ jsx69(
10961
10980
  Tag,
10962
10981
  {
10963
10982
  "data-slot": "heading",
@@ -10969,7 +10988,7 @@ function Heading({
10969
10988
  }
10970
10989
  __name(Heading, "Heading");
10971
10990
  function Lead({ className, ...props }) {
10972
- return /* @__PURE__ */ jsx68(
10991
+ return /* @__PURE__ */ jsx69(
10973
10992
  "p",
10974
10993
  {
10975
10994
  "data-slot": "lead",
@@ -10980,7 +10999,7 @@ function Lead({ className, ...props }) {
10980
10999
  }
10981
11000
  __name(Lead, "Lead");
10982
11001
  function Small({ className, ...props }) {
10983
- return /* @__PURE__ */ jsx68(
11002
+ return /* @__PURE__ */ jsx69(
10984
11003
  "span",
10985
11004
  {
10986
11005
  "data-slot": "small",
@@ -10991,7 +11010,7 @@ function Small({ className, ...props }) {
10991
11010
  }
10992
11011
  __name(Small, "Small");
10993
11012
  function Muted({ className, ...props }) {
10994
- return /* @__PURE__ */ jsx68(
11013
+ return /* @__PURE__ */ jsx69(
10995
11014
  "span",
10996
11015
  {
10997
11016
  "data-slot": "muted",
@@ -11003,9 +11022,9 @@ function Muted({ className, ...props }) {
11003
11022
  __name(Muted, "Muted");
11004
11023
 
11005
11024
  // components/ui/toggle.tsx
11006
- import * as React38 from "react";
11025
+ import * as React39 from "react";
11007
11026
  import * as TogglePrimitive from "@radix-ui/react-toggle";
11008
- import { jsx as jsx69 } from "react/jsx-runtime";
11027
+ import { jsx as jsx70 } from "react/jsx-runtime";
11009
11028
  var toggleVariants = createVariants({
11010
11029
  base: 'inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*="size-"])]:size-4 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 hover:bg-muted hover:text-foreground',
11011
11030
  variants: {
@@ -11030,8 +11049,8 @@ var toggleVariants = createVariants({
11030
11049
  activeVariant: "primary"
11031
11050
  }
11032
11051
  });
11033
- var Toggle = React38.forwardRef(({ className, variant = "default", size = "default", activeVariant = "primary", ...props }, ref) => {
11034
- return /* @__PURE__ */ jsx69(
11052
+ var Toggle = React39.forwardRef(({ className, variant = "default", size = "default", activeVariant = "primary", ...props }, ref) => {
11053
+ return /* @__PURE__ */ jsx70(
11035
11054
  TogglePrimitive.Root,
11036
11055
  {
11037
11056
  ref,
@@ -11047,7 +11066,7 @@ Toggle.displayName = "Toggle";
11047
11066
  import { useTheme as useTheme3 } from "next-themes";
11048
11067
 
11049
11068
  // ../../node_modules/.pnpm/sonner@2.0.7_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/sonner/dist/index.mjs
11050
- import React39 from "react";
11069
+ import React40 from "react";
11051
11070
  import ReactDOM from "react-dom";
11052
11071
  function __insertCSS(code) {
11053
11072
  if (!code || typeof document == "undefined") return;
@@ -11074,64 +11093,64 @@ var getAsset = /* @__PURE__ */ __name((type) => {
11074
11093
  }, "getAsset");
11075
11094
  var bars = Array(12).fill(0);
11076
11095
  var Loader = /* @__PURE__ */ __name(({ visible, className }) => {
11077
- return /* @__PURE__ */ React39.createElement("div", {
11096
+ return /* @__PURE__ */ React40.createElement("div", {
11078
11097
  className: [
11079
11098
  "sonner-loading-wrapper",
11080
11099
  className
11081
11100
  ].filter(Boolean).join(" "),
11082
11101
  "data-visible": visible
11083
- }, /* @__PURE__ */ React39.createElement("div", {
11102
+ }, /* @__PURE__ */ React40.createElement("div", {
11084
11103
  className: "sonner-spinner"
11085
- }, bars.map((_, i) => /* @__PURE__ */ React39.createElement("div", {
11104
+ }, bars.map((_, i) => /* @__PURE__ */ React40.createElement("div", {
11086
11105
  className: "sonner-loading-bar",
11087
11106
  key: `spinner-bar-${i}`
11088
11107
  }))));
11089
11108
  }, "Loader");
11090
- var SuccessIcon = /* @__PURE__ */ React39.createElement("svg", {
11109
+ var SuccessIcon = /* @__PURE__ */ React40.createElement("svg", {
11091
11110
  xmlns: "http://www.w3.org/2000/svg",
11092
11111
  viewBox: "0 0 20 20",
11093
11112
  fill: "currentColor",
11094
11113
  height: "20",
11095
11114
  width: "20"
11096
- }, /* @__PURE__ */ React39.createElement("path", {
11115
+ }, /* @__PURE__ */ React40.createElement("path", {
11097
11116
  fillRule: "evenodd",
11098
11117
  d: "M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",
11099
11118
  clipRule: "evenodd"
11100
11119
  }));
11101
- var WarningIcon = /* @__PURE__ */ React39.createElement("svg", {
11120
+ var WarningIcon = /* @__PURE__ */ React40.createElement("svg", {
11102
11121
  xmlns: "http://www.w3.org/2000/svg",
11103
11122
  viewBox: "0 0 24 24",
11104
11123
  fill: "currentColor",
11105
11124
  height: "20",
11106
11125
  width: "20"
11107
- }, /* @__PURE__ */ React39.createElement("path", {
11126
+ }, /* @__PURE__ */ React40.createElement("path", {
11108
11127
  fillRule: "evenodd",
11109
11128
  d: "M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",
11110
11129
  clipRule: "evenodd"
11111
11130
  }));
11112
- var InfoIcon = /* @__PURE__ */ React39.createElement("svg", {
11131
+ var InfoIcon = /* @__PURE__ */ React40.createElement("svg", {
11113
11132
  xmlns: "http://www.w3.org/2000/svg",
11114
11133
  viewBox: "0 0 20 20",
11115
11134
  fill: "currentColor",
11116
11135
  height: "20",
11117
11136
  width: "20"
11118
- }, /* @__PURE__ */ React39.createElement("path", {
11137
+ }, /* @__PURE__ */ React40.createElement("path", {
11119
11138
  fillRule: "evenodd",
11120
11139
  d: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",
11121
11140
  clipRule: "evenodd"
11122
11141
  }));
11123
- var ErrorIcon = /* @__PURE__ */ React39.createElement("svg", {
11142
+ var ErrorIcon = /* @__PURE__ */ React40.createElement("svg", {
11124
11143
  xmlns: "http://www.w3.org/2000/svg",
11125
11144
  viewBox: "0 0 20 20",
11126
11145
  fill: "currentColor",
11127
11146
  height: "20",
11128
11147
  width: "20"
11129
- }, /* @__PURE__ */ React39.createElement("path", {
11148
+ }, /* @__PURE__ */ React40.createElement("path", {
11130
11149
  fillRule: "evenodd",
11131
11150
  d: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",
11132
11151
  clipRule: "evenodd"
11133
11152
  }));
11134
- var CloseIcon = /* @__PURE__ */ React39.createElement("svg", {
11153
+ var CloseIcon = /* @__PURE__ */ React40.createElement("svg", {
11135
11154
  xmlns: "http://www.w3.org/2000/svg",
11136
11155
  width: "12",
11137
11156
  height: "12",
@@ -11141,20 +11160,20 @@ var CloseIcon = /* @__PURE__ */ React39.createElement("svg", {
11141
11160
  strokeWidth: "1.5",
11142
11161
  strokeLinecap: "round",
11143
11162
  strokeLinejoin: "round"
11144
- }, /* @__PURE__ */ React39.createElement("line", {
11163
+ }, /* @__PURE__ */ React40.createElement("line", {
11145
11164
  x1: "18",
11146
11165
  y1: "6",
11147
11166
  x2: "6",
11148
11167
  y2: "18"
11149
- }), /* @__PURE__ */ React39.createElement("line", {
11168
+ }), /* @__PURE__ */ React40.createElement("line", {
11150
11169
  x1: "6",
11151
11170
  y1: "6",
11152
11171
  x2: "18",
11153
11172
  y2: "18"
11154
11173
  }));
11155
11174
  var useIsDocumentHidden = /* @__PURE__ */ __name(() => {
11156
- const [isDocumentHidden, setIsDocumentHidden] = React39.useState(document.hidden);
11157
- React39.useEffect(() => {
11175
+ const [isDocumentHidden, setIsDocumentHidden] = React40.useState(document.hidden);
11176
+ React40.useEffect(() => {
11158
11177
  const callback = /* @__PURE__ */ __name(() => {
11159
11178
  setIsDocumentHidden(document.hidden);
11160
11179
  }, "callback");
@@ -11306,7 +11325,7 @@ var Observer = class {
11306
11325
  "resolve",
11307
11326
  response
11308
11327
  ];
11309
- const isReactElementResponse = React39.isValidElement(response);
11328
+ const isReactElementResponse = React40.isValidElement(response);
11310
11329
  if (isReactElementResponse) {
11311
11330
  shouldDismiss = false;
11312
11331
  this.create({
@@ -11318,7 +11337,7 @@ var Observer = class {
11318
11337
  shouldDismiss = false;
11319
11338
  const promiseData = typeof data.error === "function" ? await data.error(`HTTP error! status: ${response.status}`) : data.error;
11320
11339
  const description = typeof data.description === "function" ? await data.description(`HTTP error! status: ${response.status}`) : data.description;
11321
- const isExtendedResult = typeof promiseData === "object" && !React39.isValidElement(promiseData);
11340
+ const isExtendedResult = typeof promiseData === "object" && !React40.isValidElement(promiseData);
11322
11341
  const toastSettings = isExtendedResult ? promiseData : {
11323
11342
  message: promiseData
11324
11343
  };
@@ -11332,7 +11351,7 @@ var Observer = class {
11332
11351
  shouldDismiss = false;
11333
11352
  const promiseData = typeof data.error === "function" ? await data.error(response) : data.error;
11334
11353
  const description = typeof data.description === "function" ? await data.description(response) : data.description;
11335
- const isExtendedResult = typeof promiseData === "object" && !React39.isValidElement(promiseData);
11354
+ const isExtendedResult = typeof promiseData === "object" && !React40.isValidElement(promiseData);
11336
11355
  const toastSettings = isExtendedResult ? promiseData : {
11337
11356
  message: promiseData
11338
11357
  };
@@ -11346,7 +11365,7 @@ var Observer = class {
11346
11365
  shouldDismiss = false;
11347
11366
  const promiseData = typeof data.success === "function" ? await data.success(response) : data.success;
11348
11367
  const description = typeof data.description === "function" ? await data.description(response) : data.description;
11349
- const isExtendedResult = typeof promiseData === "object" && !React39.isValidElement(promiseData);
11368
+ const isExtendedResult = typeof promiseData === "object" && !React40.isValidElement(promiseData);
11350
11369
  const toastSettings = isExtendedResult ? promiseData : {
11351
11370
  message: promiseData
11352
11371
  };
@@ -11366,7 +11385,7 @@ var Observer = class {
11366
11385
  shouldDismiss = false;
11367
11386
  const promiseData = typeof data.error === "function" ? await data.error(error) : data.error;
11368
11387
  const description = typeof data.description === "function" ? await data.description(error) : data.description;
11369
- const isExtendedResult = typeof promiseData === "object" && !React39.isValidElement(promiseData);
11388
+ const isExtendedResult = typeof promiseData === "object" && !React40.isValidElement(promiseData);
11370
11389
  const toastSettings = isExtendedResult ? promiseData : {
11371
11390
  message: promiseData
11372
11391
  };
@@ -11395,10 +11414,10 @@ var Observer = class {
11395
11414
  });
11396
11415
  }
11397
11416
  };
11398
- this.custom = (jsx84, data) => {
11417
+ this.custom = (jsx85, data) => {
11399
11418
  const id = (data == null ? void 0 : data.id) || toastsCounter++;
11400
11419
  this.create({
11401
- jsx: jsx84(id),
11420
+ jsx: jsx85(id),
11402
11421
  id,
11403
11422
  ...data
11404
11423
  });
@@ -11474,45 +11493,45 @@ __name(getDefaultSwipeDirections, "getDefaultSwipeDirections");
11474
11493
  var Toast = /* @__PURE__ */ __name((props) => {
11475
11494
  var _toast_classNames, _toast_classNames1, _toast_classNames2, _toast_classNames3, _toast_classNames4, _toast_classNames5, _toast_classNames6, _toast_classNames7, _toast_classNames8;
11476
11495
  const { invert: ToasterInvert, toast: toast2, unstyled, interacting, setHeights, visibleToasts, heights, index, toasts, expanded, removeToast, defaultRichColors, closeButton: closeButtonFromToaster, style, cancelButtonStyle, actionButtonStyle, className = "", descriptionClassName = "", duration: durationFromToaster, position, gap, expandByDefault, classNames, icons, closeButtonAriaLabel = "Close toast" } = props;
11477
- const [swipeDirection, setSwipeDirection] = React39.useState(null);
11478
- const [swipeOutDirection, setSwipeOutDirection] = React39.useState(null);
11479
- const [mounted, setMounted] = React39.useState(false);
11480
- const [removed, setRemoved] = React39.useState(false);
11481
- const [swiping, setSwiping] = React39.useState(false);
11482
- const [swipeOut, setSwipeOut] = React39.useState(false);
11483
- const [isSwiped, setIsSwiped] = React39.useState(false);
11484
- const [offsetBeforeRemove, setOffsetBeforeRemove] = React39.useState(0);
11485
- const [initialHeight, setInitialHeight] = React39.useState(0);
11486
- const remainingTime = React39.useRef(toast2.duration || durationFromToaster || TOAST_LIFETIME);
11487
- const dragStartTime = React39.useRef(null);
11488
- const toastRef = React39.useRef(null);
11496
+ const [swipeDirection, setSwipeDirection] = React40.useState(null);
11497
+ const [swipeOutDirection, setSwipeOutDirection] = React40.useState(null);
11498
+ const [mounted, setMounted] = React40.useState(false);
11499
+ const [removed, setRemoved] = React40.useState(false);
11500
+ const [swiping, setSwiping] = React40.useState(false);
11501
+ const [swipeOut, setSwipeOut] = React40.useState(false);
11502
+ const [isSwiped, setIsSwiped] = React40.useState(false);
11503
+ const [offsetBeforeRemove, setOffsetBeforeRemove] = React40.useState(0);
11504
+ const [initialHeight, setInitialHeight] = React40.useState(0);
11505
+ const remainingTime = React40.useRef(toast2.duration || durationFromToaster || TOAST_LIFETIME);
11506
+ const dragStartTime = React40.useRef(null);
11507
+ const toastRef = React40.useRef(null);
11489
11508
  const isFront = index === 0;
11490
11509
  const isVisible = index + 1 <= visibleToasts;
11491
11510
  const toastType = toast2.type;
11492
11511
  const dismissible = toast2.dismissible !== false;
11493
11512
  const toastClassname = toast2.className || "";
11494
11513
  const toastDescriptionClassname = toast2.descriptionClassName || "";
11495
- const heightIndex = React39.useMemo(() => heights.findIndex((height) => height.toastId === toast2.id) || 0, [
11514
+ const heightIndex = React40.useMemo(() => heights.findIndex((height) => height.toastId === toast2.id) || 0, [
11496
11515
  heights,
11497
11516
  toast2.id
11498
11517
  ]);
11499
- const closeButton = React39.useMemo(() => {
11518
+ const closeButton = React40.useMemo(() => {
11500
11519
  var _toast_closeButton;
11501
11520
  return (_toast_closeButton = toast2.closeButton) != null ? _toast_closeButton : closeButtonFromToaster;
11502
11521
  }, [
11503
11522
  toast2.closeButton,
11504
11523
  closeButtonFromToaster
11505
11524
  ]);
11506
- const duration = React39.useMemo(() => toast2.duration || durationFromToaster || TOAST_LIFETIME, [
11525
+ const duration = React40.useMemo(() => toast2.duration || durationFromToaster || TOAST_LIFETIME, [
11507
11526
  toast2.duration,
11508
11527
  durationFromToaster
11509
11528
  ]);
11510
- const closeTimerStartTimeRef = React39.useRef(0);
11511
- const offset = React39.useRef(0);
11512
- const lastCloseTimerStartTimeRef = React39.useRef(0);
11513
- const pointerStartRef = React39.useRef(null);
11529
+ const closeTimerStartTimeRef = React40.useRef(0);
11530
+ const offset = React40.useRef(0);
11531
+ const lastCloseTimerStartTimeRef = React40.useRef(0);
11532
+ const pointerStartRef = React40.useRef(null);
11514
11533
  const [y, x] = position.split("-");
11515
- const toastsHeightBefore = React39.useMemo(() => {
11534
+ const toastsHeightBefore = React40.useMemo(() => {
11516
11535
  return heights.reduce((prev, curr, reducerIndex) => {
11517
11536
  if (reducerIndex >= heightIndex) {
11518
11537
  return prev;
@@ -11526,19 +11545,19 @@ var Toast = /* @__PURE__ */ __name((props) => {
11526
11545
  const isDocumentHidden = useIsDocumentHidden();
11527
11546
  const invert = toast2.invert || ToasterInvert;
11528
11547
  const disabled = toastType === "loading";
11529
- offset.current = React39.useMemo(() => heightIndex * gap + toastsHeightBefore, [
11548
+ offset.current = React40.useMemo(() => heightIndex * gap + toastsHeightBefore, [
11530
11549
  heightIndex,
11531
11550
  toastsHeightBefore
11532
11551
  ]);
11533
- React39.useEffect(() => {
11552
+ React40.useEffect(() => {
11534
11553
  remainingTime.current = duration;
11535
11554
  }, [
11536
11555
  duration
11537
11556
  ]);
11538
- React39.useEffect(() => {
11557
+ React40.useEffect(() => {
11539
11558
  setMounted(true);
11540
11559
  }, []);
11541
- React39.useEffect(() => {
11560
+ React40.useEffect(() => {
11542
11561
  const toastNode = toastRef.current;
11543
11562
  if (toastNode) {
11544
11563
  const height = toastNode.getBoundingClientRect().height;
@@ -11557,7 +11576,7 @@ var Toast = /* @__PURE__ */ __name((props) => {
11557
11576
  setHeights,
11558
11577
  toast2.id
11559
11578
  ]);
11560
- React39.useLayoutEffect(() => {
11579
+ React40.useLayoutEffect(() => {
11561
11580
  if (!mounted) return;
11562
11581
  const toastNode = toastRef.current;
11563
11582
  const originalHeight = toastNode.style.height;
@@ -11593,7 +11612,7 @@ var Toast = /* @__PURE__ */ __name((props) => {
11593
11612
  toast2.action,
11594
11613
  toast2.cancel
11595
11614
  ]);
11596
- const deleteToast = React39.useCallback(() => {
11615
+ const deleteToast = React40.useCallback(() => {
11597
11616
  setRemoved(true);
11598
11617
  setOffsetBeforeRemove(offset.current);
11599
11618
  setHeights((h) => h.filter((height) => height.toastId !== toast2.id));
@@ -11606,7 +11625,7 @@ var Toast = /* @__PURE__ */ __name((props) => {
11606
11625
  setHeights,
11607
11626
  offset
11608
11627
  ]);
11609
- React39.useEffect(() => {
11628
+ React40.useEffect(() => {
11610
11629
  if (toast2.promise && toastType === "loading" || toast2.duration === Infinity || toast2.type === "loading") return;
11611
11630
  let timeoutId;
11612
11631
  const pauseTimer = /* @__PURE__ */ __name(() => {
@@ -11638,7 +11657,7 @@ var Toast = /* @__PURE__ */ __name((props) => {
11638
11657
  isDocumentHidden,
11639
11658
  deleteToast
11640
11659
  ]);
11641
- React39.useEffect(() => {
11660
+ React40.useEffect(() => {
11642
11661
  if (toast2.delete) {
11643
11662
  deleteToast();
11644
11663
  toast2.onDismiss == null ? void 0 : toast2.onDismiss.call(toast2, toast2);
@@ -11651,12 +11670,12 @@ var Toast = /* @__PURE__ */ __name((props) => {
11651
11670
  var _toast_classNames9;
11652
11671
  if (icons == null ? void 0 : icons.loading) {
11653
11672
  var _toast_classNames12;
11654
- return /* @__PURE__ */ React39.createElement("div", {
11673
+ return /* @__PURE__ */ React40.createElement("div", {
11655
11674
  className: cn2(classNames == null ? void 0 : classNames.loader, toast2 == null ? void 0 : (_toast_classNames12 = toast2.classNames) == null ? void 0 : _toast_classNames12.loader, "sonner-loader"),
11656
11675
  "data-visible": toastType === "loading"
11657
11676
  }, icons.loading);
11658
11677
  }
11659
- return /* @__PURE__ */ React39.createElement(Loader, {
11678
+ return /* @__PURE__ */ React40.createElement(Loader, {
11660
11679
  className: cn2(classNames == null ? void 0 : classNames.loader, toast2 == null ? void 0 : (_toast_classNames9 = toast2.classNames) == null ? void 0 : _toast_classNames9.loader),
11661
11680
  visible: toastType === "loading"
11662
11681
  });
@@ -11664,7 +11683,7 @@ var Toast = /* @__PURE__ */ __name((props) => {
11664
11683
  __name(getLoadingIcon, "getLoadingIcon");
11665
11684
  const icon = toast2.icon || (icons == null ? void 0 : icons[toastType]) || getAsset(toastType);
11666
11685
  var _toast_richColors, _icons_close;
11667
- return /* @__PURE__ */ React39.createElement("li", {
11686
+ return /* @__PURE__ */ React40.createElement("li", {
11668
11687
  tabIndex: 0,
11669
11688
  ref: toastRef,
11670
11689
  className: cn2(className, toastClassname, classNames == null ? void 0 : classNames.toast, toast2 == null ? void 0 : (_toast_classNames = toast2.classNames) == null ? void 0 : _toast_classNames.toast, classNames == null ? void 0 : classNames.default, classNames == null ? void 0 : classNames[toastType], toast2 == null ? void 0 : (_toast_classNames1 = toast2.classNames) == null ? void 0 : _toast_classNames1[toastType]),
@@ -11789,7 +11808,7 @@ var Toast = /* @__PURE__ */ __name((props) => {
11789
11808
  (_toastRef_current = toastRef.current) == null ? void 0 : _toastRef_current.style.setProperty("--swipe-amount-x", `${swipeAmount.x}px`);
11790
11809
  (_toastRef_current1 = toastRef.current) == null ? void 0 : _toastRef_current1.style.setProperty("--swipe-amount-y", `${swipeAmount.y}px`);
11791
11810
  }, "onPointerMove")
11792
- }, closeButton && !toast2.jsx && toastType !== "loading" ? /* @__PURE__ */ React39.createElement("button", {
11811
+ }, closeButton && !toast2.jsx && toastType !== "loading" ? /* @__PURE__ */ React40.createElement("button", {
11793
11812
  "aria-label": closeButtonAriaLabel,
11794
11813
  "data-disabled": disabled,
11795
11814
  "data-close-button": true,
@@ -11799,19 +11818,19 @@ var Toast = /* @__PURE__ */ __name((props) => {
11799
11818
  toast2.onDismiss == null ? void 0 : toast2.onDismiss.call(toast2, toast2);
11800
11819
  },
11801
11820
  className: cn2(classNames == null ? void 0 : classNames.closeButton, toast2 == null ? void 0 : (_toast_classNames2 = toast2.classNames) == null ? void 0 : _toast_classNames2.closeButton)
11802
- }, (_icons_close = icons == null ? void 0 : icons.close) != null ? _icons_close : CloseIcon) : null, (toastType || toast2.icon || toast2.promise) && toast2.icon !== null && ((icons == null ? void 0 : icons[toastType]) !== null || toast2.icon) ? /* @__PURE__ */ React39.createElement("div", {
11821
+ }, (_icons_close = icons == null ? void 0 : icons.close) != null ? _icons_close : CloseIcon) : null, (toastType || toast2.icon || toast2.promise) && toast2.icon !== null && ((icons == null ? void 0 : icons[toastType]) !== null || toast2.icon) ? /* @__PURE__ */ React40.createElement("div", {
11803
11822
  "data-icon": "",
11804
11823
  className: cn2(classNames == null ? void 0 : classNames.icon, toast2 == null ? void 0 : (_toast_classNames3 = toast2.classNames) == null ? void 0 : _toast_classNames3.icon)
11805
- }, toast2.promise || toast2.type === "loading" && !toast2.icon ? toast2.icon || getLoadingIcon() : null, toast2.type !== "loading" ? icon : null) : null, /* @__PURE__ */ React39.createElement("div", {
11824
+ }, toast2.promise || toast2.type === "loading" && !toast2.icon ? toast2.icon || getLoadingIcon() : null, toast2.type !== "loading" ? icon : null) : null, /* @__PURE__ */ React40.createElement("div", {
11806
11825
  "data-content": "",
11807
11826
  className: cn2(classNames == null ? void 0 : classNames.content, toast2 == null ? void 0 : (_toast_classNames4 = toast2.classNames) == null ? void 0 : _toast_classNames4.content)
11808
- }, /* @__PURE__ */ React39.createElement("div", {
11827
+ }, /* @__PURE__ */ React40.createElement("div", {
11809
11828
  "data-title": "",
11810
11829
  className: cn2(classNames == null ? void 0 : classNames.title, toast2 == null ? void 0 : (_toast_classNames5 = toast2.classNames) == null ? void 0 : _toast_classNames5.title)
11811
- }, toast2.jsx ? toast2.jsx : typeof toast2.title === "function" ? toast2.title() : toast2.title), toast2.description ? /* @__PURE__ */ React39.createElement("div", {
11830
+ }, toast2.jsx ? toast2.jsx : typeof toast2.title === "function" ? toast2.title() : toast2.title), toast2.description ? /* @__PURE__ */ React40.createElement("div", {
11812
11831
  "data-description": "",
11813
11832
  className: cn2(descriptionClassName, toastDescriptionClassname, classNames == null ? void 0 : classNames.description, toast2 == null ? void 0 : (_toast_classNames6 = toast2.classNames) == null ? void 0 : _toast_classNames6.description)
11814
- }, typeof toast2.description === "function" ? toast2.description() : toast2.description) : null), /* @__PURE__ */ React39.isValidElement(toast2.cancel) ? toast2.cancel : toast2.cancel && isAction(toast2.cancel) ? /* @__PURE__ */ React39.createElement("button", {
11833
+ }, typeof toast2.description === "function" ? toast2.description() : toast2.description) : null), /* @__PURE__ */ React40.isValidElement(toast2.cancel) ? toast2.cancel : toast2.cancel && isAction(toast2.cancel) ? /* @__PURE__ */ React40.createElement("button", {
11815
11834
  "data-button": true,
11816
11835
  "data-cancel": true,
11817
11836
  style: toast2.cancelButtonStyle || cancelButtonStyle,
@@ -11822,7 +11841,7 @@ var Toast = /* @__PURE__ */ __name((props) => {
11822
11841
  deleteToast();
11823
11842
  }, "onClick"),
11824
11843
  className: cn2(classNames == null ? void 0 : classNames.cancelButton, toast2 == null ? void 0 : (_toast_classNames7 = toast2.classNames) == null ? void 0 : _toast_classNames7.cancelButton)
11825
- }, toast2.cancel.label) : null, /* @__PURE__ */ React39.isValidElement(toast2.action) ? toast2.action : toast2.action && isAction(toast2.action) ? /* @__PURE__ */ React39.createElement("button", {
11844
+ }, toast2.cancel.label) : null, /* @__PURE__ */ React40.isValidElement(toast2.action) ? toast2.action : toast2.action && isAction(toast2.action) ? /* @__PURE__ */ React40.createElement("button", {
11826
11845
  "data-button": true,
11827
11846
  "data-action": true,
11828
11847
  style: toast2.actionButtonStyle || actionButtonStyle,
@@ -11887,13 +11906,13 @@ function assignOffset(defaultOffset, mobileOffset) {
11887
11906
  return styles;
11888
11907
  }
11889
11908
  __name(assignOffset, "assignOffset");
11890
- var Toaster = /* @__PURE__ */ React39.forwardRef(/* @__PURE__ */ __name(function Toaster2(props, ref) {
11909
+ var Toaster = /* @__PURE__ */ React40.forwardRef(/* @__PURE__ */ __name(function Toaster2(props, ref) {
11891
11910
  const { id, invert, position = "bottom-right", hotkey = [
11892
11911
  "altKey",
11893
11912
  "KeyT"
11894
11913
  ], expand, closeButton, className, offset, mobileOffset, theme = "light", richColors, duration, style, visibleToasts = VISIBLE_TOASTS_AMOUNT, toastOptions, dir = getDocumentDirection(), gap = GAP, icons, containerAriaLabel = "Notifications" } = props;
11895
- const [toasts, setToasts] = React39.useState([]);
11896
- const filteredToasts = React39.useMemo(() => {
11914
+ const [toasts, setToasts] = React40.useState([]);
11915
+ const filteredToasts = React40.useMemo(() => {
11897
11916
  if (id) {
11898
11917
  return toasts.filter((toast2) => toast2.toasterId === id);
11899
11918
  }
@@ -11902,7 +11921,7 @@ var Toaster = /* @__PURE__ */ React39.forwardRef(/* @__PURE__ */ __name(function
11902
11921
  toasts,
11903
11922
  id
11904
11923
  ]);
11905
- const possiblePositions = React39.useMemo(() => {
11924
+ const possiblePositions = React40.useMemo(() => {
11906
11925
  return Array.from(new Set([
11907
11926
  position
11908
11927
  ].concat(filteredToasts.filter((toast2) => toast2.position).map((toast2) => toast2.position))));
@@ -11910,15 +11929,15 @@ var Toaster = /* @__PURE__ */ React39.forwardRef(/* @__PURE__ */ __name(function
11910
11929
  filteredToasts,
11911
11930
  position
11912
11931
  ]);
11913
- const [heights, setHeights] = React39.useState([]);
11914
- const [expanded, setExpanded] = React39.useState(false);
11915
- const [interacting, setInteracting] = React39.useState(false);
11916
- const [actualTheme, setActualTheme] = React39.useState(theme !== "system" ? theme : typeof window !== "undefined" ? window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light" : "light");
11917
- const listRef = React39.useRef(null);
11932
+ const [heights, setHeights] = React40.useState([]);
11933
+ const [expanded, setExpanded] = React40.useState(false);
11934
+ const [interacting, setInteracting] = React40.useState(false);
11935
+ const [actualTheme, setActualTheme] = React40.useState(theme !== "system" ? theme : typeof window !== "undefined" ? window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light" : "light");
11936
+ const listRef = React40.useRef(null);
11918
11937
  const hotkeyLabel = hotkey.join("+").replace(/Key/g, "").replace(/Digit/g, "");
11919
- const lastFocusedElementRef = React39.useRef(null);
11920
- const isFocusWithinRef = React39.useRef(false);
11921
- const removeToast = React39.useCallback((toastToRemove) => {
11938
+ const lastFocusedElementRef = React40.useRef(null);
11939
+ const isFocusWithinRef = React40.useRef(false);
11940
+ const removeToast = React40.useCallback((toastToRemove) => {
11922
11941
  setToasts((toasts2) => {
11923
11942
  var _toasts_find;
11924
11943
  if (!((_toasts_find = toasts2.find((toast2) => toast2.id === toastToRemove.id)) == null ? void 0 : _toasts_find.delete)) {
@@ -11927,7 +11946,7 @@ var Toaster = /* @__PURE__ */ React39.forwardRef(/* @__PURE__ */ __name(function
11927
11946
  return toasts2.filter(({ id: id2 }) => id2 !== toastToRemove.id);
11928
11947
  });
11929
11948
  }, []);
11930
- React39.useEffect(() => {
11949
+ React40.useEffect(() => {
11931
11950
  return ToastState.subscribe((toast2) => {
11932
11951
  if (toast2.dismiss) {
11933
11952
  requestAnimationFrame(() => {
@@ -11963,7 +11982,7 @@ var Toaster = /* @__PURE__ */ React39.forwardRef(/* @__PURE__ */ __name(function
11963
11982
  }, [
11964
11983
  toasts
11965
11984
  ]);
11966
- React39.useEffect(() => {
11985
+ React40.useEffect(() => {
11967
11986
  if (theme !== "system") {
11968
11987
  setActualTheme(theme);
11969
11988
  return;
@@ -12001,14 +12020,14 @@ var Toaster = /* @__PURE__ */ React39.forwardRef(/* @__PURE__ */ __name(function
12001
12020
  }, [
12002
12021
  theme
12003
12022
  ]);
12004
- React39.useEffect(() => {
12023
+ React40.useEffect(() => {
12005
12024
  if (toasts.length <= 1) {
12006
12025
  setExpanded(false);
12007
12026
  }
12008
12027
  }, [
12009
12028
  toasts
12010
12029
  ]);
12011
- React39.useEffect(() => {
12030
+ React40.useEffect(() => {
12012
12031
  const handleKeyDown = /* @__PURE__ */ __name((event) => {
12013
12032
  var _listRef_current;
12014
12033
  const isHotkeyPressed = hotkey.every((key) => event[key] || event.code === key);
@@ -12026,7 +12045,7 @@ var Toaster = /* @__PURE__ */ React39.forwardRef(/* @__PURE__ */ __name(function
12026
12045
  }, [
12027
12046
  hotkey
12028
12047
  ]);
12029
- React39.useEffect(() => {
12048
+ React40.useEffect(() => {
12030
12049
  if (listRef.current) {
12031
12050
  return () => {
12032
12051
  if (lastFocusedElementRef.current) {
@@ -12043,7 +12062,7 @@ var Toaster = /* @__PURE__ */ React39.forwardRef(/* @__PURE__ */ __name(function
12043
12062
  ]);
12044
12063
  return (
12045
12064
  // Remove item from normal navigation flow, only available via hotkey
12046
- /* @__PURE__ */ React39.createElement("section", {
12065
+ /* @__PURE__ */ React40.createElement("section", {
12047
12066
  ref,
12048
12067
  "aria-label": `${containerAriaLabel} ${hotkeyLabel}`,
12049
12068
  tabIndex: -1,
@@ -12055,7 +12074,7 @@ var Toaster = /* @__PURE__ */ React39.forwardRef(/* @__PURE__ */ __name(function
12055
12074
  var _heights_;
12056
12075
  const [y, x] = position2.split("-");
12057
12076
  if (!filteredToasts.length) return null;
12058
- return /* @__PURE__ */ React39.createElement("ol", {
12077
+ return /* @__PURE__ */ React40.createElement("ol", {
12059
12078
  key: position2,
12060
12079
  dir: dir === "auto" ? getDocumentDirection() : dir,
12061
12080
  tabIndex: -1,
@@ -12107,7 +12126,7 @@ var Toaster = /* @__PURE__ */ React39.forwardRef(/* @__PURE__ */ __name(function
12107
12126
  onPointerUp: /* @__PURE__ */ __name(() => setInteracting(false), "onPointerUp")
12108
12127
  }, filteredToasts.filter((toast2) => !toast2.position && index === 0 || toast2.position === position2).map((toast2, index2) => {
12109
12128
  var _toastOptions_duration, _toastOptions_closeButton;
12110
- return /* @__PURE__ */ React39.createElement(Toast, {
12129
+ return /* @__PURE__ */ React40.createElement(Toast, {
12111
12130
  key: toast2.id,
12112
12131
  icons,
12113
12132
  index: index2,
@@ -12143,7 +12162,7 @@ var Toaster = /* @__PURE__ */ React39.forwardRef(/* @__PURE__ */ __name(function
12143
12162
 
12144
12163
  // components/ui/sonner.tsx
12145
12164
  import { AlertTriangle, CheckCircle2, Info, Loader2 as Loader22, ServerCrash, X as X7 } from "lucide-react";
12146
- import { jsx as jsx70 } from "react/jsx-runtime";
12165
+ import { jsx as jsx71 } from "react/jsx-runtime";
12147
12166
  function Toaster3(props) {
12148
12167
  const { theme = "system" } = useTheme3();
12149
12168
  const {
@@ -12176,7 +12195,7 @@ function Toaster3(props) {
12176
12195
  "![--warning-bg:color-mix(in srgb, var(--warning,var(--chart-3,var(--secondary))) 18%, var(--popover))] ![--warning-text:var(--foreground)] ![--warning-border:var(--border)]",
12177
12196
  "![--error-bg:color-mix(in srgb, var(--destructive) 12%, var(--popover))] ![--error-text:var(--foreground)] ![--error-border:var(--border)]"
12178
12197
  ] : [];
12179
- return /* @__PURE__ */ jsx70(
12198
+ return /* @__PURE__ */ jsx71(
12180
12199
  Toaster,
12181
12200
  {
12182
12201
  theme,
@@ -12197,12 +12216,12 @@ function Toaster3(props) {
12197
12216
  visibleToasts: visibleToasts ?? 3,
12198
12217
  closeButton,
12199
12218
  icons: {
12200
- success: /* @__PURE__ */ jsx70(CheckCircle2, { className: "h-4 w-4", "aria-hidden": true }),
12201
- info: /* @__PURE__ */ jsx70(Info, { className: "h-4 w-4", "aria-hidden": true }),
12202
- warning: /* @__PURE__ */ jsx70(AlertTriangle, { className: "h-4 w-4", "aria-hidden": true }),
12203
- error: /* @__PURE__ */ jsx70(ServerCrash, { className: "h-4 w-4", "aria-hidden": true }),
12204
- loading: /* @__PURE__ */ jsx70(Loader22, { className: "h-4 w-4 animate-spin", "aria-hidden": true }),
12205
- close: /* @__PURE__ */ jsx70(X7, { className: "h-4 w-4", "aria-hidden": true }),
12219
+ success: /* @__PURE__ */ jsx71(CheckCircle2, { className: "h-4 w-4", "aria-hidden": true }),
12220
+ info: /* @__PURE__ */ jsx71(Info, { className: "h-4 w-4", "aria-hidden": true }),
12221
+ warning: /* @__PURE__ */ jsx71(AlertTriangle, { className: "h-4 w-4", "aria-hidden": true }),
12222
+ error: /* @__PURE__ */ jsx71(ServerCrash, { className: "h-4 w-4", "aria-hidden": true }),
12223
+ loading: /* @__PURE__ */ jsx71(Loader22, { className: "h-4 w-4 animate-spin", "aria-hidden": true }),
12224
+ close: /* @__PURE__ */ jsx71(X7, { className: "h-4 w-4", "aria-hidden": true }),
12206
12225
  ...icons
12207
12226
  },
12208
12227
  toastOptions: {
@@ -12307,7 +12326,7 @@ __name(toastSemantic, "toastSemantic");
12307
12326
  // components/ui/select-radix.tsx
12308
12327
  import * as SelectPrimitive from "@radix-ui/react-select";
12309
12328
  import { CircleCheck as CircleCheck2, ChevronDown as ChevronDown7, ChevronUp as ChevronUp2 } from "lucide-react";
12310
- import { jsx as jsx71, jsxs as jsxs43 } from "react/jsx-runtime";
12329
+ import { jsx as jsx72, jsxs as jsxs43 } from "react/jsx-runtime";
12311
12330
  var SelectRoot = SelectPrimitive.Root;
12312
12331
  var SelectGroup = SelectPrimitive.Group;
12313
12332
  var SelectValue = SelectPrimitive.Value;
@@ -12334,7 +12353,7 @@ function SelectTrigger({
12334
12353
  ...props,
12335
12354
  children: [
12336
12355
  children,
12337
- /* @__PURE__ */ jsx71(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx71(ChevronDown7, { className: "h-4 w-4 text-muted-foreground", "aria-hidden": true }) })
12356
+ /* @__PURE__ */ jsx72(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx72(ChevronDown7, { className: "h-4 w-4 text-muted-foreground", "aria-hidden": true }) })
12338
12357
  ]
12339
12358
  }
12340
12359
  );
@@ -12346,7 +12365,7 @@ function SelectContent({
12346
12365
  position = "popper",
12347
12366
  ...props
12348
12367
  }) {
12349
- return /* @__PURE__ */ jsx71(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs43(
12368
+ return /* @__PURE__ */ jsx72(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs43(
12350
12369
  SelectPrimitive.Content,
12351
12370
  {
12352
12371
  "data-slot": "select-content",
@@ -12361,8 +12380,8 @@ function SelectContent({
12361
12380
  ),
12362
12381
  ...props,
12363
12382
  children: [
12364
- /* @__PURE__ */ jsx71(SelectScrollUpButton, {}),
12365
- /* @__PURE__ */ jsx71(
12383
+ /* @__PURE__ */ jsx72(SelectScrollUpButton, {}),
12384
+ /* @__PURE__ */ jsx72(
12366
12385
  SelectPrimitive.Viewport,
12367
12386
  {
12368
12387
  className: cn(
@@ -12372,14 +12391,14 @@ function SelectContent({
12372
12391
  children
12373
12392
  }
12374
12393
  ),
12375
- /* @__PURE__ */ jsx71(SelectScrollDownButton, {})
12394
+ /* @__PURE__ */ jsx72(SelectScrollDownButton, {})
12376
12395
  ]
12377
12396
  }
12378
12397
  ) });
12379
12398
  }
12380
12399
  __name(SelectContent, "SelectContent");
12381
12400
  function SelectLabel({ className, ...props }) {
12382
- return /* @__PURE__ */ jsx71(
12401
+ return /* @__PURE__ */ jsx72(
12383
12402
  SelectPrimitive.Label,
12384
12403
  {
12385
12404
  "data-slot": "select-label",
@@ -12402,15 +12421,15 @@ function SelectItem({ className, children, ...props }) {
12402
12421
  ),
12403
12422
  ...props,
12404
12423
  children: [
12405
- /* @__PURE__ */ jsx71("span", { className: "absolute right-2 flex h-3.5 w-3.5 shrink-0 items-center justify-center", children: /* @__PURE__ */ jsx71(SelectPrimitive.ItemIndicator, { className: "inline-flex", children: /* @__PURE__ */ jsx71(CircleCheck2, { className: "h-4 w-4 text-foreground", "aria-hidden": true }) }) }),
12406
- /* @__PURE__ */ jsx71(SelectPrimitive.ItemText, { children })
12424
+ /* @__PURE__ */ jsx72("span", { className: "absolute right-2 flex h-3.5 w-3.5 shrink-0 items-center justify-center", children: /* @__PURE__ */ jsx72(SelectPrimitive.ItemIndicator, { className: "inline-flex", children: /* @__PURE__ */ jsx72(CircleCheck2, { className: "h-4 w-4 text-foreground", "aria-hidden": true }) }) }),
12425
+ /* @__PURE__ */ jsx72(SelectPrimitive.ItemText, { children })
12407
12426
  ]
12408
12427
  }
12409
12428
  );
12410
12429
  }
12411
12430
  __name(SelectItem, "SelectItem");
12412
12431
  function SelectSeparator({ className, ...props }) {
12413
- return /* @__PURE__ */ jsx71(
12432
+ return /* @__PURE__ */ jsx72(
12414
12433
  SelectPrimitive.Separator,
12415
12434
  {
12416
12435
  "data-slot": "select-separator",
@@ -12424,13 +12443,13 @@ function SelectScrollUpButton({
12424
12443
  className,
12425
12444
  ...props
12426
12445
  }) {
12427
- return /* @__PURE__ */ jsx71(
12446
+ return /* @__PURE__ */ jsx72(
12428
12447
  SelectPrimitive.ScrollUpButton,
12429
12448
  {
12430
12449
  "data-slot": "select-scroll-up-button",
12431
12450
  className: cn("flex cursor-default items-center justify-center py-1 text-muted-foreground", className),
12432
12451
  ...props,
12433
- children: /* @__PURE__ */ jsx71(ChevronUp2, { className: "h-4 w-4", "aria-hidden": true })
12452
+ children: /* @__PURE__ */ jsx72(ChevronUp2, { className: "h-4 w-4", "aria-hidden": true })
12434
12453
  }
12435
12454
  );
12436
12455
  }
@@ -12439,22 +12458,22 @@ function SelectScrollDownButton({
12439
12458
  className,
12440
12459
  ...props
12441
12460
  }) {
12442
- return /* @__PURE__ */ jsx71(
12461
+ return /* @__PURE__ */ jsx72(
12443
12462
  SelectPrimitive.ScrollDownButton,
12444
12463
  {
12445
12464
  "data-slot": "select-scroll-down-button",
12446
12465
  className: cn("flex cursor-default items-center justify-center py-1 text-muted-foreground", className),
12447
12466
  ...props,
12448
- children: /* @__PURE__ */ jsx71(ChevronDown7, { className: "h-4 w-4", "aria-hidden": true })
12467
+ children: /* @__PURE__ */ jsx72(ChevronDown7, { className: "h-4 w-4", "aria-hidden": true })
12449
12468
  }
12450
12469
  );
12451
12470
  }
12452
12471
  __name(SelectScrollDownButton, "SelectScrollDownButton");
12453
12472
 
12454
12473
  // components/ui/button-tooltip.tsx
12455
- import * as React40 from "react";
12474
+ import * as React41 from "react";
12456
12475
  import { Transition as Transition2 } from "@headlessui/react";
12457
- import { jsx as jsx72, jsxs as jsxs44 } from "react/jsx-runtime";
12476
+ import { jsx as jsx73, jsxs as jsxs44 } from "react/jsx-runtime";
12458
12477
  function ButtonTooltip({
12459
12478
  children,
12460
12479
  content,
@@ -12464,7 +12483,7 @@ function ButtonTooltip({
12464
12483
  className,
12465
12484
  disabled = false
12466
12485
  }) {
12467
- const [tooltipOpen, setTooltipOpen] = React40.useState(false);
12486
+ const [tooltipOpen, setTooltipOpen] = React41.useState(false);
12468
12487
  const positionOuterClasses = /* @__PURE__ */ __name((pos) => {
12469
12488
  switch (pos) {
12470
12489
  case "right":
@@ -12513,7 +12532,7 @@ function ButtonTooltip({
12513
12532
  }, "colorClasses");
12514
12533
  const getArrowElement = /* @__PURE__ */ __name(() => {
12515
12534
  if (position !== "bottom") return null;
12516
- return /* @__PURE__ */ jsx72(
12535
+ return /* @__PURE__ */ jsx73(
12517
12536
  "div",
12518
12537
  {
12519
12538
  className: cn(
@@ -12533,7 +12552,7 @@ function ButtonTooltip({
12533
12552
  onBlur: () => setTooltipOpen(false),
12534
12553
  children: [
12535
12554
  children,
12536
- /* @__PURE__ */ jsx72("div", { className: cn("z-50 absolute pointer-events-none", positionOuterClasses(position)), children: /* @__PURE__ */ jsxs44(
12555
+ /* @__PURE__ */ jsx73("div", { className: cn("z-50 absolute pointer-events-none", positionOuterClasses(position)), children: /* @__PURE__ */ jsxs44(
12537
12556
  Transition2,
12538
12557
  {
12539
12558
  show: tooltipOpen && !disabled,
@@ -12568,10 +12587,10 @@ var Tooltip3 = ButtonTooltip;
12568
12587
  import { Sun, Moon as Moon2, Upload, ExternalLink } from "lucide-react";
12569
12588
 
12570
12589
  // components/theme-customizer/colors-panel.tsx
12571
- import React41 from "react";
12590
+ import React42 from "react";
12572
12591
 
12573
12592
  // components/theme-customizer/color-input.tsx
12574
- import { jsx as jsx73, jsxs as jsxs45 } from "react/jsx-runtime";
12593
+ import { jsx as jsx74, jsxs as jsxs45 } from "react/jsx-runtime";
12575
12594
  function ColorInput({ label, cssVar, value, onChange, className }) {
12576
12595
  const swatchColor = value && value.trim() !== "" ? value : "transparent";
12577
12596
  const showBorder = !swatchColor || swatchColor === "transparent";
@@ -12579,14 +12598,14 @@ function ColorInput({ label, cssVar, value, onChange, className }) {
12579
12598
  onChange(cssVar, e.target.value);
12580
12599
  }, "handleChange");
12581
12600
  return /* @__PURE__ */ jsxs45("div", { className: cn("space-y-1.5", className), children: [
12582
- /* @__PURE__ */ jsx73("label", { className: "text-xs font-medium text-muted-foreground", children: label }),
12601
+ /* @__PURE__ */ jsx74("label", { className: "text-xs font-medium text-muted-foreground", children: label }),
12583
12602
  /* @__PURE__ */ jsxs45("div", { className: "flex items-center gap-2", children: [
12584
- /* @__PURE__ */ jsx73(
12603
+ /* @__PURE__ */ jsx74(
12585
12604
  "div",
12586
12605
  {
12587
12606
  className: "h-8 w-8 shrink-0 rounded-md border border-border bg-background overflow-hidden",
12588
12607
  title: value,
12589
- children: /* @__PURE__ */ jsx73(
12608
+ children: /* @__PURE__ */ jsx74(
12590
12609
  "div",
12591
12610
  {
12592
12611
  className: "h-full w-full rounded-[calc(var(--radius)-1px)] border border-border",
@@ -12598,7 +12617,7 @@ function ColorInput({ label, cssVar, value, onChange, className }) {
12598
12617
  )
12599
12618
  }
12600
12619
  ),
12601
- /* @__PURE__ */ jsx73(
12620
+ /* @__PURE__ */ jsx74(
12602
12621
  Input,
12603
12622
  {
12604
12623
  type: "text",
@@ -12615,7 +12634,7 @@ function ColorInput({ label, cssVar, value, onChange, className }) {
12615
12634
  __name(ColorInput, "ColorInput");
12616
12635
 
12617
12636
  // components/theme-customizer/colors-panel.tsx
12618
- import { jsx as jsx74, jsxs as jsxs46 } from "react/jsx-runtime";
12637
+ import { jsx as jsx75, jsxs as jsxs46 } from "react/jsx-runtime";
12619
12638
  function getComputedColorValues() {
12620
12639
  if (typeof document === "undefined") return {};
12621
12640
  const root = document.documentElement;
@@ -12633,22 +12652,22 @@ function getComputedColorValues() {
12633
12652
  __name(getComputedColorValues, "getComputedColorValues");
12634
12653
  function ColorsPanel({ selectedTheme, isDarkMode } = {}) {
12635
12654
  const { handleColorChange: handleColorChange2 } = useThemeManager();
12636
- const [colorValues, setColorValues] = React41.useState({});
12637
- const [validationErrors, setValidationErrors] = React41.useState({});
12638
- const [openGroups, setOpenGroups] = React41.useState(() => {
12655
+ const [colorValues, setColorValues] = React42.useState({});
12656
+ const [validationErrors, setValidationErrors] = React42.useState({});
12657
+ const [openGroups, setOpenGroups] = React42.useState(() => {
12639
12658
  const o = {};
12640
12659
  colorGroups.forEach((g) => {
12641
12660
  o[g.title] = true;
12642
12661
  });
12643
12662
  return o;
12644
12663
  });
12645
- const refreshValues = React41.useCallback(() => {
12664
+ const refreshValues = React42.useCallback(() => {
12646
12665
  setColorValues(getComputedColorValues());
12647
12666
  }, []);
12648
- React41.useEffect(() => {
12667
+ React42.useEffect(() => {
12649
12668
  refreshValues();
12650
12669
  }, [refreshValues, selectedTheme, isDarkMode]);
12651
- const handleChange = React41.useCallback(
12670
+ const handleChange = React42.useCallback(
12652
12671
  (cssVar, value) => {
12653
12672
  const validation = validateColorValue(value);
12654
12673
  if (validation.isValid) {
@@ -12671,14 +12690,14 @@ function ColorsPanel({ selectedTheme, isDarkMode } = {}) {
12671
12690
  const toggleGroup = /* @__PURE__ */ __name((title) => {
12672
12691
  setOpenGroups((prev) => ({ ...prev, [title]: !prev[title] }));
12673
12692
  }, "toggleGroup");
12674
- return /* @__PURE__ */ jsx74("div", { className: "space-y-3 pt-5 pb-2", children: colorGroups.map((group) => /* @__PURE__ */ jsx74(
12693
+ return /* @__PURE__ */ jsx75("div", { className: "space-y-3 pt-5 pb-2", children: colorGroups.map((group) => /* @__PURE__ */ jsx75(
12675
12694
  CollapsibleSection,
12676
12695
  {
12677
12696
  title: group.title,
12678
12697
  open: openGroups[group.title] !== false,
12679
12698
  onToggle: () => toggleGroup(group.title),
12680
12699
  children: group.colors.map((color) => /* @__PURE__ */ jsxs46("div", { className: "space-y-1", children: [
12681
- /* @__PURE__ */ jsx74(
12700
+ /* @__PURE__ */ jsx75(
12682
12701
  ColorInput,
12683
12702
  {
12684
12703
  label: color.name,
@@ -12688,7 +12707,7 @@ function ColorsPanel({ selectedTheme, isDarkMode } = {}) {
12688
12707
  className: validationErrors[color.cssVar] ? "border-destructive" : ""
12689
12708
  }
12690
12709
  ),
12691
- validationErrors[color.cssVar] && /* @__PURE__ */ jsx74("p", { className: "text-xs text-destructive px-1", children: validationErrors[color.cssVar] })
12710
+ validationErrors[color.cssVar] && /* @__PURE__ */ jsx75("p", { className: "text-xs text-destructive px-1", children: validationErrors[color.cssVar] })
12692
12711
  ] }, color.cssVar))
12693
12712
  },
12694
12713
  group.title
@@ -12697,7 +12716,7 @@ function ColorsPanel({ selectedTheme, isDarkMode } = {}) {
12697
12716
  __name(ColorsPanel, "ColorsPanel");
12698
12717
 
12699
12718
  // components/theme-customizer/theme-tab.tsx
12700
- import { Fragment as Fragment6, jsx as jsx75, jsxs as jsxs47 } from "react/jsx-runtime";
12719
+ import { Fragment as Fragment6, jsx as jsx76, jsxs as jsxs47 } from "react/jsx-runtime";
12701
12720
  function ThemeTab({
12702
12721
  selectedTheme,
12703
12722
  setSelectedTheme,
@@ -12742,24 +12761,24 @@ function ThemeTab({
12742
12761
  children: [
12743
12762
  showPreset && /* @__PURE__ */ jsxs47(Fragment6, { children: [
12744
12763
  /* @__PURE__ */ jsxs47("div", { className: "space-y-3", children: [
12745
- /* @__PURE__ */ jsx75("label", { className: "text-sm font-medium", children: "Mindtris UI" }),
12746
- /* @__PURE__ */ jsx75(
12764
+ /* @__PURE__ */ jsx76("label", { className: "text-sm font-medium", children: "Mindtris UI" }),
12765
+ /* @__PURE__ */ jsx76(
12747
12766
  Select,
12748
12767
  {
12749
12768
  value: selectedTheme,
12750
12769
  onChange: (e) => handleThemeSelect(e.target.value),
12751
- children: colorThemes.map((theme) => /* @__PURE__ */ jsx75("option", { value: theme.value, children: theme.name }, theme.value))
12770
+ children: colorThemes.map((theme) => /* @__PURE__ */ jsx76("option", { value: theme.value, children: theme.name }, theme.value))
12752
12771
  }
12753
12772
  )
12754
12773
  ] }),
12755
- variant === "full" && /* @__PURE__ */ jsx75("div", { className: "border-t border-border" })
12774
+ variant === "full" && /* @__PURE__ */ jsx76("div", { className: "border-t border-border" })
12756
12775
  ] }),
12757
- showColors && hidePreset && /* @__PURE__ */ jsx75(ColorsPanel, { selectedTheme, isDarkMode }),
12776
+ showColors && hidePreset && /* @__PURE__ */ jsx76(ColorsPanel, { selectedTheme, isDarkMode }),
12758
12777
  showOthers && /* @__PURE__ */ jsxs47(Fragment6, { children: [
12759
- variant === "full" && /* @__PURE__ */ jsx75("div", { className: "border-t border-border" }),
12778
+ variant === "full" && /* @__PURE__ */ jsx76("div", { className: "border-t border-border" }),
12760
12779
  /* @__PURE__ */ jsxs47("div", { className: "space-y-3", children: [
12761
- /* @__PURE__ */ jsx75("label", { className: "text-sm font-medium", children: "Radius" }),
12762
- /* @__PURE__ */ jsx75("div", { className: "grid grid-cols-5 gap-2", children: radiusOptions.map((option) => /* @__PURE__ */ jsx75(
12780
+ /* @__PURE__ */ jsx76("label", { className: "text-sm font-medium", children: "Radius" }),
12781
+ /* @__PURE__ */ jsx76("div", { className: "grid grid-cols-5 gap-2", children: radiusOptions.map((option) => /* @__PURE__ */ jsx76(
12763
12782
  "button",
12764
12783
  {
12765
12784
  onClick: () => handleRadiusSelect(option.value),
@@ -12772,9 +12791,9 @@ function ThemeTab({
12772
12791
  option.value
12773
12792
  )) })
12774
12793
  ] }),
12775
- /* @__PURE__ */ jsx75("div", { className: "border-t border-border" }),
12794
+ /* @__PURE__ */ jsx76("div", { className: "border-t border-border" }),
12776
12795
  /* @__PURE__ */ jsxs47("div", { className: "space-y-3", children: [
12777
- /* @__PURE__ */ jsx75("label", { className: "text-sm font-medium", children: "Mode" }),
12796
+ /* @__PURE__ */ jsx76("label", { className: "text-sm font-medium", children: "Mode" }),
12778
12797
  /* @__PURE__ */ jsxs47("div", { className: "grid grid-cols-2 gap-2", children: [
12779
12798
  /* @__PURE__ */ jsxs47(
12780
12799
  "button",
@@ -12785,7 +12804,7 @@ function ThemeTab({
12785
12804
  ${!isDarkMode ? "bg-muted text-foreground" : "bg-card border border-border hover:bg-muted text-foreground"}
12786
12805
  `,
12787
12806
  children: [
12788
- /* @__PURE__ */ jsx75(Sun, { className: "w-4 h-4" }),
12807
+ /* @__PURE__ */ jsx76(Sun, { className: "w-4 h-4" }),
12789
12808
  "Light"
12790
12809
  ]
12791
12810
  }
@@ -12799,34 +12818,34 @@ function ThemeTab({
12799
12818
  ${isDarkMode ? "bg-muted text-foreground" : "bg-card border border-border hover:bg-muted text-foreground"}
12800
12819
  `,
12801
12820
  children: [
12802
- /* @__PURE__ */ jsx75(Moon2, { className: "w-4 h-4" }),
12821
+ /* @__PURE__ */ jsx76(Moon2, { className: "w-4 h-4" }),
12803
12822
  "Dark"
12804
12823
  ]
12805
12824
  }
12806
12825
  )
12807
12826
  ] })
12808
12827
  ] }),
12809
- /* @__PURE__ */ jsx75("div", { className: "border-t border-border" }),
12810
- /* @__PURE__ */ jsx75("div", { className: "space-y-3", children: /* @__PURE__ */ jsxs47(
12828
+ /* @__PURE__ */ jsx76("div", { className: "border-t border-border" }),
12829
+ /* @__PURE__ */ jsx76("div", { className: "space-y-3", children: /* @__PURE__ */ jsxs47(
12811
12830
  "button",
12812
12831
  {
12813
12832
  onClick: onImportClick,
12814
12833
  className: "w-full flex items-center justify-center gap-2 px-4 py-2 border border-border rounded-md hover:bg-muted transition-colors",
12815
12834
  children: [
12816
- /* @__PURE__ */ jsx75(Upload, { className: "w-4 h-4" }),
12835
+ /* @__PURE__ */ jsx76(Upload, { className: "w-4 h-4" }),
12817
12836
  "Import Theme"
12818
12837
  ]
12819
12838
  }
12820
12839
  ) })
12821
12840
  ] }),
12822
12841
  variant === "full" && /* @__PURE__ */ jsxs47(Fragment6, { children: [
12823
- /* @__PURE__ */ jsx75("div", { className: "border-t border-border" }),
12842
+ /* @__PURE__ */ jsx76("div", { className: "border-t border-border" }),
12824
12843
  /* @__PURE__ */ jsxs47("div", { className: "p-4 bg-muted rounded-lg space-y-3", children: [
12825
- /* @__PURE__ */ jsx75("div", { className: "flex items-center gap-2", children: /* @__PURE__ */ jsx75("span", { className: "text-sm font-medium", children: "Advanced Customization" }) }),
12844
+ /* @__PURE__ */ jsx76("div", { className: "flex items-center gap-2", children: /* @__PURE__ */ jsx76("span", { className: "text-sm font-medium", children: "Advanced Customization" }) }),
12826
12845
  /* @__PURE__ */ jsxs47("p", { className: "text-xs text-muted-foreground", children: [
12827
12846
  "For advanced theme customization with real-time preview, visit",
12828
12847
  " ",
12829
- /* @__PURE__ */ jsx75(
12848
+ /* @__PURE__ */ jsx76(
12830
12849
  "a",
12831
12850
  {
12832
12851
  href: "https://tweakcn.com/editor/theme",
@@ -12843,7 +12862,7 @@ function ThemeTab({
12843
12862
  className: "w-full flex items-center justify-center gap-2 px-4 py-2 border border-border rounded-md hover:bg-muted/70 transition-colors text-sm",
12844
12863
  onClick: () => typeof window !== "undefined" && window.open("https://tweakcn.com/editor/theme", "_blank"),
12845
12864
  children: [
12846
- /* @__PURE__ */ jsx75(ExternalLink, { className: "w-4 h-4" }),
12865
+ /* @__PURE__ */ jsx76(ExternalLink, { className: "w-4 h-4" }),
12847
12866
  "Open Tweakcn"
12848
12867
  ]
12849
12868
  }
@@ -12857,7 +12876,7 @@ function ThemeTab({
12857
12876
  __name(ThemeTab, "ThemeTab");
12858
12877
 
12859
12878
  // components/theme-customizer/layout-tab.tsx
12860
- import { Fragment as Fragment7, jsx as jsx76, jsxs as jsxs48 } from "react/jsx-runtime";
12879
+ import { Fragment as Fragment7, jsx as jsx77, jsxs as jsxs48 } from "react/jsx-runtime";
12861
12880
  function LayoutTab({ sidebarConfig, onSidebarConfigChange }) {
12862
12881
  const config = sidebarConfig || {
12863
12882
  variant: "inset",
@@ -12876,21 +12895,21 @@ function LayoutTab({ sidebarConfig, onSidebarConfigChange }) {
12876
12895
  return /* @__PURE__ */ jsxs48("div", { className: "space-y-4", children: [
12877
12896
  /* @__PURE__ */ jsxs48("p", { className: "text-xs text-muted-foreground", children: [
12878
12897
  "These options apply only when your app wires ",
12879
- /* @__PURE__ */ jsx76("code", { className: "text-[10px]", children: "sidebarConfig" }),
12898
+ /* @__PURE__ */ jsx77("code", { className: "text-[10px]", children: "sidebarConfig" }),
12880
12899
  " and ",
12881
- /* @__PURE__ */ jsx76("code", { className: "text-[10px]", children: "onSidebarConfigChange" }),
12900
+ /* @__PURE__ */ jsx77("code", { className: "text-[10px]", children: "onSidebarConfigChange" }),
12882
12901
  " to the layout."
12883
12902
  ] }),
12884
12903
  /* @__PURE__ */ jsxs48("div", { className: "space-y-3", children: [
12885
12904
  /* @__PURE__ */ jsxs48("div", { children: [
12886
- /* @__PURE__ */ jsx76("label", { className: "text-sm font-medium", children: "Sidebar Variant" }),
12905
+ /* @__PURE__ */ jsx77("label", { className: "text-sm font-medium", children: "Sidebar Variant" }),
12887
12906
  config.variant && /* @__PURE__ */ jsxs48("p", { className: "text-xs text-muted-foreground mt-1", children: [
12888
12907
  config.variant === "sidebar" && "Default: Standard sidebar layout",
12889
12908
  config.variant === "floating" && "Floating: Floating sidebar with border",
12890
12909
  config.variant === "inset" && "Inset: Inset sidebar with rounded corners"
12891
12910
  ] })
12892
12911
  ] }),
12893
- /* @__PURE__ */ jsx76("div", { className: "grid grid-cols-3 gap-3", children: sidebarVariants.map((variant) => /* @__PURE__ */ jsx76(
12912
+ /* @__PURE__ */ jsx77("div", { className: "grid grid-cols-3 gap-3", children: sidebarVariants.map((variant) => /* @__PURE__ */ jsx77(
12894
12913
  "div",
12895
12914
  {
12896
12915
  onClick: () => handleSidebarVariantSelect(variant.value),
@@ -12899,21 +12918,21 @@ function LayoutTab({ sidebarConfig, onSidebarConfigChange }) {
12899
12918
  ${config.variant === variant.value ? "border-primary bg-primary/10" : "border-border hover:border-border/80"}
12900
12919
  `,
12901
12920
  children: /* @__PURE__ */ jsxs48("div", { className: "space-y-2", children: [
12902
- /* @__PURE__ */ jsx76("div", { className: "text-xs font-semibold text-center", children: variant.name }),
12921
+ /* @__PURE__ */ jsx77("div", { className: "text-xs font-semibold text-center", children: variant.name }),
12903
12922
  /* @__PURE__ */ jsxs48("div", { className: `flex h-12 rounded border border-border ${variant.value === "inset" ? "bg-muted" : "bg-card"}`, children: [
12904
12923
  /* @__PURE__ */ jsxs48(
12905
12924
  "div",
12906
12925
  {
12907
12926
  className: `w-3 flex-shrink-0 bg-muted/70 flex flex-col gap-0.5 p-1 ${variant.value === "floating" ? "border-r m-1 rounded" : variant.value === "inset" ? "m-1 ms-0 rounded bg-muted/70" : "border-r"}`,
12908
12927
  children: [
12909
- /* @__PURE__ */ jsx76("div", { className: "h-0.5 w-full bg-muted-foreground/70 rounded" }),
12910
- /* @__PURE__ */ jsx76("div", { className: "h-0.5 w-3/4 bg-muted-foreground/60 rounded" }),
12911
- /* @__PURE__ */ jsx76("div", { className: "h-0.5 w-2/3 bg-muted-foreground/50 rounded" }),
12912
- /* @__PURE__ */ jsx76("div", { className: "h-0.5 w-3/4 bg-muted-foreground/40 rounded" })
12928
+ /* @__PURE__ */ jsx77("div", { className: "h-0.5 w-full bg-muted-foreground/70 rounded" }),
12929
+ /* @__PURE__ */ jsx77("div", { className: "h-0.5 w-3/4 bg-muted-foreground/60 rounded" }),
12930
+ /* @__PURE__ */ jsx77("div", { className: "h-0.5 w-2/3 bg-muted-foreground/50 rounded" }),
12931
+ /* @__PURE__ */ jsx77("div", { className: "h-0.5 w-3/4 bg-muted-foreground/40 rounded" })
12913
12932
  ]
12914
12933
  }
12915
12934
  ),
12916
- /* @__PURE__ */ jsx76("div", { className: `flex-1 ${variant.value === "inset" ? "bg-card ms-0" : "bg-muted"} m-1 rounded-sm border-dashed border border-border` })
12935
+ /* @__PURE__ */ jsx77("div", { className: `flex-1 ${variant.value === "inset" ? "bg-card ms-0" : "bg-muted"} m-1 rounded-sm border-dashed border border-border` })
12917
12936
  ] })
12918
12937
  ] })
12919
12938
  },
@@ -12922,14 +12941,14 @@ function LayoutTab({ sidebarConfig, onSidebarConfigChange }) {
12922
12941
  ] }),
12923
12942
  /* @__PURE__ */ jsxs48("div", { className: "space-y-3", children: [
12924
12943
  /* @__PURE__ */ jsxs48("div", { children: [
12925
- /* @__PURE__ */ jsx76("label", { className: "text-sm font-medium", children: "Sidebar Collapsible Mode" }),
12944
+ /* @__PURE__ */ jsx77("label", { className: "text-sm font-medium", children: "Sidebar Collapsible Mode" }),
12926
12945
  config.collapsible && /* @__PURE__ */ jsxs48("p", { className: "text-xs text-muted-foreground mt-1", children: [
12927
12946
  config.collapsible === "offcanvas" && "Off Canvas: Slides out of view",
12928
12947
  config.collapsible === "icon" && "Icon: Collapses to icon only",
12929
12948
  config.collapsible === "none" && "None: Always visible"
12930
12949
  ] })
12931
12950
  ] }),
12932
- /* @__PURE__ */ jsx76("div", { className: "grid grid-cols-3 gap-3", children: sidebarCollapsibleOptions.map((option) => /* @__PURE__ */ jsx76(
12951
+ /* @__PURE__ */ jsx77("div", { className: "grid grid-cols-3 gap-3", children: sidebarCollapsibleOptions.map((option) => /* @__PURE__ */ jsx77(
12933
12952
  "div",
12934
12953
  {
12935
12954
  onClick: () => handleSidebarCollapsibleSelect(option.value),
@@ -12938,26 +12957,26 @@ function LayoutTab({ sidebarConfig, onSidebarConfigChange }) {
12938
12957
  ${config.collapsible === option.value ? "border-primary bg-primary/10" : "border-border hover:border-border/80"}
12939
12958
  `,
12940
12959
  children: /* @__PURE__ */ jsxs48("div", { className: "space-y-2", children: [
12941
- /* @__PURE__ */ jsx76("div", { className: "text-xs font-semibold text-center", children: option.name }),
12942
- /* @__PURE__ */ jsx76("div", { className: "flex h-12 rounded border border-border bg-card", children: option.value === "offcanvas" ? /* @__PURE__ */ jsx76("div", { className: "flex-1 bg-muted m-1 rounded-sm border-dashed border border-border flex items-center justify-start pl-2", children: /* @__PURE__ */ jsxs48("div", { className: "flex flex-col gap-0.5", children: [
12943
- /* @__PURE__ */ jsx76("div", { className: "w-3 h-0.5 bg-muted-foreground/70 rounded" }),
12944
- /* @__PURE__ */ jsx76("div", { className: "w-3 h-0.5 bg-muted-foreground/70 rounded" }),
12945
- /* @__PURE__ */ jsx76("div", { className: "w-3 h-0.5 bg-muted-foreground/70 rounded" })
12960
+ /* @__PURE__ */ jsx77("div", { className: "text-xs font-semibold text-center", children: option.name }),
12961
+ /* @__PURE__ */ jsx77("div", { className: "flex h-12 rounded border border-border bg-card", children: option.value === "offcanvas" ? /* @__PURE__ */ jsx77("div", { className: "flex-1 bg-muted m-1 rounded-sm border-dashed border border-border flex items-center justify-start pl-2", children: /* @__PURE__ */ jsxs48("div", { className: "flex flex-col gap-0.5", children: [
12962
+ /* @__PURE__ */ jsx77("div", { className: "w-3 h-0.5 bg-muted-foreground/70 rounded" }),
12963
+ /* @__PURE__ */ jsx77("div", { className: "w-3 h-0.5 bg-muted-foreground/70 rounded" }),
12964
+ /* @__PURE__ */ jsx77("div", { className: "w-3 h-0.5 bg-muted-foreground/70 rounded" })
12946
12965
  ] }) }) : option.value === "icon" ? /* @__PURE__ */ jsxs48(Fragment7, { children: [
12947
12966
  /* @__PURE__ */ jsxs48("div", { className: "w-4 flex-shrink-0 bg-muted/70 flex flex-col gap-1 p-1 border-r border-border items-center", children: [
12948
- /* @__PURE__ */ jsx76("div", { className: "w-2 h-2 bg-muted-foreground/70 rounded-sm" }),
12949
- /* @__PURE__ */ jsx76("div", { className: "w-2 h-2 bg-muted-foreground/60 rounded-sm" }),
12950
- /* @__PURE__ */ jsx76("div", { className: "w-2 h-2 bg-muted-foreground/50 rounded-sm" })
12967
+ /* @__PURE__ */ jsx77("div", { className: "w-2 h-2 bg-muted-foreground/70 rounded-sm" }),
12968
+ /* @__PURE__ */ jsx77("div", { className: "w-2 h-2 bg-muted-foreground/60 rounded-sm" }),
12969
+ /* @__PURE__ */ jsx77("div", { className: "w-2 h-2 bg-muted-foreground/50 rounded-sm" })
12951
12970
  ] }),
12952
- /* @__PURE__ */ jsx76("div", { className: "flex-1 bg-muted m-1 rounded-sm border-dashed border border-border" })
12971
+ /* @__PURE__ */ jsx77("div", { className: "flex-1 bg-muted m-1 rounded-sm border-dashed border border-border" })
12953
12972
  ] }) : /* @__PURE__ */ jsxs48(Fragment7, { children: [
12954
12973
  /* @__PURE__ */ jsxs48("div", { className: "w-6 flex-shrink-0 bg-muted/70 flex flex-col gap-0.5 p-1 border-r border-border", children: [
12955
- /* @__PURE__ */ jsx76("div", { className: "h-0.5 w-full bg-muted-foreground/70 rounded" }),
12956
- /* @__PURE__ */ jsx76("div", { className: "h-0.5 w-3/4 bg-muted-foreground/60 rounded" }),
12957
- /* @__PURE__ */ jsx76("div", { className: "h-0.5 w-2/3 bg-muted-foreground/50 rounded" }),
12958
- /* @__PURE__ */ jsx76("div", { className: "h-0.5 w-3/4 bg-muted-foreground/40 rounded" })
12974
+ /* @__PURE__ */ jsx77("div", { className: "h-0.5 w-full bg-muted-foreground/70 rounded" }),
12975
+ /* @__PURE__ */ jsx77("div", { className: "h-0.5 w-3/4 bg-muted-foreground/60 rounded" }),
12976
+ /* @__PURE__ */ jsx77("div", { className: "h-0.5 w-2/3 bg-muted-foreground/50 rounded" }),
12977
+ /* @__PURE__ */ jsx77("div", { className: "h-0.5 w-3/4 bg-muted-foreground/40 rounded" })
12959
12978
  ] }),
12960
- /* @__PURE__ */ jsx76("div", { className: "flex-1 bg-muted m-1 rounded-sm border-dashed border border-border" })
12979
+ /* @__PURE__ */ jsx77("div", { className: "flex-1 bg-muted m-1 rounded-sm border-dashed border border-border" })
12961
12980
  ] }) })
12962
12981
  ] })
12963
12982
  },
@@ -12966,13 +12985,13 @@ function LayoutTab({ sidebarConfig, onSidebarConfigChange }) {
12966
12985
  ] }),
12967
12986
  /* @__PURE__ */ jsxs48("div", { className: "space-y-3", children: [
12968
12987
  /* @__PURE__ */ jsxs48("div", { children: [
12969
- /* @__PURE__ */ jsx76("label", { className: "text-sm font-medium", children: "Sidebar Position" }),
12988
+ /* @__PURE__ */ jsx77("label", { className: "text-sm font-medium", children: "Sidebar Position" }),
12970
12989
  config.side && /* @__PURE__ */ jsxs48("p", { className: "text-xs text-muted-foreground mt-1", children: [
12971
12990
  config.side === "left" && "Left: Sidebar positioned on the left side",
12972
12991
  config.side === "right" && "Right: Sidebar positioned on the right side"
12973
12992
  ] })
12974
12993
  ] }),
12975
- /* @__PURE__ */ jsx76("div", { className: "grid grid-cols-2 gap-3", children: sidebarSideOptions.map((side) => /* @__PURE__ */ jsx76(
12994
+ /* @__PURE__ */ jsx77("div", { className: "grid grid-cols-2 gap-3", children: sidebarSideOptions.map((side) => /* @__PURE__ */ jsx77(
12976
12995
  "div",
12977
12996
  {
12978
12997
  onClick: () => handleSidebarSideSelect(side.value),
@@ -12981,22 +13000,22 @@ function LayoutTab({ sidebarConfig, onSidebarConfigChange }) {
12981
13000
  ${config.side === side.value ? "border-primary bg-primary/10" : "border-border hover:border-border/80"}
12982
13001
  `,
12983
13002
  children: /* @__PURE__ */ jsxs48("div", { className: "space-y-2", children: [
12984
- /* @__PURE__ */ jsx76("div", { className: "text-xs font-semibold text-center", children: side.name }),
12985
- /* @__PURE__ */ jsx76("div", { className: "flex h-12 rounded border border-border bg-card", children: side.value === "left" ? /* @__PURE__ */ jsxs48(Fragment7, { children: [
13003
+ /* @__PURE__ */ jsx77("div", { className: "text-xs font-semibold text-center", children: side.name }),
13004
+ /* @__PURE__ */ jsx77("div", { className: "flex h-12 rounded border border-border bg-card", children: side.value === "left" ? /* @__PURE__ */ jsxs48(Fragment7, { children: [
12986
13005
  /* @__PURE__ */ jsxs48("div", { className: "w-6 flex-shrink-0 bg-muted/70 flex flex-col gap-0.5 p-1 border-r border-border", children: [
12987
- /* @__PURE__ */ jsx76("div", { className: "h-0.5 w-full bg-muted-foreground/70 rounded" }),
12988
- /* @__PURE__ */ jsx76("div", { className: "h-0.5 w-3/4 bg-muted-foreground/60 rounded" }),
12989
- /* @__PURE__ */ jsx76("div", { className: "h-0.5 w-2/3 bg-muted-foreground/50 rounded" }),
12990
- /* @__PURE__ */ jsx76("div", { className: "h-0.5 w-3/4 bg-muted-foreground/40 rounded" })
13006
+ /* @__PURE__ */ jsx77("div", { className: "h-0.5 w-full bg-muted-foreground/70 rounded" }),
13007
+ /* @__PURE__ */ jsx77("div", { className: "h-0.5 w-3/4 bg-muted-foreground/60 rounded" }),
13008
+ /* @__PURE__ */ jsx77("div", { className: "h-0.5 w-2/3 bg-muted-foreground/50 rounded" }),
13009
+ /* @__PURE__ */ jsx77("div", { className: "h-0.5 w-3/4 bg-muted-foreground/40 rounded" })
12991
13010
  ] }),
12992
- /* @__PURE__ */ jsx76("div", { className: "flex-1 bg-muted m-1 rounded-sm border-dashed border border-border" })
13011
+ /* @__PURE__ */ jsx77("div", { className: "flex-1 bg-muted m-1 rounded-sm border-dashed border border-border" })
12993
13012
  ] }) : /* @__PURE__ */ jsxs48(Fragment7, { children: [
12994
- /* @__PURE__ */ jsx76("div", { className: "flex-1 bg-muted m-1 rounded-sm border-dashed border border-border" }),
13013
+ /* @__PURE__ */ jsx77("div", { className: "flex-1 bg-muted m-1 rounded-sm border-dashed border border-border" }),
12995
13014
  /* @__PURE__ */ jsxs48("div", { className: "w-6 flex-shrink-0 bg-muted/70 flex flex-col gap-0.5 p-1 border-l border-border", children: [
12996
- /* @__PURE__ */ jsx76("div", { className: "h-0.5 w-full bg-muted-foreground/70 rounded" }),
12997
- /* @__PURE__ */ jsx76("div", { className: "h-0.5 w-3/4 bg-muted-foreground/60 rounded" }),
12998
- /* @__PURE__ */ jsx76("div", { className: "h-0.5 w-2/3 bg-muted-foreground/50 rounded" }),
12999
- /* @__PURE__ */ jsx76("div", { className: "h-0.5 w-3/4 bg-muted-foreground/40 rounded" })
13015
+ /* @__PURE__ */ jsx77("div", { className: "h-0.5 w-full bg-muted-foreground/70 rounded" }),
13016
+ /* @__PURE__ */ jsx77("div", { className: "h-0.5 w-3/4 bg-muted-foreground/60 rounded" }),
13017
+ /* @__PURE__ */ jsx77("div", { className: "h-0.5 w-2/3 bg-muted-foreground/50 rounded" }),
13018
+ /* @__PURE__ */ jsx77("div", { className: "h-0.5 w-3/4 bg-muted-foreground/40 rounded" })
13000
13019
  ] })
13001
13020
  ] }) })
13002
13021
  ] })
@@ -13009,8 +13028,8 @@ function LayoutTab({ sidebarConfig, onSidebarConfigChange }) {
13009
13028
  __name(LayoutTab, "LayoutTab");
13010
13029
 
13011
13030
  // components/theme-customizer/other-panel.tsx
13012
- import React42 from "react";
13013
- import { jsx as jsx77, jsxs as jsxs49 } from "react/jsx-runtime";
13031
+ import React43 from "react";
13032
+ import { jsx as jsx78, jsxs as jsxs49 } from "react/jsx-runtime";
13014
13033
  function getComputedOtherValues() {
13015
13034
  if (typeof document === "undefined") return {};
13016
13035
  const root = document.documentElement;
@@ -13046,21 +13065,21 @@ function OtherPanel({
13046
13065
  onSidebarConfigChange
13047
13066
  }) {
13048
13067
  const { applyRadius: applyRadius2, setTheme, isDarkMode, handleColorChange: handleColorChange2 } = useThemeManager();
13049
- const [hslOpen, setHslOpen] = React42.useState(true);
13050
- const [hslPresetsOpen, setHslPresetsOpen] = React42.useState(true);
13051
- const [radiusOpen, setRadiusOpen] = React42.useState(true);
13052
- const [spacingOpen, setSpacingOpen] = React42.useState(true);
13053
- const [shadowOpen, setShadowOpen] = React42.useState(true);
13054
- const [values, setValues] = React42.useState({});
13055
- const [uncontrolledRadius, setUncontrolledRadius] = React42.useState("");
13068
+ const [hslOpen, setHslOpen] = React43.useState(true);
13069
+ const [hslPresetsOpen, setHslPresetsOpen] = React43.useState(true);
13070
+ const [radiusOpen, setRadiusOpen] = React43.useState(true);
13071
+ const [spacingOpen, setSpacingOpen] = React43.useState(true);
13072
+ const [shadowOpen, setShadowOpen] = React43.useState(true);
13073
+ const [values, setValues] = React43.useState({});
13074
+ const [uncontrolledRadius, setUncontrolledRadius] = React43.useState("");
13056
13075
  const effectiveRadius = selectedRadius ?? uncontrolledRadius;
13057
- React42.useEffect(() => {
13076
+ React43.useEffect(() => {
13058
13077
  setValues(getComputedOtherValues());
13059
13078
  if (selectedRadius == null) {
13060
13079
  setUncontrolledRadius(getComputedRadius());
13061
13080
  }
13062
13081
  }, [isDarkMode, selectedRadius]);
13063
- React42.useEffect(() => {
13082
+ React43.useEffect(() => {
13064
13083
  if (typeof document === "undefined") return;
13065
13084
  const root = document.documentElement;
13066
13085
  const refresh = /* @__PURE__ */ __name(() => {
@@ -13074,7 +13093,7 @@ function OtherPanel({
13074
13093
  obs.observe(root, { attributes: true, attributeFilter: ["style", "class"] });
13075
13094
  return () => obs.disconnect();
13076
13095
  }, [selectedRadius]);
13077
- const [validationErrors, setValidationErrors] = React42.useState({});
13096
+ const [validationErrors, setValidationErrors] = React43.useState({});
13078
13097
  const handleChange = /* @__PURE__ */ __name((cssVar, value) => {
13079
13098
  let validation = { isValid: true };
13080
13099
  if (cssVar === "--hue-shift") {
@@ -13127,7 +13146,7 @@ function OtherPanel({
13127
13146
  }));
13128
13147
  }
13129
13148
  }, "handleRadiusSelect");
13130
- const hslPresets = React42.useMemo(
13149
+ const hslPresets = React43.useMemo(
13131
13150
  () => [
13132
13151
  { name: "Default", hue: 0, sat: 1, light: 1 },
13133
13152
  { name: "Warm", hue: 30, sat: 1.2, light: 1.05 },
@@ -13142,7 +13161,7 @@ function OtherPanel({
13142
13161
  ],
13143
13162
  []
13144
13163
  );
13145
- const setHsl = React42.useCallback(
13164
+ const setHsl = React43.useCallback(
13146
13165
  (next) => {
13147
13166
  const hue = next.hue ?? (parseFloat(values["--hue-shift"] ?? "0") || 0);
13148
13167
  const sat = next.sat ?? (parseFloat(values["--saturation-mult"] ?? "1") || 1);
@@ -13155,9 +13174,9 @@ function OtherPanel({
13155
13174
  );
13156
13175
  return /* @__PURE__ */ jsxs49("div", { className: "space-y-4 pt-5 pb-2", children: [
13157
13176
  !hideModeSection && /* @__PURE__ */ jsxs49("div", { className: "space-y-2", children: [
13158
- /* @__PURE__ */ jsx77("label", { className: "block text-sm font-medium", children: "Mode" }),
13177
+ /* @__PURE__ */ jsx78("label", { className: "block text-sm font-medium", children: "Mode" }),
13159
13178
  /* @__PURE__ */ jsxs49("div", { className: "grid grid-cols-2 gap-2", children: [
13160
- /* @__PURE__ */ jsx77(
13179
+ /* @__PURE__ */ jsx78(
13161
13180
  Button,
13162
13181
  {
13163
13182
  type: "button",
@@ -13168,7 +13187,7 @@ function OtherPanel({
13168
13187
  children: "Light"
13169
13188
  }
13170
13189
  ),
13171
- /* @__PURE__ */ jsx77(
13190
+ /* @__PURE__ */ jsx78(
13172
13191
  Button,
13173
13192
  {
13174
13193
  type: "button",
@@ -13181,8 +13200,8 @@ function OtherPanel({
13181
13200
  )
13182
13201
  ] })
13183
13202
  ] }),
13184
- /* @__PURE__ */ jsx77(CollapsibleSection, { title: "HSL Adjustments", open: hslOpen, onToggle: () => setHslOpen(!hslOpen), children: /* @__PURE__ */ jsxs49("div", { className: "pt-2 space-y-4", children: [
13185
- /* @__PURE__ */ jsx77("div", { className: "flex items-center justify-center", children: /* @__PURE__ */ jsxs49(
13203
+ /* @__PURE__ */ jsx78(CollapsibleSection, { title: "HSL Adjustments", open: hslOpen, onToggle: () => setHslOpen(!hslOpen), children: /* @__PURE__ */ jsxs49("div", { className: "pt-2 space-y-4", children: [
13204
+ /* @__PURE__ */ jsx78("div", { className: "flex items-center justify-center", children: /* @__PURE__ */ jsxs49(
13186
13205
  "button",
13187
13206
  {
13188
13207
  type: "button",
@@ -13190,11 +13209,11 @@ function OtherPanel({
13190
13209
  className: "text-sm font-medium text-muted-foreground hover:text-foreground transition-colors inline-flex items-center gap-2",
13191
13210
  children: [
13192
13211
  hslPresetsOpen ? "Hide presets" : "Show presets",
13193
- /* @__PURE__ */ jsx77("span", { className: cn("transition-transform", hslPresetsOpen ? "rotate-180" : ""), children: "^" })
13212
+ /* @__PURE__ */ jsx78("span", { className: cn("transition-transform", hslPresetsOpen ? "rotate-180" : ""), children: "^" })
13194
13213
  ]
13195
13214
  }
13196
13215
  ) }),
13197
- hslPresetsOpen && /* @__PURE__ */ jsx77("div", { className: "flex flex-wrap items-center justify-center gap-2", children: hslPresets.map((p) => /* @__PURE__ */ jsx77(
13216
+ hslPresetsOpen && /* @__PURE__ */ jsx78("div", { className: "flex flex-wrap items-center justify-center gap-2", children: hslPresets.map((p) => /* @__PURE__ */ jsx78(
13198
13217
  "button",
13199
13218
  {
13200
13219
  type: "button",
@@ -13202,7 +13221,7 @@ function OtherPanel({
13202
13221
  className: "h-10 w-10 rounded-lg border border-border bg-card shadow-none overflow-hidden",
13203
13222
  "aria-label": `HSL preset: ${p.name}`,
13204
13223
  title: p.name,
13205
- children: /* @__PURE__ */ jsx77(
13224
+ children: /* @__PURE__ */ jsx78(
13206
13225
  "div",
13207
13226
  {
13208
13227
  className: "h-full w-full",
@@ -13217,9 +13236,9 @@ function OtherPanel({
13217
13236
  /* @__PURE__ */ jsxs49("div", { className: "space-y-5", children: [
13218
13237
  /* @__PURE__ */ jsxs49("div", { className: "space-y-2", children: [
13219
13238
  /* @__PURE__ */ jsxs49("div", { className: "flex items-center justify-between gap-3", children: [
13220
- /* @__PURE__ */ jsx77("label", { className: "text-sm font-medium", children: "Hue Shift" }),
13239
+ /* @__PURE__ */ jsx78("label", { className: "text-sm font-medium", children: "Hue Shift" }),
13221
13240
  /* @__PURE__ */ jsxs49("div", { className: "flex items-center gap-2", children: [
13222
- /* @__PURE__ */ jsx77(
13241
+ /* @__PURE__ */ jsx78(
13223
13242
  Input,
13224
13243
  {
13225
13244
  type: "text",
@@ -13231,10 +13250,10 @@ function OtherPanel({
13231
13250
  )
13232
13251
  }
13233
13252
  ),
13234
- /* @__PURE__ */ jsx77("span", { className: "text-xs text-muted-foreground", children: "deg" })
13253
+ /* @__PURE__ */ jsx78("span", { className: "text-xs text-muted-foreground", children: "deg" })
13235
13254
  ] })
13236
13255
  ] }),
13237
- /* @__PURE__ */ jsx77(
13256
+ /* @__PURE__ */ jsx78(
13238
13257
  "input",
13239
13258
  {
13240
13259
  type: "range",
@@ -13246,13 +13265,13 @@ function OtherPanel({
13246
13265
  className: "w-full h-2 rounded-full bg-muted accent-foreground"
13247
13266
  }
13248
13267
  ),
13249
- validationErrors["--hue-shift"] && /* @__PURE__ */ jsx77("p", { className: "text-xs text-destructive", children: validationErrors["--hue-shift"] })
13268
+ validationErrors["--hue-shift"] && /* @__PURE__ */ jsx78("p", { className: "text-xs text-destructive", children: validationErrors["--hue-shift"] })
13250
13269
  ] }),
13251
13270
  /* @__PURE__ */ jsxs49("div", { className: "space-y-2", children: [
13252
13271
  /* @__PURE__ */ jsxs49("div", { className: "flex items-center justify-between gap-3", children: [
13253
- /* @__PURE__ */ jsx77("label", { className: "text-sm font-medium", children: "Saturation Multiplier" }),
13272
+ /* @__PURE__ */ jsx78("label", { className: "text-sm font-medium", children: "Saturation Multiplier" }),
13254
13273
  /* @__PURE__ */ jsxs49("div", { className: "flex items-center gap-2", children: [
13255
- /* @__PURE__ */ jsx77(
13274
+ /* @__PURE__ */ jsx78(
13256
13275
  Input,
13257
13276
  {
13258
13277
  type: "text",
@@ -13264,10 +13283,10 @@ function OtherPanel({
13264
13283
  )
13265
13284
  }
13266
13285
  ),
13267
- /* @__PURE__ */ jsx77("span", { className: "text-xs text-muted-foreground", children: "x" })
13286
+ /* @__PURE__ */ jsx78("span", { className: "text-xs text-muted-foreground", children: "x" })
13268
13287
  ] })
13269
13288
  ] }),
13270
- /* @__PURE__ */ jsx77(
13289
+ /* @__PURE__ */ jsx78(
13271
13290
  "input",
13272
13291
  {
13273
13292
  type: "range",
@@ -13279,13 +13298,13 @@ function OtherPanel({
13279
13298
  className: "w-full h-2 rounded-full bg-muted accent-foreground"
13280
13299
  }
13281
13300
  ),
13282
- validationErrors["--saturation-mult"] && /* @__PURE__ */ jsx77("p", { className: "text-xs text-destructive", children: validationErrors["--saturation-mult"] })
13301
+ validationErrors["--saturation-mult"] && /* @__PURE__ */ jsx78("p", { className: "text-xs text-destructive", children: validationErrors["--saturation-mult"] })
13283
13302
  ] }),
13284
13303
  /* @__PURE__ */ jsxs49("div", { className: "space-y-2", children: [
13285
13304
  /* @__PURE__ */ jsxs49("div", { className: "flex items-center justify-between gap-3", children: [
13286
- /* @__PURE__ */ jsx77("label", { className: "text-sm font-medium", children: "Lightness Multiplier" }),
13305
+ /* @__PURE__ */ jsx78("label", { className: "text-sm font-medium", children: "Lightness Multiplier" }),
13287
13306
  /* @__PURE__ */ jsxs49("div", { className: "flex items-center gap-2", children: [
13288
- /* @__PURE__ */ jsx77(
13307
+ /* @__PURE__ */ jsx78(
13289
13308
  Input,
13290
13309
  {
13291
13310
  type: "text",
@@ -13297,10 +13316,10 @@ function OtherPanel({
13297
13316
  )
13298
13317
  }
13299
13318
  ),
13300
- /* @__PURE__ */ jsx77("span", { className: "text-xs text-muted-foreground", children: "x" })
13319
+ /* @__PURE__ */ jsx78("span", { className: "text-xs text-muted-foreground", children: "x" })
13301
13320
  ] })
13302
13321
  ] }),
13303
- /* @__PURE__ */ jsx77(
13322
+ /* @__PURE__ */ jsx78(
13304
13323
  "input",
13305
13324
  {
13306
13325
  type: "range",
@@ -13312,13 +13331,13 @@ function OtherPanel({
13312
13331
  className: "w-full h-2 rounded-full bg-muted accent-foreground"
13313
13332
  }
13314
13333
  ),
13315
- validationErrors["--lightness-mult"] && /* @__PURE__ */ jsx77("p", { className: "text-xs text-destructive", children: validationErrors["--lightness-mult"] })
13334
+ validationErrors["--lightness-mult"] && /* @__PURE__ */ jsx78("p", { className: "text-xs text-destructive", children: validationErrors["--lightness-mult"] })
13316
13335
  ] })
13317
13336
  ] })
13318
13337
  ] }) }),
13319
- /* @__PURE__ */ jsx77(CollapsibleSection, { title: "Radius", open: radiusOpen, onToggle: () => setRadiusOpen(!radiusOpen), children: /* @__PURE__ */ jsxs49("div", { className: "pt-2 space-y-2", children: [
13320
- /* @__PURE__ */ jsx77("label", { className: "text-sm font-medium", children: "Corner radius" }),
13321
- /* @__PURE__ */ jsx77("div", { className: "flex flex-wrap gap-2", children: radiusOptions.map((opt) => /* @__PURE__ */ jsx77(
13338
+ /* @__PURE__ */ jsx78(CollapsibleSection, { title: "Radius", open: radiusOpen, onToggle: () => setRadiusOpen(!radiusOpen), children: /* @__PURE__ */ jsxs49("div", { className: "pt-2 space-y-2", children: [
13339
+ /* @__PURE__ */ jsx78("label", { className: "text-sm font-medium", children: "Corner radius" }),
13340
+ /* @__PURE__ */ jsx78("div", { className: "flex flex-wrap gap-2", children: radiusOptions.map((opt) => /* @__PURE__ */ jsx78(
13322
13341
  Button,
13323
13342
  {
13324
13343
  type: "button",
@@ -13330,11 +13349,11 @@ function OtherPanel({
13330
13349
  },
13331
13350
  opt.value
13332
13351
  )) }),
13333
- validationErrors["--radius"] && /* @__PURE__ */ jsx77("p", { className: "text-xs text-destructive", children: validationErrors["--radius"] })
13352
+ validationErrors["--radius"] && /* @__PURE__ */ jsx78("p", { className: "text-xs text-destructive", children: validationErrors["--radius"] })
13334
13353
  ] }) }),
13335
- /* @__PURE__ */ jsx77(CollapsibleSection, { title: "Spacing", open: spacingOpen, onToggle: () => setSpacingOpen(!spacingOpen), children: /* @__PURE__ */ jsxs49("div", { className: "pt-2 space-y-1", children: [
13336
- /* @__PURE__ */ jsx77("label", { className: "block text-xs font-medium text-muted-foreground mb-1.5", children: "Spacing (base scale for layout, rem)" }),
13337
- /* @__PURE__ */ jsx77(
13354
+ /* @__PURE__ */ jsx78(CollapsibleSection, { title: "Spacing", open: spacingOpen, onToggle: () => setSpacingOpen(!spacingOpen), children: /* @__PURE__ */ jsxs49("div", { className: "pt-2 space-y-1", children: [
13355
+ /* @__PURE__ */ jsx78("label", { className: "block text-xs font-medium text-muted-foreground mb-1.5", children: "Spacing (base scale for layout, rem)" }),
13356
+ /* @__PURE__ */ jsx78(
13338
13357
  Input,
13339
13358
  {
13340
13359
  type: "text",
@@ -13347,12 +13366,12 @@ function OtherPanel({
13347
13366
  )
13348
13367
  }
13349
13368
  ),
13350
- validationErrors["--spacing"] && /* @__PURE__ */ jsx77("p", { className: "text-xs text-destructive", children: validationErrors["--spacing"] })
13369
+ validationErrors["--spacing"] && /* @__PURE__ */ jsx78("p", { className: "text-xs text-destructive", children: validationErrors["--spacing"] })
13351
13370
  ] }) }),
13352
- /* @__PURE__ */ jsx77(CollapsibleSection, { title: "Shadow", open: shadowOpen, onToggle: () => setShadowOpen(!shadowOpen), children: /* @__PURE__ */ jsxs49("div", { className: "space-y-3 pt-2", children: [
13371
+ /* @__PURE__ */ jsx78(CollapsibleSection, { title: "Shadow", open: shadowOpen, onToggle: () => setShadowOpen(!shadowOpen), children: /* @__PURE__ */ jsxs49("div", { className: "space-y-3 pt-2", children: [
13353
13372
  /* @__PURE__ */ jsxs49("div", { children: [
13354
- /* @__PURE__ */ jsx77("label", { className: "block text-xs font-medium text-muted-foreground mb-1.5", children: "Shadow color" }),
13355
- /* @__PURE__ */ jsx77(
13373
+ /* @__PURE__ */ jsx78("label", { className: "block text-xs font-medium text-muted-foreground mb-1.5", children: "Shadow color" }),
13374
+ /* @__PURE__ */ jsx78(
13356
13375
  Input,
13357
13376
  {
13358
13377
  type: "text",
@@ -13364,8 +13383,8 @@ function OtherPanel({
13364
13383
  )
13365
13384
  ] }),
13366
13385
  /* @__PURE__ */ jsxs49("div", { children: [
13367
- /* @__PURE__ */ jsx77("label", { className: "block text-xs font-medium text-muted-foreground mb-1.5", children: "Shadow Opacity" }),
13368
- /* @__PURE__ */ jsx77(
13386
+ /* @__PURE__ */ jsx78("label", { className: "block text-xs font-medium text-muted-foreground mb-1.5", children: "Shadow Opacity" }),
13387
+ /* @__PURE__ */ jsx78(
13369
13388
  Input,
13370
13389
  {
13371
13390
  type: "text",
@@ -13378,8 +13397,8 @@ function OtherPanel({
13378
13397
  ] }),
13379
13398
  /* @__PURE__ */ jsxs49("div", { className: "grid grid-cols-2 gap-2", children: [
13380
13399
  /* @__PURE__ */ jsxs49("div", { children: [
13381
- /* @__PURE__ */ jsx77("label", { className: "block text-xs font-medium text-muted-foreground mb-1.5", children: "Blur radius" }),
13382
- /* @__PURE__ */ jsx77(
13400
+ /* @__PURE__ */ jsx78("label", { className: "block text-xs font-medium text-muted-foreground mb-1.5", children: "Blur radius" }),
13401
+ /* @__PURE__ */ jsx78(
13383
13402
  Input,
13384
13403
  {
13385
13404
  type: "text",
@@ -13391,8 +13410,8 @@ function OtherPanel({
13391
13410
  )
13392
13411
  ] }),
13393
13412
  /* @__PURE__ */ jsxs49("div", { children: [
13394
- /* @__PURE__ */ jsx77("label", { className: "block text-xs font-medium text-muted-foreground mb-1.5", children: "Spread" }),
13395
- /* @__PURE__ */ jsx77(
13413
+ /* @__PURE__ */ jsx78("label", { className: "block text-xs font-medium text-muted-foreground mb-1.5", children: "Spread" }),
13414
+ /* @__PURE__ */ jsx78(
13396
13415
  Input,
13397
13416
  {
13398
13417
  type: "text",
@@ -13406,8 +13425,8 @@ function OtherPanel({
13406
13425
  ] }),
13407
13426
  /* @__PURE__ */ jsxs49("div", { className: "grid grid-cols-2 gap-2", children: [
13408
13427
  /* @__PURE__ */ jsxs49("div", { children: [
13409
- /* @__PURE__ */ jsx77("label", { className: "block text-xs font-medium text-muted-foreground mb-1.5", children: "Offset X" }),
13410
- /* @__PURE__ */ jsx77(
13428
+ /* @__PURE__ */ jsx78("label", { className: "block text-xs font-medium text-muted-foreground mb-1.5", children: "Offset X" }),
13429
+ /* @__PURE__ */ jsx78(
13411
13430
  Input,
13412
13431
  {
13413
13432
  type: "text",
@@ -13419,8 +13438,8 @@ function OtherPanel({
13419
13438
  )
13420
13439
  ] }),
13421
13440
  /* @__PURE__ */ jsxs49("div", { children: [
13422
- /* @__PURE__ */ jsx77("label", { className: "block text-xs font-medium text-muted-foreground mb-1.5", children: "Offset Y" }),
13423
- /* @__PURE__ */ jsx77(
13441
+ /* @__PURE__ */ jsx78("label", { className: "block text-xs font-medium text-muted-foreground mb-1.5", children: "Offset Y" }),
13442
+ /* @__PURE__ */ jsx78(
13424
13443
  Input,
13425
13444
  {
13426
13445
  type: "text",
@@ -13433,15 +13452,15 @@ function OtherPanel({
13433
13452
  ] })
13434
13453
  ] })
13435
13454
  ] }) }),
13436
- !hideLayoutSection && /* @__PURE__ */ jsx77(LayoutTab, { sidebarConfig, onSidebarConfigChange })
13455
+ !hideLayoutSection && /* @__PURE__ */ jsx78(LayoutTab, { sidebarConfig, onSidebarConfigChange })
13437
13456
  ] });
13438
13457
  }
13439
13458
  __name(OtherPanel, "OtherPanel");
13440
13459
 
13441
13460
  // components/theme-customizer/import-modal.tsx
13442
- import React43 from "react";
13461
+ import React44 from "react";
13443
13462
  import { X as X8, Check as Check6 } from "lucide-react";
13444
- import { Fragment as Fragment8, jsx as jsx78, jsxs as jsxs50 } from "react/jsx-runtime";
13463
+ import { Fragment as Fragment8, jsx as jsx79, jsxs as jsxs50 } from "react/jsx-runtime";
13445
13464
  function normalizeImportedThemeVars(vars) {
13446
13465
  const out = {};
13447
13466
  Object.entries(vars).forEach(([key, value]) => {
@@ -13452,9 +13471,9 @@ function normalizeImportedThemeVars(vars) {
13452
13471
  }
13453
13472
  __name(normalizeImportedThemeVars, "normalizeImportedThemeVars");
13454
13473
  function ImportModal({ open, onOpenChange, onImport, onImportArtifact }) {
13455
- const [importText, setImportText] = React43.useState("");
13456
- const [themeName, setThemeName] = React43.useState("");
13457
- const [error, setError] = React43.useState(null);
13474
+ const [importText, setImportText] = React44.useState("");
13475
+ const [themeName, setThemeName] = React44.useState("");
13476
+ const [error, setError] = React44.useState(null);
13458
13477
  const raw = importText.trim();
13459
13478
  const isJsonArtifact = raw.startsWith("{");
13460
13479
  const canImport = Boolean(raw) && (isJsonArtifact || Boolean(themeName.trim()));
@@ -13535,28 +13554,28 @@ function ImportModal({ open, onOpenChange, onImport, onImportArtifact }) {
13535
13554
  }, "processImport");
13536
13555
  if (!open) return null;
13537
13556
  return /* @__PURE__ */ jsxs50(Fragment8, { children: [
13538
- /* @__PURE__ */ jsx78(
13557
+ /* @__PURE__ */ jsx79(
13539
13558
  "div",
13540
13559
  {
13541
13560
  className: "fixed inset-0 bg-foreground/20 z-[60]",
13542
13561
  onClick: () => onOpenChange(false)
13543
13562
  }
13544
13563
  ),
13545
- /* @__PURE__ */ jsx78("div", { className: "fixed inset-0 z-[60] flex items-center justify-center p-4", children: /* @__PURE__ */ jsxs50("div", { className: "bg-card text-card-foreground rounded-lg shadow-lg max-w-4xl w-full max-h-[90vh] flex flex-col border border-border", children: [
13546
- /* @__PURE__ */ jsx78("div", { className: "p-6 border-b border-border", children: /* @__PURE__ */ jsxs50("div", { className: "flex items-center justify-between", children: [
13564
+ /* @__PURE__ */ jsx79("div", { className: "fixed inset-0 z-[60] flex items-center justify-center p-4", children: /* @__PURE__ */ jsxs50("div", { className: "bg-card text-card-foreground rounded-lg shadow-lg max-w-4xl w-full max-h-[90vh] flex flex-col border border-border", children: [
13565
+ /* @__PURE__ */ jsx79("div", { className: "p-6 border-b border-border", children: /* @__PURE__ */ jsxs50("div", { className: "flex items-center justify-between", children: [
13547
13566
  /* @__PURE__ */ jsxs50("div", { children: [
13548
- /* @__PURE__ */ jsx78("h3", { className: "text-lg font-semibold", children: "Import Theme" }),
13567
+ /* @__PURE__ */ jsx79("h3", { className: "text-lg font-semibold", children: "Import Theme" }),
13549
13568
  /* @__PURE__ */ jsxs50("p", { className: "text-sm text-muted-foreground mt-1", children: [
13550
13569
  "Paste either a standardized ",
13551
- /* @__PURE__ */ jsx78("code", { className: "px-1 py-0.5 bg-muted rounded", children: "theme.json" }),
13570
+ /* @__PURE__ */ jsx79("code", { className: "px-1 py-0.5 bg-muted rounded", children: "theme.json" }),
13552
13571
  " artifact (recommended) or a CSS theme with ",
13553
- /* @__PURE__ */ jsx78("code", { className: "px-1 py-0.5 bg-muted rounded", children: ":root" }),
13572
+ /* @__PURE__ */ jsx79("code", { className: "px-1 py-0.5 bg-muted rounded", children: ":root" }),
13554
13573
  " and ",
13555
- /* @__PURE__ */ jsx78("code", { className: "px-1 py-0.5 bg-muted rounded", children: ".dark" }),
13574
+ /* @__PURE__ */ jsx79("code", { className: "px-1 py-0.5 bg-muted rounded", children: ".dark" }),
13556
13575
  "."
13557
13576
  ] })
13558
13577
  ] }),
13559
- /* @__PURE__ */ jsx78(
13578
+ /* @__PURE__ */ jsx79(
13560
13579
  "button",
13561
13580
  {
13562
13581
  onClick: () => onOpenChange(false),
@@ -13566,10 +13585,10 @@ function ImportModal({ open, onOpenChange, onImport, onImportArtifact }) {
13566
13585
  )
13567
13586
  ] }) }),
13568
13587
  /* @__PURE__ */ jsxs50("div", { className: "p-6 flex-1 overflow-y-auto space-y-4", children: [
13569
- error && /* @__PURE__ */ jsx78("div", { className: "rounded-lg border border-destructive bg-destructive/10 p-3", children: /* @__PURE__ */ jsx78("p", { className: "text-sm text-destructive", children: error }) }),
13588
+ error && /* @__PURE__ */ jsx79("div", { className: "rounded-lg border border-destructive bg-destructive/10 p-3", children: /* @__PURE__ */ jsx79("p", { className: "text-sm text-destructive", children: error }) }),
13570
13589
  /* @__PURE__ */ jsxs50("div", { children: [
13571
- /* @__PURE__ */ jsx78("label", { className: "block text-sm font-medium mb-2", children: "Theme name" }),
13572
- /* @__PURE__ */ jsx78(
13590
+ /* @__PURE__ */ jsx79("label", { className: "block text-sm font-medium mb-2", children: "Theme name" }),
13591
+ /* @__PURE__ */ jsx79(
13573
13592
  Input,
13574
13593
  {
13575
13594
  type: "text",
@@ -13583,8 +13602,8 @@ function ImportModal({ open, onOpenChange, onImport, onImportArtifact }) {
13583
13602
  )
13584
13603
  ] }),
13585
13604
  /* @__PURE__ */ jsxs50("div", { children: [
13586
- /* @__PURE__ */ jsx78("label", { className: "block text-sm font-medium mb-2", children: "Theme content" }),
13587
- /* @__PURE__ */ jsx78(
13605
+ /* @__PURE__ */ jsx79("label", { className: "block text-sm font-medium mb-2", children: "Theme content" }),
13606
+ /* @__PURE__ */ jsx79(
13588
13607
  "textarea",
13589
13608
  {
13590
13609
  className: "w-full rounded-lg border border-input bg-background px-3 py-2 text-sm font-mono text-foreground placeholder:text-muted-foreground min-h-[300px] max-h-[400px] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:border-border/80",
@@ -13619,17 +13638,17 @@ function ImportModal({ open, onOpenChange, onImport, onImportArtifact }) {
13619
13638
  ] })
13620
13639
  ] }),
13621
13640
  /* @__PURE__ */ jsxs50("div", { className: "p-6 border-t border-border flex justify-end gap-2", children: [
13622
- /* @__PURE__ */ jsx78(
13641
+ /* @__PURE__ */ jsx79(
13623
13642
  Button,
13624
13643
  {
13625
13644
  variant: "icon",
13626
13645
  size: "md",
13627
13646
  onClick: () => onOpenChange(false),
13628
13647
  "aria-label": "Cancel",
13629
- children: /* @__PURE__ */ jsx78(X8, { className: "w-5 h-5" })
13648
+ children: /* @__PURE__ */ jsx79(X8, { className: "w-5 h-5" })
13630
13649
  }
13631
13650
  ),
13632
- /* @__PURE__ */ jsx78(
13651
+ /* @__PURE__ */ jsx79(
13633
13652
  Button,
13634
13653
  {
13635
13654
  variant: "icon",
@@ -13637,7 +13656,7 @@ function ImportModal({ open, onOpenChange, onImport, onImportArtifact }) {
13637
13656
  onClick: processImport,
13638
13657
  disabled: !canImport,
13639
13658
  "aria-label": "Import theme",
13640
- children: /* @__PURE__ */ jsx78(Check6, { className: "w-5 h-5" })
13659
+ children: /* @__PURE__ */ jsx79(Check6, { className: "w-5 h-5" })
13641
13660
  }
13642
13661
  )
13643
13662
  ] })
@@ -13647,7 +13666,7 @@ function ImportModal({ open, onOpenChange, onImport, onImportArtifact }) {
13647
13666
  __name(ImportModal, "ImportModal");
13648
13667
 
13649
13668
  // components/theme-customizer/index.tsx
13650
- import { Fragment as Fragment9, jsx as jsx79, jsxs as jsxs51 } from "react/jsx-runtime";
13669
+ import { Fragment as Fragment9, jsx as jsx80, jsxs as jsxs51 } from "react/jsx-runtime";
13651
13670
  function ThemeCustomizer({
13652
13671
  open,
13653
13672
  onOpenChange,
@@ -13663,12 +13682,12 @@ function ThemeCustomizer({
13663
13682
  hideLayoutSection = false
13664
13683
  }) {
13665
13684
  const { applyImportedTheme: applyImportedTheme2, isDarkMode, resetTheme: resetTheme2, applyRadius: applyRadius2, setBrandColorsValues, applyTheme } = useThemeManager();
13666
- const [internalTheme, setInternalTheme] = React44.useState("mindtris-ui");
13685
+ const [internalTheme, setInternalTheme] = React45.useState("mindtris-ui");
13667
13686
  const selectedTheme = selectedThemeProp ?? internalTheme;
13668
13687
  const setSelectedTheme = setSelectedThemeProp ?? setInternalTheme;
13669
- const [selectedRadius, setSelectedRadius] = React44.useState("0.5rem");
13670
- const [importModalOpen, setImportModalOpen] = React44.useState(false);
13671
- const [importedTheme, setImportedTheme] = React44.useState(null);
13688
+ const [selectedRadius, setSelectedRadius] = React45.useState("0.5rem");
13689
+ const [importModalOpen, setImportModalOpen] = React45.useState(false);
13690
+ const [importedTheme, setImportedTheme] = React45.useState(null);
13672
13691
  const handleReset = /* @__PURE__ */ __name(() => {
13673
13692
  setSelectedTheme("mindtris-ui");
13674
13693
  setSelectedRadius("0.5rem");
@@ -13682,14 +13701,14 @@ function ThemeCustomizer({
13682
13701
  setSelectedTheme("");
13683
13702
  applyImportedTheme2(themeData, isDarkMode);
13684
13703
  }, "handleImport");
13685
- React44.useEffect(() => {
13704
+ React45.useEffect(() => {
13686
13705
  if (importedTheme) {
13687
13706
  applyImportedTheme2(importedTheme, isDarkMode);
13688
13707
  } else if (selectedTheme) {
13689
13708
  applyTheme(selectedTheme, isDarkMode);
13690
13709
  }
13691
13710
  }, [isDarkMode, importedTheme, selectedTheme, applyImportedTheme2, applyTheme]);
13692
- React44.useEffect(() => {
13711
+ React45.useEffect(() => {
13693
13712
  if (importedTheme) {
13694
13713
  applyImportedTheme2(importedTheme, isDarkMode);
13695
13714
  } else {
@@ -13703,12 +13722,12 @@ function ThemeCustomizer({
13703
13722
  {
13704
13723
  className: inline ? "flex flex-col h-full" : "fixed inset-y-0 right-0 z-50 w-96 bg-card text-card-foreground border-l border-border shadow-lg flex flex-col",
13705
13724
  children: [
13706
- !hideHeader && /* @__PURE__ */ jsx79("div", { className: "p-4 border-b border-border", children: /* @__PURE__ */ jsxs51("div", { className: "flex items-center gap-2", children: [
13707
- /* @__PURE__ */ jsx79("div", { className: "p-2 bg-primary/10 rounded-lg", children: /* @__PURE__ */ jsx79(Settings, { className: "w-4 h-4 text-primary" }) }),
13708
- /* @__PURE__ */ jsx79("h2", { className: "text-lg font-semibold", children: "Customizer" }),
13725
+ !hideHeader && /* @__PURE__ */ jsx80("div", { className: "p-4 border-b border-border", children: /* @__PURE__ */ jsxs51("div", { className: "flex items-center gap-2", children: [
13726
+ /* @__PURE__ */ jsx80("div", { className: "p-2 bg-primary/10 rounded-lg", children: /* @__PURE__ */ jsx80(Settings, { className: "w-4 h-4 text-primary" }) }),
13727
+ /* @__PURE__ */ jsx80("h2", { className: "text-lg font-semibold", children: "Customizer" }),
13709
13728
  /* @__PURE__ */ jsxs51("div", { className: "ml-auto flex items-center gap-2", children: [
13710
- /* @__PURE__ */ jsx79(Button, { variant: "ghost", size: "sm", onClick: handleReset, children: "Reset" }),
13711
- !inline && /* @__PURE__ */ jsx79(
13729
+ /* @__PURE__ */ jsx80(Button, { variant: "ghost", size: "sm", onClick: handleReset, children: "Reset" }),
13730
+ !inline && /* @__PURE__ */ jsx80(
13712
13731
  Button,
13713
13732
  {
13714
13733
  variant: "ghost",
@@ -13717,13 +13736,13 @@ function ThemeCustomizer({
13717
13736
  className: "p-1.5",
13718
13737
  "aria-label": "Close",
13719
13738
  tooltip: "Close",
13720
- children: /* @__PURE__ */ jsx79(X9, { className: "w-4 h-4" })
13739
+ children: /* @__PURE__ */ jsx80(X9, { className: "w-4 h-4" })
13721
13740
  }
13722
13741
  )
13723
13742
  ] })
13724
13743
  ] }) }),
13725
13744
  /* @__PURE__ */ jsxs51("div", { className: "flex-1 overflow-y-auto min-h-0", children: [
13726
- sectionProp === "colors" && /* @__PURE__ */ jsx79(
13745
+ sectionProp === "colors" && /* @__PURE__ */ jsx80(
13727
13746
  ThemeTab,
13728
13747
  {
13729
13748
  selectedTheme,
@@ -13736,7 +13755,7 @@ function ThemeCustomizer({
13736
13755
  hidePreset: presetInHeader
13737
13756
  }
13738
13757
  ),
13739
- sectionProp === "others" && /* @__PURE__ */ jsx79("div", { className: "px-3 pt-2 pb-4", children: /* @__PURE__ */ jsx79(
13758
+ sectionProp === "others" && /* @__PURE__ */ jsx80("div", { className: "px-3 pt-2 pb-4", children: /* @__PURE__ */ jsx80(
13740
13759
  OtherPanel,
13741
13760
  {
13742
13761
  selectedRadius,
@@ -13748,7 +13767,7 @@ function ThemeCustomizer({
13748
13767
  }
13749
13768
  ) }),
13750
13769
  !sectionProp && /* @__PURE__ */ jsxs51(Fragment9, { children: [
13751
- /* @__PURE__ */ jsx79(
13770
+ /* @__PURE__ */ jsx80(
13752
13771
  ThemeTab,
13753
13772
  {
13754
13773
  selectedTheme,
@@ -13760,8 +13779,8 @@ function ThemeCustomizer({
13760
13779
  variant: "full"
13761
13780
  }
13762
13781
  ),
13763
- /* @__PURE__ */ jsx79("div", { className: "border-t border-border" }),
13764
- /* @__PURE__ */ jsx79(
13782
+ /* @__PURE__ */ jsx80("div", { className: "border-t border-border" }),
13783
+ /* @__PURE__ */ jsx80(
13765
13784
  LayoutTab,
13766
13785
  {
13767
13786
  sidebarConfig,
@@ -13775,14 +13794,14 @@ function ThemeCustomizer({
13775
13794
  );
13776
13795
  return /* @__PURE__ */ jsxs51(Fragment9, { children: [
13777
13796
  content,
13778
- !inline && /* @__PURE__ */ jsx79(
13797
+ !inline && /* @__PURE__ */ jsx80(
13779
13798
  "div",
13780
13799
  {
13781
13800
  className: "fixed inset-0 bg-foreground/20 z-40",
13782
13801
  onClick: () => onOpenChange(false)
13783
13802
  }
13784
13803
  ),
13785
- !hideImportInOthers && /* @__PURE__ */ jsx79(
13804
+ !hideImportInOthers && /* @__PURE__ */ jsx80(
13786
13805
  ImportModal,
13787
13806
  {
13788
13807
  open: importModalOpen,
@@ -13795,7 +13814,7 @@ function ThemeCustomizer({
13795
13814
  __name(ThemeCustomizer, "ThemeCustomizer");
13796
13815
 
13797
13816
  // components/theme-customizer/typography-panel.tsx
13798
- import React45 from "react";
13817
+ import React46 from "react";
13799
13818
 
13800
13819
  // theme/google-fonts.ts
13801
13820
  var GOOGLE_FONTS_MAP = {
@@ -13910,7 +13929,7 @@ function loadGoogleFontsForFontValue(value) {
13910
13929
  __name(loadGoogleFontsForFontValue, "loadGoogleFontsForFontValue");
13911
13930
 
13912
13931
  // components/theme-customizer/typography-panel.tsx
13913
- import { jsx as jsx80, jsxs as jsxs52 } from "react/jsx-runtime";
13932
+ import { jsx as jsx81, jsxs as jsxs52 } from "react/jsx-runtime";
13914
13933
  function getComputedTypography() {
13915
13934
  if (typeof document === "undefined") return {};
13916
13935
  const root = document.documentElement;
@@ -13925,11 +13944,11 @@ function getComputedTypography() {
13925
13944
  __name(getComputedTypography, "getComputedTypography");
13926
13945
  function TypographyPanel() {
13927
13946
  const { handleColorChange: handleColorChange2 } = useThemeManager();
13928
- const [values, setValues] = React45.useState({});
13929
- const [fontOpen, setFontOpen] = React45.useState(true);
13930
- const [letterOpen, setLetterOpen] = React45.useState(true);
13931
- const [loadingFonts, setLoadingFonts] = React45.useState({});
13932
- React45.useEffect(() => {
13947
+ const [values, setValues] = React46.useState({});
13948
+ const [fontOpen, setFontOpen] = React46.useState(true);
13949
+ const [letterOpen, setLetterOpen] = React46.useState(true);
13950
+ const [loadingFonts, setLoadingFonts] = React46.useState({});
13951
+ React46.useEffect(() => {
13933
13952
  setValues(getComputedTypography());
13934
13953
  }, []);
13935
13954
  const handleChange = /* @__PURE__ */ __name(async (cssVar, value) => {
@@ -13949,16 +13968,16 @@ function TypographyPanel() {
13949
13968
  return /* @__PURE__ */ jsxs52("div", { className: "space-y-4 pt-5 pb-2", children: [
13950
13969
  /* @__PURE__ */ jsxs52("p", { className: "text-xs text-muted-foreground px-0", children: [
13951
13970
  "Fonts use the theme preset and can load from Google Fonts when selected. Letter spacing uses ",
13952
- /* @__PURE__ */ jsx80("code", { className: "text-xs", children: "--tracking-normal" }),
13971
+ /* @__PURE__ */ jsx81("code", { className: "text-xs", children: "--tracking-normal" }),
13953
13972
  "."
13954
13973
  ] }),
13955
- /* @__PURE__ */ jsx80(CollapsibleSection, { title: "Font Family", open: fontOpen, onToggle: () => setFontOpen((o) => !o), children: /* @__PURE__ */ jsxs52("div", { className: "space-y-3 pt-2", children: [
13974
+ /* @__PURE__ */ jsx81(CollapsibleSection, { title: "Font Family", open: fontOpen, onToggle: () => setFontOpen((o) => !o), children: /* @__PURE__ */ jsxs52("div", { className: "space-y-3 pt-2", children: [
13956
13975
  /* @__PURE__ */ jsxs52("div", { children: [
13957
13976
  /* @__PURE__ */ jsxs52("div", { className: "flex items-center justify-between mb-1.5", children: [
13958
- /* @__PURE__ */ jsx80("label", { className: "block text-xs font-medium text-muted-foreground", children: "Sans-serif font" }),
13959
- loadingFonts["--font-sans"] && /* @__PURE__ */ jsx80("span", { className: "text-xs text-muted-foreground", children: "Loading..." })
13977
+ /* @__PURE__ */ jsx81("label", { className: "block text-xs font-medium text-muted-foreground", children: "Sans-serif font" }),
13978
+ loadingFonts["--font-sans"] && /* @__PURE__ */ jsx81("span", { className: "text-xs text-muted-foreground", children: "Loading..." })
13960
13979
  ] }),
13961
- /* @__PURE__ */ jsx80(
13980
+ /* @__PURE__ */ jsx81(
13962
13981
  ClassicDropdown,
13963
13982
  {
13964
13983
  ariaLabel: "Sans-Serif Font",
@@ -13971,10 +13990,10 @@ function TypographyPanel() {
13971
13990
  ] }),
13972
13991
  /* @__PURE__ */ jsxs52("div", { children: [
13973
13992
  /* @__PURE__ */ jsxs52("div", { className: "flex items-center justify-between mb-1.5", children: [
13974
- /* @__PURE__ */ jsx80("label", { className: "block text-xs font-medium text-muted-foreground", children: "Serif font" }),
13975
- loadingFonts["--font-serif"] && /* @__PURE__ */ jsx80("span", { className: "text-xs text-muted-foreground", children: "Loading..." })
13993
+ /* @__PURE__ */ jsx81("label", { className: "block text-xs font-medium text-muted-foreground", children: "Serif font" }),
13994
+ loadingFonts["--font-serif"] && /* @__PURE__ */ jsx81("span", { className: "text-xs text-muted-foreground", children: "Loading..." })
13976
13995
  ] }),
13977
- /* @__PURE__ */ jsx80(
13996
+ /* @__PURE__ */ jsx81(
13978
13997
  ClassicDropdown,
13979
13998
  {
13980
13999
  ariaLabel: "Serif Font",
@@ -13990,10 +14009,10 @@ function TypographyPanel() {
13990
14009
  ] }),
13991
14010
  /* @__PURE__ */ jsxs52("div", { children: [
13992
14011
  /* @__PURE__ */ jsxs52("div", { className: "flex items-center justify-between mb-1.5", children: [
13993
- /* @__PURE__ */ jsx80("label", { className: "block text-xs font-medium text-muted-foreground", children: "Monospace Font" }),
13994
- loadingFonts["--font-mono"] && /* @__PURE__ */ jsx80("span", { className: "text-xs text-muted-foreground", children: "Loading..." })
14012
+ /* @__PURE__ */ jsx81("label", { className: "block text-xs font-medium text-muted-foreground", children: "Monospace Font" }),
14013
+ loadingFonts["--font-mono"] && /* @__PURE__ */ jsx81("span", { className: "text-xs text-muted-foreground", children: "Loading..." })
13995
14014
  ] }),
13996
- /* @__PURE__ */ jsx80(
14015
+ /* @__PURE__ */ jsx81(
13997
14016
  ClassicDropdown,
13998
14017
  {
13999
14018
  ariaLabel: "Monospace Font",
@@ -14005,9 +14024,9 @@ function TypographyPanel() {
14005
14024
  )
14006
14025
  ] })
14007
14026
  ] }) }),
14008
- /* @__PURE__ */ jsx80(CollapsibleSection, { title: "Letter spacing", open: letterOpen, onToggle: () => setLetterOpen((o) => !o), children: /* @__PURE__ */ jsxs52("div", { className: "pt-2", children: [
14009
- /* @__PURE__ */ jsx80("label", { className: "block text-xs font-medium text-muted-foreground mb-1.5", children: "Letter spacing (em) \u2014 CSS var: --tracking-normal" }),
14010
- /* @__PURE__ */ jsx80(
14027
+ /* @__PURE__ */ jsx81(CollapsibleSection, { title: "Letter spacing", open: letterOpen, onToggle: () => setLetterOpen((o) => !o), children: /* @__PURE__ */ jsxs52("div", { className: "pt-2", children: [
14028
+ /* @__PURE__ */ jsx81("label", { className: "block text-xs font-medium text-muted-foreground mb-1.5", children: "Letter spacing (em) \u2014 CSS var: --tracking-normal" }),
14029
+ /* @__PURE__ */ jsx81(
14011
14030
  Input,
14012
14031
  {
14013
14032
  type: "text",
@@ -14023,7 +14042,7 @@ function TypographyPanel() {
14023
14042
  __name(TypographyPanel, "TypographyPanel");
14024
14043
 
14025
14044
  // layout-primitives.tsx
14026
- import { jsx as jsx81, jsxs as jsxs53 } from "react/jsx-runtime";
14045
+ import { jsx as jsx82, jsxs as jsxs53 } from "react/jsx-runtime";
14027
14046
  var maxWidthClasses = {
14028
14047
  sm: "max-w-screen-sm",
14029
14048
  md: "max-w-screen-md",
@@ -14047,7 +14066,7 @@ function Container({
14047
14066
  className,
14048
14067
  ...props
14049
14068
  }) {
14050
- return /* @__PURE__ */ jsx81(
14069
+ return /* @__PURE__ */ jsx82(
14051
14070
  "div",
14052
14071
  {
14053
14072
  className: cn(
@@ -14072,10 +14091,10 @@ function Page({
14072
14091
  className,
14073
14092
  ...props
14074
14093
  }) {
14075
- return /* @__PURE__ */ jsx81("div", { className: cn("min-h-screen", className), ...props, children: /* @__PURE__ */ jsxs53(Container, { maxWidth, padding, children: [
14094
+ return /* @__PURE__ */ jsx82("div", { className: cn("min-h-screen", className), ...props, children: /* @__PURE__ */ jsxs53(Container, { maxWidth, padding, children: [
14076
14095
  (title || description) && /* @__PURE__ */ jsxs53("div", { className: "mb-8", children: [
14077
- title && /* @__PURE__ */ jsx81("h1", { className: "text-2xl md:text-3xl font-bold text-foreground mb-2", children: title }),
14078
- description && /* @__PURE__ */ jsx81("p", { className: "text-muted-foreground", children: description })
14096
+ title && /* @__PURE__ */ jsx82("h1", { className: "text-2xl md:text-3xl font-bold text-foreground mb-2", children: title }),
14097
+ description && /* @__PURE__ */ jsx82("p", { className: "text-muted-foreground", children: description })
14079
14098
  ] }),
14080
14099
  children
14081
14100
  ] }) });
@@ -14090,10 +14109,10 @@ function Section({
14090
14109
  className,
14091
14110
  ...props
14092
14111
  }) {
14093
- return /* @__PURE__ */ jsx81("section", { className: cn("py-8 md:py-12", className), ...props, children: /* @__PURE__ */ jsxs53(Container, { maxWidth, padding, children: [
14112
+ return /* @__PURE__ */ jsx82("section", { className: cn("py-8 md:py-12", className), ...props, children: /* @__PURE__ */ jsxs53(Container, { maxWidth, padding, children: [
14094
14113
  (title || description) && /* @__PURE__ */ jsxs53("div", { className: "mb-6", children: [
14095
- title && /* @__PURE__ */ jsx81("h2", { className: "text-xl md:text-2xl font-bold text-foreground mb-2", children: title }),
14096
- description && /* @__PURE__ */ jsx81("p", { className: "text-muted-foreground", children: description })
14114
+ title && /* @__PURE__ */ jsx82("h2", { className: "text-xl md:text-2xl font-bold text-foreground mb-2", children: title }),
14115
+ description && /* @__PURE__ */ jsx82("p", { className: "text-muted-foreground", children: description })
14097
14116
  ] }),
14098
14117
  children
14099
14118
  ] }) });
@@ -14118,7 +14137,7 @@ function Grid({
14118
14137
  const colsClass = `grid-cols-${cols}`;
14119
14138
  const colsSmClass = colsSm ? `sm:grid-cols-${colsSm}` : "";
14120
14139
  const colsMdClass = colsMd ? `md:grid-cols-${colsMd}` : "";
14121
- return /* @__PURE__ */ jsx81(
14140
+ return /* @__PURE__ */ jsx82(
14122
14141
  "div",
14123
14142
  {
14124
14143
  className: cn(
@@ -14159,7 +14178,7 @@ function Stack({
14159
14178
  around: "justify-around",
14160
14179
  evenly: "justify-evenly"
14161
14180
  };
14162
- return /* @__PURE__ */ jsx81(
14181
+ return /* @__PURE__ */ jsx82(
14163
14182
  "div",
14164
14183
  {
14165
14184
  className: cn(
@@ -14181,8 +14200,8 @@ __name(Stack, "Stack");
14181
14200
  // blocks/header/header-block.tsx
14182
14201
  import { useState as useState22, useEffect as useEffect15 } from "react";
14183
14202
  import { Menu as Menu3, ChevronDown as ChevronDown8 } from "lucide-react";
14184
- import { jsx as jsx82, jsxs as jsxs54 } from "react/jsx-runtime";
14185
- var DefaultLink = /* @__PURE__ */ __name(({ href, className, children, onClick }) => /* @__PURE__ */ jsx82("a", { href, className, onClick, children }), "DefaultLink");
14203
+ import { jsx as jsx83, jsxs as jsxs54 } from "react/jsx-runtime";
14204
+ var DefaultLink = /* @__PURE__ */ __name(({ href, className, children, onClick }) => /* @__PURE__ */ jsx83("a", { href, className, onClick, children }), "DefaultLink");
14186
14205
  function HeaderBlock({
14187
14206
  data,
14188
14207
  slots = {},
@@ -14191,7 +14210,7 @@ function HeaderBlock({
14191
14210
  }) {
14192
14211
  const [isScrolled, setIsScrolled] = useState22(false);
14193
14212
  const LinkComponent = slots.linkComponent || DefaultLink;
14194
- const LogoComponent = slots.logo || /* @__PURE__ */ jsx82(Logo, {});
14213
+ const LogoComponent = slots.logo || /* @__PURE__ */ jsx83(Logo, {});
14195
14214
  useEffect15(() => {
14196
14215
  const handleScroll = /* @__PURE__ */ __name(() => {
14197
14216
  setIsScrolled(window.scrollY > 0);
@@ -14204,20 +14223,20 @@ function HeaderBlock({
14204
14223
  return /* @__PURE__ */ jsxs54(DropdownMenu, { children: [
14205
14224
  /* @__PURE__ */ jsxs54(DropdownMenuTrigger, { className: "flex items-center gap-1 px-3 py-2 text-sm font-medium text-muted-foreground hover:text-foreground transition-colors outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-md", children: [
14206
14225
  item.title,
14207
- /* @__PURE__ */ jsx82(ChevronDown8, { className: "w-4 h-4" })
14226
+ /* @__PURE__ */ jsx83(ChevronDown8, { className: "w-4 h-4" })
14208
14227
  ] }),
14209
- /* @__PURE__ */ jsx82(DropdownMenuContent, { align: "start", className: "w-56", children: item.children.map((child) => {
14228
+ /* @__PURE__ */ jsx83(DropdownMenuContent, { align: "start", className: "w-56", children: item.children.map((child) => {
14210
14229
  if (child.type === "dropdown") {
14211
14230
  return /* @__PURE__ */ jsxs54(DropdownMenuSub, { children: [
14212
- /* @__PURE__ */ jsx82(DropdownMenuSubTrigger, { children: child.title }),
14213
- /* @__PURE__ */ jsx82(DropdownMenuSubContent, { children: child.children?.map((sub) => /* @__PURE__ */ jsx82(DropdownMenuItem, { asChild: true, children: /* @__PURE__ */ jsx82(LinkComponent, { href: sub.href || "#", className: "cursor-pointer w-full", children: sub.title }) }, sub.id)) })
14231
+ /* @__PURE__ */ jsx83(DropdownMenuSubTrigger, { children: child.title }),
14232
+ /* @__PURE__ */ jsx83(DropdownMenuSubContent, { children: child.children?.map((sub) => /* @__PURE__ */ jsx83(DropdownMenuItem, { asChild: true, children: /* @__PURE__ */ jsx83(LinkComponent, { href: sub.href || "#", className: "cursor-pointer w-full", children: sub.title }) }, sub.id)) })
14214
14233
  ] }, child.id);
14215
14234
  }
14216
- return /* @__PURE__ */ jsx82(DropdownMenuItem, { asChild: true, children: /* @__PURE__ */ jsx82(LinkComponent, { href: child.href || "#", className: "cursor-pointer w-full", children: child.title }) }, child.id);
14235
+ return /* @__PURE__ */ jsx83(DropdownMenuItem, { asChild: true, children: /* @__PURE__ */ jsx83(LinkComponent, { href: child.href || "#", className: "cursor-pointer w-full", children: child.title }) }, child.id);
14217
14236
  }) })
14218
14237
  ] }, item.id);
14219
14238
  }
14220
- return /* @__PURE__ */ jsx82(
14239
+ return /* @__PURE__ */ jsx83(
14221
14240
  LinkComponent,
14222
14241
  {
14223
14242
  href: item.href || "#",
@@ -14227,7 +14246,7 @@ function HeaderBlock({
14227
14246
  item.id
14228
14247
  );
14229
14248
  }, "renderDesktopMenuItem");
14230
- return /* @__PURE__ */ jsx82(
14249
+ return /* @__PURE__ */ jsx83(
14231
14250
  "header",
14232
14251
  {
14233
14252
  className: cn(
@@ -14235,7 +14254,7 @@ function HeaderBlock({
14235
14254
  sticky ? "fixed top-0 md:top-6" : "relative",
14236
14255
  className
14237
14256
  ),
14238
- children: /* @__PURE__ */ jsx82(Container, { children: /* @__PURE__ */ jsxs54(
14257
+ children: /* @__PURE__ */ jsx83(Container, { children: /* @__PURE__ */ jsxs54(
14239
14258
  "div",
14240
14259
  {
14241
14260
  className: cn(
@@ -14244,27 +14263,27 @@ function HeaderBlock({
14244
14263
  "bg-background/80 backdrop-blur-md rounded-2xl border border-border/50 shadow-sm"
14245
14264
  ),
14246
14265
  children: [
14247
- /* @__PURE__ */ jsx82("div", { className: "flex items-center shrink-0", children: LogoComponent }),
14248
- /* @__PURE__ */ jsx82("nav", { className: "hidden md:flex md:gap-1 lg:gap-2", children: data.items.map(renderDesktopMenuItem) }),
14266
+ /* @__PURE__ */ jsx83("div", { className: "flex items-center shrink-0", children: LogoComponent }),
14267
+ /* @__PURE__ */ jsx83("nav", { className: "hidden md:flex md:gap-1 lg:gap-2", children: data.items.map(renderDesktopMenuItem) }),
14249
14268
  /* @__PURE__ */ jsxs54("div", { className: "flex items-center gap-3", children: [
14250
14269
  slots.rightActionSlot,
14251
- /* @__PURE__ */ jsx82("div", { className: "hidden md:flex gap-3", children: data.ctaItems?.map((cta, idx) => /* @__PURE__ */ jsx82(
14270
+ /* @__PURE__ */ jsx83("div", { className: "hidden md:flex gap-3", children: data.ctaItems?.map((cta, idx) => /* @__PURE__ */ jsx83(
14252
14271
  Button,
14253
14272
  {
14254
14273
  variant: cta.variant || (cta.type === "primary" ? "primary" : "ghost"),
14255
14274
  size: "sm",
14256
14275
  fullWidth: false,
14257
- render: /* @__PURE__ */ jsx82(LinkComponent, { href: cta.href, children: cta.title }),
14276
+ render: /* @__PURE__ */ jsx83(LinkComponent, { href: cta.href, children: cta.title }),
14258
14277
  children: cta.title
14259
14278
  },
14260
14279
  idx
14261
14280
  )) }),
14262
- /* @__PURE__ */ jsx82("div", { className: "md:hidden", children: /* @__PURE__ */ jsxs54(Sheet, { children: [
14263
- /* @__PURE__ */ jsx82(SheetTrigger, { asChild: true, children: /* @__PURE__ */ jsx82("button", { className: "p-2 text-muted-foreground hover:text-foreground", children: slots.menuIcon || /* @__PURE__ */ jsx82(Menu3, { className: "w-5 h-5" }) }) }),
14281
+ /* @__PURE__ */ jsx83("div", { className: "md:hidden", children: /* @__PURE__ */ jsxs54(Sheet, { children: [
14282
+ /* @__PURE__ */ jsx83(SheetTrigger, { asChild: true, children: /* @__PURE__ */ jsx83("button", { className: "p-2 text-muted-foreground hover:text-foreground", children: slots.menuIcon || /* @__PURE__ */ jsx83(Menu3, { className: "w-5 h-5" }) }) }),
14264
14283
  /* @__PURE__ */ jsxs54(SheetContent, { side: "right", className: "w-[300px] sm:w-[400px]", children: [
14265
- /* @__PURE__ */ jsx82(SheetHeader, { className: "px-1 text-left", children: /* @__PURE__ */ jsx82(SheetTitle, { className: "text-lg font-bold", children: "Menu" }) }),
14284
+ /* @__PURE__ */ jsx83(SheetHeader, { className: "px-1 text-left", children: /* @__PURE__ */ jsx83(SheetTitle, { className: "text-lg font-bold", children: "Menu" }) }),
14266
14285
  /* @__PURE__ */ jsxs54("div", { className: "flex flex-col gap-6 mt-6 overflow-y-auto", children: [
14267
- /* @__PURE__ */ jsx82("nav", { className: "flex flex-col space-y-4", children: data.items.map((item) => /* @__PURE__ */ jsx82("div", { className: "flex flex-col gap-2", children: item.type === "link" ? /* @__PURE__ */ jsx82(SheetClose, { asChild: true, children: /* @__PURE__ */ jsx82(
14286
+ /* @__PURE__ */ jsx83("nav", { className: "flex flex-col space-y-4", children: data.items.map((item) => /* @__PURE__ */ jsx83("div", { className: "flex flex-col gap-2", children: item.type === "link" ? /* @__PURE__ */ jsx83(SheetClose, { asChild: true, children: /* @__PURE__ */ jsx83(
14268
14287
  LinkComponent,
14269
14288
  {
14270
14289
  href: item.href || "#",
@@ -14272,8 +14291,8 @@ function HeaderBlock({
14272
14291
  children: item.title
14273
14292
  }
14274
14293
  ) }) : /* @__PURE__ */ jsxs54("div", { className: "flex flex-col gap-2", children: [
14275
- /* @__PURE__ */ jsx82("span", { className: "text-sm font-semibold text-muted-foreground uppercase tracking-wide", children: item.title }),
14276
- /* @__PURE__ */ jsx82("div", { className: "pl-4 flex flex-col gap-2 border-l border-border ml-1", children: item.children?.map((child) => /* @__PURE__ */ jsx82(SheetClose, { asChild: true, children: /* @__PURE__ */ jsx82(
14294
+ /* @__PURE__ */ jsx83("span", { className: "text-sm font-semibold text-muted-foreground uppercase tracking-wide", children: item.title }),
14295
+ /* @__PURE__ */ jsx83("div", { className: "pl-4 flex flex-col gap-2 border-l border-border ml-1", children: item.children?.map((child) => /* @__PURE__ */ jsx83(SheetClose, { asChild: true, children: /* @__PURE__ */ jsx83(
14277
14296
  LinkComponent,
14278
14297
  {
14279
14298
  href: child.href || "#",
@@ -14282,12 +14301,12 @@ function HeaderBlock({
14282
14301
  }
14283
14302
  ) }, child.id)) })
14284
14303
  ] }) }, item.id)) }),
14285
- /* @__PURE__ */ jsx82("div", { className: "flex flex-col gap-3 pt-4 border-t border-border", children: data.ctaItems?.map((cta, idx) => /* @__PURE__ */ jsx82(SheetClose, { asChild: true, children: /* @__PURE__ */ jsx82(
14304
+ /* @__PURE__ */ jsx83("div", { className: "flex flex-col gap-3 pt-4 border-t border-border", children: data.ctaItems?.map((cta, idx) => /* @__PURE__ */ jsx83(SheetClose, { asChild: true, children: /* @__PURE__ */ jsx83(
14286
14305
  Button,
14287
14306
  {
14288
14307
  variant: cta.variant || "primary",
14289
14308
  fullWidth: true,
14290
- render: /* @__PURE__ */ jsx82(LinkComponent, { href: cta.href, children: cta.title }),
14309
+ render: /* @__PURE__ */ jsx83(LinkComponent, { href: cta.href, children: cta.title }),
14291
14310
  children: cta.title
14292
14311
  }
14293
14312
  ) }, idx)) })
@@ -14304,29 +14323,29 @@ function HeaderBlock({
14304
14323
  __name(HeaderBlock, "HeaderBlock");
14305
14324
 
14306
14325
  // blocks/footer/footer-block.tsx
14307
- import React47 from "react";
14326
+ import React48 from "react";
14308
14327
  import { Twitter, Instagram, Facebook, Youtube, Linkedin, Hash, Github } from "lucide-react";
14309
- import { jsx as jsx83, jsxs as jsxs55 } from "react/jsx-runtime";
14310
- var DefaultLink2 = /* @__PURE__ */ __name(({ href, className, children, target, rel }) => /* @__PURE__ */ jsx83("a", { href, className, target, rel, children }), "DefaultLink");
14328
+ import { jsx as jsx84, jsxs as jsxs55 } from "react/jsx-runtime";
14329
+ var DefaultLink2 = /* @__PURE__ */ __name(({ href, className, children, target, rel }) => /* @__PURE__ */ jsx84("a", { href, className, target, rel, children }), "DefaultLink");
14311
14330
  function SocialIconRenderer({ icon }) {
14312
- if (React47.isValidElement(icon)) return icon;
14331
+ if (React48.isValidElement(icon)) return icon;
14313
14332
  const props = { size: 24, className: "w-5 h-5" };
14314
14333
  switch (icon) {
14315
14334
  case "twitter":
14316
- return /* @__PURE__ */ jsx83(Twitter, { ...props });
14335
+ return /* @__PURE__ */ jsx84(Twitter, { ...props });
14317
14336
  case "instagram":
14318
- return /* @__PURE__ */ jsx83(Instagram, { ...props });
14337
+ return /* @__PURE__ */ jsx84(Instagram, { ...props });
14319
14338
  case "facebook":
14320
- return /* @__PURE__ */ jsx83(Facebook, { ...props });
14339
+ return /* @__PURE__ */ jsx84(Facebook, { ...props });
14321
14340
  case "youtube":
14322
- return /* @__PURE__ */ jsx83(Youtube, { ...props });
14341
+ return /* @__PURE__ */ jsx84(Youtube, { ...props });
14323
14342
  case "linkedin":
14324
- return /* @__PURE__ */ jsx83(Linkedin, { ...props });
14343
+ return /* @__PURE__ */ jsx84(Linkedin, { ...props });
14325
14344
  case "github":
14326
- return /* @__PURE__ */ jsx83(Github, { ...props });
14345
+ return /* @__PURE__ */ jsx84(Github, { ...props });
14327
14346
  // Added github
14328
14347
  case "threads":
14329
- return /* @__PURE__ */ jsx83(Hash, { ...props });
14348
+ return /* @__PURE__ */ jsx84(Hash, { ...props });
14330
14349
  default:
14331
14350
  return null;
14332
14351
  }
@@ -14339,10 +14358,10 @@ function FooterBlock({
14339
14358
  border = false
14340
14359
  }) {
14341
14360
  const LinkComponent = slots.linkComponent || DefaultLink2;
14342
- const LogoComponent = slots.logo || /* @__PURE__ */ jsx83(Logo, {});
14361
+ const LogoComponent = slots.logo || /* @__PURE__ */ jsx84(Logo, {});
14343
14362
  const { branding, columns, social, legal } = data;
14344
14363
  return /* @__PURE__ */ jsxs55("footer", { className: cn("bg-background text-foreground", className), children: [
14345
- /* @__PURE__ */ jsx83(Container, { children: /* @__PURE__ */ jsxs55(
14364
+ /* @__PURE__ */ jsx84(Container, { children: /* @__PURE__ */ jsxs55(
14346
14365
  "div",
14347
14366
  {
14348
14367
  className: cn(
@@ -14351,7 +14370,7 @@ function FooterBlock({
14351
14370
  ),
14352
14371
  children: [
14353
14372
  /* @__PURE__ */ jsxs55("div", { className: "space-y-4 sm:col-span-12 lg:col-span-4", children: [
14354
- /* @__PURE__ */ jsx83("div", { className: "-ml-3 flex items-center", children: LogoComponent }),
14373
+ /* @__PURE__ */ jsx84("div", { className: "-ml-3 flex items-center", children: LogoComponent }),
14355
14374
  /* @__PURE__ */ jsxs55("div", { className: "text-sm text-muted-foreground", children: [
14356
14375
  "\xA9 ",
14357
14376
  (/* @__PURE__ */ new Date()).getFullYear(),
@@ -14359,7 +14378,7 @@ function FooterBlock({
14359
14378
  branding.brandName,
14360
14379
  " by",
14361
14380
  " ",
14362
- branding.brandUrl ? /* @__PURE__ */ jsx83(
14381
+ branding.brandUrl ? /* @__PURE__ */ jsx84(
14363
14382
  LinkComponent,
14364
14383
  {
14365
14384
  href: branding.brandUrl,
@@ -14367,18 +14386,18 @@ function FooterBlock({
14367
14386
  target: "_blank",
14368
14387
  children: branding.brandName
14369
14388
  }
14370
- ) : /* @__PURE__ */ jsx83("span", { className: "font-medium", children: branding.brandName }),
14389
+ ) : /* @__PURE__ */ jsx84("span", { className: "font-medium", children: branding.brandName }),
14371
14390
  ". ",
14372
14391
  branding.copyrightText
14373
14392
  ] }),
14374
- legal && legal.length > 0 && /* @__PURE__ */ jsx83("div", { className: "text-sm text-muted-foreground flex flex-wrap gap-2", children: legal.map((item, index) => /* @__PURE__ */ jsxs55("span", { className: "flex items-center gap-2", children: [
14375
- /* @__PURE__ */ jsx83(LinkComponent, { href: item.href, className: "hover:text-foreground transition-colors", children: item.title }),
14376
- index < legal.length - 1 && /* @__PURE__ */ jsx83("span", { className: "opacity-50", children: "|" })
14393
+ legal && legal.length > 0 && /* @__PURE__ */ jsx84("div", { className: "text-sm text-muted-foreground flex flex-wrap gap-2", children: legal.map((item, index) => /* @__PURE__ */ jsxs55("span", { className: "flex items-center gap-2", children: [
14394
+ /* @__PURE__ */ jsx84(LinkComponent, { href: item.href, className: "hover:text-foreground transition-colors", children: item.title }),
14395
+ index < legal.length - 1 && /* @__PURE__ */ jsx84("span", { className: "opacity-50", children: "|" })
14377
14396
  ] }, index)) })
14378
14397
  ] }),
14379
14398
  columns.map((col, idx) => /* @__PURE__ */ jsxs55("div", { className: "space-y-3 sm:col-span-6 md:col-span-3 lg:col-span-2", children: [
14380
- /* @__PURE__ */ jsx83("h3", { className: "text-sm font-semibold tracking-wider uppercase text-foreground", children: col.title }),
14381
- /* @__PURE__ */ jsx83("ul", { className: "space-y-2.5 text-sm", children: col.links.map((link, lIdx) => /* @__PURE__ */ jsx83("li", { children: /* @__PURE__ */ jsx83(
14399
+ /* @__PURE__ */ jsx84("h3", { className: "text-sm font-semibold tracking-wider uppercase text-foreground", children: col.title }),
14400
+ /* @__PURE__ */ jsx84("ul", { className: "space-y-2.5 text-sm", children: col.links.map((link, lIdx) => /* @__PURE__ */ jsx84("li", { children: /* @__PURE__ */ jsx84(
14382
14401
  LinkComponent,
14383
14402
  {
14384
14403
  href: link.href,
@@ -14388,8 +14407,8 @@ function FooterBlock({
14388
14407
  ) }, lIdx)) })
14389
14408
  ] }, idx)),
14390
14409
  /* @__PURE__ */ jsxs55("div", { className: "space-y-3 sm:col-span-6 md:col-span-3 lg:col-span-2", children: [
14391
- /* @__PURE__ */ jsx83("h3", { className: "text-sm font-semibold tracking-wider uppercase text-foreground", children: "Social" }),
14392
- social && /* @__PURE__ */ jsx83("ul", { className: "flex flex-wrap gap-3 items-center", children: social.map((item, idx) => /* @__PURE__ */ jsx83("li", { children: /* @__PURE__ */ jsx83(
14410
+ /* @__PURE__ */ jsx84("h3", { className: "text-sm font-semibold tracking-wider uppercase text-foreground", children: "Social" }),
14411
+ social && /* @__PURE__ */ jsx84("ul", { className: "flex flex-wrap gap-3 items-center", children: social.map((item, idx) => /* @__PURE__ */ jsx84("li", { children: /* @__PURE__ */ jsx84(
14393
14412
  LinkComponent,
14394
14413
  {
14395
14414
  href: item.href,
@@ -14397,14 +14416,14 @@ function FooterBlock({
14397
14416
  target: "_blank",
14398
14417
  rel: "noopener noreferrer",
14399
14418
  "aria-label": item.name,
14400
- children: /* @__PURE__ */ jsx83(SocialIconRenderer, { icon: item.icon })
14419
+ children: /* @__PURE__ */ jsx84(SocialIconRenderer, { icon: item.icon })
14401
14420
  }
14402
14421
  ) }, idx)) })
14403
14422
  ] })
14404
14423
  ]
14405
14424
  }
14406
14425
  ) }),
14407
- slots.bottomIllustration && /* @__PURE__ */ jsx83("div", { className: "w-full overflow-hidden", "aria-hidden": "true", children: slots.bottomIllustration })
14426
+ slots.bottomIllustration && /* @__PURE__ */ jsx84("div", { className: "w-full overflow-hidden", "aria-hidden": "true", children: slots.bottomIllustration })
14408
14427
  ] });
14409
14428
  }
14410
14429
  __name(FooterBlock, "FooterBlock");
@@ -14539,6 +14558,7 @@ export {
14539
14558
  Empty,
14540
14559
  ErrorBoundary,
14541
14560
  ErrorFallback,
14561
+ ErrorMessage,
14542
14562
  Field,
14543
14563
  FileInput,
14544
14564
  FooterBlock,