@noya-app/noya-designsystem 0.1.22 → 0.1.24
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 +9 -9
- package/CHANGELOG.md +12 -0
- package/dist/index.d.mts +13 -4
- package/dist/index.d.ts +13 -4
- package/dist/index.js +632 -602
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +295 -265
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/components/Button.tsx +2 -2
- package/src/components/ContextMenu.tsx +2 -1
- package/src/components/DropdownMenu.tsx +3 -2
- package/src/components/IconButton.tsx +2 -2
- package/src/components/Icons.tsx +18 -0
- package/src/components/InputField.tsx +11 -1
- package/src/components/ListView.tsx +18 -1
- package/src/components/Select.tsx +1 -1
- package/src/components/SelectMenu.tsx +3 -2
- package/src/components/TreeView.tsx +3 -2
- package/src/components/internal/Menu.tsx +2 -1
package/dist/index.js
CHANGED
|
@@ -386,9 +386,9 @@ var ButtonElement = import_styled_components5.default.button(
|
|
|
386
386
|
textAlign: "left",
|
|
387
387
|
borderRadius: "4px",
|
|
388
388
|
paddingTop: $variant === "none" ? "0px" : "4px",
|
|
389
|
-
paddingRight: $variant === "none" ? "0px" : $variant === "thin" ? "1px" : "
|
|
389
|
+
paddingRight: $variant === "none" ? "0px" : $variant === "thin" ? "1px" : "6px",
|
|
390
390
|
paddingBottom: $variant === "none" ? "0px" : "4px",
|
|
391
|
-
paddingLeft: $variant === "none" ? "0px" : $variant === "thin" ? "1px" : "
|
|
391
|
+
paddingLeft: $variant === "none" ? "0px" : $variant === "thin" ? "1px" : "6px",
|
|
392
392
|
...$size === "large" && {
|
|
393
393
|
paddingTop: "12px",
|
|
394
394
|
paddingRight: "16px",
|
|
@@ -518,35 +518,47 @@ var Button = (0, import_react6.forwardRef)(function Button2({
|
|
|
518
518
|
|
|
519
519
|
// src/components/Chip.tsx
|
|
520
520
|
var import_noya_icons3 = require("@noya-app/noya-icons");
|
|
521
|
-
var
|
|
521
|
+
var import_react37 = __toESM(require("react"));
|
|
522
522
|
var import_styled_components16 = __toESM(require("styled-components"));
|
|
523
523
|
|
|
524
524
|
// src/contexts/DesignSystemConfiguration.tsx
|
|
525
525
|
var import_noya_keymap3 = require("@noya-app/noya-keymap");
|
|
526
|
-
var
|
|
526
|
+
var import_react36 = __toESM(require("react"));
|
|
527
527
|
var import_styled_components15 = require("styled-components");
|
|
528
528
|
|
|
529
529
|
// src/components/Toast.tsx
|
|
530
530
|
var ToastPrimitive = __toESM(require("@radix-ui/react-toast"));
|
|
531
|
-
var
|
|
531
|
+
var import_react9 = __toESM(require("react"));
|
|
532
532
|
var import_styled_components7 = __toESM(require("styled-components"));
|
|
533
533
|
|
|
534
534
|
// src/components/IconButton.tsx
|
|
535
|
+
var import_react8 = __toESM(require("react"));
|
|
536
|
+
var import_styled_components6 = require("styled-components");
|
|
537
|
+
|
|
538
|
+
// src/components/Icons.tsx
|
|
535
539
|
var Icons = __toESM(require("@noya-app/noya-icons"));
|
|
536
540
|
var import_react7 = __toESM(require("react"));
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
541
|
+
function renderIcon(iconName) {
|
|
542
|
+
if (typeof iconName === "string") {
|
|
543
|
+
const Icon = Icons[iconName];
|
|
544
|
+
return /* @__PURE__ */ import_react7.default.createElement(Icon, null);
|
|
545
|
+
}
|
|
546
|
+
return iconName;
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
// src/components/IconButton.tsx
|
|
550
|
+
var IconButton = (0, import_react8.memo)(
|
|
551
|
+
(0, import_react8.forwardRef)(function IconButton2({ selected, iconName, color, size: size2, contentStyle, ...props }, forwardedRef) {
|
|
540
552
|
const { icon: iconColor, iconSelected: iconSelectedColor } = (0, import_styled_components6.useTheme)().colors;
|
|
541
553
|
const Icon = Icons[iconName];
|
|
542
|
-
const style3 = (0,
|
|
554
|
+
const style3 = (0, import_react8.useMemo)(() => {
|
|
543
555
|
return {
|
|
544
556
|
padding: "0 2px",
|
|
545
557
|
...size2 && { minHeight: size2 },
|
|
546
558
|
...contentStyle
|
|
547
559
|
};
|
|
548
560
|
}, [contentStyle, size2]);
|
|
549
|
-
return /* @__PURE__ */
|
|
561
|
+
return /* @__PURE__ */ import_react8.default.createElement(Button, { ref: forwardedRef, ...props, variant: "none", contentStyle: style3 }, /* @__PURE__ */ import_react8.default.createElement(
|
|
550
562
|
Icon,
|
|
551
563
|
{
|
|
552
564
|
color: color ?? (selected ? iconSelectedColor : iconColor),
|
|
@@ -606,9 +618,9 @@ var Toast = ({
|
|
|
606
618
|
children,
|
|
607
619
|
...props
|
|
608
620
|
}) => {
|
|
609
|
-
return /* @__PURE__ */
|
|
621
|
+
return /* @__PURE__ */ import_react9.default.createElement(ToastRoot, { ...props }, title && /* @__PURE__ */ import_react9.default.createElement(ToastTitle, null, title), /* @__PURE__ */ import_react9.default.createElement(ToastDescription, null, content), children && /* @__PURE__ */ import_react9.default.createElement(ToastAction, { asChild: true, altText: "" }, children), /* @__PURE__ */ import_react9.default.createElement(ToastPrimitive.Close, { "aria-label": "Close", asChild: true }, /* @__PURE__ */ import_react9.default.createElement(IconButton, { iconName: "Cross1Icon" })));
|
|
610
622
|
};
|
|
611
|
-
var ToastProvider = ({ children }) => /* @__PURE__ */
|
|
623
|
+
var ToastProvider = ({ children }) => /* @__PURE__ */ import_react9.default.createElement(ToastPrimitive.Provider, null, children, /* @__PURE__ */ import_react9.default.createElement(ToastViewport, null));
|
|
612
624
|
|
|
613
625
|
// src/theme/dark.ts
|
|
614
626
|
var dark_exports = {};
|
|
@@ -891,33 +903,33 @@ var colors2 = (0, import_immer.default)(colors, (colors3) => {
|
|
|
891
903
|
});
|
|
892
904
|
|
|
893
905
|
// src/contexts/DialogContext.tsx
|
|
894
|
-
var
|
|
906
|
+
var import_react34 = __toESM(require("react"));
|
|
895
907
|
var import_styled_components14 = __toESM(require("styled-components"));
|
|
896
908
|
|
|
897
909
|
// src/components/Dialog.tsx
|
|
898
910
|
var DialogPrimitive = __toESM(require("@radix-ui/react-dialog"));
|
|
899
|
-
var
|
|
911
|
+
var import_react11 = __toESM(require("react"));
|
|
900
912
|
var import_styled_components9 = __toESM(require("styled-components"));
|
|
901
913
|
|
|
902
914
|
// src/components/Spacer.tsx
|
|
903
|
-
var
|
|
915
|
+
var import_react10 = __toESM(require("react"));
|
|
904
916
|
var import_styled_components8 = __toESM(require("styled-components"));
|
|
905
917
|
var SpacerVertical_ = import_styled_components8.default.span(({ $size, $inline }) => ({
|
|
906
918
|
display: $inline ? "inline-block" : "block",
|
|
907
919
|
...$size === void 0 ? { flex: 1 } : { minHeight: $size }
|
|
908
920
|
}));
|
|
909
|
-
var SpacerVertical = (0,
|
|
921
|
+
var SpacerVertical = (0, import_react10.forwardRef)(
|
|
910
922
|
({ size: size2, inline, ...props }, ref) => {
|
|
911
|
-
return /* @__PURE__ */
|
|
923
|
+
return /* @__PURE__ */ import_react10.default.createElement(SpacerVertical_, { $size: size2, $inline: inline, ...props, ref });
|
|
912
924
|
}
|
|
913
925
|
);
|
|
914
926
|
var SpacerHorizontal_ = import_styled_components8.default.span(({ $size, $inline }) => ({
|
|
915
927
|
display: $inline ? "inline-block" : "block",
|
|
916
928
|
...$size === void 0 ? { flex: 1 } : { minWidth: $size }
|
|
917
929
|
}));
|
|
918
|
-
var SpacerHorizontal = (0,
|
|
930
|
+
var SpacerHorizontal = (0, import_react10.forwardRef)(
|
|
919
931
|
({ size: size2, inline, ...props }, ref) => {
|
|
920
|
-
return /* @__PURE__ */
|
|
932
|
+
return /* @__PURE__ */ import_react10.default.createElement(SpacerHorizontal_, { $size: size2, $inline: inline, ...props, ref });
|
|
921
933
|
}
|
|
922
934
|
);
|
|
923
935
|
var Spacer;
|
|
@@ -972,7 +984,7 @@ var CloseButtonContainer = import_styled_components9.default.div(({ theme }) =>
|
|
|
972
984
|
// boxShadow: `0 0 2px rgba(0, 0, 0, 0.2)`,
|
|
973
985
|
border: `1px solid rgba(128,128,128,0.2)`
|
|
974
986
|
}));
|
|
975
|
-
var Dialog = (0,
|
|
987
|
+
var Dialog = (0, import_react11.forwardRef)(function Dialog2({
|
|
976
988
|
children,
|
|
977
989
|
title,
|
|
978
990
|
description,
|
|
@@ -982,15 +994,15 @@ var Dialog = (0, import_react10.forwardRef)(function Dialog2({
|
|
|
982
994
|
onOpenAutoFocus,
|
|
983
995
|
closeOnInteractOutside = true
|
|
984
996
|
}, forwardedRef) {
|
|
985
|
-
const contentRef = (0,
|
|
986
|
-
(0,
|
|
997
|
+
const contentRef = (0, import_react11.useRef)(null);
|
|
998
|
+
(0, import_react11.useImperativeHandle)(forwardedRef, () => ({
|
|
987
999
|
containsElement(element) {
|
|
988
1000
|
if (!contentRef.current)
|
|
989
1001
|
return false;
|
|
990
1002
|
return contentRef.current.contains(element);
|
|
991
1003
|
}
|
|
992
1004
|
}));
|
|
993
|
-
return /* @__PURE__ */
|
|
1005
|
+
return /* @__PURE__ */ import_react11.default.createElement(DialogPrimitive.Root, { open, onOpenChange }, /* @__PURE__ */ import_react11.default.createElement(StyledOverlay, null), /* @__PURE__ */ import_react11.default.createElement(
|
|
994
1006
|
StyledContent,
|
|
995
1007
|
{
|
|
996
1008
|
ref: contentRef,
|
|
@@ -1005,14 +1017,14 @@ var Dialog = (0, import_react10.forwardRef)(function Dialog2({
|
|
|
1005
1017
|
}
|
|
1006
1018
|
}
|
|
1007
1019
|
},
|
|
1008
|
-
/* @__PURE__ */
|
|
1009
|
-
title && /* @__PURE__ */
|
|
1010
|
-
description && /* @__PURE__ */
|
|
1020
|
+
/* @__PURE__ */ import_react11.default.createElement(CloseButtonContainer, null, /* @__PURE__ */ import_react11.default.createElement(DialogPrimitive.Close, { asChild: true }, /* @__PURE__ */ import_react11.default.createElement(IconButton, { iconName: "Cross1Icon" }))),
|
|
1021
|
+
title && /* @__PURE__ */ import_react11.default.createElement(import_react11.default.Fragment, null, /* @__PURE__ */ import_react11.default.createElement(StyledTitle, null, title), /* @__PURE__ */ import_react11.default.createElement(Spacer.Vertical, { size: description ? 10 : 20 })),
|
|
1022
|
+
description && /* @__PURE__ */ import_react11.default.createElement(import_react11.default.Fragment, null, /* @__PURE__ */ import_react11.default.createElement(Spacer.Vertical, { size: 10 }), /* @__PURE__ */ import_react11.default.createElement(StyledDescription, null, description), /* @__PURE__ */ import_react11.default.createElement(Spacer.Vertical, { size: 20 })),
|
|
1011
1023
|
children
|
|
1012
1024
|
));
|
|
1013
1025
|
});
|
|
1014
|
-
var FullscreenDialog = (0,
|
|
1015
|
-
return /* @__PURE__ */
|
|
1026
|
+
var FullscreenDialog = (0, import_react11.forwardRef)(function FullscreenDialog2({ style: style3, ...rest }, forwardedRef) {
|
|
1027
|
+
return /* @__PURE__ */ import_react11.default.createElement(
|
|
1016
1028
|
Dialog,
|
|
1017
1029
|
{
|
|
1018
1030
|
ref: forwardedRef,
|
|
@@ -1038,13 +1050,13 @@ var FullscreenDialog = (0, import_react10.forwardRef)(function FullscreenDialog2
|
|
|
1038
1050
|
var import_noya_icons2 = require("@noya-app/noya-icons");
|
|
1039
1051
|
|
|
1040
1052
|
// ../noya-react-utils/src/components/AutoSizer.tsx
|
|
1041
|
-
var
|
|
1053
|
+
var import_react12 = __toESM(require("react"));
|
|
1042
1054
|
|
|
1043
1055
|
// ../noya-react-utils/src/hooks/useSize.ts
|
|
1044
|
-
var
|
|
1056
|
+
var React11 = __toESM(require("react"));
|
|
1045
1057
|
function useSize(refToObserve, dimensions = "both") {
|
|
1046
|
-
const [size2, setSize] =
|
|
1047
|
-
|
|
1058
|
+
const [size2, setSize] = React11.useState(void 0);
|
|
1059
|
+
React11.useEffect(() => {
|
|
1048
1060
|
if (refToObserve.current) {
|
|
1049
1061
|
const elementToObserve = refToObserve.current;
|
|
1050
1062
|
const resizeObserver = new ResizeObserver((entries) => {
|
|
@@ -1091,37 +1103,37 @@ var style = {
|
|
|
1091
1103
|
flex: "1 0 0",
|
|
1092
1104
|
flexDirection: "column"
|
|
1093
1105
|
};
|
|
1094
|
-
var AutoSizer = (0,
|
|
1106
|
+
var AutoSizer = (0, import_react12.memo)(function AutoSizer2({
|
|
1095
1107
|
children,
|
|
1096
1108
|
className
|
|
1097
1109
|
}) {
|
|
1098
|
-
const containerRef = (0,
|
|
1110
|
+
const containerRef = (0, import_react12.useRef)(null);
|
|
1099
1111
|
const containerSize = useSize(containerRef);
|
|
1100
|
-
return /* @__PURE__ */
|
|
1112
|
+
return /* @__PURE__ */ import_react12.default.createElement("div", { ref: containerRef, style, className }, containerSize && containerSize.width > 0 && containerSize.height > 0 && children(containerSize));
|
|
1101
1113
|
});
|
|
1102
|
-
var SingleDimensionAutoSizer = (0,
|
|
1114
|
+
var SingleDimensionAutoSizer = (0, import_react12.memo)(function SingleDimensionAutoSizer2({
|
|
1103
1115
|
children,
|
|
1104
1116
|
dimension,
|
|
1105
1117
|
className
|
|
1106
1118
|
}) {
|
|
1107
|
-
const containerRef = (0,
|
|
1119
|
+
const containerRef = (0, import_react12.useRef)(null);
|
|
1108
1120
|
const containerSize = useSize(containerRef, dimension);
|
|
1109
|
-
return /* @__PURE__ */
|
|
1121
|
+
return /* @__PURE__ */ import_react12.default.createElement("div", { ref: containerRef, style, className }, containerSize && containerSize[dimension] > 0 && children(containerSize[dimension]));
|
|
1110
1122
|
});
|
|
1111
1123
|
|
|
1112
1124
|
// ../noya-react-utils/src/components/FileDropTarget.tsx
|
|
1113
|
-
var
|
|
1125
|
+
var import_react14 = __toESM(require("react"));
|
|
1114
1126
|
|
|
1115
1127
|
// ../noya-react-utils/src/hooks/useFileDropTarget.ts
|
|
1116
|
-
var
|
|
1128
|
+
var import_react13 = require("react");
|
|
1117
1129
|
function useFileDropTarget(dropEvent) {
|
|
1118
|
-
const [isDropTargetActive, setIsDropTargetActive] = (0,
|
|
1119
|
-
const handleDragEvent = (0,
|
|
1130
|
+
const [isDropTargetActive, setIsDropTargetActive] = (0, import_react13.useState)(false);
|
|
1131
|
+
const handleDragEvent = (0, import_react13.useCallback)((event, on) => {
|
|
1120
1132
|
if (on !== void 0)
|
|
1121
1133
|
setIsDropTargetActive(on);
|
|
1122
1134
|
event.preventDefault();
|
|
1123
1135
|
}, []);
|
|
1124
|
-
const handleDropEvent = (0,
|
|
1136
|
+
const handleDropEvent = (0, import_react13.useCallback)(
|
|
1125
1137
|
(event) => {
|
|
1126
1138
|
dropEvent(event);
|
|
1127
1139
|
setIsDropTargetActive(false);
|
|
@@ -1144,12 +1156,12 @@ function isSupportedFile(file, supportedFileTypes) {
|
|
|
1144
1156
|
return supportedFileTypes.includes(file.type) || file.type === "" && file.name.endsWith(".sketch");
|
|
1145
1157
|
}
|
|
1146
1158
|
var style2 = { display: "flex", flex: 1 };
|
|
1147
|
-
var FileDropTarget = (0,
|
|
1159
|
+
var FileDropTarget = (0, import_react14.memo)(function FileDropTarget2({
|
|
1148
1160
|
children,
|
|
1149
1161
|
onDropFiles,
|
|
1150
1162
|
supportedFileTypes
|
|
1151
1163
|
}) {
|
|
1152
|
-
const handleFile = (0,
|
|
1164
|
+
const handleFile = (0, import_react14.useCallback)(
|
|
1153
1165
|
(event) => {
|
|
1154
1166
|
event.preventDefault();
|
|
1155
1167
|
const offsetPoint = {
|
|
@@ -1182,51 +1194,51 @@ var FileDropTarget = (0, import_react13.memo)(function FileDropTarget2({
|
|
|
1182
1194
|
[onDropFiles, supportedFileTypes]
|
|
1183
1195
|
);
|
|
1184
1196
|
const { dropTargetProps, isDropTargetActive } = useFileDropTarget(handleFile);
|
|
1185
|
-
return /* @__PURE__ */
|
|
1197
|
+
return /* @__PURE__ */ import_react14.default.createElement("div", { style: style2, ...dropTargetProps }, typeof children === "function" ? children(isDropTargetActive) : children);
|
|
1186
1198
|
});
|
|
1187
1199
|
|
|
1188
1200
|
// ../noya-react-utils/src/hooks/useDeepArray.ts
|
|
1189
1201
|
var import_noya_utils = require("@noya-app/noya-utils");
|
|
1190
|
-
var
|
|
1202
|
+
var import_react15 = require("react");
|
|
1191
1203
|
|
|
1192
1204
|
// ../noya-react-utils/src/hooks/useDeepState.ts
|
|
1193
1205
|
var import_noya_utils2 = require("@noya-app/noya-utils");
|
|
1194
|
-
var
|
|
1206
|
+
var import_react16 = require("react");
|
|
1195
1207
|
|
|
1196
1208
|
// ../noya-react-utils/src/hooks/useFetch.ts
|
|
1197
|
-
var
|
|
1209
|
+
var import_react17 = require("react");
|
|
1198
1210
|
|
|
1199
1211
|
// ../noya-react-utils/src/hooks/useIsMounted.ts
|
|
1200
|
-
var
|
|
1212
|
+
var import_react18 = require("react");
|
|
1201
1213
|
|
|
1202
1214
|
// ../noya-react-utils/src/hooks/useLateReference.ts
|
|
1203
|
-
var
|
|
1215
|
+
var import_react19 = require("react");
|
|
1204
1216
|
|
|
1205
1217
|
// ../noya-react-utils/src/hooks/useLazyValue.ts
|
|
1206
|
-
var
|
|
1218
|
+
var import_react20 = require("react");
|
|
1207
1219
|
|
|
1208
1220
|
// ../noya-react-utils/src/hooks/useMutableState.ts
|
|
1209
|
-
var
|
|
1221
|
+
var import_react21 = require("react");
|
|
1210
1222
|
|
|
1211
1223
|
// ../noya-react-utils/src/hooks/usePersistentState.ts
|
|
1212
|
-
var
|
|
1224
|
+
var import_react22 = require("react");
|
|
1213
1225
|
|
|
1214
1226
|
// ../noya-react-utils/src/hooks/usePixelRatio.ts
|
|
1215
|
-
var
|
|
1227
|
+
var import_react23 = require("react");
|
|
1216
1228
|
|
|
1217
1229
|
// ../noya-react-utils/src/hooks/useShallowArray.ts
|
|
1218
1230
|
var import_noya_utils3 = require("@noya-app/noya-utils");
|
|
1219
|
-
var
|
|
1231
|
+
var import_react24 = require("react");
|
|
1220
1232
|
|
|
1221
1233
|
// ../noya-react-utils/src/hooks/useStableCallback.ts
|
|
1222
|
-
var
|
|
1234
|
+
var import_react25 = require("react");
|
|
1223
1235
|
|
|
1224
1236
|
// ../noya-react-utils/src/hooks/useSystemColorScheme.ts
|
|
1225
|
-
var
|
|
1237
|
+
var import_react26 = require("react");
|
|
1226
1238
|
|
|
1227
1239
|
// ../noya-react-utils/src/hooks/useUrlHashParameters.ts
|
|
1228
1240
|
var import_noya_utils4 = require("@noya-app/noya-utils");
|
|
1229
|
-
var
|
|
1241
|
+
var import_react27 = require("react");
|
|
1230
1242
|
|
|
1231
1243
|
// ../emitter/src/index.ts
|
|
1232
1244
|
var Emitter = class {
|
|
@@ -1317,7 +1329,7 @@ function assignRef(ref, value) {
|
|
|
1317
1329
|
}
|
|
1318
1330
|
|
|
1319
1331
|
// src/components/InputField.tsx
|
|
1320
|
-
var
|
|
1332
|
+
var import_react33 = __toESM(require("react"));
|
|
1321
1333
|
var import_styled_components13 = __toESM(require("styled-components"));
|
|
1322
1334
|
|
|
1323
1335
|
// src/utils/handleNudge.ts
|
|
@@ -1348,12 +1360,12 @@ function handleNudge(e) {
|
|
|
1348
1360
|
var import_noya_icons = require("@noya-app/noya-icons");
|
|
1349
1361
|
var import_noya_keymap2 = require("@noya-app/noya-keymap");
|
|
1350
1362
|
var RadixDropdownMenu = __toESM(require("@radix-ui/react-dropdown-menu"));
|
|
1351
|
-
var
|
|
1363
|
+
var import_react29 = __toESM(require("react"));
|
|
1352
1364
|
var import_styled_components11 = __toESM(require("styled-components"));
|
|
1353
1365
|
|
|
1354
1366
|
// src/components/internal/Menu.tsx
|
|
1355
1367
|
var import_noya_keymap = require("@noya-app/noya-keymap");
|
|
1356
|
-
var
|
|
1368
|
+
var import_react28 = __toESM(require("react"));
|
|
1357
1369
|
var import_styled_components10 = __toESM(require("styled-components"));
|
|
1358
1370
|
var SEPARATOR_ITEM = "separator";
|
|
1359
1371
|
var CHECKBOX_WIDTH = 15;
|
|
@@ -1440,12 +1452,12 @@ var ShortcutElement = import_styled_components10.default.kbd(
|
|
|
1440
1452
|
}
|
|
1441
1453
|
})
|
|
1442
1454
|
);
|
|
1443
|
-
var KeyboardShortcut = (0,
|
|
1455
|
+
var KeyboardShortcut = (0, import_react28.memo)(function KeyboardShortcut2({
|
|
1444
1456
|
shortcut
|
|
1445
1457
|
}) {
|
|
1446
1458
|
const platform = useDesignSystemConfiguration().platform;
|
|
1447
1459
|
const { keys, separator } = (0, import_noya_keymap.getShortcutDisplayParts)(shortcut, platform);
|
|
1448
|
-
const keyElements = keys.map((key) => /* @__PURE__ */
|
|
1460
|
+
const keyElements = keys.map((key) => /* @__PURE__ */ import_react28.default.createElement(
|
|
1449
1461
|
ShortcutElement,
|
|
1450
1462
|
{
|
|
1451
1463
|
key,
|
|
@@ -1453,9 +1465,9 @@ var KeyboardShortcut = (0, import_react27.memo)(function KeyboardShortcut2({
|
|
|
1453
1465
|
},
|
|
1454
1466
|
key
|
|
1455
1467
|
));
|
|
1456
|
-
return /* @__PURE__ */
|
|
1468
|
+
return /* @__PURE__ */ import_react28.default.createElement(import_react28.default.Fragment, null, separator ? withSeparatorElements(
|
|
1457
1469
|
keyElements,
|
|
1458
|
-
/* @__PURE__ */
|
|
1470
|
+
/* @__PURE__ */ import_react28.default.createElement(ShortcutElement, null, separator)
|
|
1459
1471
|
) : keyElements);
|
|
1460
1472
|
});
|
|
1461
1473
|
|
|
@@ -1470,7 +1482,7 @@ var CheckboxItemElement = (0, import_styled_components11.default)(RadixDropdownM
|
|
|
1470
1482
|
var StyledItemIndicator = (0, import_styled_components11.default)(RadixDropdownMenu.ItemIndicator)(
|
|
1471
1483
|
styles.itemIndicatorStyle
|
|
1472
1484
|
);
|
|
1473
|
-
var DropdownMenuItem = (0,
|
|
1485
|
+
var DropdownMenuItem = (0, import_react29.memo)(function ContextMenuItem({
|
|
1474
1486
|
value,
|
|
1475
1487
|
children,
|
|
1476
1488
|
onSelect,
|
|
@@ -1481,27 +1493,27 @@ var DropdownMenuItem = (0, import_react28.memo)(function ContextMenuItem({
|
|
|
1481
1493
|
items,
|
|
1482
1494
|
shortcut
|
|
1483
1495
|
}) {
|
|
1484
|
-
const handleSelectItem = (0,
|
|
1496
|
+
const handleSelectItem = (0, import_react29.useCallback)(() => {
|
|
1485
1497
|
if (!value)
|
|
1486
1498
|
return;
|
|
1487
1499
|
onSelect(value);
|
|
1488
1500
|
}, [onSelect, value]);
|
|
1489
1501
|
if (checked) {
|
|
1490
|
-
return /* @__PURE__ */
|
|
1502
|
+
return /* @__PURE__ */ import_react29.default.createElement(
|
|
1491
1503
|
CheckboxItemElement,
|
|
1492
1504
|
{
|
|
1493
1505
|
checked,
|
|
1494
1506
|
disabled,
|
|
1495
1507
|
onSelect: handleSelectItem
|
|
1496
1508
|
},
|
|
1497
|
-
/* @__PURE__ */
|
|
1498
|
-
icon && /* @__PURE__ */
|
|
1509
|
+
/* @__PURE__ */ import_react29.default.createElement(StyledItemIndicator, null, /* @__PURE__ */ import_react29.default.createElement(import_noya_icons.CheckIcon, null)),
|
|
1510
|
+
icon && /* @__PURE__ */ import_react29.default.createElement(import_react29.default.Fragment, null, renderIcon(icon), /* @__PURE__ */ import_react29.default.createElement(Spacer.Horizontal, { size: 8 })),
|
|
1499
1511
|
children
|
|
1500
1512
|
);
|
|
1501
1513
|
}
|
|
1502
|
-
const element = /* @__PURE__ */
|
|
1514
|
+
const element = /* @__PURE__ */ import_react29.default.createElement(ItemElement, { disabled, onSelect: handleSelectItem }, indented && /* @__PURE__ */ import_react29.default.createElement(Spacer.Horizontal, { size: CHECKBOX_WIDTH - CHECKBOX_RIGHT_INSET }), icon && /* @__PURE__ */ import_react29.default.createElement(import_react29.default.Fragment, null, renderIcon(icon), /* @__PURE__ */ import_react29.default.createElement(Spacer.Horizontal, { size: 8 })), children, shortcut && /* @__PURE__ */ import_react29.default.createElement(import_react29.default.Fragment, null, /* @__PURE__ */ import_react29.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react29.default.createElement(Spacer.Horizontal, { size: 24 }), /* @__PURE__ */ import_react29.default.createElement(KeyboardShortcut, { shortcut })), items && items.length > 0 && /* @__PURE__ */ import_react29.default.createElement(import_react29.default.Fragment, null, /* @__PURE__ */ import_react29.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react29.default.createElement(Spacer.Horizontal, { size: 16 }), /* @__PURE__ */ import_react29.default.createElement(import_noya_icons.ChevronRightIcon, null)));
|
|
1503
1515
|
if (items && items.length > 0) {
|
|
1504
|
-
return /* @__PURE__ */
|
|
1516
|
+
return /* @__PURE__ */ import_react29.default.createElement(
|
|
1505
1517
|
DropdownMenuRoot,
|
|
1506
1518
|
{
|
|
1507
1519
|
isNested: true,
|
|
@@ -1517,7 +1529,7 @@ var DropdownMenuItem = (0, import_react28.memo)(function ContextMenuItem({
|
|
|
1517
1529
|
});
|
|
1518
1530
|
var Content5 = (0, import_styled_components11.default)(RadixDropdownMenu.Content)(styles.contentStyle);
|
|
1519
1531
|
var SubContent2 = (0, import_styled_components11.default)(RadixDropdownMenu.SubContent)(styles.contentStyle);
|
|
1520
|
-
var DropdownMenuRoot = (0,
|
|
1532
|
+
var DropdownMenuRoot = (0, import_react29.forwardRef)(function DropdownMenuRoot2({
|
|
1521
1533
|
items,
|
|
1522
1534
|
children,
|
|
1523
1535
|
onSelect,
|
|
@@ -1535,7 +1547,7 @@ var DropdownMenuRoot = (0, import_react28.forwardRef)(function DropdownMenuRoot2
|
|
|
1535
1547
|
const hasCheckedItem = items.some(
|
|
1536
1548
|
(item) => item !== SEPARATOR_ITEM && item.checked
|
|
1537
1549
|
);
|
|
1538
|
-
const keymap = (0,
|
|
1550
|
+
const keymap = (0, import_react29.useMemo)(
|
|
1539
1551
|
() => isNested || shouldBindKeyboardShortcuts === false ? {} : getKeyboardShortcutsForMenuItems(items, onSelect),
|
|
1540
1552
|
[isNested, items, onSelect, shouldBindKeyboardShortcuts]
|
|
1541
1553
|
);
|
|
@@ -1543,8 +1555,8 @@ var DropdownMenuRoot = (0, import_react28.forwardRef)(function DropdownMenuRoot2
|
|
|
1543
1555
|
const RootComponent = isNested ? RadixDropdownMenu.Sub : RadixDropdownMenu.Root;
|
|
1544
1556
|
const TriggerComponent = isNested ? RadixDropdownMenu.SubTrigger : RadixDropdownMenu.Trigger;
|
|
1545
1557
|
const ContentComponent = isNested ? SubContent2 : Content5;
|
|
1546
|
-
const contentStyle = (0,
|
|
1547
|
-
return /* @__PURE__ */
|
|
1558
|
+
const contentStyle = (0, import_react29.useMemo)(() => ({ zIndex: 1e3 }), []);
|
|
1559
|
+
return /* @__PURE__ */ import_react29.default.createElement(RootComponent, { onOpenChange, open }, /* @__PURE__ */ import_react29.default.createElement(TriggerComponent, { ref: forwardedRef, asChild: true }, children), /* @__PURE__ */ import_react29.default.createElement(RadixDropdownMenu.Portal, null, /* @__PURE__ */ import_react29.default.createElement(
|
|
1548
1560
|
ContentComponent,
|
|
1549
1561
|
{
|
|
1550
1562
|
side,
|
|
@@ -1556,7 +1568,7 @@ var DropdownMenuRoot = (0, import_react28.forwardRef)(function DropdownMenuRoot2
|
|
|
1556
1568
|
...{ onCloseAutoFocus }
|
|
1557
1569
|
},
|
|
1558
1570
|
items.map(
|
|
1559
|
-
(item, index) => item === SEPARATOR_ITEM ? /* @__PURE__ */
|
|
1571
|
+
(item, index) => item === SEPARATOR_ITEM ? /* @__PURE__ */ import_react29.default.createElement(SeparatorElement, { key: index }) : /* @__PURE__ */ import_react29.default.createElement(
|
|
1560
1572
|
DropdownMenuItem,
|
|
1561
1573
|
{
|
|
1562
1574
|
key: item.value ?? index,
|
|
@@ -1574,14 +1586,14 @@ var DropdownMenuRoot = (0, import_react28.forwardRef)(function DropdownMenuRoot2
|
|
|
1574
1586
|
)
|
|
1575
1587
|
)));
|
|
1576
1588
|
});
|
|
1577
|
-
var DropdownMenu = (0,
|
|
1589
|
+
var DropdownMenu = (0, import_react29.memo)(DropdownMenuRoot);
|
|
1578
1590
|
|
|
1579
1591
|
// src/components/internal/TextInput.tsx
|
|
1580
1592
|
var import_react_compose_refs = require("@radix-ui/react-compose-refs");
|
|
1581
|
-
var
|
|
1593
|
+
var import_react31 = __toESM(require("react"));
|
|
1582
1594
|
|
|
1583
1595
|
// src/contexts/GlobalInputBlurContext.tsx
|
|
1584
|
-
var
|
|
1596
|
+
var import_react30 = require("react");
|
|
1585
1597
|
var defaultValue = /* @__PURE__ */ (() => {
|
|
1586
1598
|
const listeners = [];
|
|
1587
1599
|
const value = {
|
|
@@ -1602,14 +1614,14 @@ var defaultValue = /* @__PURE__ */ (() => {
|
|
|
1602
1614
|
};
|
|
1603
1615
|
return value;
|
|
1604
1616
|
})();
|
|
1605
|
-
var GlobalInputBlurContext = (0,
|
|
1617
|
+
var GlobalInputBlurContext = (0, import_react30.createContext)(defaultValue);
|
|
1606
1618
|
var GlobalInputBlurProvider = GlobalInputBlurContext.Provider;
|
|
1607
1619
|
var useGlobalInputBlur = () => {
|
|
1608
|
-
return (0,
|
|
1620
|
+
return (0, import_react30.useContext)(GlobalInputBlurContext);
|
|
1609
1621
|
};
|
|
1610
1622
|
function useGlobalInputBlurListener(f) {
|
|
1611
1623
|
const context = useGlobalInputBlur();
|
|
1612
|
-
(0,
|
|
1624
|
+
(0, import_react30.useEffect)(() => {
|
|
1613
1625
|
context.addListener(f);
|
|
1614
1626
|
return () => {
|
|
1615
1627
|
context.removeListener(f);
|
|
@@ -1621,8 +1633,8 @@ function useGlobalInputBlurTrigger() {
|
|
|
1621
1633
|
}
|
|
1622
1634
|
|
|
1623
1635
|
// src/components/internal/TextInput.tsx
|
|
1624
|
-
var ReadOnlyTextInput = (0,
|
|
1625
|
-
return /* @__PURE__ */
|
|
1636
|
+
var ReadOnlyTextInput = (0, import_react31.forwardRef)(function ReadOnlyTextInput2({ onKeyDown, onFocusChange, value, ...rest }, forwardedRef) {
|
|
1637
|
+
return /* @__PURE__ */ import_react31.default.createElement(
|
|
1626
1638
|
"input",
|
|
1627
1639
|
{
|
|
1628
1640
|
ref: forwardedRef,
|
|
@@ -1633,7 +1645,7 @@ var ReadOnlyTextInput = (0, import_react30.forwardRef)(function ReadOnlyTextInpu
|
|
|
1633
1645
|
}
|
|
1634
1646
|
);
|
|
1635
1647
|
});
|
|
1636
|
-
var ControlledTextInput = (0,
|
|
1648
|
+
var ControlledTextInput = (0, import_react31.forwardRef)(function ControlledTextInput2({
|
|
1637
1649
|
onKeyDown,
|
|
1638
1650
|
value,
|
|
1639
1651
|
onChange,
|
|
@@ -1642,28 +1654,28 @@ var ControlledTextInput = (0, import_react30.forwardRef)(function ControlledText
|
|
|
1642
1654
|
onFocusCapture,
|
|
1643
1655
|
...rest
|
|
1644
1656
|
}, forwardedRef) {
|
|
1645
|
-
const handleBlur = (0,
|
|
1657
|
+
const handleBlur = (0, import_react31.useCallback)(
|
|
1646
1658
|
(event) => {
|
|
1647
1659
|
onBlur?.(event);
|
|
1648
1660
|
onFocusChange?.(false);
|
|
1649
1661
|
},
|
|
1650
1662
|
[onBlur, onFocusChange]
|
|
1651
1663
|
);
|
|
1652
|
-
const handleFocusCapture = (0,
|
|
1664
|
+
const handleFocusCapture = (0, import_react31.useCallback)(
|
|
1653
1665
|
(event) => {
|
|
1654
1666
|
onFocusCapture?.(event);
|
|
1655
1667
|
onFocusChange?.(true);
|
|
1656
1668
|
},
|
|
1657
1669
|
[onFocusCapture, onFocusChange]
|
|
1658
1670
|
);
|
|
1659
|
-
return /* @__PURE__ */
|
|
1671
|
+
return /* @__PURE__ */ import_react31.default.createElement(
|
|
1660
1672
|
"input",
|
|
1661
1673
|
{
|
|
1662
1674
|
ref: forwardedRef,
|
|
1663
1675
|
...rest,
|
|
1664
1676
|
value,
|
|
1665
1677
|
onKeyDown,
|
|
1666
|
-
onChange: (0,
|
|
1678
|
+
onChange: (0, import_react31.useCallback)(
|
|
1667
1679
|
(event) => onChange(event.target.value),
|
|
1668
1680
|
[onChange]
|
|
1669
1681
|
),
|
|
@@ -1672,7 +1684,7 @@ var ControlledTextInput = (0, import_react30.forwardRef)(function ControlledText
|
|
|
1672
1684
|
}
|
|
1673
1685
|
);
|
|
1674
1686
|
});
|
|
1675
|
-
var SubmittableTextInput = (0,
|
|
1687
|
+
var SubmittableTextInput = (0, import_react31.forwardRef)(function SubmittableTextInput2({
|
|
1676
1688
|
onKeyDown,
|
|
1677
1689
|
value,
|
|
1678
1690
|
onSubmit,
|
|
@@ -1683,16 +1695,16 @@ var SubmittableTextInput = (0, import_react30.forwardRef)(function SubmittableTe
|
|
|
1683
1695
|
submitAutomaticallyAfterDelay,
|
|
1684
1696
|
...rest
|
|
1685
1697
|
}, forwardedRef) {
|
|
1686
|
-
const ref =
|
|
1687
|
-
const latestValue = (0,
|
|
1698
|
+
const ref = import_react31.default.useRef(null);
|
|
1699
|
+
const latestValue = (0, import_react31.useRef)(value);
|
|
1688
1700
|
latestValue.current = value;
|
|
1689
|
-
const userDidEdit = (0,
|
|
1690
|
-
const isSubmitTriggeredByEscapeKey = (0,
|
|
1691
|
-
const [internalValue, setInternalValue] = (0,
|
|
1692
|
-
(0,
|
|
1701
|
+
const userDidEdit = (0, import_react31.useRef)(false);
|
|
1702
|
+
const isSubmitTriggeredByEscapeKey = (0, import_react31.useRef)(false);
|
|
1703
|
+
const [internalValue, setInternalValue] = (0, import_react31.useState)("");
|
|
1704
|
+
(0, import_react31.useLayoutEffect)(() => {
|
|
1693
1705
|
setInternalValue(value);
|
|
1694
1706
|
}, [value]);
|
|
1695
|
-
const handleSubmit = (0,
|
|
1707
|
+
const handleSubmit = (0, import_react31.useCallback)(() => {
|
|
1696
1708
|
const submissionValue = isSubmitTriggeredByEscapeKey.current ? value : internalValue;
|
|
1697
1709
|
isSubmitTriggeredByEscapeKey.current = false;
|
|
1698
1710
|
if (submissionValue === value && !allowSubmittingWithSameValue)
|
|
@@ -1702,13 +1714,13 @@ var SubmittableTextInput = (0, import_react30.forwardRef)(function SubmittableTe
|
|
|
1702
1714
|
setInternalValue(latestValue.current);
|
|
1703
1715
|
}, [allowSubmittingWithSameValue, value, internalValue, onSubmit]);
|
|
1704
1716
|
useGlobalInputBlurListener(
|
|
1705
|
-
(0,
|
|
1717
|
+
(0, import_react31.useCallback)(() => {
|
|
1706
1718
|
if (ref.current !== document.activeElement)
|
|
1707
1719
|
return;
|
|
1708
1720
|
handleSubmit();
|
|
1709
1721
|
}, [handleSubmit])
|
|
1710
1722
|
);
|
|
1711
|
-
const handleKeyDown = (0,
|
|
1723
|
+
const handleKeyDown = (0, import_react31.useCallback)(
|
|
1712
1724
|
(event) => {
|
|
1713
1725
|
if (event.key === "Enter") {
|
|
1714
1726
|
handleSubmit();
|
|
@@ -1723,14 +1735,14 @@ var SubmittableTextInput = (0, import_react30.forwardRef)(function SubmittableTe
|
|
|
1723
1735
|
},
|
|
1724
1736
|
[onKeyDown, handleSubmit]
|
|
1725
1737
|
);
|
|
1726
|
-
const handleChange = (0,
|
|
1738
|
+
const handleChange = (0, import_react31.useCallback)(
|
|
1727
1739
|
(event) => {
|
|
1728
1740
|
userDidEdit.current = true;
|
|
1729
1741
|
setInternalValue(event.target.value);
|
|
1730
1742
|
},
|
|
1731
1743
|
[]
|
|
1732
1744
|
);
|
|
1733
|
-
const handleBlur = (0,
|
|
1745
|
+
const handleBlur = (0, import_react31.useCallback)(
|
|
1734
1746
|
(event) => {
|
|
1735
1747
|
onBlur?.(event);
|
|
1736
1748
|
onFocusChange?.(false);
|
|
@@ -1738,19 +1750,19 @@ var SubmittableTextInput = (0, import_react30.forwardRef)(function SubmittableTe
|
|
|
1738
1750
|
},
|
|
1739
1751
|
[onBlur, onFocusChange, handleSubmit]
|
|
1740
1752
|
);
|
|
1741
|
-
const handleFocusCapture = (0,
|
|
1753
|
+
const handleFocusCapture = (0, import_react31.useCallback)(
|
|
1742
1754
|
(event) => {
|
|
1743
1755
|
onFocusCapture?.(event);
|
|
1744
1756
|
onFocusChange?.(true);
|
|
1745
1757
|
},
|
|
1746
1758
|
[onFocusCapture, onFocusChange]
|
|
1747
1759
|
);
|
|
1748
|
-
const autoSubmitTimeoutRef = (0,
|
|
1760
|
+
const autoSubmitTimeoutRef = (0, import_react31.useRef)(
|
|
1749
1761
|
null
|
|
1750
1762
|
);
|
|
1751
|
-
const latestHandleSubmit = (0,
|
|
1763
|
+
const latestHandleSubmit = (0, import_react31.useRef)(handleSubmit);
|
|
1752
1764
|
latestHandleSubmit.current = handleSubmit;
|
|
1753
|
-
(0,
|
|
1765
|
+
(0, import_react31.useEffect)(() => {
|
|
1754
1766
|
if (submitAutomaticallyAfterDelay) {
|
|
1755
1767
|
if (autoSubmitTimeoutRef.current) {
|
|
1756
1768
|
clearTimeout(autoSubmitTimeoutRef.current);
|
|
@@ -1767,7 +1779,7 @@ var SubmittableTextInput = (0, import_react30.forwardRef)(function SubmittableTe
|
|
|
1767
1779
|
}
|
|
1768
1780
|
};
|
|
1769
1781
|
}, [internalValue, submitAutomaticallyAfterDelay]);
|
|
1770
|
-
return /* @__PURE__ */
|
|
1782
|
+
return /* @__PURE__ */ import_react31.default.createElement(
|
|
1771
1783
|
"input",
|
|
1772
1784
|
{
|
|
1773
1785
|
ref: (0, import_react_compose_refs.composeRefs)(ref, forwardedRef),
|
|
@@ -1780,13 +1792,13 @@ var SubmittableTextInput = (0, import_react30.forwardRef)(function SubmittableTe
|
|
|
1780
1792
|
}
|
|
1781
1793
|
);
|
|
1782
1794
|
});
|
|
1783
|
-
var TextInput_default = (0,
|
|
1795
|
+
var TextInput_default = (0, import_react31.forwardRef)(function TextInput(props, forwardedRef) {
|
|
1784
1796
|
const commonProps = {
|
|
1785
|
-
onPointerDown: (0,
|
|
1797
|
+
onPointerDown: (0, import_react31.useCallback)(
|
|
1786
1798
|
(event) => event.stopPropagation(),
|
|
1787
1799
|
[]
|
|
1788
1800
|
),
|
|
1789
|
-
onClick: (0,
|
|
1801
|
+
onClick: (0, import_react31.useCallback)(
|
|
1790
1802
|
(event) => event.stopPropagation(),
|
|
1791
1803
|
[]
|
|
1792
1804
|
),
|
|
@@ -1799,17 +1811,17 @@ var TextInput_default = (0, import_react30.forwardRef)(function TextInput(props,
|
|
|
1799
1811
|
...props
|
|
1800
1812
|
};
|
|
1801
1813
|
if ("readOnly" in commonProps) {
|
|
1802
|
-
return /* @__PURE__ */
|
|
1814
|
+
return /* @__PURE__ */ import_react31.default.createElement(ReadOnlyTextInput, { ref: forwardedRef, ...commonProps, readOnly: true });
|
|
1803
1815
|
} else if ("onChange" in commonProps) {
|
|
1804
|
-
return /* @__PURE__ */
|
|
1816
|
+
return /* @__PURE__ */ import_react31.default.createElement(ControlledTextInput, { ref: forwardedRef, ...commonProps });
|
|
1805
1817
|
} else {
|
|
1806
|
-
return /* @__PURE__ */
|
|
1818
|
+
return /* @__PURE__ */ import_react31.default.createElement(SubmittableTextInput, { ref: forwardedRef, ...commonProps });
|
|
1807
1819
|
}
|
|
1808
1820
|
});
|
|
1809
1821
|
|
|
1810
1822
|
// src/components/Popover.tsx
|
|
1811
1823
|
var PopoverPrimitive = __toESM(require("@radix-ui/react-popover"));
|
|
1812
|
-
var
|
|
1824
|
+
var import_react32 = __toESM(require("react"));
|
|
1813
1825
|
var import_styled_components12 = __toESM(require("styled-components"));
|
|
1814
1826
|
var ContentElement = (0, import_styled_components12.default)(PopoverPrimitive.Content)(({ theme, variant }) => ({
|
|
1815
1827
|
borderRadius: 4,
|
|
@@ -1856,7 +1868,7 @@ function Popover({
|
|
|
1856
1868
|
onFocusOutside,
|
|
1857
1869
|
onClickClose
|
|
1858
1870
|
}) {
|
|
1859
|
-
return /* @__PURE__ */
|
|
1871
|
+
return /* @__PURE__ */ import_react32.default.createElement(PopoverPrimitive.Root, { open, onOpenChange }, /* @__PURE__ */ import_react32.default.createElement(PopoverPrimitive.Trigger, { asChild: true }, trigger), /* @__PURE__ */ import_react32.default.createElement(PopoverPrimitive.Portal, null, /* @__PURE__ */ import_react32.default.createElement(
|
|
1860
1872
|
ContentElement,
|
|
1861
1873
|
{
|
|
1862
1874
|
variant,
|
|
@@ -1872,13 +1884,13 @@ function Popover({
|
|
|
1872
1884
|
arrowPadding: 2
|
|
1873
1885
|
},
|
|
1874
1886
|
children,
|
|
1875
|
-
showArrow && /* @__PURE__ */
|
|
1876
|
-
closable && /* @__PURE__ */
|
|
1887
|
+
showArrow && /* @__PURE__ */ import_react32.default.createElement(ArrowElement, null),
|
|
1888
|
+
closable && /* @__PURE__ */ import_react32.default.createElement(PopoverClose, null, /* @__PURE__ */ import_react32.default.createElement(IconButton, { iconName: "Cross2Icon", onClick: onClickClose }))
|
|
1877
1889
|
)));
|
|
1878
1890
|
}
|
|
1879
1891
|
|
|
1880
1892
|
// src/components/InputField.tsx
|
|
1881
|
-
var InputFieldContext = (0,
|
|
1893
|
+
var InputFieldContext = (0, import_react33.createContext)({
|
|
1882
1894
|
labelPosition: "end",
|
|
1883
1895
|
labelSize: 6,
|
|
1884
1896
|
hasLabel: false,
|
|
@@ -1906,11 +1918,11 @@ var LabelContainer = import_styled_components13.default.label(({ theme, $labelPo
|
|
|
1906
1918
|
paddingRight: $hasDropdown ? "16px" : "6px"
|
|
1907
1919
|
}
|
|
1908
1920
|
}));
|
|
1909
|
-
var InputFieldLabel = (0,
|
|
1910
|
-
(0,
|
|
1911
|
-
const { labelPosition, hasDropdown, setLabelWidth } = (0,
|
|
1912
|
-
const ref = (0,
|
|
1913
|
-
(0,
|
|
1921
|
+
var InputFieldLabel = (0, import_react33.memo)(
|
|
1922
|
+
(0, import_react33.forwardRef)(function InputFieldLabel2({ children = false, pointerEvents = "none", style: style3 }, forwardedRef) {
|
|
1923
|
+
const { labelPosition, hasDropdown, setLabelWidth } = (0, import_react33.useContext)(InputFieldContext);
|
|
1924
|
+
const ref = (0, import_react33.useRef)(null);
|
|
1925
|
+
(0, import_react33.useLayoutEffect)(() => {
|
|
1914
1926
|
if (!setLabelWidth)
|
|
1915
1927
|
return;
|
|
1916
1928
|
const width = ref.current?.getBoundingClientRect().width;
|
|
@@ -1918,7 +1930,7 @@ var InputFieldLabel = (0, import_react32.memo)(
|
|
|
1918
1930
|
return;
|
|
1919
1931
|
setLabelWidth(width);
|
|
1920
1932
|
}, [setLabelWidth]);
|
|
1921
|
-
return /* @__PURE__ */
|
|
1933
|
+
return /* @__PURE__ */ import_react33.default.createElement(
|
|
1922
1934
|
LabelContainer,
|
|
1923
1935
|
{
|
|
1924
1936
|
ref: (element) => {
|
|
@@ -1942,16 +1954,16 @@ var DropdownContainer = import_styled_components13.default.span(({ theme }) => (
|
|
|
1942
1954
|
display: "flex",
|
|
1943
1955
|
flexDirection: "column"
|
|
1944
1956
|
}));
|
|
1945
|
-
var InputFieldDropdownMenu = (0,
|
|
1946
|
-
const { size: size2 } = (0,
|
|
1947
|
-
const contentStyle = (0,
|
|
1957
|
+
var InputFieldDropdownMenu = (0, import_react33.memo)(function InputFieldDropdownMenu2({ id, items, onSelect, children }) {
|
|
1958
|
+
const { size: size2 } = (0, import_react33.useContext)(InputFieldContext);
|
|
1959
|
+
const contentStyle = (0, import_react33.useMemo)(
|
|
1948
1960
|
() => ({
|
|
1949
1961
|
margin: "-4px 0",
|
|
1950
1962
|
minHeight: size2 === "small" ? "15px" : void 0
|
|
1951
1963
|
}),
|
|
1952
1964
|
[size2]
|
|
1953
1965
|
);
|
|
1954
|
-
return /* @__PURE__ */
|
|
1966
|
+
return /* @__PURE__ */ import_react33.default.createElement(DropdownContainer, null, /* @__PURE__ */ import_react33.default.createElement(DropdownMenu, { items, onSelect }, children || /* @__PURE__ */ import_react33.default.createElement(Button, { id, variant: "thin", flex: "1", contentStyle }, /* @__PURE__ */ import_react33.default.createElement(import_noya_icons2.CaretDownIcon, null))));
|
|
1955
1967
|
});
|
|
1956
1968
|
var ButtonContainer = import_styled_components13.default.span(
|
|
1957
1969
|
({ theme, $size }) => ({
|
|
@@ -1960,12 +1972,12 @@ var ButtonContainer = import_styled_components13.default.span(
|
|
|
1960
1972
|
top: $size === "large" ? "8px" : $size === "medium" ? "4px" : "2px"
|
|
1961
1973
|
})
|
|
1962
1974
|
);
|
|
1963
|
-
var InputFieldButton = (0,
|
|
1975
|
+
var InputFieldButton = (0, import_react33.memo)(function InputFieldButton2({
|
|
1964
1976
|
children,
|
|
1965
1977
|
onClick
|
|
1966
1978
|
}) {
|
|
1967
|
-
const { size: size2, inputRef } = (0,
|
|
1968
|
-
const defaultHandleClick = (0,
|
|
1979
|
+
const { size: size2, inputRef } = (0, import_react33.useContext)(InputFieldContext);
|
|
1980
|
+
const defaultHandleClick = (0, import_react33.useCallback)(
|
|
1969
1981
|
(event) => {
|
|
1970
1982
|
if (inputRef && typeof inputRef !== "function") {
|
|
1971
1983
|
inputRef.current?.focus();
|
|
@@ -1976,11 +1988,11 @@ var InputFieldButton = (0, import_react32.memo)(function InputFieldButton2({
|
|
|
1976
1988
|
},
|
|
1977
1989
|
[inputRef]
|
|
1978
1990
|
);
|
|
1979
|
-
const handlePointerDown = (0,
|
|
1991
|
+
const handlePointerDown = (0, import_react33.useCallback)((event) => {
|
|
1980
1992
|
event.preventDefault();
|
|
1981
1993
|
event.stopPropagation();
|
|
1982
1994
|
}, []);
|
|
1983
|
-
return /* @__PURE__ */
|
|
1995
|
+
return /* @__PURE__ */ import_react33.default.createElement(ButtonContainer, { $size: size2 }, /* @__PURE__ */ import_react33.default.createElement(
|
|
1984
1996
|
Button,
|
|
1985
1997
|
{
|
|
1986
1998
|
variant: "floating",
|
|
@@ -2051,7 +2063,7 @@ var InputElement = (0, import_styled_components13.default)(TextInput_default)(({
|
|
|
2051
2063
|
// },
|
|
2052
2064
|
};
|
|
2053
2065
|
});
|
|
2054
|
-
var InputFieldInput = (0,
|
|
2066
|
+
var InputFieldInput = (0, import_react33.forwardRef)(function InputFieldInput2({
|
|
2055
2067
|
textAlign,
|
|
2056
2068
|
variant,
|
|
2057
2069
|
...rest
|
|
@@ -2064,17 +2076,17 @@ var InputFieldInput = (0, import_react32.forwardRef)(function InputFieldInput2({
|
|
|
2064
2076
|
size: size2,
|
|
2065
2077
|
onFocusChange,
|
|
2066
2078
|
setInputRef
|
|
2067
|
-
} = (0,
|
|
2068
|
-
const handleFocusChange = (0,
|
|
2079
|
+
} = (0, import_react33.useContext)(InputFieldContext);
|
|
2080
|
+
const handleFocusChange = (0, import_react33.useCallback)(
|
|
2069
2081
|
(isFocused) => {
|
|
2070
2082
|
onFocusChange(isFocused);
|
|
2071
2083
|
},
|
|
2072
2084
|
[onFocusChange]
|
|
2073
2085
|
);
|
|
2074
|
-
(0,
|
|
2086
|
+
(0, import_react33.useLayoutEffect)(() => {
|
|
2075
2087
|
setInputRef?.(forwardedRef);
|
|
2076
2088
|
}, [forwardedRef, setInputRef]);
|
|
2077
|
-
return /* @__PURE__ */
|
|
2089
|
+
return /* @__PURE__ */ import_react33.default.createElement(
|
|
2078
2090
|
InputElement,
|
|
2079
2091
|
{
|
|
2080
2092
|
ref: forwardedRef,
|
|
@@ -2098,8 +2110,8 @@ var InputFieldTypeahead = (props) => {
|
|
|
2098
2110
|
hasLabel,
|
|
2099
2111
|
size: size2,
|
|
2100
2112
|
onFocusChange
|
|
2101
|
-
} = (0,
|
|
2102
|
-
return /* @__PURE__ */
|
|
2113
|
+
} = (0, import_react33.useContext)(InputFieldContext);
|
|
2114
|
+
return /* @__PURE__ */ import_react33.default.createElement(
|
|
2103
2115
|
InputElement,
|
|
2104
2116
|
{
|
|
2105
2117
|
$labelPosition: labelPosition,
|
|
@@ -2133,8 +2145,8 @@ function InputFieldNumberInput(props) {
|
|
|
2133
2145
|
const { value, placeholder, onNudge, onBlur, ...rest } = props;
|
|
2134
2146
|
const onSubmit = "onSubmit" in props ? props.onSubmit : void 0;
|
|
2135
2147
|
const onChange = "onChange" in props ? props.onChange : void 0;
|
|
2136
|
-
const [internalValue, setInternalValue] = (0,
|
|
2137
|
-
const handleSubmit = (0,
|
|
2148
|
+
const [internalValue, setInternalValue] = (0, import_react33.useState)();
|
|
2149
|
+
const handleSubmit = (0, import_react33.useCallback)(
|
|
2138
2150
|
(value2) => {
|
|
2139
2151
|
const newValue = parseNumber(value2);
|
|
2140
2152
|
if (!isNaN(newValue)) {
|
|
@@ -2143,7 +2155,7 @@ function InputFieldNumberInput(props) {
|
|
|
2143
2155
|
},
|
|
2144
2156
|
[onSubmit]
|
|
2145
2157
|
);
|
|
2146
|
-
const handleKeyDown = (0,
|
|
2158
|
+
const handleKeyDown = (0, import_react33.useCallback)(
|
|
2147
2159
|
(event) => {
|
|
2148
2160
|
const amount = handleNudge(event);
|
|
2149
2161
|
if (!amount)
|
|
@@ -2155,7 +2167,7 @@ function InputFieldNumberInput(props) {
|
|
|
2155
2167
|
},
|
|
2156
2168
|
[onNudge]
|
|
2157
2169
|
);
|
|
2158
|
-
const handleChange = (0,
|
|
2170
|
+
const handleChange = (0, import_react33.useCallback)(
|
|
2159
2171
|
(value2) => {
|
|
2160
2172
|
if (value2 === "" || value2 === "-" || value2 === ".") {
|
|
2161
2173
|
setInternalValue(value2);
|
|
@@ -2173,14 +2185,14 @@ function InputFieldNumberInput(props) {
|
|
|
2173
2185
|
},
|
|
2174
2186
|
[onChange]
|
|
2175
2187
|
);
|
|
2176
|
-
const handleBlur = (0,
|
|
2188
|
+
const handleBlur = (0, import_react33.useCallback)(
|
|
2177
2189
|
(event) => {
|
|
2178
2190
|
setInternalValue(void 0);
|
|
2179
2191
|
onBlur?.(event);
|
|
2180
2192
|
},
|
|
2181
2193
|
[onBlur]
|
|
2182
2194
|
);
|
|
2183
|
-
return /* @__PURE__ */
|
|
2195
|
+
return /* @__PURE__ */ import_react33.default.createElement(
|
|
2184
2196
|
InputFieldInput,
|
|
2185
2197
|
{
|
|
2186
2198
|
...rest,
|
|
@@ -2210,34 +2222,36 @@ function InputFieldRoot({
|
|
|
2210
2222
|
labelSize,
|
|
2211
2223
|
size: size2 = "medium",
|
|
2212
2224
|
renderPopoverContent,
|
|
2213
|
-
onFocusChange
|
|
2225
|
+
onFocusChange,
|
|
2226
|
+
style: style3,
|
|
2227
|
+
className
|
|
2214
2228
|
}) {
|
|
2215
|
-
const childrenArray =
|
|
2229
|
+
const childrenArray = import_react33.Children.toArray(children);
|
|
2216
2230
|
const hasDropdown = childrenArray.some(
|
|
2217
|
-
(child) => (0,
|
|
2231
|
+
(child) => (0, import_react33.isValidElement)(child) && child.type === InputFieldDropdownMenu
|
|
2218
2232
|
);
|
|
2219
2233
|
const hasLabel = childrenArray.some(
|
|
2220
|
-
(child) => (0,
|
|
2234
|
+
(child) => (0, import_react33.isValidElement)(child) && child.type === InputFieldLabel
|
|
2221
2235
|
);
|
|
2222
|
-
const [isFocused, setIsFocused] =
|
|
2223
|
-
const [measuredLabelSize, setMeasuredLabelSize] =
|
|
2224
|
-
const [measuredWidth, setMeasuredWidth] =
|
|
2225
|
-
const handleFocusChange = (0,
|
|
2236
|
+
const [isFocused, setIsFocused] = import_react33.default.useState(false);
|
|
2237
|
+
const [measuredLabelSize, setMeasuredLabelSize] = import_react33.default.useState();
|
|
2238
|
+
const [measuredWidth, setMeasuredWidth] = import_react33.default.useState();
|
|
2239
|
+
const handleFocusChange = (0, import_react33.useCallback)(
|
|
2226
2240
|
(isFocused2) => {
|
|
2227
2241
|
setIsFocused(isFocused2);
|
|
2228
2242
|
onFocusChange?.(isFocused2);
|
|
2229
2243
|
},
|
|
2230
2244
|
[onFocusChange]
|
|
2231
2245
|
);
|
|
2232
|
-
const [inputRef, setInputRef] =
|
|
2233
|
-
(0,
|
|
2246
|
+
const [inputRef, setInputRef] = import_react33.default.useState();
|
|
2247
|
+
(0, import_react33.useEffect)(() => {
|
|
2234
2248
|
if (inputRef && typeof inputRef !== "function") {
|
|
2235
2249
|
setMeasuredWidth?.(
|
|
2236
2250
|
isFocused ? inputRef?.current?.getBoundingClientRect().width : void 0
|
|
2237
2251
|
);
|
|
2238
2252
|
}
|
|
2239
2253
|
}, [inputRef, isFocused]);
|
|
2240
|
-
const contextValue = (0,
|
|
2254
|
+
const contextValue = (0, import_react33.useMemo)(
|
|
2241
2255
|
() => ({
|
|
2242
2256
|
labelPosition,
|
|
2243
2257
|
labelSize: measuredLabelSize ?? labelSize ?? 6,
|
|
@@ -2262,8 +2276,18 @@ function InputFieldRoot({
|
|
|
2262
2276
|
inputRef
|
|
2263
2277
|
]
|
|
2264
2278
|
);
|
|
2265
|
-
const rootElement = /* @__PURE__ */
|
|
2266
|
-
|
|
2279
|
+
const rootElement = /* @__PURE__ */ import_react33.default.createElement(
|
|
2280
|
+
RootContainer,
|
|
2281
|
+
{
|
|
2282
|
+
id,
|
|
2283
|
+
$width: width,
|
|
2284
|
+
$flex: flex,
|
|
2285
|
+
style: style3,
|
|
2286
|
+
className
|
|
2287
|
+
},
|
|
2288
|
+
children
|
|
2289
|
+
);
|
|
2290
|
+
return /* @__PURE__ */ import_react33.default.createElement(InputFieldContext.Provider, { value: contextValue }, renderPopoverContent ? /* @__PURE__ */ import_react33.default.createElement(
|
|
2267
2291
|
Popover,
|
|
2268
2292
|
{
|
|
2269
2293
|
open: true,
|
|
@@ -2279,15 +2303,15 @@ function InputFieldRoot({
|
|
|
2279
2303
|
event.stopPropagation();
|
|
2280
2304
|
}
|
|
2281
2305
|
},
|
|
2282
|
-
measuredWidth && /* @__PURE__ */
|
|
2306
|
+
measuredWidth && /* @__PURE__ */ import_react33.default.createElement(Stack.V, { width: measuredWidth, overflow: "hidden" }, renderPopoverContent({ width: measuredWidth }))
|
|
2283
2307
|
) : rootElement);
|
|
2284
2308
|
}
|
|
2285
2309
|
var InputField;
|
|
2286
2310
|
((InputField2) => {
|
|
2287
|
-
InputField2.Root = (0,
|
|
2288
|
-
InputField2.Input = (0,
|
|
2289
|
-
InputField2.Typeahead = (0,
|
|
2290
|
-
InputField2.NumberInput = (0,
|
|
2311
|
+
InputField2.Root = (0, import_react33.memo)(InputFieldRoot);
|
|
2312
|
+
InputField2.Input = (0, import_react33.memo)(InputFieldInput);
|
|
2313
|
+
InputField2.Typeahead = (0, import_react33.memo)(InputFieldTypeahead);
|
|
2314
|
+
InputField2.NumberInput = (0, import_react33.memo)(InputFieldNumberInput);
|
|
2291
2315
|
InputField2.DropdownMenu = InputFieldDropdownMenu;
|
|
2292
2316
|
InputField2.Button = InputFieldButton;
|
|
2293
2317
|
InputField2.Label = InputFieldLabel;
|
|
@@ -2311,24 +2335,24 @@ function createDeferredPromise() {
|
|
|
2311
2335
|
});
|
|
2312
2336
|
return { promise, resolve, reject };
|
|
2313
2337
|
}
|
|
2314
|
-
var DialogContext = (0,
|
|
2338
|
+
var DialogContext = (0, import_react34.createContext)(void 0);
|
|
2315
2339
|
var DialogProvider = function DialogProvider2({
|
|
2316
2340
|
children
|
|
2317
2341
|
}) {
|
|
2318
|
-
const [contents, setContents] = (0,
|
|
2342
|
+
const [contents, setContents] = (0, import_react34.useState)();
|
|
2319
2343
|
const isOpen = !!contents;
|
|
2320
|
-
const close = (0,
|
|
2344
|
+
const close = (0, import_react34.useCallback)(() => {
|
|
2321
2345
|
if (!contents)
|
|
2322
2346
|
return;
|
|
2323
2347
|
contents.resolve(void 0);
|
|
2324
2348
|
}, [contents]);
|
|
2325
|
-
const submit = (0,
|
|
2349
|
+
const submit = (0, import_react34.useCallback)(() => {
|
|
2326
2350
|
if (!contents || !contents.inputValue)
|
|
2327
2351
|
return;
|
|
2328
2352
|
contents.resolve(contents.inputValue);
|
|
2329
2353
|
setContents(void 0);
|
|
2330
2354
|
}, [contents]);
|
|
2331
|
-
const open = (0,
|
|
2355
|
+
const open = (0, import_react34.useCallback)(
|
|
2332
2356
|
(title, inputValue = "") => {
|
|
2333
2357
|
const { promise, resolve } = createDeferredPromise();
|
|
2334
2358
|
setContents({
|
|
@@ -2343,7 +2367,7 @@ var DialogProvider = function DialogProvider2({
|
|
|
2343
2367
|
},
|
|
2344
2368
|
[]
|
|
2345
2369
|
);
|
|
2346
|
-
const handleKeyDown = (0,
|
|
2370
|
+
const handleKeyDown = (0, import_react34.useCallback)(
|
|
2347
2371
|
(event) => {
|
|
2348
2372
|
if (event.key !== "Enter")
|
|
2349
2373
|
return;
|
|
@@ -2353,29 +2377,29 @@ var DialogProvider = function DialogProvider2({
|
|
|
2353
2377
|
},
|
|
2354
2378
|
[submit]
|
|
2355
2379
|
);
|
|
2356
|
-
const inputRef = (0,
|
|
2357
|
-
const dialogRef = (0,
|
|
2358
|
-
const containsElement = (0,
|
|
2380
|
+
const inputRef = (0, import_react34.useRef)(null);
|
|
2381
|
+
const dialogRef = (0, import_react34.useRef)(null);
|
|
2382
|
+
const containsElement = (0, import_react34.useCallback)((element) => {
|
|
2359
2383
|
if (!dialogRef.current)
|
|
2360
2384
|
return false;
|
|
2361
2385
|
return dialogRef.current.containsElement(element);
|
|
2362
2386
|
}, []);
|
|
2363
|
-
return /* @__PURE__ */
|
|
2387
|
+
return /* @__PURE__ */ import_react34.default.createElement(import_react34.default.Fragment, null, /* @__PURE__ */ import_react34.default.createElement(
|
|
2364
2388
|
DialogContext.Provider,
|
|
2365
2389
|
{
|
|
2366
|
-
value: (0,
|
|
2390
|
+
value: (0, import_react34.useMemo)(
|
|
2367
2391
|
() => ({ openInputDialog: open, containsElement }),
|
|
2368
2392
|
[containsElement, open]
|
|
2369
2393
|
)
|
|
2370
2394
|
},
|
|
2371
2395
|
children
|
|
2372
|
-
), /* @__PURE__ */
|
|
2396
|
+
), /* @__PURE__ */ import_react34.default.createElement(
|
|
2373
2397
|
Dialog,
|
|
2374
2398
|
{
|
|
2375
2399
|
ref: dialogRef,
|
|
2376
2400
|
title: contents?.title,
|
|
2377
2401
|
open: isOpen,
|
|
2378
|
-
onOpenChange: (0,
|
|
2402
|
+
onOpenChange: (0, import_react34.useCallback)(
|
|
2379
2403
|
(isOpen2) => {
|
|
2380
2404
|
if (!isOpen2) {
|
|
2381
2405
|
close();
|
|
@@ -2383,14 +2407,14 @@ var DialogProvider = function DialogProvider2({
|
|
|
2383
2407
|
},
|
|
2384
2408
|
[close]
|
|
2385
2409
|
),
|
|
2386
|
-
onOpenAutoFocus: (0,
|
|
2410
|
+
onOpenAutoFocus: (0, import_react34.useCallback)((event) => {
|
|
2387
2411
|
event.stopPropagation();
|
|
2388
2412
|
event.preventDefault();
|
|
2389
2413
|
inputRef.current?.focus();
|
|
2390
2414
|
inputRef.current?.setSelectionRange(0, inputRef.current.value.length);
|
|
2391
2415
|
}, [])
|
|
2392
2416
|
},
|
|
2393
|
-
/* @__PURE__ */
|
|
2417
|
+
/* @__PURE__ */ import_react34.default.createElement(InputField.Root, null, /* @__PURE__ */ import_react34.default.createElement(
|
|
2394
2418
|
InputField.Input,
|
|
2395
2419
|
{
|
|
2396
2420
|
ref: inputRef,
|
|
@@ -2406,12 +2430,12 @@ var DialogProvider = function DialogProvider2({
|
|
|
2406
2430
|
onKeyDown: handleKeyDown
|
|
2407
2431
|
}
|
|
2408
2432
|
)),
|
|
2409
|
-
/* @__PURE__ */
|
|
2410
|
-
/* @__PURE__ */
|
|
2433
|
+
/* @__PURE__ */ import_react34.default.createElement(Spacer.Vertical, { size: 20 }),
|
|
2434
|
+
/* @__PURE__ */ import_react34.default.createElement(Row, null, /* @__PURE__ */ import_react34.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react34.default.createElement(Button, { onClick: close }, "Cancel"), /* @__PURE__ */ import_react34.default.createElement(Spacer.Horizontal, { size: 16 }), /* @__PURE__ */ import_react34.default.createElement(Button, { disabled: !contents?.inputValue, onClick: submit }, "Submit"))
|
|
2411
2435
|
));
|
|
2412
2436
|
};
|
|
2413
2437
|
function useDialog() {
|
|
2414
|
-
const value = (0,
|
|
2438
|
+
const value = (0, import_react34.useContext)(DialogContext);
|
|
2415
2439
|
if (!value) {
|
|
2416
2440
|
throw new Error("Missing DialogProvider");
|
|
2417
2441
|
}
|
|
@@ -2426,20 +2450,20 @@ function useDialogContainsElement() {
|
|
|
2426
2450
|
|
|
2427
2451
|
// src/contexts/FloatingWindowContext.tsx
|
|
2428
2452
|
var import_noya_utils5 = require("@noya-app/noya-utils");
|
|
2429
|
-
var
|
|
2453
|
+
var import_react35 = __toESM(require("react"));
|
|
2430
2454
|
var import_react_dom = require("react-dom");
|
|
2431
|
-
var FloatingWindowContext = (0,
|
|
2432
|
-
var CurrentWindowContext = (0,
|
|
2455
|
+
var FloatingWindowContext = (0, import_react35.createContext)(void 0);
|
|
2456
|
+
var CurrentWindowContext = (0, import_react35.createContext)(void 0);
|
|
2433
2457
|
var FloatingWindowProvider = ({
|
|
2434
2458
|
children
|
|
2435
2459
|
}) => {
|
|
2436
|
-
const [windows, setWindows] = (0,
|
|
2437
|
-
const contextValue = (0,
|
|
2460
|
+
const [windows, setWindows] = (0, import_react35.useState)({});
|
|
2461
|
+
const contextValue = (0, import_react35.useMemo)(() => {
|
|
2438
2462
|
const createWindow = (element) => {
|
|
2439
2463
|
const id = (0, import_noya_utils5.uuid)();
|
|
2440
2464
|
setWindows((windows2) => ({
|
|
2441
2465
|
...windows2,
|
|
2442
|
-
[id]: /* @__PURE__ */
|
|
2466
|
+
[id]: /* @__PURE__ */ import_react35.default.createElement(CurrentWindowContext.Provider, { value: { id } }, element)
|
|
2443
2467
|
}));
|
|
2444
2468
|
return id;
|
|
2445
2469
|
};
|
|
@@ -2451,12 +2475,12 @@ var FloatingWindowProvider = ({
|
|
|
2451
2475
|
};
|
|
2452
2476
|
return { createWindow, closeWindow };
|
|
2453
2477
|
}, []);
|
|
2454
|
-
return /* @__PURE__ */
|
|
2478
|
+
return /* @__PURE__ */ import_react35.default.createElement(FloatingWindowContext.Provider, { value: contextValue }, children, Object.entries(windows).map(
|
|
2455
2479
|
([id, element]) => (0, import_react_dom.createPortal)(element, document.body, id)
|
|
2456
2480
|
));
|
|
2457
2481
|
};
|
|
2458
2482
|
var useFloatingWindowManager = () => {
|
|
2459
|
-
const context = (0,
|
|
2483
|
+
const context = (0, import_react35.useContext)(FloatingWindowContext);
|
|
2460
2484
|
if (!context) {
|
|
2461
2485
|
throw new Error(
|
|
2462
2486
|
"useFloatingWindow must be used within a FloatingWindowProvider"
|
|
@@ -2465,7 +2489,7 @@ var useFloatingWindowManager = () => {
|
|
|
2465
2489
|
return context;
|
|
2466
2490
|
};
|
|
2467
2491
|
var useCurrentFloatingWindowInternal = () => {
|
|
2468
|
-
const context = (0,
|
|
2492
|
+
const context = (0, import_react35.useContext)(CurrentWindowContext);
|
|
2469
2493
|
if (!context) {
|
|
2470
2494
|
throw new Error("useCurrentWindow must be used within a FloatingWindow");
|
|
2471
2495
|
}
|
|
@@ -2473,7 +2497,7 @@ var useCurrentFloatingWindowInternal = () => {
|
|
|
2473
2497
|
};
|
|
2474
2498
|
|
|
2475
2499
|
// src/contexts/DesignSystemConfiguration.tsx
|
|
2476
|
-
var DesignSystemThemeProvider = (0,
|
|
2500
|
+
var DesignSystemThemeProvider = (0, import_react36.memo)(
|
|
2477
2501
|
function DesignSystemThemeProvider2({
|
|
2478
2502
|
children,
|
|
2479
2503
|
theme
|
|
@@ -2484,50 +2508,50 @@ var DesignSystemThemeProvider = (0, import_react35.memo)(
|
|
|
2484
2508
|
} catch (e) {
|
|
2485
2509
|
}
|
|
2486
2510
|
if (theme) {
|
|
2487
|
-
return /* @__PURE__ */
|
|
2511
|
+
return /* @__PURE__ */ import_react36.default.createElement(import_styled_components15.ThemeProvider, { theme }, children);
|
|
2488
2512
|
} else if (parentTheme) {
|
|
2489
2513
|
return children;
|
|
2490
2514
|
} else {
|
|
2491
|
-
return /* @__PURE__ */
|
|
2515
|
+
return /* @__PURE__ */ import_react36.default.createElement(import_styled_components15.ThemeProvider, { theme: light_exports }, children);
|
|
2492
2516
|
}
|
|
2493
2517
|
}
|
|
2494
2518
|
);
|
|
2495
|
-
var DesignSystemConfigurationContext = (0,
|
|
2519
|
+
var DesignSystemConfigurationContext = (0, import_react36.createContext)({
|
|
2496
2520
|
platform: "key"
|
|
2497
2521
|
});
|
|
2498
|
-
var DesignSystemConfigurationProvider = (0,
|
|
2522
|
+
var DesignSystemConfigurationProvider = (0, import_react36.memo)(
|
|
2499
2523
|
function DesignSystemConfigurationProvider2({
|
|
2500
2524
|
children,
|
|
2501
2525
|
theme,
|
|
2502
2526
|
platform
|
|
2503
2527
|
}) {
|
|
2504
|
-
const [internalPlatform, setInternalPlatform] = (0,
|
|
2528
|
+
const [internalPlatform, setInternalPlatform] = (0, import_react36.useState)(
|
|
2505
2529
|
platform ?? "key"
|
|
2506
2530
|
);
|
|
2507
|
-
(0,
|
|
2531
|
+
(0, import_react36.useEffect)(() => {
|
|
2508
2532
|
if (platform !== void 0)
|
|
2509
2533
|
return;
|
|
2510
2534
|
if (typeof navigator !== "undefined") {
|
|
2511
2535
|
setInternalPlatform((0, import_noya_keymap3.getCurrentPlatform)(navigator));
|
|
2512
2536
|
}
|
|
2513
2537
|
}, [platform]);
|
|
2514
|
-
const contextValue = (0,
|
|
2538
|
+
const contextValue = (0, import_react36.useMemo)(
|
|
2515
2539
|
() => ({ platform: platform ?? internalPlatform }),
|
|
2516
2540
|
[platform, internalPlatform]
|
|
2517
2541
|
);
|
|
2518
2542
|
const resolvedTheme = theme === "light" ? light_exports : theme === "dark" ? dark_exports : theme ?? light_exports;
|
|
2519
|
-
return /* @__PURE__ */
|
|
2543
|
+
return /* @__PURE__ */ import_react36.default.createElement(DesignSystemConfigurationContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react36.default.createElement(import_styled_components15.ThemeProvider, { theme: resolvedTheme }, /* @__PURE__ */ import_react36.default.createElement(DialogProvider, null, /* @__PURE__ */ import_react36.default.createElement(ToastProvider, null, /* @__PURE__ */ import_react36.default.createElement(FloatingWindowProvider, null, children)))));
|
|
2520
2544
|
}
|
|
2521
2545
|
);
|
|
2522
2546
|
function useDesignSystemConfiguration() {
|
|
2523
|
-
return (0,
|
|
2547
|
+
return (0, import_react36.useContext)(DesignSystemConfigurationContext);
|
|
2524
2548
|
}
|
|
2525
2549
|
function useDesignSystemTheme() {
|
|
2526
2550
|
return (0, import_styled_components15.useTheme)();
|
|
2527
2551
|
}
|
|
2528
2552
|
|
|
2529
2553
|
// src/hooks/useHover.ts
|
|
2530
|
-
var
|
|
2554
|
+
var React22 = __toESM(require("react"));
|
|
2531
2555
|
var globalIgnoreEmulatedMouseEvents = false;
|
|
2532
2556
|
var hoverCount = 0;
|
|
2533
2557
|
function setGlobalIgnoreEmulatedMouseEvents() {
|
|
@@ -2557,13 +2581,13 @@ function setupGlobalTouchEvents() {
|
|
|
2557
2581
|
}
|
|
2558
2582
|
function useHover(props = {}) {
|
|
2559
2583
|
const { onHoverStart, onHoverChange, onHoverEnd, isDisabled } = props;
|
|
2560
|
-
const [isHovered, setHovered] =
|
|
2561
|
-
const state =
|
|
2584
|
+
const [isHovered, setHovered] = React22.useState(false);
|
|
2585
|
+
const state = React22.useRef({
|
|
2562
2586
|
isHovered: false,
|
|
2563
2587
|
ignoreEmulatedMouseEvents: false
|
|
2564
2588
|
}).current;
|
|
2565
|
-
|
|
2566
|
-
const hoverProps =
|
|
2589
|
+
React22.useEffect(setupGlobalTouchEvents, []);
|
|
2590
|
+
const hoverProps = React22.useMemo(
|
|
2567
2591
|
function getHoverProps() {
|
|
2568
2592
|
function triggerHoverStart(event, pointerType) {
|
|
2569
2593
|
if (isDisabled || pointerType === "touch" || state.isHovered) {
|
|
@@ -2704,8 +2728,8 @@ var AddElement = (0, import_styled_components16.default)(import_noya_icons3.Plus
|
|
|
2704
2728
|
opacity: 0.85
|
|
2705
2729
|
}
|
|
2706
2730
|
}));
|
|
2707
|
-
var Chip = (0,
|
|
2708
|
-
(0,
|
|
2731
|
+
var Chip = (0, import_react37.memo)(
|
|
2732
|
+
(0, import_react37.forwardRef)(function Chip2({
|
|
2709
2733
|
colorScheme,
|
|
2710
2734
|
children,
|
|
2711
2735
|
deletable,
|
|
@@ -2728,7 +2752,7 @@ var Chip = (0, import_react36.memo)(
|
|
|
2728
2752
|
});
|
|
2729
2753
|
const handleClick = !children && !deletable && addable ? onAdd : onClick;
|
|
2730
2754
|
const color = colorScheme === "primary" ? theme.colors.primary : colorScheme === "secondary" ? theme.colors.secondary : theme.colors.text;
|
|
2731
|
-
return /* @__PURE__ */
|
|
2755
|
+
return /* @__PURE__ */ import_react37.default.createElement(
|
|
2732
2756
|
ChipElement,
|
|
2733
2757
|
{
|
|
2734
2758
|
ref: forwardedRef,
|
|
@@ -2742,7 +2766,7 @@ var Chip = (0, import_react36.memo)(
|
|
|
2742
2766
|
tabIndex,
|
|
2743
2767
|
...rest
|
|
2744
2768
|
},
|
|
2745
|
-
addable && /* @__PURE__ */
|
|
2769
|
+
addable && /* @__PURE__ */ import_react37.default.createElement(
|
|
2746
2770
|
AddElement,
|
|
2747
2771
|
{
|
|
2748
2772
|
size: size2,
|
|
@@ -2755,7 +2779,7 @@ var Chip = (0, import_react36.memo)(
|
|
|
2755
2779
|
}
|
|
2756
2780
|
),
|
|
2757
2781
|
children,
|
|
2758
|
-
deletable && /* @__PURE__ */
|
|
2782
|
+
deletable && /* @__PURE__ */ import_react37.default.createElement(
|
|
2759
2783
|
DeleteElement,
|
|
2760
2784
|
{
|
|
2761
2785
|
size: size2,
|
|
@@ -2775,7 +2799,7 @@ var Chip = (0, import_react36.memo)(
|
|
|
2775
2799
|
var import_noya_icons4 = require("@noya-app/noya-icons");
|
|
2776
2800
|
var import_noya_keymap4 = require("@noya-app/noya-keymap");
|
|
2777
2801
|
var RadixContextMenu = __toESM(require("@radix-ui/react-context-menu"));
|
|
2778
|
-
var
|
|
2802
|
+
var import_react38 = __toESM(require("react"));
|
|
2779
2803
|
var import_styled_components17 = __toESM(require("styled-components"));
|
|
2780
2804
|
var SeparatorElement2 = (0, import_styled_components17.default)(RadixContextMenu.Separator)(
|
|
2781
2805
|
styles.separatorStyle
|
|
@@ -2787,7 +2811,7 @@ var CheckboxItemElement2 = (0, import_styled_components17.default)(RadixContextM
|
|
|
2787
2811
|
var StyledItemIndicator2 = (0, import_styled_components17.default)(RadixContextMenu.ItemIndicator)(
|
|
2788
2812
|
styles.itemIndicatorStyle
|
|
2789
2813
|
);
|
|
2790
|
-
var ContextMenuItem2 = (0,
|
|
2814
|
+
var ContextMenuItem2 = (0, import_react38.memo)(function ContextMenuItem3({
|
|
2791
2815
|
value,
|
|
2792
2816
|
children,
|
|
2793
2817
|
onSelect,
|
|
@@ -2798,42 +2822,42 @@ var ContextMenuItem2 = (0, import_react37.memo)(function ContextMenuItem3({
|
|
|
2798
2822
|
items,
|
|
2799
2823
|
shortcut
|
|
2800
2824
|
}) {
|
|
2801
|
-
const handlePointerDown = (0,
|
|
2825
|
+
const handlePointerDown = (0, import_react38.useCallback)(
|
|
2802
2826
|
(event) => event.stopPropagation(),
|
|
2803
2827
|
[]
|
|
2804
2828
|
);
|
|
2805
|
-
const handleSelectItem = (0,
|
|
2829
|
+
const handleSelectItem = (0, import_react38.useCallback)(() => {
|
|
2806
2830
|
if (!value)
|
|
2807
2831
|
return;
|
|
2808
2832
|
onSelect(value);
|
|
2809
2833
|
}, [onSelect, value]);
|
|
2810
2834
|
if (checked) {
|
|
2811
|
-
return /* @__PURE__ */
|
|
2835
|
+
return /* @__PURE__ */ import_react38.default.createElement(
|
|
2812
2836
|
CheckboxItemElement2,
|
|
2813
2837
|
{
|
|
2814
2838
|
checked,
|
|
2815
2839
|
disabled,
|
|
2816
2840
|
onSelect: handleSelectItem
|
|
2817
2841
|
},
|
|
2818
|
-
/* @__PURE__ */
|
|
2842
|
+
/* @__PURE__ */ import_react38.default.createElement(StyledItemIndicator2, null, /* @__PURE__ */ import_react38.default.createElement(import_noya_icons4.CheckIcon, null)),
|
|
2819
2843
|
children
|
|
2820
2844
|
);
|
|
2821
2845
|
}
|
|
2822
|
-
const element = /* @__PURE__ */
|
|
2846
|
+
const element = /* @__PURE__ */ import_react38.default.createElement(
|
|
2823
2847
|
ItemElement2,
|
|
2824
2848
|
{
|
|
2825
2849
|
disabled,
|
|
2826
2850
|
onSelect: handleSelectItem,
|
|
2827
2851
|
onPointerDown: handlePointerDown
|
|
2828
2852
|
},
|
|
2829
|
-
indented && /* @__PURE__ */
|
|
2830
|
-
icon && /* @__PURE__ */
|
|
2853
|
+
indented && /* @__PURE__ */ import_react38.default.createElement(Spacer.Horizontal, { size: CHECKBOX_WIDTH - CHECKBOX_RIGHT_INSET }),
|
|
2854
|
+
icon && /* @__PURE__ */ import_react38.default.createElement(import_react38.default.Fragment, null, renderIcon(icon), /* @__PURE__ */ import_react38.default.createElement(Spacer.Horizontal, { size: 8 })),
|
|
2831
2855
|
children,
|
|
2832
|
-
shortcut && /* @__PURE__ */
|
|
2833
|
-
items && items.length > 0 && /* @__PURE__ */
|
|
2856
|
+
shortcut && /* @__PURE__ */ import_react38.default.createElement(import_react38.default.Fragment, null, /* @__PURE__ */ import_react38.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react38.default.createElement(Spacer.Horizontal, { size: 24 }), /* @__PURE__ */ import_react38.default.createElement(KeyboardShortcut, { shortcut })),
|
|
2857
|
+
items && items.length > 0 && /* @__PURE__ */ import_react38.default.createElement(import_react38.default.Fragment, null, /* @__PURE__ */ import_react38.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react38.default.createElement(Spacer.Horizontal, { size: 16 }), /* @__PURE__ */ import_react38.default.createElement(import_noya_icons4.ChevronRightIcon, null))
|
|
2834
2858
|
);
|
|
2835
2859
|
if (items && items.length > 0) {
|
|
2836
|
-
return /* @__PURE__ */
|
|
2860
|
+
return /* @__PURE__ */ import_react38.default.createElement(ContextMenuRoot, { isNested: true, items, onSelect }, element);
|
|
2837
2861
|
} else {
|
|
2838
2862
|
return element;
|
|
2839
2863
|
}
|
|
@@ -2851,19 +2875,19 @@ function ContextMenuRoot({
|
|
|
2851
2875
|
const hasCheckedItem = items.some(
|
|
2852
2876
|
(item) => item !== SEPARATOR_ITEM && item.checked
|
|
2853
2877
|
);
|
|
2854
|
-
const keymap = (0,
|
|
2878
|
+
const keymap = (0, import_react38.useMemo)(
|
|
2855
2879
|
() => isNested || shouldBindKeyboardShortcuts === false ? {} : getKeyboardShortcutsForMenuItems(items, onSelect),
|
|
2856
2880
|
[isNested, items, onSelect, shouldBindKeyboardShortcuts]
|
|
2857
2881
|
);
|
|
2858
2882
|
(0, import_noya_keymap4.useKeyboardShortcuts)(keymap);
|
|
2859
|
-
const onPointerDown = (0,
|
|
2883
|
+
const onPointerDown = (0, import_react38.useCallback)((event) => {
|
|
2860
2884
|
event.preventDefault();
|
|
2861
2885
|
}, []);
|
|
2862
2886
|
const RootComponent = isNested ? RadixContextMenu.Sub : RadixContextMenu.Root;
|
|
2863
2887
|
const TriggerComponent = isNested ? RadixContextMenu.SubTrigger : RadixContextMenu.Trigger;
|
|
2864
2888
|
const ContentComponent = isNested ? SubContent4 : Content8;
|
|
2865
|
-
return /* @__PURE__ */
|
|
2866
|
-
(item, index) => item === SEPARATOR_ITEM ? /* @__PURE__ */
|
|
2889
|
+
return /* @__PURE__ */ import_react38.default.createElement(RootComponent, { onOpenChange }, /* @__PURE__ */ import_react38.default.createElement(TriggerComponent, { asChild: true, onPointerDown }, children), /* @__PURE__ */ import_react38.default.createElement(RadixContextMenu.Portal, null, /* @__PURE__ */ import_react38.default.createElement(ContentComponent, null, items.map(
|
|
2890
|
+
(item, index) => item === SEPARATOR_ITEM ? /* @__PURE__ */ import_react38.default.createElement(SeparatorElement2, { key: index }) : /* @__PURE__ */ import_react38.default.createElement(
|
|
2867
2891
|
ContextMenuItem2,
|
|
2868
2892
|
{
|
|
2869
2893
|
key: item.value ?? index,
|
|
@@ -2880,22 +2904,22 @@ function ContextMenuRoot({
|
|
|
2880
2904
|
)
|
|
2881
2905
|
))));
|
|
2882
2906
|
}
|
|
2883
|
-
var ContextMenu = (0,
|
|
2907
|
+
var ContextMenu = (0, import_react38.memo)(ContextMenuRoot);
|
|
2884
2908
|
|
|
2885
2909
|
// src/components/Divider.tsx
|
|
2886
|
-
var
|
|
2910
|
+
var import_react39 = __toESM(require("react"));
|
|
2887
2911
|
var import_styled_components18 = __toESM(require("styled-components"));
|
|
2888
2912
|
var DividerContainer = import_styled_components18.default.div(({ theme, $variant = "normal", $orientation, $overflow = 0 }) => ({
|
|
2889
2913
|
...$orientation === "horizontal" ? { height: "1px", minHeight: "1px", margin: `0px -${$overflow}px` } : { width: "1px", minWidth: "1px", margin: `-${$overflow}px 0px` },
|
|
2890
2914
|
background: $variant === "strong" ? theme.colors.dividerStrong : $variant === "subtle" ? theme.colors.dividerSubtle : theme.colors.divider,
|
|
2891
2915
|
alignSelf: "stretch"
|
|
2892
2916
|
}));
|
|
2893
|
-
var Divider = (0,
|
|
2917
|
+
var Divider = (0, import_react39.memo)(function Divider2({
|
|
2894
2918
|
variant,
|
|
2895
2919
|
overflow,
|
|
2896
2920
|
...props
|
|
2897
2921
|
}) {
|
|
2898
|
-
return /* @__PURE__ */
|
|
2922
|
+
return /* @__PURE__ */ import_react39.default.createElement(
|
|
2899
2923
|
DividerContainer,
|
|
2900
2924
|
{
|
|
2901
2925
|
$orientation: "horizontal",
|
|
@@ -2905,12 +2929,12 @@ var Divider = (0, import_react38.memo)(function Divider2({
|
|
|
2905
2929
|
}
|
|
2906
2930
|
);
|
|
2907
2931
|
});
|
|
2908
|
-
var DividerVertical = (0,
|
|
2932
|
+
var DividerVertical = (0, import_react39.memo)(function DividerVertical2({
|
|
2909
2933
|
variant,
|
|
2910
2934
|
overflow,
|
|
2911
2935
|
...props
|
|
2912
2936
|
}) {
|
|
2913
|
-
return /* @__PURE__ */
|
|
2937
|
+
return /* @__PURE__ */ import_react39.default.createElement(
|
|
2914
2938
|
DividerContainer,
|
|
2915
2939
|
{
|
|
2916
2940
|
$orientation: "vertical",
|
|
@@ -2923,7 +2947,7 @@ var DividerVertical = (0, import_react38.memo)(function DividerVertical2({
|
|
|
2923
2947
|
|
|
2924
2948
|
// src/components/DraggableMenuButton.tsx
|
|
2925
2949
|
var import_noya_icons5 = require("@noya-app/noya-icons");
|
|
2926
|
-
var
|
|
2950
|
+
var import_react40 = __toESM(require("react"));
|
|
2927
2951
|
var import_styled_components19 = __toESM(require("styled-components"));
|
|
2928
2952
|
var DotButtonElement = import_styled_components19.default.div(({ theme }) => ({
|
|
2929
2953
|
cursor: "pointer",
|
|
@@ -2943,15 +2967,15 @@ var TriggerElement = import_styled_components19.default.div({
|
|
|
2943
2967
|
pointerEvents: "none",
|
|
2944
2968
|
height: "15px"
|
|
2945
2969
|
});
|
|
2946
|
-
var DraggableMenuButton = (0,
|
|
2970
|
+
var DraggableMenuButton = (0, import_react40.memo)(function DraggableMenuButton2({
|
|
2947
2971
|
items,
|
|
2948
2972
|
onSelect,
|
|
2949
2973
|
isVisible = true
|
|
2950
2974
|
}) {
|
|
2951
2975
|
const color = useDesignSystemTheme().colors.icon;
|
|
2952
|
-
const [open, setOpen] = (0,
|
|
2953
|
-
const [downPosition, setDownPosition] =
|
|
2954
|
-
const handlePointerDownCapture = (0,
|
|
2976
|
+
const [open, setOpen] = (0, import_react40.useState)(false);
|
|
2977
|
+
const [downPosition, setDownPosition] = import_react40.default.useState(null);
|
|
2978
|
+
const handlePointerDownCapture = (0, import_react40.useCallback)(
|
|
2955
2979
|
(event) => {
|
|
2956
2980
|
if (open) {
|
|
2957
2981
|
setDownPosition(null);
|
|
@@ -2964,7 +2988,7 @@ var DraggableMenuButton = (0, import_react39.memo)(function DraggableMenuButton2
|
|
|
2964
2988
|
},
|
|
2965
2989
|
[open]
|
|
2966
2990
|
);
|
|
2967
|
-
const handlePointerUp = (0,
|
|
2991
|
+
const handlePointerUp = (0, import_react40.useCallback)(
|
|
2968
2992
|
(event) => {
|
|
2969
2993
|
if (open || !downPosition) {
|
|
2970
2994
|
setDownPosition(null);
|
|
@@ -2980,14 +3004,14 @@ var DraggableMenuButton = (0, import_react39.memo)(function DraggableMenuButton2
|
|
|
2980
3004
|
},
|
|
2981
3005
|
[downPosition, open]
|
|
2982
3006
|
);
|
|
2983
|
-
const handleOpenChange = (0,
|
|
3007
|
+
const handleOpenChange = (0, import_react40.useCallback)(
|
|
2984
3008
|
(isOpen) => {
|
|
2985
3009
|
if (!isOpen)
|
|
2986
3010
|
setOpen(false);
|
|
2987
3011
|
},
|
|
2988
3012
|
[setOpen]
|
|
2989
3013
|
);
|
|
2990
|
-
return /* @__PURE__ */
|
|
3014
|
+
return /* @__PURE__ */ import_react40.default.createElement(
|
|
2991
3015
|
DotButtonElement,
|
|
2992
3016
|
{
|
|
2993
3017
|
onPointerDownCapture: handlePointerDownCapture,
|
|
@@ -2997,7 +3021,7 @@ var DraggableMenuButton = (0, import_react39.memo)(function DraggableMenuButton2
|
|
|
2997
3021
|
event.preventDefault();
|
|
2998
3022
|
}
|
|
2999
3023
|
},
|
|
3000
|
-
items && onSelect ? /* @__PURE__ */
|
|
3024
|
+
items && onSelect ? /* @__PURE__ */ import_react40.default.createElement(
|
|
3001
3025
|
DropdownMenu,
|
|
3002
3026
|
{
|
|
3003
3027
|
open,
|
|
@@ -3006,13 +3030,13 @@ var DraggableMenuButton = (0, import_react39.memo)(function DraggableMenuButton2
|
|
|
3006
3030
|
onSelect,
|
|
3007
3031
|
shouldBindKeyboardShortcuts: false
|
|
3008
3032
|
},
|
|
3009
|
-
/* @__PURE__ */
|
|
3033
|
+
/* @__PURE__ */ import_react40.default.createElement(TriggerElement, null, /* @__PURE__ */ import_react40.default.createElement(
|
|
3010
3034
|
import_noya_icons5.DragHandleDots2Icon,
|
|
3011
3035
|
{
|
|
3012
3036
|
color: isVisible || open ? color : "transparent"
|
|
3013
3037
|
}
|
|
3014
3038
|
))
|
|
3015
|
-
) : /* @__PURE__ */
|
|
3039
|
+
) : /* @__PURE__ */ import_react40.default.createElement(
|
|
3016
3040
|
import_noya_icons5.DragHandleDots2Icon,
|
|
3017
3041
|
{
|
|
3018
3042
|
color: isVisible || open ? color : "transparent"
|
|
@@ -3022,7 +3046,7 @@ var DraggableMenuButton = (0, import_react39.memo)(function DraggableMenuButton2
|
|
|
3022
3046
|
});
|
|
3023
3047
|
|
|
3024
3048
|
// src/components/FillInputField.tsx
|
|
3025
|
-
var
|
|
3049
|
+
var import_react44 = __toESM(require("react"));
|
|
3026
3050
|
var import_styled_components21 = __toESM(require("styled-components"));
|
|
3027
3051
|
|
|
3028
3052
|
// ../noya-file-format/src/types.ts
|
|
@@ -3348,26 +3372,26 @@ var ClassValue = /* @__PURE__ */ ((ClassValue2) => {
|
|
|
3348
3372
|
})(ClassValue || {});
|
|
3349
3373
|
|
|
3350
3374
|
// src/components/FillPreviewBackground.tsx
|
|
3351
|
-
var
|
|
3375
|
+
var import_react43 = __toESM(require("react"));
|
|
3352
3376
|
var import_styled_components20 = __toESM(require("styled-components"));
|
|
3353
3377
|
|
|
3354
3378
|
// src/contexts/ImageDataContext.tsx
|
|
3355
|
-
var
|
|
3356
|
-
var ImageDataContext = (0,
|
|
3379
|
+
var import_react41 = __toESM(require("react"));
|
|
3380
|
+
var ImageDataContext = (0, import_react41.createContext)(
|
|
3357
3381
|
void 0
|
|
3358
3382
|
);
|
|
3359
|
-
var ImageDataProvider = (0,
|
|
3383
|
+
var ImageDataProvider = (0, import_react41.memo)(function ImageDataProvider2({
|
|
3360
3384
|
children,
|
|
3361
3385
|
getImageData
|
|
3362
3386
|
}) {
|
|
3363
|
-
const contextValue = (0,
|
|
3387
|
+
const contextValue = (0, import_react41.useMemo)(
|
|
3364
3388
|
() => ({ getImageData: getImageData ?? (() => void 0) }),
|
|
3365
3389
|
[getImageData]
|
|
3366
3390
|
);
|
|
3367
|
-
return /* @__PURE__ */
|
|
3391
|
+
return /* @__PURE__ */ import_react41.default.createElement(ImageDataContext.Provider, { value: contextValue }, children);
|
|
3368
3392
|
});
|
|
3369
3393
|
function useImageData(ref) {
|
|
3370
|
-
const value = (0,
|
|
3394
|
+
const value = (0, import_react41.useContext)(ImageDataContext);
|
|
3371
3395
|
if (!value) {
|
|
3372
3396
|
throw new Error("Missing ImageDataProvider");
|
|
3373
3397
|
}
|
|
@@ -3375,15 +3399,15 @@ function useImageData(ref) {
|
|
|
3375
3399
|
}
|
|
3376
3400
|
|
|
3377
3401
|
// src/hooks/useObjectURL.ts
|
|
3378
|
-
var
|
|
3402
|
+
var import_react42 = require("react");
|
|
3379
3403
|
function useObjectURL(object) {
|
|
3380
|
-
const objectURL = (0,
|
|
3404
|
+
const objectURL = (0, import_react42.useMemo)(() => {
|
|
3381
3405
|
if (object instanceof Blob)
|
|
3382
3406
|
return URL.createObjectURL(object);
|
|
3383
3407
|
const bytes = object instanceof Uint8Array ? object : object !== void 0 ? new Uint8Array(object) : new Uint8Array();
|
|
3384
3408
|
return URL.createObjectURL(new Blob([bytes]));
|
|
3385
3409
|
}, [object]);
|
|
3386
|
-
(0,
|
|
3410
|
+
(0, import_react42.useLayoutEffect)(() => {
|
|
3387
3411
|
return () => URL.revokeObjectURL(objectURL);
|
|
3388
3412
|
}, [objectURL]);
|
|
3389
3413
|
return objectURL;
|
|
@@ -3439,9 +3463,9 @@ var Background = import_styled_components20.default.span(({ background }) => ({
|
|
|
3439
3463
|
position: "absolute",
|
|
3440
3464
|
inset: 0
|
|
3441
3465
|
}));
|
|
3442
|
-
var HorizontalDotsBackground = (0,
|
|
3466
|
+
var HorizontalDotsBackground = (0, import_react43.memo)(function HorizontalDotsBackground2() {
|
|
3443
3467
|
const { inputBackground, placeholderDots } = (0, import_styled_components20.useTheme)().colors;
|
|
3444
|
-
const background = (0,
|
|
3468
|
+
const background = (0, import_react43.useMemo)(
|
|
3445
3469
|
() => [
|
|
3446
3470
|
`center url("data:image/svg+xml;utf8,${dotsHorizontalSvg(
|
|
3447
3471
|
placeholderDots
|
|
@@ -3450,7 +3474,7 @@ var HorizontalDotsBackground = (0, import_react42.memo)(function HorizontalDotsB
|
|
|
3450
3474
|
].join(","),
|
|
3451
3475
|
[inputBackground, placeholderDots]
|
|
3452
3476
|
);
|
|
3453
|
-
return /* @__PURE__ */
|
|
3477
|
+
return /* @__PURE__ */ import_react43.default.createElement(Background, { background });
|
|
3454
3478
|
});
|
|
3455
3479
|
function getPatternSizeAndPosition(fillType, tileScale) {
|
|
3456
3480
|
switch (fillType) {
|
|
@@ -3464,7 +3488,7 @@ function getPatternSizeAndPosition(fillType, tileScale) {
|
|
|
3464
3488
|
return "center / 100% 100%";
|
|
3465
3489
|
}
|
|
3466
3490
|
}
|
|
3467
|
-
var PatternPreviewBackground = (0,
|
|
3491
|
+
var PatternPreviewBackground = (0, import_react43.memo)(function PatternPreviewBackground2({
|
|
3468
3492
|
fillType,
|
|
3469
3493
|
tileScale,
|
|
3470
3494
|
imageRef
|
|
@@ -3472,7 +3496,7 @@ var PatternPreviewBackground = (0, import_react42.memo)(function PatternPreviewB
|
|
|
3472
3496
|
const image = useImageData(imageRef);
|
|
3473
3497
|
const url = useObjectURL(image);
|
|
3474
3498
|
const size2 = getPatternSizeAndPosition(fillType, tileScale);
|
|
3475
|
-
const background = (0,
|
|
3499
|
+
const background = (0, import_react43.useMemo)(
|
|
3476
3500
|
() => [
|
|
3477
3501
|
size2,
|
|
3478
3502
|
`url(${url})`,
|
|
@@ -3480,37 +3504,37 @@ var PatternPreviewBackground = (0, import_react42.memo)(function PatternPreviewB
|
|
|
3480
3504
|
].join(" "),
|
|
3481
3505
|
[fillType, size2, url]
|
|
3482
3506
|
);
|
|
3483
|
-
return /* @__PURE__ */
|
|
3507
|
+
return /* @__PURE__ */ import_react43.default.createElement(Background, { background });
|
|
3484
3508
|
});
|
|
3485
|
-
var ColorPreviewBackground = (0,
|
|
3509
|
+
var ColorPreviewBackground = (0, import_react43.memo)(function ColorPreviewBackground2({
|
|
3486
3510
|
color
|
|
3487
3511
|
}) {
|
|
3488
|
-
const background = (0,
|
|
3489
|
-
return /* @__PURE__ */
|
|
3512
|
+
const background = (0, import_react43.useMemo)(() => sketchColorToRgbaString(color), [color]);
|
|
3513
|
+
return /* @__PURE__ */ import_react43.default.createElement(Background, { background });
|
|
3490
3514
|
});
|
|
3491
|
-
var GradientPreviewBackground = (0,
|
|
3515
|
+
var GradientPreviewBackground = (0, import_react43.memo)(function GradientPreviewBackground2({
|
|
3492
3516
|
gradient
|
|
3493
3517
|
}) {
|
|
3494
|
-
const background = (0,
|
|
3518
|
+
const background = (0, import_react43.useMemo)(
|
|
3495
3519
|
() => getGradientBackground(gradient.stops, gradient.gradientType, 180),
|
|
3496
3520
|
[gradient.gradientType, gradient.stops]
|
|
3497
3521
|
);
|
|
3498
|
-
return /* @__PURE__ */
|
|
3522
|
+
return /* @__PURE__ */ import_react43.default.createElement(Background, { background });
|
|
3499
3523
|
});
|
|
3500
|
-
var FillPreviewBackground = (0,
|
|
3524
|
+
var FillPreviewBackground = (0, import_react43.memo)(function FillPreviewBackground2({
|
|
3501
3525
|
value
|
|
3502
3526
|
}) {
|
|
3503
3527
|
if (!value)
|
|
3504
|
-
return /* @__PURE__ */
|
|
3528
|
+
return /* @__PURE__ */ import_react43.default.createElement(HorizontalDotsBackground, null);
|
|
3505
3529
|
switch (value._class) {
|
|
3506
3530
|
case "color":
|
|
3507
|
-
return /* @__PURE__ */
|
|
3531
|
+
return /* @__PURE__ */ import_react43.default.createElement(ColorPreviewBackground, { color: value });
|
|
3508
3532
|
case "gradient":
|
|
3509
|
-
return /* @__PURE__ */
|
|
3533
|
+
return /* @__PURE__ */ import_react43.default.createElement(GradientPreviewBackground, { gradient: value });
|
|
3510
3534
|
case "pattern":
|
|
3511
3535
|
if (!value.image)
|
|
3512
3536
|
return null;
|
|
3513
|
-
return /* @__PURE__ */
|
|
3537
|
+
return /* @__PURE__ */ import_react43.default.createElement(
|
|
3514
3538
|
PatternPreviewBackground,
|
|
3515
3539
|
{
|
|
3516
3540
|
fillType: value.patternFillType,
|
|
@@ -3540,14 +3564,14 @@ var Container = import_styled_components21.default.button(
|
|
|
3540
3564
|
flex: $flex
|
|
3541
3565
|
})
|
|
3542
3566
|
);
|
|
3543
|
-
var FillInputField = (0,
|
|
3544
|
-
(0,
|
|
3545
|
-
return /* @__PURE__ */
|
|
3567
|
+
var FillInputField = (0, import_react44.memo)(
|
|
3568
|
+
(0, import_react44.forwardRef)(function FillInputField2({ id, value, flex, ...rest }, ref) {
|
|
3569
|
+
return /* @__PURE__ */ import_react44.default.createElement(Container, { ref, id, $flex: flex, ...rest }, /* @__PURE__ */ import_react44.default.createElement(FillPreviewBackground, { value }));
|
|
3546
3570
|
})
|
|
3547
3571
|
);
|
|
3548
3572
|
|
|
3549
3573
|
// src/components/FloatingWindow.tsx
|
|
3550
|
-
var
|
|
3574
|
+
var import_react45 = __toESM(require("react"));
|
|
3551
3575
|
var styles2 = {
|
|
3552
3576
|
noSelect: {
|
|
3553
3577
|
userSelect: "none",
|
|
@@ -3640,7 +3664,7 @@ function defaultRenderToolbar({
|
|
|
3640
3664
|
toolbarContent,
|
|
3641
3665
|
onClose
|
|
3642
3666
|
}) {
|
|
3643
|
-
return /* @__PURE__ */
|
|
3667
|
+
return /* @__PURE__ */ import_react45.default.createElement(import_react45.default.Fragment, null, /* @__PURE__ */ import_react45.default.createElement(Small, { flex: "1", fontWeight: "500", color: "text" }, title), toolbarContent, /* @__PURE__ */ import_react45.default.createElement(
|
|
3644
3668
|
IconButton,
|
|
3645
3669
|
{
|
|
3646
3670
|
iconName: "Cross3Icon",
|
|
@@ -3665,16 +3689,16 @@ var FloatingWindow = ({
|
|
|
3665
3689
|
toolbarContent,
|
|
3666
3690
|
renderToolbar = defaultRenderToolbar
|
|
3667
3691
|
}) => {
|
|
3668
|
-
const [position, setPosition] = (0,
|
|
3669
|
-
const [size2, setSize] = (0,
|
|
3692
|
+
const [position, setPosition] = (0, import_react45.useState)({ x: initialX, y: initialY });
|
|
3693
|
+
const [size2, setSize] = (0, import_react45.useState)({
|
|
3670
3694
|
width: initialWidth,
|
|
3671
3695
|
height: initialHeight
|
|
3672
3696
|
});
|
|
3673
|
-
const [isDragging, setIsDragging] = (0,
|
|
3674
|
-
const [isResizing, setIsResizing] = (0,
|
|
3675
|
-
const [dragOffset, setDragOffset] = (0,
|
|
3676
|
-
const [resizeDirection, setResizeDirection] = (0,
|
|
3677
|
-
const wrapperRef = (0,
|
|
3697
|
+
const [isDragging, setIsDragging] = (0, import_react45.useState)(false);
|
|
3698
|
+
const [isResizing, setIsResizing] = (0, import_react45.useState)(false);
|
|
3699
|
+
const [dragOffset, setDragOffset] = (0, import_react45.useState)({ x: 0, y: 0 });
|
|
3700
|
+
const [resizeDirection, setResizeDirection] = (0, import_react45.useState)(null);
|
|
3701
|
+
const wrapperRef = (0, import_react45.useRef)(null);
|
|
3678
3702
|
const toggleGlobalTextSelection = (disable) => {
|
|
3679
3703
|
if (disable) {
|
|
3680
3704
|
document.body.style.userSelect = "none";
|
|
@@ -3682,7 +3706,7 @@ var FloatingWindow = ({
|
|
|
3682
3706
|
document.body.style.userSelect = "";
|
|
3683
3707
|
}
|
|
3684
3708
|
};
|
|
3685
|
-
const handleMouseDown = (0,
|
|
3709
|
+
const handleMouseDown = (0, import_react45.useCallback)((e) => {
|
|
3686
3710
|
if (!wrapperRef.current)
|
|
3687
3711
|
return;
|
|
3688
3712
|
const rect = wrapperRef.current.getBoundingClientRect();
|
|
@@ -3692,7 +3716,7 @@ var FloatingWindow = ({
|
|
|
3692
3716
|
});
|
|
3693
3717
|
setIsDragging(true);
|
|
3694
3718
|
}, []);
|
|
3695
|
-
const handleResizeStart = (0,
|
|
3719
|
+
const handleResizeStart = (0, import_react45.useCallback)(
|
|
3696
3720
|
(direction) => (e) => {
|
|
3697
3721
|
e.stopPropagation();
|
|
3698
3722
|
setIsResizing(true);
|
|
@@ -3701,7 +3725,7 @@ var FloatingWindow = ({
|
|
|
3701
3725
|
},
|
|
3702
3726
|
[]
|
|
3703
3727
|
);
|
|
3704
|
-
const handleMouseMove = (0,
|
|
3728
|
+
const handleMouseMove = (0, import_react45.useCallback)(
|
|
3705
3729
|
(e) => {
|
|
3706
3730
|
if (isDragging) {
|
|
3707
3731
|
setPosition({
|
|
@@ -3755,13 +3779,13 @@ var FloatingWindow = ({
|
|
|
3755
3779
|
minHeight
|
|
3756
3780
|
]
|
|
3757
3781
|
);
|
|
3758
|
-
const handleMouseUp = (0,
|
|
3782
|
+
const handleMouseUp = (0, import_react45.useCallback)((e) => {
|
|
3759
3783
|
setIsDragging(false);
|
|
3760
3784
|
setIsResizing(false);
|
|
3761
3785
|
setResizeDirection(null);
|
|
3762
3786
|
toggleGlobalTextSelection(false);
|
|
3763
3787
|
}, []);
|
|
3764
|
-
|
|
3788
|
+
import_react45.default.useEffect(() => {
|
|
3765
3789
|
document.addEventListener("mousemove", handleMouseMove);
|
|
3766
3790
|
document.addEventListener("mouseup", handleMouseUp);
|
|
3767
3791
|
return () => {
|
|
@@ -3772,12 +3796,12 @@ var FloatingWindow = ({
|
|
|
3772
3796
|
const theme = useDesignSystemTheme();
|
|
3773
3797
|
const floatingWindowManager = useFloatingWindowManager();
|
|
3774
3798
|
const currentFloatingWindow = useCurrentFloatingWindowInternal();
|
|
3775
|
-
const handleClose = (0,
|
|
3799
|
+
const handleClose = (0, import_react45.useCallback)(() => {
|
|
3776
3800
|
if (onClose)
|
|
3777
3801
|
onClose();
|
|
3778
3802
|
floatingWindowManager.closeWindow(currentFloatingWindow.id);
|
|
3779
3803
|
}, [currentFloatingWindow.id, floatingWindowManager, onClose]);
|
|
3780
|
-
return /* @__PURE__ */
|
|
3804
|
+
return /* @__PURE__ */ import_react45.default.createElement(
|
|
3781
3805
|
"div",
|
|
3782
3806
|
{
|
|
3783
3807
|
ref: wrapperRef,
|
|
@@ -3791,7 +3815,7 @@ var FloatingWindow = ({
|
|
|
3791
3815
|
backgroundColor: theme.colors.canvas.background
|
|
3792
3816
|
}
|
|
3793
3817
|
},
|
|
3794
|
-
/* @__PURE__ */
|
|
3818
|
+
/* @__PURE__ */ import_react45.default.createElement(
|
|
3795
3819
|
"div",
|
|
3796
3820
|
{
|
|
3797
3821
|
style: {
|
|
@@ -3802,9 +3826,9 @@ var FloatingWindow = ({
|
|
|
3802
3826
|
},
|
|
3803
3827
|
renderToolbar({ title, toolbarContent, onClose: handleClose })
|
|
3804
3828
|
),
|
|
3805
|
-
/* @__PURE__ */
|
|
3806
|
-
/* @__PURE__ */
|
|
3807
|
-
Object.entries(resizeHandlePositions).map(([direction, style3]) => /* @__PURE__ */
|
|
3829
|
+
/* @__PURE__ */ import_react45.default.createElement(Divider, null),
|
|
3830
|
+
/* @__PURE__ */ import_react45.default.createElement("div", { style: styles2.content }, children),
|
|
3831
|
+
Object.entries(resizeHandlePositions).map(([direction, style3]) => /* @__PURE__ */ import_react45.default.createElement(
|
|
3808
3832
|
"div",
|
|
3809
3833
|
{
|
|
3810
3834
|
key: direction,
|
|
@@ -3817,8 +3841,8 @@ var FloatingWindow = ({
|
|
|
3817
3841
|
|
|
3818
3842
|
// src/components/GradientPicker.tsx
|
|
3819
3843
|
var import_noya_colorpicker2 = require("@noya-app/noya-colorpicker");
|
|
3820
|
-
var
|
|
3821
|
-
var GradientPicker = (0,
|
|
3844
|
+
var import_react46 = __toESM(require("react"));
|
|
3845
|
+
var GradientPicker = (0, import_react46.memo)(function GradientPicker2({
|
|
3822
3846
|
value,
|
|
3823
3847
|
selectedStop,
|
|
3824
3848
|
onChangeColor,
|
|
@@ -3827,7 +3851,7 @@ var GradientPicker = (0, import_react45.memo)(function GradientPicker2({
|
|
|
3827
3851
|
onDelete,
|
|
3828
3852
|
onSelectStop
|
|
3829
3853
|
}) {
|
|
3830
|
-
const colorModel = (0,
|
|
3854
|
+
const colorModel = (0, import_react46.useMemo)(
|
|
3831
3855
|
() => ({
|
|
3832
3856
|
defaultColor: { r: 0, g: 0, b: 0, a: 1 },
|
|
3833
3857
|
toHsva: import_noya_colorpicker2.rgbaToHsva,
|
|
@@ -3836,30 +3860,30 @@ var GradientPicker = (0, import_react45.memo)(function GradientPicker2({
|
|
|
3836
3860
|
}),
|
|
3837
3861
|
[]
|
|
3838
3862
|
);
|
|
3839
|
-
const rgbaColor = (0,
|
|
3863
|
+
const rgbaColor = (0, import_react46.useMemo)(
|
|
3840
3864
|
() => sketchColorToRgba(value[selectedStop].color),
|
|
3841
3865
|
[value, selectedStop]
|
|
3842
3866
|
);
|
|
3843
|
-
const handleChangeColor = (0,
|
|
3867
|
+
const handleChangeColor = (0, import_react46.useCallback)(
|
|
3844
3868
|
(value2) => {
|
|
3845
3869
|
onChangeColor(rgbaToSketchColor(value2));
|
|
3846
3870
|
},
|
|
3847
3871
|
[onChangeColor]
|
|
3848
3872
|
);
|
|
3849
|
-
const handleAddGradientStop = (0,
|
|
3873
|
+
const handleAddGradientStop = (0, import_react46.useCallback)(
|
|
3850
3874
|
(value2, position) => {
|
|
3851
3875
|
onAdd(rgbaToSketchColor(value2), position);
|
|
3852
3876
|
},
|
|
3853
3877
|
[onAdd]
|
|
3854
3878
|
);
|
|
3855
|
-
return /* @__PURE__ */
|
|
3879
|
+
return /* @__PURE__ */ import_react46.default.createElement(
|
|
3856
3880
|
import_noya_colorpicker2.ColorPicker,
|
|
3857
3881
|
{
|
|
3858
3882
|
onChange: handleChangeColor,
|
|
3859
3883
|
colorModel,
|
|
3860
3884
|
color: rgbaColor
|
|
3861
3885
|
},
|
|
3862
|
-
/* @__PURE__ */
|
|
3886
|
+
/* @__PURE__ */ import_react46.default.createElement(
|
|
3863
3887
|
import_noya_colorpicker2.Gradient,
|
|
3864
3888
|
{
|
|
3865
3889
|
gradients: value,
|
|
@@ -3870,12 +3894,12 @@ var GradientPicker = (0, import_react45.memo)(function GradientPicker2({
|
|
|
3870
3894
|
onDelete
|
|
3871
3895
|
}
|
|
3872
3896
|
),
|
|
3873
|
-
/* @__PURE__ */
|
|
3874
|
-
/* @__PURE__ */
|
|
3875
|
-
/* @__PURE__ */
|
|
3876
|
-
/* @__PURE__ */
|
|
3877
|
-
/* @__PURE__ */
|
|
3878
|
-
/* @__PURE__ */
|
|
3897
|
+
/* @__PURE__ */ import_react46.default.createElement(Spacer.Vertical, { size: 10 }),
|
|
3898
|
+
/* @__PURE__ */ import_react46.default.createElement(import_noya_colorpicker2.Saturation, null),
|
|
3899
|
+
/* @__PURE__ */ import_react46.default.createElement(Spacer.Vertical, { size: 12 }),
|
|
3900
|
+
/* @__PURE__ */ import_react46.default.createElement(import_noya_colorpicker2.Hue, null),
|
|
3901
|
+
/* @__PURE__ */ import_react46.default.createElement(Spacer.Vertical, { size: 5 }),
|
|
3902
|
+
/* @__PURE__ */ import_react46.default.createElement(import_noya_colorpicker2.Alpha, null)
|
|
3879
3903
|
);
|
|
3880
3904
|
});
|
|
3881
3905
|
|
|
@@ -3907,12 +3931,12 @@ var Grid = import_styled_components22.default.div((props) => ({
|
|
|
3907
3931
|
}));
|
|
3908
3932
|
|
|
3909
3933
|
// src/components/GridView.tsx
|
|
3910
|
-
var
|
|
3934
|
+
var import_react48 = __toESM(require("react"));
|
|
3911
3935
|
var import_styled_components24 = __toESM(require("styled-components"));
|
|
3912
3936
|
|
|
3913
3937
|
// src/components/ScrollArea.tsx
|
|
3914
3938
|
var RadixScrollArea = __toESM(require("@radix-ui/react-scroll-area"));
|
|
3915
|
-
var
|
|
3939
|
+
var import_react47 = __toESM(require("react"));
|
|
3916
3940
|
var import_styled_components23 = __toESM(require("styled-components"));
|
|
3917
3941
|
var SCROLLBAR_SIZE = 10;
|
|
3918
3942
|
var StyledViewport = (0, import_styled_components23.default)(RadixScrollArea.Viewport)({
|
|
@@ -3940,18 +3964,18 @@ var Container2 = import_styled_components23.default.div({
|
|
|
3940
3964
|
flex: "1 1 0px",
|
|
3941
3965
|
minHeight: 0
|
|
3942
3966
|
});
|
|
3943
|
-
var ScrollArea = (0,
|
|
3944
|
-
const [scrollElementRef, setScrollElementRef] = (0,
|
|
3945
|
-
return /* @__PURE__ */
|
|
3967
|
+
var ScrollArea = (0, import_react47.memo)(function ScrollArea2({ children }) {
|
|
3968
|
+
const [scrollElementRef, setScrollElementRef] = (0, import_react47.useState)(null);
|
|
3969
|
+
return /* @__PURE__ */ import_react47.default.createElement(Container2, null, /* @__PURE__ */ import_react47.default.createElement(RadixScrollArea.Root, { style: { width: "100%", height: "100%" } }, /* @__PURE__ */ import_react47.default.createElement(
|
|
3946
3970
|
StyledViewport,
|
|
3947
3971
|
{
|
|
3948
|
-
ref: (0,
|
|
3972
|
+
ref: (0, import_react47.useCallback)(
|
|
3949
3973
|
(ref) => setScrollElementRef(ref),
|
|
3950
3974
|
[]
|
|
3951
3975
|
)
|
|
3952
3976
|
},
|
|
3953
3977
|
typeof children === "function" ? scrollElementRef ? children(scrollElementRef) : null : children
|
|
3954
|
-
), /* @__PURE__ */
|
|
3978
|
+
), /* @__PURE__ */ import_react47.default.createElement(StyledScrollbar, { orientation: "vertical", className: "scroll-component" }, /* @__PURE__ */ import_react47.default.createElement(StyledThumb, { className: "scroll-component" }))));
|
|
3955
3979
|
});
|
|
3956
3980
|
|
|
3957
3981
|
// src/components/GridView.tsx
|
|
@@ -4131,7 +4155,7 @@ var Shimmer = import_styled_components24.default.div`
|
|
|
4131
4155
|
align-items: end;
|
|
4132
4156
|
padding: 4px;
|
|
4133
4157
|
`;
|
|
4134
|
-
var GridViewItem = (0,
|
|
4158
|
+
var GridViewItem = (0, import_react48.forwardRef)(function GridViewItem2({
|
|
4135
4159
|
id,
|
|
4136
4160
|
title,
|
|
4137
4161
|
subtitle,
|
|
@@ -4147,15 +4171,15 @@ var GridViewItem = (0, import_react47.forwardRef)(function GridViewItem2({
|
|
|
4147
4171
|
onContextMenu,
|
|
4148
4172
|
style: style3
|
|
4149
4173
|
}, forwardedRef) {
|
|
4150
|
-
const [hovered, setHovered] =
|
|
4174
|
+
const [hovered, setHovered] = import_react48.default.useState(false);
|
|
4151
4175
|
const { hoverProps } = useHover({
|
|
4152
4176
|
onHoverChange: (isHovering) => {
|
|
4153
4177
|
onHoverChange?.(isHovering);
|
|
4154
4178
|
setHovered(isHovering);
|
|
4155
4179
|
}
|
|
4156
4180
|
});
|
|
4157
|
-
const { textPosition, bordered, disabled } = (0,
|
|
4158
|
-
const handleClick = (0,
|
|
4181
|
+
const { textPosition, bordered, disabled } = (0, import_react48.useContext)(GridViewContext);
|
|
4182
|
+
const handleClick = (0, import_react48.useCallback)(
|
|
4159
4183
|
(event) => {
|
|
4160
4184
|
event.stopPropagation();
|
|
4161
4185
|
event.preventDefault();
|
|
@@ -4164,7 +4188,7 @@ var GridViewItem = (0, import_react47.forwardRef)(function GridViewItem2({
|
|
|
4164
4188
|
},
|
|
4165
4189
|
[onClick, onPress]
|
|
4166
4190
|
);
|
|
4167
|
-
const handleKeyDown = (0,
|
|
4191
|
+
const handleKeyDown = (0, import_react48.useCallback)(
|
|
4168
4192
|
(event) => {
|
|
4169
4193
|
if (event.key === "Enter" || event.key === " ") {
|
|
4170
4194
|
event.stopPropagation();
|
|
@@ -4176,7 +4200,7 @@ var GridViewItem = (0, import_react47.forwardRef)(function GridViewItem2({
|
|
|
4176
4200
|
},
|
|
4177
4201
|
[onPress]
|
|
4178
4202
|
);
|
|
4179
|
-
let element = /* @__PURE__ */
|
|
4203
|
+
let element = /* @__PURE__ */ import_react48.default.createElement(
|
|
4180
4204
|
ItemContainer,
|
|
4181
4205
|
{
|
|
4182
4206
|
id,
|
|
@@ -4185,7 +4209,7 @@ var GridViewItem = (0, import_react47.forwardRef)(function GridViewItem2({
|
|
|
4185
4209
|
tabIndex: disabled ? void 0 : 0,
|
|
4186
4210
|
onKeyDown: handleKeyDown
|
|
4187
4211
|
},
|
|
4188
|
-
/* @__PURE__ */
|
|
4212
|
+
/* @__PURE__ */ import_react48.default.createElement(
|
|
4189
4213
|
ContentContainer,
|
|
4190
4214
|
{
|
|
4191
4215
|
disabled,
|
|
@@ -4199,25 +4223,25 @@ var GridViewItem = (0, import_react47.forwardRef)(function GridViewItem2({
|
|
|
4199
4223
|
},
|
|
4200
4224
|
children
|
|
4201
4225
|
),
|
|
4202
|
-
textPosition === "below" && /* @__PURE__ */
|
|
4203
|
-
textPosition === "overlay" && hovered && (title || subtitle) && /* @__PURE__ */
|
|
4204
|
-
loading && /* @__PURE__ */
|
|
4226
|
+
textPosition === "below" && /* @__PURE__ */ import_react48.default.createElement(import_react48.default.Fragment, null, /* @__PURE__ */ import_react48.default.createElement(Spacer.Vertical, { size: 8 }), /* @__PURE__ */ import_react48.default.createElement(ItemTitle, { showBackground: false }, title || " "), /* @__PURE__ */ import_react48.default.createElement(ItemDescription, { showBackground: false }, subtitle || " ")),
|
|
4227
|
+
textPosition === "overlay" && hovered && (title || subtitle) && /* @__PURE__ */ import_react48.default.createElement(TextOverlay, null, title && /* @__PURE__ */ import_react48.default.createElement(ItemTitle, { showBackground: true }, title), subtitle && /* @__PURE__ */ import_react48.default.createElement(ItemDescription, { showBackground: true }, subtitle)),
|
|
4228
|
+
loading && /* @__PURE__ */ import_react48.default.createElement(Shimmer, null, /* @__PURE__ */ import_react48.default.createElement(ActivityIndicator, { opacity: 0.5, size: 13 }))
|
|
4205
4229
|
);
|
|
4206
4230
|
if (menuItems && onSelectMenuItem) {
|
|
4207
|
-
element = /* @__PURE__ */
|
|
4231
|
+
element = /* @__PURE__ */ import_react48.default.createElement(ContextMenu, { items: menuItems, onSelect: onSelectMenuItem }, element);
|
|
4208
4232
|
}
|
|
4209
4233
|
if (textPosition === "toolip") {
|
|
4210
|
-
element = /* @__PURE__ */
|
|
4234
|
+
element = /* @__PURE__ */ import_react48.default.createElement(
|
|
4211
4235
|
Tooltip,
|
|
4212
4236
|
{
|
|
4213
|
-
content: /* @__PURE__ */
|
|
4237
|
+
content: /* @__PURE__ */ import_react48.default.createElement(Stack.V, { gap: 2 }, /* @__PURE__ */ import_react48.default.createElement(ItemTitle, { showBackground: false }, title), /* @__PURE__ */ import_react48.default.createElement(ItemDescription, { showBackground: false }, subtitle))
|
|
4214
4238
|
},
|
|
4215
4239
|
element
|
|
4216
4240
|
);
|
|
4217
4241
|
}
|
|
4218
4242
|
return element;
|
|
4219
4243
|
});
|
|
4220
|
-
var GridViewContext = (0,
|
|
4244
|
+
var GridViewContext = (0, import_react48.createContext)({
|
|
4221
4245
|
size: "small",
|
|
4222
4246
|
textPosition: "below",
|
|
4223
4247
|
bordered: false,
|
|
@@ -4232,7 +4256,7 @@ function GridViewRoot({
|
|
|
4232
4256
|
bordered = false,
|
|
4233
4257
|
disabled = false
|
|
4234
4258
|
}) {
|
|
4235
|
-
const handleClick = (0,
|
|
4259
|
+
const handleClick = (0, import_react48.useCallback)(
|
|
4236
4260
|
(event) => {
|
|
4237
4261
|
event.stopPropagation();
|
|
4238
4262
|
event.preventDefault();
|
|
@@ -4240,7 +4264,7 @@ function GridViewRoot({
|
|
|
4240
4264
|
},
|
|
4241
4265
|
[onClick]
|
|
4242
4266
|
);
|
|
4243
|
-
const contextValue = (0,
|
|
4267
|
+
const contextValue = (0, import_react48.useMemo)(
|
|
4244
4268
|
() => ({
|
|
4245
4269
|
size: size2,
|
|
4246
4270
|
textPosition,
|
|
@@ -4249,33 +4273,33 @@ function GridViewRoot({
|
|
|
4249
4273
|
}),
|
|
4250
4274
|
[bordered, disabled, size2, textPosition]
|
|
4251
4275
|
);
|
|
4252
|
-
return /* @__PURE__ */
|
|
4276
|
+
return /* @__PURE__ */ import_react48.default.createElement(GridViewContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react48.default.createElement(Container3, { onClick: handleClick, scrollable }, scrollable ? /* @__PURE__ */ import_react48.default.createElement(ScrollArea, null, children) : children));
|
|
4253
4277
|
}
|
|
4254
4278
|
function GridViewSection({
|
|
4255
4279
|
children,
|
|
4256
4280
|
padding = "20px"
|
|
4257
4281
|
}) {
|
|
4258
|
-
const { size: size2 } = (0,
|
|
4259
|
-
return /* @__PURE__ */
|
|
4282
|
+
const { size: size2 } = (0, import_react48.useContext)(GridViewContext);
|
|
4283
|
+
return /* @__PURE__ */ import_react48.default.createElement(Grid2, { size: size2, padding }, children);
|
|
4260
4284
|
}
|
|
4261
4285
|
function GridViewSectionHeader({ title }) {
|
|
4262
4286
|
const grouped = title.split("/");
|
|
4263
|
-
return /* @__PURE__ */
|
|
4264
|
-
grouped.map((title2, index) => /* @__PURE__ */
|
|
4265
|
-
/* @__PURE__ */
|
|
4287
|
+
return /* @__PURE__ */ import_react48.default.createElement(SectionHeaderContainer, null, /* @__PURE__ */ import_react48.default.createElement(Spacer.Vertical, { size: 24 }), withSeparatorElements(
|
|
4288
|
+
grouped.map((title2, index) => /* @__PURE__ */ import_react48.default.createElement(SectionTitle, { last: index === grouped.length - 1 }, title2)),
|
|
4289
|
+
/* @__PURE__ */ import_react48.default.createElement(SectionTitle, null, " / ")
|
|
4266
4290
|
));
|
|
4267
4291
|
}
|
|
4268
4292
|
var GridView;
|
|
4269
4293
|
((GridView2) => {
|
|
4270
|
-
GridView2.Root = (0,
|
|
4271
|
-
GridView2.Item = (0,
|
|
4272
|
-
GridView2.Section = (0,
|
|
4273
|
-
GridView2.SectionHeader = (0,
|
|
4294
|
+
GridView2.Root = (0, import_react48.memo)(GridViewRoot);
|
|
4295
|
+
GridView2.Item = (0, import_react48.memo)(GridViewItem);
|
|
4296
|
+
GridView2.Section = (0, import_react48.memo)(GridViewSection);
|
|
4297
|
+
GridView2.SectionHeader = (0, import_react48.memo)(GridViewSectionHeader);
|
|
4274
4298
|
})(GridView || (GridView = {}));
|
|
4275
4299
|
|
|
4276
4300
|
// src/components/InputFieldWithCompletions.tsx
|
|
4277
4301
|
var import_noya_utils8 = require("@noya-app/noya-utils");
|
|
4278
|
-
var
|
|
4302
|
+
var import_react52 = __toESM(require("react"));
|
|
4279
4303
|
var import_styled_components27 = __toESM(require("styled-components"));
|
|
4280
4304
|
|
|
4281
4305
|
// src/utils/fuzzyScorer.ts
|
|
@@ -4352,7 +4376,7 @@ function mergeRanges(ranges) {
|
|
|
4352
4376
|
// src/components/ListView.tsx
|
|
4353
4377
|
var import_noya_utils7 = require("@noya-app/noya-utils");
|
|
4354
4378
|
var import_react_compose_refs2 = require("@radix-ui/react-compose-refs");
|
|
4355
|
-
var
|
|
4379
|
+
var import_react50 = __toESM(require("react"));
|
|
4356
4380
|
var import_react_virtualized = require("react-virtualized");
|
|
4357
4381
|
var import_react_window = require("react-window");
|
|
4358
4382
|
var import_styled_components25 = __toESM(require("styled-components"));
|
|
@@ -4383,7 +4407,7 @@ function mergeEventHandlers(...handlerMaps) {
|
|
|
4383
4407
|
// src/components/Sortable.tsx
|
|
4384
4408
|
var import_core = require("@dnd-kit/core");
|
|
4385
4409
|
var import_sortable = require("@dnd-kit/sortable");
|
|
4386
|
-
var
|
|
4410
|
+
var import_react49 = __toESM(require("react"));
|
|
4387
4411
|
var import_react_dom2 = require("react-dom");
|
|
4388
4412
|
var normalizeListDestinationIndex = (index, position) => {
|
|
4389
4413
|
return position === "above" ? index : index + 1;
|
|
@@ -4397,7 +4421,7 @@ var defaultAcceptsDrop = (sourceIndex, destinationIndex, position) => {
|
|
|
4397
4421
|
}
|
|
4398
4422
|
return true;
|
|
4399
4423
|
};
|
|
4400
|
-
var SortableItemContext = (0,
|
|
4424
|
+
var SortableItemContext = (0, import_react49.createContext)({
|
|
4401
4425
|
keys: [],
|
|
4402
4426
|
position: { x: 0, y: 0 },
|
|
4403
4427
|
acceptsDrop: defaultAcceptsDrop,
|
|
@@ -4419,7 +4443,7 @@ function SortableItem({
|
|
|
4419
4443
|
disabled,
|
|
4420
4444
|
children
|
|
4421
4445
|
}) {
|
|
4422
|
-
const { keys, position, acceptsDrop, setActivatorEvent, axis } = (0,
|
|
4446
|
+
const { keys, position, acceptsDrop, setActivatorEvent, axis } = (0, import_react49.useContext)(SortableItemContext);
|
|
4423
4447
|
const sortable = (0, import_sortable.useSortable)({ id, disabled });
|
|
4424
4448
|
const {
|
|
4425
4449
|
active,
|
|
@@ -4439,7 +4463,7 @@ function SortableItem({
|
|
|
4439
4463
|
const eventY = activatorEvent?.clientY ?? 0;
|
|
4440
4464
|
const offsetLeft = eventX + position.x;
|
|
4441
4465
|
const offsetTop = eventY + position.y;
|
|
4442
|
-
const ref = (0,
|
|
4466
|
+
const ref = (0, import_react49.useCallback)((node) => setNodeRef(node), [setNodeRef]);
|
|
4443
4467
|
return children({
|
|
4444
4468
|
ref,
|
|
4445
4469
|
...attributes,
|
|
@@ -4470,22 +4494,22 @@ function SortableRoot({
|
|
|
4470
4494
|
}
|
|
4471
4495
|
})
|
|
4472
4496
|
);
|
|
4473
|
-
const [activeIndex, setActiveIndex] = (0,
|
|
4474
|
-
const activatorEvent = (0,
|
|
4475
|
-
const setActivatorEvent = (0,
|
|
4497
|
+
const [activeIndex, setActiveIndex] = (0, import_react49.useState)();
|
|
4498
|
+
const activatorEvent = (0, import_react49.useRef)(null);
|
|
4499
|
+
const setActivatorEvent = (0, import_react49.useCallback)((event) => {
|
|
4476
4500
|
activatorEvent.current = event;
|
|
4477
4501
|
}, []);
|
|
4478
|
-
const [position, setPosition] = (0,
|
|
4479
|
-
const handleDragStart = (0,
|
|
4502
|
+
const [position, setPosition] = (0, import_react49.useState)({ x: 0, y: 0 });
|
|
4503
|
+
const handleDragStart = (0, import_react49.useCallback)(
|
|
4480
4504
|
(event) => {
|
|
4481
4505
|
setActiveIndex(keys.indexOf(event.active.id));
|
|
4482
4506
|
},
|
|
4483
4507
|
[keys]
|
|
4484
4508
|
);
|
|
4485
|
-
const handleDragMove = (0,
|
|
4509
|
+
const handleDragMove = (0, import_react49.useCallback)((event) => {
|
|
4486
4510
|
setPosition({ ...event.delta });
|
|
4487
4511
|
}, []);
|
|
4488
|
-
const handleDragEnd = (0,
|
|
4512
|
+
const handleDragEnd = (0, import_react49.useCallback)(
|
|
4489
4513
|
(event) => {
|
|
4490
4514
|
const { active, over } = event;
|
|
4491
4515
|
setActiveIndex(void 0);
|
|
@@ -4512,14 +4536,14 @@ function SortableRoot({
|
|
|
4512
4536
|
},
|
|
4513
4537
|
[acceptsDrop, axis, keys, onMoveItem, position.x, position.y]
|
|
4514
4538
|
);
|
|
4515
|
-
const [mounted, setMounted] = (0,
|
|
4516
|
-
(0,
|
|
4539
|
+
const [mounted, setMounted] = (0, import_react49.useState)(false);
|
|
4540
|
+
(0, import_react49.useEffect)(() => {
|
|
4517
4541
|
setMounted(true);
|
|
4518
4542
|
}, []);
|
|
4519
|
-
return /* @__PURE__ */
|
|
4543
|
+
return /* @__PURE__ */ import_react49.default.createElement(
|
|
4520
4544
|
SortableItemContext.Provider,
|
|
4521
4545
|
{
|
|
4522
|
-
value: (0,
|
|
4546
|
+
value: (0, import_react49.useMemo)(
|
|
4523
4547
|
() => ({
|
|
4524
4548
|
keys,
|
|
4525
4549
|
acceptsDrop,
|
|
@@ -4530,7 +4554,7 @@ function SortableRoot({
|
|
|
4530
4554
|
[acceptsDrop, axis, keys, position, setActivatorEvent]
|
|
4531
4555
|
)
|
|
4532
4556
|
},
|
|
4533
|
-
/* @__PURE__ */
|
|
4557
|
+
/* @__PURE__ */ import_react49.default.createElement(
|
|
4534
4558
|
import_core.DndContext,
|
|
4535
4559
|
{
|
|
4536
4560
|
sensors,
|
|
@@ -4539,9 +4563,9 @@ function SortableRoot({
|
|
|
4539
4563
|
onDragMove: handleDragMove,
|
|
4540
4564
|
onDragEnd: handleDragEnd
|
|
4541
4565
|
},
|
|
4542
|
-
/* @__PURE__ */
|
|
4566
|
+
/* @__PURE__ */ import_react49.default.createElement(import_sortable.SortableContext, { items: keys, strategy: import_sortable.verticalListSortingStrategy }, children),
|
|
4543
4567
|
mounted && renderOverlay && (0, import_react_dom2.createPortal)(
|
|
4544
|
-
/* @__PURE__ */
|
|
4568
|
+
/* @__PURE__ */ import_react49.default.createElement(import_core.DragOverlay, { dropAnimation: null }, activeIndex !== void 0 && activeIndex >= 0 && renderOverlay(activeIndex)),
|
|
4545
4569
|
document.body
|
|
4546
4570
|
)
|
|
4547
4571
|
)
|
|
@@ -4549,17 +4573,17 @@ function SortableRoot({
|
|
|
4549
4573
|
}
|
|
4550
4574
|
var Sortable;
|
|
4551
4575
|
((Sortable2) => {
|
|
4552
|
-
Sortable2.Item = (0,
|
|
4553
|
-
Sortable2.Root = (0,
|
|
4576
|
+
Sortable2.Item = (0, import_react49.memo)(SortableItem);
|
|
4577
|
+
Sortable2.Root = (0, import_react49.memo)(SortableRoot);
|
|
4554
4578
|
})(Sortable || (Sortable = {}));
|
|
4555
4579
|
|
|
4556
4580
|
// src/components/ListView.tsx
|
|
4557
4581
|
var ROW_HEIGHT = 31;
|
|
4558
4582
|
var SECTION_HEADER_LABEL_HEIGHT = 27;
|
|
4559
|
-
var DraggingContext = (0,
|
|
4583
|
+
var DraggingContext = (0, import_react50.createContext)({
|
|
4560
4584
|
indentation: 12
|
|
4561
4585
|
});
|
|
4562
|
-
var ListRowContext = (0,
|
|
4586
|
+
var ListRowContext = (0, import_react50.createContext)({
|
|
4563
4587
|
marginType: "none",
|
|
4564
4588
|
selectedPosition: "only",
|
|
4565
4589
|
sortable: false,
|
|
@@ -4589,8 +4613,8 @@ function ListViewEditableRowTitle({
|
|
|
4589
4613
|
autoFocus,
|
|
4590
4614
|
placeholder
|
|
4591
4615
|
}) {
|
|
4592
|
-
const inputRef = (0,
|
|
4593
|
-
(0,
|
|
4616
|
+
const inputRef = (0, import_react50.useRef)(null);
|
|
4617
|
+
(0, import_react50.useLayoutEffect)(() => {
|
|
4594
4618
|
const element = inputRef.current;
|
|
4595
4619
|
if (!element || !autoFocus)
|
|
4596
4620
|
return;
|
|
@@ -4599,7 +4623,7 @@ function ListViewEditableRowTitle({
|
|
|
4599
4623
|
element.select();
|
|
4600
4624
|
}, 0);
|
|
4601
4625
|
}, [autoFocus]);
|
|
4602
|
-
return /* @__PURE__ */
|
|
4626
|
+
return /* @__PURE__ */ import_react50.default.createElement(
|
|
4603
4627
|
ListViewEditableRowTitleElement,
|
|
4604
4628
|
{
|
|
4605
4629
|
ref: inputRef,
|
|
@@ -4721,7 +4745,7 @@ var ListViewDragIndicatorElement = import_styled_components25.default.div(({ the
|
|
|
4721
4745
|
boxShadow: "0 0 2px rgba(0,0,0,0.5)"
|
|
4722
4746
|
}
|
|
4723
4747
|
}));
|
|
4724
|
-
var ListViewRow = (0,
|
|
4748
|
+
var ListViewRow = (0, import_react50.forwardRef)(function ListViewRow2({
|
|
4725
4749
|
id,
|
|
4726
4750
|
tabIndex = 0,
|
|
4727
4751
|
gap,
|
|
@@ -4741,7 +4765,8 @@ var ListViewRow = (0, import_react49.forwardRef)(function ListViewRow2({
|
|
|
4741
4765
|
onSelectMenuItem,
|
|
4742
4766
|
onMenuOpenChange,
|
|
4743
4767
|
onKeyDown,
|
|
4744
|
-
style: style3
|
|
4768
|
+
style: style3,
|
|
4769
|
+
dragIndicatorStyle
|
|
4745
4770
|
}, forwardedRef) {
|
|
4746
4771
|
depth = Math.max(0, depth);
|
|
4747
4772
|
const {
|
|
@@ -4754,12 +4779,12 @@ var ListViewRow = (0, import_react49.forwardRef)(function ListViewRow2({
|
|
|
4754
4779
|
divider,
|
|
4755
4780
|
gap: listGap,
|
|
4756
4781
|
colorScheme
|
|
4757
|
-
} = (0,
|
|
4782
|
+
} = (0, import_react50.useContext)(ListRowContext);
|
|
4758
4783
|
const { hoverProps } = useHover({
|
|
4759
4784
|
onHoverChange
|
|
4760
4785
|
});
|
|
4761
|
-
const { indentation, isDragging } = (0,
|
|
4762
|
-
const handlePress = (0,
|
|
4786
|
+
const { indentation, isDragging } = (0, import_react50.useContext)(DraggingContext);
|
|
4787
|
+
const handlePress = (0, import_react50.useCallback)(
|
|
4763
4788
|
(event) => {
|
|
4764
4789
|
event.preventDefault();
|
|
4765
4790
|
if (event.button !== 0)
|
|
@@ -4768,14 +4793,14 @@ var ListViewRow = (0, import_react49.forwardRef)(function ListViewRow2({
|
|
|
4768
4793
|
},
|
|
4769
4794
|
[onPress]
|
|
4770
4795
|
);
|
|
4771
|
-
const handleDoubleClick = (0,
|
|
4796
|
+
const handleDoubleClick = (0, import_react50.useCallback)(
|
|
4772
4797
|
(event) => {
|
|
4773
4798
|
event.stopPropagation();
|
|
4774
4799
|
onDoubleClick?.();
|
|
4775
4800
|
},
|
|
4776
4801
|
[onDoubleClick]
|
|
4777
4802
|
);
|
|
4778
|
-
const mergedStyle = (0,
|
|
4803
|
+
const mergedStyle = (0, import_react50.useMemo)(() => {
|
|
4779
4804
|
return isDragging ? {
|
|
4780
4805
|
// TODO: Where do these offsets actually come from?
|
|
4781
4806
|
transform: `translate3d(-36px, -6px, 0)`,
|
|
@@ -4788,7 +4813,7 @@ var ListViewRow = (0, import_react49.forwardRef)(function ListViewRow2({
|
|
|
4788
4813
|
...renderProps
|
|
4789
4814
|
}, ref) => {
|
|
4790
4815
|
const Component = RowContainer;
|
|
4791
|
-
const element = /* @__PURE__ */
|
|
4816
|
+
const element = /* @__PURE__ */ import_react50.default.createElement(
|
|
4792
4817
|
Component,
|
|
4793
4818
|
{
|
|
4794
4819
|
ref,
|
|
@@ -4819,20 +4844,25 @@ var ListViewRow = (0, import_react49.forwardRef)(function ListViewRow2({
|
|
|
4819
4844
|
),
|
|
4820
4845
|
tabIndex
|
|
4821
4846
|
},
|
|
4822
|
-
relativeDropPosition && /* @__PURE__ */
|
|
4847
|
+
relativeDropPosition && /* @__PURE__ */ import_react50.default.createElement(
|
|
4823
4848
|
ListViewDragIndicatorElement,
|
|
4824
4849
|
{
|
|
4825
4850
|
$colorScheme: colorScheme,
|
|
4826
4851
|
$relativeDropPosition: relativeDropPosition,
|
|
4827
4852
|
$offsetLeft: 33 + depth * indentation,
|
|
4828
|
-
$gap: listGap
|
|
4853
|
+
$gap: listGap + (divider ? 1 : 0),
|
|
4854
|
+
style: typeof dragIndicatorStyle === "function" ? dragIndicatorStyle({
|
|
4855
|
+
depth,
|
|
4856
|
+
indentation,
|
|
4857
|
+
position: relativeDropPosition
|
|
4858
|
+
}) : dragIndicatorStyle
|
|
4829
4859
|
}
|
|
4830
4860
|
),
|
|
4831
|
-
depth > 0 && /* @__PURE__ */
|
|
4861
|
+
depth > 0 && /* @__PURE__ */ import_react50.default.createElement(Spacer.Horizontal, { size: depth * indentation }),
|
|
4832
4862
|
children
|
|
4833
4863
|
);
|
|
4834
4864
|
if (menuItems && onSelectMenuItem) {
|
|
4835
|
-
return /* @__PURE__ */
|
|
4865
|
+
return /* @__PURE__ */ import_react50.default.createElement(
|
|
4836
4866
|
ContextMenu,
|
|
4837
4867
|
{
|
|
4838
4868
|
items: menuItems,
|
|
@@ -4845,24 +4875,24 @@ var ListViewRow = (0, import_react49.forwardRef)(function ListViewRow2({
|
|
|
4845
4875
|
return element;
|
|
4846
4876
|
};
|
|
4847
4877
|
if (sortable && id) {
|
|
4848
|
-
return /* @__PURE__ */
|
|
4878
|
+
return /* @__PURE__ */ import_react50.default.createElement(Sortable.Item, { id, disabled: overrideSortable === false }, ({ ref: sortableRef, ...sortableProps }) => renderContent(
|
|
4849
4879
|
sortableProps,
|
|
4850
4880
|
(0, import_react_compose_refs2.composeRefs)(sortableRef, forwardedRef)
|
|
4851
4881
|
));
|
|
4852
4882
|
}
|
|
4853
4883
|
return renderContent({}, forwardedRef);
|
|
4854
4884
|
});
|
|
4855
|
-
var RenderItemContext = (0,
|
|
4885
|
+
var RenderItemContext = (0, import_react50.createContext)(
|
|
4856
4886
|
() => null
|
|
4857
4887
|
);
|
|
4858
|
-
var VirtualizedListRow = (0,
|
|
4888
|
+
var VirtualizedListRow = (0, import_react50.memo)(function VirtualizedListRow2({
|
|
4859
4889
|
index,
|
|
4860
4890
|
style: style3
|
|
4861
4891
|
}) {
|
|
4862
|
-
const renderItem = (0,
|
|
4863
|
-
return /* @__PURE__ */
|
|
4892
|
+
const renderItem = (0, import_react50.useContext)(RenderItemContext);
|
|
4893
|
+
return /* @__PURE__ */ import_react50.default.createElement("div", { key: index, style: style3 }, renderItem(index));
|
|
4864
4894
|
});
|
|
4865
|
-
var VirtualizedListInner = (0,
|
|
4895
|
+
var VirtualizedListInner = (0, import_react50.forwardRef)(function VirtualizedListInner2({
|
|
4866
4896
|
size: size2,
|
|
4867
4897
|
scrollElement,
|
|
4868
4898
|
items,
|
|
@@ -4870,20 +4900,20 @@ var VirtualizedListInner = (0, import_react49.forwardRef)(function VirtualizedLi
|
|
|
4870
4900
|
keyExtractor,
|
|
4871
4901
|
renderItem
|
|
4872
4902
|
}, ref) {
|
|
4873
|
-
const listRef = (0,
|
|
4874
|
-
(0,
|
|
4903
|
+
const listRef = (0, import_react50.useRef)(null);
|
|
4904
|
+
(0, import_react50.useImperativeHandle)(ref, () => ({
|
|
4875
4905
|
scrollToIndex(index) {
|
|
4876
4906
|
listRef.current?.scrollToItem(index);
|
|
4877
4907
|
}
|
|
4878
4908
|
}));
|
|
4879
|
-
(0,
|
|
4909
|
+
(0, import_react50.useLayoutEffect)(() => {
|
|
4880
4910
|
listRef.current?.resetAfterIndex(0);
|
|
4881
4911
|
}, [
|
|
4882
4912
|
// When items change, we need to re-render the virtualized list,
|
|
4883
4913
|
// since it doesn't currently support row height changes
|
|
4884
4914
|
items
|
|
4885
4915
|
]);
|
|
4886
|
-
const listStyle = (0,
|
|
4916
|
+
const listStyle = (0, import_react50.useMemo)(
|
|
4887
4917
|
() => ({
|
|
4888
4918
|
overflowX: "initial",
|
|
4889
4919
|
overflowY: "initial",
|
|
@@ -4891,18 +4921,18 @@ var VirtualizedListInner = (0, import_react49.forwardRef)(function VirtualizedLi
|
|
|
4891
4921
|
}),
|
|
4892
4922
|
[]
|
|
4893
4923
|
);
|
|
4894
|
-
return /* @__PURE__ */
|
|
4924
|
+
return /* @__PURE__ */ import_react50.default.createElement(RenderItemContext.Provider, { value: renderItem }, /* @__PURE__ */ import_react50.default.createElement(
|
|
4895
4925
|
import_react_virtualized.WindowScroller,
|
|
4896
4926
|
{
|
|
4897
4927
|
scrollElement,
|
|
4898
|
-
style: (0,
|
|
4928
|
+
style: (0, import_react50.useMemo)(() => ({ flex: "1 1 auto" }), [])
|
|
4899
4929
|
},
|
|
4900
|
-
(0,
|
|
4930
|
+
(0, import_react50.useCallback)(
|
|
4901
4931
|
({
|
|
4902
4932
|
registerChild,
|
|
4903
4933
|
onChildScroll,
|
|
4904
4934
|
scrollTop
|
|
4905
|
-
}) => /* @__PURE__ */
|
|
4935
|
+
}) => /* @__PURE__ */ import_react50.default.createElement("div", { ref: registerChild }, /* @__PURE__ */ import_react50.default.createElement(
|
|
4906
4936
|
import_react_window.VariableSizeList,
|
|
4907
4937
|
{
|
|
4908
4938
|
ref: listRef,
|
|
@@ -4932,7 +4962,7 @@ var VirtualizedListInner = (0, import_react49.forwardRef)(function VirtualizedLi
|
|
|
4932
4962
|
)
|
|
4933
4963
|
));
|
|
4934
4964
|
});
|
|
4935
|
-
var VirtualizedList = (0,
|
|
4965
|
+
var VirtualizedList = (0, import_react50.memo)(
|
|
4936
4966
|
VirtualizedListInner
|
|
4937
4967
|
);
|
|
4938
4968
|
var RootContainer2 = import_styled_components25.default.div(({ theme, $scrollable, $gap }) => ({
|
|
@@ -4943,7 +4973,7 @@ var RootContainer2 = import_styled_components25.default.div(({ theme, $scrollabl
|
|
|
4943
4973
|
color: theme.colors.textMuted,
|
|
4944
4974
|
gap: $gap
|
|
4945
4975
|
}));
|
|
4946
|
-
var ListViewRootInner = (0,
|
|
4976
|
+
var ListViewRootInner = (0, import_react50.forwardRef)(function ListViewRootInner2({
|
|
4947
4977
|
id,
|
|
4948
4978
|
className,
|
|
4949
4979
|
style: style3,
|
|
@@ -4965,7 +4995,7 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
|
|
|
4965
4995
|
colorScheme = "primary",
|
|
4966
4996
|
gap = 0
|
|
4967
4997
|
}, forwardedRef) {
|
|
4968
|
-
const handleClick = (0,
|
|
4998
|
+
const handleClick = (0, import_react50.useCallback)(
|
|
4969
4999
|
(event) => {
|
|
4970
5000
|
if (event.target instanceof HTMLElement && event.target.classList.contains("scroll-component"))
|
|
4971
5001
|
return;
|
|
@@ -4975,19 +5005,19 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
|
|
|
4975
5005
|
},
|
|
4976
5006
|
[onPress]
|
|
4977
5007
|
);
|
|
4978
|
-
const renderChild = (0,
|
|
5008
|
+
const renderChild = (0, import_react50.useCallback)(
|
|
4979
5009
|
(index) => renderItem(data[index], index, { isDragging: false }),
|
|
4980
5010
|
[data, renderItem]
|
|
4981
5011
|
);
|
|
4982
|
-
const getItemContextValue = (0,
|
|
5012
|
+
const getItemContextValue = (0, import_react50.useCallback)(
|
|
4983
5013
|
(i) => {
|
|
4984
5014
|
const current = renderChild(i);
|
|
4985
|
-
if (!(0,
|
|
5015
|
+
if (!(0, import_react50.isValidElement)(current))
|
|
4986
5016
|
return;
|
|
4987
5017
|
const prevChild = i - 1 >= 0 && renderChild(i - 1);
|
|
4988
5018
|
const nextChild = i + 1 < data.length && renderChild(i + 1);
|
|
4989
|
-
const next = (0,
|
|
4990
|
-
const prev = (0,
|
|
5019
|
+
const next = (0, import_react50.isValidElement)(nextChild) ? nextChild : void 0;
|
|
5020
|
+
const prev = (0, import_react50.isValidElement)(prevChild) ? prevChild : void 0;
|
|
4991
5021
|
const hasMarginTop = !prev;
|
|
4992
5022
|
const hasMarginBottom = !next || current.props.isSectionHeader || next && next.props.isSectionHeader;
|
|
4993
5023
|
let marginType;
|
|
@@ -5039,26 +5069,26 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
|
|
|
5039
5069
|
gap
|
|
5040
5070
|
]
|
|
5041
5071
|
);
|
|
5042
|
-
const draggingContextOverlayValue = (0,
|
|
5072
|
+
const draggingContextOverlayValue = (0, import_react50.useMemo)(
|
|
5043
5073
|
() => ({ indentation, isDragging: true }),
|
|
5044
5074
|
[indentation]
|
|
5045
5075
|
);
|
|
5046
|
-
const renderOverlay = (0,
|
|
5047
|
-
(index) => /* @__PURE__ */
|
|
5076
|
+
const renderOverlay = (0, import_react50.useCallback)(
|
|
5077
|
+
(index) => /* @__PURE__ */ import_react50.default.createElement("div", { style: { opacity: 0.25 } }, /* @__PURE__ */ import_react50.default.createElement(DraggingContext.Provider, { value: draggingContextOverlayValue }, renderItem(data[index], index, { isDragging: true }))),
|
|
5048
5078
|
[draggingContextOverlayValue, renderItem, data]
|
|
5049
5079
|
);
|
|
5050
|
-
const renderWrappedChild = (0,
|
|
5080
|
+
const renderWrappedChild = (0, import_react50.useCallback)(
|
|
5051
5081
|
(index) => {
|
|
5052
5082
|
const contextValue = getItemContextValue(index);
|
|
5053
5083
|
const current = renderChild(index);
|
|
5054
|
-
if (!contextValue || !(0,
|
|
5084
|
+
if (!contextValue || !(0, import_react50.isValidElement)(current))
|
|
5055
5085
|
return null;
|
|
5056
|
-
return /* @__PURE__ */
|
|
5086
|
+
return /* @__PURE__ */ import_react50.default.createElement(ListRowContext.Provider, { key: current.key, value: contextValue }, current);
|
|
5057
5087
|
},
|
|
5058
5088
|
[getItemContextValue, renderChild]
|
|
5059
5089
|
);
|
|
5060
|
-
const ids = (0,
|
|
5061
|
-
const withSortable = (children) => sortable ? /* @__PURE__ */
|
|
5090
|
+
const ids = (0, import_react50.useMemo)(() => data.map(keyExtractor), [keyExtractor, data]);
|
|
5091
|
+
const withSortable = (children) => sortable ? /* @__PURE__ */ import_react50.default.createElement(
|
|
5062
5092
|
Sortable.Root,
|
|
5063
5093
|
{
|
|
5064
5094
|
onMoveItem,
|
|
@@ -5068,8 +5098,8 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
|
|
|
5068
5098
|
},
|
|
5069
5099
|
children
|
|
5070
5100
|
) : children;
|
|
5071
|
-
const withScrollable = (children) => scrollable ? /* @__PURE__ */
|
|
5072
|
-
const getItemHeight = (0,
|
|
5101
|
+
const withScrollable = (children) => scrollable ? /* @__PURE__ */ import_react50.default.createElement(ScrollArea, null, children) : children(null);
|
|
5102
|
+
const getItemHeight = (0, import_react50.useCallback)(
|
|
5073
5103
|
(index) => {
|
|
5074
5104
|
const child = getItemContextValue(index);
|
|
5075
5105
|
const margin = child?.marginType ? getPositionMargin(child.marginType) : { top: 0, bottom: 0 };
|
|
@@ -5078,12 +5108,12 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
|
|
|
5078
5108
|
},
|
|
5079
5109
|
[getItemContextValue, variant]
|
|
5080
5110
|
);
|
|
5081
|
-
const getKey = (0,
|
|
5111
|
+
const getKey = (0, import_react50.useCallback)(
|
|
5082
5112
|
(index) => keyExtractor(data[index], index),
|
|
5083
5113
|
[data, keyExtractor]
|
|
5084
5114
|
);
|
|
5085
|
-
const draggingContextValue = (0,
|
|
5086
|
-
return /* @__PURE__ */
|
|
5115
|
+
const draggingContextValue = (0, import_react50.useMemo)(() => ({ indentation }), [indentation]);
|
|
5116
|
+
return /* @__PURE__ */ import_react50.default.createElement(DraggingContext.Provider, { value: draggingContextValue }, /* @__PURE__ */ import_react50.default.createElement(
|
|
5087
5117
|
RootContainer2,
|
|
5088
5118
|
{
|
|
5089
5119
|
id,
|
|
@@ -5097,7 +5127,7 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
|
|
|
5097
5127
|
},
|
|
5098
5128
|
withScrollable(
|
|
5099
5129
|
(scrollElementRef) => withSortable(
|
|
5100
|
-
virtualized ? /* @__PURE__ */
|
|
5130
|
+
virtualized ? /* @__PURE__ */ import_react50.default.createElement(
|
|
5101
5131
|
VirtualizedList,
|
|
5102
5132
|
{
|
|
5103
5133
|
ref: forwardedRef,
|
|
@@ -5113,42 +5143,42 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
|
|
|
5113
5143
|
)
|
|
5114
5144
|
));
|
|
5115
5145
|
});
|
|
5116
|
-
var ListViewRoot = (0,
|
|
5117
|
-
var ChildrenListViewInner = (0,
|
|
5118
|
-
const items = (0,
|
|
5119
|
-
() =>
|
|
5120
|
-
(child) => (0,
|
|
5146
|
+
var ListViewRoot = (0, import_react50.memo)(ListViewRootInner);
|
|
5147
|
+
var ChildrenListViewInner = (0, import_react50.forwardRef)(function ChildrenListViewInner2({ children, ...rest }, forwardedRef) {
|
|
5148
|
+
const items = (0, import_react50.useMemo)(
|
|
5149
|
+
() => import_react50.Children.toArray(children).flatMap(
|
|
5150
|
+
(child) => (0, import_react50.isValidElement)(child) ? [child] : []
|
|
5121
5151
|
),
|
|
5122
5152
|
[children]
|
|
5123
5153
|
);
|
|
5124
|
-
return /* @__PURE__ */
|
|
5154
|
+
return /* @__PURE__ */ import_react50.default.createElement(
|
|
5125
5155
|
ListViewRoot,
|
|
5126
5156
|
{
|
|
5127
5157
|
ref: forwardedRef,
|
|
5128
5158
|
...rest,
|
|
5129
5159
|
data: items,
|
|
5130
|
-
keyExtractor: (0,
|
|
5160
|
+
keyExtractor: (0, import_react50.useCallback)(
|
|
5131
5161
|
({ key }, index) => typeof key === "string" ? key : (key ?? index).toString(),
|
|
5132
5162
|
[]
|
|
5133
5163
|
),
|
|
5134
|
-
renderItem: (0,
|
|
5164
|
+
renderItem: (0, import_react50.useCallback)((item) => item, [])
|
|
5135
5165
|
}
|
|
5136
5166
|
);
|
|
5137
5167
|
});
|
|
5138
|
-
var ChildrenListView = (0,
|
|
5139
|
-
var SimpleListViewInner = (0,
|
|
5168
|
+
var ChildrenListView = (0, import_react50.memo)(ChildrenListViewInner);
|
|
5169
|
+
var SimpleListViewInner = (0, import_react50.forwardRef)(function SimpleListViewInner2(props, forwardedRef) {
|
|
5140
5170
|
if ("children" in props) {
|
|
5141
|
-
return /* @__PURE__ */
|
|
5171
|
+
return /* @__PURE__ */ import_react50.default.createElement(ChildrenListView, { ref: forwardedRef, ...props });
|
|
5142
5172
|
} else {
|
|
5143
|
-
return /* @__PURE__ */
|
|
5173
|
+
return /* @__PURE__ */ import_react50.default.createElement(ListViewRoot, { ref: forwardedRef, ...props });
|
|
5144
5174
|
}
|
|
5145
5175
|
});
|
|
5146
|
-
var SimpleListView = (0,
|
|
5176
|
+
var SimpleListView = (0, import_react50.memo)(SimpleListViewInner);
|
|
5147
5177
|
var ListView;
|
|
5148
5178
|
((ListView2) => {
|
|
5149
|
-
ListView2.RowTitle = (0,
|
|
5150
|
-
ListView2.EditableRowTitle = (0,
|
|
5151
|
-
ListView2.Row = (0,
|
|
5179
|
+
ListView2.RowTitle = (0, import_react50.memo)(ListViewRowTitle);
|
|
5180
|
+
ListView2.EditableRowTitle = (0, import_react50.memo)(ListViewEditableRowTitle);
|
|
5181
|
+
ListView2.Row = (0, import_react50.memo)(ListViewRow);
|
|
5152
5182
|
ListView2.Root = SimpleListView;
|
|
5153
5183
|
ListView2.RowContext = ListRowContext;
|
|
5154
5184
|
ListView2.DragIndicator = ListViewDragIndicatorElement;
|
|
@@ -5161,7 +5191,7 @@ var ListView;
|
|
|
5161
5191
|
})(ListView || (ListView = {}));
|
|
5162
5192
|
|
|
5163
5193
|
// src/components/Text.tsx
|
|
5164
|
-
var
|
|
5194
|
+
var import_react51 = __toESM(require("react"));
|
|
5165
5195
|
var import_styled_components26 = __toESM(require("styled-components"));
|
|
5166
5196
|
var elements = {
|
|
5167
5197
|
title: "h1",
|
|
@@ -5183,7 +5213,7 @@ var StyledElement = import_styled_components26.default.span(({ theme, $variant,
|
|
|
5183
5213
|
...$styleProps,
|
|
5184
5214
|
...mergeBreakpoints($breakpoints || [])
|
|
5185
5215
|
}));
|
|
5186
|
-
var Text = (0,
|
|
5216
|
+
var Text = (0, import_react51.forwardRef)(function Text2({
|
|
5187
5217
|
as,
|
|
5188
5218
|
variant,
|
|
5189
5219
|
breakpoints,
|
|
@@ -5197,7 +5227,7 @@ var Text = (0, import_react50.forwardRef)(function Text2({
|
|
|
5197
5227
|
...rest
|
|
5198
5228
|
}, forwardedRef) {
|
|
5199
5229
|
const element = as ?? elements[variant] ?? "span";
|
|
5200
|
-
return /* @__PURE__ */
|
|
5230
|
+
return /* @__PURE__ */ import_react51.default.createElement(
|
|
5201
5231
|
StyledElement,
|
|
5202
5232
|
{
|
|
5203
5233
|
ref: forwardedRef,
|
|
@@ -5215,28 +5245,28 @@ var Text = (0, import_react50.forwardRef)(function Text2({
|
|
|
5215
5245
|
children
|
|
5216
5246
|
);
|
|
5217
5247
|
});
|
|
5218
|
-
var Heading1 = (0,
|
|
5219
|
-
(props, ref) => /* @__PURE__ */
|
|
5248
|
+
var Heading1 = (0, import_react51.forwardRef)(
|
|
5249
|
+
(props, ref) => /* @__PURE__ */ import_react51.default.createElement(Text, { ref, ...props, variant: "heading1" })
|
|
5220
5250
|
);
|
|
5221
|
-
var Heading2 = (0,
|
|
5222
|
-
(props, ref) => /* @__PURE__ */
|
|
5251
|
+
var Heading2 = (0, import_react51.forwardRef)(
|
|
5252
|
+
(props, ref) => /* @__PURE__ */ import_react51.default.createElement(Text, { ref, ...props, variant: "heading2" })
|
|
5223
5253
|
);
|
|
5224
|
-
var Heading3 = (0,
|
|
5225
|
-
(props, ref) => /* @__PURE__ */
|
|
5254
|
+
var Heading3 = (0, import_react51.forwardRef)(
|
|
5255
|
+
(props, ref) => /* @__PURE__ */ import_react51.default.createElement(Text, { ref, ...props, variant: "heading3" })
|
|
5226
5256
|
);
|
|
5227
|
-
var Heading4 = (0,
|
|
5228
|
-
(props, ref) => /* @__PURE__ */
|
|
5257
|
+
var Heading4 = (0, import_react51.forwardRef)(
|
|
5258
|
+
(props, ref) => /* @__PURE__ */ import_react51.default.createElement(Text, { ref, ...props, variant: "heading4" })
|
|
5229
5259
|
);
|
|
5230
|
-
var Heading5 = (0,
|
|
5231
|
-
(props, ref) => /* @__PURE__ */
|
|
5260
|
+
var Heading5 = (0, import_react51.forwardRef)(
|
|
5261
|
+
(props, ref) => /* @__PURE__ */ import_react51.default.createElement(Text, { ref, ...props, variant: "heading5" })
|
|
5232
5262
|
);
|
|
5233
|
-
var Body = (0,
|
|
5234
|
-
(props, ref) => /* @__PURE__ */
|
|
5263
|
+
var Body = (0, import_react51.forwardRef)(
|
|
5264
|
+
(props, ref) => /* @__PURE__ */ import_react51.default.createElement(Text, { ref, ...props, variant: "body" })
|
|
5235
5265
|
);
|
|
5236
|
-
var Small = (0,
|
|
5237
|
-
(props, ref) => /* @__PURE__ */
|
|
5266
|
+
var Small = (0, import_react51.forwardRef)(
|
|
5267
|
+
(props, ref) => /* @__PURE__ */ import_react51.default.createElement(Text, { ref, ...props, variant: "small" })
|
|
5238
5268
|
);
|
|
5239
|
-
var Italic = ({ children }) => /* @__PURE__ */
|
|
5269
|
+
var Italic = ({ children }) => /* @__PURE__ */ import_react51.default.createElement(
|
|
5240
5270
|
"span",
|
|
5241
5271
|
{
|
|
5242
5272
|
style: {
|
|
@@ -5278,15 +5308,15 @@ var CompletionToken = import_styled_components27.default.span(
|
|
|
5278
5308
|
whiteSpace: "pre"
|
|
5279
5309
|
})
|
|
5280
5310
|
);
|
|
5281
|
-
var CompletionMenu = (0,
|
|
5282
|
-
(0,
|
|
5311
|
+
var CompletionMenu = (0, import_react52.memo)(
|
|
5312
|
+
(0, import_react52.forwardRef)(function CompletionMenu2({
|
|
5283
5313
|
items,
|
|
5284
5314
|
selectedIndex,
|
|
5285
5315
|
onSelectItem,
|
|
5286
5316
|
onHoverIndex,
|
|
5287
5317
|
listSize
|
|
5288
5318
|
}, forwardedRef) {
|
|
5289
|
-
return /* @__PURE__ */
|
|
5319
|
+
return /* @__PURE__ */ import_react52.default.createElement(
|
|
5290
5320
|
ListView.Root,
|
|
5291
5321
|
{
|
|
5292
5322
|
ref: forwardedRef,
|
|
@@ -5298,13 +5328,13 @@ var CompletionMenu = (0, import_react51.memo)(
|
|
|
5298
5328
|
sectionHeaderVariant: "label",
|
|
5299
5329
|
renderItem: (item, i) => {
|
|
5300
5330
|
if (item.type === "sectionHeader") {
|
|
5301
|
-
return /* @__PURE__ */
|
|
5331
|
+
return /* @__PURE__ */ import_react52.default.createElement(ListView.Row, { key: item.id, isSectionHeader: true }, item.name);
|
|
5302
5332
|
}
|
|
5303
5333
|
const tokens = fuzzyTokenize({
|
|
5304
5334
|
item: item.name,
|
|
5305
5335
|
itemScore: item
|
|
5306
5336
|
});
|
|
5307
|
-
return /* @__PURE__ */
|
|
5337
|
+
return /* @__PURE__ */ import_react52.default.createElement(
|
|
5308
5338
|
ListView.Row,
|
|
5309
5339
|
{
|
|
5310
5340
|
key: item.id,
|
|
@@ -5316,16 +5346,16 @@ var CompletionMenu = (0, import_react51.memo)(
|
|
|
5316
5346
|
}
|
|
5317
5347
|
}
|
|
5318
5348
|
},
|
|
5319
|
-
tokens.map((token, j) => /* @__PURE__ */
|
|
5320
|
-
item.icon && /* @__PURE__ */
|
|
5349
|
+
tokens.map((token, j) => /* @__PURE__ */ import_react52.default.createElement(CompletionToken, { key: j, $type: token.type }, token.text)),
|
|
5350
|
+
item.icon && /* @__PURE__ */ import_react52.default.createElement(import_react52.default.Fragment, null, /* @__PURE__ */ import_react52.default.createElement(Spacer.Horizontal, null), item.icon)
|
|
5321
5351
|
);
|
|
5322
5352
|
}
|
|
5323
5353
|
}
|
|
5324
5354
|
);
|
|
5325
5355
|
})
|
|
5326
5356
|
);
|
|
5327
|
-
var InputFieldWithCompletions = (0,
|
|
5328
|
-
(0,
|
|
5357
|
+
var InputFieldWithCompletions = (0, import_react52.memo)(
|
|
5358
|
+
(0, import_react52.forwardRef)(function InputFieldWithCompletions2({
|
|
5329
5359
|
loading,
|
|
5330
5360
|
initialValue = "",
|
|
5331
5361
|
placeholder,
|
|
@@ -5343,13 +5373,13 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
|
|
|
5343
5373
|
hideChildrenWhenFocused = false,
|
|
5344
5374
|
hideMenuWhenEmptyValue = false
|
|
5345
5375
|
}, forwardedRef) {
|
|
5346
|
-
const ref = (0,
|
|
5347
|
-
const [isFocused, setIsFocused] = (0,
|
|
5348
|
-
const [state, _setState] = (0,
|
|
5376
|
+
const ref = (0, import_react52.useRef)(null);
|
|
5377
|
+
const [isFocused, setIsFocused] = (0, import_react52.useState)(false);
|
|
5378
|
+
const [state, _setState] = (0, import_react52.useState)({
|
|
5349
5379
|
filter: initialValue,
|
|
5350
5380
|
selectedIndex: 0
|
|
5351
5381
|
});
|
|
5352
|
-
const updateState = (0,
|
|
5382
|
+
const updateState = (0, import_react52.useCallback)(
|
|
5353
5383
|
(newState, hoverItem) => {
|
|
5354
5384
|
const nextState = { ...state, ...newState };
|
|
5355
5385
|
const nextItems = filterWithGroupedSections(items, nextState.filter);
|
|
@@ -5378,16 +5408,16 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
|
|
|
5378
5408
|
},
|
|
5379
5409
|
[items, onChange, onHoverItem, state]
|
|
5380
5410
|
);
|
|
5381
|
-
const initialValueRef = (0,
|
|
5382
|
-
(0,
|
|
5411
|
+
const initialValueRef = (0, import_react52.useRef)(initialValue);
|
|
5412
|
+
(0, import_react52.useLayoutEffect)(() => {
|
|
5383
5413
|
if (initialValueRef.current === initialValue)
|
|
5384
5414
|
return;
|
|
5385
5415
|
initialValueRef.current = initialValue;
|
|
5386
5416
|
updateState({ filter: initialValue });
|
|
5387
5417
|
}, [initialValue, updateState]);
|
|
5388
5418
|
const { filter, selectedIndex } = state;
|
|
5389
|
-
const listRef =
|
|
5390
|
-
const filteredItems = (0,
|
|
5419
|
+
const listRef = import_react52.default.useRef(null);
|
|
5420
|
+
const filteredItems = (0, import_react52.useMemo)(
|
|
5391
5421
|
() => filterWithGroupedSections(items, filter),
|
|
5392
5422
|
[items, filter]
|
|
5393
5423
|
);
|
|
@@ -5403,13 +5433,13 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
|
|
|
5403
5433
|
),
|
|
5404
5434
|
ListView.rowHeight * 10.5
|
|
5405
5435
|
);
|
|
5406
|
-
(0,
|
|
5436
|
+
(0, import_react52.useEffect)(() => {
|
|
5407
5437
|
if (listRef.current) {
|
|
5408
5438
|
listRef.current.scrollToIndex(selectedIndex);
|
|
5409
5439
|
}
|
|
5410
5440
|
}, [selectedIndex]);
|
|
5411
|
-
const lastSubmittedValueRef = (0,
|
|
5412
|
-
const selectItem = (0,
|
|
5441
|
+
const lastSubmittedValueRef = (0, import_react52.useRef)(void 0);
|
|
5442
|
+
const selectItem = (0, import_react52.useCallback)(
|
|
5413
5443
|
(item) => {
|
|
5414
5444
|
if (item.type === "sectionHeader")
|
|
5415
5445
|
return;
|
|
@@ -5425,17 +5455,17 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
|
|
|
5425
5455
|
},
|
|
5426
5456
|
[filter, onSelectItem, onHoverItem, ref]
|
|
5427
5457
|
);
|
|
5428
|
-
const handleChange = (0,
|
|
5458
|
+
const handleChange = (0, import_react52.useCallback)(
|
|
5429
5459
|
(value) => updateState({ selectedIndex: 0, filter: value }),
|
|
5430
5460
|
[updateState]
|
|
5431
5461
|
);
|
|
5432
|
-
const handleBlur = (0,
|
|
5462
|
+
const handleBlur = (0, import_react52.useCallback)(() => {
|
|
5433
5463
|
setIsFocused(false);
|
|
5434
5464
|
const didSubmit = lastSubmittedValueRef.current?.filter === filter;
|
|
5435
5465
|
updateState({ selectedIndex: 0, filter: initialValue }, "resetHover");
|
|
5436
5466
|
onBlur?.(didSubmit, filter);
|
|
5437
5467
|
}, [filter, initialValue, onBlur, updateState]);
|
|
5438
|
-
const handleFocus = (0,
|
|
5468
|
+
const handleFocus = (0, import_react52.useCallback)(
|
|
5439
5469
|
(event) => {
|
|
5440
5470
|
setIsFocused(true);
|
|
5441
5471
|
updateState({ selectedIndex: 0, filter: initialValue });
|
|
@@ -5443,11 +5473,11 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
|
|
|
5443
5473
|
},
|
|
5444
5474
|
[initialValue, onFocus, updateState]
|
|
5445
5475
|
);
|
|
5446
|
-
const handleIndexChange = (0,
|
|
5476
|
+
const handleIndexChange = (0, import_react52.useCallback)(
|
|
5447
5477
|
(index) => updateState({ selectedIndex: index }),
|
|
5448
5478
|
[updateState]
|
|
5449
5479
|
);
|
|
5450
|
-
const handleKeyDown = (0,
|
|
5480
|
+
const handleKeyDown = (0, import_react52.useCallback)(
|
|
5451
5481
|
(event) => {
|
|
5452
5482
|
let handled = false;
|
|
5453
5483
|
switch (event.key) {
|
|
@@ -5511,7 +5541,7 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
|
|
|
5511
5541
|
);
|
|
5512
5542
|
const display = !filter && hideMenuWhenEmptyValue ? "none" : "flex";
|
|
5513
5543
|
const typeaheadValue = filteredItems[selectedIndex]?.name;
|
|
5514
|
-
(0,
|
|
5544
|
+
(0, import_react52.useImperativeHandle)(forwardedRef, () => ({
|
|
5515
5545
|
focus: () => {
|
|
5516
5546
|
ref.current?.focus();
|
|
5517
5547
|
},
|
|
@@ -5522,14 +5552,14 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
|
|
|
5522
5552
|
ref.current?.setSelectionRange(0, ref.current.value.length);
|
|
5523
5553
|
}
|
|
5524
5554
|
}));
|
|
5525
|
-
return /* @__PURE__ */
|
|
5555
|
+
return /* @__PURE__ */ import_react52.default.createElement(
|
|
5526
5556
|
InputField.Root,
|
|
5527
5557
|
{
|
|
5528
5558
|
size: size2,
|
|
5529
5559
|
labelSize: 16,
|
|
5530
5560
|
renderPopoverContent: ({ width }) => {
|
|
5531
5561
|
const listSize = { width, height };
|
|
5532
|
-
return /* @__PURE__ */
|
|
5562
|
+
return /* @__PURE__ */ import_react52.default.createElement(Stack.V, { flex: `0 0 ${height}px`, display }, filteredItems.length > 0 ? /* @__PURE__ */ import_react52.default.createElement(
|
|
5533
5563
|
CompletionMenu,
|
|
5534
5564
|
{
|
|
5535
5565
|
ref: listRef,
|
|
@@ -5539,7 +5569,7 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
|
|
|
5539
5569
|
onHoverIndex: handleIndexChange,
|
|
5540
5570
|
listSize
|
|
5541
5571
|
}
|
|
5542
|
-
) : /* @__PURE__ */
|
|
5572
|
+
) : /* @__PURE__ */ import_react52.default.createElement(
|
|
5543
5573
|
Stack.V,
|
|
5544
5574
|
{
|
|
5545
5575
|
height: "100px",
|
|
@@ -5547,11 +5577,11 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
|
|
|
5547
5577
|
alignItems: "center",
|
|
5548
5578
|
justifyContent: "center"
|
|
5549
5579
|
},
|
|
5550
|
-
/* @__PURE__ */
|
|
5580
|
+
/* @__PURE__ */ import_react52.default.createElement(Small, { color: "textDisabled" }, loading ? "Loading" : "No results")
|
|
5551
5581
|
));
|
|
5552
5582
|
}
|
|
5553
5583
|
},
|
|
5554
|
-
/* @__PURE__ */
|
|
5584
|
+
/* @__PURE__ */ import_react52.default.createElement(
|
|
5555
5585
|
InputField.Input,
|
|
5556
5586
|
{
|
|
5557
5587
|
ref,
|
|
@@ -5575,9 +5605,9 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
|
|
|
5575
5605
|
"aria-controls": "component-listbox"
|
|
5576
5606
|
}
|
|
5577
5607
|
),
|
|
5578
|
-
filter && typeaheadValue && typeaheadValue.startsWith(filter) && /* @__PURE__ */
|
|
5608
|
+
filter && typeaheadValue && typeaheadValue.startsWith(filter) && /* @__PURE__ */ import_react52.default.createElement(InputField.Typeahead, { value: typeaheadValue }),
|
|
5579
5609
|
(!isFocused || !hideChildrenWhenFocused) && children,
|
|
5580
|
-
loading && isFocused && /* @__PURE__ */
|
|
5610
|
+
loading && isFocused && /* @__PURE__ */ import_react52.default.createElement(InputField.Label, null, /* @__PURE__ */ import_react52.default.createElement(ActivityIndicator, null))
|
|
5581
5611
|
);
|
|
5582
5612
|
})
|
|
5583
5613
|
);
|
|
@@ -5599,9 +5629,9 @@ function getNextIndex(items, currentIndex, direction, isDisabled) {
|
|
|
5599
5629
|
}
|
|
5600
5630
|
|
|
5601
5631
|
// src/components/InspectorContainer.tsx
|
|
5602
|
-
var
|
|
5603
|
-
var InspectorContainer = (0,
|
|
5604
|
-
(0,
|
|
5632
|
+
var import_react53 = __toESM(require("react"));
|
|
5633
|
+
var InspectorContainer = (0, import_react53.memo)(
|
|
5634
|
+
(0, import_react53.forwardRef)(function InspectorContainer2({
|
|
5605
5635
|
header,
|
|
5606
5636
|
children,
|
|
5607
5637
|
fallback,
|
|
@@ -5611,7 +5641,7 @@ var InspectorContainer = (0, import_react52.memo)(
|
|
|
5611
5641
|
style: style3
|
|
5612
5642
|
}, forwardedRef) {
|
|
5613
5643
|
const theme = useDesignSystemTheme();
|
|
5614
|
-
return /* @__PURE__ */
|
|
5644
|
+
return /* @__PURE__ */ import_react53.default.createElement(
|
|
5615
5645
|
"div",
|
|
5616
5646
|
{
|
|
5617
5647
|
ref: forwardedRef,
|
|
@@ -5626,13 +5656,13 @@ var InspectorContainer = (0, import_react52.memo)(
|
|
|
5626
5656
|
}
|
|
5627
5657
|
},
|
|
5628
5658
|
header,
|
|
5629
|
-
children ? /* @__PURE__ */
|
|
5659
|
+
children ? /* @__PURE__ */ import_react53.default.createElement(ScrollArea, null, /* @__PURE__ */ import_react53.default.createElement(Stack.V, { position: "relative" }, showDividers ? withSeparatorElements(children, /* @__PURE__ */ import_react53.default.createElement(Divider, null)) : children)) : fallback ? /* @__PURE__ */ import_react53.default.createElement(Stack.V, { position: "relative", height: "100%" }, fallback) : null
|
|
5630
5660
|
);
|
|
5631
5661
|
})
|
|
5632
5662
|
);
|
|
5633
5663
|
|
|
5634
5664
|
// src/components/Label.tsx
|
|
5635
|
-
var
|
|
5665
|
+
var import_react54 = __toESM(require("react"));
|
|
5636
5666
|
var import_styled_components28 = __toESM(require("styled-components"));
|
|
5637
5667
|
var LabelLabel = import_styled_components28.default.label(
|
|
5638
5668
|
({ theme, $selected }) => ({
|
|
@@ -5661,17 +5691,17 @@ var LabelContainer2 = import_styled_components28.default.span(({ theme }) => ({
|
|
|
5661
5691
|
alignItems: "center"
|
|
5662
5692
|
}));
|
|
5663
5693
|
function LabelRoot({ label, children }) {
|
|
5664
|
-
return /* @__PURE__ */
|
|
5694
|
+
return /* @__PURE__ */ import_react54.default.createElement(LabelContainer2, null, children, label && /* @__PURE__ */ import_react54.default.createElement(import_react54.default.Fragment, null, /* @__PURE__ */ import_react54.default.createElement(Spacer.Vertical, { size: 2 }), /* @__PURE__ */ import_react54.default.createElement(LabelLabel, null, label)));
|
|
5665
5695
|
}
|
|
5666
5696
|
var Label;
|
|
5667
5697
|
((_Label) => {
|
|
5668
|
-
_Label.Label = (0,
|
|
5669
|
-
_Label.Root = (0,
|
|
5698
|
+
_Label.Label = (0, import_react54.memo)(LabelLabel);
|
|
5699
|
+
_Label.Root = (0, import_react54.memo)(LabelRoot);
|
|
5670
5700
|
})(Label || (Label = {}));
|
|
5671
5701
|
|
|
5672
5702
|
// src/components/LabeledElementView.tsx
|
|
5673
5703
|
var kiwi = __toESM(require("kiwi.js"));
|
|
5674
|
-
var
|
|
5704
|
+
var import_react55 = __toESM(require("react"));
|
|
5675
5705
|
var import_styled_components29 = __toESM(require("styled-components"));
|
|
5676
5706
|
var Container4 = import_styled_components29.default.div(({ theme }) => ({
|
|
5677
5707
|
display: "flex",
|
|
@@ -5690,24 +5720,24 @@ var Labels = import_styled_components29.default.div(({ theme }) => ({
|
|
|
5690
5720
|
overflow: "hidden",
|
|
5691
5721
|
userSelect: "none"
|
|
5692
5722
|
}));
|
|
5693
|
-
var LabeledElementView = (0,
|
|
5723
|
+
var LabeledElementView = (0, import_react55.memo)(function LabeledElementView2({
|
|
5694
5724
|
children,
|
|
5695
5725
|
renderLabel
|
|
5696
5726
|
}) {
|
|
5697
|
-
const elementIds =
|
|
5698
|
-
(child) => (0,
|
|
5727
|
+
const elementIds = import_react55.Children.toArray(children).flatMap(
|
|
5728
|
+
(child) => (0, import_react55.isValidElement)(child) && child.type === import_react55.Fragment ? child.props.children : [child]
|
|
5699
5729
|
).map(
|
|
5700
|
-
(child) => (0,
|
|
5730
|
+
(child) => (0, import_react55.isValidElement)(child) && "id" in child.props ? child.props.id : null
|
|
5701
5731
|
).filter((id) => !!id);
|
|
5702
5732
|
const serializedIds = elementIds.join(",");
|
|
5703
|
-
const containerRef = (0,
|
|
5704
|
-
const refs = (0,
|
|
5733
|
+
const containerRef = (0, import_react55.useRef)(null);
|
|
5734
|
+
const refs = (0, import_react55.useMemo)(() => {
|
|
5705
5735
|
return Object.fromEntries(
|
|
5706
|
-
serializedIds.split(",").map((id) => [id, (0,
|
|
5736
|
+
serializedIds.split(",").map((id) => [id, (0, import_react55.createRef)()])
|
|
5707
5737
|
);
|
|
5708
5738
|
}, [serializedIds]);
|
|
5709
|
-
const labelElements = (0,
|
|
5710
|
-
return serializedIds.split(",").map((id, index) => /* @__PURE__ */
|
|
5739
|
+
const labelElements = (0, import_react55.useMemo)(() => {
|
|
5740
|
+
return serializedIds.split(",").map((id, index) => /* @__PURE__ */ import_react55.default.createElement(
|
|
5711
5741
|
"span",
|
|
5712
5742
|
{
|
|
5713
5743
|
key: id,
|
|
@@ -5720,7 +5750,7 @@ var LabeledElementView = (0, import_react54.memo)(function LabeledElementView2({
|
|
|
5720
5750
|
})
|
|
5721
5751
|
));
|
|
5722
5752
|
}, [refs, serializedIds, renderLabel]);
|
|
5723
|
-
(0,
|
|
5753
|
+
(0, import_react55.useLayoutEffect)(() => {
|
|
5724
5754
|
if (!containerRef.current)
|
|
5725
5755
|
return;
|
|
5726
5756
|
const containerRect = containerRef.current.getBoundingClientRect();
|
|
@@ -5785,13 +5815,13 @@ var LabeledElementView = (0, import_react54.memo)(function LabeledElementView2({
|
|
|
5785
5815
|
`${Math.max(...heights)}px`
|
|
5786
5816
|
);
|
|
5787
5817
|
}, [refs, labelElements]);
|
|
5788
|
-
return /* @__PURE__ */
|
|
5818
|
+
return /* @__PURE__ */ import_react55.default.createElement(Container4, { ref: containerRef }, /* @__PURE__ */ import_react55.default.createElement(Tools, null, children), /* @__PURE__ */ import_react55.default.createElement(Labels, null, labelElements));
|
|
5789
5819
|
});
|
|
5790
5820
|
|
|
5791
5821
|
// src/components/Progress.tsx
|
|
5792
5822
|
var import_noya_utils9 = require("@noya-app/noya-utils");
|
|
5793
5823
|
var ProgressPrimitive = __toESM(require("@radix-ui/react-progress"));
|
|
5794
|
-
var
|
|
5824
|
+
var import_react56 = __toESM(require("react"));
|
|
5795
5825
|
var import_styled_components30 = __toESM(require("styled-components"));
|
|
5796
5826
|
function Progress({
|
|
5797
5827
|
value,
|
|
@@ -5801,7 +5831,7 @@ function Progress({
|
|
|
5801
5831
|
variant = "normal"
|
|
5802
5832
|
}) {
|
|
5803
5833
|
const clampedValue = (0, import_noya_utils9.clamp)(value, 0, 100);
|
|
5804
|
-
return /* @__PURE__ */
|
|
5834
|
+
return /* @__PURE__ */ import_react56.default.createElement(ProgressRoot, { value: clampedValue, style: { width, flex, height } }, /* @__PURE__ */ import_react56.default.createElement(
|
|
5805
5835
|
ProgressIndicator,
|
|
5806
5836
|
{
|
|
5807
5837
|
variant,
|
|
@@ -5826,7 +5856,7 @@ var ProgressIndicator = (0, import_styled_components30.default)(ProgressPrimitiv
|
|
|
5826
5856
|
|
|
5827
5857
|
// src/components/RadioGroup.tsx
|
|
5828
5858
|
var ToggleGroupPrimitive = __toESM(require("@radix-ui/react-toggle-group"));
|
|
5829
|
-
var
|
|
5859
|
+
var import_react57 = __toESM(require("react"));
|
|
5830
5860
|
var import_styled_components31 = __toESM(require("styled-components"));
|
|
5831
5861
|
var ignoredProps2 = /* @__PURE__ */ new Set(["colorScheme"]);
|
|
5832
5862
|
var StyledRoot = (0, import_styled_components31.default)(ToggleGroupPrimitive.Root).withConfig({
|
|
@@ -5879,9 +5909,9 @@ var StyledItem = (0, import_styled_components31.default)(ToggleGroupPrimitive.It
|
|
|
5879
5909
|
boxShadow: `0 0 0 1px ${theme.colors.sidebar.background}, 0 0 0 3px ${theme.colors[colorScheme ?? "primary"]}`
|
|
5880
5910
|
}
|
|
5881
5911
|
}));
|
|
5882
|
-
var ToggleGroupItem = (0,
|
|
5883
|
-
const { colorScheme } = (0,
|
|
5884
|
-
const itemElement = /* @__PURE__ */
|
|
5912
|
+
var ToggleGroupItem = (0, import_react57.forwardRef)(function ToggleGroupItem2({ value, tooltip, children, disabled = false }, forwardedRef) {
|
|
5913
|
+
const { colorScheme } = (0, import_react57.useContext)(RadioGroupContext);
|
|
5914
|
+
const itemElement = /* @__PURE__ */ import_react57.default.createElement(
|
|
5885
5915
|
StyledItem,
|
|
5886
5916
|
{
|
|
5887
5917
|
ref: forwardedRef,
|
|
@@ -5891,9 +5921,9 @@ var ToggleGroupItem = (0, import_react56.forwardRef)(function ToggleGroupItem2({
|
|
|
5891
5921
|
},
|
|
5892
5922
|
children
|
|
5893
5923
|
);
|
|
5894
|
-
return tooltip ? /* @__PURE__ */
|
|
5924
|
+
return tooltip ? /* @__PURE__ */ import_react57.default.createElement(Tooltip, { content: tooltip }, itemElement) : itemElement;
|
|
5895
5925
|
});
|
|
5896
|
-
var RadioGroupContext = (0,
|
|
5926
|
+
var RadioGroupContext = (0, import_react57.createContext)({
|
|
5897
5927
|
colorScheme: "primary"
|
|
5898
5928
|
});
|
|
5899
5929
|
function ToggleGroupRoot({
|
|
@@ -5904,8 +5934,8 @@ function ToggleGroupRoot({
|
|
|
5904
5934
|
allowEmpty,
|
|
5905
5935
|
children
|
|
5906
5936
|
}) {
|
|
5907
|
-
const contextValue = (0,
|
|
5908
|
-
const handleValueChange = (0,
|
|
5937
|
+
const contextValue = (0, import_react57.useMemo)(() => ({ colorScheme }), [colorScheme]);
|
|
5938
|
+
const handleValueChange = (0, import_react57.useCallback)(
|
|
5909
5939
|
(value2) => {
|
|
5910
5940
|
if (!allowEmpty && !value2)
|
|
5911
5941
|
return;
|
|
@@ -5913,7 +5943,7 @@ function ToggleGroupRoot({
|
|
|
5913
5943
|
},
|
|
5914
5944
|
[allowEmpty, onValueChange]
|
|
5915
5945
|
);
|
|
5916
|
-
return /* @__PURE__ */
|
|
5946
|
+
return /* @__PURE__ */ import_react57.default.createElement(RadioGroupContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react57.default.createElement(
|
|
5917
5947
|
StyledRoot,
|
|
5918
5948
|
{
|
|
5919
5949
|
id,
|
|
@@ -5927,28 +5957,28 @@ function ToggleGroupRoot({
|
|
|
5927
5957
|
}
|
|
5928
5958
|
var RadioGroup;
|
|
5929
5959
|
((RadioGroup2) => {
|
|
5930
|
-
RadioGroup2.Root = (0,
|
|
5931
|
-
RadioGroup2.Item = (0,
|
|
5960
|
+
RadioGroup2.Root = (0, import_react57.memo)(ToggleGroupRoot);
|
|
5961
|
+
RadioGroup2.Item = (0, import_react57.memo)(ToggleGroupItem);
|
|
5932
5962
|
})(RadioGroup || (RadioGroup = {}));
|
|
5933
5963
|
|
|
5934
5964
|
// src/components/Select.tsx
|
|
5935
5965
|
var import_noya_utils10 = require("@noya-app/noya-utils");
|
|
5936
|
-
var
|
|
5966
|
+
var import_react58 = __toESM(require("react"));
|
|
5937
5967
|
var import_styled_components32 = __toESM(require("styled-components"));
|
|
5938
|
-
var SelectContext = (0,
|
|
5939
|
-
var SelectOption = (0,
|
|
5968
|
+
var SelectContext = (0, import_react58.createContext)(void 0);
|
|
5969
|
+
var SelectOption = (0, import_react58.memo)(function SelectOption2({
|
|
5940
5970
|
value,
|
|
5941
5971
|
title,
|
|
5942
5972
|
onSelect
|
|
5943
5973
|
}) {
|
|
5944
|
-
const { addListener, removeListener } = (0,
|
|
5945
|
-
(0,
|
|
5974
|
+
const { addListener, removeListener } = (0, import_react58.useContext)(SelectContext);
|
|
5975
|
+
(0, import_react58.useEffect)(() => {
|
|
5946
5976
|
if (!onSelect)
|
|
5947
5977
|
return;
|
|
5948
5978
|
addListener(value, onSelect);
|
|
5949
5979
|
return () => removeListener(value);
|
|
5950
5980
|
}, [addListener, onSelect, removeListener, value]);
|
|
5951
|
-
return /* @__PURE__ */
|
|
5981
|
+
return /* @__PURE__ */ import_react58.default.createElement("option", { value }, title ?? value);
|
|
5952
5982
|
});
|
|
5953
5983
|
var createChevronSVGString = (0, import_noya_utils10.memoize)(
|
|
5954
5984
|
(color) => `
|
|
@@ -5983,7 +6013,7 @@ var SelectElement = import_styled_components32.default.select(
|
|
|
5983
6013
|
borderRadius: "4px",
|
|
5984
6014
|
paddingTop: "4px",
|
|
5985
6015
|
paddingBottom: "4px",
|
|
5986
|
-
paddingLeft: "
|
|
6016
|
+
paddingLeft: "6px",
|
|
5987
6017
|
paddingRight: "23px",
|
|
5988
6018
|
background: [
|
|
5989
6019
|
`calc(100% - 6px) / 15px url("data:image/svg+xml;utf8,${createChevronSVGString(
|
|
@@ -6010,7 +6040,7 @@ var SelectLabel = import_styled_components32.default.label(({ theme }) => ({
|
|
|
6010
6040
|
justifyContent: "end",
|
|
6011
6041
|
paddingRight: "24px"
|
|
6012
6042
|
}));
|
|
6013
|
-
var Select = (0,
|
|
6043
|
+
var Select = (0, import_react58.memo)(function Select2({
|
|
6014
6044
|
id,
|
|
6015
6045
|
flex,
|
|
6016
6046
|
value,
|
|
@@ -6021,8 +6051,8 @@ var Select = (0, import_react57.memo)(function Select2({
|
|
|
6021
6051
|
const getTitle = "options" in rest ? rest.getTitle : void 0;
|
|
6022
6052
|
const onChange = "options" in rest ? rest.onChange : void 0;
|
|
6023
6053
|
const children = "options" in rest ? void 0 : rest.children;
|
|
6024
|
-
const optionElements = (0,
|
|
6025
|
-
() => options ? options.map((option, index) => /* @__PURE__ */
|
|
6054
|
+
const optionElements = (0, import_react58.useMemo)(
|
|
6055
|
+
() => options ? options.map((option, index) => /* @__PURE__ */ import_react58.default.createElement(
|
|
6026
6056
|
SelectOption,
|
|
6027
6057
|
{
|
|
6028
6058
|
key: option,
|
|
@@ -6033,36 +6063,36 @@ var Select = (0, import_react57.memo)(function Select2({
|
|
|
6033
6063
|
)) : children,
|
|
6034
6064
|
[children, getTitle, onChange, options]
|
|
6035
6065
|
);
|
|
6036
|
-
const listeners = (0,
|
|
6037
|
-
const contextValue = (0,
|
|
6066
|
+
const listeners = (0, import_react58.useRef)(/* @__PURE__ */ new Map());
|
|
6067
|
+
const contextValue = (0, import_react58.useMemo)(
|
|
6038
6068
|
() => ({
|
|
6039
6069
|
addListener: (value2, listener) => listeners.current.set(value2, listener),
|
|
6040
6070
|
removeListener: (value2) => listeners.current.delete(value2)
|
|
6041
6071
|
}),
|
|
6042
6072
|
[]
|
|
6043
6073
|
);
|
|
6044
|
-
return /* @__PURE__ */
|
|
6074
|
+
return /* @__PURE__ */ import_react58.default.createElement(SelectContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react58.default.createElement(SelectContainer, { $flex: flex }, /* @__PURE__ */ import_react58.default.createElement(
|
|
6045
6075
|
SelectElement,
|
|
6046
6076
|
{
|
|
6047
6077
|
id,
|
|
6048
6078
|
$flex: flex,
|
|
6049
6079
|
value,
|
|
6050
|
-
onChange: (0,
|
|
6080
|
+
onChange: (0, import_react58.useCallback)(
|
|
6051
6081
|
(event) => listeners.current.get(event.target.value)?.(),
|
|
6052
6082
|
[listeners]
|
|
6053
6083
|
),
|
|
6054
6084
|
onPointerDown: (event) => event.stopPropagation()
|
|
6055
6085
|
},
|
|
6056
6086
|
optionElements
|
|
6057
|
-
)), label && /* @__PURE__ */
|
|
6087
|
+
)), label && /* @__PURE__ */ import_react58.default.createElement(SelectLabel, { htmlFor: id }, label));
|
|
6058
6088
|
});
|
|
6059
6089
|
|
|
6060
6090
|
// src/components/SelectMenu.tsx
|
|
6061
6091
|
var import_noya_icons6 = require("@noya-app/noya-icons");
|
|
6062
6092
|
var Select3 = __toESM(require("@radix-ui/react-select"));
|
|
6063
|
-
var
|
|
6093
|
+
var import_react59 = __toESM(require("react"));
|
|
6064
6094
|
var import_styled_components33 = require("styled-components");
|
|
6065
|
-
var SelectMenu = (0,
|
|
6095
|
+
var SelectMenu = (0, import_react59.memo)(function SelectMenu2({
|
|
6066
6096
|
id,
|
|
6067
6097
|
style: style3,
|
|
6068
6098
|
className,
|
|
@@ -6075,23 +6105,23 @@ var SelectMenu = (0, import_react58.memo)(function SelectMenu2({
|
|
|
6075
6105
|
(item) => typeof item !== "string" && item.value === value
|
|
6076
6106
|
);
|
|
6077
6107
|
const icon = selectedItem?.icon;
|
|
6078
|
-
return /* @__PURE__ */
|
|
6108
|
+
return /* @__PURE__ */ import_react59.default.createElement(Select3.Root, { value, onValueChange: onSelect }, /* @__PURE__ */ import_react59.default.createElement(Select3.SelectTrigger, { asChild: true }, /* @__PURE__ */ import_react59.default.createElement(Button, { id, style: style3, className }, icon && /* @__PURE__ */ import_react59.default.createElement(import_react59.default.Fragment, null, renderIcon(icon), /* @__PURE__ */ import_react59.default.createElement(Spacer.Horizontal, { size: 8 })), /* @__PURE__ */ import_react59.default.createElement(Select3.Value, { placeholder }), /* @__PURE__ */ import_react59.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react59.default.createElement(import_noya_icons6.DropdownChevronIcon, null))), /* @__PURE__ */ import_react59.default.createElement(Select3.Portal, null, /* @__PURE__ */ import_react59.default.createElement(SelectContent, null, /* @__PURE__ */ import_react59.default.createElement(SelectViewport, null, menuItems.map((menuItem) => {
|
|
6079
6109
|
if (typeof menuItem === "string") {
|
|
6080
|
-
return /* @__PURE__ */
|
|
6110
|
+
return /* @__PURE__ */ import_react59.default.createElement(StyledSeparator, null);
|
|
6081
6111
|
}
|
|
6082
6112
|
const value2 = menuItem.value ?? "";
|
|
6083
|
-
return /* @__PURE__ */
|
|
6113
|
+
return /* @__PURE__ */ import_react59.default.createElement(SelectItem, { key: value2, value: value2, icon: menuItem.icon }, menuItem.title ?? value2);
|
|
6084
6114
|
})))));
|
|
6085
6115
|
});
|
|
6086
6116
|
var SelectContent = (0, import_styled_components33.styled)(Select3.Content)(styles.contentStyle);
|
|
6087
6117
|
var SelectViewport = (0, import_styled_components33.styled)(Select3.Viewport)({});
|
|
6088
|
-
var SelectItem =
|
|
6118
|
+
var SelectItem = import_react59.default.forwardRef(
|
|
6089
6119
|
({
|
|
6090
6120
|
children,
|
|
6091
6121
|
icon,
|
|
6092
6122
|
...props
|
|
6093
6123
|
}, forwardedRef) => {
|
|
6094
|
-
return /* @__PURE__ */
|
|
6124
|
+
return /* @__PURE__ */ import_react59.default.createElement(StyledItem2, { ...props, ref: forwardedRef }, icon && /* @__PURE__ */ import_react59.default.createElement(import_react59.default.Fragment, null, renderIcon(icon), /* @__PURE__ */ import_react59.default.createElement(Spacer.Horizontal, { size: 8 })), /* @__PURE__ */ import_react59.default.createElement(Select3.ItemText, null, children));
|
|
6095
6125
|
}
|
|
6096
6126
|
);
|
|
6097
6127
|
var StyledItem2 = (0, import_styled_components33.styled)(Select3.Item)(styles.itemStyle);
|
|
@@ -6099,7 +6129,7 @@ var StyledSeparator = (0, import_styled_components33.styled)(Select3.Separator)(
|
|
|
6099
6129
|
|
|
6100
6130
|
// src/components/Slider.tsx
|
|
6101
6131
|
var RadixSlider = __toESM(require("@radix-ui/react-slider"));
|
|
6102
|
-
var
|
|
6132
|
+
var import_react60 = __toESM(require("react"));
|
|
6103
6133
|
var import_styled_components34 = __toESM(require("styled-components"));
|
|
6104
6134
|
var StyledSlider = (0, import_styled_components34.default)(RadixSlider.Root)({
|
|
6105
6135
|
flex: "1",
|
|
@@ -6140,17 +6170,17 @@ var Slider = function Slider2({
|
|
|
6140
6170
|
min,
|
|
6141
6171
|
max
|
|
6142
6172
|
}) {
|
|
6143
|
-
const arrayValue = (0,
|
|
6173
|
+
const arrayValue = (0, import_react60.useMemo)(
|
|
6144
6174
|
() => [Math.min(Math.max(value, min), max)],
|
|
6145
6175
|
[value, min, max]
|
|
6146
6176
|
);
|
|
6147
|
-
const handleValueChange = (0,
|
|
6177
|
+
const handleValueChange = (0, import_react60.useCallback)(
|
|
6148
6178
|
(arrayValue2) => {
|
|
6149
6179
|
onValueChange(arrayValue2[0]);
|
|
6150
6180
|
},
|
|
6151
6181
|
[onValueChange]
|
|
6152
6182
|
);
|
|
6153
|
-
return /* @__PURE__ */
|
|
6183
|
+
return /* @__PURE__ */ import_react60.default.createElement(
|
|
6154
6184
|
StyledSlider,
|
|
6155
6185
|
{
|
|
6156
6186
|
min,
|
|
@@ -6159,14 +6189,14 @@ var Slider = function Slider2({
|
|
|
6159
6189
|
value: arrayValue,
|
|
6160
6190
|
onValueChange: handleValueChange
|
|
6161
6191
|
},
|
|
6162
|
-
/* @__PURE__ */
|
|
6163
|
-
/* @__PURE__ */
|
|
6192
|
+
/* @__PURE__ */ import_react60.default.createElement(StyledTrack, null, /* @__PURE__ */ import_react60.default.createElement(StyledRange, null)),
|
|
6193
|
+
/* @__PURE__ */ import_react60.default.createElement(StyledThumb2, null)
|
|
6164
6194
|
);
|
|
6165
6195
|
};
|
|
6166
6196
|
|
|
6167
6197
|
// src/components/Switch.tsx
|
|
6168
6198
|
var SwitchPrimitive = __toESM(require("@radix-ui/react-switch"));
|
|
6169
|
-
var
|
|
6199
|
+
var import_react61 = __toESM(require("react"));
|
|
6170
6200
|
var import_styled_components35 = __toESM(require("styled-components"));
|
|
6171
6201
|
var SwitchRoot = (0, import_styled_components35.default)(SwitchPrimitive.Root)(({ theme, $colorScheme }) => ({
|
|
6172
6202
|
all: "unset",
|
|
@@ -6201,7 +6231,7 @@ var Switch = function Switch2({
|
|
|
6201
6231
|
onChange,
|
|
6202
6232
|
colorScheme = "normal"
|
|
6203
6233
|
}) {
|
|
6204
|
-
return /* @__PURE__ */
|
|
6234
|
+
return /* @__PURE__ */ import_react61.default.createElement(
|
|
6205
6235
|
SwitchRoot,
|
|
6206
6236
|
{
|
|
6207
6237
|
$colorScheme: colorScheme,
|
|
@@ -6210,62 +6240,62 @@ var Switch = function Switch2({
|
|
|
6210
6240
|
onChange(newValue);
|
|
6211
6241
|
}
|
|
6212
6242
|
},
|
|
6213
|
-
/* @__PURE__ */
|
|
6243
|
+
/* @__PURE__ */ import_react61.default.createElement(SwitchThumb, null)
|
|
6214
6244
|
);
|
|
6215
6245
|
};
|
|
6216
6246
|
|
|
6217
6247
|
// src/components/TreeView.tsx
|
|
6218
|
-
var
|
|
6219
|
-
var TreeRow = (0,
|
|
6248
|
+
var import_react62 = __toESM(require("react"));
|
|
6249
|
+
var TreeRow = (0, import_react62.forwardRef)(function TreeRow2({
|
|
6220
6250
|
icon,
|
|
6221
6251
|
expanded,
|
|
6222
6252
|
onClickChevron,
|
|
6223
6253
|
children,
|
|
6224
6254
|
...rest
|
|
6225
6255
|
}, forwardedRef) {
|
|
6226
|
-
const { expandable } = (0,
|
|
6227
|
-
const handleClickChevron = (0,
|
|
6256
|
+
const { expandable } = (0, import_react62.useContext)(ListView.RowContext);
|
|
6257
|
+
const handleClickChevron = (0, import_react62.useCallback)(
|
|
6228
6258
|
(event) => {
|
|
6229
6259
|
event.stopPropagation();
|
|
6230
6260
|
onClickChevron?.({ altKey: event.altKey });
|
|
6231
6261
|
},
|
|
6232
6262
|
[onClickChevron]
|
|
6233
6263
|
);
|
|
6234
|
-
return /* @__PURE__ */
|
|
6264
|
+
return /* @__PURE__ */ import_react62.default.createElement(ListView.Row, { ref: forwardedRef, ...rest }, expandable && /* @__PURE__ */ import_react62.default.createElement(import_react62.default.Fragment, null, expanded === void 0 ? /* @__PURE__ */ import_react62.default.createElement(Spacer.Horizontal, { size: 19 }) : /* @__PURE__ */ import_react62.default.createElement(
|
|
6235
6265
|
IconButton,
|
|
6236
6266
|
{
|
|
6237
6267
|
iconName: expanded ? "ChevronDownIcon2" : "ChevronRightIcon2",
|
|
6238
6268
|
onClick: handleClickChevron,
|
|
6239
6269
|
selected: rest.selected
|
|
6240
6270
|
}
|
|
6241
|
-
), /* @__PURE__ */
|
|
6271
|
+
), /* @__PURE__ */ import_react62.default.createElement(Spacer.Horizontal, { size: 6 })), icon && /* @__PURE__ */ import_react62.default.createElement(import_react62.default.Fragment, null, renderIcon(icon), /* @__PURE__ */ import_react62.default.createElement(Spacer.Horizontal, { size: 10 })), children);
|
|
6242
6272
|
});
|
|
6243
6273
|
var TreeView;
|
|
6244
6274
|
((TreeView2) => {
|
|
6245
6275
|
TreeView2.Root = ListView.Root;
|
|
6246
6276
|
TreeView2.RowTitle = ListView.RowTitle;
|
|
6247
6277
|
TreeView2.EditableRowTitle = ListView.EditableRowTitle;
|
|
6248
|
-
TreeView2.Row = (0,
|
|
6278
|
+
TreeView2.Row = (0, import_react62.memo)(TreeRow);
|
|
6249
6279
|
})(TreeView || (TreeView = {}));
|
|
6250
6280
|
|
|
6251
6281
|
// src/components/WorkspaceLayout.tsx
|
|
6252
6282
|
var import_noya_keymap5 = require("@noya-app/noya-keymap");
|
|
6253
|
-
var
|
|
6283
|
+
var import_react65 = __toESM(require("react"));
|
|
6254
6284
|
var import_react_resizable_panels = require("react-resizable-panels");
|
|
6255
6285
|
|
|
6256
6286
|
// src/hooks/usePreservePanelSize.tsx
|
|
6257
|
-
var
|
|
6287
|
+
var import_react64 = require("react");
|
|
6258
6288
|
|
|
6259
6289
|
// src/hooks/useWindowSize.tsx
|
|
6260
|
-
var
|
|
6290
|
+
var import_react63 = require("react");
|
|
6261
6291
|
function useWindowSize() {
|
|
6262
|
-
const [size2, setSize] = (0,
|
|
6292
|
+
const [size2, setSize] = (0, import_react63.useState)(
|
|
6263
6293
|
typeof window === "undefined" ? { width: 0, height: 0 } : {
|
|
6264
6294
|
width: window.innerWidth,
|
|
6265
6295
|
height: window.innerHeight
|
|
6266
6296
|
}
|
|
6267
6297
|
);
|
|
6268
|
-
(0,
|
|
6298
|
+
(0, import_react63.useEffect)(() => {
|
|
6269
6299
|
const handleResize = () => setSize({
|
|
6270
6300
|
width: window.innerWidth,
|
|
6271
6301
|
height: window.innerHeight
|
|
@@ -6283,8 +6313,8 @@ var RIGHT_SIDEBAR_ID = "editor-right-sidebar";
|
|
|
6283
6313
|
var CONTENT_AREA_ID = "editor-content-area";
|
|
6284
6314
|
function usePreservePanelSize(panelGroupRef, setPanelLayoutState) {
|
|
6285
6315
|
const windowSize = useWindowSize();
|
|
6286
|
-
const layoutRef = (0,
|
|
6287
|
-
(0,
|
|
6316
|
+
const layoutRef = (0, import_react64.useRef)();
|
|
6317
|
+
(0, import_react64.useLayoutEffect)(() => {
|
|
6288
6318
|
const panelGroup = document.querySelector(
|
|
6289
6319
|
`[data-panel-group-id="${EDITOR_PANEL_GROUP_ID}"]`
|
|
6290
6320
|
);
|
|
@@ -6327,7 +6357,7 @@ function usePreservePanelSize(panelGroupRef, setPanelLayoutState) {
|
|
|
6327
6357
|
panelGroupObserver.disconnect();
|
|
6328
6358
|
};
|
|
6329
6359
|
}, [panelGroupRef, setPanelLayoutState]);
|
|
6330
|
-
(0,
|
|
6360
|
+
(0, import_react64.useLayoutEffect)(() => {
|
|
6331
6361
|
if (!layoutRef.current)
|
|
6332
6362
|
return;
|
|
6333
6363
|
const {
|
|
@@ -6387,7 +6417,7 @@ function usePreservePanelSize(panelGroupRef, setPanelLayoutState) {
|
|
|
6387
6417
|
}
|
|
6388
6418
|
|
|
6389
6419
|
// src/components/WorkspaceLayout.tsx
|
|
6390
|
-
var WorkspaceLayout = (0,
|
|
6420
|
+
var WorkspaceLayout = (0, import_react65.forwardRef)(function WorkspaceLayout2({
|
|
6391
6421
|
autoSavePrefix,
|
|
6392
6422
|
leftSidebarContent: leftPanelContent,
|
|
6393
6423
|
children: centerPanelContent,
|
|
@@ -6412,12 +6442,12 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
|
|
|
6412
6442
|
const rightSidebarPercentage = getPercentage(rightSidebarInitialSize);
|
|
6413
6443
|
const leftSidebarMinPercentage = leftSidebarMinSize !== void 0 ? getPercentage(leftSidebarMinSize) : void 0;
|
|
6414
6444
|
const rightSidebarMinPercentage = rightSidebarMinSize !== void 0 ? getPercentage(rightSidebarMinSize) : void 0;
|
|
6415
|
-
const panelGroupRef = (0,
|
|
6416
|
-
const leftSidebarRef = (0,
|
|
6417
|
-
const rightSidebarRef = (0,
|
|
6445
|
+
const panelGroupRef = (0, import_react65.useRef)(null);
|
|
6446
|
+
const leftSidebarRef = (0, import_react65.useRef)(null);
|
|
6447
|
+
const rightSidebarRef = (0, import_react65.useRef)(null);
|
|
6418
6448
|
usePreservePanelSize(panelGroupRef, onChangeLayoutState);
|
|
6419
6449
|
const theme = useDesignSystemTheme();
|
|
6420
|
-
(0,
|
|
6450
|
+
(0, import_react65.useImperativeHandle)(forwardedRef, () => ({
|
|
6421
6451
|
setLeftSidebarExpanded: (expanded) => {
|
|
6422
6452
|
if (expanded) {
|
|
6423
6453
|
leftSidebarRef.current?.expand();
|
|
@@ -6474,7 +6504,7 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
|
|
|
6474
6504
|
}
|
|
6475
6505
|
});
|
|
6476
6506
|
const centerPanelPercentage = 100 - (leftPanelContent ? leftSidebarPercentage : 0) - (rightPanelContent ? rightSidebarPercentage : 0);
|
|
6477
|
-
return /* @__PURE__ */
|
|
6507
|
+
return /* @__PURE__ */ import_react65.default.createElement(
|
|
6478
6508
|
"div",
|
|
6479
6509
|
{
|
|
6480
6510
|
id,
|
|
@@ -6486,7 +6516,7 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
|
|
|
6486
6516
|
...style3
|
|
6487
6517
|
}
|
|
6488
6518
|
},
|
|
6489
|
-
/* @__PURE__ */
|
|
6519
|
+
/* @__PURE__ */ import_react65.default.createElement(
|
|
6490
6520
|
import_react_resizable_panels.PanelGroup,
|
|
6491
6521
|
{
|
|
6492
6522
|
ref: panelGroupRef,
|
|
@@ -6495,7 +6525,7 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
|
|
|
6495
6525
|
autoSaveId: autoSavePrefix ? `${autoSavePrefix}--${EDITOR_PANEL_GROUP_ID}` : void 0,
|
|
6496
6526
|
style: { flex: "1" }
|
|
6497
6527
|
},
|
|
6498
|
-
hasLeftSidebar && /* @__PURE__ */
|
|
6528
|
+
hasLeftSidebar && /* @__PURE__ */ import_react65.default.createElement(import_react65.default.Fragment, null, /* @__PURE__ */ import_react65.default.createElement(
|
|
6499
6529
|
import_react_resizable_panels.Panel,
|
|
6500
6530
|
{
|
|
6501
6531
|
id: LEFT_SIDEBAR_ID,
|
|
@@ -6512,7 +6542,7 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
|
|
|
6512
6542
|
}
|
|
6513
6543
|
},
|
|
6514
6544
|
leftPanelContent
|
|
6515
|
-
), /* @__PURE__ */
|
|
6545
|
+
), /* @__PURE__ */ import_react65.default.createElement(
|
|
6516
6546
|
import_react_resizable_panels.PanelResizeHandle,
|
|
6517
6547
|
{
|
|
6518
6548
|
style: {
|
|
@@ -6523,7 +6553,7 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
|
|
|
6523
6553
|
}
|
|
6524
6554
|
}
|
|
6525
6555
|
)),
|
|
6526
|
-
/* @__PURE__ */
|
|
6556
|
+
/* @__PURE__ */ import_react65.default.createElement(
|
|
6527
6557
|
import_react_resizable_panels.Panel,
|
|
6528
6558
|
{
|
|
6529
6559
|
id: CONTENT_AREA_ID,
|
|
@@ -6538,7 +6568,7 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
|
|
|
6538
6568
|
},
|
|
6539
6569
|
centerPanelContent
|
|
6540
6570
|
),
|
|
6541
|
-
hasRightSidebar && /* @__PURE__ */
|
|
6571
|
+
hasRightSidebar && /* @__PURE__ */ import_react65.default.createElement(import_react65.default.Fragment, null, /* @__PURE__ */ import_react65.default.createElement(
|
|
6542
6572
|
import_react_resizable_panels.PanelResizeHandle,
|
|
6543
6573
|
{
|
|
6544
6574
|
style: {
|
|
@@ -6548,7 +6578,7 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
|
|
|
6548
6578
|
backgroundColor: theme.colors.divider
|
|
6549
6579
|
}
|
|
6550
6580
|
}
|
|
6551
|
-
), /* @__PURE__ */
|
|
6581
|
+
), /* @__PURE__ */ import_react65.default.createElement(
|
|
6552
6582
|
import_react_resizable_panels.Panel,
|
|
6553
6583
|
{
|
|
6554
6584
|
id: RIGHT_SIDEBAR_ID,
|
|
@@ -6611,7 +6641,7 @@ var SUPPORTED_CANVAS_UPLOAD_TYPES = [
|
|
|
6611
6641
|
|
|
6612
6642
|
// src/components/ArrayController.tsx
|
|
6613
6643
|
var import_noya_utils11 = require("@noya-app/noya-utils");
|
|
6614
|
-
var
|
|
6644
|
+
var import_react67 = __toESM(require("react"));
|
|
6615
6645
|
var import_styled_components37 = __toESM(require("styled-components"));
|
|
6616
6646
|
|
|
6617
6647
|
// src/components/InspectorPrimitives.tsx
|
|
@@ -6630,7 +6660,7 @@ __export(InspectorPrimitives_exports, {
|
|
|
6630
6660
|
Title: () => Title3,
|
|
6631
6661
|
VerticalSeparator: () => VerticalSeparator
|
|
6632
6662
|
});
|
|
6633
|
-
var
|
|
6663
|
+
var import_react66 = __toESM(require("react"));
|
|
6634
6664
|
var import_styled_components36 = __toESM(require("styled-components"));
|
|
6635
6665
|
var Section = import_styled_components36.default.div(({ theme, $padding = "10px", $gap }) => ({
|
|
6636
6666
|
flex: "0 0 auto",
|
|
@@ -6677,8 +6707,8 @@ var Checkbox = import_styled_components36.default.input(({ theme }) => ({
|
|
|
6677
6707
|
var Text3 = import_styled_components36.default.span(({ theme }) => ({
|
|
6678
6708
|
...theme.textStyles.small
|
|
6679
6709
|
}));
|
|
6680
|
-
var VerticalSeparator = () => /* @__PURE__ */
|
|
6681
|
-
var HorizontalSeparator = () => /* @__PURE__ */
|
|
6710
|
+
var VerticalSeparator = () => /* @__PURE__ */ import_react66.default.createElement(Spacer.Vertical, { size: (0, import_styled_components36.useTheme)().sizes.inspector.verticalSeparator });
|
|
6711
|
+
var HorizontalSeparator = () => /* @__PURE__ */ import_react66.default.createElement(Spacer.Horizontal, { size: (0, import_styled_components36.useTheme)().sizes.inspector.horizontalSeparator });
|
|
6682
6712
|
var SliderRowLabel = import_styled_components36.default.span(({ theme }) => ({
|
|
6683
6713
|
...theme.textStyles.small,
|
|
6684
6714
|
color: theme.colors.textMuted,
|
|
@@ -6698,7 +6728,7 @@ var RowLabel = import_styled_components36.default.span(({ theme, $textStyle }) =
|
|
|
6698
6728
|
// Button height
|
|
6699
6729
|
alignItems: "center"
|
|
6700
6730
|
}));
|
|
6701
|
-
var LabeledRow = (0,
|
|
6731
|
+
var LabeledRow = (0, import_react66.memo)(function LabeledRow2({
|
|
6702
6732
|
id,
|
|
6703
6733
|
children,
|
|
6704
6734
|
label,
|
|
@@ -6706,13 +6736,13 @@ var LabeledRow = (0, import_react65.memo)(function LabeledRow2({
|
|
|
6706
6736
|
gap,
|
|
6707
6737
|
right
|
|
6708
6738
|
}) {
|
|
6709
|
-
return /* @__PURE__ */
|
|
6739
|
+
return /* @__PURE__ */ import_react66.default.createElement(Row2, { id }, /* @__PURE__ */ import_react66.default.createElement(Column, null, /* @__PURE__ */ import_react66.default.createElement(RowLabel, { $textStyle: labelTextStyle }, label, right && /* @__PURE__ */ import_react66.default.createElement(Spacer.Horizontal, null), right), /* @__PURE__ */ import_react66.default.createElement(Row2, { $gap: gap }, children)));
|
|
6710
6740
|
});
|
|
6711
|
-
var LabeledSliderRow = (0,
|
|
6741
|
+
var LabeledSliderRow = (0, import_react66.memo)(function LabeledRow3({
|
|
6712
6742
|
children,
|
|
6713
6743
|
label
|
|
6714
6744
|
}) {
|
|
6715
|
-
return /* @__PURE__ */
|
|
6745
|
+
return /* @__PURE__ */ import_react66.default.createElement(Row2, null, /* @__PURE__ */ import_react66.default.createElement(Column, null, /* @__PURE__ */ import_react66.default.createElement(SliderRowLabel, null, label), /* @__PURE__ */ import_react66.default.createElement(Row2, null, children)));
|
|
6716
6746
|
});
|
|
6717
6747
|
|
|
6718
6748
|
// src/components/ArrayController.tsx
|
|
@@ -6725,7 +6755,7 @@ var ElementRow = import_styled_components37.default.div({
|
|
|
6725
6755
|
var ItemContainer2 = import_styled_components37.default.div({
|
|
6726
6756
|
position: "relative"
|
|
6727
6757
|
});
|
|
6728
|
-
var ArrayController = (0,
|
|
6758
|
+
var ArrayController = (0, import_react67.memo)(function ArrayController2({
|
|
6729
6759
|
id,
|
|
6730
6760
|
items,
|
|
6731
6761
|
title,
|
|
@@ -6743,12 +6773,12 @@ var ArrayController = (0, import_react66.memo)(function ArrayController2({
|
|
|
6743
6773
|
}) {
|
|
6744
6774
|
const iconColor = (0, import_styled_components37.useTheme)().colors.icon;
|
|
6745
6775
|
const primaryLightColor = (0, import_styled_components37.useTheme)().colors.primaryLight;
|
|
6746
|
-
const keys = (0,
|
|
6776
|
+
const keys = (0, import_react67.useMemo)(
|
|
6747
6777
|
() => items.map((item, index) => getKey?.(item) ?? index.toString()),
|
|
6748
6778
|
[getKey, items]
|
|
6749
6779
|
);
|
|
6750
6780
|
const indexes = reversed ? (0, import_noya_utils11.range)(0, items.length).reverse() : (0, import_noya_utils11.range)(0, items.length);
|
|
6751
|
-
const handleMoveItem = (0,
|
|
6781
|
+
const handleMoveItem = (0, import_react67.useCallback)(
|
|
6752
6782
|
(sourceIndex, destinationIndex, position) => {
|
|
6753
6783
|
if (reversed) {
|
|
6754
6784
|
if (position === "above") {
|
|
@@ -6765,11 +6795,11 @@ var ArrayController = (0, import_react66.memo)(function ArrayController2({
|
|
|
6765
6795
|
[onMoveItem, reversed]
|
|
6766
6796
|
);
|
|
6767
6797
|
const renderRow = (index) => {
|
|
6768
|
-
return /* @__PURE__ */
|
|
6798
|
+
return /* @__PURE__ */ import_react67.default.createElement(ElementRow, { key: keys[index] }, renderItem({ item: items[index], index }));
|
|
6769
6799
|
};
|
|
6770
|
-
return /* @__PURE__ */
|
|
6800
|
+
return /* @__PURE__ */ import_react67.default.createElement(Section, { id, $padding: padding, $gap: "2px" }, /* @__PURE__ */ import_react67.default.createElement(SectionHeader, null, /* @__PURE__ */ import_react67.default.createElement(Button, { variant: "none", onClick: onClickPlus }, /* @__PURE__ */ import_react67.default.createElement(Title3, null, title)), /* @__PURE__ */ import_react67.default.createElement(Spacer.Horizontal, null), withSeparatorElements(
|
|
6771
6801
|
[
|
|
6772
|
-
onClickTrash && /* @__PURE__ */
|
|
6802
|
+
onClickTrash && /* @__PURE__ */ import_react67.default.createElement(
|
|
6773
6803
|
IconButton,
|
|
6774
6804
|
{
|
|
6775
6805
|
id: `${id}-trash`,
|
|
@@ -6778,7 +6808,7 @@ var ArrayController = (0, import_react66.memo)(function ArrayController2({
|
|
|
6778
6808
|
onClick: onClickTrash
|
|
6779
6809
|
}
|
|
6780
6810
|
),
|
|
6781
|
-
onClickExpand && /* @__PURE__ */
|
|
6811
|
+
onClickExpand && /* @__PURE__ */ import_react67.default.createElement(
|
|
6782
6812
|
IconButton,
|
|
6783
6813
|
{
|
|
6784
6814
|
id: `${id}-gear`,
|
|
@@ -6787,7 +6817,7 @@ var ArrayController = (0, import_react66.memo)(function ArrayController2({
|
|
|
6787
6817
|
onClick: onClickExpand
|
|
6788
6818
|
}
|
|
6789
6819
|
),
|
|
6790
|
-
onClickPlus && /* @__PURE__ */
|
|
6820
|
+
onClickPlus && /* @__PURE__ */ import_react67.default.createElement(
|
|
6791
6821
|
IconButton,
|
|
6792
6822
|
{
|
|
6793
6823
|
id: `${id}-add`,
|
|
@@ -6797,15 +6827,15 @@ var ArrayController = (0, import_react66.memo)(function ArrayController2({
|
|
|
6797
6827
|
}
|
|
6798
6828
|
)
|
|
6799
6829
|
],
|
|
6800
|
-
/* @__PURE__ */
|
|
6801
|
-
)), /* @__PURE__ */
|
|
6830
|
+
/* @__PURE__ */ import_react67.default.createElement(Spacer.Horizontal, { size: 8 })
|
|
6831
|
+
)), /* @__PURE__ */ import_react67.default.createElement(Stack.V, { gap: "4px" }, sortable ? /* @__PURE__ */ import_react67.default.createElement(
|
|
6802
6832
|
Sortable.Root,
|
|
6803
6833
|
{
|
|
6804
6834
|
keys,
|
|
6805
6835
|
renderOverlay: renderRow,
|
|
6806
6836
|
onMoveItem: handleMoveItem
|
|
6807
6837
|
},
|
|
6808
|
-
indexes.map((index) => /* @__PURE__ */
|
|
6838
|
+
indexes.map((index) => /* @__PURE__ */ import_react67.default.createElement(Sortable.Item, { id: keys[index], key: keys[index] }, ({ relativeDropPosition, ...sortableProps }) => /* @__PURE__ */ import_react67.default.createElement(ItemContainer2, { ...sortableProps }, renderRow(index), relativeDropPosition && /* @__PURE__ */ import_react67.default.createElement(
|
|
6809
6839
|
ListView.DragIndicator,
|
|
6810
6840
|
{
|
|
6811
6841
|
$gap: 0,
|
|
@@ -6819,11 +6849,11 @@ var ArrayController = (0, import_react66.memo)(function ArrayController2({
|
|
|
6819
6849
|
|
|
6820
6850
|
// src/components/DimensionInput.tsx
|
|
6821
6851
|
var import_noya_utils12 = require("@noya-app/noya-utils");
|
|
6822
|
-
var
|
|
6852
|
+
var import_react68 = __toESM(require("react"));
|
|
6823
6853
|
function getNewValue(value, mode, delta) {
|
|
6824
6854
|
return delta === void 0 ? value : mode === "replace" ? delta : value + delta;
|
|
6825
6855
|
}
|
|
6826
|
-
var DimensionInput = (0,
|
|
6856
|
+
var DimensionInput = (0, import_react68.memo)(function DimensionInput2({
|
|
6827
6857
|
id,
|
|
6828
6858
|
value,
|
|
6829
6859
|
onSetValue,
|
|
@@ -6833,15 +6863,15 @@ var DimensionInput = (0, import_react67.memo)(function DimensionInput2({
|
|
|
6833
6863
|
disabled,
|
|
6834
6864
|
trigger = "submit"
|
|
6835
6865
|
}) {
|
|
6836
|
-
const handleNudgeValue = (0,
|
|
6866
|
+
const handleNudgeValue = (0, import_react68.useCallback)(
|
|
6837
6867
|
(value2) => onSetValue(value2, "adjust"),
|
|
6838
6868
|
[onSetValue]
|
|
6839
6869
|
);
|
|
6840
|
-
const handleSetValue = (0,
|
|
6870
|
+
const handleSetValue = (0, import_react68.useCallback)(
|
|
6841
6871
|
(value2) => onSetValue(value2, "replace"),
|
|
6842
6872
|
[onSetValue]
|
|
6843
6873
|
);
|
|
6844
|
-
return /* @__PURE__ */
|
|
6874
|
+
return /* @__PURE__ */ import_react68.default.createElement(InputField.Root, { id, width: size2 }, /* @__PURE__ */ import_react68.default.createElement(
|
|
6845
6875
|
InputField.NumberInput,
|
|
6846
6876
|
{
|
|
6847
6877
|
value: value === void 0 ? value : (0, import_noya_utils12.round)(value, 2),
|
|
@@ -6850,7 +6880,7 @@ var DimensionInput = (0, import_react67.memo)(function DimensionInput2({
|
|
|
6850
6880
|
disabled,
|
|
6851
6881
|
...trigger === "change" ? { onChange: handleSetValue } : { onSubmit: handleSetValue }
|
|
6852
6882
|
}
|
|
6853
|
-
), label && /* @__PURE__ */
|
|
6883
|
+
), label && /* @__PURE__ */ import_react68.default.createElement(InputField.Label, null, label));
|
|
6854
6884
|
});
|
|
6855
6885
|
// Annotate the CommonJS export names for ESM import in node:
|
|
6856
6886
|
0 && (module.exports = {
|