@noya-app/noya-designsystem 0.1.22 → 0.1.24

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
@@ -265,9 +265,9 @@ var ButtonElement = styled5.button(
265
265
  textAlign: "left",
266
266
  borderRadius: "4px",
267
267
  paddingTop: $variant === "none" ? "0px" : "4px",
268
- paddingRight: $variant === "none" ? "0px" : $variant === "thin" ? "1px" : "8px",
268
+ paddingRight: $variant === "none" ? "0px" : $variant === "thin" ? "1px" : "6px",
269
269
  paddingBottom: $variant === "none" ? "0px" : "4px",
270
- paddingLeft: $variant === "none" ? "0px" : $variant === "thin" ? "1px" : "8px",
270
+ paddingLeft: $variant === "none" ? "0px" : $variant === "thin" ? "1px" : "6px",
271
271
  ...$size === "large" && {
272
272
  paddingTop: "12px",
273
273
  paddingRight: "16px",
@@ -397,12 +397,12 @@ var Button = forwardRef3(function Button2({
397
397
 
398
398
  // src/components/Chip.tsx
399
399
  import { Cross1Icon, PlusIcon } from "@noya-app/noya-icons";
400
- import React22, { forwardRef as forwardRef10, memo as memo11 } from "react";
400
+ import React23, { forwardRef as forwardRef10, memo as memo11 } from "react";
401
401
  import styled14 from "styled-components";
402
402
 
403
403
  // src/contexts/DesignSystemConfiguration.tsx
404
404
  import { getCurrentPlatform } from "@noya-app/noya-keymap";
405
- import React20, {
405
+ import React21, {
406
406
  createContext as createContext5,
407
407
  memo as memo10,
408
408
  useContext as useContext5,
@@ -414,17 +414,29 @@ import { ThemeProvider, useTheme as useTheme2 } from "styled-components";
414
414
 
415
415
  // src/components/Toast.tsx
416
416
  import * as ToastPrimitive from "@radix-ui/react-toast";
417
- import React7 from "react";
417
+ import React8 from "react";
418
418
  import styled6 from "styled-components";
419
419
 
420
420
  // src/components/IconButton.tsx
421
- import * as Icons from "@noya-app/noya-icons";
422
- import React6, {
421
+ import React7, {
423
422
  forwardRef as forwardRef4,
424
423
  memo as memo4,
425
424
  useMemo
426
425
  } from "react";
427
426
  import { useTheme } from "styled-components";
427
+
428
+ // src/components/Icons.tsx
429
+ import * as Icons from "@noya-app/noya-icons";
430
+ import React6 from "react";
431
+ function renderIcon(iconName) {
432
+ if (typeof iconName === "string") {
433
+ const Icon = Icons[iconName];
434
+ return /* @__PURE__ */ React6.createElement(Icon, null);
435
+ }
436
+ return iconName;
437
+ }
438
+
439
+ // src/components/IconButton.tsx
428
440
  var IconButton = memo4(
429
441
  forwardRef4(function IconButton2({ selected, iconName, color, size: size2, contentStyle, ...props }, forwardedRef) {
430
442
  const { icon: iconColor, iconSelected: iconSelectedColor } = useTheme().colors;
@@ -436,7 +448,7 @@ var IconButton = memo4(
436
448
  ...contentStyle
437
449
  };
438
450
  }, [contentStyle, size2]);
439
- return /* @__PURE__ */ React6.createElement(Button, { ref: forwardedRef, ...props, variant: "none", contentStyle: style3 }, /* @__PURE__ */ React6.createElement(
451
+ return /* @__PURE__ */ React7.createElement(Button, { ref: forwardedRef, ...props, variant: "none", contentStyle: style3 }, /* @__PURE__ */ React7.createElement(
440
452
  Icon,
441
453
  {
442
454
  color: color ?? (selected ? iconSelectedColor : iconColor),
@@ -496,9 +508,9 @@ var Toast = ({
496
508
  children,
497
509
  ...props
498
510
  }) => {
499
- return /* @__PURE__ */ React7.createElement(ToastRoot, { ...props }, title && /* @__PURE__ */ React7.createElement(ToastTitle, null, title), /* @__PURE__ */ React7.createElement(ToastDescription, null, content), children && /* @__PURE__ */ React7.createElement(ToastAction, { asChild: true, altText: "" }, children), /* @__PURE__ */ React7.createElement(ToastPrimitive.Close, { "aria-label": "Close", asChild: true }, /* @__PURE__ */ React7.createElement(IconButton, { iconName: "Cross1Icon" })));
511
+ return /* @__PURE__ */ React8.createElement(ToastRoot, { ...props }, title && /* @__PURE__ */ React8.createElement(ToastTitle, null, title), /* @__PURE__ */ React8.createElement(ToastDescription, null, content), children && /* @__PURE__ */ React8.createElement(ToastAction, { asChild: true, altText: "" }, children), /* @__PURE__ */ React8.createElement(ToastPrimitive.Close, { "aria-label": "Close", asChild: true }, /* @__PURE__ */ React8.createElement(IconButton, { iconName: "Cross1Icon" })));
500
512
  };
501
- var ToastProvider = ({ children }) => /* @__PURE__ */ React7.createElement(ToastPrimitive.Provider, null, children, /* @__PURE__ */ React7.createElement(ToastViewport, null));
513
+ var ToastProvider = ({ children }) => /* @__PURE__ */ React8.createElement(ToastPrimitive.Provider, null, children, /* @__PURE__ */ React8.createElement(ToastViewport, null));
502
514
 
503
515
  // src/theme/dark.ts
504
516
  var dark_exports = {};
@@ -781,7 +793,7 @@ var colors2 = produce(colors, (colors3) => {
781
793
  });
782
794
 
783
795
  // src/contexts/DialogContext.tsx
784
- import React18, {
796
+ import React19, {
785
797
  createContext as createContext3,
786
798
  useCallback as useCallback12,
787
799
  useContext as useContext3,
@@ -793,7 +805,7 @@ import styled13 from "styled-components";
793
805
 
794
806
  // src/components/Dialog.tsx
795
807
  import * as DialogPrimitive from "@radix-ui/react-dialog";
796
- import React9, {
808
+ import React10, {
797
809
  forwardRef as forwardRef6,
798
810
  useImperativeHandle,
799
811
  useRef
@@ -801,7 +813,7 @@ import React9, {
801
813
  import styled8 from "styled-components";
802
814
 
803
815
  // src/components/Spacer.tsx
804
- import React8, { forwardRef as forwardRef5 } from "react";
816
+ import React9, { forwardRef as forwardRef5 } from "react";
805
817
  import styled7 from "styled-components";
806
818
  var SpacerVertical_ = styled7.span(({ $size, $inline }) => ({
807
819
  display: $inline ? "inline-block" : "block",
@@ -809,7 +821,7 @@ var SpacerVertical_ = styled7.span(({ $size, $inline }) => ({
809
821
  }));
810
822
  var SpacerVertical = forwardRef5(
811
823
  ({ size: size2, inline, ...props }, ref) => {
812
- return /* @__PURE__ */ React8.createElement(SpacerVertical_, { $size: size2, $inline: inline, ...props, ref });
824
+ return /* @__PURE__ */ React9.createElement(SpacerVertical_, { $size: size2, $inline: inline, ...props, ref });
813
825
  }
814
826
  );
815
827
  var SpacerHorizontal_ = styled7.span(({ $size, $inline }) => ({
@@ -818,7 +830,7 @@ var SpacerHorizontal_ = styled7.span(({ $size, $inline }) => ({
818
830
  }));
819
831
  var SpacerHorizontal = forwardRef5(
820
832
  ({ size: size2, inline, ...props }, ref) => {
821
- return /* @__PURE__ */ React8.createElement(SpacerHorizontal_, { $size: size2, $inline: inline, ...props, ref });
833
+ return /* @__PURE__ */ React9.createElement(SpacerHorizontal_, { $size: size2, $inline: inline, ...props, ref });
822
834
  }
823
835
  );
824
836
  var Spacer;
@@ -891,7 +903,7 @@ var Dialog = forwardRef6(function Dialog2({
891
903
  return contentRef.current.contains(element);
892
904
  }
893
905
  }));
894
- return /* @__PURE__ */ React9.createElement(DialogPrimitive.Root, { open, onOpenChange }, /* @__PURE__ */ React9.createElement(StyledOverlay, null), /* @__PURE__ */ React9.createElement(
906
+ return /* @__PURE__ */ React10.createElement(DialogPrimitive.Root, { open, onOpenChange }, /* @__PURE__ */ React10.createElement(StyledOverlay, null), /* @__PURE__ */ React10.createElement(
895
907
  StyledContent,
896
908
  {
897
909
  ref: contentRef,
@@ -906,14 +918,14 @@ var Dialog = forwardRef6(function Dialog2({
906
918
  }
907
919
  }
908
920
  },
909
- /* @__PURE__ */ React9.createElement(CloseButtonContainer, null, /* @__PURE__ */ React9.createElement(DialogPrimitive.Close, { asChild: true }, /* @__PURE__ */ React9.createElement(IconButton, { iconName: "Cross1Icon" }))),
910
- title && /* @__PURE__ */ React9.createElement(React9.Fragment, null, /* @__PURE__ */ React9.createElement(StyledTitle, null, title), /* @__PURE__ */ React9.createElement(Spacer.Vertical, { size: description ? 10 : 20 })),
911
- description && /* @__PURE__ */ React9.createElement(React9.Fragment, null, /* @__PURE__ */ React9.createElement(Spacer.Vertical, { size: 10 }), /* @__PURE__ */ React9.createElement(StyledDescription, null, description), /* @__PURE__ */ React9.createElement(Spacer.Vertical, { size: 20 })),
921
+ /* @__PURE__ */ React10.createElement(CloseButtonContainer, null, /* @__PURE__ */ React10.createElement(DialogPrimitive.Close, { asChild: true }, /* @__PURE__ */ React10.createElement(IconButton, { iconName: "Cross1Icon" }))),
922
+ title && /* @__PURE__ */ React10.createElement(React10.Fragment, null, /* @__PURE__ */ React10.createElement(StyledTitle, null, title), /* @__PURE__ */ React10.createElement(Spacer.Vertical, { size: description ? 10 : 20 })),
923
+ description && /* @__PURE__ */ React10.createElement(React10.Fragment, null, /* @__PURE__ */ React10.createElement(Spacer.Vertical, { size: 10 }), /* @__PURE__ */ React10.createElement(StyledDescription, null, description), /* @__PURE__ */ React10.createElement(Spacer.Vertical, { size: 20 })),
912
924
  children
913
925
  ));
914
926
  });
915
927
  var FullscreenDialog = forwardRef6(function FullscreenDialog2({ style: style3, ...rest }, forwardedRef) {
916
- return /* @__PURE__ */ React9.createElement(
928
+ return /* @__PURE__ */ React10.createElement(
917
929
  Dialog,
918
930
  {
919
931
  ref: forwardedRef,
@@ -939,13 +951,13 @@ var FullscreenDialog = forwardRef6(function FullscreenDialog2({ style: style3, .
939
951
  import { CaretDownIcon } from "@noya-app/noya-icons";
940
952
 
941
953
  // ../noya-react-utils/src/components/AutoSizer.tsx
942
- import React11, { memo as memo5, useRef as useRef2 } from "react";
954
+ import React12, { memo as memo5, useRef as useRef2 } from "react";
943
955
 
944
956
  // ../noya-react-utils/src/hooks/useSize.ts
945
- import * as React10 from "react";
957
+ import * as React11 from "react";
946
958
  function useSize(refToObserve, dimensions = "both") {
947
- const [size2, setSize] = React10.useState(void 0);
948
- React10.useEffect(() => {
959
+ const [size2, setSize] = React11.useState(void 0);
960
+ React11.useEffect(() => {
949
961
  if (refToObserve.current) {
950
962
  const elementToObserve = refToObserve.current;
951
963
  const resizeObserver = new ResizeObserver((entries) => {
@@ -998,7 +1010,7 @@ var AutoSizer = memo5(function AutoSizer2({
998
1010
  }) {
999
1011
  const containerRef = useRef2(null);
1000
1012
  const containerSize = useSize(containerRef);
1001
- return /* @__PURE__ */ React11.createElement("div", { ref: containerRef, style, className }, containerSize && containerSize.width > 0 && containerSize.height > 0 && children(containerSize));
1013
+ return /* @__PURE__ */ React12.createElement("div", { ref: containerRef, style, className }, containerSize && containerSize.width > 0 && containerSize.height > 0 && children(containerSize));
1002
1014
  });
1003
1015
  var SingleDimensionAutoSizer = memo5(function SingleDimensionAutoSizer2({
1004
1016
  children,
@@ -1007,11 +1019,11 @@ var SingleDimensionAutoSizer = memo5(function SingleDimensionAutoSizer2({
1007
1019
  }) {
1008
1020
  const containerRef = useRef2(null);
1009
1021
  const containerSize = useSize(containerRef, dimension);
1010
- return /* @__PURE__ */ React11.createElement("div", { ref: containerRef, style, className }, containerSize && containerSize[dimension] > 0 && children(containerSize[dimension]));
1022
+ return /* @__PURE__ */ React12.createElement("div", { ref: containerRef, style, className }, containerSize && containerSize[dimension] > 0 && children(containerSize[dimension]));
1011
1023
  });
1012
1024
 
1013
1025
  // ../noya-react-utils/src/components/FileDropTarget.tsx
1014
- import React12, {
1026
+ import React13, {
1015
1027
  memo as memo6,
1016
1028
  useCallback as useCallback3
1017
1029
  } from "react";
@@ -1086,7 +1098,7 @@ var FileDropTarget = memo6(function FileDropTarget2({
1086
1098
  [onDropFiles, supportedFileTypes]
1087
1099
  );
1088
1100
  const { dropTargetProps, isDropTargetActive } = useFileDropTarget(handleFile);
1089
- return /* @__PURE__ */ React12.createElement("div", { style: style2, ...dropTargetProps }, typeof children === "function" ? children(isDropTargetActive) : children);
1101
+ return /* @__PURE__ */ React13.createElement("div", { style: style2, ...dropTargetProps }, typeof children === "function" ? children(isDropTargetActive) : children);
1090
1102
  });
1091
1103
 
1092
1104
  // ../noya-react-utils/src/hooks/useDeepArray.ts
@@ -1226,7 +1238,7 @@ function assignRef(ref, value) {
1226
1238
  }
1227
1239
 
1228
1240
  // src/components/InputField.tsx
1229
- import React17, {
1241
+ import React18, {
1230
1242
  Children as Children3,
1231
1243
  createContext as createContext2,
1232
1244
  forwardRef as forwardRef9,
@@ -1270,7 +1282,7 @@ function handleNudge(e) {
1270
1282
  import { CheckIcon, ChevronRightIcon } from "@noya-app/noya-icons";
1271
1283
  import { useKeyboardShortcuts } from "@noya-app/noya-keymap";
1272
1284
  import * as RadixDropdownMenu from "@radix-ui/react-dropdown-menu";
1273
- import React14, {
1285
+ import React15, {
1274
1286
  forwardRef as forwardRef7,
1275
1287
  memo as memo8,
1276
1288
  useCallback as useCallback9,
@@ -1280,7 +1292,7 @@ import styled10 from "styled-components";
1280
1292
 
1281
1293
  // src/components/internal/Menu.tsx
1282
1294
  import { getShortcutDisplayParts } from "@noya-app/noya-keymap";
1283
- import React13, { memo as memo7 } from "react";
1295
+ import React14, { memo as memo7 } from "react";
1284
1296
  import styled9 from "styled-components";
1285
1297
  var SEPARATOR_ITEM = "separator";
1286
1298
  var CHECKBOX_WIDTH = 15;
@@ -1372,7 +1384,7 @@ var KeyboardShortcut = memo7(function KeyboardShortcut2({
1372
1384
  }) {
1373
1385
  const platform = useDesignSystemConfiguration().platform;
1374
1386
  const { keys, separator } = getShortcutDisplayParts(shortcut, platform);
1375
- const keyElements = keys.map((key) => /* @__PURE__ */ React13.createElement(
1387
+ const keyElements = keys.map((key) => /* @__PURE__ */ React14.createElement(
1376
1388
  ShortcutElement,
1377
1389
  {
1378
1390
  key,
@@ -1380,9 +1392,9 @@ var KeyboardShortcut = memo7(function KeyboardShortcut2({
1380
1392
  },
1381
1393
  key
1382
1394
  ));
1383
- return /* @__PURE__ */ React13.createElement(React13.Fragment, null, separator ? withSeparatorElements(
1395
+ return /* @__PURE__ */ React14.createElement(React14.Fragment, null, separator ? withSeparatorElements(
1384
1396
  keyElements,
1385
- /* @__PURE__ */ React13.createElement(ShortcutElement, null, separator)
1397
+ /* @__PURE__ */ React14.createElement(ShortcutElement, null, separator)
1386
1398
  ) : keyElements);
1387
1399
  });
1388
1400
 
@@ -1414,21 +1426,21 @@ var DropdownMenuItem = memo8(function ContextMenuItem({
1414
1426
  onSelect(value);
1415
1427
  }, [onSelect, value]);
1416
1428
  if (checked) {
1417
- return /* @__PURE__ */ React14.createElement(
1429
+ return /* @__PURE__ */ React15.createElement(
1418
1430
  CheckboxItemElement,
1419
1431
  {
1420
1432
  checked,
1421
1433
  disabled,
1422
1434
  onSelect: handleSelectItem
1423
1435
  },
1424
- /* @__PURE__ */ React14.createElement(StyledItemIndicator, null, /* @__PURE__ */ React14.createElement(CheckIcon, null)),
1425
- icon && /* @__PURE__ */ React14.createElement(React14.Fragment, null, icon, /* @__PURE__ */ React14.createElement(Spacer.Horizontal, { size: 8 })),
1436
+ /* @__PURE__ */ React15.createElement(StyledItemIndicator, null, /* @__PURE__ */ React15.createElement(CheckIcon, null)),
1437
+ icon && /* @__PURE__ */ React15.createElement(React15.Fragment, null, renderIcon(icon), /* @__PURE__ */ React15.createElement(Spacer.Horizontal, { size: 8 })),
1426
1438
  children
1427
1439
  );
1428
1440
  }
1429
- const element = /* @__PURE__ */ React14.createElement(ItemElement, { disabled, onSelect: handleSelectItem }, indented && /* @__PURE__ */ React14.createElement(Spacer.Horizontal, { size: CHECKBOX_WIDTH - CHECKBOX_RIGHT_INSET }), icon && /* @__PURE__ */ React14.createElement(React14.Fragment, null, icon, /* @__PURE__ */ React14.createElement(Spacer.Horizontal, { size: 8 })), children, shortcut && /* @__PURE__ */ React14.createElement(React14.Fragment, null, /* @__PURE__ */ React14.createElement(Spacer.Horizontal, null), /* @__PURE__ */ React14.createElement(Spacer.Horizontal, { size: 24 }), /* @__PURE__ */ React14.createElement(KeyboardShortcut, { shortcut })), items && items.length > 0 && /* @__PURE__ */ React14.createElement(React14.Fragment, null, /* @__PURE__ */ React14.createElement(Spacer.Horizontal, null), /* @__PURE__ */ React14.createElement(Spacer.Horizontal, { size: 16 }), /* @__PURE__ */ React14.createElement(ChevronRightIcon, null)));
1441
+ const element = /* @__PURE__ */ React15.createElement(ItemElement, { disabled, onSelect: handleSelectItem }, indented && /* @__PURE__ */ React15.createElement(Spacer.Horizontal, { size: CHECKBOX_WIDTH - CHECKBOX_RIGHT_INSET }), icon && /* @__PURE__ */ React15.createElement(React15.Fragment, null, renderIcon(icon), /* @__PURE__ */ React15.createElement(Spacer.Horizontal, { size: 8 })), children, shortcut && /* @__PURE__ */ React15.createElement(React15.Fragment, null, /* @__PURE__ */ React15.createElement(Spacer.Horizontal, null), /* @__PURE__ */ React15.createElement(Spacer.Horizontal, { size: 24 }), /* @__PURE__ */ React15.createElement(KeyboardShortcut, { shortcut })), items && items.length > 0 && /* @__PURE__ */ React15.createElement(React15.Fragment, null, /* @__PURE__ */ React15.createElement(Spacer.Horizontal, null), /* @__PURE__ */ React15.createElement(Spacer.Horizontal, { size: 16 }), /* @__PURE__ */ React15.createElement(ChevronRightIcon, null)));
1430
1442
  if (items && items.length > 0) {
1431
- return /* @__PURE__ */ React14.createElement(
1443
+ return /* @__PURE__ */ React15.createElement(
1432
1444
  DropdownMenuRoot,
1433
1445
  {
1434
1446
  isNested: true,
@@ -1471,7 +1483,7 @@ var DropdownMenuRoot = forwardRef7(function DropdownMenuRoot2({
1471
1483
  const TriggerComponent = isNested ? RadixDropdownMenu.SubTrigger : RadixDropdownMenu.Trigger;
1472
1484
  const ContentComponent = isNested ? SubContent2 : Content5;
1473
1485
  const contentStyle = useMemo5(() => ({ zIndex: 1e3 }), []);
1474
- return /* @__PURE__ */ React14.createElement(RootComponent, { onOpenChange, open }, /* @__PURE__ */ React14.createElement(TriggerComponent, { ref: forwardedRef, asChild: true }, children), /* @__PURE__ */ React14.createElement(RadixDropdownMenu.Portal, null, /* @__PURE__ */ React14.createElement(
1486
+ return /* @__PURE__ */ React15.createElement(RootComponent, { onOpenChange, open }, /* @__PURE__ */ React15.createElement(TriggerComponent, { ref: forwardedRef, asChild: true }, children), /* @__PURE__ */ React15.createElement(RadixDropdownMenu.Portal, null, /* @__PURE__ */ React15.createElement(
1475
1487
  ContentComponent,
1476
1488
  {
1477
1489
  side,
@@ -1483,7 +1495,7 @@ var DropdownMenuRoot = forwardRef7(function DropdownMenuRoot2({
1483
1495
  ...{ onCloseAutoFocus }
1484
1496
  },
1485
1497
  items.map(
1486
- (item, index) => item === SEPARATOR_ITEM ? /* @__PURE__ */ React14.createElement(SeparatorElement, { key: index }) : /* @__PURE__ */ React14.createElement(
1498
+ (item, index) => item === SEPARATOR_ITEM ? /* @__PURE__ */ React15.createElement(SeparatorElement, { key: index }) : /* @__PURE__ */ React15.createElement(
1487
1499
  DropdownMenuItem,
1488
1500
  {
1489
1501
  key: item.value ?? index,
@@ -1505,7 +1517,7 @@ var DropdownMenu = memo8(DropdownMenuRoot);
1505
1517
 
1506
1518
  // src/components/internal/TextInput.tsx
1507
1519
  import { composeRefs } from "@radix-ui/react-compose-refs";
1508
- import React15, {
1520
+ import React16, {
1509
1521
  forwardRef as forwardRef8,
1510
1522
  useCallback as useCallback10,
1511
1523
  useEffect as useEffect9,
@@ -1556,7 +1568,7 @@ function useGlobalInputBlurTrigger() {
1556
1568
 
1557
1569
  // src/components/internal/TextInput.tsx
1558
1570
  var ReadOnlyTextInput = forwardRef8(function ReadOnlyTextInput2({ onKeyDown, onFocusChange, value, ...rest }, forwardedRef) {
1559
- return /* @__PURE__ */ React15.createElement(
1571
+ return /* @__PURE__ */ React16.createElement(
1560
1572
  "input",
1561
1573
  {
1562
1574
  ref: forwardedRef,
@@ -1590,7 +1602,7 @@ var ControlledTextInput = forwardRef8(function ControlledTextInput2({
1590
1602
  },
1591
1603
  [onFocusCapture, onFocusChange]
1592
1604
  );
1593
- return /* @__PURE__ */ React15.createElement(
1605
+ return /* @__PURE__ */ React16.createElement(
1594
1606
  "input",
1595
1607
  {
1596
1608
  ref: forwardedRef,
@@ -1617,7 +1629,7 @@ var SubmittableTextInput = forwardRef8(function SubmittableTextInput2({
1617
1629
  submitAutomaticallyAfterDelay,
1618
1630
  ...rest
1619
1631
  }, forwardedRef) {
1620
- const ref = React15.useRef(null);
1632
+ const ref = React16.useRef(null);
1621
1633
  const latestValue = useRef9(value);
1622
1634
  latestValue.current = value;
1623
1635
  const userDidEdit = useRef9(false);
@@ -1701,7 +1713,7 @@ var SubmittableTextInput = forwardRef8(function SubmittableTextInput2({
1701
1713
  }
1702
1714
  };
1703
1715
  }, [internalValue, submitAutomaticallyAfterDelay]);
1704
- return /* @__PURE__ */ React15.createElement(
1716
+ return /* @__PURE__ */ React16.createElement(
1705
1717
  "input",
1706
1718
  {
1707
1719
  ref: composeRefs(ref, forwardedRef),
@@ -1733,17 +1745,17 @@ var TextInput_default = forwardRef8(function TextInput(props, forwardedRef) {
1733
1745
  ...props
1734
1746
  };
1735
1747
  if ("readOnly" in commonProps) {
1736
- return /* @__PURE__ */ React15.createElement(ReadOnlyTextInput, { ref: forwardedRef, ...commonProps, readOnly: true });
1748
+ return /* @__PURE__ */ React16.createElement(ReadOnlyTextInput, { ref: forwardedRef, ...commonProps, readOnly: true });
1737
1749
  } else if ("onChange" in commonProps) {
1738
- return /* @__PURE__ */ React15.createElement(ControlledTextInput, { ref: forwardedRef, ...commonProps });
1750
+ return /* @__PURE__ */ React16.createElement(ControlledTextInput, { ref: forwardedRef, ...commonProps });
1739
1751
  } else {
1740
- return /* @__PURE__ */ React15.createElement(SubmittableTextInput, { ref: forwardedRef, ...commonProps });
1752
+ return /* @__PURE__ */ React16.createElement(SubmittableTextInput, { ref: forwardedRef, ...commonProps });
1741
1753
  }
1742
1754
  });
1743
1755
 
1744
1756
  // src/components/Popover.tsx
1745
1757
  import * as PopoverPrimitive from "@radix-ui/react-popover";
1746
- import React16 from "react";
1758
+ import React17 from "react";
1747
1759
  import styled11 from "styled-components";
1748
1760
  var ContentElement = styled11(PopoverPrimitive.Content)(({ theme, variant }) => ({
1749
1761
  borderRadius: 4,
@@ -1790,7 +1802,7 @@ function Popover({
1790
1802
  onFocusOutside,
1791
1803
  onClickClose
1792
1804
  }) {
1793
- return /* @__PURE__ */ React16.createElement(PopoverPrimitive.Root, { open, onOpenChange }, /* @__PURE__ */ React16.createElement(PopoverPrimitive.Trigger, { asChild: true }, trigger), /* @__PURE__ */ React16.createElement(PopoverPrimitive.Portal, null, /* @__PURE__ */ React16.createElement(
1805
+ return /* @__PURE__ */ React17.createElement(PopoverPrimitive.Root, { open, onOpenChange }, /* @__PURE__ */ React17.createElement(PopoverPrimitive.Trigger, { asChild: true }, trigger), /* @__PURE__ */ React17.createElement(PopoverPrimitive.Portal, null, /* @__PURE__ */ React17.createElement(
1794
1806
  ContentElement,
1795
1807
  {
1796
1808
  variant,
@@ -1806,8 +1818,8 @@ function Popover({
1806
1818
  arrowPadding: 2
1807
1819
  },
1808
1820
  children,
1809
- showArrow && /* @__PURE__ */ React16.createElement(ArrowElement, null),
1810
- closable && /* @__PURE__ */ React16.createElement(PopoverClose, null, /* @__PURE__ */ React16.createElement(IconButton, { iconName: "Cross2Icon", onClick: onClickClose }))
1821
+ showArrow && /* @__PURE__ */ React17.createElement(ArrowElement, null),
1822
+ closable && /* @__PURE__ */ React17.createElement(PopoverClose, null, /* @__PURE__ */ React17.createElement(IconButton, { iconName: "Cross2Icon", onClick: onClickClose }))
1811
1823
  )));
1812
1824
  }
1813
1825
 
@@ -1852,7 +1864,7 @@ var InputFieldLabel = memo9(
1852
1864
  return;
1853
1865
  setLabelWidth(width);
1854
1866
  }, [setLabelWidth]);
1855
- return /* @__PURE__ */ React17.createElement(
1867
+ return /* @__PURE__ */ React18.createElement(
1856
1868
  LabelContainer,
1857
1869
  {
1858
1870
  ref: (element) => {
@@ -1885,7 +1897,7 @@ var InputFieldDropdownMenu = memo9(function InputFieldDropdownMenu2({ id, items,
1885
1897
  }),
1886
1898
  [size2]
1887
1899
  );
1888
- return /* @__PURE__ */ React17.createElement(DropdownContainer, null, /* @__PURE__ */ React17.createElement(DropdownMenu, { items, onSelect }, children || /* @__PURE__ */ React17.createElement(Button, { id, variant: "thin", flex: "1", contentStyle }, /* @__PURE__ */ React17.createElement(CaretDownIcon, null))));
1900
+ return /* @__PURE__ */ React18.createElement(DropdownContainer, null, /* @__PURE__ */ React18.createElement(DropdownMenu, { items, onSelect }, children || /* @__PURE__ */ React18.createElement(Button, { id, variant: "thin", flex: "1", contentStyle }, /* @__PURE__ */ React18.createElement(CaretDownIcon, null))));
1889
1901
  });
1890
1902
  var ButtonContainer = styled12.span(
1891
1903
  ({ theme, $size }) => ({
@@ -1914,7 +1926,7 @@ var InputFieldButton = memo9(function InputFieldButton2({
1914
1926
  event.preventDefault();
1915
1927
  event.stopPropagation();
1916
1928
  }, []);
1917
- return /* @__PURE__ */ React17.createElement(ButtonContainer, { $size: size2 }, /* @__PURE__ */ React17.createElement(
1929
+ return /* @__PURE__ */ React18.createElement(ButtonContainer, { $size: size2 }, /* @__PURE__ */ React18.createElement(
1918
1930
  Button,
1919
1931
  {
1920
1932
  variant: "floating",
@@ -2008,7 +2020,7 @@ var InputFieldInput = forwardRef9(function InputFieldInput2({
2008
2020
  useLayoutEffect4(() => {
2009
2021
  setInputRef?.(forwardedRef);
2010
2022
  }, [forwardedRef, setInputRef]);
2011
- return /* @__PURE__ */ React17.createElement(
2023
+ return /* @__PURE__ */ React18.createElement(
2012
2024
  InputElement,
2013
2025
  {
2014
2026
  ref: forwardedRef,
@@ -2033,7 +2045,7 @@ var InputFieldTypeahead = (props) => {
2033
2045
  size: size2,
2034
2046
  onFocusChange
2035
2047
  } = useContext2(InputFieldContext);
2036
- return /* @__PURE__ */ React17.createElement(
2048
+ return /* @__PURE__ */ React18.createElement(
2037
2049
  InputElement,
2038
2050
  {
2039
2051
  $labelPosition: labelPosition,
@@ -2114,7 +2126,7 @@ function InputFieldNumberInput(props) {
2114
2126
  },
2115
2127
  [onBlur]
2116
2128
  );
2117
- return /* @__PURE__ */ React17.createElement(
2129
+ return /* @__PURE__ */ React18.createElement(
2118
2130
  InputFieldInput,
2119
2131
  {
2120
2132
  ...rest,
@@ -2144,7 +2156,9 @@ function InputFieldRoot({
2144
2156
  labelSize,
2145
2157
  size: size2 = "medium",
2146
2158
  renderPopoverContent,
2147
- onFocusChange
2159
+ onFocusChange,
2160
+ style: style3,
2161
+ className
2148
2162
  }) {
2149
2163
  const childrenArray = Children3.toArray(children);
2150
2164
  const hasDropdown = childrenArray.some(
@@ -2153,9 +2167,9 @@ function InputFieldRoot({
2153
2167
  const hasLabel = childrenArray.some(
2154
2168
  (child) => isValidElement2(child) && child.type === InputFieldLabel
2155
2169
  );
2156
- const [isFocused, setIsFocused] = React17.useState(false);
2157
- const [measuredLabelSize, setMeasuredLabelSize] = React17.useState();
2158
- const [measuredWidth, setMeasuredWidth] = React17.useState();
2170
+ const [isFocused, setIsFocused] = React18.useState(false);
2171
+ const [measuredLabelSize, setMeasuredLabelSize] = React18.useState();
2172
+ const [measuredWidth, setMeasuredWidth] = React18.useState();
2159
2173
  const handleFocusChange = useCallback11(
2160
2174
  (isFocused2) => {
2161
2175
  setIsFocused(isFocused2);
@@ -2163,7 +2177,7 @@ function InputFieldRoot({
2163
2177
  },
2164
2178
  [onFocusChange]
2165
2179
  );
2166
- const [inputRef, setInputRef] = React17.useState();
2180
+ const [inputRef, setInputRef] = React18.useState();
2167
2181
  useEffect10(() => {
2168
2182
  if (inputRef && typeof inputRef !== "function") {
2169
2183
  setMeasuredWidth?.(
@@ -2196,8 +2210,18 @@ function InputFieldRoot({
2196
2210
  inputRef
2197
2211
  ]
2198
2212
  );
2199
- const rootElement = /* @__PURE__ */ React17.createElement(RootContainer, { id, $width: width, $flex: flex }, children);
2200
- return /* @__PURE__ */ React17.createElement(InputFieldContext.Provider, { value: contextValue }, renderPopoverContent ? /* @__PURE__ */ React17.createElement(
2213
+ const rootElement = /* @__PURE__ */ React18.createElement(
2214
+ RootContainer,
2215
+ {
2216
+ id,
2217
+ $width: width,
2218
+ $flex: flex,
2219
+ style: style3,
2220
+ className
2221
+ },
2222
+ children
2223
+ );
2224
+ return /* @__PURE__ */ React18.createElement(InputFieldContext.Provider, { value: contextValue }, renderPopoverContent ? /* @__PURE__ */ React18.createElement(
2201
2225
  Popover,
2202
2226
  {
2203
2227
  open: true,
@@ -2213,7 +2237,7 @@ function InputFieldRoot({
2213
2237
  event.stopPropagation();
2214
2238
  }
2215
2239
  },
2216
- measuredWidth && /* @__PURE__ */ React17.createElement(Stack.V, { width: measuredWidth, overflow: "hidden" }, renderPopoverContent({ width: measuredWidth }))
2240
+ measuredWidth && /* @__PURE__ */ React18.createElement(Stack.V, { width: measuredWidth, overflow: "hidden" }, renderPopoverContent({ width: measuredWidth }))
2217
2241
  ) : rootElement);
2218
2242
  }
2219
2243
  var InputField;
@@ -2294,7 +2318,7 @@ var DialogProvider = function DialogProvider2({
2294
2318
  return false;
2295
2319
  return dialogRef.current.containsElement(element);
2296
2320
  }, []);
2297
- return /* @__PURE__ */ React18.createElement(React18.Fragment, null, /* @__PURE__ */ React18.createElement(
2321
+ return /* @__PURE__ */ React19.createElement(React19.Fragment, null, /* @__PURE__ */ React19.createElement(
2298
2322
  DialogContext.Provider,
2299
2323
  {
2300
2324
  value: useMemo7(
@@ -2303,7 +2327,7 @@ var DialogProvider = function DialogProvider2({
2303
2327
  )
2304
2328
  },
2305
2329
  children
2306
- ), /* @__PURE__ */ React18.createElement(
2330
+ ), /* @__PURE__ */ React19.createElement(
2307
2331
  Dialog,
2308
2332
  {
2309
2333
  ref: dialogRef,
@@ -2324,7 +2348,7 @@ var DialogProvider = function DialogProvider2({
2324
2348
  inputRef.current?.setSelectionRange(0, inputRef.current.value.length);
2325
2349
  }, [])
2326
2350
  },
2327
- /* @__PURE__ */ React18.createElement(InputField.Root, null, /* @__PURE__ */ React18.createElement(
2351
+ /* @__PURE__ */ React19.createElement(InputField.Root, null, /* @__PURE__ */ React19.createElement(
2328
2352
  InputField.Input,
2329
2353
  {
2330
2354
  ref: inputRef,
@@ -2340,8 +2364,8 @@ var DialogProvider = function DialogProvider2({
2340
2364
  onKeyDown: handleKeyDown
2341
2365
  }
2342
2366
  )),
2343
- /* @__PURE__ */ React18.createElement(Spacer.Vertical, { size: 20 }),
2344
- /* @__PURE__ */ React18.createElement(Row, null, /* @__PURE__ */ React18.createElement(Spacer.Horizontal, null), /* @__PURE__ */ React18.createElement(Button, { onClick: close }, "Cancel"), /* @__PURE__ */ React18.createElement(Spacer.Horizontal, { size: 16 }), /* @__PURE__ */ React18.createElement(Button, { disabled: !contents?.inputValue, onClick: submit }, "Submit"))
2367
+ /* @__PURE__ */ React19.createElement(Spacer.Vertical, { size: 20 }),
2368
+ /* @__PURE__ */ React19.createElement(Row, null, /* @__PURE__ */ React19.createElement(Spacer.Horizontal, null), /* @__PURE__ */ React19.createElement(Button, { onClick: close }, "Cancel"), /* @__PURE__ */ React19.createElement(Spacer.Horizontal, { size: 16 }), /* @__PURE__ */ React19.createElement(Button, { disabled: !contents?.inputValue, onClick: submit }, "Submit"))
2345
2369
  ));
2346
2370
  };
2347
2371
  function useDialog() {
@@ -2360,7 +2384,7 @@ function useDialogContainsElement() {
2360
2384
 
2361
2385
  // src/contexts/FloatingWindowContext.tsx
2362
2386
  import { uuid } from "@noya-app/noya-utils";
2363
- import React19, { createContext as createContext4, useContext as useContext4, useMemo as useMemo8, useState as useState13 } from "react";
2387
+ import React20, { createContext as createContext4, useContext as useContext4, useMemo as useMemo8, useState as useState13 } from "react";
2364
2388
  import { createPortal } from "react-dom";
2365
2389
  var FloatingWindowContext = createContext4(void 0);
2366
2390
  var CurrentWindowContext = createContext4(void 0);
@@ -2373,7 +2397,7 @@ var FloatingWindowProvider = ({
2373
2397
  const id = uuid();
2374
2398
  setWindows((windows2) => ({
2375
2399
  ...windows2,
2376
- [id]: /* @__PURE__ */ React19.createElement(CurrentWindowContext.Provider, { value: { id } }, element)
2400
+ [id]: /* @__PURE__ */ React20.createElement(CurrentWindowContext.Provider, { value: { id } }, element)
2377
2401
  }));
2378
2402
  return id;
2379
2403
  };
@@ -2385,7 +2409,7 @@ var FloatingWindowProvider = ({
2385
2409
  };
2386
2410
  return { createWindow, closeWindow };
2387
2411
  }, []);
2388
- return /* @__PURE__ */ React19.createElement(FloatingWindowContext.Provider, { value: contextValue }, children, Object.entries(windows).map(
2412
+ return /* @__PURE__ */ React20.createElement(FloatingWindowContext.Provider, { value: contextValue }, children, Object.entries(windows).map(
2389
2413
  ([id, element]) => createPortal(element, document.body, id)
2390
2414
  ));
2391
2415
  };
@@ -2418,11 +2442,11 @@ var DesignSystemThemeProvider = memo10(
2418
2442
  } catch (e) {
2419
2443
  }
2420
2444
  if (theme) {
2421
- return /* @__PURE__ */ React20.createElement(ThemeProvider, { theme }, children);
2445
+ return /* @__PURE__ */ React21.createElement(ThemeProvider, { theme }, children);
2422
2446
  } else if (parentTheme) {
2423
2447
  return children;
2424
2448
  } else {
2425
- return /* @__PURE__ */ React20.createElement(ThemeProvider, { theme: light_exports }, children);
2449
+ return /* @__PURE__ */ React21.createElement(ThemeProvider, { theme: light_exports }, children);
2426
2450
  }
2427
2451
  }
2428
2452
  );
@@ -2450,7 +2474,7 @@ var DesignSystemConfigurationProvider = memo10(
2450
2474
  [platform, internalPlatform]
2451
2475
  );
2452
2476
  const resolvedTheme = theme === "light" ? light_exports : theme === "dark" ? dark_exports : theme ?? light_exports;
2453
- return /* @__PURE__ */ React20.createElement(DesignSystemConfigurationContext.Provider, { value: contextValue }, /* @__PURE__ */ React20.createElement(ThemeProvider, { theme: resolvedTheme }, /* @__PURE__ */ React20.createElement(DialogProvider, null, /* @__PURE__ */ React20.createElement(ToastProvider, null, /* @__PURE__ */ React20.createElement(FloatingWindowProvider, null, children)))));
2477
+ return /* @__PURE__ */ React21.createElement(DesignSystemConfigurationContext.Provider, { value: contextValue }, /* @__PURE__ */ React21.createElement(ThemeProvider, { theme: resolvedTheme }, /* @__PURE__ */ React21.createElement(DialogProvider, null, /* @__PURE__ */ React21.createElement(ToastProvider, null, /* @__PURE__ */ React21.createElement(FloatingWindowProvider, null, children)))));
2454
2478
  }
2455
2479
  );
2456
2480
  function useDesignSystemConfiguration() {
@@ -2461,7 +2485,7 @@ function useDesignSystemTheme() {
2461
2485
  }
2462
2486
 
2463
2487
  // src/hooks/useHover.ts
2464
- import * as React21 from "react";
2488
+ import * as React22 from "react";
2465
2489
  var globalIgnoreEmulatedMouseEvents = false;
2466
2490
  var hoverCount = 0;
2467
2491
  function setGlobalIgnoreEmulatedMouseEvents() {
@@ -2491,13 +2515,13 @@ function setupGlobalTouchEvents() {
2491
2515
  }
2492
2516
  function useHover(props = {}) {
2493
2517
  const { onHoverStart, onHoverChange, onHoverEnd, isDisabled } = props;
2494
- const [isHovered, setHovered] = React21.useState(false);
2495
- const state = React21.useRef({
2518
+ const [isHovered, setHovered] = React22.useState(false);
2519
+ const state = React22.useRef({
2496
2520
  isHovered: false,
2497
2521
  ignoreEmulatedMouseEvents: false
2498
2522
  }).current;
2499
- React21.useEffect(setupGlobalTouchEvents, []);
2500
- const hoverProps = React21.useMemo(
2523
+ React22.useEffect(setupGlobalTouchEvents, []);
2524
+ const hoverProps = React22.useMemo(
2501
2525
  function getHoverProps() {
2502
2526
  function triggerHoverStart(event, pointerType) {
2503
2527
  if (isDisabled || pointerType === "touch" || state.isHovered) {
@@ -2662,7 +2686,7 @@ var Chip = memo11(
2662
2686
  });
2663
2687
  const handleClick = !children && !deletable && addable ? onAdd : onClick;
2664
2688
  const color = colorScheme === "primary" ? theme.colors.primary : colorScheme === "secondary" ? theme.colors.secondary : theme.colors.text;
2665
- return /* @__PURE__ */ React22.createElement(
2689
+ return /* @__PURE__ */ React23.createElement(
2666
2690
  ChipElement,
2667
2691
  {
2668
2692
  ref: forwardedRef,
@@ -2676,7 +2700,7 @@ var Chip = memo11(
2676
2700
  tabIndex,
2677
2701
  ...rest
2678
2702
  },
2679
- addable && /* @__PURE__ */ React22.createElement(
2703
+ addable && /* @__PURE__ */ React23.createElement(
2680
2704
  AddElement,
2681
2705
  {
2682
2706
  size: size2,
@@ -2689,7 +2713,7 @@ var Chip = memo11(
2689
2713
  }
2690
2714
  ),
2691
2715
  children,
2692
- deletable && /* @__PURE__ */ React22.createElement(
2716
+ deletable && /* @__PURE__ */ React23.createElement(
2693
2717
  DeleteElement,
2694
2718
  {
2695
2719
  size: size2,
@@ -2709,7 +2733,7 @@ var Chip = memo11(
2709
2733
  import { CheckIcon as CheckIcon2, ChevronRightIcon as ChevronRightIcon2 } from "@noya-app/noya-icons";
2710
2734
  import { useKeyboardShortcuts as useKeyboardShortcuts2 } from "@noya-app/noya-keymap";
2711
2735
  import * as RadixContextMenu from "@radix-ui/react-context-menu";
2712
- import React23, { memo as memo12, useCallback as useCallback13, useMemo as useMemo11 } from "react";
2736
+ import React24, { memo as memo12, useCallback as useCallback13, useMemo as useMemo11 } from "react";
2713
2737
  import styled15 from "styled-components";
2714
2738
  var SeparatorElement2 = styled15(RadixContextMenu.Separator)(
2715
2739
  styles.separatorStyle
@@ -2742,32 +2766,32 @@ var ContextMenuItem2 = memo12(function ContextMenuItem3({
2742
2766
  onSelect(value);
2743
2767
  }, [onSelect, value]);
2744
2768
  if (checked) {
2745
- return /* @__PURE__ */ React23.createElement(
2769
+ return /* @__PURE__ */ React24.createElement(
2746
2770
  CheckboxItemElement2,
2747
2771
  {
2748
2772
  checked,
2749
2773
  disabled,
2750
2774
  onSelect: handleSelectItem
2751
2775
  },
2752
- /* @__PURE__ */ React23.createElement(StyledItemIndicator2, null, /* @__PURE__ */ React23.createElement(CheckIcon2, null)),
2776
+ /* @__PURE__ */ React24.createElement(StyledItemIndicator2, null, /* @__PURE__ */ React24.createElement(CheckIcon2, null)),
2753
2777
  children
2754
2778
  );
2755
2779
  }
2756
- const element = /* @__PURE__ */ React23.createElement(
2780
+ const element = /* @__PURE__ */ React24.createElement(
2757
2781
  ItemElement2,
2758
2782
  {
2759
2783
  disabled,
2760
2784
  onSelect: handleSelectItem,
2761
2785
  onPointerDown: handlePointerDown
2762
2786
  },
2763
- indented && /* @__PURE__ */ React23.createElement(Spacer.Horizontal, { size: CHECKBOX_WIDTH - CHECKBOX_RIGHT_INSET }),
2764
- icon && /* @__PURE__ */ React23.createElement(React23.Fragment, null, icon, /* @__PURE__ */ React23.createElement(Spacer.Horizontal, { size: 8 })),
2787
+ indented && /* @__PURE__ */ React24.createElement(Spacer.Horizontal, { size: CHECKBOX_WIDTH - CHECKBOX_RIGHT_INSET }),
2788
+ icon && /* @__PURE__ */ React24.createElement(React24.Fragment, null, renderIcon(icon), /* @__PURE__ */ React24.createElement(Spacer.Horizontal, { size: 8 })),
2765
2789
  children,
2766
- shortcut && /* @__PURE__ */ React23.createElement(React23.Fragment, null, /* @__PURE__ */ React23.createElement(Spacer.Horizontal, null), /* @__PURE__ */ React23.createElement(Spacer.Horizontal, { size: 24 }), /* @__PURE__ */ React23.createElement(KeyboardShortcut, { shortcut })),
2767
- items && items.length > 0 && /* @__PURE__ */ React23.createElement(React23.Fragment, null, /* @__PURE__ */ React23.createElement(Spacer.Horizontal, null), /* @__PURE__ */ React23.createElement(Spacer.Horizontal, { size: 16 }), /* @__PURE__ */ React23.createElement(ChevronRightIcon2, null))
2790
+ 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 })),
2791
+ items && items.length > 0 && /* @__PURE__ */ React24.createElement(React24.Fragment, null, /* @__PURE__ */ React24.createElement(Spacer.Horizontal, null), /* @__PURE__ */ React24.createElement(Spacer.Horizontal, { size: 16 }), /* @__PURE__ */ React24.createElement(ChevronRightIcon2, null))
2768
2792
  );
2769
2793
  if (items && items.length > 0) {
2770
- return /* @__PURE__ */ React23.createElement(ContextMenuRoot, { isNested: true, items, onSelect }, element);
2794
+ return /* @__PURE__ */ React24.createElement(ContextMenuRoot, { isNested: true, items, onSelect }, element);
2771
2795
  } else {
2772
2796
  return element;
2773
2797
  }
@@ -2796,8 +2820,8 @@ function ContextMenuRoot({
2796
2820
  const RootComponent = isNested ? RadixContextMenu.Sub : RadixContextMenu.Root;
2797
2821
  const TriggerComponent = isNested ? RadixContextMenu.SubTrigger : RadixContextMenu.Trigger;
2798
2822
  const ContentComponent = isNested ? SubContent4 : Content8;
2799
- return /* @__PURE__ */ React23.createElement(RootComponent, { onOpenChange }, /* @__PURE__ */ React23.createElement(TriggerComponent, { asChild: true, onPointerDown }, children), /* @__PURE__ */ React23.createElement(RadixContextMenu.Portal, null, /* @__PURE__ */ React23.createElement(ContentComponent, null, items.map(
2800
- (item, index) => item === SEPARATOR_ITEM ? /* @__PURE__ */ React23.createElement(SeparatorElement2, { key: index }) : /* @__PURE__ */ React23.createElement(
2823
+ return /* @__PURE__ */ React24.createElement(RootComponent, { onOpenChange }, /* @__PURE__ */ React24.createElement(TriggerComponent, { asChild: true, onPointerDown }, children), /* @__PURE__ */ React24.createElement(RadixContextMenu.Portal, null, /* @__PURE__ */ React24.createElement(ContentComponent, null, items.map(
2824
+ (item, index) => item === SEPARATOR_ITEM ? /* @__PURE__ */ React24.createElement(SeparatorElement2, { key: index }) : /* @__PURE__ */ React24.createElement(
2801
2825
  ContextMenuItem2,
2802
2826
  {
2803
2827
  key: item.value ?? index,
@@ -2817,7 +2841,7 @@ function ContextMenuRoot({
2817
2841
  var ContextMenu = memo12(ContextMenuRoot);
2818
2842
 
2819
2843
  // src/components/Divider.tsx
2820
- import React24, { memo as memo13 } from "react";
2844
+ import React25, { memo as memo13 } from "react";
2821
2845
  import styled16 from "styled-components";
2822
2846
  var DividerContainer = styled16.div(({ theme, $variant = "normal", $orientation, $overflow = 0 }) => ({
2823
2847
  ...$orientation === "horizontal" ? { height: "1px", minHeight: "1px", margin: `0px -${$overflow}px` } : { width: "1px", minWidth: "1px", margin: `-${$overflow}px 0px` },
@@ -2829,7 +2853,7 @@ var Divider = memo13(function Divider2({
2829
2853
  overflow,
2830
2854
  ...props
2831
2855
  }) {
2832
- return /* @__PURE__ */ React24.createElement(
2856
+ return /* @__PURE__ */ React25.createElement(
2833
2857
  DividerContainer,
2834
2858
  {
2835
2859
  $orientation: "horizontal",
@@ -2844,7 +2868,7 @@ var DividerVertical = memo13(function DividerVertical2({
2844
2868
  overflow,
2845
2869
  ...props
2846
2870
  }) {
2847
- return /* @__PURE__ */ React24.createElement(
2871
+ return /* @__PURE__ */ React25.createElement(
2848
2872
  DividerContainer,
2849
2873
  {
2850
2874
  $orientation: "vertical",
@@ -2857,7 +2881,7 @@ var DividerVertical = memo13(function DividerVertical2({
2857
2881
 
2858
2882
  // src/components/DraggableMenuButton.tsx
2859
2883
  import { DragHandleDots2Icon } from "@noya-app/noya-icons";
2860
- import React25, { memo as memo14, useCallback as useCallback14, useState as useState16 } from "react";
2884
+ import React26, { memo as memo14, useCallback as useCallback14, useState as useState16 } from "react";
2861
2885
  import styled17 from "styled-components";
2862
2886
  var DotButtonElement = styled17.div(({ theme }) => ({
2863
2887
  cursor: "pointer",
@@ -2884,7 +2908,7 @@ var DraggableMenuButton = memo14(function DraggableMenuButton2({
2884
2908
  }) {
2885
2909
  const color = useDesignSystemTheme().colors.icon;
2886
2910
  const [open, setOpen] = useState16(false);
2887
- const [downPosition, setDownPosition] = React25.useState(null);
2911
+ const [downPosition, setDownPosition] = React26.useState(null);
2888
2912
  const handlePointerDownCapture = useCallback14(
2889
2913
  (event) => {
2890
2914
  if (open) {
@@ -2921,7 +2945,7 @@ var DraggableMenuButton = memo14(function DraggableMenuButton2({
2921
2945
  },
2922
2946
  [setOpen]
2923
2947
  );
2924
- return /* @__PURE__ */ React25.createElement(
2948
+ return /* @__PURE__ */ React26.createElement(
2925
2949
  DotButtonElement,
2926
2950
  {
2927
2951
  onPointerDownCapture: handlePointerDownCapture,
@@ -2931,7 +2955,7 @@ var DraggableMenuButton = memo14(function DraggableMenuButton2({
2931
2955
  event.preventDefault();
2932
2956
  }
2933
2957
  },
2934
- items && onSelect ? /* @__PURE__ */ React25.createElement(
2958
+ items && onSelect ? /* @__PURE__ */ React26.createElement(
2935
2959
  DropdownMenu,
2936
2960
  {
2937
2961
  open,
@@ -2940,13 +2964,13 @@ var DraggableMenuButton = memo14(function DraggableMenuButton2({
2940
2964
  onSelect,
2941
2965
  shouldBindKeyboardShortcuts: false
2942
2966
  },
2943
- /* @__PURE__ */ React25.createElement(TriggerElement, null, /* @__PURE__ */ React25.createElement(
2967
+ /* @__PURE__ */ React26.createElement(TriggerElement, null, /* @__PURE__ */ React26.createElement(
2944
2968
  DragHandleDots2Icon,
2945
2969
  {
2946
2970
  color: isVisible || open ? color : "transparent"
2947
2971
  }
2948
2972
  ))
2949
- ) : /* @__PURE__ */ React25.createElement(
2973
+ ) : /* @__PURE__ */ React26.createElement(
2950
2974
  DragHandleDots2Icon,
2951
2975
  {
2952
2976
  color: isVisible || open ? color : "transparent"
@@ -2956,7 +2980,7 @@ var DraggableMenuButton = memo14(function DraggableMenuButton2({
2956
2980
  });
2957
2981
 
2958
2982
  // src/components/FillInputField.tsx
2959
- import React28, { forwardRef as forwardRef11, memo as memo17 } from "react";
2983
+ import React29, { forwardRef as forwardRef11, memo as memo17 } from "react";
2960
2984
  import styled19 from "styled-components";
2961
2985
 
2962
2986
  // ../noya-file-format/src/types.ts
@@ -3282,11 +3306,11 @@ var ClassValue = /* @__PURE__ */ ((ClassValue2) => {
3282
3306
  })(ClassValue || {});
3283
3307
 
3284
3308
  // src/components/FillPreviewBackground.tsx
3285
- import React27, { memo as memo16, useMemo as useMemo14 } from "react";
3309
+ import React28, { memo as memo16, useMemo as useMemo14 } from "react";
3286
3310
  import styled18, { useTheme as useTheme3 } from "styled-components";
3287
3311
 
3288
3312
  // src/contexts/ImageDataContext.tsx
3289
- import React26, {
3313
+ import React27, {
3290
3314
  createContext as createContext6,
3291
3315
  memo as memo15,
3292
3316
  useContext as useContext6,
@@ -3303,7 +3327,7 @@ var ImageDataProvider = memo15(function ImageDataProvider2({
3303
3327
  () => ({ getImageData: getImageData ?? (() => void 0) }),
3304
3328
  [getImageData]
3305
3329
  );
3306
- return /* @__PURE__ */ React26.createElement(ImageDataContext.Provider, { value: contextValue }, children);
3330
+ return /* @__PURE__ */ React27.createElement(ImageDataContext.Provider, { value: contextValue }, children);
3307
3331
  });
3308
3332
  function useImageData(ref) {
3309
3333
  const value = useContext6(ImageDataContext);
@@ -3393,7 +3417,7 @@ var HorizontalDotsBackground = memo16(function HorizontalDotsBackground2() {
3393
3417
  ].join(","),
3394
3418
  [inputBackground, placeholderDots]
3395
3419
  );
3396
- return /* @__PURE__ */ React27.createElement(Background, { background });
3420
+ return /* @__PURE__ */ React28.createElement(Background, { background });
3397
3421
  });
3398
3422
  function getPatternSizeAndPosition(fillType, tileScale) {
3399
3423
  switch (fillType) {
@@ -3423,13 +3447,13 @@ var PatternPreviewBackground = memo16(function PatternPreviewBackground2({
3423
3447
  ].join(" "),
3424
3448
  [fillType, size2, url]
3425
3449
  );
3426
- return /* @__PURE__ */ React27.createElement(Background, { background });
3450
+ return /* @__PURE__ */ React28.createElement(Background, { background });
3427
3451
  });
3428
3452
  var ColorPreviewBackground = memo16(function ColorPreviewBackground2({
3429
3453
  color
3430
3454
  }) {
3431
3455
  const background = useMemo14(() => sketchColorToRgbaString(color), [color]);
3432
- return /* @__PURE__ */ React27.createElement(Background, { background });
3456
+ return /* @__PURE__ */ React28.createElement(Background, { background });
3433
3457
  });
3434
3458
  var GradientPreviewBackground = memo16(function GradientPreviewBackground2({
3435
3459
  gradient
@@ -3438,22 +3462,22 @@ var GradientPreviewBackground = memo16(function GradientPreviewBackground2({
3438
3462
  () => getGradientBackground(gradient.stops, gradient.gradientType, 180),
3439
3463
  [gradient.gradientType, gradient.stops]
3440
3464
  );
3441
- return /* @__PURE__ */ React27.createElement(Background, { background });
3465
+ return /* @__PURE__ */ React28.createElement(Background, { background });
3442
3466
  });
3443
3467
  var FillPreviewBackground = memo16(function FillPreviewBackground2({
3444
3468
  value
3445
3469
  }) {
3446
3470
  if (!value)
3447
- return /* @__PURE__ */ React27.createElement(HorizontalDotsBackground, null);
3471
+ return /* @__PURE__ */ React28.createElement(HorizontalDotsBackground, null);
3448
3472
  switch (value._class) {
3449
3473
  case "color":
3450
- return /* @__PURE__ */ React27.createElement(ColorPreviewBackground, { color: value });
3474
+ return /* @__PURE__ */ React28.createElement(ColorPreviewBackground, { color: value });
3451
3475
  case "gradient":
3452
- return /* @__PURE__ */ React27.createElement(GradientPreviewBackground, { gradient: value });
3476
+ return /* @__PURE__ */ React28.createElement(GradientPreviewBackground, { gradient: value });
3453
3477
  case "pattern":
3454
3478
  if (!value.image)
3455
3479
  return null;
3456
- return /* @__PURE__ */ React27.createElement(
3480
+ return /* @__PURE__ */ React28.createElement(
3457
3481
  PatternPreviewBackground,
3458
3482
  {
3459
3483
  fillType: value.patternFillType,
@@ -3485,12 +3509,12 @@ var Container = styled19.button(
3485
3509
  );
3486
3510
  var FillInputField = memo17(
3487
3511
  forwardRef11(function FillInputField2({ id, value, flex, ...rest }, ref) {
3488
- return /* @__PURE__ */ React28.createElement(Container, { ref, id, $flex: flex, ...rest }, /* @__PURE__ */ React28.createElement(FillPreviewBackground, { value }));
3512
+ return /* @__PURE__ */ React29.createElement(Container, { ref, id, $flex: flex, ...rest }, /* @__PURE__ */ React29.createElement(FillPreviewBackground, { value }));
3489
3513
  })
3490
3514
  );
3491
3515
 
3492
3516
  // src/components/FloatingWindow.tsx
3493
- import React29, { useCallback as useCallback15, useRef as useRef13, useState as useState17 } from "react";
3517
+ import React30, { useCallback as useCallback15, useRef as useRef13, useState as useState17 } from "react";
3494
3518
  var styles2 = {
3495
3519
  noSelect: {
3496
3520
  userSelect: "none",
@@ -3583,7 +3607,7 @@ function defaultRenderToolbar({
3583
3607
  toolbarContent,
3584
3608
  onClose
3585
3609
  }) {
3586
- return /* @__PURE__ */ React29.createElement(React29.Fragment, null, /* @__PURE__ */ React29.createElement(Small, { flex: "1", fontWeight: "500", color: "text" }, title), toolbarContent, /* @__PURE__ */ React29.createElement(
3610
+ return /* @__PURE__ */ React30.createElement(React30.Fragment, null, /* @__PURE__ */ React30.createElement(Small, { flex: "1", fontWeight: "500", color: "text" }, title), toolbarContent, /* @__PURE__ */ React30.createElement(
3587
3611
  IconButton,
3588
3612
  {
3589
3613
  iconName: "Cross3Icon",
@@ -3704,7 +3728,7 @@ var FloatingWindow = ({
3704
3728
  setResizeDirection(null);
3705
3729
  toggleGlobalTextSelection(false);
3706
3730
  }, []);
3707
- React29.useEffect(() => {
3731
+ React30.useEffect(() => {
3708
3732
  document.addEventListener("mousemove", handleMouseMove);
3709
3733
  document.addEventListener("mouseup", handleMouseUp);
3710
3734
  return () => {
@@ -3720,7 +3744,7 @@ var FloatingWindow = ({
3720
3744
  onClose();
3721
3745
  floatingWindowManager.closeWindow(currentFloatingWindow.id);
3722
3746
  }, [currentFloatingWindow.id, floatingWindowManager, onClose]);
3723
- return /* @__PURE__ */ React29.createElement(
3747
+ return /* @__PURE__ */ React30.createElement(
3724
3748
  "div",
3725
3749
  {
3726
3750
  ref: wrapperRef,
@@ -3734,7 +3758,7 @@ var FloatingWindow = ({
3734
3758
  backgroundColor: theme.colors.canvas.background
3735
3759
  }
3736
3760
  },
3737
- /* @__PURE__ */ React29.createElement(
3761
+ /* @__PURE__ */ React30.createElement(
3738
3762
  "div",
3739
3763
  {
3740
3764
  style: {
@@ -3745,9 +3769,9 @@ var FloatingWindow = ({
3745
3769
  },
3746
3770
  renderToolbar({ title, toolbarContent, onClose: handleClose })
3747
3771
  ),
3748
- /* @__PURE__ */ React29.createElement(Divider, null),
3749
- /* @__PURE__ */ React29.createElement("div", { style: styles2.content }, children),
3750
- Object.entries(resizeHandlePositions).map(([direction, style3]) => /* @__PURE__ */ React29.createElement(
3772
+ /* @__PURE__ */ React30.createElement(Divider, null),
3773
+ /* @__PURE__ */ React30.createElement("div", { style: styles2.content }, children),
3774
+ Object.entries(resizeHandlePositions).map(([direction, style3]) => /* @__PURE__ */ React30.createElement(
3751
3775
  "div",
3752
3776
  {
3753
3777
  key: direction,
@@ -3769,7 +3793,7 @@ import {
3769
3793
  hsvaToRgba,
3770
3794
  rgbaToHsva as rgbaToHsva2
3771
3795
  } from "@noya-app/noya-colorpicker";
3772
- import React30, { memo as memo18, useCallback as useCallback16, useMemo as useMemo15 } from "react";
3796
+ import React31, { memo as memo18, useCallback as useCallback16, useMemo as useMemo15 } from "react";
3773
3797
  var GradientPicker = memo18(function GradientPicker2({
3774
3798
  value,
3775
3799
  selectedStop,
@@ -3804,14 +3828,14 @@ var GradientPicker = memo18(function GradientPicker2({
3804
3828
  },
3805
3829
  [onAdd]
3806
3830
  );
3807
- return /* @__PURE__ */ React30.createElement(
3831
+ return /* @__PURE__ */ React31.createElement(
3808
3832
  NoyaColorPicker,
3809
3833
  {
3810
3834
  onChange: handleChangeColor,
3811
3835
  colorModel,
3812
3836
  color: rgbaColor
3813
3837
  },
3814
- /* @__PURE__ */ React30.createElement(
3838
+ /* @__PURE__ */ React31.createElement(
3815
3839
  Gradient,
3816
3840
  {
3817
3841
  gradients: value,
@@ -3822,12 +3846,12 @@ var GradientPicker = memo18(function GradientPicker2({
3822
3846
  onDelete
3823
3847
  }
3824
3848
  ),
3825
- /* @__PURE__ */ React30.createElement(Spacer.Vertical, { size: 10 }),
3826
- /* @__PURE__ */ React30.createElement(Saturation, null),
3827
- /* @__PURE__ */ React30.createElement(Spacer.Vertical, { size: 12 }),
3828
- /* @__PURE__ */ React30.createElement(Hue, null),
3829
- /* @__PURE__ */ React30.createElement(Spacer.Vertical, { size: 5 }),
3830
- /* @__PURE__ */ React30.createElement(Alpha, null)
3849
+ /* @__PURE__ */ React31.createElement(Spacer.Vertical, { size: 10 }),
3850
+ /* @__PURE__ */ React31.createElement(Saturation, null),
3851
+ /* @__PURE__ */ React31.createElement(Spacer.Vertical, { size: 12 }),
3852
+ /* @__PURE__ */ React31.createElement(Hue, null),
3853
+ /* @__PURE__ */ React31.createElement(Spacer.Vertical, { size: 5 }),
3854
+ /* @__PURE__ */ React31.createElement(Alpha, null)
3831
3855
  );
3832
3856
  });
3833
3857
 
@@ -3859,7 +3883,7 @@ var Grid = styled20.div((props) => ({
3859
3883
  }));
3860
3884
 
3861
3885
  // src/components/GridView.tsx
3862
- import React32, {
3886
+ import React33, {
3863
3887
  createContext as createContext7,
3864
3888
  forwardRef as forwardRef12,
3865
3889
  memo as memo20,
@@ -3871,7 +3895,7 @@ import styled22, { keyframes as keyframes2 } from "styled-components";
3871
3895
 
3872
3896
  // src/components/ScrollArea.tsx
3873
3897
  import * as RadixScrollArea from "@radix-ui/react-scroll-area";
3874
- import React31, { memo as memo19, useCallback as useCallback17, useState as useState18 } from "react";
3898
+ import React32, { memo as memo19, useCallback as useCallback17, useState as useState18 } from "react";
3875
3899
  import styled21 from "styled-components";
3876
3900
  var SCROLLBAR_SIZE = 10;
3877
3901
  var StyledViewport = styled21(RadixScrollArea.Viewport)({
@@ -3901,7 +3925,7 @@ var Container2 = styled21.div({
3901
3925
  });
3902
3926
  var ScrollArea = memo19(function ScrollArea2({ children }) {
3903
3927
  const [scrollElementRef, setScrollElementRef] = useState18(null);
3904
- return /* @__PURE__ */ React31.createElement(Container2, null, /* @__PURE__ */ React31.createElement(RadixScrollArea.Root, { style: { width: "100%", height: "100%" } }, /* @__PURE__ */ React31.createElement(
3928
+ return /* @__PURE__ */ React32.createElement(Container2, null, /* @__PURE__ */ React32.createElement(RadixScrollArea.Root, { style: { width: "100%", height: "100%" } }, /* @__PURE__ */ React32.createElement(
3905
3929
  StyledViewport,
3906
3930
  {
3907
3931
  ref: useCallback17(
@@ -3910,7 +3934,7 @@ var ScrollArea = memo19(function ScrollArea2({ children }) {
3910
3934
  )
3911
3935
  },
3912
3936
  typeof children === "function" ? scrollElementRef ? children(scrollElementRef) : null : children
3913
- ), /* @__PURE__ */ React31.createElement(StyledScrollbar, { orientation: "vertical", className: "scroll-component" }, /* @__PURE__ */ React31.createElement(StyledThumb, { className: "scroll-component" }))));
3937
+ ), /* @__PURE__ */ React32.createElement(StyledScrollbar, { orientation: "vertical", className: "scroll-component" }, /* @__PURE__ */ React32.createElement(StyledThumb, { className: "scroll-component" }))));
3914
3938
  });
3915
3939
 
3916
3940
  // src/components/GridView.tsx
@@ -4106,7 +4130,7 @@ var GridViewItem = forwardRef12(function GridViewItem2({
4106
4130
  onContextMenu,
4107
4131
  style: style3
4108
4132
  }, forwardedRef) {
4109
- const [hovered, setHovered] = React32.useState(false);
4133
+ const [hovered, setHovered] = React33.useState(false);
4110
4134
  const { hoverProps } = useHover({
4111
4135
  onHoverChange: (isHovering) => {
4112
4136
  onHoverChange?.(isHovering);
@@ -4135,7 +4159,7 @@ var GridViewItem = forwardRef12(function GridViewItem2({
4135
4159
  },
4136
4160
  [onPress]
4137
4161
  );
4138
- let element = /* @__PURE__ */ React32.createElement(
4162
+ let element = /* @__PURE__ */ React33.createElement(
4139
4163
  ItemContainer,
4140
4164
  {
4141
4165
  id,
@@ -4144,7 +4168,7 @@ var GridViewItem = forwardRef12(function GridViewItem2({
4144
4168
  tabIndex: disabled ? void 0 : 0,
4145
4169
  onKeyDown: handleKeyDown
4146
4170
  },
4147
- /* @__PURE__ */ React32.createElement(
4171
+ /* @__PURE__ */ React33.createElement(
4148
4172
  ContentContainer,
4149
4173
  {
4150
4174
  disabled,
@@ -4158,18 +4182,18 @@ var GridViewItem = forwardRef12(function GridViewItem2({
4158
4182
  },
4159
4183
  children
4160
4184
  ),
4161
- textPosition === "below" && /* @__PURE__ */ React32.createElement(React32.Fragment, null, /* @__PURE__ */ React32.createElement(Spacer.Vertical, { size: 8 }), /* @__PURE__ */ React32.createElement(ItemTitle, { showBackground: false }, title || " "), /* @__PURE__ */ React32.createElement(ItemDescription, { showBackground: false }, subtitle || " ")),
4162
- textPosition === "overlay" && hovered && (title || subtitle) && /* @__PURE__ */ React32.createElement(TextOverlay, null, title && /* @__PURE__ */ React32.createElement(ItemTitle, { showBackground: true }, title), subtitle && /* @__PURE__ */ React32.createElement(ItemDescription, { showBackground: true }, subtitle)),
4163
- loading && /* @__PURE__ */ React32.createElement(Shimmer, null, /* @__PURE__ */ React32.createElement(ActivityIndicator, { opacity: 0.5, size: 13 }))
4185
+ textPosition === "below" && /* @__PURE__ */ React33.createElement(React33.Fragment, null, /* @__PURE__ */ React33.createElement(Spacer.Vertical, { size: 8 }), /* @__PURE__ */ React33.createElement(ItemTitle, { showBackground: false }, title || " "), /* @__PURE__ */ React33.createElement(ItemDescription, { showBackground: false }, subtitle || " ")),
4186
+ textPosition === "overlay" && hovered && (title || subtitle) && /* @__PURE__ */ React33.createElement(TextOverlay, null, title && /* @__PURE__ */ React33.createElement(ItemTitle, { showBackground: true }, title), subtitle && /* @__PURE__ */ React33.createElement(ItemDescription, { showBackground: true }, subtitle)),
4187
+ loading && /* @__PURE__ */ React33.createElement(Shimmer, null, /* @__PURE__ */ React33.createElement(ActivityIndicator, { opacity: 0.5, size: 13 }))
4164
4188
  );
4165
4189
  if (menuItems && onSelectMenuItem) {
4166
- element = /* @__PURE__ */ React32.createElement(ContextMenu, { items: menuItems, onSelect: onSelectMenuItem }, element);
4190
+ element = /* @__PURE__ */ React33.createElement(ContextMenu, { items: menuItems, onSelect: onSelectMenuItem }, element);
4167
4191
  }
4168
4192
  if (textPosition === "toolip") {
4169
- element = /* @__PURE__ */ React32.createElement(
4193
+ element = /* @__PURE__ */ React33.createElement(
4170
4194
  Tooltip,
4171
4195
  {
4172
- content: /* @__PURE__ */ React32.createElement(Stack.V, { gap: 2 }, /* @__PURE__ */ React32.createElement(ItemTitle, { showBackground: false }, title), /* @__PURE__ */ React32.createElement(ItemDescription, { showBackground: false }, subtitle))
4196
+ content: /* @__PURE__ */ React33.createElement(Stack.V, { gap: 2 }, /* @__PURE__ */ React33.createElement(ItemTitle, { showBackground: false }, title), /* @__PURE__ */ React33.createElement(ItemDescription, { showBackground: false }, subtitle))
4173
4197
  },
4174
4198
  element
4175
4199
  );
@@ -4208,20 +4232,20 @@ function GridViewRoot({
4208
4232
  }),
4209
4233
  [bordered, disabled, size2, textPosition]
4210
4234
  );
4211
- return /* @__PURE__ */ React32.createElement(GridViewContext.Provider, { value: contextValue }, /* @__PURE__ */ React32.createElement(Container3, { onClick: handleClick, scrollable }, scrollable ? /* @__PURE__ */ React32.createElement(ScrollArea, null, children) : children));
4235
+ return /* @__PURE__ */ React33.createElement(GridViewContext.Provider, { value: contextValue }, /* @__PURE__ */ React33.createElement(Container3, { onClick: handleClick, scrollable }, scrollable ? /* @__PURE__ */ React33.createElement(ScrollArea, null, children) : children));
4212
4236
  }
4213
4237
  function GridViewSection({
4214
4238
  children,
4215
4239
  padding = "20px"
4216
4240
  }) {
4217
4241
  const { size: size2 } = useContext7(GridViewContext);
4218
- return /* @__PURE__ */ React32.createElement(Grid2, { size: size2, padding }, children);
4242
+ return /* @__PURE__ */ React33.createElement(Grid2, { size: size2, padding }, children);
4219
4243
  }
4220
4244
  function GridViewSectionHeader({ title }) {
4221
4245
  const grouped = title.split("/");
4222
- return /* @__PURE__ */ React32.createElement(SectionHeaderContainer, null, /* @__PURE__ */ React32.createElement(Spacer.Vertical, { size: 24 }), withSeparatorElements(
4223
- grouped.map((title2, index) => /* @__PURE__ */ React32.createElement(SectionTitle, { last: index === grouped.length - 1 }, title2)),
4224
- /* @__PURE__ */ React32.createElement(SectionTitle, null, " / ")
4246
+ return /* @__PURE__ */ React33.createElement(SectionHeaderContainer, null, /* @__PURE__ */ React33.createElement(Spacer.Vertical, { size: 24 }), withSeparatorElements(
4247
+ grouped.map((title2, index) => /* @__PURE__ */ React33.createElement(SectionTitle, { last: index === grouped.length - 1 }, title2)),
4248
+ /* @__PURE__ */ React33.createElement(SectionTitle, null, " / ")
4225
4249
  ));
4226
4250
  }
4227
4251
  var GridView;
@@ -4234,7 +4258,7 @@ var GridView;
4234
4258
 
4235
4259
  // src/components/InputFieldWithCompletions.tsx
4236
4260
  import { chunkBy, partition } from "@noya-app/noya-utils";
4237
- import React36, {
4261
+ import React37, {
4238
4262
  forwardRef as forwardRef15,
4239
4263
  memo as memo23,
4240
4264
  useCallback as useCallback21,
@@ -4321,7 +4345,7 @@ function mergeRanges(ranges) {
4321
4345
  // src/components/ListView.tsx
4322
4346
  import { range } from "@noya-app/noya-utils";
4323
4347
  import { composeRefs as composeRefs2 } from "@radix-ui/react-compose-refs";
4324
- import React34, {
4348
+ import React35, {
4325
4349
  Children as Children4,
4326
4350
  createContext as createContext9,
4327
4351
  forwardRef as forwardRef13,
@@ -4375,7 +4399,7 @@ import {
4375
4399
  useSortable,
4376
4400
  verticalListSortingStrategy
4377
4401
  } from "@dnd-kit/sortable";
4378
- import React33, {
4402
+ import React34, {
4379
4403
  createContext as createContext8,
4380
4404
  memo as memo21,
4381
4405
  useCallback as useCallback19,
@@ -4517,7 +4541,7 @@ function SortableRoot({
4517
4541
  useEffect13(() => {
4518
4542
  setMounted(true);
4519
4543
  }, []);
4520
- return /* @__PURE__ */ React33.createElement(
4544
+ return /* @__PURE__ */ React34.createElement(
4521
4545
  SortableItemContext.Provider,
4522
4546
  {
4523
4547
  value: useMemo17(
@@ -4531,7 +4555,7 @@ function SortableRoot({
4531
4555
  [acceptsDrop, axis, keys, position, setActivatorEvent]
4532
4556
  )
4533
4557
  },
4534
- /* @__PURE__ */ React33.createElement(
4558
+ /* @__PURE__ */ React34.createElement(
4535
4559
  DndContext,
4536
4560
  {
4537
4561
  sensors,
@@ -4540,9 +4564,9 @@ function SortableRoot({
4540
4564
  onDragMove: handleDragMove,
4541
4565
  onDragEnd: handleDragEnd
4542
4566
  },
4543
- /* @__PURE__ */ React33.createElement(SortableContext, { items: keys, strategy: verticalListSortingStrategy }, children),
4567
+ /* @__PURE__ */ React34.createElement(SortableContext, { items: keys, strategy: verticalListSortingStrategy }, children),
4544
4568
  mounted && renderOverlay && createPortal2(
4545
- /* @__PURE__ */ React33.createElement(DragOverlay, { dropAnimation: null }, activeIndex !== void 0 && activeIndex >= 0 && renderOverlay(activeIndex)),
4569
+ /* @__PURE__ */ React34.createElement(DragOverlay, { dropAnimation: null }, activeIndex !== void 0 && activeIndex >= 0 && renderOverlay(activeIndex)),
4546
4570
  document.body
4547
4571
  )
4548
4572
  )
@@ -4600,7 +4624,7 @@ function ListViewEditableRowTitle({
4600
4624
  element.select();
4601
4625
  }, 0);
4602
4626
  }, [autoFocus]);
4603
- return /* @__PURE__ */ React34.createElement(
4627
+ return /* @__PURE__ */ React35.createElement(
4604
4628
  ListViewEditableRowTitleElement,
4605
4629
  {
4606
4630
  ref: inputRef,
@@ -4742,7 +4766,8 @@ var ListViewRow = forwardRef13(function ListViewRow2({
4742
4766
  onSelectMenuItem,
4743
4767
  onMenuOpenChange,
4744
4768
  onKeyDown,
4745
- style: style3
4769
+ style: style3,
4770
+ dragIndicatorStyle
4746
4771
  }, forwardedRef) {
4747
4772
  depth = Math.max(0, depth);
4748
4773
  const {
@@ -4789,7 +4814,7 @@ var ListViewRow = forwardRef13(function ListViewRow2({
4789
4814
  ...renderProps
4790
4815
  }, ref) => {
4791
4816
  const Component = RowContainer;
4792
- const element = /* @__PURE__ */ React34.createElement(
4817
+ const element = /* @__PURE__ */ React35.createElement(
4793
4818
  Component,
4794
4819
  {
4795
4820
  ref,
@@ -4820,20 +4845,25 @@ var ListViewRow = forwardRef13(function ListViewRow2({
4820
4845
  ),
4821
4846
  tabIndex
4822
4847
  },
4823
- relativeDropPosition && /* @__PURE__ */ React34.createElement(
4848
+ relativeDropPosition && /* @__PURE__ */ React35.createElement(
4824
4849
  ListViewDragIndicatorElement,
4825
4850
  {
4826
4851
  $colorScheme: colorScheme,
4827
4852
  $relativeDropPosition: relativeDropPosition,
4828
4853
  $offsetLeft: 33 + depth * indentation,
4829
- $gap: listGap
4854
+ $gap: listGap + (divider ? 1 : 0),
4855
+ style: typeof dragIndicatorStyle === "function" ? dragIndicatorStyle({
4856
+ depth,
4857
+ indentation,
4858
+ position: relativeDropPosition
4859
+ }) : dragIndicatorStyle
4830
4860
  }
4831
4861
  ),
4832
- depth > 0 && /* @__PURE__ */ React34.createElement(Spacer.Horizontal, { size: depth * indentation }),
4862
+ depth > 0 && /* @__PURE__ */ React35.createElement(Spacer.Horizontal, { size: depth * indentation }),
4833
4863
  children
4834
4864
  );
4835
4865
  if (menuItems && onSelectMenuItem) {
4836
- return /* @__PURE__ */ React34.createElement(
4866
+ return /* @__PURE__ */ React35.createElement(
4837
4867
  ContextMenu,
4838
4868
  {
4839
4869
  items: menuItems,
@@ -4846,7 +4876,7 @@ var ListViewRow = forwardRef13(function ListViewRow2({
4846
4876
  return element;
4847
4877
  };
4848
4878
  if (sortable && id) {
4849
- return /* @__PURE__ */ React34.createElement(Sortable.Item, { id, disabled: overrideSortable === false }, ({ ref: sortableRef, ...sortableProps }) => renderContent(
4879
+ return /* @__PURE__ */ React35.createElement(Sortable.Item, { id, disabled: overrideSortable === false }, ({ ref: sortableRef, ...sortableProps }) => renderContent(
4850
4880
  sortableProps,
4851
4881
  composeRefs2(sortableRef, forwardedRef)
4852
4882
  ));
@@ -4861,7 +4891,7 @@ var VirtualizedListRow = memo22(function VirtualizedListRow2({
4861
4891
  style: style3
4862
4892
  }) {
4863
4893
  const renderItem = useContext9(RenderItemContext);
4864
- return /* @__PURE__ */ React34.createElement("div", { key: index, style: style3 }, renderItem(index));
4894
+ return /* @__PURE__ */ React35.createElement("div", { key: index, style: style3 }, renderItem(index));
4865
4895
  });
4866
4896
  var VirtualizedListInner = forwardRef13(function VirtualizedListInner2({
4867
4897
  size: size2,
@@ -4892,7 +4922,7 @@ var VirtualizedListInner = forwardRef13(function VirtualizedListInner2({
4892
4922
  }),
4893
4923
  []
4894
4924
  );
4895
- return /* @__PURE__ */ React34.createElement(RenderItemContext.Provider, { value: renderItem }, /* @__PURE__ */ React34.createElement(
4925
+ return /* @__PURE__ */ React35.createElement(RenderItemContext.Provider, { value: renderItem }, /* @__PURE__ */ React35.createElement(
4896
4926
  WindowScroller,
4897
4927
  {
4898
4928
  scrollElement,
@@ -4903,7 +4933,7 @@ var VirtualizedListInner = forwardRef13(function VirtualizedListInner2({
4903
4933
  registerChild,
4904
4934
  onChildScroll,
4905
4935
  scrollTop
4906
- }) => /* @__PURE__ */ React34.createElement("div", { ref: registerChild }, /* @__PURE__ */ React34.createElement(
4936
+ }) => /* @__PURE__ */ React35.createElement("div", { ref: registerChild }, /* @__PURE__ */ React35.createElement(
4907
4937
  VariableSizeList,
4908
4938
  {
4909
4939
  ref: listRef,
@@ -5045,7 +5075,7 @@ var ListViewRootInner = forwardRef13(function ListViewRootInner2({
5045
5075
  [indentation]
5046
5076
  );
5047
5077
  const renderOverlay = useCallback20(
5048
- (index) => /* @__PURE__ */ React34.createElement("div", { style: { opacity: 0.25 } }, /* @__PURE__ */ React34.createElement(DraggingContext.Provider, { value: draggingContextOverlayValue }, renderItem(data[index], index, { isDragging: true }))),
5078
+ (index) => /* @__PURE__ */ React35.createElement("div", { style: { opacity: 0.25 } }, /* @__PURE__ */ React35.createElement(DraggingContext.Provider, { value: draggingContextOverlayValue }, renderItem(data[index], index, { isDragging: true }))),
5049
5079
  [draggingContextOverlayValue, renderItem, data]
5050
5080
  );
5051
5081
  const renderWrappedChild = useCallback20(
@@ -5054,12 +5084,12 @@ var ListViewRootInner = forwardRef13(function ListViewRootInner2({
5054
5084
  const current = renderChild(index);
5055
5085
  if (!contextValue || !isValidElement3(current))
5056
5086
  return null;
5057
- return /* @__PURE__ */ React34.createElement(ListRowContext.Provider, { key: current.key, value: contextValue }, current);
5087
+ return /* @__PURE__ */ React35.createElement(ListRowContext.Provider, { key: current.key, value: contextValue }, current);
5058
5088
  },
5059
5089
  [getItemContextValue, renderChild]
5060
5090
  );
5061
5091
  const ids = useMemo18(() => data.map(keyExtractor), [keyExtractor, data]);
5062
- const withSortable = (children) => sortable ? /* @__PURE__ */ React34.createElement(
5092
+ const withSortable = (children) => sortable ? /* @__PURE__ */ React35.createElement(
5063
5093
  Sortable.Root,
5064
5094
  {
5065
5095
  onMoveItem,
@@ -5069,7 +5099,7 @@ var ListViewRootInner = forwardRef13(function ListViewRootInner2({
5069
5099
  },
5070
5100
  children
5071
5101
  ) : children;
5072
- const withScrollable = (children) => scrollable ? /* @__PURE__ */ React34.createElement(ScrollArea, null, children) : children(null);
5102
+ const withScrollable = (children) => scrollable ? /* @__PURE__ */ React35.createElement(ScrollArea, null, children) : children(null);
5073
5103
  const getItemHeight = useCallback20(
5074
5104
  (index) => {
5075
5105
  const child = getItemContextValue(index);
@@ -5084,7 +5114,7 @@ var ListViewRootInner = forwardRef13(function ListViewRootInner2({
5084
5114
  [data, keyExtractor]
5085
5115
  );
5086
5116
  const draggingContextValue = useMemo18(() => ({ indentation }), [indentation]);
5087
- return /* @__PURE__ */ React34.createElement(DraggingContext.Provider, { value: draggingContextValue }, /* @__PURE__ */ React34.createElement(
5117
+ return /* @__PURE__ */ React35.createElement(DraggingContext.Provider, { value: draggingContextValue }, /* @__PURE__ */ React35.createElement(
5088
5118
  RootContainer2,
5089
5119
  {
5090
5120
  id,
@@ -5098,7 +5128,7 @@ var ListViewRootInner = forwardRef13(function ListViewRootInner2({
5098
5128
  },
5099
5129
  withScrollable(
5100
5130
  (scrollElementRef) => withSortable(
5101
- virtualized ? /* @__PURE__ */ React34.createElement(
5131
+ virtualized ? /* @__PURE__ */ React35.createElement(
5102
5132
  VirtualizedList,
5103
5133
  {
5104
5134
  ref: forwardedRef,
@@ -5122,7 +5152,7 @@ var ChildrenListViewInner = forwardRef13(function ChildrenListViewInner2({ child
5122
5152
  ),
5123
5153
  [children]
5124
5154
  );
5125
- return /* @__PURE__ */ React34.createElement(
5155
+ return /* @__PURE__ */ React35.createElement(
5126
5156
  ListViewRoot,
5127
5157
  {
5128
5158
  ref: forwardedRef,
@@ -5139,9 +5169,9 @@ var ChildrenListViewInner = forwardRef13(function ChildrenListViewInner2({ child
5139
5169
  var ChildrenListView = memo22(ChildrenListViewInner);
5140
5170
  var SimpleListViewInner = forwardRef13(function SimpleListViewInner2(props, forwardedRef) {
5141
5171
  if ("children" in props) {
5142
- return /* @__PURE__ */ React34.createElement(ChildrenListView, { ref: forwardedRef, ...props });
5172
+ return /* @__PURE__ */ React35.createElement(ChildrenListView, { ref: forwardedRef, ...props });
5143
5173
  } else {
5144
- return /* @__PURE__ */ React34.createElement(ListViewRoot, { ref: forwardedRef, ...props });
5174
+ return /* @__PURE__ */ React35.createElement(ListViewRoot, { ref: forwardedRef, ...props });
5145
5175
  }
5146
5176
  });
5147
5177
  var SimpleListView = memo22(SimpleListViewInner);
@@ -5162,7 +5192,7 @@ var ListView;
5162
5192
  })(ListView || (ListView = {}));
5163
5193
 
5164
5194
  // src/components/Text.tsx
5165
- import React35, { forwardRef as forwardRef14 } from "react";
5195
+ import React36, { forwardRef as forwardRef14 } from "react";
5166
5196
  import styled24 from "styled-components";
5167
5197
  var elements = {
5168
5198
  title: "h1",
@@ -5198,7 +5228,7 @@ var Text = forwardRef14(function Text2({
5198
5228
  ...rest
5199
5229
  }, forwardedRef) {
5200
5230
  const element = as ?? elements[variant] ?? "span";
5201
- return /* @__PURE__ */ React35.createElement(
5231
+ return /* @__PURE__ */ React36.createElement(
5202
5232
  StyledElement,
5203
5233
  {
5204
5234
  ref: forwardedRef,
@@ -5217,27 +5247,27 @@ var Text = forwardRef14(function Text2({
5217
5247
  );
5218
5248
  });
5219
5249
  var Heading1 = forwardRef14(
5220
- (props, ref) => /* @__PURE__ */ React35.createElement(Text, { ref, ...props, variant: "heading1" })
5250
+ (props, ref) => /* @__PURE__ */ React36.createElement(Text, { ref, ...props, variant: "heading1" })
5221
5251
  );
5222
5252
  var Heading2 = forwardRef14(
5223
- (props, ref) => /* @__PURE__ */ React35.createElement(Text, { ref, ...props, variant: "heading2" })
5253
+ (props, ref) => /* @__PURE__ */ React36.createElement(Text, { ref, ...props, variant: "heading2" })
5224
5254
  );
5225
5255
  var Heading3 = forwardRef14(
5226
- (props, ref) => /* @__PURE__ */ React35.createElement(Text, { ref, ...props, variant: "heading3" })
5256
+ (props, ref) => /* @__PURE__ */ React36.createElement(Text, { ref, ...props, variant: "heading3" })
5227
5257
  );
5228
5258
  var Heading4 = forwardRef14(
5229
- (props, ref) => /* @__PURE__ */ React35.createElement(Text, { ref, ...props, variant: "heading4" })
5259
+ (props, ref) => /* @__PURE__ */ React36.createElement(Text, { ref, ...props, variant: "heading4" })
5230
5260
  );
5231
5261
  var Heading5 = forwardRef14(
5232
- (props, ref) => /* @__PURE__ */ React35.createElement(Text, { ref, ...props, variant: "heading5" })
5262
+ (props, ref) => /* @__PURE__ */ React36.createElement(Text, { ref, ...props, variant: "heading5" })
5233
5263
  );
5234
5264
  var Body = forwardRef14(
5235
- (props, ref) => /* @__PURE__ */ React35.createElement(Text, { ref, ...props, variant: "body" })
5265
+ (props, ref) => /* @__PURE__ */ React36.createElement(Text, { ref, ...props, variant: "body" })
5236
5266
  );
5237
5267
  var Small = forwardRef14(
5238
- (props, ref) => /* @__PURE__ */ React35.createElement(Text, { ref, ...props, variant: "small" })
5268
+ (props, ref) => /* @__PURE__ */ React36.createElement(Text, { ref, ...props, variant: "small" })
5239
5269
  );
5240
- var Italic = ({ children }) => /* @__PURE__ */ React35.createElement(
5270
+ var Italic = ({ children }) => /* @__PURE__ */ React36.createElement(
5241
5271
  "span",
5242
5272
  {
5243
5273
  style: {
@@ -5287,7 +5317,7 @@ var CompletionMenu = memo23(
5287
5317
  onHoverIndex,
5288
5318
  listSize
5289
5319
  }, forwardedRef) {
5290
- return /* @__PURE__ */ React36.createElement(
5320
+ return /* @__PURE__ */ React37.createElement(
5291
5321
  ListView.Root,
5292
5322
  {
5293
5323
  ref: forwardedRef,
@@ -5299,13 +5329,13 @@ var CompletionMenu = memo23(
5299
5329
  sectionHeaderVariant: "label",
5300
5330
  renderItem: (item, i) => {
5301
5331
  if (item.type === "sectionHeader") {
5302
- return /* @__PURE__ */ React36.createElement(ListView.Row, { key: item.id, isSectionHeader: true }, item.name);
5332
+ return /* @__PURE__ */ React37.createElement(ListView.Row, { key: item.id, isSectionHeader: true }, item.name);
5303
5333
  }
5304
5334
  const tokens = fuzzyTokenize({
5305
5335
  item: item.name,
5306
5336
  itemScore: item
5307
5337
  });
5308
- return /* @__PURE__ */ React36.createElement(
5338
+ return /* @__PURE__ */ React37.createElement(
5309
5339
  ListView.Row,
5310
5340
  {
5311
5341
  key: item.id,
@@ -5317,8 +5347,8 @@ var CompletionMenu = memo23(
5317
5347
  }
5318
5348
  }
5319
5349
  },
5320
- tokens.map((token, j) => /* @__PURE__ */ React36.createElement(CompletionToken, { key: j, $type: token.type }, token.text)),
5321
- item.icon && /* @__PURE__ */ React36.createElement(React36.Fragment, null, /* @__PURE__ */ React36.createElement(Spacer.Horizontal, null), item.icon)
5350
+ tokens.map((token, j) => /* @__PURE__ */ React37.createElement(CompletionToken, { key: j, $type: token.type }, token.text)),
5351
+ item.icon && /* @__PURE__ */ React37.createElement(React37.Fragment, null, /* @__PURE__ */ React37.createElement(Spacer.Horizontal, null), item.icon)
5322
5352
  );
5323
5353
  }
5324
5354
  }
@@ -5387,7 +5417,7 @@ var InputFieldWithCompletions = memo23(
5387
5417
  updateState({ filter: initialValue });
5388
5418
  }, [initialValue, updateState]);
5389
5419
  const { filter, selectedIndex } = state;
5390
- const listRef = React36.useRef(null);
5420
+ const listRef = React37.useRef(null);
5391
5421
  const filteredItems = useMemo19(
5392
5422
  () => filterWithGroupedSections(items, filter),
5393
5423
  [items, filter]
@@ -5523,14 +5553,14 @@ var InputFieldWithCompletions = memo23(
5523
5553
  ref.current?.setSelectionRange(0, ref.current.value.length);
5524
5554
  }
5525
5555
  }));
5526
- return /* @__PURE__ */ React36.createElement(
5556
+ return /* @__PURE__ */ React37.createElement(
5527
5557
  InputField.Root,
5528
5558
  {
5529
5559
  size: size2,
5530
5560
  labelSize: 16,
5531
5561
  renderPopoverContent: ({ width }) => {
5532
5562
  const listSize = { width, height };
5533
- return /* @__PURE__ */ React36.createElement(Stack.V, { flex: `0 0 ${height}px`, display }, filteredItems.length > 0 ? /* @__PURE__ */ React36.createElement(
5563
+ return /* @__PURE__ */ React37.createElement(Stack.V, { flex: `0 0 ${height}px`, display }, filteredItems.length > 0 ? /* @__PURE__ */ React37.createElement(
5534
5564
  CompletionMenu,
5535
5565
  {
5536
5566
  ref: listRef,
@@ -5540,7 +5570,7 @@ var InputFieldWithCompletions = memo23(
5540
5570
  onHoverIndex: handleIndexChange,
5541
5571
  listSize
5542
5572
  }
5543
- ) : /* @__PURE__ */ React36.createElement(
5573
+ ) : /* @__PURE__ */ React37.createElement(
5544
5574
  Stack.V,
5545
5575
  {
5546
5576
  height: "100px",
@@ -5548,11 +5578,11 @@ var InputFieldWithCompletions = memo23(
5548
5578
  alignItems: "center",
5549
5579
  justifyContent: "center"
5550
5580
  },
5551
- /* @__PURE__ */ React36.createElement(Small, { color: "textDisabled" }, loading ? "Loading" : "No results")
5581
+ /* @__PURE__ */ React37.createElement(Small, { color: "textDisabled" }, loading ? "Loading" : "No results")
5552
5582
  ));
5553
5583
  }
5554
5584
  },
5555
- /* @__PURE__ */ React36.createElement(
5585
+ /* @__PURE__ */ React37.createElement(
5556
5586
  InputField.Input,
5557
5587
  {
5558
5588
  ref,
@@ -5576,9 +5606,9 @@ var InputFieldWithCompletions = memo23(
5576
5606
  "aria-controls": "component-listbox"
5577
5607
  }
5578
5608
  ),
5579
- filter && typeaheadValue && typeaheadValue.startsWith(filter) && /* @__PURE__ */ React36.createElement(InputField.Typeahead, { value: typeaheadValue }),
5609
+ filter && typeaheadValue && typeaheadValue.startsWith(filter) && /* @__PURE__ */ React37.createElement(InputField.Typeahead, { value: typeaheadValue }),
5580
5610
  (!isFocused || !hideChildrenWhenFocused) && children,
5581
- loading && isFocused && /* @__PURE__ */ React36.createElement(InputField.Label, null, /* @__PURE__ */ React36.createElement(ActivityIndicator, null))
5611
+ loading && isFocused && /* @__PURE__ */ React37.createElement(InputField.Label, null, /* @__PURE__ */ React37.createElement(ActivityIndicator, null))
5582
5612
  );
5583
5613
  })
5584
5614
  );
@@ -5600,7 +5630,7 @@ function getNextIndex(items, currentIndex, direction, isDisabled) {
5600
5630
  }
5601
5631
 
5602
5632
  // src/components/InspectorContainer.tsx
5603
- import React37, { forwardRef as forwardRef16, memo as memo24 } from "react";
5633
+ import React38, { forwardRef as forwardRef16, memo as memo24 } from "react";
5604
5634
  var InspectorContainer = memo24(
5605
5635
  forwardRef16(function InspectorContainer2({
5606
5636
  header,
@@ -5612,7 +5642,7 @@ var InspectorContainer = memo24(
5612
5642
  style: style3
5613
5643
  }, forwardedRef) {
5614
5644
  const theme = useDesignSystemTheme();
5615
- return /* @__PURE__ */ React37.createElement(
5645
+ return /* @__PURE__ */ React38.createElement(
5616
5646
  "div",
5617
5647
  {
5618
5648
  ref: forwardedRef,
@@ -5627,13 +5657,13 @@ var InspectorContainer = memo24(
5627
5657
  }
5628
5658
  },
5629
5659
  header,
5630
- children ? /* @__PURE__ */ React37.createElement(ScrollArea, null, /* @__PURE__ */ React37.createElement(Stack.V, { position: "relative" }, showDividers ? withSeparatorElements(children, /* @__PURE__ */ React37.createElement(Divider, null)) : children)) : fallback ? /* @__PURE__ */ React37.createElement(Stack.V, { position: "relative", height: "100%" }, fallback) : null
5660
+ children ? /* @__PURE__ */ React38.createElement(ScrollArea, null, /* @__PURE__ */ React38.createElement(Stack.V, { position: "relative" }, showDividers ? withSeparatorElements(children, /* @__PURE__ */ React38.createElement(Divider, null)) : children)) : fallback ? /* @__PURE__ */ React38.createElement(Stack.V, { position: "relative", height: "100%" }, fallback) : null
5631
5661
  );
5632
5662
  })
5633
5663
  );
5634
5664
 
5635
5665
  // src/components/Label.tsx
5636
- import React38, { memo as memo25 } from "react";
5666
+ import React39, { memo as memo25 } from "react";
5637
5667
  import styled26 from "styled-components";
5638
5668
  var LabelLabel = styled26.label(
5639
5669
  ({ theme, $selected }) => ({
@@ -5662,7 +5692,7 @@ var LabelContainer2 = styled26.span(({ theme }) => ({
5662
5692
  alignItems: "center"
5663
5693
  }));
5664
5694
  function LabelRoot({ label, children }) {
5665
- return /* @__PURE__ */ React38.createElement(LabelContainer2, null, children, label && /* @__PURE__ */ React38.createElement(React38.Fragment, null, /* @__PURE__ */ React38.createElement(Spacer.Vertical, { size: 2 }), /* @__PURE__ */ React38.createElement(LabelLabel, null, label)));
5695
+ return /* @__PURE__ */ React39.createElement(LabelContainer2, null, children, label && /* @__PURE__ */ React39.createElement(React39.Fragment, null, /* @__PURE__ */ React39.createElement(Spacer.Vertical, { size: 2 }), /* @__PURE__ */ React39.createElement(LabelLabel, null, label)));
5666
5696
  }
5667
5697
  var Label;
5668
5698
  ((_Label) => {
@@ -5672,7 +5702,7 @@ var Label;
5672
5702
 
5673
5703
  // src/components/LabeledElementView.tsx
5674
5704
  import * as kiwi from "kiwi.js";
5675
- import React39, {
5705
+ import React40, {
5676
5706
  Children as Children5,
5677
5707
  createRef,
5678
5708
  Fragment,
@@ -5717,7 +5747,7 @@ var LabeledElementView = memo26(function LabeledElementView2({
5717
5747
  );
5718
5748
  }, [serializedIds]);
5719
5749
  const labelElements = useMemo20(() => {
5720
- return serializedIds.split(",").map((id, index) => /* @__PURE__ */ React39.createElement(
5750
+ return serializedIds.split(",").map((id, index) => /* @__PURE__ */ React40.createElement(
5721
5751
  "span",
5722
5752
  {
5723
5753
  key: id,
@@ -5795,13 +5825,13 @@ var LabeledElementView = memo26(function LabeledElementView2({
5795
5825
  `${Math.max(...heights)}px`
5796
5826
  );
5797
5827
  }, [refs, labelElements]);
5798
- return /* @__PURE__ */ React39.createElement(Container4, { ref: containerRef }, /* @__PURE__ */ React39.createElement(Tools, null, children), /* @__PURE__ */ React39.createElement(Labels, null, labelElements));
5828
+ return /* @__PURE__ */ React40.createElement(Container4, { ref: containerRef }, /* @__PURE__ */ React40.createElement(Tools, null, children), /* @__PURE__ */ React40.createElement(Labels, null, labelElements));
5799
5829
  });
5800
5830
 
5801
5831
  // src/components/Progress.tsx
5802
5832
  import { clamp } from "@noya-app/noya-utils";
5803
5833
  import * as ProgressPrimitive from "@radix-ui/react-progress";
5804
- import React40 from "react";
5834
+ import React41 from "react";
5805
5835
  import styled28 from "styled-components";
5806
5836
  function Progress({
5807
5837
  value,
@@ -5811,7 +5841,7 @@ function Progress({
5811
5841
  variant = "normal"
5812
5842
  }) {
5813
5843
  const clampedValue = clamp(value, 0, 100);
5814
- return /* @__PURE__ */ React40.createElement(ProgressRoot, { value: clampedValue, style: { width, flex, height } }, /* @__PURE__ */ React40.createElement(
5844
+ return /* @__PURE__ */ React41.createElement(ProgressRoot, { value: clampedValue, style: { width, flex, height } }, /* @__PURE__ */ React41.createElement(
5815
5845
  ProgressIndicator,
5816
5846
  {
5817
5847
  variant,
@@ -5836,7 +5866,7 @@ var ProgressIndicator = styled28(ProgressPrimitive.Indicator)(({ theme, variant
5836
5866
 
5837
5867
  // src/components/RadioGroup.tsx
5838
5868
  import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
5839
- import React41, {
5869
+ import React42, {
5840
5870
  createContext as createContext10,
5841
5871
  forwardRef as forwardRef17,
5842
5872
  memo as memo27,
@@ -5898,7 +5928,7 @@ var StyledItem = styled29(ToggleGroupPrimitive.Item).withConfig({
5898
5928
  }));
5899
5929
  var ToggleGroupItem = forwardRef17(function ToggleGroupItem2({ value, tooltip, children, disabled = false }, forwardedRef) {
5900
5930
  const { colorScheme } = useContext10(RadioGroupContext);
5901
- const itemElement = /* @__PURE__ */ React41.createElement(
5931
+ const itemElement = /* @__PURE__ */ React42.createElement(
5902
5932
  StyledItem,
5903
5933
  {
5904
5934
  ref: forwardedRef,
@@ -5908,7 +5938,7 @@ var ToggleGroupItem = forwardRef17(function ToggleGroupItem2({ value, tooltip, c
5908
5938
  },
5909
5939
  children
5910
5940
  );
5911
- return tooltip ? /* @__PURE__ */ React41.createElement(Tooltip, { content: tooltip }, itemElement) : itemElement;
5941
+ return tooltip ? /* @__PURE__ */ React42.createElement(Tooltip, { content: tooltip }, itemElement) : itemElement;
5912
5942
  });
5913
5943
  var RadioGroupContext = createContext10({
5914
5944
  colorScheme: "primary"
@@ -5930,7 +5960,7 @@ function ToggleGroupRoot({
5930
5960
  },
5931
5961
  [allowEmpty, onValueChange]
5932
5962
  );
5933
- return /* @__PURE__ */ React41.createElement(RadioGroupContext.Provider, { value: contextValue }, /* @__PURE__ */ React41.createElement(
5963
+ return /* @__PURE__ */ React42.createElement(RadioGroupContext.Provider, { value: contextValue }, /* @__PURE__ */ React42.createElement(
5934
5964
  StyledRoot,
5935
5965
  {
5936
5966
  id,
@@ -5950,7 +5980,7 @@ var RadioGroup;
5950
5980
 
5951
5981
  // src/components/Select.tsx
5952
5982
  import { memoize } from "@noya-app/noya-utils";
5953
- import React42, {
5983
+ import React43, {
5954
5984
  createContext as createContext11,
5955
5985
  memo as memo28,
5956
5986
  useCallback as useCallback23,
@@ -5973,7 +6003,7 @@ var SelectOption = memo28(function SelectOption2({
5973
6003
  addListener(value, onSelect);
5974
6004
  return () => removeListener(value);
5975
6005
  }, [addListener, onSelect, removeListener, value]);
5976
- return /* @__PURE__ */ React42.createElement("option", { value }, title ?? value);
6006
+ return /* @__PURE__ */ React43.createElement("option", { value }, title ?? value);
5977
6007
  });
5978
6008
  var createChevronSVGString = memoize(
5979
6009
  (color) => `
@@ -6008,7 +6038,7 @@ var SelectElement = styled30.select(
6008
6038
  borderRadius: "4px",
6009
6039
  paddingTop: "4px",
6010
6040
  paddingBottom: "4px",
6011
- paddingLeft: "8px",
6041
+ paddingLeft: "6px",
6012
6042
  paddingRight: "23px",
6013
6043
  background: [
6014
6044
  `calc(100% - 6px) / 15px url("data:image/svg+xml;utf8,${createChevronSVGString(
@@ -6047,7 +6077,7 @@ var Select = memo28(function Select2({
6047
6077
  const onChange = "options" in rest ? rest.onChange : void 0;
6048
6078
  const children = "options" in rest ? void 0 : rest.children;
6049
6079
  const optionElements = useMemo22(
6050
- () => options ? options.map((option, index) => /* @__PURE__ */ React42.createElement(
6080
+ () => options ? options.map((option, index) => /* @__PURE__ */ React43.createElement(
6051
6081
  SelectOption,
6052
6082
  {
6053
6083
  key: option,
@@ -6066,7 +6096,7 @@ var Select = memo28(function Select2({
6066
6096
  }),
6067
6097
  []
6068
6098
  );
6069
- return /* @__PURE__ */ React42.createElement(SelectContext.Provider, { value: contextValue }, /* @__PURE__ */ React42.createElement(SelectContainer, { $flex: flex }, /* @__PURE__ */ React42.createElement(
6099
+ return /* @__PURE__ */ React43.createElement(SelectContext.Provider, { value: contextValue }, /* @__PURE__ */ React43.createElement(SelectContainer, { $flex: flex }, /* @__PURE__ */ React43.createElement(
6070
6100
  SelectElement,
6071
6101
  {
6072
6102
  id,
@@ -6079,13 +6109,13 @@ var Select = memo28(function Select2({
6079
6109
  onPointerDown: (event) => event.stopPropagation()
6080
6110
  },
6081
6111
  optionElements
6082
- )), label && /* @__PURE__ */ React42.createElement(SelectLabel, { htmlFor: id }, label));
6112
+ )), label && /* @__PURE__ */ React43.createElement(SelectLabel, { htmlFor: id }, label));
6083
6113
  });
6084
6114
 
6085
6115
  // src/components/SelectMenu.tsx
6086
6116
  import { DropdownChevronIcon } from "@noya-app/noya-icons";
6087
6117
  import * as Select3 from "@radix-ui/react-select";
6088
- import React43, { memo as memo29 } from "react";
6118
+ import React44, { memo as memo29 } from "react";
6089
6119
  import { styled as styled31 } from "styled-components";
6090
6120
  var SelectMenu = memo29(function SelectMenu2({
6091
6121
  id,
@@ -6100,23 +6130,23 @@ var SelectMenu = memo29(function SelectMenu2({
6100
6130
  (item) => typeof item !== "string" && item.value === value
6101
6131
  );
6102
6132
  const icon = selectedItem?.icon;
6103
- return /* @__PURE__ */ React43.createElement(Select3.Root, { value, onValueChange: onSelect }, /* @__PURE__ */ React43.createElement(Select3.SelectTrigger, { asChild: true }, /* @__PURE__ */ React43.createElement(Button, { id, style: style3, className }, icon && /* @__PURE__ */ React43.createElement(React43.Fragment, null, icon, /* @__PURE__ */ React43.createElement(Spacer.Horizontal, { size: 8 })), /* @__PURE__ */ React43.createElement(Select3.Value, { placeholder }), /* @__PURE__ */ React43.createElement(Spacer.Horizontal, null), /* @__PURE__ */ React43.createElement(DropdownChevronIcon, null))), /* @__PURE__ */ React43.createElement(Select3.Portal, null, /* @__PURE__ */ React43.createElement(SelectContent, null, /* @__PURE__ */ React43.createElement(SelectViewport, null, menuItems.map((menuItem) => {
6133
+ return /* @__PURE__ */ React44.createElement(Select3.Root, { value, onValueChange: onSelect }, /* @__PURE__ */ React44.createElement(Select3.SelectTrigger, { asChild: true }, /* @__PURE__ */ React44.createElement(Button, { id, style: style3, className }, icon && /* @__PURE__ */ React44.createElement(React44.Fragment, null, renderIcon(icon), /* @__PURE__ */ React44.createElement(Spacer.Horizontal, { size: 8 })), /* @__PURE__ */ React44.createElement(Select3.Value, { placeholder }), /* @__PURE__ */ React44.createElement(Spacer.Horizontal, null), /* @__PURE__ */ React44.createElement(DropdownChevronIcon, null))), /* @__PURE__ */ React44.createElement(Select3.Portal, null, /* @__PURE__ */ React44.createElement(SelectContent, null, /* @__PURE__ */ React44.createElement(SelectViewport, null, menuItems.map((menuItem) => {
6104
6134
  if (typeof menuItem === "string") {
6105
- return /* @__PURE__ */ React43.createElement(StyledSeparator, null);
6135
+ return /* @__PURE__ */ React44.createElement(StyledSeparator, null);
6106
6136
  }
6107
6137
  const value2 = menuItem.value ?? "";
6108
- return /* @__PURE__ */ React43.createElement(SelectItem, { key: value2, value: value2, icon: menuItem.icon }, menuItem.title ?? value2);
6138
+ return /* @__PURE__ */ React44.createElement(SelectItem, { key: value2, value: value2, icon: menuItem.icon }, menuItem.title ?? value2);
6109
6139
  })))));
6110
6140
  });
6111
6141
  var SelectContent = styled31(Select3.Content)(styles.contentStyle);
6112
6142
  var SelectViewport = styled31(Select3.Viewport)({});
6113
- var SelectItem = React43.forwardRef(
6143
+ var SelectItem = React44.forwardRef(
6114
6144
  ({
6115
6145
  children,
6116
6146
  icon,
6117
6147
  ...props
6118
6148
  }, forwardedRef) => {
6119
- return /* @__PURE__ */ React43.createElement(StyledItem2, { ...props, ref: forwardedRef }, icon && /* @__PURE__ */ React43.createElement(React43.Fragment, null, icon, /* @__PURE__ */ React43.createElement(Spacer.Horizontal, { size: 8 })), /* @__PURE__ */ React43.createElement(Select3.ItemText, null, children));
6149
+ return /* @__PURE__ */ React44.createElement(StyledItem2, { ...props, ref: forwardedRef }, icon && /* @__PURE__ */ React44.createElement(React44.Fragment, null, renderIcon(icon), /* @__PURE__ */ React44.createElement(Spacer.Horizontal, { size: 8 })), /* @__PURE__ */ React44.createElement(Select3.ItemText, null, children));
6120
6150
  }
6121
6151
  );
6122
6152
  var StyledItem2 = styled31(Select3.Item)(styles.itemStyle);
@@ -6124,7 +6154,7 @@ var StyledSeparator = styled31(Select3.Separator)(styles.separatorStyle);
6124
6154
 
6125
6155
  // src/components/Slider.tsx
6126
6156
  import * as RadixSlider from "@radix-ui/react-slider";
6127
- import React44, { useCallback as useCallback24, useMemo as useMemo23 } from "react";
6157
+ import React45, { useCallback as useCallback24, useMemo as useMemo23 } from "react";
6128
6158
  import styled32 from "styled-components";
6129
6159
  var StyledSlider = styled32(RadixSlider.Root)({
6130
6160
  flex: "1",
@@ -6175,7 +6205,7 @@ var Slider = function Slider2({
6175
6205
  },
6176
6206
  [onValueChange]
6177
6207
  );
6178
- return /* @__PURE__ */ React44.createElement(
6208
+ return /* @__PURE__ */ React45.createElement(
6179
6209
  StyledSlider,
6180
6210
  {
6181
6211
  min,
@@ -6184,14 +6214,14 @@ var Slider = function Slider2({
6184
6214
  value: arrayValue,
6185
6215
  onValueChange: handleValueChange
6186
6216
  },
6187
- /* @__PURE__ */ React44.createElement(StyledTrack, null, /* @__PURE__ */ React44.createElement(StyledRange, null)),
6188
- /* @__PURE__ */ React44.createElement(StyledThumb2, null)
6217
+ /* @__PURE__ */ React45.createElement(StyledTrack, null, /* @__PURE__ */ React45.createElement(StyledRange, null)),
6218
+ /* @__PURE__ */ React45.createElement(StyledThumb2, null)
6189
6219
  );
6190
6220
  };
6191
6221
 
6192
6222
  // src/components/Switch.tsx
6193
6223
  import * as SwitchPrimitive from "@radix-ui/react-switch";
6194
- import React45 from "react";
6224
+ import React46 from "react";
6195
6225
  import styled33 from "styled-components";
6196
6226
  var SwitchRoot = styled33(SwitchPrimitive.Root)(({ theme, $colorScheme }) => ({
6197
6227
  all: "unset",
@@ -6226,7 +6256,7 @@ var Switch = function Switch2({
6226
6256
  onChange,
6227
6257
  colorScheme = "normal"
6228
6258
  }) {
6229
- return /* @__PURE__ */ React45.createElement(
6259
+ return /* @__PURE__ */ React46.createElement(
6230
6260
  SwitchRoot,
6231
6261
  {
6232
6262
  $colorScheme: colorScheme,
@@ -6235,12 +6265,12 @@ var Switch = function Switch2({
6235
6265
  onChange(newValue);
6236
6266
  }
6237
6267
  },
6238
- /* @__PURE__ */ React45.createElement(SwitchThumb, null)
6268
+ /* @__PURE__ */ React46.createElement(SwitchThumb, null)
6239
6269
  );
6240
6270
  };
6241
6271
 
6242
6272
  // src/components/TreeView.tsx
6243
- import React46, {
6273
+ import React47, {
6244
6274
  forwardRef as forwardRef18,
6245
6275
  memo as memo30,
6246
6276
  useCallback as useCallback25,
@@ -6261,14 +6291,14 @@ var TreeRow = forwardRef18(function TreeRow2({
6261
6291
  },
6262
6292
  [onClickChevron]
6263
6293
  );
6264
- return /* @__PURE__ */ React46.createElement(ListView.Row, { ref: forwardedRef, ...rest }, expandable && /* @__PURE__ */ React46.createElement(React46.Fragment, null, expanded === void 0 ? /* @__PURE__ */ React46.createElement(Spacer.Horizontal, { size: 19 }) : /* @__PURE__ */ React46.createElement(
6294
+ return /* @__PURE__ */ React47.createElement(ListView.Row, { ref: forwardedRef, ...rest }, expandable && /* @__PURE__ */ React47.createElement(React47.Fragment, null, expanded === void 0 ? /* @__PURE__ */ React47.createElement(Spacer.Horizontal, { size: 19 }) : /* @__PURE__ */ React47.createElement(
6265
6295
  IconButton,
6266
6296
  {
6267
6297
  iconName: expanded ? "ChevronDownIcon2" : "ChevronRightIcon2",
6268
6298
  onClick: handleClickChevron,
6269
6299
  selected: rest.selected
6270
6300
  }
6271
- ), /* @__PURE__ */ React46.createElement(Spacer.Horizontal, { size: 6 })), icon && /* @__PURE__ */ React46.createElement(React46.Fragment, null, icon, /* @__PURE__ */ React46.createElement(Spacer.Horizontal, { size: 10 })), children);
6301
+ ), /* @__PURE__ */ React47.createElement(Spacer.Horizontal, { size: 6 })), icon && /* @__PURE__ */ React47.createElement(React47.Fragment, null, renderIcon(icon), /* @__PURE__ */ React47.createElement(Spacer.Horizontal, { size: 10 })), children);
6272
6302
  });
6273
6303
  var TreeView;
6274
6304
  ((TreeView2) => {
@@ -6280,7 +6310,7 @@ var TreeView;
6280
6310
 
6281
6311
  // src/components/WorkspaceLayout.tsx
6282
6312
  import { useKeyboardShortcuts as useKeyboardShortcuts3 } from "@noya-app/noya-keymap";
6283
- import React48, { forwardRef as forwardRef19, useImperativeHandle as useImperativeHandle4, useRef as useRef20 } from "react";
6313
+ import React49, { forwardRef as forwardRef19, useImperativeHandle as useImperativeHandle4, useRef as useRef20 } from "react";
6284
6314
  import {
6285
6315
  Panel,
6286
6316
  PanelGroup,
@@ -6508,7 +6538,7 @@ var WorkspaceLayout = forwardRef19(function WorkspaceLayout2({
6508
6538
  }
6509
6539
  });
6510
6540
  const centerPanelPercentage = 100 - (leftPanelContent ? leftSidebarPercentage : 0) - (rightPanelContent ? rightSidebarPercentage : 0);
6511
- return /* @__PURE__ */ React48.createElement(
6541
+ return /* @__PURE__ */ React49.createElement(
6512
6542
  "div",
6513
6543
  {
6514
6544
  id,
@@ -6520,7 +6550,7 @@ var WorkspaceLayout = forwardRef19(function WorkspaceLayout2({
6520
6550
  ...style3
6521
6551
  }
6522
6552
  },
6523
- /* @__PURE__ */ React48.createElement(
6553
+ /* @__PURE__ */ React49.createElement(
6524
6554
  PanelGroup,
6525
6555
  {
6526
6556
  ref: panelGroupRef,
@@ -6529,7 +6559,7 @@ var WorkspaceLayout = forwardRef19(function WorkspaceLayout2({
6529
6559
  autoSaveId: autoSavePrefix ? `${autoSavePrefix}--${EDITOR_PANEL_GROUP_ID}` : void 0,
6530
6560
  style: { flex: "1" }
6531
6561
  },
6532
- hasLeftSidebar && /* @__PURE__ */ React48.createElement(React48.Fragment, null, /* @__PURE__ */ React48.createElement(
6562
+ hasLeftSidebar && /* @__PURE__ */ React49.createElement(React49.Fragment, null, /* @__PURE__ */ React49.createElement(
6533
6563
  Panel,
6534
6564
  {
6535
6565
  id: LEFT_SIDEBAR_ID,
@@ -6546,7 +6576,7 @@ var WorkspaceLayout = forwardRef19(function WorkspaceLayout2({
6546
6576
  }
6547
6577
  },
6548
6578
  leftPanelContent
6549
- ), /* @__PURE__ */ React48.createElement(
6579
+ ), /* @__PURE__ */ React49.createElement(
6550
6580
  PanelResizeHandle,
6551
6581
  {
6552
6582
  style: {
@@ -6557,7 +6587,7 @@ var WorkspaceLayout = forwardRef19(function WorkspaceLayout2({
6557
6587
  }
6558
6588
  }
6559
6589
  )),
6560
- /* @__PURE__ */ React48.createElement(
6590
+ /* @__PURE__ */ React49.createElement(
6561
6591
  Panel,
6562
6592
  {
6563
6593
  id: CONTENT_AREA_ID,
@@ -6572,7 +6602,7 @@ var WorkspaceLayout = forwardRef19(function WorkspaceLayout2({
6572
6602
  },
6573
6603
  centerPanelContent
6574
6604
  ),
6575
- hasRightSidebar && /* @__PURE__ */ React48.createElement(React48.Fragment, null, /* @__PURE__ */ React48.createElement(
6605
+ hasRightSidebar && /* @__PURE__ */ React49.createElement(React49.Fragment, null, /* @__PURE__ */ React49.createElement(
6576
6606
  PanelResizeHandle,
6577
6607
  {
6578
6608
  style: {
@@ -6582,7 +6612,7 @@ var WorkspaceLayout = forwardRef19(function WorkspaceLayout2({
6582
6612
  backgroundColor: theme.colors.divider
6583
6613
  }
6584
6614
  }
6585
- ), /* @__PURE__ */ React48.createElement(
6615
+ ), /* @__PURE__ */ React49.createElement(
6586
6616
  Panel,
6587
6617
  {
6588
6618
  id: RIGHT_SIDEBAR_ID,
@@ -6645,7 +6675,7 @@ var SUPPORTED_CANVAS_UPLOAD_TYPES = [
6645
6675
 
6646
6676
  // src/components/ArrayController.tsx
6647
6677
  import { range as range2 } from "@noya-app/noya-utils";
6648
- import React50, { memo as memo32, useCallback as useCallback26, useMemo as useMemo24 } from "react";
6678
+ import React51, { memo as memo32, useCallback as useCallback26, useMemo as useMemo24 } from "react";
6649
6679
  import styled35, { useTheme as useTheme5 } from "styled-components";
6650
6680
 
6651
6681
  // src/components/InspectorPrimitives.tsx
@@ -6664,7 +6694,7 @@ __export(InspectorPrimitives_exports, {
6664
6694
  Title: () => Title3,
6665
6695
  VerticalSeparator: () => VerticalSeparator
6666
6696
  });
6667
- import React49, { memo as memo31 } from "react";
6697
+ import React50, { memo as memo31 } from "react";
6668
6698
  import styled34, { useTheme as useTheme4 } from "styled-components";
6669
6699
  var Section = styled34.div(({ theme, $padding = "10px", $gap }) => ({
6670
6700
  flex: "0 0 auto",
@@ -6711,8 +6741,8 @@ var Checkbox = styled34.input(({ theme }) => ({
6711
6741
  var Text3 = styled34.span(({ theme }) => ({
6712
6742
  ...theme.textStyles.small
6713
6743
  }));
6714
- var VerticalSeparator = () => /* @__PURE__ */ React49.createElement(Spacer.Vertical, { size: useTheme4().sizes.inspector.verticalSeparator });
6715
- var HorizontalSeparator = () => /* @__PURE__ */ React49.createElement(Spacer.Horizontal, { size: useTheme4().sizes.inspector.horizontalSeparator });
6744
+ var VerticalSeparator = () => /* @__PURE__ */ React50.createElement(Spacer.Vertical, { size: useTheme4().sizes.inspector.verticalSeparator });
6745
+ var HorizontalSeparator = () => /* @__PURE__ */ React50.createElement(Spacer.Horizontal, { size: useTheme4().sizes.inspector.horizontalSeparator });
6716
6746
  var SliderRowLabel = styled34.span(({ theme }) => ({
6717
6747
  ...theme.textStyles.small,
6718
6748
  color: theme.colors.textMuted,
@@ -6740,13 +6770,13 @@ var LabeledRow = memo31(function LabeledRow2({
6740
6770
  gap,
6741
6771
  right
6742
6772
  }) {
6743
- return /* @__PURE__ */ React49.createElement(Row2, { id }, /* @__PURE__ */ React49.createElement(Column, null, /* @__PURE__ */ React49.createElement(RowLabel, { $textStyle: labelTextStyle }, label, right && /* @__PURE__ */ React49.createElement(Spacer.Horizontal, null), right), /* @__PURE__ */ React49.createElement(Row2, { $gap: gap }, children)));
6773
+ return /* @__PURE__ */ React50.createElement(Row2, { id }, /* @__PURE__ */ React50.createElement(Column, null, /* @__PURE__ */ React50.createElement(RowLabel, { $textStyle: labelTextStyle }, label, right && /* @__PURE__ */ React50.createElement(Spacer.Horizontal, null), right), /* @__PURE__ */ React50.createElement(Row2, { $gap: gap }, children)));
6744
6774
  });
6745
6775
  var LabeledSliderRow = memo31(function LabeledRow3({
6746
6776
  children,
6747
6777
  label
6748
6778
  }) {
6749
- return /* @__PURE__ */ React49.createElement(Row2, null, /* @__PURE__ */ React49.createElement(Column, null, /* @__PURE__ */ React49.createElement(SliderRowLabel, null, label), /* @__PURE__ */ React49.createElement(Row2, null, children)));
6779
+ return /* @__PURE__ */ React50.createElement(Row2, null, /* @__PURE__ */ React50.createElement(Column, null, /* @__PURE__ */ React50.createElement(SliderRowLabel, null, label), /* @__PURE__ */ React50.createElement(Row2, null, children)));
6750
6780
  });
6751
6781
 
6752
6782
  // src/components/ArrayController.tsx
@@ -6799,11 +6829,11 @@ var ArrayController = memo32(function ArrayController2({
6799
6829
  [onMoveItem, reversed]
6800
6830
  );
6801
6831
  const renderRow = (index) => {
6802
- return /* @__PURE__ */ React50.createElement(ElementRow, { key: keys[index] }, renderItem({ item: items[index], index }));
6832
+ return /* @__PURE__ */ React51.createElement(ElementRow, { key: keys[index] }, renderItem({ item: items[index], index }));
6803
6833
  };
6804
- return /* @__PURE__ */ React50.createElement(Section, { id, $padding: padding, $gap: "2px" }, /* @__PURE__ */ React50.createElement(SectionHeader, null, /* @__PURE__ */ React50.createElement(Button, { variant: "none", onClick: onClickPlus }, /* @__PURE__ */ React50.createElement(Title3, null, title)), /* @__PURE__ */ React50.createElement(Spacer.Horizontal, null), withSeparatorElements(
6834
+ return /* @__PURE__ */ React51.createElement(Section, { id, $padding: padding, $gap: "2px" }, /* @__PURE__ */ React51.createElement(SectionHeader, null, /* @__PURE__ */ React51.createElement(Button, { variant: "none", onClick: onClickPlus }, /* @__PURE__ */ React51.createElement(Title3, null, title)), /* @__PURE__ */ React51.createElement(Spacer.Horizontal, null), withSeparatorElements(
6805
6835
  [
6806
- onClickTrash && /* @__PURE__ */ React50.createElement(
6836
+ onClickTrash && /* @__PURE__ */ React51.createElement(
6807
6837
  IconButton,
6808
6838
  {
6809
6839
  id: `${id}-trash`,
@@ -6812,7 +6842,7 @@ var ArrayController = memo32(function ArrayController2({
6812
6842
  onClick: onClickTrash
6813
6843
  }
6814
6844
  ),
6815
- onClickExpand && /* @__PURE__ */ React50.createElement(
6845
+ onClickExpand && /* @__PURE__ */ React51.createElement(
6816
6846
  IconButton,
6817
6847
  {
6818
6848
  id: `${id}-gear`,
@@ -6821,7 +6851,7 @@ var ArrayController = memo32(function ArrayController2({
6821
6851
  onClick: onClickExpand
6822
6852
  }
6823
6853
  ),
6824
- onClickPlus && /* @__PURE__ */ React50.createElement(
6854
+ onClickPlus && /* @__PURE__ */ React51.createElement(
6825
6855
  IconButton,
6826
6856
  {
6827
6857
  id: `${id}-add`,
@@ -6831,15 +6861,15 @@ var ArrayController = memo32(function ArrayController2({
6831
6861
  }
6832
6862
  )
6833
6863
  ],
6834
- /* @__PURE__ */ React50.createElement(Spacer.Horizontal, { size: 8 })
6835
- )), /* @__PURE__ */ React50.createElement(Stack.V, { gap: "4px" }, sortable ? /* @__PURE__ */ React50.createElement(
6864
+ /* @__PURE__ */ React51.createElement(Spacer.Horizontal, { size: 8 })
6865
+ )), /* @__PURE__ */ React51.createElement(Stack.V, { gap: "4px" }, sortable ? /* @__PURE__ */ React51.createElement(
6836
6866
  Sortable.Root,
6837
6867
  {
6838
6868
  keys,
6839
6869
  renderOverlay: renderRow,
6840
6870
  onMoveItem: handleMoveItem
6841
6871
  },
6842
- indexes.map((index) => /* @__PURE__ */ React50.createElement(Sortable.Item, { id: keys[index], key: keys[index] }, ({ relativeDropPosition, ...sortableProps }) => /* @__PURE__ */ React50.createElement(ItemContainer2, { ...sortableProps }, renderRow(index), relativeDropPosition && /* @__PURE__ */ React50.createElement(
6872
+ indexes.map((index) => /* @__PURE__ */ React51.createElement(Sortable.Item, { id: keys[index], key: keys[index] }, ({ relativeDropPosition, ...sortableProps }) => /* @__PURE__ */ React51.createElement(ItemContainer2, { ...sortableProps }, renderRow(index), relativeDropPosition && /* @__PURE__ */ React51.createElement(
6843
6873
  ListView.DragIndicator,
6844
6874
  {
6845
6875
  $gap: 0,
@@ -6853,7 +6883,7 @@ var ArrayController = memo32(function ArrayController2({
6853
6883
 
6854
6884
  // src/components/DimensionInput.tsx
6855
6885
  import { round } from "@noya-app/noya-utils";
6856
- import React51, { memo as memo33, useCallback as useCallback27 } from "react";
6886
+ import React52, { memo as memo33, useCallback as useCallback27 } from "react";
6857
6887
  function getNewValue(value, mode, delta) {
6858
6888
  return delta === void 0 ? value : mode === "replace" ? delta : value + delta;
6859
6889
  }
@@ -6875,7 +6905,7 @@ var DimensionInput = memo33(function DimensionInput2({
6875
6905
  (value2) => onSetValue(value2, "replace"),
6876
6906
  [onSetValue]
6877
6907
  );
6878
- return /* @__PURE__ */ React51.createElement(InputField.Root, { id, width: size2 }, /* @__PURE__ */ React51.createElement(
6908
+ return /* @__PURE__ */ React52.createElement(InputField.Root, { id, width: size2 }, /* @__PURE__ */ React52.createElement(
6879
6909
  InputField.NumberInput,
6880
6910
  {
6881
6911
  value: value === void 0 ? value : round(value, 2),
@@ -6884,7 +6914,7 @@ var DimensionInput = memo33(function DimensionInput2({
6884
6914
  disabled,
6885
6915
  ...trigger === "change" ? { onChange: handleSetValue } : { onSubmit: handleSetValue }
6886
6916
  }
6887
- ), label && /* @__PURE__ */ React51.createElement(InputField.Label, null, label));
6917
+ ), label && /* @__PURE__ */ React52.createElement(InputField.Label, null, label));
6888
6918
  });
6889
6919
  export {
6890
6920
  ActivityIndicator,