@noya-app/noya-designsystem 0.1.6 → 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
- /* @__PURE__ */ import_react36.default.createElement(
2441
+ items && onSelect ? /* @__PURE__ */ import_react37.default.createElement(
2439
2442
  DropdownMenu,
2440
2443
  {
2441
2444
  open,
@@ -2444,18 +2447,23 @@ 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
  ))
2456
+ ) : /* @__PURE__ */ import_react37.default.createElement(
2457
+ import_noya_icons5.DragHandleDots2Icon,
2458
+ {
2459
+ color: isVisible || open ? color : "transparent"
2460
+ }
2453
2461
  )
2454
2462
  );
2455
2463
  });
2456
2464
 
2457
2465
  // src/components/FillInputField.tsx
2458
- var import_react40 = __toESM(require("react"));
2466
+ var import_react41 = __toESM(require("react"));
2459
2467
  var import_styled_components21 = __toESM(require("styled-components"));
2460
2468
 
2461
2469
  // ../noya-file-format/src/types.ts
@@ -2781,26 +2789,26 @@ var ClassValue = /* @__PURE__ */ ((ClassValue2) => {
2781
2789
  })(ClassValue || {});
2782
2790
 
2783
2791
  // src/components/FillPreviewBackground.tsx
2784
- var import_react39 = __toESM(require("react"));
2792
+ var import_react40 = __toESM(require("react"));
2785
2793
  var import_styled_components20 = __toESM(require("styled-components"));
2786
2794
 
2787
2795
  // src/contexts/ImageDataContext.tsx
2788
- var import_react37 = __toESM(require("react"));
2789
- var ImageDataContext = (0, import_react37.createContext)(
2796
+ var import_react38 = __toESM(require("react"));
2797
+ var ImageDataContext = (0, import_react38.createContext)(
2790
2798
  void 0
2791
2799
  );
2792
- var ImageDataProvider = (0, import_react37.memo)(function ImageDataProvider2({
2800
+ var ImageDataProvider = (0, import_react38.memo)(function ImageDataProvider2({
2793
2801
  children,
2794
2802
  getImageData
2795
2803
  }) {
2796
- const contextValue = (0, import_react37.useMemo)(
2804
+ const contextValue = (0, import_react38.useMemo)(
2797
2805
  () => ({ getImageData: getImageData ?? (() => void 0) }),
2798
2806
  [getImageData]
2799
2807
  );
2800
- return /* @__PURE__ */ import_react37.default.createElement(ImageDataContext.Provider, { value: contextValue }, children);
2808
+ return /* @__PURE__ */ import_react38.default.createElement(ImageDataContext.Provider, { value: contextValue }, children);
2801
2809
  });
2802
2810
  function useImageData(ref) {
2803
- const value = (0, import_react37.useContext)(ImageDataContext);
2811
+ const value = (0, import_react38.useContext)(ImageDataContext);
2804
2812
  if (!value) {
2805
2813
  throw new Error("Missing ImageDataProvider");
2806
2814
  }
@@ -2808,15 +2816,15 @@ function useImageData(ref) {
2808
2816
  }
2809
2817
 
2810
2818
  // src/hooks/useObjectURL.ts
2811
- var import_react38 = require("react");
2819
+ var import_react39 = require("react");
2812
2820
  function useObjectURL(object) {
2813
- const objectURL = (0, import_react38.useMemo)(() => {
2821
+ const objectURL = (0, import_react39.useMemo)(() => {
2814
2822
  if (object instanceof Blob)
2815
2823
  return URL.createObjectURL(object);
2816
2824
  const bytes = object instanceof Uint8Array ? object : object !== void 0 ? new Uint8Array(object) : new Uint8Array();
2817
2825
  return URL.createObjectURL(new Blob([bytes]));
2818
2826
  }, [object]);
2819
- (0, import_react38.useLayoutEffect)(() => {
2827
+ (0, import_react39.useLayoutEffect)(() => {
2820
2828
  return () => URL.revokeObjectURL(objectURL);
2821
2829
  }, [objectURL]);
2822
2830
  return objectURL;
@@ -2872,9 +2880,9 @@ var Background = import_styled_components20.default.span(({ background }) => ({
2872
2880
  position: "absolute",
2873
2881
  inset: 0
2874
2882
  }));
2875
- var HorizontalDotsBackground = (0, import_react39.memo)(function HorizontalDotsBackground2() {
2883
+ var HorizontalDotsBackground = (0, import_react40.memo)(function HorizontalDotsBackground2() {
2876
2884
  const { inputBackground, placeholderDots } = (0, import_styled_components20.useTheme)().colors;
2877
- const background = (0, import_react39.useMemo)(
2885
+ const background = (0, import_react40.useMemo)(
2878
2886
  () => [
2879
2887
  `center url("data:image/svg+xml;utf8,${dotsHorizontalSvg(
2880
2888
  placeholderDots
@@ -2883,7 +2891,7 @@ var HorizontalDotsBackground = (0, import_react39.memo)(function HorizontalDotsB
2883
2891
  ].join(","),
2884
2892
  [inputBackground, placeholderDots]
2885
2893
  );
2886
- return /* @__PURE__ */ import_react39.default.createElement(Background, { background });
2894
+ return /* @__PURE__ */ import_react40.default.createElement(Background, { background });
2887
2895
  });
2888
2896
  function getPatternSizeAndPosition(fillType, tileScale) {
2889
2897
  switch (fillType) {
@@ -2897,7 +2905,7 @@ function getPatternSizeAndPosition(fillType, tileScale) {
2897
2905
  return "center / 100% 100%";
2898
2906
  }
2899
2907
  }
2900
- var PatternPreviewBackground = (0, import_react39.memo)(function PatternPreviewBackground2({
2908
+ var PatternPreviewBackground = (0, import_react40.memo)(function PatternPreviewBackground2({
2901
2909
  fillType,
2902
2910
  tileScale,
2903
2911
  imageRef
@@ -2905,7 +2913,7 @@ var PatternPreviewBackground = (0, import_react39.memo)(function PatternPreviewB
2905
2913
  const image = useImageData(imageRef);
2906
2914
  const url = useObjectURL(image);
2907
2915
  const size2 = getPatternSizeAndPosition(fillType, tileScale);
2908
- const background = (0, import_react39.useMemo)(
2916
+ const background = (0, import_react40.useMemo)(
2909
2917
  () => [
2910
2918
  size2,
2911
2919
  `url(${url})`,
@@ -2913,37 +2921,37 @@ var PatternPreviewBackground = (0, import_react39.memo)(function PatternPreviewB
2913
2921
  ].join(" "),
2914
2922
  [fillType, size2, url]
2915
2923
  );
2916
- return /* @__PURE__ */ import_react39.default.createElement(Background, { background });
2924
+ return /* @__PURE__ */ import_react40.default.createElement(Background, { background });
2917
2925
  });
2918
- var ColorPreviewBackground = (0, import_react39.memo)(function ColorPreviewBackground2({
2926
+ var ColorPreviewBackground = (0, import_react40.memo)(function ColorPreviewBackground2({
2919
2927
  color
2920
2928
  }) {
2921
- const background = (0, import_react39.useMemo)(() => sketchColorToRgbaString(color), [color]);
2922
- 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 });
2923
2931
  });
2924
- var GradientPreviewBackground = (0, import_react39.memo)(function GradientPreviewBackground2({
2932
+ var GradientPreviewBackground = (0, import_react40.memo)(function GradientPreviewBackground2({
2925
2933
  gradient
2926
2934
  }) {
2927
- const background = (0, import_react39.useMemo)(
2935
+ const background = (0, import_react40.useMemo)(
2928
2936
  () => getGradientBackground(gradient.stops, gradient.gradientType, 180),
2929
2937
  [gradient.gradientType, gradient.stops]
2930
2938
  );
2931
- return /* @__PURE__ */ import_react39.default.createElement(Background, { background });
2939
+ return /* @__PURE__ */ import_react40.default.createElement(Background, { background });
2932
2940
  });
2933
- var FillPreviewBackground = (0, import_react39.memo)(function FillPreviewBackground2({
2941
+ var FillPreviewBackground = (0, import_react40.memo)(function FillPreviewBackground2({
2934
2942
  value
2935
2943
  }) {
2936
2944
  if (!value)
2937
- return /* @__PURE__ */ import_react39.default.createElement(HorizontalDotsBackground, null);
2945
+ return /* @__PURE__ */ import_react40.default.createElement(HorizontalDotsBackground, null);
2938
2946
  switch (value._class) {
2939
2947
  case "color":
2940
- return /* @__PURE__ */ import_react39.default.createElement(ColorPreviewBackground, { color: value });
2948
+ return /* @__PURE__ */ import_react40.default.createElement(ColorPreviewBackground, { color: value });
2941
2949
  case "gradient":
2942
- return /* @__PURE__ */ import_react39.default.createElement(GradientPreviewBackground, { gradient: value });
2950
+ return /* @__PURE__ */ import_react40.default.createElement(GradientPreviewBackground, { gradient: value });
2943
2951
  case "pattern":
2944
2952
  if (!value.image)
2945
2953
  return null;
2946
- return /* @__PURE__ */ import_react39.default.createElement(
2954
+ return /* @__PURE__ */ import_react40.default.createElement(
2947
2955
  PatternPreviewBackground,
2948
2956
  {
2949
2957
  fillType: value.patternFillType,
@@ -2973,16 +2981,16 @@ var Container = import_styled_components21.default.button(
2973
2981
  flex
2974
2982
  })
2975
2983
  );
2976
- var FillInputField = (0, import_react40.memo)(
2977
- (0, import_react40.forwardRef)(function FillInputField2({ id, value, ...rest }, ref) {
2978
- 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 }));
2979
2987
  })
2980
2988
  );
2981
2989
 
2982
2990
  // src/components/GradientPicker.tsx
2983
2991
  var import_noya_colorpicker2 = require("@noya-app/noya-colorpicker");
2984
- var import_react41 = __toESM(require("react"));
2985
- var GradientPicker = (0, import_react41.memo)(function GradientPicker2({
2992
+ var import_react42 = __toESM(require("react"));
2993
+ var GradientPicker = (0, import_react42.memo)(function GradientPicker2({
2986
2994
  value,
2987
2995
  selectedStop,
2988
2996
  onChangeColor,
@@ -2991,7 +2999,7 @@ var GradientPicker = (0, import_react41.memo)(function GradientPicker2({
2991
2999
  onDelete,
2992
3000
  onSelectStop
2993
3001
  }) {
2994
- const colorModel = (0, import_react41.useMemo)(
3002
+ const colorModel = (0, import_react42.useMemo)(
2995
3003
  () => ({
2996
3004
  defaultColor: { r: 0, g: 0, b: 0, a: 1 },
2997
3005
  toHsva: import_noya_colorpicker2.rgbaToHsva,
@@ -3000,30 +3008,30 @@ var GradientPicker = (0, import_react41.memo)(function GradientPicker2({
3000
3008
  }),
3001
3009
  []
3002
3010
  );
3003
- const rgbaColor = (0, import_react41.useMemo)(
3011
+ const rgbaColor = (0, import_react42.useMemo)(
3004
3012
  () => sketchColorToRgba(value[selectedStop].color),
3005
3013
  [value, selectedStop]
3006
3014
  );
3007
- const handleChangeColor = (0, import_react41.useCallback)(
3015
+ const handleChangeColor = (0, import_react42.useCallback)(
3008
3016
  (value2) => {
3009
3017
  onChangeColor(rgbaToSketchColor(value2));
3010
3018
  },
3011
3019
  [onChangeColor]
3012
3020
  );
3013
- const handleAddGradientStop = (0, import_react41.useCallback)(
3021
+ const handleAddGradientStop = (0, import_react42.useCallback)(
3014
3022
  (value2, position) => {
3015
3023
  onAdd(rgbaToSketchColor(value2), position);
3016
3024
  },
3017
3025
  [onAdd]
3018
3026
  );
3019
- return /* @__PURE__ */ import_react41.default.createElement(
3027
+ return /* @__PURE__ */ import_react42.default.createElement(
3020
3028
  import_noya_colorpicker2.ColorPicker,
3021
3029
  {
3022
3030
  onChange: handleChangeColor,
3023
3031
  colorModel,
3024
3032
  color: rgbaColor
3025
3033
  },
3026
- /* @__PURE__ */ import_react41.default.createElement(
3034
+ /* @__PURE__ */ import_react42.default.createElement(
3027
3035
  import_noya_colorpicker2.Gradient,
3028
3036
  {
3029
3037
  gradients: value,
@@ -3034,12 +3042,12 @@ var GradientPicker = (0, import_react41.memo)(function GradientPicker2({
3034
3042
  onDelete
3035
3043
  }
3036
3044
  ),
3037
- /* @__PURE__ */ import_react41.default.createElement(Spacer.Vertical, { size: 10 }),
3038
- /* @__PURE__ */ import_react41.default.createElement(import_noya_colorpicker2.Saturation, null),
3039
- /* @__PURE__ */ import_react41.default.createElement(Spacer.Vertical, { size: 12 }),
3040
- /* @__PURE__ */ import_react41.default.createElement(import_noya_colorpicker2.Hue, null),
3041
- /* @__PURE__ */ import_react41.default.createElement(Spacer.Vertical, { size: 5 }),
3042
- /* @__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)
3043
3051
  );
3044
3052
  });
3045
3053
 
@@ -3071,12 +3079,12 @@ var Grid = import_styled_components22.default.div((props) => ({
3071
3079
  }));
3072
3080
 
3073
3081
  // src/components/GridView.tsx
3074
- var import_react43 = __toESM(require("react"));
3082
+ var import_react44 = __toESM(require("react"));
3075
3083
  var import_styled_components24 = __toESM(require("styled-components"));
3076
3084
 
3077
3085
  // src/components/ScrollArea.tsx
3078
3086
  var RadixScrollArea = __toESM(require("@radix-ui/react-scroll-area"));
3079
- var import_react42 = __toESM(require("react"));
3087
+ var import_react43 = __toESM(require("react"));
3080
3088
  var import_styled_components23 = __toESM(require("styled-components"));
3081
3089
  var SCROLLBAR_SIZE = 10;
3082
3090
  var StyledViewport = (0, import_styled_components23.default)(RadixScrollArea.Viewport)({
@@ -3104,18 +3112,18 @@ var Container2 = import_styled_components23.default.div({
3104
3112
  flex: "1 1 0px",
3105
3113
  minHeight: 0
3106
3114
  });
3107
- var ScrollArea = (0, import_react42.memo)(function ScrollArea2({ children }) {
3108
- const [scrollElementRef, setScrollElementRef] = (0, import_react42.useState)(null);
3109
- 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(
3110
3118
  StyledViewport,
3111
3119
  {
3112
- ref: (0, import_react42.useCallback)(
3120
+ ref: (0, import_react43.useCallback)(
3113
3121
  (ref) => setScrollElementRef(ref),
3114
3122
  []
3115
3123
  )
3116
3124
  },
3117
3125
  typeof children === "function" ? scrollElementRef ? children(scrollElementRef) : null : children
3118
- ), /* @__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" }))));
3119
3127
  });
3120
3128
 
3121
3129
  // src/components/GridView.tsx
@@ -3295,7 +3303,7 @@ var Shimmer = import_styled_components24.default.div`
3295
3303
  align-items: end;
3296
3304
  padding: 4px;
3297
3305
  `;
3298
- var GridViewItem = (0, import_react43.forwardRef)(function GridViewItem2({
3306
+ var GridViewItem = (0, import_react44.forwardRef)(function GridViewItem2({
3299
3307
  id,
3300
3308
  title,
3301
3309
  subtitle,
@@ -3311,15 +3319,15 @@ var GridViewItem = (0, import_react43.forwardRef)(function GridViewItem2({
3311
3319
  onContextMenu,
3312
3320
  style: style3
3313
3321
  }, forwardedRef) {
3314
- const [hovered, setHovered] = import_react43.default.useState(false);
3322
+ const [hovered, setHovered] = import_react44.default.useState(false);
3315
3323
  const { hoverProps } = useHover({
3316
3324
  onHoverChange: (isHovering) => {
3317
3325
  onHoverChange?.(isHovering);
3318
3326
  setHovered(isHovering);
3319
3327
  }
3320
3328
  });
3321
- const { textPosition, bordered, disabled } = (0, import_react43.useContext)(GridViewContext);
3322
- const handleClick = (0, import_react43.useCallback)(
3329
+ const { textPosition, bordered, disabled } = (0, import_react44.useContext)(GridViewContext);
3330
+ const handleClick = (0, import_react44.useCallback)(
3323
3331
  (event) => {
3324
3332
  event.stopPropagation();
3325
3333
  event.preventDefault();
@@ -3328,7 +3336,7 @@ var GridViewItem = (0, import_react43.forwardRef)(function GridViewItem2({
3328
3336
  },
3329
3337
  [onClick, onPress]
3330
3338
  );
3331
- const handleKeyDown = (0, import_react43.useCallback)(
3339
+ const handleKeyDown = (0, import_react44.useCallback)(
3332
3340
  (event) => {
3333
3341
  if (event.key === "Enter" || event.key === " ") {
3334
3342
  event.stopPropagation();
@@ -3340,7 +3348,7 @@ var GridViewItem = (0, import_react43.forwardRef)(function GridViewItem2({
3340
3348
  },
3341
3349
  [onPress]
3342
3350
  );
3343
- let element = /* @__PURE__ */ import_react43.default.createElement(
3351
+ let element = /* @__PURE__ */ import_react44.default.createElement(
3344
3352
  ItemContainer,
3345
3353
  {
3346
3354
  id,
@@ -3349,7 +3357,7 @@ var GridViewItem = (0, import_react43.forwardRef)(function GridViewItem2({
3349
3357
  tabIndex: disabled ? void 0 : 0,
3350
3358
  onKeyDown: handleKeyDown
3351
3359
  },
3352
- /* @__PURE__ */ import_react43.default.createElement(
3360
+ /* @__PURE__ */ import_react44.default.createElement(
3353
3361
  ContentContainer,
3354
3362
  {
3355
3363
  disabled,
@@ -3363,25 +3371,25 @@ var GridViewItem = (0, import_react43.forwardRef)(function GridViewItem2({
3363
3371
  },
3364
3372
  children
3365
3373
  ),
3366
- 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 || " ")),
3367
- 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)),
3368
- 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 }))
3369
3377
  );
3370
3378
  if (menuItems && onSelectMenuItem) {
3371
- 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);
3372
3380
  }
3373
3381
  if (textPosition === "toolip") {
3374
- element = /* @__PURE__ */ import_react43.default.createElement(
3382
+ element = /* @__PURE__ */ import_react44.default.createElement(
3375
3383
  Tooltip,
3376
3384
  {
3377
- 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))
3378
3386
  },
3379
3387
  element
3380
3388
  );
3381
3389
  }
3382
3390
  return element;
3383
3391
  });
3384
- var GridViewContext = (0, import_react43.createContext)({
3392
+ var GridViewContext = (0, import_react44.createContext)({
3385
3393
  size: "small",
3386
3394
  textPosition: "below",
3387
3395
  bordered: false,
@@ -3396,7 +3404,7 @@ function GridViewRoot({
3396
3404
  bordered = false,
3397
3405
  disabled = false
3398
3406
  }) {
3399
- const handleClick = (0, import_react43.useCallback)(
3407
+ const handleClick = (0, import_react44.useCallback)(
3400
3408
  (event) => {
3401
3409
  event.stopPropagation();
3402
3410
  event.preventDefault();
@@ -3404,7 +3412,7 @@ function GridViewRoot({
3404
3412
  },
3405
3413
  [onClick]
3406
3414
  );
3407
- const contextValue = (0, import_react43.useMemo)(
3415
+ const contextValue = (0, import_react44.useMemo)(
3408
3416
  () => ({
3409
3417
  size: size2,
3410
3418
  textPosition,
@@ -3413,33 +3421,33 @@ function GridViewRoot({
3413
3421
  }),
3414
3422
  [bordered, disabled, size2, textPosition]
3415
3423
  );
3416
- 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));
3417
3425
  }
3418
3426
  function GridViewSection({
3419
3427
  children,
3420
3428
  padding = "20px"
3421
3429
  }) {
3422
- const { size: size2 } = (0, import_react43.useContext)(GridViewContext);
3423
- 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);
3424
3432
  }
3425
3433
  function GridViewSectionHeader({ title }) {
3426
3434
  const grouped = title.split("/");
3427
- return /* @__PURE__ */ import_react43.default.createElement(SectionHeaderContainer, null, /* @__PURE__ */ import_react43.default.createElement(Spacer.Vertical, { size: 24 }), withSeparatorElements(
3428
- grouped.map((title2, index) => /* @__PURE__ */ import_react43.default.createElement(SectionTitle, { last: index === grouped.length - 1 }, title2)),
3429
- /* @__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, " / ")
3430
3438
  ));
3431
3439
  }
3432
3440
  var GridView;
3433
3441
  ((GridView2) => {
3434
- GridView2.Root = (0, import_react43.memo)(GridViewRoot);
3435
- GridView2.Item = (0, import_react43.memo)(GridViewItem);
3436
- GridView2.Section = (0, import_react43.memo)(GridViewSection);
3437
- 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);
3438
3446
  })(GridView || (GridView = {}));
3439
3447
 
3440
3448
  // src/components/InputFieldWithCompletions.tsx
3441
3449
  var import_noya_utils8 = require("@noya-app/noya-utils");
3442
- var import_react47 = __toESM(require("react"));
3450
+ var import_react48 = __toESM(require("react"));
3443
3451
  var import_styled_components27 = __toESM(require("styled-components"));
3444
3452
 
3445
3453
  // src/utils/fuzzyScorer.ts
@@ -3516,7 +3524,7 @@ function mergeRanges(ranges) {
3516
3524
  // src/components/ListView.tsx
3517
3525
  var import_noya_utils7 = require("@noya-app/noya-utils");
3518
3526
  var import_react_compose_refs2 = require("@radix-ui/react-compose-refs");
3519
- var import_react45 = __toESM(require("react"));
3527
+ var import_react46 = __toESM(require("react"));
3520
3528
  var import_react_virtualized = require("react-virtualized");
3521
3529
  var import_react_window = require("react-window");
3522
3530
  var import_styled_components25 = __toESM(require("styled-components"));
@@ -3547,7 +3555,7 @@ function mergeEventHandlers(...handlerMaps) {
3547
3555
  // src/components/Sortable.tsx
3548
3556
  var import_core = require("@dnd-kit/core");
3549
3557
  var import_sortable = require("@dnd-kit/sortable");
3550
- var import_react44 = __toESM(require("react"));
3558
+ var import_react45 = __toESM(require("react"));
3551
3559
  var import_react_dom = require("react-dom");
3552
3560
  var normalizeListDestinationIndex = (index, position) => {
3553
3561
  return position === "above" ? index : index + 1;
@@ -3561,7 +3569,7 @@ var defaultAcceptsDrop = (sourceIndex, destinationIndex, position) => {
3561
3569
  }
3562
3570
  return true;
3563
3571
  };
3564
- var SortableItemContext = (0, import_react44.createContext)({
3572
+ var SortableItemContext = (0, import_react45.createContext)({
3565
3573
  keys: [],
3566
3574
  position: { x: 0, y: 0 },
3567
3575
  acceptsDrop: defaultAcceptsDrop,
@@ -3583,7 +3591,7 @@ function SortableItem({
3583
3591
  disabled,
3584
3592
  children
3585
3593
  }) {
3586
- const { keys, position, acceptsDrop, setActivatorEvent, axis } = (0, import_react44.useContext)(SortableItemContext);
3594
+ const { keys, position, acceptsDrop, setActivatorEvent, axis } = (0, import_react45.useContext)(SortableItemContext);
3587
3595
  const sortable = (0, import_sortable.useSortable)({ id, disabled });
3588
3596
  const {
3589
3597
  active,
@@ -3603,7 +3611,7 @@ function SortableItem({
3603
3611
  const eventY = activatorEvent?.clientY ?? 0;
3604
3612
  const offsetLeft = eventX + position.x;
3605
3613
  const offsetTop = eventY + position.y;
3606
- const ref = (0, import_react44.useCallback)((node) => setNodeRef(node), [setNodeRef]);
3614
+ const ref = (0, import_react45.useCallback)((node) => setNodeRef(node), [setNodeRef]);
3607
3615
  return children({
3608
3616
  ref,
3609
3617
  ...attributes,
@@ -3634,22 +3642,22 @@ function SortableRoot({
3634
3642
  }
3635
3643
  })
3636
3644
  );
3637
- const [activeIndex, setActiveIndex] = (0, import_react44.useState)();
3638
- const activatorEvent = (0, import_react44.useRef)(null);
3639
- 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) => {
3640
3648
  activatorEvent.current = event;
3641
3649
  }, []);
3642
- const [position, setPosition] = (0, import_react44.useState)({ x: 0, y: 0 });
3643
- 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)(
3644
3652
  (event) => {
3645
3653
  setActiveIndex(keys.indexOf(event.active.id));
3646
3654
  },
3647
3655
  [keys]
3648
3656
  );
3649
- const handleDragMove = (0, import_react44.useCallback)((event) => {
3657
+ const handleDragMove = (0, import_react45.useCallback)((event) => {
3650
3658
  setPosition({ ...event.delta });
3651
3659
  }, []);
3652
- const handleDragEnd = (0, import_react44.useCallback)(
3660
+ const handleDragEnd = (0, import_react45.useCallback)(
3653
3661
  (event) => {
3654
3662
  const { active, over } = event;
3655
3663
  setActiveIndex(void 0);
@@ -3676,10 +3684,10 @@ function SortableRoot({
3676
3684
  },
3677
3685
  [acceptsDrop, axis, keys, onMoveItem, position.x, position.y]
3678
3686
  );
3679
- return /* @__PURE__ */ import_react44.default.createElement(
3687
+ return /* @__PURE__ */ import_react45.default.createElement(
3680
3688
  SortableItemContext.Provider,
3681
3689
  {
3682
- value: (0, import_react44.useMemo)(
3690
+ value: (0, import_react45.useMemo)(
3683
3691
  () => ({
3684
3692
  keys,
3685
3693
  acceptsDrop,
@@ -3690,7 +3698,7 @@ function SortableRoot({
3690
3698
  [acceptsDrop, axis, keys, position, setActivatorEvent]
3691
3699
  )
3692
3700
  },
3693
- /* @__PURE__ */ import_react44.default.createElement(
3701
+ /* @__PURE__ */ import_react45.default.createElement(
3694
3702
  import_core.DndContext,
3695
3703
  {
3696
3704
  sensors,
@@ -3699,9 +3707,9 @@ function SortableRoot({
3699
3707
  onDragMove: handleDragMove,
3700
3708
  onDragEnd: handleDragEnd
3701
3709
  },
3702
- /* @__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),
3703
3711
  renderOverlay && (0, import_react_dom.createPortal)(
3704
- /* @__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)),
3705
3713
  document.body
3706
3714
  )
3707
3715
  )
@@ -3709,17 +3717,17 @@ function SortableRoot({
3709
3717
  }
3710
3718
  var Sortable;
3711
3719
  ((Sortable2) => {
3712
- Sortable2.Item = (0, import_react44.memo)(SortableItem);
3713
- Sortable2.Root = (0, import_react44.memo)(SortableRoot);
3720
+ Sortable2.Item = (0, import_react45.memo)(SortableItem);
3721
+ Sortable2.Root = (0, import_react45.memo)(SortableRoot);
3714
3722
  })(Sortable || (Sortable = {}));
3715
3723
 
3716
3724
  // src/components/ListView.tsx
3717
3725
  var ROW_HEIGHT = 31;
3718
3726
  var SECTION_HEADER_LABEL_HEIGHT = 27;
3719
- var DraggingContext = (0, import_react45.createContext)({
3727
+ var DraggingContext = (0, import_react46.createContext)({
3720
3728
  indentation: 12
3721
3729
  });
3722
- var ListRowContext = (0, import_react45.createContext)({
3730
+ var ListRowContext = (0, import_react46.createContext)({
3723
3731
  marginType: "none",
3724
3732
  selectedPosition: "only",
3725
3733
  sortable: false,
@@ -3749,8 +3757,8 @@ function ListViewEditableRowTitle({
3749
3757
  autoFocus,
3750
3758
  placeholder
3751
3759
  }) {
3752
- const inputRef = (0, import_react45.useRef)(null);
3753
- (0, import_react45.useLayoutEffect)(() => {
3760
+ const inputRef = (0, import_react46.useRef)(null);
3761
+ (0, import_react46.useLayoutEffect)(() => {
3754
3762
  const element = inputRef.current;
3755
3763
  if (!element || !autoFocus)
3756
3764
  return;
@@ -3759,7 +3767,7 @@ function ListViewEditableRowTitle({
3759
3767
  element.select();
3760
3768
  }, 0);
3761
3769
  }, [autoFocus]);
3762
- return /* @__PURE__ */ import_react45.default.createElement(
3770
+ return /* @__PURE__ */ import_react46.default.createElement(
3763
3771
  ListViewEditableRowTitleElement,
3764
3772
  {
3765
3773
  ref: inputRef,
@@ -3881,7 +3889,7 @@ var ListViewDragIndicatorElement = import_styled_components25.default.div(({ the
3881
3889
  boxShadow: "0 0 2px rgba(0,0,0,0.5)"
3882
3890
  }
3883
3891
  }));
3884
- var ListViewRow = (0, import_react45.forwardRef)(function ListViewRow2({
3892
+ var ListViewRow = (0, import_react46.forwardRef)(function ListViewRow2({
3885
3893
  id,
3886
3894
  tabIndex = 0,
3887
3895
  gap,
@@ -3900,7 +3908,8 @@ var ListViewRow = (0, import_react45.forwardRef)(function ListViewRow2({
3900
3908
  onContextMenu,
3901
3909
  onSelectMenuItem,
3902
3910
  onMenuOpenChange,
3903
- onKeyDown
3911
+ onKeyDown,
3912
+ style: style3
3904
3913
  }, forwardedRef) {
3905
3914
  depth = Math.max(0, depth);
3906
3915
  const {
@@ -3913,12 +3922,12 @@ var ListViewRow = (0, import_react45.forwardRef)(function ListViewRow2({
3913
3922
  divider,
3914
3923
  gap: listGap,
3915
3924
  colorScheme
3916
- } = (0, import_react45.useContext)(ListRowContext);
3925
+ } = (0, import_react46.useContext)(ListRowContext);
3917
3926
  const { hoverProps } = useHover({
3918
3927
  onHoverChange
3919
3928
  });
3920
- const { indentation, isDragging } = (0, import_react45.useContext)(DraggingContext);
3921
- const handlePress = (0, import_react45.useCallback)(
3929
+ const { indentation, isDragging } = (0, import_react46.useContext)(DraggingContext);
3930
+ const handlePress = (0, import_react46.useCallback)(
3922
3931
  (event) => {
3923
3932
  event.preventDefault();
3924
3933
  if (event.button !== 0)
@@ -3927,25 +3936,26 @@ var ListViewRow = (0, import_react45.forwardRef)(function ListViewRow2({
3927
3936
  },
3928
3937
  [onPress]
3929
3938
  );
3930
- const handleDoubleClick = (0, import_react45.useCallback)(
3939
+ const handleDoubleClick = (0, import_react46.useCallback)(
3931
3940
  (event) => {
3932
3941
  event.stopPropagation();
3933
3942
  onDoubleClick?.();
3934
3943
  },
3935
3944
  [onDoubleClick]
3936
3945
  );
3937
- const isDraggingStyle = (0, import_react45.useMemo)(() => {
3946
+ const mergedStyle = (0, import_react46.useMemo)(() => {
3938
3947
  return isDragging ? {
3939
3948
  // TODO: Where do these offsets actually come from?
3940
3949
  transform: `translate3d(-36px, -6px, 0)`,
3941
- width: `calc(100% + 48px)`
3942
- } : void 0;
3943
- }, [isDragging]);
3950
+ width: `calc(100% + 48px)`,
3951
+ ...style3
3952
+ } : style3;
3953
+ }, [isDragging, style3]);
3944
3954
  const renderContent = ({
3945
3955
  relativeDropPosition,
3946
3956
  ...renderProps
3947
3957
  }, ref) => {
3948
- const element = /* @__PURE__ */ import_react45.default.createElement(
3958
+ const element = /* @__PURE__ */ import_react46.default.createElement(
3949
3959
  RowContainer,
3950
3960
  {
3951
3961
  ref,
@@ -3968,7 +3978,7 @@ var ListViewRow = (0, import_react45.forwardRef)(function ListViewRow2({
3968
3978
  "aria-selected": selected,
3969
3979
  divider: !isDragging && divider,
3970
3980
  onKeyDown,
3971
- style: isDraggingStyle,
3981
+ style: mergedStyle,
3972
3982
  ...renderProps,
3973
3983
  ...mergeEventHandlers(
3974
3984
  { onPointerDown: renderProps.onPointerDown },
@@ -3976,7 +3986,7 @@ var ListViewRow = (0, import_react45.forwardRef)(function ListViewRow2({
3976
3986
  ),
3977
3987
  tabIndex
3978
3988
  },
3979
- relativeDropPosition && /* @__PURE__ */ import_react45.default.createElement(
3989
+ relativeDropPosition && /* @__PURE__ */ import_react46.default.createElement(
3980
3990
  ListViewDragIndicatorElement,
3981
3991
  {
3982
3992
  colorScheme,
@@ -3985,11 +3995,11 @@ var ListViewRow = (0, import_react45.forwardRef)(function ListViewRow2({
3985
3995
  gap: listGap
3986
3996
  }
3987
3997
  ),
3988
- 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 }),
3989
3999
  children
3990
4000
  );
3991
4001
  if (menuItems && onSelectMenuItem) {
3992
- return /* @__PURE__ */ import_react45.default.createElement(
4002
+ return /* @__PURE__ */ import_react46.default.createElement(
3993
4003
  ContextMenu,
3994
4004
  {
3995
4005
  items: menuItems,
@@ -4002,21 +4012,21 @@ var ListViewRow = (0, import_react45.forwardRef)(function ListViewRow2({
4002
4012
  return element;
4003
4013
  };
4004
4014
  if (sortable && id) {
4005
- 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)));
4006
4016
  }
4007
4017
  return renderContent({}, forwardedRef);
4008
4018
  });
4009
- var RenderItemContext = (0, import_react45.createContext)(
4019
+ var RenderItemContext = (0, import_react46.createContext)(
4010
4020
  () => null
4011
4021
  );
4012
- var VirtualizedListRow = (0, import_react45.memo)(function VirtualizedListRow2({
4022
+ var VirtualizedListRow = (0, import_react46.memo)(function VirtualizedListRow2({
4013
4023
  index,
4014
4024
  style: style3
4015
4025
  }) {
4016
- const renderItem = (0, import_react45.useContext)(RenderItemContext);
4017
- 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));
4018
4028
  });
4019
- var VirtualizedListInner = (0, import_react45.forwardRef)(function VirtualizedListInner2({
4029
+ var VirtualizedListInner = (0, import_react46.forwardRef)(function VirtualizedListInner2({
4020
4030
  size: size2,
4021
4031
  scrollElement,
4022
4032
  items,
@@ -4024,20 +4034,20 @@ var VirtualizedListInner = (0, import_react45.forwardRef)(function VirtualizedLi
4024
4034
  keyExtractor,
4025
4035
  renderItem
4026
4036
  }, ref) {
4027
- const listRef = (0, import_react45.useRef)(null);
4028
- (0, import_react45.useImperativeHandle)(ref, () => ({
4037
+ const listRef = (0, import_react46.useRef)(null);
4038
+ (0, import_react46.useImperativeHandle)(ref, () => ({
4029
4039
  scrollToIndex(index) {
4030
4040
  listRef.current?.scrollToItem(index);
4031
4041
  }
4032
4042
  }));
4033
- (0, import_react45.useLayoutEffect)(() => {
4043
+ (0, import_react46.useLayoutEffect)(() => {
4034
4044
  listRef.current?.resetAfterIndex(0);
4035
4045
  }, [
4036
4046
  // When items change, we need to re-render the virtualized list,
4037
4047
  // since it doesn't currently support row height changes
4038
4048
  items
4039
4049
  ]);
4040
- const listStyle = (0, import_react45.useMemo)(
4050
+ const listStyle = (0, import_react46.useMemo)(
4041
4051
  () => ({
4042
4052
  overflowX: "initial",
4043
4053
  overflowY: "initial",
@@ -4045,18 +4055,18 @@ var VirtualizedListInner = (0, import_react45.forwardRef)(function VirtualizedLi
4045
4055
  }),
4046
4056
  []
4047
4057
  );
4048
- 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(
4049
4059
  import_react_virtualized.WindowScroller,
4050
4060
  {
4051
4061
  scrollElement,
4052
- style: (0, import_react45.useMemo)(() => ({ flex: "1 1 auto" }), [])
4062
+ style: (0, import_react46.useMemo)(() => ({ flex: "1 1 auto" }), [])
4053
4063
  },
4054
- (0, import_react45.useCallback)(
4064
+ (0, import_react46.useCallback)(
4055
4065
  ({
4056
4066
  registerChild,
4057
4067
  onChildScroll,
4058
4068
  scrollTop
4059
- }) => /* @__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(
4060
4070
  import_react_window.VariableSizeList,
4061
4071
  {
4062
4072
  ref: listRef,
@@ -4086,7 +4096,7 @@ var VirtualizedListInner = (0, import_react45.forwardRef)(function VirtualizedLi
4086
4096
  )
4087
4097
  ));
4088
4098
  });
4089
- var VirtualizedList = (0, import_react45.memo)(
4099
+ var VirtualizedList = (0, import_react46.memo)(
4090
4100
  VirtualizedListInner
4091
4101
  );
4092
4102
  var RootContainer2 = import_styled_components25.default.div(({ theme, scrollable, gap }) => ({
@@ -4097,7 +4107,7 @@ var RootContainer2 = import_styled_components25.default.div(({ theme, scrollable
4097
4107
  color: theme.colors.textMuted,
4098
4108
  gap
4099
4109
  }));
4100
- var ListViewRootInner = (0, import_react45.forwardRef)(function ListViewRootInner2({
4110
+ var ListViewRootInner = (0, import_react46.forwardRef)(function ListViewRootInner2({
4101
4111
  onPress,
4102
4112
  scrollable = false,
4103
4113
  expandable = true,
@@ -4116,7 +4126,7 @@ var ListViewRootInner = (0, import_react45.forwardRef)(function ListViewRootInne
4116
4126
  colorScheme = "primary",
4117
4127
  gap = 0
4118
4128
  }, forwardedRef) {
4119
- const handleClick = (0, import_react45.useCallback)(
4129
+ const handleClick = (0, import_react46.useCallback)(
4120
4130
  (event) => {
4121
4131
  if (event.target instanceof HTMLElement && event.target.classList.contains("scroll-component"))
4122
4132
  return;
@@ -4126,19 +4136,19 @@ var ListViewRootInner = (0, import_react45.forwardRef)(function ListViewRootInne
4126
4136
  },
4127
4137
  [onPress]
4128
4138
  );
4129
- const renderChild = (0, import_react45.useCallback)(
4139
+ const renderChild = (0, import_react46.useCallback)(
4130
4140
  (index) => renderItem(data[index], index, { isDragging: false }),
4131
4141
  [data, renderItem]
4132
4142
  );
4133
- const getItemContextValue = (0, import_react45.useCallback)(
4143
+ const getItemContextValue = (0, import_react46.useCallback)(
4134
4144
  (i) => {
4135
4145
  const current = renderChild(i);
4136
- if (!(0, import_react45.isValidElement)(current))
4146
+ if (!(0, import_react46.isValidElement)(current))
4137
4147
  return;
4138
4148
  const prevChild = i - 1 >= 0 && renderChild(i - 1);
4139
4149
  const nextChild = i + 1 < data.length && renderChild(i + 1);
4140
- const next = (0, import_react45.isValidElement)(nextChild) ? nextChild : void 0;
4141
- 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;
4142
4152
  const hasMarginTop = !prev;
4143
4153
  const hasMarginBottom = !next || current.props.isSectionHeader || next && next.props.isSectionHeader;
4144
4154
  let marginType;
@@ -4190,26 +4200,26 @@ var ListViewRootInner = (0, import_react45.forwardRef)(function ListViewRootInne
4190
4200
  gap
4191
4201
  ]
4192
4202
  );
4193
- const draggingContextOverlayValue = (0, import_react45.useMemo)(
4203
+ const draggingContextOverlayValue = (0, import_react46.useMemo)(
4194
4204
  () => ({ indentation, isDragging: true }),
4195
4205
  [indentation]
4196
4206
  );
4197
- const renderOverlay = (0, import_react45.useCallback)(
4198
- (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 }))),
4199
4209
  [draggingContextOverlayValue, renderItem, data]
4200
4210
  );
4201
- const renderWrappedChild = (0, import_react45.useCallback)(
4211
+ const renderWrappedChild = (0, import_react46.useCallback)(
4202
4212
  (index) => {
4203
4213
  const contextValue = getItemContextValue(index);
4204
4214
  const current = renderChild(index);
4205
- if (!contextValue || !(0, import_react45.isValidElement)(current))
4215
+ if (!contextValue || !(0, import_react46.isValidElement)(current))
4206
4216
  return null;
4207
- 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);
4208
4218
  },
4209
4219
  [getItemContextValue, renderChild]
4210
4220
  );
4211
- const ids = (0, import_react45.useMemo)(() => data.map(keyExtractor), [keyExtractor, data]);
4212
- 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(
4213
4223
  Sortable.Root,
4214
4224
  {
4215
4225
  onMoveItem,
@@ -4219,8 +4229,8 @@ var ListViewRootInner = (0, import_react45.forwardRef)(function ListViewRootInne
4219
4229
  },
4220
4230
  children
4221
4231
  ) : children;
4222
- const withScrollable = (children) => scrollable ? /* @__PURE__ */ import_react45.default.createElement(ScrollArea, null, children) : children(null);
4223
- 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)(
4224
4234
  (index) => {
4225
4235
  const child = getItemContextValue(index);
4226
4236
  const margin = child?.marginType ? getPositionMargin(child.marginType) : { top: 0, bottom: 0 };
@@ -4229,12 +4239,12 @@ var ListViewRootInner = (0, import_react45.forwardRef)(function ListViewRootInne
4229
4239
  },
4230
4240
  [getItemContextValue, variant]
4231
4241
  );
4232
- const getKey = (0, import_react45.useCallback)(
4242
+ const getKey = (0, import_react46.useCallback)(
4233
4243
  (index) => keyExtractor(data[index], index),
4234
4244
  [data, keyExtractor]
4235
4245
  );
4236
- const draggingContextValue = (0, import_react45.useMemo)(() => ({ indentation }), [indentation]);
4237
- 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(
4238
4248
  RootContainer2,
4239
4249
  {
4240
4250
  ...{
@@ -4245,7 +4255,7 @@ var ListViewRootInner = (0, import_react45.forwardRef)(function ListViewRootInne
4245
4255
  },
4246
4256
  withScrollable(
4247
4257
  (scrollElementRef) => withSortable(
4248
- virtualized ? /* @__PURE__ */ import_react45.default.createElement(
4258
+ virtualized ? /* @__PURE__ */ import_react46.default.createElement(
4249
4259
  VirtualizedList,
4250
4260
  {
4251
4261
  ref: forwardedRef,
@@ -4261,42 +4271,42 @@ var ListViewRootInner = (0, import_react45.forwardRef)(function ListViewRootInne
4261
4271
  )
4262
4272
  ));
4263
4273
  });
4264
- var ListViewRoot = (0, import_react45.memo)(ListViewRootInner);
4265
- var ChildrenListViewInner = (0, import_react45.forwardRef)(function ChildrenListViewInner2({ children, ...rest }, forwardedRef) {
4266
- const items = (0, import_react45.useMemo)(
4267
- () => import_react45.Children.toArray(children).flatMap(
4268
- (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] : []
4269
4279
  ),
4270
4280
  [children]
4271
4281
  );
4272
- return /* @__PURE__ */ import_react45.default.createElement(
4282
+ return /* @__PURE__ */ import_react46.default.createElement(
4273
4283
  ListViewRoot,
4274
4284
  {
4275
4285
  ref: forwardedRef,
4276
4286
  ...rest,
4277
4287
  data: items,
4278
- keyExtractor: (0, import_react45.useCallback)(
4288
+ keyExtractor: (0, import_react46.useCallback)(
4279
4289
  ({ key }, index) => typeof key === "string" ? key : (key ?? index).toString(),
4280
4290
  []
4281
4291
  ),
4282
- renderItem: (0, import_react45.useCallback)((item) => item, [])
4292
+ renderItem: (0, import_react46.useCallback)((item) => item, [])
4283
4293
  }
4284
4294
  );
4285
4295
  });
4286
- var ChildrenListView = (0, import_react45.memo)(ChildrenListViewInner);
4287
- 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) {
4288
4298
  if ("children" in props) {
4289
- return /* @__PURE__ */ import_react45.default.createElement(ChildrenListView, { ref: forwardedRef, ...props });
4299
+ return /* @__PURE__ */ import_react46.default.createElement(ChildrenListView, { ref: forwardedRef, ...props });
4290
4300
  } else {
4291
- return /* @__PURE__ */ import_react45.default.createElement(ListViewRoot, { ref: forwardedRef, ...props });
4301
+ return /* @__PURE__ */ import_react46.default.createElement(ListViewRoot, { ref: forwardedRef, ...props });
4292
4302
  }
4293
4303
  });
4294
- var SimpleListView = (0, import_react45.memo)(SimpleListViewInner);
4304
+ var SimpleListView = (0, import_react46.memo)(SimpleListViewInner);
4295
4305
  var ListView;
4296
4306
  ((ListView2) => {
4297
- ListView2.RowTitle = (0, import_react45.memo)(ListViewRowTitle);
4298
- ListView2.EditableRowTitle = (0, import_react45.memo)(ListViewEditableRowTitle);
4299
- 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);
4300
4310
  ListView2.Root = SimpleListView;
4301
4311
  ListView2.RowContext = ListRowContext;
4302
4312
  ListView2.DragIndicator = ListViewDragIndicatorElement;
@@ -4309,7 +4319,7 @@ var ListView;
4309
4319
  })(ListView || (ListView = {}));
4310
4320
 
4311
4321
  // src/components/Text.tsx
4312
- var import_react46 = __toESM(require("react"));
4322
+ var import_react47 = __toESM(require("react"));
4313
4323
  var import_styled_components26 = __toESM(require("styled-components"));
4314
4324
  var elements = {
4315
4325
  title: "h1",
@@ -4330,7 +4340,7 @@ var StyledElement = import_styled_components26.default.span(({ theme, variant, s
4330
4340
  ...styleProps,
4331
4341
  ...mergeBreakpoints(breakpoints || [])
4332
4342
  }));
4333
- var Text = (0, import_react46.forwardRef)(function Text2({
4343
+ var Text = (0, import_react47.forwardRef)(function Text2({
4334
4344
  as,
4335
4345
  variant,
4336
4346
  breakpoints,
@@ -4342,7 +4352,7 @@ var Text = (0, import_react46.forwardRef)(function Text2({
4342
4352
  ...rest
4343
4353
  }, forwardedRef) {
4344
4354
  const element = as ?? elements[variant] ?? "span";
4345
- return /* @__PURE__ */ import_react46.default.createElement(
4355
+ return /* @__PURE__ */ import_react47.default.createElement(
4346
4356
  StyledElement,
4347
4357
  {
4348
4358
  ref: forwardedRef,
@@ -4358,28 +4368,28 @@ var Text = (0, import_react46.forwardRef)(function Text2({
4358
4368
  children
4359
4369
  );
4360
4370
  });
4361
- var Heading1 = (0, import_react46.forwardRef)(
4362
- (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" })
4363
4373
  );
4364
- var Heading2 = (0, import_react46.forwardRef)(
4365
- (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" })
4366
4376
  );
4367
- var Heading3 = (0, import_react46.forwardRef)(
4368
- (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" })
4369
4379
  );
4370
- var Heading4 = (0, import_react46.forwardRef)(
4371
- (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" })
4372
4382
  );
4373
- var Heading5 = (0, import_react46.forwardRef)(
4374
- (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" })
4375
4385
  );
4376
- var Body = (0, import_react46.forwardRef)(
4377
- (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" })
4378
4388
  );
4379
- var Small = (0, import_react46.forwardRef)(
4380
- (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" })
4381
4391
  );
4382
- var Italic = ({ children }) => /* @__PURE__ */ import_react46.default.createElement(
4392
+ var Italic = ({ children }) => /* @__PURE__ */ import_react47.default.createElement(
4383
4393
  "span",
4384
4394
  {
4385
4395
  style: {
@@ -4421,15 +4431,15 @@ var CompletionToken = import_styled_components27.default.span(
4421
4431
  whiteSpace: "pre"
4422
4432
  })
4423
4433
  );
4424
- var CompletionMenu = (0, import_react47.memo)(
4425
- (0, import_react47.forwardRef)(function CompletionMenu2({
4434
+ var CompletionMenu = (0, import_react48.memo)(
4435
+ (0, import_react48.forwardRef)(function CompletionMenu2({
4426
4436
  items,
4427
4437
  selectedIndex,
4428
4438
  onSelectItem,
4429
4439
  onHoverIndex,
4430
4440
  listSize
4431
4441
  }, forwardedRef) {
4432
- return /* @__PURE__ */ import_react47.default.createElement(
4442
+ return /* @__PURE__ */ import_react48.default.createElement(
4433
4443
  ListView.Root,
4434
4444
  {
4435
4445
  ref: forwardedRef,
@@ -4441,13 +4451,13 @@ var CompletionMenu = (0, import_react47.memo)(
4441
4451
  sectionHeaderVariant: "label",
4442
4452
  renderItem: (item, i) => {
4443
4453
  if (item.type === "sectionHeader") {
4444
- 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);
4445
4455
  }
4446
4456
  const tokens = fuzzyTokenize({
4447
4457
  item: item.name,
4448
4458
  itemScore: item
4449
4459
  });
4450
- return /* @__PURE__ */ import_react47.default.createElement(
4460
+ return /* @__PURE__ */ import_react48.default.createElement(
4451
4461
  ListView.Row,
4452
4462
  {
4453
4463
  key: item.id,
@@ -4459,16 +4469,16 @@ var CompletionMenu = (0, import_react47.memo)(
4459
4469
  }
4460
4470
  }
4461
4471
  },
4462
- tokens.map((token, j) => /* @__PURE__ */ import_react47.default.createElement(CompletionToken, { key: j, type: token.type }, token.text)),
4463
- 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)
4464
4474
  );
4465
4475
  }
4466
4476
  }
4467
4477
  );
4468
4478
  })
4469
4479
  );
4470
- var InputFieldWithCompletions = (0, import_react47.memo)(
4471
- (0, import_react47.forwardRef)(function InputFieldWithCompletions2({
4480
+ var InputFieldWithCompletions = (0, import_react48.memo)(
4481
+ (0, import_react48.forwardRef)(function InputFieldWithCompletions2({
4472
4482
  loading,
4473
4483
  initialValue = "",
4474
4484
  placeholder,
@@ -4486,13 +4496,13 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
4486
4496
  hideChildrenWhenFocused = false,
4487
4497
  hideMenuWhenEmptyValue = false
4488
4498
  }, forwardedRef) {
4489
- const ref = (0, import_react47.useRef)(null);
4490
- const [isFocused, setIsFocused] = (0, import_react47.useState)(false);
4491
- 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)({
4492
4502
  filter: initialValue,
4493
4503
  selectedIndex: 0
4494
4504
  });
4495
- const updateState = (0, import_react47.useCallback)(
4505
+ const updateState = (0, import_react48.useCallback)(
4496
4506
  (newState, hoverItem) => {
4497
4507
  const nextState = { ...state, ...newState };
4498
4508
  const nextItems = filterWithGroupedSections(items, nextState.filter);
@@ -4521,16 +4531,16 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
4521
4531
  },
4522
4532
  [items, onChange, onHoverItem, state]
4523
4533
  );
4524
- const initialValueRef = (0, import_react47.useRef)(initialValue);
4525
- (0, import_react47.useLayoutEffect)(() => {
4534
+ const initialValueRef = (0, import_react48.useRef)(initialValue);
4535
+ (0, import_react48.useLayoutEffect)(() => {
4526
4536
  if (initialValueRef.current === initialValue)
4527
4537
  return;
4528
4538
  initialValueRef.current = initialValue;
4529
4539
  updateState({ filter: initialValue });
4530
4540
  }, [initialValue, updateState]);
4531
4541
  const { filter, selectedIndex } = state;
4532
- const listRef = import_react47.default.useRef(null);
4533
- const filteredItems = (0, import_react47.useMemo)(
4542
+ const listRef = import_react48.default.useRef(null);
4543
+ const filteredItems = (0, import_react48.useMemo)(
4534
4544
  () => filterWithGroupedSections(items, filter),
4535
4545
  [items, filter]
4536
4546
  );
@@ -4546,13 +4556,13 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
4546
4556
  ),
4547
4557
  ListView.rowHeight * 10.5
4548
4558
  );
4549
- (0, import_react47.useEffect)(() => {
4559
+ (0, import_react48.useEffect)(() => {
4550
4560
  if (listRef.current) {
4551
4561
  listRef.current.scrollToIndex(selectedIndex);
4552
4562
  }
4553
4563
  }, [selectedIndex]);
4554
- const lastSubmittedValueRef = (0, import_react47.useRef)(void 0);
4555
- const selectItem = (0, import_react47.useCallback)(
4564
+ const lastSubmittedValueRef = (0, import_react48.useRef)(void 0);
4565
+ const selectItem = (0, import_react48.useCallback)(
4556
4566
  (item) => {
4557
4567
  if (item.type === "sectionHeader")
4558
4568
  return;
@@ -4568,17 +4578,17 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
4568
4578
  },
4569
4579
  [filter, onSelectItem, onHoverItem, ref]
4570
4580
  );
4571
- const handleChange = (0, import_react47.useCallback)(
4581
+ const handleChange = (0, import_react48.useCallback)(
4572
4582
  (value) => updateState({ selectedIndex: 0, filter: value }),
4573
4583
  [updateState]
4574
4584
  );
4575
- const handleBlur = (0, import_react47.useCallback)(() => {
4585
+ const handleBlur = (0, import_react48.useCallback)(() => {
4576
4586
  setIsFocused(false);
4577
4587
  const didSubmit = lastSubmittedValueRef.current?.filter === filter;
4578
4588
  updateState({ selectedIndex: 0, filter: initialValue }, "resetHover");
4579
4589
  onBlur?.(didSubmit, filter);
4580
4590
  }, [filter, initialValue, onBlur, updateState]);
4581
- const handleFocus = (0, import_react47.useCallback)(
4591
+ const handleFocus = (0, import_react48.useCallback)(
4582
4592
  (event) => {
4583
4593
  setIsFocused(true);
4584
4594
  updateState({ selectedIndex: 0, filter: initialValue });
@@ -4586,11 +4596,11 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
4586
4596
  },
4587
4597
  [initialValue, onFocus, updateState]
4588
4598
  );
4589
- const handleIndexChange = (0, import_react47.useCallback)(
4599
+ const handleIndexChange = (0, import_react48.useCallback)(
4590
4600
  (index) => updateState({ selectedIndex: index }),
4591
4601
  [updateState]
4592
4602
  );
4593
- const handleKeyDown = (0, import_react47.useCallback)(
4603
+ const handleKeyDown = (0, import_react48.useCallback)(
4594
4604
  (event) => {
4595
4605
  let handled = false;
4596
4606
  switch (event.key) {
@@ -4654,7 +4664,7 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
4654
4664
  );
4655
4665
  const display = !filter && hideMenuWhenEmptyValue ? "none" : "flex";
4656
4666
  const typeaheadValue = filteredItems[selectedIndex]?.name;
4657
- (0, import_react47.useImperativeHandle)(forwardedRef, () => ({
4667
+ (0, import_react48.useImperativeHandle)(forwardedRef, () => ({
4658
4668
  focus: () => {
4659
4669
  ref.current?.focus();
4660
4670
  },
@@ -4665,14 +4675,14 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
4665
4675
  ref.current?.setSelectionRange(0, ref.current.value.length);
4666
4676
  }
4667
4677
  }));
4668
- return /* @__PURE__ */ import_react47.default.createElement(
4678
+ return /* @__PURE__ */ import_react48.default.createElement(
4669
4679
  InputField.Root,
4670
4680
  {
4671
4681
  size: size2,
4672
4682
  labelSize: 16,
4673
4683
  renderPopoverContent: ({ width }) => {
4674
4684
  const listSize = { width, height };
4675
- 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(
4676
4686
  CompletionMenu,
4677
4687
  {
4678
4688
  ref: listRef,
@@ -4682,7 +4692,7 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
4682
4692
  onHoverIndex: handleIndexChange,
4683
4693
  listSize
4684
4694
  }
4685
- ) : /* @__PURE__ */ import_react47.default.createElement(
4695
+ ) : /* @__PURE__ */ import_react48.default.createElement(
4686
4696
  Stack.V,
4687
4697
  {
4688
4698
  height: "100px",
@@ -4690,11 +4700,11 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
4690
4700
  alignItems: "center",
4691
4701
  justifyContent: "center"
4692
4702
  },
4693
- /* @__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")
4694
4704
  ));
4695
4705
  }
4696
4706
  },
4697
- /* @__PURE__ */ import_react47.default.createElement(
4707
+ /* @__PURE__ */ import_react48.default.createElement(
4698
4708
  InputField.Input,
4699
4709
  {
4700
4710
  ref,
@@ -4718,9 +4728,9 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
4718
4728
  "aria-controls": "component-listbox"
4719
4729
  }
4720
4730
  ),
4721
- 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 }),
4722
4732
  (!isFocused || !hideChildrenWhenFocused) && children,
4723
- 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))
4724
4734
  );
4725
4735
  })
4726
4736
  );
@@ -4742,7 +4752,7 @@ function getNextIndex(items, currentIndex, direction, isDisabled) {
4742
4752
  }
4743
4753
 
4744
4754
  // src/components/Label.tsx
4745
- var import_react48 = __toESM(require("react"));
4755
+ var import_react49 = __toESM(require("react"));
4746
4756
  var import_styled_components28 = __toESM(require("styled-components"));
4747
4757
  var LabelLabel = import_styled_components28.default.label(
4748
4758
  ({ theme, selected }) => ({
@@ -4771,17 +4781,17 @@ var LabelContainer2 = import_styled_components28.default.span(({ theme }) => ({
4771
4781
  alignItems: "center"
4772
4782
  }));
4773
4783
  function LabelRoot({ label, children }) {
4774
- 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)));
4775
4785
  }
4776
4786
  var Label;
4777
4787
  ((_Label) => {
4778
- _Label.Label = (0, import_react48.memo)(LabelLabel);
4779
- _Label.Root = (0, import_react48.memo)(LabelRoot);
4788
+ _Label.Label = (0, import_react49.memo)(LabelLabel);
4789
+ _Label.Root = (0, import_react49.memo)(LabelRoot);
4780
4790
  })(Label || (Label = {}));
4781
4791
 
4782
4792
  // src/components/LabeledElementView.tsx
4783
4793
  var kiwi = __toESM(require("kiwi.js"));
4784
- var import_react49 = __toESM(require("react"));
4794
+ var import_react50 = __toESM(require("react"));
4785
4795
  var import_styled_components29 = __toESM(require("styled-components"));
4786
4796
  var Container4 = import_styled_components29.default.div(({ theme }) => ({
4787
4797
  display: "flex",
@@ -4800,24 +4810,24 @@ var Labels = import_styled_components29.default.div(({ theme }) => ({
4800
4810
  overflow: "hidden",
4801
4811
  userSelect: "none"
4802
4812
  }));
4803
- var LabeledElementView = (0, import_react49.memo)(function LabeledElementView2({
4813
+ var LabeledElementView = (0, import_react50.memo)(function LabeledElementView2({
4804
4814
  children,
4805
4815
  renderLabel
4806
4816
  }) {
4807
- const elementIds = import_react49.Children.toArray(children).flatMap(
4808
- (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]
4809
4819
  ).map(
4810
- (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
4811
4821
  ).filter((id) => !!id);
4812
4822
  const serializedIds = elementIds.join(",");
4813
- const containerRef = (0, import_react49.useRef)(null);
4814
- const refs = (0, import_react49.useMemo)(() => {
4823
+ const containerRef = (0, import_react50.useRef)(null);
4824
+ const refs = (0, import_react50.useMemo)(() => {
4815
4825
  return Object.fromEntries(
4816
- serializedIds.split(",").map((id) => [id, (0, import_react49.createRef)()])
4826
+ serializedIds.split(",").map((id) => [id, (0, import_react50.createRef)()])
4817
4827
  );
4818
4828
  }, [serializedIds]);
4819
- const labelElements = (0, import_react49.useMemo)(() => {
4820
- 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(
4821
4831
  "span",
4822
4832
  {
4823
4833
  key: id,
@@ -4830,7 +4840,7 @@ var LabeledElementView = (0, import_react49.memo)(function LabeledElementView2({
4830
4840
  })
4831
4841
  ));
4832
4842
  }, [refs, serializedIds, renderLabel]);
4833
- (0, import_react49.useLayoutEffect)(() => {
4843
+ (0, import_react50.useLayoutEffect)(() => {
4834
4844
  if (!containerRef.current)
4835
4845
  return;
4836
4846
  const containerRect = containerRef.current.getBoundingClientRect();
@@ -4895,13 +4905,13 @@ var LabeledElementView = (0, import_react49.memo)(function LabeledElementView2({
4895
4905
  `${Math.max(...heights)}px`
4896
4906
  );
4897
4907
  }, [refs, labelElements]);
4898
- 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));
4899
4909
  });
4900
4910
 
4901
4911
  // src/components/Progress.tsx
4902
4912
  var import_noya_utils9 = require("@noya-app/noya-utils");
4903
4913
  var ProgressPrimitive = __toESM(require("@radix-ui/react-progress"));
4904
- var import_react50 = __toESM(require("react"));
4914
+ var import_react51 = __toESM(require("react"));
4905
4915
  var import_styled_components30 = __toESM(require("styled-components"));
4906
4916
  function Progress({
4907
4917
  value,
@@ -4911,7 +4921,7 @@ function Progress({
4911
4921
  variant = "normal"
4912
4922
  }) {
4913
4923
  const clampedValue = (0, import_noya_utils9.clamp)(value, 0, 100);
4914
- 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(
4915
4925
  ProgressIndicator,
4916
4926
  {
4917
4927
  variant,
@@ -4936,7 +4946,7 @@ var ProgressIndicator = (0, import_styled_components30.default)(ProgressPrimitiv
4936
4946
 
4937
4947
  // src/components/RadioGroup.tsx
4938
4948
  var ToggleGroupPrimitive = __toESM(require("@radix-ui/react-toggle-group"));
4939
- var import_react51 = __toESM(require("react"));
4949
+ var import_react52 = __toESM(require("react"));
4940
4950
  var import_styled_components31 = __toESM(require("styled-components"));
4941
4951
  var ignoredProps3 = /* @__PURE__ */ new Set(["colorScheme"]);
4942
4952
  var StyledRoot = (0, import_styled_components31.default)(ToggleGroupPrimitive.Root).withConfig({
@@ -4989,9 +4999,9 @@ var StyledItem = (0, import_styled_components31.default)(ToggleGroupPrimitive.It
4989
4999
  boxShadow: `0 0 0 1px ${theme.colors.sidebar.background}, 0 0 0 3px ${theme.colors[colorScheme ?? "primary"]}`
4990
5000
  }
4991
5001
  }));
4992
- var ToggleGroupItem = (0, import_react51.forwardRef)(function ToggleGroupItem2({ value, tooltip, children, disabled = false }, forwardedRef) {
4993
- const { colorScheme } = (0, import_react51.useContext)(RadioGroupContext);
4994
- 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(
4995
5005
  StyledItem,
4996
5006
  {
4997
5007
  ref: forwardedRef,
@@ -5001,9 +5011,9 @@ var ToggleGroupItem = (0, import_react51.forwardRef)(function ToggleGroupItem2({
5001
5011
  },
5002
5012
  children
5003
5013
  );
5004
- 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;
5005
5015
  });
5006
- var RadioGroupContext = (0, import_react51.createContext)({
5016
+ var RadioGroupContext = (0, import_react52.createContext)({
5007
5017
  colorScheme: "primary"
5008
5018
  });
5009
5019
  function ToggleGroupRoot({
@@ -5014,8 +5024,8 @@ function ToggleGroupRoot({
5014
5024
  allowEmpty,
5015
5025
  children
5016
5026
  }) {
5017
- const contextValue = (0, import_react51.useMemo)(() => ({ colorScheme }), [colorScheme]);
5018
- const handleValueChange = (0, import_react51.useCallback)(
5027
+ const contextValue = (0, import_react52.useMemo)(() => ({ colorScheme }), [colorScheme]);
5028
+ const handleValueChange = (0, import_react52.useCallback)(
5019
5029
  (value2) => {
5020
5030
  if (!allowEmpty && !value2)
5021
5031
  return;
@@ -5023,7 +5033,7 @@ function ToggleGroupRoot({
5023
5033
  },
5024
5034
  [allowEmpty, onValueChange]
5025
5035
  );
5026
- 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(
5027
5037
  StyledRoot,
5028
5038
  {
5029
5039
  id,
@@ -5037,28 +5047,28 @@ function ToggleGroupRoot({
5037
5047
  }
5038
5048
  var RadioGroup;
5039
5049
  ((RadioGroup2) => {
5040
- RadioGroup2.Root = (0, import_react51.memo)(ToggleGroupRoot);
5041
- RadioGroup2.Item = (0, import_react51.memo)(ToggleGroupItem);
5050
+ RadioGroup2.Root = (0, import_react52.memo)(ToggleGroupRoot);
5051
+ RadioGroup2.Item = (0, import_react52.memo)(ToggleGroupItem);
5042
5052
  })(RadioGroup || (RadioGroup = {}));
5043
5053
 
5044
5054
  // src/components/Select.tsx
5045
5055
  var import_noya_utils10 = require("@noya-app/noya-utils");
5046
- var import_react52 = __toESM(require("react"));
5056
+ var import_react53 = __toESM(require("react"));
5047
5057
  var import_styled_components32 = __toESM(require("styled-components"));
5048
- var SelectContext = (0, import_react52.createContext)(void 0);
5049
- 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({
5050
5060
  value,
5051
5061
  title,
5052
5062
  onSelect
5053
5063
  }) {
5054
- const { addListener, removeListener } = (0, import_react52.useContext)(SelectContext);
5055
- (0, import_react52.useEffect)(() => {
5064
+ const { addListener, removeListener } = (0, import_react53.useContext)(SelectContext);
5065
+ (0, import_react53.useEffect)(() => {
5056
5066
  if (!onSelect)
5057
5067
  return;
5058
5068
  addListener(value, onSelect);
5059
5069
  return () => removeListener(value);
5060
5070
  }, [addListener, onSelect, removeListener, value]);
5061
- return /* @__PURE__ */ import_react52.default.createElement("option", { value }, title ?? value);
5071
+ return /* @__PURE__ */ import_react53.default.createElement("option", { value }, title ?? value);
5062
5072
  });
5063
5073
  var createChevronSVGString = (0, import_noya_utils10.memoize)(
5064
5074
  (color) => `
@@ -5098,7 +5108,7 @@ var SelectElement = import_styled_components32.default.select(
5098
5108
  }
5099
5109
  })
5100
5110
  );
5101
- var Select = (0, import_react52.memo)(function Select2({
5111
+ var Select = (0, import_react53.memo)(function Select2({
5102
5112
  id,
5103
5113
  flex,
5104
5114
  value,
@@ -5108,8 +5118,8 @@ var Select = (0, import_react52.memo)(function Select2({
5108
5118
  const getTitle = "options" in rest ? rest.getTitle : void 0;
5109
5119
  const onChange = "options" in rest ? rest.onChange : void 0;
5110
5120
  const children = "options" in rest ? void 0 : rest.children;
5111
- const optionElements = (0, import_react52.useMemo)(
5112
- () => 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(
5113
5123
  SelectOption,
5114
5124
  {
5115
5125
  key: option,
@@ -5120,21 +5130,21 @@ var Select = (0, import_react52.memo)(function Select2({
5120
5130
  )) : children,
5121
5131
  [children, getTitle, onChange, options]
5122
5132
  );
5123
- const listeners = (0, import_react52.useRef)(/* @__PURE__ */ new Map());
5124
- const contextValue = (0, import_react52.useMemo)(
5133
+ const listeners = (0, import_react53.useRef)(/* @__PURE__ */ new Map());
5134
+ const contextValue = (0, import_react53.useMemo)(
5125
5135
  () => ({
5126
5136
  addListener: (value2, listener) => listeners.current.set(value2, listener),
5127
5137
  removeListener: (value2) => listeners.current.delete(value2)
5128
5138
  }),
5129
5139
  []
5130
5140
  );
5131
- 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(
5132
5142
  SelectElement,
5133
5143
  {
5134
5144
  id,
5135
5145
  flex,
5136
5146
  value,
5137
- onChange: (0, import_react52.useCallback)(
5147
+ onChange: (0, import_react53.useCallback)(
5138
5148
  (event) => listeners.current.get(event.target.value)?.(),
5139
5149
  [listeners]
5140
5150
  ),
@@ -5146,7 +5156,7 @@ var Select = (0, import_react52.memo)(function Select2({
5146
5156
 
5147
5157
  // src/components/Slider.tsx
5148
5158
  var RadixSlider = __toESM(require("@radix-ui/react-slider"));
5149
- var import_react53 = __toESM(require("react"));
5159
+ var import_react54 = __toESM(require("react"));
5150
5160
  var import_styled_components33 = __toESM(require("styled-components"));
5151
5161
  var StyledSlider = (0, import_styled_components33.default)(RadixSlider.Root)({
5152
5162
  flex: "1",
@@ -5187,17 +5197,17 @@ var Slider = function Slider2({
5187
5197
  min,
5188
5198
  max
5189
5199
  }) {
5190
- const arrayValue = (0, import_react53.useMemo)(
5200
+ const arrayValue = (0, import_react54.useMemo)(
5191
5201
  () => [Math.min(Math.max(value, min), max)],
5192
5202
  [value, min, max]
5193
5203
  );
5194
- const handleValueChange = (0, import_react53.useCallback)(
5204
+ const handleValueChange = (0, import_react54.useCallback)(
5195
5205
  (arrayValue2) => {
5196
5206
  onValueChange(arrayValue2[0]);
5197
5207
  },
5198
5208
  [onValueChange]
5199
5209
  );
5200
- return /* @__PURE__ */ import_react53.default.createElement(
5210
+ return /* @__PURE__ */ import_react54.default.createElement(
5201
5211
  StyledSlider,
5202
5212
  {
5203
5213
  min,
@@ -5206,14 +5216,14 @@ var Slider = function Slider2({
5206
5216
  value: arrayValue,
5207
5217
  onValueChange: handleValueChange
5208
5218
  },
5209
- /* @__PURE__ */ import_react53.default.createElement(StyledTrack, null, /* @__PURE__ */ import_react53.default.createElement(StyledRange, null)),
5210
- /* @__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)
5211
5221
  );
5212
5222
  };
5213
5223
 
5214
5224
  // src/components/Switch.tsx
5215
5225
  var SwitchPrimitive = __toESM(require("@radix-ui/react-switch"));
5216
- var import_react54 = __toESM(require("react"));
5226
+ var import_react55 = __toESM(require("react"));
5217
5227
  var import_styled_components34 = __toESM(require("styled-components"));
5218
5228
  var SwitchRoot = (0, import_styled_components34.default)(SwitchPrimitive.Root)(({ theme, colorScheme: variant }) => ({
5219
5229
  all: "unset",
@@ -5249,7 +5259,7 @@ var Switch = function Switch2({
5249
5259
  onChange,
5250
5260
  colorScheme = "normal"
5251
5261
  }) {
5252
- return /* @__PURE__ */ import_react54.default.createElement(
5262
+ return /* @__PURE__ */ import_react55.default.createElement(
5253
5263
  SwitchRoot,
5254
5264
  {
5255
5265
  colorScheme,
@@ -5258,42 +5268,42 @@ var Switch = function Switch2({
5258
5268
  onChange(newValue);
5259
5269
  }
5260
5270
  },
5261
- /* @__PURE__ */ import_react54.default.createElement(SwitchThumb, null)
5271
+ /* @__PURE__ */ import_react55.default.createElement(SwitchThumb, null)
5262
5272
  );
5263
5273
  };
5264
5274
 
5265
5275
  // src/components/TreeView.tsx
5266
- var import_react55 = __toESM(require("react"));
5267
- var TreeRow = (0, import_react55.forwardRef)(function TreeRow2({
5276
+ var import_react56 = __toESM(require("react"));
5277
+ var TreeRow = (0, import_react56.forwardRef)(function TreeRow2({
5268
5278
  icon,
5269
5279
  expanded,
5270
5280
  onClickChevron,
5271
5281
  children,
5272
5282
  ...rest
5273
5283
  }, forwardedRef) {
5274
- const { expandable } = (0, import_react55.useContext)(ListView.RowContext);
5275
- const handleClickChevron = (0, import_react55.useCallback)(
5284
+ const { expandable } = (0, import_react56.useContext)(ListView.RowContext);
5285
+ const handleClickChevron = (0, import_react56.useCallback)(
5276
5286
  (event) => {
5277
5287
  event.stopPropagation();
5278
5288
  onClickChevron?.({ altKey: event.altKey });
5279
5289
  },
5280
5290
  [onClickChevron]
5281
5291
  );
5282
- 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(
5283
5293
  IconButton,
5284
5294
  {
5285
5295
  iconName: expanded ? "ChevronDownIcon" : "ChevronRightIcon",
5286
5296
  onClick: handleClickChevron,
5287
5297
  selected: rest.selected
5288
5298
  }
5289
- ), /* @__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);
5290
5300
  });
5291
5301
  var TreeView;
5292
5302
  ((TreeView2) => {
5293
5303
  TreeView2.Root = ListView.Root;
5294
5304
  TreeView2.RowTitle = ListView.RowTitle;
5295
5305
  TreeView2.EditableRowTitle = ListView.EditableRowTitle;
5296
- TreeView2.Row = (0, import_react55.memo)(TreeRow);
5306
+ TreeView2.Row = (0, import_react56.memo)(TreeRow);
5297
5307
  })(TreeView || (TreeView = {}));
5298
5308
 
5299
5309
  // src/hooks/usePlatform.ts
@@ -5601,7 +5611,7 @@ var SUPPORTED_CANVAS_UPLOAD_TYPES = [
5601
5611
 
5602
5612
  // src/components/ArrayController.tsx
5603
5613
  var import_noya_utils11 = require("@noya-app/noya-utils");
5604
- var import_react57 = __toESM(require("react"));
5614
+ var import_react58 = __toESM(require("react"));
5605
5615
  var import_styled_components36 = __toESM(require("styled-components"));
5606
5616
 
5607
5617
  // src/components/InspectorPrimitives.tsx
@@ -5620,7 +5630,7 @@ __export(InspectorPrimitives_exports, {
5620
5630
  Title: () => Title3,
5621
5631
  VerticalSeparator: () => VerticalSeparator
5622
5632
  });
5623
- var import_react56 = __toESM(require("react"));
5633
+ var import_react57 = __toESM(require("react"));
5624
5634
  var import_styled_components35 = __toESM(require("styled-components"));
5625
5635
  var Section = import_styled_components35.default.div(({ theme, padding = "10px", gap }) => ({
5626
5636
  flex: "0 0 auto",
@@ -5667,8 +5677,8 @@ var Checkbox = import_styled_components35.default.input(({ theme }) => ({
5667
5677
  var Text3 = import_styled_components35.default.span(({ theme }) => ({
5668
5678
  ...theme.textStyles.small
5669
5679
  }));
5670
- var VerticalSeparator = () => /* @__PURE__ */ import_react56.default.createElement(Spacer.Vertical, { size: (0, import_styled_components35.useTheme)().sizes.inspector.verticalSeparator });
5671
- 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 });
5672
5682
  var SliderRowLabel = import_styled_components35.default.span(({ theme }) => ({
5673
5683
  ...theme.textStyles.small,
5674
5684
  color: theme.colors.textMuted,
@@ -5684,10 +5694,11 @@ var RowLabel = import_styled_components35.default.span(({ theme, textStyle }) =>
5684
5694
  color: theme.colors.textSubtle,
5685
5695
  fontWeight: "bold"
5686
5696
  },
5687
- lineHeight: "19px"
5697
+ lineHeight: "19px",
5688
5698
  // Button height
5699
+ alignItems: "center"
5689
5700
  }));
5690
- var LabeledRow = (0, import_react56.memo)(function LabeledRow2({
5701
+ var LabeledRow = (0, import_react57.memo)(function LabeledRow2({
5691
5702
  id,
5692
5703
  children,
5693
5704
  label,
@@ -5695,13 +5706,13 @@ var LabeledRow = (0, import_react56.memo)(function LabeledRow2({
5695
5706
  gap,
5696
5707
  right
5697
5708
  }) {
5698
- 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)));
5699
5710
  });
5700
- var LabeledSliderRow = (0, import_react56.memo)(function LabeledRow3({
5711
+ var LabeledSliderRow = (0, import_react57.memo)(function LabeledRow3({
5701
5712
  children,
5702
5713
  label
5703
5714
  }) {
5704
- 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)));
5705
5716
  });
5706
5717
 
5707
5718
  // src/components/ArrayController.tsx
@@ -5714,7 +5725,7 @@ var ElementRow = import_styled_components36.default.div({
5714
5725
  var ItemContainer2 = import_styled_components36.default.div({
5715
5726
  position: "relative"
5716
5727
  });
5717
- var ArrayController = (0, import_react57.memo)(function ArrayController2({
5728
+ var ArrayController = (0, import_react58.memo)(function ArrayController2({
5718
5729
  id,
5719
5730
  items,
5720
5731
  title,
@@ -5732,12 +5743,12 @@ var ArrayController = (0, import_react57.memo)(function ArrayController2({
5732
5743
  }) {
5733
5744
  const iconColor = (0, import_styled_components36.useTheme)().colors.icon;
5734
5745
  const primaryLightColor = (0, import_styled_components36.useTheme)().colors.primaryLight;
5735
- const keys = (0, import_react57.useMemo)(
5746
+ const keys = (0, import_react58.useMemo)(
5736
5747
  () => items.map((item, index) => getKey?.(item) ?? index.toString()),
5737
5748
  [getKey, items]
5738
5749
  );
5739
5750
  const indexes = reversed ? (0, import_noya_utils11.range)(0, items.length).reverse() : (0, import_noya_utils11.range)(0, items.length);
5740
- const handleMoveItem = (0, import_react57.useCallback)(
5751
+ const handleMoveItem = (0, import_react58.useCallback)(
5741
5752
  (sourceIndex, destinationIndex, position) => {
5742
5753
  if (reversed) {
5743
5754
  if (position === "above") {
@@ -5754,11 +5765,11 @@ var ArrayController = (0, import_react57.memo)(function ArrayController2({
5754
5765
  [onMoveItem, reversed]
5755
5766
  );
5756
5767
  const renderRow = (index) => {
5757
- 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 }));
5758
5769
  };
5759
- 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(
5760
5771
  [
5761
- onClickTrash && /* @__PURE__ */ import_react57.default.createElement(
5772
+ onClickTrash && /* @__PURE__ */ import_react58.default.createElement(
5762
5773
  IconButton,
5763
5774
  {
5764
5775
  id: `${id}-trash`,
@@ -5767,7 +5778,7 @@ var ArrayController = (0, import_react57.memo)(function ArrayController2({
5767
5778
  onClick: onClickTrash
5768
5779
  }
5769
5780
  ),
5770
- onClickExpand && /* @__PURE__ */ import_react57.default.createElement(
5781
+ onClickExpand && /* @__PURE__ */ import_react58.default.createElement(
5771
5782
  IconButton,
5772
5783
  {
5773
5784
  id: `${id}-gear`,
@@ -5776,7 +5787,7 @@ var ArrayController = (0, import_react57.memo)(function ArrayController2({
5776
5787
  onClick: onClickExpand
5777
5788
  }
5778
5789
  ),
5779
- onClickPlus && /* @__PURE__ */ import_react57.default.createElement(
5790
+ onClickPlus && /* @__PURE__ */ import_react58.default.createElement(
5780
5791
  IconButton,
5781
5792
  {
5782
5793
  id: `${id}-add`,
@@ -5786,15 +5797,15 @@ var ArrayController = (0, import_react57.memo)(function ArrayController2({
5786
5797
  }
5787
5798
  )
5788
5799
  ],
5789
- /* @__PURE__ */ import_react57.default.createElement(Spacer.Horizontal, { size: 8 })
5790
- )), /* @__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(
5791
5802
  Sortable.Root,
5792
5803
  {
5793
5804
  keys,
5794
5805
  renderOverlay: renderRow,
5795
5806
  onMoveItem: handleMoveItem
5796
5807
  },
5797
- 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(
5798
5809
  ListView.DragIndicator,
5799
5810
  {
5800
5811
  gap: 0,
@@ -5808,11 +5819,11 @@ var ArrayController = (0, import_react57.memo)(function ArrayController2({
5808
5819
 
5809
5820
  // src/components/DimensionInput.tsx
5810
5821
  var import_noya_utils12 = require("@noya-app/noya-utils");
5811
- var import_react58 = __toESM(require("react"));
5822
+ var import_react59 = __toESM(require("react"));
5812
5823
  function getNewValue(value, mode, delta) {
5813
5824
  return delta === void 0 ? value : mode === "replace" ? delta : value + delta;
5814
5825
  }
5815
- var DimensionInput = (0, import_react58.memo)(function DimensionInput2({
5826
+ var DimensionInput = (0, import_react59.memo)(function DimensionInput2({
5816
5827
  id,
5817
5828
  value,
5818
5829
  onSetValue,
@@ -5822,15 +5833,15 @@ var DimensionInput = (0, import_react58.memo)(function DimensionInput2({
5822
5833
  disabled,
5823
5834
  trigger = "submit"
5824
5835
  }) {
5825
- const handleNudgeValue = (0, import_react58.useCallback)(
5836
+ const handleNudgeValue = (0, import_react59.useCallback)(
5826
5837
  (value2) => onSetValue(value2, "adjust"),
5827
5838
  [onSetValue]
5828
5839
  );
5829
- const handleSetValue = (0, import_react58.useCallback)(
5840
+ const handleSetValue = (0, import_react59.useCallback)(
5830
5841
  (value2) => onSetValue(value2, "replace"),
5831
5842
  [onSetValue]
5832
5843
  );
5833
- 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(
5834
5845
  InputField.NumberInput,
5835
5846
  {
5836
5847
  value: value === void 0 ? value : (0, import_noya_utils12.round)(value, 2),
@@ -5839,7 +5850,7 @@ var DimensionInput = (0, import_react58.memo)(function DimensionInput2({
5839
5850
  disabled,
5840
5851
  ...trigger === "change" ? { onChange: handleSetValue } : { onSubmit: handleSetValue }
5841
5852
  }
5842
- ), label && /* @__PURE__ */ import_react58.default.createElement(InputField.Label, null, label));
5853
+ ), label && /* @__PURE__ */ import_react59.default.createElement(InputField.Label, null, label));
5843
5854
  });
5844
5855
  // Annotate the CommonJS export names for ESM import in node:
5845
5856
  0 && (module.exports = {