@noya-app/noya-designsystem 0.1.23 → 0.1.25

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,18 +2303,48 @@ 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
  }
2309
+ var PrimitiveInputField = import_styled_components13.default.input(({ theme, readOnly, disabled }) => {
2310
+ return {
2311
+ // placeholder
2312
+ "&::placeholder": {
2313
+ color: theme.colors.textDisabled
2314
+ },
2315
+ ...theme.textStyles.small,
2316
+ color: readOnly ? theme.colors.textMuted : disabled ? theme.colors.textDisabled : theme.colors.text,
2317
+ width: "0px",
2318
+ // Reset intrinsic width
2319
+ flex: "1 1 0px",
2320
+ position: "relative",
2321
+ border: "0",
2322
+ outline: "none",
2323
+ minWidth: "0",
2324
+ alignSelf: "stretch",
2325
+ borderRadius: "4px",
2326
+ paddingTop: "4px",
2327
+ paddingBottom: "4px",
2328
+ paddingLeft: "6px",
2329
+ paddingRight: "6px",
2330
+ background: theme.colors.inputBackground,
2331
+ "&:focus": {
2332
+ boxShadow: `0 0 0 2px ${theme.colors.primary}`
2333
+ },
2334
+ userSelect: "all",
2335
+ pointerEvents: "all"
2336
+ };
2337
+ });
2297
2338
  var InputField;
2298
2339
  ((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);
2340
+ InputField2.Root = (0, import_react33.memo)(InputFieldRoot);
2341
+ InputField2.Input = (0, import_react33.memo)(InputFieldInput);
2342
+ InputField2.Typeahead = (0, import_react33.memo)(InputFieldTypeahead);
2343
+ InputField2.NumberInput = (0, import_react33.memo)(InputFieldNumberInput);
2303
2344
  InputField2.DropdownMenu = InputFieldDropdownMenu;
2304
2345
  InputField2.Button = InputFieldButton;
2305
2346
  InputField2.Label = InputFieldLabel;
2347
+ InputField2.PrimitiveElement = PrimitiveInputField;
2306
2348
  })(InputField || (InputField = {}));
2307
2349
 
2308
2350
  // src/contexts/DialogContext.tsx
@@ -2323,24 +2365,24 @@ function createDeferredPromise() {
2323
2365
  });
2324
2366
  return { promise, resolve, reject };
2325
2367
  }
2326
- var DialogContext = (0, import_react33.createContext)(void 0);
2368
+ var DialogContext = (0, import_react34.createContext)(void 0);
2327
2369
  var DialogProvider = function DialogProvider2({
2328
2370
  children
2329
2371
  }) {
2330
- const [contents, setContents] = (0, import_react33.useState)();
2372
+ const [contents, setContents] = (0, import_react34.useState)();
2331
2373
  const isOpen = !!contents;
2332
- const close = (0, import_react33.useCallback)(() => {
2374
+ const close = (0, import_react34.useCallback)(() => {
2333
2375
  if (!contents)
2334
2376
  return;
2335
2377
  contents.resolve(void 0);
2336
2378
  }, [contents]);
2337
- const submit = (0, import_react33.useCallback)(() => {
2379
+ const submit = (0, import_react34.useCallback)(() => {
2338
2380
  if (!contents || !contents.inputValue)
2339
2381
  return;
2340
2382
  contents.resolve(contents.inputValue);
2341
2383
  setContents(void 0);
2342
2384
  }, [contents]);
2343
- const open = (0, import_react33.useCallback)(
2385
+ const open = (0, import_react34.useCallback)(
2344
2386
  (title, inputValue = "") => {
2345
2387
  const { promise, resolve } = createDeferredPromise();
2346
2388
  setContents({
@@ -2355,7 +2397,7 @@ var DialogProvider = function DialogProvider2({
2355
2397
  },
2356
2398
  []
2357
2399
  );
2358
- const handleKeyDown = (0, import_react33.useCallback)(
2400
+ const handleKeyDown = (0, import_react34.useCallback)(
2359
2401
  (event) => {
2360
2402
  if (event.key !== "Enter")
2361
2403
  return;
@@ -2365,29 +2407,29 @@ var DialogProvider = function DialogProvider2({
2365
2407
  },
2366
2408
  [submit]
2367
2409
  );
2368
- const inputRef = (0, import_react33.useRef)(null);
2369
- const dialogRef = (0, import_react33.useRef)(null);
2370
- const containsElement = (0, import_react33.useCallback)((element) => {
2410
+ const inputRef = (0, import_react34.useRef)(null);
2411
+ const dialogRef = (0, import_react34.useRef)(null);
2412
+ const containsElement = (0, import_react34.useCallback)((element) => {
2371
2413
  if (!dialogRef.current)
2372
2414
  return false;
2373
2415
  return dialogRef.current.containsElement(element);
2374
2416
  }, []);
2375
- return /* @__PURE__ */ import_react33.default.createElement(import_react33.default.Fragment, null, /* @__PURE__ */ import_react33.default.createElement(
2417
+ return /* @__PURE__ */ import_react34.default.createElement(import_react34.default.Fragment, null, /* @__PURE__ */ import_react34.default.createElement(
2376
2418
  DialogContext.Provider,
2377
2419
  {
2378
- value: (0, import_react33.useMemo)(
2420
+ value: (0, import_react34.useMemo)(
2379
2421
  () => ({ openInputDialog: open, containsElement }),
2380
2422
  [containsElement, open]
2381
2423
  )
2382
2424
  },
2383
2425
  children
2384
- ), /* @__PURE__ */ import_react33.default.createElement(
2426
+ ), /* @__PURE__ */ import_react34.default.createElement(
2385
2427
  Dialog,
2386
2428
  {
2387
2429
  ref: dialogRef,
2388
2430
  title: contents?.title,
2389
2431
  open: isOpen,
2390
- onOpenChange: (0, import_react33.useCallback)(
2432
+ onOpenChange: (0, import_react34.useCallback)(
2391
2433
  (isOpen2) => {
2392
2434
  if (!isOpen2) {
2393
2435
  close();
@@ -2395,14 +2437,14 @@ var DialogProvider = function DialogProvider2({
2395
2437
  },
2396
2438
  [close]
2397
2439
  ),
2398
- onOpenAutoFocus: (0, import_react33.useCallback)((event) => {
2440
+ onOpenAutoFocus: (0, import_react34.useCallback)((event) => {
2399
2441
  event.stopPropagation();
2400
2442
  event.preventDefault();
2401
2443
  inputRef.current?.focus();
2402
2444
  inputRef.current?.setSelectionRange(0, inputRef.current.value.length);
2403
2445
  }, [])
2404
2446
  },
2405
- /* @__PURE__ */ import_react33.default.createElement(InputField.Root, null, /* @__PURE__ */ import_react33.default.createElement(
2447
+ /* @__PURE__ */ import_react34.default.createElement(InputField.Root, null, /* @__PURE__ */ import_react34.default.createElement(
2406
2448
  InputField.Input,
2407
2449
  {
2408
2450
  ref: inputRef,
@@ -2418,12 +2460,12 @@ var DialogProvider = function DialogProvider2({
2418
2460
  onKeyDown: handleKeyDown
2419
2461
  }
2420
2462
  )),
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"))
2463
+ /* @__PURE__ */ import_react34.default.createElement(Spacer.Vertical, { size: 20 }),
2464
+ /* @__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
2465
  ));
2424
2466
  };
2425
2467
  function useDialog() {
2426
- const value = (0, import_react33.useContext)(DialogContext);
2468
+ const value = (0, import_react34.useContext)(DialogContext);
2427
2469
  if (!value) {
2428
2470
  throw new Error("Missing DialogProvider");
2429
2471
  }
@@ -2438,20 +2480,20 @@ function useDialogContainsElement() {
2438
2480
 
2439
2481
  // src/contexts/FloatingWindowContext.tsx
2440
2482
  var import_noya_utils5 = require("@noya-app/noya-utils");
2441
- var import_react34 = __toESM(require("react"));
2483
+ var import_react35 = __toESM(require("react"));
2442
2484
  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);
2485
+ var FloatingWindowContext = (0, import_react35.createContext)(void 0);
2486
+ var CurrentWindowContext = (0, import_react35.createContext)(void 0);
2445
2487
  var FloatingWindowProvider = ({
2446
2488
  children
2447
2489
  }) => {
2448
- const [windows, setWindows] = (0, import_react34.useState)({});
2449
- const contextValue = (0, import_react34.useMemo)(() => {
2490
+ const [windows, setWindows] = (0, import_react35.useState)({});
2491
+ const contextValue = (0, import_react35.useMemo)(() => {
2450
2492
  const createWindow = (element) => {
2451
2493
  const id = (0, import_noya_utils5.uuid)();
2452
2494
  setWindows((windows2) => ({
2453
2495
  ...windows2,
2454
- [id]: /* @__PURE__ */ import_react34.default.createElement(CurrentWindowContext.Provider, { value: { id } }, element)
2496
+ [id]: /* @__PURE__ */ import_react35.default.createElement(CurrentWindowContext.Provider, { value: { id } }, element)
2455
2497
  }));
2456
2498
  return id;
2457
2499
  };
@@ -2463,12 +2505,12 @@ var FloatingWindowProvider = ({
2463
2505
  };
2464
2506
  return { createWindow, closeWindow };
2465
2507
  }, []);
2466
- return /* @__PURE__ */ import_react34.default.createElement(FloatingWindowContext.Provider, { value: contextValue }, children, Object.entries(windows).map(
2508
+ return /* @__PURE__ */ import_react35.default.createElement(FloatingWindowContext.Provider, { value: contextValue }, children, Object.entries(windows).map(
2467
2509
  ([id, element]) => (0, import_react_dom.createPortal)(element, document.body, id)
2468
2510
  ));
2469
2511
  };
2470
2512
  var useFloatingWindowManager = () => {
2471
- const context = (0, import_react34.useContext)(FloatingWindowContext);
2513
+ const context = (0, import_react35.useContext)(FloatingWindowContext);
2472
2514
  if (!context) {
2473
2515
  throw new Error(
2474
2516
  "useFloatingWindow must be used within a FloatingWindowProvider"
@@ -2477,7 +2519,7 @@ var useFloatingWindowManager = () => {
2477
2519
  return context;
2478
2520
  };
2479
2521
  var useCurrentFloatingWindowInternal = () => {
2480
- const context = (0, import_react34.useContext)(CurrentWindowContext);
2522
+ const context = (0, import_react35.useContext)(CurrentWindowContext);
2481
2523
  if (!context) {
2482
2524
  throw new Error("useCurrentWindow must be used within a FloatingWindow");
2483
2525
  }
@@ -2485,7 +2527,7 @@ var useCurrentFloatingWindowInternal = () => {
2485
2527
  };
2486
2528
 
2487
2529
  // src/contexts/DesignSystemConfiguration.tsx
2488
- var DesignSystemThemeProvider = (0, import_react35.memo)(
2530
+ var DesignSystemThemeProvider = (0, import_react36.memo)(
2489
2531
  function DesignSystemThemeProvider2({
2490
2532
  children,
2491
2533
  theme
@@ -2496,50 +2538,50 @@ var DesignSystemThemeProvider = (0, import_react35.memo)(
2496
2538
  } catch (e) {
2497
2539
  }
2498
2540
  if (theme) {
2499
- return /* @__PURE__ */ import_react35.default.createElement(import_styled_components15.ThemeProvider, { theme }, children);
2541
+ return /* @__PURE__ */ import_react36.default.createElement(import_styled_components15.ThemeProvider, { theme }, children);
2500
2542
  } else if (parentTheme) {
2501
2543
  return children;
2502
2544
  } else {
2503
- return /* @__PURE__ */ import_react35.default.createElement(import_styled_components15.ThemeProvider, { theme: light_exports }, children);
2545
+ return /* @__PURE__ */ import_react36.default.createElement(import_styled_components15.ThemeProvider, { theme: light_exports }, children);
2504
2546
  }
2505
2547
  }
2506
2548
  );
2507
- var DesignSystemConfigurationContext = (0, import_react35.createContext)({
2549
+ var DesignSystemConfigurationContext = (0, import_react36.createContext)({
2508
2550
  platform: "key"
2509
2551
  });
2510
- var DesignSystemConfigurationProvider = (0, import_react35.memo)(
2552
+ var DesignSystemConfigurationProvider = (0, import_react36.memo)(
2511
2553
  function DesignSystemConfigurationProvider2({
2512
2554
  children,
2513
2555
  theme,
2514
2556
  platform
2515
2557
  }) {
2516
- const [internalPlatform, setInternalPlatform] = (0, import_react35.useState)(
2558
+ const [internalPlatform, setInternalPlatform] = (0, import_react36.useState)(
2517
2559
  platform ?? "key"
2518
2560
  );
2519
- (0, import_react35.useEffect)(() => {
2561
+ (0, import_react36.useEffect)(() => {
2520
2562
  if (platform !== void 0)
2521
2563
  return;
2522
2564
  if (typeof navigator !== "undefined") {
2523
2565
  setInternalPlatform((0, import_noya_keymap3.getCurrentPlatform)(navigator));
2524
2566
  }
2525
2567
  }, [platform]);
2526
- const contextValue = (0, import_react35.useMemo)(
2568
+ const contextValue = (0, import_react36.useMemo)(
2527
2569
  () => ({ platform: platform ?? internalPlatform }),
2528
2570
  [platform, internalPlatform]
2529
2571
  );
2530
2572
  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)))));
2573
+ 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
2574
  }
2533
2575
  );
2534
2576
  function useDesignSystemConfiguration() {
2535
- return (0, import_react35.useContext)(DesignSystemConfigurationContext);
2577
+ return (0, import_react36.useContext)(DesignSystemConfigurationContext);
2536
2578
  }
2537
2579
  function useDesignSystemTheme() {
2538
2580
  return (0, import_styled_components15.useTheme)();
2539
2581
  }
2540
2582
 
2541
2583
  // src/hooks/useHover.ts
2542
- var React21 = __toESM(require("react"));
2584
+ var React22 = __toESM(require("react"));
2543
2585
  var globalIgnoreEmulatedMouseEvents = false;
2544
2586
  var hoverCount = 0;
2545
2587
  function setGlobalIgnoreEmulatedMouseEvents() {
@@ -2569,13 +2611,13 @@ function setupGlobalTouchEvents() {
2569
2611
  }
2570
2612
  function useHover(props = {}) {
2571
2613
  const { onHoverStart, onHoverChange, onHoverEnd, isDisabled } = props;
2572
- const [isHovered, setHovered] = React21.useState(false);
2573
- const state = React21.useRef({
2614
+ const [isHovered, setHovered] = React22.useState(false);
2615
+ const state = React22.useRef({
2574
2616
  isHovered: false,
2575
2617
  ignoreEmulatedMouseEvents: false
2576
2618
  }).current;
2577
- React21.useEffect(setupGlobalTouchEvents, []);
2578
- const hoverProps = React21.useMemo(
2619
+ React22.useEffect(setupGlobalTouchEvents, []);
2620
+ const hoverProps = React22.useMemo(
2579
2621
  function getHoverProps() {
2580
2622
  function triggerHoverStart(event, pointerType) {
2581
2623
  if (isDisabled || pointerType === "touch" || state.isHovered) {
@@ -2648,9 +2690,12 @@ var ChipElement = import_styled_components16.default.span(({ theme, $colorScheme
2648
2690
  // lineHeight: "1.4",
2649
2691
  lineHeight: "15px",
2650
2692
  whiteSpace: "pre",
2651
- ...$size === "medium" ? {
2693
+ ...$size === "large" ? {
2652
2694
  fontSize: "11px",
2653
2695
  padding: "4px 8px"
2696
+ } : $size === "medium" ? {
2697
+ fontSize: "10px",
2698
+ padding: "2px 6px"
2654
2699
  } : {
2655
2700
  fontSize: "9px",
2656
2701
  padding: "0px 4px"
@@ -2685,7 +2730,7 @@ var DeleteElement = (0, import_styled_components16.default)(import_noya_icons3.C
2685
2730
  marginRight: "-2px",
2686
2731
  cursor: "pointer",
2687
2732
  opacity: 0.5,
2688
- ...size2 === "medium" ? {
2733
+ ...size2 === "large" ? {
2689
2734
  marginLeft: "2px",
2690
2735
  // top: '-1px',
2691
2736
  transform: "scale(0.75)"
@@ -2704,7 +2749,7 @@ var AddElement = (0, import_styled_components16.default)(import_noya_icons3.Plus
2704
2749
  marginLeft: "-2px",
2705
2750
  cursor: "pointer",
2706
2751
  opacity: 0.5,
2707
- ...size2 === "medium" ? {
2752
+ ...size2 === "large" ? {
2708
2753
  marginRight: "2px",
2709
2754
  top: "-1px",
2710
2755
  transform: "scale(0.75)"
@@ -2716,15 +2761,15 @@ var AddElement = (0, import_styled_components16.default)(import_noya_icons3.Plus
2716
2761
  opacity: 0.85
2717
2762
  }
2718
2763
  }));
2719
- var Chip = (0, import_react36.memo)(
2720
- (0, import_react36.forwardRef)(function Chip2({
2764
+ var Chip = (0, import_react37.memo)(
2765
+ (0, import_react37.forwardRef)(function Chip2({
2721
2766
  colorScheme,
2722
2767
  children,
2723
2768
  deletable,
2724
2769
  addable,
2725
2770
  clickable,
2726
2771
  style: style3,
2727
- size: size2 = "medium",
2772
+ size: size2 = "large",
2728
2773
  variant = "solid",
2729
2774
  monospace = false,
2730
2775
  tabIndex,
@@ -2740,7 +2785,7 @@ var Chip = (0, import_react36.memo)(
2740
2785
  });
2741
2786
  const handleClick = !children && !deletable && addable ? onAdd : onClick;
2742
2787
  const color = colorScheme === "primary" ? theme.colors.primary : colorScheme === "secondary" ? theme.colors.secondary : theme.colors.text;
2743
- return /* @__PURE__ */ import_react36.default.createElement(
2788
+ return /* @__PURE__ */ import_react37.default.createElement(
2744
2789
  ChipElement,
2745
2790
  {
2746
2791
  ref: forwardedRef,
@@ -2754,7 +2799,7 @@ var Chip = (0, import_react36.memo)(
2754
2799
  tabIndex,
2755
2800
  ...rest
2756
2801
  },
2757
- addable && /* @__PURE__ */ import_react36.default.createElement(
2802
+ addable && /* @__PURE__ */ import_react37.default.createElement(
2758
2803
  AddElement,
2759
2804
  {
2760
2805
  size: size2,
@@ -2767,7 +2812,7 @@ var Chip = (0, import_react36.memo)(
2767
2812
  }
2768
2813
  ),
2769
2814
  children,
2770
- deletable && /* @__PURE__ */ import_react36.default.createElement(
2815
+ deletable && /* @__PURE__ */ import_react37.default.createElement(
2771
2816
  DeleteElement,
2772
2817
  {
2773
2818
  size: size2,
@@ -2787,7 +2832,7 @@ var Chip = (0, import_react36.memo)(
2787
2832
  var import_noya_icons4 = require("@noya-app/noya-icons");
2788
2833
  var import_noya_keymap4 = require("@noya-app/noya-keymap");
2789
2834
  var RadixContextMenu = __toESM(require("@radix-ui/react-context-menu"));
2790
- var import_react37 = __toESM(require("react"));
2835
+ var import_react38 = __toESM(require("react"));
2791
2836
  var import_styled_components17 = __toESM(require("styled-components"));
2792
2837
  var SeparatorElement2 = (0, import_styled_components17.default)(RadixContextMenu.Separator)(
2793
2838
  styles.separatorStyle
@@ -2799,7 +2844,7 @@ var CheckboxItemElement2 = (0, import_styled_components17.default)(RadixContextM
2799
2844
  var StyledItemIndicator2 = (0, import_styled_components17.default)(RadixContextMenu.ItemIndicator)(
2800
2845
  styles.itemIndicatorStyle
2801
2846
  );
2802
- var ContextMenuItem2 = (0, import_react37.memo)(function ContextMenuItem3({
2847
+ var ContextMenuItem2 = (0, import_react38.memo)(function ContextMenuItem3({
2803
2848
  value,
2804
2849
  children,
2805
2850
  onSelect,
@@ -2810,42 +2855,42 @@ var ContextMenuItem2 = (0, import_react37.memo)(function ContextMenuItem3({
2810
2855
  items,
2811
2856
  shortcut
2812
2857
  }) {
2813
- const handlePointerDown = (0, import_react37.useCallback)(
2858
+ const handlePointerDown = (0, import_react38.useCallback)(
2814
2859
  (event) => event.stopPropagation(),
2815
2860
  []
2816
2861
  );
2817
- const handleSelectItem = (0, import_react37.useCallback)(() => {
2862
+ const handleSelectItem = (0, import_react38.useCallback)(() => {
2818
2863
  if (!value)
2819
2864
  return;
2820
2865
  onSelect(value);
2821
2866
  }, [onSelect, value]);
2822
2867
  if (checked) {
2823
- return /* @__PURE__ */ import_react37.default.createElement(
2868
+ return /* @__PURE__ */ import_react38.default.createElement(
2824
2869
  CheckboxItemElement2,
2825
2870
  {
2826
2871
  checked,
2827
2872
  disabled,
2828
2873
  onSelect: handleSelectItem
2829
2874
  },
2830
- /* @__PURE__ */ import_react37.default.createElement(StyledItemIndicator2, null, /* @__PURE__ */ import_react37.default.createElement(import_noya_icons4.CheckIcon, null)),
2875
+ /* @__PURE__ */ import_react38.default.createElement(StyledItemIndicator2, null, /* @__PURE__ */ import_react38.default.createElement(import_noya_icons4.CheckIcon, null)),
2831
2876
  children
2832
2877
  );
2833
2878
  }
2834
- const element = /* @__PURE__ */ import_react37.default.createElement(
2879
+ const element = /* @__PURE__ */ import_react38.default.createElement(
2835
2880
  ItemElement2,
2836
2881
  {
2837
2882
  disabled,
2838
2883
  onSelect: handleSelectItem,
2839
2884
  onPointerDown: handlePointerDown
2840
2885
  },
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 })),
2886
+ indented && /* @__PURE__ */ import_react38.default.createElement(Spacer.Horizontal, { size: CHECKBOX_WIDTH - CHECKBOX_RIGHT_INSET }),
2887
+ icon && /* @__PURE__ */ import_react38.default.createElement(import_react38.default.Fragment, null, renderIcon(icon), /* @__PURE__ */ import_react38.default.createElement(Spacer.Horizontal, { size: 8 })),
2843
2888
  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))
2889
+ 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 })),
2890
+ 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
2891
  );
2847
2892
  if (items && items.length > 0) {
2848
- return /* @__PURE__ */ import_react37.default.createElement(ContextMenuRoot, { isNested: true, items, onSelect }, element);
2893
+ return /* @__PURE__ */ import_react38.default.createElement(ContextMenuRoot, { isNested: true, items, onSelect }, element);
2849
2894
  } else {
2850
2895
  return element;
2851
2896
  }
@@ -2863,19 +2908,19 @@ function ContextMenuRoot({
2863
2908
  const hasCheckedItem = items.some(
2864
2909
  (item) => item !== SEPARATOR_ITEM && item.checked
2865
2910
  );
2866
- const keymap = (0, import_react37.useMemo)(
2911
+ const keymap = (0, import_react38.useMemo)(
2867
2912
  () => isNested || shouldBindKeyboardShortcuts === false ? {} : getKeyboardShortcutsForMenuItems(items, onSelect),
2868
2913
  [isNested, items, onSelect, shouldBindKeyboardShortcuts]
2869
2914
  );
2870
2915
  (0, import_noya_keymap4.useKeyboardShortcuts)(keymap);
2871
- const onPointerDown = (0, import_react37.useCallback)((event) => {
2916
+ const onPointerDown = (0, import_react38.useCallback)((event) => {
2872
2917
  event.preventDefault();
2873
2918
  }, []);
2874
2919
  const RootComponent = isNested ? RadixContextMenu.Sub : RadixContextMenu.Root;
2875
2920
  const TriggerComponent = isNested ? RadixContextMenu.SubTrigger : RadixContextMenu.Trigger;
2876
2921
  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(
2922
+ 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(
2923
+ (item, index) => item === SEPARATOR_ITEM ? /* @__PURE__ */ import_react38.default.createElement(SeparatorElement2, { key: index }) : /* @__PURE__ */ import_react38.default.createElement(
2879
2924
  ContextMenuItem2,
2880
2925
  {
2881
2926
  key: item.value ?? index,
@@ -2892,22 +2937,22 @@ function ContextMenuRoot({
2892
2937
  )
2893
2938
  ))));
2894
2939
  }
2895
- var ContextMenu = (0, import_react37.memo)(ContextMenuRoot);
2940
+ var ContextMenu = (0, import_react38.memo)(ContextMenuRoot);
2896
2941
 
2897
2942
  // src/components/Divider.tsx
2898
- var import_react38 = __toESM(require("react"));
2943
+ var import_react39 = __toESM(require("react"));
2899
2944
  var import_styled_components18 = __toESM(require("styled-components"));
2900
2945
  var DividerContainer = import_styled_components18.default.div(({ theme, $variant = "normal", $orientation, $overflow = 0 }) => ({
2901
2946
  ...$orientation === "horizontal" ? { height: "1px", minHeight: "1px", margin: `0px -${$overflow}px` } : { width: "1px", minWidth: "1px", margin: `-${$overflow}px 0px` },
2902
2947
  background: $variant === "strong" ? theme.colors.dividerStrong : $variant === "subtle" ? theme.colors.dividerSubtle : theme.colors.divider,
2903
2948
  alignSelf: "stretch"
2904
2949
  }));
2905
- var Divider = (0, import_react38.memo)(function Divider2({
2950
+ var Divider = (0, import_react39.memo)(function Divider2({
2906
2951
  variant,
2907
2952
  overflow,
2908
2953
  ...props
2909
2954
  }) {
2910
- return /* @__PURE__ */ import_react38.default.createElement(
2955
+ return /* @__PURE__ */ import_react39.default.createElement(
2911
2956
  DividerContainer,
2912
2957
  {
2913
2958
  $orientation: "horizontal",
@@ -2917,12 +2962,12 @@ var Divider = (0, import_react38.memo)(function Divider2({
2917
2962
  }
2918
2963
  );
2919
2964
  });
2920
- var DividerVertical = (0, import_react38.memo)(function DividerVertical2({
2965
+ var DividerVertical = (0, import_react39.memo)(function DividerVertical2({
2921
2966
  variant,
2922
2967
  overflow,
2923
2968
  ...props
2924
2969
  }) {
2925
- return /* @__PURE__ */ import_react38.default.createElement(
2970
+ return /* @__PURE__ */ import_react39.default.createElement(
2926
2971
  DividerContainer,
2927
2972
  {
2928
2973
  $orientation: "vertical",
@@ -2935,7 +2980,7 @@ var DividerVertical = (0, import_react38.memo)(function DividerVertical2({
2935
2980
 
2936
2981
  // src/components/DraggableMenuButton.tsx
2937
2982
  var import_noya_icons5 = require("@noya-app/noya-icons");
2938
- var import_react39 = __toESM(require("react"));
2983
+ var import_react40 = __toESM(require("react"));
2939
2984
  var import_styled_components19 = __toESM(require("styled-components"));
2940
2985
  var DotButtonElement = import_styled_components19.default.div(({ theme }) => ({
2941
2986
  cursor: "pointer",
@@ -2955,15 +3000,15 @@ var TriggerElement = import_styled_components19.default.div({
2955
3000
  pointerEvents: "none",
2956
3001
  height: "15px"
2957
3002
  });
2958
- var DraggableMenuButton = (0, import_react39.memo)(function DraggableMenuButton2({
3003
+ var DraggableMenuButton = (0, import_react40.memo)(function DraggableMenuButton2({
2959
3004
  items,
2960
3005
  onSelect,
2961
3006
  isVisible = true
2962
3007
  }) {
2963
3008
  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)(
3009
+ const [open, setOpen] = (0, import_react40.useState)(false);
3010
+ const [downPosition, setDownPosition] = import_react40.default.useState(null);
3011
+ const handlePointerDownCapture = (0, import_react40.useCallback)(
2967
3012
  (event) => {
2968
3013
  if (open) {
2969
3014
  setDownPosition(null);
@@ -2976,7 +3021,7 @@ var DraggableMenuButton = (0, import_react39.memo)(function DraggableMenuButton2
2976
3021
  },
2977
3022
  [open]
2978
3023
  );
2979
- const handlePointerUp = (0, import_react39.useCallback)(
3024
+ const handlePointerUp = (0, import_react40.useCallback)(
2980
3025
  (event) => {
2981
3026
  if (open || !downPosition) {
2982
3027
  setDownPosition(null);
@@ -2992,14 +3037,14 @@ var DraggableMenuButton = (0, import_react39.memo)(function DraggableMenuButton2
2992
3037
  },
2993
3038
  [downPosition, open]
2994
3039
  );
2995
- const handleOpenChange = (0, import_react39.useCallback)(
3040
+ const handleOpenChange = (0, import_react40.useCallback)(
2996
3041
  (isOpen) => {
2997
3042
  if (!isOpen)
2998
3043
  setOpen(false);
2999
3044
  },
3000
3045
  [setOpen]
3001
3046
  );
3002
- return /* @__PURE__ */ import_react39.default.createElement(
3047
+ return /* @__PURE__ */ import_react40.default.createElement(
3003
3048
  DotButtonElement,
3004
3049
  {
3005
3050
  onPointerDownCapture: handlePointerDownCapture,
@@ -3009,7 +3054,7 @@ var DraggableMenuButton = (0, import_react39.memo)(function DraggableMenuButton2
3009
3054
  event.preventDefault();
3010
3055
  }
3011
3056
  },
3012
- items && onSelect ? /* @__PURE__ */ import_react39.default.createElement(
3057
+ items && onSelect ? /* @__PURE__ */ import_react40.default.createElement(
3013
3058
  DropdownMenu,
3014
3059
  {
3015
3060
  open,
@@ -3018,13 +3063,13 @@ var DraggableMenuButton = (0, import_react39.memo)(function DraggableMenuButton2
3018
3063
  onSelect,
3019
3064
  shouldBindKeyboardShortcuts: false
3020
3065
  },
3021
- /* @__PURE__ */ import_react39.default.createElement(TriggerElement, null, /* @__PURE__ */ import_react39.default.createElement(
3066
+ /* @__PURE__ */ import_react40.default.createElement(TriggerElement, null, /* @__PURE__ */ import_react40.default.createElement(
3022
3067
  import_noya_icons5.DragHandleDots2Icon,
3023
3068
  {
3024
3069
  color: isVisible || open ? color : "transparent"
3025
3070
  }
3026
3071
  ))
3027
- ) : /* @__PURE__ */ import_react39.default.createElement(
3072
+ ) : /* @__PURE__ */ import_react40.default.createElement(
3028
3073
  import_noya_icons5.DragHandleDots2Icon,
3029
3074
  {
3030
3075
  color: isVisible || open ? color : "transparent"
@@ -3034,7 +3079,7 @@ var DraggableMenuButton = (0, import_react39.memo)(function DraggableMenuButton2
3034
3079
  });
3035
3080
 
3036
3081
  // src/components/FillInputField.tsx
3037
- var import_react43 = __toESM(require("react"));
3082
+ var import_react44 = __toESM(require("react"));
3038
3083
  var import_styled_components21 = __toESM(require("styled-components"));
3039
3084
 
3040
3085
  // ../noya-file-format/src/types.ts
@@ -3360,26 +3405,26 @@ var ClassValue = /* @__PURE__ */ ((ClassValue2) => {
3360
3405
  })(ClassValue || {});
3361
3406
 
3362
3407
  // src/components/FillPreviewBackground.tsx
3363
- var import_react42 = __toESM(require("react"));
3408
+ var import_react43 = __toESM(require("react"));
3364
3409
  var import_styled_components20 = __toESM(require("styled-components"));
3365
3410
 
3366
3411
  // src/contexts/ImageDataContext.tsx
3367
- var import_react40 = __toESM(require("react"));
3368
- var ImageDataContext = (0, import_react40.createContext)(
3412
+ var import_react41 = __toESM(require("react"));
3413
+ var ImageDataContext = (0, import_react41.createContext)(
3369
3414
  void 0
3370
3415
  );
3371
- var ImageDataProvider = (0, import_react40.memo)(function ImageDataProvider2({
3416
+ var ImageDataProvider = (0, import_react41.memo)(function ImageDataProvider2({
3372
3417
  children,
3373
3418
  getImageData
3374
3419
  }) {
3375
- const contextValue = (0, import_react40.useMemo)(
3420
+ const contextValue = (0, import_react41.useMemo)(
3376
3421
  () => ({ getImageData: getImageData ?? (() => void 0) }),
3377
3422
  [getImageData]
3378
3423
  );
3379
- return /* @__PURE__ */ import_react40.default.createElement(ImageDataContext.Provider, { value: contextValue }, children);
3424
+ return /* @__PURE__ */ import_react41.default.createElement(ImageDataContext.Provider, { value: contextValue }, children);
3380
3425
  });
3381
3426
  function useImageData(ref) {
3382
- const value = (0, import_react40.useContext)(ImageDataContext);
3427
+ const value = (0, import_react41.useContext)(ImageDataContext);
3383
3428
  if (!value) {
3384
3429
  throw new Error("Missing ImageDataProvider");
3385
3430
  }
@@ -3387,15 +3432,15 @@ function useImageData(ref) {
3387
3432
  }
3388
3433
 
3389
3434
  // src/hooks/useObjectURL.ts
3390
- var import_react41 = require("react");
3435
+ var import_react42 = require("react");
3391
3436
  function useObjectURL(object) {
3392
- const objectURL = (0, import_react41.useMemo)(() => {
3437
+ const objectURL = (0, import_react42.useMemo)(() => {
3393
3438
  if (object instanceof Blob)
3394
3439
  return URL.createObjectURL(object);
3395
3440
  const bytes = object instanceof Uint8Array ? object : object !== void 0 ? new Uint8Array(object) : new Uint8Array();
3396
3441
  return URL.createObjectURL(new Blob([bytes]));
3397
3442
  }, [object]);
3398
- (0, import_react41.useLayoutEffect)(() => {
3443
+ (0, import_react42.useLayoutEffect)(() => {
3399
3444
  return () => URL.revokeObjectURL(objectURL);
3400
3445
  }, [objectURL]);
3401
3446
  return objectURL;
@@ -3451,9 +3496,9 @@ var Background = import_styled_components20.default.span(({ background }) => ({
3451
3496
  position: "absolute",
3452
3497
  inset: 0
3453
3498
  }));
3454
- var HorizontalDotsBackground = (0, import_react42.memo)(function HorizontalDotsBackground2() {
3499
+ var HorizontalDotsBackground = (0, import_react43.memo)(function HorizontalDotsBackground2() {
3455
3500
  const { inputBackground, placeholderDots } = (0, import_styled_components20.useTheme)().colors;
3456
- const background = (0, import_react42.useMemo)(
3501
+ const background = (0, import_react43.useMemo)(
3457
3502
  () => [
3458
3503
  `center url("data:image/svg+xml;utf8,${dotsHorizontalSvg(
3459
3504
  placeholderDots
@@ -3462,7 +3507,7 @@ var HorizontalDotsBackground = (0, import_react42.memo)(function HorizontalDotsB
3462
3507
  ].join(","),
3463
3508
  [inputBackground, placeholderDots]
3464
3509
  );
3465
- return /* @__PURE__ */ import_react42.default.createElement(Background, { background });
3510
+ return /* @__PURE__ */ import_react43.default.createElement(Background, { background });
3466
3511
  });
3467
3512
  function getPatternSizeAndPosition(fillType, tileScale) {
3468
3513
  switch (fillType) {
@@ -3476,7 +3521,7 @@ function getPatternSizeAndPosition(fillType, tileScale) {
3476
3521
  return "center / 100% 100%";
3477
3522
  }
3478
3523
  }
3479
- var PatternPreviewBackground = (0, import_react42.memo)(function PatternPreviewBackground2({
3524
+ var PatternPreviewBackground = (0, import_react43.memo)(function PatternPreviewBackground2({
3480
3525
  fillType,
3481
3526
  tileScale,
3482
3527
  imageRef
@@ -3484,7 +3529,7 @@ var PatternPreviewBackground = (0, import_react42.memo)(function PatternPreviewB
3484
3529
  const image = useImageData(imageRef);
3485
3530
  const url = useObjectURL(image);
3486
3531
  const size2 = getPatternSizeAndPosition(fillType, tileScale);
3487
- const background = (0, import_react42.useMemo)(
3532
+ const background = (0, import_react43.useMemo)(
3488
3533
  () => [
3489
3534
  size2,
3490
3535
  `url(${url})`,
@@ -3492,37 +3537,37 @@ var PatternPreviewBackground = (0, import_react42.memo)(function PatternPreviewB
3492
3537
  ].join(" "),
3493
3538
  [fillType, size2, url]
3494
3539
  );
3495
- return /* @__PURE__ */ import_react42.default.createElement(Background, { background });
3540
+ return /* @__PURE__ */ import_react43.default.createElement(Background, { background });
3496
3541
  });
3497
- var ColorPreviewBackground = (0, import_react42.memo)(function ColorPreviewBackground2({
3542
+ var ColorPreviewBackground = (0, import_react43.memo)(function ColorPreviewBackground2({
3498
3543
  color
3499
3544
  }) {
3500
- const background = (0, import_react42.useMemo)(() => sketchColorToRgbaString(color), [color]);
3501
- return /* @__PURE__ */ import_react42.default.createElement(Background, { background });
3545
+ const background = (0, import_react43.useMemo)(() => sketchColorToRgbaString(color), [color]);
3546
+ return /* @__PURE__ */ import_react43.default.createElement(Background, { background });
3502
3547
  });
3503
- var GradientPreviewBackground = (0, import_react42.memo)(function GradientPreviewBackground2({
3548
+ var GradientPreviewBackground = (0, import_react43.memo)(function GradientPreviewBackground2({
3504
3549
  gradient
3505
3550
  }) {
3506
- const background = (0, import_react42.useMemo)(
3551
+ const background = (0, import_react43.useMemo)(
3507
3552
  () => getGradientBackground(gradient.stops, gradient.gradientType, 180),
3508
3553
  [gradient.gradientType, gradient.stops]
3509
3554
  );
3510
- return /* @__PURE__ */ import_react42.default.createElement(Background, { background });
3555
+ return /* @__PURE__ */ import_react43.default.createElement(Background, { background });
3511
3556
  });
3512
- var FillPreviewBackground = (0, import_react42.memo)(function FillPreviewBackground2({
3557
+ var FillPreviewBackground = (0, import_react43.memo)(function FillPreviewBackground2({
3513
3558
  value
3514
3559
  }) {
3515
3560
  if (!value)
3516
- return /* @__PURE__ */ import_react42.default.createElement(HorizontalDotsBackground, null);
3561
+ return /* @__PURE__ */ import_react43.default.createElement(HorizontalDotsBackground, null);
3517
3562
  switch (value._class) {
3518
3563
  case "color":
3519
- return /* @__PURE__ */ import_react42.default.createElement(ColorPreviewBackground, { color: value });
3564
+ return /* @__PURE__ */ import_react43.default.createElement(ColorPreviewBackground, { color: value });
3520
3565
  case "gradient":
3521
- return /* @__PURE__ */ import_react42.default.createElement(GradientPreviewBackground, { gradient: value });
3566
+ return /* @__PURE__ */ import_react43.default.createElement(GradientPreviewBackground, { gradient: value });
3522
3567
  case "pattern":
3523
3568
  if (!value.image)
3524
3569
  return null;
3525
- return /* @__PURE__ */ import_react42.default.createElement(
3570
+ return /* @__PURE__ */ import_react43.default.createElement(
3526
3571
  PatternPreviewBackground,
3527
3572
  {
3528
3573
  fillType: value.patternFillType,
@@ -3552,14 +3597,14 @@ var Container = import_styled_components21.default.button(
3552
3597
  flex: $flex
3553
3598
  })
3554
3599
  );
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 }));
3600
+ var FillInputField = (0, import_react44.memo)(
3601
+ (0, import_react44.forwardRef)(function FillInputField2({ id, value, flex, ...rest }, ref) {
3602
+ return /* @__PURE__ */ import_react44.default.createElement(Container, { ref, id, $flex: flex, ...rest }, /* @__PURE__ */ import_react44.default.createElement(FillPreviewBackground, { value }));
3558
3603
  })
3559
3604
  );
3560
3605
 
3561
3606
  // src/components/FloatingWindow.tsx
3562
- var import_react44 = __toESM(require("react"));
3607
+ var import_react45 = __toESM(require("react"));
3563
3608
  var styles2 = {
3564
3609
  noSelect: {
3565
3610
  userSelect: "none",
@@ -3652,7 +3697,7 @@ function defaultRenderToolbar({
3652
3697
  toolbarContent,
3653
3698
  onClose
3654
3699
  }) {
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(
3700
+ 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
3701
  IconButton,
3657
3702
  {
3658
3703
  iconName: "Cross3Icon",
@@ -3677,16 +3722,16 @@ var FloatingWindow = ({
3677
3722
  toolbarContent,
3678
3723
  renderToolbar = defaultRenderToolbar
3679
3724
  }) => {
3680
- const [position, setPosition] = (0, import_react44.useState)({ x: initialX, y: initialY });
3681
- const [size2, setSize] = (0, import_react44.useState)({
3725
+ const [position, setPosition] = (0, import_react45.useState)({ x: initialX, y: initialY });
3726
+ const [size2, setSize] = (0, import_react45.useState)({
3682
3727
  width: initialWidth,
3683
3728
  height: initialHeight
3684
3729
  });
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);
3730
+ const [isDragging, setIsDragging] = (0, import_react45.useState)(false);
3731
+ const [isResizing, setIsResizing] = (0, import_react45.useState)(false);
3732
+ const [dragOffset, setDragOffset] = (0, import_react45.useState)({ x: 0, y: 0 });
3733
+ const [resizeDirection, setResizeDirection] = (0, import_react45.useState)(null);
3734
+ const wrapperRef = (0, import_react45.useRef)(null);
3690
3735
  const toggleGlobalTextSelection = (disable) => {
3691
3736
  if (disable) {
3692
3737
  document.body.style.userSelect = "none";
@@ -3694,7 +3739,7 @@ var FloatingWindow = ({
3694
3739
  document.body.style.userSelect = "";
3695
3740
  }
3696
3741
  };
3697
- const handleMouseDown = (0, import_react44.useCallback)((e) => {
3742
+ const handleMouseDown = (0, import_react45.useCallback)((e) => {
3698
3743
  if (!wrapperRef.current)
3699
3744
  return;
3700
3745
  const rect = wrapperRef.current.getBoundingClientRect();
@@ -3704,7 +3749,7 @@ var FloatingWindow = ({
3704
3749
  });
3705
3750
  setIsDragging(true);
3706
3751
  }, []);
3707
- const handleResizeStart = (0, import_react44.useCallback)(
3752
+ const handleResizeStart = (0, import_react45.useCallback)(
3708
3753
  (direction) => (e) => {
3709
3754
  e.stopPropagation();
3710
3755
  setIsResizing(true);
@@ -3713,7 +3758,7 @@ var FloatingWindow = ({
3713
3758
  },
3714
3759
  []
3715
3760
  );
3716
- const handleMouseMove = (0, import_react44.useCallback)(
3761
+ const handleMouseMove = (0, import_react45.useCallback)(
3717
3762
  (e) => {
3718
3763
  if (isDragging) {
3719
3764
  setPosition({
@@ -3767,13 +3812,13 @@ var FloatingWindow = ({
3767
3812
  minHeight
3768
3813
  ]
3769
3814
  );
3770
- const handleMouseUp = (0, import_react44.useCallback)((e) => {
3815
+ const handleMouseUp = (0, import_react45.useCallback)((e) => {
3771
3816
  setIsDragging(false);
3772
3817
  setIsResizing(false);
3773
3818
  setResizeDirection(null);
3774
3819
  toggleGlobalTextSelection(false);
3775
3820
  }, []);
3776
- import_react44.default.useEffect(() => {
3821
+ import_react45.default.useEffect(() => {
3777
3822
  document.addEventListener("mousemove", handleMouseMove);
3778
3823
  document.addEventListener("mouseup", handleMouseUp);
3779
3824
  return () => {
@@ -3784,12 +3829,12 @@ var FloatingWindow = ({
3784
3829
  const theme = useDesignSystemTheme();
3785
3830
  const floatingWindowManager = useFloatingWindowManager();
3786
3831
  const currentFloatingWindow = useCurrentFloatingWindowInternal();
3787
- const handleClose = (0, import_react44.useCallback)(() => {
3832
+ const handleClose = (0, import_react45.useCallback)(() => {
3788
3833
  if (onClose)
3789
3834
  onClose();
3790
3835
  floatingWindowManager.closeWindow(currentFloatingWindow.id);
3791
3836
  }, [currentFloatingWindow.id, floatingWindowManager, onClose]);
3792
- return /* @__PURE__ */ import_react44.default.createElement(
3837
+ return /* @__PURE__ */ import_react45.default.createElement(
3793
3838
  "div",
3794
3839
  {
3795
3840
  ref: wrapperRef,
@@ -3803,7 +3848,7 @@ var FloatingWindow = ({
3803
3848
  backgroundColor: theme.colors.canvas.background
3804
3849
  }
3805
3850
  },
3806
- /* @__PURE__ */ import_react44.default.createElement(
3851
+ /* @__PURE__ */ import_react45.default.createElement(
3807
3852
  "div",
3808
3853
  {
3809
3854
  style: {
@@ -3814,9 +3859,9 @@ var FloatingWindow = ({
3814
3859
  },
3815
3860
  renderToolbar({ title, toolbarContent, onClose: handleClose })
3816
3861
  ),
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(
3862
+ /* @__PURE__ */ import_react45.default.createElement(Divider, null),
3863
+ /* @__PURE__ */ import_react45.default.createElement("div", { style: styles2.content }, children),
3864
+ Object.entries(resizeHandlePositions).map(([direction, style3]) => /* @__PURE__ */ import_react45.default.createElement(
3820
3865
  "div",
3821
3866
  {
3822
3867
  key: direction,
@@ -3829,8 +3874,8 @@ var FloatingWindow = ({
3829
3874
 
3830
3875
  // src/components/GradientPicker.tsx
3831
3876
  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({
3877
+ var import_react46 = __toESM(require("react"));
3878
+ var GradientPicker = (0, import_react46.memo)(function GradientPicker2({
3834
3879
  value,
3835
3880
  selectedStop,
3836
3881
  onChangeColor,
@@ -3839,7 +3884,7 @@ var GradientPicker = (0, import_react45.memo)(function GradientPicker2({
3839
3884
  onDelete,
3840
3885
  onSelectStop
3841
3886
  }) {
3842
- const colorModel = (0, import_react45.useMemo)(
3887
+ const colorModel = (0, import_react46.useMemo)(
3843
3888
  () => ({
3844
3889
  defaultColor: { r: 0, g: 0, b: 0, a: 1 },
3845
3890
  toHsva: import_noya_colorpicker2.rgbaToHsva,
@@ -3848,30 +3893,30 @@ var GradientPicker = (0, import_react45.memo)(function GradientPicker2({
3848
3893
  }),
3849
3894
  []
3850
3895
  );
3851
- const rgbaColor = (0, import_react45.useMemo)(
3896
+ const rgbaColor = (0, import_react46.useMemo)(
3852
3897
  () => sketchColorToRgba(value[selectedStop].color),
3853
3898
  [value, selectedStop]
3854
3899
  );
3855
- const handleChangeColor = (0, import_react45.useCallback)(
3900
+ const handleChangeColor = (0, import_react46.useCallback)(
3856
3901
  (value2) => {
3857
3902
  onChangeColor(rgbaToSketchColor(value2));
3858
3903
  },
3859
3904
  [onChangeColor]
3860
3905
  );
3861
- const handleAddGradientStop = (0, import_react45.useCallback)(
3906
+ const handleAddGradientStop = (0, import_react46.useCallback)(
3862
3907
  (value2, position) => {
3863
3908
  onAdd(rgbaToSketchColor(value2), position);
3864
3909
  },
3865
3910
  [onAdd]
3866
3911
  );
3867
- return /* @__PURE__ */ import_react45.default.createElement(
3912
+ return /* @__PURE__ */ import_react46.default.createElement(
3868
3913
  import_noya_colorpicker2.ColorPicker,
3869
3914
  {
3870
3915
  onChange: handleChangeColor,
3871
3916
  colorModel,
3872
3917
  color: rgbaColor
3873
3918
  },
3874
- /* @__PURE__ */ import_react45.default.createElement(
3919
+ /* @__PURE__ */ import_react46.default.createElement(
3875
3920
  import_noya_colorpicker2.Gradient,
3876
3921
  {
3877
3922
  gradients: value,
@@ -3882,12 +3927,12 @@ var GradientPicker = (0, import_react45.memo)(function GradientPicker2({
3882
3927
  onDelete
3883
3928
  }
3884
3929
  ),
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)
3930
+ /* @__PURE__ */ import_react46.default.createElement(Spacer.Vertical, { size: 10 }),
3931
+ /* @__PURE__ */ import_react46.default.createElement(import_noya_colorpicker2.Saturation, null),
3932
+ /* @__PURE__ */ import_react46.default.createElement(Spacer.Vertical, { size: 12 }),
3933
+ /* @__PURE__ */ import_react46.default.createElement(import_noya_colorpicker2.Hue, null),
3934
+ /* @__PURE__ */ import_react46.default.createElement(Spacer.Vertical, { size: 5 }),
3935
+ /* @__PURE__ */ import_react46.default.createElement(import_noya_colorpicker2.Alpha, null)
3891
3936
  );
3892
3937
  });
3893
3938
 
@@ -3919,12 +3964,12 @@ var Grid = import_styled_components22.default.div((props) => ({
3919
3964
  }));
3920
3965
 
3921
3966
  // src/components/GridView.tsx
3922
- var import_react47 = __toESM(require("react"));
3967
+ var import_react48 = __toESM(require("react"));
3923
3968
  var import_styled_components24 = __toESM(require("styled-components"));
3924
3969
 
3925
3970
  // src/components/ScrollArea.tsx
3926
3971
  var RadixScrollArea = __toESM(require("@radix-ui/react-scroll-area"));
3927
- var import_react46 = __toESM(require("react"));
3972
+ var import_react47 = __toESM(require("react"));
3928
3973
  var import_styled_components23 = __toESM(require("styled-components"));
3929
3974
  var SCROLLBAR_SIZE = 10;
3930
3975
  var StyledViewport = (0, import_styled_components23.default)(RadixScrollArea.Viewport)({
@@ -3952,18 +3997,18 @@ var Container2 = import_styled_components23.default.div({
3952
3997
  flex: "1 1 0px",
3953
3998
  minHeight: 0
3954
3999
  });
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(
4000
+ var ScrollArea = (0, import_react47.memo)(function ScrollArea2({ children }) {
4001
+ const [scrollElementRef, setScrollElementRef] = (0, import_react47.useState)(null);
4002
+ 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
4003
  StyledViewport,
3959
4004
  {
3960
- ref: (0, import_react46.useCallback)(
4005
+ ref: (0, import_react47.useCallback)(
3961
4006
  (ref) => setScrollElementRef(ref),
3962
4007
  []
3963
4008
  )
3964
4009
  },
3965
4010
  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" }))));
4011
+ ), /* @__PURE__ */ import_react47.default.createElement(StyledScrollbar, { orientation: "vertical", className: "scroll-component" }, /* @__PURE__ */ import_react47.default.createElement(StyledThumb, { className: "scroll-component" }))));
3967
4012
  });
3968
4013
 
3969
4014
  // src/components/GridView.tsx
@@ -4143,7 +4188,7 @@ var Shimmer = import_styled_components24.default.div`
4143
4188
  align-items: end;
4144
4189
  padding: 4px;
4145
4190
  `;
4146
- var GridViewItem = (0, import_react47.forwardRef)(function GridViewItem2({
4191
+ var GridViewItem = (0, import_react48.forwardRef)(function GridViewItem2({
4147
4192
  id,
4148
4193
  title,
4149
4194
  subtitle,
@@ -4159,15 +4204,15 @@ var GridViewItem = (0, import_react47.forwardRef)(function GridViewItem2({
4159
4204
  onContextMenu,
4160
4205
  style: style3
4161
4206
  }, forwardedRef) {
4162
- const [hovered, setHovered] = import_react47.default.useState(false);
4207
+ const [hovered, setHovered] = import_react48.default.useState(false);
4163
4208
  const { hoverProps } = useHover({
4164
4209
  onHoverChange: (isHovering) => {
4165
4210
  onHoverChange?.(isHovering);
4166
4211
  setHovered(isHovering);
4167
4212
  }
4168
4213
  });
4169
- const { textPosition, bordered, disabled } = (0, import_react47.useContext)(GridViewContext);
4170
- const handleClick = (0, import_react47.useCallback)(
4214
+ const { textPosition, bordered, disabled } = (0, import_react48.useContext)(GridViewContext);
4215
+ const handleClick = (0, import_react48.useCallback)(
4171
4216
  (event) => {
4172
4217
  event.stopPropagation();
4173
4218
  event.preventDefault();
@@ -4176,7 +4221,7 @@ var GridViewItem = (0, import_react47.forwardRef)(function GridViewItem2({
4176
4221
  },
4177
4222
  [onClick, onPress]
4178
4223
  );
4179
- const handleKeyDown = (0, import_react47.useCallback)(
4224
+ const handleKeyDown = (0, import_react48.useCallback)(
4180
4225
  (event) => {
4181
4226
  if (event.key === "Enter" || event.key === " ") {
4182
4227
  event.stopPropagation();
@@ -4188,7 +4233,7 @@ var GridViewItem = (0, import_react47.forwardRef)(function GridViewItem2({
4188
4233
  },
4189
4234
  [onPress]
4190
4235
  );
4191
- let element = /* @__PURE__ */ import_react47.default.createElement(
4236
+ let element = /* @__PURE__ */ import_react48.default.createElement(
4192
4237
  ItemContainer,
4193
4238
  {
4194
4239
  id,
@@ -4197,7 +4242,7 @@ var GridViewItem = (0, import_react47.forwardRef)(function GridViewItem2({
4197
4242
  tabIndex: disabled ? void 0 : 0,
4198
4243
  onKeyDown: handleKeyDown
4199
4244
  },
4200
- /* @__PURE__ */ import_react47.default.createElement(
4245
+ /* @__PURE__ */ import_react48.default.createElement(
4201
4246
  ContentContainer,
4202
4247
  {
4203
4248
  disabled,
@@ -4211,25 +4256,25 @@ var GridViewItem = (0, import_react47.forwardRef)(function GridViewItem2({
4211
4256
  },
4212
4257
  children
4213
4258
  ),
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 }))
4259
+ 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 || " ")),
4260
+ 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)),
4261
+ loading && /* @__PURE__ */ import_react48.default.createElement(Shimmer, null, /* @__PURE__ */ import_react48.default.createElement(ActivityIndicator, { opacity: 0.5, size: 13 }))
4217
4262
  );
4218
4263
  if (menuItems && onSelectMenuItem) {
4219
- element = /* @__PURE__ */ import_react47.default.createElement(ContextMenu, { items: menuItems, onSelect: onSelectMenuItem }, element);
4264
+ element = /* @__PURE__ */ import_react48.default.createElement(ContextMenu, { items: menuItems, onSelect: onSelectMenuItem }, element);
4220
4265
  }
4221
4266
  if (textPosition === "toolip") {
4222
- element = /* @__PURE__ */ import_react47.default.createElement(
4267
+ element = /* @__PURE__ */ import_react48.default.createElement(
4223
4268
  Tooltip,
4224
4269
  {
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))
4270
+ 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
4271
  },
4227
4272
  element
4228
4273
  );
4229
4274
  }
4230
4275
  return element;
4231
4276
  });
4232
- var GridViewContext = (0, import_react47.createContext)({
4277
+ var GridViewContext = (0, import_react48.createContext)({
4233
4278
  size: "small",
4234
4279
  textPosition: "below",
4235
4280
  bordered: false,
@@ -4244,7 +4289,7 @@ function GridViewRoot({
4244
4289
  bordered = false,
4245
4290
  disabled = false
4246
4291
  }) {
4247
- const handleClick = (0, import_react47.useCallback)(
4292
+ const handleClick = (0, import_react48.useCallback)(
4248
4293
  (event) => {
4249
4294
  event.stopPropagation();
4250
4295
  event.preventDefault();
@@ -4252,7 +4297,7 @@ function GridViewRoot({
4252
4297
  },
4253
4298
  [onClick]
4254
4299
  );
4255
- const contextValue = (0, import_react47.useMemo)(
4300
+ const contextValue = (0, import_react48.useMemo)(
4256
4301
  () => ({
4257
4302
  size: size2,
4258
4303
  textPosition,
@@ -4261,33 +4306,33 @@ function GridViewRoot({
4261
4306
  }),
4262
4307
  [bordered, disabled, size2, textPosition]
4263
4308
  );
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));
4309
+ 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
4310
  }
4266
4311
  function GridViewSection({
4267
4312
  children,
4268
4313
  padding = "20px"
4269
4314
  }) {
4270
- const { size: size2 } = (0, import_react47.useContext)(GridViewContext);
4271
- return /* @__PURE__ */ import_react47.default.createElement(Grid2, { size: size2, padding }, children);
4315
+ const { size: size2 } = (0, import_react48.useContext)(GridViewContext);
4316
+ return /* @__PURE__ */ import_react48.default.createElement(Grid2, { size: size2, padding }, children);
4272
4317
  }
4273
4318
  function GridViewSectionHeader({ title }) {
4274
4319
  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, " / ")
4320
+ return /* @__PURE__ */ import_react48.default.createElement(SectionHeaderContainer, null, /* @__PURE__ */ import_react48.default.createElement(Spacer.Vertical, { size: 24 }), withSeparatorElements(
4321
+ grouped.map((title2, index) => /* @__PURE__ */ import_react48.default.createElement(SectionTitle, { last: index === grouped.length - 1 }, title2)),
4322
+ /* @__PURE__ */ import_react48.default.createElement(SectionTitle, null, " / ")
4278
4323
  ));
4279
4324
  }
4280
4325
  var GridView;
4281
4326
  ((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);
4327
+ GridView2.Root = (0, import_react48.memo)(GridViewRoot);
4328
+ GridView2.Item = (0, import_react48.memo)(GridViewItem);
4329
+ GridView2.Section = (0, import_react48.memo)(GridViewSection);
4330
+ GridView2.SectionHeader = (0, import_react48.memo)(GridViewSectionHeader);
4286
4331
  })(GridView || (GridView = {}));
4287
4332
 
4288
4333
  // src/components/InputFieldWithCompletions.tsx
4289
4334
  var import_noya_utils8 = require("@noya-app/noya-utils");
4290
- var import_react51 = __toESM(require("react"));
4335
+ var import_react52 = __toESM(require("react"));
4291
4336
  var import_styled_components27 = __toESM(require("styled-components"));
4292
4337
 
4293
4338
  // src/utils/fuzzyScorer.ts
@@ -4364,7 +4409,7 @@ function mergeRanges(ranges) {
4364
4409
  // src/components/ListView.tsx
4365
4410
  var import_noya_utils7 = require("@noya-app/noya-utils");
4366
4411
  var import_react_compose_refs2 = require("@radix-ui/react-compose-refs");
4367
- var import_react49 = __toESM(require("react"));
4412
+ var import_react50 = __toESM(require("react"));
4368
4413
  var import_react_virtualized = require("react-virtualized");
4369
4414
  var import_react_window = require("react-window");
4370
4415
  var import_styled_components25 = __toESM(require("styled-components"));
@@ -4395,7 +4440,7 @@ function mergeEventHandlers(...handlerMaps) {
4395
4440
  // src/components/Sortable.tsx
4396
4441
  var import_core = require("@dnd-kit/core");
4397
4442
  var import_sortable = require("@dnd-kit/sortable");
4398
- var import_react48 = __toESM(require("react"));
4443
+ var import_react49 = __toESM(require("react"));
4399
4444
  var import_react_dom2 = require("react-dom");
4400
4445
  var normalizeListDestinationIndex = (index, position) => {
4401
4446
  return position === "above" ? index : index + 1;
@@ -4409,7 +4454,7 @@ var defaultAcceptsDrop = (sourceIndex, destinationIndex, position) => {
4409
4454
  }
4410
4455
  return true;
4411
4456
  };
4412
- var SortableItemContext = (0, import_react48.createContext)({
4457
+ var SortableItemContext = (0, import_react49.createContext)({
4413
4458
  keys: [],
4414
4459
  position: { x: 0, y: 0 },
4415
4460
  acceptsDrop: defaultAcceptsDrop,
@@ -4431,7 +4476,7 @@ function SortableItem({
4431
4476
  disabled,
4432
4477
  children
4433
4478
  }) {
4434
- const { keys, position, acceptsDrop, setActivatorEvent, axis } = (0, import_react48.useContext)(SortableItemContext);
4479
+ const { keys, position, acceptsDrop, setActivatorEvent, axis } = (0, import_react49.useContext)(SortableItemContext);
4435
4480
  const sortable = (0, import_sortable.useSortable)({ id, disabled });
4436
4481
  const {
4437
4482
  active,
@@ -4451,7 +4496,7 @@ function SortableItem({
4451
4496
  const eventY = activatorEvent?.clientY ?? 0;
4452
4497
  const offsetLeft = eventX + position.x;
4453
4498
  const offsetTop = eventY + position.y;
4454
- const ref = (0, import_react48.useCallback)((node) => setNodeRef(node), [setNodeRef]);
4499
+ const ref = (0, import_react49.useCallback)((node) => setNodeRef(node), [setNodeRef]);
4455
4500
  return children({
4456
4501
  ref,
4457
4502
  ...attributes,
@@ -4482,22 +4527,22 @@ function SortableRoot({
4482
4527
  }
4483
4528
  })
4484
4529
  );
4485
- const [activeIndex, setActiveIndex] = (0, import_react48.useState)();
4486
- const activatorEvent = (0, import_react48.useRef)(null);
4487
- const setActivatorEvent = (0, import_react48.useCallback)((event) => {
4530
+ const [activeIndex, setActiveIndex] = (0, import_react49.useState)();
4531
+ const activatorEvent = (0, import_react49.useRef)(null);
4532
+ const setActivatorEvent = (0, import_react49.useCallback)((event) => {
4488
4533
  activatorEvent.current = event;
4489
4534
  }, []);
4490
- const [position, setPosition] = (0, import_react48.useState)({ x: 0, y: 0 });
4491
- const handleDragStart = (0, import_react48.useCallback)(
4535
+ const [position, setPosition] = (0, import_react49.useState)({ x: 0, y: 0 });
4536
+ const handleDragStart = (0, import_react49.useCallback)(
4492
4537
  (event) => {
4493
4538
  setActiveIndex(keys.indexOf(event.active.id));
4494
4539
  },
4495
4540
  [keys]
4496
4541
  );
4497
- const handleDragMove = (0, import_react48.useCallback)((event) => {
4542
+ const handleDragMove = (0, import_react49.useCallback)((event) => {
4498
4543
  setPosition({ ...event.delta });
4499
4544
  }, []);
4500
- const handleDragEnd = (0, import_react48.useCallback)(
4545
+ const handleDragEnd = (0, import_react49.useCallback)(
4501
4546
  (event) => {
4502
4547
  const { active, over } = event;
4503
4548
  setActiveIndex(void 0);
@@ -4524,14 +4569,14 @@ function SortableRoot({
4524
4569
  },
4525
4570
  [acceptsDrop, axis, keys, onMoveItem, position.x, position.y]
4526
4571
  );
4527
- const [mounted, setMounted] = (0, import_react48.useState)(false);
4528
- (0, import_react48.useEffect)(() => {
4572
+ const [mounted, setMounted] = (0, import_react49.useState)(false);
4573
+ (0, import_react49.useEffect)(() => {
4529
4574
  setMounted(true);
4530
4575
  }, []);
4531
- return /* @__PURE__ */ import_react48.default.createElement(
4576
+ return /* @__PURE__ */ import_react49.default.createElement(
4532
4577
  SortableItemContext.Provider,
4533
4578
  {
4534
- value: (0, import_react48.useMemo)(
4579
+ value: (0, import_react49.useMemo)(
4535
4580
  () => ({
4536
4581
  keys,
4537
4582
  acceptsDrop,
@@ -4542,7 +4587,7 @@ function SortableRoot({
4542
4587
  [acceptsDrop, axis, keys, position, setActivatorEvent]
4543
4588
  )
4544
4589
  },
4545
- /* @__PURE__ */ import_react48.default.createElement(
4590
+ /* @__PURE__ */ import_react49.default.createElement(
4546
4591
  import_core.DndContext,
4547
4592
  {
4548
4593
  sensors,
@@ -4551,9 +4596,9 @@ function SortableRoot({
4551
4596
  onDragMove: handleDragMove,
4552
4597
  onDragEnd: handleDragEnd
4553
4598
  },
4554
- /* @__PURE__ */ import_react48.default.createElement(import_sortable.SortableContext, { items: keys, strategy: import_sortable.verticalListSortingStrategy }, children),
4599
+ /* @__PURE__ */ import_react49.default.createElement(import_sortable.SortableContext, { items: keys, strategy: import_sortable.verticalListSortingStrategy }, children),
4555
4600
  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)),
4601
+ /* @__PURE__ */ import_react49.default.createElement(import_core.DragOverlay, { dropAnimation: null }, activeIndex !== void 0 && activeIndex >= 0 && renderOverlay(activeIndex)),
4557
4602
  document.body
4558
4603
  )
4559
4604
  )
@@ -4561,17 +4606,18 @@ function SortableRoot({
4561
4606
  }
4562
4607
  var Sortable;
4563
4608
  ((Sortable2) => {
4564
- Sortable2.Item = (0, import_react48.memo)(SortableItem);
4565
- Sortable2.Root = (0, import_react48.memo)(SortableRoot);
4609
+ Sortable2.Item = (0, import_react49.memo)(SortableItem);
4610
+ Sortable2.Root = (0, import_react49.memo)(SortableRoot);
4566
4611
  })(Sortable || (Sortable = {}));
4567
4612
 
4568
4613
  // src/components/ListView.tsx
4569
4614
  var ROW_HEIGHT = 31;
4570
4615
  var SECTION_HEADER_LABEL_HEIGHT = 27;
4571
- var DraggingContext = (0, import_react49.createContext)({
4616
+ var ListViewDraggingContext = (0, import_react50.createContext)({
4572
4617
  indentation: 12
4573
4618
  });
4574
- var ListRowContext = (0, import_react49.createContext)({
4619
+ ListViewDraggingContext.displayName = "ListViewDraggingContext";
4620
+ var ListRowContext = (0, import_react50.createContext)({
4575
4621
  marginType: "none",
4576
4622
  selectedPosition: "only",
4577
4623
  sortable: false,
@@ -4584,6 +4630,7 @@ var ListRowContext = (0, import_react49.createContext)({
4584
4630
  isSectionHeader: false,
4585
4631
  colorScheme: "primary"
4586
4632
  });
4633
+ ListRowContext.displayName = "ListRowContext";
4587
4634
  var ListViewRowTitle = import_styled_components25.default.span(({ theme }) => ({
4588
4635
  flex: "1 1 0",
4589
4636
  overflow: "hidden",
@@ -4601,8 +4648,8 @@ function ListViewEditableRowTitle({
4601
4648
  autoFocus,
4602
4649
  placeholder
4603
4650
  }) {
4604
- const inputRef = (0, import_react49.useRef)(null);
4605
- (0, import_react49.useLayoutEffect)(() => {
4651
+ const inputRef = (0, import_react50.useRef)(null);
4652
+ (0, import_react50.useLayoutEffect)(() => {
4606
4653
  const element = inputRef.current;
4607
4654
  if (!element || !autoFocus)
4608
4655
  return;
@@ -4611,7 +4658,7 @@ function ListViewEditableRowTitle({
4611
4658
  element.select();
4612
4659
  }, 0);
4613
4660
  }, [autoFocus]);
4614
- return /* @__PURE__ */ import_react49.default.createElement(
4661
+ return /* @__PURE__ */ import_react50.default.createElement(
4615
4662
  ListViewEditableRowTitleElement,
4616
4663
  {
4617
4664
  ref: inputRef,
@@ -4733,7 +4780,7 @@ var ListViewDragIndicatorElement = import_styled_components25.default.div(({ the
4733
4780
  boxShadow: "0 0 2px rgba(0,0,0,0.5)"
4734
4781
  }
4735
4782
  }));
4736
- var ListViewRow = (0, import_react49.forwardRef)(function ListViewRow2({
4783
+ var ListViewRow = (0, import_react50.forwardRef)(function ListViewRow2({
4737
4784
  id,
4738
4785
  tabIndex = 0,
4739
4786
  gap,
@@ -4767,12 +4814,12 @@ var ListViewRow = (0, import_react49.forwardRef)(function ListViewRow2({
4767
4814
  divider,
4768
4815
  gap: listGap,
4769
4816
  colorScheme
4770
- } = (0, import_react49.useContext)(ListRowContext);
4817
+ } = (0, import_react50.useContext)(ListRowContext);
4771
4818
  const { hoverProps } = useHover({
4772
4819
  onHoverChange
4773
4820
  });
4774
- const { indentation, isDragging } = (0, import_react49.useContext)(DraggingContext);
4775
- const handlePress = (0, import_react49.useCallback)(
4821
+ const { indentation, isDragging } = (0, import_react50.useContext)(ListViewDraggingContext);
4822
+ const handlePress = (0, import_react50.useCallback)(
4776
4823
  (event) => {
4777
4824
  event.preventDefault();
4778
4825
  if (event.button !== 0)
@@ -4781,14 +4828,14 @@ var ListViewRow = (0, import_react49.forwardRef)(function ListViewRow2({
4781
4828
  },
4782
4829
  [onPress]
4783
4830
  );
4784
- const handleDoubleClick = (0, import_react49.useCallback)(
4831
+ const handleDoubleClick = (0, import_react50.useCallback)(
4785
4832
  (event) => {
4786
4833
  event.stopPropagation();
4787
4834
  onDoubleClick?.();
4788
4835
  },
4789
4836
  [onDoubleClick]
4790
4837
  );
4791
- const mergedStyle = (0, import_react49.useMemo)(() => {
4838
+ const mergedStyle = (0, import_react50.useMemo)(() => {
4792
4839
  return isDragging ? {
4793
4840
  // TODO: Where do these offsets actually come from?
4794
4841
  transform: `translate3d(-36px, -6px, 0)`,
@@ -4801,7 +4848,7 @@ var ListViewRow = (0, import_react49.forwardRef)(function ListViewRow2({
4801
4848
  ...renderProps
4802
4849
  }, ref) => {
4803
4850
  const Component = RowContainer;
4804
- const element = /* @__PURE__ */ import_react49.default.createElement(
4851
+ const element = /* @__PURE__ */ import_react50.default.createElement(
4805
4852
  Component,
4806
4853
  {
4807
4854
  ref,
@@ -4832,7 +4879,7 @@ var ListViewRow = (0, import_react49.forwardRef)(function ListViewRow2({
4832
4879
  ),
4833
4880
  tabIndex
4834
4881
  },
4835
- relativeDropPosition && /* @__PURE__ */ import_react49.default.createElement(
4882
+ relativeDropPosition && /* @__PURE__ */ import_react50.default.createElement(
4836
4883
  ListViewDragIndicatorElement,
4837
4884
  {
4838
4885
  $colorScheme: colorScheme,
@@ -4846,11 +4893,11 @@ var ListViewRow = (0, import_react49.forwardRef)(function ListViewRow2({
4846
4893
  }) : dragIndicatorStyle
4847
4894
  }
4848
4895
  ),
4849
- depth > 0 && /* @__PURE__ */ import_react49.default.createElement(Spacer.Horizontal, { size: depth * indentation }),
4896
+ depth > 0 && /* @__PURE__ */ import_react50.default.createElement(Spacer.Horizontal, { size: depth * indentation }),
4850
4897
  children
4851
4898
  );
4852
4899
  if (menuItems && onSelectMenuItem) {
4853
- return /* @__PURE__ */ import_react49.default.createElement(
4900
+ return /* @__PURE__ */ import_react50.default.createElement(
4854
4901
  ContextMenu,
4855
4902
  {
4856
4903
  items: menuItems,
@@ -4863,24 +4910,25 @@ var ListViewRow = (0, import_react49.forwardRef)(function ListViewRow2({
4863
4910
  return element;
4864
4911
  };
4865
4912
  if (sortable && id) {
4866
- return /* @__PURE__ */ import_react49.default.createElement(Sortable.Item, { id, disabled: overrideSortable === false }, ({ ref: sortableRef, ...sortableProps }) => renderContent(
4913
+ return /* @__PURE__ */ import_react50.default.createElement(Sortable.Item, { id, disabled: overrideSortable === false }, ({ ref: sortableRef, ...sortableProps }) => renderContent(
4867
4914
  sortableProps,
4868
4915
  (0, import_react_compose_refs2.composeRefs)(sortableRef, forwardedRef)
4869
4916
  ));
4870
4917
  }
4871
4918
  return renderContent({}, forwardedRef);
4872
4919
  });
4873
- var RenderItemContext = (0, import_react49.createContext)(
4920
+ var RenderItemContext = (0, import_react50.createContext)(
4874
4921
  () => null
4875
4922
  );
4876
- var VirtualizedListRow = (0, import_react49.memo)(function VirtualizedListRow2({
4923
+ RenderItemContext.displayName = "RenderItemContext";
4924
+ var VirtualizedListRow = (0, import_react50.memo)(function VirtualizedListRow2({
4877
4925
  index,
4878
4926
  style: style3
4879
4927
  }) {
4880
- const renderItem = (0, import_react49.useContext)(RenderItemContext);
4881
- return /* @__PURE__ */ import_react49.default.createElement("div", { key: index, style: style3 }, renderItem(index));
4928
+ const renderItem = (0, import_react50.useContext)(RenderItemContext);
4929
+ return /* @__PURE__ */ import_react50.default.createElement("div", { key: index, style: style3 }, renderItem(index));
4882
4930
  });
4883
- var VirtualizedListInner = (0, import_react49.forwardRef)(function VirtualizedListInner2({
4931
+ var VirtualizedListInner = (0, import_react50.forwardRef)(function VirtualizedListInner2({
4884
4932
  size: size2,
4885
4933
  scrollElement,
4886
4934
  items,
@@ -4888,20 +4936,20 @@ var VirtualizedListInner = (0, import_react49.forwardRef)(function VirtualizedLi
4888
4936
  keyExtractor,
4889
4937
  renderItem
4890
4938
  }, ref) {
4891
- const listRef = (0, import_react49.useRef)(null);
4892
- (0, import_react49.useImperativeHandle)(ref, () => ({
4939
+ const listRef = (0, import_react50.useRef)(null);
4940
+ (0, import_react50.useImperativeHandle)(ref, () => ({
4893
4941
  scrollToIndex(index) {
4894
4942
  listRef.current?.scrollToItem(index);
4895
4943
  }
4896
4944
  }));
4897
- (0, import_react49.useLayoutEffect)(() => {
4945
+ (0, import_react50.useLayoutEffect)(() => {
4898
4946
  listRef.current?.resetAfterIndex(0);
4899
4947
  }, [
4900
4948
  // When items change, we need to re-render the virtualized list,
4901
4949
  // since it doesn't currently support row height changes
4902
4950
  items
4903
4951
  ]);
4904
- const listStyle = (0, import_react49.useMemo)(
4952
+ const listStyle = (0, import_react50.useMemo)(
4905
4953
  () => ({
4906
4954
  overflowX: "initial",
4907
4955
  overflowY: "initial",
@@ -4909,18 +4957,18 @@ var VirtualizedListInner = (0, import_react49.forwardRef)(function VirtualizedLi
4909
4957
  }),
4910
4958
  []
4911
4959
  );
4912
- return /* @__PURE__ */ import_react49.default.createElement(RenderItemContext.Provider, { value: renderItem }, /* @__PURE__ */ import_react49.default.createElement(
4960
+ return /* @__PURE__ */ import_react50.default.createElement(RenderItemContext.Provider, { value: renderItem }, /* @__PURE__ */ import_react50.default.createElement(
4913
4961
  import_react_virtualized.WindowScroller,
4914
4962
  {
4915
4963
  scrollElement,
4916
- style: (0, import_react49.useMemo)(() => ({ flex: "1 1 auto" }), [])
4964
+ style: (0, import_react50.useMemo)(() => ({ flex: "1 1 auto" }), [])
4917
4965
  },
4918
- (0, import_react49.useCallback)(
4966
+ (0, import_react50.useCallback)(
4919
4967
  ({
4920
4968
  registerChild,
4921
4969
  onChildScroll,
4922
4970
  scrollTop
4923
- }) => /* @__PURE__ */ import_react49.default.createElement("div", { ref: registerChild }, /* @__PURE__ */ import_react49.default.createElement(
4971
+ }) => /* @__PURE__ */ import_react50.default.createElement("div", { ref: registerChild }, /* @__PURE__ */ import_react50.default.createElement(
4924
4972
  import_react_window.VariableSizeList,
4925
4973
  {
4926
4974
  ref: listRef,
@@ -4950,7 +4998,7 @@ var VirtualizedListInner = (0, import_react49.forwardRef)(function VirtualizedLi
4950
4998
  )
4951
4999
  ));
4952
5000
  });
4953
- var VirtualizedList = (0, import_react49.memo)(
5001
+ var VirtualizedList = (0, import_react50.memo)(
4954
5002
  VirtualizedListInner
4955
5003
  );
4956
5004
  var RootContainer2 = import_styled_components25.default.div(({ theme, $scrollable, $gap }) => ({
@@ -4961,7 +5009,7 @@ var RootContainer2 = import_styled_components25.default.div(({ theme, $scrollabl
4961
5009
  color: theme.colors.textMuted,
4962
5010
  gap: $gap
4963
5011
  }));
4964
- var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInner2({
5012
+ var ListViewRootInner = (0, import_react50.forwardRef)(function ListViewRootInner2({
4965
5013
  id,
4966
5014
  className,
4967
5015
  style: style3,
@@ -4983,7 +5031,7 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
4983
5031
  colorScheme = "primary",
4984
5032
  gap = 0
4985
5033
  }, forwardedRef) {
4986
- const handleClick = (0, import_react49.useCallback)(
5034
+ const handleClick = (0, import_react50.useCallback)(
4987
5035
  (event) => {
4988
5036
  if (event.target instanceof HTMLElement && event.target.classList.contains("scroll-component"))
4989
5037
  return;
@@ -4993,19 +5041,37 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
4993
5041
  },
4994
5042
  [onPress]
4995
5043
  );
4996
- const renderChild = (0, import_react49.useCallback)(
5044
+ const renderChild = (0, import_react50.useCallback)(
4997
5045
  (index) => renderItem(data[index], index, { isDragging: false }),
4998
5046
  [data, renderItem]
4999
5047
  );
5000
- const getItemContextValue = (0, import_react49.useCallback)(
5048
+ const defaultContextValue = (0, import_react50.useMemo)(
5049
+ () => ({
5050
+ colorScheme,
5051
+ marginType: "none",
5052
+ selectedPosition: "only",
5053
+ sortable,
5054
+ expandable,
5055
+ divider,
5056
+ pressEventName,
5057
+ variant,
5058
+ gap,
5059
+ sectionHeaderVariant: "normal",
5060
+ isSectionHeader: false
5061
+ }),
5062
+ [colorScheme, sortable, expandable, divider, pressEventName, variant, gap]
5063
+ );
5064
+ const getItemContextValue = (0, import_react50.useCallback)(
5001
5065
  (i) => {
5066
+ if (variant === "bare" || variant === "normal")
5067
+ return defaultContextValue;
5002
5068
  const current = renderChild(i);
5003
- if (!(0, import_react49.isValidElement)(current))
5069
+ if (!(0, import_react50.isValidElement)(current))
5004
5070
  return;
5005
5071
  const prevChild = i - 1 >= 0 && renderChild(i - 1);
5006
5072
  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;
5073
+ const next = (0, import_react50.isValidElement)(nextChild) ? nextChild : void 0;
5074
+ const prev = (0, import_react50.isValidElement)(prevChild) ? prevChild : void 0;
5009
5075
  const hasMarginTop = !prev;
5010
5076
  const hasMarginBottom = !next || current.props.isSectionHeader || next && next.props.isSectionHeader;
5011
5077
  let marginType;
@@ -5045,6 +5111,8 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
5045
5111
  };
5046
5112
  },
5047
5113
  [
5114
+ variant,
5115
+ defaultContextValue,
5048
5116
  renderChild,
5049
5117
  data.length,
5050
5118
  colorScheme,
@@ -5052,31 +5120,30 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
5052
5120
  expandable,
5053
5121
  divider,
5054
5122
  pressEventName,
5055
- variant,
5056
5123
  sectionHeaderVariant,
5057
5124
  gap
5058
5125
  ]
5059
5126
  );
5060
- const draggingContextOverlayValue = (0, import_react49.useMemo)(
5127
+ const draggingContextOverlayValue = (0, import_react50.useMemo)(
5061
5128
  () => ({ indentation, isDragging: true }),
5062
5129
  [indentation]
5063
5130
  );
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 }))),
5131
+ const renderOverlay = (0, import_react50.useCallback)(
5132
+ (index) => /* @__PURE__ */ import_react50.default.createElement("div", { style: { opacity: 0.25 } }, /* @__PURE__ */ import_react50.default.createElement(ListViewDraggingContext.Provider, { value: draggingContextOverlayValue }, renderItem(data[index], index, { isDragging: true }))),
5066
5133
  [draggingContextOverlayValue, renderItem, data]
5067
5134
  );
5068
- const renderWrappedChild = (0, import_react49.useCallback)(
5135
+ const renderWrappedChild = (0, import_react50.useCallback)(
5069
5136
  (index) => {
5070
5137
  const contextValue = getItemContextValue(index);
5071
5138
  const current = renderChild(index);
5072
- if (!contextValue || !(0, import_react49.isValidElement)(current))
5139
+ if (!contextValue || !(0, import_react50.isValidElement)(current))
5073
5140
  return null;
5074
- return /* @__PURE__ */ import_react49.default.createElement(ListRowContext.Provider, { key: current.key, value: contextValue }, current);
5141
+ return /* @__PURE__ */ import_react50.default.createElement(ListRowContext.Provider, { key: current.key, value: contextValue }, current);
5075
5142
  },
5076
5143
  [getItemContextValue, renderChild]
5077
5144
  );
5078
- const ids = (0, import_react49.useMemo)(() => data.map(keyExtractor), [keyExtractor, data]);
5079
- const withSortable = (children) => sortable ? /* @__PURE__ */ import_react49.default.createElement(
5145
+ const ids = (0, import_react50.useMemo)(() => data.map(keyExtractor), [keyExtractor, data]);
5146
+ const withSortable = (children) => sortable ? /* @__PURE__ */ import_react50.default.createElement(
5080
5147
  Sortable.Root,
5081
5148
  {
5082
5149
  onMoveItem,
@@ -5086,8 +5153,8 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
5086
5153
  },
5087
5154
  children
5088
5155
  ) : children;
5089
- const withScrollable = (children) => scrollable ? /* @__PURE__ */ import_react49.default.createElement(ScrollArea, null, children) : children(null);
5090
- const getItemHeight = (0, import_react49.useCallback)(
5156
+ const withScrollable = (children) => scrollable ? /* @__PURE__ */ import_react50.default.createElement(ScrollArea, null, children) : children(null);
5157
+ const getItemHeight = (0, import_react50.useCallback)(
5091
5158
  (index) => {
5092
5159
  const child = getItemContextValue(index);
5093
5160
  const margin = child?.marginType ? getPositionMargin(child.marginType) : { top: 0, bottom: 0 };
@@ -5096,12 +5163,12 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
5096
5163
  },
5097
5164
  [getItemContextValue, variant]
5098
5165
  );
5099
- const getKey = (0, import_react49.useCallback)(
5166
+ const getKey = (0, import_react50.useCallback)(
5100
5167
  (index) => keyExtractor(data[index], index),
5101
5168
  [data, keyExtractor]
5102
5169
  );
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(
5170
+ const draggingContextValue = (0, import_react50.useMemo)(() => ({ indentation }), [indentation]);
5171
+ return /* @__PURE__ */ import_react50.default.createElement(ListViewDraggingContext.Provider, { value: draggingContextValue }, /* @__PURE__ */ import_react50.default.createElement(
5105
5172
  RootContainer2,
5106
5173
  {
5107
5174
  id,
@@ -5115,7 +5182,7 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
5115
5182
  },
5116
5183
  withScrollable(
5117
5184
  (scrollElementRef) => withSortable(
5118
- virtualized ? /* @__PURE__ */ import_react49.default.createElement(
5185
+ virtualized ? /* @__PURE__ */ import_react50.default.createElement(
5119
5186
  VirtualizedList,
5120
5187
  {
5121
5188
  ref: forwardedRef,
@@ -5131,42 +5198,42 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
5131
5198
  )
5132
5199
  ));
5133
5200
  });
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] : []
5201
+ var ListViewRoot = (0, import_react50.memo)(ListViewRootInner);
5202
+ var ChildrenListViewInner = (0, import_react50.forwardRef)(function ChildrenListViewInner2({ children, ...rest }, forwardedRef) {
5203
+ const items = (0, import_react50.useMemo)(
5204
+ () => import_react50.Children.toArray(children).flatMap(
5205
+ (child) => (0, import_react50.isValidElement)(child) ? [child] : []
5139
5206
  ),
5140
5207
  [children]
5141
5208
  );
5142
- return /* @__PURE__ */ import_react49.default.createElement(
5209
+ return /* @__PURE__ */ import_react50.default.createElement(
5143
5210
  ListViewRoot,
5144
5211
  {
5145
5212
  ref: forwardedRef,
5146
5213
  ...rest,
5147
5214
  data: items,
5148
- keyExtractor: (0, import_react49.useCallback)(
5215
+ keyExtractor: (0, import_react50.useCallback)(
5149
5216
  ({ key }, index) => typeof key === "string" ? key : (key ?? index).toString(),
5150
5217
  []
5151
5218
  ),
5152
- renderItem: (0, import_react49.useCallback)((item) => item, [])
5219
+ renderItem: (0, import_react50.useCallback)((item) => item, [])
5153
5220
  }
5154
5221
  );
5155
5222
  });
5156
- var ChildrenListView = (0, import_react49.memo)(ChildrenListViewInner);
5157
- var SimpleListViewInner = (0, import_react49.forwardRef)(function SimpleListViewInner2(props, forwardedRef) {
5223
+ var ChildrenListView = (0, import_react50.memo)(ChildrenListViewInner);
5224
+ var SimpleListViewInner = (0, import_react50.forwardRef)(function SimpleListViewInner2(props, forwardedRef) {
5158
5225
  if ("children" in props) {
5159
- return /* @__PURE__ */ import_react49.default.createElement(ChildrenListView, { ref: forwardedRef, ...props });
5226
+ return /* @__PURE__ */ import_react50.default.createElement(ChildrenListView, { ref: forwardedRef, ...props });
5160
5227
  } else {
5161
- return /* @__PURE__ */ import_react49.default.createElement(ListViewRoot, { ref: forwardedRef, ...props });
5228
+ return /* @__PURE__ */ import_react50.default.createElement(ListViewRoot, { ref: forwardedRef, ...props });
5162
5229
  }
5163
5230
  });
5164
- var SimpleListView = (0, import_react49.memo)(SimpleListViewInner);
5231
+ var SimpleListView = (0, import_react50.memo)(SimpleListViewInner);
5165
5232
  var ListView;
5166
5233
  ((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);
5234
+ ListView2.RowTitle = (0, import_react50.memo)(ListViewRowTitle);
5235
+ ListView2.EditableRowTitle = (0, import_react50.memo)(ListViewEditableRowTitle);
5236
+ ListView2.Row = (0, import_react50.memo)(ListViewRow);
5170
5237
  ListView2.Root = SimpleListView;
5171
5238
  ListView2.RowContext = ListRowContext;
5172
5239
  ListView2.DragIndicator = ListViewDragIndicatorElement;
@@ -5179,7 +5246,7 @@ var ListView;
5179
5246
  })(ListView || (ListView = {}));
5180
5247
 
5181
5248
  // src/components/Text.tsx
5182
- var import_react50 = __toESM(require("react"));
5249
+ var import_react51 = __toESM(require("react"));
5183
5250
  var import_styled_components26 = __toESM(require("styled-components"));
5184
5251
  var elements = {
5185
5252
  title: "h1",
@@ -5201,7 +5268,7 @@ var StyledElement = import_styled_components26.default.span(({ theme, $variant,
5201
5268
  ...$styleProps,
5202
5269
  ...mergeBreakpoints($breakpoints || [])
5203
5270
  }));
5204
- var Text = (0, import_react50.forwardRef)(function Text2({
5271
+ var Text = (0, import_react51.forwardRef)(function Text2({
5205
5272
  as,
5206
5273
  variant,
5207
5274
  breakpoints,
@@ -5215,7 +5282,7 @@ var Text = (0, import_react50.forwardRef)(function Text2({
5215
5282
  ...rest
5216
5283
  }, forwardedRef) {
5217
5284
  const element = as ?? elements[variant] ?? "span";
5218
- return /* @__PURE__ */ import_react50.default.createElement(
5285
+ return /* @__PURE__ */ import_react51.default.createElement(
5219
5286
  StyledElement,
5220
5287
  {
5221
5288
  ref: forwardedRef,
@@ -5233,28 +5300,28 @@ var Text = (0, import_react50.forwardRef)(function Text2({
5233
5300
  children
5234
5301
  );
5235
5302
  });
5236
- var Heading1 = (0, import_react50.forwardRef)(
5237
- (props, ref) => /* @__PURE__ */ import_react50.default.createElement(Text, { ref, ...props, variant: "heading1" })
5303
+ var Heading1 = (0, import_react51.forwardRef)(
5304
+ (props, ref) => /* @__PURE__ */ import_react51.default.createElement(Text, { ref, ...props, variant: "heading1" })
5238
5305
  );
5239
- var Heading2 = (0, import_react50.forwardRef)(
5240
- (props, ref) => /* @__PURE__ */ import_react50.default.createElement(Text, { ref, ...props, variant: "heading2" })
5306
+ var Heading2 = (0, import_react51.forwardRef)(
5307
+ (props, ref) => /* @__PURE__ */ import_react51.default.createElement(Text, { ref, ...props, variant: "heading2" })
5241
5308
  );
5242
- var Heading3 = (0, import_react50.forwardRef)(
5243
- (props, ref) => /* @__PURE__ */ import_react50.default.createElement(Text, { ref, ...props, variant: "heading3" })
5309
+ var Heading3 = (0, import_react51.forwardRef)(
5310
+ (props, ref) => /* @__PURE__ */ import_react51.default.createElement(Text, { ref, ...props, variant: "heading3" })
5244
5311
  );
5245
- var Heading4 = (0, import_react50.forwardRef)(
5246
- (props, ref) => /* @__PURE__ */ import_react50.default.createElement(Text, { ref, ...props, variant: "heading4" })
5312
+ var Heading4 = (0, import_react51.forwardRef)(
5313
+ (props, ref) => /* @__PURE__ */ import_react51.default.createElement(Text, { ref, ...props, variant: "heading4" })
5247
5314
  );
5248
- var Heading5 = (0, import_react50.forwardRef)(
5249
- (props, ref) => /* @__PURE__ */ import_react50.default.createElement(Text, { ref, ...props, variant: "heading5" })
5315
+ var Heading5 = (0, import_react51.forwardRef)(
5316
+ (props, ref) => /* @__PURE__ */ import_react51.default.createElement(Text, { ref, ...props, variant: "heading5" })
5250
5317
  );
5251
- var Body = (0, import_react50.forwardRef)(
5252
- (props, ref) => /* @__PURE__ */ import_react50.default.createElement(Text, { ref, ...props, variant: "body" })
5318
+ var Body = (0, import_react51.forwardRef)(
5319
+ (props, ref) => /* @__PURE__ */ import_react51.default.createElement(Text, { ref, ...props, variant: "body" })
5253
5320
  );
5254
- var Small = (0, import_react50.forwardRef)(
5255
- (props, ref) => /* @__PURE__ */ import_react50.default.createElement(Text, { ref, ...props, variant: "small" })
5321
+ var Small = (0, import_react51.forwardRef)(
5322
+ (props, ref) => /* @__PURE__ */ import_react51.default.createElement(Text, { ref, ...props, variant: "small" })
5256
5323
  );
5257
- var Italic = ({ children }) => /* @__PURE__ */ import_react50.default.createElement(
5324
+ var Italic = ({ children }) => /* @__PURE__ */ import_react51.default.createElement(
5258
5325
  "span",
5259
5326
  {
5260
5327
  style: {
@@ -5296,15 +5363,15 @@ var CompletionToken = import_styled_components27.default.span(
5296
5363
  whiteSpace: "pre"
5297
5364
  })
5298
5365
  );
5299
- var CompletionMenu = (0, import_react51.memo)(
5300
- (0, import_react51.forwardRef)(function CompletionMenu2({
5366
+ var CompletionMenu = (0, import_react52.memo)(
5367
+ (0, import_react52.forwardRef)(function CompletionMenu2({
5301
5368
  items,
5302
5369
  selectedIndex,
5303
5370
  onSelectItem,
5304
5371
  onHoverIndex,
5305
5372
  listSize
5306
5373
  }, forwardedRef) {
5307
- return /* @__PURE__ */ import_react51.default.createElement(
5374
+ return /* @__PURE__ */ import_react52.default.createElement(
5308
5375
  ListView.Root,
5309
5376
  {
5310
5377
  ref: forwardedRef,
@@ -5316,13 +5383,13 @@ var CompletionMenu = (0, import_react51.memo)(
5316
5383
  sectionHeaderVariant: "label",
5317
5384
  renderItem: (item, i) => {
5318
5385
  if (item.type === "sectionHeader") {
5319
- return /* @__PURE__ */ import_react51.default.createElement(ListView.Row, { key: item.id, isSectionHeader: true }, item.name);
5386
+ return /* @__PURE__ */ import_react52.default.createElement(ListView.Row, { key: item.id, isSectionHeader: true }, item.name);
5320
5387
  }
5321
5388
  const tokens = fuzzyTokenize({
5322
5389
  item: item.name,
5323
5390
  itemScore: item
5324
5391
  });
5325
- return /* @__PURE__ */ import_react51.default.createElement(
5392
+ return /* @__PURE__ */ import_react52.default.createElement(
5326
5393
  ListView.Row,
5327
5394
  {
5328
5395
  key: item.id,
@@ -5334,16 +5401,16 @@ var CompletionMenu = (0, import_react51.memo)(
5334
5401
  }
5335
5402
  }
5336
5403
  },
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)
5404
+ tokens.map((token, j) => /* @__PURE__ */ import_react52.default.createElement(CompletionToken, { key: j, $type: token.type }, token.text)),
5405
+ item.icon && /* @__PURE__ */ import_react52.default.createElement(import_react52.default.Fragment, null, /* @__PURE__ */ import_react52.default.createElement(Spacer.Horizontal, null), item.icon)
5339
5406
  );
5340
5407
  }
5341
5408
  }
5342
5409
  );
5343
5410
  })
5344
5411
  );
5345
- var InputFieldWithCompletions = (0, import_react51.memo)(
5346
- (0, import_react51.forwardRef)(function InputFieldWithCompletions2({
5412
+ var InputFieldWithCompletions = (0, import_react52.memo)(
5413
+ (0, import_react52.forwardRef)(function InputFieldWithCompletions2({
5347
5414
  loading,
5348
5415
  initialValue = "",
5349
5416
  placeholder,
@@ -5361,13 +5428,13 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
5361
5428
  hideChildrenWhenFocused = false,
5362
5429
  hideMenuWhenEmptyValue = false
5363
5430
  }, 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)({
5431
+ const ref = (0, import_react52.useRef)(null);
5432
+ const [isFocused, setIsFocused] = (0, import_react52.useState)(false);
5433
+ const [state, _setState] = (0, import_react52.useState)({
5367
5434
  filter: initialValue,
5368
5435
  selectedIndex: 0
5369
5436
  });
5370
- const updateState = (0, import_react51.useCallback)(
5437
+ const updateState = (0, import_react52.useCallback)(
5371
5438
  (newState, hoverItem) => {
5372
5439
  const nextState = { ...state, ...newState };
5373
5440
  const nextItems = filterWithGroupedSections(items, nextState.filter);
@@ -5396,16 +5463,16 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
5396
5463
  },
5397
5464
  [items, onChange, onHoverItem, state]
5398
5465
  );
5399
- const initialValueRef = (0, import_react51.useRef)(initialValue);
5400
- (0, import_react51.useLayoutEffect)(() => {
5466
+ const initialValueRef = (0, import_react52.useRef)(initialValue);
5467
+ (0, import_react52.useLayoutEffect)(() => {
5401
5468
  if (initialValueRef.current === initialValue)
5402
5469
  return;
5403
5470
  initialValueRef.current = initialValue;
5404
5471
  updateState({ filter: initialValue });
5405
5472
  }, [initialValue, updateState]);
5406
5473
  const { filter, selectedIndex } = state;
5407
- const listRef = import_react51.default.useRef(null);
5408
- const filteredItems = (0, import_react51.useMemo)(
5474
+ const listRef = import_react52.default.useRef(null);
5475
+ const filteredItems = (0, import_react52.useMemo)(
5409
5476
  () => filterWithGroupedSections(items, filter),
5410
5477
  [items, filter]
5411
5478
  );
@@ -5421,13 +5488,13 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
5421
5488
  ),
5422
5489
  ListView.rowHeight * 10.5
5423
5490
  );
5424
- (0, import_react51.useEffect)(() => {
5491
+ (0, import_react52.useEffect)(() => {
5425
5492
  if (listRef.current) {
5426
5493
  listRef.current.scrollToIndex(selectedIndex);
5427
5494
  }
5428
5495
  }, [selectedIndex]);
5429
- const lastSubmittedValueRef = (0, import_react51.useRef)(void 0);
5430
- const selectItem = (0, import_react51.useCallback)(
5496
+ const lastSubmittedValueRef = (0, import_react52.useRef)(void 0);
5497
+ const selectItem = (0, import_react52.useCallback)(
5431
5498
  (item) => {
5432
5499
  if (item.type === "sectionHeader")
5433
5500
  return;
@@ -5443,17 +5510,17 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
5443
5510
  },
5444
5511
  [filter, onSelectItem, onHoverItem, ref]
5445
5512
  );
5446
- const handleChange = (0, import_react51.useCallback)(
5513
+ const handleChange = (0, import_react52.useCallback)(
5447
5514
  (value) => updateState({ selectedIndex: 0, filter: value }),
5448
5515
  [updateState]
5449
5516
  );
5450
- const handleBlur = (0, import_react51.useCallback)(() => {
5517
+ const handleBlur = (0, import_react52.useCallback)(() => {
5451
5518
  setIsFocused(false);
5452
5519
  const didSubmit = lastSubmittedValueRef.current?.filter === filter;
5453
5520
  updateState({ selectedIndex: 0, filter: initialValue }, "resetHover");
5454
5521
  onBlur?.(didSubmit, filter);
5455
5522
  }, [filter, initialValue, onBlur, updateState]);
5456
- const handleFocus = (0, import_react51.useCallback)(
5523
+ const handleFocus = (0, import_react52.useCallback)(
5457
5524
  (event) => {
5458
5525
  setIsFocused(true);
5459
5526
  updateState({ selectedIndex: 0, filter: initialValue });
@@ -5461,11 +5528,11 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
5461
5528
  },
5462
5529
  [initialValue, onFocus, updateState]
5463
5530
  );
5464
- const handleIndexChange = (0, import_react51.useCallback)(
5531
+ const handleIndexChange = (0, import_react52.useCallback)(
5465
5532
  (index) => updateState({ selectedIndex: index }),
5466
5533
  [updateState]
5467
5534
  );
5468
- const handleKeyDown = (0, import_react51.useCallback)(
5535
+ const handleKeyDown = (0, import_react52.useCallback)(
5469
5536
  (event) => {
5470
5537
  let handled = false;
5471
5538
  switch (event.key) {
@@ -5529,7 +5596,7 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
5529
5596
  );
5530
5597
  const display = !filter && hideMenuWhenEmptyValue ? "none" : "flex";
5531
5598
  const typeaheadValue = filteredItems[selectedIndex]?.name;
5532
- (0, import_react51.useImperativeHandle)(forwardedRef, () => ({
5599
+ (0, import_react52.useImperativeHandle)(forwardedRef, () => ({
5533
5600
  focus: () => {
5534
5601
  ref.current?.focus();
5535
5602
  },
@@ -5540,14 +5607,14 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
5540
5607
  ref.current?.setSelectionRange(0, ref.current.value.length);
5541
5608
  }
5542
5609
  }));
5543
- return /* @__PURE__ */ import_react51.default.createElement(
5610
+ return /* @__PURE__ */ import_react52.default.createElement(
5544
5611
  InputField.Root,
5545
5612
  {
5546
5613
  size: size2,
5547
5614
  labelSize: 16,
5548
5615
  renderPopoverContent: ({ width }) => {
5549
5616
  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(
5617
+ return /* @__PURE__ */ import_react52.default.createElement(Stack.V, { flex: `0 0 ${height}px`, display }, filteredItems.length > 0 ? /* @__PURE__ */ import_react52.default.createElement(
5551
5618
  CompletionMenu,
5552
5619
  {
5553
5620
  ref: listRef,
@@ -5557,7 +5624,7 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
5557
5624
  onHoverIndex: handleIndexChange,
5558
5625
  listSize
5559
5626
  }
5560
- ) : /* @__PURE__ */ import_react51.default.createElement(
5627
+ ) : /* @__PURE__ */ import_react52.default.createElement(
5561
5628
  Stack.V,
5562
5629
  {
5563
5630
  height: "100px",
@@ -5565,11 +5632,11 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
5565
5632
  alignItems: "center",
5566
5633
  justifyContent: "center"
5567
5634
  },
5568
- /* @__PURE__ */ import_react51.default.createElement(Small, { color: "textDisabled" }, loading ? "Loading" : "No results")
5635
+ /* @__PURE__ */ import_react52.default.createElement(Small, { color: "textDisabled" }, loading ? "Loading" : "No results")
5569
5636
  ));
5570
5637
  }
5571
5638
  },
5572
- /* @__PURE__ */ import_react51.default.createElement(
5639
+ /* @__PURE__ */ import_react52.default.createElement(
5573
5640
  InputField.Input,
5574
5641
  {
5575
5642
  ref,
@@ -5593,9 +5660,9 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
5593
5660
  "aria-controls": "component-listbox"
5594
5661
  }
5595
5662
  ),
5596
- filter && typeaheadValue && typeaheadValue.startsWith(filter) && /* @__PURE__ */ import_react51.default.createElement(InputField.Typeahead, { value: typeaheadValue }),
5663
+ filter && typeaheadValue && typeaheadValue.startsWith(filter) && /* @__PURE__ */ import_react52.default.createElement(InputField.Typeahead, { value: typeaheadValue }),
5597
5664
  (!isFocused || !hideChildrenWhenFocused) && children,
5598
- loading && isFocused && /* @__PURE__ */ import_react51.default.createElement(InputField.Label, null, /* @__PURE__ */ import_react51.default.createElement(ActivityIndicator, null))
5665
+ loading && isFocused && /* @__PURE__ */ import_react52.default.createElement(InputField.Label, null, /* @__PURE__ */ import_react52.default.createElement(ActivityIndicator, null))
5599
5666
  );
5600
5667
  })
5601
5668
  );
@@ -5617,9 +5684,9 @@ function getNextIndex(items, currentIndex, direction, isDisabled) {
5617
5684
  }
5618
5685
 
5619
5686
  // 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({
5687
+ var import_react53 = __toESM(require("react"));
5688
+ var InspectorContainer = (0, import_react53.memo)(
5689
+ (0, import_react53.forwardRef)(function InspectorContainer2({
5623
5690
  header,
5624
5691
  children,
5625
5692
  fallback,
@@ -5629,7 +5696,7 @@ var InspectorContainer = (0, import_react52.memo)(
5629
5696
  style: style3
5630
5697
  }, forwardedRef) {
5631
5698
  const theme = useDesignSystemTheme();
5632
- return /* @__PURE__ */ import_react52.default.createElement(
5699
+ return /* @__PURE__ */ import_react53.default.createElement(
5633
5700
  "div",
5634
5701
  {
5635
5702
  ref: forwardedRef,
@@ -5644,13 +5711,13 @@ var InspectorContainer = (0, import_react52.memo)(
5644
5711
  }
5645
5712
  },
5646
5713
  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
5714
+ 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
5715
  );
5649
5716
  })
5650
5717
  );
5651
5718
 
5652
5719
  // src/components/Label.tsx
5653
- var import_react53 = __toESM(require("react"));
5720
+ var import_react54 = __toESM(require("react"));
5654
5721
  var import_styled_components28 = __toESM(require("styled-components"));
5655
5722
  var LabelLabel = import_styled_components28.default.label(
5656
5723
  ({ theme, $selected }) => ({
@@ -5679,17 +5746,17 @@ var LabelContainer2 = import_styled_components28.default.span(({ theme }) => ({
5679
5746
  alignItems: "center"
5680
5747
  }));
5681
5748
  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)));
5749
+ 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
5750
  }
5684
5751
  var Label;
5685
5752
  ((_Label) => {
5686
- _Label.Label = (0, import_react53.memo)(LabelLabel);
5687
- _Label.Root = (0, import_react53.memo)(LabelRoot);
5753
+ _Label.Label = (0, import_react54.memo)(LabelLabel);
5754
+ _Label.Root = (0, import_react54.memo)(LabelRoot);
5688
5755
  })(Label || (Label = {}));
5689
5756
 
5690
5757
  // src/components/LabeledElementView.tsx
5691
5758
  var kiwi = __toESM(require("kiwi.js"));
5692
- var import_react54 = __toESM(require("react"));
5759
+ var import_react55 = __toESM(require("react"));
5693
5760
  var import_styled_components29 = __toESM(require("styled-components"));
5694
5761
  var Container4 = import_styled_components29.default.div(({ theme }) => ({
5695
5762
  display: "flex",
@@ -5708,24 +5775,24 @@ var Labels = import_styled_components29.default.div(({ theme }) => ({
5708
5775
  overflow: "hidden",
5709
5776
  userSelect: "none"
5710
5777
  }));
5711
- var LabeledElementView = (0, import_react54.memo)(function LabeledElementView2({
5778
+ var LabeledElementView = (0, import_react55.memo)(function LabeledElementView2({
5712
5779
  children,
5713
5780
  renderLabel
5714
5781
  }) {
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]
5782
+ const elementIds = import_react55.Children.toArray(children).flatMap(
5783
+ (child) => (0, import_react55.isValidElement)(child) && child.type === import_react55.Fragment ? child.props.children : [child]
5717
5784
  ).map(
5718
- (child) => (0, import_react54.isValidElement)(child) && "id" in child.props ? child.props.id : null
5785
+ (child) => (0, import_react55.isValidElement)(child) && "id" in child.props ? child.props.id : null
5719
5786
  ).filter((id) => !!id);
5720
5787
  const serializedIds = elementIds.join(",");
5721
- const containerRef = (0, import_react54.useRef)(null);
5722
- const refs = (0, import_react54.useMemo)(() => {
5788
+ const containerRef = (0, import_react55.useRef)(null);
5789
+ const refs = (0, import_react55.useMemo)(() => {
5723
5790
  return Object.fromEntries(
5724
- serializedIds.split(",").map((id) => [id, (0, import_react54.createRef)()])
5791
+ serializedIds.split(",").map((id) => [id, (0, import_react55.createRef)()])
5725
5792
  );
5726
5793
  }, [serializedIds]);
5727
- const labelElements = (0, import_react54.useMemo)(() => {
5728
- return serializedIds.split(",").map((id, index) => /* @__PURE__ */ import_react54.default.createElement(
5794
+ const labelElements = (0, import_react55.useMemo)(() => {
5795
+ return serializedIds.split(",").map((id, index) => /* @__PURE__ */ import_react55.default.createElement(
5729
5796
  "span",
5730
5797
  {
5731
5798
  key: id,
@@ -5738,7 +5805,7 @@ var LabeledElementView = (0, import_react54.memo)(function LabeledElementView2({
5738
5805
  })
5739
5806
  ));
5740
5807
  }, [refs, serializedIds, renderLabel]);
5741
- (0, import_react54.useLayoutEffect)(() => {
5808
+ (0, import_react55.useLayoutEffect)(() => {
5742
5809
  if (!containerRef.current)
5743
5810
  return;
5744
5811
  const containerRect = containerRef.current.getBoundingClientRect();
@@ -5803,13 +5870,13 @@ var LabeledElementView = (0, import_react54.memo)(function LabeledElementView2({
5803
5870
  `${Math.max(...heights)}px`
5804
5871
  );
5805
5872
  }, [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));
5873
+ 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
5874
  });
5808
5875
 
5809
5876
  // src/components/Progress.tsx
5810
5877
  var import_noya_utils9 = require("@noya-app/noya-utils");
5811
5878
  var ProgressPrimitive = __toESM(require("@radix-ui/react-progress"));
5812
- var import_react55 = __toESM(require("react"));
5879
+ var import_react56 = __toESM(require("react"));
5813
5880
  var import_styled_components30 = __toESM(require("styled-components"));
5814
5881
  function Progress({
5815
5882
  value,
@@ -5819,7 +5886,7 @@ function Progress({
5819
5886
  variant = "normal"
5820
5887
  }) {
5821
5888
  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(
5889
+ return /* @__PURE__ */ import_react56.default.createElement(ProgressRoot, { value: clampedValue, style: { width, flex, height } }, /* @__PURE__ */ import_react56.default.createElement(
5823
5890
  ProgressIndicator,
5824
5891
  {
5825
5892
  variant,
@@ -5844,7 +5911,7 @@ var ProgressIndicator = (0, import_styled_components30.default)(ProgressPrimitiv
5844
5911
 
5845
5912
  // src/components/RadioGroup.tsx
5846
5913
  var ToggleGroupPrimitive = __toESM(require("@radix-ui/react-toggle-group"));
5847
- var import_react56 = __toESM(require("react"));
5914
+ var import_react57 = __toESM(require("react"));
5848
5915
  var import_styled_components31 = __toESM(require("styled-components"));
5849
5916
  var ignoredProps2 = /* @__PURE__ */ new Set(["colorScheme"]);
5850
5917
  var StyledRoot = (0, import_styled_components31.default)(ToggleGroupPrimitive.Root).withConfig({
@@ -5897,9 +5964,9 @@ var StyledItem = (0, import_styled_components31.default)(ToggleGroupPrimitive.It
5897
5964
  boxShadow: `0 0 0 1px ${theme.colors.sidebar.background}, 0 0 0 3px ${theme.colors[colorScheme ?? "primary"]}`
5898
5965
  }
5899
5966
  }));
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(
5967
+ var ToggleGroupItem = (0, import_react57.forwardRef)(function ToggleGroupItem2({ value, tooltip, children, disabled = false }, forwardedRef) {
5968
+ const { colorScheme } = (0, import_react57.useContext)(RadioGroupContext);
5969
+ const itemElement = /* @__PURE__ */ import_react57.default.createElement(
5903
5970
  StyledItem,
5904
5971
  {
5905
5972
  ref: forwardedRef,
@@ -5909,9 +5976,9 @@ var ToggleGroupItem = (0, import_react56.forwardRef)(function ToggleGroupItem2({
5909
5976
  },
5910
5977
  children
5911
5978
  );
5912
- return tooltip ? /* @__PURE__ */ import_react56.default.createElement(Tooltip, { content: tooltip }, itemElement) : itemElement;
5979
+ return tooltip ? /* @__PURE__ */ import_react57.default.createElement(Tooltip, { content: tooltip }, itemElement) : itemElement;
5913
5980
  });
5914
- var RadioGroupContext = (0, import_react56.createContext)({
5981
+ var RadioGroupContext = (0, import_react57.createContext)({
5915
5982
  colorScheme: "primary"
5916
5983
  });
5917
5984
  function ToggleGroupRoot({
@@ -5922,8 +5989,8 @@ function ToggleGroupRoot({
5922
5989
  allowEmpty,
5923
5990
  children
5924
5991
  }) {
5925
- const contextValue = (0, import_react56.useMemo)(() => ({ colorScheme }), [colorScheme]);
5926
- const handleValueChange = (0, import_react56.useCallback)(
5992
+ const contextValue = (0, import_react57.useMemo)(() => ({ colorScheme }), [colorScheme]);
5993
+ const handleValueChange = (0, import_react57.useCallback)(
5927
5994
  (value2) => {
5928
5995
  if (!allowEmpty && !value2)
5929
5996
  return;
@@ -5931,7 +5998,7 @@ function ToggleGroupRoot({
5931
5998
  },
5932
5999
  [allowEmpty, onValueChange]
5933
6000
  );
5934
- return /* @__PURE__ */ import_react56.default.createElement(RadioGroupContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react56.default.createElement(
6001
+ return /* @__PURE__ */ import_react57.default.createElement(RadioGroupContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react57.default.createElement(
5935
6002
  StyledRoot,
5936
6003
  {
5937
6004
  id,
@@ -5945,28 +6012,28 @@ function ToggleGroupRoot({
5945
6012
  }
5946
6013
  var RadioGroup;
5947
6014
  ((RadioGroup2) => {
5948
- RadioGroup2.Root = (0, import_react56.memo)(ToggleGroupRoot);
5949
- RadioGroup2.Item = (0, import_react56.memo)(ToggleGroupItem);
6015
+ RadioGroup2.Root = (0, import_react57.memo)(ToggleGroupRoot);
6016
+ RadioGroup2.Item = (0, import_react57.memo)(ToggleGroupItem);
5950
6017
  })(RadioGroup || (RadioGroup = {}));
5951
6018
 
5952
6019
  // src/components/Select.tsx
5953
6020
  var import_noya_utils10 = require("@noya-app/noya-utils");
5954
- var import_react57 = __toESM(require("react"));
6021
+ var import_react58 = __toESM(require("react"));
5955
6022
  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({
6023
+ var SelectContext = (0, import_react58.createContext)(void 0);
6024
+ var SelectOption = (0, import_react58.memo)(function SelectOption2({
5958
6025
  value,
5959
6026
  title,
5960
6027
  onSelect
5961
6028
  }) {
5962
- const { addListener, removeListener } = (0, import_react57.useContext)(SelectContext);
5963
- (0, import_react57.useEffect)(() => {
6029
+ const { addListener, removeListener } = (0, import_react58.useContext)(SelectContext);
6030
+ (0, import_react58.useEffect)(() => {
5964
6031
  if (!onSelect)
5965
6032
  return;
5966
6033
  addListener(value, onSelect);
5967
6034
  return () => removeListener(value);
5968
6035
  }, [addListener, onSelect, removeListener, value]);
5969
- return /* @__PURE__ */ import_react57.default.createElement("option", { value }, title ?? value);
6036
+ return /* @__PURE__ */ import_react58.default.createElement("option", { value }, title ?? value);
5970
6037
  });
5971
6038
  var createChevronSVGString = (0, import_noya_utils10.memoize)(
5972
6039
  (color) => `
@@ -6028,7 +6095,7 @@ var SelectLabel = import_styled_components32.default.label(({ theme }) => ({
6028
6095
  justifyContent: "end",
6029
6096
  paddingRight: "24px"
6030
6097
  }));
6031
- var Select = (0, import_react57.memo)(function Select2({
6098
+ var Select = (0, import_react58.memo)(function Select2({
6032
6099
  id,
6033
6100
  flex,
6034
6101
  value,
@@ -6039,8 +6106,8 @@ var Select = (0, import_react57.memo)(function Select2({
6039
6106
  const getTitle = "options" in rest ? rest.getTitle : void 0;
6040
6107
  const onChange = "options" in rest ? rest.onChange : void 0;
6041
6108
  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(
6109
+ const optionElements = (0, import_react58.useMemo)(
6110
+ () => options ? options.map((option, index) => /* @__PURE__ */ import_react58.default.createElement(
6044
6111
  SelectOption,
6045
6112
  {
6046
6113
  key: option,
@@ -6051,65 +6118,85 @@ var Select = (0, import_react57.memo)(function Select2({
6051
6118
  )) : children,
6052
6119
  [children, getTitle, onChange, options]
6053
6120
  );
6054
- const listeners = (0, import_react57.useRef)(/* @__PURE__ */ new Map());
6055
- const contextValue = (0, import_react57.useMemo)(
6121
+ const listeners = (0, import_react58.useRef)(/* @__PURE__ */ new Map());
6122
+ const contextValue = (0, import_react58.useMemo)(
6056
6123
  () => ({
6057
6124
  addListener: (value2, listener) => listeners.current.set(value2, listener),
6058
6125
  removeListener: (value2) => listeners.current.delete(value2)
6059
6126
  }),
6060
6127
  []
6061
6128
  );
6062
- return /* @__PURE__ */ import_react57.default.createElement(SelectContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react57.default.createElement(SelectContainer, { $flex: flex }, /* @__PURE__ */ import_react57.default.createElement(
6129
+ return /* @__PURE__ */ import_react58.default.createElement(SelectContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react58.default.createElement(SelectContainer, { $flex: flex }, /* @__PURE__ */ import_react58.default.createElement(
6063
6130
  SelectElement,
6064
6131
  {
6065
6132
  id,
6066
6133
  $flex: flex,
6067
6134
  value,
6068
- onChange: (0, import_react57.useCallback)(
6135
+ onChange: (0, import_react58.useCallback)(
6069
6136
  (event) => listeners.current.get(event.target.value)?.(),
6070
6137
  [listeners]
6071
6138
  ),
6072
6139
  onPointerDown: (event) => event.stopPropagation()
6073
6140
  },
6074
6141
  optionElements
6075
- )), label && /* @__PURE__ */ import_react57.default.createElement(SelectLabel, { htmlFor: id }, label));
6142
+ )), label && /* @__PURE__ */ import_react58.default.createElement(SelectLabel, { htmlFor: id }, label));
6076
6143
  });
6077
6144
 
6078
6145
  // src/components/SelectMenu.tsx
6079
6146
  var import_noya_icons6 = require("@noya-app/noya-icons");
6080
6147
  var Select3 = __toESM(require("@radix-ui/react-select"));
6081
- var import_react58 = __toESM(require("react"));
6148
+ var import_react59 = __toESM(require("react"));
6082
6149
  var import_styled_components33 = require("styled-components");
6083
- var SelectMenu = (0, import_react58.memo)(function SelectMenu2({
6150
+ var readOnlyStyle = {
6151
+ justifyContent: "flex-start",
6152
+ textAlign: "left"
6153
+ };
6154
+ var SelectMenu = (0, import_react59.memo)(function SelectMenu2({
6084
6155
  id,
6085
6156
  style: style3,
6086
6157
  className,
6087
6158
  menuItems,
6088
6159
  value,
6089
6160
  onSelect,
6090
- placeholder
6161
+ placeholder,
6162
+ disabled,
6163
+ readOnly
6091
6164
  }) {
6092
6165
  const selectedItem = menuItems.find(
6093
6166
  (item) => typeof item !== "string" && item.value === value
6094
6167
  );
6095
6168
  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) => {
6169
+ if (readOnly) {
6170
+ return /* @__PURE__ */ import_react59.default.createElement(
6171
+ Button,
6172
+ {
6173
+ id,
6174
+ style: style3,
6175
+ contentStyle: readOnlyStyle,
6176
+ className,
6177
+ disabled
6178
+ },
6179
+ icon && /* @__PURE__ */ import_react59.default.createElement(import_react59.default.Fragment, null, renderIcon(icon), /* @__PURE__ */ import_react59.default.createElement(Spacer.Horizontal, { size: 8 })),
6180
+ selectedItem?.title ?? value
6181
+ );
6182
+ }
6183
+ 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, disabled }, 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
6184
  if (typeof menuItem === "string") {
6098
- return /* @__PURE__ */ import_react58.default.createElement(StyledSeparator, null);
6185
+ return /* @__PURE__ */ import_react59.default.createElement(StyledSeparator, null);
6099
6186
  }
6100
6187
  const value2 = menuItem.value ?? "";
6101
- return /* @__PURE__ */ import_react58.default.createElement(SelectItem, { key: value2, value: value2, icon: menuItem.icon }, menuItem.title ?? value2);
6188
+ return /* @__PURE__ */ import_react59.default.createElement(SelectItem, { key: value2, value: value2, icon: menuItem.icon }, menuItem.title ?? value2);
6102
6189
  })))));
6103
6190
  });
6104
6191
  var SelectContent = (0, import_styled_components33.styled)(Select3.Content)(styles.contentStyle);
6105
6192
  var SelectViewport = (0, import_styled_components33.styled)(Select3.Viewport)({});
6106
- var SelectItem = import_react58.default.forwardRef(
6193
+ var SelectItem = import_react59.default.forwardRef(
6107
6194
  ({
6108
6195
  children,
6109
6196
  icon,
6110
6197
  ...props
6111
6198
  }, 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));
6199
+ 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
6200
  }
6114
6201
  );
6115
6202
  var StyledItem2 = (0, import_styled_components33.styled)(Select3.Item)(styles.itemStyle);
@@ -6117,7 +6204,7 @@ var StyledSeparator = (0, import_styled_components33.styled)(Select3.Separator)(
6117
6204
 
6118
6205
  // src/components/Slider.tsx
6119
6206
  var RadixSlider = __toESM(require("@radix-ui/react-slider"));
6120
- var import_react59 = __toESM(require("react"));
6207
+ var import_react60 = __toESM(require("react"));
6121
6208
  var import_styled_components34 = __toESM(require("styled-components"));
6122
6209
  var StyledSlider = (0, import_styled_components34.default)(RadixSlider.Root)({
6123
6210
  flex: "1",
@@ -6158,17 +6245,17 @@ var Slider = function Slider2({
6158
6245
  min,
6159
6246
  max
6160
6247
  }) {
6161
- const arrayValue = (0, import_react59.useMemo)(
6248
+ const arrayValue = (0, import_react60.useMemo)(
6162
6249
  () => [Math.min(Math.max(value, min), max)],
6163
6250
  [value, min, max]
6164
6251
  );
6165
- const handleValueChange = (0, import_react59.useCallback)(
6252
+ const handleValueChange = (0, import_react60.useCallback)(
6166
6253
  (arrayValue2) => {
6167
6254
  onValueChange(arrayValue2[0]);
6168
6255
  },
6169
6256
  [onValueChange]
6170
6257
  );
6171
- return /* @__PURE__ */ import_react59.default.createElement(
6258
+ return /* @__PURE__ */ import_react60.default.createElement(
6172
6259
  StyledSlider,
6173
6260
  {
6174
6261
  min,
@@ -6177,14 +6264,14 @@ var Slider = function Slider2({
6177
6264
  value: arrayValue,
6178
6265
  onValueChange: handleValueChange
6179
6266
  },
6180
- /* @__PURE__ */ import_react59.default.createElement(StyledTrack, null, /* @__PURE__ */ import_react59.default.createElement(StyledRange, null)),
6181
- /* @__PURE__ */ import_react59.default.createElement(StyledThumb2, null)
6267
+ /* @__PURE__ */ import_react60.default.createElement(StyledTrack, null, /* @__PURE__ */ import_react60.default.createElement(StyledRange, null)),
6268
+ /* @__PURE__ */ import_react60.default.createElement(StyledThumb2, null)
6182
6269
  );
6183
6270
  };
6184
6271
 
6185
6272
  // src/components/Switch.tsx
6186
6273
  var SwitchPrimitive = __toESM(require("@radix-ui/react-switch"));
6187
- var import_react60 = __toESM(require("react"));
6274
+ var import_react61 = __toESM(require("react"));
6188
6275
  var import_styled_components35 = __toESM(require("styled-components"));
6189
6276
  var SwitchRoot = (0, import_styled_components35.default)(SwitchPrimitive.Root)(({ theme, $colorScheme }) => ({
6190
6277
  all: "unset",
@@ -6217,73 +6304,75 @@ var SwitchThumb = (0, import_styled_components35.default)(SwitchPrimitive.Thumb)
6217
6304
  var Switch = function Switch2({
6218
6305
  value,
6219
6306
  onChange,
6220
- colorScheme = "normal"
6307
+ colorScheme = "normal",
6308
+ disabled
6221
6309
  }) {
6222
- return /* @__PURE__ */ import_react60.default.createElement(
6310
+ return /* @__PURE__ */ import_react61.default.createElement(
6223
6311
  SwitchRoot,
6224
6312
  {
6225
6313
  $colorScheme: colorScheme,
6226
6314
  checked: value,
6315
+ disabled,
6227
6316
  onCheckedChange: (newValue) => {
6228
6317
  onChange(newValue);
6229
6318
  }
6230
6319
  },
6231
- /* @__PURE__ */ import_react60.default.createElement(SwitchThumb, null)
6320
+ /* @__PURE__ */ import_react61.default.createElement(SwitchThumb, null)
6232
6321
  );
6233
6322
  };
6234
6323
 
6235
6324
  // src/components/TreeView.tsx
6236
- var import_react61 = __toESM(require("react"));
6237
- var TreeRow = (0, import_react61.forwardRef)(function TreeRow2({
6325
+ var import_react62 = __toESM(require("react"));
6326
+ var TreeRow = (0, import_react62.forwardRef)(function TreeRow2({
6238
6327
  icon,
6239
6328
  expanded,
6240
6329
  onClickChevron,
6241
6330
  children,
6242
6331
  ...rest
6243
6332
  }, forwardedRef) {
6244
- const { expandable } = (0, import_react61.useContext)(ListView.RowContext);
6245
- const handleClickChevron = (0, import_react61.useCallback)(
6333
+ const { expandable } = (0, import_react62.useContext)(ListView.RowContext);
6334
+ const handleClickChevron = (0, import_react62.useCallback)(
6246
6335
  (event) => {
6247
6336
  event.stopPropagation();
6248
6337
  onClickChevron?.({ altKey: event.altKey });
6249
6338
  },
6250
6339
  [onClickChevron]
6251
6340
  );
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(
6341
+ 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
6342
  IconButton,
6254
6343
  {
6255
6344
  iconName: expanded ? "ChevronDownIcon2" : "ChevronRightIcon2",
6256
6345
  onClick: handleClickChevron,
6257
6346
  selected: rest.selected
6258
6347
  }
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);
6348
+ ), /* @__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
6349
  });
6261
6350
  var TreeView;
6262
6351
  ((TreeView2) => {
6263
6352
  TreeView2.Root = ListView.Root;
6264
6353
  TreeView2.RowTitle = ListView.RowTitle;
6265
6354
  TreeView2.EditableRowTitle = ListView.EditableRowTitle;
6266
- TreeView2.Row = (0, import_react61.memo)(TreeRow);
6355
+ TreeView2.Row = (0, import_react62.memo)(TreeRow);
6267
6356
  })(TreeView || (TreeView = {}));
6268
6357
 
6269
6358
  // src/components/WorkspaceLayout.tsx
6270
6359
  var import_noya_keymap5 = require("@noya-app/noya-keymap");
6271
- var import_react64 = __toESM(require("react"));
6360
+ var import_react65 = __toESM(require("react"));
6272
6361
  var import_react_resizable_panels = require("react-resizable-panels");
6273
6362
 
6274
6363
  // src/hooks/usePreservePanelSize.tsx
6275
- var import_react63 = require("react");
6364
+ var import_react64 = require("react");
6276
6365
 
6277
6366
  // src/hooks/useWindowSize.tsx
6278
- var import_react62 = require("react");
6367
+ var import_react63 = require("react");
6279
6368
  function useWindowSize() {
6280
- const [size2, setSize] = (0, import_react62.useState)(
6369
+ const [size2, setSize] = (0, import_react63.useState)(
6281
6370
  typeof window === "undefined" ? { width: 0, height: 0 } : {
6282
6371
  width: window.innerWidth,
6283
6372
  height: window.innerHeight
6284
6373
  }
6285
6374
  );
6286
- (0, import_react62.useEffect)(() => {
6375
+ (0, import_react63.useEffect)(() => {
6287
6376
  const handleResize = () => setSize({
6288
6377
  width: window.innerWidth,
6289
6378
  height: window.innerHeight
@@ -6301,8 +6390,8 @@ var RIGHT_SIDEBAR_ID = "editor-right-sidebar";
6301
6390
  var CONTENT_AREA_ID = "editor-content-area";
6302
6391
  function usePreservePanelSize(panelGroupRef, setPanelLayoutState) {
6303
6392
  const windowSize = useWindowSize();
6304
- const layoutRef = (0, import_react63.useRef)();
6305
- (0, import_react63.useLayoutEffect)(() => {
6393
+ const layoutRef = (0, import_react64.useRef)();
6394
+ (0, import_react64.useLayoutEffect)(() => {
6306
6395
  const panelGroup = document.querySelector(
6307
6396
  `[data-panel-group-id="${EDITOR_PANEL_GROUP_ID}"]`
6308
6397
  );
@@ -6345,7 +6434,7 @@ function usePreservePanelSize(panelGroupRef, setPanelLayoutState) {
6345
6434
  panelGroupObserver.disconnect();
6346
6435
  };
6347
6436
  }, [panelGroupRef, setPanelLayoutState]);
6348
- (0, import_react63.useLayoutEffect)(() => {
6437
+ (0, import_react64.useLayoutEffect)(() => {
6349
6438
  if (!layoutRef.current)
6350
6439
  return;
6351
6440
  const {
@@ -6405,7 +6494,7 @@ function usePreservePanelSize(panelGroupRef, setPanelLayoutState) {
6405
6494
  }
6406
6495
 
6407
6496
  // src/components/WorkspaceLayout.tsx
6408
- var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
6497
+ var WorkspaceLayout = (0, import_react65.forwardRef)(function WorkspaceLayout2({
6409
6498
  autoSavePrefix,
6410
6499
  leftSidebarContent: leftPanelContent,
6411
6500
  children: centerPanelContent,
@@ -6430,12 +6519,12 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
6430
6519
  const rightSidebarPercentage = getPercentage(rightSidebarInitialSize);
6431
6520
  const leftSidebarMinPercentage = leftSidebarMinSize !== void 0 ? getPercentage(leftSidebarMinSize) : void 0;
6432
6521
  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);
6522
+ const panelGroupRef = (0, import_react65.useRef)(null);
6523
+ const leftSidebarRef = (0, import_react65.useRef)(null);
6524
+ const rightSidebarRef = (0, import_react65.useRef)(null);
6436
6525
  usePreservePanelSize(panelGroupRef, onChangeLayoutState);
6437
6526
  const theme = useDesignSystemTheme();
6438
- (0, import_react64.useImperativeHandle)(forwardedRef, () => ({
6527
+ (0, import_react65.useImperativeHandle)(forwardedRef, () => ({
6439
6528
  setLeftSidebarExpanded: (expanded) => {
6440
6529
  if (expanded) {
6441
6530
  leftSidebarRef.current?.expand();
@@ -6492,7 +6581,7 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
6492
6581
  }
6493
6582
  });
6494
6583
  const centerPanelPercentage = 100 - (leftPanelContent ? leftSidebarPercentage : 0) - (rightPanelContent ? rightSidebarPercentage : 0);
6495
- return /* @__PURE__ */ import_react64.default.createElement(
6584
+ return /* @__PURE__ */ import_react65.default.createElement(
6496
6585
  "div",
6497
6586
  {
6498
6587
  id,
@@ -6504,7 +6593,7 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
6504
6593
  ...style3
6505
6594
  }
6506
6595
  },
6507
- /* @__PURE__ */ import_react64.default.createElement(
6596
+ /* @__PURE__ */ import_react65.default.createElement(
6508
6597
  import_react_resizable_panels.PanelGroup,
6509
6598
  {
6510
6599
  ref: panelGroupRef,
@@ -6513,7 +6602,7 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
6513
6602
  autoSaveId: autoSavePrefix ? `${autoSavePrefix}--${EDITOR_PANEL_GROUP_ID}` : void 0,
6514
6603
  style: { flex: "1" }
6515
6604
  },
6516
- hasLeftSidebar && /* @__PURE__ */ import_react64.default.createElement(import_react64.default.Fragment, null, /* @__PURE__ */ import_react64.default.createElement(
6605
+ hasLeftSidebar && /* @__PURE__ */ import_react65.default.createElement(import_react65.default.Fragment, null, /* @__PURE__ */ import_react65.default.createElement(
6517
6606
  import_react_resizable_panels.Panel,
6518
6607
  {
6519
6608
  id: LEFT_SIDEBAR_ID,
@@ -6530,7 +6619,7 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
6530
6619
  }
6531
6620
  },
6532
6621
  leftPanelContent
6533
- ), /* @__PURE__ */ import_react64.default.createElement(
6622
+ ), /* @__PURE__ */ import_react65.default.createElement(
6534
6623
  import_react_resizable_panels.PanelResizeHandle,
6535
6624
  {
6536
6625
  style: {
@@ -6541,7 +6630,7 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
6541
6630
  }
6542
6631
  }
6543
6632
  )),
6544
- /* @__PURE__ */ import_react64.default.createElement(
6633
+ /* @__PURE__ */ import_react65.default.createElement(
6545
6634
  import_react_resizable_panels.Panel,
6546
6635
  {
6547
6636
  id: CONTENT_AREA_ID,
@@ -6556,7 +6645,7 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
6556
6645
  },
6557
6646
  centerPanelContent
6558
6647
  ),
6559
- hasRightSidebar && /* @__PURE__ */ import_react64.default.createElement(import_react64.default.Fragment, null, /* @__PURE__ */ import_react64.default.createElement(
6648
+ hasRightSidebar && /* @__PURE__ */ import_react65.default.createElement(import_react65.default.Fragment, null, /* @__PURE__ */ import_react65.default.createElement(
6560
6649
  import_react_resizable_panels.PanelResizeHandle,
6561
6650
  {
6562
6651
  style: {
@@ -6566,7 +6655,7 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
6566
6655
  backgroundColor: theme.colors.divider
6567
6656
  }
6568
6657
  }
6569
- ), /* @__PURE__ */ import_react64.default.createElement(
6658
+ ), /* @__PURE__ */ import_react65.default.createElement(
6570
6659
  import_react_resizable_panels.Panel,
6571
6660
  {
6572
6661
  id: RIGHT_SIDEBAR_ID,
@@ -6629,7 +6718,7 @@ var SUPPORTED_CANVAS_UPLOAD_TYPES = [
6629
6718
 
6630
6719
  // src/components/ArrayController.tsx
6631
6720
  var import_noya_utils11 = require("@noya-app/noya-utils");
6632
- var import_react66 = __toESM(require("react"));
6721
+ var import_react67 = __toESM(require("react"));
6633
6722
  var import_styled_components37 = __toESM(require("styled-components"));
6634
6723
 
6635
6724
  // src/components/InspectorPrimitives.tsx
@@ -6648,7 +6737,7 @@ __export(InspectorPrimitives_exports, {
6648
6737
  Title: () => Title3,
6649
6738
  VerticalSeparator: () => VerticalSeparator
6650
6739
  });
6651
- var import_react65 = __toESM(require("react"));
6740
+ var import_react66 = __toESM(require("react"));
6652
6741
  var import_styled_components36 = __toESM(require("styled-components"));
6653
6742
  var Section = import_styled_components36.default.div(({ theme, $padding = "10px", $gap }) => ({
6654
6743
  flex: "0 0 auto",
@@ -6695,8 +6784,8 @@ var Checkbox = import_styled_components36.default.input(({ theme }) => ({
6695
6784
  var Text3 = import_styled_components36.default.span(({ theme }) => ({
6696
6785
  ...theme.textStyles.small
6697
6786
  }));
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 });
6787
+ var VerticalSeparator = () => /* @__PURE__ */ import_react66.default.createElement(Spacer.Vertical, { size: (0, import_styled_components36.useTheme)().sizes.inspector.verticalSeparator });
6788
+ var HorizontalSeparator = () => /* @__PURE__ */ import_react66.default.createElement(Spacer.Horizontal, { size: (0, import_styled_components36.useTheme)().sizes.inspector.horizontalSeparator });
6700
6789
  var SliderRowLabel = import_styled_components36.default.span(({ theme }) => ({
6701
6790
  ...theme.textStyles.small,
6702
6791
  color: theme.colors.textMuted,
@@ -6716,7 +6805,7 @@ var RowLabel = import_styled_components36.default.span(({ theme, $textStyle }) =
6716
6805
  // Button height
6717
6806
  alignItems: "center"
6718
6807
  }));
6719
- var LabeledRow = (0, import_react65.memo)(function LabeledRow2({
6808
+ var LabeledRow = (0, import_react66.memo)(function LabeledRow2({
6720
6809
  id,
6721
6810
  children,
6722
6811
  label,
@@ -6724,13 +6813,13 @@ var LabeledRow = (0, import_react65.memo)(function LabeledRow2({
6724
6813
  gap,
6725
6814
  right
6726
6815
  }) {
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)));
6816
+ 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
6817
  });
6729
- var LabeledSliderRow = (0, import_react65.memo)(function LabeledRow3({
6818
+ var LabeledSliderRow = (0, import_react66.memo)(function LabeledRow3({
6730
6819
  children,
6731
6820
  label
6732
6821
  }) {
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)));
6822
+ 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
6823
  });
6735
6824
 
6736
6825
  // src/components/ArrayController.tsx
@@ -6743,7 +6832,7 @@ var ElementRow = import_styled_components37.default.div({
6743
6832
  var ItemContainer2 = import_styled_components37.default.div({
6744
6833
  position: "relative"
6745
6834
  });
6746
- var ArrayController = (0, import_react66.memo)(function ArrayController2({
6835
+ var ArrayController = (0, import_react67.memo)(function ArrayController2({
6747
6836
  id,
6748
6837
  items,
6749
6838
  title,
@@ -6761,12 +6850,12 @@ var ArrayController = (0, import_react66.memo)(function ArrayController2({
6761
6850
  }) {
6762
6851
  const iconColor = (0, import_styled_components37.useTheme)().colors.icon;
6763
6852
  const primaryLightColor = (0, import_styled_components37.useTheme)().colors.primaryLight;
6764
- const keys = (0, import_react66.useMemo)(
6853
+ const keys = (0, import_react67.useMemo)(
6765
6854
  () => items.map((item, index) => getKey?.(item) ?? index.toString()),
6766
6855
  [getKey, items]
6767
6856
  );
6768
6857
  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)(
6858
+ const handleMoveItem = (0, import_react67.useCallback)(
6770
6859
  (sourceIndex, destinationIndex, position) => {
6771
6860
  if (reversed) {
6772
6861
  if (position === "above") {
@@ -6783,11 +6872,11 @@ var ArrayController = (0, import_react66.memo)(function ArrayController2({
6783
6872
  [onMoveItem, reversed]
6784
6873
  );
6785
6874
  const renderRow = (index) => {
6786
- return /* @__PURE__ */ import_react66.default.createElement(ElementRow, { key: keys[index] }, renderItem({ item: items[index], index }));
6875
+ return /* @__PURE__ */ import_react67.default.createElement(ElementRow, { key: keys[index] }, renderItem({ item: items[index], index }));
6787
6876
  };
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(
6877
+ 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
6878
  [
6790
- onClickTrash && /* @__PURE__ */ import_react66.default.createElement(
6879
+ onClickTrash && /* @__PURE__ */ import_react67.default.createElement(
6791
6880
  IconButton,
6792
6881
  {
6793
6882
  id: `${id}-trash`,
@@ -6796,7 +6885,7 @@ var ArrayController = (0, import_react66.memo)(function ArrayController2({
6796
6885
  onClick: onClickTrash
6797
6886
  }
6798
6887
  ),
6799
- onClickExpand && /* @__PURE__ */ import_react66.default.createElement(
6888
+ onClickExpand && /* @__PURE__ */ import_react67.default.createElement(
6800
6889
  IconButton,
6801
6890
  {
6802
6891
  id: `${id}-gear`,
@@ -6805,7 +6894,7 @@ var ArrayController = (0, import_react66.memo)(function ArrayController2({
6805
6894
  onClick: onClickExpand
6806
6895
  }
6807
6896
  ),
6808
- onClickPlus && /* @__PURE__ */ import_react66.default.createElement(
6897
+ onClickPlus && /* @__PURE__ */ import_react67.default.createElement(
6809
6898
  IconButton,
6810
6899
  {
6811
6900
  id: `${id}-add`,
@@ -6815,15 +6904,15 @@ var ArrayController = (0, import_react66.memo)(function ArrayController2({
6815
6904
  }
6816
6905
  )
6817
6906
  ],
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(
6907
+ /* @__PURE__ */ import_react67.default.createElement(Spacer.Horizontal, { size: 8 })
6908
+ )), /* @__PURE__ */ import_react67.default.createElement(Stack.V, { gap: "4px" }, sortable ? /* @__PURE__ */ import_react67.default.createElement(
6820
6909
  Sortable.Root,
6821
6910
  {
6822
6911
  keys,
6823
6912
  renderOverlay: renderRow,
6824
6913
  onMoveItem: handleMoveItem
6825
6914
  },
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(
6915
+ 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
6916
  ListView.DragIndicator,
6828
6917
  {
6829
6918
  $gap: 0,
@@ -6837,11 +6926,11 @@ var ArrayController = (0, import_react66.memo)(function ArrayController2({
6837
6926
 
6838
6927
  // src/components/DimensionInput.tsx
6839
6928
  var import_noya_utils12 = require("@noya-app/noya-utils");
6840
- var import_react67 = __toESM(require("react"));
6929
+ var import_react68 = __toESM(require("react"));
6841
6930
  function getNewValue(value, mode, delta) {
6842
6931
  return delta === void 0 ? value : mode === "replace" ? delta : value + delta;
6843
6932
  }
6844
- var DimensionInput = (0, import_react67.memo)(function DimensionInput2({
6933
+ var DimensionInput = (0, import_react68.memo)(function DimensionInput2({
6845
6934
  id,
6846
6935
  value,
6847
6936
  onSetValue,
@@ -6851,15 +6940,15 @@ var DimensionInput = (0, import_react67.memo)(function DimensionInput2({
6851
6940
  disabled,
6852
6941
  trigger = "submit"
6853
6942
  }) {
6854
- const handleNudgeValue = (0, import_react67.useCallback)(
6943
+ const handleNudgeValue = (0, import_react68.useCallback)(
6855
6944
  (value2) => onSetValue(value2, "adjust"),
6856
6945
  [onSetValue]
6857
6946
  );
6858
- const handleSetValue = (0, import_react67.useCallback)(
6947
+ const handleSetValue = (0, import_react68.useCallback)(
6859
6948
  (value2) => onSetValue(value2, "replace"),
6860
6949
  [onSetValue]
6861
6950
  );
6862
- return /* @__PURE__ */ import_react67.default.createElement(InputField.Root, { id, width: size2 }, /* @__PURE__ */ import_react67.default.createElement(
6951
+ return /* @__PURE__ */ import_react68.default.createElement(InputField.Root, { id, width: size2 }, /* @__PURE__ */ import_react68.default.createElement(
6863
6952
  InputField.NumberInput,
6864
6953
  {
6865
6954
  value: value === void 0 ? value : (0, import_noya_utils12.round)(value, 2),
@@ -6868,7 +6957,7 @@ var DimensionInput = (0, import_react67.memo)(function DimensionInput2({
6868
6957
  disabled,
6869
6958
  ...trigger === "change" ? { onChange: handleSetValue } : { onSubmit: handleSetValue }
6870
6959
  }
6871
- ), label && /* @__PURE__ */ import_react67.default.createElement(InputField.Label, null, label));
6960
+ ), label && /* @__PURE__ */ import_react68.default.createElement(InputField.Label, null, label));
6872
6961
  });
6873
6962
  // Annotate the CommonJS export names for ESM import in node:
6874
6963
  0 && (module.exports = {