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