@noya-app/noya-designsystem 0.1.58 → 0.1.60

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
@@ -219,7 +219,8 @@ import { useEffect as useEffect2, useState as useState5 } from "react";
219
219
  import { useEffect as useEffect3, useRef as useRef4 } from "react";
220
220
 
221
221
  // ../noya-react-utils/src/hooks/useIsomorphicLayoutEffect.ts
222
- import { useEffect as useEffect4, useLayoutEffect } from "react";
222
+ import * as React5 from "react";
223
+ var useIsomorphicLayoutEffect = typeof window !== "undefined" ? React5.useLayoutEffect : React5.useEffect;
223
224
 
224
225
  // ../noya-react-utils/src/hooks/useLateReference.ts
225
226
  import { useCallback as useCallback5, useLayoutEffect as useLayoutEffect2, useRef as useRef5 } from "react";
@@ -296,12 +297,12 @@ import { isShallowEqual } from "@noya-app/noya-utils";
296
297
  import { useRef as useRef7 } from "react";
297
298
 
298
299
  // ../noya-react-utils/src/hooks/useStableCallback.ts
299
- import { useCallback as useCallback9, useLayoutEffect as useLayoutEffect3, useRef as useRef8 } from "react";
300
+ import { useCallback as useCallback9, useRef as useRef8 } from "react";
300
301
  var noop2 = () => {
301
302
  };
302
303
  function useStableCallback(callback) {
303
304
  const callbackRef = useRef8(callback || noop2);
304
- useLayoutEffect3(() => {
305
+ useIsomorphicLayoutEffect(() => {
305
306
  callbackRef.current = callback || noop2;
306
307
  }, [callback]);
307
308
  return useCallback9(
@@ -396,7 +397,7 @@ var ClientStorage = class {
396
397
  var clientStorage = new ClientStorage();
397
398
 
398
399
  // src/components/ActionMenu.tsx
399
- import React27, { useMemo as useMemo12 } from "react";
400
+ import React28, { useMemo as useMemo12 } from "react";
400
401
 
401
402
  // src/theme/index.ts
402
403
  import tailwindConfig from "@noya-app/noya-tailwind-config";
@@ -437,21 +438,21 @@ var INPUT_HEIGHT = 27;
437
438
  // src/components/DropdownMenu.tsx
438
439
  import { useKeyboardShortcuts } from "@noya-app/noya-keymap";
439
440
  import * as RadixDropdownMenu from "@radix-ui/react-dropdown-menu";
440
- import React26, {
441
+ import React27, {
441
442
  useMemo as useMemo11
442
443
  } from "react";
443
444
 
444
445
  // src/contexts/PortalScopeContext.tsx
445
- import * as React5 from "react";
446
- var PortalScopeContext = React5.createContext(void 0);
447
- var PortalScopeProvider = React5.memo(function PortalScopeProvider2({
446
+ import * as React6 from "react";
447
+ var PortalScopeContext = React6.createContext(void 0);
448
+ var PortalScopeProvider = React6.memo(function PortalScopeProvider2({
448
449
  children,
449
450
  portalScopeId
450
451
  }) {
451
- return /* @__PURE__ */ React5.createElement(PortalScopeContext.Provider, { value: portalScopeId }, children);
452
+ return /* @__PURE__ */ React6.createElement(PortalScopeContext.Provider, { value: portalScopeId }, children);
452
453
  });
453
454
  function usePortalScopeId() {
454
- return React5.useContext(PortalScopeContext) ?? "";
455
+ return React6.useContext(PortalScopeContext) ?? "";
455
456
  }
456
457
  var portalScopeDataSetName = "noyaPortalScope";
457
458
  var portalScopePropName = `data-noya-portal-scope`;
@@ -473,21 +474,21 @@ function getClosestPortalScope(element) {
473
474
 
474
475
  // src/components/internal/Menu.tsx
475
476
  import { getShortcutDisplayParts } from "@noya-app/noya-keymap";
476
- import React23, { memo as memo10 } from "react";
477
+ import React24, { memo as memo10 } from "react";
477
478
 
478
479
  // src/contexts/DesignSystemConfiguration.tsx
479
480
  import { getCurrentPlatform } from "@noya-app/noya-keymap";
480
- import * as React22 from "react";
481
+ import * as React23 from "react";
481
482
 
482
483
  // src/components/Toast.tsx
483
484
  import * as ToastPrimitive from "@radix-ui/react-toast";
484
- import React12 from "react";
485
+ import React13 from "react";
485
486
 
486
487
  // src/components/IconButton.tsx
487
- import * as React11 from "react";
488
+ import * as React12 from "react";
488
489
 
489
490
  // src/components/Button.tsx
490
- import React10, {
491
+ import React11, {
491
492
  forwardRef as forwardRef4,
492
493
  useCallback as useCallback10,
493
494
  useMemo as useMemo4
@@ -558,20 +559,20 @@ function mergeConflictingClassNames(classNames, options) {
558
559
 
559
560
  // src/components/Icons.tsx
560
561
  import * as Icons from "@noya-app/noya-icons";
561
- import * as React6 from "react";
562
+ import * as React7 from "react";
562
563
  function renderIcon(iconName) {
563
564
  if (typeof iconName === "string") {
564
565
  const Icon = Icons[iconName];
565
- return /* @__PURE__ */ React6.createElement(Icon, null);
566
+ return /* @__PURE__ */ React7.createElement(Icon, null);
566
567
  }
567
568
  return iconName;
568
569
  }
569
570
 
570
571
  // src/components/Spacer.tsx
571
- import * as React7 from "react";
572
- var SpacerVertical = React7.forwardRef(
572
+ import * as React8 from "react";
573
+ var SpacerVertical = React8.forwardRef(
573
574
  ({ size: size2, inline, ...props }, ref) => {
574
- return /* @__PURE__ */ React7.createElement(
575
+ return /* @__PURE__ */ React8.createElement(
575
576
  "span",
576
577
  {
577
578
  className: `${inline ? "inline-block" : "block"} ${size2 === void 0 ? "flex flex-1" : ""}`,
@@ -584,9 +585,9 @@ var SpacerVertical = React7.forwardRef(
584
585
  );
585
586
  }
586
587
  );
587
- var SpacerHorizontal = React7.forwardRef(
588
+ var SpacerHorizontal = React8.forwardRef(
588
589
  ({ size: size2, inline, ...props }, ref) => {
589
- return /* @__PURE__ */ React7.createElement(
590
+ return /* @__PURE__ */ React8.createElement(
590
591
  "span",
591
592
  {
592
593
  className: `${inline ? "inline-block" : "block"} ${size2 === void 0 ? "flex flex-1" : ""}`,
@@ -607,10 +608,10 @@ var Spacer;
607
608
 
608
609
  // src/components/Tooltip.tsx
609
610
  import * as TooltipPrimitive from "@radix-ui/react-tooltip";
610
- import * as React9 from "react";
611
+ import * as React10 from "react";
611
612
 
612
613
  // src/components/Text.tsx
613
- import React8, { forwardRef as forwardRef3 } from "react";
614
+ import React9, { forwardRef as forwardRef3 } from "react";
614
615
  var elements = {
615
616
  title: "h1",
616
617
  subtitle: "h1",
@@ -653,7 +654,7 @@ var Text = forwardRef3(function Text2({
653
654
  ...rest
654
655
  }, forwardedRef) {
655
656
  const Component = as ?? elements[variant] ?? "span";
656
- return /* @__PURE__ */ React8.createElement(
657
+ return /* @__PURE__ */ React9.createElement(
657
658
  Component,
658
659
  {
659
660
  ref: forwardedRef,
@@ -672,27 +673,27 @@ var Text = forwardRef3(function Text2({
672
673
  );
673
674
  });
674
675
  var Heading1 = forwardRef3(
675
- (props, ref) => /* @__PURE__ */ React8.createElement(Text, { ref, ...props, variant: "heading1" })
676
+ (props, ref) => /* @__PURE__ */ React9.createElement(Text, { ref, ...props, variant: "heading1" })
676
677
  );
677
678
  var Heading2 = forwardRef3(
678
- (props, ref) => /* @__PURE__ */ React8.createElement(Text, { ref, ...props, variant: "heading2" })
679
+ (props, ref) => /* @__PURE__ */ React9.createElement(Text, { ref, ...props, variant: "heading2" })
679
680
  );
680
681
  var Heading3 = forwardRef3(
681
- (props, ref) => /* @__PURE__ */ React8.createElement(Text, { ref, ...props, variant: "heading3" })
682
+ (props, ref) => /* @__PURE__ */ React9.createElement(Text, { ref, ...props, variant: "heading3" })
682
683
  );
683
684
  var Heading4 = forwardRef3(
684
- (props, ref) => /* @__PURE__ */ React8.createElement(Text, { ref, ...props, variant: "heading4" })
685
+ (props, ref) => /* @__PURE__ */ React9.createElement(Text, { ref, ...props, variant: "heading4" })
685
686
  );
686
687
  var Heading5 = forwardRef3(
687
- (props, ref) => /* @__PURE__ */ React8.createElement(Text, { ref, ...props, variant: "heading5" })
688
+ (props, ref) => /* @__PURE__ */ React9.createElement(Text, { ref, ...props, variant: "heading5" })
688
689
  );
689
690
  var Body = forwardRef3(
690
- (props, ref) => /* @__PURE__ */ React8.createElement(Text, { ref, ...props, variant: "body" })
691
+ (props, ref) => /* @__PURE__ */ React9.createElement(Text, { ref, ...props, variant: "body" })
691
692
  );
692
693
  var Small = forwardRef3(
693
- (props, ref) => /* @__PURE__ */ React8.createElement(Text, { ref, ...props, variant: "small" })
694
+ (props, ref) => /* @__PURE__ */ React9.createElement(Text, { ref, ...props, variant: "small" })
694
695
  );
695
- var Italic = ({ children }) => /* @__PURE__ */ React8.createElement(
696
+ var Italic = ({ children }) => /* @__PURE__ */ React9.createElement(
696
697
  "span",
697
698
  {
698
699
  style: {
@@ -703,13 +704,13 @@ var Italic = ({ children }) => /* @__PURE__ */ React8.createElement(
703
704
  );
704
705
 
705
706
  // src/components/Tooltip.tsx
706
- var Tooltip = React9.memo(function Tooltip2({
707
+ var Tooltip = React10.memo(function Tooltip2({
707
708
  children,
708
709
  content,
709
710
  sideOffset = 2
710
711
  }) {
711
712
  const portalScopeId = usePortalScopeId();
712
- return /* @__PURE__ */ React9.createElement(TooltipPrimitive.Provider, null, /* @__PURE__ */ React9.createElement(TooltipPrimitive.Root, null, /* @__PURE__ */ React9.createElement(TooltipPrimitive.Trigger, { asChild: true }, children), /* @__PURE__ */ React9.createElement(TooltipPrimitive.Portal, null, /* @__PURE__ */ React9.createElement(
713
+ return /* @__PURE__ */ React10.createElement(TooltipPrimitive.Provider, null, /* @__PURE__ */ React10.createElement(TooltipPrimitive.Root, null, /* @__PURE__ */ React10.createElement(TooltipPrimitive.Trigger, { asChild: true }, children), /* @__PURE__ */ React10.createElement(TooltipPrimitive.Portal, null, /* @__PURE__ */ React10.createElement(
713
714
  TooltipPrimitive.Content,
714
715
  {
715
716
  ...portalScopeProps(portalScopeId),
@@ -771,7 +772,7 @@ var Button = forwardRef4(function Button2({
771
772
  categories: ["position"]
772
773
  }) : baseClassName;
773
774
  }, [className, baseClassName]);
774
- const buttonElement = /* @__PURE__ */ React10.createElement(
775
+ const buttonElement = /* @__PURE__ */ React11.createElement(
775
776
  Component,
776
777
  {
777
778
  ref: forwardedRef,
@@ -786,35 +787,35 @@ var Button = forwardRef4(function Button2({
786
787
  }, []),
787
788
  ...rest
788
789
  },
789
- /* @__PURE__ */ React10.createElement(
790
+ /* @__PURE__ */ React11.createElement(
790
791
  "span",
791
792
  {
792
793
  className: "min-h-[19px] flex items-center flex-1 justify-center leading-[15px]",
793
794
  style: contentStyle
794
795
  },
795
796
  icon && renderIcon(icon),
796
- icon && children && /* @__PURE__ */ React10.createElement(Spacer.Horizontal, { inline: true, size: 6 }),
797
+ icon && children && /* @__PURE__ */ React11.createElement(Spacer.Horizontal, { inline: true, size: 6 }),
797
798
  children,
798
- iconRight && (icon || children) && /* @__PURE__ */ React10.createElement(Spacer.Horizontal, { inline: true, size: 6 }),
799
+ iconRight && (icon || children) && /* @__PURE__ */ React11.createElement(Spacer.Horizontal, { inline: true, size: 6 }),
799
800
  iconRight && renderIcon(iconRight)
800
801
  )
801
802
  );
802
- return tooltip ? /* @__PURE__ */ React10.createElement(Tooltip, { content: tooltip }, buttonElement) : buttonElement;
803
+ return tooltip ? /* @__PURE__ */ React11.createElement(Tooltip, { content: tooltip }, buttonElement) : buttonElement;
803
804
  });
804
805
  var Button_default = Button;
805
806
 
806
807
  // src/components/IconButton.tsx
807
- var IconButton = React11.memo(
808
- React11.forwardRef(function IconButton2({ selected, iconName, color, size: size2, contentStyle, ...props }, forwardedRef) {
808
+ var IconButton = React12.memo(
809
+ React12.forwardRef(function IconButton2({ selected, iconName, color, size: size2, contentStyle, ...props }, forwardedRef) {
809
810
  const Icon = Icons[iconName];
810
- const style2 = React11.useMemo(() => {
811
+ const style2 = React12.useMemo(() => {
811
812
  return {
812
813
  padding: "0 2px",
813
814
  ...size2 && { minHeight: size2 },
814
815
  ...contentStyle
815
816
  };
816
817
  }, [contentStyle, size2]);
817
- return /* @__PURE__ */ React11.createElement(Button, { ref: forwardedRef, ...props, variant: "none", contentStyle: style2 }, /* @__PURE__ */ React11.createElement(
818
+ return /* @__PURE__ */ React12.createElement(Button, { ref: forwardedRef, ...props, variant: "none", contentStyle: style2 }, /* @__PURE__ */ React12.createElement(
818
819
  Icon,
819
820
  {
820
821
  color: color ?? (selected ? cssVars.colors.iconSelected : cssVars.colors.icon),
@@ -831,34 +832,34 @@ var Toast = ({
831
832
  children,
832
833
  ...props
833
834
  }) => {
834
- return /* @__PURE__ */ React12.createElement(
835
+ return /* @__PURE__ */ React13.createElement(
835
836
  ToastPrimitive.Root,
836
837
  {
837
838
  className: "px-2 py-2.5 grid grid-cols-[auto_max-content] gap-x-2.5 items-center rounded text-sm bg-popover-background shadow-popover text-text-muted",
838
839
  ...props
839
840
  },
840
- title && /* @__PURE__ */ React12.createElement(
841
+ title && /* @__PURE__ */ React13.createElement(
841
842
  ToastPrimitive.Title,
842
843
  {
843
844
  className: `mb-[5px] ${textStyles.label} font-bold text-text`
844
845
  },
845
846
  title
846
847
  ),
847
- /* @__PURE__ */ React12.createElement(
848
+ /* @__PURE__ */ React13.createElement(
848
849
  ToastPrimitive.Description,
849
850
  {
850
851
  className: `${textStyles.small} text-text-muted`
851
852
  },
852
853
  content
853
854
  ),
854
- children && /* @__PURE__ */ React12.createElement(ToastPrimitive.Action, { asChild: true, altText: "" }, children),
855
- /* @__PURE__ */ React12.createElement(ToastPrimitive.Close, { "aria-label": "Close", asChild: true }, /* @__PURE__ */ React12.createElement(IconButton, { iconName: "Cross1Icon" }))
855
+ children && /* @__PURE__ */ React13.createElement(ToastPrimitive.Action, { asChild: true, altText: "" }, children),
856
+ /* @__PURE__ */ React13.createElement(ToastPrimitive.Close, { "aria-label": "Close", asChild: true }, /* @__PURE__ */ React13.createElement(IconButton, { iconName: "Cross1Icon" }))
856
857
  );
857
858
  };
858
- var ToastProvider = ({ children }) => /* @__PURE__ */ React12.createElement(ToastPrimitive.Provider, null, children, /* @__PURE__ */ React12.createElement(ToastPrimitive.Viewport, { className: "fixed bottom-0 right-0 flex flex-col p-5 g-2.5 min-w-[200px] max-w-[100vw] m-0 list-none z-[2147483647] outline-none" }));
859
+ var ToastProvider = ({ children }) => /* @__PURE__ */ React13.createElement(ToastPrimitive.Provider, null, children, /* @__PURE__ */ React13.createElement(ToastPrimitive.Viewport, { className: "fixed bottom-0 right-0 flex flex-col p-5 g-2.5 min-w-[200px] max-w-[100vw] m-0 list-none z-[2147483647] outline-none" }));
859
860
 
860
861
  // src/contexts/DialogContext.tsx
861
- import React20, {
862
+ import React21, {
862
863
  createContext as createContext5,
863
864
  useCallback as useCallback13,
864
865
  useContext as useContext5,
@@ -869,12 +870,12 @@ import React20, {
869
870
 
870
871
  // src/components/Dialog.tsx
871
872
  import * as DialogPrimitive from "@radix-ui/react-dialog";
872
- import React13, {
873
+ import React14, {
873
874
  forwardRef as forwardRef6,
874
875
  useImperativeHandle,
875
876
  useRef as useRef9
876
877
  } from "react";
877
- var StyledOverlay = forwardRef6(({ className, ...props }, ref) => /* @__PURE__ */ React13.createElement(
878
+ var StyledOverlay = forwardRef6(({ className, ...props }, ref) => /* @__PURE__ */ React14.createElement(
878
879
  DialogPrimitive.Overlay,
879
880
  {
880
881
  ref,
@@ -883,7 +884,7 @@ var StyledOverlay = forwardRef6(({ className, ...props }, ref) => /* @__PURE__ *
883
884
  }
884
885
  ));
885
886
  var StyledContent = forwardRef6(({ className, children, ...props }, ref) => {
886
- return /* @__PURE__ */ React13.createElement(
887
+ return /* @__PURE__ */ React14.createElement(
887
888
  DialogPrimitive.Content,
888
889
  {
889
890
  ref,
@@ -902,7 +903,7 @@ var StyledContent = forwardRef6(({ className, children, ...props }, ref) => {
902
903
  children
903
904
  );
904
905
  });
905
- var StyledTitle = forwardRef6(({ className, ...props }, ref) => /* @__PURE__ */ React13.createElement(
906
+ var StyledTitle = forwardRef6(({ className, ...props }, ref) => /* @__PURE__ */ React14.createElement(
906
907
  DialogPrimitive.Title,
907
908
  {
908
909
  ref,
@@ -913,7 +914,7 @@ var StyledTitle = forwardRef6(({ className, ...props }, ref) => /* @__PURE__ */
913
914
  ...props
914
915
  }
915
916
  ));
916
- var StyledDescription = forwardRef6(({ className, ...props }, ref) => /* @__PURE__ */ React13.createElement(
917
+ var StyledDescription = forwardRef6(({ className, ...props }, ref) => /* @__PURE__ */ React14.createElement(
917
918
  DialogPrimitive.Description,
918
919
  {
919
920
  ref,
@@ -943,7 +944,7 @@ var Dialog = forwardRef6(function Dialog2({
943
944
  return contentRef.current.contains(element);
944
945
  }
945
946
  }));
946
- return /* @__PURE__ */ React13.createElement(DialogPrimitive.Root, { open, onOpenChange }, /* @__PURE__ */ React13.createElement(StyledOverlay, null), /* @__PURE__ */ React13.createElement(
947
+ return /* @__PURE__ */ React14.createElement(DialogPrimitive.Root, { open, onOpenChange }, /* @__PURE__ */ React14.createElement(StyledOverlay, null), /* @__PURE__ */ React14.createElement(
947
948
  StyledContent,
948
949
  {
949
950
  ref: contentRef,
@@ -955,7 +956,7 @@ var Dialog = forwardRef6(function Dialog2({
955
956
  onInteractOutside: (event) => event.preventDefault()
956
957
  }
957
958
  },
958
- showCloseButton && /* @__PURE__ */ React13.createElement(DialogPrimitive.Close, { asChild: true }, /* @__PURE__ */ React13.createElement(
959
+ showCloseButton && /* @__PURE__ */ React14.createElement(DialogPrimitive.Close, { asChild: true }, /* @__PURE__ */ React14.createElement(
959
960
  IconButton,
960
961
  {
961
962
  iconName: "Cross1Icon",
@@ -967,13 +968,13 @@ var Dialog = forwardRef6(function Dialog2({
967
968
  }
968
969
  }
969
970
  )),
970
- title && /* @__PURE__ */ React13.createElement(React13.Fragment, null, /* @__PURE__ */ React13.createElement(StyledTitle, null, title), /* @__PURE__ */ React13.createElement(Spacer.Vertical, { size: description ? 10 : 20 })),
971
- description && /* @__PURE__ */ React13.createElement(React13.Fragment, null, /* @__PURE__ */ React13.createElement(StyledDescription, null, description), /* @__PURE__ */ React13.createElement(Spacer.Vertical, { size: 20 })),
971
+ title && /* @__PURE__ */ React14.createElement(React14.Fragment, null, /* @__PURE__ */ React14.createElement(StyledTitle, null, title), /* @__PURE__ */ React14.createElement(Spacer.Vertical, { size: description ? 10 : 20 })),
972
+ description && /* @__PURE__ */ React14.createElement(React14.Fragment, null, /* @__PURE__ */ React14.createElement(StyledDescription, null, description), /* @__PURE__ */ React14.createElement(Spacer.Vertical, { size: 20 })),
972
973
  children
973
974
  ));
974
975
  });
975
976
  var FullscreenDialog = forwardRef6(function FullscreenDialog2({ style: style2, ...rest }, forwardedRef) {
976
- return /* @__PURE__ */ React13.createElement(
977
+ return /* @__PURE__ */ React14.createElement(
977
978
  Dialog,
978
979
  {
979
980
  ref: forwardedRef,
@@ -986,7 +987,7 @@ var FullscreenDialog = forwardRef6(function FullscreenDialog2({ style: style2, .
986
987
 
987
988
  // src/components/InputField.tsx
988
989
  import { DropdownChevronIcon } from "@noya-app/noya-icons";
989
- import React19, {
990
+ import React20, {
990
991
  createContext as createContext4,
991
992
  forwardRef as forwardRef9,
992
993
  memo as memo8,
@@ -998,30 +999,30 @@ import React19, {
998
999
  } from "react";
999
1000
 
1000
1001
  // src/hooks/useLabel.ts
1001
- import React14 from "react";
1002
- var LabelContext = React14.createContext({
1002
+ import React15 from "react";
1003
+ var LabelContext = React15.createContext({
1003
1004
  fieldId: "",
1004
1005
  label: void 0
1005
1006
  });
1006
1007
  var useLabel = ({ label, fieldId }) => {
1007
- const { label: labelFromContext, fieldId: fieldIdFromContext } = React14.useContext(LabelContext);
1008
+ const { label: labelFromContext, fieldId: fieldIdFromContext } = React15.useContext(LabelContext);
1008
1009
  return {
1009
1010
  label: label ?? labelFromContext,
1010
1011
  fieldId: fieldId ?? fieldIdFromContext
1011
1012
  };
1012
1013
  };
1013
- var LabelPositionContext = React14.createContext({
1014
+ var LabelPositionContext = React15.createContext({
1014
1015
  position: "start"
1015
1016
  });
1016
1017
  var useLabelPosition = () => {
1017
- const { position } = React14.useContext(LabelPositionContext);
1018
+ const { position } = React15.useContext(LabelPositionContext);
1018
1019
  return position;
1019
1020
  };
1020
- var LabelWidthContext = React14.createContext({
1021
+ var LabelWidthContext = React15.createContext({
1021
1022
  width: 100
1022
1023
  });
1023
1024
  var useLabelWidth = () => {
1024
- const { width } = React14.useContext(LabelWidthContext);
1025
+ const { width } = React15.useContext(LabelWidthContext);
1025
1026
  return width;
1026
1027
  };
1027
1028
 
@@ -1061,11 +1062,11 @@ var startBaseStyles = "absolute left-1.5 inset-y-0 flex items-center";
1061
1062
 
1062
1063
  // src/components/internal/TextInput.tsx
1063
1064
  import { composeRefs } from "@radix-ui/react-compose-refs";
1064
- import React15, {
1065
+ import React16, {
1065
1066
  forwardRef as forwardRef7,
1066
1067
  useCallback as useCallback11,
1067
1068
  useEffect as useEffect10,
1068
- useLayoutEffect as useLayoutEffect4,
1069
+ useLayoutEffect as useLayoutEffect3,
1069
1070
  useRef as useRef10,
1070
1071
  useState as useState11
1071
1072
  } from "react";
@@ -1111,7 +1112,7 @@ function useGlobalInputBlurTrigger() {
1111
1112
 
1112
1113
  // src/components/internal/TextInput.tsx
1113
1114
  var ReadOnlyTextInput = forwardRef7(function ReadOnlyTextInput2({ onKeyDown, onFocusChange, value, ...rest }, forwardedRef) {
1114
- return /* @__PURE__ */ React15.createElement(
1115
+ return /* @__PURE__ */ React16.createElement(
1115
1116
  "input",
1116
1117
  {
1117
1118
  ref: forwardedRef,
@@ -1154,7 +1155,7 @@ var ControlledTextInput = forwardRef7(function ControlledTextInput2({
1154
1155
  },
1155
1156
  [onFocus, onFocusChange]
1156
1157
  );
1157
- return /* @__PURE__ */ React15.createElement(
1158
+ return /* @__PURE__ */ React16.createElement(
1158
1159
  "input",
1159
1160
  {
1160
1161
  ref: forwardedRef,
@@ -1183,13 +1184,13 @@ var SubmittableTextInput = forwardRef7(function SubmittableTextInput2({
1183
1184
  submitOnBlur = true,
1184
1185
  ...rest
1185
1186
  }, forwardedRef) {
1186
- const ref = React15.useRef(null);
1187
+ const ref = React16.useRef(null);
1187
1188
  const latestValue = useRef10(value);
1188
1189
  latestValue.current = value;
1189
1190
  const userDidEdit = useRef10(false);
1190
1191
  const isSubmitTriggeredByEscapeKey = useRef10(false);
1191
1192
  const [internalValue, setInternalValue] = useState11("");
1192
- useLayoutEffect4(() => {
1193
+ useLayoutEffect3(() => {
1193
1194
  setInternalValue(value);
1194
1195
  }, [value]);
1195
1196
  const handleSubmit = useCallback11(() => {
@@ -1266,7 +1267,7 @@ var SubmittableTextInput = forwardRef7(function SubmittableTextInput2({
1266
1267
  }
1267
1268
  };
1268
1269
  }, [internalValue, submitAutomaticallyAfterDelay]);
1269
- return /* @__PURE__ */ React15.createElement(
1270
+ return /* @__PURE__ */ React16.createElement(
1270
1271
  "input",
1271
1272
  {
1272
1273
  ref: composeRefs(ref, forwardedRef),
@@ -1298,21 +1299,21 @@ var TextInput_default = forwardRef7(function TextInput(props, forwardedRef) {
1298
1299
  ...props
1299
1300
  };
1300
1301
  if ("readOnly" in commonProps) {
1301
- return /* @__PURE__ */ React15.createElement(ReadOnlyTextInput, { ref: forwardedRef, ...commonProps, readOnly: true });
1302
+ return /* @__PURE__ */ React16.createElement(ReadOnlyTextInput, { ref: forwardedRef, ...commonProps, readOnly: true });
1302
1303
  } else if ("onChange" in commonProps) {
1303
- return /* @__PURE__ */ React15.createElement(ControlledTextInput, { ref: forwardedRef, ...commonProps });
1304
+ return /* @__PURE__ */ React16.createElement(ControlledTextInput, { ref: forwardedRef, ...commonProps });
1304
1305
  } else {
1305
- return /* @__PURE__ */ React15.createElement(SubmittableTextInput, { ref: forwardedRef, ...commonProps });
1306
+ return /* @__PURE__ */ React16.createElement(SubmittableTextInput, { ref: forwardedRef, ...commonProps });
1306
1307
  }
1307
1308
  });
1308
1309
 
1309
1310
  // src/components/Label.tsx
1310
- import React16, { forwardRef as forwardRef8, memo as memo6 } from "react";
1311
+ import React17, { forwardRef as forwardRef8, memo as memo6 } from "react";
1311
1312
  var labelStyles = "flex items-center select-none z-label relative";
1312
1313
  var labelTextStyles = "font-sans text-label uppercase leading-3 font-bold text-text-muted";
1313
1314
  var Label = memo6(
1314
1315
  forwardRef8(function Label2({ className, children, ...props }, ref) {
1315
- return /* @__PURE__ */ React16.createElement(
1316
+ return /* @__PURE__ */ React17.createElement(
1316
1317
  "label",
1317
1318
  {
1318
1319
  ref,
@@ -1336,28 +1337,28 @@ var Label = memo6(
1336
1337
 
1337
1338
  // src/components/Popover.tsx
1338
1339
  import * as PopoverPrimitive from "@radix-ui/react-popover";
1339
- import React18, { useEffect as useEffect11, useId, useRef as useRef11 } from "react";
1340
+ import React19, { useEffect as useEffect11, useId, useRef as useRef11 } from "react";
1340
1341
 
1341
1342
  // src/contexts/OpenPortalsContext.tsx
1342
- import * as React17 from "react";
1343
- var OpenPortalsContext = React17.createContext({
1343
+ import * as React18 from "react";
1344
+ var OpenPortalsContext = React18.createContext({
1344
1345
  hasOpenPortals: false
1345
1346
  });
1346
- var OpenPortalControlsContext = React17.createContext({
1347
+ var OpenPortalControlsContext = React18.createContext({
1347
1348
  addOpenPortal: () => {
1348
1349
  },
1349
1350
  removeOpenPortal: () => {
1350
1351
  }
1351
1352
  });
1352
- var OpenPortalsProvider = React17.memo(function OpenPortalsProvider2({
1353
+ var OpenPortalsProvider = React18.memo(function OpenPortalsProvider2({
1353
1354
  children
1354
1355
  }) {
1355
- const [openPortals, setOpenPortals] = React17.useState([]);
1356
- const value = React17.useMemo(
1356
+ const [openPortals, setOpenPortals] = React18.useState([]);
1357
+ const value = React18.useMemo(
1357
1358
  () => ({ hasOpenPortals: openPortals.length > 0 }),
1358
1359
  [openPortals]
1359
1360
  );
1360
- const controlsValue = React17.useMemo(
1361
+ const controlsValue = React18.useMemo(
1361
1362
  () => ({
1362
1363
  addOpenPortal: (portal) => {
1363
1364
  setOpenPortals((prev) => [...prev, portal]);
@@ -1368,13 +1369,13 @@ var OpenPortalsProvider = React17.memo(function OpenPortalsProvider2({
1368
1369
  }),
1369
1370
  []
1370
1371
  );
1371
- return /* @__PURE__ */ React17.createElement(OpenPortalsContext.Provider, { value }, /* @__PURE__ */ React17.createElement(OpenPortalControlsContext.Provider, { value: controlsValue }, children));
1372
+ return /* @__PURE__ */ React18.createElement(OpenPortalsContext.Provider, { value }, /* @__PURE__ */ React18.createElement(OpenPortalControlsContext.Provider, { value: controlsValue }, children));
1372
1373
  });
1373
1374
  function useHasOpenPortals() {
1374
- return React17.useContext(OpenPortalsContext).hasOpenPortals;
1375
+ return React18.useContext(OpenPortalsContext).hasOpenPortals;
1375
1376
  }
1376
1377
  function useOpenPortalsControls() {
1377
- return React17.useContext(OpenPortalControlsContext);
1378
+ return React18.useContext(OpenPortalControlsContext);
1378
1379
  }
1379
1380
 
1380
1381
  // src/components/Popover.tsx
@@ -1422,7 +1423,7 @@ function Popover({
1422
1423
  removeOpenPortal(portalScopeId || defaultId);
1423
1424
  };
1424
1425
  }, [addOpenPortal, isOpen, portalScopeId, removeOpenPortal, defaultId]);
1425
- return /* @__PURE__ */ React18.createElement(PopoverPrimitive.Root, { open: isOpen, onOpenChange: setIsOpen }, /* @__PURE__ */ React18.createElement(PopoverPrimitive.Trigger, { asChild: true }, trigger), /* @__PURE__ */ React18.createElement(PopoverPrimitive.Portal, { container: portalContainer }, /* @__PURE__ */ React18.createElement(
1426
+ return /* @__PURE__ */ React19.createElement(PopoverPrimitive.Root, { open: isOpen, onOpenChange: setIsOpen }, /* @__PURE__ */ React19.createElement(PopoverPrimitive.Trigger, { asChild: true }, trigger), /* @__PURE__ */ React19.createElement(PopoverPrimitive.Portal, { container: portalContainer }, /* @__PURE__ */ React19.createElement(
1426
1427
  PopoverPrimitive.Content,
1427
1428
  {
1428
1429
  ...portalScopeProps(portalScopeId),
@@ -1453,14 +1454,14 @@ function Popover({
1453
1454
  arrowPadding: 2
1454
1455
  },
1455
1456
  children,
1456
- showArrow && /* @__PURE__ */ React18.createElement(PopoverPrimitive.Arrow, { className: "fill-popover-background" }),
1457
- closable && /* @__PURE__ */ React18.createElement(
1457
+ showArrow && /* @__PURE__ */ React19.createElement(PopoverPrimitive.Arrow, { className: "fill-popover-background" }),
1458
+ closable && /* @__PURE__ */ React19.createElement(
1458
1459
  PopoverPrimitive.Close,
1459
1460
  {
1460
1461
  className: "rounded-full h-[25px] w-[25px] inline-flex items-center justify-center absolute top-[5px] right-[5px]",
1461
1462
  style: closeStyles
1462
1463
  },
1463
- /* @__PURE__ */ React18.createElement(IconButton, { iconName: "Cross2Icon", onClick: onClickClose })
1464
+ /* @__PURE__ */ React19.createElement(IconButton, { iconName: "Cross2Icon", onClick: onClickClose })
1464
1465
  )
1465
1466
  )));
1466
1467
  }
@@ -1501,7 +1502,7 @@ var getFieldSpacing = ({
1501
1502
  paddingRight: `${variant === "bare" ? endWidth : endWidth ? endWidth + 12 : 6}px`
1502
1503
  });
1503
1504
  var InputFieldDropdownMenu = memoGeneric(function InputFieldDropdownMenu2({ id, items, onSelect, children }) {
1504
- return /* @__PURE__ */ React19.createElement(
1505
+ return /* @__PURE__ */ React20.createElement(
1505
1506
  DropdownMenu,
1506
1507
  {
1507
1508
  items,
@@ -1509,7 +1510,7 @@ var InputFieldDropdownMenu = memoGeneric(function InputFieldDropdownMenu2({ id,
1509
1510
  align: "end",
1510
1511
  sideOffset: 8
1511
1512
  },
1512
- children || /* @__PURE__ */ React19.createElement(InputFieldButton, { variant: "floating", id }, /* @__PURE__ */ React19.createElement(DropdownChevronIcon, null))
1513
+ children || /* @__PURE__ */ React20.createElement(InputFieldButton, { variant: "floating", id }, /* @__PURE__ */ React20.createElement(DropdownChevronIcon, null))
1513
1514
  );
1514
1515
  });
1515
1516
  var InputFieldButton = memo8(
@@ -1552,7 +1553,7 @@ var InputFieldButton = memo8(
1552
1553
  }),
1553
1554
  [style2, variant]
1554
1555
  );
1555
- return /* @__PURE__ */ React19.createElement(
1556
+ return /* @__PURE__ */ React20.createElement(
1556
1557
  Button,
1557
1558
  {
1558
1559
  as,
@@ -1609,7 +1610,7 @@ var InputElement = forwardRef9(
1609
1610
  [inputClassName]
1610
1611
  );
1611
1612
  if (as === "span") {
1612
- return /* @__PURE__ */ React19.createElement(
1613
+ return /* @__PURE__ */ React20.createElement(
1613
1614
  "span",
1614
1615
  {
1615
1616
  ref,
@@ -1620,7 +1621,7 @@ var InputElement = forwardRef9(
1620
1621
  children
1621
1622
  );
1622
1623
  }
1623
- return /* @__PURE__ */ React19.createElement(
1624
+ return /* @__PURE__ */ React20.createElement(
1624
1625
  TextInput_default,
1625
1626
  {
1626
1627
  ref,
@@ -1644,7 +1645,7 @@ var InputFieldInput = forwardRef9(function InputFieldInput2({ textAlign, variant
1644
1645
  },
1645
1646
  [onFocusChange]
1646
1647
  );
1647
- return /* @__PURE__ */ React19.createElement(
1648
+ return /* @__PURE__ */ React20.createElement(
1648
1649
  InputElement,
1649
1650
  {
1650
1651
  ref,
@@ -1656,7 +1657,7 @@ var InputFieldInput = forwardRef9(function InputFieldInput2({ textAlign, variant
1656
1657
  );
1657
1658
  });
1658
1659
  var InputFieldTypeahead = (props) => {
1659
- return /* @__PURE__ */ React19.createElement(
1660
+ return /* @__PURE__ */ React20.createElement(
1660
1661
  InputElement,
1661
1662
  {
1662
1663
  as: "span",
@@ -1674,8 +1675,8 @@ var InputFieldTypeahead = (props) => {
1674
1675
  []
1675
1676
  )
1676
1677
  },
1677
- /* @__PURE__ */ React19.createElement("span", { style: { opacity: 0 } }, props.prefix),
1678
- props.isFocused && /* @__PURE__ */ React19.createElement("span", { style: { opacity: 0.5 } }, props.value.slice(props.prefix.length))
1678
+ /* @__PURE__ */ React20.createElement("span", { style: { opacity: 0 } }, props.prefix),
1679
+ props.isFocused && /* @__PURE__ */ React20.createElement("span", { style: { opacity: 0.5 } }, props.value.slice(props.prefix.length))
1679
1680
  );
1680
1681
  };
1681
1682
  function parseNumber(value) {
@@ -1731,7 +1732,7 @@ function InputFieldNumberInput(props) {
1731
1732
  },
1732
1733
  [onBlur]
1733
1734
  );
1734
- return /* @__PURE__ */ React19.createElement(
1735
+ return /* @__PURE__ */ React20.createElement(
1735
1736
  InputFieldInput,
1736
1737
  {
1737
1738
  ...rest,
@@ -1744,7 +1745,7 @@ function InputFieldNumberInput(props) {
1744
1745
  }
1745
1746
  );
1746
1747
  }
1747
- var RootContainer = forwardRef9(({ $width, className, ...props }, ref) => /* @__PURE__ */ React19.createElement(
1748
+ var RootContainer = forwardRef9(({ $width, className, ...props }, ref) => /* @__PURE__ */ React20.createElement(
1748
1749
  "div",
1749
1750
  {
1750
1751
  ref,
@@ -1775,10 +1776,10 @@ function InputFieldRoot({
1775
1776
  label: labelProp
1776
1777
  }) {
1777
1778
  const randomId = useId2();
1778
- const [isFocused, setIsFocused] = React19.useState(false);
1779
- const startRef = React19.useRef(null);
1780
- const inputRef = React19.useRef(null);
1781
- const endRef = React19.useRef(null);
1779
+ const [isFocused, setIsFocused] = React20.useState(false);
1780
+ const startRef = React20.useRef(null);
1781
+ const inputRef = React20.useRef(null);
1782
+ const endRef = React20.useRef(null);
1782
1783
  const measuredInputSize = useSize(inputRef, "width");
1783
1784
  const measuredStartSize = useSize(startRef, "width");
1784
1785
  const measuredEndSize = useSize(endRef, "width");
@@ -1809,10 +1810,10 @@ function InputFieldRoot({
1809
1810
  [startWidth, endWidth, size2, isFocused, handleFocusChange, id, randomId]
1810
1811
  );
1811
1812
  const insetLabel = useMemo7(
1812
- () => /* @__PURE__ */ React19.createElement(Label, { htmlFor: id, className: "!text-text-disabled" }, labelProp ?? label),
1813
+ () => /* @__PURE__ */ React20.createElement(Label, { htmlFor: id, className: "!text-text-disabled" }, labelProp ?? label),
1813
1814
  [id, labelProp, label]
1814
1815
  );
1815
- const rootElement = /* @__PURE__ */ React19.createElement(RootContainer, { $width: width, style: style2, className }, children, start && /* @__PURE__ */ React19.createElement("span", { ref: startRef, className: cx(startBaseStyles, startClassName) }, start), (end || label) && /* @__PURE__ */ React19.createElement(
1816
+ const rootElement = /* @__PURE__ */ React20.createElement(RootContainer, { $width: width, style: style2, className }, children, start && /* @__PURE__ */ React20.createElement("span", { ref: startRef, className: cx(startBaseStyles, startClassName) }, start), (end || label) && /* @__PURE__ */ React20.createElement(
1816
1817
  "span",
1817
1818
  {
1818
1819
  ref: endRef,
@@ -1825,7 +1826,7 @@ function InputFieldRoot({
1825
1826
  () => measuredInputSize ? { width: measuredInputSize.width + 4 } : void 0,
1826
1827
  [measuredInputSize]
1827
1828
  );
1828
- return /* @__PURE__ */ React19.createElement(InputFieldContext.Provider, { value: contextValue }, renderPopoverContent ? /* @__PURE__ */ React19.createElement(
1829
+ return /* @__PURE__ */ React20.createElement(InputFieldContext.Provider, { value: contextValue }, renderPopoverContent ? /* @__PURE__ */ React20.createElement(
1829
1830
  Popover,
1830
1831
  {
1831
1832
  open: true,
@@ -1841,7 +1842,7 @@ function InputFieldRoot({
1841
1842
  event.stopPropagation();
1842
1843
  }
1843
1844
  },
1844
- measuredWidthObject && /* @__PURE__ */ React19.createElement(
1845
+ measuredWidthObject && /* @__PURE__ */ React20.createElement(
1845
1846
  "div",
1846
1847
  {
1847
1848
  className: "flex flex-col overflow-hidden",
@@ -1866,7 +1867,7 @@ var PrimitiveInputField = ({
1866
1867
  () => ({ ...spacingStyles, ...style2 }),
1867
1868
  [spacingStyles, style2]
1868
1869
  );
1869
- return /* @__PURE__ */ React19.createElement(
1870
+ return /* @__PURE__ */ React20.createElement(
1870
1871
  "input",
1871
1872
  {
1872
1873
  style: memoizedStyles,
@@ -1907,7 +1908,7 @@ var InputFieldComponent = forwardRef9(
1907
1908
  className,
1908
1909
  ...inputProps
1909
1910
  } = props;
1910
- return /* @__PURE__ */ React19.createElement(
1911
+ return /* @__PURE__ */ React20.createElement(
1911
1912
  InputFieldSubcomponents.Root,
1912
1913
  {
1913
1914
  width,
@@ -1923,7 +1924,7 @@ var InputFieldComponent = forwardRef9(
1923
1924
  style: style2,
1924
1925
  className
1925
1926
  },
1926
- /* @__PURE__ */ React19.createElement(InputFieldSubcomponents.Input, { ref, ...inputProps }),
1927
+ /* @__PURE__ */ React20.createElement(InputFieldSubcomponents.Input, { ref, ...inputProps }),
1927
1928
  children
1928
1929
  );
1929
1930
  }
@@ -2044,7 +2045,7 @@ var DialogProvider = function DialogProvider2({
2044
2045
  if (!dialogRef.current) return false;
2045
2046
  return dialogRef.current.containsElement(element);
2046
2047
  }, []);
2047
- return /* @__PURE__ */ React20.createElement(React20.Fragment, null, /* @__PURE__ */ React20.createElement(
2048
+ return /* @__PURE__ */ React21.createElement(React21.Fragment, null, /* @__PURE__ */ React21.createElement(
2048
2049
  DialogContext.Provider,
2049
2050
  {
2050
2051
  value: useMemo8(
@@ -2058,7 +2059,7 @@ var DialogProvider = function DialogProvider2({
2058
2059
  )
2059
2060
  },
2060
2061
  children
2061
- ), /* @__PURE__ */ React20.createElement(
2062
+ ), /* @__PURE__ */ React21.createElement(
2062
2063
  Dialog,
2063
2064
  {
2064
2065
  ref: dialogRef,
@@ -2089,7 +2090,7 @@ var DialogProvider = function DialogProvider2({
2089
2090
  [contents]
2090
2091
  )
2091
2092
  },
2092
- contents?.type === "confirmation" ? /* @__PURE__ */ React20.createElement("div", { className: "flex flex-1 flex-row items-center" }, /* @__PURE__ */ React20.createElement(Spacer.Horizontal, null), /* @__PURE__ */ React20.createElement(
2093
+ contents?.type === "confirmation" ? /* @__PURE__ */ React21.createElement("div", { className: "flex flex-1 flex-row items-center" }, /* @__PURE__ */ React21.createElement(Spacer.Horizontal, null), /* @__PURE__ */ React21.createElement(
2093
2094
  Button,
2094
2095
  {
2095
2096
  onClick: () => {
@@ -2098,7 +2099,7 @@ var DialogProvider = function DialogProvider2({
2098
2099
  }
2099
2100
  },
2100
2101
  contents.cancelButtonLabel ?? "Cancel"
2101
- ), /* @__PURE__ */ React20.createElement(Spacer.Horizontal, { size: 16 }), /* @__PURE__ */ React20.createElement(
2102
+ ), /* @__PURE__ */ React21.createElement(Spacer.Horizontal, { size: 16 }), /* @__PURE__ */ React21.createElement(
2102
2103
  Button,
2103
2104
  {
2104
2105
  onClick: () => {
@@ -2107,7 +2108,7 @@ var DialogProvider = function DialogProvider2({
2107
2108
  }
2108
2109
  },
2109
2110
  contents.confirmButtonLabel ?? "OK"
2110
- )) : contents?.type === "custom" ? /* @__PURE__ */ React20.createElement(React20.Fragment, null, contents.children) : /* @__PURE__ */ React20.createElement(React20.Fragment, null, /* @__PURE__ */ React20.createElement(InputField2.Root, null, /* @__PURE__ */ React20.createElement(
2111
+ )) : contents?.type === "custom" ? /* @__PURE__ */ React21.createElement(React21.Fragment, null, contents.children) : /* @__PURE__ */ React21.createElement(React21.Fragment, null, /* @__PURE__ */ React21.createElement(InputField2.Root, null, /* @__PURE__ */ React21.createElement(
2111
2112
  InputField2.Input,
2112
2113
  {
2113
2114
  ref: inputRef,
@@ -2123,7 +2124,7 @@ var DialogProvider = function DialogProvider2({
2123
2124
  },
2124
2125
  onKeyDown: handleKeyDown
2125
2126
  }
2126
- )), /* @__PURE__ */ React20.createElement(Spacer.Vertical, { size: 20 }), /* @__PURE__ */ React20.createElement("div", { className: "flex flex-1 flex-row items-center" }, /* @__PURE__ */ React20.createElement(Spacer.Horizontal, null), /* @__PURE__ */ React20.createElement(Button, { onClick: close }, "Cancel"), /* @__PURE__ */ React20.createElement(Spacer.Horizontal, { size: 16 }), /* @__PURE__ */ React20.createElement(
2127
+ )), /* @__PURE__ */ React21.createElement(Spacer.Vertical, { size: 20 }), /* @__PURE__ */ React21.createElement("div", { className: "flex flex-1 flex-row items-center" }, /* @__PURE__ */ React21.createElement(Spacer.Horizontal, null), /* @__PURE__ */ React21.createElement(Button, { onClick: close }, "Cancel"), /* @__PURE__ */ React21.createElement(Spacer.Horizontal, { size: 16 }), /* @__PURE__ */ React21.createElement(
2127
2128
  Button,
2128
2129
  {
2129
2130
  disabled: !contents || contents.type !== "input" || !contents.inputValue,
@@ -2155,7 +2156,7 @@ function useOpenDialog() {
2155
2156
 
2156
2157
  // src/contexts/FloatingWindowContext.tsx
2157
2158
  import { uuid } from "@noya-app/noya-utils";
2158
- import React21, { createContext as createContext6, useContext as useContext6, useMemo as useMemo9, useState as useState15 } from "react";
2159
+ import React22, { createContext as createContext6, useContext as useContext6, useMemo as useMemo9, useState as useState15 } from "react";
2159
2160
  import { createPortal } from "react-dom";
2160
2161
  var FloatingWindowContext = createContext6(void 0);
2161
2162
  var CurrentWindowContext = createContext6(void 0);
@@ -2168,7 +2169,7 @@ var FloatingWindowProvider = ({
2168
2169
  const id = uuid();
2169
2170
  setWindows((windows2) => ({
2170
2171
  ...windows2,
2171
- [id]: /* @__PURE__ */ React21.createElement(CurrentWindowContext.Provider, { value: { id } }, element)
2172
+ [id]: /* @__PURE__ */ React22.createElement(CurrentWindowContext.Provider, { value: { id } }, element)
2172
2173
  }));
2173
2174
  return id;
2174
2175
  };
@@ -2180,7 +2181,7 @@ var FloatingWindowProvider = ({
2180
2181
  };
2181
2182
  return { createWindow, closeWindow };
2182
2183
  }, []);
2183
- return /* @__PURE__ */ React21.createElement(FloatingWindowContext.Provider, { value: contextValue }, children, Object.entries(windows).map(
2184
+ return /* @__PURE__ */ React22.createElement(FloatingWindowContext.Provider, { value: contextValue }, children, Object.entries(windows).map(
2184
2185
  ([id, element]) => createPortal(element, document.body, id)
2185
2186
  ));
2186
2187
  };
@@ -2202,30 +2203,30 @@ var useCurrentFloatingWindowInternal = () => {
2202
2203
  };
2203
2204
 
2204
2205
  // src/contexts/DesignSystemConfiguration.tsx
2205
- var DesignSystemConfigurationContext = React22.createContext({
2206
+ var DesignSystemConfigurationContext = React23.createContext({
2206
2207
  platform: "key"
2207
2208
  });
2208
- var DesignSystemConfigurationProvider = React22.memo(
2209
+ var DesignSystemConfigurationProvider = React23.memo(
2209
2210
  function DesignSystemConfigurationProvider2({
2210
2211
  children,
2211
2212
  platform
2212
2213
  }) {
2213
- const [internalPlatform, setInternalPlatform] = React22.useState(platform ?? "key");
2214
- React22.useEffect(() => {
2214
+ const [internalPlatform, setInternalPlatform] = React23.useState(platform ?? "key");
2215
+ React23.useEffect(() => {
2215
2216
  if (platform !== void 0) return;
2216
2217
  if (typeof navigator !== "undefined") {
2217
2218
  setInternalPlatform(getCurrentPlatform(navigator));
2218
2219
  }
2219
2220
  }, [platform]);
2220
- const contextValue = React22.useMemo(
2221
+ const contextValue = React23.useMemo(
2221
2222
  () => ({ platform: platform ?? internalPlatform }),
2222
2223
  [platform, internalPlatform]
2223
2224
  );
2224
- return /* @__PURE__ */ React22.createElement(DesignSystemConfigurationContext.Provider, { value: contextValue }, /* @__PURE__ */ React22.createElement(OpenPortalsProvider, null, /* @__PURE__ */ React22.createElement(DialogProvider, null, /* @__PURE__ */ React22.createElement(ToastProvider, null, /* @__PURE__ */ React22.createElement(FloatingWindowProvider, null, children)))));
2225
+ return /* @__PURE__ */ React23.createElement(DesignSystemConfigurationContext.Provider, { value: contextValue }, /* @__PURE__ */ React23.createElement(OpenPortalsProvider, null, /* @__PURE__ */ React23.createElement(DialogProvider, null, /* @__PURE__ */ React23.createElement(ToastProvider, null, /* @__PURE__ */ React23.createElement(FloatingWindowProvider, null, children)))));
2225
2226
  }
2226
2227
  );
2227
2228
  function useDesignSystemConfiguration() {
2228
- return React22.useContext(DesignSystemConfigurationContext);
2229
+ return React23.useContext(DesignSystemConfigurationContext);
2229
2230
  }
2230
2231
 
2231
2232
  // src/utils/withSeparatorElements.ts
@@ -2322,7 +2323,7 @@ function getKeyboardShortcutsForMenuItems(menuItems, onSelect) {
2322
2323
  var ShortcutElement = ({
2323
2324
  children,
2324
2325
  fixedWidth
2325
- }) => /* @__PURE__ */ React23.createElement(
2326
+ }) => /* @__PURE__ */ React24.createElement(
2326
2327
  "kbd",
2327
2328
  {
2328
2329
  className: cx(
@@ -2338,7 +2339,7 @@ var KeyboardShortcut = memo10(function KeyboardShortcut2({
2338
2339
  }) {
2339
2340
  const platform = useDesignSystemConfiguration().platform;
2340
2341
  const { keys, separator: separator2 } = getShortcutDisplayParts(shortcut, platform);
2341
- const keyElements = keys.map((key) => /* @__PURE__ */ React23.createElement(
2342
+ const keyElements = keys.map((key) => /* @__PURE__ */ React24.createElement(
2342
2343
  ShortcutElement,
2343
2344
  {
2344
2345
  key,
@@ -2346,9 +2347,9 @@ var KeyboardShortcut = memo10(function KeyboardShortcut2({
2346
2347
  },
2347
2348
  key
2348
2349
  ));
2349
- return /* @__PURE__ */ React23.createElement(React23.Fragment, null, separator2 ? withSeparatorElements(
2350
+ return /* @__PURE__ */ React24.createElement(React24.Fragment, null, separator2 ? withSeparatorElements(
2350
2351
  keyElements,
2351
- /* @__PURE__ */ React23.createElement(ShortcutElement, null, separator2)
2352
+ /* @__PURE__ */ React24.createElement(ShortcutElement, null, separator2)
2352
2353
  ) : keyElements);
2353
2354
  });
2354
2355
  var SectionHeader = memo10(function SectionHeader2({
@@ -2358,7 +2359,7 @@ var SectionHeader = memo10(function SectionHeader2({
2358
2359
  isFirst,
2359
2360
  indented
2360
2361
  }) {
2361
- return /* @__PURE__ */ React23.createElement(
2362
+ return /* @__PURE__ */ React24.createElement(
2362
2363
  "span",
2363
2364
  {
2364
2365
  id,
@@ -2373,7 +2374,7 @@ var SectionHeader = memo10(function SectionHeader2({
2373
2374
  }
2374
2375
  )
2375
2376
  },
2376
- indented && /* @__PURE__ */ React23.createElement(
2377
+ indented && /* @__PURE__ */ React24.createElement(
2377
2378
  Spacer.Horizontal,
2378
2379
  {
2379
2380
  size: CHECKBOX_WIDTH - CHECKBOX_RIGHT_INSET + CHECKBOX_INDENT_WIDTH
@@ -2385,11 +2386,11 @@ var SectionHeader = memo10(function SectionHeader2({
2385
2386
 
2386
2387
  // src/components/internal/MenuViewport.tsx
2387
2388
  import { ChevronRightIcon } from "@noya-app/noya-icons";
2388
- import React25 from "react";
2389
+ import React26 from "react";
2389
2390
 
2390
2391
  // src/components/internal/SelectItem.tsx
2391
- import React24, { useCallback as useCallback14 } from "react";
2392
- var SelectItem = React24.forwardRef(
2392
+ import React25, { useCallback as useCallback14 } from "react";
2393
+ var SelectItem = React25.forwardRef(
2393
2394
  ({
2394
2395
  children,
2395
2396
  icon,
@@ -2414,7 +2415,7 @@ var SelectItem = React24.forwardRef(
2414
2415
  []
2415
2416
  );
2416
2417
  if (checked && Components4.CheckboxItem) {
2417
- return /* @__PURE__ */ React24.createElement("div", { className: "px-1" }, /* @__PURE__ */ React24.createElement(
2418
+ return /* @__PURE__ */ React25.createElement("div", { className: "px-1" }, /* @__PURE__ */ React25.createElement(
2418
2419
  Components4.CheckboxItem,
2419
2420
  {
2420
2421
  checked,
@@ -2426,14 +2427,14 @@ var SelectItem = React24.forwardRef(
2426
2427
  testSelected && styles.testSelectedItemStyle
2427
2428
  )
2428
2429
  },
2429
- /* @__PURE__ */ React24.createElement(Spacer.Horizontal, { size: CHECKBOX_INDENT_WIDTH }),
2430
- Components4.ItemIndicator && /* @__PURE__ */ React24.createElement(Components4.ItemIndicator, { ...styles.itemIndicator }, /* @__PURE__ */ React24.createElement(Checkmark, null)),
2431
- icon && /* @__PURE__ */ React24.createElement(React24.Fragment, null, renderIcon(icon), /* @__PURE__ */ React24.createElement(Spacer.Horizontal, { size: 8 })),
2430
+ /* @__PURE__ */ React25.createElement(Spacer.Horizontal, { size: CHECKBOX_INDENT_WIDTH }),
2431
+ Components4.ItemIndicator && /* @__PURE__ */ React25.createElement(Components4.ItemIndicator, { ...styles.itemIndicator }, /* @__PURE__ */ React25.createElement(Checkmark, null)),
2432
+ icon && /* @__PURE__ */ React25.createElement(React25.Fragment, null, renderIcon(icon), /* @__PURE__ */ React25.createElement(Spacer.Horizontal, { size: 8 })),
2432
2433
  children,
2433
- shortcut && /* @__PURE__ */ React24.createElement(React24.Fragment, null, /* @__PURE__ */ React24.createElement(Spacer.Horizontal, null), /* @__PURE__ */ React24.createElement(Spacer.Horizontal, { size: 24 }), /* @__PURE__ */ React24.createElement(KeyboardShortcut, { shortcut }))
2434
+ shortcut && /* @__PURE__ */ React25.createElement(React25.Fragment, null, /* @__PURE__ */ React25.createElement(Spacer.Horizontal, null), /* @__PURE__ */ React25.createElement(Spacer.Horizontal, { size: 24 }), /* @__PURE__ */ React25.createElement(KeyboardShortcut, { shortcut }))
2434
2435
  ));
2435
2436
  }
2436
- return /* @__PURE__ */ React24.createElement("div", { className: "px-1" }, /* @__PURE__ */ React24.createElement(
2437
+ return /* @__PURE__ */ React25.createElement("div", { className: "px-1" }, /* @__PURE__ */ React25.createElement(
2437
2438
  Components4.Item,
2438
2439
  {
2439
2440
  className: cx(
@@ -2448,12 +2449,12 @@ var SelectItem = React24.forwardRef(
2448
2449
  onSelect: handleSelectItem,
2449
2450
  ...props
2450
2451
  },
2451
- /* @__PURE__ */ React24.createElement("div", { className: "flex flex-1 items-center" }, indented && /* @__PURE__ */ React24.createElement(Spacer.Horizontal, { size: CHECKBOX_INDENT_WIDTH }), checked ? /* @__PURE__ */ React24.createElement("div", { ...styles.itemIndicator }, /* @__PURE__ */ React24.createElement(Checkmark, null)) : indented ? /* @__PURE__ */ React24.createElement(Spacer.Horizontal, { size: CHECKBOX_WIDTH - CHECKBOX_RIGHT_INSET }) : null, icon && /* @__PURE__ */ React24.createElement(React24.Fragment, null, renderIcon(icon), /* @__PURE__ */ React24.createElement(Spacer.Horizontal, { size: 8 })), /* @__PURE__ */ React24.createElement(Components4.ItemText, null, children), shortcut && /* @__PURE__ */ React24.createElement(React24.Fragment, null, /* @__PURE__ */ React24.createElement(Spacer.Horizontal, null), /* @__PURE__ */ React24.createElement(Spacer.Horizontal, { size: 24 }), /* @__PURE__ */ React24.createElement(KeyboardShortcut, { shortcut })))
2452
+ /* @__PURE__ */ React25.createElement("div", { className: "flex flex-1 items-center" }, indented && /* @__PURE__ */ React25.createElement(Spacer.Horizontal, { size: CHECKBOX_INDENT_WIDTH }), checked ? /* @__PURE__ */ React25.createElement("div", { ...styles.itemIndicator }, /* @__PURE__ */ React25.createElement(Checkmark, null)) : indented ? /* @__PURE__ */ React25.createElement(Spacer.Horizontal, { size: CHECKBOX_WIDTH - CHECKBOX_RIGHT_INSET }) : null, icon && /* @__PURE__ */ React25.createElement(React25.Fragment, null, renderIcon(icon), /* @__PURE__ */ React25.createElement(Spacer.Horizontal, { size: 8 })), /* @__PURE__ */ React25.createElement(Components4.ItemText, null, children), shortcut && /* @__PURE__ */ React25.createElement(React25.Fragment, null, /* @__PURE__ */ React25.createElement(Spacer.Horizontal, null), /* @__PURE__ */ React25.createElement(Spacer.Horizontal, { size: 24 }), /* @__PURE__ */ React25.createElement(KeyboardShortcut, { shortcut })))
2452
2453
  ));
2453
2454
  }
2454
2455
  );
2455
2456
  function Checkmark() {
2456
- return /* @__PURE__ */ React24.createElement(
2457
+ return /* @__PURE__ */ React25.createElement(
2457
2458
  "svg",
2458
2459
  {
2459
2460
  viewBox: "0 0 15 15",
@@ -2463,7 +2464,7 @@ function Checkmark() {
2463
2464
  width: 15,
2464
2465
  height: 15
2465
2466
  },
2466
- /* @__PURE__ */ React24.createElement(
2467
+ /* @__PURE__ */ React25.createElement(
2467
2468
  "path",
2468
2469
  {
2469
2470
  className: "scale-90 origin-center",
@@ -2487,10 +2488,10 @@ var MenuViewport = ({
2487
2488
  const hasCheckedItem = items.some(
2488
2489
  (item) => item.type !== "separator" && item.type !== "sectionHeader" && item.checked
2489
2490
  );
2490
- return /* @__PURE__ */ React25.createElement(React25.Fragment, null, items.map((item, index) => {
2491
+ return /* @__PURE__ */ React26.createElement(React26.Fragment, null, items.map((item, index) => {
2491
2492
  switch (item.type) {
2492
2493
  case "separator":
2493
- return /* @__PURE__ */ React25.createElement(
2494
+ return /* @__PURE__ */ React26.createElement(
2494
2495
  Components4.Separator,
2495
2496
  {
2496
2497
  key: index,
@@ -2498,7 +2499,7 @@ var MenuViewport = ({
2498
2499
  }
2499
2500
  );
2500
2501
  case "sectionHeader":
2501
- return /* @__PURE__ */ React25.createElement(
2502
+ return /* @__PURE__ */ React26.createElement(
2502
2503
  SectionHeader,
2503
2504
  {
2504
2505
  isFirst: index === 0,
@@ -2509,7 +2510,7 @@ var MenuViewport = ({
2509
2510
  );
2510
2511
  case "submenu":
2511
2512
  if (item.items && Components4.Sub && Components4.SubTrigger && Components4.SubContent && Components4.Portal) {
2512
- return /* @__PURE__ */ React25.createElement(Components4.Sub, { key: item.id }, /* @__PURE__ */ React25.createElement(
2513
+ return /* @__PURE__ */ React26.createElement(Components4.Sub, { key: item.id }, /* @__PURE__ */ React26.createElement(
2513
2514
  Components4.SubTrigger,
2514
2515
  {
2515
2516
  className: cx(
@@ -2523,7 +2524,7 @@ var MenuViewport = ({
2523
2524
  },
2524
2525
  disabled: item.disabled
2525
2526
  },
2526
- /* @__PURE__ */ React25.createElement(
2527
+ /* @__PURE__ */ React26.createElement(
2527
2528
  SelectItem,
2528
2529
  {
2529
2530
  value: item.id,
@@ -2534,17 +2535,17 @@ var MenuViewport = ({
2534
2535
  indented: hasCheckedItem,
2535
2536
  disabled: item.disabled
2536
2537
  },
2537
- /* @__PURE__ */ React25.createElement("div", { className: "flex items-center flex-1" }, item.title),
2538
- /* @__PURE__ */ React25.createElement(ChevronRightIcon, { className: "-mr-1" })
2538
+ /* @__PURE__ */ React26.createElement("div", { className: "flex items-center flex-1" }, item.title),
2539
+ /* @__PURE__ */ React26.createElement(ChevronRightIcon, { className: "-mr-1" })
2539
2540
  )
2540
- ), /* @__PURE__ */ React25.createElement(Components4.Portal, null, /* @__PURE__ */ React25.createElement(
2541
+ ), /* @__PURE__ */ React26.createElement(Components4.Portal, null, /* @__PURE__ */ React26.createElement(
2541
2542
  Components4.SubContent,
2542
2543
  {
2543
2544
  ...portalScopeProps(portalScopeId),
2544
2545
  alignOffset: -5,
2545
2546
  className: styles.contentStyle
2546
2547
  },
2547
- /* @__PURE__ */ React25.createElement(
2548
+ /* @__PURE__ */ React26.createElement(
2548
2549
  MenuViewport,
2549
2550
  {
2550
2551
  items: item.items,
@@ -2555,7 +2556,7 @@ var MenuViewport = ({
2555
2556
  )));
2556
2557
  } else return null;
2557
2558
  default:
2558
- return /* @__PURE__ */ React25.createElement(
2559
+ return /* @__PURE__ */ React26.createElement(
2559
2560
  SelectItem,
2560
2561
  {
2561
2562
  key: item.value,
@@ -2578,7 +2579,7 @@ var MenuViewport = ({
2578
2579
  // src/components/DropdownMenu.tsx
2579
2580
  var Components = {
2580
2581
  Separator: RadixDropdownMenu.Separator,
2581
- ItemText: React26.Fragment,
2582
+ ItemText: React27.Fragment,
2582
2583
  Item: RadixDropdownMenu.Item,
2583
2584
  CheckboxItem: RadixDropdownMenu.CheckboxItem,
2584
2585
  ItemIndicator: RadixDropdownMenu.ItemIndicator,
@@ -2618,14 +2619,14 @@ var DropdownMenuRoot = forwardRefGeneric(function DropdownMenuRoot2(props, forwa
2618
2619
  }),
2619
2620
  [contentStyle]
2620
2621
  );
2621
- return /* @__PURE__ */ React26.createElement(RadixDropdownMenu.Root, { onOpenChange, open }, /* @__PURE__ */ React26.createElement(
2622
+ return /* @__PURE__ */ React27.createElement(RadixDropdownMenu.Root, { onOpenChange, open }, /* @__PURE__ */ React27.createElement(
2622
2623
  RadixDropdownMenu.Trigger,
2623
2624
  {
2624
2625
  ref: forwardedRef,
2625
2626
  asChild: true
2626
2627
  },
2627
2628
  children
2628
- ), /* @__PURE__ */ React26.createElement(RadixDropdownMenu.Portal, null, /* @__PURE__ */ React26.createElement(
2629
+ ), /* @__PURE__ */ React27.createElement(RadixDropdownMenu.Portal, null, /* @__PURE__ */ React27.createElement(
2629
2630
  RadixDropdownMenu.Content,
2630
2631
  {
2631
2632
  ...portalScopeProps(portalScopeId),
@@ -2639,7 +2640,7 @@ var DropdownMenuRoot = forwardRefGeneric(function DropdownMenuRoot2(props, forwa
2639
2640
  ...{ onCloseAutoFocus }
2640
2641
  },
2641
2642
  items.length === 0 ? emptyState : null,
2642
- /* @__PURE__ */ React26.createElement(
2643
+ /* @__PURE__ */ React27.createElement(
2643
2644
  MenuViewport,
2644
2645
  {
2645
2646
  items,
@@ -2670,14 +2671,14 @@ var ActionMenu = memoGeneric(function ActionMenu2({
2670
2671
  ...style2
2671
2672
  };
2672
2673
  }, [selected, style2, variant]);
2673
- return /* @__PURE__ */ React27.createElement(
2674
+ return /* @__PURE__ */ React28.createElement(
2674
2675
  DropdownMenu,
2675
2676
  {
2676
2677
  items: menuItems,
2677
2678
  onSelect,
2678
2679
  onOpenChange
2679
2680
  },
2680
- /* @__PURE__ */ React27.createElement(
2681
+ /* @__PURE__ */ React28.createElement(
2681
2682
  IconButton,
2682
2683
  {
2683
2684
  style: internalStyle,
@@ -2691,16 +2692,16 @@ var ActionMenu = memoGeneric(function ActionMenu2({
2691
2692
  });
2692
2693
 
2693
2694
  // src/components/ActivityIndicator.tsx
2694
- import * as React28 from "react";
2695
- var ActivityIndicator = React28.memo(function ActivityIndicator2({
2695
+ import * as React29 from "react";
2696
+ var ActivityIndicator = React29.memo(function ActivityIndicator2({
2696
2697
  size: size2 = 16,
2697
2698
  opacity = 1,
2698
2699
  color = "black",
2699
2700
  trackColor = "rgba(0, 0, 0, 0.1)",
2700
2701
  className
2701
2702
  }) {
2702
- const opacityStyle = React28.useMemo(() => ({ opacity }), [opacity]);
2703
- const dynamicStyles = React28.useMemo(
2703
+ const opacityStyle = React29.useMemo(() => ({ opacity }), [opacity]);
2704
+ const dynamicStyles = React29.useMemo(
2704
2705
  () => ({
2705
2706
  border: `2px solid ${trackColor}`,
2706
2707
  borderTopColor: color,
@@ -2709,19 +2710,19 @@ var ActivityIndicator = React28.memo(function ActivityIndicator2({
2709
2710
  }),
2710
2711
  [size2, color, trackColor]
2711
2712
  );
2712
- return /* @__PURE__ */ React28.createElement(
2713
+ return /* @__PURE__ */ React29.createElement(
2713
2714
  "div",
2714
2715
  {
2715
2716
  className: cx("flex justify-center items-center", className),
2716
2717
  style: opacityStyle
2717
2718
  },
2718
- /* @__PURE__ */ React28.createElement("div", { style: dynamicStyles, className: "animate-spin rounded-[50%]" })
2719
+ /* @__PURE__ */ React29.createElement("div", { style: dynamicStyles, className: "animate-spin rounded-[50%]" })
2719
2720
  );
2720
2721
  });
2721
2722
 
2722
2723
  // src/components/Avatar.tsx
2723
2724
  import * as AvatarPrimitive from "@radix-ui/react-avatar";
2724
- import React29, { forwardRef as forwardRef10, useMemo as useMemo14 } from "react";
2725
+ import React30, { forwardRef as forwardRef10, useMemo as useMemo14 } from "react";
2725
2726
 
2726
2727
  // src/utils/colorFromString.ts
2727
2728
  var colorForStringValues = {
@@ -2790,7 +2791,7 @@ var getInnerAvatarStyles = (size2, variant) => {
2790
2791
  minHeight: dimension
2791
2792
  };
2792
2793
  };
2793
- var AvatarRoot = React29.forwardRef(
2794
+ var AvatarRoot = React30.forwardRef(
2794
2795
  ({
2795
2796
  className,
2796
2797
  size: size2 = 21,
@@ -2809,7 +2810,7 @@ var AvatarRoot = React29.forwardRef(
2809
2810
  }),
2810
2811
  [backgroundColor, size2, style2]
2811
2812
  );
2812
- return /* @__PURE__ */ React29.createElement(
2813
+ return /* @__PURE__ */ React30.createElement(
2813
2814
  AvatarPrimitive.Root,
2814
2815
  {
2815
2816
  ref,
@@ -2824,8 +2825,8 @@ var AvatarRoot = React29.forwardRef(
2824
2825
  );
2825
2826
  }
2826
2827
  );
2827
- var AvatarImage = React29.forwardRef(({ className, size: size2 = 21, variant = "normal", ...props }, ref) => {
2828
- return /* @__PURE__ */ React29.createElement(
2828
+ var AvatarImage = React30.forwardRef(({ className, size: size2 = 21, variant = "normal", ...props }, ref) => {
2829
+ return /* @__PURE__ */ React30.createElement(
2829
2830
  AvatarPrimitive.Image,
2830
2831
  {
2831
2832
  ref,
@@ -2841,9 +2842,9 @@ var AvatarImage = React29.forwardRef(({ className, size: size2 = 21, variant = "
2841
2842
  function getMonogram(text) {
2842
2843
  return text?.at(0)?.toLocaleUpperCase();
2843
2844
  }
2844
- var AvatarFallback = React29.forwardRef(
2845
+ var AvatarFallback = React30.forwardRef(
2845
2846
  ({ className, children, style: style2, size: size2 = 21, backgroundColor, ...props }, ref) => {
2846
- return /* @__PURE__ */ React29.createElement(
2847
+ return /* @__PURE__ */ React30.createElement(
2847
2848
  AvatarPrimitive.Fallback,
2848
2849
  {
2849
2850
  ref,
@@ -2864,7 +2865,7 @@ var AvatarFallback = React29.forwardRef(
2864
2865
  );
2865
2866
  }
2866
2867
  );
2867
- var Avatar = React29.memo(
2868
+ var Avatar = React30.memo(
2868
2869
  forwardRef10(function Avatar2({
2869
2870
  image,
2870
2871
  name,
@@ -2877,7 +2878,7 @@ var Avatar = React29.memo(
2877
2878
  ...props
2878
2879
  }, forwardedRef) {
2879
2880
  const getBackgroundColor = backgroundColor ?? colorFromString(userId ?? name ?? "");
2880
- return /* @__PURE__ */ React29.createElement(
2881
+ return /* @__PURE__ */ React30.createElement(
2881
2882
  AvatarRoot,
2882
2883
  {
2883
2884
  ref: forwardedRef,
@@ -2887,7 +2888,7 @@ var Avatar = React29.memo(
2887
2888
  className,
2888
2889
  ...props
2889
2890
  },
2890
- image ? /* @__PURE__ */ React29.createElement(AvatarImage, { src: image, alt: name, size: size2, variant }) : /* @__PURE__ */ React29.createElement(
2891
+ image ? /* @__PURE__ */ React30.createElement(AvatarImage, { src: image, alt: name, size: size2, variant }) : /* @__PURE__ */ React30.createElement(
2891
2892
  AvatarFallback,
2892
2893
  {
2893
2894
  backgroundColor: getBackgroundColor,
@@ -2899,31 +2900,31 @@ var Avatar = React29.memo(
2899
2900
  );
2900
2901
  })
2901
2902
  );
2902
- var OverflowAvatar = React29.memo(function OverflowAvatar2({
2903
+ var OverflowAvatar = React30.memo(function OverflowAvatar2({
2903
2904
  size: size2 = 21,
2904
2905
  count
2905
2906
  }) {
2906
- return /* @__PURE__ */ React29.createElement(AvatarRoot, { size: size2, backgroundColor: "var(--n-text-disabled)", disabled: true }, /* @__PURE__ */ React29.createElement(AvatarFallback, { backgroundColor: "var(--n-text-disabled)", size: size2 }, "+", count));
2907
+ return /* @__PURE__ */ React30.createElement(AvatarRoot, { size: size2, backgroundColor: "var(--n-text-disabled)", disabled: true }, /* @__PURE__ */ React30.createElement(AvatarFallback, { backgroundColor: "var(--n-text-disabled)", size: size2 }, "+", count));
2907
2908
  });
2908
- var AvatarStack = React29.memo(function AvatarStack2({
2909
+ var AvatarStack = React30.memo(function AvatarStack2({
2909
2910
  size: size2 = 21,
2910
2911
  children,
2911
2912
  max = 3,
2912
2913
  className
2913
2914
  }) {
2914
- const avatarCount = React29.Children.count(children);
2915
+ const avatarCount = React30.Children.count(children);
2915
2916
  const overflowCount = avatarCount - max;
2916
2917
  const childrenArray = useMemo14(() => {
2917
- const processedChildren = React29.Children.toArray(children).map((child) => React29.cloneElement(child, { size: size2 })).slice(0, max);
2918
+ const processedChildren = React30.Children.toArray(children).map((child) => React30.cloneElement(child, { size: size2 })).slice(0, max);
2918
2919
  if (avatarCount > max) {
2919
2920
  return [
2920
- /* @__PURE__ */ React29.createElement(OverflowAvatar, { key: "overflow", size: size2, count: overflowCount }),
2921
+ /* @__PURE__ */ React30.createElement(OverflowAvatar, { key: "overflow", size: size2, count: overflowCount }),
2921
2922
  ...processedChildren
2922
2923
  ];
2923
2924
  }
2924
2925
  return processedChildren;
2925
2926
  }, [children, max, size2, avatarCount, overflowCount]);
2926
- return /* @__PURE__ */ React29.createElement(
2927
+ return /* @__PURE__ */ React30.createElement(
2927
2928
  "div",
2928
2929
  {
2929
2930
  className: cx(
@@ -2933,7 +2934,7 @@ var AvatarStack = React29.memo(function AvatarStack2({
2933
2934
  )
2934
2935
  },
2935
2936
  childrenArray.map((child, index) => {
2936
- return /* @__PURE__ */ React29.createElement(
2937
+ return /* @__PURE__ */ React30.createElement(
2937
2938
  "div",
2938
2939
  {
2939
2940
  className: cx("relative", size2 > 36 ? "-ml-3" : "-ml-1.5"),
@@ -2946,10 +2947,10 @@ var AvatarStack = React29.memo(function AvatarStack2({
2946
2947
  });
2947
2948
 
2948
2949
  // src/components/NoyaLogo.tsx
2949
- import React30, { forwardRef as forwardRef11 } from "react";
2950
+ import React31, { forwardRef as forwardRef11 } from "react";
2950
2951
  var Logo = forwardRef11(function Logo2(props, ref) {
2951
2952
  const fill = props.fill || cssVars.colors.logoFill;
2952
- return /* @__PURE__ */ React30.createElement(
2953
+ return /* @__PURE__ */ React31.createElement(
2953
2954
  "svg",
2954
2955
  {
2955
2956
  ref,
@@ -2959,14 +2960,14 @@ var Logo = forwardRef11(function Logo2(props, ref) {
2959
2960
  ...props,
2960
2961
  className: "w-6 aspect-[24/26]"
2961
2962
  },
2962
- /* @__PURE__ */ React30.createElement(
2963
+ /* @__PURE__ */ React31.createElement(
2963
2964
  "path",
2964
2965
  {
2965
2966
  d: "M6.5 3H2V12H5V6H6.5C7.32843 6 8 6.67157 8 7.5V12H11V7.5C11 5.01472 8.98528 3 6.5 3Z",
2966
2967
  fill
2967
2968
  }
2968
2969
  ),
2969
- /* @__PURE__ */ React30.createElement(
2970
+ /* @__PURE__ */ React31.createElement(
2970
2971
  "path",
2971
2972
  {
2972
2973
  fillRule: "evenodd",
@@ -2975,14 +2976,14 @@ var Logo = forwardRef11(function Logo2(props, ref) {
2975
2976
  fill
2976
2977
  }
2977
2978
  ),
2978
- /* @__PURE__ */ React30.createElement(
2979
+ /* @__PURE__ */ React31.createElement(
2979
2980
  "path",
2980
2981
  {
2981
2982
  d: "M5 14H2V18.5C2 20.9853 4.01472 23 6.5 23H8V26H11V17H8V20H6.5C5.67157 20 5 19.3284 5 18.5V14Z",
2982
2983
  fill
2983
2984
  }
2984
2985
  ),
2985
- /* @__PURE__ */ React30.createElement(
2986
+ /* @__PURE__ */ React31.createElement(
2986
2987
  "path",
2987
2988
  {
2988
2989
  fillRule: "evenodd",
@@ -2995,10 +2996,10 @@ var Logo = forwardRef11(function Logo2(props, ref) {
2995
2996
  });
2996
2997
 
2997
2998
  // src/components/ai-assistant/AIAssistantLayout.tsx
2998
- import React32, { forwardRef as forwardRef13 } from "react";
2999
+ import React33, { forwardRef as forwardRef13 } from "react";
2999
3000
 
3000
3001
  // src/components/TextArea.tsx
3001
- import React31, {
3002
+ import React32, {
3002
3003
  forwardRef as forwardRef12,
3003
3004
  memo as memo12,
3004
3005
  useCallback as useCallback15,
@@ -3044,7 +3045,7 @@ var TextArea = memo12(
3044
3045
  },
3045
3046
  [autoResize, autoResizeRef, forwardedRef]
3046
3047
  );
3047
- return /* @__PURE__ */ React31.createElement(
3048
+ return /* @__PURE__ */ React32.createElement(
3048
3049
  "textarea",
3049
3050
  {
3050
3051
  className: cx(
@@ -3069,31 +3070,31 @@ var TextAreaRow = memo12(
3069
3070
  endClassName,
3070
3071
  ...rest
3071
3072
  }, forwardedRef) {
3072
- return /* @__PURE__ */ React31.createElement(
3073
+ return /* @__PURE__ */ React32.createElement(
3073
3074
  "div",
3074
3075
  {
3075
3076
  ref: forwardedRef,
3076
3077
  className: cx("relative w-full h-full", className)
3077
3078
  },
3078
- /* @__PURE__ */ React31.createElement(TextArea, { className: textAreaClassName, ...rest, ref: textAreaRef }),
3079
- /* @__PURE__ */ React31.createElement("div", { className: cx("absolute right-1 top-4", endClassName) }, end)
3079
+ /* @__PURE__ */ React32.createElement(TextArea, { className: textAreaClassName, ...rest, ref: textAreaRef }),
3080
+ /* @__PURE__ */ React32.createElement("div", { className: cx("absolute right-1 top-4", endClassName) }, end)
3080
3081
  );
3081
3082
  })
3082
3083
  );
3083
3084
 
3084
3085
  // src/components/ai-assistant/AIAssistantLayout.tsx
3085
3086
  var AIAssistantLoadingIndicator = () => {
3086
- return /* @__PURE__ */ React32.createElement("div", { className: "flex gap-2" }, /* @__PURE__ */ React32.createElement(
3087
+ return /* @__PURE__ */ React33.createElement("div", { className: "flex gap-2" }, /* @__PURE__ */ React33.createElement(
3087
3088
  Avatar,
3088
3089
  {
3089
3090
  name: "Assistant",
3090
3091
  size: INPUT_HEIGHT,
3091
3092
  backgroundColor: cssVars.colors.primaryPastel
3092
3093
  },
3093
- /* @__PURE__ */ React32.createElement(Logo, { style: { width: 15 }, fill: cssVars.colors.primary })
3094
- ), /* @__PURE__ */ React32.createElement("div", { className: "animate-pulse" }, "\u258B"));
3094
+ /* @__PURE__ */ React33.createElement(Logo, { style: { width: 15 }, fill: cssVars.colors.primary })
3095
+ ), /* @__PURE__ */ React33.createElement("div", { className: "animate-pulse" }, "\u258B"));
3095
3096
  };
3096
- var AIAssistantInput = forwardRef13(({ value, onChange, onSubmitClick, onKeyDown, disabled }, ref) => /* @__PURE__ */ React32.createElement(
3097
+ var AIAssistantInput = forwardRef13(({ value, onChange, onSubmitClick, onKeyDown, disabled }, ref) => /* @__PURE__ */ React33.createElement(
3097
3098
  TextAreaRow,
3098
3099
  {
3099
3100
  autoResize: true,
@@ -3105,7 +3106,7 @@ var AIAssistantInput = forwardRef13(({ value, onChange, onSubmitClick, onKeyDown
3105
3106
  placeholder: "Tell me what you'd like to do...",
3106
3107
  onKeyDown,
3107
3108
  disabled,
3108
- end: /* @__PURE__ */ React32.createElement(
3109
+ end: /* @__PURE__ */ React33.createElement(
3109
3110
  IconButton,
3110
3111
  {
3111
3112
  iconName: "ArrowUpIcon",
@@ -3130,18 +3131,18 @@ var AIAssistantLayout = forwardRef13(
3130
3131
  className,
3131
3132
  style: style2
3132
3133
  }, ref) => {
3133
- return /* @__PURE__ */ React32.createElement("div", { className: cx("flex flex-col flex-1", className), style: style2 }, /* @__PURE__ */ React32.createElement("div", { className: "flex-1 min-h-0 overflow-auto", ref }, /* @__PURE__ */ React32.createElement("div", { className: "flex flex-col gap-2 pb-4 pt-1" }, renderMessages(), isLoading ? renderLoadingIndicator?.() : null)), /* @__PURE__ */ React32.createElement("div", { className: "border-t border-divider pt-1 px-1" }, renderInput()));
3134
+ return /* @__PURE__ */ React33.createElement("div", { className: cx("flex flex-col flex-1", className), style: style2 }, /* @__PURE__ */ React33.createElement("div", { className: "flex-1 min-h-0 overflow-auto", ref }, /* @__PURE__ */ React33.createElement("div", { className: "flex flex-col gap-2 pb-4 pt-1" }, renderMessages(), isLoading ? renderLoadingIndicator?.() : null)), /* @__PURE__ */ React33.createElement("div", { className: "border-t border-divider pt-1 px-1" }, renderInput()));
3134
3135
  }
3135
3136
  );
3136
3137
 
3137
3138
  // src/components/AnimatePresence.tsx
3138
3139
  import { isDeepEqual as isDeepEqual3 } from "@noya-app/noya-utils";
3139
- import React33, {
3140
+ import React34, {
3140
3141
  Children as Children2,
3141
3142
  isValidElement as isValidElement2,
3142
3143
  useCallback as useCallback16,
3143
3144
  useEffect as useEffect14,
3144
- useLayoutEffect as useLayoutEffect5,
3145
+ useLayoutEffect as useLayoutEffect4,
3145
3146
  useRef as useRef14,
3146
3147
  useState as useState17
3147
3148
  } from "react";
@@ -3181,7 +3182,7 @@ var PresenceChild = ({
3181
3182
  willChange: "opacity",
3182
3183
  backfaceVisibility: "hidden"
3183
3184
  };
3184
- useLayoutEffect5(() => {
3185
+ useLayoutEffect4(() => {
3185
3186
  let rafId;
3186
3187
  if (isPresent && animationState !== "entered") {
3187
3188
  if (isInitialMount.current && skipInitialAnimation) {
@@ -3216,7 +3217,7 @@ var PresenceChild = ({
3216
3217
  if (animationState === "exited" && !isPresent) {
3217
3218
  return null;
3218
3219
  }
3219
- return /* @__PURE__ */ React33.createElement("div", { style: mergedAnimationStyles[animationState], className }, children);
3220
+ return /* @__PURE__ */ React34.createElement("div", { style: mergedAnimationStyles[animationState], className }, children);
3220
3221
  };
3221
3222
  var AnimatePresence = ({
3222
3223
  children,
@@ -3291,7 +3292,7 @@ var AnimatePresence = ({
3291
3292
  return filtered;
3292
3293
  });
3293
3294
  }, []);
3294
- return /* @__PURE__ */ React33.createElement(React33.Fragment, null, mountedChildren.map(({ child, isPresent, skipInitialAnimation: skipInitialAnimation2 }) => /* @__PURE__ */ React33.createElement(
3295
+ return /* @__PURE__ */ React34.createElement(React34.Fragment, null, mountedChildren.map(({ child, isPresent, skipInitialAnimation: skipInitialAnimation2 }) => /* @__PURE__ */ React34.createElement(
3295
3296
  PresenceChild,
3296
3297
  {
3297
3298
  key: child.key,
@@ -3307,13 +3308,13 @@ var AnimatePresence = ({
3307
3308
  };
3308
3309
 
3309
3310
  // src/components/Banner.tsx
3310
- import React34 from "react";
3311
+ import React35 from "react";
3311
3312
  var bannerStyles = {
3312
3313
  backgroundColor: cssVars.colors.inputBackground,
3313
3314
  color: cssVars.colors.textDisabled
3314
3315
  };
3315
3316
  function Banner({ label = "No items", className, style: style2 }) {
3316
- return /* @__PURE__ */ React34.createElement(
3317
+ return /* @__PURE__ */ React35.createElement(
3317
3318
  "div",
3318
3319
  {
3319
3320
  className: cx(
@@ -3322,15 +3323,15 @@ function Banner({ label = "No items", className, style: style2 }) {
3322
3323
  ),
3323
3324
  style: { ...bannerStyles, ...style2 }
3324
3325
  },
3325
- /* @__PURE__ */ React34.createElement(Small, { color: "textDisabled" }, label)
3326
+ /* @__PURE__ */ React35.createElement(Small, { color: "textDisabled" }, label)
3326
3327
  );
3327
3328
  }
3328
3329
 
3329
3330
  // src/components/Breadcrumbs.tsx
3330
3331
  import { forwardRef as forwardRef14 } from "react";
3331
- import React35 from "react";
3332
+ import React36 from "react";
3332
3333
  var BreadcrumbText = forwardRef14(function BreadcrumbText2({ children, className, onClick, ...props }, ref) {
3333
- return /* @__PURE__ */ React35.createElement(
3334
+ return /* @__PURE__ */ React36.createElement(
3334
3335
  Text,
3335
3336
  {
3336
3337
  ...props,
@@ -3350,7 +3351,7 @@ var slashStyle = {
3350
3351
  margin: "0 3px"
3351
3352
  };
3352
3353
  var BreadcrumbSlash = () => {
3353
- return /* @__PURE__ */ React35.createElement(
3354
+ return /* @__PURE__ */ React36.createElement(
3354
3355
  "svg",
3355
3356
  {
3356
3357
  width: "7",
@@ -3361,7 +3362,7 @@ var BreadcrumbSlash = () => {
3361
3362
  opacity: 0.5,
3362
3363
  style: slashStyle
3363
3364
  },
3364
- /* @__PURE__ */ React35.createElement(
3365
+ /* @__PURE__ */ React36.createElement(
3365
3366
  "path",
3366
3367
  {
3367
3368
  d: "M1 16L6 1",
@@ -3375,16 +3376,16 @@ var BreadcrumbSlash = () => {
3375
3376
  };
3376
3377
 
3377
3378
  // src/components/Checkbox.tsx
3378
- import * as React36 from "react";
3379
+ import * as React37 from "react";
3379
3380
  var colorSchemeStyles = {
3380
3381
  normal: "text-text-subtle",
3381
3382
  primary: "text-primary",
3382
3383
  secondary: "text-secondary"
3383
3384
  };
3384
- var Checkbox = React36.memo(
3385
- React36.forwardRef(function Checkbox2({ className, style: style2, colorScheme = "secondary", ...props }, ref) {
3385
+ var Checkbox = React37.memo(
3386
+ React37.forwardRef(function Checkbox2({ className, style: style2, colorScheme = "secondary", ...props }, ref) {
3386
3387
  const { fieldId: id } = useLabel({ fieldId: props.id });
3387
- return /* @__PURE__ */ React36.createElement(
3388
+ return /* @__PURE__ */ React37.createElement(
3388
3389
  "div",
3389
3390
  {
3390
3391
  className: cx(
@@ -3394,7 +3395,7 @@ var Checkbox = React36.memo(
3394
3395
  ),
3395
3396
  style: style2
3396
3397
  },
3397
- /* @__PURE__ */ React36.createElement(
3398
+ /* @__PURE__ */ React37.createElement(
3398
3399
  "input",
3399
3400
  {
3400
3401
  ref,
@@ -3423,7 +3424,7 @@ var Checkbox = React36.memo(
3423
3424
  id
3424
3425
  }
3425
3426
  ),
3426
- /* @__PURE__ */ React36.createElement(
3427
+ /* @__PURE__ */ React37.createElement(
3427
3428
  "svg",
3428
3429
  {
3429
3430
  className: `
@@ -3443,7 +3444,7 @@ var Checkbox = React36.memo(
3443
3444
  xmlns: "http://www.w3.org/2000/svg",
3444
3445
  "aria-hidden": "true"
3445
3446
  },
3446
- /* @__PURE__ */ React36.createElement(
3447
+ /* @__PURE__ */ React37.createElement(
3447
3448
  "path",
3448
3449
  {
3449
3450
  d: "M3 6L4.5 7.5L8 4",
@@ -3459,10 +3460,10 @@ var Checkbox = React36.memo(
3459
3460
 
3460
3461
  // src/components/Chip.tsx
3461
3462
  import { Cross1Icon, PlusIcon } from "@noya-app/noya-icons";
3462
- import React38, { forwardRef as forwardRef16, memo as memo14 } from "react";
3463
+ import React39, { forwardRef as forwardRef16, memo as memo14 } from "react";
3463
3464
 
3464
3465
  // src/hooks/useHover.ts
3465
- import * as React37 from "react";
3466
+ import * as React38 from "react";
3466
3467
  var globalIgnoreEmulatedMouseEvents = false;
3467
3468
  var hoverCount = 0;
3468
3469
  function setGlobalIgnoreEmulatedMouseEvents() {
@@ -3492,13 +3493,13 @@ function setupGlobalTouchEvents() {
3492
3493
  }
3493
3494
  function useHover(props = {}) {
3494
3495
  const { onHoverStart, onHoverChange, onHoverEnd, isDisabled } = props;
3495
- const [isHovered, setHovered] = React37.useState(false);
3496
- const state = React37.useRef({
3496
+ const [isHovered, setHovered] = React38.useState(false);
3497
+ const state = React38.useRef({
3497
3498
  isHovered: false,
3498
3499
  ignoreEmulatedMouseEvents: false
3499
3500
  }).current;
3500
- React37.useEffect(setupGlobalTouchEvents, []);
3501
- const hoverProps = React37.useMemo(
3501
+ React38.useEffect(setupGlobalTouchEvents, []);
3502
+ const hoverProps = React38.useMemo(
3502
3503
  function getHoverProps() {
3503
3504
  function triggerHoverStart(event, pointerType) {
3504
3505
  if (isDisabled || pointerType === "touch" || state.isHovered) {
@@ -3644,7 +3645,7 @@ var Chip = memo14(
3644
3645
  className
3645
3646
  );
3646
3647
  const color = colorScheme === "primary" ? cssVars.colors.primary : colorScheme === "secondary" ? cssVars.colors.secondary : cssVars.colors.text;
3647
- return /* @__PURE__ */ React38.createElement(
3648
+ return /* @__PURE__ */ React39.createElement(
3648
3649
  "span",
3649
3650
  {
3650
3651
  ref: forwardedRef,
@@ -3654,7 +3655,7 @@ var Chip = memo14(
3654
3655
  tabIndex,
3655
3656
  ...rest
3656
3657
  },
3657
- addable && /* @__PURE__ */ React38.createElement(
3658
+ addable && /* @__PURE__ */ React39.createElement(
3658
3659
  PlusIcon,
3659
3660
  {
3660
3661
  className: cx(ICON_BASE_STYLES, ICON_SIZE_STYLES[size2].add),
@@ -3666,7 +3667,7 @@ var Chip = memo14(
3666
3667
  }
3667
3668
  ),
3668
3669
  children,
3669
- deletable && /* @__PURE__ */ React38.createElement(
3670
+ deletable && /* @__PURE__ */ React39.createElement(
3670
3671
  Cross1Icon,
3671
3672
  {
3672
3673
  className: cx(ICON_BASE_STYLES, ICON_SIZE_STYLES[size2].delete),
@@ -3683,10 +3684,10 @@ var Chip = memo14(
3683
3684
  );
3684
3685
 
3685
3686
  // src/components/Collection.tsx
3686
- import React51 from "react";
3687
+ import React52 from "react";
3687
3688
 
3688
3689
  // src/components/Grid.tsx
3689
- import React43, { useImperativeHandle as useImperativeHandle3, useRef as useRef17, useState as useState21 } from "react";
3690
+ import React44, { useImperativeHandle as useImperativeHandle3, useRef as useRef17, useState as useState21 } from "react";
3690
3691
 
3691
3692
  // src/utils/selection.ts
3692
3693
  function updateSelection(allIds, selectedIds, clickedId, event) {
@@ -3714,7 +3715,7 @@ function updateSelection(allIds, selectedIds, clickedId, event) {
3714
3715
  }
3715
3716
 
3716
3717
  // src/components/EditableText.tsx
3717
- import React39, {
3718
+ import React40, {
3718
3719
  forwardRef as forwardRef17,
3719
3720
  memo as memo15,
3720
3721
  useCallback as useCallback17,
@@ -3723,7 +3724,7 @@ import React39, {
3723
3724
  useRef as useRef16,
3724
3725
  useState as useState19
3725
3726
  } from "react";
3726
- var defaultRenderPreview = (props) => /* @__PURE__ */ React39.createElement(BreadcrumbText, { ...props });
3727
+ var defaultRenderPreview = (props) => /* @__PURE__ */ React40.createElement(BreadcrumbText, { ...props });
3727
3728
  var EditableText = memo15(
3728
3729
  forwardRef17(function EditableText2({
3729
3730
  value,
@@ -3800,7 +3801,7 @@ var EditableText = memo15(
3800
3801
  style: textStyle,
3801
3802
  className: textClassName
3802
3803
  });
3803
- const input = /* @__PURE__ */ React39.createElement("div", { className: "flex absolute inset-0 -mx-1.5 -my-1" }, /* @__PURE__ */ React39.createElement(InputField2.Root, { onFocusChange: setFocused }, /* @__PURE__ */ React39.createElement(
3804
+ const input = /* @__PURE__ */ React40.createElement("div", { className: "flex absolute inset-0 -mx-1.5 -my-1" }, /* @__PURE__ */ React40.createElement(InputField2.Root, { onFocusChange: setFocused }, /* @__PURE__ */ React40.createElement(
3804
3805
  InputField2.Input,
3805
3806
  {
3806
3807
  ref: inputRef,
@@ -3840,12 +3841,12 @@ var EditableText = memo15(
3840
3841
  }
3841
3842
  }
3842
3843
  )));
3843
- return /* @__PURE__ */ React39.createElement("div", { className: cx("flex relative", className), style: style2 }, preview, focused && !readOnly && input);
3844
+ return /* @__PURE__ */ React40.createElement("div", { className: cx("flex relative", className), style: style2 }, preview, focused && !readOnly && input);
3844
3845
  })
3845
3846
  );
3846
3847
 
3847
3848
  // src/components/GridView.tsx
3848
- import React42, {
3849
+ import React43, {
3849
3850
  createContext as createContext8,
3850
3851
  forwardRef as forwardRef18,
3851
3852
  memo as memo17,
@@ -3857,10 +3858,10 @@ import React42, {
3857
3858
  // src/components/ContextMenu.tsx
3858
3859
  import { useKeyboardShortcuts as useKeyboardShortcuts2 } from "@noya-app/noya-keymap";
3859
3860
  import * as RadixContextMenu from "@radix-ui/react-context-menu";
3860
- import React40, { useCallback as useCallback18, useMemo as useMemo16 } from "react";
3861
+ import React41, { useCallback as useCallback18, useMemo as useMemo16 } from "react";
3861
3862
  var Components2 = {
3862
3863
  Separator: RadixContextMenu.Separator,
3863
- ItemText: React40.Fragment,
3864
+ ItemText: React41.Fragment,
3864
3865
  Item: RadixContextMenu.Item,
3865
3866
  CheckboxItem: RadixContextMenu.CheckboxItem,
3866
3867
  ItemIndicator: RadixContextMenu.ItemIndicator,
@@ -3892,13 +3893,13 @@ function ContextMenuRoot({
3892
3893
  },
3893
3894
  [onSelect]
3894
3895
  );
3895
- return /* @__PURE__ */ React40.createElement(RadixContextMenu.Root, { onOpenChange }, /* @__PURE__ */ React40.createElement(RadixContextMenu.Trigger, { asChild: true, onPointerDown }, children), /* @__PURE__ */ React40.createElement(RadixContextMenu.Portal, null, /* @__PURE__ */ React40.createElement(
3896
+ return /* @__PURE__ */ React41.createElement(RadixContextMenu.Root, { onOpenChange }, /* @__PURE__ */ React41.createElement(RadixContextMenu.Trigger, { asChild: true, onPointerDown }, children), /* @__PURE__ */ React41.createElement(RadixContextMenu.Portal, null, /* @__PURE__ */ React41.createElement(
3896
3897
  RadixContextMenu.Content,
3897
3898
  {
3898
3899
  ...portalScopeProps(portalScopeId),
3899
3900
  className: styles.contentStyle
3900
3901
  },
3901
- /* @__PURE__ */ React40.createElement(
3902
+ /* @__PURE__ */ React41.createElement(
3902
3903
  MenuViewport,
3903
3904
  {
3904
3905
  items,
@@ -3912,26 +3913,26 @@ var ContextMenu = memoGeneric(ContextMenuRoot);
3912
3913
 
3913
3914
  // src/components/ScrollArea.tsx
3914
3915
  import * as RadixScrollArea from "@radix-ui/react-scroll-area";
3915
- import * as React41 from "react";
3916
- var ScrollArea = React41.memo(function ScrollArea2({ children }) {
3917
- const [scrollElementRef, setScrollElementRef] = React41.useState(null);
3918
- return /* @__PURE__ */ React41.createElement("div", { className: "flex-1 min-h-0" }, /* @__PURE__ */ React41.createElement(RadixScrollArea.Root, { style: { width: "100%", height: "100%" } }, /* @__PURE__ */ React41.createElement(
3916
+ import * as React42 from "react";
3917
+ var ScrollArea = React42.memo(function ScrollArea2({ children }) {
3918
+ const [scrollElementRef, setScrollElementRef] = React42.useState(null);
3919
+ return /* @__PURE__ */ React42.createElement("div", { className: "flex-1 min-h-0" }, /* @__PURE__ */ React42.createElement(RadixScrollArea.Root, { style: { width: "100%", height: "100%" } }, /* @__PURE__ */ React42.createElement(
3919
3920
  RadixScrollArea.Viewport,
3920
3921
  {
3921
3922
  className: "w-full h-full [&>div]:block",
3922
- ref: React41.useCallback(
3923
+ ref: React42.useCallback(
3923
3924
  (ref) => setScrollElementRef(ref),
3924
3925
  []
3925
3926
  )
3926
3927
  },
3927
3928
  typeof children === "function" ? scrollElementRef ? children(scrollElementRef) : null : children
3928
- ), /* @__PURE__ */ React41.createElement(
3929
+ ), /* @__PURE__ */ React42.createElement(
3929
3930
  RadixScrollArea.Scrollbar,
3930
3931
  {
3931
3932
  orientation: "vertical",
3932
3933
  className: "scroll-component flex p-[3px] data-[orientation=vertical]:w-[10px]"
3933
3934
  },
3934
- /* @__PURE__ */ React41.createElement(RadixScrollArea.Thumb, { className: "scroll-component flex-1 rounded-[10px] bg-scrollbar" })
3935
+ /* @__PURE__ */ React42.createElement(RadixScrollArea.Thumb, { className: "scroll-component flex-1 rounded-[10px] bg-scrollbar" })
3935
3936
  )));
3936
3937
  });
3937
3938
 
@@ -3940,7 +3941,7 @@ var ItemTitle = ({
3940
3941
  showBackground,
3941
3942
  children
3942
3943
  }) => {
3943
- return /* @__PURE__ */ React42.createElement(
3944
+ return /* @__PURE__ */ React43.createElement(
3944
3945
  "span",
3945
3946
  {
3946
3947
  className: cx(
@@ -3955,7 +3956,7 @@ var ItemDescription = ({
3955
3956
  showBackground,
3956
3957
  children
3957
3958
  }) => {
3958
- return /* @__PURE__ */ React42.createElement(
3959
+ return /* @__PURE__ */ React43.createElement(
3959
3960
  "span",
3960
3961
  {
3961
3962
  className: cx(
@@ -3970,7 +3971,7 @@ var SectionTitle = ({
3970
3971
  last = false,
3971
3972
  children
3972
3973
  }) => {
3973
- return /* @__PURE__ */ React42.createElement(
3974
+ return /* @__PURE__ */ React43.createElement(
3974
3975
  "span",
3975
3976
  {
3976
3977
  className: `font-sans text-heading3 font-medium user-select-none truncate ${last ? "text-text" : "text-text-muted"}`
@@ -4026,7 +4027,7 @@ var GridViewItem = forwardRefGeneric(function GridViewItem2({
4026
4027
  },
4027
4028
  [onSelect, onKeyDown]
4028
4029
  );
4029
- let element = /* @__PURE__ */ React42.createElement(
4030
+ let element = /* @__PURE__ */ React43.createElement(
4030
4031
  "div",
4031
4032
  {
4032
4033
  ...props,
@@ -4049,7 +4050,7 @@ var GridViewItem = forwardRefGeneric(function GridViewItem2({
4049
4050
  onDoubleClick,
4050
4051
  onContextMenu
4051
4052
  },
4052
- /* @__PURE__ */ React42.createElement(
4053
+ /* @__PURE__ */ React43.createElement(
4053
4054
  "div",
4054
4055
  {
4055
4056
  className: cx(
@@ -4060,13 +4061,13 @@ var GridViewItem = forwardRefGeneric(function GridViewItem2({
4060
4061
  },
4061
4062
  children
4062
4063
  ),
4063
- textPosition === "below" && /* @__PURE__ */ React42.createElement(React42.Fragment, null, /* @__PURE__ */ React42.createElement(Spacer.Vertical, { size: 8 }), /* @__PURE__ */ React42.createElement(ItemTitle, null, title || " "), /* @__PURE__ */ React42.createElement(Spacer.Vertical, { size: 2 }), /* @__PURE__ */ React42.createElement(ItemDescription, null, subtitle || " ")),
4064
- textPosition === "overlay" && hovered && (title || subtitle) && /* @__PURE__ */ React42.createElement("div", { className: "absolute inset-0 flex flex-col justify-end items-start p-1 pointer-events-none truncate gap-0.5" }, title && /* @__PURE__ */ React42.createElement(ItemTitle, { showBackground: true }, title), subtitle && /* @__PURE__ */ React42.createElement(ItemDescription, { showBackground: true }, subtitle)),
4065
- action && /* @__PURE__ */ React42.createElement("div", { className: "absolute top-[7px] right-[7px] flex flex-col justify-end items-start p-1 truncate gap-0.5" }, action),
4066
- loading && /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col justify-start items-end p-1 pointer-events-none animate-shimmer absolute inset-0 bg-gradient-to-r from-white/0 via-[rgb(226,232,240)]/50 to-white/0 bg-length:200%_100%]" }, /* @__PURE__ */ React42.createElement(ActivityIndicator, { opacity: 0.5, size: 13 }))
4064
+ textPosition === "below" && /* @__PURE__ */ React43.createElement(React43.Fragment, null, /* @__PURE__ */ React43.createElement(Spacer.Vertical, { size: 8 }), /* @__PURE__ */ React43.createElement(ItemTitle, null, title || " "), /* @__PURE__ */ React43.createElement(Spacer.Vertical, { size: 2 }), /* @__PURE__ */ React43.createElement(ItemDescription, null, subtitle || " ")),
4065
+ textPosition === "overlay" && hovered && (title || subtitle) && /* @__PURE__ */ React43.createElement("div", { className: "absolute inset-0 flex flex-col justify-end items-start p-1 pointer-events-none truncate gap-0.5" }, title && /* @__PURE__ */ React43.createElement(ItemTitle, { showBackground: true }, title), subtitle && /* @__PURE__ */ React43.createElement(ItemDescription, { showBackground: true }, subtitle)),
4066
+ action && /* @__PURE__ */ React43.createElement("div", { className: "absolute top-[7px] right-[7px] flex flex-col justify-end items-start p-1 truncate gap-0.5" }, action),
4067
+ loading && /* @__PURE__ */ React43.createElement("div", { className: "flex flex-col justify-start items-end p-1 pointer-events-none animate-shimmer absolute inset-0 bg-gradient-to-r from-white/0 via-[rgb(226,232,240)]/50 to-white/0 bg-length:200%_100%]" }, /* @__PURE__ */ React43.createElement(ActivityIndicator, { opacity: 0.5, size: 13 }))
4067
4068
  );
4068
4069
  if (menuItems && onSelectMenuItem) {
4069
- element = /* @__PURE__ */ React42.createElement(
4070
+ element = /* @__PURE__ */ React43.createElement(
4070
4071
  ContextMenu,
4071
4072
  {
4072
4073
  items: menuItems,
@@ -4077,10 +4078,10 @@ var GridViewItem = forwardRefGeneric(function GridViewItem2({
4077
4078
  );
4078
4079
  }
4079
4080
  if (textPosition === "toolip") {
4080
- element = /* @__PURE__ */ React42.createElement(
4081
+ element = /* @__PURE__ */ React43.createElement(
4081
4082
  Tooltip,
4082
4083
  {
4083
- content: /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col gap-0.5" }, /* @__PURE__ */ React42.createElement(ItemTitle, null, title), /* @__PURE__ */ React42.createElement(ItemDescription, null, subtitle))
4084
+ content: /* @__PURE__ */ React43.createElement("div", { className: "flex flex-col gap-0.5" }, /* @__PURE__ */ React43.createElement(ItemTitle, null, title), /* @__PURE__ */ React43.createElement(ItemDescription, null, subtitle))
4084
4085
  },
4085
4086
  element
4086
4087
  );
@@ -4135,8 +4136,8 @@ var GridViewRoot = forwardRef18(function GridViewRoot2({
4135
4136
  categories: ["flex"]
4136
4137
  });
4137
4138
  }, [className, scrollable]);
4138
- const content = /* @__PURE__ */ React42.createElement("div", { className: cx("p-3", contentClassName) }, children);
4139
- return /* @__PURE__ */ React42.createElement(GridViewContext.Provider, { value: contextValue }, /* @__PURE__ */ React42.createElement(
4139
+ const content = /* @__PURE__ */ React43.createElement("div", { className: cx("p-3", contentClassName) }, children);
4140
+ return /* @__PURE__ */ React43.createElement(GridViewContext.Provider, { value: contextValue }, /* @__PURE__ */ React43.createElement(
4140
4141
  "div",
4141
4142
  {
4142
4143
  onClick: handleClick,
@@ -4144,7 +4145,7 @@ var GridViewRoot = forwardRef18(function GridViewRoot2({
4144
4145
  ...props,
4145
4146
  ref: forwardedRef
4146
4147
  },
4147
- scrollable ? /* @__PURE__ */ React42.createElement(ScrollArea, null, content) : content
4148
+ scrollable ? /* @__PURE__ */ React43.createElement(ScrollArea, null, content) : content
4148
4149
  ));
4149
4150
  });
4150
4151
  function GridViewSection({
@@ -4157,8 +4158,8 @@ function GridViewSection({
4157
4158
  gridTemplateColumns: `repeat(auto-fill, minmax(${minColumnWidth}, 1fr))`,
4158
4159
  gap: `${gap}px`
4159
4160
  };
4160
- const isEmpty = React42.Children.count(children) === 0;
4161
- return isEmpty && renderEmptyState ? renderEmptyState() : /* @__PURE__ */ React42.createElement(
4161
+ const isEmpty = React43.Children.count(children) === 0;
4162
+ return isEmpty && renderEmptyState ? renderEmptyState() : /* @__PURE__ */ React43.createElement(
4162
4163
  "div",
4163
4164
  {
4164
4165
  role: "presentation",
@@ -4170,9 +4171,9 @@ function GridViewSection({
4170
4171
  }
4171
4172
  function GridViewSectionHeader({ title }) {
4172
4173
  const grouped = title.split("/");
4173
- return /* @__PURE__ */ React42.createElement("div", { className: "px-5" }, /* @__PURE__ */ React42.createElement(Spacer.Vertical, { size: 24 }), withSeparatorElements(
4174
- grouped.map((title2, index) => /* @__PURE__ */ React42.createElement(SectionTitle, { last: index === grouped.length - 1 }, title2)),
4175
- /* @__PURE__ */ React42.createElement(SectionTitle, null, " / ")
4174
+ return /* @__PURE__ */ React43.createElement("div", { className: "px-5" }, /* @__PURE__ */ React43.createElement(Spacer.Vertical, { size: 24 }), withSeparatorElements(
4175
+ grouped.map((title2, index) => /* @__PURE__ */ React43.createElement(SectionTitle, { last: index === grouped.length - 1 }, title2)),
4176
+ /* @__PURE__ */ React43.createElement(SectionTitle, null, " / ")
4176
4177
  ));
4177
4178
  }
4178
4179
  var GridView;
@@ -4287,7 +4288,7 @@ var Grid = memoGeneric(
4287
4288
  onFilesDrop
4288
4289
  );
4289
4290
  const { minColumnWidth, gap } = getGridSize(size2);
4290
- return /* @__PURE__ */ React43.createElement(
4291
+ return /* @__PURE__ */ React44.createElement(
4291
4292
  GridView.Root,
4292
4293
  {
4293
4294
  role: "listbox",
@@ -4304,7 +4305,7 @@ var Grid = memoGeneric(
4304
4305
  ...dropTargetProps,
4305
4306
  ref: fileDropTargetRef
4306
4307
  },
4307
- items.length > 0 ? /* @__PURE__ */ React43.createElement(GridView.Section, null, items.map((item) => {
4308
+ items.length > 0 ? /* @__PURE__ */ React44.createElement(GridView.Section, null, items.map((item) => {
4308
4309
  const id = getId(item);
4309
4310
  const isDropdownOpen = dropdownOpenId === id;
4310
4311
  const isHovered = testHoveredId === id || currentHoveredId === id || isDropdownOpen;
@@ -4323,7 +4324,7 @@ var Grid = memoGeneric(
4323
4324
  handleSelect(id);
4324
4325
  }
4325
4326
  };
4326
- const action = (isHovered || isSelected) && !isRenaming && (typeof renderAction === "function" ? renderAction({ item, selected: isSelected, onOpenChange }) : renderAction === "menu" && menuItems && /* @__PURE__ */ React43.createElement(
4327
+ const action = (isHovered || isSelected) && !isRenaming && (typeof renderAction === "function" ? renderAction({ item, selected: isSelected, onOpenChange }) : renderAction === "menu" && menuItems && /* @__PURE__ */ React44.createElement(
4327
4328
  ActionMenu,
4328
4329
  {
4329
4330
  menuItems,
@@ -4332,7 +4333,7 @@ var Grid = memoGeneric(
4332
4333
  onOpenChange
4333
4334
  }
4334
4335
  ));
4335
- return /* @__PURE__ */ React43.createElement(
4336
+ return /* @__PURE__ */ React44.createElement(
4336
4337
  GridView.Item,
4337
4338
  {
4338
4339
  key: id,
@@ -4345,7 +4346,7 @@ var Grid = memoGeneric(
4345
4346
  onHoverChange: (isHovering) => {
4346
4347
  setHoveredId(isHovering ? id : void 0);
4347
4348
  },
4348
- title: /* @__PURE__ */ React43.createElement(
4349
+ title: /* @__PURE__ */ React44.createElement(
4349
4350
  EditableText,
4350
4351
  {
4351
4352
  tabIndex: isRenaming ? void 0 : -1,
@@ -4362,7 +4363,7 @@ var Grid = memoGeneric(
4362
4363
  },
4363
4364
  textClassName: "bg-listview-editing-background max-h-input-height"
4364
4365
  },
4365
- (props2) => /* @__PURE__ */ React43.createElement(
4366
+ (props2) => /* @__PURE__ */ React44.createElement(
4366
4367
  "span",
4367
4368
  {
4368
4369
  ...props2,
@@ -4373,7 +4374,7 @@ var Grid = memoGeneric(
4373
4374
  }
4374
4375
  )
4375
4376
  ),
4376
- subtitle: /* @__PURE__ */ React43.createElement(
4377
+ subtitle: /* @__PURE__ */ React44.createElement(
4377
4378
  "span",
4378
4379
  {
4379
4380
  className: cx(
@@ -4407,7 +4408,7 @@ var Grid = memoGeneric(
4407
4408
  }
4408
4409
  }
4409
4410
  },
4410
- thumbnail && /* @__PURE__ */ React43.createElement(
4411
+ thumbnail && /* @__PURE__ */ React44.createElement(
4411
4412
  "div",
4412
4413
  {
4413
4414
  className: cx(
@@ -4425,12 +4426,12 @@ var Grid = memoGeneric(
4425
4426
  );
4426
4427
 
4427
4428
  // src/components/List.tsx
4428
- import React50, { memo as memo19, useImperativeHandle as useImperativeHandle5, useRef as useRef20, useState as useState23 } from "react";
4429
+ import React51, { memo as memo19, useImperativeHandle as useImperativeHandle5, useRef as useRef20, useState as useState23 } from "react";
4429
4430
 
4430
4431
  // src/components/ListView.tsx
4431
4432
  import { range } from "@noya-app/noya-utils";
4432
4433
  import { composeRefs as composeRefs2 } from "@radix-ui/react-compose-refs";
4433
- import React48, {
4434
+ import React49, {
4434
4435
  Children as Children3,
4435
4436
  createContext as createContext11,
4436
4437
  forwardRef as forwardRef19,
@@ -4439,7 +4440,7 @@ import React48, {
4439
4440
  useCallback as useCallback23,
4440
4441
  useContext as useContext11,
4441
4442
  useImperativeHandle as useImperativeHandle4,
4442
- useLayoutEffect as useLayoutEffect6,
4443
+ useLayoutEffect as useLayoutEffect5,
4443
4444
  useMemo as useMemo21,
4444
4445
  useRef as useRef19
4445
4446
  } from "react";
@@ -4477,13 +4478,13 @@ import {
4477
4478
  useSortable,
4478
4479
  verticalListSortingStrategy
4479
4480
  } from "@dnd-kit/sortable";
4480
- import * as React47 from "react";
4481
+ import * as React48 from "react";
4481
4482
 
4482
4483
  // src/components/sorting/DragRegistration.tsx
4483
- import React44 from "react";
4484
- var DragRegistrationContext = React44.createContext(null);
4484
+ import React45 from "react";
4485
+ var DragRegistrationContext = React45.createContext(null);
4485
4486
  function useDragRegistration(context) {
4486
- const value = React44.useContext(context);
4487
+ const value = React45.useContext(context);
4487
4488
  if (!value) {
4488
4489
  throw new Error(
4489
4490
  "useDragRegistration must be used within a DragRegistrationProvider"
@@ -4492,11 +4493,11 @@ function useDragRegistration(context) {
4492
4493
  return value;
4493
4494
  }
4494
4495
  function useDragRegistrationManager() {
4495
- const [registeredLists, setRegisteredLists] = React44.useState(/* @__PURE__ */ new Map());
4496
- const registerList = React44.useCallback((list) => {
4496
+ const [registeredLists, setRegisteredLists] = React45.useState(/* @__PURE__ */ new Map());
4497
+ const registerList = React45.useCallback((list) => {
4497
4498
  setRegisteredLists((prev) => new Map(prev).set(list.id, list));
4498
4499
  }, []);
4499
- const unregisterList = React44.useCallback((listId) => {
4500
+ const unregisterList = React45.useCallback((listId) => {
4500
4501
  setRegisteredLists((prev) => {
4501
4502
  const newMap = new Map(prev);
4502
4503
  newMap.delete(listId);
@@ -4505,15 +4506,15 @@ function useDragRegistrationManager() {
4505
4506
  }, []);
4506
4507
  return { registerList, unregisterList, registeredLists };
4507
4508
  }
4508
- var ActiveDragContext = React44.createContext(null);
4509
+ var ActiveDragContext = React45.createContext(null);
4509
4510
  function useActiveDrag(context) {
4510
- const value = React44.useContext(context);
4511
+ const value = React45.useContext(context);
4511
4512
  if (!value) {
4512
4513
  throw new Error("useActiveDrag must be used within a ActiveDragProvider");
4513
4514
  }
4514
4515
  return value;
4515
4516
  }
4516
- var AnyDragContext = React44.createContext(false);
4517
+ var AnyDragContext = React45.createContext(false);
4517
4518
 
4518
4519
  // src/components/sorting/SharedDragProvider.tsx
4519
4520
  import {
@@ -4527,7 +4528,7 @@ import {
4527
4528
  } from "@dnd-kit/core";
4528
4529
  import { rectContainsPoint, unionRects } from "@noya-app/noya-geometry";
4529
4530
  import { windowsOf } from "@noya-app/noya-utils";
4530
- import * as React45 from "react";
4531
+ import * as React46 from "react";
4531
4532
  import { useMemo as useMemo19 } from "react";
4532
4533
  import { createPortal as createPortal2 } from "react-dom";
4533
4534
  function SharedDragProvider({
@@ -4546,14 +4547,14 @@ function SharedDragProvider({
4546
4547
  })
4547
4548
  );
4548
4549
  const mounted = useMounted();
4549
- const [dragState, setDragState] = React45.useState({
4550
+ const [dragState, setDragState] = React46.useState({
4550
4551
  source: null,
4551
4552
  target: null,
4552
4553
  indicator: null
4553
4554
  });
4554
4555
  const { registerList, unregisterList, registeredLists } = useDragRegistrationManager();
4555
- const activatorEventRef = React45.useRef(null);
4556
- const handleDragStart = React45.useCallback(
4556
+ const activatorEventRef = React46.useRef(null);
4557
+ const handleDragStart = React46.useCallback(
4557
4558
  (event) => {
4558
4559
  activatorEventRef.current = event.activatorEvent;
4559
4560
  for (const [listId, list] of registeredLists) {
@@ -4575,7 +4576,7 @@ function SharedDragProvider({
4575
4576
  },
4576
4577
  [registeredLists]
4577
4578
  );
4578
- const handleDragMove = React45.useCallback(
4579
+ const handleDragMove = React46.useCallback(
4579
4580
  (event) => {
4580
4581
  const { active, over } = event;
4581
4582
  if (!activatorEventRef.current || !dragState.source) return;
@@ -4599,7 +4600,7 @@ function SharedDragProvider({
4599
4600
  [registeredLists, dragState.source]
4600
4601
  );
4601
4602
  const stableOnMoveItem = useStableCallback(onMoveItem);
4602
- const handleDragEnd = React45.useCallback(
4603
+ const handleDragEnd = React46.useCallback(
4603
4604
  (event) => {
4604
4605
  const { active, over } = event;
4605
4606
  if (!activatorEventRef.current || !dragState.source) return;
@@ -4639,7 +4640,7 @@ function SharedDragProvider({
4639
4640
  },
4640
4641
  [registeredLists, dragState.source, stableOnMoveItem]
4641
4642
  );
4642
- const contextValue = React45.useMemo(
4643
+ const contextValue = React46.useMemo(
4643
4644
  () => ({
4644
4645
  registerList,
4645
4646
  unregisterList
@@ -4647,19 +4648,19 @@ function SharedDragProvider({
4647
4648
  [registerList, unregisterList]
4648
4649
  );
4649
4650
  const activeList = dragState.source ? registeredLists.get(dragState.source.listId) : null;
4650
- const activeDragContextValue = React45.useMemo(
4651
+ const activeDragContextValue = React46.useMemo(
4651
4652
  () => dragState,
4652
4653
  [dragState]
4653
4654
  );
4654
4655
  const collisionDetection = useMemo19(() => {
4655
4656
  return getItemFirstCollisionDetection(registeredLists);
4656
4657
  }, [registeredLists]);
4657
- return /* @__PURE__ */ React45.createElement(AnyDragContext.Provider, { value: true }, /* @__PURE__ */ React45.createElement(sharedDragProps.dragRegistrationContext.Provider, { value: contextValue }, /* @__PURE__ */ React45.createElement(
4658
+ return /* @__PURE__ */ React46.createElement(AnyDragContext.Provider, { value: true }, /* @__PURE__ */ React46.createElement(sharedDragProps.dragRegistrationContext.Provider, { value: contextValue }, /* @__PURE__ */ React46.createElement(
4658
4659
  sharedDragProps.activeDragContext.Provider,
4659
4660
  {
4660
4661
  value: activeDragContextValue
4661
4662
  },
4662
- /* @__PURE__ */ React45.createElement(
4663
+ /* @__PURE__ */ React46.createElement(
4663
4664
  DndContext,
4664
4665
  {
4665
4666
  sensors,
@@ -4670,26 +4671,26 @@ function SharedDragProvider({
4670
4671
  },
4671
4672
  children,
4672
4673
  mounted && activeList?.renderOverlay && dragState.source && createPortal2(
4673
- /* @__PURE__ */ React45.createElement(DragOverlay, { dropAnimation: null }, activeList.renderOverlay(dragState.source.itemId)),
4674
+ /* @__PURE__ */ React46.createElement(DragOverlay, { dropAnimation: null }, activeList.renderOverlay(dragState.source.itemId)),
4674
4675
  document.body
4675
4676
  )
4676
4677
  )
4677
4678
  )));
4678
4679
  }
4679
4680
  function useMounted() {
4680
- const [mounted, setMounted] = React45.useState(false);
4681
- React45.useEffect(() => {
4681
+ const [mounted, setMounted] = React46.useState(false);
4682
+ React46.useEffect(() => {
4682
4683
  setMounted(true);
4683
4684
  }, []);
4684
4685
  return mounted;
4685
4686
  }
4686
4687
  function withDragProvider(Component) {
4687
4688
  return function WithDragProvider(props) {
4688
- const anyDragContext = React45.useContext(AnyDragContext);
4689
+ const anyDragContext = React46.useContext(AnyDragContext);
4689
4690
  if (!anyDragContext) {
4690
- return /* @__PURE__ */ React45.createElement(SharedDragProvider, null, /* @__PURE__ */ React45.createElement(Component, { ...props }));
4691
+ return /* @__PURE__ */ React46.createElement(SharedDragProvider, null, /* @__PURE__ */ React46.createElement(Component, { ...props }));
4691
4692
  }
4692
- return /* @__PURE__ */ React45.createElement(Component, { ...props });
4693
+ return /* @__PURE__ */ React46.createElement(Component, { ...props });
4693
4694
  };
4694
4695
  }
4695
4696
  var getItemFirstCollisionDetection = (registeredLists) => (parameters) => {
@@ -4814,7 +4815,7 @@ function findDropTarget({
4814
4815
  }
4815
4816
 
4816
4817
  // src/components/sorting/sorting.ts
4817
- import * as React46 from "react";
4818
+ import * as React47 from "react";
4818
4819
  var normalizeListTargetIndex = (index, position) => {
4819
4820
  return position === "above" ? index : index + 1;
4820
4821
  };
@@ -4830,7 +4831,7 @@ var defaultAcceptsDrop = ({
4830
4831
  }
4831
4832
  return true;
4832
4833
  };
4833
- var SortableItemContext = React46.createContext({
4834
+ var SortableItemContext = React47.createContext({
4834
4835
  keys: [],
4835
4836
  acceptsDrop: defaultAcceptsDrop,
4836
4837
  axis: "y",
@@ -4899,7 +4900,7 @@ function parseDragItemKey(key) {
4899
4900
  }
4900
4901
 
4901
4902
  // src/components/sorting/Sortable.tsx
4902
- var SortableItemContext2 = React47.createContext({
4903
+ var SortableItemContext2 = React48.createContext({
4903
4904
  acceptsDrop: defaultAcceptsDrop,
4904
4905
  listId: "",
4905
4906
  getDropTargetParentIndex: void 0,
@@ -4912,7 +4913,7 @@ function useSortableDropIndicator({
4912
4913
  acceptsDrop: acceptsDrop2,
4913
4914
  getDropTargetParentIndex
4914
4915
  }) {
4915
- const { activeDragContext } = React47.useContext(SortableItemContext2);
4916
+ const { activeDragContext } = React48.useContext(SortableItemContext2);
4916
4917
  const activeDrag = useActiveDrag(activeDragContext);
4917
4918
  const { source, target } = activeDrag;
4918
4919
  if (!source || !target) return;
@@ -4943,13 +4944,13 @@ function SortableItem({
4943
4944
  disabled,
4944
4945
  children
4945
4946
  }) {
4946
- const { acceptsDrop: acceptsDrop2, listId, getDropTargetParentIndex } = React47.useContext(SortableItemContext2);
4947
+ const { acceptsDrop: acceptsDrop2, listId, getDropTargetParentIndex } = React48.useContext(SortableItemContext2);
4947
4948
  const dragItemKey = createDragItemKey(listId, id);
4948
4949
  const { attributes, listeners, setNodeRef, isDragging, index } = useSortable({
4949
4950
  id: dragItemKey,
4950
4951
  disabled
4951
4952
  });
4952
- const ref = React47.useCallback(
4953
+ const ref = React48.useCallback(
4953
4954
  (node) => setNodeRef(node),
4954
4955
  [setNodeRef]
4955
4956
  );
@@ -4983,9 +4984,9 @@ function SortableRoot_({
4983
4984
  sharedDragProps,
4984
4985
  containerRef
4985
4986
  }) {
4986
- const defaultId = React47.useId();
4987
+ const defaultId = React48.useId();
4987
4988
  const id = idProp ?? defaultId;
4988
- const keys = React47.useMemo(() => {
4989
+ const keys = React48.useMemo(() => {
4989
4990
  return keysProp.map((key) => createDragItemKey(id, key));
4990
4991
  }, [keysProp, id]);
4991
4992
  const { registerList, unregisterList } = useDragRegistration(
@@ -4994,7 +4995,7 @@ function SortableRoot_({
4994
4995
  const { setNodeRef: setDroppableRef } = useDroppable({
4995
4996
  id
4996
4997
  });
4997
- React47.useEffect(() => {
4998
+ React48.useEffect(() => {
4998
4999
  const listConfig = {
4999
5000
  id,
5000
5001
  keys,
@@ -5040,7 +5041,7 @@ function SortableRoot_({
5040
5041
  unregisterList,
5041
5042
  keys
5042
5043
  ]);
5043
- const contextValue = React47.useMemo(
5044
+ const contextValue = React48.useMemo(
5044
5045
  () => ({
5045
5046
  keys,
5046
5047
  acceptsDrop: acceptsDrop2,
@@ -5050,12 +5051,12 @@ function SortableRoot_({
5050
5051
  }),
5051
5052
  [keys, acceptsDrop2, id, getDropTargetParentIndex, sharedDragProps]
5052
5053
  );
5053
- React47.useEffect(() => {
5054
+ React48.useEffect(() => {
5054
5055
  if (containerRef) {
5055
5056
  setDroppableRef(containerRef.current);
5056
5057
  }
5057
5058
  });
5058
- return /* @__PURE__ */ React47.createElement(SortableItemContext2.Provider, { value: contextValue }, /* @__PURE__ */ React47.createElement(
5059
+ return /* @__PURE__ */ React48.createElement(SortableItemContext2.Provider, { value: contextValue }, /* @__PURE__ */ React48.createElement(
5059
5060
  SortableContext,
5060
5061
  {
5061
5062
  items: keys,
@@ -5072,11 +5073,11 @@ var Sortable_ = function Sortable_2({
5072
5073
  renderItem,
5073
5074
  ...rest
5074
5075
  }) {
5075
- const keys = React47.useMemo(
5076
+ const keys = React48.useMemo(
5076
5077
  () => items.map(keyExtractor),
5077
5078
  [items, keyExtractor]
5078
5079
  );
5079
- const renderOverlay = React47.useCallback(
5080
+ const renderOverlay = React48.useCallback(
5080
5081
  (index) => {
5081
5082
  return renderItem(
5082
5083
  items[index],
@@ -5096,14 +5097,14 @@ var Sortable_ = function Sortable_2({
5096
5097
  },
5097
5098
  [renderItem, items]
5098
5099
  );
5099
- return /* @__PURE__ */ React47.createElement(
5100
+ return /* @__PURE__ */ React48.createElement(
5100
5101
  SortableRoot,
5101
5102
  {
5102
5103
  ...rest,
5103
5104
  keys,
5104
5105
  renderOverlay: shouldRenderOverlay ? renderOverlay : void 0
5105
5106
  },
5106
- keys.map((key, index) => /* @__PURE__ */ React47.createElement(SortableItem, { key, id: key }, (props) => {
5107
+ keys.map((key, index) => /* @__PURE__ */ React48.createElement(SortableItem, { key, id: key }, (props) => {
5107
5108
  return renderItem(items[index], props, { isOverlay: false });
5108
5109
  }))
5109
5110
  );
@@ -5138,7 +5139,7 @@ var ListViewRowTitle = ({
5138
5139
  className,
5139
5140
  children,
5140
5141
  ...props
5141
- }) => /* @__PURE__ */ React48.createElement(
5142
+ }) => /* @__PURE__ */ React49.createElement(
5142
5143
  "span",
5143
5144
  {
5144
5145
  className: cx(
@@ -5158,7 +5159,7 @@ function ListViewEditableRowTitle({
5158
5159
  onKeyDown
5159
5160
  }) {
5160
5161
  const inputRef = useRef19(null);
5161
- useLayoutEffect6(() => {
5162
+ useLayoutEffect5(() => {
5162
5163
  const element = inputRef.current;
5163
5164
  if (!element || !autoFocus) return;
5164
5165
  element.focus();
@@ -5166,7 +5167,7 @@ function ListViewEditableRowTitle({
5166
5167
  element.select();
5167
5168
  }, 1);
5168
5169
  }, [autoFocus]);
5169
- return /* @__PURE__ */ React48.createElement(
5170
+ return /* @__PURE__ */ React49.createElement(
5170
5171
  InputField2.Input,
5171
5172
  {
5172
5173
  ref: inputRef,
@@ -5205,7 +5206,7 @@ var RowContainer = forwardRef19(
5205
5206
  "aria-selected": ariaSelected,
5206
5207
  ...props
5207
5208
  }, ref) => {
5208
- return /* @__PURE__ */ React48.createElement(
5209
+ return /* @__PURE__ */ React49.createElement(
5209
5210
  "div",
5210
5211
  {
5211
5212
  ref,
@@ -5283,7 +5284,7 @@ var ListViewDragIndicatorElement = forwardRef19(
5283
5284
  style: style2,
5284
5285
  ...props
5285
5286
  }, ref) => {
5286
- return /* @__PURE__ */ React48.createElement(
5287
+ return /* @__PURE__ */ React49.createElement(
5287
5288
  "div",
5288
5289
  {
5289
5290
  ref,
@@ -5384,7 +5385,7 @@ var ListViewRow = forwardRefGeneric(function ListViewRow2({
5384
5385
  }, ref) => {
5385
5386
  const Component = RowContainer;
5386
5387
  const relativeDropPosition = testRelativeDropPosition ?? relativeDropPositionProp;
5387
- const element = /* @__PURE__ */ React48.createElement(
5388
+ const element = /* @__PURE__ */ React49.createElement(
5388
5389
  Component,
5389
5390
  {
5390
5391
  ref,
@@ -5418,7 +5419,7 @@ var ListViewRow = forwardRefGeneric(function ListViewRow2({
5418
5419
  className,
5419
5420
  $clickable: !!onPress
5420
5421
  },
5421
- relativeDropPosition && /* @__PURE__ */ React48.createElement(
5422
+ relativeDropPosition && /* @__PURE__ */ React49.createElement(
5422
5423
  ListViewDragIndicatorElement,
5423
5424
  {
5424
5425
  key: relativeDropPosition,
@@ -5433,11 +5434,11 @@ var ListViewRow = forwardRefGeneric(function ListViewRow2({
5433
5434
  }) : dragIndicatorStyle
5434
5435
  }
5435
5436
  ),
5436
- depth > 0 && /* @__PURE__ */ React48.createElement(Spacer.Horizontal, { size: depth * indentation }),
5437
+ depth > 0 && /* @__PURE__ */ React49.createElement(Spacer.Horizontal, { size: depth * indentation }),
5437
5438
  children
5438
5439
  );
5439
5440
  if (menuItems && onSelectMenuItem) {
5440
- return /* @__PURE__ */ React48.createElement(
5441
+ return /* @__PURE__ */ React49.createElement(
5441
5442
  ContextMenu,
5442
5443
  {
5443
5444
  items: menuItems,
@@ -5450,7 +5451,7 @@ var ListViewRow = forwardRefGeneric(function ListViewRow2({
5450
5451
  return element;
5451
5452
  };
5452
5453
  if (sortable && id) {
5453
- return /* @__PURE__ */ React48.createElement(Sortable.Item, { id, disabled: overrideSortable === false }, ({ ref: sortableRef, ...sortableProps }) => renderContent(
5454
+ return /* @__PURE__ */ React49.createElement(Sortable.Item, { id, disabled: overrideSortable === false }, ({ ref: sortableRef, ...sortableProps }) => renderContent(
5454
5455
  sortableProps,
5455
5456
  composeRefs2(sortableRef, forwardedRef)
5456
5457
  ));
@@ -5466,7 +5467,7 @@ var VirtualizedListRow = memo18(function VirtualizedListRow2({
5466
5467
  style: style2
5467
5468
  }) {
5468
5469
  const renderItem = useContext11(RenderItemContext);
5469
- return /* @__PURE__ */ React48.createElement("div", { key: index, style: style2 }, renderItem(index));
5470
+ return /* @__PURE__ */ React49.createElement("div", { key: index, style: style2 }, renderItem(index));
5470
5471
  });
5471
5472
  var VirtualizedListInner = forwardRefGeneric(function VirtualizedListInner2({
5472
5473
  size: size2,
@@ -5482,7 +5483,7 @@ var VirtualizedListInner = forwardRefGeneric(function VirtualizedListInner2({
5482
5483
  listRef.current?.scrollToItem(index);
5483
5484
  }
5484
5485
  }));
5485
- useLayoutEffect6(() => {
5486
+ useLayoutEffect5(() => {
5486
5487
  listRef.current?.resetAfterIndex(0);
5487
5488
  }, [
5488
5489
  // When items change, we need to re-render the virtualized list,
@@ -5497,7 +5498,7 @@ var VirtualizedListInner = forwardRefGeneric(function VirtualizedListInner2({
5497
5498
  }),
5498
5499
  []
5499
5500
  );
5500
- return /* @__PURE__ */ React48.createElement(RenderItemContext.Provider, { value: renderItem }, /* @__PURE__ */ React48.createElement(
5501
+ return /* @__PURE__ */ React49.createElement(RenderItemContext.Provider, { value: renderItem }, /* @__PURE__ */ React49.createElement(
5501
5502
  WindowScroller,
5502
5503
  {
5503
5504
  scrollElement,
@@ -5508,7 +5509,7 @@ var VirtualizedListInner = forwardRefGeneric(function VirtualizedListInner2({
5508
5509
  registerChild,
5509
5510
  onChildScroll,
5510
5511
  scrollTop
5511
- }) => /* @__PURE__ */ React48.createElement("div", { ref: registerChild }, /* @__PURE__ */ React48.createElement(
5512
+ }) => /* @__PURE__ */ React49.createElement("div", { ref: registerChild }, /* @__PURE__ */ React49.createElement(
5512
5513
  VariableSizeList,
5513
5514
  {
5514
5515
  ref: listRef,
@@ -5682,7 +5683,7 @@ var ListViewRootInner = forwardRefGeneric(function ListViewRootInner2({
5682
5683
  [indentation]
5683
5684
  );
5684
5685
  const renderOverlay = useCallback23(
5685
- (index) => /* @__PURE__ */ React48.createElement("div", { style: { opacity: 0.25 } }, /* @__PURE__ */ React48.createElement(ListViewDraggingContext.Provider, { value: draggingContextOverlayValue }, renderItem(data[index], index, { isDragOverlay: true }))),
5686
+ (index) => /* @__PURE__ */ React49.createElement("div", { style: { opacity: 0.25 } }, /* @__PURE__ */ React49.createElement(ListViewDraggingContext.Provider, { value: draggingContextOverlayValue }, renderItem(data[index], index, { isDragOverlay: true }))),
5686
5687
  [draggingContextOverlayValue, renderItem, data]
5687
5688
  );
5688
5689
  const renderWrappedChild = useCallback23(
@@ -5690,12 +5691,12 @@ var ListViewRootInner = forwardRefGeneric(function ListViewRootInner2({
5690
5691
  const contextValue = getItemContextValue(index);
5691
5692
  const current = renderChild(index);
5692
5693
  if (!contextValue || !isValidElement3(current)) return null;
5693
- return /* @__PURE__ */ React48.createElement(ListRowContext.Provider, { key: current.key, value: contextValue }, current);
5694
+ return /* @__PURE__ */ React49.createElement(ListRowContext.Provider, { key: current.key, value: contextValue }, current);
5694
5695
  },
5695
5696
  [getItemContextValue, renderChild]
5696
5697
  );
5697
5698
  const ids = useMemo21(() => data.map(keyExtractor), [keyExtractor, data]);
5698
- const withSortable = (children) => sortable ? /* @__PURE__ */ React48.createElement(
5699
+ const withSortable = (children) => sortable ? /* @__PURE__ */ React49.createElement(
5699
5700
  Sortable.Root,
5700
5701
  {
5701
5702
  id: sortableId,
@@ -5708,7 +5709,7 @@ var ListViewRootInner = forwardRefGeneric(function ListViewRootInner2({
5708
5709
  },
5709
5710
  children
5710
5711
  ) : children;
5711
- const withScrollable = (children) => scrollable ? /* @__PURE__ */ React48.createElement(ScrollArea, null, children) : children(null);
5712
+ const withScrollable = (children) => scrollable ? /* @__PURE__ */ React49.createElement(ScrollArea, null, children) : children(null);
5712
5713
  const getItemHeight = useCallback23(
5713
5714
  (index) => {
5714
5715
  const child = getItemContextValue(index);
@@ -5723,7 +5724,7 @@ var ListViewRootInner = forwardRefGeneric(function ListViewRootInner2({
5723
5724
  );
5724
5725
  const draggingContextValue = useMemo21(() => ({ indentation }), [indentation]);
5725
5726
  const gapStyle = useMemo21(() => ({ gap: `${gap}px` }), [gap]);
5726
- return /* @__PURE__ */ React48.createElement(ListViewDraggingContext.Provider, { value: draggingContextValue }, /* @__PURE__ */ React48.createElement(
5727
+ return /* @__PURE__ */ React49.createElement(ListViewDraggingContext.Provider, { value: draggingContextValue }, /* @__PURE__ */ React49.createElement(
5727
5728
  "div",
5728
5729
  {
5729
5730
  id,
@@ -5752,7 +5753,7 @@ var ListViewRootInner = forwardRefGeneric(function ListViewRootInner2({
5752
5753
  },
5753
5754
  data.length === 0 && renderEmptyState ? renderEmptyState() : withScrollable(
5754
5755
  (scrollElementRef) => withSortable(
5755
- virtualized ? /* @__PURE__ */ React48.createElement(
5756
+ virtualized ? /* @__PURE__ */ React49.createElement(
5756
5757
  VirtualizedList,
5757
5758
  {
5758
5759
  ref: forwardedRef,
@@ -5776,7 +5777,7 @@ var ChildrenListViewInner = forwardRef19(function ChildrenListViewInner2({ child
5776
5777
  ),
5777
5778
  [children]
5778
5779
  );
5779
- return /* @__PURE__ */ React48.createElement(
5780
+ return /* @__PURE__ */ React49.createElement(
5780
5781
  ListViewRoot,
5781
5782
  {
5782
5783
  ref: forwardedRef,
@@ -5793,9 +5794,9 @@ var ChildrenListViewInner = forwardRef19(function ChildrenListViewInner2({ child
5793
5794
  var ChildrenListView = memo18(ChildrenListViewInner);
5794
5795
  var SimpleListViewInner = forwardRefGeneric(function SimpleListViewInner2(props, forwardedRef) {
5795
5796
  if ("children" in props) {
5796
- return /* @__PURE__ */ React48.createElement(ChildrenListView, { ref: forwardedRef, ...props });
5797
+ return /* @__PURE__ */ React49.createElement(ChildrenListView, { ref: forwardedRef, ...props });
5797
5798
  } else {
5798
- return /* @__PURE__ */ React48.createElement(ListViewRoot, { ref: forwardedRef, ...props });
5799
+ return /* @__PURE__ */ React49.createElement(ListViewRoot, { ref: forwardedRef, ...props });
5799
5800
  }
5800
5801
  });
5801
5802
  var SimpleListView = memoGeneric(SimpleListViewInner);
@@ -5819,7 +5820,7 @@ var ListView;
5819
5820
  })(ListView || (ListView = {}));
5820
5821
 
5821
5822
  // src/components/TreeView.tsx
5822
- import React49, { useCallback as useCallback24, useContext as useContext12 } from "react";
5823
+ import React50, { useCallback as useCallback24, useContext as useContext12 } from "react";
5823
5824
  var TreeRow = forwardRefGeneric(function TreeRow2({
5824
5825
  icon,
5825
5826
  expanded,
@@ -5836,7 +5837,7 @@ var TreeRow = forwardRefGeneric(function TreeRow2({
5836
5837
  },
5837
5838
  [onClickChevron]
5838
5839
  );
5839
- return /* @__PURE__ */ React49.createElement(ListView.Row, { ref: forwardedRef, ...rest }, expandable && /* @__PURE__ */ React49.createElement(React49.Fragment, null, expanded === void 0 ? /* @__PURE__ */ React49.createElement(Spacer.Horizontal, { size: 19 }) : /* @__PURE__ */ React49.createElement(
5840
+ return /* @__PURE__ */ React50.createElement(ListView.Row, { ref: forwardedRef, ...rest }, expandable && /* @__PURE__ */ React50.createElement(React50.Fragment, null, expanded === void 0 ? /* @__PURE__ */ React50.createElement(Spacer.Horizontal, { size: 19 }) : /* @__PURE__ */ React50.createElement(
5840
5841
  IconButton,
5841
5842
  {
5842
5843
  className: chevronClassName,
@@ -5844,7 +5845,7 @@ var TreeRow = forwardRefGeneric(function TreeRow2({
5844
5845
  onClick: handleClickChevron,
5845
5846
  selected: rest.selected
5846
5847
  }
5847
- ), /* @__PURE__ */ React49.createElement(Spacer.Horizontal, { size: 6 })), icon && /* @__PURE__ */ React49.createElement(React49.Fragment, null, renderIcon(icon), /* @__PURE__ */ React49.createElement(Spacer.Horizontal, { size: 10 })), children);
5848
+ ), /* @__PURE__ */ React50.createElement(Spacer.Horizontal, { size: 6 })), icon && /* @__PURE__ */ React50.createElement(React50.Fragment, null, renderIcon(icon), /* @__PURE__ */ React50.createElement(Spacer.Horizontal, { size: 10 })), children);
5848
5849
  });
5849
5850
  var TreeView;
5850
5851
  ((TreeView2) => {
@@ -5938,7 +5939,7 @@ var List = memoGeneric(
5938
5939
  setRenamingId(id);
5939
5940
  }
5940
5941
  }));
5941
- return /* @__PURE__ */ React50.createElement(
5942
+ return /* @__PURE__ */ React51.createElement(
5942
5943
  ViewComponent.Root,
5943
5944
  {
5944
5945
  variant: "bare",
@@ -5983,7 +5984,7 @@ var List = memoGeneric(
5983
5984
  handleSelect(id);
5984
5985
  }
5985
5986
  };
5986
- const action = (isHovered || isSelected) && !isRenaming && (typeof renderAction === "function" ? renderAction({ item, selected: isSelected, onOpenChange }) : renderAction === "menu" && menuItems && /* @__PURE__ */ React50.createElement(
5987
+ const action = (isHovered || isSelected) && !isRenaming && (typeof renderAction === "function" ? renderAction({ item, selected: isSelected, onOpenChange }) : renderAction === "menu" && menuItems && /* @__PURE__ */ React51.createElement(
5987
5988
  ActionMenu,
5988
5989
  {
5989
5990
  menuItems,
@@ -5999,7 +6000,7 @@ var List = memoGeneric(
5999
6000
  ));
6000
6001
  const end = action || detailPosition === "end" && renderDetail?.(item, isSelected);
6001
6002
  const below = detailPosition === "below" && renderDetail?.(item, isSelected);
6002
- return /* @__PURE__ */ React50.createElement(
6003
+ return /* @__PURE__ */ React51.createElement(
6003
6004
  ViewComponent.Row,
6004
6005
  {
6005
6006
  id,
@@ -6047,12 +6048,12 @@ var List = memoGeneric(
6047
6048
  },
6048
6049
  dragIndicatorStyle
6049
6050
  },
6050
- /* @__PURE__ */ React50.createElement(
6051
+ /* @__PURE__ */ React51.createElement(
6051
6052
  "div",
6052
6053
  {
6053
6054
  className: cx("flex flex-1 items-center px-2", rowGapMap[size2])
6054
6055
  },
6055
- thumbnail && /* @__PURE__ */ React50.createElement(
6056
+ thumbnail && /* @__PURE__ */ React51.createElement(
6056
6057
  "div",
6057
6058
  {
6058
6059
  className: cx(
@@ -6065,7 +6066,7 @@ var List = memoGeneric(
6065
6066
  },
6066
6067
  thumbnail
6067
6068
  ),
6068
- /* @__PURE__ */ React50.createElement("div", { className: "flex flex-col flex-1 w-0" }, /* @__PURE__ */ React50.createElement("div", { className: "flex items-center min-h-input-height flex-1 gap-2" }, /* @__PURE__ */ React50.createElement("div", { className: "flex-1 w-0 flex items-center", tabIndex: -1 }, isRenaming ? /* @__PURE__ */ React50.createElement(
6069
+ /* @__PURE__ */ React51.createElement("div", { className: "flex flex-col flex-1 w-0" }, /* @__PURE__ */ React51.createElement("div", { className: "flex items-center min-h-input-height flex-1 gap-2" }, /* @__PURE__ */ React51.createElement("div", { className: "flex-1 w-0 flex items-center", tabIndex: -1 }, isRenaming ? /* @__PURE__ */ React51.createElement(
6069
6070
  ViewComponent.EditableRowTitle,
6070
6071
  {
6071
6072
  value: getName(item),
@@ -6080,7 +6081,7 @@ var List = memoGeneric(
6080
6081
  e.stopPropagation();
6081
6082
  }
6082
6083
  }
6083
- ) : /* @__PURE__ */ React50.createElement(
6084
+ ) : /* @__PURE__ */ React51.createElement(
6084
6085
  ViewComponent.RowTitle,
6085
6086
  {
6086
6087
  className: cx(
@@ -6089,8 +6090,8 @@ var List = memoGeneric(
6089
6090
  )
6090
6091
  },
6091
6092
  getName(item)
6092
- )), end && detailPosition === "end" && /* @__PURE__ */ React50.createElement(DetailContainer, { selected: isSelected }, end)), below && /* @__PURE__ */ React50.createElement(DetailContainer, { selected: isSelected }, below)),
6093
- end && detailPosition === "below" && /* @__PURE__ */ React50.createElement(DetailContainer, { selected: isSelected }, end)
6093
+ )), end && detailPosition === "end" && /* @__PURE__ */ React51.createElement(DetailContainer, { selected: isSelected }, end)), below && /* @__PURE__ */ React51.createElement(DetailContainer, { selected: isSelected }, below)),
6094
+ end && detailPosition === "below" && /* @__PURE__ */ React51.createElement(DetailContainer, { selected: isSelected }, end)
6094
6095
  )
6095
6096
  );
6096
6097
  }
@@ -6102,7 +6103,7 @@ var DetailContainer = memo19(function DetailContainer2({
6102
6103
  children,
6103
6104
  selected
6104
6105
  }) {
6105
- return /* @__PURE__ */ React50.createElement(
6106
+ return /* @__PURE__ */ React51.createElement(
6106
6107
  "div",
6107
6108
  {
6108
6109
  className: cx("flex items-center gap-2", selected && "text-primary"),
@@ -6147,11 +6148,11 @@ var fontStyleMap = {
6147
6148
  // src/components/Collection.tsx
6148
6149
  var Collection = forwardRefGeneric(function Collection2(props, ref) {
6149
6150
  const { viewType, ...rest } = props;
6150
- return viewType === "grid" ? /* @__PURE__ */ React51.createElement(Grid, { ref, ...rest }) : /* @__PURE__ */ React51.createElement(List, { ref, ...rest });
6151
+ return viewType === "grid" ? /* @__PURE__ */ React52.createElement(Grid, { ref, ...rest }) : /* @__PURE__ */ React52.createElement(List, { ref, ...rest });
6151
6152
  });
6152
6153
 
6153
6154
  // src/components/ColorSwatch.tsx
6154
- import React52, { forwardRef as forwardRef20 } from "react";
6155
+ import React53, { forwardRef as forwardRef20 } from "react";
6155
6156
  var colorSwatchSizeMap = {
6156
6157
  xsmall: 21,
6157
6158
  small: 27,
@@ -6160,7 +6161,7 @@ var colorSwatchSizeMap = {
6160
6161
  };
6161
6162
  var ColorSwatch = forwardRef20(function ColorSwatch2({ color, size: size2 = "small", checked, style: style2, ...props }, ref) {
6162
6163
  const sizePx = colorSwatchSizeMap[size2];
6163
- return /* @__PURE__ */ React52.createElement(
6164
+ return /* @__PURE__ */ React53.createElement(
6164
6165
  "button",
6165
6166
  {
6166
6167
  ...props,
@@ -6181,7 +6182,7 @@ var ColorSwatch = forwardRef20(function ColorSwatch2({ color, size: size2 = "sma
6181
6182
 
6182
6183
  // src/components/ColorSwatchControl.tsx
6183
6184
  import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
6184
- import React53, { useMemo as useMemo22 } from "react";
6185
+ import React54, { useMemo as useMemo22 } from "react";
6185
6186
  function ColorSwatchControl(props) {
6186
6187
  const {
6187
6188
  options,
@@ -6204,8 +6205,8 @@ function ColorSwatchControl(props) {
6204
6205
  ...style2
6205
6206
  };
6206
6207
  }, [size2, style2]);
6207
- const content = /* @__PURE__ */ React53.createElement("div", { className, id, style: styles3 }, options.map((option) => {
6208
- const item = /* @__PURE__ */ React53.createElement(
6208
+ const content = /* @__PURE__ */ React54.createElement("div", { className, id, style: styles3 }, options.map((option) => {
6209
+ const item = /* @__PURE__ */ React54.createElement(
6209
6210
  ColorSwatch,
6210
6211
  {
6211
6212
  key: option,
@@ -6218,7 +6219,7 @@ function ColorSwatchControl(props) {
6218
6219
  checked: value === option
6219
6220
  }
6220
6221
  );
6221
- return /* @__PURE__ */ React53.createElement(
6222
+ return /* @__PURE__ */ React54.createElement(
6222
6223
  ToggleGroupPrimitive.Item,
6223
6224
  {
6224
6225
  asChild: true,
@@ -6229,7 +6230,7 @@ function ColorSwatchControl(props) {
6229
6230
  item
6230
6231
  );
6231
6232
  }));
6232
- return /* @__PURE__ */ React53.createElement(
6233
+ return /* @__PURE__ */ React54.createElement(
6233
6234
  ToggleGroupPrimitive.Root,
6234
6235
  {
6235
6236
  type: "single",
@@ -6244,7 +6245,7 @@ function ColorSwatchControl(props) {
6244
6245
 
6245
6246
  // src/components/Combobox.tsx
6246
6247
  import { DropdownChevronIcon as DropdownChevronIcon2 } from "@noya-app/noya-icons";
6247
- import React55, {
6248
+ import React56, {
6248
6249
  useCallback as useCallback25,
6249
6250
  useEffect as useEffect19,
6250
6251
  useImperativeHandle as useImperativeHandle6,
@@ -6586,7 +6587,7 @@ function useComboboxState(state) {
6586
6587
 
6587
6588
  // src/components/ComboboxMenu.tsx
6588
6589
  import { CheckIcon } from "@noya-app/noya-icons";
6589
- import React54 from "react";
6590
+ import React55 from "react";
6590
6591
  var ComboboxMenu = memoGeneric(
6591
6592
  forwardRefGeneric(function ComboboxMenu2({
6592
6593
  items,
@@ -6598,7 +6599,7 @@ var ComboboxMenu = memoGeneric(
6598
6599
  indented,
6599
6600
  iconPosition = "right"
6600
6601
  }, forwardedRef) {
6601
- return /* @__PURE__ */ React54.createElement(
6602
+ return /* @__PURE__ */ React55.createElement(
6602
6603
  ListView.Root,
6603
6604
  {
6604
6605
  ref: forwardedRef,
@@ -6614,7 +6615,7 @@ var ComboboxMenu = memoGeneric(
6614
6615
  style: style2,
6615
6616
  renderItem: (item, i) => {
6616
6617
  if (item.type === "sectionHeader") {
6617
- return /* @__PURE__ */ React54.createElement(ListView.Row, { key: item.id, isSectionHeader: true }, indented && /* @__PURE__ */ React54.createElement(
6618
+ return /* @__PURE__ */ React55.createElement(ListView.Row, { key: item.id, isSectionHeader: true }, indented && /* @__PURE__ */ React55.createElement(
6618
6619
  Spacer.Horizontal,
6619
6620
  {
6620
6621
  size: CHECKBOX_WIDTH - CHECKBOX_RIGHT_INSET + CHECKBOX_INDENT_WIDTH
@@ -6625,7 +6626,7 @@ var ComboboxMenu = memoGeneric(
6625
6626
  item: typeof item.title === "string" ? item.title : item.value,
6626
6627
  itemScore: item
6627
6628
  });
6628
- return /* @__PURE__ */ React54.createElement(
6629
+ return /* @__PURE__ */ React55.createElement(
6629
6630
  ListView.Row,
6630
6631
  {
6631
6632
  key: item.value,
@@ -6638,12 +6639,12 @@ var ComboboxMenu = memoGeneric(
6638
6639
  }
6639
6640
  }
6640
6641
  },
6641
- /* @__PURE__ */ React54.createElement("div", { className: "flex flex-1 min-w-0 items-center" }, indented && /* @__PURE__ */ React54.createElement(Spacer.Horizontal, { size: CHECKBOX_INDENT_WIDTH }), item.checked ? /* @__PURE__ */ React54.createElement("div", { ...styles.itemIndicator }, /* @__PURE__ */ React54.createElement(CheckIcon, null)) : indented ? /* @__PURE__ */ React54.createElement(
6642
+ /* @__PURE__ */ React55.createElement("div", { className: "flex flex-1 min-w-0 items-center" }, indented && /* @__PURE__ */ React55.createElement(Spacer.Horizontal, { size: CHECKBOX_INDENT_WIDTH }), item.checked ? /* @__PURE__ */ React55.createElement("div", { ...styles.itemIndicator }, /* @__PURE__ */ React55.createElement(CheckIcon, null)) : indented ? /* @__PURE__ */ React55.createElement(
6642
6643
  Spacer.Horizontal,
6643
6644
  {
6644
6645
  size: CHECKBOX_WIDTH - CHECKBOX_RIGHT_INSET
6645
6646
  }
6646
- ) : null, iconPosition === "left" && item.icon && /* @__PURE__ */ React54.createElement(React54.Fragment, null, renderIcon(item.icon), /* @__PURE__ */ React54.createElement(Spacer.Horizontal, { size: 8 })), tokens.map((token, j) => /* @__PURE__ */ React54.createElement(
6647
+ ) : null, iconPosition === "left" && item.icon && /* @__PURE__ */ React55.createElement(React55.Fragment, null, renderIcon(item.icon), /* @__PURE__ */ React55.createElement(Spacer.Horizontal, { size: 8 })), tokens.map((token, j) => /* @__PURE__ */ React55.createElement(
6647
6648
  "span",
6648
6649
  {
6649
6650
  key: `${item.value}-token-${j}`,
@@ -6654,7 +6655,7 @@ var ComboboxMenu = memoGeneric(
6654
6655
  },
6655
6656
  token.text
6656
6657
  ))),
6657
- (item.shortcut || item.icon && iconPosition === "right") && /* @__PURE__ */ React54.createElement(React54.Fragment, null, item.shortcut ? /* @__PURE__ */ React54.createElement(KeyboardShortcut, { shortcut: item.shortcut }) : item.icon && renderIcon(item.icon))
6658
+ (item.shortcut || item.icon && iconPosition === "right") && /* @__PURE__ */ React55.createElement(React55.Fragment, null, item.shortcut ? /* @__PURE__ */ React55.createElement(KeyboardShortcut, { shortcut: item.shortcut }) : item.icon && renderIcon(item.icon))
6658
6659
  );
6659
6660
  }
6660
6661
  }
@@ -6976,19 +6977,19 @@ var Combobox = memoGeneric(
6976
6977
  const hasCheckedItems = items.some(
6977
6978
  (item) => isSelectableMenuItem(item) && item.checked
6978
6979
  );
6979
- return /* @__PURE__ */ React55.createElement(
6980
+ return /* @__PURE__ */ React56.createElement(
6980
6981
  InputField2.Root,
6981
6982
  {
6982
6983
  id,
6983
6984
  size: size2,
6984
6985
  sideOffset: 6,
6985
- end: /* @__PURE__ */ React55.createElement(React55.Fragment, null, loading && /* @__PURE__ */ React55.createElement("div", { className: "pr-1.5" }, /* @__PURE__ */ React55.createElement(ActivityIndicator, null)), !readOnly && /* @__PURE__ */ React55.createElement(
6986
+ end: /* @__PURE__ */ React56.createElement(React56.Fragment, null, loading && /* @__PURE__ */ React56.createElement("div", { className: "pr-1.5" }, /* @__PURE__ */ React56.createElement(ActivityIndicator, null)), !readOnly && /* @__PURE__ */ React56.createElement(
6986
6987
  InputField2.Button,
6987
6988
  {
6988
6989
  variant: "floating",
6989
6990
  onClick: handleChevronClick
6990
6991
  },
6991
- /* @__PURE__ */ React55.createElement(
6992
+ /* @__PURE__ */ React56.createElement(
6992
6993
  DropdownChevronIcon2,
6993
6994
  {
6994
6995
  className: cx(
@@ -7007,7 +7008,7 @@ var Combobox = memoGeneric(
7007
7008
  ListView.rowHeight * 10.5
7008
7009
  );
7009
7010
  const listSize = { width, height };
7010
- return /* @__PURE__ */ React55.createElement(
7011
+ return /* @__PURE__ */ React56.createElement(
7011
7012
  "div",
7012
7013
  {
7013
7014
  className: cx(
@@ -7015,7 +7016,7 @@ var Combobox = memoGeneric(
7015
7016
  shouldShowMenu && !readOnly ? "flex" : "hidden"
7016
7017
  )
7017
7018
  },
7018
- filteredItems.length > 0 && !loading ? /* @__PURE__ */ React55.createElement(
7019
+ filteredItems.length > 0 && !loading ? /* @__PURE__ */ React56.createElement(
7019
7020
  ComboboxMenu,
7020
7021
  {
7021
7022
  ref: listRef,
@@ -7029,11 +7030,11 @@ var Combobox = memoGeneric(
7029
7030
  },
7030
7031
  indented: hasCheckedItems
7031
7032
  }
7032
- ) : /* @__PURE__ */ React55.createElement("div", { className: "flex flex-col h-[50px] p-5 items-center justify-center" }, /* @__PURE__ */ React55.createElement(Small, { className: "text-text-disabled" }, loading ? "Loading..." : "No results"))
7033
+ ) : /* @__PURE__ */ React56.createElement("div", { className: "flex flex-col h-[50px] p-5 items-center justify-center" }, /* @__PURE__ */ React56.createElement(Small, { className: "text-text-disabled" }, loading ? "Loading..." : "No results"))
7033
7034
  );
7034
7035
  }
7035
7036
  },
7036
- /* @__PURE__ */ React55.createElement(
7037
+ /* @__PURE__ */ React56.createElement(
7037
7038
  InputField2.Input,
7038
7039
  {
7039
7040
  ref,
@@ -7058,7 +7059,7 @@ var Combobox = memoGeneric(
7058
7059
  ...readOnly ? { readOnly: true } : {}
7059
7060
  }
7060
7061
  ),
7061
- filter && typeaheadValue && typeaheadValue.toLowerCase().startsWith(filter.toLowerCase()) && /* @__PURE__ */ React55.createElement(
7062
+ filter && typeaheadValue && typeaheadValue.toLowerCase().startsWith(filter.toLowerCase()) && /* @__PURE__ */ React56.createElement(
7062
7063
  InputField2.Typeahead,
7063
7064
  {
7064
7065
  value: typeaheadValue,
@@ -7072,11 +7073,11 @@ var Combobox = memoGeneric(
7072
7073
  );
7073
7074
 
7074
7075
  // src/components/CommandPalette.tsx
7075
- import React58, { memo as memo21 } from "react";
7076
+ import React59, { memo as memo21 } from "react";
7076
7077
 
7077
7078
  // src/components/SearchCompletionMenu.tsx
7078
7079
  import { getCurrentPlatform as getCurrentPlatform2, handleKeyboardEvent } from "@noya-app/noya-keymap";
7079
- import React57, {
7080
+ import React58, {
7080
7081
  forwardRef as forwardRef21,
7081
7082
  useCallback as useCallback26,
7082
7083
  useEffect as useEffect20,
@@ -7087,7 +7088,7 @@ import React57, {
7087
7088
  } from "react";
7088
7089
 
7089
7090
  // src/components/Divider.tsx
7090
- import React56, { memo as memo20 } from "react";
7091
+ import React57, { memo as memo20 } from "react";
7091
7092
  var Divider = memo20(function Divider2({
7092
7093
  variant = "normal",
7093
7094
  overflow = 0,
@@ -7095,7 +7096,7 @@ var Divider = memo20(function Divider2({
7095
7096
  style: style2,
7096
7097
  ...props
7097
7098
  }) {
7098
- return /* @__PURE__ */ React56.createElement(
7099
+ return /* @__PURE__ */ React57.createElement(
7099
7100
  "div",
7100
7101
  {
7101
7102
  className: cx(
@@ -7122,7 +7123,7 @@ var DividerVertical = memo20(function DividerVertical2({
7122
7123
  style: style2,
7123
7124
  ...props
7124
7125
  }) {
7125
- return /* @__PURE__ */ React56.createElement(
7126
+ return /* @__PURE__ */ React57.createElement(
7126
7127
  "div",
7127
7128
  {
7128
7129
  className: cx(`
@@ -7156,7 +7157,7 @@ var SearchCompletionMenu = forwardRef21(function SearchCompletionMenu2({
7156
7157
  index: 0
7157
7158
  });
7158
7159
  const { index, search } = state;
7159
- const listRef = React57.useRef(null);
7160
+ const listRef = React58.useRef(null);
7160
7161
  const hasCheckedItems = items.some((item) => item.checked);
7161
7162
  useEffect20(() => {
7162
7163
  listRef.current?.scrollToIndex(index);
@@ -7235,7 +7236,7 @@ var SearchCompletionMenu = forwardRef21(function SearchCompletionMenu2({
7235
7236
  inputRef.current?.focus();
7236
7237
  }
7237
7238
  }));
7238
- return /* @__PURE__ */ React57.createElement("div", { ...elementSize, className: "flex flex-col overflow-hidden" }, /* @__PURE__ */ React57.createElement(InputField2.Root, { className: "flex flex-0" }, /* @__PURE__ */ React57.createElement(
7239
+ return /* @__PURE__ */ React58.createElement("div", { ...elementSize, className: "flex flex-col overflow-hidden" }, /* @__PURE__ */ React58.createElement(InputField2.Root, { className: "flex flex-0" }, /* @__PURE__ */ React58.createElement(
7239
7240
  InputField2.Input,
7240
7241
  {
7241
7242
  ref: inputRef,
@@ -7255,7 +7256,7 @@ var SearchCompletionMenu = forwardRef21(function SearchCompletionMenu2({
7255
7256
  onChange: setSearch,
7256
7257
  onKeyDown: handleKeyDown
7257
7258
  }
7258
- )), /* @__PURE__ */ React57.createElement(Divider, null), results.length > 0 ? /* @__PURE__ */ React57.createElement(
7259
+ )), /* @__PURE__ */ React58.createElement(Divider, null), results.length > 0 ? /* @__PURE__ */ React58.createElement(
7259
7260
  ComboboxMenu,
7260
7261
  {
7261
7262
  ref: listRef,
@@ -7270,13 +7271,13 @@ var SearchCompletionMenu = forwardRef21(function SearchCompletionMenu2({
7270
7271
  onHoverIndex: setIndex,
7271
7272
  indented: hasCheckedItems
7272
7273
  }
7273
- ) : /* @__PURE__ */ React57.createElement(
7274
+ ) : /* @__PURE__ */ React58.createElement(
7274
7275
  "div",
7275
7276
  {
7276
7277
  ...listSize,
7277
7278
  className: "flex flex-col p-20 items-center justify-center"
7278
7279
  },
7279
- /* @__PURE__ */ React57.createElement(Small, { color: "textDisabled" }, "No results")
7280
+ /* @__PURE__ */ React58.createElement(Small, { color: "textDisabled" }, "No results")
7280
7281
  ));
7281
7282
  });
7282
7283
 
@@ -7288,11 +7289,11 @@ var CommandPalette = memo21(function CommandPalette2({
7288
7289
  onSelect,
7289
7290
  onHover
7290
7291
  }) {
7291
- const menuRef = React58.useRef(null);
7292
- const handleClose = React58.useCallback(() => {
7292
+ const menuRef = React59.useRef(null);
7293
+ const handleClose = React59.useCallback(() => {
7293
7294
  setShowCommandPalette(false);
7294
7295
  }, [setShowCommandPalette]);
7295
- return /* @__PURE__ */ React58.createElement(
7296
+ return /* @__PURE__ */ React59.createElement(
7296
7297
  Dialog,
7297
7298
  {
7298
7299
  style: {
@@ -7318,7 +7319,7 @@ var CommandPalette = memo21(function CommandPalette2({
7318
7319
  }, 0);
7319
7320
  }
7320
7321
  },
7321
- /* @__PURE__ */ React58.createElement("div", { className: "flex flex-col flex-1" }, /* @__PURE__ */ React58.createElement(AutoSizer, null, (size2) => /* @__PURE__ */ React58.createElement(
7322
+ /* @__PURE__ */ React59.createElement("div", { className: "flex flex-col flex-1" }, /* @__PURE__ */ React59.createElement(AutoSizer, null, (size2) => /* @__PURE__ */ React59.createElement(
7322
7323
  SearchCompletionMenu,
7323
7324
  {
7324
7325
  ref: menuRef,
@@ -7333,21 +7334,21 @@ var CommandPalette = memo21(function CommandPalette2({
7333
7334
  });
7334
7335
 
7335
7336
  // src/components/connected-users-menu/ConnectedUsersMenuLayout.tsx
7336
- import React59 from "react";
7337
- var UserAvatar = ({ userId, name, image }) => /* @__PURE__ */ React59.createElement(
7337
+ import React60 from "react";
7338
+ var UserAvatar = ({ userId, name, image }) => /* @__PURE__ */ React60.createElement(
7338
7339
  Tooltip,
7339
7340
  {
7340
7341
  key: userId,
7341
- content: /* @__PURE__ */ React59.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ React59.createElement(Small, null, name))
7342
+ content: /* @__PURE__ */ React60.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ React60.createElement(Small, null, name))
7342
7343
  },
7343
- /* @__PURE__ */ React59.createElement(Avatar, { size: INPUT_HEIGHT, userId, name, image })
7344
+ /* @__PURE__ */ React60.createElement(Avatar, { size: INPUT_HEIGHT, userId, name, image })
7344
7345
  );
7345
7346
  var ConnectedUsersMenuLayout = ({
7346
7347
  renderUsers,
7347
7348
  launchAIAssistant,
7348
7349
  isAssistantOpen
7349
7350
  }) => {
7350
- return /* @__PURE__ */ React59.createElement("div", { className: "flex gap-1.5" }, /* @__PURE__ */ React59.createElement(AvatarStack, { size: INPUT_HEIGHT, className: "mr-1" }, renderUsers()), launchAIAssistant && /* @__PURE__ */ React59.createElement(Tooltip, { content: "AI Assistant" }, /* @__PURE__ */ React59.createElement(
7351
+ return /* @__PURE__ */ React60.createElement("div", { className: "flex gap-1.5" }, /* @__PURE__ */ React60.createElement(AvatarStack, { size: INPUT_HEIGHT, className: "mr-1" }, renderUsers()), launchAIAssistant && /* @__PURE__ */ React60.createElement(Tooltip, { content: "AI Assistant" }, /* @__PURE__ */ React60.createElement(
7351
7352
  Button_default,
7352
7353
  {
7353
7354
  active: isAssistantOpen,
@@ -7360,7 +7361,7 @@ var ConnectedUsersMenuLayout = ({
7360
7361
 
7361
7362
  // src/components/DraggableMenuButton.tsx
7362
7363
  import { DragHandleDots2Icon } from "@noya-app/noya-icons";
7363
- import React60, { useCallback as useCallback27, useState as useState26 } from "react";
7364
+ import React61, { useCallback as useCallback27, useState as useState26 } from "react";
7364
7365
  var DraggableMenuButton = memoGeneric(function DraggableMenuButton2({
7365
7366
  items,
7366
7367
  onSelect,
@@ -7406,7 +7407,7 @@ var DraggableMenuButton = memoGeneric(function DraggableMenuButton2({
7406
7407
  },
7407
7408
  [setOpen]
7408
7409
  );
7409
- return /* @__PURE__ */ React60.createElement(
7410
+ return /* @__PURE__ */ React61.createElement(
7410
7411
  "div",
7411
7412
  {
7412
7413
  className: cx(
@@ -7422,7 +7423,7 @@ var DraggableMenuButton = memoGeneric(function DraggableMenuButton2({
7422
7423
  onClick?.();
7423
7424
  }
7424
7425
  },
7425
- items && onSelect ? /* @__PURE__ */ React60.createElement(
7426
+ items && onSelect ? /* @__PURE__ */ React61.createElement(
7426
7427
  DropdownMenu,
7427
7428
  {
7428
7429
  open,
@@ -7431,13 +7432,13 @@ var DraggableMenuButton = memoGeneric(function DraggableMenuButton2({
7431
7432
  onSelect,
7432
7433
  shouldBindKeyboardShortcuts: false
7433
7434
  },
7434
- /* @__PURE__ */ React60.createElement("div", { className: "pointer-events-none h-[15px]" }, /* @__PURE__ */ React60.createElement(
7435
+ /* @__PURE__ */ React61.createElement("div", { className: "pointer-events-none h-[15px]" }, /* @__PURE__ */ React61.createElement(
7435
7436
  DragHandleDots2Icon,
7436
7437
  {
7437
7438
  color: isVisible || open ? cssVars.colors.icon : "transparent"
7438
7439
  }
7439
7440
  ))
7440
- ) : /* @__PURE__ */ React60.createElement(
7441
+ ) : /* @__PURE__ */ React61.createElement(
7441
7442
  DragHandleDots2Icon,
7442
7443
  {
7443
7444
  color: isVisible || open ? cssVars.colors.icon : "transparent"
@@ -7448,10 +7449,10 @@ var DraggableMenuButton = memoGeneric(function DraggableMenuButton2({
7448
7449
 
7449
7450
  // src/components/Drawer.tsx
7450
7451
  import * as Dialog3 from "@radix-ui/react-dialog";
7451
- import * as React61 from "react";
7452
+ import * as React62 from "react";
7452
7453
  import { useImperativeHandle as useImperativeHandle8 } from "react";
7453
- var Drawer = React61.memo(
7454
- React61.forwardRef(function Drawer2({
7454
+ var Drawer = React62.memo(
7455
+ React62.forwardRef(function Drawer2({
7455
7456
  open,
7456
7457
  onOpenChange,
7457
7458
  trigger,
@@ -7481,7 +7482,7 @@ var Drawer = React61.memo(
7481
7482
  return internalOpen;
7482
7483
  }
7483
7484
  }));
7484
- const inner = /* @__PURE__ */ React61.createElement(React61.Fragment, null, /* @__PURE__ */ React61.createElement(
7485
+ const inner = /* @__PURE__ */ React62.createElement(React62.Fragment, null, /* @__PURE__ */ React62.createElement(
7485
7486
  Dialog3.Overlay,
7486
7487
  {
7487
7488
  className: cx(
@@ -7489,7 +7490,7 @@ var Drawer = React61.memo(
7489
7490
  positioning === "absolute" ? "absolute" : "fixed"
7490
7491
  )
7491
7492
  }
7492
- ), /* @__PURE__ */ React61.createElement(
7493
+ ), /* @__PURE__ */ React62.createElement(
7493
7494
  Dialog3.Content,
7494
7495
  {
7495
7496
  id,
@@ -7501,24 +7502,24 @@ var Drawer = React61.memo(
7501
7502
  className
7502
7503
  )
7503
7504
  },
7504
- title && /* @__PURE__ */ React61.createElement(Dialog3.Title, null, title),
7505
+ title && /* @__PURE__ */ React62.createElement(Dialog3.Title, null, title),
7505
7506
  children
7506
7507
  ));
7507
- return /* @__PURE__ */ React61.createElement(
7508
+ return /* @__PURE__ */ React62.createElement(
7508
7509
  Dialog3.Root,
7509
7510
  {
7510
7511
  key: "dialog",
7511
7512
  open: internalOpen,
7512
7513
  onOpenChange: setInternalOpen
7513
7514
  },
7514
- /* @__PURE__ */ React61.createElement(Dialog3.Trigger, { key: "trigger" }, trigger),
7515
- portalled ? /* @__PURE__ */ React61.createElement(Dialog3.Portal, { container: portalContainer }, inner) : inner
7515
+ /* @__PURE__ */ React62.createElement(Dialog3.Trigger, { key: "trigger" }, trigger),
7516
+ portalled ? /* @__PURE__ */ React62.createElement(Dialog3.Portal, { container: portalContainer }, inner) : inner
7516
7517
  );
7517
7518
  })
7518
7519
  );
7519
7520
 
7520
7521
  // src/components/Fade.tsx
7521
- import React62 from "react";
7522
+ import React63 from "react";
7522
7523
  var Fade = ({
7523
7524
  children,
7524
7525
  direction = "right",
@@ -7540,7 +7541,7 @@ var Fade = ({
7540
7541
  top: "left-0 right-0 top-0",
7541
7542
  bottom: "left-0 right-0 bottom-0"
7542
7543
  }[direction];
7543
- return /* @__PURE__ */ React62.createElement("div", { className: cx("relative", className), style: { height } }, position === "front" ? children : null, /* @__PURE__ */ React62.createElement(
7544
+ return /* @__PURE__ */ React63.createElement("div", { className: cx("relative", className), style: { height } }, position === "front" ? children : null, /* @__PURE__ */ React63.createElement(
7544
7545
  "div",
7545
7546
  {
7546
7547
  className: cx(
@@ -7559,17 +7560,17 @@ var Fade = ({
7559
7560
  };
7560
7561
 
7561
7562
  // src/components/file-explorer/FileExplorerLayout.tsx
7562
- import React63 from "react";
7563
+ import React64 from "react";
7563
7564
  var FileExplorerLayout = ({
7564
7565
  children,
7565
7566
  className,
7566
7567
  ...props
7567
- }) => /* @__PURE__ */ React63.createElement(Section, { className: cx(className, "px-3 flex-1"), ...props }, children);
7568
+ }) => /* @__PURE__ */ React64.createElement(Section, { className: cx(className, "px-3 flex-1"), ...props }, children);
7568
7569
  var FileExplorerUploadButton = ({
7569
7570
  showUploadButton,
7570
7571
  onUpload,
7571
7572
  children
7572
- }) => /* @__PURE__ */ React63.createElement("div", { className: "flex items-center gap-2" }, showUploadButton && /* @__PURE__ */ React63.createElement(
7573
+ }) => /* @__PURE__ */ React64.createElement("div", { className: "flex items-center gap-2" }, showUploadButton && /* @__PURE__ */ React64.createElement(
7573
7574
  IconButton,
7574
7575
  {
7575
7576
  iconName: "UploadIcon",
@@ -7580,14 +7581,14 @@ var FileExplorerUploadButton = ({
7580
7581
  ), children);
7581
7582
  var FileExplorerCollection = forwardRefGeneric(
7582
7583
  function FileExplorerCollection2({ ...props }, ref) {
7583
- return /* @__PURE__ */ React63.createElement(Collection, { ref, className: "-mx-3 flex-1", ...props });
7584
+ return /* @__PURE__ */ React64.createElement(Collection, { ref, className: "-mx-3 flex-1", ...props });
7584
7585
  }
7585
7586
  );
7586
7587
  var FileExplorerDetail = ({
7587
7588
  selected,
7588
7589
  size: size2,
7589
7590
  children
7590
- }) => /* @__PURE__ */ React63.createElement(
7591
+ }) => /* @__PURE__ */ React64.createElement(
7591
7592
  "span",
7592
7593
  {
7593
7594
  className: cx(
@@ -7600,10 +7601,10 @@ var FileExplorerDetail = ({
7600
7601
  var FileExplorerEmptyState = ({
7601
7602
  label = "No files",
7602
7603
  ...props
7603
- }) => /* @__PURE__ */ React63.createElement(Banner, { label, className: "mx-3", ...props });
7604
+ }) => /* @__PURE__ */ React64.createElement(Banner, { label, className: "mx-3", ...props });
7604
7605
 
7605
7606
  // src/components/FillInputField.tsx
7606
- import React66, { forwardRef as forwardRef23, memo as memo25 } from "react";
7607
+ import React67, { forwardRef as forwardRef23, memo as memo25 } from "react";
7607
7608
 
7608
7609
  // ../noya-file-format/src/types.ts
7609
7610
  var types_exports = {};
@@ -7928,25 +7929,25 @@ var ClassValue = /* @__PURE__ */ ((ClassValue2) => {
7928
7929
  })(ClassValue || {});
7929
7930
 
7930
7931
  // src/components/FillPreviewBackground.tsx
7931
- import * as React65 from "react";
7932
+ import * as React66 from "react";
7932
7933
 
7933
7934
  // src/contexts/ImageDataContext.tsx
7934
- import * as React64 from "react";
7935
- var ImageDataContext = React64.createContext(
7935
+ import * as React65 from "react";
7936
+ var ImageDataContext = React65.createContext(
7936
7937
  void 0
7937
7938
  );
7938
- var ImageDataProvider = React64.memo(function ImageDataProvider2({
7939
+ var ImageDataProvider = React65.memo(function ImageDataProvider2({
7939
7940
  children,
7940
7941
  getImageData
7941
7942
  }) {
7942
- const contextValue = React64.useMemo(
7943
+ const contextValue = React65.useMemo(
7943
7944
  () => ({ getImageData: getImageData ?? (() => void 0) }),
7944
7945
  [getImageData]
7945
7946
  );
7946
- return /* @__PURE__ */ React64.createElement(ImageDataContext.Provider, { value: contextValue }, children);
7947
+ return /* @__PURE__ */ React65.createElement(ImageDataContext.Provider, { value: contextValue }, children);
7947
7948
  });
7948
7949
  function useImageData(ref) {
7949
- const value = React64.useContext(ImageDataContext);
7950
+ const value = React65.useContext(ImageDataContext);
7950
7951
  if (!value) {
7951
7952
  throw new Error("Missing ImageDataProvider");
7952
7953
  }
@@ -7954,14 +7955,14 @@ function useImageData(ref) {
7954
7955
  }
7955
7956
 
7956
7957
  // src/hooks/useObjectURL.ts
7957
- import { useLayoutEffect as useLayoutEffect7, useMemo as useMemo26 } from "react";
7958
+ import { useLayoutEffect as useLayoutEffect6, useMemo as useMemo26 } from "react";
7958
7959
  function useObjectURL(object) {
7959
7960
  const objectURL = useMemo26(() => {
7960
7961
  if (object instanceof Blob) return URL.createObjectURL(object);
7961
7962
  const bytes = object instanceof Uint8Array ? object : object !== void 0 ? new Uint8Array(object) : new Uint8Array();
7962
7963
  return URL.createObjectURL(new Blob([bytes]));
7963
7964
  }, [object]);
7964
- useLayoutEffect7(() => {
7965
+ useLayoutEffect6(() => {
7965
7966
  return () => URL.revokeObjectURL(objectURL);
7966
7967
  }, [objectURL]);
7967
7968
  return objectURL;
@@ -8016,10 +8017,10 @@ var dotsHorizontalSvg = (fillColor) => `
8016
8017
  <path d='M3.625 7.5C3.625 8.12132 3.12132 8.625 2.5 8.625C1.87868 8.625 1.375 8.12132 1.375 7.5C1.375 6.87868 1.87868 6.375 2.5 6.375C3.12132 6.375 3.625 6.87868 3.625 7.5ZM8.625 7.5C8.625 8.12132 8.12132 8.625 7.5 8.625C6.87868 8.625 6.375 8.12132 6.375 7.5C6.375 6.87868 6.87868 6.375 7.5 6.375C8.12132 6.375 8.625 6.87868 8.625 7.5ZM12.5 8.625C13.1213 8.625 13.625 8.12132 13.625 7.5C13.625 6.87868 13.1213 6.375 12.5 6.375C11.8787 6.375 11.375 6.87868 11.375 7.5C11.375 8.12132 11.8787 8.625 12.5 8.625Z'></path>
8017
8018
  </svg>
8018
8019
  `;
8019
- var Background = React65.memo(function Background2({
8020
+ var Background = React66.memo(function Background2({
8020
8021
  background: background2
8021
8022
  }) {
8022
- return /* @__PURE__ */ React65.createElement(
8023
+ return /* @__PURE__ */ React66.createElement(
8023
8024
  "span",
8024
8025
  {
8025
8026
  className: `${background2 ? `bg-[${background2}]` : "bg-input-background"} absolute inset-0`
@@ -8038,7 +8039,7 @@ function getPatternSizeAndPosition(fillType, tileScale) {
8038
8039
  return "center / 100% 100%";
8039
8040
  }
8040
8041
  }
8041
- var PatternPreviewBackground = React65.memo(
8042
+ var PatternPreviewBackground = React66.memo(
8042
8043
  function PatternPreviewBackground2({
8043
8044
  fillType,
8044
8045
  tileScale,
@@ -8047,7 +8048,7 @@ var PatternPreviewBackground = React65.memo(
8047
8048
  const image = useImageData(imageRef);
8048
8049
  const url = useObjectURL(image);
8049
8050
  const size2 = getPatternSizeAndPosition(fillType, tileScale);
8050
- const background2 = React65.useMemo(
8051
+ const background2 = React66.useMemo(
8051
8052
  () => [
8052
8053
  size2,
8053
8054
  `url(${url})`,
@@ -8055,44 +8056,44 @@ var PatternPreviewBackground = React65.memo(
8055
8056
  ].join(" "),
8056
8057
  [fillType, size2, url]
8057
8058
  );
8058
- return /* @__PURE__ */ React65.createElement(Background, { background: background2 });
8059
+ return /* @__PURE__ */ React66.createElement(Background, { background: background2 });
8059
8060
  }
8060
8061
  );
8061
- var ColorPreviewBackground = React65.memo(function ColorPreviewBackground2({
8062
+ var ColorPreviewBackground = React66.memo(function ColorPreviewBackground2({
8062
8063
  color
8063
8064
  }) {
8064
- const background2 = React65.useMemo(
8065
+ const background2 = React66.useMemo(
8065
8066
  () => sketchColorToRgbaString(color),
8066
8067
  [color]
8067
8068
  );
8068
- return /* @__PURE__ */ React65.createElement(Background, { background: background2 });
8069
+ return /* @__PURE__ */ React66.createElement(Background, { background: background2 });
8069
8070
  });
8070
- var GradientPreviewBackground = React65.memo(
8071
+ var GradientPreviewBackground = React66.memo(
8071
8072
  function GradientPreviewBackground2({
8072
8073
  gradient
8073
8074
  }) {
8074
- const background2 = React65.useMemo(
8075
+ const background2 = React66.useMemo(
8075
8076
  () => getGradientBackground(gradient.stops, gradient.gradientType, 180),
8076
8077
  [gradient.gradientType, gradient.stops]
8077
8078
  );
8078
- return /* @__PURE__ */ React65.createElement(Background, { background: background2 });
8079
+ return /* @__PURE__ */ React66.createElement(Background, { background: background2 });
8079
8080
  }
8080
8081
  );
8081
8082
  var background = `center url("data:image/svg+xml;utf8,${dotsHorizontalSvg(
8082
8083
  cssVars.colors.placeholderDots
8083
8084
  )}") no-repeat`;
8084
- var FillPreviewBackground = React65.memo(function FillPreviewBackground2({
8085
+ var FillPreviewBackground = React66.memo(function FillPreviewBackground2({
8085
8086
  value
8086
8087
  }) {
8087
- if (!value) return /* @__PURE__ */ React65.createElement(Background, { background });
8088
+ if (!value) return /* @__PURE__ */ React66.createElement(Background, { background });
8088
8089
  switch (value._class) {
8089
8090
  case "color":
8090
- return /* @__PURE__ */ React65.createElement(ColorPreviewBackground, { color: value });
8091
+ return /* @__PURE__ */ React66.createElement(ColorPreviewBackground, { color: value });
8091
8092
  case "gradient":
8092
- return /* @__PURE__ */ React65.createElement(GradientPreviewBackground, { gradient: value });
8093
+ return /* @__PURE__ */ React66.createElement(GradientPreviewBackground, { gradient: value });
8093
8094
  case "pattern":
8094
8095
  if (!value.image) return null;
8095
- return /* @__PURE__ */ React65.createElement(
8096
+ return /* @__PURE__ */ React66.createElement(
8096
8097
  PatternPreviewBackground,
8097
8098
  {
8098
8099
  fillType: value.patternFillType,
@@ -8104,7 +8105,7 @@ var FillPreviewBackground = React65.memo(function FillPreviewBackground2({
8104
8105
  });
8105
8106
 
8106
8107
  // src/components/FillInputField.tsx
8107
- var FillButton = forwardRef23(({ className, ...props }, ref) => /* @__PURE__ */ React66.createElement(
8108
+ var FillButton = forwardRef23(({ className, ...props }, ref) => /* @__PURE__ */ React67.createElement(
8108
8109
  "button",
8109
8110
  {
8110
8111
  ref,
@@ -8117,12 +8118,12 @@ var FillButton = forwardRef23(({ className, ...props }, ref) => /* @__PURE__ */
8117
8118
  ));
8118
8119
  var FillInputField = memo25(
8119
8120
  forwardRef23(function FillInputField2({ id, value, ...rest }, ref) {
8120
- return /* @__PURE__ */ React66.createElement(FillButton, { ref, id, ...rest }, /* @__PURE__ */ React66.createElement(FillPreviewBackground, { value }));
8121
+ return /* @__PURE__ */ React67.createElement(FillButton, { ref, id, ...rest }, /* @__PURE__ */ React67.createElement(FillPreviewBackground, { value }));
8121
8122
  })
8122
8123
  );
8123
8124
 
8124
8125
  // src/components/FloatingWindow.tsx
8125
- import React67, { useCallback as useCallback28, useRef as useRef23, useState as useState27 } from "react";
8126
+ import React68, { useCallback as useCallback28, useRef as useRef23, useState as useState27 } from "react";
8126
8127
  var styles2 = {
8127
8128
  noSelect: {
8128
8129
  userSelect: "none",
@@ -8215,7 +8216,7 @@ function defaultRenderToolbar({
8215
8216
  toolbarContent,
8216
8217
  onClose
8217
8218
  }) {
8218
- return /* @__PURE__ */ React67.createElement(React67.Fragment, null, /* @__PURE__ */ React67.createElement(Small, { className: "flex-1 font-medium text-text" }, title), toolbarContent, /* @__PURE__ */ React67.createElement(
8219
+ return /* @__PURE__ */ React68.createElement(React68.Fragment, null, /* @__PURE__ */ React68.createElement(Small, { className: "flex-1 font-medium text-text" }, title), toolbarContent, /* @__PURE__ */ React68.createElement(
8219
8220
  IconButton,
8220
8221
  {
8221
8222
  iconName: "Cross3Icon",
@@ -8337,7 +8338,7 @@ var FloatingWindow = ({
8337
8338
  setResizeDirection(null);
8338
8339
  toggleGlobalTextSelection(false);
8339
8340
  }, []);
8340
- React67.useEffect(() => {
8341
+ React68.useEffect(() => {
8341
8342
  document.addEventListener("mousemove", handleMouseMove);
8342
8343
  document.addEventListener("mouseup", handleMouseUp);
8343
8344
  return () => {
@@ -8351,7 +8352,7 @@ var FloatingWindow = ({
8351
8352
  if (onClose) onClose();
8352
8353
  floatingWindowManager.closeWindow(currentFloatingWindow.id);
8353
8354
  }, [currentFloatingWindow.id, floatingWindowManager, onClose]);
8354
- return /* @__PURE__ */ React67.createElement(
8355
+ return /* @__PURE__ */ React68.createElement(
8355
8356
  "div",
8356
8357
  {
8357
8358
  ref: wrapperRef,
@@ -8366,7 +8367,7 @@ var FloatingWindow = ({
8366
8367
  zIndex: cssVars.zIndex.menu
8367
8368
  }
8368
8369
  },
8369
- /* @__PURE__ */ React67.createElement(
8370
+ /* @__PURE__ */ React68.createElement(
8370
8371
  "div",
8371
8372
  {
8372
8373
  style: {
@@ -8377,9 +8378,9 @@ var FloatingWindow = ({
8377
8378
  },
8378
8379
  renderToolbar({ title, toolbarContent, onClose: handleClose })
8379
8380
  ),
8380
- /* @__PURE__ */ React67.createElement(Divider, null),
8381
- /* @__PURE__ */ React67.createElement("div", { style: styles2.content }, children),
8382
- Object.entries(resizeHandlePositions).map(([direction, style2]) => /* @__PURE__ */ React67.createElement(
8381
+ /* @__PURE__ */ React68.createElement(Divider, null),
8382
+ /* @__PURE__ */ React68.createElement("div", { style: styles2.content }, children),
8383
+ Object.entries(resizeHandlePositions).map(([direction, style2]) => /* @__PURE__ */ React68.createElement(
8383
8384
  "div",
8384
8385
  {
8385
8386
  key: direction,
@@ -8401,8 +8402,8 @@ import {
8401
8402
  hsvaToRgba,
8402
8403
  rgbaToHsva as rgbaToHsva2
8403
8404
  } from "@noya-app/noya-colorpicker";
8404
- import * as React68 from "react";
8405
- var GradientPicker = React68.memo(function GradientPicker2({
8405
+ import * as React69 from "react";
8406
+ var GradientPicker = React69.memo(function GradientPicker2({
8406
8407
  value,
8407
8408
  selectedStop,
8408
8409
  onChangeColor,
@@ -8411,7 +8412,7 @@ var GradientPicker = React68.memo(function GradientPicker2({
8411
8412
  onDelete,
8412
8413
  onSelectStop
8413
8414
  }) {
8414
- const colorModel = React68.useMemo(
8415
+ const colorModel = React69.useMemo(
8415
8416
  () => ({
8416
8417
  defaultColor: { r: 0, g: 0, b: 0, a: 1 },
8417
8418
  toHsva: rgbaToHsva2,
@@ -8420,30 +8421,30 @@ var GradientPicker = React68.memo(function GradientPicker2({
8420
8421
  }),
8421
8422
  []
8422
8423
  );
8423
- const rgbaColor = React68.useMemo(
8424
+ const rgbaColor = React69.useMemo(
8424
8425
  () => sketchColorToRgba(value[selectedStop].color),
8425
8426
  [value, selectedStop]
8426
8427
  );
8427
- const handleChangeColor = React68.useCallback(
8428
+ const handleChangeColor = React69.useCallback(
8428
8429
  (value2) => {
8429
8430
  onChangeColor(rgbaToSketchColor(value2));
8430
8431
  },
8431
8432
  [onChangeColor]
8432
8433
  );
8433
- const handleAddGradientStop = React68.useCallback(
8434
+ const handleAddGradientStop = React69.useCallback(
8434
8435
  (value2, position) => {
8435
8436
  onAdd(rgbaToSketchColor(value2), position);
8436
8437
  },
8437
8438
  [onAdd]
8438
8439
  );
8439
- return /* @__PURE__ */ React68.createElement(
8440
+ return /* @__PURE__ */ React69.createElement(
8440
8441
  NoyaColorPicker,
8441
8442
  {
8442
8443
  onChange: handleChangeColor,
8443
8444
  colorModel,
8444
8445
  color: rgbaColor
8445
8446
  },
8446
- /* @__PURE__ */ React68.createElement(
8447
+ /* @__PURE__ */ React69.createElement(
8447
8448
  Gradient,
8448
8449
  {
8449
8450
  gradients: value,
@@ -8454,17 +8455,17 @@ var GradientPicker = React68.memo(function GradientPicker2({
8454
8455
  onDelete
8455
8456
  }
8456
8457
  ),
8457
- /* @__PURE__ */ React68.createElement(Spacer.Vertical, { size: 10 }),
8458
- /* @__PURE__ */ React68.createElement(Saturation, null),
8459
- /* @__PURE__ */ React68.createElement(Spacer.Vertical, { size: 12 }),
8460
- /* @__PURE__ */ React68.createElement(Hue, null),
8461
- /* @__PURE__ */ React68.createElement(Spacer.Vertical, { size: 5 }),
8462
- /* @__PURE__ */ React68.createElement(Alpha, null)
8458
+ /* @__PURE__ */ React69.createElement(Spacer.Vertical, { size: 10 }),
8459
+ /* @__PURE__ */ React69.createElement(Saturation, null),
8460
+ /* @__PURE__ */ React69.createElement(Spacer.Vertical, { size: 12 }),
8461
+ /* @__PURE__ */ React69.createElement(Hue, null),
8462
+ /* @__PURE__ */ React69.createElement(Spacer.Vertical, { size: 5 }),
8463
+ /* @__PURE__ */ React69.createElement(Alpha, null)
8463
8464
  );
8464
8465
  });
8465
8466
 
8466
8467
  // src/components/InspectorContainer.tsx
8467
- import React69, { forwardRef as forwardRef24, memo as memo27 } from "react";
8468
+ import React70, { forwardRef as forwardRef24, memo as memo27 } from "react";
8468
8469
  var InspectorContainer = memo27(
8469
8470
  forwardRef24(function InspectorContainer2({
8470
8471
  header,
@@ -8475,7 +8476,7 @@ var InspectorContainer = memo27(
8475
8476
  className,
8476
8477
  style: style2
8477
8478
  }, forwardedRef) {
8478
- return /* @__PURE__ */ React69.createElement(
8479
+ return /* @__PURE__ */ React70.createElement(
8479
8480
  "div",
8480
8481
  {
8481
8482
  ref: forwardedRef,
@@ -8490,32 +8491,32 @@ var InspectorContainer = memo27(
8490
8491
  }
8491
8492
  },
8492
8493
  header,
8493
- children ? /* @__PURE__ */ React69.createElement(ScrollArea, null, /* @__PURE__ */ React69.createElement("div", { className: "flex flex-col relative" }, showDividers ? withSeparatorElements(children, /* @__PURE__ */ React69.createElement(Divider, null)) : children)) : fallback ? /* @__PURE__ */ React69.createElement("div", { className: "flex flex-col relative h-full" }, fallback) : null
8494
+ children ? /* @__PURE__ */ React70.createElement(ScrollArea, null, /* @__PURE__ */ React70.createElement("div", { className: "flex flex-col relative" }, showDividers ? withSeparatorElements(children, /* @__PURE__ */ React70.createElement(Divider, null)) : children)) : fallback ? /* @__PURE__ */ React70.createElement("div", { className: "flex flex-col relative h-full" }, fallback) : null
8494
8495
  );
8495
8496
  })
8496
8497
  );
8497
8498
 
8498
8499
  // src/components/LabeledElementView.tsx
8499
8500
  import * as kiwi from "kiwi.js";
8500
- import * as React70 from "react";
8501
- var LabeledElementView = React70.memo(function LabeledElementView2({
8501
+ import * as React71 from "react";
8502
+ var LabeledElementView = React71.memo(function LabeledElementView2({
8502
8503
  children,
8503
8504
  renderLabel
8504
8505
  }) {
8505
- const elementIds = React70.Children.toArray(children).flatMap(
8506
- (child) => React70.isValidElement(child) && child.type === React70.Fragment ? child.props.children : [child]
8506
+ const elementIds = React71.Children.toArray(children).flatMap(
8507
+ (child) => React71.isValidElement(child) && child.type === React71.Fragment ? child.props.children : [child]
8507
8508
  ).map(
8508
- (child) => React70.isValidElement(child) && "id" in child.props ? child.props.id : null
8509
+ (child) => React71.isValidElement(child) && "id" in child.props ? child.props.id : null
8509
8510
  ).filter((id) => !!id);
8510
8511
  const serializedIds = elementIds.join(",");
8511
- const containerRef = React70.useRef(null);
8512
- const refs = React70.useMemo(() => {
8512
+ const containerRef = React71.useRef(null);
8513
+ const refs = React71.useMemo(() => {
8513
8514
  return Object.fromEntries(
8514
- serializedIds.split(",").map((id) => [id, React70.createRef()])
8515
+ serializedIds.split(",").map((id) => [id, React71.createRef()])
8515
8516
  );
8516
8517
  }, [serializedIds]);
8517
- const labelElements = React70.useMemo(() => {
8518
- return serializedIds.split(",").map((id, index) => /* @__PURE__ */ React70.createElement(
8518
+ const labelElements = React71.useMemo(() => {
8519
+ return serializedIds.split(",").map((id, index) => /* @__PURE__ */ React71.createElement(
8519
8520
  "span",
8520
8521
  {
8521
8522
  key: id,
@@ -8528,7 +8529,7 @@ var LabeledElementView = React70.memo(function LabeledElementView2({
8528
8529
  })
8529
8530
  ));
8530
8531
  }, [refs, serializedIds, renderLabel]);
8531
- React70.useLayoutEffect(() => {
8532
+ React71.useLayoutEffect(() => {
8532
8533
  if (!containerRef.current) return;
8533
8534
  const containerRect = containerRef.current.getBoundingClientRect();
8534
8535
  const solver = new kiwi.Solver();
@@ -8590,19 +8591,19 @@ var LabeledElementView = React70.memo(function LabeledElementView2({
8590
8591
  `${Math.max(...heights)}px`
8591
8592
  );
8592
8593
  }, [refs, labelElements]);
8593
- return /* @__PURE__ */ React70.createElement("div", { className: "flex flex-1 flex-col relative", ref: containerRef }, /* @__PURE__ */ React70.createElement("div", { className: "flex flex-1 items-center" }, children), /* @__PURE__ */ React70.createElement("div", { className: "relative overflow-hidden select-none" }, labelElements));
8594
+ return /* @__PURE__ */ React71.createElement("div", { className: "flex flex-1 flex-col relative", ref: containerRef }, /* @__PURE__ */ React71.createElement("div", { className: "flex flex-1 items-center" }, children), /* @__PURE__ */ React71.createElement("div", { className: "relative overflow-hidden select-none" }, labelElements));
8594
8595
  });
8595
8596
 
8596
8597
  // src/components/LabeledField.tsx
8597
- import React72, { memo as memo29, useMemo as useMemo30 } from "react";
8598
+ import React73, { memo as memo29, useMemo as useMemo30 } from "react";
8598
8599
 
8599
8600
  // src/hooks/useIndent.ts
8600
- import React71 from "react";
8601
- var IndentContext = React71.createContext({
8601
+ import React72 from "react";
8602
+ var IndentContext = React72.createContext({
8602
8603
  indentLevel: 0
8603
8604
  });
8604
8605
  var useIndent = () => {
8605
- const { indentLevel } = React71.useContext(IndentContext);
8606
+ const { indentLevel } = React72.useContext(IndentContext);
8606
8607
  return indentLevel;
8607
8608
  };
8608
8609
 
@@ -8661,7 +8662,7 @@ var LabeledField = memo29(function LabeledField2({
8661
8662
  }),
8662
8663
  [labelWidth, indentLevel, labelStyleProp]
8663
8664
  );
8664
- return /* @__PURE__ */ React72.createElement(LabelContext.Provider, { value: labelContextValue }, labelPosition === "inset" ? /* @__PURE__ */ React72.createElement(LabelPositionContext.Provider, { value: labelPositionInset }, children) : /* @__PURE__ */ React72.createElement("div", { className: cx("flex relative flex-1", className), style: style2 }, Boolean(indentLevel) && /* @__PURE__ */ React72.createElement("div", { style: indentStyle }), /* @__PURE__ */ React72.createElement("div", { className: labeledFieldClasses }, /* @__PURE__ */ React72.createElement(
8665
+ return /* @__PURE__ */ React73.createElement(LabelContext.Provider, { value: labelContextValue }, labelPosition === "inset" ? /* @__PURE__ */ React73.createElement(LabelPositionContext.Provider, { value: labelPositionInset }, children) : /* @__PURE__ */ React73.createElement("div", { className: cx("flex relative flex-1", className), style: style2 }, Boolean(indentLevel) && /* @__PURE__ */ React73.createElement("div", { style: indentStyle }), /* @__PURE__ */ React73.createElement("div", { className: labeledFieldClasses }, /* @__PURE__ */ React73.createElement(
8665
8666
  Label,
8666
8667
  {
8667
8668
  htmlFor: fieldId,
@@ -8670,7 +8671,7 @@ var LabeledField = memo29(function LabeledField2({
8670
8671
  ...props
8671
8672
  },
8672
8673
  label
8673
- ), labelPosition === "start" ? /* @__PURE__ */ React72.createElement("div", { className: "flex-auto flex", style: fieldStyle }, children) : children)));
8674
+ ), labelPosition === "start" ? /* @__PURE__ */ React73.createElement("div", { className: "flex-auto flex", style: fieldStyle }, children) : children)));
8674
8675
  });
8675
8676
 
8676
8677
  // src/components/MediaThumbnail.tsx
@@ -8680,7 +8681,7 @@ import {
8680
8681
  SpeakerLoudIcon,
8681
8682
  VideoIcon
8682
8683
  } from "@noya-app/noya-icons";
8683
- import React73, { memo as memo30, useMemo as useMemo31 } from "react";
8684
+ import React74, { memo as memo30, useMemo as useMemo31 } from "react";
8684
8685
 
8685
8686
  // src/components/catppuccin/fileIcons.ts
8686
8687
  var fileIcons = {
@@ -11145,8 +11146,8 @@ var MediaThumbnail = memo30(function MediaThumbnail2({
11145
11146
  const content = useMemo31(() => {
11146
11147
  switch (contentType) {
11147
11148
  case "image":
11148
- if (!url) return /* @__PURE__ */ React73.createElement(ImageIcon, { color: iconColor, style: iconStyles });
11149
- return /* @__PURE__ */ React73.createElement(
11149
+ if (!url) return /* @__PURE__ */ React74.createElement(ImageIcon, { color: iconColor, style: iconStyles });
11150
+ return /* @__PURE__ */ React74.createElement(
11150
11151
  "img",
11151
11152
  {
11152
11153
  src: url,
@@ -11156,18 +11157,18 @@ var MediaThumbnail = memo30(function MediaThumbnail2({
11156
11157
  }
11157
11158
  );
11158
11159
  case "video":
11159
- return /* @__PURE__ */ React73.createElement(VideoIcon, { color: iconColor, style: iconStyles });
11160
+ return /* @__PURE__ */ React74.createElement(VideoIcon, { color: iconColor, style: iconStyles });
11160
11161
  case "audio":
11161
- return /* @__PURE__ */ React73.createElement(SpeakerLoudIcon, { color: iconColor, style: iconStyles });
11162
+ return /* @__PURE__ */ React74.createElement(SpeakerLoudIcon, { color: iconColor, style: iconStyles });
11162
11163
  default:
11163
11164
  if (iconName) {
11164
11165
  const Icon = Icons[iconName];
11165
- return /* @__PURE__ */ React73.createElement(Icon, { color: iconColor, style: iconStyles });
11166
+ return /* @__PURE__ */ React74.createElement(Icon, { color: iconColor, style: iconStyles });
11166
11167
  }
11167
11168
  if (fileName) {
11168
11169
  const fileIcon = findFileIcon(fileName);
11169
11170
  if (fileIcon) {
11170
- return /* @__PURE__ */ React73.createElement(
11171
+ return /* @__PURE__ */ React74.createElement(
11171
11172
  "img",
11172
11173
  {
11173
11174
  src: `https://api.iconify.design/catppuccin/${fileIcon}.svg?height=none&box=1`,
@@ -11177,10 +11178,10 @@ var MediaThumbnail = memo30(function MediaThumbnail2({
11177
11178
  );
11178
11179
  }
11179
11180
  }
11180
- return /* @__PURE__ */ React73.createElement(FileIcon, { color: iconColor, style: iconStyles });
11181
+ return /* @__PURE__ */ React74.createElement(FileIcon, { color: iconColor, style: iconStyles });
11181
11182
  }
11182
11183
  }, [contentType, url, iconColor, iconStyles, iconName, fileName]);
11183
- return /* @__PURE__ */ React73.createElement(
11184
+ return /* @__PURE__ */ React74.createElement(
11184
11185
  "div",
11185
11186
  {
11186
11187
  className: cx(
@@ -11211,7 +11212,7 @@ function findFileIcon(fileName) {
11211
11212
  }
11212
11213
 
11213
11214
  // src/components/Message.tsx
11214
- import React74, { forwardRef as forwardRef25, memo as memo31, useMemo as useMemo32 } from "react";
11215
+ import React75, { forwardRef as forwardRef25, memo as memo31, useMemo as useMemo32 } from "react";
11215
11216
  var Message = memo31(
11216
11217
  forwardRef25(function Message2({ role, children, user, avatarSize = INPUT_HEIGHT }, ref) {
11217
11218
  const randomId = crypto.randomUUID();
@@ -11222,7 +11223,7 @@ var Message = memo31(
11222
11223
  } : void 0,
11223
11224
  [userMessageBackgroundColor, role]
11224
11225
  );
11225
- return /* @__PURE__ */ React74.createElement(
11226
+ return /* @__PURE__ */ React75.createElement(
11226
11227
  "div",
11227
11228
  {
11228
11229
  className: cx(
@@ -11230,15 +11231,15 @@ var Message = memo31(
11230
11231
  role === "user" ? "flex-row-reverse" : "flex-row"
11231
11232
  )
11232
11233
  },
11233
- role === "assistant" ? /* @__PURE__ */ React74.createElement(
11234
+ role === "assistant" ? /* @__PURE__ */ React75.createElement(
11234
11235
  Avatar,
11235
11236
  {
11236
11237
  name: "Assistant",
11237
11238
  size: avatarSize,
11238
11239
  backgroundColor: cssVars.colors.primaryPastel
11239
11240
  },
11240
- /* @__PURE__ */ React74.createElement(Logo, { style: { width: 15 }, fill: cssVars.colors.primary })
11241
- ) : /* @__PURE__ */ React74.createElement(
11241
+ /* @__PURE__ */ React75.createElement(Logo, { style: { width: 15 }, fill: cssVars.colors.primary })
11242
+ ) : /* @__PURE__ */ React75.createElement(
11242
11243
  Avatar,
11243
11244
  {
11244
11245
  userId: !user ? randomId : user?.id,
@@ -11247,7 +11248,7 @@ var Message = memo31(
11247
11248
  size: avatarSize
11248
11249
  }
11249
11250
  ),
11250
- /* @__PURE__ */ React74.createElement(
11251
+ /* @__PURE__ */ React75.createElement(
11251
11252
  "div",
11252
11253
  {
11253
11254
  className: cx(
@@ -11257,7 +11258,7 @@ var Message = memo31(
11257
11258
  style: styles3,
11258
11259
  ref
11259
11260
  },
11260
- /* @__PURE__ */ React74.createElement(
11261
+ /* @__PURE__ */ React75.createElement(
11261
11262
  Text,
11262
11263
  {
11263
11264
  variant: "small",
@@ -11272,9 +11273,9 @@ var Message = memo31(
11272
11273
 
11273
11274
  // src/components/pipeline/PipelineResultLayout.tsx
11274
11275
  import { Link1Icon } from "@noya-app/noya-icons";
11275
- import React75 from "react";
11276
+ import React76 from "react";
11276
11277
  var PipelineResultLink = ({ url }) => {
11277
- return /* @__PURE__ */ React75.createElement("div", { className: "flex flex-col gap-0.5" }, /* @__PURE__ */ React75.createElement(
11278
+ return /* @__PURE__ */ React76.createElement("div", { className: "flex flex-col gap-0.5" }, /* @__PURE__ */ React76.createElement(
11278
11279
  "a",
11279
11280
  {
11280
11281
  href: url,
@@ -11282,15 +11283,15 @@ var PipelineResultLink = ({ url }) => {
11282
11283
  rel: "noopener noreferrer",
11283
11284
  className: "flex text-primary hover:opacity-80 border border-divider rounded-md"
11284
11285
  },
11285
- /* @__PURE__ */ React75.createElement("div", { className: "flex gap-1 items-center p-2" }, /* @__PURE__ */ React75.createElement(Link1Icon, { className: "w-[15px] h-[15px] flex-shrink-0" })),
11286
- /* @__PURE__ */ React75.createElement(DividerVertical, null),
11287
- /* @__PURE__ */ React75.createElement(Small, { className: "truncate p-2 flex-1" }, url)
11286
+ /* @__PURE__ */ React76.createElement("div", { className: "flex gap-1 items-center p-2" }, /* @__PURE__ */ React76.createElement(Link1Icon, { className: "w-[15px] h-[15px] flex-shrink-0" })),
11287
+ /* @__PURE__ */ React76.createElement(DividerVertical, null),
11288
+ /* @__PURE__ */ React76.createElement(Small, { className: "truncate p-2 flex-1" }, url)
11288
11289
  ));
11289
11290
  };
11290
11291
  var PipelineResultLayout = ({
11291
11292
  children
11292
11293
  }) => {
11293
- return /* @__PURE__ */ React75.createElement("div", { className: "flex flex-col gap-2" }, children);
11294
+ return /* @__PURE__ */ React76.createElement("div", { className: "flex flex-col gap-2" }, children);
11294
11295
  };
11295
11296
  function getPipelineResultLink(value) {
11296
11297
  if (typeof value !== "object" || value === null) return void 0;
@@ -11306,27 +11307,27 @@ function getPipelineResultLink(value) {
11306
11307
  // src/components/Progress.tsx
11307
11308
  import { clamp } from "@noya-app/noya-utils";
11308
11309
  import * as ProgressPrimitive from "@radix-ui/react-progress";
11309
- import * as React76 from "react";
11310
+ import * as React77 from "react";
11310
11311
  function Progress({
11311
11312
  value,
11312
11313
  variant = "normal",
11313
11314
  className
11314
11315
  }) {
11315
11316
  const clampedValue = clamp(value, 0, 100);
11316
- const transformStyles = React76.useMemo(
11317
+ const transformStyles = React77.useMemo(
11317
11318
  () => ({
11318
11319
  transform: `translateX(-${100 - clampedValue}%)`
11319
11320
  }),
11320
11321
  [clampedValue]
11321
11322
  );
11322
- return /* @__PURE__ */ React76.createElement(
11323
+ return /* @__PURE__ */ React77.createElement(
11323
11324
  ProgressPrimitive.Root,
11324
11325
  {
11325
11326
  className: cx(`relative hidden bg-input-background h-[5px] `, className),
11326
11327
  style: { transform: "translateZ(0)" },
11327
11328
  value: clampedValue
11328
11329
  },
11329
- /* @__PURE__ */ React76.createElement(
11330
+ /* @__PURE__ */ React77.createElement(
11330
11331
  ProgressPrimitive.Indicator,
11331
11332
  {
11332
11333
  className: `${variant === "primary" ? "bg-primary" : variant === "secondary" ? "bg-secondary" : variant === "warning" ? "bg-warning" : "bg-text"} transition-[transform_660ms_cubic-bezier(0.65,0,0.35,1) w-full h-full`,
@@ -11337,7 +11338,7 @@ function Progress({
11337
11338
  }
11338
11339
 
11339
11340
  // src/components/Section.tsx
11340
- import React77, { memo as memo32, useMemo as useMemo34 } from "react";
11341
+ import React78, { memo as memo32, useMemo as useMemo34 } from "react";
11341
11342
  var titleIconStyle = {
11342
11343
  marginRight: "8px",
11343
11344
  alignSelf: "flex-start",
@@ -11372,7 +11373,7 @@ var SectionInternal = ({
11372
11373
  }),
11373
11374
  [titleTextStyle, title, extraPadding, styleProp]
11374
11375
  );
11375
- const hasChildren = React77.Children.toArray(children).some((child) => !!child);
11376
+ const hasChildren = React78.Children.toArray(children).some((child) => !!child);
11376
11377
  const headerStyle = useMemo34(
11377
11378
  () => ({
11378
11379
  marginBottom: hasChildren ? "4px" : void 0,
@@ -11380,7 +11381,7 @@ var SectionInternal = ({
11380
11381
  }),
11381
11382
  [hasChildren]
11382
11383
  );
11383
- return /* @__PURE__ */ React77.createElement("div", { style: style2, className }, (title || titleIcon || right) && /* @__PURE__ */ React77.createElement(InspectorPrimitives_exports.SectionHeader, { style: headerStyle }, titleIcon && /* @__PURE__ */ React77.createElement("div", { style: titleIconStyle, className: textStyles[titleTextStyle] }, titleIconOptions.inlineBlockWrapper ? /* @__PURE__ */ React77.createElement("div", { style: titleIconWrapperStyle }, titleIcon) : titleIcon), title && /* @__PURE__ */ React77.createElement(React77.Fragment, null, onClickTitle ? /* @__PURE__ */ React77.createElement(Button, { variant: "none", onClick: onClickTitle }, /* @__PURE__ */ React77.createElement(InspectorPrimitives_exports.Title, { $textStyle: titleTextStyle }, title)) : /* @__PURE__ */ React77.createElement(InspectorPrimitives_exports.Title, { $textStyle: titleTextStyle }, title)), /* @__PURE__ */ React77.createElement(Spacer.Horizontal, null), right), /* @__PURE__ */ React77.createElement(IndentContext.Provider, { value: { indentLevel: 1 } }, children));
11384
+ return /* @__PURE__ */ React78.createElement("div", { style: style2, className }, (title || titleIcon || right) && /* @__PURE__ */ React78.createElement(InspectorPrimitives_exports.SectionHeader, { style: headerStyle }, titleIcon && /* @__PURE__ */ React78.createElement("div", { style: titleIconStyle, className: textStyles[titleTextStyle] }, titleIconOptions.inlineBlockWrapper ? /* @__PURE__ */ React78.createElement("div", { style: titleIconWrapperStyle }, titleIcon) : titleIcon), title && /* @__PURE__ */ React78.createElement(React78.Fragment, null, onClickTitle ? /* @__PURE__ */ React78.createElement(Button, { variant: "none", onClick: onClickTitle }, /* @__PURE__ */ React78.createElement(InspectorPrimitives_exports.Title, { $textStyle: titleTextStyle }, title)) : /* @__PURE__ */ React78.createElement(InspectorPrimitives_exports.Title, { $textStyle: titleTextStyle }, title)), /* @__PURE__ */ React78.createElement(Spacer.Horizontal, null), right), /* @__PURE__ */ React78.createElement(IndentContext.Provider, { value: { indentLevel: 1 } }, children));
11384
11385
  };
11385
11386
  var ExpandableSection = ({
11386
11387
  storageKey,
@@ -11393,12 +11394,12 @@ var ExpandableSection = ({
11393
11394
  initialVisibility
11394
11395
  );
11395
11396
  const expanded = visibility === "show";
11396
- return /* @__PURE__ */ React77.createElement(
11397
+ return /* @__PURE__ */ React78.createElement(
11397
11398
  SectionInternal,
11398
11399
  {
11399
11400
  ...props,
11400
11401
  right: !props.hideRightWhenCollapsed || expanded ? props.right : null,
11401
- title: /* @__PURE__ */ React77.createElement("div", { className: "flex gap-1 items-center" }, props.title, /* @__PURE__ */ React77.createElement(
11402
+ title: /* @__PURE__ */ React78.createElement("div", { className: "flex gap-1 items-center" }, props.title, /* @__PURE__ */ React78.createElement(
11402
11403
  IconButton,
11403
11404
  {
11404
11405
  iconName: expanded ? "ChevronDownIcon2" : "ChevronRightIcon2",
@@ -11413,12 +11414,12 @@ var Section = memo32(function InspectorSection({
11413
11414
  storageKey,
11414
11415
  ...props
11415
11416
  }) {
11416
- return storageKey ? /* @__PURE__ */ React77.createElement(ExpandableSection, { ...props, storageKey }) : /* @__PURE__ */ React77.createElement(SectionInternal, { ...props });
11417
+ return storageKey ? /* @__PURE__ */ React78.createElement(ExpandableSection, { ...props, storageKey }) : /* @__PURE__ */ React78.createElement(SectionInternal, { ...props });
11417
11418
  });
11418
11419
 
11419
11420
  // src/components/SegmentedControl.tsx
11420
11421
  import * as ToggleGroupPrimitive2 from "@radix-ui/react-toggle-group";
11421
- import React78, {
11422
+ import React79, {
11422
11423
  createContext as createContext13,
11423
11424
  forwardRef as forwardRef26,
11424
11425
  useCallback as useCallback30,
@@ -11439,7 +11440,7 @@ var SegmentedControlItem = forwardRef26(function SegmentedControlItem2({
11439
11440
  ...props
11440
11441
  }, forwardedRef) {
11441
11442
  const { colorScheme } = useContext14(SegmentedControlContext);
11442
- const itemElement = /* @__PURE__ */ React78.createElement(
11443
+ const itemElement = /* @__PURE__ */ React79.createElement(
11443
11444
  ToggleGroupPrimitive2.Item,
11444
11445
  {
11445
11446
  ref: forwardedRef,
@@ -11459,7 +11460,7 @@ var SegmentedControlItem = forwardRef26(function SegmentedControlItem2({
11459
11460
  ),
11460
11461
  ...props
11461
11462
  },
11462
- /* @__PURE__ */ React78.createElement(
11463
+ /* @__PURE__ */ React79.createElement(
11463
11464
  "span",
11464
11465
  {
11465
11466
  className: cx(
@@ -11471,7 +11472,7 @@ var SegmentedControlItem = forwardRef26(function SegmentedControlItem2({
11471
11472
  title
11472
11473
  )
11473
11474
  );
11474
- return tooltip ? /* @__PURE__ */ React78.createElement(Tooltip, { content: tooltip }, itemElement) : itemElement;
11475
+ return tooltip ? /* @__PURE__ */ React79.createElement(Tooltip, { content: tooltip }, itemElement) : itemElement;
11475
11476
  });
11476
11477
  var SegmentedControl = memoGeneric(function SegmentedControl2({
11477
11478
  id: idProp,
@@ -11493,7 +11494,7 @@ var SegmentedControl = memoGeneric(function SegmentedControl2({
11493
11494
  },
11494
11495
  [allowEmpty, onValueChange]
11495
11496
  );
11496
- return /* @__PURE__ */ React78.createElement(SegmentedControlContext.Provider, { value: contextValue }, /* @__PURE__ */ React78.createElement(
11497
+ return /* @__PURE__ */ React79.createElement(SegmentedControlContext.Provider, { value: contextValue }, /* @__PURE__ */ React79.createElement(
11497
11498
  ToggleGroupPrimitive2.Root,
11498
11499
  {
11499
11500
  id,
@@ -11511,13 +11512,13 @@ var SegmentedControl = memoGeneric(function SegmentedControl2({
11511
11512
  gridTemplateColumns: `repeat(${items.length}, 1fr)`
11512
11513
  }
11513
11514
  },
11514
- items.map((item, index) => /* @__PURE__ */ React78.createElement(SegmentedControlItem, { key: index, ...item, variant }))
11515
+ items.map((item, index) => /* @__PURE__ */ React79.createElement(SegmentedControlItem, { key: index, ...item, variant }))
11515
11516
  ));
11516
11517
  });
11517
11518
 
11518
11519
  // src/components/SelectionToolbar.tsx
11519
11520
  import * as PopperPrimitive from "@radix-ui/react-popper";
11520
- import React79, { memo as memo33, useMemo as useMemo36 } from "react";
11521
+ import React80, { memo as memo33, useMemo as useMemo36 } from "react";
11521
11522
  import { createPortal as createPortal3 } from "react-dom";
11522
11523
  var createVirtualElement = (rect) => ({
11523
11524
  getBoundingClientRect: () => ({
@@ -11539,7 +11540,7 @@ var SelectionToolbarContainer = memo33(
11539
11540
  portalContainer
11540
11541
  }) {
11541
11542
  const portalScopeId = usePortalScopeId();
11542
- const containerRef = React79.useRef(null);
11543
+ const containerRef = React80.useRef(null);
11543
11544
  const size2 = useSize(containerRef, "width");
11544
11545
  const virtualRef = useMemo36(
11545
11546
  () => ({
@@ -11547,7 +11548,7 @@ var SelectionToolbarContainer = memo33(
11547
11548
  }),
11548
11549
  [rect]
11549
11550
  );
11550
- const popperContent = /* @__PURE__ */ React79.createElement(
11551
+ const popperContent = /* @__PURE__ */ React80.createElement(
11551
11552
  PopperPrimitive.Content,
11552
11553
  {
11553
11554
  ...portalScopeProps(portalScopeId),
@@ -11564,7 +11565,7 @@ var SelectionToolbarContainer = memo33(
11564
11565
  ["--n-input-background"]: "transparent"
11565
11566
  }
11566
11567
  },
11567
- /* @__PURE__ */ React79.createElement(
11568
+ /* @__PURE__ */ React80.createElement(
11568
11569
  "div",
11569
11570
  {
11570
11571
  ref: containerRef,
@@ -11577,7 +11578,7 @@ var SelectionToolbarContainer = memo33(
11577
11578
  children
11578
11579
  )
11579
11580
  );
11580
- return /* @__PURE__ */ React79.createElement(PopperPrimitive.Root, null, /* @__PURE__ */ React79.createElement(PopperPrimitive.Anchor, { virtualRef }), portalContainer ? createPortal3(popperContent, portalContainer) : popperContent);
11581
+ return /* @__PURE__ */ React80.createElement(PopperPrimitive.Root, null, /* @__PURE__ */ React80.createElement(PopperPrimitive.Anchor, { virtualRef }), portalContainer ? createPortal3(popperContent, portalContainer) : popperContent);
11581
11582
  }
11582
11583
  );
11583
11584
 
@@ -11588,7 +11589,7 @@ import {
11588
11589
  DropdownChevronIcon as DropdownChevronIcon3
11589
11590
  } from "@noya-app/noya-icons";
11590
11591
  import * as Select from "@radix-ui/react-select";
11591
- import React80, {
11592
+ import React81, {
11592
11593
  useMemo as useMemo37,
11593
11594
  useState as useState28
11594
11595
  } from "react";
@@ -11622,7 +11623,7 @@ var SelectMenuTrigger = memoGeneric(function SelectMenuTrigger2({
11622
11623
  fieldId: props.id
11623
11624
  });
11624
11625
  const labelPosition = useLabelPosition();
11625
- return /* @__PURE__ */ React80.createElement(Select.SelectTrigger, { asChild: true, onFocus, onBlur }, /* @__PURE__ */ React80.createElement(
11626
+ return /* @__PURE__ */ React81.createElement(Select.SelectTrigger, { asChild: true, onFocus, onBlur }, /* @__PURE__ */ React81.createElement(
11626
11627
  Button,
11627
11628
  {
11628
11629
  id,
@@ -11634,10 +11635,10 @@ var SelectMenuTrigger = memoGeneric(function SelectMenuTrigger2({
11634
11635
  ),
11635
11636
  disabled
11636
11637
  },
11637
- icon && /* @__PURE__ */ React80.createElement("span", { className: "pr-1.5" }, renderIcon(icon)),
11638
- label && labelPosition === "inset" && /* @__PURE__ */ React80.createElement("div", { className: insetEndStyles }, /* @__PURE__ */ React80.createElement(Label, { className: "pr-4 text-text-disabled", htmlFor: id }, label)),
11639
- /* @__PURE__ */ React80.createElement("span", { className: "flex-1 flex" }, /* @__PURE__ */ React80.createElement(Select.Value, { placeholder })),
11640
- /* @__PURE__ */ React80.createElement(
11638
+ icon && /* @__PURE__ */ React81.createElement("span", { className: "pr-1.5" }, renderIcon(icon)),
11639
+ label && labelPosition === "inset" && /* @__PURE__ */ React81.createElement("div", { className: insetEndStyles }, /* @__PURE__ */ React81.createElement(Label, { className: "pr-4 text-text-disabled", htmlFor: id }, label)),
11640
+ /* @__PURE__ */ React81.createElement("span", { className: "flex-1 flex" }, /* @__PURE__ */ React81.createElement(Select.Value, { placeholder })),
11641
+ /* @__PURE__ */ React81.createElement(
11641
11642
  DropdownChevronIcon3,
11642
11643
  {
11643
11644
  className: cx(
@@ -11686,7 +11687,7 @@ var SelectMenu = memoGeneric(function SelectMenu2({
11686
11687
  setInternalOpen(open2);
11687
11688
  };
11688
11689
  const readOnlyButton = useMemo37(
11689
- () => /* @__PURE__ */ React80.createElement(
11690
+ () => /* @__PURE__ */ React81.createElement(
11690
11691
  Button,
11691
11692
  {
11692
11693
  id,
@@ -11696,7 +11697,7 @@ var SelectMenu = memoGeneric(function SelectMenu2({
11696
11697
  disabled
11697
11698
  },
11698
11699
  icon && renderIcon(icon),
11699
- /* @__PURE__ */ React80.createElement("span", { className: "flex flex-1" }, selectedItem?.title ?? value)
11700
+ /* @__PURE__ */ React81.createElement("span", { className: "flex flex-1" }, selectedItem?.title ?? value)
11700
11701
  ),
11701
11702
  [icon, id, style2, className, disabled, value, selectedItem]
11702
11703
  );
@@ -11708,7 +11709,7 @@ var SelectMenu = memoGeneric(function SelectMenu2({
11708
11709
  ...contentStyleProp
11709
11710
  };
11710
11711
  }, [contentStyleProp]);
11711
- const content = /* @__PURE__ */ React80.createElement(
11712
+ const content = /* @__PURE__ */ React81.createElement(
11712
11713
  Select.Root,
11713
11714
  {
11714
11715
  value,
@@ -11716,7 +11717,7 @@ var SelectMenu = memoGeneric(function SelectMenu2({
11716
11717
  open,
11717
11718
  onOpenChange: handleOpenChange
11718
11719
  },
11719
- /* @__PURE__ */ React80.createElement(
11720
+ /* @__PURE__ */ React81.createElement(
11720
11721
  SelectMenuTrigger,
11721
11722
  {
11722
11723
  id,
@@ -11731,7 +11732,7 @@ var SelectMenu = memoGeneric(function SelectMenu2({
11731
11732
  label
11732
11733
  }
11733
11734
  ),
11734
- /* @__PURE__ */ React80.createElement(Select.Portal, null, /* @__PURE__ */ React80.createElement(
11735
+ /* @__PURE__ */ React81.createElement(Select.Portal, null, /* @__PURE__ */ React81.createElement(
11735
11736
  Select.Content,
11736
11737
  {
11737
11738
  ...portalScopeProps(portalScopeId),
@@ -11742,14 +11743,14 @@ var SelectMenu = memoGeneric(function SelectMenu2({
11742
11743
  align: "center",
11743
11744
  style: contentStyle
11744
11745
  },
11745
- /* @__PURE__ */ React80.createElement(Select.ScrollUpButton, { className: scrollButtonStyles }, /* @__PURE__ */ React80.createElement(
11746
+ /* @__PURE__ */ React81.createElement(Select.ScrollUpButton, { className: scrollButtonStyles }, /* @__PURE__ */ React81.createElement(
11746
11747
  ChevronUpIcon,
11747
11748
  {
11748
11749
  className: cx("transition-transform duration-100")
11749
11750
  }
11750
11751
  )),
11751
- /* @__PURE__ */ React80.createElement(Select.Viewport, null, /* @__PURE__ */ React80.createElement(MenuViewport, { items, Components: Components3 })),
11752
- /* @__PURE__ */ React80.createElement(Select.ScrollDownButton, { className: scrollButtonStyles }, /* @__PURE__ */ React80.createElement(ChevronDownIcon, null))
11752
+ /* @__PURE__ */ React81.createElement(Select.Viewport, null, /* @__PURE__ */ React81.createElement(MenuViewport, { items, Components: Components3 })),
11753
+ /* @__PURE__ */ React81.createElement(Select.ScrollDownButton, { className: scrollButtonStyles }, /* @__PURE__ */ React81.createElement(ChevronDownIcon, null))
11753
11754
  ))
11754
11755
  );
11755
11756
  return readOnly ? readOnlyButton : content;
@@ -11757,7 +11758,7 @@ var SelectMenu = memoGeneric(function SelectMenu2({
11757
11758
 
11758
11759
  // src/components/Slider.tsx
11759
11760
  import * as RadixSlider from "@radix-ui/react-slider";
11760
- import React81, { memo as memo34, useCallback as useCallback31, useMemo as useMemo38 } from "react";
11761
+ import React82, { memo as memo34, useCallback as useCallback31, useMemo as useMemo38 } from "react";
11761
11762
  var THUMB_WIDTH = 8;
11762
11763
  var thumbStyle = {
11763
11764
  width: THUMB_WIDTH
@@ -11812,7 +11813,7 @@ var Slider = memo34(function Slider2({
11812
11813
  }),
11813
11814
  [percentage.raw]
11814
11815
  );
11815
- return /* @__PURE__ */ React81.createElement(
11816
+ return /* @__PURE__ */ React82.createElement(
11816
11817
  RadixSlider.Root,
11817
11818
  {
11818
11819
  min,
@@ -11830,7 +11831,7 @@ var Slider = memo34(function Slider2({
11830
11831
  onBlur,
11831
11832
  disabled: readOnly
11832
11833
  },
11833
- /* @__PURE__ */ React81.createElement(RadixSlider.Track, { className: "flex-grow h-full rounded overflow-hidden bg-input-background" }, label && labelPosition === "inset" && /* @__PURE__ */ React81.createElement("div", { className: insetEndStyles2 }, /* @__PURE__ */ React81.createElement(Label, { htmlFor: id, className: "text-text-disabled" }, label)), /* @__PURE__ */ React81.createElement(
11834
+ /* @__PURE__ */ React82.createElement(RadixSlider.Track, { className: "flex-grow h-full rounded overflow-hidden bg-input-background" }, label && labelPosition === "inset" && /* @__PURE__ */ React82.createElement("div", { className: insetEndStyles2 }, /* @__PURE__ */ React82.createElement(Label, { htmlFor: id, className: "text-text-disabled" }, label)), /* @__PURE__ */ React82.createElement(
11834
11835
  "div",
11835
11836
  {
11836
11837
  style: trackFillStyle,
@@ -11841,8 +11842,8 @@ var Slider = memo34(function Slider2({
11841
11842
  )
11842
11843
  }
11843
11844
  )),
11844
- label && labelPosition === "inset" && colorScheme !== void 0 && /* @__PURE__ */ React81.createElement("div", { className: insetEndStyles2 }, /* @__PURE__ */ React81.createElement(Label, { className: "text-white overflow-hidden", style: labelStyle }, label)),
11845
- /* @__PURE__ */ React81.createElement(
11845
+ label && labelPosition === "inset" && colorScheme !== void 0 && /* @__PURE__ */ React82.createElement("div", { className: insetEndStyles2 }, /* @__PURE__ */ React82.createElement(Label, { className: "text-white overflow-hidden", style: labelStyle }, label)),
11846
+ /* @__PURE__ */ React82.createElement(
11846
11847
  RadixSlider.Thumb,
11847
11848
  {
11848
11849
  style: thumbStyle,
@@ -11858,27 +11859,27 @@ var Slider = memo34(function Slider2({
11858
11859
  });
11859
11860
 
11860
11861
  // src/components/sorting/createSharedDrag.tsx
11861
- import * as React82 from "react";
11862
+ import * as React83 from "react";
11862
11863
  function createSharedDrag() {
11863
- const dragRegistrationContext = React82.createContext(null);
11864
- const activeDragContext = React82.createContext(
11864
+ const dragRegistrationContext = React83.createContext(null);
11865
+ const activeDragContext = React83.createContext(
11865
11866
  null
11866
11867
  );
11867
11868
  const sharedDragProps = {
11868
11869
  dragRegistrationContext,
11869
11870
  activeDragContext
11870
11871
  };
11871
- const Provider3 = ({ children }) => /* @__PURE__ */ React82.createElement(SharedDragProvider, { sharedDragProps }, children);
11872
+ const Provider3 = ({ children }) => /* @__PURE__ */ React83.createElement(SharedDragProvider, { sharedDragProps }, children);
11872
11873
  return {
11873
11874
  Provider: Provider3,
11874
- Sortable: (props) => /* @__PURE__ */ React82.createElement(Sortable, { sharedDragProps, ...props }),
11875
+ Sortable: (props) => /* @__PURE__ */ React83.createElement(Sortable, { sharedDragProps, ...props }),
11875
11876
  props: sharedDragProps
11876
11877
  };
11877
11878
  }
11878
11879
 
11879
11880
  // src/components/Switch.tsx
11880
11881
  import * as SwitchPrimitive from "@radix-ui/react-switch";
11881
- import * as React83 from "react";
11882
+ import * as React84 from "react";
11882
11883
  var Switch = function Switch2({
11883
11884
  id,
11884
11885
  value,
@@ -11890,7 +11891,7 @@ var Switch = function Switch2({
11890
11891
  style: style2,
11891
11892
  className
11892
11893
  }) {
11893
- return /* @__PURE__ */ React83.createElement(
11894
+ return /* @__PURE__ */ React84.createElement(
11894
11895
  SwitchPrimitive.Root,
11895
11896
  {
11896
11897
  id,
@@ -11909,12 +11910,12 @@ var Switch = function Switch2({
11909
11910
  onFocus,
11910
11911
  onBlur
11911
11912
  },
11912
- /* @__PURE__ */ React83.createElement(SwitchPrimitive.Thumb, { className: "block w-[15px] h-[15px] bg-background rounded-full transition-transform translate-x-[2px] data-[state=checked]:translate-x-[15px]" })
11913
+ /* @__PURE__ */ React84.createElement(SwitchPrimitive.Thumb, { className: "block w-[15px] h-[15px] bg-background rounded-full transition-transform translate-x-[2px] data-[state=checked]:translate-x-[15px]" })
11913
11914
  );
11914
11915
  };
11915
11916
 
11916
11917
  // src/components/UserPointer.tsx
11917
- import React84, { memo as memo35, useMemo as useMemo39 } from "react";
11918
+ import React85, { memo as memo35, useMemo as useMemo39 } from "react";
11918
11919
  var UserPointerContainer = memo35(function UserPointerContainer2({
11919
11920
  point,
11920
11921
  visible,
@@ -11922,7 +11923,7 @@ var UserPointerContainer = memo35(function UserPointerContainer2({
11922
11923
  className,
11923
11924
  style: style2
11924
11925
  }) {
11925
- return /* @__PURE__ */ React84.createElement(
11926
+ return /* @__PURE__ */ React85.createElement(
11926
11927
  "div",
11927
11928
  {
11928
11929
  style: {
@@ -11945,7 +11946,7 @@ var UserNameTag = memo35(function UserNameTag2({
11945
11946
  style: style2,
11946
11947
  children
11947
11948
  }) {
11948
- return /* @__PURE__ */ React84.createElement(
11949
+ return /* @__PURE__ */ React85.createElement(
11949
11950
  "span",
11950
11951
  {
11951
11952
  className: cx(
@@ -11968,7 +11969,7 @@ var UserPointerIcon = memo35(function PointerIcon({
11968
11969
  style: style2
11969
11970
  }) {
11970
11971
  const points = "0,5 10,0 10,10";
11971
- return /* @__PURE__ */ React84.createElement(
11972
+ return /* @__PURE__ */ React85.createElement(
11972
11973
  "svg",
11973
11974
  {
11974
11975
  width: size2,
@@ -11983,7 +11984,7 @@ var UserPointerIcon = memo35(function PointerIcon({
11983
11984
  ...style2
11984
11985
  }
11985
11986
  },
11986
- /* @__PURE__ */ React84.createElement(
11987
+ /* @__PURE__ */ React85.createElement(
11987
11988
  "polygon",
11988
11989
  {
11989
11990
  points,
@@ -12020,7 +12021,7 @@ var UserPointer = memo35(function UserPointer2({
12020
12021
  () => ({ marginLeft: `${POINTER_SIZE - POINTER_OVERLAP + 1}px` }),
12021
12022
  []
12022
12023
  );
12023
- return /* @__PURE__ */ React84.createElement(
12024
+ return /* @__PURE__ */ React85.createElement(
12024
12025
  UserPointerContainer,
12025
12026
  {
12026
12027
  point,
@@ -12028,14 +12029,14 @@ var UserPointer = memo35(function UserPointer2({
12028
12029
  className,
12029
12030
  style: style2
12030
12031
  },
12031
- name && /* @__PURE__ */ React84.createElement("div", { className: "relative" }, /* @__PURE__ */ React84.createElement(
12032
+ name && /* @__PURE__ */ React85.createElement("div", { className: "relative" }, /* @__PURE__ */ React85.createElement(
12032
12033
  UserPointerIcon,
12033
12034
  {
12034
12035
  size: POINTER_SIZE,
12035
12036
  color: userBackgroundColor,
12036
12037
  style: pointerOverlapStyle
12037
12038
  }
12038
- ), /* @__PURE__ */ React84.createElement(
12039
+ ), /* @__PURE__ */ React85.createElement(
12039
12040
  UserNameTag,
12040
12041
  {
12041
12042
  backgroundColor: userBackgroundColor,
@@ -12048,7 +12049,7 @@ var UserPointer = memo35(function UserPointer2({
12048
12049
 
12049
12050
  // src/components/workspace/WorkspaceLayout.tsx
12050
12051
  import { useKeyboardShortcuts as useKeyboardShortcuts3 } from "@noya-app/noya-keymap";
12051
- import React88, {
12052
+ import React89, {
12052
12053
  forwardRef as forwardRef27,
12053
12054
  memo as memo38,
12054
12055
  useCallback as useCallback32,
@@ -12078,10 +12079,10 @@ function useWindowSize() {
12078
12079
  }
12079
12080
 
12080
12081
  // src/components/workspace/DrawerWorkspaceLayout.tsx
12081
- import React86, { memo as memo36, useLayoutEffect as useLayoutEffect10, useRef as useRef26, useState as useState30 } from "react";
12082
+ import React87, { memo as memo36, useLayoutEffect as useLayoutEffect9, useRef as useRef26, useState as useState30 } from "react";
12082
12083
 
12083
12084
  // src/hooks/usePreservePanelSize.tsx
12084
- import { useLayoutEffect as useLayoutEffect9, useRef as useRef25 } from "react";
12085
+ import { useLayoutEffect as useLayoutEffect8, useRef as useRef25 } from "react";
12085
12086
  var EDITOR_PANEL_GROUP_ID = "editor-panel-group";
12086
12087
  var LEFT_SIDEBAR_ID = "editor-left-sidebar";
12087
12088
  var RIGHT_SIDEBAR_ID = "editor-right-sidebar";
@@ -12089,7 +12090,7 @@ var CONTENT_AREA_ID = "editor-content-area";
12089
12090
  function usePreservePanelSize(panelGroupRef, setPanelLayoutState) {
12090
12091
  const windowSize = useWindowSize();
12091
12092
  const layoutRef = useRef25();
12092
- useLayoutEffect9(() => {
12093
+ useLayoutEffect8(() => {
12093
12094
  const panelGroup = document.querySelector(
12094
12095
  `[data-panel-group-id="${EDITOR_PANEL_GROUP_ID}"]`
12095
12096
  );
@@ -12132,7 +12133,7 @@ function usePreservePanelSize(panelGroupRef, setPanelLayoutState) {
12132
12133
  panelGroupObserver.disconnect();
12133
12134
  };
12134
12135
  }, [panelGroupRef, setPanelLayoutState]);
12135
- useLayoutEffect9(() => {
12136
+ useLayoutEffect8(() => {
12136
12137
  if (!layoutRef.current) return;
12137
12138
  const {
12138
12139
  windowWidth: oldWindowWidth,
@@ -12229,7 +12230,7 @@ var DrawerWorkspaceLayout = memo36(function DrawerWorkspaceLayout2({
12229
12230
  }) {
12230
12231
  const portalContainer = useRef26(null);
12231
12232
  const [mounted, setMounted] = useState30(false);
12232
- useLayoutEffect10(() => {
12233
+ useLayoutEffect9(() => {
12233
12234
  if (mounted) return;
12234
12235
  setMounted(true);
12235
12236
  handleChangeLayoutState({
@@ -12239,14 +12240,14 @@ var DrawerWorkspaceLayout = memo36(function DrawerWorkspaceLayout2({
12239
12240
  }, [handleChangeLayoutState, mounted]);
12240
12241
  const leftSidebarCollapsed = internalLayoutState?.leftSidebarCollapsed ?? false;
12241
12242
  const rightSidebarCollapsed = internalLayoutState?.rightSidebarCollapsed ?? false;
12242
- return /* @__PURE__ */ React86.createElement(
12243
+ return /* @__PURE__ */ React87.createElement(
12243
12244
  "div",
12244
12245
  {
12245
12246
  ref: portalContainer,
12246
12247
  id: EDITOR_PANEL_GROUP_ID,
12247
12248
  className: "flex flex-1 relative focus:outline-none"
12248
12249
  },
12249
- leftPanel && /* @__PURE__ */ React86.createElement(
12250
+ leftPanel && /* @__PURE__ */ React87.createElement(
12250
12251
  Drawer,
12251
12252
  {
12252
12253
  id: LEFT_SIDEBAR_ID,
@@ -12267,7 +12268,7 @@ var DrawerWorkspaceLayout = memo36(function DrawerWorkspaceLayout2({
12267
12268
  leftPanel
12268
12269
  ),
12269
12270
  centerPanel,
12270
- rightPanel && /* @__PURE__ */ React86.createElement(
12271
+ rightPanel && /* @__PURE__ */ React87.createElement(
12271
12272
  Drawer,
12272
12273
  {
12273
12274
  id: RIGHT_SIDEBAR_ID,
@@ -12291,7 +12292,7 @@ var DrawerWorkspaceLayout = memo36(function DrawerWorkspaceLayout2({
12291
12292
  });
12292
12293
 
12293
12294
  // src/components/workspace/PanelWorkspaceLayout.tsx
12294
- import React87, { memo as memo37, useRef as useRef27 } from "react";
12295
+ import React88, { memo as memo37, useRef as useRef27 } from "react";
12295
12296
  import {
12296
12297
  Panel,
12297
12298
  PanelGroup,
@@ -12312,7 +12313,7 @@ var PanelWorkspaceLayout = memo37(function PanelWorkspaceLayout2({
12312
12313
  }) {
12313
12314
  const panelGroupRef = useRef27(null);
12314
12315
  usePreservePanelSize(panelGroupRef, handleChangeLayoutState);
12315
- return /* @__PURE__ */ React87.createElement(
12316
+ return /* @__PURE__ */ React88.createElement(
12316
12317
  PanelGroup,
12317
12318
  {
12318
12319
  ref: panelGroupRef,
@@ -12321,7 +12322,7 @@ var PanelWorkspaceLayout = memo37(function PanelWorkspaceLayout2({
12321
12322
  direction: "horizontal",
12322
12323
  autoSaveId: autoSavePrefix ? `${autoSavePrefix}--${EDITOR_PANEL_GROUP_ID}` : void 0
12323
12324
  },
12324
- leftPanel && /* @__PURE__ */ React87.createElement(React87.Fragment, null, /* @__PURE__ */ React87.createElement(
12325
+ leftPanel && /* @__PURE__ */ React88.createElement(React88.Fragment, null, /* @__PURE__ */ React88.createElement(
12325
12326
  Panel,
12326
12327
  {
12327
12328
  id: LEFT_SIDEBAR_ID,
@@ -12334,8 +12335,8 @@ var PanelWorkspaceLayout = memo37(function PanelWorkspaceLayout2({
12334
12335
  collapsible: true
12335
12336
  },
12336
12337
  internalLayoutState?.leftSidebarCollapsed ? null : leftPanel
12337
- ), /* @__PURE__ */ React87.createElement(PanelResizeHandle, { className: "cursor-col-resize w-px h-full bg-divider" })),
12338
- /* @__PURE__ */ React87.createElement(
12338
+ ), /* @__PURE__ */ React88.createElement(PanelResizeHandle, { className: "cursor-col-resize w-px h-full bg-divider" })),
12339
+ /* @__PURE__ */ React88.createElement(
12339
12340
  Panel,
12340
12341
  {
12341
12342
  id: CONTENT_AREA_ID,
@@ -12346,7 +12347,7 @@ var PanelWorkspaceLayout = memo37(function PanelWorkspaceLayout2({
12346
12347
  },
12347
12348
  centerPanel
12348
12349
  ),
12349
- rightPanel && /* @__PURE__ */ React87.createElement(React87.Fragment, null, /* @__PURE__ */ React87.createElement(PanelResizeHandle, { className: "cursor-col-resize w-px h-full bg-divider" }), /* @__PURE__ */ React87.createElement(
12350
+ rightPanel && /* @__PURE__ */ React88.createElement(React88.Fragment, null, /* @__PURE__ */ React88.createElement(PanelResizeHandle, { className: "cursor-col-resize w-px h-full bg-divider" }), /* @__PURE__ */ React88.createElement(
12350
12351
  Panel,
12351
12352
  {
12352
12353
  id: RIGHT_SIDEBAR_ID,
@@ -12395,7 +12396,7 @@ var WorkspaceLayout = forwardRef27(function WorkspaceLayout2({
12395
12396
  } = {},
12396
12397
  theme
12397
12398
  }, forwardedRef) {
12398
- const containerRef = React88.useRef(null);
12399
+ const containerRef = React89.useRef(null);
12399
12400
  const containerSize = useSize(containerRef);
12400
12401
  const windowSize = useWindowSize();
12401
12402
  const parentSize = detectSize === "window" ? windowSize : containerSize && containerSize.width > 0 ? containerSize : windowSize;
@@ -12493,7 +12494,7 @@ var WorkspaceLayout = forwardRef27(function WorkspaceLayout2({
12493
12494
  }
12494
12495
  });
12495
12496
  const centerPanelPercentage = 100 - (left ? leftSidebarPercentage : 0) - (right ? rightSidebarPercentage : 0);
12496
- const leftPanel = left ? /* @__PURE__ */ React88.createElement(
12497
+ const leftPanel = left ? /* @__PURE__ */ React89.createElement(
12497
12498
  PanelInner,
12498
12499
  {
12499
12500
  style: leftStyle,
@@ -12501,7 +12502,7 @@ var WorkspaceLayout = forwardRef27(function WorkspaceLayout2({
12501
12502
  },
12502
12503
  left
12503
12504
  ) : null;
12504
- const rightPanel = right ? /* @__PURE__ */ React88.createElement(
12505
+ const rightPanel = right ? /* @__PURE__ */ React89.createElement(
12505
12506
  PanelInner,
12506
12507
  {
12507
12508
  style: rightStyle,
@@ -12509,7 +12510,7 @@ var WorkspaceLayout = forwardRef27(function WorkspaceLayout2({
12509
12510
  },
12510
12511
  right
12511
12512
  ) : null;
12512
- const centerPanel = /* @__PURE__ */ React88.createElement(PanelInner, { className: "bg-canvas-background" }, children);
12513
+ const centerPanel = /* @__PURE__ */ React89.createElement(PanelInner, { className: "bg-canvas-background" }, children);
12513
12514
  const leftSidebarOptions = {
12514
12515
  minSize: leftSidebarMinPercentage,
12515
12516
  maxSize: leftSidebarMaxPercentage,
@@ -12524,7 +12525,7 @@ var WorkspaceLayout = forwardRef27(function WorkspaceLayout2({
12524
12525
  };
12525
12526
  const LayoutComponent = sideType === "panel" ? PanelWorkspaceLayout : sideType === "drawer" ? DrawerWorkspaceLayout : parentSize.width > sideTypeBreakpoint ? PanelWorkspaceLayout : DrawerWorkspaceLayout;
12526
12527
  const readyToRender = detectSize === "window" || containerSize && containerSize.width > 0;
12527
- return /* @__PURE__ */ React88.createElement(
12528
+ return /* @__PURE__ */ React89.createElement(
12528
12529
  "div",
12529
12530
  {
12530
12531
  ref: containerRef,
@@ -12534,7 +12535,7 @@ var WorkspaceLayout = forwardRef27(function WorkspaceLayout2({
12534
12535
  "data-theme": theme
12535
12536
  },
12536
12537
  toolbar,
12537
- /* @__PURE__ */ React88.createElement("div", { className: "flex flex-row flex-1 relative" }, readyToRender && /* @__PURE__ */ React88.createElement(
12538
+ /* @__PURE__ */ React89.createElement("div", { className: "flex flex-row flex-1 relative" }, readyToRender && /* @__PURE__ */ React89.createElement(
12538
12539
  LayoutComponent,
12539
12540
  {
12540
12541
  leftPanel,
@@ -12557,7 +12558,7 @@ var PanelInner = memo38(function PanelInner2({
12557
12558
  style: style2,
12558
12559
  className
12559
12560
  }) {
12560
- return /* @__PURE__ */ React88.createElement("div", { style: style2, className: cx("absolute inset-0 flex", className) }, children);
12561
+ return /* @__PURE__ */ React89.createElement("div", { style: style2, className: cx("absolute inset-0 flex", className) }, children);
12561
12562
  });
12562
12563
 
12563
12564
  // src/hooks/usePlatform.ts
@@ -12712,11 +12713,11 @@ var SUPPORTED_CANVAS_UPLOAD_TYPES = [
12712
12713
 
12713
12714
  // src/components/DimensionInput.tsx
12714
12715
  import { round } from "@noya-app/noya-utils";
12715
- import * as React89 from "react";
12716
+ import * as React90 from "react";
12716
12717
  function getNewValue(value, mode, delta) {
12717
12718
  return delta === void 0 ? value : mode === "replace" ? delta : value + delta;
12718
12719
  }
12719
- var DimensionInput = React89.memo(function DimensionInput2({
12720
+ var DimensionInput = React90.memo(function DimensionInput2({
12720
12721
  id,
12721
12722
  value,
12722
12723
  onSetValue,
@@ -12726,15 +12727,15 @@ var DimensionInput = React89.memo(function DimensionInput2({
12726
12727
  disabled,
12727
12728
  trigger = "submit"
12728
12729
  }) {
12729
- const handleNudgeValue = React89.useCallback(
12730
+ const handleNudgeValue = React90.useCallback(
12730
12731
  (value2) => onSetValue(value2, "adjust"),
12731
12732
  [onSetValue]
12732
12733
  );
12733
- const handleSetValue = React89.useCallback(
12734
+ const handleSetValue = React90.useCallback(
12734
12735
  (value2) => onSetValue(value2, "replace"),
12735
12736
  [onSetValue]
12736
12737
  );
12737
- return /* @__PURE__ */ React89.createElement(LabeledField, { label, labelPosition: "inset" }, /* @__PURE__ */ React89.createElement(InputField2.Root, { id, width: size2 }, /* @__PURE__ */ React89.createElement(
12738
+ return /* @__PURE__ */ React90.createElement(LabeledField, { label, labelPosition: "inset" }, /* @__PURE__ */ React90.createElement(InputField2.Root, { id, width: size2 }, /* @__PURE__ */ React90.createElement(
12738
12739
  InputField2.NumberInput,
12739
12740
  {
12740
12741
  value: value === void 0 ? value : round(value, 2),
@@ -12761,11 +12762,11 @@ __export(InspectorPrimitives_exports, {
12761
12762
  Title: () => Title4,
12762
12763
  VerticalSeparator: () => VerticalSeparator
12763
12764
  });
12764
- import React90, {
12765
+ import React91, {
12765
12766
  forwardRef as forwardRef28,
12766
12767
  memo as memo40
12767
12768
  } from "react";
12768
- var Section2 = forwardRef28(({ className, ...props }, ref) => /* @__PURE__ */ React90.createElement(
12769
+ var Section2 = forwardRef28(({ className, ...props }, ref) => /* @__PURE__ */ React91.createElement(
12769
12770
  "div",
12770
12771
  {
12771
12772
  ref,
@@ -12773,8 +12774,8 @@ var Section2 = forwardRef28(({ className, ...props }, ref) => /* @__PURE__ */ Re
12773
12774
  ...props
12774
12775
  }
12775
12776
  ));
12776
- var SectionHeader3 = forwardRef28(({ className, ...props }, ref) => /* @__PURE__ */ React90.createElement("div", { ref, className: cx(`flex items-center `, className), ...props }));
12777
- var Title4 = forwardRef28(({ className, $textStyle, ...props }, ref) => /* @__PURE__ */ React90.createElement(
12777
+ var SectionHeader3 = forwardRef28(({ className, ...props }, ref) => /* @__PURE__ */ React91.createElement("div", { ref, className: cx(`flex items-center `, className), ...props }));
12778
+ var Title4 = forwardRef28(({ className, $textStyle, ...props }, ref) => /* @__PURE__ */ React91.createElement(
12778
12779
  "div",
12779
12780
  {
12780
12781
  ref,
@@ -12785,7 +12786,7 @@ var Title4 = forwardRef28(({ className, $textStyle, ...props }, ref) => /* @__PU
12785
12786
  ...props
12786
12787
  }
12787
12788
  ));
12788
- var Row = forwardRef28(({ className, ...props }, ref) => /* @__PURE__ */ React90.createElement(
12789
+ var Row = forwardRef28(({ className, ...props }, ref) => /* @__PURE__ */ React91.createElement(
12789
12790
  "div",
12790
12791
  {
12791
12792
  ref,
@@ -12793,7 +12794,7 @@ var Row = forwardRef28(({ className, ...props }, ref) => /* @__PURE__ */ React90
12793
12794
  ...props
12794
12795
  }
12795
12796
  ));
12796
- var Column = forwardRef28(({ className, ...props }, ref) => /* @__PURE__ */ React90.createElement(
12797
+ var Column = forwardRef28(({ className, ...props }, ref) => /* @__PURE__ */ React91.createElement(
12797
12798
  "div",
12798
12799
  {
12799
12800
  ref,
@@ -12801,7 +12802,7 @@ var Column = forwardRef28(({ className, ...props }, ref) => /* @__PURE__ */ Reac
12801
12802
  ...props
12802
12803
  }
12803
12804
  ));
12804
- var Checkbox3 = forwardRef28(({ className, ...props }, ref) => /* @__PURE__ */ React90.createElement(
12805
+ var Checkbox3 = forwardRef28(({ className, ...props }, ref) => /* @__PURE__ */ React91.createElement(
12805
12806
  "input",
12806
12807
  {
12807
12808
  ref,
@@ -12810,7 +12811,7 @@ var Checkbox3 = forwardRef28(({ className, ...props }, ref) => /* @__PURE__ */ R
12810
12811
  ...props
12811
12812
  }
12812
12813
  ));
12813
- var Text3 = forwardRef28(({ className, ...props }, ref) => /* @__PURE__ */ React90.createElement(
12814
+ var Text3 = forwardRef28(({ className, ...props }, ref) => /* @__PURE__ */ React91.createElement(
12814
12815
  "span",
12815
12816
  {
12816
12817
  ref,
@@ -12818,14 +12819,14 @@ var Text3 = forwardRef28(({ className, ...props }, ref) => /* @__PURE__ */ React
12818
12819
  ...props
12819
12820
  }
12820
12821
  ));
12821
- var VerticalSeparator = () => /* @__PURE__ */ React90.createElement(Spacer.Vertical, { size: "inspector-v-separator" });
12822
- var HorizontalSeparator = () => /* @__PURE__ */ React90.createElement(Spacer.Horizontal, { size: "inspector-h-separator" });
12822
+ var VerticalSeparator = () => /* @__PURE__ */ React91.createElement(Spacer.Vertical, { size: "inspector-v-separator" });
12823
+ var HorizontalSeparator = () => /* @__PURE__ */ React91.createElement(Spacer.Horizontal, { size: "inspector-h-separator" });
12823
12824
  var RowLabel = forwardRef28(function RowLabel2({
12824
12825
  className,
12825
12826
  $textStyle,
12826
12827
  ...props
12827
12828
  }, ref) {
12828
- return /* @__PURE__ */ React90.createElement(
12829
+ return /* @__PURE__ */ React91.createElement(
12829
12830
  "label",
12830
12831
  {
12831
12832
  ref,
@@ -12845,11 +12846,11 @@ var LabeledRow = memo40(function LabeledRow2({
12845
12846
  right,
12846
12847
  className
12847
12848
  }) {
12848
- return /* @__PURE__ */ React90.createElement(Row, { id, className }, /* @__PURE__ */ React90.createElement(Column, null, /* @__PURE__ */ React90.createElement(RowLabel, { $textStyle: labelTextStyle }, label, right && /* @__PURE__ */ React90.createElement(Spacer.Horizontal, null), right), /* @__PURE__ */ React90.createElement(Row, null, children)));
12849
+ return /* @__PURE__ */ React91.createElement(Row, { id, className }, /* @__PURE__ */ React91.createElement(Column, null, /* @__PURE__ */ React91.createElement(RowLabel, { $textStyle: labelTextStyle }, label, right && /* @__PURE__ */ React91.createElement(Spacer.Horizontal, null), right), /* @__PURE__ */ React91.createElement(Row, null, children)));
12849
12850
  });
12850
12851
 
12851
12852
  // src/components/BaseToolbar.tsx
12852
- import React91 from "react";
12853
+ import React92 from "react";
12853
12854
  var toolbarStyle = {
12854
12855
  [cssVarNames.colors.inputBackground]: "transparent"
12855
12856
  };
@@ -12860,7 +12861,7 @@ function BaseToolbar({
12860
12861
  logo,
12861
12862
  showDivider = true
12862
12863
  }) {
12863
- return /* @__PURE__ */ React91.createElement("div", { className: "flex flex-col", style: toolbarStyle }, /* @__PURE__ */ React91.createElement(
12864
+ return /* @__PURE__ */ React92.createElement("div", { className: "flex flex-col", style: toolbarStyle }, /* @__PURE__ */ React92.createElement(
12864
12865
  "div",
12865
12866
  {
12866
12867
  className: "flex items-center pr-2.5 bg-sidebar-background flex-none relative @container/toolbar",
@@ -12868,10 +12869,10 @@ function BaseToolbar({
12868
12869
  flex: `0 0 ${cssVars.spacing.toolbarHeight}`
12869
12870
  }
12870
12871
  },
12871
- logo && /* @__PURE__ */ React91.createElement(React91.Fragment, null, logo, /* @__PURE__ */ React91.createElement(DividerVertical, null)),
12872
- /* @__PURE__ */ React91.createElement(Spacer.Horizontal, { size: 10 }),
12873
- left && /* @__PURE__ */ React91.createElement(React91.Fragment, null, /* @__PURE__ */ React91.createElement("div", { className: "flex gap-toolbar-separator" }, left), /* @__PURE__ */ React91.createElement(Spacer.Horizontal, { size: 10 })),
12874
- /* @__PURE__ */ React91.createElement("div", { className: "flex items-center justify-center text-text-muted pointer-events-none @2xl/toolbar:absolute inset-0" }, /* @__PURE__ */ React91.createElement(
12872
+ logo && /* @__PURE__ */ React92.createElement(React92.Fragment, null, logo, /* @__PURE__ */ React92.createElement(DividerVertical, null)),
12873
+ /* @__PURE__ */ React92.createElement(Spacer.Horizontal, { size: 10 }),
12874
+ left && /* @__PURE__ */ React92.createElement(React92.Fragment, null, /* @__PURE__ */ React92.createElement("div", { className: "flex gap-toolbar-separator" }, left), /* @__PURE__ */ React92.createElement(Spacer.Horizontal, { size: 10 })),
12875
+ /* @__PURE__ */ React92.createElement("div", { className: "flex items-center justify-center text-text-muted pointer-events-none @2xl/toolbar:absolute inset-0" }, /* @__PURE__ */ React92.createElement(
12875
12876
  "div",
12876
12877
  {
12877
12878
  style: {
@@ -12883,15 +12884,15 @@ function BaseToolbar({
12883
12884
  },
12884
12885
  children
12885
12886
  )),
12886
- /* @__PURE__ */ React91.createElement(Spacer.Horizontal, null),
12887
- /* @__PURE__ */ React91.createElement(Spacer.Horizontal, { size: 10 }),
12888
- /* @__PURE__ */ React91.createElement("div", { className: "flex gap-toolbar-separator" }, right)
12889
- ), showDivider && /* @__PURE__ */ React91.createElement(Divider, { variant: "strong" }));
12887
+ /* @__PURE__ */ React92.createElement(Spacer.Horizontal, null),
12888
+ /* @__PURE__ */ React92.createElement(Spacer.Horizontal, { size: 10 }),
12889
+ /* @__PURE__ */ React92.createElement("div", { className: "flex gap-toolbar-separator" }, right)
12890
+ ), showDivider && /* @__PURE__ */ React92.createElement(Divider, { variant: "strong" }));
12890
12891
  }
12891
12892
 
12892
12893
  // src/components/Toolbar.tsx
12893
12894
  import { useKeyboardShortcuts as useKeyboardShortcuts4 } from "@noya-app/noya-keymap";
12894
- import React92 from "react";
12895
+ import React93 from "react";
12895
12896
  var iconButtonStyle = {
12896
12897
  height: 27,
12897
12898
  width: 27,
@@ -12901,8 +12902,8 @@ var ToolbarMenuDropdown = memoGeneric(function ToolbarMenuDropdown2({
12901
12902
  item,
12902
12903
  onSelectMenuItem
12903
12904
  }) {
12904
- const [open, setOpen] = React92.useState(false);
12905
- return /* @__PURE__ */ React92.createElement(
12905
+ const [open, setOpen] = React93.useState(false);
12906
+ return /* @__PURE__ */ React93.createElement(
12906
12907
  DropdownMenu,
12907
12908
  {
12908
12909
  open,
@@ -12914,7 +12915,7 @@ var ToolbarMenuDropdown = memoGeneric(function ToolbarMenuDropdown2({
12914
12915
  }
12915
12916
  }
12916
12917
  },
12917
- /* @__PURE__ */ React92.createElement(
12918
+ /* @__PURE__ */ React93.createElement(
12918
12919
  Button,
12919
12920
  {
12920
12921
  disabled: item.disabled,
@@ -12931,7 +12932,7 @@ var ToolbarMenuButton = memoGeneric(function ToolbarMenuButton2({
12931
12932
  onSelectMenuItem,
12932
12933
  as
12933
12934
  }) {
12934
- const content = /* @__PURE__ */ React92.createElement(
12935
+ const content = /* @__PURE__ */ React93.createElement(
12935
12936
  Button,
12936
12937
  {
12937
12938
  as,
@@ -12948,7 +12949,7 @@ var ToolbarMenuButton = memoGeneric(function ToolbarMenuButton2({
12948
12949
  },
12949
12950
  item.title
12950
12951
  );
12951
- return item.tooltip ? /* @__PURE__ */ React92.createElement(Tooltip, { sideOffset: 10, content: item.tooltip }, content) : content;
12952
+ return item.tooltip ? /* @__PURE__ */ React93.createElement(Tooltip, { sideOffset: 10, content: item.tooltip }, content) : content;
12952
12953
  });
12953
12954
  var ToolbarMenuItem = memoGeneric(function ToolbarMenuItem2({
12954
12955
  item,
@@ -12957,10 +12958,10 @@ var ToolbarMenuItem = memoGeneric(function ToolbarMenuItem2({
12957
12958
  }) {
12958
12959
  if (item.type === "sectionHeader") return null;
12959
12960
  if (item.type === "separator") {
12960
- return /* @__PURE__ */ React92.createElement(DividerVertical, { overflow: 4 });
12961
+ return /* @__PURE__ */ React93.createElement(DividerVertical, { overflow: 4 });
12961
12962
  }
12962
12963
  if (isSelectableMenuItem(item)) {
12963
- return /* @__PURE__ */ React92.createElement(
12964
+ return /* @__PURE__ */ React93.createElement(
12964
12965
  ToolbarMenuButton,
12965
12966
  {
12966
12967
  item,
@@ -12969,15 +12970,15 @@ var ToolbarMenuItem = memoGeneric(function ToolbarMenuItem2({
12969
12970
  }
12970
12971
  );
12971
12972
  }
12972
- return /* @__PURE__ */ React92.createElement(ToolbarMenuDropdown, { item, onSelectMenuItem });
12973
+ return /* @__PURE__ */ React93.createElement(ToolbarMenuDropdown, { item, onSelectMenuItem });
12973
12974
  });
12974
12975
  var ToolbarMenu = memoGeneric(function ToolbarMenu2({
12975
12976
  items,
12976
12977
  onSelectMenuItem,
12977
12978
  buttonAs
12978
12979
  }) {
12979
- return /* @__PURE__ */ React92.createElement(React92.Fragment, null, items.map((item, i) => {
12980
- return /* @__PURE__ */ React92.createElement(
12980
+ return /* @__PURE__ */ React93.createElement(React93.Fragment, null, items.map((item, i) => {
12981
+ return /* @__PURE__ */ React93.createElement(
12981
12982
  ToolbarMenuItem,
12982
12983
  {
12983
12984
  key: i,
@@ -12996,28 +12997,28 @@ function Toolbar({
12996
12997
  onSelectMenuItem,
12997
12998
  shouldBindKeyboardShortcuts = true
12998
12999
  }) {
12999
- const allMenuItems = React92.useMemo(
13000
+ const allMenuItems = React93.useMemo(
13000
13001
  () => [...leftMenuItems, ...rightMenuItems],
13001
13002
  [leftMenuItems, rightMenuItems]
13002
13003
  );
13003
13004
  useKeyboardShortcuts4(
13004
- React92.useMemo(
13005
+ React93.useMemo(
13005
13006
  () => onSelectMenuItem && shouldBindKeyboardShortcuts ? getKeyboardShortcutsForMenuItems(allMenuItems, onSelectMenuItem) : {},
13006
13007
  [allMenuItems, onSelectMenuItem, shouldBindKeyboardShortcuts]
13007
13008
  )
13008
13009
  );
13009
- return /* @__PURE__ */ React92.createElement(
13010
+ return /* @__PURE__ */ React93.createElement(
13010
13011
  BaseToolbar,
13011
13012
  {
13012
13013
  logo,
13013
- left: leftMenuItems.length > 0 && /* @__PURE__ */ React92.createElement("div", { className: "flex gap-2" }, /* @__PURE__ */ React92.createElement(
13014
+ left: leftMenuItems.length > 0 && /* @__PURE__ */ React93.createElement("div", { className: "flex gap-2" }, /* @__PURE__ */ React93.createElement(
13014
13015
  ToolbarMenu,
13015
13016
  {
13016
13017
  items: leftMenuItems,
13017
13018
  onSelectMenuItem
13018
13019
  }
13019
13020
  )),
13020
- right: rightMenuItems.length > 0 && /* @__PURE__ */ React92.createElement("div", { className: "flex gap-2" }, /* @__PURE__ */ React92.createElement(
13021
+ right: rightMenuItems.length > 0 && /* @__PURE__ */ React93.createElement("div", { className: "flex gap-2" }, /* @__PURE__ */ React93.createElement(
13021
13022
  ToolbarMenu,
13022
13023
  {
13023
13024
  items: rightMenuItems,