@noya-app/noya-designsystem 0.1.7 → 0.1.8

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,25 @@ 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");
790
793
 
791
794
  // ../noya-react-utils/src/utils/assignRef.ts
792
795
  function assignRef(ref, value) {
@@ -798,7 +801,7 @@ function assignRef(ref, value) {
798
801
  }
799
802
 
800
803
  // src/components/InputField.tsx
801
- var import_react30 = __toESM(require("react"));
804
+ var import_react31 = __toESM(require("react"));
802
805
  var import_styled_components13 = __toESM(require("styled-components"));
803
806
 
804
807
  // src/utils/handleNudge.ts
@@ -829,25 +832,25 @@ function handleNudge(e) {
829
832
  var import_noya_icons = require("@noya-app/noya-icons");
830
833
  var import_noya_keymap2 = require("@noya-app/noya-keymap");
831
834
  var RadixDropdownMenu = __toESM(require("@radix-ui/react-dropdown-menu"));
832
- var import_react25 = __toESM(require("react"));
835
+ var import_react26 = __toESM(require("react"));
833
836
  var import_styled_components10 = __toESM(require("styled-components"));
834
837
 
835
838
  // src/components/internal/Menu.tsx
836
839
  var import_noya_keymap = require("@noya-app/noya-keymap");
837
- var import_react24 = __toESM(require("react"));
840
+ var import_react25 = __toESM(require("react"));
838
841
  var import_styled_components9 = __toESM(require("styled-components"));
839
842
 
840
843
  // src/utils/withSeparatorElements.ts
841
- var import_react23 = require("react");
844
+ var import_react24 = require("react");
842
845
  function createKey(key) {
843
846
  return `s-${key}`;
844
847
  }
845
848
  function withSeparatorElements(elements2, separator) {
846
- const childrenArray = import_react23.Children.toArray(elements2);
849
+ const childrenArray = import_react24.Children.toArray(elements2);
847
850
  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) });
851
+ let sep = typeof separator === "function" ? separator() : (0, import_react24.isValidElement)(separator) ? (0, import_react24.cloneElement)(separator, { key: createKey(i) }) : separator;
852
+ if ((0, import_react24.isValidElement)(sep) && sep.key == null) {
853
+ sep = (0, import_react24.cloneElement)(sep, { key: createKey(i) });
851
854
  }
852
855
  if (!sep || typeof sep === "boolean")
853
856
  continue;
@@ -947,12 +950,12 @@ var ShortcutElement = import_styled_components9.default.kbd(
947
950
  }
948
951
  })
949
952
  );
950
- var KeyboardShortcut = (0, import_react24.memo)(function KeyboardShortcut2({
953
+ var KeyboardShortcut = (0, import_react25.memo)(function KeyboardShortcut2({
951
954
  shortcut
952
955
  }) {
953
956
  const platform = useDesignSystemConfiguration().platform;
954
957
  const { keys, separator } = (0, import_noya_keymap.getShortcutDisplayParts)(shortcut, platform);
955
- const keyElements = keys.map((key) => /* @__PURE__ */ import_react24.default.createElement(
958
+ const keyElements = keys.map((key) => /* @__PURE__ */ import_react25.default.createElement(
956
959
  ShortcutElement,
957
960
  {
958
961
  key,
@@ -960,9 +963,9 @@ var KeyboardShortcut = (0, import_react24.memo)(function KeyboardShortcut2({
960
963
  },
961
964
  key
962
965
  ));
963
- return /* @__PURE__ */ import_react24.default.createElement(import_react24.default.Fragment, null, separator ? withSeparatorElements(
966
+ return /* @__PURE__ */ import_react25.default.createElement(import_react25.default.Fragment, null, separator ? withSeparatorElements(
964
967
  keyElements,
965
- /* @__PURE__ */ import_react24.default.createElement(ShortcutElement, null, separator)
968
+ /* @__PURE__ */ import_react25.default.createElement(ShortcutElement, null, separator)
966
969
  ) : keyElements);
967
970
  });
968
971
 
@@ -977,7 +980,7 @@ var CheckboxItemElement = (0, import_styled_components10.default)(RadixDropdownM
977
980
  var StyledItemIndicator = (0, import_styled_components10.default)(RadixDropdownMenu.ItemIndicator)(
978
981
  styles.itemIndicatorStyle
979
982
  );
980
- var DropdownMenuItem = (0, import_react25.memo)(function ContextMenuItem({
983
+ var DropdownMenuItem = (0, import_react26.memo)(function ContextMenuItem({
981
984
  value,
982
985
  children,
983
986
  onSelect,
@@ -988,34 +991,34 @@ var DropdownMenuItem = (0, import_react25.memo)(function ContextMenuItem({
988
991
  items,
989
992
  shortcut
990
993
  }) {
991
- const handleSelectItem = (0, import_react25.useCallback)(() => {
994
+ const handleSelectItem = (0, import_react26.useCallback)(() => {
992
995
  if (!value)
993
996
  return;
994
997
  onSelect(value);
995
998
  }, [onSelect, value]);
996
999
  if (checked) {
997
- return /* @__PURE__ */ import_react25.default.createElement(
1000
+ return /* @__PURE__ */ import_react26.default.createElement(
998
1001
  CheckboxItemElement,
999
1002
  {
1000
1003
  checked,
1001
1004
  disabled,
1002
1005
  onSelect: handleSelectItem
1003
1006
  },
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 })),
1007
+ /* @__PURE__ */ import_react26.default.createElement(StyledItemIndicator, null, /* @__PURE__ */ import_react26.default.createElement(import_noya_icons.CheckIcon, null)),
1008
+ icon && /* @__PURE__ */ import_react26.default.createElement(import_react26.default.Fragment, null, icon, /* @__PURE__ */ import_react26.default.createElement(Spacer.Horizontal, { size: 8 })),
1006
1009
  children
1007
1010
  );
1008
1011
  }
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)));
1012
+ 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
1013
  if (items && items.length > 0) {
1011
- return /* @__PURE__ */ import_react25.default.createElement(DropdownMenuRoot, { isNested: true, items, onSelect }, element);
1014
+ return /* @__PURE__ */ import_react26.default.createElement(DropdownMenuRoot, { isNested: true, items, onSelect }, element);
1012
1015
  } else {
1013
1016
  return element;
1014
1017
  }
1015
1018
  });
1016
1019
  var Content5 = (0, import_styled_components10.default)(RadixDropdownMenu.Content)(styles.contentStyle);
1017
1020
  var SubContent2 = (0, import_styled_components10.default)(RadixDropdownMenu.SubContent)(styles.contentStyle);
1018
- var DropdownMenuRoot = (0, import_react25.forwardRef)(function DropdownMenuRoot2({
1021
+ var DropdownMenuRoot = (0, import_react26.forwardRef)(function DropdownMenuRoot2({
1019
1022
  items,
1020
1023
  children,
1021
1024
  onSelect,
@@ -1028,7 +1031,7 @@ var DropdownMenuRoot = (0, import_react25.forwardRef)(function DropdownMenuRoot2
1028
1031
  const hasCheckedItem = items.some(
1029
1032
  (item) => item !== SEPARATOR_ITEM && item.checked
1030
1033
  );
1031
- const keymap = (0, import_react25.useMemo)(
1034
+ const keymap = (0, import_react26.useMemo)(
1032
1035
  () => isNested || shouldBindKeyboardShortcuts === false ? {} : getKeyboardShortcutsForMenuItems(items, onSelect),
1033
1036
  [isNested, items, onSelect, shouldBindKeyboardShortcuts]
1034
1037
  );
@@ -1036,8 +1039,8 @@ var DropdownMenuRoot = (0, import_react25.forwardRef)(function DropdownMenuRoot2
1036
1039
  const RootComponent = isNested ? RadixDropdownMenu.Sub : RadixDropdownMenu.Root;
1037
1040
  const TriggerComponent = isNested ? RadixDropdownMenu.SubTrigger : RadixDropdownMenu.Trigger;
1038
1041
  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(
1042
+ const contentStyle = (0, import_react26.useMemo)(() => ({ zIndex: 1e3 }), []);
1043
+ 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
1044
  ContentComponent,
1042
1045
  {
1043
1046
  sideOffset: 4,
@@ -1046,7 +1049,7 @@ var DropdownMenuRoot = (0, import_react25.forwardRef)(function DropdownMenuRoot2
1046
1049
  ...{ onCloseAutoFocus }
1047
1050
  },
1048
1051
  items.map(
1049
- (item, index) => item === SEPARATOR_ITEM ? /* @__PURE__ */ import_react25.default.createElement(SeparatorElement, { key: index }) : /* @__PURE__ */ import_react25.default.createElement(
1052
+ (item, index) => item === SEPARATOR_ITEM ? /* @__PURE__ */ import_react26.default.createElement(SeparatorElement, { key: index }) : /* @__PURE__ */ import_react26.default.createElement(
1050
1053
  DropdownMenuItem,
1051
1054
  {
1052
1055
  key: item.value ?? index,
@@ -1064,14 +1067,14 @@ var DropdownMenuRoot = (0, import_react25.forwardRef)(function DropdownMenuRoot2
1064
1067
  )
1065
1068
  )));
1066
1069
  });
1067
- var DropdownMenu = (0, import_react25.memo)(DropdownMenuRoot);
1070
+ var DropdownMenu = (0, import_react26.memo)(DropdownMenuRoot);
1068
1071
 
1069
1072
  // src/components/internal/TextInput.tsx
1070
1073
  var import_react_compose_refs = require("@radix-ui/react-compose-refs");
1071
- var import_react27 = __toESM(require("react"));
1074
+ var import_react28 = __toESM(require("react"));
1072
1075
 
1073
1076
  // src/contexts/GlobalInputBlurContext.tsx
1074
- var import_react26 = require("react");
1077
+ var import_react27 = require("react");
1075
1078
  var defaultValue = /* @__PURE__ */ (() => {
1076
1079
  const listeners = [];
1077
1080
  const value = {
@@ -1092,14 +1095,14 @@ var defaultValue = /* @__PURE__ */ (() => {
1092
1095
  };
1093
1096
  return value;
1094
1097
  })();
1095
- var GlobalInputBlurContext = (0, import_react26.createContext)(defaultValue);
1098
+ var GlobalInputBlurContext = (0, import_react27.createContext)(defaultValue);
1096
1099
  var GlobalInputBlurProvider = GlobalInputBlurContext.Provider;
1097
1100
  var useGlobalInputBlur = () => {
1098
- return (0, import_react26.useContext)(GlobalInputBlurContext);
1101
+ return (0, import_react27.useContext)(GlobalInputBlurContext);
1099
1102
  };
1100
1103
  function useGlobalInputBlurListener(f) {
1101
1104
  const context = useGlobalInputBlur();
1102
- (0, import_react26.useEffect)(() => {
1105
+ (0, import_react27.useEffect)(() => {
1103
1106
  context.addListener(f);
1104
1107
  return () => {
1105
1108
  context.removeListener(f);
@@ -1111,8 +1114,8 @@ function useGlobalInputBlurTrigger() {
1111
1114
  }
1112
1115
 
1113
1116
  // 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(
1117
+ var ReadOnlyTextInput = (0, import_react28.forwardRef)(function ReadOnlyTextInput2({ onKeyDown, onFocusChange, value, ...rest }, forwardedRef) {
1118
+ return /* @__PURE__ */ import_react28.default.createElement(
1116
1119
  "input",
1117
1120
  {
1118
1121
  ref: forwardedRef,
@@ -1123,7 +1126,7 @@ var ReadOnlyTextInput = (0, import_react27.forwardRef)(function ReadOnlyTextInpu
1123
1126
  }
1124
1127
  );
1125
1128
  });
1126
- var ControlledTextInput = (0, import_react27.forwardRef)(function ControlledTextInput2({
1129
+ var ControlledTextInput = (0, import_react28.forwardRef)(function ControlledTextInput2({
1127
1130
  onKeyDown,
1128
1131
  value,
1129
1132
  onChange,
@@ -1132,28 +1135,28 @@ var ControlledTextInput = (0, import_react27.forwardRef)(function ControlledText
1132
1135
  onFocusCapture,
1133
1136
  ...rest
1134
1137
  }, forwardedRef) {
1135
- const handleBlur = (0, import_react27.useCallback)(
1138
+ const handleBlur = (0, import_react28.useCallback)(
1136
1139
  (event) => {
1137
1140
  onBlur?.(event);
1138
1141
  onFocusChange?.(false);
1139
1142
  },
1140
1143
  [onBlur, onFocusChange]
1141
1144
  );
1142
- const handleFocusCapture = (0, import_react27.useCallback)(
1145
+ const handleFocusCapture = (0, import_react28.useCallback)(
1143
1146
  (event) => {
1144
1147
  onFocusCapture?.(event);
1145
1148
  onFocusChange?.(true);
1146
1149
  },
1147
1150
  [onFocusCapture, onFocusChange]
1148
1151
  );
1149
- return /* @__PURE__ */ import_react27.default.createElement(
1152
+ return /* @__PURE__ */ import_react28.default.createElement(
1150
1153
  "input",
1151
1154
  {
1152
1155
  ref: forwardedRef,
1153
1156
  ...rest,
1154
1157
  value,
1155
1158
  onKeyDown,
1156
- onChange: (0, import_react27.useCallback)(
1159
+ onChange: (0, import_react28.useCallback)(
1157
1160
  (event) => onChange(event.target.value),
1158
1161
  [onChange]
1159
1162
  ),
@@ -1162,7 +1165,7 @@ var ControlledTextInput = (0, import_react27.forwardRef)(function ControlledText
1162
1165
  }
1163
1166
  );
1164
1167
  });
1165
- var SubmittableTextInput = (0, import_react27.forwardRef)(function SubmittableTextInput2({
1168
+ var SubmittableTextInput = (0, import_react28.forwardRef)(function SubmittableTextInput2({
1166
1169
  onKeyDown,
1167
1170
  value,
1168
1171
  onSubmit,
@@ -1173,16 +1176,16 @@ var SubmittableTextInput = (0, import_react27.forwardRef)(function SubmittableTe
1173
1176
  submitAutomaticallyAfterDelay,
1174
1177
  ...rest
1175
1178
  }, forwardedRef) {
1176
- const ref = import_react27.default.useRef(null);
1177
- const latestValue = (0, import_react27.useRef)(value);
1179
+ const ref = import_react28.default.useRef(null);
1180
+ const latestValue = (0, import_react28.useRef)(value);
1178
1181
  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)(() => {
1182
+ const userDidEdit = (0, import_react28.useRef)(false);
1183
+ const isSubmitTriggeredByEscapeKey = (0, import_react28.useRef)(false);
1184
+ const [internalValue, setInternalValue] = (0, import_react28.useState)("");
1185
+ (0, import_react28.useLayoutEffect)(() => {
1183
1186
  setInternalValue(value);
1184
1187
  }, [value]);
1185
- const handleSubmit = (0, import_react27.useCallback)(() => {
1188
+ const handleSubmit = (0, import_react28.useCallback)(() => {
1186
1189
  const submissionValue = isSubmitTriggeredByEscapeKey.current ? value : internalValue;
1187
1190
  isSubmitTriggeredByEscapeKey.current = false;
1188
1191
  if (submissionValue === value && !allowSubmittingWithSameValue)
@@ -1192,13 +1195,13 @@ var SubmittableTextInput = (0, import_react27.forwardRef)(function SubmittableTe
1192
1195
  setInternalValue(latestValue.current);
1193
1196
  }, [allowSubmittingWithSameValue, value, internalValue, onSubmit]);
1194
1197
  useGlobalInputBlurListener(
1195
- (0, import_react27.useCallback)(() => {
1198
+ (0, import_react28.useCallback)(() => {
1196
1199
  if (ref.current !== document.activeElement)
1197
1200
  return;
1198
1201
  handleSubmit();
1199
1202
  }, [handleSubmit])
1200
1203
  );
1201
- const handleKeyDown = (0, import_react27.useCallback)(
1204
+ const handleKeyDown = (0, import_react28.useCallback)(
1202
1205
  (event) => {
1203
1206
  if (event.key === "Enter") {
1204
1207
  handleSubmit();
@@ -1213,14 +1216,14 @@ var SubmittableTextInput = (0, import_react27.forwardRef)(function SubmittableTe
1213
1216
  },
1214
1217
  [onKeyDown, handleSubmit]
1215
1218
  );
1216
- const handleChange = (0, import_react27.useCallback)(
1219
+ const handleChange = (0, import_react28.useCallback)(
1217
1220
  (event) => {
1218
1221
  userDidEdit.current = true;
1219
1222
  setInternalValue(event.target.value);
1220
1223
  },
1221
1224
  []
1222
1225
  );
1223
- const handleBlur = (0, import_react27.useCallback)(
1226
+ const handleBlur = (0, import_react28.useCallback)(
1224
1227
  (event) => {
1225
1228
  onBlur?.(event);
1226
1229
  onFocusChange?.(false);
@@ -1228,19 +1231,19 @@ var SubmittableTextInput = (0, import_react27.forwardRef)(function SubmittableTe
1228
1231
  },
1229
1232
  [onBlur, onFocusChange, handleSubmit]
1230
1233
  );
1231
- const handleFocusCapture = (0, import_react27.useCallback)(
1234
+ const handleFocusCapture = (0, import_react28.useCallback)(
1232
1235
  (event) => {
1233
1236
  onFocusCapture?.(event);
1234
1237
  onFocusChange?.(true);
1235
1238
  },
1236
1239
  [onFocusCapture, onFocusChange]
1237
1240
  );
1238
- const autoSubmitTimeoutRef = (0, import_react27.useRef)(
1241
+ const autoSubmitTimeoutRef = (0, import_react28.useRef)(
1239
1242
  null
1240
1243
  );
1241
- const latestHandleSubmit = (0, import_react27.useRef)(handleSubmit);
1244
+ const latestHandleSubmit = (0, import_react28.useRef)(handleSubmit);
1242
1245
  latestHandleSubmit.current = handleSubmit;
1243
- (0, import_react27.useEffect)(() => {
1246
+ (0, import_react28.useEffect)(() => {
1244
1247
  if (submitAutomaticallyAfterDelay) {
1245
1248
  if (autoSubmitTimeoutRef.current) {
1246
1249
  clearTimeout(autoSubmitTimeoutRef.current);
@@ -1257,7 +1260,7 @@ var SubmittableTextInput = (0, import_react27.forwardRef)(function SubmittableTe
1257
1260
  }
1258
1261
  };
1259
1262
  }, [internalValue, submitAutomaticallyAfterDelay]);
1260
- return /* @__PURE__ */ import_react27.default.createElement(
1263
+ return /* @__PURE__ */ import_react28.default.createElement(
1261
1264
  "input",
1262
1265
  {
1263
1266
  ref: (0, import_react_compose_refs.composeRefs)(ref, forwardedRef),
@@ -1270,13 +1273,13 @@ var SubmittableTextInput = (0, import_react27.forwardRef)(function SubmittableTe
1270
1273
  }
1271
1274
  );
1272
1275
  });
1273
- var TextInput_default = (0, import_react27.forwardRef)(function TextInput(props, forwardedRef) {
1276
+ var TextInput_default = (0, import_react28.forwardRef)(function TextInput(props, forwardedRef) {
1274
1277
  const commonProps = {
1275
- onPointerDown: (0, import_react27.useCallback)(
1278
+ onPointerDown: (0, import_react28.useCallback)(
1276
1279
  (event) => event.stopPropagation(),
1277
1280
  []
1278
1281
  ),
1279
- onClick: (0, import_react27.useCallback)(
1282
+ onClick: (0, import_react28.useCallback)(
1280
1283
  (event) => event.stopPropagation(),
1281
1284
  []
1282
1285
  ),
@@ -1289,17 +1292,17 @@ var TextInput_default = (0, import_react27.forwardRef)(function TextInput(props,
1289
1292
  ...props
1290
1293
  };
1291
1294
  if ("readOnly" in commonProps) {
1292
- return /* @__PURE__ */ import_react27.default.createElement(ReadOnlyTextInput, { ref: forwardedRef, ...commonProps, readOnly: true });
1295
+ return /* @__PURE__ */ import_react28.default.createElement(ReadOnlyTextInput, { ref: forwardedRef, ...commonProps, readOnly: true });
1293
1296
  } else if ("onChange" in commonProps) {
1294
- return /* @__PURE__ */ import_react27.default.createElement(ControlledTextInput, { ref: forwardedRef, ...commonProps });
1297
+ return /* @__PURE__ */ import_react28.default.createElement(ControlledTextInput, { ref: forwardedRef, ...commonProps });
1295
1298
  } else {
1296
- return /* @__PURE__ */ import_react27.default.createElement(SubmittableTextInput, { ref: forwardedRef, ...commonProps });
1299
+ return /* @__PURE__ */ import_react28.default.createElement(SubmittableTextInput, { ref: forwardedRef, ...commonProps });
1297
1300
  }
1298
1301
  });
1299
1302
 
1300
1303
  // src/components/Popover.tsx
1301
1304
  var PopoverPrimitive = __toESM(require("@radix-ui/react-popover"));
1302
- var import_react28 = __toESM(require("react"));
1305
+ var import_react29 = __toESM(require("react"));
1303
1306
  var import_styled_components11 = __toESM(require("styled-components"));
1304
1307
  var ContentElement = (0, import_styled_components11.default)(PopoverPrimitive.Content)(({ theme, variant }) => ({
1305
1308
  borderRadius: 4,
@@ -1346,7 +1349,7 @@ function Popover({
1346
1349
  onFocusOutside,
1347
1350
  onClickClose
1348
1351
  }) {
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(
1352
+ 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
1353
  ContentElement,
1351
1354
  {
1352
1355
  variant,
@@ -1367,13 +1370,13 @@ function Popover({
1367
1370
  }
1368
1371
  },
1369
1372
  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 }))
1373
+ showArrow && /* @__PURE__ */ import_react29.default.createElement(ArrowElement, null),
1374
+ closable && /* @__PURE__ */ import_react29.default.createElement(PopoverClose, null, /* @__PURE__ */ import_react29.default.createElement(IconButton, { iconName: "Cross2Icon", onClick: onClickClose }))
1372
1375
  )));
1373
1376
  }
1374
1377
 
1375
1378
  // src/components/Stack.tsx
1376
- var import_react29 = __toESM(require("react"));
1379
+ var import_react30 = __toESM(require("react"));
1377
1380
  var import_styled_components12 = __toESM(require("styled-components"));
1378
1381
 
1379
1382
  // src/utils/breakpoints.ts
@@ -1399,15 +1402,15 @@ var Element = import_styled_components12.default.div(({ styleProps, breakpoints
1399
1402
  ...styleProps,
1400
1403
  ...mergeBreakpoints(breakpoints || [])
1401
1404
  }));
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;
1405
+ var StackBase = (0, import_react30.forwardRef)(function StackBase2({ id, as, children, separator, breakpoints, tabIndex, href, ...rest }, forwardedRef) {
1406
+ const elements2 = separator ? withSeparatorElements(import_react30.Children.toArray(children), separator) : children;
1404
1407
  const styleProps = {
1405
1408
  display: "flex",
1406
1409
  position: "relative",
1407
1410
  alignItems: "stretch",
1408
1411
  ...rest
1409
1412
  };
1410
- return /* @__PURE__ */ import_react29.default.createElement(
1413
+ return /* @__PURE__ */ import_react30.default.createElement(
1411
1414
  Element,
1412
1415
  {
1413
1416
  ref: forwardedRef,
@@ -1421,14 +1424,14 @@ var StackBase = (0, import_react29.forwardRef)(function StackBase2({ id, as, chi
1421
1424
  elements2
1422
1425
  );
1423
1426
  });
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 });
1427
+ var VerticalStack = (0, import_react30.memo)(
1428
+ (0, import_react30.forwardRef)(function VStack(props, forwardedRef) {
1429
+ return /* @__PURE__ */ import_react30.default.createElement(StackBase, { ...props, flexDirection: "column", ref: forwardedRef });
1427
1430
  })
1428
1431
  );
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 });
1432
+ var HorizontalStack = (0, import_react30.memo)(
1433
+ (0, import_react30.forwardRef)(function HStack(props, forwardedRef) {
1434
+ return /* @__PURE__ */ import_react30.default.createElement(StackBase, { ...props, flexDirection: "row", ref: forwardedRef });
1432
1435
  })
1433
1436
  );
1434
1437
  var Stack = {
@@ -1437,7 +1440,7 @@ var Stack = {
1437
1440
  };
1438
1441
 
1439
1442
  // src/components/InputField.tsx
1440
- var InputFieldContext = (0, import_react30.createContext)({
1443
+ var InputFieldContext = (0, import_react31.createContext)({
1441
1444
  labelPosition: "end",
1442
1445
  labelSize: 6,
1443
1446
  hasLabel: false,
@@ -1465,11 +1468,11 @@ var LabelContainer = import_styled_components13.default.label(({ theme, labelPos
1465
1468
  paddingRight: hasDropdown ? "16px" : "6px"
1466
1469
  }
1467
1470
  }));
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)(() => {
1471
+ var InputFieldLabel = (0, import_react31.memo)(
1472
+ (0, import_react31.forwardRef)(function InputFieldLabel2({ children = false, pointerEvents = "none", style: style3 }, forwardedRef) {
1473
+ const { labelPosition, hasDropdown, setLabelWidth } = (0, import_react31.useContext)(InputFieldContext);
1474
+ const ref = (0, import_react31.useRef)(null);
1475
+ (0, import_react31.useLayoutEffect)(() => {
1473
1476
  if (!setLabelWidth)
1474
1477
  return;
1475
1478
  const width = ref.current?.getBoundingClientRect().width;
@@ -1477,7 +1480,7 @@ var InputFieldLabel = (0, import_react30.memo)(
1477
1480
  return;
1478
1481
  setLabelWidth(width);
1479
1482
  }, [setLabelWidth]);
1480
- return /* @__PURE__ */ import_react30.default.createElement(
1483
+ return /* @__PURE__ */ import_react31.default.createElement(
1481
1484
  LabelContainer,
1482
1485
  {
1483
1486
  ref: (element) => {
@@ -1501,16 +1504,16 @@ var DropdownContainer = import_styled_components13.default.span(({ theme }) => (
1501
1504
  display: "flex",
1502
1505
  flexDirection: "column"
1503
1506
  }));
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)(
1507
+ var InputFieldDropdownMenu = (0, import_react31.memo)(function InputFieldDropdownMenu2({ id, items, onSelect, children }) {
1508
+ const { size: size2 } = (0, import_react31.useContext)(InputFieldContext);
1509
+ const contentStyle = (0, import_react31.useMemo)(
1507
1510
  () => ({
1508
1511
  margin: "-4px 0",
1509
1512
  minHeight: size2 === "small" ? "15px" : void 0
1510
1513
  }),
1511
1514
  [size2]
1512
1515
  );
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))));
1516
+ 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
1517
  });
1515
1518
  var ButtonContainer = import_styled_components13.default.span(
1516
1519
  ({ theme, size: size2 }) => ({
@@ -1519,12 +1522,12 @@ var ButtonContainer = import_styled_components13.default.span(
1519
1522
  top: size2 === "large" ? "8px" : size2 === "medium" ? "4px" : "2px"
1520
1523
  })
1521
1524
  );
1522
- var InputFieldButton = (0, import_react30.memo)(function InputFieldButton2({
1525
+ var InputFieldButton = (0, import_react31.memo)(function InputFieldButton2({
1523
1526
  children,
1524
1527
  onClick
1525
1528
  }) {
1526
- const { size: size2, inputRef } = (0, import_react30.useContext)(InputFieldContext);
1527
- const defaultHandleClick = (0, import_react30.useCallback)(
1529
+ const { size: size2, inputRef } = (0, import_react31.useContext)(InputFieldContext);
1530
+ const defaultHandleClick = (0, import_react31.useCallback)(
1528
1531
  (event) => {
1529
1532
  if (inputRef && typeof inputRef !== "function") {
1530
1533
  inputRef.current?.focus();
@@ -1535,11 +1538,11 @@ var InputFieldButton = (0, import_react30.memo)(function InputFieldButton2({
1535
1538
  },
1536
1539
  [inputRef]
1537
1540
  );
1538
- const handlePointerDown = (0, import_react30.useCallback)((event) => {
1541
+ const handlePointerDown = (0, import_react31.useCallback)((event) => {
1539
1542
  event.preventDefault();
1540
1543
  event.stopPropagation();
1541
1544
  }, []);
1542
- return /* @__PURE__ */ import_react30.default.createElement(ButtonContainer, { size: size2 }, /* @__PURE__ */ import_react30.default.createElement(
1545
+ return /* @__PURE__ */ import_react31.default.createElement(ButtonContainer, { size: size2 }, /* @__PURE__ */ import_react31.default.createElement(
1543
1546
  Button,
1544
1547
  {
1545
1548
  variant: "floating",
@@ -1626,7 +1629,7 @@ var InputElement = (0, import_styled_components13.default)(TextInput_default).wi
1626
1629
  }
1627
1630
  })
1628
1631
  );
1629
- var InputFieldInput = (0, import_react30.forwardRef)(function InputFieldInput2(props, forwardedRef) {
1632
+ var InputFieldInput = (0, import_react31.forwardRef)(function InputFieldInput2(props, forwardedRef) {
1630
1633
  const {
1631
1634
  labelPosition,
1632
1635
  labelSize,
@@ -1635,17 +1638,17 @@ var InputFieldInput = (0, import_react30.forwardRef)(function InputFieldInput2(p
1635
1638
  size: size2,
1636
1639
  onFocusChange,
1637
1640
  setInputRef
1638
- } = (0, import_react30.useContext)(InputFieldContext);
1639
- const handleFocusChange = (0, import_react30.useCallback)(
1641
+ } = (0, import_react31.useContext)(InputFieldContext);
1642
+ const handleFocusChange = (0, import_react31.useCallback)(
1640
1643
  (isFocused) => {
1641
1644
  onFocusChange(isFocused);
1642
1645
  },
1643
1646
  [onFocusChange]
1644
1647
  );
1645
- (0, import_react30.useLayoutEffect)(() => {
1648
+ (0, import_react31.useLayoutEffect)(() => {
1646
1649
  setInputRef?.(forwardedRef);
1647
1650
  }, [forwardedRef, setInputRef]);
1648
- return /* @__PURE__ */ import_react30.default.createElement(
1651
+ return /* @__PURE__ */ import_react31.default.createElement(
1649
1652
  InputElement,
1650
1653
  {
1651
1654
  ref: forwardedRef,
@@ -1667,8 +1670,8 @@ var InputFieldTypeahead = (props) => {
1667
1670
  hasLabel,
1668
1671
  size: size2,
1669
1672
  onFocusChange
1670
- } = (0, import_react30.useContext)(InputFieldContext);
1671
- return /* @__PURE__ */ import_react30.default.createElement(
1673
+ } = (0, import_react31.useContext)(InputFieldContext);
1674
+ return /* @__PURE__ */ import_react31.default.createElement(
1672
1675
  InputElement,
1673
1676
  {
1674
1677
  labelPosition,
@@ -1702,7 +1705,7 @@ function InputFieldNumberInput(props) {
1702
1705
  const { value, placeholder, onNudge } = props;
1703
1706
  const onSubmit = "onSubmit" in props ? props.onSubmit : void 0;
1704
1707
  const onChange = "onChange" in props ? props.onChange : void 0;
1705
- const handleSubmit = (0, import_react30.useCallback)(
1708
+ const handleSubmit = (0, import_react31.useCallback)(
1706
1709
  (value2) => {
1707
1710
  const newValue = parseNumber(value2);
1708
1711
  if (!isNaN(newValue)) {
@@ -1711,7 +1714,7 @@ function InputFieldNumberInput(props) {
1711
1714
  },
1712
1715
  [onSubmit]
1713
1716
  );
1714
- const handleKeyDown = (0, import_react30.useCallback)(
1717
+ const handleKeyDown = (0, import_react31.useCallback)(
1715
1718
  (event) => {
1716
1719
  const amount = handleNudge(event);
1717
1720
  if (!amount)
@@ -1722,13 +1725,13 @@ function InputFieldNumberInput(props) {
1722
1725
  },
1723
1726
  [onNudge]
1724
1727
  );
1725
- const handleChange = (0, import_react30.useCallback)(
1728
+ const handleChange = (0, import_react31.useCallback)(
1726
1729
  (value2) => {
1727
1730
  onChange?.(parseNumber(value2));
1728
1731
  },
1729
1732
  [onChange]
1730
1733
  );
1731
- return /* @__PURE__ */ import_react30.default.createElement(
1734
+ return /* @__PURE__ */ import_react31.default.createElement(
1732
1735
  InputFieldInput,
1733
1736
  {
1734
1737
  ...props,
@@ -1759,32 +1762,32 @@ function InputFieldRoot({
1759
1762
  renderPopoverContent,
1760
1763
  onFocusChange
1761
1764
  }) {
1762
- const childrenArray = import_react30.Children.toArray(children);
1765
+ const childrenArray = import_react31.Children.toArray(children);
1763
1766
  const hasDropdown = childrenArray.some(
1764
- (child) => (0, import_react30.isValidElement)(child) && child.type === InputFieldDropdownMenu
1767
+ (child) => (0, import_react31.isValidElement)(child) && child.type === InputFieldDropdownMenu
1765
1768
  );
1766
1769
  const hasLabel = childrenArray.some(
1767
- (child) => (0, import_react30.isValidElement)(child) && child.type === InputFieldLabel
1770
+ (child) => (0, import_react31.isValidElement)(child) && child.type === InputFieldLabel
1768
1771
  );
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)(
1772
+ const [isFocused, setIsFocused] = import_react31.default.useState(false);
1773
+ const [measuredLabelSize, setMeasuredLabelSize] = import_react31.default.useState();
1774
+ const [measuredWidth, setMeasuredWidth] = import_react31.default.useState();
1775
+ const handleFocusChange = (0, import_react31.useCallback)(
1773
1776
  (isFocused2) => {
1774
1777
  setIsFocused(isFocused2);
1775
1778
  onFocusChange?.(isFocused2);
1776
1779
  },
1777
1780
  [onFocusChange]
1778
1781
  );
1779
- const [inputRef, setInputRef] = import_react30.default.useState();
1780
- (0, import_react30.useEffect)(() => {
1782
+ const [inputRef, setInputRef] = import_react31.default.useState();
1783
+ (0, import_react31.useEffect)(() => {
1781
1784
  if (inputRef && typeof inputRef !== "function") {
1782
1785
  setMeasuredWidth?.(
1783
1786
  isFocused ? inputRef?.current?.getBoundingClientRect().width : void 0
1784
1787
  );
1785
1788
  }
1786
1789
  }, [inputRef, isFocused]);
1787
- const contextValue = (0, import_react30.useMemo)(
1790
+ const contextValue = (0, import_react31.useMemo)(
1788
1791
  () => ({
1789
1792
  labelPosition,
1790
1793
  labelSize: measuredLabelSize ?? labelSize ?? 6,
@@ -1809,8 +1812,8 @@ function InputFieldRoot({
1809
1812
  inputRef
1810
1813
  ]
1811
1814
  );
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(
1815
+ const rootElement = /* @__PURE__ */ import_react31.default.createElement(RootContainer, { id, width, flex }, children);
1816
+ return /* @__PURE__ */ import_react31.default.createElement(InputFieldContext.Provider, { value: contextValue }, renderPopoverContent ? /* @__PURE__ */ import_react31.default.createElement(
1814
1817
  Popover,
1815
1818
  {
1816
1819
  open: true,
@@ -1826,15 +1829,15 @@ function InputFieldRoot({
1826
1829
  event.stopPropagation();
1827
1830
  }
1828
1831
  },
1829
- measuredWidth && /* @__PURE__ */ import_react30.default.createElement(Stack.V, { width: measuredWidth, overflow: "hidden" }, renderPopoverContent({ width: measuredWidth }))
1832
+ measuredWidth && /* @__PURE__ */ import_react31.default.createElement(Stack.V, { width: measuredWidth, overflow: "hidden" }, renderPopoverContent({ width: measuredWidth }))
1830
1833
  ) : rootElement);
1831
1834
  }
1832
1835
  var InputField;
1833
1836
  ((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);
1837
+ InputField2.Root = (0, import_react31.memo)(InputFieldRoot);
1838
+ InputField2.Input = (0, import_react31.memo)(InputFieldInput);
1839
+ InputField2.Typeahead = (0, import_react31.memo)(InputFieldTypeahead);
1840
+ InputField2.NumberInput = (0, import_react31.memo)(InputFieldNumberInput);
1838
1841
  InputField2.DropdownMenu = InputFieldDropdownMenu;
1839
1842
  InputField2.Button = InputFieldButton;
1840
1843
  InputField2.Label = InputFieldLabel;
@@ -1858,24 +1861,24 @@ function createDeferredPromise() {
1858
1861
  });
1859
1862
  return { promise, resolve, reject };
1860
1863
  }
1861
- var DialogContext = (0, import_react31.createContext)(void 0);
1864
+ var DialogContext = (0, import_react32.createContext)(void 0);
1862
1865
  var DialogProvider = function DialogProvider2({
1863
1866
  children
1864
1867
  }) {
1865
- const [contents, setContents] = (0, import_react31.useState)();
1868
+ const [contents, setContents] = (0, import_react32.useState)();
1866
1869
  const isOpen = !!contents;
1867
- const close = (0, import_react31.useCallback)(() => {
1870
+ const close = (0, import_react32.useCallback)(() => {
1868
1871
  if (!contents)
1869
1872
  return;
1870
1873
  contents.resolve(void 0);
1871
1874
  }, [contents]);
1872
- const submit = (0, import_react31.useCallback)(() => {
1875
+ const submit = (0, import_react32.useCallback)(() => {
1873
1876
  if (!contents || !contents.inputValue)
1874
1877
  return;
1875
1878
  contents.resolve(contents.inputValue);
1876
1879
  setContents(void 0);
1877
1880
  }, [contents]);
1878
- const open = (0, import_react31.useCallback)(
1881
+ const open = (0, import_react32.useCallback)(
1879
1882
  (title, inputValue = "") => {
1880
1883
  const { promise, resolve } = createDeferredPromise();
1881
1884
  setContents({
@@ -1890,7 +1893,7 @@ var DialogProvider = function DialogProvider2({
1890
1893
  },
1891
1894
  []
1892
1895
  );
1893
- const handleKeyDown = (0, import_react31.useCallback)(
1896
+ const handleKeyDown = (0, import_react32.useCallback)(
1894
1897
  (event) => {
1895
1898
  if (event.key !== "Enter")
1896
1899
  return;
@@ -1900,29 +1903,29 @@ var DialogProvider = function DialogProvider2({
1900
1903
  },
1901
1904
  [submit]
1902
1905
  );
1903
- const inputRef = (0, import_react31.useRef)(null);
1904
- const dialogRef = (0, import_react31.useRef)(null);
1905
- const containsElement = (0, import_react31.useCallback)((element) => {
1906
+ const inputRef = (0, import_react32.useRef)(null);
1907
+ const dialogRef = (0, import_react32.useRef)(null);
1908
+ const containsElement = (0, import_react32.useCallback)((element) => {
1906
1909
  if (!dialogRef.current)
1907
1910
  return false;
1908
1911
  return dialogRef.current.containsElement(element);
1909
1912
  }, []);
1910
- return /* @__PURE__ */ import_react31.default.createElement(import_react31.default.Fragment, null, /* @__PURE__ */ import_react31.default.createElement(
1913
+ return /* @__PURE__ */ import_react32.default.createElement(import_react32.default.Fragment, null, /* @__PURE__ */ import_react32.default.createElement(
1911
1914
  DialogContext.Provider,
1912
1915
  {
1913
- value: (0, import_react31.useMemo)(
1916
+ value: (0, import_react32.useMemo)(
1914
1917
  () => ({ openInputDialog: open, containsElement }),
1915
1918
  [containsElement, open]
1916
1919
  )
1917
1920
  },
1918
1921
  children
1919
- ), /* @__PURE__ */ import_react31.default.createElement(
1922
+ ), /* @__PURE__ */ import_react32.default.createElement(
1920
1923
  Dialog,
1921
1924
  {
1922
1925
  ref: dialogRef,
1923
1926
  title: contents?.title,
1924
1927
  open: isOpen,
1925
- onOpenChange: (0, import_react31.useCallback)(
1928
+ onOpenChange: (0, import_react32.useCallback)(
1926
1929
  (isOpen2) => {
1927
1930
  if (!isOpen2) {
1928
1931
  close();
@@ -1930,14 +1933,14 @@ var DialogProvider = function DialogProvider2({
1930
1933
  },
1931
1934
  [close]
1932
1935
  ),
1933
- onOpenAutoFocus: (0, import_react31.useCallback)((event) => {
1936
+ onOpenAutoFocus: (0, import_react32.useCallback)((event) => {
1934
1937
  event.stopPropagation();
1935
1938
  event.preventDefault();
1936
1939
  inputRef.current?.focus();
1937
1940
  inputRef.current?.setSelectionRange(0, inputRef.current.value.length);
1938
1941
  }, [])
1939
1942
  },
1940
- /* @__PURE__ */ import_react31.default.createElement(InputField.Root, null, /* @__PURE__ */ import_react31.default.createElement(
1943
+ /* @__PURE__ */ import_react32.default.createElement(InputField.Root, null, /* @__PURE__ */ import_react32.default.createElement(
1941
1944
  InputField.Input,
1942
1945
  {
1943
1946
  ref: inputRef,
@@ -1953,12 +1956,12 @@ var DialogProvider = function DialogProvider2({
1953
1956
  onKeyDown: handleKeyDown
1954
1957
  }
1955
1958
  )),
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"))
1959
+ /* @__PURE__ */ import_react32.default.createElement(Spacer.Vertical, { size: 20 }),
1960
+ /* @__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
1961
  ));
1959
1962
  };
1960
1963
  function useDialog() {
1961
- const value = (0, import_react31.useContext)(DialogContext);
1964
+ const value = (0, import_react32.useContext)(DialogContext);
1962
1965
  if (!value) {
1963
1966
  throw new Error("Missing DialogProvider");
1964
1967
  }
@@ -1972,19 +1975,19 @@ function useDialogContainsElement() {
1972
1975
  }
1973
1976
 
1974
1977
  // src/contexts/DesignSystemConfiguration.tsx
1975
- var DesignSystemConfigurationContext = (0, import_react32.createContext)(void 0);
1976
- var DesignSystemConfigurationProvider = (0, import_react32.memo)(
1978
+ var DesignSystemConfigurationContext = (0, import_react33.createContext)(void 0);
1979
+ var DesignSystemConfigurationProvider = (0, import_react33.memo)(
1977
1980
  function DesignSystemConfigurationProvider2({
1978
1981
  children,
1979
1982
  theme,
1980
1983
  platform
1981
1984
  }) {
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))));
1985
+ const contextValue = (0, import_react33.useMemo)(() => ({ platform }), [platform]);
1986
+ 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
1987
  }
1985
1988
  );
1986
1989
  function useDesignSystemConfiguration() {
1987
- const value = (0, import_react32.useContext)(DesignSystemConfigurationContext);
1990
+ const value = (0, import_react33.useContext)(DesignSystemConfigurationContext);
1988
1991
  if (!value) {
1989
1992
  throw new Error("Missing DesignSystemConfigurationProvider");
1990
1993
  }
@@ -2172,7 +2175,7 @@ var AddElement = (0, import_styled_components16.default)(import_noya_icons3.Plus
2172
2175
  opacity: 0.85
2173
2176
  }
2174
2177
  }));
2175
- var Chip = (0, import_react33.memo)(function Chip2({
2178
+ var Chip = (0, import_react34.memo)(function Chip2({
2176
2179
  colorScheme,
2177
2180
  children,
2178
2181
  deletable,
@@ -2193,7 +2196,7 @@ var Chip = (0, import_react33.memo)(function Chip2({
2193
2196
  });
2194
2197
  const handleClick = !children && !deletable && addable ? onAdd : onClick;
2195
2198
  const color = colorScheme === "primary" ? theme.colors.primary : colorScheme === "secondary" ? theme.colors.secondary : theme.colors.text;
2196
- return /* @__PURE__ */ import_react33.default.createElement(
2199
+ return /* @__PURE__ */ import_react34.default.createElement(
2197
2200
  ChipElement,
2198
2201
  {
2199
2202
  variant,
@@ -2205,7 +2208,7 @@ var Chip = (0, import_react33.memo)(function Chip2({
2205
2208
  isInteractive: !!handleClick,
2206
2209
  tabIndex
2207
2210
  },
2208
- addable && /* @__PURE__ */ import_react33.default.createElement(
2211
+ addable && /* @__PURE__ */ import_react34.default.createElement(
2209
2212
  AddElement,
2210
2213
  {
2211
2214
  size: size2,
@@ -2218,7 +2221,7 @@ var Chip = (0, import_react33.memo)(function Chip2({
2218
2221
  }
2219
2222
  ),
2220
2223
  children,
2221
- deletable && /* @__PURE__ */ import_react33.default.createElement(
2224
+ deletable && /* @__PURE__ */ import_react34.default.createElement(
2222
2225
  DeleteElement,
2223
2226
  {
2224
2227
  size: size2,
@@ -2237,7 +2240,7 @@ var Chip = (0, import_react33.memo)(function Chip2({
2237
2240
  var import_noya_icons4 = require("@noya-app/noya-icons");
2238
2241
  var import_noya_keymap3 = require("@noya-app/noya-keymap");
2239
2242
  var RadixContextMenu = __toESM(require("@radix-ui/react-context-menu"));
2240
- var import_react34 = __toESM(require("react"));
2243
+ var import_react35 = __toESM(require("react"));
2241
2244
  var import_styled_components17 = __toESM(require("styled-components"));
2242
2245
  var SeparatorElement2 = (0, import_styled_components17.default)(RadixContextMenu.Separator)(
2243
2246
  styles.separatorStyle
@@ -2249,7 +2252,7 @@ var CheckboxItemElement2 = (0, import_styled_components17.default)(RadixContextM
2249
2252
  var StyledItemIndicator2 = (0, import_styled_components17.default)(RadixContextMenu.ItemIndicator)(
2250
2253
  styles.itemIndicatorStyle
2251
2254
  );
2252
- var ContextMenuItem2 = (0, import_react34.memo)(function ContextMenuItem3({
2255
+ var ContextMenuItem2 = (0, import_react35.memo)(function ContextMenuItem3({
2253
2256
  value,
2254
2257
  children,
2255
2258
  onSelect,
@@ -2260,42 +2263,42 @@ var ContextMenuItem2 = (0, import_react34.memo)(function ContextMenuItem3({
2260
2263
  items,
2261
2264
  shortcut
2262
2265
  }) {
2263
- const handlePointerDown = (0, import_react34.useCallback)(
2266
+ const handlePointerDown = (0, import_react35.useCallback)(
2264
2267
  (event) => event.stopPropagation(),
2265
2268
  []
2266
2269
  );
2267
- const handleSelectItem = (0, import_react34.useCallback)(() => {
2270
+ const handleSelectItem = (0, import_react35.useCallback)(() => {
2268
2271
  if (!value)
2269
2272
  return;
2270
2273
  onSelect(value);
2271
2274
  }, [onSelect, value]);
2272
2275
  if (checked) {
2273
- return /* @__PURE__ */ import_react34.default.createElement(
2276
+ return /* @__PURE__ */ import_react35.default.createElement(
2274
2277
  CheckboxItemElement2,
2275
2278
  {
2276
2279
  checked,
2277
2280
  disabled,
2278
2281
  onSelect: handleSelectItem
2279
2282
  },
2280
- /* @__PURE__ */ import_react34.default.createElement(StyledItemIndicator2, null, /* @__PURE__ */ import_react34.default.createElement(import_noya_icons4.CheckIcon, null)),
2283
+ /* @__PURE__ */ import_react35.default.createElement(StyledItemIndicator2, null, /* @__PURE__ */ import_react35.default.createElement(import_noya_icons4.CheckIcon, null)),
2281
2284
  children
2282
2285
  );
2283
2286
  }
2284
- const element = /* @__PURE__ */ import_react34.default.createElement(
2287
+ const element = /* @__PURE__ */ import_react35.default.createElement(
2285
2288
  ItemElement2,
2286
2289
  {
2287
2290
  disabled,
2288
2291
  onSelect: handleSelectItem,
2289
2292
  onPointerDown: handlePointerDown
2290
2293
  },
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 })),
2294
+ indented && /* @__PURE__ */ import_react35.default.createElement(Spacer.Horizontal, { size: CHECKBOX_WIDTH - CHECKBOX_RIGHT_INSET }),
2295
+ icon && /* @__PURE__ */ import_react35.default.createElement(import_react35.default.Fragment, null, icon, /* @__PURE__ */ import_react35.default.createElement(Spacer.Horizontal, { size: 8 })),
2293
2296
  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))
2297
+ 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 })),
2298
+ 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
2299
  );
2297
2300
  if (items && items.length > 0) {
2298
- return /* @__PURE__ */ import_react34.default.createElement(ContextMenuRoot, { isNested: true, items, onSelect }, element);
2301
+ return /* @__PURE__ */ import_react35.default.createElement(ContextMenuRoot, { isNested: true, items, onSelect }, element);
2299
2302
  } else {
2300
2303
  return element;
2301
2304
  }
@@ -2313,19 +2316,19 @@ function ContextMenuRoot({
2313
2316
  const hasCheckedItem = items.some(
2314
2317
  (item) => item !== SEPARATOR_ITEM && item.checked
2315
2318
  );
2316
- const keymap = (0, import_react34.useMemo)(
2319
+ const keymap = (0, import_react35.useMemo)(
2317
2320
  () => isNested || shouldBindKeyboardShortcuts === false ? {} : getKeyboardShortcutsForMenuItems(items, onSelect),
2318
2321
  [isNested, items, onSelect, shouldBindKeyboardShortcuts]
2319
2322
  );
2320
2323
  (0, import_noya_keymap3.useKeyboardShortcuts)(keymap);
2321
- const onPointerDown = (0, import_react34.useCallback)((event) => {
2324
+ const onPointerDown = (0, import_react35.useCallback)((event) => {
2322
2325
  event.preventDefault();
2323
2326
  }, []);
2324
2327
  const RootComponent = isNested ? RadixContextMenu.Sub : RadixContextMenu.Root;
2325
2328
  const TriggerComponent = isNested ? RadixContextMenu.SubTrigger : RadixContextMenu.Trigger;
2326
2329
  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(
2330
+ 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(
2331
+ (item, index) => item === SEPARATOR_ITEM ? /* @__PURE__ */ import_react35.default.createElement(SeparatorElement2, { key: index }) : /* @__PURE__ */ import_react35.default.createElement(
2329
2332
  ContextMenuItem2,
2330
2333
  {
2331
2334
  key: item.value ?? index,
@@ -2342,26 +2345,26 @@ function ContextMenuRoot({
2342
2345
  )
2343
2346
  ))));
2344
2347
  }
2345
- var ContextMenu = (0, import_react34.memo)(ContextMenuRoot);
2348
+ var ContextMenu = (0, import_react35.memo)(ContextMenuRoot);
2346
2349
 
2347
2350
  // src/components/Divider.tsx
2348
- var import_react35 = __toESM(require("react"));
2351
+ var import_react36 = __toESM(require("react"));
2349
2352
  var import_styled_components18 = __toESM(require("styled-components"));
2350
2353
  var DividerContainer = import_styled_components18.default.div(({ theme, variant = "normal", orientation, overflow = 0 }) => ({
2351
2354
  ...orientation === "horizontal" ? { height: "1px", minHeight: "1px", margin: `0px -${overflow}px` } : { width: "1px", minWidth: "1px", margin: `-${overflow}px 0px` },
2352
2355
  background: variant === "strong" ? theme.colors.dividerStrong : variant === "subtle" ? theme.colors.dividerSubtle : theme.colors.divider,
2353
2356
  alignSelf: "stretch"
2354
2357
  }));
2355
- var Divider = (0, import_react35.memo)(function Divider2(props) {
2356
- return /* @__PURE__ */ import_react35.default.createElement(DividerContainer, { orientation: "horizontal", ...props });
2358
+ var Divider = (0, import_react36.memo)(function Divider2(props) {
2359
+ return /* @__PURE__ */ import_react36.default.createElement(DividerContainer, { orientation: "horizontal", ...props });
2357
2360
  });
2358
- var DividerVertical = (0, import_react35.memo)(function DividerVertical2(props) {
2359
- return /* @__PURE__ */ import_react35.default.createElement(DividerContainer, { orientation: "vertical", ...props });
2361
+ var DividerVertical = (0, import_react36.memo)(function DividerVertical2(props) {
2362
+ return /* @__PURE__ */ import_react36.default.createElement(DividerContainer, { orientation: "vertical", ...props });
2360
2363
  });
2361
2364
 
2362
2365
  // src/components/DraggableMenuButton.tsx
2363
2366
  var import_noya_icons5 = require("@noya-app/noya-icons");
2364
- var import_react36 = __toESM(require("react"));
2367
+ var import_react37 = __toESM(require("react"));
2365
2368
  var import_styled_components19 = __toESM(require("styled-components"));
2366
2369
  var DotButtonElement = import_styled_components19.default.div(({ theme }) => ({
2367
2370
  cursor: "pointer",
@@ -2381,15 +2384,15 @@ var TriggerElement = import_styled_components19.default.div({
2381
2384
  pointerEvents: "none",
2382
2385
  height: "15px"
2383
2386
  });
2384
- var DraggableMenuButton = (0, import_react36.memo)(function DraggableMenuButton2({
2387
+ var DraggableMenuButton = (0, import_react37.memo)(function DraggableMenuButton2({
2385
2388
  items,
2386
2389
  onSelect,
2387
2390
  isVisible = true
2388
2391
  }) {
2389
2392
  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)(
2393
+ const [open, setOpen] = (0, import_react37.useState)(false);
2394
+ const [downPosition, setDownPosition] = import_react37.default.useState(null);
2395
+ const handlePointerDownCapture = (0, import_react37.useCallback)(
2393
2396
  (event) => {
2394
2397
  if (open) {
2395
2398
  setDownPosition(null);
@@ -2402,7 +2405,7 @@ var DraggableMenuButton = (0, import_react36.memo)(function DraggableMenuButton2
2402
2405
  },
2403
2406
  [open]
2404
2407
  );
2405
- const handlePointerUp = (0, import_react36.useCallback)(
2408
+ const handlePointerUp = (0, import_react37.useCallback)(
2406
2409
  (event) => {
2407
2410
  if (open || !downPosition) {
2408
2411
  setDownPosition(null);
@@ -2418,14 +2421,14 @@ var DraggableMenuButton = (0, import_react36.memo)(function DraggableMenuButton2
2418
2421
  },
2419
2422
  [downPosition, open]
2420
2423
  );
2421
- const handleOpenChange = (0, import_react36.useCallback)(
2424
+ const handleOpenChange = (0, import_react37.useCallback)(
2422
2425
  (isOpen) => {
2423
2426
  if (!isOpen)
2424
2427
  setOpen(false);
2425
2428
  },
2426
2429
  [setOpen]
2427
2430
  );
2428
- return /* @__PURE__ */ import_react36.default.createElement(
2431
+ return /* @__PURE__ */ import_react37.default.createElement(
2429
2432
  DotButtonElement,
2430
2433
  {
2431
2434
  onPointerDownCapture: handlePointerDownCapture,
@@ -2435,7 +2438,7 @@ var DraggableMenuButton = (0, import_react36.memo)(function DraggableMenuButton2
2435
2438
  event.preventDefault();
2436
2439
  }
2437
2440
  },
2438
- items && onSelect ? /* @__PURE__ */ import_react36.default.createElement(
2441
+ items && onSelect ? /* @__PURE__ */ import_react37.default.createElement(
2439
2442
  DropdownMenu,
2440
2443
  {
2441
2444
  open,
@@ -2444,13 +2447,13 @@ var DraggableMenuButton = (0, import_react36.memo)(function DraggableMenuButton2
2444
2447
  onSelect,
2445
2448
  shouldBindKeyboardShortcuts: false
2446
2449
  },
2447
- /* @__PURE__ */ import_react36.default.createElement(TriggerElement, null, /* @__PURE__ */ import_react36.default.createElement(
2450
+ /* @__PURE__ */ import_react37.default.createElement(TriggerElement, null, /* @__PURE__ */ import_react37.default.createElement(
2448
2451
  import_noya_icons5.DragHandleDots2Icon,
2449
2452
  {
2450
2453
  color: isVisible || open ? color : "transparent"
2451
2454
  }
2452
2455
  ))
2453
- ) : /* @__PURE__ */ import_react36.default.createElement(
2456
+ ) : /* @__PURE__ */ import_react37.default.createElement(
2454
2457
  import_noya_icons5.DragHandleDots2Icon,
2455
2458
  {
2456
2459
  color: isVisible || open ? color : "transparent"
@@ -2460,7 +2463,7 @@ var DraggableMenuButton = (0, import_react36.memo)(function DraggableMenuButton2
2460
2463
  });
2461
2464
 
2462
2465
  // src/components/FillInputField.tsx
2463
- var import_react40 = __toESM(require("react"));
2466
+ var import_react41 = __toESM(require("react"));
2464
2467
  var import_styled_components21 = __toESM(require("styled-components"));
2465
2468
 
2466
2469
  // ../noya-file-format/src/types.ts
@@ -2786,26 +2789,26 @@ var ClassValue = /* @__PURE__ */ ((ClassValue2) => {
2786
2789
  })(ClassValue || {});
2787
2790
 
2788
2791
  // src/components/FillPreviewBackground.tsx
2789
- var import_react39 = __toESM(require("react"));
2792
+ var import_react40 = __toESM(require("react"));
2790
2793
  var import_styled_components20 = __toESM(require("styled-components"));
2791
2794
 
2792
2795
  // src/contexts/ImageDataContext.tsx
2793
- var import_react37 = __toESM(require("react"));
2794
- var ImageDataContext = (0, import_react37.createContext)(
2796
+ var import_react38 = __toESM(require("react"));
2797
+ var ImageDataContext = (0, import_react38.createContext)(
2795
2798
  void 0
2796
2799
  );
2797
- var ImageDataProvider = (0, import_react37.memo)(function ImageDataProvider2({
2800
+ var ImageDataProvider = (0, import_react38.memo)(function ImageDataProvider2({
2798
2801
  children,
2799
2802
  getImageData
2800
2803
  }) {
2801
- const contextValue = (0, import_react37.useMemo)(
2804
+ const contextValue = (0, import_react38.useMemo)(
2802
2805
  () => ({ getImageData: getImageData ?? (() => void 0) }),
2803
2806
  [getImageData]
2804
2807
  );
2805
- return /* @__PURE__ */ import_react37.default.createElement(ImageDataContext.Provider, { value: contextValue }, children);
2808
+ return /* @__PURE__ */ import_react38.default.createElement(ImageDataContext.Provider, { value: contextValue }, children);
2806
2809
  });
2807
2810
  function useImageData(ref) {
2808
- const value = (0, import_react37.useContext)(ImageDataContext);
2811
+ const value = (0, import_react38.useContext)(ImageDataContext);
2809
2812
  if (!value) {
2810
2813
  throw new Error("Missing ImageDataProvider");
2811
2814
  }
@@ -2813,15 +2816,15 @@ function useImageData(ref) {
2813
2816
  }
2814
2817
 
2815
2818
  // src/hooks/useObjectURL.ts
2816
- var import_react38 = require("react");
2819
+ var import_react39 = require("react");
2817
2820
  function useObjectURL(object) {
2818
- const objectURL = (0, import_react38.useMemo)(() => {
2821
+ const objectURL = (0, import_react39.useMemo)(() => {
2819
2822
  if (object instanceof Blob)
2820
2823
  return URL.createObjectURL(object);
2821
2824
  const bytes = object instanceof Uint8Array ? object : object !== void 0 ? new Uint8Array(object) : new Uint8Array();
2822
2825
  return URL.createObjectURL(new Blob([bytes]));
2823
2826
  }, [object]);
2824
- (0, import_react38.useLayoutEffect)(() => {
2827
+ (0, import_react39.useLayoutEffect)(() => {
2825
2828
  return () => URL.revokeObjectURL(objectURL);
2826
2829
  }, [objectURL]);
2827
2830
  return objectURL;
@@ -2877,9 +2880,9 @@ var Background = import_styled_components20.default.span(({ background }) => ({
2877
2880
  position: "absolute",
2878
2881
  inset: 0
2879
2882
  }));
2880
- var HorizontalDotsBackground = (0, import_react39.memo)(function HorizontalDotsBackground2() {
2883
+ var HorizontalDotsBackground = (0, import_react40.memo)(function HorizontalDotsBackground2() {
2881
2884
  const { inputBackground, placeholderDots } = (0, import_styled_components20.useTheme)().colors;
2882
- const background = (0, import_react39.useMemo)(
2885
+ const background = (0, import_react40.useMemo)(
2883
2886
  () => [
2884
2887
  `center url("data:image/svg+xml;utf8,${dotsHorizontalSvg(
2885
2888
  placeholderDots
@@ -2888,7 +2891,7 @@ var HorizontalDotsBackground = (0, import_react39.memo)(function HorizontalDotsB
2888
2891
  ].join(","),
2889
2892
  [inputBackground, placeholderDots]
2890
2893
  );
2891
- return /* @__PURE__ */ import_react39.default.createElement(Background, { background });
2894
+ return /* @__PURE__ */ import_react40.default.createElement(Background, { background });
2892
2895
  });
2893
2896
  function getPatternSizeAndPosition(fillType, tileScale) {
2894
2897
  switch (fillType) {
@@ -2902,7 +2905,7 @@ function getPatternSizeAndPosition(fillType, tileScale) {
2902
2905
  return "center / 100% 100%";
2903
2906
  }
2904
2907
  }
2905
- var PatternPreviewBackground = (0, import_react39.memo)(function PatternPreviewBackground2({
2908
+ var PatternPreviewBackground = (0, import_react40.memo)(function PatternPreviewBackground2({
2906
2909
  fillType,
2907
2910
  tileScale,
2908
2911
  imageRef
@@ -2910,7 +2913,7 @@ var PatternPreviewBackground = (0, import_react39.memo)(function PatternPreviewB
2910
2913
  const image = useImageData(imageRef);
2911
2914
  const url = useObjectURL(image);
2912
2915
  const size2 = getPatternSizeAndPosition(fillType, tileScale);
2913
- const background = (0, import_react39.useMemo)(
2916
+ const background = (0, import_react40.useMemo)(
2914
2917
  () => [
2915
2918
  size2,
2916
2919
  `url(${url})`,
@@ -2918,37 +2921,37 @@ var PatternPreviewBackground = (0, import_react39.memo)(function PatternPreviewB
2918
2921
  ].join(" "),
2919
2922
  [fillType, size2, url]
2920
2923
  );
2921
- return /* @__PURE__ */ import_react39.default.createElement(Background, { background });
2924
+ return /* @__PURE__ */ import_react40.default.createElement(Background, { background });
2922
2925
  });
2923
- var ColorPreviewBackground = (0, import_react39.memo)(function ColorPreviewBackground2({
2926
+ var ColorPreviewBackground = (0, import_react40.memo)(function ColorPreviewBackground2({
2924
2927
  color
2925
2928
  }) {
2926
- const background = (0, import_react39.useMemo)(() => sketchColorToRgbaString(color), [color]);
2927
- return /* @__PURE__ */ import_react39.default.createElement(Background, { background });
2929
+ const background = (0, import_react40.useMemo)(() => sketchColorToRgbaString(color), [color]);
2930
+ return /* @__PURE__ */ import_react40.default.createElement(Background, { background });
2928
2931
  });
2929
- var GradientPreviewBackground = (0, import_react39.memo)(function GradientPreviewBackground2({
2932
+ var GradientPreviewBackground = (0, import_react40.memo)(function GradientPreviewBackground2({
2930
2933
  gradient
2931
2934
  }) {
2932
- const background = (0, import_react39.useMemo)(
2935
+ const background = (0, import_react40.useMemo)(
2933
2936
  () => getGradientBackground(gradient.stops, gradient.gradientType, 180),
2934
2937
  [gradient.gradientType, gradient.stops]
2935
2938
  );
2936
- return /* @__PURE__ */ import_react39.default.createElement(Background, { background });
2939
+ return /* @__PURE__ */ import_react40.default.createElement(Background, { background });
2937
2940
  });
2938
- var FillPreviewBackground = (0, import_react39.memo)(function FillPreviewBackground2({
2941
+ var FillPreviewBackground = (0, import_react40.memo)(function FillPreviewBackground2({
2939
2942
  value
2940
2943
  }) {
2941
2944
  if (!value)
2942
- return /* @__PURE__ */ import_react39.default.createElement(HorizontalDotsBackground, null);
2945
+ return /* @__PURE__ */ import_react40.default.createElement(HorizontalDotsBackground, null);
2943
2946
  switch (value._class) {
2944
2947
  case "color":
2945
- return /* @__PURE__ */ import_react39.default.createElement(ColorPreviewBackground, { color: value });
2948
+ return /* @__PURE__ */ import_react40.default.createElement(ColorPreviewBackground, { color: value });
2946
2949
  case "gradient":
2947
- return /* @__PURE__ */ import_react39.default.createElement(GradientPreviewBackground, { gradient: value });
2950
+ return /* @__PURE__ */ import_react40.default.createElement(GradientPreviewBackground, { gradient: value });
2948
2951
  case "pattern":
2949
2952
  if (!value.image)
2950
2953
  return null;
2951
- return /* @__PURE__ */ import_react39.default.createElement(
2954
+ return /* @__PURE__ */ import_react40.default.createElement(
2952
2955
  PatternPreviewBackground,
2953
2956
  {
2954
2957
  fillType: value.patternFillType,
@@ -2978,16 +2981,16 @@ var Container = import_styled_components21.default.button(
2978
2981
  flex
2979
2982
  })
2980
2983
  );
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 }));
2984
+ var FillInputField = (0, import_react41.memo)(
2985
+ (0, import_react41.forwardRef)(function FillInputField2({ id, value, ...rest }, ref) {
2986
+ return /* @__PURE__ */ import_react41.default.createElement(Container, { ref, id, ...rest }, /* @__PURE__ */ import_react41.default.createElement(FillPreviewBackground, { value }));
2984
2987
  })
2985
2988
  );
2986
2989
 
2987
2990
  // src/components/GradientPicker.tsx
2988
2991
  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({
2992
+ var import_react42 = __toESM(require("react"));
2993
+ var GradientPicker = (0, import_react42.memo)(function GradientPicker2({
2991
2994
  value,
2992
2995
  selectedStop,
2993
2996
  onChangeColor,
@@ -2996,7 +2999,7 @@ var GradientPicker = (0, import_react41.memo)(function GradientPicker2({
2996
2999
  onDelete,
2997
3000
  onSelectStop
2998
3001
  }) {
2999
- const colorModel = (0, import_react41.useMemo)(
3002
+ const colorModel = (0, import_react42.useMemo)(
3000
3003
  () => ({
3001
3004
  defaultColor: { r: 0, g: 0, b: 0, a: 1 },
3002
3005
  toHsva: import_noya_colorpicker2.rgbaToHsva,
@@ -3005,30 +3008,30 @@ var GradientPicker = (0, import_react41.memo)(function GradientPicker2({
3005
3008
  }),
3006
3009
  []
3007
3010
  );
3008
- const rgbaColor = (0, import_react41.useMemo)(
3011
+ const rgbaColor = (0, import_react42.useMemo)(
3009
3012
  () => sketchColorToRgba(value[selectedStop].color),
3010
3013
  [value, selectedStop]
3011
3014
  );
3012
- const handleChangeColor = (0, import_react41.useCallback)(
3015
+ const handleChangeColor = (0, import_react42.useCallback)(
3013
3016
  (value2) => {
3014
3017
  onChangeColor(rgbaToSketchColor(value2));
3015
3018
  },
3016
3019
  [onChangeColor]
3017
3020
  );
3018
- const handleAddGradientStop = (0, import_react41.useCallback)(
3021
+ const handleAddGradientStop = (0, import_react42.useCallback)(
3019
3022
  (value2, position) => {
3020
3023
  onAdd(rgbaToSketchColor(value2), position);
3021
3024
  },
3022
3025
  [onAdd]
3023
3026
  );
3024
- return /* @__PURE__ */ import_react41.default.createElement(
3027
+ return /* @__PURE__ */ import_react42.default.createElement(
3025
3028
  import_noya_colorpicker2.ColorPicker,
3026
3029
  {
3027
3030
  onChange: handleChangeColor,
3028
3031
  colorModel,
3029
3032
  color: rgbaColor
3030
3033
  },
3031
- /* @__PURE__ */ import_react41.default.createElement(
3034
+ /* @__PURE__ */ import_react42.default.createElement(
3032
3035
  import_noya_colorpicker2.Gradient,
3033
3036
  {
3034
3037
  gradients: value,
@@ -3039,12 +3042,12 @@ var GradientPicker = (0, import_react41.memo)(function GradientPicker2({
3039
3042
  onDelete
3040
3043
  }
3041
3044
  ),
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)
3045
+ /* @__PURE__ */ import_react42.default.createElement(Spacer.Vertical, { size: 10 }),
3046
+ /* @__PURE__ */ import_react42.default.createElement(import_noya_colorpicker2.Saturation, null),
3047
+ /* @__PURE__ */ import_react42.default.createElement(Spacer.Vertical, { size: 12 }),
3048
+ /* @__PURE__ */ import_react42.default.createElement(import_noya_colorpicker2.Hue, null),
3049
+ /* @__PURE__ */ import_react42.default.createElement(Spacer.Vertical, { size: 5 }),
3050
+ /* @__PURE__ */ import_react42.default.createElement(import_noya_colorpicker2.Alpha, null)
3048
3051
  );
3049
3052
  });
3050
3053
 
@@ -3076,12 +3079,12 @@ var Grid = import_styled_components22.default.div((props) => ({
3076
3079
  }));
3077
3080
 
3078
3081
  // src/components/GridView.tsx
3079
- var import_react43 = __toESM(require("react"));
3082
+ var import_react44 = __toESM(require("react"));
3080
3083
  var import_styled_components24 = __toESM(require("styled-components"));
3081
3084
 
3082
3085
  // src/components/ScrollArea.tsx
3083
3086
  var RadixScrollArea = __toESM(require("@radix-ui/react-scroll-area"));
3084
- var import_react42 = __toESM(require("react"));
3087
+ var import_react43 = __toESM(require("react"));
3085
3088
  var import_styled_components23 = __toESM(require("styled-components"));
3086
3089
  var SCROLLBAR_SIZE = 10;
3087
3090
  var StyledViewport = (0, import_styled_components23.default)(RadixScrollArea.Viewport)({
@@ -3109,18 +3112,18 @@ var Container2 = import_styled_components23.default.div({
3109
3112
  flex: "1 1 0px",
3110
3113
  minHeight: 0
3111
3114
  });
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(
3115
+ var ScrollArea = (0, import_react43.memo)(function ScrollArea2({ children }) {
3116
+ const [scrollElementRef, setScrollElementRef] = (0, import_react43.useState)(null);
3117
+ 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
3118
  StyledViewport,
3116
3119
  {
3117
- ref: (0, import_react42.useCallback)(
3120
+ ref: (0, import_react43.useCallback)(
3118
3121
  (ref) => setScrollElementRef(ref),
3119
3122
  []
3120
3123
  )
3121
3124
  },
3122
3125
  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" }))));
3126
+ ), /* @__PURE__ */ import_react43.default.createElement(StyledScrollbar, { orientation: "vertical", className: "scroll-component" }, /* @__PURE__ */ import_react43.default.createElement(StyledThumb, { className: "scroll-component" }))));
3124
3127
  });
3125
3128
 
3126
3129
  // src/components/GridView.tsx
@@ -3300,7 +3303,7 @@ var Shimmer = import_styled_components24.default.div`
3300
3303
  align-items: end;
3301
3304
  padding: 4px;
3302
3305
  `;
3303
- var GridViewItem = (0, import_react43.forwardRef)(function GridViewItem2({
3306
+ var GridViewItem = (0, import_react44.forwardRef)(function GridViewItem2({
3304
3307
  id,
3305
3308
  title,
3306
3309
  subtitle,
@@ -3316,15 +3319,15 @@ var GridViewItem = (0, import_react43.forwardRef)(function GridViewItem2({
3316
3319
  onContextMenu,
3317
3320
  style: style3
3318
3321
  }, forwardedRef) {
3319
- const [hovered, setHovered] = import_react43.default.useState(false);
3322
+ const [hovered, setHovered] = import_react44.default.useState(false);
3320
3323
  const { hoverProps } = useHover({
3321
3324
  onHoverChange: (isHovering) => {
3322
3325
  onHoverChange?.(isHovering);
3323
3326
  setHovered(isHovering);
3324
3327
  }
3325
3328
  });
3326
- const { textPosition, bordered, disabled } = (0, import_react43.useContext)(GridViewContext);
3327
- const handleClick = (0, import_react43.useCallback)(
3329
+ const { textPosition, bordered, disabled } = (0, import_react44.useContext)(GridViewContext);
3330
+ const handleClick = (0, import_react44.useCallback)(
3328
3331
  (event) => {
3329
3332
  event.stopPropagation();
3330
3333
  event.preventDefault();
@@ -3333,7 +3336,7 @@ var GridViewItem = (0, import_react43.forwardRef)(function GridViewItem2({
3333
3336
  },
3334
3337
  [onClick, onPress]
3335
3338
  );
3336
- const handleKeyDown = (0, import_react43.useCallback)(
3339
+ const handleKeyDown = (0, import_react44.useCallback)(
3337
3340
  (event) => {
3338
3341
  if (event.key === "Enter" || event.key === " ") {
3339
3342
  event.stopPropagation();
@@ -3345,7 +3348,7 @@ var GridViewItem = (0, import_react43.forwardRef)(function GridViewItem2({
3345
3348
  },
3346
3349
  [onPress]
3347
3350
  );
3348
- let element = /* @__PURE__ */ import_react43.default.createElement(
3351
+ let element = /* @__PURE__ */ import_react44.default.createElement(
3349
3352
  ItemContainer,
3350
3353
  {
3351
3354
  id,
@@ -3354,7 +3357,7 @@ var GridViewItem = (0, import_react43.forwardRef)(function GridViewItem2({
3354
3357
  tabIndex: disabled ? void 0 : 0,
3355
3358
  onKeyDown: handleKeyDown
3356
3359
  },
3357
- /* @__PURE__ */ import_react43.default.createElement(
3360
+ /* @__PURE__ */ import_react44.default.createElement(
3358
3361
  ContentContainer,
3359
3362
  {
3360
3363
  disabled,
@@ -3368,25 +3371,25 @@ var GridViewItem = (0, import_react43.forwardRef)(function GridViewItem2({
3368
3371
  },
3369
3372
  children
3370
3373
  ),
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 }))
3374
+ 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 || " ")),
3375
+ 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)),
3376
+ loading && /* @__PURE__ */ import_react44.default.createElement(Shimmer, null, /* @__PURE__ */ import_react44.default.createElement(ActivityIndicator, { opacity: 0.5, size: 13 }))
3374
3377
  );
3375
3378
  if (menuItems && onSelectMenuItem) {
3376
- element = /* @__PURE__ */ import_react43.default.createElement(ContextMenu, { items: menuItems, onSelect: onSelectMenuItem }, element);
3379
+ element = /* @__PURE__ */ import_react44.default.createElement(ContextMenu, { items: menuItems, onSelect: onSelectMenuItem }, element);
3377
3380
  }
3378
3381
  if (textPosition === "toolip") {
3379
- element = /* @__PURE__ */ import_react43.default.createElement(
3382
+ element = /* @__PURE__ */ import_react44.default.createElement(
3380
3383
  Tooltip,
3381
3384
  {
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))
3385
+ 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
3386
  },
3384
3387
  element
3385
3388
  );
3386
3389
  }
3387
3390
  return element;
3388
3391
  });
3389
- var GridViewContext = (0, import_react43.createContext)({
3392
+ var GridViewContext = (0, import_react44.createContext)({
3390
3393
  size: "small",
3391
3394
  textPosition: "below",
3392
3395
  bordered: false,
@@ -3401,7 +3404,7 @@ function GridViewRoot({
3401
3404
  bordered = false,
3402
3405
  disabled = false
3403
3406
  }) {
3404
- const handleClick = (0, import_react43.useCallback)(
3407
+ const handleClick = (0, import_react44.useCallback)(
3405
3408
  (event) => {
3406
3409
  event.stopPropagation();
3407
3410
  event.preventDefault();
@@ -3409,7 +3412,7 @@ function GridViewRoot({
3409
3412
  },
3410
3413
  [onClick]
3411
3414
  );
3412
- const contextValue = (0, import_react43.useMemo)(
3415
+ const contextValue = (0, import_react44.useMemo)(
3413
3416
  () => ({
3414
3417
  size: size2,
3415
3418
  textPosition,
@@ -3418,33 +3421,33 @@ function GridViewRoot({
3418
3421
  }),
3419
3422
  [bordered, disabled, size2, textPosition]
3420
3423
  );
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));
3424
+ 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
3425
  }
3423
3426
  function GridViewSection({
3424
3427
  children,
3425
3428
  padding = "20px"
3426
3429
  }) {
3427
- const { size: size2 } = (0, import_react43.useContext)(GridViewContext);
3428
- return /* @__PURE__ */ import_react43.default.createElement(Grid2, { size: size2, padding }, children);
3430
+ const { size: size2 } = (0, import_react44.useContext)(GridViewContext);
3431
+ return /* @__PURE__ */ import_react44.default.createElement(Grid2, { size: size2, padding }, children);
3429
3432
  }
3430
3433
  function GridViewSectionHeader({ title }) {
3431
3434
  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, " / ")
3435
+ return /* @__PURE__ */ import_react44.default.createElement(SectionHeaderContainer, null, /* @__PURE__ */ import_react44.default.createElement(Spacer.Vertical, { size: 24 }), withSeparatorElements(
3436
+ grouped.map((title2, index) => /* @__PURE__ */ import_react44.default.createElement(SectionTitle, { last: index === grouped.length - 1 }, title2)),
3437
+ /* @__PURE__ */ import_react44.default.createElement(SectionTitle, null, " / ")
3435
3438
  ));
3436
3439
  }
3437
3440
  var GridView;
3438
3441
  ((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);
3442
+ GridView2.Root = (0, import_react44.memo)(GridViewRoot);
3443
+ GridView2.Item = (0, import_react44.memo)(GridViewItem);
3444
+ GridView2.Section = (0, import_react44.memo)(GridViewSection);
3445
+ GridView2.SectionHeader = (0, import_react44.memo)(GridViewSectionHeader);
3443
3446
  })(GridView || (GridView = {}));
3444
3447
 
3445
3448
  // src/components/InputFieldWithCompletions.tsx
3446
3449
  var import_noya_utils8 = require("@noya-app/noya-utils");
3447
- var import_react47 = __toESM(require("react"));
3450
+ var import_react48 = __toESM(require("react"));
3448
3451
  var import_styled_components27 = __toESM(require("styled-components"));
3449
3452
 
3450
3453
  // src/utils/fuzzyScorer.ts
@@ -3521,7 +3524,7 @@ function mergeRanges(ranges) {
3521
3524
  // src/components/ListView.tsx
3522
3525
  var import_noya_utils7 = require("@noya-app/noya-utils");
3523
3526
  var import_react_compose_refs2 = require("@radix-ui/react-compose-refs");
3524
- var import_react45 = __toESM(require("react"));
3527
+ var import_react46 = __toESM(require("react"));
3525
3528
  var import_react_virtualized = require("react-virtualized");
3526
3529
  var import_react_window = require("react-window");
3527
3530
  var import_styled_components25 = __toESM(require("styled-components"));
@@ -3552,7 +3555,7 @@ function mergeEventHandlers(...handlerMaps) {
3552
3555
  // src/components/Sortable.tsx
3553
3556
  var import_core = require("@dnd-kit/core");
3554
3557
  var import_sortable = require("@dnd-kit/sortable");
3555
- var import_react44 = __toESM(require("react"));
3558
+ var import_react45 = __toESM(require("react"));
3556
3559
  var import_react_dom = require("react-dom");
3557
3560
  var normalizeListDestinationIndex = (index, position) => {
3558
3561
  return position === "above" ? index : index + 1;
@@ -3566,7 +3569,7 @@ var defaultAcceptsDrop = (sourceIndex, destinationIndex, position) => {
3566
3569
  }
3567
3570
  return true;
3568
3571
  };
3569
- var SortableItemContext = (0, import_react44.createContext)({
3572
+ var SortableItemContext = (0, import_react45.createContext)({
3570
3573
  keys: [],
3571
3574
  position: { x: 0, y: 0 },
3572
3575
  acceptsDrop: defaultAcceptsDrop,
@@ -3588,7 +3591,7 @@ function SortableItem({
3588
3591
  disabled,
3589
3592
  children
3590
3593
  }) {
3591
- const { keys, position, acceptsDrop, setActivatorEvent, axis } = (0, import_react44.useContext)(SortableItemContext);
3594
+ const { keys, position, acceptsDrop, setActivatorEvent, axis } = (0, import_react45.useContext)(SortableItemContext);
3592
3595
  const sortable = (0, import_sortable.useSortable)({ id, disabled });
3593
3596
  const {
3594
3597
  active,
@@ -3608,7 +3611,7 @@ function SortableItem({
3608
3611
  const eventY = activatorEvent?.clientY ?? 0;
3609
3612
  const offsetLeft = eventX + position.x;
3610
3613
  const offsetTop = eventY + position.y;
3611
- const ref = (0, import_react44.useCallback)((node) => setNodeRef(node), [setNodeRef]);
3614
+ const ref = (0, import_react45.useCallback)((node) => setNodeRef(node), [setNodeRef]);
3612
3615
  return children({
3613
3616
  ref,
3614
3617
  ...attributes,
@@ -3639,22 +3642,22 @@ function SortableRoot({
3639
3642
  }
3640
3643
  })
3641
3644
  );
3642
- const [activeIndex, setActiveIndex] = (0, import_react44.useState)();
3643
- const activatorEvent = (0, import_react44.useRef)(null);
3644
- const setActivatorEvent = (0, import_react44.useCallback)((event) => {
3645
+ const [activeIndex, setActiveIndex] = (0, import_react45.useState)();
3646
+ const activatorEvent = (0, import_react45.useRef)(null);
3647
+ const setActivatorEvent = (0, import_react45.useCallback)((event) => {
3645
3648
  activatorEvent.current = event;
3646
3649
  }, []);
3647
- const [position, setPosition] = (0, import_react44.useState)({ x: 0, y: 0 });
3648
- const handleDragStart = (0, import_react44.useCallback)(
3650
+ const [position, setPosition] = (0, import_react45.useState)({ x: 0, y: 0 });
3651
+ const handleDragStart = (0, import_react45.useCallback)(
3649
3652
  (event) => {
3650
3653
  setActiveIndex(keys.indexOf(event.active.id));
3651
3654
  },
3652
3655
  [keys]
3653
3656
  );
3654
- const handleDragMove = (0, import_react44.useCallback)((event) => {
3657
+ const handleDragMove = (0, import_react45.useCallback)((event) => {
3655
3658
  setPosition({ ...event.delta });
3656
3659
  }, []);
3657
- const handleDragEnd = (0, import_react44.useCallback)(
3660
+ const handleDragEnd = (0, import_react45.useCallback)(
3658
3661
  (event) => {
3659
3662
  const { active, over } = event;
3660
3663
  setActiveIndex(void 0);
@@ -3681,10 +3684,10 @@ function SortableRoot({
3681
3684
  },
3682
3685
  [acceptsDrop, axis, keys, onMoveItem, position.x, position.y]
3683
3686
  );
3684
- return /* @__PURE__ */ import_react44.default.createElement(
3687
+ return /* @__PURE__ */ import_react45.default.createElement(
3685
3688
  SortableItemContext.Provider,
3686
3689
  {
3687
- value: (0, import_react44.useMemo)(
3690
+ value: (0, import_react45.useMemo)(
3688
3691
  () => ({
3689
3692
  keys,
3690
3693
  acceptsDrop,
@@ -3695,7 +3698,7 @@ function SortableRoot({
3695
3698
  [acceptsDrop, axis, keys, position, setActivatorEvent]
3696
3699
  )
3697
3700
  },
3698
- /* @__PURE__ */ import_react44.default.createElement(
3701
+ /* @__PURE__ */ import_react45.default.createElement(
3699
3702
  import_core.DndContext,
3700
3703
  {
3701
3704
  sensors,
@@ -3704,9 +3707,9 @@ function SortableRoot({
3704
3707
  onDragMove: handleDragMove,
3705
3708
  onDragEnd: handleDragEnd
3706
3709
  },
3707
- /* @__PURE__ */ import_react44.default.createElement(import_sortable.SortableContext, { items: keys, strategy: import_sortable.verticalListSortingStrategy }, children),
3710
+ /* @__PURE__ */ import_react45.default.createElement(import_sortable.SortableContext, { items: keys, strategy: import_sortable.verticalListSortingStrategy }, children),
3708
3711
  renderOverlay && (0, import_react_dom.createPortal)(
3709
- /* @__PURE__ */ import_react44.default.createElement(import_core.DragOverlay, { dropAnimation: null }, activeIndex !== void 0 && activeIndex >= 0 && renderOverlay(activeIndex)),
3712
+ /* @__PURE__ */ import_react45.default.createElement(import_core.DragOverlay, { dropAnimation: null }, activeIndex !== void 0 && activeIndex >= 0 && renderOverlay(activeIndex)),
3710
3713
  document.body
3711
3714
  )
3712
3715
  )
@@ -3714,17 +3717,17 @@ function SortableRoot({
3714
3717
  }
3715
3718
  var Sortable;
3716
3719
  ((Sortable2) => {
3717
- Sortable2.Item = (0, import_react44.memo)(SortableItem);
3718
- Sortable2.Root = (0, import_react44.memo)(SortableRoot);
3720
+ Sortable2.Item = (0, import_react45.memo)(SortableItem);
3721
+ Sortable2.Root = (0, import_react45.memo)(SortableRoot);
3719
3722
  })(Sortable || (Sortable = {}));
3720
3723
 
3721
3724
  // src/components/ListView.tsx
3722
3725
  var ROW_HEIGHT = 31;
3723
3726
  var SECTION_HEADER_LABEL_HEIGHT = 27;
3724
- var DraggingContext = (0, import_react45.createContext)({
3727
+ var DraggingContext = (0, import_react46.createContext)({
3725
3728
  indentation: 12
3726
3729
  });
3727
- var ListRowContext = (0, import_react45.createContext)({
3730
+ var ListRowContext = (0, import_react46.createContext)({
3728
3731
  marginType: "none",
3729
3732
  selectedPosition: "only",
3730
3733
  sortable: false,
@@ -3754,8 +3757,8 @@ function ListViewEditableRowTitle({
3754
3757
  autoFocus,
3755
3758
  placeholder
3756
3759
  }) {
3757
- const inputRef = (0, import_react45.useRef)(null);
3758
- (0, import_react45.useLayoutEffect)(() => {
3760
+ const inputRef = (0, import_react46.useRef)(null);
3761
+ (0, import_react46.useLayoutEffect)(() => {
3759
3762
  const element = inputRef.current;
3760
3763
  if (!element || !autoFocus)
3761
3764
  return;
@@ -3764,7 +3767,7 @@ function ListViewEditableRowTitle({
3764
3767
  element.select();
3765
3768
  }, 0);
3766
3769
  }, [autoFocus]);
3767
- return /* @__PURE__ */ import_react45.default.createElement(
3770
+ return /* @__PURE__ */ import_react46.default.createElement(
3768
3771
  ListViewEditableRowTitleElement,
3769
3772
  {
3770
3773
  ref: inputRef,
@@ -3886,7 +3889,7 @@ var ListViewDragIndicatorElement = import_styled_components25.default.div(({ the
3886
3889
  boxShadow: "0 0 2px rgba(0,0,0,0.5)"
3887
3890
  }
3888
3891
  }));
3889
- var ListViewRow = (0, import_react45.forwardRef)(function ListViewRow2({
3892
+ var ListViewRow = (0, import_react46.forwardRef)(function ListViewRow2({
3890
3893
  id,
3891
3894
  tabIndex = 0,
3892
3895
  gap,
@@ -3919,12 +3922,12 @@ var ListViewRow = (0, import_react45.forwardRef)(function ListViewRow2({
3919
3922
  divider,
3920
3923
  gap: listGap,
3921
3924
  colorScheme
3922
- } = (0, import_react45.useContext)(ListRowContext);
3925
+ } = (0, import_react46.useContext)(ListRowContext);
3923
3926
  const { hoverProps } = useHover({
3924
3927
  onHoverChange
3925
3928
  });
3926
- const { indentation, isDragging } = (0, import_react45.useContext)(DraggingContext);
3927
- const handlePress = (0, import_react45.useCallback)(
3929
+ const { indentation, isDragging } = (0, import_react46.useContext)(DraggingContext);
3930
+ const handlePress = (0, import_react46.useCallback)(
3928
3931
  (event) => {
3929
3932
  event.preventDefault();
3930
3933
  if (event.button !== 0)
@@ -3933,14 +3936,14 @@ var ListViewRow = (0, import_react45.forwardRef)(function ListViewRow2({
3933
3936
  },
3934
3937
  [onPress]
3935
3938
  );
3936
- const handleDoubleClick = (0, import_react45.useCallback)(
3939
+ const handleDoubleClick = (0, import_react46.useCallback)(
3937
3940
  (event) => {
3938
3941
  event.stopPropagation();
3939
3942
  onDoubleClick?.();
3940
3943
  },
3941
3944
  [onDoubleClick]
3942
3945
  );
3943
- const mergedStyle = (0, import_react45.useMemo)(() => {
3946
+ const mergedStyle = (0, import_react46.useMemo)(() => {
3944
3947
  return isDragging ? {
3945
3948
  // TODO: Where do these offsets actually come from?
3946
3949
  transform: `translate3d(-36px, -6px, 0)`,
@@ -3952,7 +3955,7 @@ var ListViewRow = (0, import_react45.forwardRef)(function ListViewRow2({
3952
3955
  relativeDropPosition,
3953
3956
  ...renderProps
3954
3957
  }, ref) => {
3955
- const element = /* @__PURE__ */ import_react45.default.createElement(
3958
+ const element = /* @__PURE__ */ import_react46.default.createElement(
3956
3959
  RowContainer,
3957
3960
  {
3958
3961
  ref,
@@ -3983,7 +3986,7 @@ var ListViewRow = (0, import_react45.forwardRef)(function ListViewRow2({
3983
3986
  ),
3984
3987
  tabIndex
3985
3988
  },
3986
- relativeDropPosition && /* @__PURE__ */ import_react45.default.createElement(
3989
+ relativeDropPosition && /* @__PURE__ */ import_react46.default.createElement(
3987
3990
  ListViewDragIndicatorElement,
3988
3991
  {
3989
3992
  colorScheme,
@@ -3992,11 +3995,11 @@ var ListViewRow = (0, import_react45.forwardRef)(function ListViewRow2({
3992
3995
  gap: listGap
3993
3996
  }
3994
3997
  ),
3995
- depth > 0 && /* @__PURE__ */ import_react45.default.createElement(Spacer.Horizontal, { size: depth * indentation }),
3998
+ depth > 0 && /* @__PURE__ */ import_react46.default.createElement(Spacer.Horizontal, { size: depth * indentation }),
3996
3999
  children
3997
4000
  );
3998
4001
  if (menuItems && onSelectMenuItem) {
3999
- return /* @__PURE__ */ import_react45.default.createElement(
4002
+ return /* @__PURE__ */ import_react46.default.createElement(
4000
4003
  ContextMenu,
4001
4004
  {
4002
4005
  items: menuItems,
@@ -4009,21 +4012,21 @@ var ListViewRow = (0, import_react45.forwardRef)(function ListViewRow2({
4009
4012
  return element;
4010
4013
  };
4011
4014
  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)));
4015
+ 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
4016
  }
4014
4017
  return renderContent({}, forwardedRef);
4015
4018
  });
4016
- var RenderItemContext = (0, import_react45.createContext)(
4019
+ var RenderItemContext = (0, import_react46.createContext)(
4017
4020
  () => null
4018
4021
  );
4019
- var VirtualizedListRow = (0, import_react45.memo)(function VirtualizedListRow2({
4022
+ var VirtualizedListRow = (0, import_react46.memo)(function VirtualizedListRow2({
4020
4023
  index,
4021
4024
  style: style3
4022
4025
  }) {
4023
- const renderItem = (0, import_react45.useContext)(RenderItemContext);
4024
- return /* @__PURE__ */ import_react45.default.createElement("div", { key: index, style: style3 }, renderItem(index));
4026
+ const renderItem = (0, import_react46.useContext)(RenderItemContext);
4027
+ return /* @__PURE__ */ import_react46.default.createElement("div", { key: index, style: style3 }, renderItem(index));
4025
4028
  });
4026
- var VirtualizedListInner = (0, import_react45.forwardRef)(function VirtualizedListInner2({
4029
+ var VirtualizedListInner = (0, import_react46.forwardRef)(function VirtualizedListInner2({
4027
4030
  size: size2,
4028
4031
  scrollElement,
4029
4032
  items,
@@ -4031,20 +4034,20 @@ var VirtualizedListInner = (0, import_react45.forwardRef)(function VirtualizedLi
4031
4034
  keyExtractor,
4032
4035
  renderItem
4033
4036
  }, ref) {
4034
- const listRef = (0, import_react45.useRef)(null);
4035
- (0, import_react45.useImperativeHandle)(ref, () => ({
4037
+ const listRef = (0, import_react46.useRef)(null);
4038
+ (0, import_react46.useImperativeHandle)(ref, () => ({
4036
4039
  scrollToIndex(index) {
4037
4040
  listRef.current?.scrollToItem(index);
4038
4041
  }
4039
4042
  }));
4040
- (0, import_react45.useLayoutEffect)(() => {
4043
+ (0, import_react46.useLayoutEffect)(() => {
4041
4044
  listRef.current?.resetAfterIndex(0);
4042
4045
  }, [
4043
4046
  // When items change, we need to re-render the virtualized list,
4044
4047
  // since it doesn't currently support row height changes
4045
4048
  items
4046
4049
  ]);
4047
- const listStyle = (0, import_react45.useMemo)(
4050
+ const listStyle = (0, import_react46.useMemo)(
4048
4051
  () => ({
4049
4052
  overflowX: "initial",
4050
4053
  overflowY: "initial",
@@ -4052,18 +4055,18 @@ var VirtualizedListInner = (0, import_react45.forwardRef)(function VirtualizedLi
4052
4055
  }),
4053
4056
  []
4054
4057
  );
4055
- return /* @__PURE__ */ import_react45.default.createElement(RenderItemContext.Provider, { value: renderItem }, /* @__PURE__ */ import_react45.default.createElement(
4058
+ return /* @__PURE__ */ import_react46.default.createElement(RenderItemContext.Provider, { value: renderItem }, /* @__PURE__ */ import_react46.default.createElement(
4056
4059
  import_react_virtualized.WindowScroller,
4057
4060
  {
4058
4061
  scrollElement,
4059
- style: (0, import_react45.useMemo)(() => ({ flex: "1 1 auto" }), [])
4062
+ style: (0, import_react46.useMemo)(() => ({ flex: "1 1 auto" }), [])
4060
4063
  },
4061
- (0, import_react45.useCallback)(
4064
+ (0, import_react46.useCallback)(
4062
4065
  ({
4063
4066
  registerChild,
4064
4067
  onChildScroll,
4065
4068
  scrollTop
4066
- }) => /* @__PURE__ */ import_react45.default.createElement("div", { ref: registerChild }, /* @__PURE__ */ import_react45.default.createElement(
4069
+ }) => /* @__PURE__ */ import_react46.default.createElement("div", { ref: registerChild }, /* @__PURE__ */ import_react46.default.createElement(
4067
4070
  import_react_window.VariableSizeList,
4068
4071
  {
4069
4072
  ref: listRef,
@@ -4093,7 +4096,7 @@ var VirtualizedListInner = (0, import_react45.forwardRef)(function VirtualizedLi
4093
4096
  )
4094
4097
  ));
4095
4098
  });
4096
- var VirtualizedList = (0, import_react45.memo)(
4099
+ var VirtualizedList = (0, import_react46.memo)(
4097
4100
  VirtualizedListInner
4098
4101
  );
4099
4102
  var RootContainer2 = import_styled_components25.default.div(({ theme, scrollable, gap }) => ({
@@ -4104,7 +4107,7 @@ var RootContainer2 = import_styled_components25.default.div(({ theme, scrollable
4104
4107
  color: theme.colors.textMuted,
4105
4108
  gap
4106
4109
  }));
4107
- var ListViewRootInner = (0, import_react45.forwardRef)(function ListViewRootInner2({
4110
+ var ListViewRootInner = (0, import_react46.forwardRef)(function ListViewRootInner2({
4108
4111
  onPress,
4109
4112
  scrollable = false,
4110
4113
  expandable = true,
@@ -4123,7 +4126,7 @@ var ListViewRootInner = (0, import_react45.forwardRef)(function ListViewRootInne
4123
4126
  colorScheme = "primary",
4124
4127
  gap = 0
4125
4128
  }, forwardedRef) {
4126
- const handleClick = (0, import_react45.useCallback)(
4129
+ const handleClick = (0, import_react46.useCallback)(
4127
4130
  (event) => {
4128
4131
  if (event.target instanceof HTMLElement && event.target.classList.contains("scroll-component"))
4129
4132
  return;
@@ -4133,19 +4136,19 @@ var ListViewRootInner = (0, import_react45.forwardRef)(function ListViewRootInne
4133
4136
  },
4134
4137
  [onPress]
4135
4138
  );
4136
- const renderChild = (0, import_react45.useCallback)(
4139
+ const renderChild = (0, import_react46.useCallback)(
4137
4140
  (index) => renderItem(data[index], index, { isDragging: false }),
4138
4141
  [data, renderItem]
4139
4142
  );
4140
- const getItemContextValue = (0, import_react45.useCallback)(
4143
+ const getItemContextValue = (0, import_react46.useCallback)(
4141
4144
  (i) => {
4142
4145
  const current = renderChild(i);
4143
- if (!(0, import_react45.isValidElement)(current))
4146
+ if (!(0, import_react46.isValidElement)(current))
4144
4147
  return;
4145
4148
  const prevChild = i - 1 >= 0 && renderChild(i - 1);
4146
4149
  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;
4150
+ const next = (0, import_react46.isValidElement)(nextChild) ? nextChild : void 0;
4151
+ const prev = (0, import_react46.isValidElement)(prevChild) ? prevChild : void 0;
4149
4152
  const hasMarginTop = !prev;
4150
4153
  const hasMarginBottom = !next || current.props.isSectionHeader || next && next.props.isSectionHeader;
4151
4154
  let marginType;
@@ -4197,26 +4200,26 @@ var ListViewRootInner = (0, import_react45.forwardRef)(function ListViewRootInne
4197
4200
  gap
4198
4201
  ]
4199
4202
  );
4200
- const draggingContextOverlayValue = (0, import_react45.useMemo)(
4203
+ const draggingContextOverlayValue = (0, import_react46.useMemo)(
4201
4204
  () => ({ indentation, isDragging: true }),
4202
4205
  [indentation]
4203
4206
  );
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 }))),
4207
+ const renderOverlay = (0, import_react46.useCallback)(
4208
+ (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
4209
  [draggingContextOverlayValue, renderItem, data]
4207
4210
  );
4208
- const renderWrappedChild = (0, import_react45.useCallback)(
4211
+ const renderWrappedChild = (0, import_react46.useCallback)(
4209
4212
  (index) => {
4210
4213
  const contextValue = getItemContextValue(index);
4211
4214
  const current = renderChild(index);
4212
- if (!contextValue || !(0, import_react45.isValidElement)(current))
4215
+ if (!contextValue || !(0, import_react46.isValidElement)(current))
4213
4216
  return null;
4214
- return /* @__PURE__ */ import_react45.default.createElement(ListRowContext.Provider, { key: current.key, value: contextValue }, current);
4217
+ return /* @__PURE__ */ import_react46.default.createElement(ListRowContext.Provider, { key: current.key, value: contextValue }, current);
4215
4218
  },
4216
4219
  [getItemContextValue, renderChild]
4217
4220
  );
4218
- const ids = (0, import_react45.useMemo)(() => data.map(keyExtractor), [keyExtractor, data]);
4219
- const withSortable = (children) => sortable ? /* @__PURE__ */ import_react45.default.createElement(
4221
+ const ids = (0, import_react46.useMemo)(() => data.map(keyExtractor), [keyExtractor, data]);
4222
+ const withSortable = (children) => sortable ? /* @__PURE__ */ import_react46.default.createElement(
4220
4223
  Sortable.Root,
4221
4224
  {
4222
4225
  onMoveItem,
@@ -4226,8 +4229,8 @@ var ListViewRootInner = (0, import_react45.forwardRef)(function ListViewRootInne
4226
4229
  },
4227
4230
  children
4228
4231
  ) : children;
4229
- const withScrollable = (children) => scrollable ? /* @__PURE__ */ import_react45.default.createElement(ScrollArea, null, children) : children(null);
4230
- const getItemHeight = (0, import_react45.useCallback)(
4232
+ const withScrollable = (children) => scrollable ? /* @__PURE__ */ import_react46.default.createElement(ScrollArea, null, children) : children(null);
4233
+ const getItemHeight = (0, import_react46.useCallback)(
4231
4234
  (index) => {
4232
4235
  const child = getItemContextValue(index);
4233
4236
  const margin = child?.marginType ? getPositionMargin(child.marginType) : { top: 0, bottom: 0 };
@@ -4236,12 +4239,12 @@ var ListViewRootInner = (0, import_react45.forwardRef)(function ListViewRootInne
4236
4239
  },
4237
4240
  [getItemContextValue, variant]
4238
4241
  );
4239
- const getKey = (0, import_react45.useCallback)(
4242
+ const getKey = (0, import_react46.useCallback)(
4240
4243
  (index) => keyExtractor(data[index], index),
4241
4244
  [data, keyExtractor]
4242
4245
  );
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(
4246
+ const draggingContextValue = (0, import_react46.useMemo)(() => ({ indentation }), [indentation]);
4247
+ return /* @__PURE__ */ import_react46.default.createElement(DraggingContext.Provider, { value: draggingContextValue }, /* @__PURE__ */ import_react46.default.createElement(
4245
4248
  RootContainer2,
4246
4249
  {
4247
4250
  ...{
@@ -4252,7 +4255,7 @@ var ListViewRootInner = (0, import_react45.forwardRef)(function ListViewRootInne
4252
4255
  },
4253
4256
  withScrollable(
4254
4257
  (scrollElementRef) => withSortable(
4255
- virtualized ? /* @__PURE__ */ import_react45.default.createElement(
4258
+ virtualized ? /* @__PURE__ */ import_react46.default.createElement(
4256
4259
  VirtualizedList,
4257
4260
  {
4258
4261
  ref: forwardedRef,
@@ -4268,42 +4271,42 @@ var ListViewRootInner = (0, import_react45.forwardRef)(function ListViewRootInne
4268
4271
  )
4269
4272
  ));
4270
4273
  });
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] : []
4274
+ var ListViewRoot = (0, import_react46.memo)(ListViewRootInner);
4275
+ var ChildrenListViewInner = (0, import_react46.forwardRef)(function ChildrenListViewInner2({ children, ...rest }, forwardedRef) {
4276
+ const items = (0, import_react46.useMemo)(
4277
+ () => import_react46.Children.toArray(children).flatMap(
4278
+ (child) => (0, import_react46.isValidElement)(child) ? [child] : []
4276
4279
  ),
4277
4280
  [children]
4278
4281
  );
4279
- return /* @__PURE__ */ import_react45.default.createElement(
4282
+ return /* @__PURE__ */ import_react46.default.createElement(
4280
4283
  ListViewRoot,
4281
4284
  {
4282
4285
  ref: forwardedRef,
4283
4286
  ...rest,
4284
4287
  data: items,
4285
- keyExtractor: (0, import_react45.useCallback)(
4288
+ keyExtractor: (0, import_react46.useCallback)(
4286
4289
  ({ key }, index) => typeof key === "string" ? key : (key ?? index).toString(),
4287
4290
  []
4288
4291
  ),
4289
- renderItem: (0, import_react45.useCallback)((item) => item, [])
4292
+ renderItem: (0, import_react46.useCallback)((item) => item, [])
4290
4293
  }
4291
4294
  );
4292
4295
  });
4293
- var ChildrenListView = (0, import_react45.memo)(ChildrenListViewInner);
4294
- var SimpleListViewInner = (0, import_react45.forwardRef)(function SimpleListViewInner2(props, forwardedRef) {
4296
+ var ChildrenListView = (0, import_react46.memo)(ChildrenListViewInner);
4297
+ var SimpleListViewInner = (0, import_react46.forwardRef)(function SimpleListViewInner2(props, forwardedRef) {
4295
4298
  if ("children" in props) {
4296
- return /* @__PURE__ */ import_react45.default.createElement(ChildrenListView, { ref: forwardedRef, ...props });
4299
+ return /* @__PURE__ */ import_react46.default.createElement(ChildrenListView, { ref: forwardedRef, ...props });
4297
4300
  } else {
4298
- return /* @__PURE__ */ import_react45.default.createElement(ListViewRoot, { ref: forwardedRef, ...props });
4301
+ return /* @__PURE__ */ import_react46.default.createElement(ListViewRoot, { ref: forwardedRef, ...props });
4299
4302
  }
4300
4303
  });
4301
- var SimpleListView = (0, import_react45.memo)(SimpleListViewInner);
4304
+ var SimpleListView = (0, import_react46.memo)(SimpleListViewInner);
4302
4305
  var ListView;
4303
4306
  ((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);
4307
+ ListView2.RowTitle = (0, import_react46.memo)(ListViewRowTitle);
4308
+ ListView2.EditableRowTitle = (0, import_react46.memo)(ListViewEditableRowTitle);
4309
+ ListView2.Row = (0, import_react46.memo)(ListViewRow);
4307
4310
  ListView2.Root = SimpleListView;
4308
4311
  ListView2.RowContext = ListRowContext;
4309
4312
  ListView2.DragIndicator = ListViewDragIndicatorElement;
@@ -4316,7 +4319,7 @@ var ListView;
4316
4319
  })(ListView || (ListView = {}));
4317
4320
 
4318
4321
  // src/components/Text.tsx
4319
- var import_react46 = __toESM(require("react"));
4322
+ var import_react47 = __toESM(require("react"));
4320
4323
  var import_styled_components26 = __toESM(require("styled-components"));
4321
4324
  var elements = {
4322
4325
  title: "h1",
@@ -4337,7 +4340,7 @@ var StyledElement = import_styled_components26.default.span(({ theme, variant, s
4337
4340
  ...styleProps,
4338
4341
  ...mergeBreakpoints(breakpoints || [])
4339
4342
  }));
4340
- var Text = (0, import_react46.forwardRef)(function Text2({
4343
+ var Text = (0, import_react47.forwardRef)(function Text2({
4341
4344
  as,
4342
4345
  variant,
4343
4346
  breakpoints,
@@ -4349,7 +4352,7 @@ var Text = (0, import_react46.forwardRef)(function Text2({
4349
4352
  ...rest
4350
4353
  }, forwardedRef) {
4351
4354
  const element = as ?? elements[variant] ?? "span";
4352
- return /* @__PURE__ */ import_react46.default.createElement(
4355
+ return /* @__PURE__ */ import_react47.default.createElement(
4353
4356
  StyledElement,
4354
4357
  {
4355
4358
  ref: forwardedRef,
@@ -4365,28 +4368,28 @@ var Text = (0, import_react46.forwardRef)(function Text2({
4365
4368
  children
4366
4369
  );
4367
4370
  });
4368
- var Heading1 = (0, import_react46.forwardRef)(
4369
- (props, ref) => /* @__PURE__ */ import_react46.default.createElement(Text, { ref, ...props, variant: "heading1" })
4371
+ var Heading1 = (0, import_react47.forwardRef)(
4372
+ (props, ref) => /* @__PURE__ */ import_react47.default.createElement(Text, { ref, ...props, variant: "heading1" })
4370
4373
  );
4371
- var Heading2 = (0, import_react46.forwardRef)(
4372
- (props, ref) => /* @__PURE__ */ import_react46.default.createElement(Text, { ref, ...props, variant: "heading2" })
4374
+ var Heading2 = (0, import_react47.forwardRef)(
4375
+ (props, ref) => /* @__PURE__ */ import_react47.default.createElement(Text, { ref, ...props, variant: "heading2" })
4373
4376
  );
4374
- var Heading3 = (0, import_react46.forwardRef)(
4375
- (props, ref) => /* @__PURE__ */ import_react46.default.createElement(Text, { ref, ...props, variant: "heading3" })
4377
+ var Heading3 = (0, import_react47.forwardRef)(
4378
+ (props, ref) => /* @__PURE__ */ import_react47.default.createElement(Text, { ref, ...props, variant: "heading3" })
4376
4379
  );
4377
- var Heading4 = (0, import_react46.forwardRef)(
4378
- (props, ref) => /* @__PURE__ */ import_react46.default.createElement(Text, { ref, ...props, variant: "heading4" })
4380
+ var Heading4 = (0, import_react47.forwardRef)(
4381
+ (props, ref) => /* @__PURE__ */ import_react47.default.createElement(Text, { ref, ...props, variant: "heading4" })
4379
4382
  );
4380
- var Heading5 = (0, import_react46.forwardRef)(
4381
- (props, ref) => /* @__PURE__ */ import_react46.default.createElement(Text, { ref, ...props, variant: "heading5" })
4383
+ var Heading5 = (0, import_react47.forwardRef)(
4384
+ (props, ref) => /* @__PURE__ */ import_react47.default.createElement(Text, { ref, ...props, variant: "heading5" })
4382
4385
  );
4383
- var Body = (0, import_react46.forwardRef)(
4384
- (props, ref) => /* @__PURE__ */ import_react46.default.createElement(Text, { ref, ...props, variant: "body" })
4386
+ var Body = (0, import_react47.forwardRef)(
4387
+ (props, ref) => /* @__PURE__ */ import_react47.default.createElement(Text, { ref, ...props, variant: "body" })
4385
4388
  );
4386
- var Small = (0, import_react46.forwardRef)(
4387
- (props, ref) => /* @__PURE__ */ import_react46.default.createElement(Text, { ref, ...props, variant: "small" })
4389
+ var Small = (0, import_react47.forwardRef)(
4390
+ (props, ref) => /* @__PURE__ */ import_react47.default.createElement(Text, { ref, ...props, variant: "small" })
4388
4391
  );
4389
- var Italic = ({ children }) => /* @__PURE__ */ import_react46.default.createElement(
4392
+ var Italic = ({ children }) => /* @__PURE__ */ import_react47.default.createElement(
4390
4393
  "span",
4391
4394
  {
4392
4395
  style: {
@@ -4428,15 +4431,15 @@ var CompletionToken = import_styled_components27.default.span(
4428
4431
  whiteSpace: "pre"
4429
4432
  })
4430
4433
  );
4431
- var CompletionMenu = (0, import_react47.memo)(
4432
- (0, import_react47.forwardRef)(function CompletionMenu2({
4434
+ var CompletionMenu = (0, import_react48.memo)(
4435
+ (0, import_react48.forwardRef)(function CompletionMenu2({
4433
4436
  items,
4434
4437
  selectedIndex,
4435
4438
  onSelectItem,
4436
4439
  onHoverIndex,
4437
4440
  listSize
4438
4441
  }, forwardedRef) {
4439
- return /* @__PURE__ */ import_react47.default.createElement(
4442
+ return /* @__PURE__ */ import_react48.default.createElement(
4440
4443
  ListView.Root,
4441
4444
  {
4442
4445
  ref: forwardedRef,
@@ -4448,13 +4451,13 @@ var CompletionMenu = (0, import_react47.memo)(
4448
4451
  sectionHeaderVariant: "label",
4449
4452
  renderItem: (item, i) => {
4450
4453
  if (item.type === "sectionHeader") {
4451
- return /* @__PURE__ */ import_react47.default.createElement(ListView.Row, { key: item.id, isSectionHeader: true }, item.name);
4454
+ return /* @__PURE__ */ import_react48.default.createElement(ListView.Row, { key: item.id, isSectionHeader: true }, item.name);
4452
4455
  }
4453
4456
  const tokens = fuzzyTokenize({
4454
4457
  item: item.name,
4455
4458
  itemScore: item
4456
4459
  });
4457
- return /* @__PURE__ */ import_react47.default.createElement(
4460
+ return /* @__PURE__ */ import_react48.default.createElement(
4458
4461
  ListView.Row,
4459
4462
  {
4460
4463
  key: item.id,
@@ -4466,16 +4469,16 @@ var CompletionMenu = (0, import_react47.memo)(
4466
4469
  }
4467
4470
  }
4468
4471
  },
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)
4472
+ tokens.map((token, j) => /* @__PURE__ */ import_react48.default.createElement(CompletionToken, { key: j, type: token.type }, token.text)),
4473
+ item.icon && /* @__PURE__ */ import_react48.default.createElement(import_react48.default.Fragment, null, /* @__PURE__ */ import_react48.default.createElement(Spacer.Horizontal, null), item.icon)
4471
4474
  );
4472
4475
  }
4473
4476
  }
4474
4477
  );
4475
4478
  })
4476
4479
  );
4477
- var InputFieldWithCompletions = (0, import_react47.memo)(
4478
- (0, import_react47.forwardRef)(function InputFieldWithCompletions2({
4480
+ var InputFieldWithCompletions = (0, import_react48.memo)(
4481
+ (0, import_react48.forwardRef)(function InputFieldWithCompletions2({
4479
4482
  loading,
4480
4483
  initialValue = "",
4481
4484
  placeholder,
@@ -4493,13 +4496,13 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
4493
4496
  hideChildrenWhenFocused = false,
4494
4497
  hideMenuWhenEmptyValue = false
4495
4498
  }, 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)({
4499
+ const ref = (0, import_react48.useRef)(null);
4500
+ const [isFocused, setIsFocused] = (0, import_react48.useState)(false);
4501
+ const [state, _setState] = (0, import_react48.useState)({
4499
4502
  filter: initialValue,
4500
4503
  selectedIndex: 0
4501
4504
  });
4502
- const updateState = (0, import_react47.useCallback)(
4505
+ const updateState = (0, import_react48.useCallback)(
4503
4506
  (newState, hoverItem) => {
4504
4507
  const nextState = { ...state, ...newState };
4505
4508
  const nextItems = filterWithGroupedSections(items, nextState.filter);
@@ -4528,16 +4531,16 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
4528
4531
  },
4529
4532
  [items, onChange, onHoverItem, state]
4530
4533
  );
4531
- const initialValueRef = (0, import_react47.useRef)(initialValue);
4532
- (0, import_react47.useLayoutEffect)(() => {
4534
+ const initialValueRef = (0, import_react48.useRef)(initialValue);
4535
+ (0, import_react48.useLayoutEffect)(() => {
4533
4536
  if (initialValueRef.current === initialValue)
4534
4537
  return;
4535
4538
  initialValueRef.current = initialValue;
4536
4539
  updateState({ filter: initialValue });
4537
4540
  }, [initialValue, updateState]);
4538
4541
  const { filter, selectedIndex } = state;
4539
- const listRef = import_react47.default.useRef(null);
4540
- const filteredItems = (0, import_react47.useMemo)(
4542
+ const listRef = import_react48.default.useRef(null);
4543
+ const filteredItems = (0, import_react48.useMemo)(
4541
4544
  () => filterWithGroupedSections(items, filter),
4542
4545
  [items, filter]
4543
4546
  );
@@ -4553,13 +4556,13 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
4553
4556
  ),
4554
4557
  ListView.rowHeight * 10.5
4555
4558
  );
4556
- (0, import_react47.useEffect)(() => {
4559
+ (0, import_react48.useEffect)(() => {
4557
4560
  if (listRef.current) {
4558
4561
  listRef.current.scrollToIndex(selectedIndex);
4559
4562
  }
4560
4563
  }, [selectedIndex]);
4561
- const lastSubmittedValueRef = (0, import_react47.useRef)(void 0);
4562
- const selectItem = (0, import_react47.useCallback)(
4564
+ const lastSubmittedValueRef = (0, import_react48.useRef)(void 0);
4565
+ const selectItem = (0, import_react48.useCallback)(
4563
4566
  (item) => {
4564
4567
  if (item.type === "sectionHeader")
4565
4568
  return;
@@ -4575,17 +4578,17 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
4575
4578
  },
4576
4579
  [filter, onSelectItem, onHoverItem, ref]
4577
4580
  );
4578
- const handleChange = (0, import_react47.useCallback)(
4581
+ const handleChange = (0, import_react48.useCallback)(
4579
4582
  (value) => updateState({ selectedIndex: 0, filter: value }),
4580
4583
  [updateState]
4581
4584
  );
4582
- const handleBlur = (0, import_react47.useCallback)(() => {
4585
+ const handleBlur = (0, import_react48.useCallback)(() => {
4583
4586
  setIsFocused(false);
4584
4587
  const didSubmit = lastSubmittedValueRef.current?.filter === filter;
4585
4588
  updateState({ selectedIndex: 0, filter: initialValue }, "resetHover");
4586
4589
  onBlur?.(didSubmit, filter);
4587
4590
  }, [filter, initialValue, onBlur, updateState]);
4588
- const handleFocus = (0, import_react47.useCallback)(
4591
+ const handleFocus = (0, import_react48.useCallback)(
4589
4592
  (event) => {
4590
4593
  setIsFocused(true);
4591
4594
  updateState({ selectedIndex: 0, filter: initialValue });
@@ -4593,11 +4596,11 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
4593
4596
  },
4594
4597
  [initialValue, onFocus, updateState]
4595
4598
  );
4596
- const handleIndexChange = (0, import_react47.useCallback)(
4599
+ const handleIndexChange = (0, import_react48.useCallback)(
4597
4600
  (index) => updateState({ selectedIndex: index }),
4598
4601
  [updateState]
4599
4602
  );
4600
- const handleKeyDown = (0, import_react47.useCallback)(
4603
+ const handleKeyDown = (0, import_react48.useCallback)(
4601
4604
  (event) => {
4602
4605
  let handled = false;
4603
4606
  switch (event.key) {
@@ -4661,7 +4664,7 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
4661
4664
  );
4662
4665
  const display = !filter && hideMenuWhenEmptyValue ? "none" : "flex";
4663
4666
  const typeaheadValue = filteredItems[selectedIndex]?.name;
4664
- (0, import_react47.useImperativeHandle)(forwardedRef, () => ({
4667
+ (0, import_react48.useImperativeHandle)(forwardedRef, () => ({
4665
4668
  focus: () => {
4666
4669
  ref.current?.focus();
4667
4670
  },
@@ -4672,14 +4675,14 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
4672
4675
  ref.current?.setSelectionRange(0, ref.current.value.length);
4673
4676
  }
4674
4677
  }));
4675
- return /* @__PURE__ */ import_react47.default.createElement(
4678
+ return /* @__PURE__ */ import_react48.default.createElement(
4676
4679
  InputField.Root,
4677
4680
  {
4678
4681
  size: size2,
4679
4682
  labelSize: 16,
4680
4683
  renderPopoverContent: ({ width }) => {
4681
4684
  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(
4685
+ return /* @__PURE__ */ import_react48.default.createElement(Stack.V, { flex: `0 0 ${height}px`, display }, filteredItems.length > 0 ? /* @__PURE__ */ import_react48.default.createElement(
4683
4686
  CompletionMenu,
4684
4687
  {
4685
4688
  ref: listRef,
@@ -4689,7 +4692,7 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
4689
4692
  onHoverIndex: handleIndexChange,
4690
4693
  listSize
4691
4694
  }
4692
- ) : /* @__PURE__ */ import_react47.default.createElement(
4695
+ ) : /* @__PURE__ */ import_react48.default.createElement(
4693
4696
  Stack.V,
4694
4697
  {
4695
4698
  height: "100px",
@@ -4697,11 +4700,11 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
4697
4700
  alignItems: "center",
4698
4701
  justifyContent: "center"
4699
4702
  },
4700
- /* @__PURE__ */ import_react47.default.createElement(Small, { color: "textDisabled" }, loading ? "Loading" : "No results")
4703
+ /* @__PURE__ */ import_react48.default.createElement(Small, { color: "textDisabled" }, loading ? "Loading" : "No results")
4701
4704
  ));
4702
4705
  }
4703
4706
  },
4704
- /* @__PURE__ */ import_react47.default.createElement(
4707
+ /* @__PURE__ */ import_react48.default.createElement(
4705
4708
  InputField.Input,
4706
4709
  {
4707
4710
  ref,
@@ -4725,9 +4728,9 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
4725
4728
  "aria-controls": "component-listbox"
4726
4729
  }
4727
4730
  ),
4728
- filter && typeaheadValue && typeaheadValue.startsWith(filter) && /* @__PURE__ */ import_react47.default.createElement(InputField.Typeahead, { value: typeaheadValue }),
4731
+ filter && typeaheadValue && typeaheadValue.startsWith(filter) && /* @__PURE__ */ import_react48.default.createElement(InputField.Typeahead, { value: typeaheadValue }),
4729
4732
  (!isFocused || !hideChildrenWhenFocused) && children,
4730
- loading && isFocused && /* @__PURE__ */ import_react47.default.createElement(InputField.Label, null, /* @__PURE__ */ import_react47.default.createElement(ActivityIndicator, null))
4733
+ loading && isFocused && /* @__PURE__ */ import_react48.default.createElement(InputField.Label, null, /* @__PURE__ */ import_react48.default.createElement(ActivityIndicator, null))
4731
4734
  );
4732
4735
  })
4733
4736
  );
@@ -4749,7 +4752,7 @@ function getNextIndex(items, currentIndex, direction, isDisabled) {
4749
4752
  }
4750
4753
 
4751
4754
  // src/components/Label.tsx
4752
- var import_react48 = __toESM(require("react"));
4755
+ var import_react49 = __toESM(require("react"));
4753
4756
  var import_styled_components28 = __toESM(require("styled-components"));
4754
4757
  var LabelLabel = import_styled_components28.default.label(
4755
4758
  ({ theme, selected }) => ({
@@ -4778,17 +4781,17 @@ var LabelContainer2 = import_styled_components28.default.span(({ theme }) => ({
4778
4781
  alignItems: "center"
4779
4782
  }));
4780
4783
  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)));
4784
+ 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
4785
  }
4783
4786
  var Label;
4784
4787
  ((_Label) => {
4785
- _Label.Label = (0, import_react48.memo)(LabelLabel);
4786
- _Label.Root = (0, import_react48.memo)(LabelRoot);
4788
+ _Label.Label = (0, import_react49.memo)(LabelLabel);
4789
+ _Label.Root = (0, import_react49.memo)(LabelRoot);
4787
4790
  })(Label || (Label = {}));
4788
4791
 
4789
4792
  // src/components/LabeledElementView.tsx
4790
4793
  var kiwi = __toESM(require("kiwi.js"));
4791
- var import_react49 = __toESM(require("react"));
4794
+ var import_react50 = __toESM(require("react"));
4792
4795
  var import_styled_components29 = __toESM(require("styled-components"));
4793
4796
  var Container4 = import_styled_components29.default.div(({ theme }) => ({
4794
4797
  display: "flex",
@@ -4807,24 +4810,24 @@ var Labels = import_styled_components29.default.div(({ theme }) => ({
4807
4810
  overflow: "hidden",
4808
4811
  userSelect: "none"
4809
4812
  }));
4810
- var LabeledElementView = (0, import_react49.memo)(function LabeledElementView2({
4813
+ var LabeledElementView = (0, import_react50.memo)(function LabeledElementView2({
4811
4814
  children,
4812
4815
  renderLabel
4813
4816
  }) {
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]
4817
+ const elementIds = import_react50.Children.toArray(children).flatMap(
4818
+ (child) => (0, import_react50.isValidElement)(child) && child.type === import_react50.Fragment ? child.props.children : [child]
4816
4819
  ).map(
4817
- (child) => (0, import_react49.isValidElement)(child) && "id" in child.props ? child.props.id : null
4820
+ (child) => (0, import_react50.isValidElement)(child) && "id" in child.props ? child.props.id : null
4818
4821
  ).filter((id) => !!id);
4819
4822
  const serializedIds = elementIds.join(",");
4820
- const containerRef = (0, import_react49.useRef)(null);
4821
- const refs = (0, import_react49.useMemo)(() => {
4823
+ const containerRef = (0, import_react50.useRef)(null);
4824
+ const refs = (0, import_react50.useMemo)(() => {
4822
4825
  return Object.fromEntries(
4823
- serializedIds.split(",").map((id) => [id, (0, import_react49.createRef)()])
4826
+ serializedIds.split(",").map((id) => [id, (0, import_react50.createRef)()])
4824
4827
  );
4825
4828
  }, [serializedIds]);
4826
- const labelElements = (0, import_react49.useMemo)(() => {
4827
- return serializedIds.split(",").map((id, index) => /* @__PURE__ */ import_react49.default.createElement(
4829
+ const labelElements = (0, import_react50.useMemo)(() => {
4830
+ return serializedIds.split(",").map((id, index) => /* @__PURE__ */ import_react50.default.createElement(
4828
4831
  "span",
4829
4832
  {
4830
4833
  key: id,
@@ -4837,7 +4840,7 @@ var LabeledElementView = (0, import_react49.memo)(function LabeledElementView2({
4837
4840
  })
4838
4841
  ));
4839
4842
  }, [refs, serializedIds, renderLabel]);
4840
- (0, import_react49.useLayoutEffect)(() => {
4843
+ (0, import_react50.useLayoutEffect)(() => {
4841
4844
  if (!containerRef.current)
4842
4845
  return;
4843
4846
  const containerRect = containerRef.current.getBoundingClientRect();
@@ -4902,13 +4905,13 @@ var LabeledElementView = (0, import_react49.memo)(function LabeledElementView2({
4902
4905
  `${Math.max(...heights)}px`
4903
4906
  );
4904
4907
  }, [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));
4908
+ 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
4909
  });
4907
4910
 
4908
4911
  // src/components/Progress.tsx
4909
4912
  var import_noya_utils9 = require("@noya-app/noya-utils");
4910
4913
  var ProgressPrimitive = __toESM(require("@radix-ui/react-progress"));
4911
- var import_react50 = __toESM(require("react"));
4914
+ var import_react51 = __toESM(require("react"));
4912
4915
  var import_styled_components30 = __toESM(require("styled-components"));
4913
4916
  function Progress({
4914
4917
  value,
@@ -4918,7 +4921,7 @@ function Progress({
4918
4921
  variant = "normal"
4919
4922
  }) {
4920
4923
  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(
4924
+ return /* @__PURE__ */ import_react51.default.createElement(ProgressRoot, { value: clampedValue, style: { width, flex, height } }, /* @__PURE__ */ import_react51.default.createElement(
4922
4925
  ProgressIndicator,
4923
4926
  {
4924
4927
  variant,
@@ -4943,7 +4946,7 @@ var ProgressIndicator = (0, import_styled_components30.default)(ProgressPrimitiv
4943
4946
 
4944
4947
  // src/components/RadioGroup.tsx
4945
4948
  var ToggleGroupPrimitive = __toESM(require("@radix-ui/react-toggle-group"));
4946
- var import_react51 = __toESM(require("react"));
4949
+ var import_react52 = __toESM(require("react"));
4947
4950
  var import_styled_components31 = __toESM(require("styled-components"));
4948
4951
  var ignoredProps3 = /* @__PURE__ */ new Set(["colorScheme"]);
4949
4952
  var StyledRoot = (0, import_styled_components31.default)(ToggleGroupPrimitive.Root).withConfig({
@@ -4996,9 +4999,9 @@ var StyledItem = (0, import_styled_components31.default)(ToggleGroupPrimitive.It
4996
4999
  boxShadow: `0 0 0 1px ${theme.colors.sidebar.background}, 0 0 0 3px ${theme.colors[colorScheme ?? "primary"]}`
4997
5000
  }
4998
5001
  }));
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(
5002
+ var ToggleGroupItem = (0, import_react52.forwardRef)(function ToggleGroupItem2({ value, tooltip, children, disabled = false }, forwardedRef) {
5003
+ const { colorScheme } = (0, import_react52.useContext)(RadioGroupContext);
5004
+ const itemElement = /* @__PURE__ */ import_react52.default.createElement(
5002
5005
  StyledItem,
5003
5006
  {
5004
5007
  ref: forwardedRef,
@@ -5008,9 +5011,9 @@ var ToggleGroupItem = (0, import_react51.forwardRef)(function ToggleGroupItem2({
5008
5011
  },
5009
5012
  children
5010
5013
  );
5011
- return tooltip ? /* @__PURE__ */ import_react51.default.createElement(Tooltip, { content: tooltip }, itemElement) : itemElement;
5014
+ return tooltip ? /* @__PURE__ */ import_react52.default.createElement(Tooltip, { content: tooltip }, itemElement) : itemElement;
5012
5015
  });
5013
- var RadioGroupContext = (0, import_react51.createContext)({
5016
+ var RadioGroupContext = (0, import_react52.createContext)({
5014
5017
  colorScheme: "primary"
5015
5018
  });
5016
5019
  function ToggleGroupRoot({
@@ -5021,8 +5024,8 @@ function ToggleGroupRoot({
5021
5024
  allowEmpty,
5022
5025
  children
5023
5026
  }) {
5024
- const contextValue = (0, import_react51.useMemo)(() => ({ colorScheme }), [colorScheme]);
5025
- const handleValueChange = (0, import_react51.useCallback)(
5027
+ const contextValue = (0, import_react52.useMemo)(() => ({ colorScheme }), [colorScheme]);
5028
+ const handleValueChange = (0, import_react52.useCallback)(
5026
5029
  (value2) => {
5027
5030
  if (!allowEmpty && !value2)
5028
5031
  return;
@@ -5030,7 +5033,7 @@ function ToggleGroupRoot({
5030
5033
  },
5031
5034
  [allowEmpty, onValueChange]
5032
5035
  );
5033
- return /* @__PURE__ */ import_react51.default.createElement(RadioGroupContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react51.default.createElement(
5036
+ return /* @__PURE__ */ import_react52.default.createElement(RadioGroupContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react52.default.createElement(
5034
5037
  StyledRoot,
5035
5038
  {
5036
5039
  id,
@@ -5044,28 +5047,28 @@ function ToggleGroupRoot({
5044
5047
  }
5045
5048
  var RadioGroup;
5046
5049
  ((RadioGroup2) => {
5047
- RadioGroup2.Root = (0, import_react51.memo)(ToggleGroupRoot);
5048
- RadioGroup2.Item = (0, import_react51.memo)(ToggleGroupItem);
5050
+ RadioGroup2.Root = (0, import_react52.memo)(ToggleGroupRoot);
5051
+ RadioGroup2.Item = (0, import_react52.memo)(ToggleGroupItem);
5049
5052
  })(RadioGroup || (RadioGroup = {}));
5050
5053
 
5051
5054
  // src/components/Select.tsx
5052
5055
  var import_noya_utils10 = require("@noya-app/noya-utils");
5053
- var import_react52 = __toESM(require("react"));
5056
+ var import_react53 = __toESM(require("react"));
5054
5057
  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({
5058
+ var SelectContext = (0, import_react53.createContext)(void 0);
5059
+ var SelectOption = (0, import_react53.memo)(function SelectOption2({
5057
5060
  value,
5058
5061
  title,
5059
5062
  onSelect
5060
5063
  }) {
5061
- const { addListener, removeListener } = (0, import_react52.useContext)(SelectContext);
5062
- (0, import_react52.useEffect)(() => {
5064
+ const { addListener, removeListener } = (0, import_react53.useContext)(SelectContext);
5065
+ (0, import_react53.useEffect)(() => {
5063
5066
  if (!onSelect)
5064
5067
  return;
5065
5068
  addListener(value, onSelect);
5066
5069
  return () => removeListener(value);
5067
5070
  }, [addListener, onSelect, removeListener, value]);
5068
- return /* @__PURE__ */ import_react52.default.createElement("option", { value }, title ?? value);
5071
+ return /* @__PURE__ */ import_react53.default.createElement("option", { value }, title ?? value);
5069
5072
  });
5070
5073
  var createChevronSVGString = (0, import_noya_utils10.memoize)(
5071
5074
  (color) => `
@@ -5105,7 +5108,7 @@ var SelectElement = import_styled_components32.default.select(
5105
5108
  }
5106
5109
  })
5107
5110
  );
5108
- var Select = (0, import_react52.memo)(function Select2({
5111
+ var Select = (0, import_react53.memo)(function Select2({
5109
5112
  id,
5110
5113
  flex,
5111
5114
  value,
@@ -5115,8 +5118,8 @@ var Select = (0, import_react52.memo)(function Select2({
5115
5118
  const getTitle = "options" in rest ? rest.getTitle : void 0;
5116
5119
  const onChange = "options" in rest ? rest.onChange : void 0;
5117
5120
  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(
5121
+ const optionElements = (0, import_react53.useMemo)(
5122
+ () => options ? options.map((option, index) => /* @__PURE__ */ import_react53.default.createElement(
5120
5123
  SelectOption,
5121
5124
  {
5122
5125
  key: option,
@@ -5127,21 +5130,21 @@ var Select = (0, import_react52.memo)(function Select2({
5127
5130
  )) : children,
5128
5131
  [children, getTitle, onChange, options]
5129
5132
  );
5130
- const listeners = (0, import_react52.useRef)(/* @__PURE__ */ new Map());
5131
- const contextValue = (0, import_react52.useMemo)(
5133
+ const listeners = (0, import_react53.useRef)(/* @__PURE__ */ new Map());
5134
+ const contextValue = (0, import_react53.useMemo)(
5132
5135
  () => ({
5133
5136
  addListener: (value2, listener) => listeners.current.set(value2, listener),
5134
5137
  removeListener: (value2) => listeners.current.delete(value2)
5135
5138
  }),
5136
5139
  []
5137
5140
  );
5138
- return /* @__PURE__ */ import_react52.default.createElement(SelectContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react52.default.createElement(
5141
+ return /* @__PURE__ */ import_react53.default.createElement(SelectContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react53.default.createElement(
5139
5142
  SelectElement,
5140
5143
  {
5141
5144
  id,
5142
5145
  flex,
5143
5146
  value,
5144
- onChange: (0, import_react52.useCallback)(
5147
+ onChange: (0, import_react53.useCallback)(
5145
5148
  (event) => listeners.current.get(event.target.value)?.(),
5146
5149
  [listeners]
5147
5150
  ),
@@ -5153,7 +5156,7 @@ var Select = (0, import_react52.memo)(function Select2({
5153
5156
 
5154
5157
  // src/components/Slider.tsx
5155
5158
  var RadixSlider = __toESM(require("@radix-ui/react-slider"));
5156
- var import_react53 = __toESM(require("react"));
5159
+ var import_react54 = __toESM(require("react"));
5157
5160
  var import_styled_components33 = __toESM(require("styled-components"));
5158
5161
  var StyledSlider = (0, import_styled_components33.default)(RadixSlider.Root)({
5159
5162
  flex: "1",
@@ -5194,17 +5197,17 @@ var Slider = function Slider2({
5194
5197
  min,
5195
5198
  max
5196
5199
  }) {
5197
- const arrayValue = (0, import_react53.useMemo)(
5200
+ const arrayValue = (0, import_react54.useMemo)(
5198
5201
  () => [Math.min(Math.max(value, min), max)],
5199
5202
  [value, min, max]
5200
5203
  );
5201
- const handleValueChange = (0, import_react53.useCallback)(
5204
+ const handleValueChange = (0, import_react54.useCallback)(
5202
5205
  (arrayValue2) => {
5203
5206
  onValueChange(arrayValue2[0]);
5204
5207
  },
5205
5208
  [onValueChange]
5206
5209
  );
5207
- return /* @__PURE__ */ import_react53.default.createElement(
5210
+ return /* @__PURE__ */ import_react54.default.createElement(
5208
5211
  StyledSlider,
5209
5212
  {
5210
5213
  min,
@@ -5213,14 +5216,14 @@ var Slider = function Slider2({
5213
5216
  value: arrayValue,
5214
5217
  onValueChange: handleValueChange
5215
5218
  },
5216
- /* @__PURE__ */ import_react53.default.createElement(StyledTrack, null, /* @__PURE__ */ import_react53.default.createElement(StyledRange, null)),
5217
- /* @__PURE__ */ import_react53.default.createElement(StyledThumb2, null)
5219
+ /* @__PURE__ */ import_react54.default.createElement(StyledTrack, null, /* @__PURE__ */ import_react54.default.createElement(StyledRange, null)),
5220
+ /* @__PURE__ */ import_react54.default.createElement(StyledThumb2, null)
5218
5221
  );
5219
5222
  };
5220
5223
 
5221
5224
  // src/components/Switch.tsx
5222
5225
  var SwitchPrimitive = __toESM(require("@radix-ui/react-switch"));
5223
- var import_react54 = __toESM(require("react"));
5226
+ var import_react55 = __toESM(require("react"));
5224
5227
  var import_styled_components34 = __toESM(require("styled-components"));
5225
5228
  var SwitchRoot = (0, import_styled_components34.default)(SwitchPrimitive.Root)(({ theme, colorScheme: variant }) => ({
5226
5229
  all: "unset",
@@ -5256,7 +5259,7 @@ var Switch = function Switch2({
5256
5259
  onChange,
5257
5260
  colorScheme = "normal"
5258
5261
  }) {
5259
- return /* @__PURE__ */ import_react54.default.createElement(
5262
+ return /* @__PURE__ */ import_react55.default.createElement(
5260
5263
  SwitchRoot,
5261
5264
  {
5262
5265
  colorScheme,
@@ -5265,42 +5268,42 @@ var Switch = function Switch2({
5265
5268
  onChange(newValue);
5266
5269
  }
5267
5270
  },
5268
- /* @__PURE__ */ import_react54.default.createElement(SwitchThumb, null)
5271
+ /* @__PURE__ */ import_react55.default.createElement(SwitchThumb, null)
5269
5272
  );
5270
5273
  };
5271
5274
 
5272
5275
  // src/components/TreeView.tsx
5273
- var import_react55 = __toESM(require("react"));
5274
- var TreeRow = (0, import_react55.forwardRef)(function TreeRow2({
5276
+ var import_react56 = __toESM(require("react"));
5277
+ var TreeRow = (0, import_react56.forwardRef)(function TreeRow2({
5275
5278
  icon,
5276
5279
  expanded,
5277
5280
  onClickChevron,
5278
5281
  children,
5279
5282
  ...rest
5280
5283
  }, forwardedRef) {
5281
- const { expandable } = (0, import_react55.useContext)(ListView.RowContext);
5282
- const handleClickChevron = (0, import_react55.useCallback)(
5284
+ const { expandable } = (0, import_react56.useContext)(ListView.RowContext);
5285
+ const handleClickChevron = (0, import_react56.useCallback)(
5283
5286
  (event) => {
5284
5287
  event.stopPropagation();
5285
5288
  onClickChevron?.({ altKey: event.altKey });
5286
5289
  },
5287
5290
  [onClickChevron]
5288
5291
  );
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(
5292
+ 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
5293
  IconButton,
5291
5294
  {
5292
5295
  iconName: expanded ? "ChevronDownIcon" : "ChevronRightIcon",
5293
5296
  onClick: handleClickChevron,
5294
5297
  selected: rest.selected
5295
5298
  }
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);
5299
+ ), /* @__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
5300
  });
5298
5301
  var TreeView;
5299
5302
  ((TreeView2) => {
5300
5303
  TreeView2.Root = ListView.Root;
5301
5304
  TreeView2.RowTitle = ListView.RowTitle;
5302
5305
  TreeView2.EditableRowTitle = ListView.EditableRowTitle;
5303
- TreeView2.Row = (0, import_react55.memo)(TreeRow);
5306
+ TreeView2.Row = (0, import_react56.memo)(TreeRow);
5304
5307
  })(TreeView || (TreeView = {}));
5305
5308
 
5306
5309
  // src/hooks/usePlatform.ts
@@ -5608,7 +5611,7 @@ var SUPPORTED_CANVAS_UPLOAD_TYPES = [
5608
5611
 
5609
5612
  // src/components/ArrayController.tsx
5610
5613
  var import_noya_utils11 = require("@noya-app/noya-utils");
5611
- var import_react57 = __toESM(require("react"));
5614
+ var import_react58 = __toESM(require("react"));
5612
5615
  var import_styled_components36 = __toESM(require("styled-components"));
5613
5616
 
5614
5617
  // src/components/InspectorPrimitives.tsx
@@ -5627,7 +5630,7 @@ __export(InspectorPrimitives_exports, {
5627
5630
  Title: () => Title3,
5628
5631
  VerticalSeparator: () => VerticalSeparator
5629
5632
  });
5630
- var import_react56 = __toESM(require("react"));
5633
+ var import_react57 = __toESM(require("react"));
5631
5634
  var import_styled_components35 = __toESM(require("styled-components"));
5632
5635
  var Section = import_styled_components35.default.div(({ theme, padding = "10px", gap }) => ({
5633
5636
  flex: "0 0 auto",
@@ -5674,8 +5677,8 @@ var Checkbox = import_styled_components35.default.input(({ theme }) => ({
5674
5677
  var Text3 = import_styled_components35.default.span(({ theme }) => ({
5675
5678
  ...theme.textStyles.small
5676
5679
  }));
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 });
5680
+ var VerticalSeparator = () => /* @__PURE__ */ import_react57.default.createElement(Spacer.Vertical, { size: (0, import_styled_components35.useTheme)().sizes.inspector.verticalSeparator });
5681
+ var HorizontalSeparator = () => /* @__PURE__ */ import_react57.default.createElement(Spacer.Horizontal, { size: (0, import_styled_components35.useTheme)().sizes.inspector.horizontalSeparator });
5679
5682
  var SliderRowLabel = import_styled_components35.default.span(({ theme }) => ({
5680
5683
  ...theme.textStyles.small,
5681
5684
  color: theme.colors.textMuted,
@@ -5695,7 +5698,7 @@ var RowLabel = import_styled_components35.default.span(({ theme, textStyle }) =>
5695
5698
  // Button height
5696
5699
  alignItems: "center"
5697
5700
  }));
5698
- var LabeledRow = (0, import_react56.memo)(function LabeledRow2({
5701
+ var LabeledRow = (0, import_react57.memo)(function LabeledRow2({
5699
5702
  id,
5700
5703
  children,
5701
5704
  label,
@@ -5703,13 +5706,13 @@ var LabeledRow = (0, import_react56.memo)(function LabeledRow2({
5703
5706
  gap,
5704
5707
  right
5705
5708
  }) {
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)));
5709
+ 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
5710
  });
5708
- var LabeledSliderRow = (0, import_react56.memo)(function LabeledRow3({
5711
+ var LabeledSliderRow = (0, import_react57.memo)(function LabeledRow3({
5709
5712
  children,
5710
5713
  label
5711
5714
  }) {
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)));
5715
+ 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
5716
  });
5714
5717
 
5715
5718
  // src/components/ArrayController.tsx
@@ -5722,7 +5725,7 @@ var ElementRow = import_styled_components36.default.div({
5722
5725
  var ItemContainer2 = import_styled_components36.default.div({
5723
5726
  position: "relative"
5724
5727
  });
5725
- var ArrayController = (0, import_react57.memo)(function ArrayController2({
5728
+ var ArrayController = (0, import_react58.memo)(function ArrayController2({
5726
5729
  id,
5727
5730
  items,
5728
5731
  title,
@@ -5740,12 +5743,12 @@ var ArrayController = (0, import_react57.memo)(function ArrayController2({
5740
5743
  }) {
5741
5744
  const iconColor = (0, import_styled_components36.useTheme)().colors.icon;
5742
5745
  const primaryLightColor = (0, import_styled_components36.useTheme)().colors.primaryLight;
5743
- const keys = (0, import_react57.useMemo)(
5746
+ const keys = (0, import_react58.useMemo)(
5744
5747
  () => items.map((item, index) => getKey?.(item) ?? index.toString()),
5745
5748
  [getKey, items]
5746
5749
  );
5747
5750
  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)(
5751
+ const handleMoveItem = (0, import_react58.useCallback)(
5749
5752
  (sourceIndex, destinationIndex, position) => {
5750
5753
  if (reversed) {
5751
5754
  if (position === "above") {
@@ -5762,11 +5765,11 @@ var ArrayController = (0, import_react57.memo)(function ArrayController2({
5762
5765
  [onMoveItem, reversed]
5763
5766
  );
5764
5767
  const renderRow = (index) => {
5765
- return /* @__PURE__ */ import_react57.default.createElement(ElementRow, { key: keys[index] }, renderItem({ item: items[index], index }));
5768
+ return /* @__PURE__ */ import_react58.default.createElement(ElementRow, { key: keys[index] }, renderItem({ item: items[index], index }));
5766
5769
  };
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(
5770
+ 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
5771
  [
5769
- onClickTrash && /* @__PURE__ */ import_react57.default.createElement(
5772
+ onClickTrash && /* @__PURE__ */ import_react58.default.createElement(
5770
5773
  IconButton,
5771
5774
  {
5772
5775
  id: `${id}-trash`,
@@ -5775,7 +5778,7 @@ var ArrayController = (0, import_react57.memo)(function ArrayController2({
5775
5778
  onClick: onClickTrash
5776
5779
  }
5777
5780
  ),
5778
- onClickExpand && /* @__PURE__ */ import_react57.default.createElement(
5781
+ onClickExpand && /* @__PURE__ */ import_react58.default.createElement(
5779
5782
  IconButton,
5780
5783
  {
5781
5784
  id: `${id}-gear`,
@@ -5784,7 +5787,7 @@ var ArrayController = (0, import_react57.memo)(function ArrayController2({
5784
5787
  onClick: onClickExpand
5785
5788
  }
5786
5789
  ),
5787
- onClickPlus && /* @__PURE__ */ import_react57.default.createElement(
5790
+ onClickPlus && /* @__PURE__ */ import_react58.default.createElement(
5788
5791
  IconButton,
5789
5792
  {
5790
5793
  id: `${id}-add`,
@@ -5794,15 +5797,15 @@ var ArrayController = (0, import_react57.memo)(function ArrayController2({
5794
5797
  }
5795
5798
  )
5796
5799
  ],
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(
5800
+ /* @__PURE__ */ import_react58.default.createElement(Spacer.Horizontal, { size: 8 })
5801
+ )), /* @__PURE__ */ import_react58.default.createElement(Stack.V, { gap: "4px" }, sortable ? /* @__PURE__ */ import_react58.default.createElement(
5799
5802
  Sortable.Root,
5800
5803
  {
5801
5804
  keys,
5802
5805
  renderOverlay: renderRow,
5803
5806
  onMoveItem: handleMoveItem
5804
5807
  },
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(
5808
+ 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
5809
  ListView.DragIndicator,
5807
5810
  {
5808
5811
  gap: 0,
@@ -5816,11 +5819,11 @@ var ArrayController = (0, import_react57.memo)(function ArrayController2({
5816
5819
 
5817
5820
  // src/components/DimensionInput.tsx
5818
5821
  var import_noya_utils12 = require("@noya-app/noya-utils");
5819
- var import_react58 = __toESM(require("react"));
5822
+ var import_react59 = __toESM(require("react"));
5820
5823
  function getNewValue(value, mode, delta) {
5821
5824
  return delta === void 0 ? value : mode === "replace" ? delta : value + delta;
5822
5825
  }
5823
- var DimensionInput = (0, import_react58.memo)(function DimensionInput2({
5826
+ var DimensionInput = (0, import_react59.memo)(function DimensionInput2({
5824
5827
  id,
5825
5828
  value,
5826
5829
  onSetValue,
@@ -5830,15 +5833,15 @@ var DimensionInput = (0, import_react58.memo)(function DimensionInput2({
5830
5833
  disabled,
5831
5834
  trigger = "submit"
5832
5835
  }) {
5833
- const handleNudgeValue = (0, import_react58.useCallback)(
5836
+ const handleNudgeValue = (0, import_react59.useCallback)(
5834
5837
  (value2) => onSetValue(value2, "adjust"),
5835
5838
  [onSetValue]
5836
5839
  );
5837
- const handleSetValue = (0, import_react58.useCallback)(
5840
+ const handleSetValue = (0, import_react59.useCallback)(
5838
5841
  (value2) => onSetValue(value2, "replace"),
5839
5842
  [onSetValue]
5840
5843
  );
5841
- return /* @__PURE__ */ import_react58.default.createElement(InputField.Root, { id, width: size2 }, /* @__PURE__ */ import_react58.default.createElement(
5844
+ return /* @__PURE__ */ import_react59.default.createElement(InputField.Root, { id, width: size2 }, /* @__PURE__ */ import_react59.default.createElement(
5842
5845
  InputField.NumberInput,
5843
5846
  {
5844
5847
  value: value === void 0 ? value : (0, import_noya_utils12.round)(value, 2),
@@ -5847,7 +5850,7 @@ var DimensionInput = (0, import_react58.memo)(function DimensionInput2({
5847
5850
  disabled,
5848
5851
  ...trigger === "change" ? { onChange: handleSetValue } : { onSubmit: handleSetValue }
5849
5852
  }
5850
- ), label && /* @__PURE__ */ import_react58.default.createElement(InputField.Label, null, label));
5853
+ ), label && /* @__PURE__ */ import_react59.default.createElement(InputField.Label, null, label));
5851
5854
  });
5852
5855
  // Annotate the CommonJS export names for ESM import in node:
5853
5856
  0 && (module.exports = {