@noya-app/noya-designsystem 0.1.7 → 0.1.9

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
@@ -260,7 +260,7 @@ var ButtonElement = import_styled_components4.default.button(({ theme, active, d
260
260
  boxShadow: `0 0 0 1px ${theme.colors.sidebar.background}, 0 0 0 3px ${theme.colors.primary}`
261
261
  },
262
262
  "&:hover": {
263
- background: variant === "primaryGradient" ? theme.colors.primaryLight : theme.colors.inputBackgroundLight
263
+ background: variant === "primaryGradient" || active ? theme.colors.primaryLight : theme.colors.inputBackgroundLight
264
264
  },
265
265
  "&:active": {
266
266
  background: variant === "primaryGradient" ? theme.colors.primary : theme.colors.activeBackground
@@ -372,11 +372,11 @@ var Button = (0, import_react4.forwardRef)(function Button2({
372
372
 
373
373
  // src/components/Chip.tsx
374
374
  var import_noya_icons3 = require("@noya-app/noya-icons");
375
- var import_react33 = __toESM(require("react"));
375
+ var import_react34 = __toESM(require("react"));
376
376
  var import_styled_components16 = __toESM(require("styled-components"));
377
377
 
378
378
  // src/contexts/DesignSystemConfiguration.tsx
379
- var import_react32 = __toESM(require("react"));
379
+ var import_react33 = __toESM(require("react"));
380
380
  var import_styled_components15 = require("styled-components");
381
381
 
382
382
  // src/components/Toast.tsx
@@ -464,7 +464,7 @@ var Toast = ({
464
464
  var ToastProvider = ({ children }) => /* @__PURE__ */ import_react6.default.createElement(ToastPrimitive.Provider, null, children, /* @__PURE__ */ import_react6.default.createElement(ToastViewport, null));
465
465
 
466
466
  // src/contexts/DialogContext.tsx
467
- var import_react31 = __toESM(require("react"));
467
+ var import_react32 = __toESM(require("react"));
468
468
  var import_styled_components14 = __toESM(require("styled-components"));
469
469
 
470
470
  // src/components/Dialog.tsx
@@ -771,22 +771,104 @@ var import_react16 = require("react");
771
771
  // ../noya-react-utils/src/hooks/useMutableState.ts
772
772
  var import_react17 = require("react");
773
773
 
774
- // ../noya-react-utils/src/hooks/usePixelRatio.ts
774
+ // ../noya-react-utils/src/hooks/usePersistentState.ts
775
775
  var import_react18 = require("react");
776
776
 
777
+ // ../noya-react-utils/src/hooks/usePixelRatio.ts
778
+ var import_react19 = require("react");
779
+
777
780
  // ../noya-react-utils/src/hooks/useShallowArray.ts
778
781
  var import_noya_utils3 = require("@noya-app/noya-utils");
779
- var import_react19 = require("react");
782
+ var import_react20 = require("react");
780
783
 
781
784
  // ../noya-react-utils/src/hooks/useStableCallback.ts
782
- var import_react20 = require("react");
785
+ var import_react21 = require("react");
783
786
 
784
787
  // ../noya-react-utils/src/hooks/useSystemColorScheme.ts
785
- var import_react21 = require("react");
788
+ var import_react22 = require("react");
786
789
 
787
790
  // ../noya-react-utils/src/hooks/useUrlHashParameters.ts
788
791
  var import_noya_utils4 = require("@noya-app/noya-utils");
789
- var import_react22 = require("react");
792
+ var import_react23 = require("react");
793
+
794
+ // ../emitter/src/index.ts
795
+ var Emitter = class {
796
+ constructor(options = {}) {
797
+ this.bufferEventsIfNoListeners = options.bufferEventsIfNoListeners ?? false;
798
+ }
799
+ bufferEventsIfNoListeners;
800
+ listeners = [];
801
+ addListener = (f, options = {}) => {
802
+ if (options.once) {
803
+ const handler = (...args) => {
804
+ this.removeListener(handler);
805
+ return f(...args);
806
+ };
807
+ this.listeners.push(handler);
808
+ } else {
809
+ this.listeners.push(f);
810
+ }
811
+ if (this.bufferedEvents.length > 0) {
812
+ const eventsToEmit = this.bufferedEvents;
813
+ this.bufferedEvents = [];
814
+ eventsToEmit.forEach((event) => {
815
+ this.emit(...event);
816
+ });
817
+ }
818
+ return () => this.removeListener(f);
819
+ };
820
+ removeListener = (f) => {
821
+ const index = this.listeners.indexOf(f);
822
+ if (index === -1)
823
+ return;
824
+ this.listeners.splice(index, 1);
825
+ };
826
+ emit = (...args) => {
827
+ if (this.bufferEventsIfNoListeners && this.listeners.length === 0) {
828
+ this.bufferedEvents.push(args);
829
+ return;
830
+ }
831
+ this.listeners.forEach((l) => l(...args));
832
+ };
833
+ bufferedEvents = [];
834
+ };
835
+
836
+ // ../noya-react-utils/src/utils/ClientStorage.ts
837
+ var ClientStorage = class {
838
+ getItem(storageKey) {
839
+ if (typeof localStorage === "undefined") {
840
+ return null;
841
+ }
842
+ return localStorage.getItem(storageKey);
843
+ }
844
+ setItem(storageKey, value) {
845
+ if (typeof localStorage === "undefined") {
846
+ return;
847
+ }
848
+ if (value === null) {
849
+ localStorage.removeItem(storageKey);
850
+ } else {
851
+ localStorage.setItem(storageKey, value);
852
+ }
853
+ this.emitter.emit(storageKey, value);
854
+ }
855
+ emitter = new Emitter();
856
+ _isListening = false;
857
+ addListener(storageKey, listener) {
858
+ if (!this._isListening && typeof window !== "undefined") {
859
+ this._isListening = true;
860
+ window.addEventListener("storage", (event) => {
861
+ this.emitter.emit(event.key, event.newValue);
862
+ });
863
+ }
864
+ return this.emitter.addListener((key, value) => {
865
+ if (key === storageKey) {
866
+ listener(value);
867
+ }
868
+ });
869
+ }
870
+ };
871
+ var clientStorage = new ClientStorage();
790
872
 
791
873
  // ../noya-react-utils/src/utils/assignRef.ts
792
874
  function assignRef(ref, value) {
@@ -798,7 +880,7 @@ function assignRef(ref, value) {
798
880
  }
799
881
 
800
882
  // src/components/InputField.tsx
801
- var import_react30 = __toESM(require("react"));
883
+ var import_react31 = __toESM(require("react"));
802
884
  var import_styled_components13 = __toESM(require("styled-components"));
803
885
 
804
886
  // src/utils/handleNudge.ts
@@ -829,25 +911,25 @@ function handleNudge(e) {
829
911
  var import_noya_icons = require("@noya-app/noya-icons");
830
912
  var import_noya_keymap2 = require("@noya-app/noya-keymap");
831
913
  var RadixDropdownMenu = __toESM(require("@radix-ui/react-dropdown-menu"));
832
- var import_react25 = __toESM(require("react"));
914
+ var import_react26 = __toESM(require("react"));
833
915
  var import_styled_components10 = __toESM(require("styled-components"));
834
916
 
835
917
  // src/components/internal/Menu.tsx
836
918
  var import_noya_keymap = require("@noya-app/noya-keymap");
837
- var import_react24 = __toESM(require("react"));
919
+ var import_react25 = __toESM(require("react"));
838
920
  var import_styled_components9 = __toESM(require("styled-components"));
839
921
 
840
922
  // src/utils/withSeparatorElements.ts
841
- var import_react23 = require("react");
923
+ var import_react24 = require("react");
842
924
  function createKey(key) {
843
925
  return `s-${key}`;
844
926
  }
845
927
  function withSeparatorElements(elements2, separator) {
846
- const childrenArray = import_react23.Children.toArray(elements2);
928
+ const childrenArray = import_react24.Children.toArray(elements2);
847
929
  for (let i = childrenArray.length - 1; i > 0; i--) {
848
- let sep = typeof separator === "function" ? separator() : (0, import_react23.isValidElement)(separator) ? (0, import_react23.cloneElement)(separator, { key: createKey(i) }) : separator;
849
- if ((0, import_react23.isValidElement)(sep) && sep.key == null) {
850
- sep = (0, import_react23.cloneElement)(sep, { key: createKey(i) });
930
+ let sep = typeof separator === "function" ? separator() : (0, import_react24.isValidElement)(separator) ? (0, import_react24.cloneElement)(separator, { key: createKey(i) }) : separator;
931
+ if ((0, import_react24.isValidElement)(sep) && sep.key == null) {
932
+ sep = (0, import_react24.cloneElement)(sep, { key: createKey(i) });
851
933
  }
852
934
  if (!sep || typeof sep === "boolean")
853
935
  continue;
@@ -947,12 +1029,12 @@ var ShortcutElement = import_styled_components9.default.kbd(
947
1029
  }
948
1030
  })
949
1031
  );
950
- var KeyboardShortcut = (0, import_react24.memo)(function KeyboardShortcut2({
1032
+ var KeyboardShortcut = (0, import_react25.memo)(function KeyboardShortcut2({
951
1033
  shortcut
952
1034
  }) {
953
1035
  const platform = useDesignSystemConfiguration().platform;
954
1036
  const { keys, separator } = (0, import_noya_keymap.getShortcutDisplayParts)(shortcut, platform);
955
- const keyElements = keys.map((key) => /* @__PURE__ */ import_react24.default.createElement(
1037
+ const keyElements = keys.map((key) => /* @__PURE__ */ import_react25.default.createElement(
956
1038
  ShortcutElement,
957
1039
  {
958
1040
  key,
@@ -960,9 +1042,9 @@ var KeyboardShortcut = (0, import_react24.memo)(function KeyboardShortcut2({
960
1042
  },
961
1043
  key
962
1044
  ));
963
- return /* @__PURE__ */ import_react24.default.createElement(import_react24.default.Fragment, null, separator ? withSeparatorElements(
1045
+ return /* @__PURE__ */ import_react25.default.createElement(import_react25.default.Fragment, null, separator ? withSeparatorElements(
964
1046
  keyElements,
965
- /* @__PURE__ */ import_react24.default.createElement(ShortcutElement, null, separator)
1047
+ /* @__PURE__ */ import_react25.default.createElement(ShortcutElement, null, separator)
966
1048
  ) : keyElements);
967
1049
  });
968
1050
 
@@ -977,7 +1059,7 @@ var CheckboxItemElement = (0, import_styled_components10.default)(RadixDropdownM
977
1059
  var StyledItemIndicator = (0, import_styled_components10.default)(RadixDropdownMenu.ItemIndicator)(
978
1060
  styles.itemIndicatorStyle
979
1061
  );
980
- var DropdownMenuItem = (0, import_react25.memo)(function ContextMenuItem({
1062
+ var DropdownMenuItem = (0, import_react26.memo)(function ContextMenuItem({
981
1063
  value,
982
1064
  children,
983
1065
  onSelect,
@@ -988,34 +1070,34 @@ var DropdownMenuItem = (0, import_react25.memo)(function ContextMenuItem({
988
1070
  items,
989
1071
  shortcut
990
1072
  }) {
991
- const handleSelectItem = (0, import_react25.useCallback)(() => {
1073
+ const handleSelectItem = (0, import_react26.useCallback)(() => {
992
1074
  if (!value)
993
1075
  return;
994
1076
  onSelect(value);
995
1077
  }, [onSelect, value]);
996
1078
  if (checked) {
997
- return /* @__PURE__ */ import_react25.default.createElement(
1079
+ return /* @__PURE__ */ import_react26.default.createElement(
998
1080
  CheckboxItemElement,
999
1081
  {
1000
1082
  checked,
1001
1083
  disabled,
1002
1084
  onSelect: handleSelectItem
1003
1085
  },
1004
- /* @__PURE__ */ import_react25.default.createElement(StyledItemIndicator, null, /* @__PURE__ */ import_react25.default.createElement(import_noya_icons.CheckIcon, null)),
1005
- icon && /* @__PURE__ */ import_react25.default.createElement(import_react25.default.Fragment, null, icon, /* @__PURE__ */ import_react25.default.createElement(Spacer.Horizontal, { size: 8 })),
1086
+ /* @__PURE__ */ import_react26.default.createElement(StyledItemIndicator, null, /* @__PURE__ */ import_react26.default.createElement(import_noya_icons.CheckIcon, null)),
1087
+ icon && /* @__PURE__ */ import_react26.default.createElement(import_react26.default.Fragment, null, icon, /* @__PURE__ */ import_react26.default.createElement(Spacer.Horizontal, { size: 8 })),
1006
1088
  children
1007
1089
  );
1008
1090
  }
1009
- const element = /* @__PURE__ */ import_react25.default.createElement(ItemElement, { disabled, onSelect: handleSelectItem }, indented && /* @__PURE__ */ import_react25.default.createElement(Spacer.Horizontal, { size: CHECKBOX_WIDTH - CHECKBOX_RIGHT_INSET }), icon && /* @__PURE__ */ import_react25.default.createElement(import_react25.default.Fragment, null, icon, /* @__PURE__ */ import_react25.default.createElement(Spacer.Horizontal, { size: 8 })), children, shortcut && /* @__PURE__ */ import_react25.default.createElement(import_react25.default.Fragment, null, /* @__PURE__ */ import_react25.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react25.default.createElement(Spacer.Horizontal, { size: 24 }), /* @__PURE__ */ import_react25.default.createElement(KeyboardShortcut, { shortcut })), items && items.length > 0 && /* @__PURE__ */ import_react25.default.createElement(import_react25.default.Fragment, null, /* @__PURE__ */ import_react25.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react25.default.createElement(Spacer.Horizontal, { size: 16 }), /* @__PURE__ */ import_react25.default.createElement(import_noya_icons.ChevronRightIcon, null)));
1091
+ const element = /* @__PURE__ */ import_react26.default.createElement(ItemElement, { disabled, onSelect: handleSelectItem }, indented && /* @__PURE__ */ import_react26.default.createElement(Spacer.Horizontal, { size: CHECKBOX_WIDTH - CHECKBOX_RIGHT_INSET }), icon && /* @__PURE__ */ import_react26.default.createElement(import_react26.default.Fragment, null, icon, /* @__PURE__ */ import_react26.default.createElement(Spacer.Horizontal, { size: 8 })), children, shortcut && /* @__PURE__ */ import_react26.default.createElement(import_react26.default.Fragment, null, /* @__PURE__ */ import_react26.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react26.default.createElement(Spacer.Horizontal, { size: 24 }), /* @__PURE__ */ import_react26.default.createElement(KeyboardShortcut, { shortcut })), items && items.length > 0 && /* @__PURE__ */ import_react26.default.createElement(import_react26.default.Fragment, null, /* @__PURE__ */ import_react26.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react26.default.createElement(Spacer.Horizontal, { size: 16 }), /* @__PURE__ */ import_react26.default.createElement(import_noya_icons.ChevronRightIcon, null)));
1010
1092
  if (items && items.length > 0) {
1011
- return /* @__PURE__ */ import_react25.default.createElement(DropdownMenuRoot, { isNested: true, items, onSelect }, element);
1093
+ return /* @__PURE__ */ import_react26.default.createElement(DropdownMenuRoot, { isNested: true, items, onSelect }, element);
1012
1094
  } else {
1013
1095
  return element;
1014
1096
  }
1015
1097
  });
1016
1098
  var Content5 = (0, import_styled_components10.default)(RadixDropdownMenu.Content)(styles.contentStyle);
1017
1099
  var SubContent2 = (0, import_styled_components10.default)(RadixDropdownMenu.SubContent)(styles.contentStyle);
1018
- var DropdownMenuRoot = (0, import_react25.forwardRef)(function DropdownMenuRoot2({
1100
+ var DropdownMenuRoot = (0, import_react26.forwardRef)(function DropdownMenuRoot2({
1019
1101
  items,
1020
1102
  children,
1021
1103
  onSelect,
@@ -1028,7 +1110,7 @@ var DropdownMenuRoot = (0, import_react25.forwardRef)(function DropdownMenuRoot2
1028
1110
  const hasCheckedItem = items.some(
1029
1111
  (item) => item !== SEPARATOR_ITEM && item.checked
1030
1112
  );
1031
- const keymap = (0, import_react25.useMemo)(
1113
+ const keymap = (0, import_react26.useMemo)(
1032
1114
  () => isNested || shouldBindKeyboardShortcuts === false ? {} : getKeyboardShortcutsForMenuItems(items, onSelect),
1033
1115
  [isNested, items, onSelect, shouldBindKeyboardShortcuts]
1034
1116
  );
@@ -1036,8 +1118,8 @@ var DropdownMenuRoot = (0, import_react25.forwardRef)(function DropdownMenuRoot2
1036
1118
  const RootComponent = isNested ? RadixDropdownMenu.Sub : RadixDropdownMenu.Root;
1037
1119
  const TriggerComponent = isNested ? RadixDropdownMenu.SubTrigger : RadixDropdownMenu.Trigger;
1038
1120
  const ContentComponent = isNested ? SubContent2 : Content5;
1039
- const contentStyle = (0, import_react25.useMemo)(() => ({ zIndex: 1e3 }), []);
1040
- return /* @__PURE__ */ import_react25.default.createElement(RootComponent, { onOpenChange, open }, /* @__PURE__ */ import_react25.default.createElement(TriggerComponent, { ref: forwardedRef, asChild: true }, children), /* @__PURE__ */ import_react25.default.createElement(RadixDropdownMenu.Portal, null, /* @__PURE__ */ import_react25.default.createElement(
1121
+ const contentStyle = (0, import_react26.useMemo)(() => ({ zIndex: 1e3 }), []);
1122
+ return /* @__PURE__ */ import_react26.default.createElement(RootComponent, { onOpenChange, open }, /* @__PURE__ */ import_react26.default.createElement(TriggerComponent, { ref: forwardedRef, asChild: true }, children), /* @__PURE__ */ import_react26.default.createElement(RadixDropdownMenu.Portal, null, /* @__PURE__ */ import_react26.default.createElement(
1041
1123
  ContentComponent,
1042
1124
  {
1043
1125
  sideOffset: 4,
@@ -1046,7 +1128,7 @@ var DropdownMenuRoot = (0, import_react25.forwardRef)(function DropdownMenuRoot2
1046
1128
  ...{ onCloseAutoFocus }
1047
1129
  },
1048
1130
  items.map(
1049
- (item, index) => item === SEPARATOR_ITEM ? /* @__PURE__ */ import_react25.default.createElement(SeparatorElement, { key: index }) : /* @__PURE__ */ import_react25.default.createElement(
1131
+ (item, index) => item === SEPARATOR_ITEM ? /* @__PURE__ */ import_react26.default.createElement(SeparatorElement, { key: index }) : /* @__PURE__ */ import_react26.default.createElement(
1050
1132
  DropdownMenuItem,
1051
1133
  {
1052
1134
  key: item.value ?? index,
@@ -1064,14 +1146,14 @@ var DropdownMenuRoot = (0, import_react25.forwardRef)(function DropdownMenuRoot2
1064
1146
  )
1065
1147
  )));
1066
1148
  });
1067
- var DropdownMenu = (0, import_react25.memo)(DropdownMenuRoot);
1149
+ var DropdownMenu = (0, import_react26.memo)(DropdownMenuRoot);
1068
1150
 
1069
1151
  // src/components/internal/TextInput.tsx
1070
1152
  var import_react_compose_refs = require("@radix-ui/react-compose-refs");
1071
- var import_react27 = __toESM(require("react"));
1153
+ var import_react28 = __toESM(require("react"));
1072
1154
 
1073
1155
  // src/contexts/GlobalInputBlurContext.tsx
1074
- var import_react26 = require("react");
1156
+ var import_react27 = require("react");
1075
1157
  var defaultValue = /* @__PURE__ */ (() => {
1076
1158
  const listeners = [];
1077
1159
  const value = {
@@ -1092,14 +1174,14 @@ var defaultValue = /* @__PURE__ */ (() => {
1092
1174
  };
1093
1175
  return value;
1094
1176
  })();
1095
- var GlobalInputBlurContext = (0, import_react26.createContext)(defaultValue);
1177
+ var GlobalInputBlurContext = (0, import_react27.createContext)(defaultValue);
1096
1178
  var GlobalInputBlurProvider = GlobalInputBlurContext.Provider;
1097
1179
  var useGlobalInputBlur = () => {
1098
- return (0, import_react26.useContext)(GlobalInputBlurContext);
1180
+ return (0, import_react27.useContext)(GlobalInputBlurContext);
1099
1181
  };
1100
1182
  function useGlobalInputBlurListener(f) {
1101
1183
  const context = useGlobalInputBlur();
1102
- (0, import_react26.useEffect)(() => {
1184
+ (0, import_react27.useEffect)(() => {
1103
1185
  context.addListener(f);
1104
1186
  return () => {
1105
1187
  context.removeListener(f);
@@ -1111,8 +1193,8 @@ function useGlobalInputBlurTrigger() {
1111
1193
  }
1112
1194
 
1113
1195
  // src/components/internal/TextInput.tsx
1114
- var ReadOnlyTextInput = (0, import_react27.forwardRef)(function ReadOnlyTextInput2({ onKeyDown, onFocusChange, value, ...rest }, forwardedRef) {
1115
- return /* @__PURE__ */ import_react27.default.createElement(
1196
+ var ReadOnlyTextInput = (0, import_react28.forwardRef)(function ReadOnlyTextInput2({ onKeyDown, onFocusChange, value, ...rest }, forwardedRef) {
1197
+ return /* @__PURE__ */ import_react28.default.createElement(
1116
1198
  "input",
1117
1199
  {
1118
1200
  ref: forwardedRef,
@@ -1123,7 +1205,7 @@ var ReadOnlyTextInput = (0, import_react27.forwardRef)(function ReadOnlyTextInpu
1123
1205
  }
1124
1206
  );
1125
1207
  });
1126
- var ControlledTextInput = (0, import_react27.forwardRef)(function ControlledTextInput2({
1208
+ var ControlledTextInput = (0, import_react28.forwardRef)(function ControlledTextInput2({
1127
1209
  onKeyDown,
1128
1210
  value,
1129
1211
  onChange,
@@ -1132,28 +1214,28 @@ var ControlledTextInput = (0, import_react27.forwardRef)(function ControlledText
1132
1214
  onFocusCapture,
1133
1215
  ...rest
1134
1216
  }, forwardedRef) {
1135
- const handleBlur = (0, import_react27.useCallback)(
1217
+ const handleBlur = (0, import_react28.useCallback)(
1136
1218
  (event) => {
1137
1219
  onBlur?.(event);
1138
1220
  onFocusChange?.(false);
1139
1221
  },
1140
1222
  [onBlur, onFocusChange]
1141
1223
  );
1142
- const handleFocusCapture = (0, import_react27.useCallback)(
1224
+ const handleFocusCapture = (0, import_react28.useCallback)(
1143
1225
  (event) => {
1144
1226
  onFocusCapture?.(event);
1145
1227
  onFocusChange?.(true);
1146
1228
  },
1147
1229
  [onFocusCapture, onFocusChange]
1148
1230
  );
1149
- return /* @__PURE__ */ import_react27.default.createElement(
1231
+ return /* @__PURE__ */ import_react28.default.createElement(
1150
1232
  "input",
1151
1233
  {
1152
1234
  ref: forwardedRef,
1153
1235
  ...rest,
1154
1236
  value,
1155
1237
  onKeyDown,
1156
- onChange: (0, import_react27.useCallback)(
1238
+ onChange: (0, import_react28.useCallback)(
1157
1239
  (event) => onChange(event.target.value),
1158
1240
  [onChange]
1159
1241
  ),
@@ -1162,7 +1244,7 @@ var ControlledTextInput = (0, import_react27.forwardRef)(function ControlledText
1162
1244
  }
1163
1245
  );
1164
1246
  });
1165
- var SubmittableTextInput = (0, import_react27.forwardRef)(function SubmittableTextInput2({
1247
+ var SubmittableTextInput = (0, import_react28.forwardRef)(function SubmittableTextInput2({
1166
1248
  onKeyDown,
1167
1249
  value,
1168
1250
  onSubmit,
@@ -1173,16 +1255,16 @@ var SubmittableTextInput = (0, import_react27.forwardRef)(function SubmittableTe
1173
1255
  submitAutomaticallyAfterDelay,
1174
1256
  ...rest
1175
1257
  }, forwardedRef) {
1176
- const ref = import_react27.default.useRef(null);
1177
- const latestValue = (0, import_react27.useRef)(value);
1258
+ const ref = import_react28.default.useRef(null);
1259
+ const latestValue = (0, import_react28.useRef)(value);
1178
1260
  latestValue.current = value;
1179
- const userDidEdit = (0, import_react27.useRef)(false);
1180
- const isSubmitTriggeredByEscapeKey = (0, import_react27.useRef)(false);
1181
- const [internalValue, setInternalValue] = (0, import_react27.useState)("");
1182
- (0, import_react27.useLayoutEffect)(() => {
1261
+ const userDidEdit = (0, import_react28.useRef)(false);
1262
+ const isSubmitTriggeredByEscapeKey = (0, import_react28.useRef)(false);
1263
+ const [internalValue, setInternalValue] = (0, import_react28.useState)("");
1264
+ (0, import_react28.useLayoutEffect)(() => {
1183
1265
  setInternalValue(value);
1184
1266
  }, [value]);
1185
- const handleSubmit = (0, import_react27.useCallback)(() => {
1267
+ const handleSubmit = (0, import_react28.useCallback)(() => {
1186
1268
  const submissionValue = isSubmitTriggeredByEscapeKey.current ? value : internalValue;
1187
1269
  isSubmitTriggeredByEscapeKey.current = false;
1188
1270
  if (submissionValue === value && !allowSubmittingWithSameValue)
@@ -1192,13 +1274,13 @@ var SubmittableTextInput = (0, import_react27.forwardRef)(function SubmittableTe
1192
1274
  setInternalValue(latestValue.current);
1193
1275
  }, [allowSubmittingWithSameValue, value, internalValue, onSubmit]);
1194
1276
  useGlobalInputBlurListener(
1195
- (0, import_react27.useCallback)(() => {
1277
+ (0, import_react28.useCallback)(() => {
1196
1278
  if (ref.current !== document.activeElement)
1197
1279
  return;
1198
1280
  handleSubmit();
1199
1281
  }, [handleSubmit])
1200
1282
  );
1201
- const handleKeyDown = (0, import_react27.useCallback)(
1283
+ const handleKeyDown = (0, import_react28.useCallback)(
1202
1284
  (event) => {
1203
1285
  if (event.key === "Enter") {
1204
1286
  handleSubmit();
@@ -1213,14 +1295,14 @@ var SubmittableTextInput = (0, import_react27.forwardRef)(function SubmittableTe
1213
1295
  },
1214
1296
  [onKeyDown, handleSubmit]
1215
1297
  );
1216
- const handleChange = (0, import_react27.useCallback)(
1298
+ const handleChange = (0, import_react28.useCallback)(
1217
1299
  (event) => {
1218
1300
  userDidEdit.current = true;
1219
1301
  setInternalValue(event.target.value);
1220
1302
  },
1221
1303
  []
1222
1304
  );
1223
- const handleBlur = (0, import_react27.useCallback)(
1305
+ const handleBlur = (0, import_react28.useCallback)(
1224
1306
  (event) => {
1225
1307
  onBlur?.(event);
1226
1308
  onFocusChange?.(false);
@@ -1228,19 +1310,19 @@ var SubmittableTextInput = (0, import_react27.forwardRef)(function SubmittableTe
1228
1310
  },
1229
1311
  [onBlur, onFocusChange, handleSubmit]
1230
1312
  );
1231
- const handleFocusCapture = (0, import_react27.useCallback)(
1313
+ const handleFocusCapture = (0, import_react28.useCallback)(
1232
1314
  (event) => {
1233
1315
  onFocusCapture?.(event);
1234
1316
  onFocusChange?.(true);
1235
1317
  },
1236
1318
  [onFocusCapture, onFocusChange]
1237
1319
  );
1238
- const autoSubmitTimeoutRef = (0, import_react27.useRef)(
1320
+ const autoSubmitTimeoutRef = (0, import_react28.useRef)(
1239
1321
  null
1240
1322
  );
1241
- const latestHandleSubmit = (0, import_react27.useRef)(handleSubmit);
1323
+ const latestHandleSubmit = (0, import_react28.useRef)(handleSubmit);
1242
1324
  latestHandleSubmit.current = handleSubmit;
1243
- (0, import_react27.useEffect)(() => {
1325
+ (0, import_react28.useEffect)(() => {
1244
1326
  if (submitAutomaticallyAfterDelay) {
1245
1327
  if (autoSubmitTimeoutRef.current) {
1246
1328
  clearTimeout(autoSubmitTimeoutRef.current);
@@ -1257,7 +1339,7 @@ var SubmittableTextInput = (0, import_react27.forwardRef)(function SubmittableTe
1257
1339
  }
1258
1340
  };
1259
1341
  }, [internalValue, submitAutomaticallyAfterDelay]);
1260
- return /* @__PURE__ */ import_react27.default.createElement(
1342
+ return /* @__PURE__ */ import_react28.default.createElement(
1261
1343
  "input",
1262
1344
  {
1263
1345
  ref: (0, import_react_compose_refs.composeRefs)(ref, forwardedRef),
@@ -1270,13 +1352,13 @@ var SubmittableTextInput = (0, import_react27.forwardRef)(function SubmittableTe
1270
1352
  }
1271
1353
  );
1272
1354
  });
1273
- var TextInput_default = (0, import_react27.forwardRef)(function TextInput(props, forwardedRef) {
1355
+ var TextInput_default = (0, import_react28.forwardRef)(function TextInput(props, forwardedRef) {
1274
1356
  const commonProps = {
1275
- onPointerDown: (0, import_react27.useCallback)(
1357
+ onPointerDown: (0, import_react28.useCallback)(
1276
1358
  (event) => event.stopPropagation(),
1277
1359
  []
1278
1360
  ),
1279
- onClick: (0, import_react27.useCallback)(
1361
+ onClick: (0, import_react28.useCallback)(
1280
1362
  (event) => event.stopPropagation(),
1281
1363
  []
1282
1364
  ),
@@ -1289,17 +1371,17 @@ var TextInput_default = (0, import_react27.forwardRef)(function TextInput(props,
1289
1371
  ...props
1290
1372
  };
1291
1373
  if ("readOnly" in commonProps) {
1292
- return /* @__PURE__ */ import_react27.default.createElement(ReadOnlyTextInput, { ref: forwardedRef, ...commonProps, readOnly: true });
1374
+ return /* @__PURE__ */ import_react28.default.createElement(ReadOnlyTextInput, { ref: forwardedRef, ...commonProps, readOnly: true });
1293
1375
  } else if ("onChange" in commonProps) {
1294
- return /* @__PURE__ */ import_react27.default.createElement(ControlledTextInput, { ref: forwardedRef, ...commonProps });
1376
+ return /* @__PURE__ */ import_react28.default.createElement(ControlledTextInput, { ref: forwardedRef, ...commonProps });
1295
1377
  } else {
1296
- return /* @__PURE__ */ import_react27.default.createElement(SubmittableTextInput, { ref: forwardedRef, ...commonProps });
1378
+ return /* @__PURE__ */ import_react28.default.createElement(SubmittableTextInput, { ref: forwardedRef, ...commonProps });
1297
1379
  }
1298
1380
  });
1299
1381
 
1300
1382
  // src/components/Popover.tsx
1301
1383
  var PopoverPrimitive = __toESM(require("@radix-ui/react-popover"));
1302
- var import_react28 = __toESM(require("react"));
1384
+ var import_react29 = __toESM(require("react"));
1303
1385
  var import_styled_components11 = __toESM(require("styled-components"));
1304
1386
  var ContentElement = (0, import_styled_components11.default)(PopoverPrimitive.Content)(({ theme, variant }) => ({
1305
1387
  borderRadius: 4,
@@ -1346,7 +1428,7 @@ function Popover({
1346
1428
  onFocusOutside,
1347
1429
  onClickClose
1348
1430
  }) {
1349
- return /* @__PURE__ */ import_react28.default.createElement(PopoverPrimitive.Root, { open, onOpenChange }, /* @__PURE__ */ import_react28.default.createElement(PopoverPrimitive.Trigger, { asChild: true }, trigger), /* @__PURE__ */ import_react28.default.createElement(PopoverPrimitive.Portal, null, /* @__PURE__ */ import_react28.default.createElement(
1431
+ return /* @__PURE__ */ import_react29.default.createElement(PopoverPrimitive.Root, { open, onOpenChange }, /* @__PURE__ */ import_react29.default.createElement(PopoverPrimitive.Trigger, { asChild: true }, trigger), /* @__PURE__ */ import_react29.default.createElement(PopoverPrimitive.Portal, null, /* @__PURE__ */ import_react29.default.createElement(
1350
1432
  ContentElement,
1351
1433
  {
1352
1434
  variant,
@@ -1367,13 +1449,13 @@ function Popover({
1367
1449
  }
1368
1450
  },
1369
1451
  children,
1370
- showArrow && /* @__PURE__ */ import_react28.default.createElement(ArrowElement, null),
1371
- closable && /* @__PURE__ */ import_react28.default.createElement(PopoverClose, null, /* @__PURE__ */ import_react28.default.createElement(IconButton, { iconName: "Cross2Icon", onClick: onClickClose }))
1452
+ showArrow && /* @__PURE__ */ import_react29.default.createElement(ArrowElement, null),
1453
+ closable && /* @__PURE__ */ import_react29.default.createElement(PopoverClose, null, /* @__PURE__ */ import_react29.default.createElement(IconButton, { iconName: "Cross2Icon", onClick: onClickClose }))
1372
1454
  )));
1373
1455
  }
1374
1456
 
1375
1457
  // src/components/Stack.tsx
1376
- var import_react29 = __toESM(require("react"));
1458
+ var import_react30 = __toESM(require("react"));
1377
1459
  var import_styled_components12 = __toESM(require("styled-components"));
1378
1460
 
1379
1461
  // src/utils/breakpoints.ts
@@ -1399,15 +1481,15 @@ var Element = import_styled_components12.default.div(({ styleProps, breakpoints
1399
1481
  ...styleProps,
1400
1482
  ...mergeBreakpoints(breakpoints || [])
1401
1483
  }));
1402
- var StackBase = (0, import_react29.forwardRef)(function StackBase2({ id, as, children, separator, breakpoints, tabIndex, href, ...rest }, forwardedRef) {
1403
- const elements2 = separator ? withSeparatorElements(import_react29.Children.toArray(children), separator) : children;
1484
+ var StackBase = (0, import_react30.forwardRef)(function StackBase2({ id, as, children, separator, breakpoints, tabIndex, href, ...rest }, forwardedRef) {
1485
+ const elements2 = separator ? withSeparatorElements(import_react30.Children.toArray(children), separator) : children;
1404
1486
  const styleProps = {
1405
1487
  display: "flex",
1406
1488
  position: "relative",
1407
1489
  alignItems: "stretch",
1408
1490
  ...rest
1409
1491
  };
1410
- return /* @__PURE__ */ import_react29.default.createElement(
1492
+ return /* @__PURE__ */ import_react30.default.createElement(
1411
1493
  Element,
1412
1494
  {
1413
1495
  ref: forwardedRef,
@@ -1421,14 +1503,14 @@ var StackBase = (0, import_react29.forwardRef)(function StackBase2({ id, as, chi
1421
1503
  elements2
1422
1504
  );
1423
1505
  });
1424
- var VerticalStack = (0, import_react29.memo)(
1425
- (0, import_react29.forwardRef)(function VStack(props, forwardedRef) {
1426
- return /* @__PURE__ */ import_react29.default.createElement(StackBase, { ...props, flexDirection: "column", ref: forwardedRef });
1506
+ var VerticalStack = (0, import_react30.memo)(
1507
+ (0, import_react30.forwardRef)(function VStack(props, forwardedRef) {
1508
+ return /* @__PURE__ */ import_react30.default.createElement(StackBase, { ...props, flexDirection: "column", ref: forwardedRef });
1427
1509
  })
1428
1510
  );
1429
- var HorizontalStack = (0, import_react29.memo)(
1430
- (0, import_react29.forwardRef)(function HStack(props, forwardedRef) {
1431
- return /* @__PURE__ */ import_react29.default.createElement(StackBase, { ...props, flexDirection: "row", ref: forwardedRef });
1511
+ var HorizontalStack = (0, import_react30.memo)(
1512
+ (0, import_react30.forwardRef)(function HStack(props, forwardedRef) {
1513
+ return /* @__PURE__ */ import_react30.default.createElement(StackBase, { ...props, flexDirection: "row", ref: forwardedRef });
1432
1514
  })
1433
1515
  );
1434
1516
  var Stack = {
@@ -1437,7 +1519,7 @@ var Stack = {
1437
1519
  };
1438
1520
 
1439
1521
  // src/components/InputField.tsx
1440
- var InputFieldContext = (0, import_react30.createContext)({
1522
+ var InputFieldContext = (0, import_react31.createContext)({
1441
1523
  labelPosition: "end",
1442
1524
  labelSize: 6,
1443
1525
  hasLabel: false,
@@ -1465,11 +1547,11 @@ var LabelContainer = import_styled_components13.default.label(({ theme, labelPos
1465
1547
  paddingRight: hasDropdown ? "16px" : "6px"
1466
1548
  }
1467
1549
  }));
1468
- var InputFieldLabel = (0, import_react30.memo)(
1469
- (0, import_react30.forwardRef)(function InputFieldLabel2({ children = false, pointerEvents = "none", style: style3 }, forwardedRef) {
1470
- const { labelPosition, hasDropdown, setLabelWidth } = (0, import_react30.useContext)(InputFieldContext);
1471
- const ref = (0, import_react30.useRef)(null);
1472
- (0, import_react30.useLayoutEffect)(() => {
1550
+ var InputFieldLabel = (0, import_react31.memo)(
1551
+ (0, import_react31.forwardRef)(function InputFieldLabel2({ children = false, pointerEvents = "none", style: style3 }, forwardedRef) {
1552
+ const { labelPosition, hasDropdown, setLabelWidth } = (0, import_react31.useContext)(InputFieldContext);
1553
+ const ref = (0, import_react31.useRef)(null);
1554
+ (0, import_react31.useLayoutEffect)(() => {
1473
1555
  if (!setLabelWidth)
1474
1556
  return;
1475
1557
  const width = ref.current?.getBoundingClientRect().width;
@@ -1477,7 +1559,7 @@ var InputFieldLabel = (0, import_react30.memo)(
1477
1559
  return;
1478
1560
  setLabelWidth(width);
1479
1561
  }, [setLabelWidth]);
1480
- return /* @__PURE__ */ import_react30.default.createElement(
1562
+ return /* @__PURE__ */ import_react31.default.createElement(
1481
1563
  LabelContainer,
1482
1564
  {
1483
1565
  ref: (element) => {
@@ -1501,16 +1583,16 @@ var DropdownContainer = import_styled_components13.default.span(({ theme }) => (
1501
1583
  display: "flex",
1502
1584
  flexDirection: "column"
1503
1585
  }));
1504
- var InputFieldDropdownMenu = (0, import_react30.memo)(function InputFieldDropdownMenu2({ id, items, onSelect, children }) {
1505
- const { size: size2 } = (0, import_react30.useContext)(InputFieldContext);
1506
- const contentStyle = (0, import_react30.useMemo)(
1586
+ var InputFieldDropdownMenu = (0, import_react31.memo)(function InputFieldDropdownMenu2({ id, items, onSelect, children }) {
1587
+ const { size: size2 } = (0, import_react31.useContext)(InputFieldContext);
1588
+ const contentStyle = (0, import_react31.useMemo)(
1507
1589
  () => ({
1508
1590
  margin: "-4px 0",
1509
1591
  minHeight: size2 === "small" ? "15px" : void 0
1510
1592
  }),
1511
1593
  [size2]
1512
1594
  );
1513
- return /* @__PURE__ */ import_react30.default.createElement(DropdownContainer, null, /* @__PURE__ */ import_react30.default.createElement(DropdownMenu, { items, onSelect }, children || /* @__PURE__ */ import_react30.default.createElement(Button, { id, variant: "thin", flex: "1", contentStyle }, /* @__PURE__ */ import_react30.default.createElement(import_noya_icons2.CaretDownIcon, null))));
1595
+ return /* @__PURE__ */ import_react31.default.createElement(DropdownContainer, null, /* @__PURE__ */ import_react31.default.createElement(DropdownMenu, { items, onSelect }, children || /* @__PURE__ */ import_react31.default.createElement(Button, { id, variant: "thin", flex: "1", contentStyle }, /* @__PURE__ */ import_react31.default.createElement(import_noya_icons2.CaretDownIcon, null))));
1514
1596
  });
1515
1597
  var ButtonContainer = import_styled_components13.default.span(
1516
1598
  ({ theme, size: size2 }) => ({
@@ -1519,12 +1601,12 @@ var ButtonContainer = import_styled_components13.default.span(
1519
1601
  top: size2 === "large" ? "8px" : size2 === "medium" ? "4px" : "2px"
1520
1602
  })
1521
1603
  );
1522
- var InputFieldButton = (0, import_react30.memo)(function InputFieldButton2({
1604
+ var InputFieldButton = (0, import_react31.memo)(function InputFieldButton2({
1523
1605
  children,
1524
1606
  onClick
1525
1607
  }) {
1526
- const { size: size2, inputRef } = (0, import_react30.useContext)(InputFieldContext);
1527
- const defaultHandleClick = (0, import_react30.useCallback)(
1608
+ const { size: size2, inputRef } = (0, import_react31.useContext)(InputFieldContext);
1609
+ const defaultHandleClick = (0, import_react31.useCallback)(
1528
1610
  (event) => {
1529
1611
  if (inputRef && typeof inputRef !== "function") {
1530
1612
  inputRef.current?.focus();
@@ -1535,11 +1617,11 @@ var InputFieldButton = (0, import_react30.memo)(function InputFieldButton2({
1535
1617
  },
1536
1618
  [inputRef]
1537
1619
  );
1538
- const handlePointerDown = (0, import_react30.useCallback)((event) => {
1620
+ const handlePointerDown = (0, import_react31.useCallback)((event) => {
1539
1621
  event.preventDefault();
1540
1622
  event.stopPropagation();
1541
1623
  }, []);
1542
- return /* @__PURE__ */ import_react30.default.createElement(ButtonContainer, { size: size2 }, /* @__PURE__ */ import_react30.default.createElement(
1624
+ return /* @__PURE__ */ import_react31.default.createElement(ButtonContainer, { size: size2 }, /* @__PURE__ */ import_react31.default.createElement(
1543
1625
  Button,
1544
1626
  {
1545
1627
  variant: "floating",
@@ -1626,7 +1708,7 @@ var InputElement = (0, import_styled_components13.default)(TextInput_default).wi
1626
1708
  }
1627
1709
  })
1628
1710
  );
1629
- var InputFieldInput = (0, import_react30.forwardRef)(function InputFieldInput2(props, forwardedRef) {
1711
+ var InputFieldInput = (0, import_react31.forwardRef)(function InputFieldInput2(props, forwardedRef) {
1630
1712
  const {
1631
1713
  labelPosition,
1632
1714
  labelSize,
@@ -1635,17 +1717,17 @@ var InputFieldInput = (0, import_react30.forwardRef)(function InputFieldInput2(p
1635
1717
  size: size2,
1636
1718
  onFocusChange,
1637
1719
  setInputRef
1638
- } = (0, import_react30.useContext)(InputFieldContext);
1639
- const handleFocusChange = (0, import_react30.useCallback)(
1720
+ } = (0, import_react31.useContext)(InputFieldContext);
1721
+ const handleFocusChange = (0, import_react31.useCallback)(
1640
1722
  (isFocused) => {
1641
1723
  onFocusChange(isFocused);
1642
1724
  },
1643
1725
  [onFocusChange]
1644
1726
  );
1645
- (0, import_react30.useLayoutEffect)(() => {
1727
+ (0, import_react31.useLayoutEffect)(() => {
1646
1728
  setInputRef?.(forwardedRef);
1647
1729
  }, [forwardedRef, setInputRef]);
1648
- return /* @__PURE__ */ import_react30.default.createElement(
1730
+ return /* @__PURE__ */ import_react31.default.createElement(
1649
1731
  InputElement,
1650
1732
  {
1651
1733
  ref: forwardedRef,
@@ -1667,8 +1749,8 @@ var InputFieldTypeahead = (props) => {
1667
1749
  hasLabel,
1668
1750
  size: size2,
1669
1751
  onFocusChange
1670
- } = (0, import_react30.useContext)(InputFieldContext);
1671
- return /* @__PURE__ */ import_react30.default.createElement(
1752
+ } = (0, import_react31.useContext)(InputFieldContext);
1753
+ return /* @__PURE__ */ import_react31.default.createElement(
1672
1754
  InputElement,
1673
1755
  {
1674
1756
  labelPosition,
@@ -1702,7 +1784,7 @@ function InputFieldNumberInput(props) {
1702
1784
  const { value, placeholder, onNudge } = props;
1703
1785
  const onSubmit = "onSubmit" in props ? props.onSubmit : void 0;
1704
1786
  const onChange = "onChange" in props ? props.onChange : void 0;
1705
- const handleSubmit = (0, import_react30.useCallback)(
1787
+ const handleSubmit = (0, import_react31.useCallback)(
1706
1788
  (value2) => {
1707
1789
  const newValue = parseNumber(value2);
1708
1790
  if (!isNaN(newValue)) {
@@ -1711,7 +1793,7 @@ function InputFieldNumberInput(props) {
1711
1793
  },
1712
1794
  [onSubmit]
1713
1795
  );
1714
- const handleKeyDown = (0, import_react30.useCallback)(
1796
+ const handleKeyDown = (0, import_react31.useCallback)(
1715
1797
  (event) => {
1716
1798
  const amount = handleNudge(event);
1717
1799
  if (!amount)
@@ -1722,13 +1804,13 @@ function InputFieldNumberInput(props) {
1722
1804
  },
1723
1805
  [onNudge]
1724
1806
  );
1725
- const handleChange = (0, import_react30.useCallback)(
1807
+ const handleChange = (0, import_react31.useCallback)(
1726
1808
  (value2) => {
1727
1809
  onChange?.(parseNumber(value2));
1728
1810
  },
1729
1811
  [onChange]
1730
1812
  );
1731
- return /* @__PURE__ */ import_react30.default.createElement(
1813
+ return /* @__PURE__ */ import_react31.default.createElement(
1732
1814
  InputFieldInput,
1733
1815
  {
1734
1816
  ...props,
@@ -1759,32 +1841,32 @@ function InputFieldRoot({
1759
1841
  renderPopoverContent,
1760
1842
  onFocusChange
1761
1843
  }) {
1762
- const childrenArray = import_react30.Children.toArray(children);
1844
+ const childrenArray = import_react31.Children.toArray(children);
1763
1845
  const hasDropdown = childrenArray.some(
1764
- (child) => (0, import_react30.isValidElement)(child) && child.type === InputFieldDropdownMenu
1846
+ (child) => (0, import_react31.isValidElement)(child) && child.type === InputFieldDropdownMenu
1765
1847
  );
1766
1848
  const hasLabel = childrenArray.some(
1767
- (child) => (0, import_react30.isValidElement)(child) && child.type === InputFieldLabel
1849
+ (child) => (0, import_react31.isValidElement)(child) && child.type === InputFieldLabel
1768
1850
  );
1769
- const [isFocused, setIsFocused] = import_react30.default.useState(false);
1770
- const [measuredLabelSize, setMeasuredLabelSize] = import_react30.default.useState();
1771
- const [measuredWidth, setMeasuredWidth] = import_react30.default.useState();
1772
- const handleFocusChange = (0, import_react30.useCallback)(
1851
+ const [isFocused, setIsFocused] = import_react31.default.useState(false);
1852
+ const [measuredLabelSize, setMeasuredLabelSize] = import_react31.default.useState();
1853
+ const [measuredWidth, setMeasuredWidth] = import_react31.default.useState();
1854
+ const handleFocusChange = (0, import_react31.useCallback)(
1773
1855
  (isFocused2) => {
1774
1856
  setIsFocused(isFocused2);
1775
1857
  onFocusChange?.(isFocused2);
1776
1858
  },
1777
1859
  [onFocusChange]
1778
1860
  );
1779
- const [inputRef, setInputRef] = import_react30.default.useState();
1780
- (0, import_react30.useEffect)(() => {
1861
+ const [inputRef, setInputRef] = import_react31.default.useState();
1862
+ (0, import_react31.useEffect)(() => {
1781
1863
  if (inputRef && typeof inputRef !== "function") {
1782
1864
  setMeasuredWidth?.(
1783
1865
  isFocused ? inputRef?.current?.getBoundingClientRect().width : void 0
1784
1866
  );
1785
1867
  }
1786
1868
  }, [inputRef, isFocused]);
1787
- const contextValue = (0, import_react30.useMemo)(
1869
+ const contextValue = (0, import_react31.useMemo)(
1788
1870
  () => ({
1789
1871
  labelPosition,
1790
1872
  labelSize: measuredLabelSize ?? labelSize ?? 6,
@@ -1809,8 +1891,8 @@ function InputFieldRoot({
1809
1891
  inputRef
1810
1892
  ]
1811
1893
  );
1812
- const rootElement = /* @__PURE__ */ import_react30.default.createElement(RootContainer, { id, width, flex }, children);
1813
- return /* @__PURE__ */ import_react30.default.createElement(InputFieldContext.Provider, { value: contextValue }, renderPopoverContent ? /* @__PURE__ */ import_react30.default.createElement(
1894
+ const rootElement = /* @__PURE__ */ import_react31.default.createElement(RootContainer, { id, width, flex }, children);
1895
+ return /* @__PURE__ */ import_react31.default.createElement(InputFieldContext.Provider, { value: contextValue }, renderPopoverContent ? /* @__PURE__ */ import_react31.default.createElement(
1814
1896
  Popover,
1815
1897
  {
1816
1898
  open: true,
@@ -1826,15 +1908,15 @@ function InputFieldRoot({
1826
1908
  event.stopPropagation();
1827
1909
  }
1828
1910
  },
1829
- measuredWidth && /* @__PURE__ */ import_react30.default.createElement(Stack.V, { width: measuredWidth, overflow: "hidden" }, renderPopoverContent({ width: measuredWidth }))
1911
+ measuredWidth && /* @__PURE__ */ import_react31.default.createElement(Stack.V, { width: measuredWidth, overflow: "hidden" }, renderPopoverContent({ width: measuredWidth }))
1830
1912
  ) : rootElement);
1831
1913
  }
1832
1914
  var InputField;
1833
1915
  ((InputField2) => {
1834
- InputField2.Root = (0, import_react30.memo)(InputFieldRoot);
1835
- InputField2.Input = (0, import_react30.memo)(InputFieldInput);
1836
- InputField2.Typeahead = (0, import_react30.memo)(InputFieldTypeahead);
1837
- InputField2.NumberInput = (0, import_react30.memo)(InputFieldNumberInput);
1916
+ InputField2.Root = (0, import_react31.memo)(InputFieldRoot);
1917
+ InputField2.Input = (0, import_react31.memo)(InputFieldInput);
1918
+ InputField2.Typeahead = (0, import_react31.memo)(InputFieldTypeahead);
1919
+ InputField2.NumberInput = (0, import_react31.memo)(InputFieldNumberInput);
1838
1920
  InputField2.DropdownMenu = InputFieldDropdownMenu;
1839
1921
  InputField2.Button = InputFieldButton;
1840
1922
  InputField2.Label = InputFieldLabel;
@@ -1858,24 +1940,24 @@ function createDeferredPromise() {
1858
1940
  });
1859
1941
  return { promise, resolve, reject };
1860
1942
  }
1861
- var DialogContext = (0, import_react31.createContext)(void 0);
1943
+ var DialogContext = (0, import_react32.createContext)(void 0);
1862
1944
  var DialogProvider = function DialogProvider2({
1863
1945
  children
1864
1946
  }) {
1865
- const [contents, setContents] = (0, import_react31.useState)();
1947
+ const [contents, setContents] = (0, import_react32.useState)();
1866
1948
  const isOpen = !!contents;
1867
- const close = (0, import_react31.useCallback)(() => {
1949
+ const close = (0, import_react32.useCallback)(() => {
1868
1950
  if (!contents)
1869
1951
  return;
1870
1952
  contents.resolve(void 0);
1871
1953
  }, [contents]);
1872
- const submit = (0, import_react31.useCallback)(() => {
1954
+ const submit = (0, import_react32.useCallback)(() => {
1873
1955
  if (!contents || !contents.inputValue)
1874
1956
  return;
1875
1957
  contents.resolve(contents.inputValue);
1876
1958
  setContents(void 0);
1877
1959
  }, [contents]);
1878
- const open = (0, import_react31.useCallback)(
1960
+ const open = (0, import_react32.useCallback)(
1879
1961
  (title, inputValue = "") => {
1880
1962
  const { promise, resolve } = createDeferredPromise();
1881
1963
  setContents({
@@ -1890,7 +1972,7 @@ var DialogProvider = function DialogProvider2({
1890
1972
  },
1891
1973
  []
1892
1974
  );
1893
- const handleKeyDown = (0, import_react31.useCallback)(
1975
+ const handleKeyDown = (0, import_react32.useCallback)(
1894
1976
  (event) => {
1895
1977
  if (event.key !== "Enter")
1896
1978
  return;
@@ -1900,29 +1982,29 @@ var DialogProvider = function DialogProvider2({
1900
1982
  },
1901
1983
  [submit]
1902
1984
  );
1903
- const inputRef = (0, import_react31.useRef)(null);
1904
- const dialogRef = (0, import_react31.useRef)(null);
1905
- const containsElement = (0, import_react31.useCallback)((element) => {
1985
+ const inputRef = (0, import_react32.useRef)(null);
1986
+ const dialogRef = (0, import_react32.useRef)(null);
1987
+ const containsElement = (0, import_react32.useCallback)((element) => {
1906
1988
  if (!dialogRef.current)
1907
1989
  return false;
1908
1990
  return dialogRef.current.containsElement(element);
1909
1991
  }, []);
1910
- return /* @__PURE__ */ import_react31.default.createElement(import_react31.default.Fragment, null, /* @__PURE__ */ import_react31.default.createElement(
1992
+ return /* @__PURE__ */ import_react32.default.createElement(import_react32.default.Fragment, null, /* @__PURE__ */ import_react32.default.createElement(
1911
1993
  DialogContext.Provider,
1912
1994
  {
1913
- value: (0, import_react31.useMemo)(
1995
+ value: (0, import_react32.useMemo)(
1914
1996
  () => ({ openInputDialog: open, containsElement }),
1915
1997
  [containsElement, open]
1916
1998
  )
1917
1999
  },
1918
2000
  children
1919
- ), /* @__PURE__ */ import_react31.default.createElement(
2001
+ ), /* @__PURE__ */ import_react32.default.createElement(
1920
2002
  Dialog,
1921
2003
  {
1922
2004
  ref: dialogRef,
1923
2005
  title: contents?.title,
1924
2006
  open: isOpen,
1925
- onOpenChange: (0, import_react31.useCallback)(
2007
+ onOpenChange: (0, import_react32.useCallback)(
1926
2008
  (isOpen2) => {
1927
2009
  if (!isOpen2) {
1928
2010
  close();
@@ -1930,14 +2012,14 @@ var DialogProvider = function DialogProvider2({
1930
2012
  },
1931
2013
  [close]
1932
2014
  ),
1933
- onOpenAutoFocus: (0, import_react31.useCallback)((event) => {
2015
+ onOpenAutoFocus: (0, import_react32.useCallback)((event) => {
1934
2016
  event.stopPropagation();
1935
2017
  event.preventDefault();
1936
2018
  inputRef.current?.focus();
1937
2019
  inputRef.current?.setSelectionRange(0, inputRef.current.value.length);
1938
2020
  }, [])
1939
2021
  },
1940
- /* @__PURE__ */ import_react31.default.createElement(InputField.Root, null, /* @__PURE__ */ import_react31.default.createElement(
2022
+ /* @__PURE__ */ import_react32.default.createElement(InputField.Root, null, /* @__PURE__ */ import_react32.default.createElement(
1941
2023
  InputField.Input,
1942
2024
  {
1943
2025
  ref: inputRef,
@@ -1953,12 +2035,12 @@ var DialogProvider = function DialogProvider2({
1953
2035
  onKeyDown: handleKeyDown
1954
2036
  }
1955
2037
  )),
1956
- /* @__PURE__ */ import_react31.default.createElement(Spacer.Vertical, { size: 20 }),
1957
- /* @__PURE__ */ import_react31.default.createElement(Row, null, /* @__PURE__ */ import_react31.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react31.default.createElement(Button, { onClick: close }, "Cancel"), /* @__PURE__ */ import_react31.default.createElement(Spacer.Horizontal, { size: 16 }), /* @__PURE__ */ import_react31.default.createElement(Button, { disabled: !contents?.inputValue, onClick: submit }, "Submit"))
2038
+ /* @__PURE__ */ import_react32.default.createElement(Spacer.Vertical, { size: 20 }),
2039
+ /* @__PURE__ */ import_react32.default.createElement(Row, null, /* @__PURE__ */ import_react32.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react32.default.createElement(Button, { onClick: close }, "Cancel"), /* @__PURE__ */ import_react32.default.createElement(Spacer.Horizontal, { size: 16 }), /* @__PURE__ */ import_react32.default.createElement(Button, { disabled: !contents?.inputValue, onClick: submit }, "Submit"))
1958
2040
  ));
1959
2041
  };
1960
2042
  function useDialog() {
1961
- const value = (0, import_react31.useContext)(DialogContext);
2043
+ const value = (0, import_react32.useContext)(DialogContext);
1962
2044
  if (!value) {
1963
2045
  throw new Error("Missing DialogProvider");
1964
2046
  }
@@ -1972,19 +2054,19 @@ function useDialogContainsElement() {
1972
2054
  }
1973
2055
 
1974
2056
  // src/contexts/DesignSystemConfiguration.tsx
1975
- var DesignSystemConfigurationContext = (0, import_react32.createContext)(void 0);
1976
- var DesignSystemConfigurationProvider = (0, import_react32.memo)(
2057
+ var DesignSystemConfigurationContext = (0, import_react33.createContext)(void 0);
2058
+ var DesignSystemConfigurationProvider = (0, import_react33.memo)(
1977
2059
  function DesignSystemConfigurationProvider2({
1978
2060
  children,
1979
2061
  theme,
1980
2062
  platform
1981
2063
  }) {
1982
- const contextValue = (0, import_react32.useMemo)(() => ({ platform }), [platform]);
1983
- return /* @__PURE__ */ import_react32.default.createElement(DesignSystemConfigurationContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react32.default.createElement(import_styled_components15.ThemeProvider, { theme }, /* @__PURE__ */ import_react32.default.createElement(DialogProvider, null, /* @__PURE__ */ import_react32.default.createElement(ToastProvider, null, children))));
2064
+ const contextValue = (0, import_react33.useMemo)(() => ({ platform }), [platform]);
2065
+ return /* @__PURE__ */ import_react33.default.createElement(DesignSystemConfigurationContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react33.default.createElement(import_styled_components15.ThemeProvider, { theme }, /* @__PURE__ */ import_react33.default.createElement(DialogProvider, null, /* @__PURE__ */ import_react33.default.createElement(ToastProvider, null, children))));
1984
2066
  }
1985
2067
  );
1986
2068
  function useDesignSystemConfiguration() {
1987
- const value = (0, import_react32.useContext)(DesignSystemConfigurationContext);
2069
+ const value = (0, import_react33.useContext)(DesignSystemConfigurationContext);
1988
2070
  if (!value) {
1989
2071
  throw new Error("Missing DesignSystemConfigurationProvider");
1990
2072
  }
@@ -2172,7 +2254,7 @@ var AddElement = (0, import_styled_components16.default)(import_noya_icons3.Plus
2172
2254
  opacity: 0.85
2173
2255
  }
2174
2256
  }));
2175
- var Chip = (0, import_react33.memo)(function Chip2({
2257
+ var Chip = (0, import_react34.memo)(function Chip2({
2176
2258
  colorScheme,
2177
2259
  children,
2178
2260
  deletable,
@@ -2193,7 +2275,7 @@ var Chip = (0, import_react33.memo)(function Chip2({
2193
2275
  });
2194
2276
  const handleClick = !children && !deletable && addable ? onAdd : onClick;
2195
2277
  const color = colorScheme === "primary" ? theme.colors.primary : colorScheme === "secondary" ? theme.colors.secondary : theme.colors.text;
2196
- return /* @__PURE__ */ import_react33.default.createElement(
2278
+ return /* @__PURE__ */ import_react34.default.createElement(
2197
2279
  ChipElement,
2198
2280
  {
2199
2281
  variant,
@@ -2205,7 +2287,7 @@ var Chip = (0, import_react33.memo)(function Chip2({
2205
2287
  isInteractive: !!handleClick,
2206
2288
  tabIndex
2207
2289
  },
2208
- addable && /* @__PURE__ */ import_react33.default.createElement(
2290
+ addable && /* @__PURE__ */ import_react34.default.createElement(
2209
2291
  AddElement,
2210
2292
  {
2211
2293
  size: size2,
@@ -2218,7 +2300,7 @@ var Chip = (0, import_react33.memo)(function Chip2({
2218
2300
  }
2219
2301
  ),
2220
2302
  children,
2221
- deletable && /* @__PURE__ */ import_react33.default.createElement(
2303
+ deletable && /* @__PURE__ */ import_react34.default.createElement(
2222
2304
  DeleteElement,
2223
2305
  {
2224
2306
  size: size2,
@@ -2237,7 +2319,7 @@ var Chip = (0, import_react33.memo)(function Chip2({
2237
2319
  var import_noya_icons4 = require("@noya-app/noya-icons");
2238
2320
  var import_noya_keymap3 = require("@noya-app/noya-keymap");
2239
2321
  var RadixContextMenu = __toESM(require("@radix-ui/react-context-menu"));
2240
- var import_react34 = __toESM(require("react"));
2322
+ var import_react35 = __toESM(require("react"));
2241
2323
  var import_styled_components17 = __toESM(require("styled-components"));
2242
2324
  var SeparatorElement2 = (0, import_styled_components17.default)(RadixContextMenu.Separator)(
2243
2325
  styles.separatorStyle
@@ -2249,7 +2331,7 @@ var CheckboxItemElement2 = (0, import_styled_components17.default)(RadixContextM
2249
2331
  var StyledItemIndicator2 = (0, import_styled_components17.default)(RadixContextMenu.ItemIndicator)(
2250
2332
  styles.itemIndicatorStyle
2251
2333
  );
2252
- var ContextMenuItem2 = (0, import_react34.memo)(function ContextMenuItem3({
2334
+ var ContextMenuItem2 = (0, import_react35.memo)(function ContextMenuItem3({
2253
2335
  value,
2254
2336
  children,
2255
2337
  onSelect,
@@ -2260,42 +2342,42 @@ var ContextMenuItem2 = (0, import_react34.memo)(function ContextMenuItem3({
2260
2342
  items,
2261
2343
  shortcut
2262
2344
  }) {
2263
- const handlePointerDown = (0, import_react34.useCallback)(
2345
+ const handlePointerDown = (0, import_react35.useCallback)(
2264
2346
  (event) => event.stopPropagation(),
2265
2347
  []
2266
2348
  );
2267
- const handleSelectItem = (0, import_react34.useCallback)(() => {
2349
+ const handleSelectItem = (0, import_react35.useCallback)(() => {
2268
2350
  if (!value)
2269
2351
  return;
2270
2352
  onSelect(value);
2271
2353
  }, [onSelect, value]);
2272
2354
  if (checked) {
2273
- return /* @__PURE__ */ import_react34.default.createElement(
2355
+ return /* @__PURE__ */ import_react35.default.createElement(
2274
2356
  CheckboxItemElement2,
2275
2357
  {
2276
2358
  checked,
2277
2359
  disabled,
2278
2360
  onSelect: handleSelectItem
2279
2361
  },
2280
- /* @__PURE__ */ import_react34.default.createElement(StyledItemIndicator2, null, /* @__PURE__ */ import_react34.default.createElement(import_noya_icons4.CheckIcon, null)),
2362
+ /* @__PURE__ */ import_react35.default.createElement(StyledItemIndicator2, null, /* @__PURE__ */ import_react35.default.createElement(import_noya_icons4.CheckIcon, null)),
2281
2363
  children
2282
2364
  );
2283
2365
  }
2284
- const element = /* @__PURE__ */ import_react34.default.createElement(
2366
+ const element = /* @__PURE__ */ import_react35.default.createElement(
2285
2367
  ItemElement2,
2286
2368
  {
2287
2369
  disabled,
2288
2370
  onSelect: handleSelectItem,
2289
2371
  onPointerDown: handlePointerDown
2290
2372
  },
2291
- indented && /* @__PURE__ */ import_react34.default.createElement(Spacer.Horizontal, { size: CHECKBOX_WIDTH - CHECKBOX_RIGHT_INSET }),
2292
- icon && /* @__PURE__ */ import_react34.default.createElement(import_react34.default.Fragment, null, icon, /* @__PURE__ */ import_react34.default.createElement(Spacer.Horizontal, { size: 8 })),
2373
+ indented && /* @__PURE__ */ import_react35.default.createElement(Spacer.Horizontal, { size: CHECKBOX_WIDTH - CHECKBOX_RIGHT_INSET }),
2374
+ icon && /* @__PURE__ */ import_react35.default.createElement(import_react35.default.Fragment, null, icon, /* @__PURE__ */ import_react35.default.createElement(Spacer.Horizontal, { size: 8 })),
2293
2375
  children,
2294
- shortcut && /* @__PURE__ */ import_react34.default.createElement(import_react34.default.Fragment, null, /* @__PURE__ */ import_react34.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react34.default.createElement(Spacer.Horizontal, { size: 24 }), /* @__PURE__ */ import_react34.default.createElement(KeyboardShortcut, { shortcut })),
2295
- items && items.length > 0 && /* @__PURE__ */ import_react34.default.createElement(import_react34.default.Fragment, null, /* @__PURE__ */ import_react34.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react34.default.createElement(Spacer.Horizontal, { size: 16 }), /* @__PURE__ */ import_react34.default.createElement(import_noya_icons4.ChevronRightIcon, null))
2376
+ shortcut && /* @__PURE__ */ import_react35.default.createElement(import_react35.default.Fragment, null, /* @__PURE__ */ import_react35.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react35.default.createElement(Spacer.Horizontal, { size: 24 }), /* @__PURE__ */ import_react35.default.createElement(KeyboardShortcut, { shortcut })),
2377
+ items && items.length > 0 && /* @__PURE__ */ import_react35.default.createElement(import_react35.default.Fragment, null, /* @__PURE__ */ import_react35.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react35.default.createElement(Spacer.Horizontal, { size: 16 }), /* @__PURE__ */ import_react35.default.createElement(import_noya_icons4.ChevronRightIcon, null))
2296
2378
  );
2297
2379
  if (items && items.length > 0) {
2298
- return /* @__PURE__ */ import_react34.default.createElement(ContextMenuRoot, { isNested: true, items, onSelect }, element);
2380
+ return /* @__PURE__ */ import_react35.default.createElement(ContextMenuRoot, { isNested: true, items, onSelect }, element);
2299
2381
  } else {
2300
2382
  return element;
2301
2383
  }
@@ -2313,19 +2395,19 @@ function ContextMenuRoot({
2313
2395
  const hasCheckedItem = items.some(
2314
2396
  (item) => item !== SEPARATOR_ITEM && item.checked
2315
2397
  );
2316
- const keymap = (0, import_react34.useMemo)(
2398
+ const keymap = (0, import_react35.useMemo)(
2317
2399
  () => isNested || shouldBindKeyboardShortcuts === false ? {} : getKeyboardShortcutsForMenuItems(items, onSelect),
2318
2400
  [isNested, items, onSelect, shouldBindKeyboardShortcuts]
2319
2401
  );
2320
2402
  (0, import_noya_keymap3.useKeyboardShortcuts)(keymap);
2321
- const onPointerDown = (0, import_react34.useCallback)((event) => {
2403
+ const onPointerDown = (0, import_react35.useCallback)((event) => {
2322
2404
  event.preventDefault();
2323
2405
  }, []);
2324
2406
  const RootComponent = isNested ? RadixContextMenu.Sub : RadixContextMenu.Root;
2325
2407
  const TriggerComponent = isNested ? RadixContextMenu.SubTrigger : RadixContextMenu.Trigger;
2326
2408
  const ContentComponent = isNested ? SubContent4 : Content8;
2327
- return /* @__PURE__ */ import_react34.default.createElement(RootComponent, { onOpenChange }, /* @__PURE__ */ import_react34.default.createElement(TriggerComponent, { asChild: true, onPointerDown }, children), /* @__PURE__ */ import_react34.default.createElement(RadixContextMenu.Portal, null, /* @__PURE__ */ import_react34.default.createElement(ContentComponent, null, items.map(
2328
- (item, index) => item === SEPARATOR_ITEM ? /* @__PURE__ */ import_react34.default.createElement(SeparatorElement2, { key: index }) : /* @__PURE__ */ import_react34.default.createElement(
2409
+ return /* @__PURE__ */ import_react35.default.createElement(RootComponent, { onOpenChange }, /* @__PURE__ */ import_react35.default.createElement(TriggerComponent, { asChild: true, onPointerDown }, children), /* @__PURE__ */ import_react35.default.createElement(RadixContextMenu.Portal, null, /* @__PURE__ */ import_react35.default.createElement(ContentComponent, null, items.map(
2410
+ (item, index) => item === SEPARATOR_ITEM ? /* @__PURE__ */ import_react35.default.createElement(SeparatorElement2, { key: index }) : /* @__PURE__ */ import_react35.default.createElement(
2329
2411
  ContextMenuItem2,
2330
2412
  {
2331
2413
  key: item.value ?? index,
@@ -2342,26 +2424,26 @@ function ContextMenuRoot({
2342
2424
  )
2343
2425
  ))));
2344
2426
  }
2345
- var ContextMenu = (0, import_react34.memo)(ContextMenuRoot);
2427
+ var ContextMenu = (0, import_react35.memo)(ContextMenuRoot);
2346
2428
 
2347
2429
  // src/components/Divider.tsx
2348
- var import_react35 = __toESM(require("react"));
2430
+ var import_react36 = __toESM(require("react"));
2349
2431
  var import_styled_components18 = __toESM(require("styled-components"));
2350
2432
  var DividerContainer = import_styled_components18.default.div(({ theme, variant = "normal", orientation, overflow = 0 }) => ({
2351
2433
  ...orientation === "horizontal" ? { height: "1px", minHeight: "1px", margin: `0px -${overflow}px` } : { width: "1px", minWidth: "1px", margin: `-${overflow}px 0px` },
2352
2434
  background: variant === "strong" ? theme.colors.dividerStrong : variant === "subtle" ? theme.colors.dividerSubtle : theme.colors.divider,
2353
2435
  alignSelf: "stretch"
2354
2436
  }));
2355
- var Divider = (0, import_react35.memo)(function Divider2(props) {
2356
- return /* @__PURE__ */ import_react35.default.createElement(DividerContainer, { orientation: "horizontal", ...props });
2437
+ var Divider = (0, import_react36.memo)(function Divider2(props) {
2438
+ return /* @__PURE__ */ import_react36.default.createElement(DividerContainer, { orientation: "horizontal", ...props });
2357
2439
  });
2358
- var DividerVertical = (0, import_react35.memo)(function DividerVertical2(props) {
2359
- return /* @__PURE__ */ import_react35.default.createElement(DividerContainer, { orientation: "vertical", ...props });
2440
+ var DividerVertical = (0, import_react36.memo)(function DividerVertical2(props) {
2441
+ return /* @__PURE__ */ import_react36.default.createElement(DividerContainer, { orientation: "vertical", ...props });
2360
2442
  });
2361
2443
 
2362
2444
  // src/components/DraggableMenuButton.tsx
2363
2445
  var import_noya_icons5 = require("@noya-app/noya-icons");
2364
- var import_react36 = __toESM(require("react"));
2446
+ var import_react37 = __toESM(require("react"));
2365
2447
  var import_styled_components19 = __toESM(require("styled-components"));
2366
2448
  var DotButtonElement = import_styled_components19.default.div(({ theme }) => ({
2367
2449
  cursor: "pointer",
@@ -2381,15 +2463,15 @@ var TriggerElement = import_styled_components19.default.div({
2381
2463
  pointerEvents: "none",
2382
2464
  height: "15px"
2383
2465
  });
2384
- var DraggableMenuButton = (0, import_react36.memo)(function DraggableMenuButton2({
2466
+ var DraggableMenuButton = (0, import_react37.memo)(function DraggableMenuButton2({
2385
2467
  items,
2386
2468
  onSelect,
2387
2469
  isVisible = true
2388
2470
  }) {
2389
2471
  const color = useDesignSystemTheme().colors.icon;
2390
- const [open, setOpen] = (0, import_react36.useState)(false);
2391
- const [downPosition, setDownPosition] = import_react36.default.useState(null);
2392
- const handlePointerDownCapture = (0, import_react36.useCallback)(
2472
+ const [open, setOpen] = (0, import_react37.useState)(false);
2473
+ const [downPosition, setDownPosition] = import_react37.default.useState(null);
2474
+ const handlePointerDownCapture = (0, import_react37.useCallback)(
2393
2475
  (event) => {
2394
2476
  if (open) {
2395
2477
  setDownPosition(null);
@@ -2402,7 +2484,7 @@ var DraggableMenuButton = (0, import_react36.memo)(function DraggableMenuButton2
2402
2484
  },
2403
2485
  [open]
2404
2486
  );
2405
- const handlePointerUp = (0, import_react36.useCallback)(
2487
+ const handlePointerUp = (0, import_react37.useCallback)(
2406
2488
  (event) => {
2407
2489
  if (open || !downPosition) {
2408
2490
  setDownPosition(null);
@@ -2418,14 +2500,14 @@ var DraggableMenuButton = (0, import_react36.memo)(function DraggableMenuButton2
2418
2500
  },
2419
2501
  [downPosition, open]
2420
2502
  );
2421
- const handleOpenChange = (0, import_react36.useCallback)(
2503
+ const handleOpenChange = (0, import_react37.useCallback)(
2422
2504
  (isOpen) => {
2423
2505
  if (!isOpen)
2424
2506
  setOpen(false);
2425
2507
  },
2426
2508
  [setOpen]
2427
2509
  );
2428
- return /* @__PURE__ */ import_react36.default.createElement(
2510
+ return /* @__PURE__ */ import_react37.default.createElement(
2429
2511
  DotButtonElement,
2430
2512
  {
2431
2513
  onPointerDownCapture: handlePointerDownCapture,
@@ -2435,7 +2517,7 @@ var DraggableMenuButton = (0, import_react36.memo)(function DraggableMenuButton2
2435
2517
  event.preventDefault();
2436
2518
  }
2437
2519
  },
2438
- items && onSelect ? /* @__PURE__ */ import_react36.default.createElement(
2520
+ items && onSelect ? /* @__PURE__ */ import_react37.default.createElement(
2439
2521
  DropdownMenu,
2440
2522
  {
2441
2523
  open,
@@ -2444,13 +2526,13 @@ var DraggableMenuButton = (0, import_react36.memo)(function DraggableMenuButton2
2444
2526
  onSelect,
2445
2527
  shouldBindKeyboardShortcuts: false
2446
2528
  },
2447
- /* @__PURE__ */ import_react36.default.createElement(TriggerElement, null, /* @__PURE__ */ import_react36.default.createElement(
2529
+ /* @__PURE__ */ import_react37.default.createElement(TriggerElement, null, /* @__PURE__ */ import_react37.default.createElement(
2448
2530
  import_noya_icons5.DragHandleDots2Icon,
2449
2531
  {
2450
2532
  color: isVisible || open ? color : "transparent"
2451
2533
  }
2452
2534
  ))
2453
- ) : /* @__PURE__ */ import_react36.default.createElement(
2535
+ ) : /* @__PURE__ */ import_react37.default.createElement(
2454
2536
  import_noya_icons5.DragHandleDots2Icon,
2455
2537
  {
2456
2538
  color: isVisible || open ? color : "transparent"
@@ -2460,7 +2542,7 @@ var DraggableMenuButton = (0, import_react36.memo)(function DraggableMenuButton2
2460
2542
  });
2461
2543
 
2462
2544
  // src/components/FillInputField.tsx
2463
- var import_react40 = __toESM(require("react"));
2545
+ var import_react41 = __toESM(require("react"));
2464
2546
  var import_styled_components21 = __toESM(require("styled-components"));
2465
2547
 
2466
2548
  // ../noya-file-format/src/types.ts
@@ -2786,26 +2868,26 @@ var ClassValue = /* @__PURE__ */ ((ClassValue2) => {
2786
2868
  })(ClassValue || {});
2787
2869
 
2788
2870
  // src/components/FillPreviewBackground.tsx
2789
- var import_react39 = __toESM(require("react"));
2871
+ var import_react40 = __toESM(require("react"));
2790
2872
  var import_styled_components20 = __toESM(require("styled-components"));
2791
2873
 
2792
2874
  // src/contexts/ImageDataContext.tsx
2793
- var import_react37 = __toESM(require("react"));
2794
- var ImageDataContext = (0, import_react37.createContext)(
2875
+ var import_react38 = __toESM(require("react"));
2876
+ var ImageDataContext = (0, import_react38.createContext)(
2795
2877
  void 0
2796
2878
  );
2797
- var ImageDataProvider = (0, import_react37.memo)(function ImageDataProvider2({
2879
+ var ImageDataProvider = (0, import_react38.memo)(function ImageDataProvider2({
2798
2880
  children,
2799
2881
  getImageData
2800
2882
  }) {
2801
- const contextValue = (0, import_react37.useMemo)(
2883
+ const contextValue = (0, import_react38.useMemo)(
2802
2884
  () => ({ getImageData: getImageData ?? (() => void 0) }),
2803
2885
  [getImageData]
2804
2886
  );
2805
- return /* @__PURE__ */ import_react37.default.createElement(ImageDataContext.Provider, { value: contextValue }, children);
2887
+ return /* @__PURE__ */ import_react38.default.createElement(ImageDataContext.Provider, { value: contextValue }, children);
2806
2888
  });
2807
2889
  function useImageData(ref) {
2808
- const value = (0, import_react37.useContext)(ImageDataContext);
2890
+ const value = (0, import_react38.useContext)(ImageDataContext);
2809
2891
  if (!value) {
2810
2892
  throw new Error("Missing ImageDataProvider");
2811
2893
  }
@@ -2813,15 +2895,15 @@ function useImageData(ref) {
2813
2895
  }
2814
2896
 
2815
2897
  // src/hooks/useObjectURL.ts
2816
- var import_react38 = require("react");
2898
+ var import_react39 = require("react");
2817
2899
  function useObjectURL(object) {
2818
- const objectURL = (0, import_react38.useMemo)(() => {
2900
+ const objectURL = (0, import_react39.useMemo)(() => {
2819
2901
  if (object instanceof Blob)
2820
2902
  return URL.createObjectURL(object);
2821
2903
  const bytes = object instanceof Uint8Array ? object : object !== void 0 ? new Uint8Array(object) : new Uint8Array();
2822
2904
  return URL.createObjectURL(new Blob([bytes]));
2823
2905
  }, [object]);
2824
- (0, import_react38.useLayoutEffect)(() => {
2906
+ (0, import_react39.useLayoutEffect)(() => {
2825
2907
  return () => URL.revokeObjectURL(objectURL);
2826
2908
  }, [objectURL]);
2827
2909
  return objectURL;
@@ -2877,9 +2959,9 @@ var Background = import_styled_components20.default.span(({ background }) => ({
2877
2959
  position: "absolute",
2878
2960
  inset: 0
2879
2961
  }));
2880
- var HorizontalDotsBackground = (0, import_react39.memo)(function HorizontalDotsBackground2() {
2962
+ var HorizontalDotsBackground = (0, import_react40.memo)(function HorizontalDotsBackground2() {
2881
2963
  const { inputBackground, placeholderDots } = (0, import_styled_components20.useTheme)().colors;
2882
- const background = (0, import_react39.useMemo)(
2964
+ const background = (0, import_react40.useMemo)(
2883
2965
  () => [
2884
2966
  `center url("data:image/svg+xml;utf8,${dotsHorizontalSvg(
2885
2967
  placeholderDots
@@ -2888,7 +2970,7 @@ var HorizontalDotsBackground = (0, import_react39.memo)(function HorizontalDotsB
2888
2970
  ].join(","),
2889
2971
  [inputBackground, placeholderDots]
2890
2972
  );
2891
- return /* @__PURE__ */ import_react39.default.createElement(Background, { background });
2973
+ return /* @__PURE__ */ import_react40.default.createElement(Background, { background });
2892
2974
  });
2893
2975
  function getPatternSizeAndPosition(fillType, tileScale) {
2894
2976
  switch (fillType) {
@@ -2902,7 +2984,7 @@ function getPatternSizeAndPosition(fillType, tileScale) {
2902
2984
  return "center / 100% 100%";
2903
2985
  }
2904
2986
  }
2905
- var PatternPreviewBackground = (0, import_react39.memo)(function PatternPreviewBackground2({
2987
+ var PatternPreviewBackground = (0, import_react40.memo)(function PatternPreviewBackground2({
2906
2988
  fillType,
2907
2989
  tileScale,
2908
2990
  imageRef
@@ -2910,7 +2992,7 @@ var PatternPreviewBackground = (0, import_react39.memo)(function PatternPreviewB
2910
2992
  const image = useImageData(imageRef);
2911
2993
  const url = useObjectURL(image);
2912
2994
  const size2 = getPatternSizeAndPosition(fillType, tileScale);
2913
- const background = (0, import_react39.useMemo)(
2995
+ const background = (0, import_react40.useMemo)(
2914
2996
  () => [
2915
2997
  size2,
2916
2998
  `url(${url})`,
@@ -2918,37 +3000,37 @@ var PatternPreviewBackground = (0, import_react39.memo)(function PatternPreviewB
2918
3000
  ].join(" "),
2919
3001
  [fillType, size2, url]
2920
3002
  );
2921
- return /* @__PURE__ */ import_react39.default.createElement(Background, { background });
3003
+ return /* @__PURE__ */ import_react40.default.createElement(Background, { background });
2922
3004
  });
2923
- var ColorPreviewBackground = (0, import_react39.memo)(function ColorPreviewBackground2({
3005
+ var ColorPreviewBackground = (0, import_react40.memo)(function ColorPreviewBackground2({
2924
3006
  color
2925
3007
  }) {
2926
- const background = (0, import_react39.useMemo)(() => sketchColorToRgbaString(color), [color]);
2927
- return /* @__PURE__ */ import_react39.default.createElement(Background, { background });
3008
+ const background = (0, import_react40.useMemo)(() => sketchColorToRgbaString(color), [color]);
3009
+ return /* @__PURE__ */ import_react40.default.createElement(Background, { background });
2928
3010
  });
2929
- var GradientPreviewBackground = (0, import_react39.memo)(function GradientPreviewBackground2({
3011
+ var GradientPreviewBackground = (0, import_react40.memo)(function GradientPreviewBackground2({
2930
3012
  gradient
2931
3013
  }) {
2932
- const background = (0, import_react39.useMemo)(
3014
+ const background = (0, import_react40.useMemo)(
2933
3015
  () => getGradientBackground(gradient.stops, gradient.gradientType, 180),
2934
3016
  [gradient.gradientType, gradient.stops]
2935
3017
  );
2936
- return /* @__PURE__ */ import_react39.default.createElement(Background, { background });
3018
+ return /* @__PURE__ */ import_react40.default.createElement(Background, { background });
2937
3019
  });
2938
- var FillPreviewBackground = (0, import_react39.memo)(function FillPreviewBackground2({
3020
+ var FillPreviewBackground = (0, import_react40.memo)(function FillPreviewBackground2({
2939
3021
  value
2940
3022
  }) {
2941
3023
  if (!value)
2942
- return /* @__PURE__ */ import_react39.default.createElement(HorizontalDotsBackground, null);
3024
+ return /* @__PURE__ */ import_react40.default.createElement(HorizontalDotsBackground, null);
2943
3025
  switch (value._class) {
2944
3026
  case "color":
2945
- return /* @__PURE__ */ import_react39.default.createElement(ColorPreviewBackground, { color: value });
3027
+ return /* @__PURE__ */ import_react40.default.createElement(ColorPreviewBackground, { color: value });
2946
3028
  case "gradient":
2947
- return /* @__PURE__ */ import_react39.default.createElement(GradientPreviewBackground, { gradient: value });
3029
+ return /* @__PURE__ */ import_react40.default.createElement(GradientPreviewBackground, { gradient: value });
2948
3030
  case "pattern":
2949
3031
  if (!value.image)
2950
3032
  return null;
2951
- return /* @__PURE__ */ import_react39.default.createElement(
3033
+ return /* @__PURE__ */ import_react40.default.createElement(
2952
3034
  PatternPreviewBackground,
2953
3035
  {
2954
3036
  fillType: value.patternFillType,
@@ -2978,16 +3060,16 @@ var Container = import_styled_components21.default.button(
2978
3060
  flex
2979
3061
  })
2980
3062
  );
2981
- var FillInputField = (0, import_react40.memo)(
2982
- (0, import_react40.forwardRef)(function FillInputField2({ id, value, ...rest }, ref) {
2983
- return /* @__PURE__ */ import_react40.default.createElement(Container, { ref, id, ...rest }, /* @__PURE__ */ import_react40.default.createElement(FillPreviewBackground, { value }));
3063
+ var FillInputField = (0, import_react41.memo)(
3064
+ (0, import_react41.forwardRef)(function FillInputField2({ id, value, ...rest }, ref) {
3065
+ return /* @__PURE__ */ import_react41.default.createElement(Container, { ref, id, ...rest }, /* @__PURE__ */ import_react41.default.createElement(FillPreviewBackground, { value }));
2984
3066
  })
2985
3067
  );
2986
3068
 
2987
3069
  // src/components/GradientPicker.tsx
2988
3070
  var import_noya_colorpicker2 = require("@noya-app/noya-colorpicker");
2989
- var import_react41 = __toESM(require("react"));
2990
- var GradientPicker = (0, import_react41.memo)(function GradientPicker2({
3071
+ var import_react42 = __toESM(require("react"));
3072
+ var GradientPicker = (0, import_react42.memo)(function GradientPicker2({
2991
3073
  value,
2992
3074
  selectedStop,
2993
3075
  onChangeColor,
@@ -2996,7 +3078,7 @@ var GradientPicker = (0, import_react41.memo)(function GradientPicker2({
2996
3078
  onDelete,
2997
3079
  onSelectStop
2998
3080
  }) {
2999
- const colorModel = (0, import_react41.useMemo)(
3081
+ const colorModel = (0, import_react42.useMemo)(
3000
3082
  () => ({
3001
3083
  defaultColor: { r: 0, g: 0, b: 0, a: 1 },
3002
3084
  toHsva: import_noya_colorpicker2.rgbaToHsva,
@@ -3005,30 +3087,30 @@ var GradientPicker = (0, import_react41.memo)(function GradientPicker2({
3005
3087
  }),
3006
3088
  []
3007
3089
  );
3008
- const rgbaColor = (0, import_react41.useMemo)(
3090
+ const rgbaColor = (0, import_react42.useMemo)(
3009
3091
  () => sketchColorToRgba(value[selectedStop].color),
3010
3092
  [value, selectedStop]
3011
3093
  );
3012
- const handleChangeColor = (0, import_react41.useCallback)(
3094
+ const handleChangeColor = (0, import_react42.useCallback)(
3013
3095
  (value2) => {
3014
3096
  onChangeColor(rgbaToSketchColor(value2));
3015
3097
  },
3016
3098
  [onChangeColor]
3017
3099
  );
3018
- const handleAddGradientStop = (0, import_react41.useCallback)(
3100
+ const handleAddGradientStop = (0, import_react42.useCallback)(
3019
3101
  (value2, position) => {
3020
3102
  onAdd(rgbaToSketchColor(value2), position);
3021
3103
  },
3022
3104
  [onAdd]
3023
3105
  );
3024
- return /* @__PURE__ */ import_react41.default.createElement(
3106
+ return /* @__PURE__ */ import_react42.default.createElement(
3025
3107
  import_noya_colorpicker2.ColorPicker,
3026
3108
  {
3027
3109
  onChange: handleChangeColor,
3028
3110
  colorModel,
3029
3111
  color: rgbaColor
3030
3112
  },
3031
- /* @__PURE__ */ import_react41.default.createElement(
3113
+ /* @__PURE__ */ import_react42.default.createElement(
3032
3114
  import_noya_colorpicker2.Gradient,
3033
3115
  {
3034
3116
  gradients: value,
@@ -3039,12 +3121,12 @@ var GradientPicker = (0, import_react41.memo)(function GradientPicker2({
3039
3121
  onDelete
3040
3122
  }
3041
3123
  ),
3042
- /* @__PURE__ */ import_react41.default.createElement(Spacer.Vertical, { size: 10 }),
3043
- /* @__PURE__ */ import_react41.default.createElement(import_noya_colorpicker2.Saturation, null),
3044
- /* @__PURE__ */ import_react41.default.createElement(Spacer.Vertical, { size: 12 }),
3045
- /* @__PURE__ */ import_react41.default.createElement(import_noya_colorpicker2.Hue, null),
3046
- /* @__PURE__ */ import_react41.default.createElement(Spacer.Vertical, { size: 5 }),
3047
- /* @__PURE__ */ import_react41.default.createElement(import_noya_colorpicker2.Alpha, null)
3124
+ /* @__PURE__ */ import_react42.default.createElement(Spacer.Vertical, { size: 10 }),
3125
+ /* @__PURE__ */ import_react42.default.createElement(import_noya_colorpicker2.Saturation, null),
3126
+ /* @__PURE__ */ import_react42.default.createElement(Spacer.Vertical, { size: 12 }),
3127
+ /* @__PURE__ */ import_react42.default.createElement(import_noya_colorpicker2.Hue, null),
3128
+ /* @__PURE__ */ import_react42.default.createElement(Spacer.Vertical, { size: 5 }),
3129
+ /* @__PURE__ */ import_react42.default.createElement(import_noya_colorpicker2.Alpha, null)
3048
3130
  );
3049
3131
  });
3050
3132
 
@@ -3076,12 +3158,12 @@ var Grid = import_styled_components22.default.div((props) => ({
3076
3158
  }));
3077
3159
 
3078
3160
  // src/components/GridView.tsx
3079
- var import_react43 = __toESM(require("react"));
3161
+ var import_react44 = __toESM(require("react"));
3080
3162
  var import_styled_components24 = __toESM(require("styled-components"));
3081
3163
 
3082
3164
  // src/components/ScrollArea.tsx
3083
3165
  var RadixScrollArea = __toESM(require("@radix-ui/react-scroll-area"));
3084
- var import_react42 = __toESM(require("react"));
3166
+ var import_react43 = __toESM(require("react"));
3085
3167
  var import_styled_components23 = __toESM(require("styled-components"));
3086
3168
  var SCROLLBAR_SIZE = 10;
3087
3169
  var StyledViewport = (0, import_styled_components23.default)(RadixScrollArea.Viewport)({
@@ -3109,18 +3191,18 @@ var Container2 = import_styled_components23.default.div({
3109
3191
  flex: "1 1 0px",
3110
3192
  minHeight: 0
3111
3193
  });
3112
- var ScrollArea = (0, import_react42.memo)(function ScrollArea2({ children }) {
3113
- const [scrollElementRef, setScrollElementRef] = (0, import_react42.useState)(null);
3114
- return /* @__PURE__ */ import_react42.default.createElement(Container2, null, /* @__PURE__ */ import_react42.default.createElement(RadixScrollArea.Root, { style: { width: "100%", height: "100%" } }, /* @__PURE__ */ import_react42.default.createElement(
3194
+ var ScrollArea = (0, import_react43.memo)(function ScrollArea2({ children }) {
3195
+ const [scrollElementRef, setScrollElementRef] = (0, import_react43.useState)(null);
3196
+ return /* @__PURE__ */ import_react43.default.createElement(Container2, null, /* @__PURE__ */ import_react43.default.createElement(RadixScrollArea.Root, { style: { width: "100%", height: "100%" } }, /* @__PURE__ */ import_react43.default.createElement(
3115
3197
  StyledViewport,
3116
3198
  {
3117
- ref: (0, import_react42.useCallback)(
3199
+ ref: (0, import_react43.useCallback)(
3118
3200
  (ref) => setScrollElementRef(ref),
3119
3201
  []
3120
3202
  )
3121
3203
  },
3122
3204
  typeof children === "function" ? scrollElementRef ? children(scrollElementRef) : null : children
3123
- ), /* @__PURE__ */ import_react42.default.createElement(StyledScrollbar, { orientation: "vertical", className: "scroll-component" }, /* @__PURE__ */ import_react42.default.createElement(StyledThumb, { className: "scroll-component" }))));
3205
+ ), /* @__PURE__ */ import_react43.default.createElement(StyledScrollbar, { orientation: "vertical", className: "scroll-component" }, /* @__PURE__ */ import_react43.default.createElement(StyledThumb, { className: "scroll-component" }))));
3124
3206
  });
3125
3207
 
3126
3208
  // src/components/GridView.tsx
@@ -3300,7 +3382,7 @@ var Shimmer = import_styled_components24.default.div`
3300
3382
  align-items: end;
3301
3383
  padding: 4px;
3302
3384
  `;
3303
- var GridViewItem = (0, import_react43.forwardRef)(function GridViewItem2({
3385
+ var GridViewItem = (0, import_react44.forwardRef)(function GridViewItem2({
3304
3386
  id,
3305
3387
  title,
3306
3388
  subtitle,
@@ -3316,15 +3398,15 @@ var GridViewItem = (0, import_react43.forwardRef)(function GridViewItem2({
3316
3398
  onContextMenu,
3317
3399
  style: style3
3318
3400
  }, forwardedRef) {
3319
- const [hovered, setHovered] = import_react43.default.useState(false);
3401
+ const [hovered, setHovered] = import_react44.default.useState(false);
3320
3402
  const { hoverProps } = useHover({
3321
3403
  onHoverChange: (isHovering) => {
3322
3404
  onHoverChange?.(isHovering);
3323
3405
  setHovered(isHovering);
3324
3406
  }
3325
3407
  });
3326
- const { textPosition, bordered, disabled } = (0, import_react43.useContext)(GridViewContext);
3327
- const handleClick = (0, import_react43.useCallback)(
3408
+ const { textPosition, bordered, disabled } = (0, import_react44.useContext)(GridViewContext);
3409
+ const handleClick = (0, import_react44.useCallback)(
3328
3410
  (event) => {
3329
3411
  event.stopPropagation();
3330
3412
  event.preventDefault();
@@ -3333,7 +3415,7 @@ var GridViewItem = (0, import_react43.forwardRef)(function GridViewItem2({
3333
3415
  },
3334
3416
  [onClick, onPress]
3335
3417
  );
3336
- const handleKeyDown = (0, import_react43.useCallback)(
3418
+ const handleKeyDown = (0, import_react44.useCallback)(
3337
3419
  (event) => {
3338
3420
  if (event.key === "Enter" || event.key === " ") {
3339
3421
  event.stopPropagation();
@@ -3345,7 +3427,7 @@ var GridViewItem = (0, import_react43.forwardRef)(function GridViewItem2({
3345
3427
  },
3346
3428
  [onPress]
3347
3429
  );
3348
- let element = /* @__PURE__ */ import_react43.default.createElement(
3430
+ let element = /* @__PURE__ */ import_react44.default.createElement(
3349
3431
  ItemContainer,
3350
3432
  {
3351
3433
  id,
@@ -3354,7 +3436,7 @@ var GridViewItem = (0, import_react43.forwardRef)(function GridViewItem2({
3354
3436
  tabIndex: disabled ? void 0 : 0,
3355
3437
  onKeyDown: handleKeyDown
3356
3438
  },
3357
- /* @__PURE__ */ import_react43.default.createElement(
3439
+ /* @__PURE__ */ import_react44.default.createElement(
3358
3440
  ContentContainer,
3359
3441
  {
3360
3442
  disabled,
@@ -3368,25 +3450,25 @@ var GridViewItem = (0, import_react43.forwardRef)(function GridViewItem2({
3368
3450
  },
3369
3451
  children
3370
3452
  ),
3371
- textPosition === "below" && /* @__PURE__ */ import_react43.default.createElement(import_react43.default.Fragment, null, /* @__PURE__ */ import_react43.default.createElement(Spacer.Vertical, { size: 8 }), /* @__PURE__ */ import_react43.default.createElement(ItemTitle, { showBackground: false }, title || " "), /* @__PURE__ */ import_react43.default.createElement(ItemDescription, { showBackground: false }, subtitle || " ")),
3372
- textPosition === "overlay" && hovered && (title || subtitle) && /* @__PURE__ */ import_react43.default.createElement(TextOverlay, null, title && /* @__PURE__ */ import_react43.default.createElement(ItemTitle, { showBackground: true }, title), subtitle && /* @__PURE__ */ import_react43.default.createElement(ItemDescription, { showBackground: true }, subtitle)),
3373
- loading && /* @__PURE__ */ import_react43.default.createElement(Shimmer, null, /* @__PURE__ */ import_react43.default.createElement(ActivityIndicator, { opacity: 0.5, size: 13 }))
3453
+ textPosition === "below" && /* @__PURE__ */ import_react44.default.createElement(import_react44.default.Fragment, null, /* @__PURE__ */ import_react44.default.createElement(Spacer.Vertical, { size: 8 }), /* @__PURE__ */ import_react44.default.createElement(ItemTitle, { showBackground: false }, title || " "), /* @__PURE__ */ import_react44.default.createElement(ItemDescription, { showBackground: false }, subtitle || " ")),
3454
+ textPosition === "overlay" && hovered && (title || subtitle) && /* @__PURE__ */ import_react44.default.createElement(TextOverlay, null, title && /* @__PURE__ */ import_react44.default.createElement(ItemTitle, { showBackground: true }, title), subtitle && /* @__PURE__ */ import_react44.default.createElement(ItemDescription, { showBackground: true }, subtitle)),
3455
+ loading && /* @__PURE__ */ import_react44.default.createElement(Shimmer, null, /* @__PURE__ */ import_react44.default.createElement(ActivityIndicator, { opacity: 0.5, size: 13 }))
3374
3456
  );
3375
3457
  if (menuItems && onSelectMenuItem) {
3376
- element = /* @__PURE__ */ import_react43.default.createElement(ContextMenu, { items: menuItems, onSelect: onSelectMenuItem }, element);
3458
+ element = /* @__PURE__ */ import_react44.default.createElement(ContextMenu, { items: menuItems, onSelect: onSelectMenuItem }, element);
3377
3459
  }
3378
3460
  if (textPosition === "toolip") {
3379
- element = /* @__PURE__ */ import_react43.default.createElement(
3461
+ element = /* @__PURE__ */ import_react44.default.createElement(
3380
3462
  Tooltip,
3381
3463
  {
3382
- content: /* @__PURE__ */ import_react43.default.createElement(Stack.V, { gap: 2 }, /* @__PURE__ */ import_react43.default.createElement(ItemTitle, { showBackground: false }, title), /* @__PURE__ */ import_react43.default.createElement(ItemDescription, { showBackground: false }, subtitle))
3464
+ content: /* @__PURE__ */ import_react44.default.createElement(Stack.V, { gap: 2 }, /* @__PURE__ */ import_react44.default.createElement(ItemTitle, { showBackground: false }, title), /* @__PURE__ */ import_react44.default.createElement(ItemDescription, { showBackground: false }, subtitle))
3383
3465
  },
3384
3466
  element
3385
3467
  );
3386
3468
  }
3387
3469
  return element;
3388
3470
  });
3389
- var GridViewContext = (0, import_react43.createContext)({
3471
+ var GridViewContext = (0, import_react44.createContext)({
3390
3472
  size: "small",
3391
3473
  textPosition: "below",
3392
3474
  bordered: false,
@@ -3401,7 +3483,7 @@ function GridViewRoot({
3401
3483
  bordered = false,
3402
3484
  disabled = false
3403
3485
  }) {
3404
- const handleClick = (0, import_react43.useCallback)(
3486
+ const handleClick = (0, import_react44.useCallback)(
3405
3487
  (event) => {
3406
3488
  event.stopPropagation();
3407
3489
  event.preventDefault();
@@ -3409,7 +3491,7 @@ function GridViewRoot({
3409
3491
  },
3410
3492
  [onClick]
3411
3493
  );
3412
- const contextValue = (0, import_react43.useMemo)(
3494
+ const contextValue = (0, import_react44.useMemo)(
3413
3495
  () => ({
3414
3496
  size: size2,
3415
3497
  textPosition,
@@ -3418,33 +3500,33 @@ function GridViewRoot({
3418
3500
  }),
3419
3501
  [bordered, disabled, size2, textPosition]
3420
3502
  );
3421
- return /* @__PURE__ */ import_react43.default.createElement(GridViewContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react43.default.createElement(Container3, { onClick: handleClick, scrollable }, scrollable ? /* @__PURE__ */ import_react43.default.createElement(ScrollArea, null, children) : children));
3503
+ return /* @__PURE__ */ import_react44.default.createElement(GridViewContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react44.default.createElement(Container3, { onClick: handleClick, scrollable }, scrollable ? /* @__PURE__ */ import_react44.default.createElement(ScrollArea, null, children) : children));
3422
3504
  }
3423
3505
  function GridViewSection({
3424
3506
  children,
3425
3507
  padding = "20px"
3426
3508
  }) {
3427
- const { size: size2 } = (0, import_react43.useContext)(GridViewContext);
3428
- return /* @__PURE__ */ import_react43.default.createElement(Grid2, { size: size2, padding }, children);
3509
+ const { size: size2 } = (0, import_react44.useContext)(GridViewContext);
3510
+ return /* @__PURE__ */ import_react44.default.createElement(Grid2, { size: size2, padding }, children);
3429
3511
  }
3430
3512
  function GridViewSectionHeader({ title }) {
3431
3513
  const grouped = title.split("/");
3432
- return /* @__PURE__ */ import_react43.default.createElement(SectionHeaderContainer, null, /* @__PURE__ */ import_react43.default.createElement(Spacer.Vertical, { size: 24 }), withSeparatorElements(
3433
- grouped.map((title2, index) => /* @__PURE__ */ import_react43.default.createElement(SectionTitle, { last: index === grouped.length - 1 }, title2)),
3434
- /* @__PURE__ */ import_react43.default.createElement(SectionTitle, null, " / ")
3514
+ return /* @__PURE__ */ import_react44.default.createElement(SectionHeaderContainer, null, /* @__PURE__ */ import_react44.default.createElement(Spacer.Vertical, { size: 24 }), withSeparatorElements(
3515
+ grouped.map((title2, index) => /* @__PURE__ */ import_react44.default.createElement(SectionTitle, { last: index === grouped.length - 1 }, title2)),
3516
+ /* @__PURE__ */ import_react44.default.createElement(SectionTitle, null, " / ")
3435
3517
  ));
3436
3518
  }
3437
3519
  var GridView;
3438
3520
  ((GridView2) => {
3439
- GridView2.Root = (0, import_react43.memo)(GridViewRoot);
3440
- GridView2.Item = (0, import_react43.memo)(GridViewItem);
3441
- GridView2.Section = (0, import_react43.memo)(GridViewSection);
3442
- GridView2.SectionHeader = (0, import_react43.memo)(GridViewSectionHeader);
3521
+ GridView2.Root = (0, import_react44.memo)(GridViewRoot);
3522
+ GridView2.Item = (0, import_react44.memo)(GridViewItem);
3523
+ GridView2.Section = (0, import_react44.memo)(GridViewSection);
3524
+ GridView2.SectionHeader = (0, import_react44.memo)(GridViewSectionHeader);
3443
3525
  })(GridView || (GridView = {}));
3444
3526
 
3445
3527
  // src/components/InputFieldWithCompletions.tsx
3446
3528
  var import_noya_utils8 = require("@noya-app/noya-utils");
3447
- var import_react47 = __toESM(require("react"));
3529
+ var import_react48 = __toESM(require("react"));
3448
3530
  var import_styled_components27 = __toESM(require("styled-components"));
3449
3531
 
3450
3532
  // src/utils/fuzzyScorer.ts
@@ -3521,7 +3603,7 @@ function mergeRanges(ranges) {
3521
3603
  // src/components/ListView.tsx
3522
3604
  var import_noya_utils7 = require("@noya-app/noya-utils");
3523
3605
  var import_react_compose_refs2 = require("@radix-ui/react-compose-refs");
3524
- var import_react45 = __toESM(require("react"));
3606
+ var import_react46 = __toESM(require("react"));
3525
3607
  var import_react_virtualized = require("react-virtualized");
3526
3608
  var import_react_window = require("react-window");
3527
3609
  var import_styled_components25 = __toESM(require("styled-components"));
@@ -3552,7 +3634,7 @@ function mergeEventHandlers(...handlerMaps) {
3552
3634
  // src/components/Sortable.tsx
3553
3635
  var import_core = require("@dnd-kit/core");
3554
3636
  var import_sortable = require("@dnd-kit/sortable");
3555
- var import_react44 = __toESM(require("react"));
3637
+ var import_react45 = __toESM(require("react"));
3556
3638
  var import_react_dom = require("react-dom");
3557
3639
  var normalizeListDestinationIndex = (index, position) => {
3558
3640
  return position === "above" ? index : index + 1;
@@ -3566,7 +3648,7 @@ var defaultAcceptsDrop = (sourceIndex, destinationIndex, position) => {
3566
3648
  }
3567
3649
  return true;
3568
3650
  };
3569
- var SortableItemContext = (0, import_react44.createContext)({
3651
+ var SortableItemContext = (0, import_react45.createContext)({
3570
3652
  keys: [],
3571
3653
  position: { x: 0, y: 0 },
3572
3654
  acceptsDrop: defaultAcceptsDrop,
@@ -3588,7 +3670,7 @@ function SortableItem({
3588
3670
  disabled,
3589
3671
  children
3590
3672
  }) {
3591
- const { keys, position, acceptsDrop, setActivatorEvent, axis } = (0, import_react44.useContext)(SortableItemContext);
3673
+ const { keys, position, acceptsDrop, setActivatorEvent, axis } = (0, import_react45.useContext)(SortableItemContext);
3592
3674
  const sortable = (0, import_sortable.useSortable)({ id, disabled });
3593
3675
  const {
3594
3676
  active,
@@ -3608,7 +3690,7 @@ function SortableItem({
3608
3690
  const eventY = activatorEvent?.clientY ?? 0;
3609
3691
  const offsetLeft = eventX + position.x;
3610
3692
  const offsetTop = eventY + position.y;
3611
- const ref = (0, import_react44.useCallback)((node) => setNodeRef(node), [setNodeRef]);
3693
+ const ref = (0, import_react45.useCallback)((node) => setNodeRef(node), [setNodeRef]);
3612
3694
  return children({
3613
3695
  ref,
3614
3696
  ...attributes,
@@ -3639,22 +3721,22 @@ function SortableRoot({
3639
3721
  }
3640
3722
  })
3641
3723
  );
3642
- const [activeIndex, setActiveIndex] = (0, import_react44.useState)();
3643
- const activatorEvent = (0, import_react44.useRef)(null);
3644
- const setActivatorEvent = (0, import_react44.useCallback)((event) => {
3724
+ const [activeIndex, setActiveIndex] = (0, import_react45.useState)();
3725
+ const activatorEvent = (0, import_react45.useRef)(null);
3726
+ const setActivatorEvent = (0, import_react45.useCallback)((event) => {
3645
3727
  activatorEvent.current = event;
3646
3728
  }, []);
3647
- const [position, setPosition] = (0, import_react44.useState)({ x: 0, y: 0 });
3648
- const handleDragStart = (0, import_react44.useCallback)(
3729
+ const [position, setPosition] = (0, import_react45.useState)({ x: 0, y: 0 });
3730
+ const handleDragStart = (0, import_react45.useCallback)(
3649
3731
  (event) => {
3650
3732
  setActiveIndex(keys.indexOf(event.active.id));
3651
3733
  },
3652
3734
  [keys]
3653
3735
  );
3654
- const handleDragMove = (0, import_react44.useCallback)((event) => {
3736
+ const handleDragMove = (0, import_react45.useCallback)((event) => {
3655
3737
  setPosition({ ...event.delta });
3656
3738
  }, []);
3657
- const handleDragEnd = (0, import_react44.useCallback)(
3739
+ const handleDragEnd = (0, import_react45.useCallback)(
3658
3740
  (event) => {
3659
3741
  const { active, over } = event;
3660
3742
  setActiveIndex(void 0);
@@ -3681,10 +3763,10 @@ function SortableRoot({
3681
3763
  },
3682
3764
  [acceptsDrop, axis, keys, onMoveItem, position.x, position.y]
3683
3765
  );
3684
- return /* @__PURE__ */ import_react44.default.createElement(
3766
+ return /* @__PURE__ */ import_react45.default.createElement(
3685
3767
  SortableItemContext.Provider,
3686
3768
  {
3687
- value: (0, import_react44.useMemo)(
3769
+ value: (0, import_react45.useMemo)(
3688
3770
  () => ({
3689
3771
  keys,
3690
3772
  acceptsDrop,
@@ -3695,7 +3777,7 @@ function SortableRoot({
3695
3777
  [acceptsDrop, axis, keys, position, setActivatorEvent]
3696
3778
  )
3697
3779
  },
3698
- /* @__PURE__ */ import_react44.default.createElement(
3780
+ /* @__PURE__ */ import_react45.default.createElement(
3699
3781
  import_core.DndContext,
3700
3782
  {
3701
3783
  sensors,
@@ -3704,9 +3786,9 @@ function SortableRoot({
3704
3786
  onDragMove: handleDragMove,
3705
3787
  onDragEnd: handleDragEnd
3706
3788
  },
3707
- /* @__PURE__ */ import_react44.default.createElement(import_sortable.SortableContext, { items: keys, strategy: import_sortable.verticalListSortingStrategy }, children),
3789
+ /* @__PURE__ */ import_react45.default.createElement(import_sortable.SortableContext, { items: keys, strategy: import_sortable.verticalListSortingStrategy }, children),
3708
3790
  renderOverlay && (0, import_react_dom.createPortal)(
3709
- /* @__PURE__ */ import_react44.default.createElement(import_core.DragOverlay, { dropAnimation: null }, activeIndex !== void 0 && activeIndex >= 0 && renderOverlay(activeIndex)),
3791
+ /* @__PURE__ */ import_react45.default.createElement(import_core.DragOverlay, { dropAnimation: null }, activeIndex !== void 0 && activeIndex >= 0 && renderOverlay(activeIndex)),
3710
3792
  document.body
3711
3793
  )
3712
3794
  )
@@ -3714,17 +3796,17 @@ function SortableRoot({
3714
3796
  }
3715
3797
  var Sortable;
3716
3798
  ((Sortable2) => {
3717
- Sortable2.Item = (0, import_react44.memo)(SortableItem);
3718
- Sortable2.Root = (0, import_react44.memo)(SortableRoot);
3799
+ Sortable2.Item = (0, import_react45.memo)(SortableItem);
3800
+ Sortable2.Root = (0, import_react45.memo)(SortableRoot);
3719
3801
  })(Sortable || (Sortable = {}));
3720
3802
 
3721
3803
  // src/components/ListView.tsx
3722
3804
  var ROW_HEIGHT = 31;
3723
3805
  var SECTION_HEADER_LABEL_HEIGHT = 27;
3724
- var DraggingContext = (0, import_react45.createContext)({
3806
+ var DraggingContext = (0, import_react46.createContext)({
3725
3807
  indentation: 12
3726
3808
  });
3727
- var ListRowContext = (0, import_react45.createContext)({
3809
+ var ListRowContext = (0, import_react46.createContext)({
3728
3810
  marginType: "none",
3729
3811
  selectedPosition: "only",
3730
3812
  sortable: false,
@@ -3754,8 +3836,8 @@ function ListViewEditableRowTitle({
3754
3836
  autoFocus,
3755
3837
  placeholder
3756
3838
  }) {
3757
- const inputRef = (0, import_react45.useRef)(null);
3758
- (0, import_react45.useLayoutEffect)(() => {
3839
+ const inputRef = (0, import_react46.useRef)(null);
3840
+ (0, import_react46.useLayoutEffect)(() => {
3759
3841
  const element = inputRef.current;
3760
3842
  if (!element || !autoFocus)
3761
3843
  return;
@@ -3764,7 +3846,7 @@ function ListViewEditableRowTitle({
3764
3846
  element.select();
3765
3847
  }, 0);
3766
3848
  }, [autoFocus]);
3767
- return /* @__PURE__ */ import_react45.default.createElement(
3849
+ return /* @__PURE__ */ import_react46.default.createElement(
3768
3850
  ListViewEditableRowTitleElement,
3769
3851
  {
3770
3852
  ref: inputRef,
@@ -3886,7 +3968,7 @@ var ListViewDragIndicatorElement = import_styled_components25.default.div(({ the
3886
3968
  boxShadow: "0 0 2px rgba(0,0,0,0.5)"
3887
3969
  }
3888
3970
  }));
3889
- var ListViewRow = (0, import_react45.forwardRef)(function ListViewRow2({
3971
+ var ListViewRow = (0, import_react46.forwardRef)(function ListViewRow2({
3890
3972
  id,
3891
3973
  tabIndex = 0,
3892
3974
  gap,
@@ -3919,12 +4001,12 @@ var ListViewRow = (0, import_react45.forwardRef)(function ListViewRow2({
3919
4001
  divider,
3920
4002
  gap: listGap,
3921
4003
  colorScheme
3922
- } = (0, import_react45.useContext)(ListRowContext);
4004
+ } = (0, import_react46.useContext)(ListRowContext);
3923
4005
  const { hoverProps } = useHover({
3924
4006
  onHoverChange
3925
4007
  });
3926
- const { indentation, isDragging } = (0, import_react45.useContext)(DraggingContext);
3927
- const handlePress = (0, import_react45.useCallback)(
4008
+ const { indentation, isDragging } = (0, import_react46.useContext)(DraggingContext);
4009
+ const handlePress = (0, import_react46.useCallback)(
3928
4010
  (event) => {
3929
4011
  event.preventDefault();
3930
4012
  if (event.button !== 0)
@@ -3933,14 +4015,14 @@ var ListViewRow = (0, import_react45.forwardRef)(function ListViewRow2({
3933
4015
  },
3934
4016
  [onPress]
3935
4017
  );
3936
- const handleDoubleClick = (0, import_react45.useCallback)(
4018
+ const handleDoubleClick = (0, import_react46.useCallback)(
3937
4019
  (event) => {
3938
4020
  event.stopPropagation();
3939
4021
  onDoubleClick?.();
3940
4022
  },
3941
4023
  [onDoubleClick]
3942
4024
  );
3943
- const mergedStyle = (0, import_react45.useMemo)(() => {
4025
+ const mergedStyle = (0, import_react46.useMemo)(() => {
3944
4026
  return isDragging ? {
3945
4027
  // TODO: Where do these offsets actually come from?
3946
4028
  transform: `translate3d(-36px, -6px, 0)`,
@@ -3952,7 +4034,7 @@ var ListViewRow = (0, import_react45.forwardRef)(function ListViewRow2({
3952
4034
  relativeDropPosition,
3953
4035
  ...renderProps
3954
4036
  }, ref) => {
3955
- const element = /* @__PURE__ */ import_react45.default.createElement(
4037
+ const element = /* @__PURE__ */ import_react46.default.createElement(
3956
4038
  RowContainer,
3957
4039
  {
3958
4040
  ref,
@@ -3983,7 +4065,7 @@ var ListViewRow = (0, import_react45.forwardRef)(function ListViewRow2({
3983
4065
  ),
3984
4066
  tabIndex
3985
4067
  },
3986
- relativeDropPosition && /* @__PURE__ */ import_react45.default.createElement(
4068
+ relativeDropPosition && /* @__PURE__ */ import_react46.default.createElement(
3987
4069
  ListViewDragIndicatorElement,
3988
4070
  {
3989
4071
  colorScheme,
@@ -3992,11 +4074,11 @@ var ListViewRow = (0, import_react45.forwardRef)(function ListViewRow2({
3992
4074
  gap: listGap
3993
4075
  }
3994
4076
  ),
3995
- depth > 0 && /* @__PURE__ */ import_react45.default.createElement(Spacer.Horizontal, { size: depth * indentation }),
4077
+ depth > 0 && /* @__PURE__ */ import_react46.default.createElement(Spacer.Horizontal, { size: depth * indentation }),
3996
4078
  children
3997
4079
  );
3998
4080
  if (menuItems && onSelectMenuItem) {
3999
- return /* @__PURE__ */ import_react45.default.createElement(
4081
+ return /* @__PURE__ */ import_react46.default.createElement(
4000
4082
  ContextMenu,
4001
4083
  {
4002
4084
  items: menuItems,
@@ -4009,21 +4091,21 @@ var ListViewRow = (0, import_react45.forwardRef)(function ListViewRow2({
4009
4091
  return element;
4010
4092
  };
4011
4093
  if (sortable && id) {
4012
- return /* @__PURE__ */ import_react45.default.createElement(Sortable.Item, { id, disabled: overrideSortable === false }, ({ ref: sortableRef, ...sortableProps }) => renderContent(sortableProps, (0, import_react_compose_refs2.composeRefs)(sortableRef, forwardedRef)));
4094
+ return /* @__PURE__ */ import_react46.default.createElement(Sortable.Item, { id, disabled: overrideSortable === false }, ({ ref: sortableRef, ...sortableProps }) => renderContent(sortableProps, (0, import_react_compose_refs2.composeRefs)(sortableRef, forwardedRef)));
4013
4095
  }
4014
4096
  return renderContent({}, forwardedRef);
4015
4097
  });
4016
- var RenderItemContext = (0, import_react45.createContext)(
4098
+ var RenderItemContext = (0, import_react46.createContext)(
4017
4099
  () => null
4018
4100
  );
4019
- var VirtualizedListRow = (0, import_react45.memo)(function VirtualizedListRow2({
4101
+ var VirtualizedListRow = (0, import_react46.memo)(function VirtualizedListRow2({
4020
4102
  index,
4021
4103
  style: style3
4022
4104
  }) {
4023
- const renderItem = (0, import_react45.useContext)(RenderItemContext);
4024
- return /* @__PURE__ */ import_react45.default.createElement("div", { key: index, style: style3 }, renderItem(index));
4105
+ const renderItem = (0, import_react46.useContext)(RenderItemContext);
4106
+ return /* @__PURE__ */ import_react46.default.createElement("div", { key: index, style: style3 }, renderItem(index));
4025
4107
  });
4026
- var VirtualizedListInner = (0, import_react45.forwardRef)(function VirtualizedListInner2({
4108
+ var VirtualizedListInner = (0, import_react46.forwardRef)(function VirtualizedListInner2({
4027
4109
  size: size2,
4028
4110
  scrollElement,
4029
4111
  items,
@@ -4031,20 +4113,20 @@ var VirtualizedListInner = (0, import_react45.forwardRef)(function VirtualizedLi
4031
4113
  keyExtractor,
4032
4114
  renderItem
4033
4115
  }, ref) {
4034
- const listRef = (0, import_react45.useRef)(null);
4035
- (0, import_react45.useImperativeHandle)(ref, () => ({
4116
+ const listRef = (0, import_react46.useRef)(null);
4117
+ (0, import_react46.useImperativeHandle)(ref, () => ({
4036
4118
  scrollToIndex(index) {
4037
4119
  listRef.current?.scrollToItem(index);
4038
4120
  }
4039
4121
  }));
4040
- (0, import_react45.useLayoutEffect)(() => {
4122
+ (0, import_react46.useLayoutEffect)(() => {
4041
4123
  listRef.current?.resetAfterIndex(0);
4042
4124
  }, [
4043
4125
  // When items change, we need to re-render the virtualized list,
4044
4126
  // since it doesn't currently support row height changes
4045
4127
  items
4046
4128
  ]);
4047
- const listStyle = (0, import_react45.useMemo)(
4129
+ const listStyle = (0, import_react46.useMemo)(
4048
4130
  () => ({
4049
4131
  overflowX: "initial",
4050
4132
  overflowY: "initial",
@@ -4052,18 +4134,18 @@ var VirtualizedListInner = (0, import_react45.forwardRef)(function VirtualizedLi
4052
4134
  }),
4053
4135
  []
4054
4136
  );
4055
- return /* @__PURE__ */ import_react45.default.createElement(RenderItemContext.Provider, { value: renderItem }, /* @__PURE__ */ import_react45.default.createElement(
4137
+ return /* @__PURE__ */ import_react46.default.createElement(RenderItemContext.Provider, { value: renderItem }, /* @__PURE__ */ import_react46.default.createElement(
4056
4138
  import_react_virtualized.WindowScroller,
4057
4139
  {
4058
4140
  scrollElement,
4059
- style: (0, import_react45.useMemo)(() => ({ flex: "1 1 auto" }), [])
4141
+ style: (0, import_react46.useMemo)(() => ({ flex: "1 1 auto" }), [])
4060
4142
  },
4061
- (0, import_react45.useCallback)(
4143
+ (0, import_react46.useCallback)(
4062
4144
  ({
4063
4145
  registerChild,
4064
4146
  onChildScroll,
4065
4147
  scrollTop
4066
- }) => /* @__PURE__ */ import_react45.default.createElement("div", { ref: registerChild }, /* @__PURE__ */ import_react45.default.createElement(
4148
+ }) => /* @__PURE__ */ import_react46.default.createElement("div", { ref: registerChild }, /* @__PURE__ */ import_react46.default.createElement(
4067
4149
  import_react_window.VariableSizeList,
4068
4150
  {
4069
4151
  ref: listRef,
@@ -4093,7 +4175,7 @@ var VirtualizedListInner = (0, import_react45.forwardRef)(function VirtualizedLi
4093
4175
  )
4094
4176
  ));
4095
4177
  });
4096
- var VirtualizedList = (0, import_react45.memo)(
4178
+ var VirtualizedList = (0, import_react46.memo)(
4097
4179
  VirtualizedListInner
4098
4180
  );
4099
4181
  var RootContainer2 = import_styled_components25.default.div(({ theme, scrollable, gap }) => ({
@@ -4104,7 +4186,7 @@ var RootContainer2 = import_styled_components25.default.div(({ theme, scrollable
4104
4186
  color: theme.colors.textMuted,
4105
4187
  gap
4106
4188
  }));
4107
- var ListViewRootInner = (0, import_react45.forwardRef)(function ListViewRootInner2({
4189
+ var ListViewRootInner = (0, import_react46.forwardRef)(function ListViewRootInner2({
4108
4190
  onPress,
4109
4191
  scrollable = false,
4110
4192
  expandable = true,
@@ -4123,7 +4205,7 @@ var ListViewRootInner = (0, import_react45.forwardRef)(function ListViewRootInne
4123
4205
  colorScheme = "primary",
4124
4206
  gap = 0
4125
4207
  }, forwardedRef) {
4126
- const handleClick = (0, import_react45.useCallback)(
4208
+ const handleClick = (0, import_react46.useCallback)(
4127
4209
  (event) => {
4128
4210
  if (event.target instanceof HTMLElement && event.target.classList.contains("scroll-component"))
4129
4211
  return;
@@ -4133,19 +4215,19 @@ var ListViewRootInner = (0, import_react45.forwardRef)(function ListViewRootInne
4133
4215
  },
4134
4216
  [onPress]
4135
4217
  );
4136
- const renderChild = (0, import_react45.useCallback)(
4218
+ const renderChild = (0, import_react46.useCallback)(
4137
4219
  (index) => renderItem(data[index], index, { isDragging: false }),
4138
4220
  [data, renderItem]
4139
4221
  );
4140
- const getItemContextValue = (0, import_react45.useCallback)(
4222
+ const getItemContextValue = (0, import_react46.useCallback)(
4141
4223
  (i) => {
4142
4224
  const current = renderChild(i);
4143
- if (!(0, import_react45.isValidElement)(current))
4225
+ if (!(0, import_react46.isValidElement)(current))
4144
4226
  return;
4145
4227
  const prevChild = i - 1 >= 0 && renderChild(i - 1);
4146
4228
  const nextChild = i + 1 < data.length && renderChild(i + 1);
4147
- const next = (0, import_react45.isValidElement)(nextChild) ? nextChild : void 0;
4148
- const prev = (0, import_react45.isValidElement)(prevChild) ? prevChild : void 0;
4229
+ const next = (0, import_react46.isValidElement)(nextChild) ? nextChild : void 0;
4230
+ const prev = (0, import_react46.isValidElement)(prevChild) ? prevChild : void 0;
4149
4231
  const hasMarginTop = !prev;
4150
4232
  const hasMarginBottom = !next || current.props.isSectionHeader || next && next.props.isSectionHeader;
4151
4233
  let marginType;
@@ -4197,26 +4279,26 @@ var ListViewRootInner = (0, import_react45.forwardRef)(function ListViewRootInne
4197
4279
  gap
4198
4280
  ]
4199
4281
  );
4200
- const draggingContextOverlayValue = (0, import_react45.useMemo)(
4282
+ const draggingContextOverlayValue = (0, import_react46.useMemo)(
4201
4283
  () => ({ indentation, isDragging: true }),
4202
4284
  [indentation]
4203
4285
  );
4204
- const renderOverlay = (0, import_react45.useCallback)(
4205
- (index) => /* @__PURE__ */ import_react45.default.createElement("div", { style: { opacity: 0.25 } }, /* @__PURE__ */ import_react45.default.createElement(DraggingContext.Provider, { value: draggingContextOverlayValue }, renderItem(data[index], index, { isDragging: true }))),
4286
+ const renderOverlay = (0, import_react46.useCallback)(
4287
+ (index) => /* @__PURE__ */ import_react46.default.createElement("div", { style: { opacity: 0.25 } }, /* @__PURE__ */ import_react46.default.createElement(DraggingContext.Provider, { value: draggingContextOverlayValue }, renderItem(data[index], index, { isDragging: true }))),
4206
4288
  [draggingContextOverlayValue, renderItem, data]
4207
4289
  );
4208
- const renderWrappedChild = (0, import_react45.useCallback)(
4290
+ const renderWrappedChild = (0, import_react46.useCallback)(
4209
4291
  (index) => {
4210
4292
  const contextValue = getItemContextValue(index);
4211
4293
  const current = renderChild(index);
4212
- if (!contextValue || !(0, import_react45.isValidElement)(current))
4294
+ if (!contextValue || !(0, import_react46.isValidElement)(current))
4213
4295
  return null;
4214
- return /* @__PURE__ */ import_react45.default.createElement(ListRowContext.Provider, { key: current.key, value: contextValue }, current);
4296
+ return /* @__PURE__ */ import_react46.default.createElement(ListRowContext.Provider, { key: current.key, value: contextValue }, current);
4215
4297
  },
4216
4298
  [getItemContextValue, renderChild]
4217
4299
  );
4218
- const ids = (0, import_react45.useMemo)(() => data.map(keyExtractor), [keyExtractor, data]);
4219
- const withSortable = (children) => sortable ? /* @__PURE__ */ import_react45.default.createElement(
4300
+ const ids = (0, import_react46.useMemo)(() => data.map(keyExtractor), [keyExtractor, data]);
4301
+ const withSortable = (children) => sortable ? /* @__PURE__ */ import_react46.default.createElement(
4220
4302
  Sortable.Root,
4221
4303
  {
4222
4304
  onMoveItem,
@@ -4226,8 +4308,8 @@ var ListViewRootInner = (0, import_react45.forwardRef)(function ListViewRootInne
4226
4308
  },
4227
4309
  children
4228
4310
  ) : children;
4229
- const withScrollable = (children) => scrollable ? /* @__PURE__ */ import_react45.default.createElement(ScrollArea, null, children) : children(null);
4230
- const getItemHeight = (0, import_react45.useCallback)(
4311
+ const withScrollable = (children) => scrollable ? /* @__PURE__ */ import_react46.default.createElement(ScrollArea, null, children) : children(null);
4312
+ const getItemHeight = (0, import_react46.useCallback)(
4231
4313
  (index) => {
4232
4314
  const child = getItemContextValue(index);
4233
4315
  const margin = child?.marginType ? getPositionMargin(child.marginType) : { top: 0, bottom: 0 };
@@ -4236,12 +4318,12 @@ var ListViewRootInner = (0, import_react45.forwardRef)(function ListViewRootInne
4236
4318
  },
4237
4319
  [getItemContextValue, variant]
4238
4320
  );
4239
- const getKey = (0, import_react45.useCallback)(
4321
+ const getKey = (0, import_react46.useCallback)(
4240
4322
  (index) => keyExtractor(data[index], index),
4241
4323
  [data, keyExtractor]
4242
4324
  );
4243
- const draggingContextValue = (0, import_react45.useMemo)(() => ({ indentation }), [indentation]);
4244
- return /* @__PURE__ */ import_react45.default.createElement(DraggingContext.Provider, { value: draggingContextValue }, /* @__PURE__ */ import_react45.default.createElement(
4325
+ const draggingContextValue = (0, import_react46.useMemo)(() => ({ indentation }), [indentation]);
4326
+ return /* @__PURE__ */ import_react46.default.createElement(DraggingContext.Provider, { value: draggingContextValue }, /* @__PURE__ */ import_react46.default.createElement(
4245
4327
  RootContainer2,
4246
4328
  {
4247
4329
  ...{
@@ -4252,7 +4334,7 @@ var ListViewRootInner = (0, import_react45.forwardRef)(function ListViewRootInne
4252
4334
  },
4253
4335
  withScrollable(
4254
4336
  (scrollElementRef) => withSortable(
4255
- virtualized ? /* @__PURE__ */ import_react45.default.createElement(
4337
+ virtualized ? /* @__PURE__ */ import_react46.default.createElement(
4256
4338
  VirtualizedList,
4257
4339
  {
4258
4340
  ref: forwardedRef,
@@ -4268,42 +4350,42 @@ var ListViewRootInner = (0, import_react45.forwardRef)(function ListViewRootInne
4268
4350
  )
4269
4351
  ));
4270
4352
  });
4271
- var ListViewRoot = (0, import_react45.memo)(ListViewRootInner);
4272
- var ChildrenListViewInner = (0, import_react45.forwardRef)(function ChildrenListViewInner2({ children, ...rest }, forwardedRef) {
4273
- const items = (0, import_react45.useMemo)(
4274
- () => import_react45.Children.toArray(children).flatMap(
4275
- (child) => (0, import_react45.isValidElement)(child) ? [child] : []
4353
+ var ListViewRoot = (0, import_react46.memo)(ListViewRootInner);
4354
+ var ChildrenListViewInner = (0, import_react46.forwardRef)(function ChildrenListViewInner2({ children, ...rest }, forwardedRef) {
4355
+ const items = (0, import_react46.useMemo)(
4356
+ () => import_react46.Children.toArray(children).flatMap(
4357
+ (child) => (0, import_react46.isValidElement)(child) ? [child] : []
4276
4358
  ),
4277
4359
  [children]
4278
4360
  );
4279
- return /* @__PURE__ */ import_react45.default.createElement(
4361
+ return /* @__PURE__ */ import_react46.default.createElement(
4280
4362
  ListViewRoot,
4281
4363
  {
4282
4364
  ref: forwardedRef,
4283
4365
  ...rest,
4284
4366
  data: items,
4285
- keyExtractor: (0, import_react45.useCallback)(
4367
+ keyExtractor: (0, import_react46.useCallback)(
4286
4368
  ({ key }, index) => typeof key === "string" ? key : (key ?? index).toString(),
4287
4369
  []
4288
4370
  ),
4289
- renderItem: (0, import_react45.useCallback)((item) => item, [])
4371
+ renderItem: (0, import_react46.useCallback)((item) => item, [])
4290
4372
  }
4291
4373
  );
4292
4374
  });
4293
- var ChildrenListView = (0, import_react45.memo)(ChildrenListViewInner);
4294
- var SimpleListViewInner = (0, import_react45.forwardRef)(function SimpleListViewInner2(props, forwardedRef) {
4375
+ var ChildrenListView = (0, import_react46.memo)(ChildrenListViewInner);
4376
+ var SimpleListViewInner = (0, import_react46.forwardRef)(function SimpleListViewInner2(props, forwardedRef) {
4295
4377
  if ("children" in props) {
4296
- return /* @__PURE__ */ import_react45.default.createElement(ChildrenListView, { ref: forwardedRef, ...props });
4378
+ return /* @__PURE__ */ import_react46.default.createElement(ChildrenListView, { ref: forwardedRef, ...props });
4297
4379
  } else {
4298
- return /* @__PURE__ */ import_react45.default.createElement(ListViewRoot, { ref: forwardedRef, ...props });
4380
+ return /* @__PURE__ */ import_react46.default.createElement(ListViewRoot, { ref: forwardedRef, ...props });
4299
4381
  }
4300
4382
  });
4301
- var SimpleListView = (0, import_react45.memo)(SimpleListViewInner);
4383
+ var SimpleListView = (0, import_react46.memo)(SimpleListViewInner);
4302
4384
  var ListView;
4303
4385
  ((ListView2) => {
4304
- ListView2.RowTitle = (0, import_react45.memo)(ListViewRowTitle);
4305
- ListView2.EditableRowTitle = (0, import_react45.memo)(ListViewEditableRowTitle);
4306
- ListView2.Row = (0, import_react45.memo)(ListViewRow);
4386
+ ListView2.RowTitle = (0, import_react46.memo)(ListViewRowTitle);
4387
+ ListView2.EditableRowTitle = (0, import_react46.memo)(ListViewEditableRowTitle);
4388
+ ListView2.Row = (0, import_react46.memo)(ListViewRow);
4307
4389
  ListView2.Root = SimpleListView;
4308
4390
  ListView2.RowContext = ListRowContext;
4309
4391
  ListView2.DragIndicator = ListViewDragIndicatorElement;
@@ -4316,7 +4398,7 @@ var ListView;
4316
4398
  })(ListView || (ListView = {}));
4317
4399
 
4318
4400
  // src/components/Text.tsx
4319
- var import_react46 = __toESM(require("react"));
4401
+ var import_react47 = __toESM(require("react"));
4320
4402
  var import_styled_components26 = __toESM(require("styled-components"));
4321
4403
  var elements = {
4322
4404
  title: "h1",
@@ -4337,7 +4419,7 @@ var StyledElement = import_styled_components26.default.span(({ theme, variant, s
4337
4419
  ...styleProps,
4338
4420
  ...mergeBreakpoints(breakpoints || [])
4339
4421
  }));
4340
- var Text = (0, import_react46.forwardRef)(function Text2({
4422
+ var Text = (0, import_react47.forwardRef)(function Text2({
4341
4423
  as,
4342
4424
  variant,
4343
4425
  breakpoints,
@@ -4349,7 +4431,7 @@ var Text = (0, import_react46.forwardRef)(function Text2({
4349
4431
  ...rest
4350
4432
  }, forwardedRef) {
4351
4433
  const element = as ?? elements[variant] ?? "span";
4352
- return /* @__PURE__ */ import_react46.default.createElement(
4434
+ return /* @__PURE__ */ import_react47.default.createElement(
4353
4435
  StyledElement,
4354
4436
  {
4355
4437
  ref: forwardedRef,
@@ -4365,28 +4447,28 @@ var Text = (0, import_react46.forwardRef)(function Text2({
4365
4447
  children
4366
4448
  );
4367
4449
  });
4368
- var Heading1 = (0, import_react46.forwardRef)(
4369
- (props, ref) => /* @__PURE__ */ import_react46.default.createElement(Text, { ref, ...props, variant: "heading1" })
4450
+ var Heading1 = (0, import_react47.forwardRef)(
4451
+ (props, ref) => /* @__PURE__ */ import_react47.default.createElement(Text, { ref, ...props, variant: "heading1" })
4370
4452
  );
4371
- var Heading2 = (0, import_react46.forwardRef)(
4372
- (props, ref) => /* @__PURE__ */ import_react46.default.createElement(Text, { ref, ...props, variant: "heading2" })
4453
+ var Heading2 = (0, import_react47.forwardRef)(
4454
+ (props, ref) => /* @__PURE__ */ import_react47.default.createElement(Text, { ref, ...props, variant: "heading2" })
4373
4455
  );
4374
- var Heading3 = (0, import_react46.forwardRef)(
4375
- (props, ref) => /* @__PURE__ */ import_react46.default.createElement(Text, { ref, ...props, variant: "heading3" })
4456
+ var Heading3 = (0, import_react47.forwardRef)(
4457
+ (props, ref) => /* @__PURE__ */ import_react47.default.createElement(Text, { ref, ...props, variant: "heading3" })
4376
4458
  );
4377
- var Heading4 = (0, import_react46.forwardRef)(
4378
- (props, ref) => /* @__PURE__ */ import_react46.default.createElement(Text, { ref, ...props, variant: "heading4" })
4459
+ var Heading4 = (0, import_react47.forwardRef)(
4460
+ (props, ref) => /* @__PURE__ */ import_react47.default.createElement(Text, { ref, ...props, variant: "heading4" })
4379
4461
  );
4380
- var Heading5 = (0, import_react46.forwardRef)(
4381
- (props, ref) => /* @__PURE__ */ import_react46.default.createElement(Text, { ref, ...props, variant: "heading5" })
4462
+ var Heading5 = (0, import_react47.forwardRef)(
4463
+ (props, ref) => /* @__PURE__ */ import_react47.default.createElement(Text, { ref, ...props, variant: "heading5" })
4382
4464
  );
4383
- var Body = (0, import_react46.forwardRef)(
4384
- (props, ref) => /* @__PURE__ */ import_react46.default.createElement(Text, { ref, ...props, variant: "body" })
4465
+ var Body = (0, import_react47.forwardRef)(
4466
+ (props, ref) => /* @__PURE__ */ import_react47.default.createElement(Text, { ref, ...props, variant: "body" })
4385
4467
  );
4386
- var Small = (0, import_react46.forwardRef)(
4387
- (props, ref) => /* @__PURE__ */ import_react46.default.createElement(Text, { ref, ...props, variant: "small" })
4468
+ var Small = (0, import_react47.forwardRef)(
4469
+ (props, ref) => /* @__PURE__ */ import_react47.default.createElement(Text, { ref, ...props, variant: "small" })
4388
4470
  );
4389
- var Italic = ({ children }) => /* @__PURE__ */ import_react46.default.createElement(
4471
+ var Italic = ({ children }) => /* @__PURE__ */ import_react47.default.createElement(
4390
4472
  "span",
4391
4473
  {
4392
4474
  style: {
@@ -4428,15 +4510,15 @@ var CompletionToken = import_styled_components27.default.span(
4428
4510
  whiteSpace: "pre"
4429
4511
  })
4430
4512
  );
4431
- var CompletionMenu = (0, import_react47.memo)(
4432
- (0, import_react47.forwardRef)(function CompletionMenu2({
4513
+ var CompletionMenu = (0, import_react48.memo)(
4514
+ (0, import_react48.forwardRef)(function CompletionMenu2({
4433
4515
  items,
4434
4516
  selectedIndex,
4435
4517
  onSelectItem,
4436
4518
  onHoverIndex,
4437
4519
  listSize
4438
4520
  }, forwardedRef) {
4439
- return /* @__PURE__ */ import_react47.default.createElement(
4521
+ return /* @__PURE__ */ import_react48.default.createElement(
4440
4522
  ListView.Root,
4441
4523
  {
4442
4524
  ref: forwardedRef,
@@ -4448,13 +4530,13 @@ var CompletionMenu = (0, import_react47.memo)(
4448
4530
  sectionHeaderVariant: "label",
4449
4531
  renderItem: (item, i) => {
4450
4532
  if (item.type === "sectionHeader") {
4451
- return /* @__PURE__ */ import_react47.default.createElement(ListView.Row, { key: item.id, isSectionHeader: true }, item.name);
4533
+ return /* @__PURE__ */ import_react48.default.createElement(ListView.Row, { key: item.id, isSectionHeader: true }, item.name);
4452
4534
  }
4453
4535
  const tokens = fuzzyTokenize({
4454
4536
  item: item.name,
4455
4537
  itemScore: item
4456
4538
  });
4457
- return /* @__PURE__ */ import_react47.default.createElement(
4539
+ return /* @__PURE__ */ import_react48.default.createElement(
4458
4540
  ListView.Row,
4459
4541
  {
4460
4542
  key: item.id,
@@ -4466,16 +4548,16 @@ var CompletionMenu = (0, import_react47.memo)(
4466
4548
  }
4467
4549
  }
4468
4550
  },
4469
- tokens.map((token, j) => /* @__PURE__ */ import_react47.default.createElement(CompletionToken, { key: j, type: token.type }, token.text)),
4470
- item.icon && /* @__PURE__ */ import_react47.default.createElement(import_react47.default.Fragment, null, /* @__PURE__ */ import_react47.default.createElement(Spacer.Horizontal, null), item.icon)
4551
+ tokens.map((token, j) => /* @__PURE__ */ import_react48.default.createElement(CompletionToken, { key: j, type: token.type }, token.text)),
4552
+ item.icon && /* @__PURE__ */ import_react48.default.createElement(import_react48.default.Fragment, null, /* @__PURE__ */ import_react48.default.createElement(Spacer.Horizontal, null), item.icon)
4471
4553
  );
4472
4554
  }
4473
4555
  }
4474
4556
  );
4475
4557
  })
4476
4558
  );
4477
- var InputFieldWithCompletions = (0, import_react47.memo)(
4478
- (0, import_react47.forwardRef)(function InputFieldWithCompletions2({
4559
+ var InputFieldWithCompletions = (0, import_react48.memo)(
4560
+ (0, import_react48.forwardRef)(function InputFieldWithCompletions2({
4479
4561
  loading,
4480
4562
  initialValue = "",
4481
4563
  placeholder,
@@ -4493,13 +4575,13 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
4493
4575
  hideChildrenWhenFocused = false,
4494
4576
  hideMenuWhenEmptyValue = false
4495
4577
  }, forwardedRef) {
4496
- const ref = (0, import_react47.useRef)(null);
4497
- const [isFocused, setIsFocused] = (0, import_react47.useState)(false);
4498
- const [state, _setState] = (0, import_react47.useState)({
4578
+ const ref = (0, import_react48.useRef)(null);
4579
+ const [isFocused, setIsFocused] = (0, import_react48.useState)(false);
4580
+ const [state, _setState] = (0, import_react48.useState)({
4499
4581
  filter: initialValue,
4500
4582
  selectedIndex: 0
4501
4583
  });
4502
- const updateState = (0, import_react47.useCallback)(
4584
+ const updateState = (0, import_react48.useCallback)(
4503
4585
  (newState, hoverItem) => {
4504
4586
  const nextState = { ...state, ...newState };
4505
4587
  const nextItems = filterWithGroupedSections(items, nextState.filter);
@@ -4528,16 +4610,16 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
4528
4610
  },
4529
4611
  [items, onChange, onHoverItem, state]
4530
4612
  );
4531
- const initialValueRef = (0, import_react47.useRef)(initialValue);
4532
- (0, import_react47.useLayoutEffect)(() => {
4613
+ const initialValueRef = (0, import_react48.useRef)(initialValue);
4614
+ (0, import_react48.useLayoutEffect)(() => {
4533
4615
  if (initialValueRef.current === initialValue)
4534
4616
  return;
4535
4617
  initialValueRef.current = initialValue;
4536
4618
  updateState({ filter: initialValue });
4537
4619
  }, [initialValue, updateState]);
4538
4620
  const { filter, selectedIndex } = state;
4539
- const listRef = import_react47.default.useRef(null);
4540
- const filteredItems = (0, import_react47.useMemo)(
4621
+ const listRef = import_react48.default.useRef(null);
4622
+ const filteredItems = (0, import_react48.useMemo)(
4541
4623
  () => filterWithGroupedSections(items, filter),
4542
4624
  [items, filter]
4543
4625
  );
@@ -4553,13 +4635,13 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
4553
4635
  ),
4554
4636
  ListView.rowHeight * 10.5
4555
4637
  );
4556
- (0, import_react47.useEffect)(() => {
4638
+ (0, import_react48.useEffect)(() => {
4557
4639
  if (listRef.current) {
4558
4640
  listRef.current.scrollToIndex(selectedIndex);
4559
4641
  }
4560
4642
  }, [selectedIndex]);
4561
- const lastSubmittedValueRef = (0, import_react47.useRef)(void 0);
4562
- const selectItem = (0, import_react47.useCallback)(
4643
+ const lastSubmittedValueRef = (0, import_react48.useRef)(void 0);
4644
+ const selectItem = (0, import_react48.useCallback)(
4563
4645
  (item) => {
4564
4646
  if (item.type === "sectionHeader")
4565
4647
  return;
@@ -4575,17 +4657,17 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
4575
4657
  },
4576
4658
  [filter, onSelectItem, onHoverItem, ref]
4577
4659
  );
4578
- const handleChange = (0, import_react47.useCallback)(
4660
+ const handleChange = (0, import_react48.useCallback)(
4579
4661
  (value) => updateState({ selectedIndex: 0, filter: value }),
4580
4662
  [updateState]
4581
4663
  );
4582
- const handleBlur = (0, import_react47.useCallback)(() => {
4664
+ const handleBlur = (0, import_react48.useCallback)(() => {
4583
4665
  setIsFocused(false);
4584
4666
  const didSubmit = lastSubmittedValueRef.current?.filter === filter;
4585
4667
  updateState({ selectedIndex: 0, filter: initialValue }, "resetHover");
4586
4668
  onBlur?.(didSubmit, filter);
4587
4669
  }, [filter, initialValue, onBlur, updateState]);
4588
- const handleFocus = (0, import_react47.useCallback)(
4670
+ const handleFocus = (0, import_react48.useCallback)(
4589
4671
  (event) => {
4590
4672
  setIsFocused(true);
4591
4673
  updateState({ selectedIndex: 0, filter: initialValue });
@@ -4593,11 +4675,11 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
4593
4675
  },
4594
4676
  [initialValue, onFocus, updateState]
4595
4677
  );
4596
- const handleIndexChange = (0, import_react47.useCallback)(
4678
+ const handleIndexChange = (0, import_react48.useCallback)(
4597
4679
  (index) => updateState({ selectedIndex: index }),
4598
4680
  [updateState]
4599
4681
  );
4600
- const handleKeyDown = (0, import_react47.useCallback)(
4682
+ const handleKeyDown = (0, import_react48.useCallback)(
4601
4683
  (event) => {
4602
4684
  let handled = false;
4603
4685
  switch (event.key) {
@@ -4661,7 +4743,7 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
4661
4743
  );
4662
4744
  const display = !filter && hideMenuWhenEmptyValue ? "none" : "flex";
4663
4745
  const typeaheadValue = filteredItems[selectedIndex]?.name;
4664
- (0, import_react47.useImperativeHandle)(forwardedRef, () => ({
4746
+ (0, import_react48.useImperativeHandle)(forwardedRef, () => ({
4665
4747
  focus: () => {
4666
4748
  ref.current?.focus();
4667
4749
  },
@@ -4672,14 +4754,14 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
4672
4754
  ref.current?.setSelectionRange(0, ref.current.value.length);
4673
4755
  }
4674
4756
  }));
4675
- return /* @__PURE__ */ import_react47.default.createElement(
4757
+ return /* @__PURE__ */ import_react48.default.createElement(
4676
4758
  InputField.Root,
4677
4759
  {
4678
4760
  size: size2,
4679
4761
  labelSize: 16,
4680
4762
  renderPopoverContent: ({ width }) => {
4681
4763
  const listSize = { width, height };
4682
- return /* @__PURE__ */ import_react47.default.createElement(Stack.V, { flex: `0 0 ${height}px`, display }, filteredItems.length > 0 ? /* @__PURE__ */ import_react47.default.createElement(
4764
+ return /* @__PURE__ */ import_react48.default.createElement(Stack.V, { flex: `0 0 ${height}px`, display }, filteredItems.length > 0 ? /* @__PURE__ */ import_react48.default.createElement(
4683
4765
  CompletionMenu,
4684
4766
  {
4685
4767
  ref: listRef,
@@ -4689,7 +4771,7 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
4689
4771
  onHoverIndex: handleIndexChange,
4690
4772
  listSize
4691
4773
  }
4692
- ) : /* @__PURE__ */ import_react47.default.createElement(
4774
+ ) : /* @__PURE__ */ import_react48.default.createElement(
4693
4775
  Stack.V,
4694
4776
  {
4695
4777
  height: "100px",
@@ -4697,11 +4779,11 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
4697
4779
  alignItems: "center",
4698
4780
  justifyContent: "center"
4699
4781
  },
4700
- /* @__PURE__ */ import_react47.default.createElement(Small, { color: "textDisabled" }, loading ? "Loading" : "No results")
4782
+ /* @__PURE__ */ import_react48.default.createElement(Small, { color: "textDisabled" }, loading ? "Loading" : "No results")
4701
4783
  ));
4702
4784
  }
4703
4785
  },
4704
- /* @__PURE__ */ import_react47.default.createElement(
4786
+ /* @__PURE__ */ import_react48.default.createElement(
4705
4787
  InputField.Input,
4706
4788
  {
4707
4789
  ref,
@@ -4725,9 +4807,9 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
4725
4807
  "aria-controls": "component-listbox"
4726
4808
  }
4727
4809
  ),
4728
- filter && typeaheadValue && typeaheadValue.startsWith(filter) && /* @__PURE__ */ import_react47.default.createElement(InputField.Typeahead, { value: typeaheadValue }),
4810
+ filter && typeaheadValue && typeaheadValue.startsWith(filter) && /* @__PURE__ */ import_react48.default.createElement(InputField.Typeahead, { value: typeaheadValue }),
4729
4811
  (!isFocused || !hideChildrenWhenFocused) && children,
4730
- loading && isFocused && /* @__PURE__ */ import_react47.default.createElement(InputField.Label, null, /* @__PURE__ */ import_react47.default.createElement(ActivityIndicator, null))
4812
+ loading && isFocused && /* @__PURE__ */ import_react48.default.createElement(InputField.Label, null, /* @__PURE__ */ import_react48.default.createElement(ActivityIndicator, null))
4731
4813
  );
4732
4814
  })
4733
4815
  );
@@ -4749,7 +4831,7 @@ function getNextIndex(items, currentIndex, direction, isDisabled) {
4749
4831
  }
4750
4832
 
4751
4833
  // src/components/Label.tsx
4752
- var import_react48 = __toESM(require("react"));
4834
+ var import_react49 = __toESM(require("react"));
4753
4835
  var import_styled_components28 = __toESM(require("styled-components"));
4754
4836
  var LabelLabel = import_styled_components28.default.label(
4755
4837
  ({ theme, selected }) => ({
@@ -4778,17 +4860,17 @@ var LabelContainer2 = import_styled_components28.default.span(({ theme }) => ({
4778
4860
  alignItems: "center"
4779
4861
  }));
4780
4862
  function LabelRoot({ label, children }) {
4781
- return /* @__PURE__ */ import_react48.default.createElement(LabelContainer2, null, children, label && /* @__PURE__ */ import_react48.default.createElement(import_react48.default.Fragment, null, /* @__PURE__ */ import_react48.default.createElement(Spacer.Vertical, { size: 2 }), /* @__PURE__ */ import_react48.default.createElement(LabelLabel, null, label)));
4863
+ return /* @__PURE__ */ import_react49.default.createElement(LabelContainer2, null, children, label && /* @__PURE__ */ import_react49.default.createElement(import_react49.default.Fragment, null, /* @__PURE__ */ import_react49.default.createElement(Spacer.Vertical, { size: 2 }), /* @__PURE__ */ import_react49.default.createElement(LabelLabel, null, label)));
4782
4864
  }
4783
4865
  var Label;
4784
4866
  ((_Label) => {
4785
- _Label.Label = (0, import_react48.memo)(LabelLabel);
4786
- _Label.Root = (0, import_react48.memo)(LabelRoot);
4867
+ _Label.Label = (0, import_react49.memo)(LabelLabel);
4868
+ _Label.Root = (0, import_react49.memo)(LabelRoot);
4787
4869
  })(Label || (Label = {}));
4788
4870
 
4789
4871
  // src/components/LabeledElementView.tsx
4790
4872
  var kiwi = __toESM(require("kiwi.js"));
4791
- var import_react49 = __toESM(require("react"));
4873
+ var import_react50 = __toESM(require("react"));
4792
4874
  var import_styled_components29 = __toESM(require("styled-components"));
4793
4875
  var Container4 = import_styled_components29.default.div(({ theme }) => ({
4794
4876
  display: "flex",
@@ -4807,24 +4889,24 @@ var Labels = import_styled_components29.default.div(({ theme }) => ({
4807
4889
  overflow: "hidden",
4808
4890
  userSelect: "none"
4809
4891
  }));
4810
- var LabeledElementView = (0, import_react49.memo)(function LabeledElementView2({
4892
+ var LabeledElementView = (0, import_react50.memo)(function LabeledElementView2({
4811
4893
  children,
4812
4894
  renderLabel
4813
4895
  }) {
4814
- const elementIds = import_react49.Children.toArray(children).flatMap(
4815
- (child) => (0, import_react49.isValidElement)(child) && child.type === import_react49.Fragment ? child.props.children : [child]
4896
+ const elementIds = import_react50.Children.toArray(children).flatMap(
4897
+ (child) => (0, import_react50.isValidElement)(child) && child.type === import_react50.Fragment ? child.props.children : [child]
4816
4898
  ).map(
4817
- (child) => (0, import_react49.isValidElement)(child) && "id" in child.props ? child.props.id : null
4899
+ (child) => (0, import_react50.isValidElement)(child) && "id" in child.props ? child.props.id : null
4818
4900
  ).filter((id) => !!id);
4819
4901
  const serializedIds = elementIds.join(",");
4820
- const containerRef = (0, import_react49.useRef)(null);
4821
- const refs = (0, import_react49.useMemo)(() => {
4902
+ const containerRef = (0, import_react50.useRef)(null);
4903
+ const refs = (0, import_react50.useMemo)(() => {
4822
4904
  return Object.fromEntries(
4823
- serializedIds.split(",").map((id) => [id, (0, import_react49.createRef)()])
4905
+ serializedIds.split(",").map((id) => [id, (0, import_react50.createRef)()])
4824
4906
  );
4825
4907
  }, [serializedIds]);
4826
- const labelElements = (0, import_react49.useMemo)(() => {
4827
- return serializedIds.split(",").map((id, index) => /* @__PURE__ */ import_react49.default.createElement(
4908
+ const labelElements = (0, import_react50.useMemo)(() => {
4909
+ return serializedIds.split(",").map((id, index) => /* @__PURE__ */ import_react50.default.createElement(
4828
4910
  "span",
4829
4911
  {
4830
4912
  key: id,
@@ -4837,7 +4919,7 @@ var LabeledElementView = (0, import_react49.memo)(function LabeledElementView2({
4837
4919
  })
4838
4920
  ));
4839
4921
  }, [refs, serializedIds, renderLabel]);
4840
- (0, import_react49.useLayoutEffect)(() => {
4922
+ (0, import_react50.useLayoutEffect)(() => {
4841
4923
  if (!containerRef.current)
4842
4924
  return;
4843
4925
  const containerRect = containerRef.current.getBoundingClientRect();
@@ -4902,13 +4984,13 @@ var LabeledElementView = (0, import_react49.memo)(function LabeledElementView2({
4902
4984
  `${Math.max(...heights)}px`
4903
4985
  );
4904
4986
  }, [refs, labelElements]);
4905
- return /* @__PURE__ */ import_react49.default.createElement(Container4, { ref: containerRef }, /* @__PURE__ */ import_react49.default.createElement(Tools, null, children), /* @__PURE__ */ import_react49.default.createElement(Labels, null, labelElements));
4987
+ return /* @__PURE__ */ import_react50.default.createElement(Container4, { ref: containerRef }, /* @__PURE__ */ import_react50.default.createElement(Tools, null, children), /* @__PURE__ */ import_react50.default.createElement(Labels, null, labelElements));
4906
4988
  });
4907
4989
 
4908
4990
  // src/components/Progress.tsx
4909
4991
  var import_noya_utils9 = require("@noya-app/noya-utils");
4910
4992
  var ProgressPrimitive = __toESM(require("@radix-ui/react-progress"));
4911
- var import_react50 = __toESM(require("react"));
4993
+ var import_react51 = __toESM(require("react"));
4912
4994
  var import_styled_components30 = __toESM(require("styled-components"));
4913
4995
  function Progress({
4914
4996
  value,
@@ -4918,7 +5000,7 @@ function Progress({
4918
5000
  variant = "normal"
4919
5001
  }) {
4920
5002
  const clampedValue = (0, import_noya_utils9.clamp)(value, 0, 100);
4921
- return /* @__PURE__ */ import_react50.default.createElement(ProgressRoot, { value: clampedValue, style: { width, flex, height } }, /* @__PURE__ */ import_react50.default.createElement(
5003
+ return /* @__PURE__ */ import_react51.default.createElement(ProgressRoot, { value: clampedValue, style: { width, flex, height } }, /* @__PURE__ */ import_react51.default.createElement(
4922
5004
  ProgressIndicator,
4923
5005
  {
4924
5006
  variant,
@@ -4943,7 +5025,7 @@ var ProgressIndicator = (0, import_styled_components30.default)(ProgressPrimitiv
4943
5025
 
4944
5026
  // src/components/RadioGroup.tsx
4945
5027
  var ToggleGroupPrimitive = __toESM(require("@radix-ui/react-toggle-group"));
4946
- var import_react51 = __toESM(require("react"));
5028
+ var import_react52 = __toESM(require("react"));
4947
5029
  var import_styled_components31 = __toESM(require("styled-components"));
4948
5030
  var ignoredProps3 = /* @__PURE__ */ new Set(["colorScheme"]);
4949
5031
  var StyledRoot = (0, import_styled_components31.default)(ToggleGroupPrimitive.Root).withConfig({
@@ -4996,9 +5078,9 @@ var StyledItem = (0, import_styled_components31.default)(ToggleGroupPrimitive.It
4996
5078
  boxShadow: `0 0 0 1px ${theme.colors.sidebar.background}, 0 0 0 3px ${theme.colors[colorScheme ?? "primary"]}`
4997
5079
  }
4998
5080
  }));
4999
- var ToggleGroupItem = (0, import_react51.forwardRef)(function ToggleGroupItem2({ value, tooltip, children, disabled = false }, forwardedRef) {
5000
- const { colorScheme } = (0, import_react51.useContext)(RadioGroupContext);
5001
- const itemElement = /* @__PURE__ */ import_react51.default.createElement(
5081
+ var ToggleGroupItem = (0, import_react52.forwardRef)(function ToggleGroupItem2({ value, tooltip, children, disabled = false }, forwardedRef) {
5082
+ const { colorScheme } = (0, import_react52.useContext)(RadioGroupContext);
5083
+ const itemElement = /* @__PURE__ */ import_react52.default.createElement(
5002
5084
  StyledItem,
5003
5085
  {
5004
5086
  ref: forwardedRef,
@@ -5008,9 +5090,9 @@ var ToggleGroupItem = (0, import_react51.forwardRef)(function ToggleGroupItem2({
5008
5090
  },
5009
5091
  children
5010
5092
  );
5011
- return tooltip ? /* @__PURE__ */ import_react51.default.createElement(Tooltip, { content: tooltip }, itemElement) : itemElement;
5093
+ return tooltip ? /* @__PURE__ */ import_react52.default.createElement(Tooltip, { content: tooltip }, itemElement) : itemElement;
5012
5094
  });
5013
- var RadioGroupContext = (0, import_react51.createContext)({
5095
+ var RadioGroupContext = (0, import_react52.createContext)({
5014
5096
  colorScheme: "primary"
5015
5097
  });
5016
5098
  function ToggleGroupRoot({
@@ -5021,8 +5103,8 @@ function ToggleGroupRoot({
5021
5103
  allowEmpty,
5022
5104
  children
5023
5105
  }) {
5024
- const contextValue = (0, import_react51.useMemo)(() => ({ colorScheme }), [colorScheme]);
5025
- const handleValueChange = (0, import_react51.useCallback)(
5106
+ const contextValue = (0, import_react52.useMemo)(() => ({ colorScheme }), [colorScheme]);
5107
+ const handleValueChange = (0, import_react52.useCallback)(
5026
5108
  (value2) => {
5027
5109
  if (!allowEmpty && !value2)
5028
5110
  return;
@@ -5030,7 +5112,7 @@ function ToggleGroupRoot({
5030
5112
  },
5031
5113
  [allowEmpty, onValueChange]
5032
5114
  );
5033
- return /* @__PURE__ */ import_react51.default.createElement(RadioGroupContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react51.default.createElement(
5115
+ return /* @__PURE__ */ import_react52.default.createElement(RadioGroupContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react52.default.createElement(
5034
5116
  StyledRoot,
5035
5117
  {
5036
5118
  id,
@@ -5044,28 +5126,28 @@ function ToggleGroupRoot({
5044
5126
  }
5045
5127
  var RadioGroup;
5046
5128
  ((RadioGroup2) => {
5047
- RadioGroup2.Root = (0, import_react51.memo)(ToggleGroupRoot);
5048
- RadioGroup2.Item = (0, import_react51.memo)(ToggleGroupItem);
5129
+ RadioGroup2.Root = (0, import_react52.memo)(ToggleGroupRoot);
5130
+ RadioGroup2.Item = (0, import_react52.memo)(ToggleGroupItem);
5049
5131
  })(RadioGroup || (RadioGroup = {}));
5050
5132
 
5051
5133
  // src/components/Select.tsx
5052
5134
  var import_noya_utils10 = require("@noya-app/noya-utils");
5053
- var import_react52 = __toESM(require("react"));
5135
+ var import_react53 = __toESM(require("react"));
5054
5136
  var import_styled_components32 = __toESM(require("styled-components"));
5055
- var SelectContext = (0, import_react52.createContext)(void 0);
5056
- var SelectOption = (0, import_react52.memo)(function SelectOption2({
5137
+ var SelectContext = (0, import_react53.createContext)(void 0);
5138
+ var SelectOption = (0, import_react53.memo)(function SelectOption2({
5057
5139
  value,
5058
5140
  title,
5059
5141
  onSelect
5060
5142
  }) {
5061
- const { addListener, removeListener } = (0, import_react52.useContext)(SelectContext);
5062
- (0, import_react52.useEffect)(() => {
5143
+ const { addListener, removeListener } = (0, import_react53.useContext)(SelectContext);
5144
+ (0, import_react53.useEffect)(() => {
5063
5145
  if (!onSelect)
5064
5146
  return;
5065
5147
  addListener(value, onSelect);
5066
5148
  return () => removeListener(value);
5067
5149
  }, [addListener, onSelect, removeListener, value]);
5068
- return /* @__PURE__ */ import_react52.default.createElement("option", { value }, title ?? value);
5150
+ return /* @__PURE__ */ import_react53.default.createElement("option", { value }, title ?? value);
5069
5151
  });
5070
5152
  var createChevronSVGString = (0, import_noya_utils10.memoize)(
5071
5153
  (color) => `
@@ -5105,7 +5187,7 @@ var SelectElement = import_styled_components32.default.select(
5105
5187
  }
5106
5188
  })
5107
5189
  );
5108
- var Select = (0, import_react52.memo)(function Select2({
5190
+ var Select = (0, import_react53.memo)(function Select2({
5109
5191
  id,
5110
5192
  flex,
5111
5193
  value,
@@ -5115,8 +5197,8 @@ var Select = (0, import_react52.memo)(function Select2({
5115
5197
  const getTitle = "options" in rest ? rest.getTitle : void 0;
5116
5198
  const onChange = "options" in rest ? rest.onChange : void 0;
5117
5199
  const children = "options" in rest ? void 0 : rest.children;
5118
- const optionElements = (0, import_react52.useMemo)(
5119
- () => options ? options.map((option, index) => /* @__PURE__ */ import_react52.default.createElement(
5200
+ const optionElements = (0, import_react53.useMemo)(
5201
+ () => options ? options.map((option, index) => /* @__PURE__ */ import_react53.default.createElement(
5120
5202
  SelectOption,
5121
5203
  {
5122
5204
  key: option,
@@ -5127,21 +5209,21 @@ var Select = (0, import_react52.memo)(function Select2({
5127
5209
  )) : children,
5128
5210
  [children, getTitle, onChange, options]
5129
5211
  );
5130
- const listeners = (0, import_react52.useRef)(/* @__PURE__ */ new Map());
5131
- const contextValue = (0, import_react52.useMemo)(
5212
+ const listeners = (0, import_react53.useRef)(/* @__PURE__ */ new Map());
5213
+ const contextValue = (0, import_react53.useMemo)(
5132
5214
  () => ({
5133
5215
  addListener: (value2, listener) => listeners.current.set(value2, listener),
5134
5216
  removeListener: (value2) => listeners.current.delete(value2)
5135
5217
  }),
5136
5218
  []
5137
5219
  );
5138
- return /* @__PURE__ */ import_react52.default.createElement(SelectContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react52.default.createElement(
5220
+ return /* @__PURE__ */ import_react53.default.createElement(SelectContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react53.default.createElement(
5139
5221
  SelectElement,
5140
5222
  {
5141
5223
  id,
5142
5224
  flex,
5143
5225
  value,
5144
- onChange: (0, import_react52.useCallback)(
5226
+ onChange: (0, import_react53.useCallback)(
5145
5227
  (event) => listeners.current.get(event.target.value)?.(),
5146
5228
  [listeners]
5147
5229
  ),
@@ -5153,7 +5235,7 @@ var Select = (0, import_react52.memo)(function Select2({
5153
5235
 
5154
5236
  // src/components/Slider.tsx
5155
5237
  var RadixSlider = __toESM(require("@radix-ui/react-slider"));
5156
- var import_react53 = __toESM(require("react"));
5238
+ var import_react54 = __toESM(require("react"));
5157
5239
  var import_styled_components33 = __toESM(require("styled-components"));
5158
5240
  var StyledSlider = (0, import_styled_components33.default)(RadixSlider.Root)({
5159
5241
  flex: "1",
@@ -5194,17 +5276,17 @@ var Slider = function Slider2({
5194
5276
  min,
5195
5277
  max
5196
5278
  }) {
5197
- const arrayValue = (0, import_react53.useMemo)(
5279
+ const arrayValue = (0, import_react54.useMemo)(
5198
5280
  () => [Math.min(Math.max(value, min), max)],
5199
5281
  [value, min, max]
5200
5282
  );
5201
- const handleValueChange = (0, import_react53.useCallback)(
5283
+ const handleValueChange = (0, import_react54.useCallback)(
5202
5284
  (arrayValue2) => {
5203
5285
  onValueChange(arrayValue2[0]);
5204
5286
  },
5205
5287
  [onValueChange]
5206
5288
  );
5207
- return /* @__PURE__ */ import_react53.default.createElement(
5289
+ return /* @__PURE__ */ import_react54.default.createElement(
5208
5290
  StyledSlider,
5209
5291
  {
5210
5292
  min,
@@ -5213,14 +5295,14 @@ var Slider = function Slider2({
5213
5295
  value: arrayValue,
5214
5296
  onValueChange: handleValueChange
5215
5297
  },
5216
- /* @__PURE__ */ import_react53.default.createElement(StyledTrack, null, /* @__PURE__ */ import_react53.default.createElement(StyledRange, null)),
5217
- /* @__PURE__ */ import_react53.default.createElement(StyledThumb2, null)
5298
+ /* @__PURE__ */ import_react54.default.createElement(StyledTrack, null, /* @__PURE__ */ import_react54.default.createElement(StyledRange, null)),
5299
+ /* @__PURE__ */ import_react54.default.createElement(StyledThumb2, null)
5218
5300
  );
5219
5301
  };
5220
5302
 
5221
5303
  // src/components/Switch.tsx
5222
5304
  var SwitchPrimitive = __toESM(require("@radix-ui/react-switch"));
5223
- var import_react54 = __toESM(require("react"));
5305
+ var import_react55 = __toESM(require("react"));
5224
5306
  var import_styled_components34 = __toESM(require("styled-components"));
5225
5307
  var SwitchRoot = (0, import_styled_components34.default)(SwitchPrimitive.Root)(({ theme, colorScheme: variant }) => ({
5226
5308
  all: "unset",
@@ -5256,7 +5338,7 @@ var Switch = function Switch2({
5256
5338
  onChange,
5257
5339
  colorScheme = "normal"
5258
5340
  }) {
5259
- return /* @__PURE__ */ import_react54.default.createElement(
5341
+ return /* @__PURE__ */ import_react55.default.createElement(
5260
5342
  SwitchRoot,
5261
5343
  {
5262
5344
  colorScheme,
@@ -5265,42 +5347,42 @@ var Switch = function Switch2({
5265
5347
  onChange(newValue);
5266
5348
  }
5267
5349
  },
5268
- /* @__PURE__ */ import_react54.default.createElement(SwitchThumb, null)
5350
+ /* @__PURE__ */ import_react55.default.createElement(SwitchThumb, null)
5269
5351
  );
5270
5352
  };
5271
5353
 
5272
5354
  // src/components/TreeView.tsx
5273
- var import_react55 = __toESM(require("react"));
5274
- var TreeRow = (0, import_react55.forwardRef)(function TreeRow2({
5355
+ var import_react56 = __toESM(require("react"));
5356
+ var TreeRow = (0, import_react56.forwardRef)(function TreeRow2({
5275
5357
  icon,
5276
5358
  expanded,
5277
5359
  onClickChevron,
5278
5360
  children,
5279
5361
  ...rest
5280
5362
  }, forwardedRef) {
5281
- const { expandable } = (0, import_react55.useContext)(ListView.RowContext);
5282
- const handleClickChevron = (0, import_react55.useCallback)(
5363
+ const { expandable } = (0, import_react56.useContext)(ListView.RowContext);
5364
+ const handleClickChevron = (0, import_react56.useCallback)(
5283
5365
  (event) => {
5284
5366
  event.stopPropagation();
5285
5367
  onClickChevron?.({ altKey: event.altKey });
5286
5368
  },
5287
5369
  [onClickChevron]
5288
5370
  );
5289
- return /* @__PURE__ */ import_react55.default.createElement(ListView.Row, { ref: forwardedRef, ...rest }, expandable && /* @__PURE__ */ import_react55.default.createElement(import_react55.default.Fragment, null, expanded === void 0 ? /* @__PURE__ */ import_react55.default.createElement(Spacer.Horizontal, { size: 19 }) : /* @__PURE__ */ import_react55.default.createElement(
5371
+ return /* @__PURE__ */ import_react56.default.createElement(ListView.Row, { ref: forwardedRef, ...rest }, expandable && /* @__PURE__ */ import_react56.default.createElement(import_react56.default.Fragment, null, expanded === void 0 ? /* @__PURE__ */ import_react56.default.createElement(Spacer.Horizontal, { size: 19 }) : /* @__PURE__ */ import_react56.default.createElement(
5290
5372
  IconButton,
5291
5373
  {
5292
5374
  iconName: expanded ? "ChevronDownIcon" : "ChevronRightIcon",
5293
5375
  onClick: handleClickChevron,
5294
5376
  selected: rest.selected
5295
5377
  }
5296
- ), /* @__PURE__ */ import_react55.default.createElement(Spacer.Horizontal, { size: 6 })), icon && /* @__PURE__ */ import_react55.default.createElement(import_react55.default.Fragment, null, icon, /* @__PURE__ */ import_react55.default.createElement(Spacer.Horizontal, { size: 10 })), children);
5378
+ ), /* @__PURE__ */ import_react56.default.createElement(Spacer.Horizontal, { size: 6 })), icon && /* @__PURE__ */ import_react56.default.createElement(import_react56.default.Fragment, null, icon, /* @__PURE__ */ import_react56.default.createElement(Spacer.Horizontal, { size: 10 })), children);
5297
5379
  });
5298
5380
  var TreeView;
5299
5381
  ((TreeView2) => {
5300
5382
  TreeView2.Root = ListView.Root;
5301
5383
  TreeView2.RowTitle = ListView.RowTitle;
5302
5384
  TreeView2.EditableRowTitle = ListView.EditableRowTitle;
5303
- TreeView2.Row = (0, import_react55.memo)(TreeRow);
5385
+ TreeView2.Row = (0, import_react56.memo)(TreeRow);
5304
5386
  })(TreeView || (TreeView = {}));
5305
5387
 
5306
5388
  // src/hooks/usePlatform.ts
@@ -5608,7 +5690,7 @@ var SUPPORTED_CANVAS_UPLOAD_TYPES = [
5608
5690
 
5609
5691
  // src/components/ArrayController.tsx
5610
5692
  var import_noya_utils11 = require("@noya-app/noya-utils");
5611
- var import_react57 = __toESM(require("react"));
5693
+ var import_react58 = __toESM(require("react"));
5612
5694
  var import_styled_components36 = __toESM(require("styled-components"));
5613
5695
 
5614
5696
  // src/components/InspectorPrimitives.tsx
@@ -5627,7 +5709,7 @@ __export(InspectorPrimitives_exports, {
5627
5709
  Title: () => Title3,
5628
5710
  VerticalSeparator: () => VerticalSeparator
5629
5711
  });
5630
- var import_react56 = __toESM(require("react"));
5712
+ var import_react57 = __toESM(require("react"));
5631
5713
  var import_styled_components35 = __toESM(require("styled-components"));
5632
5714
  var Section = import_styled_components35.default.div(({ theme, padding = "10px", gap }) => ({
5633
5715
  flex: "0 0 auto",
@@ -5674,8 +5756,8 @@ var Checkbox = import_styled_components35.default.input(({ theme }) => ({
5674
5756
  var Text3 = import_styled_components35.default.span(({ theme }) => ({
5675
5757
  ...theme.textStyles.small
5676
5758
  }));
5677
- var VerticalSeparator = () => /* @__PURE__ */ import_react56.default.createElement(Spacer.Vertical, { size: (0, import_styled_components35.useTheme)().sizes.inspector.verticalSeparator });
5678
- var HorizontalSeparator = () => /* @__PURE__ */ import_react56.default.createElement(Spacer.Horizontal, { size: (0, import_styled_components35.useTheme)().sizes.inspector.horizontalSeparator });
5759
+ var VerticalSeparator = () => /* @__PURE__ */ import_react57.default.createElement(Spacer.Vertical, { size: (0, import_styled_components35.useTheme)().sizes.inspector.verticalSeparator });
5760
+ var HorizontalSeparator = () => /* @__PURE__ */ import_react57.default.createElement(Spacer.Horizontal, { size: (0, import_styled_components35.useTheme)().sizes.inspector.horizontalSeparator });
5679
5761
  var SliderRowLabel = import_styled_components35.default.span(({ theme }) => ({
5680
5762
  ...theme.textStyles.small,
5681
5763
  color: theme.colors.textMuted,
@@ -5695,7 +5777,7 @@ var RowLabel = import_styled_components35.default.span(({ theme, textStyle }) =>
5695
5777
  // Button height
5696
5778
  alignItems: "center"
5697
5779
  }));
5698
- var LabeledRow = (0, import_react56.memo)(function LabeledRow2({
5780
+ var LabeledRow = (0, import_react57.memo)(function LabeledRow2({
5699
5781
  id,
5700
5782
  children,
5701
5783
  label,
@@ -5703,13 +5785,13 @@ var LabeledRow = (0, import_react56.memo)(function LabeledRow2({
5703
5785
  gap,
5704
5786
  right
5705
5787
  }) {
5706
- return /* @__PURE__ */ import_react56.default.createElement(Row2, { id }, /* @__PURE__ */ import_react56.default.createElement(Column, null, /* @__PURE__ */ import_react56.default.createElement(RowLabel, { textStyle: labelTextStyle }, label, right && /* @__PURE__ */ import_react56.default.createElement(Spacer.Horizontal, null), right), /* @__PURE__ */ import_react56.default.createElement(Row2, { gap }, children)));
5788
+ return /* @__PURE__ */ import_react57.default.createElement(Row2, { id }, /* @__PURE__ */ import_react57.default.createElement(Column, null, /* @__PURE__ */ import_react57.default.createElement(RowLabel, { textStyle: labelTextStyle }, label, right && /* @__PURE__ */ import_react57.default.createElement(Spacer.Horizontal, null), right), /* @__PURE__ */ import_react57.default.createElement(Row2, { gap }, children)));
5707
5789
  });
5708
- var LabeledSliderRow = (0, import_react56.memo)(function LabeledRow3({
5790
+ var LabeledSliderRow = (0, import_react57.memo)(function LabeledRow3({
5709
5791
  children,
5710
5792
  label
5711
5793
  }) {
5712
- return /* @__PURE__ */ import_react56.default.createElement(Row2, null, /* @__PURE__ */ import_react56.default.createElement(Column, null, /* @__PURE__ */ import_react56.default.createElement(SliderRowLabel, null, label), /* @__PURE__ */ import_react56.default.createElement(Row2, null, children)));
5794
+ return /* @__PURE__ */ import_react57.default.createElement(Row2, null, /* @__PURE__ */ import_react57.default.createElement(Column, null, /* @__PURE__ */ import_react57.default.createElement(SliderRowLabel, null, label), /* @__PURE__ */ import_react57.default.createElement(Row2, null, children)));
5713
5795
  });
5714
5796
 
5715
5797
  // src/components/ArrayController.tsx
@@ -5722,7 +5804,7 @@ var ElementRow = import_styled_components36.default.div({
5722
5804
  var ItemContainer2 = import_styled_components36.default.div({
5723
5805
  position: "relative"
5724
5806
  });
5725
- var ArrayController = (0, import_react57.memo)(function ArrayController2({
5807
+ var ArrayController = (0, import_react58.memo)(function ArrayController2({
5726
5808
  id,
5727
5809
  items,
5728
5810
  title,
@@ -5740,12 +5822,12 @@ var ArrayController = (0, import_react57.memo)(function ArrayController2({
5740
5822
  }) {
5741
5823
  const iconColor = (0, import_styled_components36.useTheme)().colors.icon;
5742
5824
  const primaryLightColor = (0, import_styled_components36.useTheme)().colors.primaryLight;
5743
- const keys = (0, import_react57.useMemo)(
5825
+ const keys = (0, import_react58.useMemo)(
5744
5826
  () => items.map((item, index) => getKey?.(item) ?? index.toString()),
5745
5827
  [getKey, items]
5746
5828
  );
5747
5829
  const indexes = reversed ? (0, import_noya_utils11.range)(0, items.length).reverse() : (0, import_noya_utils11.range)(0, items.length);
5748
- const handleMoveItem = (0, import_react57.useCallback)(
5830
+ const handleMoveItem = (0, import_react58.useCallback)(
5749
5831
  (sourceIndex, destinationIndex, position) => {
5750
5832
  if (reversed) {
5751
5833
  if (position === "above") {
@@ -5762,11 +5844,11 @@ var ArrayController = (0, import_react57.memo)(function ArrayController2({
5762
5844
  [onMoveItem, reversed]
5763
5845
  );
5764
5846
  const renderRow = (index) => {
5765
- return /* @__PURE__ */ import_react57.default.createElement(ElementRow, { key: keys[index] }, renderItem({ item: items[index], index }));
5847
+ return /* @__PURE__ */ import_react58.default.createElement(ElementRow, { key: keys[index] }, renderItem({ item: items[index], index }));
5766
5848
  };
5767
- return /* @__PURE__ */ import_react57.default.createElement(Section, { id, padding, gap: "2px" }, /* @__PURE__ */ import_react57.default.createElement(SectionHeader, null, /* @__PURE__ */ import_react57.default.createElement(Button, { variant: "none", onClick: onClickPlus }, /* @__PURE__ */ import_react57.default.createElement(Title3, null, title)), /* @__PURE__ */ import_react57.default.createElement(Spacer.Horizontal, null), withSeparatorElements(
5849
+ return /* @__PURE__ */ import_react58.default.createElement(Section, { id, padding, gap: "2px" }, /* @__PURE__ */ import_react58.default.createElement(SectionHeader, null, /* @__PURE__ */ import_react58.default.createElement(Button, { variant: "none", onClick: onClickPlus }, /* @__PURE__ */ import_react58.default.createElement(Title3, null, title)), /* @__PURE__ */ import_react58.default.createElement(Spacer.Horizontal, null), withSeparatorElements(
5768
5850
  [
5769
- onClickTrash && /* @__PURE__ */ import_react57.default.createElement(
5851
+ onClickTrash && /* @__PURE__ */ import_react58.default.createElement(
5770
5852
  IconButton,
5771
5853
  {
5772
5854
  id: `${id}-trash`,
@@ -5775,7 +5857,7 @@ var ArrayController = (0, import_react57.memo)(function ArrayController2({
5775
5857
  onClick: onClickTrash
5776
5858
  }
5777
5859
  ),
5778
- onClickExpand && /* @__PURE__ */ import_react57.default.createElement(
5860
+ onClickExpand && /* @__PURE__ */ import_react58.default.createElement(
5779
5861
  IconButton,
5780
5862
  {
5781
5863
  id: `${id}-gear`,
@@ -5784,7 +5866,7 @@ var ArrayController = (0, import_react57.memo)(function ArrayController2({
5784
5866
  onClick: onClickExpand
5785
5867
  }
5786
5868
  ),
5787
- onClickPlus && /* @__PURE__ */ import_react57.default.createElement(
5869
+ onClickPlus && /* @__PURE__ */ import_react58.default.createElement(
5788
5870
  IconButton,
5789
5871
  {
5790
5872
  id: `${id}-add`,
@@ -5794,15 +5876,15 @@ var ArrayController = (0, import_react57.memo)(function ArrayController2({
5794
5876
  }
5795
5877
  )
5796
5878
  ],
5797
- /* @__PURE__ */ import_react57.default.createElement(Spacer.Horizontal, { size: 8 })
5798
- )), /* @__PURE__ */ import_react57.default.createElement(Stack.V, { gap: "4px" }, sortable ? /* @__PURE__ */ import_react57.default.createElement(
5879
+ /* @__PURE__ */ import_react58.default.createElement(Spacer.Horizontal, { size: 8 })
5880
+ )), /* @__PURE__ */ import_react58.default.createElement(Stack.V, { gap: "4px" }, sortable ? /* @__PURE__ */ import_react58.default.createElement(
5799
5881
  Sortable.Root,
5800
5882
  {
5801
5883
  keys,
5802
5884
  renderOverlay: renderRow,
5803
5885
  onMoveItem: handleMoveItem
5804
5886
  },
5805
- indexes.map((index) => /* @__PURE__ */ import_react57.default.createElement(Sortable.Item, { id: keys[index], key: keys[index] }, ({ relativeDropPosition, ...sortableProps }) => /* @__PURE__ */ import_react57.default.createElement(ItemContainer2, { ...sortableProps }, renderRow(index), relativeDropPosition && /* @__PURE__ */ import_react57.default.createElement(
5887
+ indexes.map((index) => /* @__PURE__ */ import_react58.default.createElement(Sortable.Item, { id: keys[index], key: keys[index] }, ({ relativeDropPosition, ...sortableProps }) => /* @__PURE__ */ import_react58.default.createElement(ItemContainer2, { ...sortableProps }, renderRow(index), relativeDropPosition && /* @__PURE__ */ import_react58.default.createElement(
5806
5888
  ListView.DragIndicator,
5807
5889
  {
5808
5890
  gap: 0,
@@ -5816,11 +5898,11 @@ var ArrayController = (0, import_react57.memo)(function ArrayController2({
5816
5898
 
5817
5899
  // src/components/DimensionInput.tsx
5818
5900
  var import_noya_utils12 = require("@noya-app/noya-utils");
5819
- var import_react58 = __toESM(require("react"));
5901
+ var import_react59 = __toESM(require("react"));
5820
5902
  function getNewValue(value, mode, delta) {
5821
5903
  return delta === void 0 ? value : mode === "replace" ? delta : value + delta;
5822
5904
  }
5823
- var DimensionInput = (0, import_react58.memo)(function DimensionInput2({
5905
+ var DimensionInput = (0, import_react59.memo)(function DimensionInput2({
5824
5906
  id,
5825
5907
  value,
5826
5908
  onSetValue,
@@ -5830,15 +5912,15 @@ var DimensionInput = (0, import_react58.memo)(function DimensionInput2({
5830
5912
  disabled,
5831
5913
  trigger = "submit"
5832
5914
  }) {
5833
- const handleNudgeValue = (0, import_react58.useCallback)(
5915
+ const handleNudgeValue = (0, import_react59.useCallback)(
5834
5916
  (value2) => onSetValue(value2, "adjust"),
5835
5917
  [onSetValue]
5836
5918
  );
5837
- const handleSetValue = (0, import_react58.useCallback)(
5919
+ const handleSetValue = (0, import_react59.useCallback)(
5838
5920
  (value2) => onSetValue(value2, "replace"),
5839
5921
  [onSetValue]
5840
5922
  );
5841
- return /* @__PURE__ */ import_react58.default.createElement(InputField.Root, { id, width: size2 }, /* @__PURE__ */ import_react58.default.createElement(
5923
+ return /* @__PURE__ */ import_react59.default.createElement(InputField.Root, { id, width: size2 }, /* @__PURE__ */ import_react59.default.createElement(
5842
5924
  InputField.NumberInput,
5843
5925
  {
5844
5926
  value: value === void 0 ? value : (0, import_noya_utils12.round)(value, 2),
@@ -5847,7 +5929,7 @@ var DimensionInput = (0, import_react58.memo)(function DimensionInput2({
5847
5929
  disabled,
5848
5930
  ...trigger === "change" ? { onChange: handleSetValue } : { onSubmit: handleSetValue }
5849
5931
  }
5850
- ), label && /* @__PURE__ */ import_react58.default.createElement(InputField.Label, null, label));
5932
+ ), label && /* @__PURE__ */ import_react59.default.createElement(InputField.Label, null, label));
5851
5933
  });
5852
5934
  // Annotate the CommonJS export names for ESM import in node:
5853
5935
  0 && (module.exports = {