@noya-app/noya-designsystem 0.1.23 → 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
@@ -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,
@@ -2155,9 +2167,9 @@ function InputFieldRoot({
2155
2167
  const hasLabel = childrenArray.some(
2156
2168
  (child) => isValidElement2(child) && child.type === InputFieldLabel
2157
2169
  );
2158
- const [isFocused, setIsFocused] = React17.useState(false);
2159
- const [measuredLabelSize, setMeasuredLabelSize] = React17.useState();
2160
- const [measuredWidth, setMeasuredWidth] = React17.useState();
2170
+ const [isFocused, setIsFocused] = React18.useState(false);
2171
+ const [measuredLabelSize, setMeasuredLabelSize] = React18.useState();
2172
+ const [measuredWidth, setMeasuredWidth] = React18.useState();
2161
2173
  const handleFocusChange = useCallback11(
2162
2174
  (isFocused2) => {
2163
2175
  setIsFocused(isFocused2);
@@ -2165,7 +2177,7 @@ function InputFieldRoot({
2165
2177
  },
2166
2178
  [onFocusChange]
2167
2179
  );
2168
- const [inputRef, setInputRef] = React17.useState();
2180
+ const [inputRef, setInputRef] = React18.useState();
2169
2181
  useEffect10(() => {
2170
2182
  if (inputRef && typeof inputRef !== "function") {
2171
2183
  setMeasuredWidth?.(
@@ -2198,7 +2210,7 @@ function InputFieldRoot({
2198
2210
  inputRef
2199
2211
  ]
2200
2212
  );
2201
- const rootElement = /* @__PURE__ */ React17.createElement(
2213
+ const rootElement = /* @__PURE__ */ React18.createElement(
2202
2214
  RootContainer,
2203
2215
  {
2204
2216
  id,
@@ -2209,7 +2221,7 @@ function InputFieldRoot({
2209
2221
  },
2210
2222
  children
2211
2223
  );
2212
- return /* @__PURE__ */ React17.createElement(InputFieldContext.Provider, { value: contextValue }, renderPopoverContent ? /* @__PURE__ */ React17.createElement(
2224
+ return /* @__PURE__ */ React18.createElement(InputFieldContext.Provider, { value: contextValue }, renderPopoverContent ? /* @__PURE__ */ React18.createElement(
2213
2225
  Popover,
2214
2226
  {
2215
2227
  open: true,
@@ -2225,7 +2237,7 @@ function InputFieldRoot({
2225
2237
  event.stopPropagation();
2226
2238
  }
2227
2239
  },
2228
- 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 }))
2229
2241
  ) : rootElement);
2230
2242
  }
2231
2243
  var InputField;
@@ -2306,7 +2318,7 @@ var DialogProvider = function DialogProvider2({
2306
2318
  return false;
2307
2319
  return dialogRef.current.containsElement(element);
2308
2320
  }, []);
2309
- return /* @__PURE__ */ React18.createElement(React18.Fragment, null, /* @__PURE__ */ React18.createElement(
2321
+ return /* @__PURE__ */ React19.createElement(React19.Fragment, null, /* @__PURE__ */ React19.createElement(
2310
2322
  DialogContext.Provider,
2311
2323
  {
2312
2324
  value: useMemo7(
@@ -2315,7 +2327,7 @@ var DialogProvider = function DialogProvider2({
2315
2327
  )
2316
2328
  },
2317
2329
  children
2318
- ), /* @__PURE__ */ React18.createElement(
2330
+ ), /* @__PURE__ */ React19.createElement(
2319
2331
  Dialog,
2320
2332
  {
2321
2333
  ref: dialogRef,
@@ -2336,7 +2348,7 @@ var DialogProvider = function DialogProvider2({
2336
2348
  inputRef.current?.setSelectionRange(0, inputRef.current.value.length);
2337
2349
  }, [])
2338
2350
  },
2339
- /* @__PURE__ */ React18.createElement(InputField.Root, null, /* @__PURE__ */ React18.createElement(
2351
+ /* @__PURE__ */ React19.createElement(InputField.Root, null, /* @__PURE__ */ React19.createElement(
2340
2352
  InputField.Input,
2341
2353
  {
2342
2354
  ref: inputRef,
@@ -2352,8 +2364,8 @@ var DialogProvider = function DialogProvider2({
2352
2364
  onKeyDown: handleKeyDown
2353
2365
  }
2354
2366
  )),
2355
- /* @__PURE__ */ React18.createElement(Spacer.Vertical, { size: 20 }),
2356
- /* @__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"))
2357
2369
  ));
2358
2370
  };
2359
2371
  function useDialog() {
@@ -2372,7 +2384,7 @@ function useDialogContainsElement() {
2372
2384
 
2373
2385
  // src/contexts/FloatingWindowContext.tsx
2374
2386
  import { uuid } from "@noya-app/noya-utils";
2375
- 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";
2376
2388
  import { createPortal } from "react-dom";
2377
2389
  var FloatingWindowContext = createContext4(void 0);
2378
2390
  var CurrentWindowContext = createContext4(void 0);
@@ -2385,7 +2397,7 @@ var FloatingWindowProvider = ({
2385
2397
  const id = uuid();
2386
2398
  setWindows((windows2) => ({
2387
2399
  ...windows2,
2388
- [id]: /* @__PURE__ */ React19.createElement(CurrentWindowContext.Provider, { value: { id } }, element)
2400
+ [id]: /* @__PURE__ */ React20.createElement(CurrentWindowContext.Provider, { value: { id } }, element)
2389
2401
  }));
2390
2402
  return id;
2391
2403
  };
@@ -2397,7 +2409,7 @@ var FloatingWindowProvider = ({
2397
2409
  };
2398
2410
  return { createWindow, closeWindow };
2399
2411
  }, []);
2400
- 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(
2401
2413
  ([id, element]) => createPortal(element, document.body, id)
2402
2414
  ));
2403
2415
  };
@@ -2430,11 +2442,11 @@ var DesignSystemThemeProvider = memo10(
2430
2442
  } catch (e) {
2431
2443
  }
2432
2444
  if (theme) {
2433
- return /* @__PURE__ */ React20.createElement(ThemeProvider, { theme }, children);
2445
+ return /* @__PURE__ */ React21.createElement(ThemeProvider, { theme }, children);
2434
2446
  } else if (parentTheme) {
2435
2447
  return children;
2436
2448
  } else {
2437
- return /* @__PURE__ */ React20.createElement(ThemeProvider, { theme: light_exports }, children);
2449
+ return /* @__PURE__ */ React21.createElement(ThemeProvider, { theme: light_exports }, children);
2438
2450
  }
2439
2451
  }
2440
2452
  );
@@ -2462,7 +2474,7 @@ var DesignSystemConfigurationProvider = memo10(
2462
2474
  [platform, internalPlatform]
2463
2475
  );
2464
2476
  const resolvedTheme = theme === "light" ? light_exports : theme === "dark" ? dark_exports : theme ?? light_exports;
2465
- 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)))));
2466
2478
  }
2467
2479
  );
2468
2480
  function useDesignSystemConfiguration() {
@@ -2473,7 +2485,7 @@ function useDesignSystemTheme() {
2473
2485
  }
2474
2486
 
2475
2487
  // src/hooks/useHover.ts
2476
- import * as React21 from "react";
2488
+ import * as React22 from "react";
2477
2489
  var globalIgnoreEmulatedMouseEvents = false;
2478
2490
  var hoverCount = 0;
2479
2491
  function setGlobalIgnoreEmulatedMouseEvents() {
@@ -2503,13 +2515,13 @@ function setupGlobalTouchEvents() {
2503
2515
  }
2504
2516
  function useHover(props = {}) {
2505
2517
  const { onHoverStart, onHoverChange, onHoverEnd, isDisabled } = props;
2506
- const [isHovered, setHovered] = React21.useState(false);
2507
- const state = React21.useRef({
2518
+ const [isHovered, setHovered] = React22.useState(false);
2519
+ const state = React22.useRef({
2508
2520
  isHovered: false,
2509
2521
  ignoreEmulatedMouseEvents: false
2510
2522
  }).current;
2511
- React21.useEffect(setupGlobalTouchEvents, []);
2512
- const hoverProps = React21.useMemo(
2523
+ React22.useEffect(setupGlobalTouchEvents, []);
2524
+ const hoverProps = React22.useMemo(
2513
2525
  function getHoverProps() {
2514
2526
  function triggerHoverStart(event, pointerType) {
2515
2527
  if (isDisabled || pointerType === "touch" || state.isHovered) {
@@ -2674,7 +2686,7 @@ var Chip = memo11(
2674
2686
  });
2675
2687
  const handleClick = !children && !deletable && addable ? onAdd : onClick;
2676
2688
  const color = colorScheme === "primary" ? theme.colors.primary : colorScheme === "secondary" ? theme.colors.secondary : theme.colors.text;
2677
- return /* @__PURE__ */ React22.createElement(
2689
+ return /* @__PURE__ */ React23.createElement(
2678
2690
  ChipElement,
2679
2691
  {
2680
2692
  ref: forwardedRef,
@@ -2688,7 +2700,7 @@ var Chip = memo11(
2688
2700
  tabIndex,
2689
2701
  ...rest
2690
2702
  },
2691
- addable && /* @__PURE__ */ React22.createElement(
2703
+ addable && /* @__PURE__ */ React23.createElement(
2692
2704
  AddElement,
2693
2705
  {
2694
2706
  size: size2,
@@ -2701,7 +2713,7 @@ var Chip = memo11(
2701
2713
  }
2702
2714
  ),
2703
2715
  children,
2704
- deletable && /* @__PURE__ */ React22.createElement(
2716
+ deletable && /* @__PURE__ */ React23.createElement(
2705
2717
  DeleteElement,
2706
2718
  {
2707
2719
  size: size2,
@@ -2721,7 +2733,7 @@ var Chip = memo11(
2721
2733
  import { CheckIcon as CheckIcon2, ChevronRightIcon as ChevronRightIcon2 } from "@noya-app/noya-icons";
2722
2734
  import { useKeyboardShortcuts as useKeyboardShortcuts2 } from "@noya-app/noya-keymap";
2723
2735
  import * as RadixContextMenu from "@radix-ui/react-context-menu";
2724
- 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";
2725
2737
  import styled15 from "styled-components";
2726
2738
  var SeparatorElement2 = styled15(RadixContextMenu.Separator)(
2727
2739
  styles.separatorStyle
@@ -2754,32 +2766,32 @@ var ContextMenuItem2 = memo12(function ContextMenuItem3({
2754
2766
  onSelect(value);
2755
2767
  }, [onSelect, value]);
2756
2768
  if (checked) {
2757
- return /* @__PURE__ */ React23.createElement(
2769
+ return /* @__PURE__ */ React24.createElement(
2758
2770
  CheckboxItemElement2,
2759
2771
  {
2760
2772
  checked,
2761
2773
  disabled,
2762
2774
  onSelect: handleSelectItem
2763
2775
  },
2764
- /* @__PURE__ */ React23.createElement(StyledItemIndicator2, null, /* @__PURE__ */ React23.createElement(CheckIcon2, null)),
2776
+ /* @__PURE__ */ React24.createElement(StyledItemIndicator2, null, /* @__PURE__ */ React24.createElement(CheckIcon2, null)),
2765
2777
  children
2766
2778
  );
2767
2779
  }
2768
- const element = /* @__PURE__ */ React23.createElement(
2780
+ const element = /* @__PURE__ */ React24.createElement(
2769
2781
  ItemElement2,
2770
2782
  {
2771
2783
  disabled,
2772
2784
  onSelect: handleSelectItem,
2773
2785
  onPointerDown: handlePointerDown
2774
2786
  },
2775
- indented && /* @__PURE__ */ React23.createElement(Spacer.Horizontal, { size: CHECKBOX_WIDTH - CHECKBOX_RIGHT_INSET }),
2776
- 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 })),
2777
2789
  children,
2778
- 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 })),
2779
- 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))
2780
2792
  );
2781
2793
  if (items && items.length > 0) {
2782
- return /* @__PURE__ */ React23.createElement(ContextMenuRoot, { isNested: true, items, onSelect }, element);
2794
+ return /* @__PURE__ */ React24.createElement(ContextMenuRoot, { isNested: true, items, onSelect }, element);
2783
2795
  } else {
2784
2796
  return element;
2785
2797
  }
@@ -2808,8 +2820,8 @@ function ContextMenuRoot({
2808
2820
  const RootComponent = isNested ? RadixContextMenu.Sub : RadixContextMenu.Root;
2809
2821
  const TriggerComponent = isNested ? RadixContextMenu.SubTrigger : RadixContextMenu.Trigger;
2810
2822
  const ContentComponent = isNested ? SubContent4 : Content8;
2811
- 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(
2812
- (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(
2813
2825
  ContextMenuItem2,
2814
2826
  {
2815
2827
  key: item.value ?? index,
@@ -2829,7 +2841,7 @@ function ContextMenuRoot({
2829
2841
  var ContextMenu = memo12(ContextMenuRoot);
2830
2842
 
2831
2843
  // src/components/Divider.tsx
2832
- import React24, { memo as memo13 } from "react";
2844
+ import React25, { memo as memo13 } from "react";
2833
2845
  import styled16 from "styled-components";
2834
2846
  var DividerContainer = styled16.div(({ theme, $variant = "normal", $orientation, $overflow = 0 }) => ({
2835
2847
  ...$orientation === "horizontal" ? { height: "1px", minHeight: "1px", margin: `0px -${$overflow}px` } : { width: "1px", minWidth: "1px", margin: `-${$overflow}px 0px` },
@@ -2841,7 +2853,7 @@ var Divider = memo13(function Divider2({
2841
2853
  overflow,
2842
2854
  ...props
2843
2855
  }) {
2844
- return /* @__PURE__ */ React24.createElement(
2856
+ return /* @__PURE__ */ React25.createElement(
2845
2857
  DividerContainer,
2846
2858
  {
2847
2859
  $orientation: "horizontal",
@@ -2856,7 +2868,7 @@ var DividerVertical = memo13(function DividerVertical2({
2856
2868
  overflow,
2857
2869
  ...props
2858
2870
  }) {
2859
- return /* @__PURE__ */ React24.createElement(
2871
+ return /* @__PURE__ */ React25.createElement(
2860
2872
  DividerContainer,
2861
2873
  {
2862
2874
  $orientation: "vertical",
@@ -2869,7 +2881,7 @@ var DividerVertical = memo13(function DividerVertical2({
2869
2881
 
2870
2882
  // src/components/DraggableMenuButton.tsx
2871
2883
  import { DragHandleDots2Icon } from "@noya-app/noya-icons";
2872
- 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";
2873
2885
  import styled17 from "styled-components";
2874
2886
  var DotButtonElement = styled17.div(({ theme }) => ({
2875
2887
  cursor: "pointer",
@@ -2896,7 +2908,7 @@ var DraggableMenuButton = memo14(function DraggableMenuButton2({
2896
2908
  }) {
2897
2909
  const color = useDesignSystemTheme().colors.icon;
2898
2910
  const [open, setOpen] = useState16(false);
2899
- const [downPosition, setDownPosition] = React25.useState(null);
2911
+ const [downPosition, setDownPosition] = React26.useState(null);
2900
2912
  const handlePointerDownCapture = useCallback14(
2901
2913
  (event) => {
2902
2914
  if (open) {
@@ -2933,7 +2945,7 @@ var DraggableMenuButton = memo14(function DraggableMenuButton2({
2933
2945
  },
2934
2946
  [setOpen]
2935
2947
  );
2936
- return /* @__PURE__ */ React25.createElement(
2948
+ return /* @__PURE__ */ React26.createElement(
2937
2949
  DotButtonElement,
2938
2950
  {
2939
2951
  onPointerDownCapture: handlePointerDownCapture,
@@ -2943,7 +2955,7 @@ var DraggableMenuButton = memo14(function DraggableMenuButton2({
2943
2955
  event.preventDefault();
2944
2956
  }
2945
2957
  },
2946
- items && onSelect ? /* @__PURE__ */ React25.createElement(
2958
+ items && onSelect ? /* @__PURE__ */ React26.createElement(
2947
2959
  DropdownMenu,
2948
2960
  {
2949
2961
  open,
@@ -2952,13 +2964,13 @@ var DraggableMenuButton = memo14(function DraggableMenuButton2({
2952
2964
  onSelect,
2953
2965
  shouldBindKeyboardShortcuts: false
2954
2966
  },
2955
- /* @__PURE__ */ React25.createElement(TriggerElement, null, /* @__PURE__ */ React25.createElement(
2967
+ /* @__PURE__ */ React26.createElement(TriggerElement, null, /* @__PURE__ */ React26.createElement(
2956
2968
  DragHandleDots2Icon,
2957
2969
  {
2958
2970
  color: isVisible || open ? color : "transparent"
2959
2971
  }
2960
2972
  ))
2961
- ) : /* @__PURE__ */ React25.createElement(
2973
+ ) : /* @__PURE__ */ React26.createElement(
2962
2974
  DragHandleDots2Icon,
2963
2975
  {
2964
2976
  color: isVisible || open ? color : "transparent"
@@ -2968,7 +2980,7 @@ var DraggableMenuButton = memo14(function DraggableMenuButton2({
2968
2980
  });
2969
2981
 
2970
2982
  // src/components/FillInputField.tsx
2971
- import React28, { forwardRef as forwardRef11, memo as memo17 } from "react";
2983
+ import React29, { forwardRef as forwardRef11, memo as memo17 } from "react";
2972
2984
  import styled19 from "styled-components";
2973
2985
 
2974
2986
  // ../noya-file-format/src/types.ts
@@ -3294,11 +3306,11 @@ var ClassValue = /* @__PURE__ */ ((ClassValue2) => {
3294
3306
  })(ClassValue || {});
3295
3307
 
3296
3308
  // src/components/FillPreviewBackground.tsx
3297
- import React27, { memo as memo16, useMemo as useMemo14 } from "react";
3309
+ import React28, { memo as memo16, useMemo as useMemo14 } from "react";
3298
3310
  import styled18, { useTheme as useTheme3 } from "styled-components";
3299
3311
 
3300
3312
  // src/contexts/ImageDataContext.tsx
3301
- import React26, {
3313
+ import React27, {
3302
3314
  createContext as createContext6,
3303
3315
  memo as memo15,
3304
3316
  useContext as useContext6,
@@ -3315,7 +3327,7 @@ var ImageDataProvider = memo15(function ImageDataProvider2({
3315
3327
  () => ({ getImageData: getImageData ?? (() => void 0) }),
3316
3328
  [getImageData]
3317
3329
  );
3318
- return /* @__PURE__ */ React26.createElement(ImageDataContext.Provider, { value: contextValue }, children);
3330
+ return /* @__PURE__ */ React27.createElement(ImageDataContext.Provider, { value: contextValue }, children);
3319
3331
  });
3320
3332
  function useImageData(ref) {
3321
3333
  const value = useContext6(ImageDataContext);
@@ -3405,7 +3417,7 @@ var HorizontalDotsBackground = memo16(function HorizontalDotsBackground2() {
3405
3417
  ].join(","),
3406
3418
  [inputBackground, placeholderDots]
3407
3419
  );
3408
- return /* @__PURE__ */ React27.createElement(Background, { background });
3420
+ return /* @__PURE__ */ React28.createElement(Background, { background });
3409
3421
  });
3410
3422
  function getPatternSizeAndPosition(fillType, tileScale) {
3411
3423
  switch (fillType) {
@@ -3435,13 +3447,13 @@ var PatternPreviewBackground = memo16(function PatternPreviewBackground2({
3435
3447
  ].join(" "),
3436
3448
  [fillType, size2, url]
3437
3449
  );
3438
- return /* @__PURE__ */ React27.createElement(Background, { background });
3450
+ return /* @__PURE__ */ React28.createElement(Background, { background });
3439
3451
  });
3440
3452
  var ColorPreviewBackground = memo16(function ColorPreviewBackground2({
3441
3453
  color
3442
3454
  }) {
3443
3455
  const background = useMemo14(() => sketchColorToRgbaString(color), [color]);
3444
- return /* @__PURE__ */ React27.createElement(Background, { background });
3456
+ return /* @__PURE__ */ React28.createElement(Background, { background });
3445
3457
  });
3446
3458
  var GradientPreviewBackground = memo16(function GradientPreviewBackground2({
3447
3459
  gradient
@@ -3450,22 +3462,22 @@ var GradientPreviewBackground = memo16(function GradientPreviewBackground2({
3450
3462
  () => getGradientBackground(gradient.stops, gradient.gradientType, 180),
3451
3463
  [gradient.gradientType, gradient.stops]
3452
3464
  );
3453
- return /* @__PURE__ */ React27.createElement(Background, { background });
3465
+ return /* @__PURE__ */ React28.createElement(Background, { background });
3454
3466
  });
3455
3467
  var FillPreviewBackground = memo16(function FillPreviewBackground2({
3456
3468
  value
3457
3469
  }) {
3458
3470
  if (!value)
3459
- return /* @__PURE__ */ React27.createElement(HorizontalDotsBackground, null);
3471
+ return /* @__PURE__ */ React28.createElement(HorizontalDotsBackground, null);
3460
3472
  switch (value._class) {
3461
3473
  case "color":
3462
- return /* @__PURE__ */ React27.createElement(ColorPreviewBackground, { color: value });
3474
+ return /* @__PURE__ */ React28.createElement(ColorPreviewBackground, { color: value });
3463
3475
  case "gradient":
3464
- return /* @__PURE__ */ React27.createElement(GradientPreviewBackground, { gradient: value });
3476
+ return /* @__PURE__ */ React28.createElement(GradientPreviewBackground, { gradient: value });
3465
3477
  case "pattern":
3466
3478
  if (!value.image)
3467
3479
  return null;
3468
- return /* @__PURE__ */ React27.createElement(
3480
+ return /* @__PURE__ */ React28.createElement(
3469
3481
  PatternPreviewBackground,
3470
3482
  {
3471
3483
  fillType: value.patternFillType,
@@ -3497,12 +3509,12 @@ var Container = styled19.button(
3497
3509
  );
3498
3510
  var FillInputField = memo17(
3499
3511
  forwardRef11(function FillInputField2({ id, value, flex, ...rest }, ref) {
3500
- 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 }));
3501
3513
  })
3502
3514
  );
3503
3515
 
3504
3516
  // src/components/FloatingWindow.tsx
3505
- 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";
3506
3518
  var styles2 = {
3507
3519
  noSelect: {
3508
3520
  userSelect: "none",
@@ -3595,7 +3607,7 @@ function defaultRenderToolbar({
3595
3607
  toolbarContent,
3596
3608
  onClose
3597
3609
  }) {
3598
- 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(
3599
3611
  IconButton,
3600
3612
  {
3601
3613
  iconName: "Cross3Icon",
@@ -3716,7 +3728,7 @@ var FloatingWindow = ({
3716
3728
  setResizeDirection(null);
3717
3729
  toggleGlobalTextSelection(false);
3718
3730
  }, []);
3719
- React29.useEffect(() => {
3731
+ React30.useEffect(() => {
3720
3732
  document.addEventListener("mousemove", handleMouseMove);
3721
3733
  document.addEventListener("mouseup", handleMouseUp);
3722
3734
  return () => {
@@ -3732,7 +3744,7 @@ var FloatingWindow = ({
3732
3744
  onClose();
3733
3745
  floatingWindowManager.closeWindow(currentFloatingWindow.id);
3734
3746
  }, [currentFloatingWindow.id, floatingWindowManager, onClose]);
3735
- return /* @__PURE__ */ React29.createElement(
3747
+ return /* @__PURE__ */ React30.createElement(
3736
3748
  "div",
3737
3749
  {
3738
3750
  ref: wrapperRef,
@@ -3746,7 +3758,7 @@ var FloatingWindow = ({
3746
3758
  backgroundColor: theme.colors.canvas.background
3747
3759
  }
3748
3760
  },
3749
- /* @__PURE__ */ React29.createElement(
3761
+ /* @__PURE__ */ React30.createElement(
3750
3762
  "div",
3751
3763
  {
3752
3764
  style: {
@@ -3757,9 +3769,9 @@ var FloatingWindow = ({
3757
3769
  },
3758
3770
  renderToolbar({ title, toolbarContent, onClose: handleClose })
3759
3771
  ),
3760
- /* @__PURE__ */ React29.createElement(Divider, null),
3761
- /* @__PURE__ */ React29.createElement("div", { style: styles2.content }, children),
3762
- 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(
3763
3775
  "div",
3764
3776
  {
3765
3777
  key: direction,
@@ -3781,7 +3793,7 @@ import {
3781
3793
  hsvaToRgba,
3782
3794
  rgbaToHsva as rgbaToHsva2
3783
3795
  } from "@noya-app/noya-colorpicker";
3784
- 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";
3785
3797
  var GradientPicker = memo18(function GradientPicker2({
3786
3798
  value,
3787
3799
  selectedStop,
@@ -3816,14 +3828,14 @@ var GradientPicker = memo18(function GradientPicker2({
3816
3828
  },
3817
3829
  [onAdd]
3818
3830
  );
3819
- return /* @__PURE__ */ React30.createElement(
3831
+ return /* @__PURE__ */ React31.createElement(
3820
3832
  NoyaColorPicker,
3821
3833
  {
3822
3834
  onChange: handleChangeColor,
3823
3835
  colorModel,
3824
3836
  color: rgbaColor
3825
3837
  },
3826
- /* @__PURE__ */ React30.createElement(
3838
+ /* @__PURE__ */ React31.createElement(
3827
3839
  Gradient,
3828
3840
  {
3829
3841
  gradients: value,
@@ -3834,12 +3846,12 @@ var GradientPicker = memo18(function GradientPicker2({
3834
3846
  onDelete
3835
3847
  }
3836
3848
  ),
3837
- /* @__PURE__ */ React30.createElement(Spacer.Vertical, { size: 10 }),
3838
- /* @__PURE__ */ React30.createElement(Saturation, null),
3839
- /* @__PURE__ */ React30.createElement(Spacer.Vertical, { size: 12 }),
3840
- /* @__PURE__ */ React30.createElement(Hue, null),
3841
- /* @__PURE__ */ React30.createElement(Spacer.Vertical, { size: 5 }),
3842
- /* @__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)
3843
3855
  );
3844
3856
  });
3845
3857
 
@@ -3871,7 +3883,7 @@ var Grid = styled20.div((props) => ({
3871
3883
  }));
3872
3884
 
3873
3885
  // src/components/GridView.tsx
3874
- import React32, {
3886
+ import React33, {
3875
3887
  createContext as createContext7,
3876
3888
  forwardRef as forwardRef12,
3877
3889
  memo as memo20,
@@ -3883,7 +3895,7 @@ import styled22, { keyframes as keyframes2 } from "styled-components";
3883
3895
 
3884
3896
  // src/components/ScrollArea.tsx
3885
3897
  import * as RadixScrollArea from "@radix-ui/react-scroll-area";
3886
- 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";
3887
3899
  import styled21 from "styled-components";
3888
3900
  var SCROLLBAR_SIZE = 10;
3889
3901
  var StyledViewport = styled21(RadixScrollArea.Viewport)({
@@ -3913,7 +3925,7 @@ var Container2 = styled21.div({
3913
3925
  });
3914
3926
  var ScrollArea = memo19(function ScrollArea2({ children }) {
3915
3927
  const [scrollElementRef, setScrollElementRef] = useState18(null);
3916
- 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(
3917
3929
  StyledViewport,
3918
3930
  {
3919
3931
  ref: useCallback17(
@@ -3922,7 +3934,7 @@ var ScrollArea = memo19(function ScrollArea2({ children }) {
3922
3934
  )
3923
3935
  },
3924
3936
  typeof children === "function" ? scrollElementRef ? children(scrollElementRef) : null : children
3925
- ), /* @__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" }))));
3926
3938
  });
3927
3939
 
3928
3940
  // src/components/GridView.tsx
@@ -4118,7 +4130,7 @@ var GridViewItem = forwardRef12(function GridViewItem2({
4118
4130
  onContextMenu,
4119
4131
  style: style3
4120
4132
  }, forwardedRef) {
4121
- const [hovered, setHovered] = React32.useState(false);
4133
+ const [hovered, setHovered] = React33.useState(false);
4122
4134
  const { hoverProps } = useHover({
4123
4135
  onHoverChange: (isHovering) => {
4124
4136
  onHoverChange?.(isHovering);
@@ -4147,7 +4159,7 @@ var GridViewItem = forwardRef12(function GridViewItem2({
4147
4159
  },
4148
4160
  [onPress]
4149
4161
  );
4150
- let element = /* @__PURE__ */ React32.createElement(
4162
+ let element = /* @__PURE__ */ React33.createElement(
4151
4163
  ItemContainer,
4152
4164
  {
4153
4165
  id,
@@ -4156,7 +4168,7 @@ var GridViewItem = forwardRef12(function GridViewItem2({
4156
4168
  tabIndex: disabled ? void 0 : 0,
4157
4169
  onKeyDown: handleKeyDown
4158
4170
  },
4159
- /* @__PURE__ */ React32.createElement(
4171
+ /* @__PURE__ */ React33.createElement(
4160
4172
  ContentContainer,
4161
4173
  {
4162
4174
  disabled,
@@ -4170,18 +4182,18 @@ var GridViewItem = forwardRef12(function GridViewItem2({
4170
4182
  },
4171
4183
  children
4172
4184
  ),
4173
- 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 || " ")),
4174
- 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)),
4175
- 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 }))
4176
4188
  );
4177
4189
  if (menuItems && onSelectMenuItem) {
4178
- element = /* @__PURE__ */ React32.createElement(ContextMenu, { items: menuItems, onSelect: onSelectMenuItem }, element);
4190
+ element = /* @__PURE__ */ React33.createElement(ContextMenu, { items: menuItems, onSelect: onSelectMenuItem }, element);
4179
4191
  }
4180
4192
  if (textPosition === "toolip") {
4181
- element = /* @__PURE__ */ React32.createElement(
4193
+ element = /* @__PURE__ */ React33.createElement(
4182
4194
  Tooltip,
4183
4195
  {
4184
- 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))
4185
4197
  },
4186
4198
  element
4187
4199
  );
@@ -4220,20 +4232,20 @@ function GridViewRoot({
4220
4232
  }),
4221
4233
  [bordered, disabled, size2, textPosition]
4222
4234
  );
4223
- 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));
4224
4236
  }
4225
4237
  function GridViewSection({
4226
4238
  children,
4227
4239
  padding = "20px"
4228
4240
  }) {
4229
4241
  const { size: size2 } = useContext7(GridViewContext);
4230
- return /* @__PURE__ */ React32.createElement(Grid2, { size: size2, padding }, children);
4242
+ return /* @__PURE__ */ React33.createElement(Grid2, { size: size2, padding }, children);
4231
4243
  }
4232
4244
  function GridViewSectionHeader({ title }) {
4233
4245
  const grouped = title.split("/");
4234
- return /* @__PURE__ */ React32.createElement(SectionHeaderContainer, null, /* @__PURE__ */ React32.createElement(Spacer.Vertical, { size: 24 }), withSeparatorElements(
4235
- grouped.map((title2, index) => /* @__PURE__ */ React32.createElement(SectionTitle, { last: index === grouped.length - 1 }, title2)),
4236
- /* @__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, " / ")
4237
4249
  ));
4238
4250
  }
4239
4251
  var GridView;
@@ -4246,7 +4258,7 @@ var GridView;
4246
4258
 
4247
4259
  // src/components/InputFieldWithCompletions.tsx
4248
4260
  import { chunkBy, partition } from "@noya-app/noya-utils";
4249
- import React36, {
4261
+ import React37, {
4250
4262
  forwardRef as forwardRef15,
4251
4263
  memo as memo23,
4252
4264
  useCallback as useCallback21,
@@ -4333,7 +4345,7 @@ function mergeRanges(ranges) {
4333
4345
  // src/components/ListView.tsx
4334
4346
  import { range } from "@noya-app/noya-utils";
4335
4347
  import { composeRefs as composeRefs2 } from "@radix-ui/react-compose-refs";
4336
- import React34, {
4348
+ import React35, {
4337
4349
  Children as Children4,
4338
4350
  createContext as createContext9,
4339
4351
  forwardRef as forwardRef13,
@@ -4387,7 +4399,7 @@ import {
4387
4399
  useSortable,
4388
4400
  verticalListSortingStrategy
4389
4401
  } from "@dnd-kit/sortable";
4390
- import React33, {
4402
+ import React34, {
4391
4403
  createContext as createContext8,
4392
4404
  memo as memo21,
4393
4405
  useCallback as useCallback19,
@@ -4529,7 +4541,7 @@ function SortableRoot({
4529
4541
  useEffect13(() => {
4530
4542
  setMounted(true);
4531
4543
  }, []);
4532
- return /* @__PURE__ */ React33.createElement(
4544
+ return /* @__PURE__ */ React34.createElement(
4533
4545
  SortableItemContext.Provider,
4534
4546
  {
4535
4547
  value: useMemo17(
@@ -4543,7 +4555,7 @@ function SortableRoot({
4543
4555
  [acceptsDrop, axis, keys, position, setActivatorEvent]
4544
4556
  )
4545
4557
  },
4546
- /* @__PURE__ */ React33.createElement(
4558
+ /* @__PURE__ */ React34.createElement(
4547
4559
  DndContext,
4548
4560
  {
4549
4561
  sensors,
@@ -4552,9 +4564,9 @@ function SortableRoot({
4552
4564
  onDragMove: handleDragMove,
4553
4565
  onDragEnd: handleDragEnd
4554
4566
  },
4555
- /* @__PURE__ */ React33.createElement(SortableContext, { items: keys, strategy: verticalListSortingStrategy }, children),
4567
+ /* @__PURE__ */ React34.createElement(SortableContext, { items: keys, strategy: verticalListSortingStrategy }, children),
4556
4568
  mounted && renderOverlay && createPortal2(
4557
- /* @__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)),
4558
4570
  document.body
4559
4571
  )
4560
4572
  )
@@ -4612,7 +4624,7 @@ function ListViewEditableRowTitle({
4612
4624
  element.select();
4613
4625
  }, 0);
4614
4626
  }, [autoFocus]);
4615
- return /* @__PURE__ */ React34.createElement(
4627
+ return /* @__PURE__ */ React35.createElement(
4616
4628
  ListViewEditableRowTitleElement,
4617
4629
  {
4618
4630
  ref: inputRef,
@@ -4802,7 +4814,7 @@ var ListViewRow = forwardRef13(function ListViewRow2({
4802
4814
  ...renderProps
4803
4815
  }, ref) => {
4804
4816
  const Component = RowContainer;
4805
- const element = /* @__PURE__ */ React34.createElement(
4817
+ const element = /* @__PURE__ */ React35.createElement(
4806
4818
  Component,
4807
4819
  {
4808
4820
  ref,
@@ -4833,7 +4845,7 @@ var ListViewRow = forwardRef13(function ListViewRow2({
4833
4845
  ),
4834
4846
  tabIndex
4835
4847
  },
4836
- relativeDropPosition && /* @__PURE__ */ React34.createElement(
4848
+ relativeDropPosition && /* @__PURE__ */ React35.createElement(
4837
4849
  ListViewDragIndicatorElement,
4838
4850
  {
4839
4851
  $colorScheme: colorScheme,
@@ -4847,11 +4859,11 @@ var ListViewRow = forwardRef13(function ListViewRow2({
4847
4859
  }) : dragIndicatorStyle
4848
4860
  }
4849
4861
  ),
4850
- depth > 0 && /* @__PURE__ */ React34.createElement(Spacer.Horizontal, { size: depth * indentation }),
4862
+ depth > 0 && /* @__PURE__ */ React35.createElement(Spacer.Horizontal, { size: depth * indentation }),
4851
4863
  children
4852
4864
  );
4853
4865
  if (menuItems && onSelectMenuItem) {
4854
- return /* @__PURE__ */ React34.createElement(
4866
+ return /* @__PURE__ */ React35.createElement(
4855
4867
  ContextMenu,
4856
4868
  {
4857
4869
  items: menuItems,
@@ -4864,7 +4876,7 @@ var ListViewRow = forwardRef13(function ListViewRow2({
4864
4876
  return element;
4865
4877
  };
4866
4878
  if (sortable && id) {
4867
- 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(
4868
4880
  sortableProps,
4869
4881
  composeRefs2(sortableRef, forwardedRef)
4870
4882
  ));
@@ -4879,7 +4891,7 @@ var VirtualizedListRow = memo22(function VirtualizedListRow2({
4879
4891
  style: style3
4880
4892
  }) {
4881
4893
  const renderItem = useContext9(RenderItemContext);
4882
- return /* @__PURE__ */ React34.createElement("div", { key: index, style: style3 }, renderItem(index));
4894
+ return /* @__PURE__ */ React35.createElement("div", { key: index, style: style3 }, renderItem(index));
4883
4895
  });
4884
4896
  var VirtualizedListInner = forwardRef13(function VirtualizedListInner2({
4885
4897
  size: size2,
@@ -4910,7 +4922,7 @@ var VirtualizedListInner = forwardRef13(function VirtualizedListInner2({
4910
4922
  }),
4911
4923
  []
4912
4924
  );
4913
- return /* @__PURE__ */ React34.createElement(RenderItemContext.Provider, { value: renderItem }, /* @__PURE__ */ React34.createElement(
4925
+ return /* @__PURE__ */ React35.createElement(RenderItemContext.Provider, { value: renderItem }, /* @__PURE__ */ React35.createElement(
4914
4926
  WindowScroller,
4915
4927
  {
4916
4928
  scrollElement,
@@ -4921,7 +4933,7 @@ var VirtualizedListInner = forwardRef13(function VirtualizedListInner2({
4921
4933
  registerChild,
4922
4934
  onChildScroll,
4923
4935
  scrollTop
4924
- }) => /* @__PURE__ */ React34.createElement("div", { ref: registerChild }, /* @__PURE__ */ React34.createElement(
4936
+ }) => /* @__PURE__ */ React35.createElement("div", { ref: registerChild }, /* @__PURE__ */ React35.createElement(
4925
4937
  VariableSizeList,
4926
4938
  {
4927
4939
  ref: listRef,
@@ -5063,7 +5075,7 @@ var ListViewRootInner = forwardRef13(function ListViewRootInner2({
5063
5075
  [indentation]
5064
5076
  );
5065
5077
  const renderOverlay = useCallback20(
5066
- (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 }))),
5067
5079
  [draggingContextOverlayValue, renderItem, data]
5068
5080
  );
5069
5081
  const renderWrappedChild = useCallback20(
@@ -5072,12 +5084,12 @@ var ListViewRootInner = forwardRef13(function ListViewRootInner2({
5072
5084
  const current = renderChild(index);
5073
5085
  if (!contextValue || !isValidElement3(current))
5074
5086
  return null;
5075
- 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);
5076
5088
  },
5077
5089
  [getItemContextValue, renderChild]
5078
5090
  );
5079
5091
  const ids = useMemo18(() => data.map(keyExtractor), [keyExtractor, data]);
5080
- const withSortable = (children) => sortable ? /* @__PURE__ */ React34.createElement(
5092
+ const withSortable = (children) => sortable ? /* @__PURE__ */ React35.createElement(
5081
5093
  Sortable.Root,
5082
5094
  {
5083
5095
  onMoveItem,
@@ -5087,7 +5099,7 @@ var ListViewRootInner = forwardRef13(function ListViewRootInner2({
5087
5099
  },
5088
5100
  children
5089
5101
  ) : children;
5090
- 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);
5091
5103
  const getItemHeight = useCallback20(
5092
5104
  (index) => {
5093
5105
  const child = getItemContextValue(index);
@@ -5102,7 +5114,7 @@ var ListViewRootInner = forwardRef13(function ListViewRootInner2({
5102
5114
  [data, keyExtractor]
5103
5115
  );
5104
5116
  const draggingContextValue = useMemo18(() => ({ indentation }), [indentation]);
5105
- return /* @__PURE__ */ React34.createElement(DraggingContext.Provider, { value: draggingContextValue }, /* @__PURE__ */ React34.createElement(
5117
+ return /* @__PURE__ */ React35.createElement(DraggingContext.Provider, { value: draggingContextValue }, /* @__PURE__ */ React35.createElement(
5106
5118
  RootContainer2,
5107
5119
  {
5108
5120
  id,
@@ -5116,7 +5128,7 @@ var ListViewRootInner = forwardRef13(function ListViewRootInner2({
5116
5128
  },
5117
5129
  withScrollable(
5118
5130
  (scrollElementRef) => withSortable(
5119
- virtualized ? /* @__PURE__ */ React34.createElement(
5131
+ virtualized ? /* @__PURE__ */ React35.createElement(
5120
5132
  VirtualizedList,
5121
5133
  {
5122
5134
  ref: forwardedRef,
@@ -5140,7 +5152,7 @@ var ChildrenListViewInner = forwardRef13(function ChildrenListViewInner2({ child
5140
5152
  ),
5141
5153
  [children]
5142
5154
  );
5143
- return /* @__PURE__ */ React34.createElement(
5155
+ return /* @__PURE__ */ React35.createElement(
5144
5156
  ListViewRoot,
5145
5157
  {
5146
5158
  ref: forwardedRef,
@@ -5157,9 +5169,9 @@ var ChildrenListViewInner = forwardRef13(function ChildrenListViewInner2({ child
5157
5169
  var ChildrenListView = memo22(ChildrenListViewInner);
5158
5170
  var SimpleListViewInner = forwardRef13(function SimpleListViewInner2(props, forwardedRef) {
5159
5171
  if ("children" in props) {
5160
- return /* @__PURE__ */ React34.createElement(ChildrenListView, { ref: forwardedRef, ...props });
5172
+ return /* @__PURE__ */ React35.createElement(ChildrenListView, { ref: forwardedRef, ...props });
5161
5173
  } else {
5162
- return /* @__PURE__ */ React34.createElement(ListViewRoot, { ref: forwardedRef, ...props });
5174
+ return /* @__PURE__ */ React35.createElement(ListViewRoot, { ref: forwardedRef, ...props });
5163
5175
  }
5164
5176
  });
5165
5177
  var SimpleListView = memo22(SimpleListViewInner);
@@ -5180,7 +5192,7 @@ var ListView;
5180
5192
  })(ListView || (ListView = {}));
5181
5193
 
5182
5194
  // src/components/Text.tsx
5183
- import React35, { forwardRef as forwardRef14 } from "react";
5195
+ import React36, { forwardRef as forwardRef14 } from "react";
5184
5196
  import styled24 from "styled-components";
5185
5197
  var elements = {
5186
5198
  title: "h1",
@@ -5216,7 +5228,7 @@ var Text = forwardRef14(function Text2({
5216
5228
  ...rest
5217
5229
  }, forwardedRef) {
5218
5230
  const element = as ?? elements[variant] ?? "span";
5219
- return /* @__PURE__ */ React35.createElement(
5231
+ return /* @__PURE__ */ React36.createElement(
5220
5232
  StyledElement,
5221
5233
  {
5222
5234
  ref: forwardedRef,
@@ -5235,27 +5247,27 @@ var Text = forwardRef14(function Text2({
5235
5247
  );
5236
5248
  });
5237
5249
  var Heading1 = forwardRef14(
5238
- (props, ref) => /* @__PURE__ */ React35.createElement(Text, { ref, ...props, variant: "heading1" })
5250
+ (props, ref) => /* @__PURE__ */ React36.createElement(Text, { ref, ...props, variant: "heading1" })
5239
5251
  );
5240
5252
  var Heading2 = forwardRef14(
5241
- (props, ref) => /* @__PURE__ */ React35.createElement(Text, { ref, ...props, variant: "heading2" })
5253
+ (props, ref) => /* @__PURE__ */ React36.createElement(Text, { ref, ...props, variant: "heading2" })
5242
5254
  );
5243
5255
  var Heading3 = forwardRef14(
5244
- (props, ref) => /* @__PURE__ */ React35.createElement(Text, { ref, ...props, variant: "heading3" })
5256
+ (props, ref) => /* @__PURE__ */ React36.createElement(Text, { ref, ...props, variant: "heading3" })
5245
5257
  );
5246
5258
  var Heading4 = forwardRef14(
5247
- (props, ref) => /* @__PURE__ */ React35.createElement(Text, { ref, ...props, variant: "heading4" })
5259
+ (props, ref) => /* @__PURE__ */ React36.createElement(Text, { ref, ...props, variant: "heading4" })
5248
5260
  );
5249
5261
  var Heading5 = forwardRef14(
5250
- (props, ref) => /* @__PURE__ */ React35.createElement(Text, { ref, ...props, variant: "heading5" })
5262
+ (props, ref) => /* @__PURE__ */ React36.createElement(Text, { ref, ...props, variant: "heading5" })
5251
5263
  );
5252
5264
  var Body = forwardRef14(
5253
- (props, ref) => /* @__PURE__ */ React35.createElement(Text, { ref, ...props, variant: "body" })
5265
+ (props, ref) => /* @__PURE__ */ React36.createElement(Text, { ref, ...props, variant: "body" })
5254
5266
  );
5255
5267
  var Small = forwardRef14(
5256
- (props, ref) => /* @__PURE__ */ React35.createElement(Text, { ref, ...props, variant: "small" })
5268
+ (props, ref) => /* @__PURE__ */ React36.createElement(Text, { ref, ...props, variant: "small" })
5257
5269
  );
5258
- var Italic = ({ children }) => /* @__PURE__ */ React35.createElement(
5270
+ var Italic = ({ children }) => /* @__PURE__ */ React36.createElement(
5259
5271
  "span",
5260
5272
  {
5261
5273
  style: {
@@ -5305,7 +5317,7 @@ var CompletionMenu = memo23(
5305
5317
  onHoverIndex,
5306
5318
  listSize
5307
5319
  }, forwardedRef) {
5308
- return /* @__PURE__ */ React36.createElement(
5320
+ return /* @__PURE__ */ React37.createElement(
5309
5321
  ListView.Root,
5310
5322
  {
5311
5323
  ref: forwardedRef,
@@ -5317,13 +5329,13 @@ var CompletionMenu = memo23(
5317
5329
  sectionHeaderVariant: "label",
5318
5330
  renderItem: (item, i) => {
5319
5331
  if (item.type === "sectionHeader") {
5320
- 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);
5321
5333
  }
5322
5334
  const tokens = fuzzyTokenize({
5323
5335
  item: item.name,
5324
5336
  itemScore: item
5325
5337
  });
5326
- return /* @__PURE__ */ React36.createElement(
5338
+ return /* @__PURE__ */ React37.createElement(
5327
5339
  ListView.Row,
5328
5340
  {
5329
5341
  key: item.id,
@@ -5335,8 +5347,8 @@ var CompletionMenu = memo23(
5335
5347
  }
5336
5348
  }
5337
5349
  },
5338
- tokens.map((token, j) => /* @__PURE__ */ React36.createElement(CompletionToken, { key: j, $type: token.type }, token.text)),
5339
- 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)
5340
5352
  );
5341
5353
  }
5342
5354
  }
@@ -5405,7 +5417,7 @@ var InputFieldWithCompletions = memo23(
5405
5417
  updateState({ filter: initialValue });
5406
5418
  }, [initialValue, updateState]);
5407
5419
  const { filter, selectedIndex } = state;
5408
- const listRef = React36.useRef(null);
5420
+ const listRef = React37.useRef(null);
5409
5421
  const filteredItems = useMemo19(
5410
5422
  () => filterWithGroupedSections(items, filter),
5411
5423
  [items, filter]
@@ -5541,14 +5553,14 @@ var InputFieldWithCompletions = memo23(
5541
5553
  ref.current?.setSelectionRange(0, ref.current.value.length);
5542
5554
  }
5543
5555
  }));
5544
- return /* @__PURE__ */ React36.createElement(
5556
+ return /* @__PURE__ */ React37.createElement(
5545
5557
  InputField.Root,
5546
5558
  {
5547
5559
  size: size2,
5548
5560
  labelSize: 16,
5549
5561
  renderPopoverContent: ({ width }) => {
5550
5562
  const listSize = { width, height };
5551
- 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(
5552
5564
  CompletionMenu,
5553
5565
  {
5554
5566
  ref: listRef,
@@ -5558,7 +5570,7 @@ var InputFieldWithCompletions = memo23(
5558
5570
  onHoverIndex: handleIndexChange,
5559
5571
  listSize
5560
5572
  }
5561
- ) : /* @__PURE__ */ React36.createElement(
5573
+ ) : /* @__PURE__ */ React37.createElement(
5562
5574
  Stack.V,
5563
5575
  {
5564
5576
  height: "100px",
@@ -5566,11 +5578,11 @@ var InputFieldWithCompletions = memo23(
5566
5578
  alignItems: "center",
5567
5579
  justifyContent: "center"
5568
5580
  },
5569
- /* @__PURE__ */ React36.createElement(Small, { color: "textDisabled" }, loading ? "Loading" : "No results")
5581
+ /* @__PURE__ */ React37.createElement(Small, { color: "textDisabled" }, loading ? "Loading" : "No results")
5570
5582
  ));
5571
5583
  }
5572
5584
  },
5573
- /* @__PURE__ */ React36.createElement(
5585
+ /* @__PURE__ */ React37.createElement(
5574
5586
  InputField.Input,
5575
5587
  {
5576
5588
  ref,
@@ -5594,9 +5606,9 @@ var InputFieldWithCompletions = memo23(
5594
5606
  "aria-controls": "component-listbox"
5595
5607
  }
5596
5608
  ),
5597
- 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 }),
5598
5610
  (!isFocused || !hideChildrenWhenFocused) && children,
5599
- 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))
5600
5612
  );
5601
5613
  })
5602
5614
  );
@@ -5618,7 +5630,7 @@ function getNextIndex(items, currentIndex, direction, isDisabled) {
5618
5630
  }
5619
5631
 
5620
5632
  // src/components/InspectorContainer.tsx
5621
- import React37, { forwardRef as forwardRef16, memo as memo24 } from "react";
5633
+ import React38, { forwardRef as forwardRef16, memo as memo24 } from "react";
5622
5634
  var InspectorContainer = memo24(
5623
5635
  forwardRef16(function InspectorContainer2({
5624
5636
  header,
@@ -5630,7 +5642,7 @@ var InspectorContainer = memo24(
5630
5642
  style: style3
5631
5643
  }, forwardedRef) {
5632
5644
  const theme = useDesignSystemTheme();
5633
- return /* @__PURE__ */ React37.createElement(
5645
+ return /* @__PURE__ */ React38.createElement(
5634
5646
  "div",
5635
5647
  {
5636
5648
  ref: forwardedRef,
@@ -5645,13 +5657,13 @@ var InspectorContainer = memo24(
5645
5657
  }
5646
5658
  },
5647
5659
  header,
5648
- 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
5649
5661
  );
5650
5662
  })
5651
5663
  );
5652
5664
 
5653
5665
  // src/components/Label.tsx
5654
- import React38, { memo as memo25 } from "react";
5666
+ import React39, { memo as memo25 } from "react";
5655
5667
  import styled26 from "styled-components";
5656
5668
  var LabelLabel = styled26.label(
5657
5669
  ({ theme, $selected }) => ({
@@ -5680,7 +5692,7 @@ var LabelContainer2 = styled26.span(({ theme }) => ({
5680
5692
  alignItems: "center"
5681
5693
  }));
5682
5694
  function LabelRoot({ label, children }) {
5683
- 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)));
5684
5696
  }
5685
5697
  var Label;
5686
5698
  ((_Label) => {
@@ -5690,7 +5702,7 @@ var Label;
5690
5702
 
5691
5703
  // src/components/LabeledElementView.tsx
5692
5704
  import * as kiwi from "kiwi.js";
5693
- import React39, {
5705
+ import React40, {
5694
5706
  Children as Children5,
5695
5707
  createRef,
5696
5708
  Fragment,
@@ -5735,7 +5747,7 @@ var LabeledElementView = memo26(function LabeledElementView2({
5735
5747
  );
5736
5748
  }, [serializedIds]);
5737
5749
  const labelElements = useMemo20(() => {
5738
- return serializedIds.split(",").map((id, index) => /* @__PURE__ */ React39.createElement(
5750
+ return serializedIds.split(",").map((id, index) => /* @__PURE__ */ React40.createElement(
5739
5751
  "span",
5740
5752
  {
5741
5753
  key: id,
@@ -5813,13 +5825,13 @@ var LabeledElementView = memo26(function LabeledElementView2({
5813
5825
  `${Math.max(...heights)}px`
5814
5826
  );
5815
5827
  }, [refs, labelElements]);
5816
- 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));
5817
5829
  });
5818
5830
 
5819
5831
  // src/components/Progress.tsx
5820
5832
  import { clamp } from "@noya-app/noya-utils";
5821
5833
  import * as ProgressPrimitive from "@radix-ui/react-progress";
5822
- import React40 from "react";
5834
+ import React41 from "react";
5823
5835
  import styled28 from "styled-components";
5824
5836
  function Progress({
5825
5837
  value,
@@ -5829,7 +5841,7 @@ function Progress({
5829
5841
  variant = "normal"
5830
5842
  }) {
5831
5843
  const clampedValue = clamp(value, 0, 100);
5832
- 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(
5833
5845
  ProgressIndicator,
5834
5846
  {
5835
5847
  variant,
@@ -5854,7 +5866,7 @@ var ProgressIndicator = styled28(ProgressPrimitive.Indicator)(({ theme, variant
5854
5866
 
5855
5867
  // src/components/RadioGroup.tsx
5856
5868
  import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
5857
- import React41, {
5869
+ import React42, {
5858
5870
  createContext as createContext10,
5859
5871
  forwardRef as forwardRef17,
5860
5872
  memo as memo27,
@@ -5916,7 +5928,7 @@ var StyledItem = styled29(ToggleGroupPrimitive.Item).withConfig({
5916
5928
  }));
5917
5929
  var ToggleGroupItem = forwardRef17(function ToggleGroupItem2({ value, tooltip, children, disabled = false }, forwardedRef) {
5918
5930
  const { colorScheme } = useContext10(RadioGroupContext);
5919
- const itemElement = /* @__PURE__ */ React41.createElement(
5931
+ const itemElement = /* @__PURE__ */ React42.createElement(
5920
5932
  StyledItem,
5921
5933
  {
5922
5934
  ref: forwardedRef,
@@ -5926,7 +5938,7 @@ var ToggleGroupItem = forwardRef17(function ToggleGroupItem2({ value, tooltip, c
5926
5938
  },
5927
5939
  children
5928
5940
  );
5929
- return tooltip ? /* @__PURE__ */ React41.createElement(Tooltip, { content: tooltip }, itemElement) : itemElement;
5941
+ return tooltip ? /* @__PURE__ */ React42.createElement(Tooltip, { content: tooltip }, itemElement) : itemElement;
5930
5942
  });
5931
5943
  var RadioGroupContext = createContext10({
5932
5944
  colorScheme: "primary"
@@ -5948,7 +5960,7 @@ function ToggleGroupRoot({
5948
5960
  },
5949
5961
  [allowEmpty, onValueChange]
5950
5962
  );
5951
- return /* @__PURE__ */ React41.createElement(RadioGroupContext.Provider, { value: contextValue }, /* @__PURE__ */ React41.createElement(
5963
+ return /* @__PURE__ */ React42.createElement(RadioGroupContext.Provider, { value: contextValue }, /* @__PURE__ */ React42.createElement(
5952
5964
  StyledRoot,
5953
5965
  {
5954
5966
  id,
@@ -5968,7 +5980,7 @@ var RadioGroup;
5968
5980
 
5969
5981
  // src/components/Select.tsx
5970
5982
  import { memoize } from "@noya-app/noya-utils";
5971
- import React42, {
5983
+ import React43, {
5972
5984
  createContext as createContext11,
5973
5985
  memo as memo28,
5974
5986
  useCallback as useCallback23,
@@ -5991,7 +6003,7 @@ var SelectOption = memo28(function SelectOption2({
5991
6003
  addListener(value, onSelect);
5992
6004
  return () => removeListener(value);
5993
6005
  }, [addListener, onSelect, removeListener, value]);
5994
- return /* @__PURE__ */ React42.createElement("option", { value }, title ?? value);
6006
+ return /* @__PURE__ */ React43.createElement("option", { value }, title ?? value);
5995
6007
  });
5996
6008
  var createChevronSVGString = memoize(
5997
6009
  (color) => `
@@ -6065,7 +6077,7 @@ var Select = memo28(function Select2({
6065
6077
  const onChange = "options" in rest ? rest.onChange : void 0;
6066
6078
  const children = "options" in rest ? void 0 : rest.children;
6067
6079
  const optionElements = useMemo22(
6068
- () => options ? options.map((option, index) => /* @__PURE__ */ React42.createElement(
6080
+ () => options ? options.map((option, index) => /* @__PURE__ */ React43.createElement(
6069
6081
  SelectOption,
6070
6082
  {
6071
6083
  key: option,
@@ -6084,7 +6096,7 @@ var Select = memo28(function Select2({
6084
6096
  }),
6085
6097
  []
6086
6098
  );
6087
- 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(
6088
6100
  SelectElement,
6089
6101
  {
6090
6102
  id,
@@ -6097,13 +6109,13 @@ var Select = memo28(function Select2({
6097
6109
  onPointerDown: (event) => event.stopPropagation()
6098
6110
  },
6099
6111
  optionElements
6100
- )), label && /* @__PURE__ */ React42.createElement(SelectLabel, { htmlFor: id }, label));
6112
+ )), label && /* @__PURE__ */ React43.createElement(SelectLabel, { htmlFor: id }, label));
6101
6113
  });
6102
6114
 
6103
6115
  // src/components/SelectMenu.tsx
6104
6116
  import { DropdownChevronIcon } from "@noya-app/noya-icons";
6105
6117
  import * as Select3 from "@radix-ui/react-select";
6106
- import React43, { memo as memo29 } from "react";
6118
+ import React44, { memo as memo29 } from "react";
6107
6119
  import { styled as styled31 } from "styled-components";
6108
6120
  var SelectMenu = memo29(function SelectMenu2({
6109
6121
  id,
@@ -6118,23 +6130,23 @@ var SelectMenu = memo29(function SelectMenu2({
6118
6130
  (item) => typeof item !== "string" && item.value === value
6119
6131
  );
6120
6132
  const icon = selectedItem?.icon;
6121
- 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) => {
6122
6134
  if (typeof menuItem === "string") {
6123
- return /* @__PURE__ */ React43.createElement(StyledSeparator, null);
6135
+ return /* @__PURE__ */ React44.createElement(StyledSeparator, null);
6124
6136
  }
6125
6137
  const value2 = menuItem.value ?? "";
6126
- 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);
6127
6139
  })))));
6128
6140
  });
6129
6141
  var SelectContent = styled31(Select3.Content)(styles.contentStyle);
6130
6142
  var SelectViewport = styled31(Select3.Viewport)({});
6131
- var SelectItem = React43.forwardRef(
6143
+ var SelectItem = React44.forwardRef(
6132
6144
  ({
6133
6145
  children,
6134
6146
  icon,
6135
6147
  ...props
6136
6148
  }, forwardedRef) => {
6137
- 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));
6138
6150
  }
6139
6151
  );
6140
6152
  var StyledItem2 = styled31(Select3.Item)(styles.itemStyle);
@@ -6142,7 +6154,7 @@ var StyledSeparator = styled31(Select3.Separator)(styles.separatorStyle);
6142
6154
 
6143
6155
  // src/components/Slider.tsx
6144
6156
  import * as RadixSlider from "@radix-ui/react-slider";
6145
- import React44, { useCallback as useCallback24, useMemo as useMemo23 } from "react";
6157
+ import React45, { useCallback as useCallback24, useMemo as useMemo23 } from "react";
6146
6158
  import styled32 from "styled-components";
6147
6159
  var StyledSlider = styled32(RadixSlider.Root)({
6148
6160
  flex: "1",
@@ -6193,7 +6205,7 @@ var Slider = function Slider2({
6193
6205
  },
6194
6206
  [onValueChange]
6195
6207
  );
6196
- return /* @__PURE__ */ React44.createElement(
6208
+ return /* @__PURE__ */ React45.createElement(
6197
6209
  StyledSlider,
6198
6210
  {
6199
6211
  min,
@@ -6202,14 +6214,14 @@ var Slider = function Slider2({
6202
6214
  value: arrayValue,
6203
6215
  onValueChange: handleValueChange
6204
6216
  },
6205
- /* @__PURE__ */ React44.createElement(StyledTrack, null, /* @__PURE__ */ React44.createElement(StyledRange, null)),
6206
- /* @__PURE__ */ React44.createElement(StyledThumb2, null)
6217
+ /* @__PURE__ */ React45.createElement(StyledTrack, null, /* @__PURE__ */ React45.createElement(StyledRange, null)),
6218
+ /* @__PURE__ */ React45.createElement(StyledThumb2, null)
6207
6219
  );
6208
6220
  };
6209
6221
 
6210
6222
  // src/components/Switch.tsx
6211
6223
  import * as SwitchPrimitive from "@radix-ui/react-switch";
6212
- import React45 from "react";
6224
+ import React46 from "react";
6213
6225
  import styled33 from "styled-components";
6214
6226
  var SwitchRoot = styled33(SwitchPrimitive.Root)(({ theme, $colorScheme }) => ({
6215
6227
  all: "unset",
@@ -6244,7 +6256,7 @@ var Switch = function Switch2({
6244
6256
  onChange,
6245
6257
  colorScheme = "normal"
6246
6258
  }) {
6247
- return /* @__PURE__ */ React45.createElement(
6259
+ return /* @__PURE__ */ React46.createElement(
6248
6260
  SwitchRoot,
6249
6261
  {
6250
6262
  $colorScheme: colorScheme,
@@ -6253,12 +6265,12 @@ var Switch = function Switch2({
6253
6265
  onChange(newValue);
6254
6266
  }
6255
6267
  },
6256
- /* @__PURE__ */ React45.createElement(SwitchThumb, null)
6268
+ /* @__PURE__ */ React46.createElement(SwitchThumb, null)
6257
6269
  );
6258
6270
  };
6259
6271
 
6260
6272
  // src/components/TreeView.tsx
6261
- import React46, {
6273
+ import React47, {
6262
6274
  forwardRef as forwardRef18,
6263
6275
  memo as memo30,
6264
6276
  useCallback as useCallback25,
@@ -6279,14 +6291,14 @@ var TreeRow = forwardRef18(function TreeRow2({
6279
6291
  },
6280
6292
  [onClickChevron]
6281
6293
  );
6282
- 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(
6283
6295
  IconButton,
6284
6296
  {
6285
6297
  iconName: expanded ? "ChevronDownIcon2" : "ChevronRightIcon2",
6286
6298
  onClick: handleClickChevron,
6287
6299
  selected: rest.selected
6288
6300
  }
6289
- ), /* @__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);
6290
6302
  });
6291
6303
  var TreeView;
6292
6304
  ((TreeView2) => {
@@ -6298,7 +6310,7 @@ var TreeView;
6298
6310
 
6299
6311
  // src/components/WorkspaceLayout.tsx
6300
6312
  import { useKeyboardShortcuts as useKeyboardShortcuts3 } from "@noya-app/noya-keymap";
6301
- 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";
6302
6314
  import {
6303
6315
  Panel,
6304
6316
  PanelGroup,
@@ -6526,7 +6538,7 @@ var WorkspaceLayout = forwardRef19(function WorkspaceLayout2({
6526
6538
  }
6527
6539
  });
6528
6540
  const centerPanelPercentage = 100 - (leftPanelContent ? leftSidebarPercentage : 0) - (rightPanelContent ? rightSidebarPercentage : 0);
6529
- return /* @__PURE__ */ React48.createElement(
6541
+ return /* @__PURE__ */ React49.createElement(
6530
6542
  "div",
6531
6543
  {
6532
6544
  id,
@@ -6538,7 +6550,7 @@ var WorkspaceLayout = forwardRef19(function WorkspaceLayout2({
6538
6550
  ...style3
6539
6551
  }
6540
6552
  },
6541
- /* @__PURE__ */ React48.createElement(
6553
+ /* @__PURE__ */ React49.createElement(
6542
6554
  PanelGroup,
6543
6555
  {
6544
6556
  ref: panelGroupRef,
@@ -6547,7 +6559,7 @@ var WorkspaceLayout = forwardRef19(function WorkspaceLayout2({
6547
6559
  autoSaveId: autoSavePrefix ? `${autoSavePrefix}--${EDITOR_PANEL_GROUP_ID}` : void 0,
6548
6560
  style: { flex: "1" }
6549
6561
  },
6550
- hasLeftSidebar && /* @__PURE__ */ React48.createElement(React48.Fragment, null, /* @__PURE__ */ React48.createElement(
6562
+ hasLeftSidebar && /* @__PURE__ */ React49.createElement(React49.Fragment, null, /* @__PURE__ */ React49.createElement(
6551
6563
  Panel,
6552
6564
  {
6553
6565
  id: LEFT_SIDEBAR_ID,
@@ -6564,7 +6576,7 @@ var WorkspaceLayout = forwardRef19(function WorkspaceLayout2({
6564
6576
  }
6565
6577
  },
6566
6578
  leftPanelContent
6567
- ), /* @__PURE__ */ React48.createElement(
6579
+ ), /* @__PURE__ */ React49.createElement(
6568
6580
  PanelResizeHandle,
6569
6581
  {
6570
6582
  style: {
@@ -6575,7 +6587,7 @@ var WorkspaceLayout = forwardRef19(function WorkspaceLayout2({
6575
6587
  }
6576
6588
  }
6577
6589
  )),
6578
- /* @__PURE__ */ React48.createElement(
6590
+ /* @__PURE__ */ React49.createElement(
6579
6591
  Panel,
6580
6592
  {
6581
6593
  id: CONTENT_AREA_ID,
@@ -6590,7 +6602,7 @@ var WorkspaceLayout = forwardRef19(function WorkspaceLayout2({
6590
6602
  },
6591
6603
  centerPanelContent
6592
6604
  ),
6593
- hasRightSidebar && /* @__PURE__ */ React48.createElement(React48.Fragment, null, /* @__PURE__ */ React48.createElement(
6605
+ hasRightSidebar && /* @__PURE__ */ React49.createElement(React49.Fragment, null, /* @__PURE__ */ React49.createElement(
6594
6606
  PanelResizeHandle,
6595
6607
  {
6596
6608
  style: {
@@ -6600,7 +6612,7 @@ var WorkspaceLayout = forwardRef19(function WorkspaceLayout2({
6600
6612
  backgroundColor: theme.colors.divider
6601
6613
  }
6602
6614
  }
6603
- ), /* @__PURE__ */ React48.createElement(
6615
+ ), /* @__PURE__ */ React49.createElement(
6604
6616
  Panel,
6605
6617
  {
6606
6618
  id: RIGHT_SIDEBAR_ID,
@@ -6663,7 +6675,7 @@ var SUPPORTED_CANVAS_UPLOAD_TYPES = [
6663
6675
 
6664
6676
  // src/components/ArrayController.tsx
6665
6677
  import { range as range2 } from "@noya-app/noya-utils";
6666
- 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";
6667
6679
  import styled35, { useTheme as useTheme5 } from "styled-components";
6668
6680
 
6669
6681
  // src/components/InspectorPrimitives.tsx
@@ -6682,7 +6694,7 @@ __export(InspectorPrimitives_exports, {
6682
6694
  Title: () => Title3,
6683
6695
  VerticalSeparator: () => VerticalSeparator
6684
6696
  });
6685
- import React49, { memo as memo31 } from "react";
6697
+ import React50, { memo as memo31 } from "react";
6686
6698
  import styled34, { useTheme as useTheme4 } from "styled-components";
6687
6699
  var Section = styled34.div(({ theme, $padding = "10px", $gap }) => ({
6688
6700
  flex: "0 0 auto",
@@ -6729,8 +6741,8 @@ var Checkbox = styled34.input(({ theme }) => ({
6729
6741
  var Text3 = styled34.span(({ theme }) => ({
6730
6742
  ...theme.textStyles.small
6731
6743
  }));
6732
- var VerticalSeparator = () => /* @__PURE__ */ React49.createElement(Spacer.Vertical, { size: useTheme4().sizes.inspector.verticalSeparator });
6733
- 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 });
6734
6746
  var SliderRowLabel = styled34.span(({ theme }) => ({
6735
6747
  ...theme.textStyles.small,
6736
6748
  color: theme.colors.textMuted,
@@ -6758,13 +6770,13 @@ var LabeledRow = memo31(function LabeledRow2({
6758
6770
  gap,
6759
6771
  right
6760
6772
  }) {
6761
- 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)));
6762
6774
  });
6763
6775
  var LabeledSliderRow = memo31(function LabeledRow3({
6764
6776
  children,
6765
6777
  label
6766
6778
  }) {
6767
- 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)));
6768
6780
  });
6769
6781
 
6770
6782
  // src/components/ArrayController.tsx
@@ -6817,11 +6829,11 @@ var ArrayController = memo32(function ArrayController2({
6817
6829
  [onMoveItem, reversed]
6818
6830
  );
6819
6831
  const renderRow = (index) => {
6820
- 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 }));
6821
6833
  };
6822
- 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(
6823
6835
  [
6824
- onClickTrash && /* @__PURE__ */ React50.createElement(
6836
+ onClickTrash && /* @__PURE__ */ React51.createElement(
6825
6837
  IconButton,
6826
6838
  {
6827
6839
  id: `${id}-trash`,
@@ -6830,7 +6842,7 @@ var ArrayController = memo32(function ArrayController2({
6830
6842
  onClick: onClickTrash
6831
6843
  }
6832
6844
  ),
6833
- onClickExpand && /* @__PURE__ */ React50.createElement(
6845
+ onClickExpand && /* @__PURE__ */ React51.createElement(
6834
6846
  IconButton,
6835
6847
  {
6836
6848
  id: `${id}-gear`,
@@ -6839,7 +6851,7 @@ var ArrayController = memo32(function ArrayController2({
6839
6851
  onClick: onClickExpand
6840
6852
  }
6841
6853
  ),
6842
- onClickPlus && /* @__PURE__ */ React50.createElement(
6854
+ onClickPlus && /* @__PURE__ */ React51.createElement(
6843
6855
  IconButton,
6844
6856
  {
6845
6857
  id: `${id}-add`,
@@ -6849,15 +6861,15 @@ var ArrayController = memo32(function ArrayController2({
6849
6861
  }
6850
6862
  )
6851
6863
  ],
6852
- /* @__PURE__ */ React50.createElement(Spacer.Horizontal, { size: 8 })
6853
- )), /* @__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(
6854
6866
  Sortable.Root,
6855
6867
  {
6856
6868
  keys,
6857
6869
  renderOverlay: renderRow,
6858
6870
  onMoveItem: handleMoveItem
6859
6871
  },
6860
- 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(
6861
6873
  ListView.DragIndicator,
6862
6874
  {
6863
6875
  $gap: 0,
@@ -6871,7 +6883,7 @@ var ArrayController = memo32(function ArrayController2({
6871
6883
 
6872
6884
  // src/components/DimensionInput.tsx
6873
6885
  import { round } from "@noya-app/noya-utils";
6874
- import React51, { memo as memo33, useCallback as useCallback27 } from "react";
6886
+ import React52, { memo as memo33, useCallback as useCallback27 } from "react";
6875
6887
  function getNewValue(value, mode, delta) {
6876
6888
  return delta === void 0 ? value : mode === "replace" ? delta : value + delta;
6877
6889
  }
@@ -6893,7 +6905,7 @@ var DimensionInput = memo33(function DimensionInput2({
6893
6905
  (value2) => onSetValue(value2, "replace"),
6894
6906
  [onSetValue]
6895
6907
  );
6896
- 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(
6897
6909
  InputField.NumberInput,
6898
6910
  {
6899
6911
  value: value === void 0 ? value : round(value, 2),
@@ -6902,7 +6914,7 @@ var DimensionInput = memo33(function DimensionInput2({
6902
6914
  disabled,
6903
6915
  ...trigger === "change" ? { onChange: handleSetValue } : { onSubmit: handleSetValue }
6904
6916
  }
6905
- ), label && /* @__PURE__ */ React51.createElement(InputField.Label, null, label));
6917
+ ), label && /* @__PURE__ */ React52.createElement(InputField.Label, null, label));
6906
6918
  });
6907
6919
  export {
6908
6920
  ActivityIndicator,