@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.js CHANGED
@@ -518,35 +518,47 @@ var Button = (0, import_react6.forwardRef)(function Button2({
518
518
 
519
519
  // src/components/Chip.tsx
520
520
  var import_noya_icons3 = require("@noya-app/noya-icons");
521
- var import_react36 = __toESM(require("react"));
521
+ var import_react37 = __toESM(require("react"));
522
522
  var import_styled_components16 = __toESM(require("styled-components"));
523
523
 
524
524
  // src/contexts/DesignSystemConfiguration.tsx
525
525
  var import_noya_keymap3 = require("@noya-app/noya-keymap");
526
- var import_react35 = __toESM(require("react"));
526
+ var import_react36 = __toESM(require("react"));
527
527
  var import_styled_components15 = require("styled-components");
528
528
 
529
529
  // src/components/Toast.tsx
530
530
  var ToastPrimitive = __toESM(require("@radix-ui/react-toast"));
531
- var import_react8 = __toESM(require("react"));
531
+ var import_react9 = __toESM(require("react"));
532
532
  var import_styled_components7 = __toESM(require("styled-components"));
533
533
 
534
534
  // src/components/IconButton.tsx
535
+ var import_react8 = __toESM(require("react"));
536
+ var import_styled_components6 = require("styled-components");
537
+
538
+ // src/components/Icons.tsx
535
539
  var Icons = __toESM(require("@noya-app/noya-icons"));
536
540
  var import_react7 = __toESM(require("react"));
537
- var import_styled_components6 = require("styled-components");
538
- var IconButton = (0, import_react7.memo)(
539
- (0, import_react7.forwardRef)(function IconButton2({ selected, iconName, color, size: size2, contentStyle, ...props }, forwardedRef) {
541
+ function renderIcon(iconName) {
542
+ if (typeof iconName === "string") {
543
+ const Icon = Icons[iconName];
544
+ return /* @__PURE__ */ import_react7.default.createElement(Icon, null);
545
+ }
546
+ return iconName;
547
+ }
548
+
549
+ // src/components/IconButton.tsx
550
+ var IconButton = (0, import_react8.memo)(
551
+ (0, import_react8.forwardRef)(function IconButton2({ selected, iconName, color, size: size2, contentStyle, ...props }, forwardedRef) {
540
552
  const { icon: iconColor, iconSelected: iconSelectedColor } = (0, import_styled_components6.useTheme)().colors;
541
553
  const Icon = Icons[iconName];
542
- const style3 = (0, import_react7.useMemo)(() => {
554
+ const style3 = (0, import_react8.useMemo)(() => {
543
555
  return {
544
556
  padding: "0 2px",
545
557
  ...size2 && { minHeight: size2 },
546
558
  ...contentStyle
547
559
  };
548
560
  }, [contentStyle, size2]);
549
- return /* @__PURE__ */ import_react7.default.createElement(Button, { ref: forwardedRef, ...props, variant: "none", contentStyle: style3 }, /* @__PURE__ */ import_react7.default.createElement(
561
+ return /* @__PURE__ */ import_react8.default.createElement(Button, { ref: forwardedRef, ...props, variant: "none", contentStyle: style3 }, /* @__PURE__ */ import_react8.default.createElement(
550
562
  Icon,
551
563
  {
552
564
  color: color ?? (selected ? iconSelectedColor : iconColor),
@@ -606,9 +618,9 @@ var Toast = ({
606
618
  children,
607
619
  ...props
608
620
  }) => {
609
- return /* @__PURE__ */ import_react8.default.createElement(ToastRoot, { ...props }, title && /* @__PURE__ */ import_react8.default.createElement(ToastTitle, null, title), /* @__PURE__ */ import_react8.default.createElement(ToastDescription, null, content), children && /* @__PURE__ */ import_react8.default.createElement(ToastAction, { asChild: true, altText: "" }, children), /* @__PURE__ */ import_react8.default.createElement(ToastPrimitive.Close, { "aria-label": "Close", asChild: true }, /* @__PURE__ */ import_react8.default.createElement(IconButton, { iconName: "Cross1Icon" })));
621
+ return /* @__PURE__ */ import_react9.default.createElement(ToastRoot, { ...props }, title && /* @__PURE__ */ import_react9.default.createElement(ToastTitle, null, title), /* @__PURE__ */ import_react9.default.createElement(ToastDescription, null, content), children && /* @__PURE__ */ import_react9.default.createElement(ToastAction, { asChild: true, altText: "" }, children), /* @__PURE__ */ import_react9.default.createElement(ToastPrimitive.Close, { "aria-label": "Close", asChild: true }, /* @__PURE__ */ import_react9.default.createElement(IconButton, { iconName: "Cross1Icon" })));
610
622
  };
611
- var ToastProvider = ({ children }) => /* @__PURE__ */ import_react8.default.createElement(ToastPrimitive.Provider, null, children, /* @__PURE__ */ import_react8.default.createElement(ToastViewport, null));
623
+ var ToastProvider = ({ children }) => /* @__PURE__ */ import_react9.default.createElement(ToastPrimitive.Provider, null, children, /* @__PURE__ */ import_react9.default.createElement(ToastViewport, null));
612
624
 
613
625
  // src/theme/dark.ts
614
626
  var dark_exports = {};
@@ -891,33 +903,33 @@ var colors2 = (0, import_immer.default)(colors, (colors3) => {
891
903
  });
892
904
 
893
905
  // src/contexts/DialogContext.tsx
894
- var import_react33 = __toESM(require("react"));
906
+ var import_react34 = __toESM(require("react"));
895
907
  var import_styled_components14 = __toESM(require("styled-components"));
896
908
 
897
909
  // src/components/Dialog.tsx
898
910
  var DialogPrimitive = __toESM(require("@radix-ui/react-dialog"));
899
- var import_react10 = __toESM(require("react"));
911
+ var import_react11 = __toESM(require("react"));
900
912
  var import_styled_components9 = __toESM(require("styled-components"));
901
913
 
902
914
  // src/components/Spacer.tsx
903
- var import_react9 = __toESM(require("react"));
915
+ var import_react10 = __toESM(require("react"));
904
916
  var import_styled_components8 = __toESM(require("styled-components"));
905
917
  var SpacerVertical_ = import_styled_components8.default.span(({ $size, $inline }) => ({
906
918
  display: $inline ? "inline-block" : "block",
907
919
  ...$size === void 0 ? { flex: 1 } : { minHeight: $size }
908
920
  }));
909
- var SpacerVertical = (0, import_react9.forwardRef)(
921
+ var SpacerVertical = (0, import_react10.forwardRef)(
910
922
  ({ size: size2, inline, ...props }, ref) => {
911
- return /* @__PURE__ */ import_react9.default.createElement(SpacerVertical_, { $size: size2, $inline: inline, ...props, ref });
923
+ return /* @__PURE__ */ import_react10.default.createElement(SpacerVertical_, { $size: size2, $inline: inline, ...props, ref });
912
924
  }
913
925
  );
914
926
  var SpacerHorizontal_ = import_styled_components8.default.span(({ $size, $inline }) => ({
915
927
  display: $inline ? "inline-block" : "block",
916
928
  ...$size === void 0 ? { flex: 1 } : { minWidth: $size }
917
929
  }));
918
- var SpacerHorizontal = (0, import_react9.forwardRef)(
930
+ var SpacerHorizontal = (0, import_react10.forwardRef)(
919
931
  ({ size: size2, inline, ...props }, ref) => {
920
- return /* @__PURE__ */ import_react9.default.createElement(SpacerHorizontal_, { $size: size2, $inline: inline, ...props, ref });
932
+ return /* @__PURE__ */ import_react10.default.createElement(SpacerHorizontal_, { $size: size2, $inline: inline, ...props, ref });
921
933
  }
922
934
  );
923
935
  var Spacer;
@@ -972,7 +984,7 @@ var CloseButtonContainer = import_styled_components9.default.div(({ theme }) =>
972
984
  // boxShadow: `0 0 2px rgba(0, 0, 0, 0.2)`,
973
985
  border: `1px solid rgba(128,128,128,0.2)`
974
986
  }));
975
- var Dialog = (0, import_react10.forwardRef)(function Dialog2({
987
+ var Dialog = (0, import_react11.forwardRef)(function Dialog2({
976
988
  children,
977
989
  title,
978
990
  description,
@@ -982,15 +994,15 @@ var Dialog = (0, import_react10.forwardRef)(function Dialog2({
982
994
  onOpenAutoFocus,
983
995
  closeOnInteractOutside = true
984
996
  }, forwardedRef) {
985
- const contentRef = (0, import_react10.useRef)(null);
986
- (0, import_react10.useImperativeHandle)(forwardedRef, () => ({
997
+ const contentRef = (0, import_react11.useRef)(null);
998
+ (0, import_react11.useImperativeHandle)(forwardedRef, () => ({
987
999
  containsElement(element) {
988
1000
  if (!contentRef.current)
989
1001
  return false;
990
1002
  return contentRef.current.contains(element);
991
1003
  }
992
1004
  }));
993
- return /* @__PURE__ */ import_react10.default.createElement(DialogPrimitive.Root, { open, onOpenChange }, /* @__PURE__ */ import_react10.default.createElement(StyledOverlay, null), /* @__PURE__ */ import_react10.default.createElement(
1005
+ return /* @__PURE__ */ import_react11.default.createElement(DialogPrimitive.Root, { open, onOpenChange }, /* @__PURE__ */ import_react11.default.createElement(StyledOverlay, null), /* @__PURE__ */ import_react11.default.createElement(
994
1006
  StyledContent,
995
1007
  {
996
1008
  ref: contentRef,
@@ -1005,14 +1017,14 @@ var Dialog = (0, import_react10.forwardRef)(function Dialog2({
1005
1017
  }
1006
1018
  }
1007
1019
  },
1008
- /* @__PURE__ */ import_react10.default.createElement(CloseButtonContainer, null, /* @__PURE__ */ import_react10.default.createElement(DialogPrimitive.Close, { asChild: true }, /* @__PURE__ */ import_react10.default.createElement(IconButton, { iconName: "Cross1Icon" }))),
1009
- title && /* @__PURE__ */ import_react10.default.createElement(import_react10.default.Fragment, null, /* @__PURE__ */ import_react10.default.createElement(StyledTitle, null, title), /* @__PURE__ */ import_react10.default.createElement(Spacer.Vertical, { size: description ? 10 : 20 })),
1010
- description && /* @__PURE__ */ import_react10.default.createElement(import_react10.default.Fragment, null, /* @__PURE__ */ import_react10.default.createElement(Spacer.Vertical, { size: 10 }), /* @__PURE__ */ import_react10.default.createElement(StyledDescription, null, description), /* @__PURE__ */ import_react10.default.createElement(Spacer.Vertical, { size: 20 })),
1020
+ /* @__PURE__ */ import_react11.default.createElement(CloseButtonContainer, null, /* @__PURE__ */ import_react11.default.createElement(DialogPrimitive.Close, { asChild: true }, /* @__PURE__ */ import_react11.default.createElement(IconButton, { iconName: "Cross1Icon" }))),
1021
+ title && /* @__PURE__ */ import_react11.default.createElement(import_react11.default.Fragment, null, /* @__PURE__ */ import_react11.default.createElement(StyledTitle, null, title), /* @__PURE__ */ import_react11.default.createElement(Spacer.Vertical, { size: description ? 10 : 20 })),
1022
+ description && /* @__PURE__ */ import_react11.default.createElement(import_react11.default.Fragment, null, /* @__PURE__ */ import_react11.default.createElement(Spacer.Vertical, { size: 10 }), /* @__PURE__ */ import_react11.default.createElement(StyledDescription, null, description), /* @__PURE__ */ import_react11.default.createElement(Spacer.Vertical, { size: 20 })),
1011
1023
  children
1012
1024
  ));
1013
1025
  });
1014
- var FullscreenDialog = (0, import_react10.forwardRef)(function FullscreenDialog2({ style: style3, ...rest }, forwardedRef) {
1015
- return /* @__PURE__ */ import_react10.default.createElement(
1026
+ var FullscreenDialog = (0, import_react11.forwardRef)(function FullscreenDialog2({ style: style3, ...rest }, forwardedRef) {
1027
+ return /* @__PURE__ */ import_react11.default.createElement(
1016
1028
  Dialog,
1017
1029
  {
1018
1030
  ref: forwardedRef,
@@ -1038,13 +1050,13 @@ var FullscreenDialog = (0, import_react10.forwardRef)(function FullscreenDialog2
1038
1050
  var import_noya_icons2 = require("@noya-app/noya-icons");
1039
1051
 
1040
1052
  // ../noya-react-utils/src/components/AutoSizer.tsx
1041
- var import_react11 = __toESM(require("react"));
1053
+ var import_react12 = __toESM(require("react"));
1042
1054
 
1043
1055
  // ../noya-react-utils/src/hooks/useSize.ts
1044
- var React10 = __toESM(require("react"));
1056
+ var React11 = __toESM(require("react"));
1045
1057
  function useSize(refToObserve, dimensions = "both") {
1046
- const [size2, setSize] = React10.useState(void 0);
1047
- React10.useEffect(() => {
1058
+ const [size2, setSize] = React11.useState(void 0);
1059
+ React11.useEffect(() => {
1048
1060
  if (refToObserve.current) {
1049
1061
  const elementToObserve = refToObserve.current;
1050
1062
  const resizeObserver = new ResizeObserver((entries) => {
@@ -1091,37 +1103,37 @@ var style = {
1091
1103
  flex: "1 0 0",
1092
1104
  flexDirection: "column"
1093
1105
  };
1094
- var AutoSizer = (0, import_react11.memo)(function AutoSizer2({
1106
+ var AutoSizer = (0, import_react12.memo)(function AutoSizer2({
1095
1107
  children,
1096
1108
  className
1097
1109
  }) {
1098
- const containerRef = (0, import_react11.useRef)(null);
1110
+ const containerRef = (0, import_react12.useRef)(null);
1099
1111
  const containerSize = useSize(containerRef);
1100
- return /* @__PURE__ */ import_react11.default.createElement("div", { ref: containerRef, style, className }, containerSize && containerSize.width > 0 && containerSize.height > 0 && children(containerSize));
1112
+ return /* @__PURE__ */ import_react12.default.createElement("div", { ref: containerRef, style, className }, containerSize && containerSize.width > 0 && containerSize.height > 0 && children(containerSize));
1101
1113
  });
1102
- var SingleDimensionAutoSizer = (0, import_react11.memo)(function SingleDimensionAutoSizer2({
1114
+ var SingleDimensionAutoSizer = (0, import_react12.memo)(function SingleDimensionAutoSizer2({
1103
1115
  children,
1104
1116
  dimension,
1105
1117
  className
1106
1118
  }) {
1107
- const containerRef = (0, import_react11.useRef)(null);
1119
+ const containerRef = (0, import_react12.useRef)(null);
1108
1120
  const containerSize = useSize(containerRef, dimension);
1109
- return /* @__PURE__ */ import_react11.default.createElement("div", { ref: containerRef, style, className }, containerSize && containerSize[dimension] > 0 && children(containerSize[dimension]));
1121
+ return /* @__PURE__ */ import_react12.default.createElement("div", { ref: containerRef, style, className }, containerSize && containerSize[dimension] > 0 && children(containerSize[dimension]));
1110
1122
  });
1111
1123
 
1112
1124
  // ../noya-react-utils/src/components/FileDropTarget.tsx
1113
- var import_react13 = __toESM(require("react"));
1125
+ var import_react14 = __toESM(require("react"));
1114
1126
 
1115
1127
  // ../noya-react-utils/src/hooks/useFileDropTarget.ts
1116
- var import_react12 = require("react");
1128
+ var import_react13 = require("react");
1117
1129
  function useFileDropTarget(dropEvent) {
1118
- const [isDropTargetActive, setIsDropTargetActive] = (0, import_react12.useState)(false);
1119
- const handleDragEvent = (0, import_react12.useCallback)((event, on) => {
1130
+ const [isDropTargetActive, setIsDropTargetActive] = (0, import_react13.useState)(false);
1131
+ const handleDragEvent = (0, import_react13.useCallback)((event, on) => {
1120
1132
  if (on !== void 0)
1121
1133
  setIsDropTargetActive(on);
1122
1134
  event.preventDefault();
1123
1135
  }, []);
1124
- const handleDropEvent = (0, import_react12.useCallback)(
1136
+ const handleDropEvent = (0, import_react13.useCallback)(
1125
1137
  (event) => {
1126
1138
  dropEvent(event);
1127
1139
  setIsDropTargetActive(false);
@@ -1144,12 +1156,12 @@ function isSupportedFile(file, supportedFileTypes) {
1144
1156
  return supportedFileTypes.includes(file.type) || file.type === "" && file.name.endsWith(".sketch");
1145
1157
  }
1146
1158
  var style2 = { display: "flex", flex: 1 };
1147
- var FileDropTarget = (0, import_react13.memo)(function FileDropTarget2({
1159
+ var FileDropTarget = (0, import_react14.memo)(function FileDropTarget2({
1148
1160
  children,
1149
1161
  onDropFiles,
1150
1162
  supportedFileTypes
1151
1163
  }) {
1152
- const handleFile = (0, import_react13.useCallback)(
1164
+ const handleFile = (0, import_react14.useCallback)(
1153
1165
  (event) => {
1154
1166
  event.preventDefault();
1155
1167
  const offsetPoint = {
@@ -1182,51 +1194,51 @@ var FileDropTarget = (0, import_react13.memo)(function FileDropTarget2({
1182
1194
  [onDropFiles, supportedFileTypes]
1183
1195
  );
1184
1196
  const { dropTargetProps, isDropTargetActive } = useFileDropTarget(handleFile);
1185
- return /* @__PURE__ */ import_react13.default.createElement("div", { style: style2, ...dropTargetProps }, typeof children === "function" ? children(isDropTargetActive) : children);
1197
+ return /* @__PURE__ */ import_react14.default.createElement("div", { style: style2, ...dropTargetProps }, typeof children === "function" ? children(isDropTargetActive) : children);
1186
1198
  });
1187
1199
 
1188
1200
  // ../noya-react-utils/src/hooks/useDeepArray.ts
1189
1201
  var import_noya_utils = require("@noya-app/noya-utils");
1190
- var import_react14 = require("react");
1202
+ var import_react15 = require("react");
1191
1203
 
1192
1204
  // ../noya-react-utils/src/hooks/useDeepState.ts
1193
1205
  var import_noya_utils2 = require("@noya-app/noya-utils");
1194
- var import_react15 = require("react");
1206
+ var import_react16 = require("react");
1195
1207
 
1196
1208
  // ../noya-react-utils/src/hooks/useFetch.ts
1197
- var import_react16 = require("react");
1209
+ var import_react17 = require("react");
1198
1210
 
1199
1211
  // ../noya-react-utils/src/hooks/useIsMounted.ts
1200
- var import_react17 = require("react");
1212
+ var import_react18 = require("react");
1201
1213
 
1202
1214
  // ../noya-react-utils/src/hooks/useLateReference.ts
1203
- var import_react18 = require("react");
1215
+ var import_react19 = require("react");
1204
1216
 
1205
1217
  // ../noya-react-utils/src/hooks/useLazyValue.ts
1206
- var import_react19 = require("react");
1218
+ var import_react20 = require("react");
1207
1219
 
1208
1220
  // ../noya-react-utils/src/hooks/useMutableState.ts
1209
- var import_react20 = require("react");
1221
+ var import_react21 = require("react");
1210
1222
 
1211
1223
  // ../noya-react-utils/src/hooks/usePersistentState.ts
1212
- var import_react21 = require("react");
1224
+ var import_react22 = require("react");
1213
1225
 
1214
1226
  // ../noya-react-utils/src/hooks/usePixelRatio.ts
1215
- var import_react22 = require("react");
1227
+ var import_react23 = require("react");
1216
1228
 
1217
1229
  // ../noya-react-utils/src/hooks/useShallowArray.ts
1218
1230
  var import_noya_utils3 = require("@noya-app/noya-utils");
1219
- var import_react23 = require("react");
1231
+ var import_react24 = require("react");
1220
1232
 
1221
1233
  // ../noya-react-utils/src/hooks/useStableCallback.ts
1222
- var import_react24 = require("react");
1234
+ var import_react25 = require("react");
1223
1235
 
1224
1236
  // ../noya-react-utils/src/hooks/useSystemColorScheme.ts
1225
- var import_react25 = require("react");
1237
+ var import_react26 = require("react");
1226
1238
 
1227
1239
  // ../noya-react-utils/src/hooks/useUrlHashParameters.ts
1228
1240
  var import_noya_utils4 = require("@noya-app/noya-utils");
1229
- var import_react26 = require("react");
1241
+ var import_react27 = require("react");
1230
1242
 
1231
1243
  // ../emitter/src/index.ts
1232
1244
  var Emitter = class {
@@ -1317,7 +1329,7 @@ function assignRef(ref, value) {
1317
1329
  }
1318
1330
 
1319
1331
  // src/components/InputField.tsx
1320
- var import_react32 = __toESM(require("react"));
1332
+ var import_react33 = __toESM(require("react"));
1321
1333
  var import_styled_components13 = __toESM(require("styled-components"));
1322
1334
 
1323
1335
  // src/utils/handleNudge.ts
@@ -1348,12 +1360,12 @@ function handleNudge(e) {
1348
1360
  var import_noya_icons = require("@noya-app/noya-icons");
1349
1361
  var import_noya_keymap2 = require("@noya-app/noya-keymap");
1350
1362
  var RadixDropdownMenu = __toESM(require("@radix-ui/react-dropdown-menu"));
1351
- var import_react28 = __toESM(require("react"));
1363
+ var import_react29 = __toESM(require("react"));
1352
1364
  var import_styled_components11 = __toESM(require("styled-components"));
1353
1365
 
1354
1366
  // src/components/internal/Menu.tsx
1355
1367
  var import_noya_keymap = require("@noya-app/noya-keymap");
1356
- var import_react27 = __toESM(require("react"));
1368
+ var import_react28 = __toESM(require("react"));
1357
1369
  var import_styled_components10 = __toESM(require("styled-components"));
1358
1370
  var SEPARATOR_ITEM = "separator";
1359
1371
  var CHECKBOX_WIDTH = 15;
@@ -1440,12 +1452,12 @@ var ShortcutElement = import_styled_components10.default.kbd(
1440
1452
  }
1441
1453
  })
1442
1454
  );
1443
- var KeyboardShortcut = (0, import_react27.memo)(function KeyboardShortcut2({
1455
+ var KeyboardShortcut = (0, import_react28.memo)(function KeyboardShortcut2({
1444
1456
  shortcut
1445
1457
  }) {
1446
1458
  const platform = useDesignSystemConfiguration().platform;
1447
1459
  const { keys, separator } = (0, import_noya_keymap.getShortcutDisplayParts)(shortcut, platform);
1448
- const keyElements = keys.map((key) => /* @__PURE__ */ import_react27.default.createElement(
1460
+ const keyElements = keys.map((key) => /* @__PURE__ */ import_react28.default.createElement(
1449
1461
  ShortcutElement,
1450
1462
  {
1451
1463
  key,
@@ -1453,9 +1465,9 @@ var KeyboardShortcut = (0, import_react27.memo)(function KeyboardShortcut2({
1453
1465
  },
1454
1466
  key
1455
1467
  ));
1456
- return /* @__PURE__ */ import_react27.default.createElement(import_react27.default.Fragment, null, separator ? withSeparatorElements(
1468
+ return /* @__PURE__ */ import_react28.default.createElement(import_react28.default.Fragment, null, separator ? withSeparatorElements(
1457
1469
  keyElements,
1458
- /* @__PURE__ */ import_react27.default.createElement(ShortcutElement, null, separator)
1470
+ /* @__PURE__ */ import_react28.default.createElement(ShortcutElement, null, separator)
1459
1471
  ) : keyElements);
1460
1472
  });
1461
1473
 
@@ -1470,7 +1482,7 @@ var CheckboxItemElement = (0, import_styled_components11.default)(RadixDropdownM
1470
1482
  var StyledItemIndicator = (0, import_styled_components11.default)(RadixDropdownMenu.ItemIndicator)(
1471
1483
  styles.itemIndicatorStyle
1472
1484
  );
1473
- var DropdownMenuItem = (0, import_react28.memo)(function ContextMenuItem({
1485
+ var DropdownMenuItem = (0, import_react29.memo)(function ContextMenuItem({
1474
1486
  value,
1475
1487
  children,
1476
1488
  onSelect,
@@ -1481,27 +1493,27 @@ var DropdownMenuItem = (0, import_react28.memo)(function ContextMenuItem({
1481
1493
  items,
1482
1494
  shortcut
1483
1495
  }) {
1484
- const handleSelectItem = (0, import_react28.useCallback)(() => {
1496
+ const handleSelectItem = (0, import_react29.useCallback)(() => {
1485
1497
  if (!value)
1486
1498
  return;
1487
1499
  onSelect(value);
1488
1500
  }, [onSelect, value]);
1489
1501
  if (checked) {
1490
- return /* @__PURE__ */ import_react28.default.createElement(
1502
+ return /* @__PURE__ */ import_react29.default.createElement(
1491
1503
  CheckboxItemElement,
1492
1504
  {
1493
1505
  checked,
1494
1506
  disabled,
1495
1507
  onSelect: handleSelectItem
1496
1508
  },
1497
- /* @__PURE__ */ import_react28.default.createElement(StyledItemIndicator, null, /* @__PURE__ */ import_react28.default.createElement(import_noya_icons.CheckIcon, null)),
1498
- icon && /* @__PURE__ */ import_react28.default.createElement(import_react28.default.Fragment, null, icon, /* @__PURE__ */ import_react28.default.createElement(Spacer.Horizontal, { size: 8 })),
1509
+ /* @__PURE__ */ import_react29.default.createElement(StyledItemIndicator, null, /* @__PURE__ */ import_react29.default.createElement(import_noya_icons.CheckIcon, null)),
1510
+ icon && /* @__PURE__ */ import_react29.default.createElement(import_react29.default.Fragment, null, renderIcon(icon), /* @__PURE__ */ import_react29.default.createElement(Spacer.Horizontal, { size: 8 })),
1499
1511
  children
1500
1512
  );
1501
1513
  }
1502
- const element = /* @__PURE__ */ import_react28.default.createElement(ItemElement, { disabled, onSelect: handleSelectItem }, indented && /* @__PURE__ */ import_react28.default.createElement(Spacer.Horizontal, { size: CHECKBOX_WIDTH - CHECKBOX_RIGHT_INSET }), icon && /* @__PURE__ */ import_react28.default.createElement(import_react28.default.Fragment, null, icon, /* @__PURE__ */ import_react28.default.createElement(Spacer.Horizontal, { size: 8 })), children, shortcut && /* @__PURE__ */ import_react28.default.createElement(import_react28.default.Fragment, null, /* @__PURE__ */ import_react28.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react28.default.createElement(Spacer.Horizontal, { size: 24 }), /* @__PURE__ */ import_react28.default.createElement(KeyboardShortcut, { shortcut })), items && items.length > 0 && /* @__PURE__ */ import_react28.default.createElement(import_react28.default.Fragment, null, /* @__PURE__ */ import_react28.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react28.default.createElement(Spacer.Horizontal, { size: 16 }), /* @__PURE__ */ import_react28.default.createElement(import_noya_icons.ChevronRightIcon, null)));
1514
+ const element = /* @__PURE__ */ import_react29.default.createElement(ItemElement, { disabled, onSelect: handleSelectItem }, indented && /* @__PURE__ */ import_react29.default.createElement(Spacer.Horizontal, { size: CHECKBOX_WIDTH - CHECKBOX_RIGHT_INSET }), icon && /* @__PURE__ */ import_react29.default.createElement(import_react29.default.Fragment, null, renderIcon(icon), /* @__PURE__ */ import_react29.default.createElement(Spacer.Horizontal, { size: 8 })), children, shortcut && /* @__PURE__ */ import_react29.default.createElement(import_react29.default.Fragment, null, /* @__PURE__ */ import_react29.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react29.default.createElement(Spacer.Horizontal, { size: 24 }), /* @__PURE__ */ import_react29.default.createElement(KeyboardShortcut, { shortcut })), items && items.length > 0 && /* @__PURE__ */ import_react29.default.createElement(import_react29.default.Fragment, null, /* @__PURE__ */ import_react29.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react29.default.createElement(Spacer.Horizontal, { size: 16 }), /* @__PURE__ */ import_react29.default.createElement(import_noya_icons.ChevronRightIcon, null)));
1503
1515
  if (items && items.length > 0) {
1504
- return /* @__PURE__ */ import_react28.default.createElement(
1516
+ return /* @__PURE__ */ import_react29.default.createElement(
1505
1517
  DropdownMenuRoot,
1506
1518
  {
1507
1519
  isNested: true,
@@ -1517,7 +1529,7 @@ var DropdownMenuItem = (0, import_react28.memo)(function ContextMenuItem({
1517
1529
  });
1518
1530
  var Content5 = (0, import_styled_components11.default)(RadixDropdownMenu.Content)(styles.contentStyle);
1519
1531
  var SubContent2 = (0, import_styled_components11.default)(RadixDropdownMenu.SubContent)(styles.contentStyle);
1520
- var DropdownMenuRoot = (0, import_react28.forwardRef)(function DropdownMenuRoot2({
1532
+ var DropdownMenuRoot = (0, import_react29.forwardRef)(function DropdownMenuRoot2({
1521
1533
  items,
1522
1534
  children,
1523
1535
  onSelect,
@@ -1535,7 +1547,7 @@ var DropdownMenuRoot = (0, import_react28.forwardRef)(function DropdownMenuRoot2
1535
1547
  const hasCheckedItem = items.some(
1536
1548
  (item) => item !== SEPARATOR_ITEM && item.checked
1537
1549
  );
1538
- const keymap = (0, import_react28.useMemo)(
1550
+ const keymap = (0, import_react29.useMemo)(
1539
1551
  () => isNested || shouldBindKeyboardShortcuts === false ? {} : getKeyboardShortcutsForMenuItems(items, onSelect),
1540
1552
  [isNested, items, onSelect, shouldBindKeyboardShortcuts]
1541
1553
  );
@@ -1543,8 +1555,8 @@ var DropdownMenuRoot = (0, import_react28.forwardRef)(function DropdownMenuRoot2
1543
1555
  const RootComponent = isNested ? RadixDropdownMenu.Sub : RadixDropdownMenu.Root;
1544
1556
  const TriggerComponent = isNested ? RadixDropdownMenu.SubTrigger : RadixDropdownMenu.Trigger;
1545
1557
  const ContentComponent = isNested ? SubContent2 : Content5;
1546
- const contentStyle = (0, import_react28.useMemo)(() => ({ zIndex: 1e3 }), []);
1547
- return /* @__PURE__ */ import_react28.default.createElement(RootComponent, { onOpenChange, open }, /* @__PURE__ */ import_react28.default.createElement(TriggerComponent, { ref: forwardedRef, asChild: true }, children), /* @__PURE__ */ import_react28.default.createElement(RadixDropdownMenu.Portal, null, /* @__PURE__ */ import_react28.default.createElement(
1558
+ const contentStyle = (0, import_react29.useMemo)(() => ({ zIndex: 1e3 }), []);
1559
+ return /* @__PURE__ */ import_react29.default.createElement(RootComponent, { onOpenChange, open }, /* @__PURE__ */ import_react29.default.createElement(TriggerComponent, { ref: forwardedRef, asChild: true }, children), /* @__PURE__ */ import_react29.default.createElement(RadixDropdownMenu.Portal, null, /* @__PURE__ */ import_react29.default.createElement(
1548
1560
  ContentComponent,
1549
1561
  {
1550
1562
  side,
@@ -1556,7 +1568,7 @@ var DropdownMenuRoot = (0, import_react28.forwardRef)(function DropdownMenuRoot2
1556
1568
  ...{ onCloseAutoFocus }
1557
1569
  },
1558
1570
  items.map(
1559
- (item, index) => item === SEPARATOR_ITEM ? /* @__PURE__ */ import_react28.default.createElement(SeparatorElement, { key: index }) : /* @__PURE__ */ import_react28.default.createElement(
1571
+ (item, index) => item === SEPARATOR_ITEM ? /* @__PURE__ */ import_react29.default.createElement(SeparatorElement, { key: index }) : /* @__PURE__ */ import_react29.default.createElement(
1560
1572
  DropdownMenuItem,
1561
1573
  {
1562
1574
  key: item.value ?? index,
@@ -1574,14 +1586,14 @@ var DropdownMenuRoot = (0, import_react28.forwardRef)(function DropdownMenuRoot2
1574
1586
  )
1575
1587
  )));
1576
1588
  });
1577
- var DropdownMenu = (0, import_react28.memo)(DropdownMenuRoot);
1589
+ var DropdownMenu = (0, import_react29.memo)(DropdownMenuRoot);
1578
1590
 
1579
1591
  // src/components/internal/TextInput.tsx
1580
1592
  var import_react_compose_refs = require("@radix-ui/react-compose-refs");
1581
- var import_react30 = __toESM(require("react"));
1593
+ var import_react31 = __toESM(require("react"));
1582
1594
 
1583
1595
  // src/contexts/GlobalInputBlurContext.tsx
1584
- var import_react29 = require("react");
1596
+ var import_react30 = require("react");
1585
1597
  var defaultValue = /* @__PURE__ */ (() => {
1586
1598
  const listeners = [];
1587
1599
  const value = {
@@ -1602,14 +1614,14 @@ var defaultValue = /* @__PURE__ */ (() => {
1602
1614
  };
1603
1615
  return value;
1604
1616
  })();
1605
- var GlobalInputBlurContext = (0, import_react29.createContext)(defaultValue);
1617
+ var GlobalInputBlurContext = (0, import_react30.createContext)(defaultValue);
1606
1618
  var GlobalInputBlurProvider = GlobalInputBlurContext.Provider;
1607
1619
  var useGlobalInputBlur = () => {
1608
- return (0, import_react29.useContext)(GlobalInputBlurContext);
1620
+ return (0, import_react30.useContext)(GlobalInputBlurContext);
1609
1621
  };
1610
1622
  function useGlobalInputBlurListener(f) {
1611
1623
  const context = useGlobalInputBlur();
1612
- (0, import_react29.useEffect)(() => {
1624
+ (0, import_react30.useEffect)(() => {
1613
1625
  context.addListener(f);
1614
1626
  return () => {
1615
1627
  context.removeListener(f);
@@ -1621,8 +1633,8 @@ function useGlobalInputBlurTrigger() {
1621
1633
  }
1622
1634
 
1623
1635
  // src/components/internal/TextInput.tsx
1624
- var ReadOnlyTextInput = (0, import_react30.forwardRef)(function ReadOnlyTextInput2({ onKeyDown, onFocusChange, value, ...rest }, forwardedRef) {
1625
- return /* @__PURE__ */ import_react30.default.createElement(
1636
+ var ReadOnlyTextInput = (0, import_react31.forwardRef)(function ReadOnlyTextInput2({ onKeyDown, onFocusChange, value, ...rest }, forwardedRef) {
1637
+ return /* @__PURE__ */ import_react31.default.createElement(
1626
1638
  "input",
1627
1639
  {
1628
1640
  ref: forwardedRef,
@@ -1633,7 +1645,7 @@ var ReadOnlyTextInput = (0, import_react30.forwardRef)(function ReadOnlyTextInpu
1633
1645
  }
1634
1646
  );
1635
1647
  });
1636
- var ControlledTextInput = (0, import_react30.forwardRef)(function ControlledTextInput2({
1648
+ var ControlledTextInput = (0, import_react31.forwardRef)(function ControlledTextInput2({
1637
1649
  onKeyDown,
1638
1650
  value,
1639
1651
  onChange,
@@ -1642,28 +1654,28 @@ var ControlledTextInput = (0, import_react30.forwardRef)(function ControlledText
1642
1654
  onFocusCapture,
1643
1655
  ...rest
1644
1656
  }, forwardedRef) {
1645
- const handleBlur = (0, import_react30.useCallback)(
1657
+ const handleBlur = (0, import_react31.useCallback)(
1646
1658
  (event) => {
1647
1659
  onBlur?.(event);
1648
1660
  onFocusChange?.(false);
1649
1661
  },
1650
1662
  [onBlur, onFocusChange]
1651
1663
  );
1652
- const handleFocusCapture = (0, import_react30.useCallback)(
1664
+ const handleFocusCapture = (0, import_react31.useCallback)(
1653
1665
  (event) => {
1654
1666
  onFocusCapture?.(event);
1655
1667
  onFocusChange?.(true);
1656
1668
  },
1657
1669
  [onFocusCapture, onFocusChange]
1658
1670
  );
1659
- return /* @__PURE__ */ import_react30.default.createElement(
1671
+ return /* @__PURE__ */ import_react31.default.createElement(
1660
1672
  "input",
1661
1673
  {
1662
1674
  ref: forwardedRef,
1663
1675
  ...rest,
1664
1676
  value,
1665
1677
  onKeyDown,
1666
- onChange: (0, import_react30.useCallback)(
1678
+ onChange: (0, import_react31.useCallback)(
1667
1679
  (event) => onChange(event.target.value),
1668
1680
  [onChange]
1669
1681
  ),
@@ -1672,7 +1684,7 @@ var ControlledTextInput = (0, import_react30.forwardRef)(function ControlledText
1672
1684
  }
1673
1685
  );
1674
1686
  });
1675
- var SubmittableTextInput = (0, import_react30.forwardRef)(function SubmittableTextInput2({
1687
+ var SubmittableTextInput = (0, import_react31.forwardRef)(function SubmittableTextInput2({
1676
1688
  onKeyDown,
1677
1689
  value,
1678
1690
  onSubmit,
@@ -1683,16 +1695,16 @@ var SubmittableTextInput = (0, import_react30.forwardRef)(function SubmittableTe
1683
1695
  submitAutomaticallyAfterDelay,
1684
1696
  ...rest
1685
1697
  }, forwardedRef) {
1686
- const ref = import_react30.default.useRef(null);
1687
- const latestValue = (0, import_react30.useRef)(value);
1698
+ const ref = import_react31.default.useRef(null);
1699
+ const latestValue = (0, import_react31.useRef)(value);
1688
1700
  latestValue.current = value;
1689
- const userDidEdit = (0, import_react30.useRef)(false);
1690
- const isSubmitTriggeredByEscapeKey = (0, import_react30.useRef)(false);
1691
- const [internalValue, setInternalValue] = (0, import_react30.useState)("");
1692
- (0, import_react30.useLayoutEffect)(() => {
1701
+ const userDidEdit = (0, import_react31.useRef)(false);
1702
+ const isSubmitTriggeredByEscapeKey = (0, import_react31.useRef)(false);
1703
+ const [internalValue, setInternalValue] = (0, import_react31.useState)("");
1704
+ (0, import_react31.useLayoutEffect)(() => {
1693
1705
  setInternalValue(value);
1694
1706
  }, [value]);
1695
- const handleSubmit = (0, import_react30.useCallback)(() => {
1707
+ const handleSubmit = (0, import_react31.useCallback)(() => {
1696
1708
  const submissionValue = isSubmitTriggeredByEscapeKey.current ? value : internalValue;
1697
1709
  isSubmitTriggeredByEscapeKey.current = false;
1698
1710
  if (submissionValue === value && !allowSubmittingWithSameValue)
@@ -1702,13 +1714,13 @@ var SubmittableTextInput = (0, import_react30.forwardRef)(function SubmittableTe
1702
1714
  setInternalValue(latestValue.current);
1703
1715
  }, [allowSubmittingWithSameValue, value, internalValue, onSubmit]);
1704
1716
  useGlobalInputBlurListener(
1705
- (0, import_react30.useCallback)(() => {
1717
+ (0, import_react31.useCallback)(() => {
1706
1718
  if (ref.current !== document.activeElement)
1707
1719
  return;
1708
1720
  handleSubmit();
1709
1721
  }, [handleSubmit])
1710
1722
  );
1711
- const handleKeyDown = (0, import_react30.useCallback)(
1723
+ const handleKeyDown = (0, import_react31.useCallback)(
1712
1724
  (event) => {
1713
1725
  if (event.key === "Enter") {
1714
1726
  handleSubmit();
@@ -1723,14 +1735,14 @@ var SubmittableTextInput = (0, import_react30.forwardRef)(function SubmittableTe
1723
1735
  },
1724
1736
  [onKeyDown, handleSubmit]
1725
1737
  );
1726
- const handleChange = (0, import_react30.useCallback)(
1738
+ const handleChange = (0, import_react31.useCallback)(
1727
1739
  (event) => {
1728
1740
  userDidEdit.current = true;
1729
1741
  setInternalValue(event.target.value);
1730
1742
  },
1731
1743
  []
1732
1744
  );
1733
- const handleBlur = (0, import_react30.useCallback)(
1745
+ const handleBlur = (0, import_react31.useCallback)(
1734
1746
  (event) => {
1735
1747
  onBlur?.(event);
1736
1748
  onFocusChange?.(false);
@@ -1738,19 +1750,19 @@ var SubmittableTextInput = (0, import_react30.forwardRef)(function SubmittableTe
1738
1750
  },
1739
1751
  [onBlur, onFocusChange, handleSubmit]
1740
1752
  );
1741
- const handleFocusCapture = (0, import_react30.useCallback)(
1753
+ const handleFocusCapture = (0, import_react31.useCallback)(
1742
1754
  (event) => {
1743
1755
  onFocusCapture?.(event);
1744
1756
  onFocusChange?.(true);
1745
1757
  },
1746
1758
  [onFocusCapture, onFocusChange]
1747
1759
  );
1748
- const autoSubmitTimeoutRef = (0, import_react30.useRef)(
1760
+ const autoSubmitTimeoutRef = (0, import_react31.useRef)(
1749
1761
  null
1750
1762
  );
1751
- const latestHandleSubmit = (0, import_react30.useRef)(handleSubmit);
1763
+ const latestHandleSubmit = (0, import_react31.useRef)(handleSubmit);
1752
1764
  latestHandleSubmit.current = handleSubmit;
1753
- (0, import_react30.useEffect)(() => {
1765
+ (0, import_react31.useEffect)(() => {
1754
1766
  if (submitAutomaticallyAfterDelay) {
1755
1767
  if (autoSubmitTimeoutRef.current) {
1756
1768
  clearTimeout(autoSubmitTimeoutRef.current);
@@ -1767,7 +1779,7 @@ var SubmittableTextInput = (0, import_react30.forwardRef)(function SubmittableTe
1767
1779
  }
1768
1780
  };
1769
1781
  }, [internalValue, submitAutomaticallyAfterDelay]);
1770
- return /* @__PURE__ */ import_react30.default.createElement(
1782
+ return /* @__PURE__ */ import_react31.default.createElement(
1771
1783
  "input",
1772
1784
  {
1773
1785
  ref: (0, import_react_compose_refs.composeRefs)(ref, forwardedRef),
@@ -1780,13 +1792,13 @@ var SubmittableTextInput = (0, import_react30.forwardRef)(function SubmittableTe
1780
1792
  }
1781
1793
  );
1782
1794
  });
1783
- var TextInput_default = (0, import_react30.forwardRef)(function TextInput(props, forwardedRef) {
1795
+ var TextInput_default = (0, import_react31.forwardRef)(function TextInput(props, forwardedRef) {
1784
1796
  const commonProps = {
1785
- onPointerDown: (0, import_react30.useCallback)(
1797
+ onPointerDown: (0, import_react31.useCallback)(
1786
1798
  (event) => event.stopPropagation(),
1787
1799
  []
1788
1800
  ),
1789
- onClick: (0, import_react30.useCallback)(
1801
+ onClick: (0, import_react31.useCallback)(
1790
1802
  (event) => event.stopPropagation(),
1791
1803
  []
1792
1804
  ),
@@ -1799,17 +1811,17 @@ var TextInput_default = (0, import_react30.forwardRef)(function TextInput(props,
1799
1811
  ...props
1800
1812
  };
1801
1813
  if ("readOnly" in commonProps) {
1802
- return /* @__PURE__ */ import_react30.default.createElement(ReadOnlyTextInput, { ref: forwardedRef, ...commonProps, readOnly: true });
1814
+ return /* @__PURE__ */ import_react31.default.createElement(ReadOnlyTextInput, { ref: forwardedRef, ...commonProps, readOnly: true });
1803
1815
  } else if ("onChange" in commonProps) {
1804
- return /* @__PURE__ */ import_react30.default.createElement(ControlledTextInput, { ref: forwardedRef, ...commonProps });
1816
+ return /* @__PURE__ */ import_react31.default.createElement(ControlledTextInput, { ref: forwardedRef, ...commonProps });
1805
1817
  } else {
1806
- return /* @__PURE__ */ import_react30.default.createElement(SubmittableTextInput, { ref: forwardedRef, ...commonProps });
1818
+ return /* @__PURE__ */ import_react31.default.createElement(SubmittableTextInput, { ref: forwardedRef, ...commonProps });
1807
1819
  }
1808
1820
  });
1809
1821
 
1810
1822
  // src/components/Popover.tsx
1811
1823
  var PopoverPrimitive = __toESM(require("@radix-ui/react-popover"));
1812
- var import_react31 = __toESM(require("react"));
1824
+ var import_react32 = __toESM(require("react"));
1813
1825
  var import_styled_components12 = __toESM(require("styled-components"));
1814
1826
  var ContentElement = (0, import_styled_components12.default)(PopoverPrimitive.Content)(({ theme, variant }) => ({
1815
1827
  borderRadius: 4,
@@ -1856,7 +1868,7 @@ function Popover({
1856
1868
  onFocusOutside,
1857
1869
  onClickClose
1858
1870
  }) {
1859
- return /* @__PURE__ */ import_react31.default.createElement(PopoverPrimitive.Root, { open, onOpenChange }, /* @__PURE__ */ import_react31.default.createElement(PopoverPrimitive.Trigger, { asChild: true }, trigger), /* @__PURE__ */ import_react31.default.createElement(PopoverPrimitive.Portal, null, /* @__PURE__ */ import_react31.default.createElement(
1871
+ return /* @__PURE__ */ import_react32.default.createElement(PopoverPrimitive.Root, { open, onOpenChange }, /* @__PURE__ */ import_react32.default.createElement(PopoverPrimitive.Trigger, { asChild: true }, trigger), /* @__PURE__ */ import_react32.default.createElement(PopoverPrimitive.Portal, null, /* @__PURE__ */ import_react32.default.createElement(
1860
1872
  ContentElement,
1861
1873
  {
1862
1874
  variant,
@@ -1872,13 +1884,13 @@ function Popover({
1872
1884
  arrowPadding: 2
1873
1885
  },
1874
1886
  children,
1875
- showArrow && /* @__PURE__ */ import_react31.default.createElement(ArrowElement, null),
1876
- closable && /* @__PURE__ */ import_react31.default.createElement(PopoverClose, null, /* @__PURE__ */ import_react31.default.createElement(IconButton, { iconName: "Cross2Icon", onClick: onClickClose }))
1887
+ showArrow && /* @__PURE__ */ import_react32.default.createElement(ArrowElement, null),
1888
+ closable && /* @__PURE__ */ import_react32.default.createElement(PopoverClose, null, /* @__PURE__ */ import_react32.default.createElement(IconButton, { iconName: "Cross2Icon", onClick: onClickClose }))
1877
1889
  )));
1878
1890
  }
1879
1891
 
1880
1892
  // src/components/InputField.tsx
1881
- var InputFieldContext = (0, import_react32.createContext)({
1893
+ var InputFieldContext = (0, import_react33.createContext)({
1882
1894
  labelPosition: "end",
1883
1895
  labelSize: 6,
1884
1896
  hasLabel: false,
@@ -1906,11 +1918,11 @@ var LabelContainer = import_styled_components13.default.label(({ theme, $labelPo
1906
1918
  paddingRight: $hasDropdown ? "16px" : "6px"
1907
1919
  }
1908
1920
  }));
1909
- var InputFieldLabel = (0, import_react32.memo)(
1910
- (0, import_react32.forwardRef)(function InputFieldLabel2({ children = false, pointerEvents = "none", style: style3 }, forwardedRef) {
1911
- const { labelPosition, hasDropdown, setLabelWidth } = (0, import_react32.useContext)(InputFieldContext);
1912
- const ref = (0, import_react32.useRef)(null);
1913
- (0, import_react32.useLayoutEffect)(() => {
1921
+ var InputFieldLabel = (0, import_react33.memo)(
1922
+ (0, import_react33.forwardRef)(function InputFieldLabel2({ children = false, pointerEvents = "none", style: style3 }, forwardedRef) {
1923
+ const { labelPosition, hasDropdown, setLabelWidth } = (0, import_react33.useContext)(InputFieldContext);
1924
+ const ref = (0, import_react33.useRef)(null);
1925
+ (0, import_react33.useLayoutEffect)(() => {
1914
1926
  if (!setLabelWidth)
1915
1927
  return;
1916
1928
  const width = ref.current?.getBoundingClientRect().width;
@@ -1918,7 +1930,7 @@ var InputFieldLabel = (0, import_react32.memo)(
1918
1930
  return;
1919
1931
  setLabelWidth(width);
1920
1932
  }, [setLabelWidth]);
1921
- return /* @__PURE__ */ import_react32.default.createElement(
1933
+ return /* @__PURE__ */ import_react33.default.createElement(
1922
1934
  LabelContainer,
1923
1935
  {
1924
1936
  ref: (element) => {
@@ -1942,16 +1954,16 @@ var DropdownContainer = import_styled_components13.default.span(({ theme }) => (
1942
1954
  display: "flex",
1943
1955
  flexDirection: "column"
1944
1956
  }));
1945
- var InputFieldDropdownMenu = (0, import_react32.memo)(function InputFieldDropdownMenu2({ id, items, onSelect, children }) {
1946
- const { size: size2 } = (0, import_react32.useContext)(InputFieldContext);
1947
- const contentStyle = (0, import_react32.useMemo)(
1957
+ var InputFieldDropdownMenu = (0, import_react33.memo)(function InputFieldDropdownMenu2({ id, items, onSelect, children }) {
1958
+ const { size: size2 } = (0, import_react33.useContext)(InputFieldContext);
1959
+ const contentStyle = (0, import_react33.useMemo)(
1948
1960
  () => ({
1949
1961
  margin: "-4px 0",
1950
1962
  minHeight: size2 === "small" ? "15px" : void 0
1951
1963
  }),
1952
1964
  [size2]
1953
1965
  );
1954
- return /* @__PURE__ */ import_react32.default.createElement(DropdownContainer, null, /* @__PURE__ */ import_react32.default.createElement(DropdownMenu, { items, onSelect }, children || /* @__PURE__ */ import_react32.default.createElement(Button, { id, variant: "thin", flex: "1", contentStyle }, /* @__PURE__ */ import_react32.default.createElement(import_noya_icons2.CaretDownIcon, null))));
1966
+ return /* @__PURE__ */ import_react33.default.createElement(DropdownContainer, null, /* @__PURE__ */ import_react33.default.createElement(DropdownMenu, { items, onSelect }, children || /* @__PURE__ */ import_react33.default.createElement(Button, { id, variant: "thin", flex: "1", contentStyle }, /* @__PURE__ */ import_react33.default.createElement(import_noya_icons2.CaretDownIcon, null))));
1955
1967
  });
1956
1968
  var ButtonContainer = import_styled_components13.default.span(
1957
1969
  ({ theme, $size }) => ({
@@ -1960,12 +1972,12 @@ var ButtonContainer = import_styled_components13.default.span(
1960
1972
  top: $size === "large" ? "8px" : $size === "medium" ? "4px" : "2px"
1961
1973
  })
1962
1974
  );
1963
- var InputFieldButton = (0, import_react32.memo)(function InputFieldButton2({
1975
+ var InputFieldButton = (0, import_react33.memo)(function InputFieldButton2({
1964
1976
  children,
1965
1977
  onClick
1966
1978
  }) {
1967
- const { size: size2, inputRef } = (0, import_react32.useContext)(InputFieldContext);
1968
- const defaultHandleClick = (0, import_react32.useCallback)(
1979
+ const { size: size2, inputRef } = (0, import_react33.useContext)(InputFieldContext);
1980
+ const defaultHandleClick = (0, import_react33.useCallback)(
1969
1981
  (event) => {
1970
1982
  if (inputRef && typeof inputRef !== "function") {
1971
1983
  inputRef.current?.focus();
@@ -1976,11 +1988,11 @@ var InputFieldButton = (0, import_react32.memo)(function InputFieldButton2({
1976
1988
  },
1977
1989
  [inputRef]
1978
1990
  );
1979
- const handlePointerDown = (0, import_react32.useCallback)((event) => {
1991
+ const handlePointerDown = (0, import_react33.useCallback)((event) => {
1980
1992
  event.preventDefault();
1981
1993
  event.stopPropagation();
1982
1994
  }, []);
1983
- return /* @__PURE__ */ import_react32.default.createElement(ButtonContainer, { $size: size2 }, /* @__PURE__ */ import_react32.default.createElement(
1995
+ return /* @__PURE__ */ import_react33.default.createElement(ButtonContainer, { $size: size2 }, /* @__PURE__ */ import_react33.default.createElement(
1984
1996
  Button,
1985
1997
  {
1986
1998
  variant: "floating",
@@ -2051,7 +2063,7 @@ var InputElement = (0, import_styled_components13.default)(TextInput_default)(({
2051
2063
  // },
2052
2064
  };
2053
2065
  });
2054
- var InputFieldInput = (0, import_react32.forwardRef)(function InputFieldInput2({
2066
+ var InputFieldInput = (0, import_react33.forwardRef)(function InputFieldInput2({
2055
2067
  textAlign,
2056
2068
  variant,
2057
2069
  ...rest
@@ -2064,17 +2076,17 @@ var InputFieldInput = (0, import_react32.forwardRef)(function InputFieldInput2({
2064
2076
  size: size2,
2065
2077
  onFocusChange,
2066
2078
  setInputRef
2067
- } = (0, import_react32.useContext)(InputFieldContext);
2068
- const handleFocusChange = (0, import_react32.useCallback)(
2079
+ } = (0, import_react33.useContext)(InputFieldContext);
2080
+ const handleFocusChange = (0, import_react33.useCallback)(
2069
2081
  (isFocused) => {
2070
2082
  onFocusChange(isFocused);
2071
2083
  },
2072
2084
  [onFocusChange]
2073
2085
  );
2074
- (0, import_react32.useLayoutEffect)(() => {
2086
+ (0, import_react33.useLayoutEffect)(() => {
2075
2087
  setInputRef?.(forwardedRef);
2076
2088
  }, [forwardedRef, setInputRef]);
2077
- return /* @__PURE__ */ import_react32.default.createElement(
2089
+ return /* @__PURE__ */ import_react33.default.createElement(
2078
2090
  InputElement,
2079
2091
  {
2080
2092
  ref: forwardedRef,
@@ -2098,8 +2110,8 @@ var InputFieldTypeahead = (props) => {
2098
2110
  hasLabel,
2099
2111
  size: size2,
2100
2112
  onFocusChange
2101
- } = (0, import_react32.useContext)(InputFieldContext);
2102
- return /* @__PURE__ */ import_react32.default.createElement(
2113
+ } = (0, import_react33.useContext)(InputFieldContext);
2114
+ return /* @__PURE__ */ import_react33.default.createElement(
2103
2115
  InputElement,
2104
2116
  {
2105
2117
  $labelPosition: labelPosition,
@@ -2133,8 +2145,8 @@ function InputFieldNumberInput(props) {
2133
2145
  const { value, placeholder, onNudge, onBlur, ...rest } = props;
2134
2146
  const onSubmit = "onSubmit" in props ? props.onSubmit : void 0;
2135
2147
  const onChange = "onChange" in props ? props.onChange : void 0;
2136
- const [internalValue, setInternalValue] = (0, import_react32.useState)();
2137
- const handleSubmit = (0, import_react32.useCallback)(
2148
+ const [internalValue, setInternalValue] = (0, import_react33.useState)();
2149
+ const handleSubmit = (0, import_react33.useCallback)(
2138
2150
  (value2) => {
2139
2151
  const newValue = parseNumber(value2);
2140
2152
  if (!isNaN(newValue)) {
@@ -2143,7 +2155,7 @@ function InputFieldNumberInput(props) {
2143
2155
  },
2144
2156
  [onSubmit]
2145
2157
  );
2146
- const handleKeyDown = (0, import_react32.useCallback)(
2158
+ const handleKeyDown = (0, import_react33.useCallback)(
2147
2159
  (event) => {
2148
2160
  const amount = handleNudge(event);
2149
2161
  if (!amount)
@@ -2155,7 +2167,7 @@ function InputFieldNumberInput(props) {
2155
2167
  },
2156
2168
  [onNudge]
2157
2169
  );
2158
- const handleChange = (0, import_react32.useCallback)(
2170
+ const handleChange = (0, import_react33.useCallback)(
2159
2171
  (value2) => {
2160
2172
  if (value2 === "" || value2 === "-" || value2 === ".") {
2161
2173
  setInternalValue(value2);
@@ -2173,14 +2185,14 @@ function InputFieldNumberInput(props) {
2173
2185
  },
2174
2186
  [onChange]
2175
2187
  );
2176
- const handleBlur = (0, import_react32.useCallback)(
2188
+ const handleBlur = (0, import_react33.useCallback)(
2177
2189
  (event) => {
2178
2190
  setInternalValue(void 0);
2179
2191
  onBlur?.(event);
2180
2192
  },
2181
2193
  [onBlur]
2182
2194
  );
2183
- return /* @__PURE__ */ import_react32.default.createElement(
2195
+ return /* @__PURE__ */ import_react33.default.createElement(
2184
2196
  InputFieldInput,
2185
2197
  {
2186
2198
  ...rest,
@@ -2214,32 +2226,32 @@ function InputFieldRoot({
2214
2226
  style: style3,
2215
2227
  className
2216
2228
  }) {
2217
- const childrenArray = import_react32.Children.toArray(children);
2229
+ const childrenArray = import_react33.Children.toArray(children);
2218
2230
  const hasDropdown = childrenArray.some(
2219
- (child) => (0, import_react32.isValidElement)(child) && child.type === InputFieldDropdownMenu
2231
+ (child) => (0, import_react33.isValidElement)(child) && child.type === InputFieldDropdownMenu
2220
2232
  );
2221
2233
  const hasLabel = childrenArray.some(
2222
- (child) => (0, import_react32.isValidElement)(child) && child.type === InputFieldLabel
2234
+ (child) => (0, import_react33.isValidElement)(child) && child.type === InputFieldLabel
2223
2235
  );
2224
- const [isFocused, setIsFocused] = import_react32.default.useState(false);
2225
- const [measuredLabelSize, setMeasuredLabelSize] = import_react32.default.useState();
2226
- const [measuredWidth, setMeasuredWidth] = import_react32.default.useState();
2227
- const handleFocusChange = (0, import_react32.useCallback)(
2236
+ const [isFocused, setIsFocused] = import_react33.default.useState(false);
2237
+ const [measuredLabelSize, setMeasuredLabelSize] = import_react33.default.useState();
2238
+ const [measuredWidth, setMeasuredWidth] = import_react33.default.useState();
2239
+ const handleFocusChange = (0, import_react33.useCallback)(
2228
2240
  (isFocused2) => {
2229
2241
  setIsFocused(isFocused2);
2230
2242
  onFocusChange?.(isFocused2);
2231
2243
  },
2232
2244
  [onFocusChange]
2233
2245
  );
2234
- const [inputRef, setInputRef] = import_react32.default.useState();
2235
- (0, import_react32.useEffect)(() => {
2246
+ const [inputRef, setInputRef] = import_react33.default.useState();
2247
+ (0, import_react33.useEffect)(() => {
2236
2248
  if (inputRef && typeof inputRef !== "function") {
2237
2249
  setMeasuredWidth?.(
2238
2250
  isFocused ? inputRef?.current?.getBoundingClientRect().width : void 0
2239
2251
  );
2240
2252
  }
2241
2253
  }, [inputRef, isFocused]);
2242
- const contextValue = (0, import_react32.useMemo)(
2254
+ const contextValue = (0, import_react33.useMemo)(
2243
2255
  () => ({
2244
2256
  labelPosition,
2245
2257
  labelSize: measuredLabelSize ?? labelSize ?? 6,
@@ -2264,7 +2276,7 @@ function InputFieldRoot({
2264
2276
  inputRef
2265
2277
  ]
2266
2278
  );
2267
- const rootElement = /* @__PURE__ */ import_react32.default.createElement(
2279
+ const rootElement = /* @__PURE__ */ import_react33.default.createElement(
2268
2280
  RootContainer,
2269
2281
  {
2270
2282
  id,
@@ -2275,7 +2287,7 @@ function InputFieldRoot({
2275
2287
  },
2276
2288
  children
2277
2289
  );
2278
- return /* @__PURE__ */ import_react32.default.createElement(InputFieldContext.Provider, { value: contextValue }, renderPopoverContent ? /* @__PURE__ */ import_react32.default.createElement(
2290
+ return /* @__PURE__ */ import_react33.default.createElement(InputFieldContext.Provider, { value: contextValue }, renderPopoverContent ? /* @__PURE__ */ import_react33.default.createElement(
2279
2291
  Popover,
2280
2292
  {
2281
2293
  open: true,
@@ -2291,15 +2303,15 @@ function InputFieldRoot({
2291
2303
  event.stopPropagation();
2292
2304
  }
2293
2305
  },
2294
- measuredWidth && /* @__PURE__ */ import_react32.default.createElement(Stack.V, { width: measuredWidth, overflow: "hidden" }, renderPopoverContent({ width: measuredWidth }))
2306
+ measuredWidth && /* @__PURE__ */ import_react33.default.createElement(Stack.V, { width: measuredWidth, overflow: "hidden" }, renderPopoverContent({ width: measuredWidth }))
2295
2307
  ) : rootElement);
2296
2308
  }
2297
2309
  var InputField;
2298
2310
  ((InputField2) => {
2299
- InputField2.Root = (0, import_react32.memo)(InputFieldRoot);
2300
- InputField2.Input = (0, import_react32.memo)(InputFieldInput);
2301
- InputField2.Typeahead = (0, import_react32.memo)(InputFieldTypeahead);
2302
- InputField2.NumberInput = (0, import_react32.memo)(InputFieldNumberInput);
2311
+ InputField2.Root = (0, import_react33.memo)(InputFieldRoot);
2312
+ InputField2.Input = (0, import_react33.memo)(InputFieldInput);
2313
+ InputField2.Typeahead = (0, import_react33.memo)(InputFieldTypeahead);
2314
+ InputField2.NumberInput = (0, import_react33.memo)(InputFieldNumberInput);
2303
2315
  InputField2.DropdownMenu = InputFieldDropdownMenu;
2304
2316
  InputField2.Button = InputFieldButton;
2305
2317
  InputField2.Label = InputFieldLabel;
@@ -2323,24 +2335,24 @@ function createDeferredPromise() {
2323
2335
  });
2324
2336
  return { promise, resolve, reject };
2325
2337
  }
2326
- var DialogContext = (0, import_react33.createContext)(void 0);
2338
+ var DialogContext = (0, import_react34.createContext)(void 0);
2327
2339
  var DialogProvider = function DialogProvider2({
2328
2340
  children
2329
2341
  }) {
2330
- const [contents, setContents] = (0, import_react33.useState)();
2342
+ const [contents, setContents] = (0, import_react34.useState)();
2331
2343
  const isOpen = !!contents;
2332
- const close = (0, import_react33.useCallback)(() => {
2344
+ const close = (0, import_react34.useCallback)(() => {
2333
2345
  if (!contents)
2334
2346
  return;
2335
2347
  contents.resolve(void 0);
2336
2348
  }, [contents]);
2337
- const submit = (0, import_react33.useCallback)(() => {
2349
+ const submit = (0, import_react34.useCallback)(() => {
2338
2350
  if (!contents || !contents.inputValue)
2339
2351
  return;
2340
2352
  contents.resolve(contents.inputValue);
2341
2353
  setContents(void 0);
2342
2354
  }, [contents]);
2343
- const open = (0, import_react33.useCallback)(
2355
+ const open = (0, import_react34.useCallback)(
2344
2356
  (title, inputValue = "") => {
2345
2357
  const { promise, resolve } = createDeferredPromise();
2346
2358
  setContents({
@@ -2355,7 +2367,7 @@ var DialogProvider = function DialogProvider2({
2355
2367
  },
2356
2368
  []
2357
2369
  );
2358
- const handleKeyDown = (0, import_react33.useCallback)(
2370
+ const handleKeyDown = (0, import_react34.useCallback)(
2359
2371
  (event) => {
2360
2372
  if (event.key !== "Enter")
2361
2373
  return;
@@ -2365,29 +2377,29 @@ var DialogProvider = function DialogProvider2({
2365
2377
  },
2366
2378
  [submit]
2367
2379
  );
2368
- const inputRef = (0, import_react33.useRef)(null);
2369
- const dialogRef = (0, import_react33.useRef)(null);
2370
- const containsElement = (0, import_react33.useCallback)((element) => {
2380
+ const inputRef = (0, import_react34.useRef)(null);
2381
+ const dialogRef = (0, import_react34.useRef)(null);
2382
+ const containsElement = (0, import_react34.useCallback)((element) => {
2371
2383
  if (!dialogRef.current)
2372
2384
  return false;
2373
2385
  return dialogRef.current.containsElement(element);
2374
2386
  }, []);
2375
- return /* @__PURE__ */ import_react33.default.createElement(import_react33.default.Fragment, null, /* @__PURE__ */ import_react33.default.createElement(
2387
+ return /* @__PURE__ */ import_react34.default.createElement(import_react34.default.Fragment, null, /* @__PURE__ */ import_react34.default.createElement(
2376
2388
  DialogContext.Provider,
2377
2389
  {
2378
- value: (0, import_react33.useMemo)(
2390
+ value: (0, import_react34.useMemo)(
2379
2391
  () => ({ openInputDialog: open, containsElement }),
2380
2392
  [containsElement, open]
2381
2393
  )
2382
2394
  },
2383
2395
  children
2384
- ), /* @__PURE__ */ import_react33.default.createElement(
2396
+ ), /* @__PURE__ */ import_react34.default.createElement(
2385
2397
  Dialog,
2386
2398
  {
2387
2399
  ref: dialogRef,
2388
2400
  title: contents?.title,
2389
2401
  open: isOpen,
2390
- onOpenChange: (0, import_react33.useCallback)(
2402
+ onOpenChange: (0, import_react34.useCallback)(
2391
2403
  (isOpen2) => {
2392
2404
  if (!isOpen2) {
2393
2405
  close();
@@ -2395,14 +2407,14 @@ var DialogProvider = function DialogProvider2({
2395
2407
  },
2396
2408
  [close]
2397
2409
  ),
2398
- onOpenAutoFocus: (0, import_react33.useCallback)((event) => {
2410
+ onOpenAutoFocus: (0, import_react34.useCallback)((event) => {
2399
2411
  event.stopPropagation();
2400
2412
  event.preventDefault();
2401
2413
  inputRef.current?.focus();
2402
2414
  inputRef.current?.setSelectionRange(0, inputRef.current.value.length);
2403
2415
  }, [])
2404
2416
  },
2405
- /* @__PURE__ */ import_react33.default.createElement(InputField.Root, null, /* @__PURE__ */ import_react33.default.createElement(
2417
+ /* @__PURE__ */ import_react34.default.createElement(InputField.Root, null, /* @__PURE__ */ import_react34.default.createElement(
2406
2418
  InputField.Input,
2407
2419
  {
2408
2420
  ref: inputRef,
@@ -2418,12 +2430,12 @@ var DialogProvider = function DialogProvider2({
2418
2430
  onKeyDown: handleKeyDown
2419
2431
  }
2420
2432
  )),
2421
- /* @__PURE__ */ import_react33.default.createElement(Spacer.Vertical, { size: 20 }),
2422
- /* @__PURE__ */ import_react33.default.createElement(Row, null, /* @__PURE__ */ import_react33.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react33.default.createElement(Button, { onClick: close }, "Cancel"), /* @__PURE__ */ import_react33.default.createElement(Spacer.Horizontal, { size: 16 }), /* @__PURE__ */ import_react33.default.createElement(Button, { disabled: !contents?.inputValue, onClick: submit }, "Submit"))
2433
+ /* @__PURE__ */ import_react34.default.createElement(Spacer.Vertical, { size: 20 }),
2434
+ /* @__PURE__ */ import_react34.default.createElement(Row, null, /* @__PURE__ */ import_react34.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react34.default.createElement(Button, { onClick: close }, "Cancel"), /* @__PURE__ */ import_react34.default.createElement(Spacer.Horizontal, { size: 16 }), /* @__PURE__ */ import_react34.default.createElement(Button, { disabled: !contents?.inputValue, onClick: submit }, "Submit"))
2423
2435
  ));
2424
2436
  };
2425
2437
  function useDialog() {
2426
- const value = (0, import_react33.useContext)(DialogContext);
2438
+ const value = (0, import_react34.useContext)(DialogContext);
2427
2439
  if (!value) {
2428
2440
  throw new Error("Missing DialogProvider");
2429
2441
  }
@@ -2438,20 +2450,20 @@ function useDialogContainsElement() {
2438
2450
 
2439
2451
  // src/contexts/FloatingWindowContext.tsx
2440
2452
  var import_noya_utils5 = require("@noya-app/noya-utils");
2441
- var import_react34 = __toESM(require("react"));
2453
+ var import_react35 = __toESM(require("react"));
2442
2454
  var import_react_dom = require("react-dom");
2443
- var FloatingWindowContext = (0, import_react34.createContext)(void 0);
2444
- var CurrentWindowContext = (0, import_react34.createContext)(void 0);
2455
+ var FloatingWindowContext = (0, import_react35.createContext)(void 0);
2456
+ var CurrentWindowContext = (0, import_react35.createContext)(void 0);
2445
2457
  var FloatingWindowProvider = ({
2446
2458
  children
2447
2459
  }) => {
2448
- const [windows, setWindows] = (0, import_react34.useState)({});
2449
- const contextValue = (0, import_react34.useMemo)(() => {
2460
+ const [windows, setWindows] = (0, import_react35.useState)({});
2461
+ const contextValue = (0, import_react35.useMemo)(() => {
2450
2462
  const createWindow = (element) => {
2451
2463
  const id = (0, import_noya_utils5.uuid)();
2452
2464
  setWindows((windows2) => ({
2453
2465
  ...windows2,
2454
- [id]: /* @__PURE__ */ import_react34.default.createElement(CurrentWindowContext.Provider, { value: { id } }, element)
2466
+ [id]: /* @__PURE__ */ import_react35.default.createElement(CurrentWindowContext.Provider, { value: { id } }, element)
2455
2467
  }));
2456
2468
  return id;
2457
2469
  };
@@ -2463,12 +2475,12 @@ var FloatingWindowProvider = ({
2463
2475
  };
2464
2476
  return { createWindow, closeWindow };
2465
2477
  }, []);
2466
- return /* @__PURE__ */ import_react34.default.createElement(FloatingWindowContext.Provider, { value: contextValue }, children, Object.entries(windows).map(
2478
+ return /* @__PURE__ */ import_react35.default.createElement(FloatingWindowContext.Provider, { value: contextValue }, children, Object.entries(windows).map(
2467
2479
  ([id, element]) => (0, import_react_dom.createPortal)(element, document.body, id)
2468
2480
  ));
2469
2481
  };
2470
2482
  var useFloatingWindowManager = () => {
2471
- const context = (0, import_react34.useContext)(FloatingWindowContext);
2483
+ const context = (0, import_react35.useContext)(FloatingWindowContext);
2472
2484
  if (!context) {
2473
2485
  throw new Error(
2474
2486
  "useFloatingWindow must be used within a FloatingWindowProvider"
@@ -2477,7 +2489,7 @@ var useFloatingWindowManager = () => {
2477
2489
  return context;
2478
2490
  };
2479
2491
  var useCurrentFloatingWindowInternal = () => {
2480
- const context = (0, import_react34.useContext)(CurrentWindowContext);
2492
+ const context = (0, import_react35.useContext)(CurrentWindowContext);
2481
2493
  if (!context) {
2482
2494
  throw new Error("useCurrentWindow must be used within a FloatingWindow");
2483
2495
  }
@@ -2485,7 +2497,7 @@ var useCurrentFloatingWindowInternal = () => {
2485
2497
  };
2486
2498
 
2487
2499
  // src/contexts/DesignSystemConfiguration.tsx
2488
- var DesignSystemThemeProvider = (0, import_react35.memo)(
2500
+ var DesignSystemThemeProvider = (0, import_react36.memo)(
2489
2501
  function DesignSystemThemeProvider2({
2490
2502
  children,
2491
2503
  theme
@@ -2496,50 +2508,50 @@ var DesignSystemThemeProvider = (0, import_react35.memo)(
2496
2508
  } catch (e) {
2497
2509
  }
2498
2510
  if (theme) {
2499
- return /* @__PURE__ */ import_react35.default.createElement(import_styled_components15.ThemeProvider, { theme }, children);
2511
+ return /* @__PURE__ */ import_react36.default.createElement(import_styled_components15.ThemeProvider, { theme }, children);
2500
2512
  } else if (parentTheme) {
2501
2513
  return children;
2502
2514
  } else {
2503
- return /* @__PURE__ */ import_react35.default.createElement(import_styled_components15.ThemeProvider, { theme: light_exports }, children);
2515
+ return /* @__PURE__ */ import_react36.default.createElement(import_styled_components15.ThemeProvider, { theme: light_exports }, children);
2504
2516
  }
2505
2517
  }
2506
2518
  );
2507
- var DesignSystemConfigurationContext = (0, import_react35.createContext)({
2519
+ var DesignSystemConfigurationContext = (0, import_react36.createContext)({
2508
2520
  platform: "key"
2509
2521
  });
2510
- var DesignSystemConfigurationProvider = (0, import_react35.memo)(
2522
+ var DesignSystemConfigurationProvider = (0, import_react36.memo)(
2511
2523
  function DesignSystemConfigurationProvider2({
2512
2524
  children,
2513
2525
  theme,
2514
2526
  platform
2515
2527
  }) {
2516
- const [internalPlatform, setInternalPlatform] = (0, import_react35.useState)(
2528
+ const [internalPlatform, setInternalPlatform] = (0, import_react36.useState)(
2517
2529
  platform ?? "key"
2518
2530
  );
2519
- (0, import_react35.useEffect)(() => {
2531
+ (0, import_react36.useEffect)(() => {
2520
2532
  if (platform !== void 0)
2521
2533
  return;
2522
2534
  if (typeof navigator !== "undefined") {
2523
2535
  setInternalPlatform((0, import_noya_keymap3.getCurrentPlatform)(navigator));
2524
2536
  }
2525
2537
  }, [platform]);
2526
- const contextValue = (0, import_react35.useMemo)(
2538
+ const contextValue = (0, import_react36.useMemo)(
2527
2539
  () => ({ platform: platform ?? internalPlatform }),
2528
2540
  [platform, internalPlatform]
2529
2541
  );
2530
2542
  const resolvedTheme = theme === "light" ? light_exports : theme === "dark" ? dark_exports : theme ?? light_exports;
2531
- return /* @__PURE__ */ import_react35.default.createElement(DesignSystemConfigurationContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react35.default.createElement(import_styled_components15.ThemeProvider, { theme: resolvedTheme }, /* @__PURE__ */ import_react35.default.createElement(DialogProvider, null, /* @__PURE__ */ import_react35.default.createElement(ToastProvider, null, /* @__PURE__ */ import_react35.default.createElement(FloatingWindowProvider, null, children)))));
2543
+ return /* @__PURE__ */ import_react36.default.createElement(DesignSystemConfigurationContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react36.default.createElement(import_styled_components15.ThemeProvider, { theme: resolvedTheme }, /* @__PURE__ */ import_react36.default.createElement(DialogProvider, null, /* @__PURE__ */ import_react36.default.createElement(ToastProvider, null, /* @__PURE__ */ import_react36.default.createElement(FloatingWindowProvider, null, children)))));
2532
2544
  }
2533
2545
  );
2534
2546
  function useDesignSystemConfiguration() {
2535
- return (0, import_react35.useContext)(DesignSystemConfigurationContext);
2547
+ return (0, import_react36.useContext)(DesignSystemConfigurationContext);
2536
2548
  }
2537
2549
  function useDesignSystemTheme() {
2538
2550
  return (0, import_styled_components15.useTheme)();
2539
2551
  }
2540
2552
 
2541
2553
  // src/hooks/useHover.ts
2542
- var React21 = __toESM(require("react"));
2554
+ var React22 = __toESM(require("react"));
2543
2555
  var globalIgnoreEmulatedMouseEvents = false;
2544
2556
  var hoverCount = 0;
2545
2557
  function setGlobalIgnoreEmulatedMouseEvents() {
@@ -2569,13 +2581,13 @@ function setupGlobalTouchEvents() {
2569
2581
  }
2570
2582
  function useHover(props = {}) {
2571
2583
  const { onHoverStart, onHoverChange, onHoverEnd, isDisabled } = props;
2572
- const [isHovered, setHovered] = React21.useState(false);
2573
- const state = React21.useRef({
2584
+ const [isHovered, setHovered] = React22.useState(false);
2585
+ const state = React22.useRef({
2574
2586
  isHovered: false,
2575
2587
  ignoreEmulatedMouseEvents: false
2576
2588
  }).current;
2577
- React21.useEffect(setupGlobalTouchEvents, []);
2578
- const hoverProps = React21.useMemo(
2589
+ React22.useEffect(setupGlobalTouchEvents, []);
2590
+ const hoverProps = React22.useMemo(
2579
2591
  function getHoverProps() {
2580
2592
  function triggerHoverStart(event, pointerType) {
2581
2593
  if (isDisabled || pointerType === "touch" || state.isHovered) {
@@ -2716,8 +2728,8 @@ var AddElement = (0, import_styled_components16.default)(import_noya_icons3.Plus
2716
2728
  opacity: 0.85
2717
2729
  }
2718
2730
  }));
2719
- var Chip = (0, import_react36.memo)(
2720
- (0, import_react36.forwardRef)(function Chip2({
2731
+ var Chip = (0, import_react37.memo)(
2732
+ (0, import_react37.forwardRef)(function Chip2({
2721
2733
  colorScheme,
2722
2734
  children,
2723
2735
  deletable,
@@ -2740,7 +2752,7 @@ var Chip = (0, import_react36.memo)(
2740
2752
  });
2741
2753
  const handleClick = !children && !deletable && addable ? onAdd : onClick;
2742
2754
  const color = colorScheme === "primary" ? theme.colors.primary : colorScheme === "secondary" ? theme.colors.secondary : theme.colors.text;
2743
- return /* @__PURE__ */ import_react36.default.createElement(
2755
+ return /* @__PURE__ */ import_react37.default.createElement(
2744
2756
  ChipElement,
2745
2757
  {
2746
2758
  ref: forwardedRef,
@@ -2754,7 +2766,7 @@ var Chip = (0, import_react36.memo)(
2754
2766
  tabIndex,
2755
2767
  ...rest
2756
2768
  },
2757
- addable && /* @__PURE__ */ import_react36.default.createElement(
2769
+ addable && /* @__PURE__ */ import_react37.default.createElement(
2758
2770
  AddElement,
2759
2771
  {
2760
2772
  size: size2,
@@ -2767,7 +2779,7 @@ var Chip = (0, import_react36.memo)(
2767
2779
  }
2768
2780
  ),
2769
2781
  children,
2770
- deletable && /* @__PURE__ */ import_react36.default.createElement(
2782
+ deletable && /* @__PURE__ */ import_react37.default.createElement(
2771
2783
  DeleteElement,
2772
2784
  {
2773
2785
  size: size2,
@@ -2787,7 +2799,7 @@ var Chip = (0, import_react36.memo)(
2787
2799
  var import_noya_icons4 = require("@noya-app/noya-icons");
2788
2800
  var import_noya_keymap4 = require("@noya-app/noya-keymap");
2789
2801
  var RadixContextMenu = __toESM(require("@radix-ui/react-context-menu"));
2790
- var import_react37 = __toESM(require("react"));
2802
+ var import_react38 = __toESM(require("react"));
2791
2803
  var import_styled_components17 = __toESM(require("styled-components"));
2792
2804
  var SeparatorElement2 = (0, import_styled_components17.default)(RadixContextMenu.Separator)(
2793
2805
  styles.separatorStyle
@@ -2799,7 +2811,7 @@ var CheckboxItemElement2 = (0, import_styled_components17.default)(RadixContextM
2799
2811
  var StyledItemIndicator2 = (0, import_styled_components17.default)(RadixContextMenu.ItemIndicator)(
2800
2812
  styles.itemIndicatorStyle
2801
2813
  );
2802
- var ContextMenuItem2 = (0, import_react37.memo)(function ContextMenuItem3({
2814
+ var ContextMenuItem2 = (0, import_react38.memo)(function ContextMenuItem3({
2803
2815
  value,
2804
2816
  children,
2805
2817
  onSelect,
@@ -2810,42 +2822,42 @@ var ContextMenuItem2 = (0, import_react37.memo)(function ContextMenuItem3({
2810
2822
  items,
2811
2823
  shortcut
2812
2824
  }) {
2813
- const handlePointerDown = (0, import_react37.useCallback)(
2825
+ const handlePointerDown = (0, import_react38.useCallback)(
2814
2826
  (event) => event.stopPropagation(),
2815
2827
  []
2816
2828
  );
2817
- const handleSelectItem = (0, import_react37.useCallback)(() => {
2829
+ const handleSelectItem = (0, import_react38.useCallback)(() => {
2818
2830
  if (!value)
2819
2831
  return;
2820
2832
  onSelect(value);
2821
2833
  }, [onSelect, value]);
2822
2834
  if (checked) {
2823
- return /* @__PURE__ */ import_react37.default.createElement(
2835
+ return /* @__PURE__ */ import_react38.default.createElement(
2824
2836
  CheckboxItemElement2,
2825
2837
  {
2826
2838
  checked,
2827
2839
  disabled,
2828
2840
  onSelect: handleSelectItem
2829
2841
  },
2830
- /* @__PURE__ */ import_react37.default.createElement(StyledItemIndicator2, null, /* @__PURE__ */ import_react37.default.createElement(import_noya_icons4.CheckIcon, null)),
2842
+ /* @__PURE__ */ import_react38.default.createElement(StyledItemIndicator2, null, /* @__PURE__ */ import_react38.default.createElement(import_noya_icons4.CheckIcon, null)),
2831
2843
  children
2832
2844
  );
2833
2845
  }
2834
- const element = /* @__PURE__ */ import_react37.default.createElement(
2846
+ const element = /* @__PURE__ */ import_react38.default.createElement(
2835
2847
  ItemElement2,
2836
2848
  {
2837
2849
  disabled,
2838
2850
  onSelect: handleSelectItem,
2839
2851
  onPointerDown: handlePointerDown
2840
2852
  },
2841
- indented && /* @__PURE__ */ import_react37.default.createElement(Spacer.Horizontal, { size: CHECKBOX_WIDTH - CHECKBOX_RIGHT_INSET }),
2842
- icon && /* @__PURE__ */ import_react37.default.createElement(import_react37.default.Fragment, null, icon, /* @__PURE__ */ import_react37.default.createElement(Spacer.Horizontal, { size: 8 })),
2853
+ indented && /* @__PURE__ */ import_react38.default.createElement(Spacer.Horizontal, { size: CHECKBOX_WIDTH - CHECKBOX_RIGHT_INSET }),
2854
+ icon && /* @__PURE__ */ import_react38.default.createElement(import_react38.default.Fragment, null, renderIcon(icon), /* @__PURE__ */ import_react38.default.createElement(Spacer.Horizontal, { size: 8 })),
2843
2855
  children,
2844
- shortcut && /* @__PURE__ */ import_react37.default.createElement(import_react37.default.Fragment, null, /* @__PURE__ */ import_react37.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react37.default.createElement(Spacer.Horizontal, { size: 24 }), /* @__PURE__ */ import_react37.default.createElement(KeyboardShortcut, { shortcut })),
2845
- items && items.length > 0 && /* @__PURE__ */ import_react37.default.createElement(import_react37.default.Fragment, null, /* @__PURE__ */ import_react37.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react37.default.createElement(Spacer.Horizontal, { size: 16 }), /* @__PURE__ */ import_react37.default.createElement(import_noya_icons4.ChevronRightIcon, null))
2856
+ shortcut && /* @__PURE__ */ import_react38.default.createElement(import_react38.default.Fragment, null, /* @__PURE__ */ import_react38.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react38.default.createElement(Spacer.Horizontal, { size: 24 }), /* @__PURE__ */ import_react38.default.createElement(KeyboardShortcut, { shortcut })),
2857
+ items && items.length > 0 && /* @__PURE__ */ import_react38.default.createElement(import_react38.default.Fragment, null, /* @__PURE__ */ import_react38.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react38.default.createElement(Spacer.Horizontal, { size: 16 }), /* @__PURE__ */ import_react38.default.createElement(import_noya_icons4.ChevronRightIcon, null))
2846
2858
  );
2847
2859
  if (items && items.length > 0) {
2848
- return /* @__PURE__ */ import_react37.default.createElement(ContextMenuRoot, { isNested: true, items, onSelect }, element);
2860
+ return /* @__PURE__ */ import_react38.default.createElement(ContextMenuRoot, { isNested: true, items, onSelect }, element);
2849
2861
  } else {
2850
2862
  return element;
2851
2863
  }
@@ -2863,19 +2875,19 @@ function ContextMenuRoot({
2863
2875
  const hasCheckedItem = items.some(
2864
2876
  (item) => item !== SEPARATOR_ITEM && item.checked
2865
2877
  );
2866
- const keymap = (0, import_react37.useMemo)(
2878
+ const keymap = (0, import_react38.useMemo)(
2867
2879
  () => isNested || shouldBindKeyboardShortcuts === false ? {} : getKeyboardShortcutsForMenuItems(items, onSelect),
2868
2880
  [isNested, items, onSelect, shouldBindKeyboardShortcuts]
2869
2881
  );
2870
2882
  (0, import_noya_keymap4.useKeyboardShortcuts)(keymap);
2871
- const onPointerDown = (0, import_react37.useCallback)((event) => {
2883
+ const onPointerDown = (0, import_react38.useCallback)((event) => {
2872
2884
  event.preventDefault();
2873
2885
  }, []);
2874
2886
  const RootComponent = isNested ? RadixContextMenu.Sub : RadixContextMenu.Root;
2875
2887
  const TriggerComponent = isNested ? RadixContextMenu.SubTrigger : RadixContextMenu.Trigger;
2876
2888
  const ContentComponent = isNested ? SubContent4 : Content8;
2877
- return /* @__PURE__ */ import_react37.default.createElement(RootComponent, { onOpenChange }, /* @__PURE__ */ import_react37.default.createElement(TriggerComponent, { asChild: true, onPointerDown }, children), /* @__PURE__ */ import_react37.default.createElement(RadixContextMenu.Portal, null, /* @__PURE__ */ import_react37.default.createElement(ContentComponent, null, items.map(
2878
- (item, index) => item === SEPARATOR_ITEM ? /* @__PURE__ */ import_react37.default.createElement(SeparatorElement2, { key: index }) : /* @__PURE__ */ import_react37.default.createElement(
2889
+ return /* @__PURE__ */ import_react38.default.createElement(RootComponent, { onOpenChange }, /* @__PURE__ */ import_react38.default.createElement(TriggerComponent, { asChild: true, onPointerDown }, children), /* @__PURE__ */ import_react38.default.createElement(RadixContextMenu.Portal, null, /* @__PURE__ */ import_react38.default.createElement(ContentComponent, null, items.map(
2890
+ (item, index) => item === SEPARATOR_ITEM ? /* @__PURE__ */ import_react38.default.createElement(SeparatorElement2, { key: index }) : /* @__PURE__ */ import_react38.default.createElement(
2879
2891
  ContextMenuItem2,
2880
2892
  {
2881
2893
  key: item.value ?? index,
@@ -2892,22 +2904,22 @@ function ContextMenuRoot({
2892
2904
  )
2893
2905
  ))));
2894
2906
  }
2895
- var ContextMenu = (0, import_react37.memo)(ContextMenuRoot);
2907
+ var ContextMenu = (0, import_react38.memo)(ContextMenuRoot);
2896
2908
 
2897
2909
  // src/components/Divider.tsx
2898
- var import_react38 = __toESM(require("react"));
2910
+ var import_react39 = __toESM(require("react"));
2899
2911
  var import_styled_components18 = __toESM(require("styled-components"));
2900
2912
  var DividerContainer = import_styled_components18.default.div(({ theme, $variant = "normal", $orientation, $overflow = 0 }) => ({
2901
2913
  ...$orientation === "horizontal" ? { height: "1px", minHeight: "1px", margin: `0px -${$overflow}px` } : { width: "1px", minWidth: "1px", margin: `-${$overflow}px 0px` },
2902
2914
  background: $variant === "strong" ? theme.colors.dividerStrong : $variant === "subtle" ? theme.colors.dividerSubtle : theme.colors.divider,
2903
2915
  alignSelf: "stretch"
2904
2916
  }));
2905
- var Divider = (0, import_react38.memo)(function Divider2({
2917
+ var Divider = (0, import_react39.memo)(function Divider2({
2906
2918
  variant,
2907
2919
  overflow,
2908
2920
  ...props
2909
2921
  }) {
2910
- return /* @__PURE__ */ import_react38.default.createElement(
2922
+ return /* @__PURE__ */ import_react39.default.createElement(
2911
2923
  DividerContainer,
2912
2924
  {
2913
2925
  $orientation: "horizontal",
@@ -2917,12 +2929,12 @@ var Divider = (0, import_react38.memo)(function Divider2({
2917
2929
  }
2918
2930
  );
2919
2931
  });
2920
- var DividerVertical = (0, import_react38.memo)(function DividerVertical2({
2932
+ var DividerVertical = (0, import_react39.memo)(function DividerVertical2({
2921
2933
  variant,
2922
2934
  overflow,
2923
2935
  ...props
2924
2936
  }) {
2925
- return /* @__PURE__ */ import_react38.default.createElement(
2937
+ return /* @__PURE__ */ import_react39.default.createElement(
2926
2938
  DividerContainer,
2927
2939
  {
2928
2940
  $orientation: "vertical",
@@ -2935,7 +2947,7 @@ var DividerVertical = (0, import_react38.memo)(function DividerVertical2({
2935
2947
 
2936
2948
  // src/components/DraggableMenuButton.tsx
2937
2949
  var import_noya_icons5 = require("@noya-app/noya-icons");
2938
- var import_react39 = __toESM(require("react"));
2950
+ var import_react40 = __toESM(require("react"));
2939
2951
  var import_styled_components19 = __toESM(require("styled-components"));
2940
2952
  var DotButtonElement = import_styled_components19.default.div(({ theme }) => ({
2941
2953
  cursor: "pointer",
@@ -2955,15 +2967,15 @@ var TriggerElement = import_styled_components19.default.div({
2955
2967
  pointerEvents: "none",
2956
2968
  height: "15px"
2957
2969
  });
2958
- var DraggableMenuButton = (0, import_react39.memo)(function DraggableMenuButton2({
2970
+ var DraggableMenuButton = (0, import_react40.memo)(function DraggableMenuButton2({
2959
2971
  items,
2960
2972
  onSelect,
2961
2973
  isVisible = true
2962
2974
  }) {
2963
2975
  const color = useDesignSystemTheme().colors.icon;
2964
- const [open, setOpen] = (0, import_react39.useState)(false);
2965
- const [downPosition, setDownPosition] = import_react39.default.useState(null);
2966
- const handlePointerDownCapture = (0, import_react39.useCallback)(
2976
+ const [open, setOpen] = (0, import_react40.useState)(false);
2977
+ const [downPosition, setDownPosition] = import_react40.default.useState(null);
2978
+ const handlePointerDownCapture = (0, import_react40.useCallback)(
2967
2979
  (event) => {
2968
2980
  if (open) {
2969
2981
  setDownPosition(null);
@@ -2976,7 +2988,7 @@ var DraggableMenuButton = (0, import_react39.memo)(function DraggableMenuButton2
2976
2988
  },
2977
2989
  [open]
2978
2990
  );
2979
- const handlePointerUp = (0, import_react39.useCallback)(
2991
+ const handlePointerUp = (0, import_react40.useCallback)(
2980
2992
  (event) => {
2981
2993
  if (open || !downPosition) {
2982
2994
  setDownPosition(null);
@@ -2992,14 +3004,14 @@ var DraggableMenuButton = (0, import_react39.memo)(function DraggableMenuButton2
2992
3004
  },
2993
3005
  [downPosition, open]
2994
3006
  );
2995
- const handleOpenChange = (0, import_react39.useCallback)(
3007
+ const handleOpenChange = (0, import_react40.useCallback)(
2996
3008
  (isOpen) => {
2997
3009
  if (!isOpen)
2998
3010
  setOpen(false);
2999
3011
  },
3000
3012
  [setOpen]
3001
3013
  );
3002
- return /* @__PURE__ */ import_react39.default.createElement(
3014
+ return /* @__PURE__ */ import_react40.default.createElement(
3003
3015
  DotButtonElement,
3004
3016
  {
3005
3017
  onPointerDownCapture: handlePointerDownCapture,
@@ -3009,7 +3021,7 @@ var DraggableMenuButton = (0, import_react39.memo)(function DraggableMenuButton2
3009
3021
  event.preventDefault();
3010
3022
  }
3011
3023
  },
3012
- items && onSelect ? /* @__PURE__ */ import_react39.default.createElement(
3024
+ items && onSelect ? /* @__PURE__ */ import_react40.default.createElement(
3013
3025
  DropdownMenu,
3014
3026
  {
3015
3027
  open,
@@ -3018,13 +3030,13 @@ var DraggableMenuButton = (0, import_react39.memo)(function DraggableMenuButton2
3018
3030
  onSelect,
3019
3031
  shouldBindKeyboardShortcuts: false
3020
3032
  },
3021
- /* @__PURE__ */ import_react39.default.createElement(TriggerElement, null, /* @__PURE__ */ import_react39.default.createElement(
3033
+ /* @__PURE__ */ import_react40.default.createElement(TriggerElement, null, /* @__PURE__ */ import_react40.default.createElement(
3022
3034
  import_noya_icons5.DragHandleDots2Icon,
3023
3035
  {
3024
3036
  color: isVisible || open ? color : "transparent"
3025
3037
  }
3026
3038
  ))
3027
- ) : /* @__PURE__ */ import_react39.default.createElement(
3039
+ ) : /* @__PURE__ */ import_react40.default.createElement(
3028
3040
  import_noya_icons5.DragHandleDots2Icon,
3029
3041
  {
3030
3042
  color: isVisible || open ? color : "transparent"
@@ -3034,7 +3046,7 @@ var DraggableMenuButton = (0, import_react39.memo)(function DraggableMenuButton2
3034
3046
  });
3035
3047
 
3036
3048
  // src/components/FillInputField.tsx
3037
- var import_react43 = __toESM(require("react"));
3049
+ var import_react44 = __toESM(require("react"));
3038
3050
  var import_styled_components21 = __toESM(require("styled-components"));
3039
3051
 
3040
3052
  // ../noya-file-format/src/types.ts
@@ -3360,26 +3372,26 @@ var ClassValue = /* @__PURE__ */ ((ClassValue2) => {
3360
3372
  })(ClassValue || {});
3361
3373
 
3362
3374
  // src/components/FillPreviewBackground.tsx
3363
- var import_react42 = __toESM(require("react"));
3375
+ var import_react43 = __toESM(require("react"));
3364
3376
  var import_styled_components20 = __toESM(require("styled-components"));
3365
3377
 
3366
3378
  // src/contexts/ImageDataContext.tsx
3367
- var import_react40 = __toESM(require("react"));
3368
- var ImageDataContext = (0, import_react40.createContext)(
3379
+ var import_react41 = __toESM(require("react"));
3380
+ var ImageDataContext = (0, import_react41.createContext)(
3369
3381
  void 0
3370
3382
  );
3371
- var ImageDataProvider = (0, import_react40.memo)(function ImageDataProvider2({
3383
+ var ImageDataProvider = (0, import_react41.memo)(function ImageDataProvider2({
3372
3384
  children,
3373
3385
  getImageData
3374
3386
  }) {
3375
- const contextValue = (0, import_react40.useMemo)(
3387
+ const contextValue = (0, import_react41.useMemo)(
3376
3388
  () => ({ getImageData: getImageData ?? (() => void 0) }),
3377
3389
  [getImageData]
3378
3390
  );
3379
- return /* @__PURE__ */ import_react40.default.createElement(ImageDataContext.Provider, { value: contextValue }, children);
3391
+ return /* @__PURE__ */ import_react41.default.createElement(ImageDataContext.Provider, { value: contextValue }, children);
3380
3392
  });
3381
3393
  function useImageData(ref) {
3382
- const value = (0, import_react40.useContext)(ImageDataContext);
3394
+ const value = (0, import_react41.useContext)(ImageDataContext);
3383
3395
  if (!value) {
3384
3396
  throw new Error("Missing ImageDataProvider");
3385
3397
  }
@@ -3387,15 +3399,15 @@ function useImageData(ref) {
3387
3399
  }
3388
3400
 
3389
3401
  // src/hooks/useObjectURL.ts
3390
- var import_react41 = require("react");
3402
+ var import_react42 = require("react");
3391
3403
  function useObjectURL(object) {
3392
- const objectURL = (0, import_react41.useMemo)(() => {
3404
+ const objectURL = (0, import_react42.useMemo)(() => {
3393
3405
  if (object instanceof Blob)
3394
3406
  return URL.createObjectURL(object);
3395
3407
  const bytes = object instanceof Uint8Array ? object : object !== void 0 ? new Uint8Array(object) : new Uint8Array();
3396
3408
  return URL.createObjectURL(new Blob([bytes]));
3397
3409
  }, [object]);
3398
- (0, import_react41.useLayoutEffect)(() => {
3410
+ (0, import_react42.useLayoutEffect)(() => {
3399
3411
  return () => URL.revokeObjectURL(objectURL);
3400
3412
  }, [objectURL]);
3401
3413
  return objectURL;
@@ -3451,9 +3463,9 @@ var Background = import_styled_components20.default.span(({ background }) => ({
3451
3463
  position: "absolute",
3452
3464
  inset: 0
3453
3465
  }));
3454
- var HorizontalDotsBackground = (0, import_react42.memo)(function HorizontalDotsBackground2() {
3466
+ var HorizontalDotsBackground = (0, import_react43.memo)(function HorizontalDotsBackground2() {
3455
3467
  const { inputBackground, placeholderDots } = (0, import_styled_components20.useTheme)().colors;
3456
- const background = (0, import_react42.useMemo)(
3468
+ const background = (0, import_react43.useMemo)(
3457
3469
  () => [
3458
3470
  `center url("data:image/svg+xml;utf8,${dotsHorizontalSvg(
3459
3471
  placeholderDots
@@ -3462,7 +3474,7 @@ var HorizontalDotsBackground = (0, import_react42.memo)(function HorizontalDotsB
3462
3474
  ].join(","),
3463
3475
  [inputBackground, placeholderDots]
3464
3476
  );
3465
- return /* @__PURE__ */ import_react42.default.createElement(Background, { background });
3477
+ return /* @__PURE__ */ import_react43.default.createElement(Background, { background });
3466
3478
  });
3467
3479
  function getPatternSizeAndPosition(fillType, tileScale) {
3468
3480
  switch (fillType) {
@@ -3476,7 +3488,7 @@ function getPatternSizeAndPosition(fillType, tileScale) {
3476
3488
  return "center / 100% 100%";
3477
3489
  }
3478
3490
  }
3479
- var PatternPreviewBackground = (0, import_react42.memo)(function PatternPreviewBackground2({
3491
+ var PatternPreviewBackground = (0, import_react43.memo)(function PatternPreviewBackground2({
3480
3492
  fillType,
3481
3493
  tileScale,
3482
3494
  imageRef
@@ -3484,7 +3496,7 @@ var PatternPreviewBackground = (0, import_react42.memo)(function PatternPreviewB
3484
3496
  const image = useImageData(imageRef);
3485
3497
  const url = useObjectURL(image);
3486
3498
  const size2 = getPatternSizeAndPosition(fillType, tileScale);
3487
- const background = (0, import_react42.useMemo)(
3499
+ const background = (0, import_react43.useMemo)(
3488
3500
  () => [
3489
3501
  size2,
3490
3502
  `url(${url})`,
@@ -3492,37 +3504,37 @@ var PatternPreviewBackground = (0, import_react42.memo)(function PatternPreviewB
3492
3504
  ].join(" "),
3493
3505
  [fillType, size2, url]
3494
3506
  );
3495
- return /* @__PURE__ */ import_react42.default.createElement(Background, { background });
3507
+ return /* @__PURE__ */ import_react43.default.createElement(Background, { background });
3496
3508
  });
3497
- var ColorPreviewBackground = (0, import_react42.memo)(function ColorPreviewBackground2({
3509
+ var ColorPreviewBackground = (0, import_react43.memo)(function ColorPreviewBackground2({
3498
3510
  color
3499
3511
  }) {
3500
- const background = (0, import_react42.useMemo)(() => sketchColorToRgbaString(color), [color]);
3501
- return /* @__PURE__ */ import_react42.default.createElement(Background, { background });
3512
+ const background = (0, import_react43.useMemo)(() => sketchColorToRgbaString(color), [color]);
3513
+ return /* @__PURE__ */ import_react43.default.createElement(Background, { background });
3502
3514
  });
3503
- var GradientPreviewBackground = (0, import_react42.memo)(function GradientPreviewBackground2({
3515
+ var GradientPreviewBackground = (0, import_react43.memo)(function GradientPreviewBackground2({
3504
3516
  gradient
3505
3517
  }) {
3506
- const background = (0, import_react42.useMemo)(
3518
+ const background = (0, import_react43.useMemo)(
3507
3519
  () => getGradientBackground(gradient.stops, gradient.gradientType, 180),
3508
3520
  [gradient.gradientType, gradient.stops]
3509
3521
  );
3510
- return /* @__PURE__ */ import_react42.default.createElement(Background, { background });
3522
+ return /* @__PURE__ */ import_react43.default.createElement(Background, { background });
3511
3523
  });
3512
- var FillPreviewBackground = (0, import_react42.memo)(function FillPreviewBackground2({
3524
+ var FillPreviewBackground = (0, import_react43.memo)(function FillPreviewBackground2({
3513
3525
  value
3514
3526
  }) {
3515
3527
  if (!value)
3516
- return /* @__PURE__ */ import_react42.default.createElement(HorizontalDotsBackground, null);
3528
+ return /* @__PURE__ */ import_react43.default.createElement(HorizontalDotsBackground, null);
3517
3529
  switch (value._class) {
3518
3530
  case "color":
3519
- return /* @__PURE__ */ import_react42.default.createElement(ColorPreviewBackground, { color: value });
3531
+ return /* @__PURE__ */ import_react43.default.createElement(ColorPreviewBackground, { color: value });
3520
3532
  case "gradient":
3521
- return /* @__PURE__ */ import_react42.default.createElement(GradientPreviewBackground, { gradient: value });
3533
+ return /* @__PURE__ */ import_react43.default.createElement(GradientPreviewBackground, { gradient: value });
3522
3534
  case "pattern":
3523
3535
  if (!value.image)
3524
3536
  return null;
3525
- return /* @__PURE__ */ import_react42.default.createElement(
3537
+ return /* @__PURE__ */ import_react43.default.createElement(
3526
3538
  PatternPreviewBackground,
3527
3539
  {
3528
3540
  fillType: value.patternFillType,
@@ -3552,14 +3564,14 @@ var Container = import_styled_components21.default.button(
3552
3564
  flex: $flex
3553
3565
  })
3554
3566
  );
3555
- var FillInputField = (0, import_react43.memo)(
3556
- (0, import_react43.forwardRef)(function FillInputField2({ id, value, flex, ...rest }, ref) {
3557
- return /* @__PURE__ */ import_react43.default.createElement(Container, { ref, id, $flex: flex, ...rest }, /* @__PURE__ */ import_react43.default.createElement(FillPreviewBackground, { value }));
3567
+ var FillInputField = (0, import_react44.memo)(
3568
+ (0, import_react44.forwardRef)(function FillInputField2({ id, value, flex, ...rest }, ref) {
3569
+ return /* @__PURE__ */ import_react44.default.createElement(Container, { ref, id, $flex: flex, ...rest }, /* @__PURE__ */ import_react44.default.createElement(FillPreviewBackground, { value }));
3558
3570
  })
3559
3571
  );
3560
3572
 
3561
3573
  // src/components/FloatingWindow.tsx
3562
- var import_react44 = __toESM(require("react"));
3574
+ var import_react45 = __toESM(require("react"));
3563
3575
  var styles2 = {
3564
3576
  noSelect: {
3565
3577
  userSelect: "none",
@@ -3652,7 +3664,7 @@ function defaultRenderToolbar({
3652
3664
  toolbarContent,
3653
3665
  onClose
3654
3666
  }) {
3655
- return /* @__PURE__ */ import_react44.default.createElement(import_react44.default.Fragment, null, /* @__PURE__ */ import_react44.default.createElement(Small, { flex: "1", fontWeight: "500", color: "text" }, title), toolbarContent, /* @__PURE__ */ import_react44.default.createElement(
3667
+ return /* @__PURE__ */ import_react45.default.createElement(import_react45.default.Fragment, null, /* @__PURE__ */ import_react45.default.createElement(Small, { flex: "1", fontWeight: "500", color: "text" }, title), toolbarContent, /* @__PURE__ */ import_react45.default.createElement(
3656
3668
  IconButton,
3657
3669
  {
3658
3670
  iconName: "Cross3Icon",
@@ -3677,16 +3689,16 @@ var FloatingWindow = ({
3677
3689
  toolbarContent,
3678
3690
  renderToolbar = defaultRenderToolbar
3679
3691
  }) => {
3680
- const [position, setPosition] = (0, import_react44.useState)({ x: initialX, y: initialY });
3681
- const [size2, setSize] = (0, import_react44.useState)({
3692
+ const [position, setPosition] = (0, import_react45.useState)({ x: initialX, y: initialY });
3693
+ const [size2, setSize] = (0, import_react45.useState)({
3682
3694
  width: initialWidth,
3683
3695
  height: initialHeight
3684
3696
  });
3685
- const [isDragging, setIsDragging] = (0, import_react44.useState)(false);
3686
- const [isResizing, setIsResizing] = (0, import_react44.useState)(false);
3687
- const [dragOffset, setDragOffset] = (0, import_react44.useState)({ x: 0, y: 0 });
3688
- const [resizeDirection, setResizeDirection] = (0, import_react44.useState)(null);
3689
- const wrapperRef = (0, import_react44.useRef)(null);
3697
+ const [isDragging, setIsDragging] = (0, import_react45.useState)(false);
3698
+ const [isResizing, setIsResizing] = (0, import_react45.useState)(false);
3699
+ const [dragOffset, setDragOffset] = (0, import_react45.useState)({ x: 0, y: 0 });
3700
+ const [resizeDirection, setResizeDirection] = (0, import_react45.useState)(null);
3701
+ const wrapperRef = (0, import_react45.useRef)(null);
3690
3702
  const toggleGlobalTextSelection = (disable) => {
3691
3703
  if (disable) {
3692
3704
  document.body.style.userSelect = "none";
@@ -3694,7 +3706,7 @@ var FloatingWindow = ({
3694
3706
  document.body.style.userSelect = "";
3695
3707
  }
3696
3708
  };
3697
- const handleMouseDown = (0, import_react44.useCallback)((e) => {
3709
+ const handleMouseDown = (0, import_react45.useCallback)((e) => {
3698
3710
  if (!wrapperRef.current)
3699
3711
  return;
3700
3712
  const rect = wrapperRef.current.getBoundingClientRect();
@@ -3704,7 +3716,7 @@ var FloatingWindow = ({
3704
3716
  });
3705
3717
  setIsDragging(true);
3706
3718
  }, []);
3707
- const handleResizeStart = (0, import_react44.useCallback)(
3719
+ const handleResizeStart = (0, import_react45.useCallback)(
3708
3720
  (direction) => (e) => {
3709
3721
  e.stopPropagation();
3710
3722
  setIsResizing(true);
@@ -3713,7 +3725,7 @@ var FloatingWindow = ({
3713
3725
  },
3714
3726
  []
3715
3727
  );
3716
- const handleMouseMove = (0, import_react44.useCallback)(
3728
+ const handleMouseMove = (0, import_react45.useCallback)(
3717
3729
  (e) => {
3718
3730
  if (isDragging) {
3719
3731
  setPosition({
@@ -3767,13 +3779,13 @@ var FloatingWindow = ({
3767
3779
  minHeight
3768
3780
  ]
3769
3781
  );
3770
- const handleMouseUp = (0, import_react44.useCallback)((e) => {
3782
+ const handleMouseUp = (0, import_react45.useCallback)((e) => {
3771
3783
  setIsDragging(false);
3772
3784
  setIsResizing(false);
3773
3785
  setResizeDirection(null);
3774
3786
  toggleGlobalTextSelection(false);
3775
3787
  }, []);
3776
- import_react44.default.useEffect(() => {
3788
+ import_react45.default.useEffect(() => {
3777
3789
  document.addEventListener("mousemove", handleMouseMove);
3778
3790
  document.addEventListener("mouseup", handleMouseUp);
3779
3791
  return () => {
@@ -3784,12 +3796,12 @@ var FloatingWindow = ({
3784
3796
  const theme = useDesignSystemTheme();
3785
3797
  const floatingWindowManager = useFloatingWindowManager();
3786
3798
  const currentFloatingWindow = useCurrentFloatingWindowInternal();
3787
- const handleClose = (0, import_react44.useCallback)(() => {
3799
+ const handleClose = (0, import_react45.useCallback)(() => {
3788
3800
  if (onClose)
3789
3801
  onClose();
3790
3802
  floatingWindowManager.closeWindow(currentFloatingWindow.id);
3791
3803
  }, [currentFloatingWindow.id, floatingWindowManager, onClose]);
3792
- return /* @__PURE__ */ import_react44.default.createElement(
3804
+ return /* @__PURE__ */ import_react45.default.createElement(
3793
3805
  "div",
3794
3806
  {
3795
3807
  ref: wrapperRef,
@@ -3803,7 +3815,7 @@ var FloatingWindow = ({
3803
3815
  backgroundColor: theme.colors.canvas.background
3804
3816
  }
3805
3817
  },
3806
- /* @__PURE__ */ import_react44.default.createElement(
3818
+ /* @__PURE__ */ import_react45.default.createElement(
3807
3819
  "div",
3808
3820
  {
3809
3821
  style: {
@@ -3814,9 +3826,9 @@ var FloatingWindow = ({
3814
3826
  },
3815
3827
  renderToolbar({ title, toolbarContent, onClose: handleClose })
3816
3828
  ),
3817
- /* @__PURE__ */ import_react44.default.createElement(Divider, null),
3818
- /* @__PURE__ */ import_react44.default.createElement("div", { style: styles2.content }, children),
3819
- Object.entries(resizeHandlePositions).map(([direction, style3]) => /* @__PURE__ */ import_react44.default.createElement(
3829
+ /* @__PURE__ */ import_react45.default.createElement(Divider, null),
3830
+ /* @__PURE__ */ import_react45.default.createElement("div", { style: styles2.content }, children),
3831
+ Object.entries(resizeHandlePositions).map(([direction, style3]) => /* @__PURE__ */ import_react45.default.createElement(
3820
3832
  "div",
3821
3833
  {
3822
3834
  key: direction,
@@ -3829,8 +3841,8 @@ var FloatingWindow = ({
3829
3841
 
3830
3842
  // src/components/GradientPicker.tsx
3831
3843
  var import_noya_colorpicker2 = require("@noya-app/noya-colorpicker");
3832
- var import_react45 = __toESM(require("react"));
3833
- var GradientPicker = (0, import_react45.memo)(function GradientPicker2({
3844
+ var import_react46 = __toESM(require("react"));
3845
+ var GradientPicker = (0, import_react46.memo)(function GradientPicker2({
3834
3846
  value,
3835
3847
  selectedStop,
3836
3848
  onChangeColor,
@@ -3839,7 +3851,7 @@ var GradientPicker = (0, import_react45.memo)(function GradientPicker2({
3839
3851
  onDelete,
3840
3852
  onSelectStop
3841
3853
  }) {
3842
- const colorModel = (0, import_react45.useMemo)(
3854
+ const colorModel = (0, import_react46.useMemo)(
3843
3855
  () => ({
3844
3856
  defaultColor: { r: 0, g: 0, b: 0, a: 1 },
3845
3857
  toHsva: import_noya_colorpicker2.rgbaToHsva,
@@ -3848,30 +3860,30 @@ var GradientPicker = (0, import_react45.memo)(function GradientPicker2({
3848
3860
  }),
3849
3861
  []
3850
3862
  );
3851
- const rgbaColor = (0, import_react45.useMemo)(
3863
+ const rgbaColor = (0, import_react46.useMemo)(
3852
3864
  () => sketchColorToRgba(value[selectedStop].color),
3853
3865
  [value, selectedStop]
3854
3866
  );
3855
- const handleChangeColor = (0, import_react45.useCallback)(
3867
+ const handleChangeColor = (0, import_react46.useCallback)(
3856
3868
  (value2) => {
3857
3869
  onChangeColor(rgbaToSketchColor(value2));
3858
3870
  },
3859
3871
  [onChangeColor]
3860
3872
  );
3861
- const handleAddGradientStop = (0, import_react45.useCallback)(
3873
+ const handleAddGradientStop = (0, import_react46.useCallback)(
3862
3874
  (value2, position) => {
3863
3875
  onAdd(rgbaToSketchColor(value2), position);
3864
3876
  },
3865
3877
  [onAdd]
3866
3878
  );
3867
- return /* @__PURE__ */ import_react45.default.createElement(
3879
+ return /* @__PURE__ */ import_react46.default.createElement(
3868
3880
  import_noya_colorpicker2.ColorPicker,
3869
3881
  {
3870
3882
  onChange: handleChangeColor,
3871
3883
  colorModel,
3872
3884
  color: rgbaColor
3873
3885
  },
3874
- /* @__PURE__ */ import_react45.default.createElement(
3886
+ /* @__PURE__ */ import_react46.default.createElement(
3875
3887
  import_noya_colorpicker2.Gradient,
3876
3888
  {
3877
3889
  gradients: value,
@@ -3882,12 +3894,12 @@ var GradientPicker = (0, import_react45.memo)(function GradientPicker2({
3882
3894
  onDelete
3883
3895
  }
3884
3896
  ),
3885
- /* @__PURE__ */ import_react45.default.createElement(Spacer.Vertical, { size: 10 }),
3886
- /* @__PURE__ */ import_react45.default.createElement(import_noya_colorpicker2.Saturation, null),
3887
- /* @__PURE__ */ import_react45.default.createElement(Spacer.Vertical, { size: 12 }),
3888
- /* @__PURE__ */ import_react45.default.createElement(import_noya_colorpicker2.Hue, null),
3889
- /* @__PURE__ */ import_react45.default.createElement(Spacer.Vertical, { size: 5 }),
3890
- /* @__PURE__ */ import_react45.default.createElement(import_noya_colorpicker2.Alpha, null)
3897
+ /* @__PURE__ */ import_react46.default.createElement(Spacer.Vertical, { size: 10 }),
3898
+ /* @__PURE__ */ import_react46.default.createElement(import_noya_colorpicker2.Saturation, null),
3899
+ /* @__PURE__ */ import_react46.default.createElement(Spacer.Vertical, { size: 12 }),
3900
+ /* @__PURE__ */ import_react46.default.createElement(import_noya_colorpicker2.Hue, null),
3901
+ /* @__PURE__ */ import_react46.default.createElement(Spacer.Vertical, { size: 5 }),
3902
+ /* @__PURE__ */ import_react46.default.createElement(import_noya_colorpicker2.Alpha, null)
3891
3903
  );
3892
3904
  });
3893
3905
 
@@ -3919,12 +3931,12 @@ var Grid = import_styled_components22.default.div((props) => ({
3919
3931
  }));
3920
3932
 
3921
3933
  // src/components/GridView.tsx
3922
- var import_react47 = __toESM(require("react"));
3934
+ var import_react48 = __toESM(require("react"));
3923
3935
  var import_styled_components24 = __toESM(require("styled-components"));
3924
3936
 
3925
3937
  // src/components/ScrollArea.tsx
3926
3938
  var RadixScrollArea = __toESM(require("@radix-ui/react-scroll-area"));
3927
- var import_react46 = __toESM(require("react"));
3939
+ var import_react47 = __toESM(require("react"));
3928
3940
  var import_styled_components23 = __toESM(require("styled-components"));
3929
3941
  var SCROLLBAR_SIZE = 10;
3930
3942
  var StyledViewport = (0, import_styled_components23.default)(RadixScrollArea.Viewport)({
@@ -3952,18 +3964,18 @@ var Container2 = import_styled_components23.default.div({
3952
3964
  flex: "1 1 0px",
3953
3965
  minHeight: 0
3954
3966
  });
3955
- var ScrollArea = (0, import_react46.memo)(function ScrollArea2({ children }) {
3956
- const [scrollElementRef, setScrollElementRef] = (0, import_react46.useState)(null);
3957
- return /* @__PURE__ */ import_react46.default.createElement(Container2, null, /* @__PURE__ */ import_react46.default.createElement(RadixScrollArea.Root, { style: { width: "100%", height: "100%" } }, /* @__PURE__ */ import_react46.default.createElement(
3967
+ var ScrollArea = (0, import_react47.memo)(function ScrollArea2({ children }) {
3968
+ const [scrollElementRef, setScrollElementRef] = (0, import_react47.useState)(null);
3969
+ return /* @__PURE__ */ import_react47.default.createElement(Container2, null, /* @__PURE__ */ import_react47.default.createElement(RadixScrollArea.Root, { style: { width: "100%", height: "100%" } }, /* @__PURE__ */ import_react47.default.createElement(
3958
3970
  StyledViewport,
3959
3971
  {
3960
- ref: (0, import_react46.useCallback)(
3972
+ ref: (0, import_react47.useCallback)(
3961
3973
  (ref) => setScrollElementRef(ref),
3962
3974
  []
3963
3975
  )
3964
3976
  },
3965
3977
  typeof children === "function" ? scrollElementRef ? children(scrollElementRef) : null : children
3966
- ), /* @__PURE__ */ import_react46.default.createElement(StyledScrollbar, { orientation: "vertical", className: "scroll-component" }, /* @__PURE__ */ import_react46.default.createElement(StyledThumb, { className: "scroll-component" }))));
3978
+ ), /* @__PURE__ */ import_react47.default.createElement(StyledScrollbar, { orientation: "vertical", className: "scroll-component" }, /* @__PURE__ */ import_react47.default.createElement(StyledThumb, { className: "scroll-component" }))));
3967
3979
  });
3968
3980
 
3969
3981
  // src/components/GridView.tsx
@@ -4143,7 +4155,7 @@ var Shimmer = import_styled_components24.default.div`
4143
4155
  align-items: end;
4144
4156
  padding: 4px;
4145
4157
  `;
4146
- var GridViewItem = (0, import_react47.forwardRef)(function GridViewItem2({
4158
+ var GridViewItem = (0, import_react48.forwardRef)(function GridViewItem2({
4147
4159
  id,
4148
4160
  title,
4149
4161
  subtitle,
@@ -4159,15 +4171,15 @@ var GridViewItem = (0, import_react47.forwardRef)(function GridViewItem2({
4159
4171
  onContextMenu,
4160
4172
  style: style3
4161
4173
  }, forwardedRef) {
4162
- const [hovered, setHovered] = import_react47.default.useState(false);
4174
+ const [hovered, setHovered] = import_react48.default.useState(false);
4163
4175
  const { hoverProps } = useHover({
4164
4176
  onHoverChange: (isHovering) => {
4165
4177
  onHoverChange?.(isHovering);
4166
4178
  setHovered(isHovering);
4167
4179
  }
4168
4180
  });
4169
- const { textPosition, bordered, disabled } = (0, import_react47.useContext)(GridViewContext);
4170
- const handleClick = (0, import_react47.useCallback)(
4181
+ const { textPosition, bordered, disabled } = (0, import_react48.useContext)(GridViewContext);
4182
+ const handleClick = (0, import_react48.useCallback)(
4171
4183
  (event) => {
4172
4184
  event.stopPropagation();
4173
4185
  event.preventDefault();
@@ -4176,7 +4188,7 @@ var GridViewItem = (0, import_react47.forwardRef)(function GridViewItem2({
4176
4188
  },
4177
4189
  [onClick, onPress]
4178
4190
  );
4179
- const handleKeyDown = (0, import_react47.useCallback)(
4191
+ const handleKeyDown = (0, import_react48.useCallback)(
4180
4192
  (event) => {
4181
4193
  if (event.key === "Enter" || event.key === " ") {
4182
4194
  event.stopPropagation();
@@ -4188,7 +4200,7 @@ var GridViewItem = (0, import_react47.forwardRef)(function GridViewItem2({
4188
4200
  },
4189
4201
  [onPress]
4190
4202
  );
4191
- let element = /* @__PURE__ */ import_react47.default.createElement(
4203
+ let element = /* @__PURE__ */ import_react48.default.createElement(
4192
4204
  ItemContainer,
4193
4205
  {
4194
4206
  id,
@@ -4197,7 +4209,7 @@ var GridViewItem = (0, import_react47.forwardRef)(function GridViewItem2({
4197
4209
  tabIndex: disabled ? void 0 : 0,
4198
4210
  onKeyDown: handleKeyDown
4199
4211
  },
4200
- /* @__PURE__ */ import_react47.default.createElement(
4212
+ /* @__PURE__ */ import_react48.default.createElement(
4201
4213
  ContentContainer,
4202
4214
  {
4203
4215
  disabled,
@@ -4211,25 +4223,25 @@ var GridViewItem = (0, import_react47.forwardRef)(function GridViewItem2({
4211
4223
  },
4212
4224
  children
4213
4225
  ),
4214
- textPosition === "below" && /* @__PURE__ */ import_react47.default.createElement(import_react47.default.Fragment, null, /* @__PURE__ */ import_react47.default.createElement(Spacer.Vertical, { size: 8 }), /* @__PURE__ */ import_react47.default.createElement(ItemTitle, { showBackground: false }, title || " "), /* @__PURE__ */ import_react47.default.createElement(ItemDescription, { showBackground: false }, subtitle || " ")),
4215
- textPosition === "overlay" && hovered && (title || subtitle) && /* @__PURE__ */ import_react47.default.createElement(TextOverlay, null, title && /* @__PURE__ */ import_react47.default.createElement(ItemTitle, { showBackground: true }, title), subtitle && /* @__PURE__ */ import_react47.default.createElement(ItemDescription, { showBackground: true }, subtitle)),
4216
- loading && /* @__PURE__ */ import_react47.default.createElement(Shimmer, null, /* @__PURE__ */ import_react47.default.createElement(ActivityIndicator, { opacity: 0.5, size: 13 }))
4226
+ textPosition === "below" && /* @__PURE__ */ import_react48.default.createElement(import_react48.default.Fragment, null, /* @__PURE__ */ import_react48.default.createElement(Spacer.Vertical, { size: 8 }), /* @__PURE__ */ import_react48.default.createElement(ItemTitle, { showBackground: false }, title || " "), /* @__PURE__ */ import_react48.default.createElement(ItemDescription, { showBackground: false }, subtitle || " ")),
4227
+ textPosition === "overlay" && hovered && (title || subtitle) && /* @__PURE__ */ import_react48.default.createElement(TextOverlay, null, title && /* @__PURE__ */ import_react48.default.createElement(ItemTitle, { showBackground: true }, title), subtitle && /* @__PURE__ */ import_react48.default.createElement(ItemDescription, { showBackground: true }, subtitle)),
4228
+ loading && /* @__PURE__ */ import_react48.default.createElement(Shimmer, null, /* @__PURE__ */ import_react48.default.createElement(ActivityIndicator, { opacity: 0.5, size: 13 }))
4217
4229
  );
4218
4230
  if (menuItems && onSelectMenuItem) {
4219
- element = /* @__PURE__ */ import_react47.default.createElement(ContextMenu, { items: menuItems, onSelect: onSelectMenuItem }, element);
4231
+ element = /* @__PURE__ */ import_react48.default.createElement(ContextMenu, { items: menuItems, onSelect: onSelectMenuItem }, element);
4220
4232
  }
4221
4233
  if (textPosition === "toolip") {
4222
- element = /* @__PURE__ */ import_react47.default.createElement(
4234
+ element = /* @__PURE__ */ import_react48.default.createElement(
4223
4235
  Tooltip,
4224
4236
  {
4225
- content: /* @__PURE__ */ import_react47.default.createElement(Stack.V, { gap: 2 }, /* @__PURE__ */ import_react47.default.createElement(ItemTitle, { showBackground: false }, title), /* @__PURE__ */ import_react47.default.createElement(ItemDescription, { showBackground: false }, subtitle))
4237
+ content: /* @__PURE__ */ import_react48.default.createElement(Stack.V, { gap: 2 }, /* @__PURE__ */ import_react48.default.createElement(ItemTitle, { showBackground: false }, title), /* @__PURE__ */ import_react48.default.createElement(ItemDescription, { showBackground: false }, subtitle))
4226
4238
  },
4227
4239
  element
4228
4240
  );
4229
4241
  }
4230
4242
  return element;
4231
4243
  });
4232
- var GridViewContext = (0, import_react47.createContext)({
4244
+ var GridViewContext = (0, import_react48.createContext)({
4233
4245
  size: "small",
4234
4246
  textPosition: "below",
4235
4247
  bordered: false,
@@ -4244,7 +4256,7 @@ function GridViewRoot({
4244
4256
  bordered = false,
4245
4257
  disabled = false
4246
4258
  }) {
4247
- const handleClick = (0, import_react47.useCallback)(
4259
+ const handleClick = (0, import_react48.useCallback)(
4248
4260
  (event) => {
4249
4261
  event.stopPropagation();
4250
4262
  event.preventDefault();
@@ -4252,7 +4264,7 @@ function GridViewRoot({
4252
4264
  },
4253
4265
  [onClick]
4254
4266
  );
4255
- const contextValue = (0, import_react47.useMemo)(
4267
+ const contextValue = (0, import_react48.useMemo)(
4256
4268
  () => ({
4257
4269
  size: size2,
4258
4270
  textPosition,
@@ -4261,33 +4273,33 @@ function GridViewRoot({
4261
4273
  }),
4262
4274
  [bordered, disabled, size2, textPosition]
4263
4275
  );
4264
- return /* @__PURE__ */ import_react47.default.createElement(GridViewContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react47.default.createElement(Container3, { onClick: handleClick, scrollable }, scrollable ? /* @__PURE__ */ import_react47.default.createElement(ScrollArea, null, children) : children));
4276
+ return /* @__PURE__ */ import_react48.default.createElement(GridViewContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react48.default.createElement(Container3, { onClick: handleClick, scrollable }, scrollable ? /* @__PURE__ */ import_react48.default.createElement(ScrollArea, null, children) : children));
4265
4277
  }
4266
4278
  function GridViewSection({
4267
4279
  children,
4268
4280
  padding = "20px"
4269
4281
  }) {
4270
- const { size: size2 } = (0, import_react47.useContext)(GridViewContext);
4271
- return /* @__PURE__ */ import_react47.default.createElement(Grid2, { size: size2, padding }, children);
4282
+ const { size: size2 } = (0, import_react48.useContext)(GridViewContext);
4283
+ return /* @__PURE__ */ import_react48.default.createElement(Grid2, { size: size2, padding }, children);
4272
4284
  }
4273
4285
  function GridViewSectionHeader({ title }) {
4274
4286
  const grouped = title.split("/");
4275
- return /* @__PURE__ */ import_react47.default.createElement(SectionHeaderContainer, null, /* @__PURE__ */ import_react47.default.createElement(Spacer.Vertical, { size: 24 }), withSeparatorElements(
4276
- grouped.map((title2, index) => /* @__PURE__ */ import_react47.default.createElement(SectionTitle, { last: index === grouped.length - 1 }, title2)),
4277
- /* @__PURE__ */ import_react47.default.createElement(SectionTitle, null, " / ")
4287
+ return /* @__PURE__ */ import_react48.default.createElement(SectionHeaderContainer, null, /* @__PURE__ */ import_react48.default.createElement(Spacer.Vertical, { size: 24 }), withSeparatorElements(
4288
+ grouped.map((title2, index) => /* @__PURE__ */ import_react48.default.createElement(SectionTitle, { last: index === grouped.length - 1 }, title2)),
4289
+ /* @__PURE__ */ import_react48.default.createElement(SectionTitle, null, " / ")
4278
4290
  ));
4279
4291
  }
4280
4292
  var GridView;
4281
4293
  ((GridView2) => {
4282
- GridView2.Root = (0, import_react47.memo)(GridViewRoot);
4283
- GridView2.Item = (0, import_react47.memo)(GridViewItem);
4284
- GridView2.Section = (0, import_react47.memo)(GridViewSection);
4285
- GridView2.SectionHeader = (0, import_react47.memo)(GridViewSectionHeader);
4294
+ GridView2.Root = (0, import_react48.memo)(GridViewRoot);
4295
+ GridView2.Item = (0, import_react48.memo)(GridViewItem);
4296
+ GridView2.Section = (0, import_react48.memo)(GridViewSection);
4297
+ GridView2.SectionHeader = (0, import_react48.memo)(GridViewSectionHeader);
4286
4298
  })(GridView || (GridView = {}));
4287
4299
 
4288
4300
  // src/components/InputFieldWithCompletions.tsx
4289
4301
  var import_noya_utils8 = require("@noya-app/noya-utils");
4290
- var import_react51 = __toESM(require("react"));
4302
+ var import_react52 = __toESM(require("react"));
4291
4303
  var import_styled_components27 = __toESM(require("styled-components"));
4292
4304
 
4293
4305
  // src/utils/fuzzyScorer.ts
@@ -4364,7 +4376,7 @@ function mergeRanges(ranges) {
4364
4376
  // src/components/ListView.tsx
4365
4377
  var import_noya_utils7 = require("@noya-app/noya-utils");
4366
4378
  var import_react_compose_refs2 = require("@radix-ui/react-compose-refs");
4367
- var import_react49 = __toESM(require("react"));
4379
+ var import_react50 = __toESM(require("react"));
4368
4380
  var import_react_virtualized = require("react-virtualized");
4369
4381
  var import_react_window = require("react-window");
4370
4382
  var import_styled_components25 = __toESM(require("styled-components"));
@@ -4395,7 +4407,7 @@ function mergeEventHandlers(...handlerMaps) {
4395
4407
  // src/components/Sortable.tsx
4396
4408
  var import_core = require("@dnd-kit/core");
4397
4409
  var import_sortable = require("@dnd-kit/sortable");
4398
- var import_react48 = __toESM(require("react"));
4410
+ var import_react49 = __toESM(require("react"));
4399
4411
  var import_react_dom2 = require("react-dom");
4400
4412
  var normalizeListDestinationIndex = (index, position) => {
4401
4413
  return position === "above" ? index : index + 1;
@@ -4409,7 +4421,7 @@ var defaultAcceptsDrop = (sourceIndex, destinationIndex, position) => {
4409
4421
  }
4410
4422
  return true;
4411
4423
  };
4412
- var SortableItemContext = (0, import_react48.createContext)({
4424
+ var SortableItemContext = (0, import_react49.createContext)({
4413
4425
  keys: [],
4414
4426
  position: { x: 0, y: 0 },
4415
4427
  acceptsDrop: defaultAcceptsDrop,
@@ -4431,7 +4443,7 @@ function SortableItem({
4431
4443
  disabled,
4432
4444
  children
4433
4445
  }) {
4434
- const { keys, position, acceptsDrop, setActivatorEvent, axis } = (0, import_react48.useContext)(SortableItemContext);
4446
+ const { keys, position, acceptsDrop, setActivatorEvent, axis } = (0, import_react49.useContext)(SortableItemContext);
4435
4447
  const sortable = (0, import_sortable.useSortable)({ id, disabled });
4436
4448
  const {
4437
4449
  active,
@@ -4451,7 +4463,7 @@ function SortableItem({
4451
4463
  const eventY = activatorEvent?.clientY ?? 0;
4452
4464
  const offsetLeft = eventX + position.x;
4453
4465
  const offsetTop = eventY + position.y;
4454
- const ref = (0, import_react48.useCallback)((node) => setNodeRef(node), [setNodeRef]);
4466
+ const ref = (0, import_react49.useCallback)((node) => setNodeRef(node), [setNodeRef]);
4455
4467
  return children({
4456
4468
  ref,
4457
4469
  ...attributes,
@@ -4482,22 +4494,22 @@ function SortableRoot({
4482
4494
  }
4483
4495
  })
4484
4496
  );
4485
- const [activeIndex, setActiveIndex] = (0, import_react48.useState)();
4486
- const activatorEvent = (0, import_react48.useRef)(null);
4487
- const setActivatorEvent = (0, import_react48.useCallback)((event) => {
4497
+ const [activeIndex, setActiveIndex] = (0, import_react49.useState)();
4498
+ const activatorEvent = (0, import_react49.useRef)(null);
4499
+ const setActivatorEvent = (0, import_react49.useCallback)((event) => {
4488
4500
  activatorEvent.current = event;
4489
4501
  }, []);
4490
- const [position, setPosition] = (0, import_react48.useState)({ x: 0, y: 0 });
4491
- const handleDragStart = (0, import_react48.useCallback)(
4502
+ const [position, setPosition] = (0, import_react49.useState)({ x: 0, y: 0 });
4503
+ const handleDragStart = (0, import_react49.useCallback)(
4492
4504
  (event) => {
4493
4505
  setActiveIndex(keys.indexOf(event.active.id));
4494
4506
  },
4495
4507
  [keys]
4496
4508
  );
4497
- const handleDragMove = (0, import_react48.useCallback)((event) => {
4509
+ const handleDragMove = (0, import_react49.useCallback)((event) => {
4498
4510
  setPosition({ ...event.delta });
4499
4511
  }, []);
4500
- const handleDragEnd = (0, import_react48.useCallback)(
4512
+ const handleDragEnd = (0, import_react49.useCallback)(
4501
4513
  (event) => {
4502
4514
  const { active, over } = event;
4503
4515
  setActiveIndex(void 0);
@@ -4524,14 +4536,14 @@ function SortableRoot({
4524
4536
  },
4525
4537
  [acceptsDrop, axis, keys, onMoveItem, position.x, position.y]
4526
4538
  );
4527
- const [mounted, setMounted] = (0, import_react48.useState)(false);
4528
- (0, import_react48.useEffect)(() => {
4539
+ const [mounted, setMounted] = (0, import_react49.useState)(false);
4540
+ (0, import_react49.useEffect)(() => {
4529
4541
  setMounted(true);
4530
4542
  }, []);
4531
- return /* @__PURE__ */ import_react48.default.createElement(
4543
+ return /* @__PURE__ */ import_react49.default.createElement(
4532
4544
  SortableItemContext.Provider,
4533
4545
  {
4534
- value: (0, import_react48.useMemo)(
4546
+ value: (0, import_react49.useMemo)(
4535
4547
  () => ({
4536
4548
  keys,
4537
4549
  acceptsDrop,
@@ -4542,7 +4554,7 @@ function SortableRoot({
4542
4554
  [acceptsDrop, axis, keys, position, setActivatorEvent]
4543
4555
  )
4544
4556
  },
4545
- /* @__PURE__ */ import_react48.default.createElement(
4557
+ /* @__PURE__ */ import_react49.default.createElement(
4546
4558
  import_core.DndContext,
4547
4559
  {
4548
4560
  sensors,
@@ -4551,9 +4563,9 @@ function SortableRoot({
4551
4563
  onDragMove: handleDragMove,
4552
4564
  onDragEnd: handleDragEnd
4553
4565
  },
4554
- /* @__PURE__ */ import_react48.default.createElement(import_sortable.SortableContext, { items: keys, strategy: import_sortable.verticalListSortingStrategy }, children),
4566
+ /* @__PURE__ */ import_react49.default.createElement(import_sortable.SortableContext, { items: keys, strategy: import_sortable.verticalListSortingStrategy }, children),
4555
4567
  mounted && renderOverlay && (0, import_react_dom2.createPortal)(
4556
- /* @__PURE__ */ import_react48.default.createElement(import_core.DragOverlay, { dropAnimation: null }, activeIndex !== void 0 && activeIndex >= 0 && renderOverlay(activeIndex)),
4568
+ /* @__PURE__ */ import_react49.default.createElement(import_core.DragOverlay, { dropAnimation: null }, activeIndex !== void 0 && activeIndex >= 0 && renderOverlay(activeIndex)),
4557
4569
  document.body
4558
4570
  )
4559
4571
  )
@@ -4561,17 +4573,17 @@ function SortableRoot({
4561
4573
  }
4562
4574
  var Sortable;
4563
4575
  ((Sortable2) => {
4564
- Sortable2.Item = (0, import_react48.memo)(SortableItem);
4565
- Sortable2.Root = (0, import_react48.memo)(SortableRoot);
4576
+ Sortable2.Item = (0, import_react49.memo)(SortableItem);
4577
+ Sortable2.Root = (0, import_react49.memo)(SortableRoot);
4566
4578
  })(Sortable || (Sortable = {}));
4567
4579
 
4568
4580
  // src/components/ListView.tsx
4569
4581
  var ROW_HEIGHT = 31;
4570
4582
  var SECTION_HEADER_LABEL_HEIGHT = 27;
4571
- var DraggingContext = (0, import_react49.createContext)({
4583
+ var DraggingContext = (0, import_react50.createContext)({
4572
4584
  indentation: 12
4573
4585
  });
4574
- var ListRowContext = (0, import_react49.createContext)({
4586
+ var ListRowContext = (0, import_react50.createContext)({
4575
4587
  marginType: "none",
4576
4588
  selectedPosition: "only",
4577
4589
  sortable: false,
@@ -4601,8 +4613,8 @@ function ListViewEditableRowTitle({
4601
4613
  autoFocus,
4602
4614
  placeholder
4603
4615
  }) {
4604
- const inputRef = (0, import_react49.useRef)(null);
4605
- (0, import_react49.useLayoutEffect)(() => {
4616
+ const inputRef = (0, import_react50.useRef)(null);
4617
+ (0, import_react50.useLayoutEffect)(() => {
4606
4618
  const element = inputRef.current;
4607
4619
  if (!element || !autoFocus)
4608
4620
  return;
@@ -4611,7 +4623,7 @@ function ListViewEditableRowTitle({
4611
4623
  element.select();
4612
4624
  }, 0);
4613
4625
  }, [autoFocus]);
4614
- return /* @__PURE__ */ import_react49.default.createElement(
4626
+ return /* @__PURE__ */ import_react50.default.createElement(
4615
4627
  ListViewEditableRowTitleElement,
4616
4628
  {
4617
4629
  ref: inputRef,
@@ -4733,7 +4745,7 @@ var ListViewDragIndicatorElement = import_styled_components25.default.div(({ the
4733
4745
  boxShadow: "0 0 2px rgba(0,0,0,0.5)"
4734
4746
  }
4735
4747
  }));
4736
- var ListViewRow = (0, import_react49.forwardRef)(function ListViewRow2({
4748
+ var ListViewRow = (0, import_react50.forwardRef)(function ListViewRow2({
4737
4749
  id,
4738
4750
  tabIndex = 0,
4739
4751
  gap,
@@ -4767,12 +4779,12 @@ var ListViewRow = (0, import_react49.forwardRef)(function ListViewRow2({
4767
4779
  divider,
4768
4780
  gap: listGap,
4769
4781
  colorScheme
4770
- } = (0, import_react49.useContext)(ListRowContext);
4782
+ } = (0, import_react50.useContext)(ListRowContext);
4771
4783
  const { hoverProps } = useHover({
4772
4784
  onHoverChange
4773
4785
  });
4774
- const { indentation, isDragging } = (0, import_react49.useContext)(DraggingContext);
4775
- const handlePress = (0, import_react49.useCallback)(
4786
+ const { indentation, isDragging } = (0, import_react50.useContext)(DraggingContext);
4787
+ const handlePress = (0, import_react50.useCallback)(
4776
4788
  (event) => {
4777
4789
  event.preventDefault();
4778
4790
  if (event.button !== 0)
@@ -4781,14 +4793,14 @@ var ListViewRow = (0, import_react49.forwardRef)(function ListViewRow2({
4781
4793
  },
4782
4794
  [onPress]
4783
4795
  );
4784
- const handleDoubleClick = (0, import_react49.useCallback)(
4796
+ const handleDoubleClick = (0, import_react50.useCallback)(
4785
4797
  (event) => {
4786
4798
  event.stopPropagation();
4787
4799
  onDoubleClick?.();
4788
4800
  },
4789
4801
  [onDoubleClick]
4790
4802
  );
4791
- const mergedStyle = (0, import_react49.useMemo)(() => {
4803
+ const mergedStyle = (0, import_react50.useMemo)(() => {
4792
4804
  return isDragging ? {
4793
4805
  // TODO: Where do these offsets actually come from?
4794
4806
  transform: `translate3d(-36px, -6px, 0)`,
@@ -4801,7 +4813,7 @@ var ListViewRow = (0, import_react49.forwardRef)(function ListViewRow2({
4801
4813
  ...renderProps
4802
4814
  }, ref) => {
4803
4815
  const Component = RowContainer;
4804
- const element = /* @__PURE__ */ import_react49.default.createElement(
4816
+ const element = /* @__PURE__ */ import_react50.default.createElement(
4805
4817
  Component,
4806
4818
  {
4807
4819
  ref,
@@ -4832,7 +4844,7 @@ var ListViewRow = (0, import_react49.forwardRef)(function ListViewRow2({
4832
4844
  ),
4833
4845
  tabIndex
4834
4846
  },
4835
- relativeDropPosition && /* @__PURE__ */ import_react49.default.createElement(
4847
+ relativeDropPosition && /* @__PURE__ */ import_react50.default.createElement(
4836
4848
  ListViewDragIndicatorElement,
4837
4849
  {
4838
4850
  $colorScheme: colorScheme,
@@ -4846,11 +4858,11 @@ var ListViewRow = (0, import_react49.forwardRef)(function ListViewRow2({
4846
4858
  }) : dragIndicatorStyle
4847
4859
  }
4848
4860
  ),
4849
- depth > 0 && /* @__PURE__ */ import_react49.default.createElement(Spacer.Horizontal, { size: depth * indentation }),
4861
+ depth > 0 && /* @__PURE__ */ import_react50.default.createElement(Spacer.Horizontal, { size: depth * indentation }),
4850
4862
  children
4851
4863
  );
4852
4864
  if (menuItems && onSelectMenuItem) {
4853
- return /* @__PURE__ */ import_react49.default.createElement(
4865
+ return /* @__PURE__ */ import_react50.default.createElement(
4854
4866
  ContextMenu,
4855
4867
  {
4856
4868
  items: menuItems,
@@ -4863,24 +4875,24 @@ var ListViewRow = (0, import_react49.forwardRef)(function ListViewRow2({
4863
4875
  return element;
4864
4876
  };
4865
4877
  if (sortable && id) {
4866
- return /* @__PURE__ */ import_react49.default.createElement(Sortable.Item, { id, disabled: overrideSortable === false }, ({ ref: sortableRef, ...sortableProps }) => renderContent(
4878
+ return /* @__PURE__ */ import_react50.default.createElement(Sortable.Item, { id, disabled: overrideSortable === false }, ({ ref: sortableRef, ...sortableProps }) => renderContent(
4867
4879
  sortableProps,
4868
4880
  (0, import_react_compose_refs2.composeRefs)(sortableRef, forwardedRef)
4869
4881
  ));
4870
4882
  }
4871
4883
  return renderContent({}, forwardedRef);
4872
4884
  });
4873
- var RenderItemContext = (0, import_react49.createContext)(
4885
+ var RenderItemContext = (0, import_react50.createContext)(
4874
4886
  () => null
4875
4887
  );
4876
- var VirtualizedListRow = (0, import_react49.memo)(function VirtualizedListRow2({
4888
+ var VirtualizedListRow = (0, import_react50.memo)(function VirtualizedListRow2({
4877
4889
  index,
4878
4890
  style: style3
4879
4891
  }) {
4880
- const renderItem = (0, import_react49.useContext)(RenderItemContext);
4881
- return /* @__PURE__ */ import_react49.default.createElement("div", { key: index, style: style3 }, renderItem(index));
4892
+ const renderItem = (0, import_react50.useContext)(RenderItemContext);
4893
+ return /* @__PURE__ */ import_react50.default.createElement("div", { key: index, style: style3 }, renderItem(index));
4882
4894
  });
4883
- var VirtualizedListInner = (0, import_react49.forwardRef)(function VirtualizedListInner2({
4895
+ var VirtualizedListInner = (0, import_react50.forwardRef)(function VirtualizedListInner2({
4884
4896
  size: size2,
4885
4897
  scrollElement,
4886
4898
  items,
@@ -4888,20 +4900,20 @@ var VirtualizedListInner = (0, import_react49.forwardRef)(function VirtualizedLi
4888
4900
  keyExtractor,
4889
4901
  renderItem
4890
4902
  }, ref) {
4891
- const listRef = (0, import_react49.useRef)(null);
4892
- (0, import_react49.useImperativeHandle)(ref, () => ({
4903
+ const listRef = (0, import_react50.useRef)(null);
4904
+ (0, import_react50.useImperativeHandle)(ref, () => ({
4893
4905
  scrollToIndex(index) {
4894
4906
  listRef.current?.scrollToItem(index);
4895
4907
  }
4896
4908
  }));
4897
- (0, import_react49.useLayoutEffect)(() => {
4909
+ (0, import_react50.useLayoutEffect)(() => {
4898
4910
  listRef.current?.resetAfterIndex(0);
4899
4911
  }, [
4900
4912
  // When items change, we need to re-render the virtualized list,
4901
4913
  // since it doesn't currently support row height changes
4902
4914
  items
4903
4915
  ]);
4904
- const listStyle = (0, import_react49.useMemo)(
4916
+ const listStyle = (0, import_react50.useMemo)(
4905
4917
  () => ({
4906
4918
  overflowX: "initial",
4907
4919
  overflowY: "initial",
@@ -4909,18 +4921,18 @@ var VirtualizedListInner = (0, import_react49.forwardRef)(function VirtualizedLi
4909
4921
  }),
4910
4922
  []
4911
4923
  );
4912
- return /* @__PURE__ */ import_react49.default.createElement(RenderItemContext.Provider, { value: renderItem }, /* @__PURE__ */ import_react49.default.createElement(
4924
+ return /* @__PURE__ */ import_react50.default.createElement(RenderItemContext.Provider, { value: renderItem }, /* @__PURE__ */ import_react50.default.createElement(
4913
4925
  import_react_virtualized.WindowScroller,
4914
4926
  {
4915
4927
  scrollElement,
4916
- style: (0, import_react49.useMemo)(() => ({ flex: "1 1 auto" }), [])
4928
+ style: (0, import_react50.useMemo)(() => ({ flex: "1 1 auto" }), [])
4917
4929
  },
4918
- (0, import_react49.useCallback)(
4930
+ (0, import_react50.useCallback)(
4919
4931
  ({
4920
4932
  registerChild,
4921
4933
  onChildScroll,
4922
4934
  scrollTop
4923
- }) => /* @__PURE__ */ import_react49.default.createElement("div", { ref: registerChild }, /* @__PURE__ */ import_react49.default.createElement(
4935
+ }) => /* @__PURE__ */ import_react50.default.createElement("div", { ref: registerChild }, /* @__PURE__ */ import_react50.default.createElement(
4924
4936
  import_react_window.VariableSizeList,
4925
4937
  {
4926
4938
  ref: listRef,
@@ -4950,7 +4962,7 @@ var VirtualizedListInner = (0, import_react49.forwardRef)(function VirtualizedLi
4950
4962
  )
4951
4963
  ));
4952
4964
  });
4953
- var VirtualizedList = (0, import_react49.memo)(
4965
+ var VirtualizedList = (0, import_react50.memo)(
4954
4966
  VirtualizedListInner
4955
4967
  );
4956
4968
  var RootContainer2 = import_styled_components25.default.div(({ theme, $scrollable, $gap }) => ({
@@ -4961,7 +4973,7 @@ var RootContainer2 = import_styled_components25.default.div(({ theme, $scrollabl
4961
4973
  color: theme.colors.textMuted,
4962
4974
  gap: $gap
4963
4975
  }));
4964
- var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInner2({
4976
+ var ListViewRootInner = (0, import_react50.forwardRef)(function ListViewRootInner2({
4965
4977
  id,
4966
4978
  className,
4967
4979
  style: style3,
@@ -4983,7 +4995,7 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
4983
4995
  colorScheme = "primary",
4984
4996
  gap = 0
4985
4997
  }, forwardedRef) {
4986
- const handleClick = (0, import_react49.useCallback)(
4998
+ const handleClick = (0, import_react50.useCallback)(
4987
4999
  (event) => {
4988
5000
  if (event.target instanceof HTMLElement && event.target.classList.contains("scroll-component"))
4989
5001
  return;
@@ -4993,19 +5005,19 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
4993
5005
  },
4994
5006
  [onPress]
4995
5007
  );
4996
- const renderChild = (0, import_react49.useCallback)(
5008
+ const renderChild = (0, import_react50.useCallback)(
4997
5009
  (index) => renderItem(data[index], index, { isDragging: false }),
4998
5010
  [data, renderItem]
4999
5011
  );
5000
- const getItemContextValue = (0, import_react49.useCallback)(
5012
+ const getItemContextValue = (0, import_react50.useCallback)(
5001
5013
  (i) => {
5002
5014
  const current = renderChild(i);
5003
- if (!(0, import_react49.isValidElement)(current))
5015
+ if (!(0, import_react50.isValidElement)(current))
5004
5016
  return;
5005
5017
  const prevChild = i - 1 >= 0 && renderChild(i - 1);
5006
5018
  const nextChild = i + 1 < data.length && renderChild(i + 1);
5007
- const next = (0, import_react49.isValidElement)(nextChild) ? nextChild : void 0;
5008
- const prev = (0, import_react49.isValidElement)(prevChild) ? prevChild : void 0;
5019
+ const next = (0, import_react50.isValidElement)(nextChild) ? nextChild : void 0;
5020
+ const prev = (0, import_react50.isValidElement)(prevChild) ? prevChild : void 0;
5009
5021
  const hasMarginTop = !prev;
5010
5022
  const hasMarginBottom = !next || current.props.isSectionHeader || next && next.props.isSectionHeader;
5011
5023
  let marginType;
@@ -5057,26 +5069,26 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
5057
5069
  gap
5058
5070
  ]
5059
5071
  );
5060
- const draggingContextOverlayValue = (0, import_react49.useMemo)(
5072
+ const draggingContextOverlayValue = (0, import_react50.useMemo)(
5061
5073
  () => ({ indentation, isDragging: true }),
5062
5074
  [indentation]
5063
5075
  );
5064
- const renderOverlay = (0, import_react49.useCallback)(
5065
- (index) => /* @__PURE__ */ import_react49.default.createElement("div", { style: { opacity: 0.25 } }, /* @__PURE__ */ import_react49.default.createElement(DraggingContext.Provider, { value: draggingContextOverlayValue }, renderItem(data[index], index, { isDragging: true }))),
5076
+ const renderOverlay = (0, import_react50.useCallback)(
5077
+ (index) => /* @__PURE__ */ import_react50.default.createElement("div", { style: { opacity: 0.25 } }, /* @__PURE__ */ import_react50.default.createElement(DraggingContext.Provider, { value: draggingContextOverlayValue }, renderItem(data[index], index, { isDragging: true }))),
5066
5078
  [draggingContextOverlayValue, renderItem, data]
5067
5079
  );
5068
- const renderWrappedChild = (0, import_react49.useCallback)(
5080
+ const renderWrappedChild = (0, import_react50.useCallback)(
5069
5081
  (index) => {
5070
5082
  const contextValue = getItemContextValue(index);
5071
5083
  const current = renderChild(index);
5072
- if (!contextValue || !(0, import_react49.isValidElement)(current))
5084
+ if (!contextValue || !(0, import_react50.isValidElement)(current))
5073
5085
  return null;
5074
- return /* @__PURE__ */ import_react49.default.createElement(ListRowContext.Provider, { key: current.key, value: contextValue }, current);
5086
+ return /* @__PURE__ */ import_react50.default.createElement(ListRowContext.Provider, { key: current.key, value: contextValue }, current);
5075
5087
  },
5076
5088
  [getItemContextValue, renderChild]
5077
5089
  );
5078
- const ids = (0, import_react49.useMemo)(() => data.map(keyExtractor), [keyExtractor, data]);
5079
- const withSortable = (children) => sortable ? /* @__PURE__ */ import_react49.default.createElement(
5090
+ const ids = (0, import_react50.useMemo)(() => data.map(keyExtractor), [keyExtractor, data]);
5091
+ const withSortable = (children) => sortable ? /* @__PURE__ */ import_react50.default.createElement(
5080
5092
  Sortable.Root,
5081
5093
  {
5082
5094
  onMoveItem,
@@ -5086,8 +5098,8 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
5086
5098
  },
5087
5099
  children
5088
5100
  ) : children;
5089
- const withScrollable = (children) => scrollable ? /* @__PURE__ */ import_react49.default.createElement(ScrollArea, null, children) : children(null);
5090
- const getItemHeight = (0, import_react49.useCallback)(
5101
+ const withScrollable = (children) => scrollable ? /* @__PURE__ */ import_react50.default.createElement(ScrollArea, null, children) : children(null);
5102
+ const getItemHeight = (0, import_react50.useCallback)(
5091
5103
  (index) => {
5092
5104
  const child = getItemContextValue(index);
5093
5105
  const margin = child?.marginType ? getPositionMargin(child.marginType) : { top: 0, bottom: 0 };
@@ -5096,12 +5108,12 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
5096
5108
  },
5097
5109
  [getItemContextValue, variant]
5098
5110
  );
5099
- const getKey = (0, import_react49.useCallback)(
5111
+ const getKey = (0, import_react50.useCallback)(
5100
5112
  (index) => keyExtractor(data[index], index),
5101
5113
  [data, keyExtractor]
5102
5114
  );
5103
- const draggingContextValue = (0, import_react49.useMemo)(() => ({ indentation }), [indentation]);
5104
- return /* @__PURE__ */ import_react49.default.createElement(DraggingContext.Provider, { value: draggingContextValue }, /* @__PURE__ */ import_react49.default.createElement(
5115
+ const draggingContextValue = (0, import_react50.useMemo)(() => ({ indentation }), [indentation]);
5116
+ return /* @__PURE__ */ import_react50.default.createElement(DraggingContext.Provider, { value: draggingContextValue }, /* @__PURE__ */ import_react50.default.createElement(
5105
5117
  RootContainer2,
5106
5118
  {
5107
5119
  id,
@@ -5115,7 +5127,7 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
5115
5127
  },
5116
5128
  withScrollable(
5117
5129
  (scrollElementRef) => withSortable(
5118
- virtualized ? /* @__PURE__ */ import_react49.default.createElement(
5130
+ virtualized ? /* @__PURE__ */ import_react50.default.createElement(
5119
5131
  VirtualizedList,
5120
5132
  {
5121
5133
  ref: forwardedRef,
@@ -5131,42 +5143,42 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
5131
5143
  )
5132
5144
  ));
5133
5145
  });
5134
- var ListViewRoot = (0, import_react49.memo)(ListViewRootInner);
5135
- var ChildrenListViewInner = (0, import_react49.forwardRef)(function ChildrenListViewInner2({ children, ...rest }, forwardedRef) {
5136
- const items = (0, import_react49.useMemo)(
5137
- () => import_react49.Children.toArray(children).flatMap(
5138
- (child) => (0, import_react49.isValidElement)(child) ? [child] : []
5146
+ var ListViewRoot = (0, import_react50.memo)(ListViewRootInner);
5147
+ var ChildrenListViewInner = (0, import_react50.forwardRef)(function ChildrenListViewInner2({ children, ...rest }, forwardedRef) {
5148
+ const items = (0, import_react50.useMemo)(
5149
+ () => import_react50.Children.toArray(children).flatMap(
5150
+ (child) => (0, import_react50.isValidElement)(child) ? [child] : []
5139
5151
  ),
5140
5152
  [children]
5141
5153
  );
5142
- return /* @__PURE__ */ import_react49.default.createElement(
5154
+ return /* @__PURE__ */ import_react50.default.createElement(
5143
5155
  ListViewRoot,
5144
5156
  {
5145
5157
  ref: forwardedRef,
5146
5158
  ...rest,
5147
5159
  data: items,
5148
- keyExtractor: (0, import_react49.useCallback)(
5160
+ keyExtractor: (0, import_react50.useCallback)(
5149
5161
  ({ key }, index) => typeof key === "string" ? key : (key ?? index).toString(),
5150
5162
  []
5151
5163
  ),
5152
- renderItem: (0, import_react49.useCallback)((item) => item, [])
5164
+ renderItem: (0, import_react50.useCallback)((item) => item, [])
5153
5165
  }
5154
5166
  );
5155
5167
  });
5156
- var ChildrenListView = (0, import_react49.memo)(ChildrenListViewInner);
5157
- var SimpleListViewInner = (0, import_react49.forwardRef)(function SimpleListViewInner2(props, forwardedRef) {
5168
+ var ChildrenListView = (0, import_react50.memo)(ChildrenListViewInner);
5169
+ var SimpleListViewInner = (0, import_react50.forwardRef)(function SimpleListViewInner2(props, forwardedRef) {
5158
5170
  if ("children" in props) {
5159
- return /* @__PURE__ */ import_react49.default.createElement(ChildrenListView, { ref: forwardedRef, ...props });
5171
+ return /* @__PURE__ */ import_react50.default.createElement(ChildrenListView, { ref: forwardedRef, ...props });
5160
5172
  } else {
5161
- return /* @__PURE__ */ import_react49.default.createElement(ListViewRoot, { ref: forwardedRef, ...props });
5173
+ return /* @__PURE__ */ import_react50.default.createElement(ListViewRoot, { ref: forwardedRef, ...props });
5162
5174
  }
5163
5175
  });
5164
- var SimpleListView = (0, import_react49.memo)(SimpleListViewInner);
5176
+ var SimpleListView = (0, import_react50.memo)(SimpleListViewInner);
5165
5177
  var ListView;
5166
5178
  ((ListView2) => {
5167
- ListView2.RowTitle = (0, import_react49.memo)(ListViewRowTitle);
5168
- ListView2.EditableRowTitle = (0, import_react49.memo)(ListViewEditableRowTitle);
5169
- ListView2.Row = (0, import_react49.memo)(ListViewRow);
5179
+ ListView2.RowTitle = (0, import_react50.memo)(ListViewRowTitle);
5180
+ ListView2.EditableRowTitle = (0, import_react50.memo)(ListViewEditableRowTitle);
5181
+ ListView2.Row = (0, import_react50.memo)(ListViewRow);
5170
5182
  ListView2.Root = SimpleListView;
5171
5183
  ListView2.RowContext = ListRowContext;
5172
5184
  ListView2.DragIndicator = ListViewDragIndicatorElement;
@@ -5179,7 +5191,7 @@ var ListView;
5179
5191
  })(ListView || (ListView = {}));
5180
5192
 
5181
5193
  // src/components/Text.tsx
5182
- var import_react50 = __toESM(require("react"));
5194
+ var import_react51 = __toESM(require("react"));
5183
5195
  var import_styled_components26 = __toESM(require("styled-components"));
5184
5196
  var elements = {
5185
5197
  title: "h1",
@@ -5201,7 +5213,7 @@ var StyledElement = import_styled_components26.default.span(({ theme, $variant,
5201
5213
  ...$styleProps,
5202
5214
  ...mergeBreakpoints($breakpoints || [])
5203
5215
  }));
5204
- var Text = (0, import_react50.forwardRef)(function Text2({
5216
+ var Text = (0, import_react51.forwardRef)(function Text2({
5205
5217
  as,
5206
5218
  variant,
5207
5219
  breakpoints,
@@ -5215,7 +5227,7 @@ var Text = (0, import_react50.forwardRef)(function Text2({
5215
5227
  ...rest
5216
5228
  }, forwardedRef) {
5217
5229
  const element = as ?? elements[variant] ?? "span";
5218
- return /* @__PURE__ */ import_react50.default.createElement(
5230
+ return /* @__PURE__ */ import_react51.default.createElement(
5219
5231
  StyledElement,
5220
5232
  {
5221
5233
  ref: forwardedRef,
@@ -5233,28 +5245,28 @@ var Text = (0, import_react50.forwardRef)(function Text2({
5233
5245
  children
5234
5246
  );
5235
5247
  });
5236
- var Heading1 = (0, import_react50.forwardRef)(
5237
- (props, ref) => /* @__PURE__ */ import_react50.default.createElement(Text, { ref, ...props, variant: "heading1" })
5248
+ var Heading1 = (0, import_react51.forwardRef)(
5249
+ (props, ref) => /* @__PURE__ */ import_react51.default.createElement(Text, { ref, ...props, variant: "heading1" })
5238
5250
  );
5239
- var Heading2 = (0, import_react50.forwardRef)(
5240
- (props, ref) => /* @__PURE__ */ import_react50.default.createElement(Text, { ref, ...props, variant: "heading2" })
5251
+ var Heading2 = (0, import_react51.forwardRef)(
5252
+ (props, ref) => /* @__PURE__ */ import_react51.default.createElement(Text, { ref, ...props, variant: "heading2" })
5241
5253
  );
5242
- var Heading3 = (0, import_react50.forwardRef)(
5243
- (props, ref) => /* @__PURE__ */ import_react50.default.createElement(Text, { ref, ...props, variant: "heading3" })
5254
+ var Heading3 = (0, import_react51.forwardRef)(
5255
+ (props, ref) => /* @__PURE__ */ import_react51.default.createElement(Text, { ref, ...props, variant: "heading3" })
5244
5256
  );
5245
- var Heading4 = (0, import_react50.forwardRef)(
5246
- (props, ref) => /* @__PURE__ */ import_react50.default.createElement(Text, { ref, ...props, variant: "heading4" })
5257
+ var Heading4 = (0, import_react51.forwardRef)(
5258
+ (props, ref) => /* @__PURE__ */ import_react51.default.createElement(Text, { ref, ...props, variant: "heading4" })
5247
5259
  );
5248
- var Heading5 = (0, import_react50.forwardRef)(
5249
- (props, ref) => /* @__PURE__ */ import_react50.default.createElement(Text, { ref, ...props, variant: "heading5" })
5260
+ var Heading5 = (0, import_react51.forwardRef)(
5261
+ (props, ref) => /* @__PURE__ */ import_react51.default.createElement(Text, { ref, ...props, variant: "heading5" })
5250
5262
  );
5251
- var Body = (0, import_react50.forwardRef)(
5252
- (props, ref) => /* @__PURE__ */ import_react50.default.createElement(Text, { ref, ...props, variant: "body" })
5263
+ var Body = (0, import_react51.forwardRef)(
5264
+ (props, ref) => /* @__PURE__ */ import_react51.default.createElement(Text, { ref, ...props, variant: "body" })
5253
5265
  );
5254
- var Small = (0, import_react50.forwardRef)(
5255
- (props, ref) => /* @__PURE__ */ import_react50.default.createElement(Text, { ref, ...props, variant: "small" })
5266
+ var Small = (0, import_react51.forwardRef)(
5267
+ (props, ref) => /* @__PURE__ */ import_react51.default.createElement(Text, { ref, ...props, variant: "small" })
5256
5268
  );
5257
- var Italic = ({ children }) => /* @__PURE__ */ import_react50.default.createElement(
5269
+ var Italic = ({ children }) => /* @__PURE__ */ import_react51.default.createElement(
5258
5270
  "span",
5259
5271
  {
5260
5272
  style: {
@@ -5296,15 +5308,15 @@ var CompletionToken = import_styled_components27.default.span(
5296
5308
  whiteSpace: "pre"
5297
5309
  })
5298
5310
  );
5299
- var CompletionMenu = (0, import_react51.memo)(
5300
- (0, import_react51.forwardRef)(function CompletionMenu2({
5311
+ var CompletionMenu = (0, import_react52.memo)(
5312
+ (0, import_react52.forwardRef)(function CompletionMenu2({
5301
5313
  items,
5302
5314
  selectedIndex,
5303
5315
  onSelectItem,
5304
5316
  onHoverIndex,
5305
5317
  listSize
5306
5318
  }, forwardedRef) {
5307
- return /* @__PURE__ */ import_react51.default.createElement(
5319
+ return /* @__PURE__ */ import_react52.default.createElement(
5308
5320
  ListView.Root,
5309
5321
  {
5310
5322
  ref: forwardedRef,
@@ -5316,13 +5328,13 @@ var CompletionMenu = (0, import_react51.memo)(
5316
5328
  sectionHeaderVariant: "label",
5317
5329
  renderItem: (item, i) => {
5318
5330
  if (item.type === "sectionHeader") {
5319
- return /* @__PURE__ */ import_react51.default.createElement(ListView.Row, { key: item.id, isSectionHeader: true }, item.name);
5331
+ return /* @__PURE__ */ import_react52.default.createElement(ListView.Row, { key: item.id, isSectionHeader: true }, item.name);
5320
5332
  }
5321
5333
  const tokens = fuzzyTokenize({
5322
5334
  item: item.name,
5323
5335
  itemScore: item
5324
5336
  });
5325
- return /* @__PURE__ */ import_react51.default.createElement(
5337
+ return /* @__PURE__ */ import_react52.default.createElement(
5326
5338
  ListView.Row,
5327
5339
  {
5328
5340
  key: item.id,
@@ -5334,16 +5346,16 @@ var CompletionMenu = (0, import_react51.memo)(
5334
5346
  }
5335
5347
  }
5336
5348
  },
5337
- tokens.map((token, j) => /* @__PURE__ */ import_react51.default.createElement(CompletionToken, { key: j, $type: token.type }, token.text)),
5338
- item.icon && /* @__PURE__ */ import_react51.default.createElement(import_react51.default.Fragment, null, /* @__PURE__ */ import_react51.default.createElement(Spacer.Horizontal, null), item.icon)
5349
+ tokens.map((token, j) => /* @__PURE__ */ import_react52.default.createElement(CompletionToken, { key: j, $type: token.type }, token.text)),
5350
+ item.icon && /* @__PURE__ */ import_react52.default.createElement(import_react52.default.Fragment, null, /* @__PURE__ */ import_react52.default.createElement(Spacer.Horizontal, null), item.icon)
5339
5351
  );
5340
5352
  }
5341
5353
  }
5342
5354
  );
5343
5355
  })
5344
5356
  );
5345
- var InputFieldWithCompletions = (0, import_react51.memo)(
5346
- (0, import_react51.forwardRef)(function InputFieldWithCompletions2({
5357
+ var InputFieldWithCompletions = (0, import_react52.memo)(
5358
+ (0, import_react52.forwardRef)(function InputFieldWithCompletions2({
5347
5359
  loading,
5348
5360
  initialValue = "",
5349
5361
  placeholder,
@@ -5361,13 +5373,13 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
5361
5373
  hideChildrenWhenFocused = false,
5362
5374
  hideMenuWhenEmptyValue = false
5363
5375
  }, forwardedRef) {
5364
- const ref = (0, import_react51.useRef)(null);
5365
- const [isFocused, setIsFocused] = (0, import_react51.useState)(false);
5366
- const [state, _setState] = (0, import_react51.useState)({
5376
+ const ref = (0, import_react52.useRef)(null);
5377
+ const [isFocused, setIsFocused] = (0, import_react52.useState)(false);
5378
+ const [state, _setState] = (0, import_react52.useState)({
5367
5379
  filter: initialValue,
5368
5380
  selectedIndex: 0
5369
5381
  });
5370
- const updateState = (0, import_react51.useCallback)(
5382
+ const updateState = (0, import_react52.useCallback)(
5371
5383
  (newState, hoverItem) => {
5372
5384
  const nextState = { ...state, ...newState };
5373
5385
  const nextItems = filterWithGroupedSections(items, nextState.filter);
@@ -5396,16 +5408,16 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
5396
5408
  },
5397
5409
  [items, onChange, onHoverItem, state]
5398
5410
  );
5399
- const initialValueRef = (0, import_react51.useRef)(initialValue);
5400
- (0, import_react51.useLayoutEffect)(() => {
5411
+ const initialValueRef = (0, import_react52.useRef)(initialValue);
5412
+ (0, import_react52.useLayoutEffect)(() => {
5401
5413
  if (initialValueRef.current === initialValue)
5402
5414
  return;
5403
5415
  initialValueRef.current = initialValue;
5404
5416
  updateState({ filter: initialValue });
5405
5417
  }, [initialValue, updateState]);
5406
5418
  const { filter, selectedIndex } = state;
5407
- const listRef = import_react51.default.useRef(null);
5408
- const filteredItems = (0, import_react51.useMemo)(
5419
+ const listRef = import_react52.default.useRef(null);
5420
+ const filteredItems = (0, import_react52.useMemo)(
5409
5421
  () => filterWithGroupedSections(items, filter),
5410
5422
  [items, filter]
5411
5423
  );
@@ -5421,13 +5433,13 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
5421
5433
  ),
5422
5434
  ListView.rowHeight * 10.5
5423
5435
  );
5424
- (0, import_react51.useEffect)(() => {
5436
+ (0, import_react52.useEffect)(() => {
5425
5437
  if (listRef.current) {
5426
5438
  listRef.current.scrollToIndex(selectedIndex);
5427
5439
  }
5428
5440
  }, [selectedIndex]);
5429
- const lastSubmittedValueRef = (0, import_react51.useRef)(void 0);
5430
- const selectItem = (0, import_react51.useCallback)(
5441
+ const lastSubmittedValueRef = (0, import_react52.useRef)(void 0);
5442
+ const selectItem = (0, import_react52.useCallback)(
5431
5443
  (item) => {
5432
5444
  if (item.type === "sectionHeader")
5433
5445
  return;
@@ -5443,17 +5455,17 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
5443
5455
  },
5444
5456
  [filter, onSelectItem, onHoverItem, ref]
5445
5457
  );
5446
- const handleChange = (0, import_react51.useCallback)(
5458
+ const handleChange = (0, import_react52.useCallback)(
5447
5459
  (value) => updateState({ selectedIndex: 0, filter: value }),
5448
5460
  [updateState]
5449
5461
  );
5450
- const handleBlur = (0, import_react51.useCallback)(() => {
5462
+ const handleBlur = (0, import_react52.useCallback)(() => {
5451
5463
  setIsFocused(false);
5452
5464
  const didSubmit = lastSubmittedValueRef.current?.filter === filter;
5453
5465
  updateState({ selectedIndex: 0, filter: initialValue }, "resetHover");
5454
5466
  onBlur?.(didSubmit, filter);
5455
5467
  }, [filter, initialValue, onBlur, updateState]);
5456
- const handleFocus = (0, import_react51.useCallback)(
5468
+ const handleFocus = (0, import_react52.useCallback)(
5457
5469
  (event) => {
5458
5470
  setIsFocused(true);
5459
5471
  updateState({ selectedIndex: 0, filter: initialValue });
@@ -5461,11 +5473,11 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
5461
5473
  },
5462
5474
  [initialValue, onFocus, updateState]
5463
5475
  );
5464
- const handleIndexChange = (0, import_react51.useCallback)(
5476
+ const handleIndexChange = (0, import_react52.useCallback)(
5465
5477
  (index) => updateState({ selectedIndex: index }),
5466
5478
  [updateState]
5467
5479
  );
5468
- const handleKeyDown = (0, import_react51.useCallback)(
5480
+ const handleKeyDown = (0, import_react52.useCallback)(
5469
5481
  (event) => {
5470
5482
  let handled = false;
5471
5483
  switch (event.key) {
@@ -5529,7 +5541,7 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
5529
5541
  );
5530
5542
  const display = !filter && hideMenuWhenEmptyValue ? "none" : "flex";
5531
5543
  const typeaheadValue = filteredItems[selectedIndex]?.name;
5532
- (0, import_react51.useImperativeHandle)(forwardedRef, () => ({
5544
+ (0, import_react52.useImperativeHandle)(forwardedRef, () => ({
5533
5545
  focus: () => {
5534
5546
  ref.current?.focus();
5535
5547
  },
@@ -5540,14 +5552,14 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
5540
5552
  ref.current?.setSelectionRange(0, ref.current.value.length);
5541
5553
  }
5542
5554
  }));
5543
- return /* @__PURE__ */ import_react51.default.createElement(
5555
+ return /* @__PURE__ */ import_react52.default.createElement(
5544
5556
  InputField.Root,
5545
5557
  {
5546
5558
  size: size2,
5547
5559
  labelSize: 16,
5548
5560
  renderPopoverContent: ({ width }) => {
5549
5561
  const listSize = { width, height };
5550
- return /* @__PURE__ */ import_react51.default.createElement(Stack.V, { flex: `0 0 ${height}px`, display }, filteredItems.length > 0 ? /* @__PURE__ */ import_react51.default.createElement(
5562
+ return /* @__PURE__ */ import_react52.default.createElement(Stack.V, { flex: `0 0 ${height}px`, display }, filteredItems.length > 0 ? /* @__PURE__ */ import_react52.default.createElement(
5551
5563
  CompletionMenu,
5552
5564
  {
5553
5565
  ref: listRef,
@@ -5557,7 +5569,7 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
5557
5569
  onHoverIndex: handleIndexChange,
5558
5570
  listSize
5559
5571
  }
5560
- ) : /* @__PURE__ */ import_react51.default.createElement(
5572
+ ) : /* @__PURE__ */ import_react52.default.createElement(
5561
5573
  Stack.V,
5562
5574
  {
5563
5575
  height: "100px",
@@ -5565,11 +5577,11 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
5565
5577
  alignItems: "center",
5566
5578
  justifyContent: "center"
5567
5579
  },
5568
- /* @__PURE__ */ import_react51.default.createElement(Small, { color: "textDisabled" }, loading ? "Loading" : "No results")
5580
+ /* @__PURE__ */ import_react52.default.createElement(Small, { color: "textDisabled" }, loading ? "Loading" : "No results")
5569
5581
  ));
5570
5582
  }
5571
5583
  },
5572
- /* @__PURE__ */ import_react51.default.createElement(
5584
+ /* @__PURE__ */ import_react52.default.createElement(
5573
5585
  InputField.Input,
5574
5586
  {
5575
5587
  ref,
@@ -5593,9 +5605,9 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
5593
5605
  "aria-controls": "component-listbox"
5594
5606
  }
5595
5607
  ),
5596
- filter && typeaheadValue && typeaheadValue.startsWith(filter) && /* @__PURE__ */ import_react51.default.createElement(InputField.Typeahead, { value: typeaheadValue }),
5608
+ filter && typeaheadValue && typeaheadValue.startsWith(filter) && /* @__PURE__ */ import_react52.default.createElement(InputField.Typeahead, { value: typeaheadValue }),
5597
5609
  (!isFocused || !hideChildrenWhenFocused) && children,
5598
- loading && isFocused && /* @__PURE__ */ import_react51.default.createElement(InputField.Label, null, /* @__PURE__ */ import_react51.default.createElement(ActivityIndicator, null))
5610
+ loading && isFocused && /* @__PURE__ */ import_react52.default.createElement(InputField.Label, null, /* @__PURE__ */ import_react52.default.createElement(ActivityIndicator, null))
5599
5611
  );
5600
5612
  })
5601
5613
  );
@@ -5617,9 +5629,9 @@ function getNextIndex(items, currentIndex, direction, isDisabled) {
5617
5629
  }
5618
5630
 
5619
5631
  // src/components/InspectorContainer.tsx
5620
- var import_react52 = __toESM(require("react"));
5621
- var InspectorContainer = (0, import_react52.memo)(
5622
- (0, import_react52.forwardRef)(function InspectorContainer2({
5632
+ var import_react53 = __toESM(require("react"));
5633
+ var InspectorContainer = (0, import_react53.memo)(
5634
+ (0, import_react53.forwardRef)(function InspectorContainer2({
5623
5635
  header,
5624
5636
  children,
5625
5637
  fallback,
@@ -5629,7 +5641,7 @@ var InspectorContainer = (0, import_react52.memo)(
5629
5641
  style: style3
5630
5642
  }, forwardedRef) {
5631
5643
  const theme = useDesignSystemTheme();
5632
- return /* @__PURE__ */ import_react52.default.createElement(
5644
+ return /* @__PURE__ */ import_react53.default.createElement(
5633
5645
  "div",
5634
5646
  {
5635
5647
  ref: forwardedRef,
@@ -5644,13 +5656,13 @@ var InspectorContainer = (0, import_react52.memo)(
5644
5656
  }
5645
5657
  },
5646
5658
  header,
5647
- children ? /* @__PURE__ */ import_react52.default.createElement(ScrollArea, null, /* @__PURE__ */ import_react52.default.createElement(Stack.V, { position: "relative" }, showDividers ? withSeparatorElements(children, /* @__PURE__ */ import_react52.default.createElement(Divider, null)) : children)) : fallback ? /* @__PURE__ */ import_react52.default.createElement(Stack.V, { position: "relative", height: "100%" }, fallback) : null
5659
+ children ? /* @__PURE__ */ import_react53.default.createElement(ScrollArea, null, /* @__PURE__ */ import_react53.default.createElement(Stack.V, { position: "relative" }, showDividers ? withSeparatorElements(children, /* @__PURE__ */ import_react53.default.createElement(Divider, null)) : children)) : fallback ? /* @__PURE__ */ import_react53.default.createElement(Stack.V, { position: "relative", height: "100%" }, fallback) : null
5648
5660
  );
5649
5661
  })
5650
5662
  );
5651
5663
 
5652
5664
  // src/components/Label.tsx
5653
- var import_react53 = __toESM(require("react"));
5665
+ var import_react54 = __toESM(require("react"));
5654
5666
  var import_styled_components28 = __toESM(require("styled-components"));
5655
5667
  var LabelLabel = import_styled_components28.default.label(
5656
5668
  ({ theme, $selected }) => ({
@@ -5679,17 +5691,17 @@ var LabelContainer2 = import_styled_components28.default.span(({ theme }) => ({
5679
5691
  alignItems: "center"
5680
5692
  }));
5681
5693
  function LabelRoot({ label, children }) {
5682
- return /* @__PURE__ */ import_react53.default.createElement(LabelContainer2, null, children, label && /* @__PURE__ */ import_react53.default.createElement(import_react53.default.Fragment, null, /* @__PURE__ */ import_react53.default.createElement(Spacer.Vertical, { size: 2 }), /* @__PURE__ */ import_react53.default.createElement(LabelLabel, null, label)));
5694
+ return /* @__PURE__ */ import_react54.default.createElement(LabelContainer2, null, children, label && /* @__PURE__ */ import_react54.default.createElement(import_react54.default.Fragment, null, /* @__PURE__ */ import_react54.default.createElement(Spacer.Vertical, { size: 2 }), /* @__PURE__ */ import_react54.default.createElement(LabelLabel, null, label)));
5683
5695
  }
5684
5696
  var Label;
5685
5697
  ((_Label) => {
5686
- _Label.Label = (0, import_react53.memo)(LabelLabel);
5687
- _Label.Root = (0, import_react53.memo)(LabelRoot);
5698
+ _Label.Label = (0, import_react54.memo)(LabelLabel);
5699
+ _Label.Root = (0, import_react54.memo)(LabelRoot);
5688
5700
  })(Label || (Label = {}));
5689
5701
 
5690
5702
  // src/components/LabeledElementView.tsx
5691
5703
  var kiwi = __toESM(require("kiwi.js"));
5692
- var import_react54 = __toESM(require("react"));
5704
+ var import_react55 = __toESM(require("react"));
5693
5705
  var import_styled_components29 = __toESM(require("styled-components"));
5694
5706
  var Container4 = import_styled_components29.default.div(({ theme }) => ({
5695
5707
  display: "flex",
@@ -5708,24 +5720,24 @@ var Labels = import_styled_components29.default.div(({ theme }) => ({
5708
5720
  overflow: "hidden",
5709
5721
  userSelect: "none"
5710
5722
  }));
5711
- var LabeledElementView = (0, import_react54.memo)(function LabeledElementView2({
5723
+ var LabeledElementView = (0, import_react55.memo)(function LabeledElementView2({
5712
5724
  children,
5713
5725
  renderLabel
5714
5726
  }) {
5715
- const elementIds = import_react54.Children.toArray(children).flatMap(
5716
- (child) => (0, import_react54.isValidElement)(child) && child.type === import_react54.Fragment ? child.props.children : [child]
5727
+ const elementIds = import_react55.Children.toArray(children).flatMap(
5728
+ (child) => (0, import_react55.isValidElement)(child) && child.type === import_react55.Fragment ? child.props.children : [child]
5717
5729
  ).map(
5718
- (child) => (0, import_react54.isValidElement)(child) && "id" in child.props ? child.props.id : null
5730
+ (child) => (0, import_react55.isValidElement)(child) && "id" in child.props ? child.props.id : null
5719
5731
  ).filter((id) => !!id);
5720
5732
  const serializedIds = elementIds.join(",");
5721
- const containerRef = (0, import_react54.useRef)(null);
5722
- const refs = (0, import_react54.useMemo)(() => {
5733
+ const containerRef = (0, import_react55.useRef)(null);
5734
+ const refs = (0, import_react55.useMemo)(() => {
5723
5735
  return Object.fromEntries(
5724
- serializedIds.split(",").map((id) => [id, (0, import_react54.createRef)()])
5736
+ serializedIds.split(",").map((id) => [id, (0, import_react55.createRef)()])
5725
5737
  );
5726
5738
  }, [serializedIds]);
5727
- const labelElements = (0, import_react54.useMemo)(() => {
5728
- return serializedIds.split(",").map((id, index) => /* @__PURE__ */ import_react54.default.createElement(
5739
+ const labelElements = (0, import_react55.useMemo)(() => {
5740
+ return serializedIds.split(",").map((id, index) => /* @__PURE__ */ import_react55.default.createElement(
5729
5741
  "span",
5730
5742
  {
5731
5743
  key: id,
@@ -5738,7 +5750,7 @@ var LabeledElementView = (0, import_react54.memo)(function LabeledElementView2({
5738
5750
  })
5739
5751
  ));
5740
5752
  }, [refs, serializedIds, renderLabel]);
5741
- (0, import_react54.useLayoutEffect)(() => {
5753
+ (0, import_react55.useLayoutEffect)(() => {
5742
5754
  if (!containerRef.current)
5743
5755
  return;
5744
5756
  const containerRect = containerRef.current.getBoundingClientRect();
@@ -5803,13 +5815,13 @@ var LabeledElementView = (0, import_react54.memo)(function LabeledElementView2({
5803
5815
  `${Math.max(...heights)}px`
5804
5816
  );
5805
5817
  }, [refs, labelElements]);
5806
- return /* @__PURE__ */ import_react54.default.createElement(Container4, { ref: containerRef }, /* @__PURE__ */ import_react54.default.createElement(Tools, null, children), /* @__PURE__ */ import_react54.default.createElement(Labels, null, labelElements));
5818
+ return /* @__PURE__ */ import_react55.default.createElement(Container4, { ref: containerRef }, /* @__PURE__ */ import_react55.default.createElement(Tools, null, children), /* @__PURE__ */ import_react55.default.createElement(Labels, null, labelElements));
5807
5819
  });
5808
5820
 
5809
5821
  // src/components/Progress.tsx
5810
5822
  var import_noya_utils9 = require("@noya-app/noya-utils");
5811
5823
  var ProgressPrimitive = __toESM(require("@radix-ui/react-progress"));
5812
- var import_react55 = __toESM(require("react"));
5824
+ var import_react56 = __toESM(require("react"));
5813
5825
  var import_styled_components30 = __toESM(require("styled-components"));
5814
5826
  function Progress({
5815
5827
  value,
@@ -5819,7 +5831,7 @@ function Progress({
5819
5831
  variant = "normal"
5820
5832
  }) {
5821
5833
  const clampedValue = (0, import_noya_utils9.clamp)(value, 0, 100);
5822
- return /* @__PURE__ */ import_react55.default.createElement(ProgressRoot, { value: clampedValue, style: { width, flex, height } }, /* @__PURE__ */ import_react55.default.createElement(
5834
+ return /* @__PURE__ */ import_react56.default.createElement(ProgressRoot, { value: clampedValue, style: { width, flex, height } }, /* @__PURE__ */ import_react56.default.createElement(
5823
5835
  ProgressIndicator,
5824
5836
  {
5825
5837
  variant,
@@ -5844,7 +5856,7 @@ var ProgressIndicator = (0, import_styled_components30.default)(ProgressPrimitiv
5844
5856
 
5845
5857
  // src/components/RadioGroup.tsx
5846
5858
  var ToggleGroupPrimitive = __toESM(require("@radix-ui/react-toggle-group"));
5847
- var import_react56 = __toESM(require("react"));
5859
+ var import_react57 = __toESM(require("react"));
5848
5860
  var import_styled_components31 = __toESM(require("styled-components"));
5849
5861
  var ignoredProps2 = /* @__PURE__ */ new Set(["colorScheme"]);
5850
5862
  var StyledRoot = (0, import_styled_components31.default)(ToggleGroupPrimitive.Root).withConfig({
@@ -5897,9 +5909,9 @@ var StyledItem = (0, import_styled_components31.default)(ToggleGroupPrimitive.It
5897
5909
  boxShadow: `0 0 0 1px ${theme.colors.sidebar.background}, 0 0 0 3px ${theme.colors[colorScheme ?? "primary"]}`
5898
5910
  }
5899
5911
  }));
5900
- var ToggleGroupItem = (0, import_react56.forwardRef)(function ToggleGroupItem2({ value, tooltip, children, disabled = false }, forwardedRef) {
5901
- const { colorScheme } = (0, import_react56.useContext)(RadioGroupContext);
5902
- const itemElement = /* @__PURE__ */ import_react56.default.createElement(
5912
+ var ToggleGroupItem = (0, import_react57.forwardRef)(function ToggleGroupItem2({ value, tooltip, children, disabled = false }, forwardedRef) {
5913
+ const { colorScheme } = (0, import_react57.useContext)(RadioGroupContext);
5914
+ const itemElement = /* @__PURE__ */ import_react57.default.createElement(
5903
5915
  StyledItem,
5904
5916
  {
5905
5917
  ref: forwardedRef,
@@ -5909,9 +5921,9 @@ var ToggleGroupItem = (0, import_react56.forwardRef)(function ToggleGroupItem2({
5909
5921
  },
5910
5922
  children
5911
5923
  );
5912
- return tooltip ? /* @__PURE__ */ import_react56.default.createElement(Tooltip, { content: tooltip }, itemElement) : itemElement;
5924
+ return tooltip ? /* @__PURE__ */ import_react57.default.createElement(Tooltip, { content: tooltip }, itemElement) : itemElement;
5913
5925
  });
5914
- var RadioGroupContext = (0, import_react56.createContext)({
5926
+ var RadioGroupContext = (0, import_react57.createContext)({
5915
5927
  colorScheme: "primary"
5916
5928
  });
5917
5929
  function ToggleGroupRoot({
@@ -5922,8 +5934,8 @@ function ToggleGroupRoot({
5922
5934
  allowEmpty,
5923
5935
  children
5924
5936
  }) {
5925
- const contextValue = (0, import_react56.useMemo)(() => ({ colorScheme }), [colorScheme]);
5926
- const handleValueChange = (0, import_react56.useCallback)(
5937
+ const contextValue = (0, import_react57.useMemo)(() => ({ colorScheme }), [colorScheme]);
5938
+ const handleValueChange = (0, import_react57.useCallback)(
5927
5939
  (value2) => {
5928
5940
  if (!allowEmpty && !value2)
5929
5941
  return;
@@ -5931,7 +5943,7 @@ function ToggleGroupRoot({
5931
5943
  },
5932
5944
  [allowEmpty, onValueChange]
5933
5945
  );
5934
- return /* @__PURE__ */ import_react56.default.createElement(RadioGroupContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react56.default.createElement(
5946
+ return /* @__PURE__ */ import_react57.default.createElement(RadioGroupContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react57.default.createElement(
5935
5947
  StyledRoot,
5936
5948
  {
5937
5949
  id,
@@ -5945,28 +5957,28 @@ function ToggleGroupRoot({
5945
5957
  }
5946
5958
  var RadioGroup;
5947
5959
  ((RadioGroup2) => {
5948
- RadioGroup2.Root = (0, import_react56.memo)(ToggleGroupRoot);
5949
- RadioGroup2.Item = (0, import_react56.memo)(ToggleGroupItem);
5960
+ RadioGroup2.Root = (0, import_react57.memo)(ToggleGroupRoot);
5961
+ RadioGroup2.Item = (0, import_react57.memo)(ToggleGroupItem);
5950
5962
  })(RadioGroup || (RadioGroup = {}));
5951
5963
 
5952
5964
  // src/components/Select.tsx
5953
5965
  var import_noya_utils10 = require("@noya-app/noya-utils");
5954
- var import_react57 = __toESM(require("react"));
5966
+ var import_react58 = __toESM(require("react"));
5955
5967
  var import_styled_components32 = __toESM(require("styled-components"));
5956
- var SelectContext = (0, import_react57.createContext)(void 0);
5957
- var SelectOption = (0, import_react57.memo)(function SelectOption2({
5968
+ var SelectContext = (0, import_react58.createContext)(void 0);
5969
+ var SelectOption = (0, import_react58.memo)(function SelectOption2({
5958
5970
  value,
5959
5971
  title,
5960
5972
  onSelect
5961
5973
  }) {
5962
- const { addListener, removeListener } = (0, import_react57.useContext)(SelectContext);
5963
- (0, import_react57.useEffect)(() => {
5974
+ const { addListener, removeListener } = (0, import_react58.useContext)(SelectContext);
5975
+ (0, import_react58.useEffect)(() => {
5964
5976
  if (!onSelect)
5965
5977
  return;
5966
5978
  addListener(value, onSelect);
5967
5979
  return () => removeListener(value);
5968
5980
  }, [addListener, onSelect, removeListener, value]);
5969
- return /* @__PURE__ */ import_react57.default.createElement("option", { value }, title ?? value);
5981
+ return /* @__PURE__ */ import_react58.default.createElement("option", { value }, title ?? value);
5970
5982
  });
5971
5983
  var createChevronSVGString = (0, import_noya_utils10.memoize)(
5972
5984
  (color) => `
@@ -6028,7 +6040,7 @@ var SelectLabel = import_styled_components32.default.label(({ theme }) => ({
6028
6040
  justifyContent: "end",
6029
6041
  paddingRight: "24px"
6030
6042
  }));
6031
- var Select = (0, import_react57.memo)(function Select2({
6043
+ var Select = (0, import_react58.memo)(function Select2({
6032
6044
  id,
6033
6045
  flex,
6034
6046
  value,
@@ -6039,8 +6051,8 @@ var Select = (0, import_react57.memo)(function Select2({
6039
6051
  const getTitle = "options" in rest ? rest.getTitle : void 0;
6040
6052
  const onChange = "options" in rest ? rest.onChange : void 0;
6041
6053
  const children = "options" in rest ? void 0 : rest.children;
6042
- const optionElements = (0, import_react57.useMemo)(
6043
- () => options ? options.map((option, index) => /* @__PURE__ */ import_react57.default.createElement(
6054
+ const optionElements = (0, import_react58.useMemo)(
6055
+ () => options ? options.map((option, index) => /* @__PURE__ */ import_react58.default.createElement(
6044
6056
  SelectOption,
6045
6057
  {
6046
6058
  key: option,
@@ -6051,36 +6063,36 @@ var Select = (0, import_react57.memo)(function Select2({
6051
6063
  )) : children,
6052
6064
  [children, getTitle, onChange, options]
6053
6065
  );
6054
- const listeners = (0, import_react57.useRef)(/* @__PURE__ */ new Map());
6055
- const contextValue = (0, import_react57.useMemo)(
6066
+ const listeners = (0, import_react58.useRef)(/* @__PURE__ */ new Map());
6067
+ const contextValue = (0, import_react58.useMemo)(
6056
6068
  () => ({
6057
6069
  addListener: (value2, listener) => listeners.current.set(value2, listener),
6058
6070
  removeListener: (value2) => listeners.current.delete(value2)
6059
6071
  }),
6060
6072
  []
6061
6073
  );
6062
- return /* @__PURE__ */ import_react57.default.createElement(SelectContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react57.default.createElement(SelectContainer, { $flex: flex }, /* @__PURE__ */ import_react57.default.createElement(
6074
+ return /* @__PURE__ */ import_react58.default.createElement(SelectContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react58.default.createElement(SelectContainer, { $flex: flex }, /* @__PURE__ */ import_react58.default.createElement(
6063
6075
  SelectElement,
6064
6076
  {
6065
6077
  id,
6066
6078
  $flex: flex,
6067
6079
  value,
6068
- onChange: (0, import_react57.useCallback)(
6080
+ onChange: (0, import_react58.useCallback)(
6069
6081
  (event) => listeners.current.get(event.target.value)?.(),
6070
6082
  [listeners]
6071
6083
  ),
6072
6084
  onPointerDown: (event) => event.stopPropagation()
6073
6085
  },
6074
6086
  optionElements
6075
- )), label && /* @__PURE__ */ import_react57.default.createElement(SelectLabel, { htmlFor: id }, label));
6087
+ )), label && /* @__PURE__ */ import_react58.default.createElement(SelectLabel, { htmlFor: id }, label));
6076
6088
  });
6077
6089
 
6078
6090
  // src/components/SelectMenu.tsx
6079
6091
  var import_noya_icons6 = require("@noya-app/noya-icons");
6080
6092
  var Select3 = __toESM(require("@radix-ui/react-select"));
6081
- var import_react58 = __toESM(require("react"));
6093
+ var import_react59 = __toESM(require("react"));
6082
6094
  var import_styled_components33 = require("styled-components");
6083
- var SelectMenu = (0, import_react58.memo)(function SelectMenu2({
6095
+ var SelectMenu = (0, import_react59.memo)(function SelectMenu2({
6084
6096
  id,
6085
6097
  style: style3,
6086
6098
  className,
@@ -6093,23 +6105,23 @@ var SelectMenu = (0, import_react58.memo)(function SelectMenu2({
6093
6105
  (item) => typeof item !== "string" && item.value === value
6094
6106
  );
6095
6107
  const icon = selectedItem?.icon;
6096
- return /* @__PURE__ */ import_react58.default.createElement(Select3.Root, { value, onValueChange: onSelect }, /* @__PURE__ */ import_react58.default.createElement(Select3.SelectTrigger, { asChild: true }, /* @__PURE__ */ import_react58.default.createElement(Button, { id, style: style3, className }, icon && /* @__PURE__ */ import_react58.default.createElement(import_react58.default.Fragment, null, icon, /* @__PURE__ */ import_react58.default.createElement(Spacer.Horizontal, { size: 8 })), /* @__PURE__ */ import_react58.default.createElement(Select3.Value, { placeholder }), /* @__PURE__ */ import_react58.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react58.default.createElement(import_noya_icons6.DropdownChevronIcon, null))), /* @__PURE__ */ import_react58.default.createElement(Select3.Portal, null, /* @__PURE__ */ import_react58.default.createElement(SelectContent, null, /* @__PURE__ */ import_react58.default.createElement(SelectViewport, null, menuItems.map((menuItem) => {
6108
+ return /* @__PURE__ */ import_react59.default.createElement(Select3.Root, { value, onValueChange: onSelect }, /* @__PURE__ */ import_react59.default.createElement(Select3.SelectTrigger, { asChild: true }, /* @__PURE__ */ import_react59.default.createElement(Button, { id, style: style3, className }, icon && /* @__PURE__ */ import_react59.default.createElement(import_react59.default.Fragment, null, renderIcon(icon), /* @__PURE__ */ import_react59.default.createElement(Spacer.Horizontal, { size: 8 })), /* @__PURE__ */ import_react59.default.createElement(Select3.Value, { placeholder }), /* @__PURE__ */ import_react59.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react59.default.createElement(import_noya_icons6.DropdownChevronIcon, null))), /* @__PURE__ */ import_react59.default.createElement(Select3.Portal, null, /* @__PURE__ */ import_react59.default.createElement(SelectContent, null, /* @__PURE__ */ import_react59.default.createElement(SelectViewport, null, menuItems.map((menuItem) => {
6097
6109
  if (typeof menuItem === "string") {
6098
- return /* @__PURE__ */ import_react58.default.createElement(StyledSeparator, null);
6110
+ return /* @__PURE__ */ import_react59.default.createElement(StyledSeparator, null);
6099
6111
  }
6100
6112
  const value2 = menuItem.value ?? "";
6101
- return /* @__PURE__ */ import_react58.default.createElement(SelectItem, { key: value2, value: value2, icon: menuItem.icon }, menuItem.title ?? value2);
6113
+ return /* @__PURE__ */ import_react59.default.createElement(SelectItem, { key: value2, value: value2, icon: menuItem.icon }, menuItem.title ?? value2);
6102
6114
  })))));
6103
6115
  });
6104
6116
  var SelectContent = (0, import_styled_components33.styled)(Select3.Content)(styles.contentStyle);
6105
6117
  var SelectViewport = (0, import_styled_components33.styled)(Select3.Viewport)({});
6106
- var SelectItem = import_react58.default.forwardRef(
6118
+ var SelectItem = import_react59.default.forwardRef(
6107
6119
  ({
6108
6120
  children,
6109
6121
  icon,
6110
6122
  ...props
6111
6123
  }, forwardedRef) => {
6112
- return /* @__PURE__ */ import_react58.default.createElement(StyledItem2, { ...props, ref: forwardedRef }, icon && /* @__PURE__ */ import_react58.default.createElement(import_react58.default.Fragment, null, icon, /* @__PURE__ */ import_react58.default.createElement(Spacer.Horizontal, { size: 8 })), /* @__PURE__ */ import_react58.default.createElement(Select3.ItemText, null, children));
6124
+ return /* @__PURE__ */ import_react59.default.createElement(StyledItem2, { ...props, ref: forwardedRef }, icon && /* @__PURE__ */ import_react59.default.createElement(import_react59.default.Fragment, null, renderIcon(icon), /* @__PURE__ */ import_react59.default.createElement(Spacer.Horizontal, { size: 8 })), /* @__PURE__ */ import_react59.default.createElement(Select3.ItemText, null, children));
6113
6125
  }
6114
6126
  );
6115
6127
  var StyledItem2 = (0, import_styled_components33.styled)(Select3.Item)(styles.itemStyle);
@@ -6117,7 +6129,7 @@ var StyledSeparator = (0, import_styled_components33.styled)(Select3.Separator)(
6117
6129
 
6118
6130
  // src/components/Slider.tsx
6119
6131
  var RadixSlider = __toESM(require("@radix-ui/react-slider"));
6120
- var import_react59 = __toESM(require("react"));
6132
+ var import_react60 = __toESM(require("react"));
6121
6133
  var import_styled_components34 = __toESM(require("styled-components"));
6122
6134
  var StyledSlider = (0, import_styled_components34.default)(RadixSlider.Root)({
6123
6135
  flex: "1",
@@ -6158,17 +6170,17 @@ var Slider = function Slider2({
6158
6170
  min,
6159
6171
  max
6160
6172
  }) {
6161
- const arrayValue = (0, import_react59.useMemo)(
6173
+ const arrayValue = (0, import_react60.useMemo)(
6162
6174
  () => [Math.min(Math.max(value, min), max)],
6163
6175
  [value, min, max]
6164
6176
  );
6165
- const handleValueChange = (0, import_react59.useCallback)(
6177
+ const handleValueChange = (0, import_react60.useCallback)(
6166
6178
  (arrayValue2) => {
6167
6179
  onValueChange(arrayValue2[0]);
6168
6180
  },
6169
6181
  [onValueChange]
6170
6182
  );
6171
- return /* @__PURE__ */ import_react59.default.createElement(
6183
+ return /* @__PURE__ */ import_react60.default.createElement(
6172
6184
  StyledSlider,
6173
6185
  {
6174
6186
  min,
@@ -6177,14 +6189,14 @@ var Slider = function Slider2({
6177
6189
  value: arrayValue,
6178
6190
  onValueChange: handleValueChange
6179
6191
  },
6180
- /* @__PURE__ */ import_react59.default.createElement(StyledTrack, null, /* @__PURE__ */ import_react59.default.createElement(StyledRange, null)),
6181
- /* @__PURE__ */ import_react59.default.createElement(StyledThumb2, null)
6192
+ /* @__PURE__ */ import_react60.default.createElement(StyledTrack, null, /* @__PURE__ */ import_react60.default.createElement(StyledRange, null)),
6193
+ /* @__PURE__ */ import_react60.default.createElement(StyledThumb2, null)
6182
6194
  );
6183
6195
  };
6184
6196
 
6185
6197
  // src/components/Switch.tsx
6186
6198
  var SwitchPrimitive = __toESM(require("@radix-ui/react-switch"));
6187
- var import_react60 = __toESM(require("react"));
6199
+ var import_react61 = __toESM(require("react"));
6188
6200
  var import_styled_components35 = __toESM(require("styled-components"));
6189
6201
  var SwitchRoot = (0, import_styled_components35.default)(SwitchPrimitive.Root)(({ theme, $colorScheme }) => ({
6190
6202
  all: "unset",
@@ -6219,7 +6231,7 @@ var Switch = function Switch2({
6219
6231
  onChange,
6220
6232
  colorScheme = "normal"
6221
6233
  }) {
6222
- return /* @__PURE__ */ import_react60.default.createElement(
6234
+ return /* @__PURE__ */ import_react61.default.createElement(
6223
6235
  SwitchRoot,
6224
6236
  {
6225
6237
  $colorScheme: colorScheme,
@@ -6228,62 +6240,62 @@ var Switch = function Switch2({
6228
6240
  onChange(newValue);
6229
6241
  }
6230
6242
  },
6231
- /* @__PURE__ */ import_react60.default.createElement(SwitchThumb, null)
6243
+ /* @__PURE__ */ import_react61.default.createElement(SwitchThumb, null)
6232
6244
  );
6233
6245
  };
6234
6246
 
6235
6247
  // src/components/TreeView.tsx
6236
- var import_react61 = __toESM(require("react"));
6237
- var TreeRow = (0, import_react61.forwardRef)(function TreeRow2({
6248
+ var import_react62 = __toESM(require("react"));
6249
+ var TreeRow = (0, import_react62.forwardRef)(function TreeRow2({
6238
6250
  icon,
6239
6251
  expanded,
6240
6252
  onClickChevron,
6241
6253
  children,
6242
6254
  ...rest
6243
6255
  }, forwardedRef) {
6244
- const { expandable } = (0, import_react61.useContext)(ListView.RowContext);
6245
- const handleClickChevron = (0, import_react61.useCallback)(
6256
+ const { expandable } = (0, import_react62.useContext)(ListView.RowContext);
6257
+ const handleClickChevron = (0, import_react62.useCallback)(
6246
6258
  (event) => {
6247
6259
  event.stopPropagation();
6248
6260
  onClickChevron?.({ altKey: event.altKey });
6249
6261
  },
6250
6262
  [onClickChevron]
6251
6263
  );
6252
- return /* @__PURE__ */ import_react61.default.createElement(ListView.Row, { ref: forwardedRef, ...rest }, expandable && /* @__PURE__ */ import_react61.default.createElement(import_react61.default.Fragment, null, expanded === void 0 ? /* @__PURE__ */ import_react61.default.createElement(Spacer.Horizontal, { size: 19 }) : /* @__PURE__ */ import_react61.default.createElement(
6264
+ return /* @__PURE__ */ import_react62.default.createElement(ListView.Row, { ref: forwardedRef, ...rest }, expandable && /* @__PURE__ */ import_react62.default.createElement(import_react62.default.Fragment, null, expanded === void 0 ? /* @__PURE__ */ import_react62.default.createElement(Spacer.Horizontal, { size: 19 }) : /* @__PURE__ */ import_react62.default.createElement(
6253
6265
  IconButton,
6254
6266
  {
6255
6267
  iconName: expanded ? "ChevronDownIcon2" : "ChevronRightIcon2",
6256
6268
  onClick: handleClickChevron,
6257
6269
  selected: rest.selected
6258
6270
  }
6259
- ), /* @__PURE__ */ import_react61.default.createElement(Spacer.Horizontal, { size: 6 })), icon && /* @__PURE__ */ import_react61.default.createElement(import_react61.default.Fragment, null, icon, /* @__PURE__ */ import_react61.default.createElement(Spacer.Horizontal, { size: 10 })), children);
6271
+ ), /* @__PURE__ */ import_react62.default.createElement(Spacer.Horizontal, { size: 6 })), icon && /* @__PURE__ */ import_react62.default.createElement(import_react62.default.Fragment, null, renderIcon(icon), /* @__PURE__ */ import_react62.default.createElement(Spacer.Horizontal, { size: 10 })), children);
6260
6272
  });
6261
6273
  var TreeView;
6262
6274
  ((TreeView2) => {
6263
6275
  TreeView2.Root = ListView.Root;
6264
6276
  TreeView2.RowTitle = ListView.RowTitle;
6265
6277
  TreeView2.EditableRowTitle = ListView.EditableRowTitle;
6266
- TreeView2.Row = (0, import_react61.memo)(TreeRow);
6278
+ TreeView2.Row = (0, import_react62.memo)(TreeRow);
6267
6279
  })(TreeView || (TreeView = {}));
6268
6280
 
6269
6281
  // src/components/WorkspaceLayout.tsx
6270
6282
  var import_noya_keymap5 = require("@noya-app/noya-keymap");
6271
- var import_react64 = __toESM(require("react"));
6283
+ var import_react65 = __toESM(require("react"));
6272
6284
  var import_react_resizable_panels = require("react-resizable-panels");
6273
6285
 
6274
6286
  // src/hooks/usePreservePanelSize.tsx
6275
- var import_react63 = require("react");
6287
+ var import_react64 = require("react");
6276
6288
 
6277
6289
  // src/hooks/useWindowSize.tsx
6278
- var import_react62 = require("react");
6290
+ var import_react63 = require("react");
6279
6291
  function useWindowSize() {
6280
- const [size2, setSize] = (0, import_react62.useState)(
6292
+ const [size2, setSize] = (0, import_react63.useState)(
6281
6293
  typeof window === "undefined" ? { width: 0, height: 0 } : {
6282
6294
  width: window.innerWidth,
6283
6295
  height: window.innerHeight
6284
6296
  }
6285
6297
  );
6286
- (0, import_react62.useEffect)(() => {
6298
+ (0, import_react63.useEffect)(() => {
6287
6299
  const handleResize = () => setSize({
6288
6300
  width: window.innerWidth,
6289
6301
  height: window.innerHeight
@@ -6301,8 +6313,8 @@ var RIGHT_SIDEBAR_ID = "editor-right-sidebar";
6301
6313
  var CONTENT_AREA_ID = "editor-content-area";
6302
6314
  function usePreservePanelSize(panelGroupRef, setPanelLayoutState) {
6303
6315
  const windowSize = useWindowSize();
6304
- const layoutRef = (0, import_react63.useRef)();
6305
- (0, import_react63.useLayoutEffect)(() => {
6316
+ const layoutRef = (0, import_react64.useRef)();
6317
+ (0, import_react64.useLayoutEffect)(() => {
6306
6318
  const panelGroup = document.querySelector(
6307
6319
  `[data-panel-group-id="${EDITOR_PANEL_GROUP_ID}"]`
6308
6320
  );
@@ -6345,7 +6357,7 @@ function usePreservePanelSize(panelGroupRef, setPanelLayoutState) {
6345
6357
  panelGroupObserver.disconnect();
6346
6358
  };
6347
6359
  }, [panelGroupRef, setPanelLayoutState]);
6348
- (0, import_react63.useLayoutEffect)(() => {
6360
+ (0, import_react64.useLayoutEffect)(() => {
6349
6361
  if (!layoutRef.current)
6350
6362
  return;
6351
6363
  const {
@@ -6405,7 +6417,7 @@ function usePreservePanelSize(panelGroupRef, setPanelLayoutState) {
6405
6417
  }
6406
6418
 
6407
6419
  // src/components/WorkspaceLayout.tsx
6408
- var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
6420
+ var WorkspaceLayout = (0, import_react65.forwardRef)(function WorkspaceLayout2({
6409
6421
  autoSavePrefix,
6410
6422
  leftSidebarContent: leftPanelContent,
6411
6423
  children: centerPanelContent,
@@ -6430,12 +6442,12 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
6430
6442
  const rightSidebarPercentage = getPercentage(rightSidebarInitialSize);
6431
6443
  const leftSidebarMinPercentage = leftSidebarMinSize !== void 0 ? getPercentage(leftSidebarMinSize) : void 0;
6432
6444
  const rightSidebarMinPercentage = rightSidebarMinSize !== void 0 ? getPercentage(rightSidebarMinSize) : void 0;
6433
- const panelGroupRef = (0, import_react64.useRef)(null);
6434
- const leftSidebarRef = (0, import_react64.useRef)(null);
6435
- const rightSidebarRef = (0, import_react64.useRef)(null);
6445
+ const panelGroupRef = (0, import_react65.useRef)(null);
6446
+ const leftSidebarRef = (0, import_react65.useRef)(null);
6447
+ const rightSidebarRef = (0, import_react65.useRef)(null);
6436
6448
  usePreservePanelSize(panelGroupRef, onChangeLayoutState);
6437
6449
  const theme = useDesignSystemTheme();
6438
- (0, import_react64.useImperativeHandle)(forwardedRef, () => ({
6450
+ (0, import_react65.useImperativeHandle)(forwardedRef, () => ({
6439
6451
  setLeftSidebarExpanded: (expanded) => {
6440
6452
  if (expanded) {
6441
6453
  leftSidebarRef.current?.expand();
@@ -6492,7 +6504,7 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
6492
6504
  }
6493
6505
  });
6494
6506
  const centerPanelPercentage = 100 - (leftPanelContent ? leftSidebarPercentage : 0) - (rightPanelContent ? rightSidebarPercentage : 0);
6495
- return /* @__PURE__ */ import_react64.default.createElement(
6507
+ return /* @__PURE__ */ import_react65.default.createElement(
6496
6508
  "div",
6497
6509
  {
6498
6510
  id,
@@ -6504,7 +6516,7 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
6504
6516
  ...style3
6505
6517
  }
6506
6518
  },
6507
- /* @__PURE__ */ import_react64.default.createElement(
6519
+ /* @__PURE__ */ import_react65.default.createElement(
6508
6520
  import_react_resizable_panels.PanelGroup,
6509
6521
  {
6510
6522
  ref: panelGroupRef,
@@ -6513,7 +6525,7 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
6513
6525
  autoSaveId: autoSavePrefix ? `${autoSavePrefix}--${EDITOR_PANEL_GROUP_ID}` : void 0,
6514
6526
  style: { flex: "1" }
6515
6527
  },
6516
- hasLeftSidebar && /* @__PURE__ */ import_react64.default.createElement(import_react64.default.Fragment, null, /* @__PURE__ */ import_react64.default.createElement(
6528
+ hasLeftSidebar && /* @__PURE__ */ import_react65.default.createElement(import_react65.default.Fragment, null, /* @__PURE__ */ import_react65.default.createElement(
6517
6529
  import_react_resizable_panels.Panel,
6518
6530
  {
6519
6531
  id: LEFT_SIDEBAR_ID,
@@ -6530,7 +6542,7 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
6530
6542
  }
6531
6543
  },
6532
6544
  leftPanelContent
6533
- ), /* @__PURE__ */ import_react64.default.createElement(
6545
+ ), /* @__PURE__ */ import_react65.default.createElement(
6534
6546
  import_react_resizable_panels.PanelResizeHandle,
6535
6547
  {
6536
6548
  style: {
@@ -6541,7 +6553,7 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
6541
6553
  }
6542
6554
  }
6543
6555
  )),
6544
- /* @__PURE__ */ import_react64.default.createElement(
6556
+ /* @__PURE__ */ import_react65.default.createElement(
6545
6557
  import_react_resizable_panels.Panel,
6546
6558
  {
6547
6559
  id: CONTENT_AREA_ID,
@@ -6556,7 +6568,7 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
6556
6568
  },
6557
6569
  centerPanelContent
6558
6570
  ),
6559
- hasRightSidebar && /* @__PURE__ */ import_react64.default.createElement(import_react64.default.Fragment, null, /* @__PURE__ */ import_react64.default.createElement(
6571
+ hasRightSidebar && /* @__PURE__ */ import_react65.default.createElement(import_react65.default.Fragment, null, /* @__PURE__ */ import_react65.default.createElement(
6560
6572
  import_react_resizable_panels.PanelResizeHandle,
6561
6573
  {
6562
6574
  style: {
@@ -6566,7 +6578,7 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
6566
6578
  backgroundColor: theme.colors.divider
6567
6579
  }
6568
6580
  }
6569
- ), /* @__PURE__ */ import_react64.default.createElement(
6581
+ ), /* @__PURE__ */ import_react65.default.createElement(
6570
6582
  import_react_resizable_panels.Panel,
6571
6583
  {
6572
6584
  id: RIGHT_SIDEBAR_ID,
@@ -6629,7 +6641,7 @@ var SUPPORTED_CANVAS_UPLOAD_TYPES = [
6629
6641
 
6630
6642
  // src/components/ArrayController.tsx
6631
6643
  var import_noya_utils11 = require("@noya-app/noya-utils");
6632
- var import_react66 = __toESM(require("react"));
6644
+ var import_react67 = __toESM(require("react"));
6633
6645
  var import_styled_components37 = __toESM(require("styled-components"));
6634
6646
 
6635
6647
  // src/components/InspectorPrimitives.tsx
@@ -6648,7 +6660,7 @@ __export(InspectorPrimitives_exports, {
6648
6660
  Title: () => Title3,
6649
6661
  VerticalSeparator: () => VerticalSeparator
6650
6662
  });
6651
- var import_react65 = __toESM(require("react"));
6663
+ var import_react66 = __toESM(require("react"));
6652
6664
  var import_styled_components36 = __toESM(require("styled-components"));
6653
6665
  var Section = import_styled_components36.default.div(({ theme, $padding = "10px", $gap }) => ({
6654
6666
  flex: "0 0 auto",
@@ -6695,8 +6707,8 @@ var Checkbox = import_styled_components36.default.input(({ theme }) => ({
6695
6707
  var Text3 = import_styled_components36.default.span(({ theme }) => ({
6696
6708
  ...theme.textStyles.small
6697
6709
  }));
6698
- var VerticalSeparator = () => /* @__PURE__ */ import_react65.default.createElement(Spacer.Vertical, { size: (0, import_styled_components36.useTheme)().sizes.inspector.verticalSeparator });
6699
- var HorizontalSeparator = () => /* @__PURE__ */ import_react65.default.createElement(Spacer.Horizontal, { size: (0, import_styled_components36.useTheme)().sizes.inspector.horizontalSeparator });
6710
+ var VerticalSeparator = () => /* @__PURE__ */ import_react66.default.createElement(Spacer.Vertical, { size: (0, import_styled_components36.useTheme)().sizes.inspector.verticalSeparator });
6711
+ var HorizontalSeparator = () => /* @__PURE__ */ import_react66.default.createElement(Spacer.Horizontal, { size: (0, import_styled_components36.useTheme)().sizes.inspector.horizontalSeparator });
6700
6712
  var SliderRowLabel = import_styled_components36.default.span(({ theme }) => ({
6701
6713
  ...theme.textStyles.small,
6702
6714
  color: theme.colors.textMuted,
@@ -6716,7 +6728,7 @@ var RowLabel = import_styled_components36.default.span(({ theme, $textStyle }) =
6716
6728
  // Button height
6717
6729
  alignItems: "center"
6718
6730
  }));
6719
- var LabeledRow = (0, import_react65.memo)(function LabeledRow2({
6731
+ var LabeledRow = (0, import_react66.memo)(function LabeledRow2({
6720
6732
  id,
6721
6733
  children,
6722
6734
  label,
@@ -6724,13 +6736,13 @@ var LabeledRow = (0, import_react65.memo)(function LabeledRow2({
6724
6736
  gap,
6725
6737
  right
6726
6738
  }) {
6727
- return /* @__PURE__ */ import_react65.default.createElement(Row2, { id }, /* @__PURE__ */ import_react65.default.createElement(Column, null, /* @__PURE__ */ import_react65.default.createElement(RowLabel, { $textStyle: labelTextStyle }, label, right && /* @__PURE__ */ import_react65.default.createElement(Spacer.Horizontal, null), right), /* @__PURE__ */ import_react65.default.createElement(Row2, { $gap: gap }, children)));
6739
+ return /* @__PURE__ */ import_react66.default.createElement(Row2, { id }, /* @__PURE__ */ import_react66.default.createElement(Column, null, /* @__PURE__ */ import_react66.default.createElement(RowLabel, { $textStyle: labelTextStyle }, label, right && /* @__PURE__ */ import_react66.default.createElement(Spacer.Horizontal, null), right), /* @__PURE__ */ import_react66.default.createElement(Row2, { $gap: gap }, children)));
6728
6740
  });
6729
- var LabeledSliderRow = (0, import_react65.memo)(function LabeledRow3({
6741
+ var LabeledSliderRow = (0, import_react66.memo)(function LabeledRow3({
6730
6742
  children,
6731
6743
  label
6732
6744
  }) {
6733
- return /* @__PURE__ */ import_react65.default.createElement(Row2, null, /* @__PURE__ */ import_react65.default.createElement(Column, null, /* @__PURE__ */ import_react65.default.createElement(SliderRowLabel, null, label), /* @__PURE__ */ import_react65.default.createElement(Row2, null, children)));
6745
+ return /* @__PURE__ */ import_react66.default.createElement(Row2, null, /* @__PURE__ */ import_react66.default.createElement(Column, null, /* @__PURE__ */ import_react66.default.createElement(SliderRowLabel, null, label), /* @__PURE__ */ import_react66.default.createElement(Row2, null, children)));
6734
6746
  });
6735
6747
 
6736
6748
  // src/components/ArrayController.tsx
@@ -6743,7 +6755,7 @@ var ElementRow = import_styled_components37.default.div({
6743
6755
  var ItemContainer2 = import_styled_components37.default.div({
6744
6756
  position: "relative"
6745
6757
  });
6746
- var ArrayController = (0, import_react66.memo)(function ArrayController2({
6758
+ var ArrayController = (0, import_react67.memo)(function ArrayController2({
6747
6759
  id,
6748
6760
  items,
6749
6761
  title,
@@ -6761,12 +6773,12 @@ var ArrayController = (0, import_react66.memo)(function ArrayController2({
6761
6773
  }) {
6762
6774
  const iconColor = (0, import_styled_components37.useTheme)().colors.icon;
6763
6775
  const primaryLightColor = (0, import_styled_components37.useTheme)().colors.primaryLight;
6764
- const keys = (0, import_react66.useMemo)(
6776
+ const keys = (0, import_react67.useMemo)(
6765
6777
  () => items.map((item, index) => getKey?.(item) ?? index.toString()),
6766
6778
  [getKey, items]
6767
6779
  );
6768
6780
  const indexes = reversed ? (0, import_noya_utils11.range)(0, items.length).reverse() : (0, import_noya_utils11.range)(0, items.length);
6769
- const handleMoveItem = (0, import_react66.useCallback)(
6781
+ const handleMoveItem = (0, import_react67.useCallback)(
6770
6782
  (sourceIndex, destinationIndex, position) => {
6771
6783
  if (reversed) {
6772
6784
  if (position === "above") {
@@ -6783,11 +6795,11 @@ var ArrayController = (0, import_react66.memo)(function ArrayController2({
6783
6795
  [onMoveItem, reversed]
6784
6796
  );
6785
6797
  const renderRow = (index) => {
6786
- return /* @__PURE__ */ import_react66.default.createElement(ElementRow, { key: keys[index] }, renderItem({ item: items[index], index }));
6798
+ return /* @__PURE__ */ import_react67.default.createElement(ElementRow, { key: keys[index] }, renderItem({ item: items[index], index }));
6787
6799
  };
6788
- return /* @__PURE__ */ import_react66.default.createElement(Section, { id, $padding: padding, $gap: "2px" }, /* @__PURE__ */ import_react66.default.createElement(SectionHeader, null, /* @__PURE__ */ import_react66.default.createElement(Button, { variant: "none", onClick: onClickPlus }, /* @__PURE__ */ import_react66.default.createElement(Title3, null, title)), /* @__PURE__ */ import_react66.default.createElement(Spacer.Horizontal, null), withSeparatorElements(
6800
+ return /* @__PURE__ */ import_react67.default.createElement(Section, { id, $padding: padding, $gap: "2px" }, /* @__PURE__ */ import_react67.default.createElement(SectionHeader, null, /* @__PURE__ */ import_react67.default.createElement(Button, { variant: "none", onClick: onClickPlus }, /* @__PURE__ */ import_react67.default.createElement(Title3, null, title)), /* @__PURE__ */ import_react67.default.createElement(Spacer.Horizontal, null), withSeparatorElements(
6789
6801
  [
6790
- onClickTrash && /* @__PURE__ */ import_react66.default.createElement(
6802
+ onClickTrash && /* @__PURE__ */ import_react67.default.createElement(
6791
6803
  IconButton,
6792
6804
  {
6793
6805
  id: `${id}-trash`,
@@ -6796,7 +6808,7 @@ var ArrayController = (0, import_react66.memo)(function ArrayController2({
6796
6808
  onClick: onClickTrash
6797
6809
  }
6798
6810
  ),
6799
- onClickExpand && /* @__PURE__ */ import_react66.default.createElement(
6811
+ onClickExpand && /* @__PURE__ */ import_react67.default.createElement(
6800
6812
  IconButton,
6801
6813
  {
6802
6814
  id: `${id}-gear`,
@@ -6805,7 +6817,7 @@ var ArrayController = (0, import_react66.memo)(function ArrayController2({
6805
6817
  onClick: onClickExpand
6806
6818
  }
6807
6819
  ),
6808
- onClickPlus && /* @__PURE__ */ import_react66.default.createElement(
6820
+ onClickPlus && /* @__PURE__ */ import_react67.default.createElement(
6809
6821
  IconButton,
6810
6822
  {
6811
6823
  id: `${id}-add`,
@@ -6815,15 +6827,15 @@ var ArrayController = (0, import_react66.memo)(function ArrayController2({
6815
6827
  }
6816
6828
  )
6817
6829
  ],
6818
- /* @__PURE__ */ import_react66.default.createElement(Spacer.Horizontal, { size: 8 })
6819
- )), /* @__PURE__ */ import_react66.default.createElement(Stack.V, { gap: "4px" }, sortable ? /* @__PURE__ */ import_react66.default.createElement(
6830
+ /* @__PURE__ */ import_react67.default.createElement(Spacer.Horizontal, { size: 8 })
6831
+ )), /* @__PURE__ */ import_react67.default.createElement(Stack.V, { gap: "4px" }, sortable ? /* @__PURE__ */ import_react67.default.createElement(
6820
6832
  Sortable.Root,
6821
6833
  {
6822
6834
  keys,
6823
6835
  renderOverlay: renderRow,
6824
6836
  onMoveItem: handleMoveItem
6825
6837
  },
6826
- indexes.map((index) => /* @__PURE__ */ import_react66.default.createElement(Sortable.Item, { id: keys[index], key: keys[index] }, ({ relativeDropPosition, ...sortableProps }) => /* @__PURE__ */ import_react66.default.createElement(ItemContainer2, { ...sortableProps }, renderRow(index), relativeDropPosition && /* @__PURE__ */ import_react66.default.createElement(
6838
+ indexes.map((index) => /* @__PURE__ */ import_react67.default.createElement(Sortable.Item, { id: keys[index], key: keys[index] }, ({ relativeDropPosition, ...sortableProps }) => /* @__PURE__ */ import_react67.default.createElement(ItemContainer2, { ...sortableProps }, renderRow(index), relativeDropPosition && /* @__PURE__ */ import_react67.default.createElement(
6827
6839
  ListView.DragIndicator,
6828
6840
  {
6829
6841
  $gap: 0,
@@ -6837,11 +6849,11 @@ var ArrayController = (0, import_react66.memo)(function ArrayController2({
6837
6849
 
6838
6850
  // src/components/DimensionInput.tsx
6839
6851
  var import_noya_utils12 = require("@noya-app/noya-utils");
6840
- var import_react67 = __toESM(require("react"));
6852
+ var import_react68 = __toESM(require("react"));
6841
6853
  function getNewValue(value, mode, delta) {
6842
6854
  return delta === void 0 ? value : mode === "replace" ? delta : value + delta;
6843
6855
  }
6844
- var DimensionInput = (0, import_react67.memo)(function DimensionInput2({
6856
+ var DimensionInput = (0, import_react68.memo)(function DimensionInput2({
6845
6857
  id,
6846
6858
  value,
6847
6859
  onSetValue,
@@ -6851,15 +6863,15 @@ var DimensionInput = (0, import_react67.memo)(function DimensionInput2({
6851
6863
  disabled,
6852
6864
  trigger = "submit"
6853
6865
  }) {
6854
- const handleNudgeValue = (0, import_react67.useCallback)(
6866
+ const handleNudgeValue = (0, import_react68.useCallback)(
6855
6867
  (value2) => onSetValue(value2, "adjust"),
6856
6868
  [onSetValue]
6857
6869
  );
6858
- const handleSetValue = (0, import_react67.useCallback)(
6870
+ const handleSetValue = (0, import_react68.useCallback)(
6859
6871
  (value2) => onSetValue(value2, "replace"),
6860
6872
  [onSetValue]
6861
6873
  );
6862
- return /* @__PURE__ */ import_react67.default.createElement(InputField.Root, { id, width: size2 }, /* @__PURE__ */ import_react67.default.createElement(
6874
+ return /* @__PURE__ */ import_react68.default.createElement(InputField.Root, { id, width: size2 }, /* @__PURE__ */ import_react68.default.createElement(
6863
6875
  InputField.NumberInput,
6864
6876
  {
6865
6877
  value: value === void 0 ? value : (0, import_noya_utils12.round)(value, 2),
@@ -6868,7 +6880,7 @@ var DimensionInput = (0, import_react67.memo)(function DimensionInput2({
6868
6880
  disabled,
6869
6881
  ...trigger === "change" ? { onChange: handleSetValue } : { onSubmit: handleSetValue }
6870
6882
  }
6871
- ), label && /* @__PURE__ */ import_react67.default.createElement(InputField.Label, null, label));
6883
+ ), label && /* @__PURE__ */ import_react68.default.createElement(InputField.Label, null, label));
6872
6884
  });
6873
6885
  // Annotate the CommonJS export names for ESM import in node:
6874
6886
  0 && (module.exports = {