@noya-app/noya-designsystem 0.1.23 → 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 +6 -0
- package/dist/index.d.mts +6 -4
- package/dist/index.d.ts +6 -4
- package/dist/index.js +608 -596
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +271 -259
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- 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/SelectMenu.tsx +3 -2
- package/src/components/TreeView.tsx +3 -2
- package/src/components/internal/Menu.tsx +2 -1
package/dist/index.js
CHANGED
|
@@ -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,
|
|
@@ -2214,32 +2226,32 @@ function InputFieldRoot({
|
|
|
2214
2226
|
style: style3,
|
|
2215
2227
|
className
|
|
2216
2228
|
}) {
|
|
2217
|
-
const childrenArray =
|
|
2229
|
+
const childrenArray = import_react33.Children.toArray(children);
|
|
2218
2230
|
const hasDropdown = childrenArray.some(
|
|
2219
|
-
(child) => (0,
|
|
2231
|
+
(child) => (0, import_react33.isValidElement)(child) && child.type === InputFieldDropdownMenu
|
|
2220
2232
|
);
|
|
2221
2233
|
const hasLabel = childrenArray.some(
|
|
2222
|
-
(child) => (0,
|
|
2234
|
+
(child) => (0, import_react33.isValidElement)(child) && child.type === InputFieldLabel
|
|
2223
2235
|
);
|
|
2224
|
-
const [isFocused, setIsFocused] =
|
|
2225
|
-
const [measuredLabelSize, setMeasuredLabelSize] =
|
|
2226
|
-
const [measuredWidth, setMeasuredWidth] =
|
|
2227
|
-
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)(
|
|
2228
2240
|
(isFocused2) => {
|
|
2229
2241
|
setIsFocused(isFocused2);
|
|
2230
2242
|
onFocusChange?.(isFocused2);
|
|
2231
2243
|
},
|
|
2232
2244
|
[onFocusChange]
|
|
2233
2245
|
);
|
|
2234
|
-
const [inputRef, setInputRef] =
|
|
2235
|
-
(0,
|
|
2246
|
+
const [inputRef, setInputRef] = import_react33.default.useState();
|
|
2247
|
+
(0, import_react33.useEffect)(() => {
|
|
2236
2248
|
if (inputRef && typeof inputRef !== "function") {
|
|
2237
2249
|
setMeasuredWidth?.(
|
|
2238
2250
|
isFocused ? inputRef?.current?.getBoundingClientRect().width : void 0
|
|
2239
2251
|
);
|
|
2240
2252
|
}
|
|
2241
2253
|
}, [inputRef, isFocused]);
|
|
2242
|
-
const contextValue = (0,
|
|
2254
|
+
const contextValue = (0, import_react33.useMemo)(
|
|
2243
2255
|
() => ({
|
|
2244
2256
|
labelPosition,
|
|
2245
2257
|
labelSize: measuredLabelSize ?? labelSize ?? 6,
|
|
@@ -2264,7 +2276,7 @@ function InputFieldRoot({
|
|
|
2264
2276
|
inputRef
|
|
2265
2277
|
]
|
|
2266
2278
|
);
|
|
2267
|
-
const rootElement = /* @__PURE__ */
|
|
2279
|
+
const rootElement = /* @__PURE__ */ import_react33.default.createElement(
|
|
2268
2280
|
RootContainer,
|
|
2269
2281
|
{
|
|
2270
2282
|
id,
|
|
@@ -2275,7 +2287,7 @@ function InputFieldRoot({
|
|
|
2275
2287
|
},
|
|
2276
2288
|
children
|
|
2277
2289
|
);
|
|
2278
|
-
return /* @__PURE__ */
|
|
2290
|
+
return /* @__PURE__ */ import_react33.default.createElement(InputFieldContext.Provider, { value: contextValue }, renderPopoverContent ? /* @__PURE__ */ import_react33.default.createElement(
|
|
2279
2291
|
Popover,
|
|
2280
2292
|
{
|
|
2281
2293
|
open: true,
|
|
@@ -2291,15 +2303,15 @@ function InputFieldRoot({
|
|
|
2291
2303
|
event.stopPropagation();
|
|
2292
2304
|
}
|
|
2293
2305
|
},
|
|
2294
|
-
measuredWidth && /* @__PURE__ */
|
|
2306
|
+
measuredWidth && /* @__PURE__ */ import_react33.default.createElement(Stack.V, { width: measuredWidth, overflow: "hidden" }, renderPopoverContent({ width: measuredWidth }))
|
|
2295
2307
|
) : rootElement);
|
|
2296
2308
|
}
|
|
2297
2309
|
var InputField;
|
|
2298
2310
|
((InputField2) => {
|
|
2299
|
-
InputField2.Root = (0,
|
|
2300
|
-
InputField2.Input = (0,
|
|
2301
|
-
InputField2.Typeahead = (0,
|
|
2302
|
-
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);
|
|
2303
2315
|
InputField2.DropdownMenu = InputFieldDropdownMenu;
|
|
2304
2316
|
InputField2.Button = InputFieldButton;
|
|
2305
2317
|
InputField2.Label = InputFieldLabel;
|
|
@@ -2323,24 +2335,24 @@ function createDeferredPromise() {
|
|
|
2323
2335
|
});
|
|
2324
2336
|
return { promise, resolve, reject };
|
|
2325
2337
|
}
|
|
2326
|
-
var DialogContext = (0,
|
|
2338
|
+
var DialogContext = (0, import_react34.createContext)(void 0);
|
|
2327
2339
|
var DialogProvider = function DialogProvider2({
|
|
2328
2340
|
children
|
|
2329
2341
|
}) {
|
|
2330
|
-
const [contents, setContents] = (0,
|
|
2342
|
+
const [contents, setContents] = (0, import_react34.useState)();
|
|
2331
2343
|
const isOpen = !!contents;
|
|
2332
|
-
const close = (0,
|
|
2344
|
+
const close = (0, import_react34.useCallback)(() => {
|
|
2333
2345
|
if (!contents)
|
|
2334
2346
|
return;
|
|
2335
2347
|
contents.resolve(void 0);
|
|
2336
2348
|
}, [contents]);
|
|
2337
|
-
const submit = (0,
|
|
2349
|
+
const submit = (0, import_react34.useCallback)(() => {
|
|
2338
2350
|
if (!contents || !contents.inputValue)
|
|
2339
2351
|
return;
|
|
2340
2352
|
contents.resolve(contents.inputValue);
|
|
2341
2353
|
setContents(void 0);
|
|
2342
2354
|
}, [contents]);
|
|
2343
|
-
const open = (0,
|
|
2355
|
+
const open = (0, import_react34.useCallback)(
|
|
2344
2356
|
(title, inputValue = "") => {
|
|
2345
2357
|
const { promise, resolve } = createDeferredPromise();
|
|
2346
2358
|
setContents({
|
|
@@ -2355,7 +2367,7 @@ var DialogProvider = function DialogProvider2({
|
|
|
2355
2367
|
},
|
|
2356
2368
|
[]
|
|
2357
2369
|
);
|
|
2358
|
-
const handleKeyDown = (0,
|
|
2370
|
+
const handleKeyDown = (0, import_react34.useCallback)(
|
|
2359
2371
|
(event) => {
|
|
2360
2372
|
if (event.key !== "Enter")
|
|
2361
2373
|
return;
|
|
@@ -2365,29 +2377,29 @@ var DialogProvider = function DialogProvider2({
|
|
|
2365
2377
|
},
|
|
2366
2378
|
[submit]
|
|
2367
2379
|
);
|
|
2368
|
-
const inputRef = (0,
|
|
2369
|
-
const dialogRef = (0,
|
|
2370
|
-
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) => {
|
|
2371
2383
|
if (!dialogRef.current)
|
|
2372
2384
|
return false;
|
|
2373
2385
|
return dialogRef.current.containsElement(element);
|
|
2374
2386
|
}, []);
|
|
2375
|
-
return /* @__PURE__ */
|
|
2387
|
+
return /* @__PURE__ */ import_react34.default.createElement(import_react34.default.Fragment, null, /* @__PURE__ */ import_react34.default.createElement(
|
|
2376
2388
|
DialogContext.Provider,
|
|
2377
2389
|
{
|
|
2378
|
-
value: (0,
|
|
2390
|
+
value: (0, import_react34.useMemo)(
|
|
2379
2391
|
() => ({ openInputDialog: open, containsElement }),
|
|
2380
2392
|
[containsElement, open]
|
|
2381
2393
|
)
|
|
2382
2394
|
},
|
|
2383
2395
|
children
|
|
2384
|
-
), /* @__PURE__ */
|
|
2396
|
+
), /* @__PURE__ */ import_react34.default.createElement(
|
|
2385
2397
|
Dialog,
|
|
2386
2398
|
{
|
|
2387
2399
|
ref: dialogRef,
|
|
2388
2400
|
title: contents?.title,
|
|
2389
2401
|
open: isOpen,
|
|
2390
|
-
onOpenChange: (0,
|
|
2402
|
+
onOpenChange: (0, import_react34.useCallback)(
|
|
2391
2403
|
(isOpen2) => {
|
|
2392
2404
|
if (!isOpen2) {
|
|
2393
2405
|
close();
|
|
@@ -2395,14 +2407,14 @@ var DialogProvider = function DialogProvider2({
|
|
|
2395
2407
|
},
|
|
2396
2408
|
[close]
|
|
2397
2409
|
),
|
|
2398
|
-
onOpenAutoFocus: (0,
|
|
2410
|
+
onOpenAutoFocus: (0, import_react34.useCallback)((event) => {
|
|
2399
2411
|
event.stopPropagation();
|
|
2400
2412
|
event.preventDefault();
|
|
2401
2413
|
inputRef.current?.focus();
|
|
2402
2414
|
inputRef.current?.setSelectionRange(0, inputRef.current.value.length);
|
|
2403
2415
|
}, [])
|
|
2404
2416
|
},
|
|
2405
|
-
/* @__PURE__ */
|
|
2417
|
+
/* @__PURE__ */ import_react34.default.createElement(InputField.Root, null, /* @__PURE__ */ import_react34.default.createElement(
|
|
2406
2418
|
InputField.Input,
|
|
2407
2419
|
{
|
|
2408
2420
|
ref: inputRef,
|
|
@@ -2418,12 +2430,12 @@ var DialogProvider = function DialogProvider2({
|
|
|
2418
2430
|
onKeyDown: handleKeyDown
|
|
2419
2431
|
}
|
|
2420
2432
|
)),
|
|
2421
|
-
/* @__PURE__ */
|
|
2422
|
-
/* @__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"))
|
|
2423
2435
|
));
|
|
2424
2436
|
};
|
|
2425
2437
|
function useDialog() {
|
|
2426
|
-
const value = (0,
|
|
2438
|
+
const value = (0, import_react34.useContext)(DialogContext);
|
|
2427
2439
|
if (!value) {
|
|
2428
2440
|
throw new Error("Missing DialogProvider");
|
|
2429
2441
|
}
|
|
@@ -2438,20 +2450,20 @@ function useDialogContainsElement() {
|
|
|
2438
2450
|
|
|
2439
2451
|
// src/contexts/FloatingWindowContext.tsx
|
|
2440
2452
|
var import_noya_utils5 = require("@noya-app/noya-utils");
|
|
2441
|
-
var
|
|
2453
|
+
var import_react35 = __toESM(require("react"));
|
|
2442
2454
|
var import_react_dom = require("react-dom");
|
|
2443
|
-
var FloatingWindowContext = (0,
|
|
2444
|
-
var CurrentWindowContext = (0,
|
|
2455
|
+
var FloatingWindowContext = (0, import_react35.createContext)(void 0);
|
|
2456
|
+
var CurrentWindowContext = (0, import_react35.createContext)(void 0);
|
|
2445
2457
|
var FloatingWindowProvider = ({
|
|
2446
2458
|
children
|
|
2447
2459
|
}) => {
|
|
2448
|
-
const [windows, setWindows] = (0,
|
|
2449
|
-
const contextValue = (0,
|
|
2460
|
+
const [windows, setWindows] = (0, import_react35.useState)({});
|
|
2461
|
+
const contextValue = (0, import_react35.useMemo)(() => {
|
|
2450
2462
|
const createWindow = (element) => {
|
|
2451
2463
|
const id = (0, import_noya_utils5.uuid)();
|
|
2452
2464
|
setWindows((windows2) => ({
|
|
2453
2465
|
...windows2,
|
|
2454
|
-
[id]: /* @__PURE__ */
|
|
2466
|
+
[id]: /* @__PURE__ */ import_react35.default.createElement(CurrentWindowContext.Provider, { value: { id } }, element)
|
|
2455
2467
|
}));
|
|
2456
2468
|
return id;
|
|
2457
2469
|
};
|
|
@@ -2463,12 +2475,12 @@ var FloatingWindowProvider = ({
|
|
|
2463
2475
|
};
|
|
2464
2476
|
return { createWindow, closeWindow };
|
|
2465
2477
|
}, []);
|
|
2466
|
-
return /* @__PURE__ */
|
|
2478
|
+
return /* @__PURE__ */ import_react35.default.createElement(FloatingWindowContext.Provider, { value: contextValue }, children, Object.entries(windows).map(
|
|
2467
2479
|
([id, element]) => (0, import_react_dom.createPortal)(element, document.body, id)
|
|
2468
2480
|
));
|
|
2469
2481
|
};
|
|
2470
2482
|
var useFloatingWindowManager = () => {
|
|
2471
|
-
const context = (0,
|
|
2483
|
+
const context = (0, import_react35.useContext)(FloatingWindowContext);
|
|
2472
2484
|
if (!context) {
|
|
2473
2485
|
throw new Error(
|
|
2474
2486
|
"useFloatingWindow must be used within a FloatingWindowProvider"
|
|
@@ -2477,7 +2489,7 @@ var useFloatingWindowManager = () => {
|
|
|
2477
2489
|
return context;
|
|
2478
2490
|
};
|
|
2479
2491
|
var useCurrentFloatingWindowInternal = () => {
|
|
2480
|
-
const context = (0,
|
|
2492
|
+
const context = (0, import_react35.useContext)(CurrentWindowContext);
|
|
2481
2493
|
if (!context) {
|
|
2482
2494
|
throw new Error("useCurrentWindow must be used within a FloatingWindow");
|
|
2483
2495
|
}
|
|
@@ -2485,7 +2497,7 @@ var useCurrentFloatingWindowInternal = () => {
|
|
|
2485
2497
|
};
|
|
2486
2498
|
|
|
2487
2499
|
// src/contexts/DesignSystemConfiguration.tsx
|
|
2488
|
-
var DesignSystemThemeProvider = (0,
|
|
2500
|
+
var DesignSystemThemeProvider = (0, import_react36.memo)(
|
|
2489
2501
|
function DesignSystemThemeProvider2({
|
|
2490
2502
|
children,
|
|
2491
2503
|
theme
|
|
@@ -2496,50 +2508,50 @@ var DesignSystemThemeProvider = (0, import_react35.memo)(
|
|
|
2496
2508
|
} catch (e) {
|
|
2497
2509
|
}
|
|
2498
2510
|
if (theme) {
|
|
2499
|
-
return /* @__PURE__ */
|
|
2511
|
+
return /* @__PURE__ */ import_react36.default.createElement(import_styled_components15.ThemeProvider, { theme }, children);
|
|
2500
2512
|
} else if (parentTheme) {
|
|
2501
2513
|
return children;
|
|
2502
2514
|
} else {
|
|
2503
|
-
return /* @__PURE__ */
|
|
2515
|
+
return /* @__PURE__ */ import_react36.default.createElement(import_styled_components15.ThemeProvider, { theme: light_exports }, children);
|
|
2504
2516
|
}
|
|
2505
2517
|
}
|
|
2506
2518
|
);
|
|
2507
|
-
var DesignSystemConfigurationContext = (0,
|
|
2519
|
+
var DesignSystemConfigurationContext = (0, import_react36.createContext)({
|
|
2508
2520
|
platform: "key"
|
|
2509
2521
|
});
|
|
2510
|
-
var DesignSystemConfigurationProvider = (0,
|
|
2522
|
+
var DesignSystemConfigurationProvider = (0, import_react36.memo)(
|
|
2511
2523
|
function DesignSystemConfigurationProvider2({
|
|
2512
2524
|
children,
|
|
2513
2525
|
theme,
|
|
2514
2526
|
platform
|
|
2515
2527
|
}) {
|
|
2516
|
-
const [internalPlatform, setInternalPlatform] = (0,
|
|
2528
|
+
const [internalPlatform, setInternalPlatform] = (0, import_react36.useState)(
|
|
2517
2529
|
platform ?? "key"
|
|
2518
2530
|
);
|
|
2519
|
-
(0,
|
|
2531
|
+
(0, import_react36.useEffect)(() => {
|
|
2520
2532
|
if (platform !== void 0)
|
|
2521
2533
|
return;
|
|
2522
2534
|
if (typeof navigator !== "undefined") {
|
|
2523
2535
|
setInternalPlatform((0, import_noya_keymap3.getCurrentPlatform)(navigator));
|
|
2524
2536
|
}
|
|
2525
2537
|
}, [platform]);
|
|
2526
|
-
const contextValue = (0,
|
|
2538
|
+
const contextValue = (0, import_react36.useMemo)(
|
|
2527
2539
|
() => ({ platform: platform ?? internalPlatform }),
|
|
2528
2540
|
[platform, internalPlatform]
|
|
2529
2541
|
);
|
|
2530
2542
|
const resolvedTheme = theme === "light" ? light_exports : theme === "dark" ? dark_exports : theme ?? light_exports;
|
|
2531
|
-
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)))));
|
|
2532
2544
|
}
|
|
2533
2545
|
);
|
|
2534
2546
|
function useDesignSystemConfiguration() {
|
|
2535
|
-
return (0,
|
|
2547
|
+
return (0, import_react36.useContext)(DesignSystemConfigurationContext);
|
|
2536
2548
|
}
|
|
2537
2549
|
function useDesignSystemTheme() {
|
|
2538
2550
|
return (0, import_styled_components15.useTheme)();
|
|
2539
2551
|
}
|
|
2540
2552
|
|
|
2541
2553
|
// src/hooks/useHover.ts
|
|
2542
|
-
var
|
|
2554
|
+
var React22 = __toESM(require("react"));
|
|
2543
2555
|
var globalIgnoreEmulatedMouseEvents = false;
|
|
2544
2556
|
var hoverCount = 0;
|
|
2545
2557
|
function setGlobalIgnoreEmulatedMouseEvents() {
|
|
@@ -2569,13 +2581,13 @@ function setupGlobalTouchEvents() {
|
|
|
2569
2581
|
}
|
|
2570
2582
|
function useHover(props = {}) {
|
|
2571
2583
|
const { onHoverStart, onHoverChange, onHoverEnd, isDisabled } = props;
|
|
2572
|
-
const [isHovered, setHovered] =
|
|
2573
|
-
const state =
|
|
2584
|
+
const [isHovered, setHovered] = React22.useState(false);
|
|
2585
|
+
const state = React22.useRef({
|
|
2574
2586
|
isHovered: false,
|
|
2575
2587
|
ignoreEmulatedMouseEvents: false
|
|
2576
2588
|
}).current;
|
|
2577
|
-
|
|
2578
|
-
const hoverProps =
|
|
2589
|
+
React22.useEffect(setupGlobalTouchEvents, []);
|
|
2590
|
+
const hoverProps = React22.useMemo(
|
|
2579
2591
|
function getHoverProps() {
|
|
2580
2592
|
function triggerHoverStart(event, pointerType) {
|
|
2581
2593
|
if (isDisabled || pointerType === "touch" || state.isHovered) {
|
|
@@ -2716,8 +2728,8 @@ var AddElement = (0, import_styled_components16.default)(import_noya_icons3.Plus
|
|
|
2716
2728
|
opacity: 0.85
|
|
2717
2729
|
}
|
|
2718
2730
|
}));
|
|
2719
|
-
var Chip = (0,
|
|
2720
|
-
(0,
|
|
2731
|
+
var Chip = (0, import_react37.memo)(
|
|
2732
|
+
(0, import_react37.forwardRef)(function Chip2({
|
|
2721
2733
|
colorScheme,
|
|
2722
2734
|
children,
|
|
2723
2735
|
deletable,
|
|
@@ -2740,7 +2752,7 @@ var Chip = (0, import_react36.memo)(
|
|
|
2740
2752
|
});
|
|
2741
2753
|
const handleClick = !children && !deletable && addable ? onAdd : onClick;
|
|
2742
2754
|
const color = colorScheme === "primary" ? theme.colors.primary : colorScheme === "secondary" ? theme.colors.secondary : theme.colors.text;
|
|
2743
|
-
return /* @__PURE__ */
|
|
2755
|
+
return /* @__PURE__ */ import_react37.default.createElement(
|
|
2744
2756
|
ChipElement,
|
|
2745
2757
|
{
|
|
2746
2758
|
ref: forwardedRef,
|
|
@@ -2754,7 +2766,7 @@ var Chip = (0, import_react36.memo)(
|
|
|
2754
2766
|
tabIndex,
|
|
2755
2767
|
...rest
|
|
2756
2768
|
},
|
|
2757
|
-
addable && /* @__PURE__ */
|
|
2769
|
+
addable && /* @__PURE__ */ import_react37.default.createElement(
|
|
2758
2770
|
AddElement,
|
|
2759
2771
|
{
|
|
2760
2772
|
size: size2,
|
|
@@ -2767,7 +2779,7 @@ var Chip = (0, import_react36.memo)(
|
|
|
2767
2779
|
}
|
|
2768
2780
|
),
|
|
2769
2781
|
children,
|
|
2770
|
-
deletable && /* @__PURE__ */
|
|
2782
|
+
deletable && /* @__PURE__ */ import_react37.default.createElement(
|
|
2771
2783
|
DeleteElement,
|
|
2772
2784
|
{
|
|
2773
2785
|
size: size2,
|
|
@@ -2787,7 +2799,7 @@ var Chip = (0, import_react36.memo)(
|
|
|
2787
2799
|
var import_noya_icons4 = require("@noya-app/noya-icons");
|
|
2788
2800
|
var import_noya_keymap4 = require("@noya-app/noya-keymap");
|
|
2789
2801
|
var RadixContextMenu = __toESM(require("@radix-ui/react-context-menu"));
|
|
2790
|
-
var
|
|
2802
|
+
var import_react38 = __toESM(require("react"));
|
|
2791
2803
|
var import_styled_components17 = __toESM(require("styled-components"));
|
|
2792
2804
|
var SeparatorElement2 = (0, import_styled_components17.default)(RadixContextMenu.Separator)(
|
|
2793
2805
|
styles.separatorStyle
|
|
@@ -2799,7 +2811,7 @@ var CheckboxItemElement2 = (0, import_styled_components17.default)(RadixContextM
|
|
|
2799
2811
|
var StyledItemIndicator2 = (0, import_styled_components17.default)(RadixContextMenu.ItemIndicator)(
|
|
2800
2812
|
styles.itemIndicatorStyle
|
|
2801
2813
|
);
|
|
2802
|
-
var ContextMenuItem2 = (0,
|
|
2814
|
+
var ContextMenuItem2 = (0, import_react38.memo)(function ContextMenuItem3({
|
|
2803
2815
|
value,
|
|
2804
2816
|
children,
|
|
2805
2817
|
onSelect,
|
|
@@ -2810,42 +2822,42 @@ var ContextMenuItem2 = (0, import_react37.memo)(function ContextMenuItem3({
|
|
|
2810
2822
|
items,
|
|
2811
2823
|
shortcut
|
|
2812
2824
|
}) {
|
|
2813
|
-
const handlePointerDown = (0,
|
|
2825
|
+
const handlePointerDown = (0, import_react38.useCallback)(
|
|
2814
2826
|
(event) => event.stopPropagation(),
|
|
2815
2827
|
[]
|
|
2816
2828
|
);
|
|
2817
|
-
const handleSelectItem = (0,
|
|
2829
|
+
const handleSelectItem = (0, import_react38.useCallback)(() => {
|
|
2818
2830
|
if (!value)
|
|
2819
2831
|
return;
|
|
2820
2832
|
onSelect(value);
|
|
2821
2833
|
}, [onSelect, value]);
|
|
2822
2834
|
if (checked) {
|
|
2823
|
-
return /* @__PURE__ */
|
|
2835
|
+
return /* @__PURE__ */ import_react38.default.createElement(
|
|
2824
2836
|
CheckboxItemElement2,
|
|
2825
2837
|
{
|
|
2826
2838
|
checked,
|
|
2827
2839
|
disabled,
|
|
2828
2840
|
onSelect: handleSelectItem
|
|
2829
2841
|
},
|
|
2830
|
-
/* @__PURE__ */
|
|
2842
|
+
/* @__PURE__ */ import_react38.default.createElement(StyledItemIndicator2, null, /* @__PURE__ */ import_react38.default.createElement(import_noya_icons4.CheckIcon, null)),
|
|
2831
2843
|
children
|
|
2832
2844
|
);
|
|
2833
2845
|
}
|
|
2834
|
-
const element = /* @__PURE__ */
|
|
2846
|
+
const element = /* @__PURE__ */ import_react38.default.createElement(
|
|
2835
2847
|
ItemElement2,
|
|
2836
2848
|
{
|
|
2837
2849
|
disabled,
|
|
2838
2850
|
onSelect: handleSelectItem,
|
|
2839
2851
|
onPointerDown: handlePointerDown
|
|
2840
2852
|
},
|
|
2841
|
-
indented && /* @__PURE__ */
|
|
2842
|
-
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 })),
|
|
2843
2855
|
children,
|
|
2844
|
-
shortcut && /* @__PURE__ */
|
|
2845
|
-
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))
|
|
2846
2858
|
);
|
|
2847
2859
|
if (items && items.length > 0) {
|
|
2848
|
-
return /* @__PURE__ */
|
|
2860
|
+
return /* @__PURE__ */ import_react38.default.createElement(ContextMenuRoot, { isNested: true, items, onSelect }, element);
|
|
2849
2861
|
} else {
|
|
2850
2862
|
return element;
|
|
2851
2863
|
}
|
|
@@ -2863,19 +2875,19 @@ function ContextMenuRoot({
|
|
|
2863
2875
|
const hasCheckedItem = items.some(
|
|
2864
2876
|
(item) => item !== SEPARATOR_ITEM && item.checked
|
|
2865
2877
|
);
|
|
2866
|
-
const keymap = (0,
|
|
2878
|
+
const keymap = (0, import_react38.useMemo)(
|
|
2867
2879
|
() => isNested || shouldBindKeyboardShortcuts === false ? {} : getKeyboardShortcutsForMenuItems(items, onSelect),
|
|
2868
2880
|
[isNested, items, onSelect, shouldBindKeyboardShortcuts]
|
|
2869
2881
|
);
|
|
2870
2882
|
(0, import_noya_keymap4.useKeyboardShortcuts)(keymap);
|
|
2871
|
-
const onPointerDown = (0,
|
|
2883
|
+
const onPointerDown = (0, import_react38.useCallback)((event) => {
|
|
2872
2884
|
event.preventDefault();
|
|
2873
2885
|
}, []);
|
|
2874
2886
|
const RootComponent = isNested ? RadixContextMenu.Sub : RadixContextMenu.Root;
|
|
2875
2887
|
const TriggerComponent = isNested ? RadixContextMenu.SubTrigger : RadixContextMenu.Trigger;
|
|
2876
2888
|
const ContentComponent = isNested ? SubContent4 : Content8;
|
|
2877
|
-
return /* @__PURE__ */
|
|
2878
|
-
(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(
|
|
2879
2891
|
ContextMenuItem2,
|
|
2880
2892
|
{
|
|
2881
2893
|
key: item.value ?? index,
|
|
@@ -2892,22 +2904,22 @@ function ContextMenuRoot({
|
|
|
2892
2904
|
)
|
|
2893
2905
|
))));
|
|
2894
2906
|
}
|
|
2895
|
-
var ContextMenu = (0,
|
|
2907
|
+
var ContextMenu = (0, import_react38.memo)(ContextMenuRoot);
|
|
2896
2908
|
|
|
2897
2909
|
// src/components/Divider.tsx
|
|
2898
|
-
var
|
|
2910
|
+
var import_react39 = __toESM(require("react"));
|
|
2899
2911
|
var import_styled_components18 = __toESM(require("styled-components"));
|
|
2900
2912
|
var DividerContainer = import_styled_components18.default.div(({ theme, $variant = "normal", $orientation, $overflow = 0 }) => ({
|
|
2901
2913
|
...$orientation === "horizontal" ? { height: "1px", minHeight: "1px", margin: `0px -${$overflow}px` } : { width: "1px", minWidth: "1px", margin: `-${$overflow}px 0px` },
|
|
2902
2914
|
background: $variant === "strong" ? theme.colors.dividerStrong : $variant === "subtle" ? theme.colors.dividerSubtle : theme.colors.divider,
|
|
2903
2915
|
alignSelf: "stretch"
|
|
2904
2916
|
}));
|
|
2905
|
-
var Divider = (0,
|
|
2917
|
+
var Divider = (0, import_react39.memo)(function Divider2({
|
|
2906
2918
|
variant,
|
|
2907
2919
|
overflow,
|
|
2908
2920
|
...props
|
|
2909
2921
|
}) {
|
|
2910
|
-
return /* @__PURE__ */
|
|
2922
|
+
return /* @__PURE__ */ import_react39.default.createElement(
|
|
2911
2923
|
DividerContainer,
|
|
2912
2924
|
{
|
|
2913
2925
|
$orientation: "horizontal",
|
|
@@ -2917,12 +2929,12 @@ var Divider = (0, import_react38.memo)(function Divider2({
|
|
|
2917
2929
|
}
|
|
2918
2930
|
);
|
|
2919
2931
|
});
|
|
2920
|
-
var DividerVertical = (0,
|
|
2932
|
+
var DividerVertical = (0, import_react39.memo)(function DividerVertical2({
|
|
2921
2933
|
variant,
|
|
2922
2934
|
overflow,
|
|
2923
2935
|
...props
|
|
2924
2936
|
}) {
|
|
2925
|
-
return /* @__PURE__ */
|
|
2937
|
+
return /* @__PURE__ */ import_react39.default.createElement(
|
|
2926
2938
|
DividerContainer,
|
|
2927
2939
|
{
|
|
2928
2940
|
$orientation: "vertical",
|
|
@@ -2935,7 +2947,7 @@ var DividerVertical = (0, import_react38.memo)(function DividerVertical2({
|
|
|
2935
2947
|
|
|
2936
2948
|
// src/components/DraggableMenuButton.tsx
|
|
2937
2949
|
var import_noya_icons5 = require("@noya-app/noya-icons");
|
|
2938
|
-
var
|
|
2950
|
+
var import_react40 = __toESM(require("react"));
|
|
2939
2951
|
var import_styled_components19 = __toESM(require("styled-components"));
|
|
2940
2952
|
var DotButtonElement = import_styled_components19.default.div(({ theme }) => ({
|
|
2941
2953
|
cursor: "pointer",
|
|
@@ -2955,15 +2967,15 @@ var TriggerElement = import_styled_components19.default.div({
|
|
|
2955
2967
|
pointerEvents: "none",
|
|
2956
2968
|
height: "15px"
|
|
2957
2969
|
});
|
|
2958
|
-
var DraggableMenuButton = (0,
|
|
2970
|
+
var DraggableMenuButton = (0, import_react40.memo)(function DraggableMenuButton2({
|
|
2959
2971
|
items,
|
|
2960
2972
|
onSelect,
|
|
2961
2973
|
isVisible = true
|
|
2962
2974
|
}) {
|
|
2963
2975
|
const color = useDesignSystemTheme().colors.icon;
|
|
2964
|
-
const [open, setOpen] = (0,
|
|
2965
|
-
const [downPosition, setDownPosition] =
|
|
2966
|
-
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)(
|
|
2967
2979
|
(event) => {
|
|
2968
2980
|
if (open) {
|
|
2969
2981
|
setDownPosition(null);
|
|
@@ -2976,7 +2988,7 @@ var DraggableMenuButton = (0, import_react39.memo)(function DraggableMenuButton2
|
|
|
2976
2988
|
},
|
|
2977
2989
|
[open]
|
|
2978
2990
|
);
|
|
2979
|
-
const handlePointerUp = (0,
|
|
2991
|
+
const handlePointerUp = (0, import_react40.useCallback)(
|
|
2980
2992
|
(event) => {
|
|
2981
2993
|
if (open || !downPosition) {
|
|
2982
2994
|
setDownPosition(null);
|
|
@@ -2992,14 +3004,14 @@ var DraggableMenuButton = (0, import_react39.memo)(function DraggableMenuButton2
|
|
|
2992
3004
|
},
|
|
2993
3005
|
[downPosition, open]
|
|
2994
3006
|
);
|
|
2995
|
-
const handleOpenChange = (0,
|
|
3007
|
+
const handleOpenChange = (0, import_react40.useCallback)(
|
|
2996
3008
|
(isOpen) => {
|
|
2997
3009
|
if (!isOpen)
|
|
2998
3010
|
setOpen(false);
|
|
2999
3011
|
},
|
|
3000
3012
|
[setOpen]
|
|
3001
3013
|
);
|
|
3002
|
-
return /* @__PURE__ */
|
|
3014
|
+
return /* @__PURE__ */ import_react40.default.createElement(
|
|
3003
3015
|
DotButtonElement,
|
|
3004
3016
|
{
|
|
3005
3017
|
onPointerDownCapture: handlePointerDownCapture,
|
|
@@ -3009,7 +3021,7 @@ var DraggableMenuButton = (0, import_react39.memo)(function DraggableMenuButton2
|
|
|
3009
3021
|
event.preventDefault();
|
|
3010
3022
|
}
|
|
3011
3023
|
},
|
|
3012
|
-
items && onSelect ? /* @__PURE__ */
|
|
3024
|
+
items && onSelect ? /* @__PURE__ */ import_react40.default.createElement(
|
|
3013
3025
|
DropdownMenu,
|
|
3014
3026
|
{
|
|
3015
3027
|
open,
|
|
@@ -3018,13 +3030,13 @@ var DraggableMenuButton = (0, import_react39.memo)(function DraggableMenuButton2
|
|
|
3018
3030
|
onSelect,
|
|
3019
3031
|
shouldBindKeyboardShortcuts: false
|
|
3020
3032
|
},
|
|
3021
|
-
/* @__PURE__ */
|
|
3033
|
+
/* @__PURE__ */ import_react40.default.createElement(TriggerElement, null, /* @__PURE__ */ import_react40.default.createElement(
|
|
3022
3034
|
import_noya_icons5.DragHandleDots2Icon,
|
|
3023
3035
|
{
|
|
3024
3036
|
color: isVisible || open ? color : "transparent"
|
|
3025
3037
|
}
|
|
3026
3038
|
))
|
|
3027
|
-
) : /* @__PURE__ */
|
|
3039
|
+
) : /* @__PURE__ */ import_react40.default.createElement(
|
|
3028
3040
|
import_noya_icons5.DragHandleDots2Icon,
|
|
3029
3041
|
{
|
|
3030
3042
|
color: isVisible || open ? color : "transparent"
|
|
@@ -3034,7 +3046,7 @@ var DraggableMenuButton = (0, import_react39.memo)(function DraggableMenuButton2
|
|
|
3034
3046
|
});
|
|
3035
3047
|
|
|
3036
3048
|
// src/components/FillInputField.tsx
|
|
3037
|
-
var
|
|
3049
|
+
var import_react44 = __toESM(require("react"));
|
|
3038
3050
|
var import_styled_components21 = __toESM(require("styled-components"));
|
|
3039
3051
|
|
|
3040
3052
|
// ../noya-file-format/src/types.ts
|
|
@@ -3360,26 +3372,26 @@ var ClassValue = /* @__PURE__ */ ((ClassValue2) => {
|
|
|
3360
3372
|
})(ClassValue || {});
|
|
3361
3373
|
|
|
3362
3374
|
// src/components/FillPreviewBackground.tsx
|
|
3363
|
-
var
|
|
3375
|
+
var import_react43 = __toESM(require("react"));
|
|
3364
3376
|
var import_styled_components20 = __toESM(require("styled-components"));
|
|
3365
3377
|
|
|
3366
3378
|
// src/contexts/ImageDataContext.tsx
|
|
3367
|
-
var
|
|
3368
|
-
var ImageDataContext = (0,
|
|
3379
|
+
var import_react41 = __toESM(require("react"));
|
|
3380
|
+
var ImageDataContext = (0, import_react41.createContext)(
|
|
3369
3381
|
void 0
|
|
3370
3382
|
);
|
|
3371
|
-
var ImageDataProvider = (0,
|
|
3383
|
+
var ImageDataProvider = (0, import_react41.memo)(function ImageDataProvider2({
|
|
3372
3384
|
children,
|
|
3373
3385
|
getImageData
|
|
3374
3386
|
}) {
|
|
3375
|
-
const contextValue = (0,
|
|
3387
|
+
const contextValue = (0, import_react41.useMemo)(
|
|
3376
3388
|
() => ({ getImageData: getImageData ?? (() => void 0) }),
|
|
3377
3389
|
[getImageData]
|
|
3378
3390
|
);
|
|
3379
|
-
return /* @__PURE__ */
|
|
3391
|
+
return /* @__PURE__ */ import_react41.default.createElement(ImageDataContext.Provider, { value: contextValue }, children);
|
|
3380
3392
|
});
|
|
3381
3393
|
function useImageData(ref) {
|
|
3382
|
-
const value = (0,
|
|
3394
|
+
const value = (0, import_react41.useContext)(ImageDataContext);
|
|
3383
3395
|
if (!value) {
|
|
3384
3396
|
throw new Error("Missing ImageDataProvider");
|
|
3385
3397
|
}
|
|
@@ -3387,15 +3399,15 @@ function useImageData(ref) {
|
|
|
3387
3399
|
}
|
|
3388
3400
|
|
|
3389
3401
|
// src/hooks/useObjectURL.ts
|
|
3390
|
-
var
|
|
3402
|
+
var import_react42 = require("react");
|
|
3391
3403
|
function useObjectURL(object) {
|
|
3392
|
-
const objectURL = (0,
|
|
3404
|
+
const objectURL = (0, import_react42.useMemo)(() => {
|
|
3393
3405
|
if (object instanceof Blob)
|
|
3394
3406
|
return URL.createObjectURL(object);
|
|
3395
3407
|
const bytes = object instanceof Uint8Array ? object : object !== void 0 ? new Uint8Array(object) : new Uint8Array();
|
|
3396
3408
|
return URL.createObjectURL(new Blob([bytes]));
|
|
3397
3409
|
}, [object]);
|
|
3398
|
-
(0,
|
|
3410
|
+
(0, import_react42.useLayoutEffect)(() => {
|
|
3399
3411
|
return () => URL.revokeObjectURL(objectURL);
|
|
3400
3412
|
}, [objectURL]);
|
|
3401
3413
|
return objectURL;
|
|
@@ -3451,9 +3463,9 @@ var Background = import_styled_components20.default.span(({ background }) => ({
|
|
|
3451
3463
|
position: "absolute",
|
|
3452
3464
|
inset: 0
|
|
3453
3465
|
}));
|
|
3454
|
-
var HorizontalDotsBackground = (0,
|
|
3466
|
+
var HorizontalDotsBackground = (0, import_react43.memo)(function HorizontalDotsBackground2() {
|
|
3455
3467
|
const { inputBackground, placeholderDots } = (0, import_styled_components20.useTheme)().colors;
|
|
3456
|
-
const background = (0,
|
|
3468
|
+
const background = (0, import_react43.useMemo)(
|
|
3457
3469
|
() => [
|
|
3458
3470
|
`center url("data:image/svg+xml;utf8,${dotsHorizontalSvg(
|
|
3459
3471
|
placeholderDots
|
|
@@ -3462,7 +3474,7 @@ var HorizontalDotsBackground = (0, import_react42.memo)(function HorizontalDotsB
|
|
|
3462
3474
|
].join(","),
|
|
3463
3475
|
[inputBackground, placeholderDots]
|
|
3464
3476
|
);
|
|
3465
|
-
return /* @__PURE__ */
|
|
3477
|
+
return /* @__PURE__ */ import_react43.default.createElement(Background, { background });
|
|
3466
3478
|
});
|
|
3467
3479
|
function getPatternSizeAndPosition(fillType, tileScale) {
|
|
3468
3480
|
switch (fillType) {
|
|
@@ -3476,7 +3488,7 @@ function getPatternSizeAndPosition(fillType, tileScale) {
|
|
|
3476
3488
|
return "center / 100% 100%";
|
|
3477
3489
|
}
|
|
3478
3490
|
}
|
|
3479
|
-
var PatternPreviewBackground = (0,
|
|
3491
|
+
var PatternPreviewBackground = (0, import_react43.memo)(function PatternPreviewBackground2({
|
|
3480
3492
|
fillType,
|
|
3481
3493
|
tileScale,
|
|
3482
3494
|
imageRef
|
|
@@ -3484,7 +3496,7 @@ var PatternPreviewBackground = (0, import_react42.memo)(function PatternPreviewB
|
|
|
3484
3496
|
const image = useImageData(imageRef);
|
|
3485
3497
|
const url = useObjectURL(image);
|
|
3486
3498
|
const size2 = getPatternSizeAndPosition(fillType, tileScale);
|
|
3487
|
-
const background = (0,
|
|
3499
|
+
const background = (0, import_react43.useMemo)(
|
|
3488
3500
|
() => [
|
|
3489
3501
|
size2,
|
|
3490
3502
|
`url(${url})`,
|
|
@@ -3492,37 +3504,37 @@ var PatternPreviewBackground = (0, import_react42.memo)(function PatternPreviewB
|
|
|
3492
3504
|
].join(" "),
|
|
3493
3505
|
[fillType, size2, url]
|
|
3494
3506
|
);
|
|
3495
|
-
return /* @__PURE__ */
|
|
3507
|
+
return /* @__PURE__ */ import_react43.default.createElement(Background, { background });
|
|
3496
3508
|
});
|
|
3497
|
-
var ColorPreviewBackground = (0,
|
|
3509
|
+
var ColorPreviewBackground = (0, import_react43.memo)(function ColorPreviewBackground2({
|
|
3498
3510
|
color
|
|
3499
3511
|
}) {
|
|
3500
|
-
const background = (0,
|
|
3501
|
-
return /* @__PURE__ */
|
|
3512
|
+
const background = (0, import_react43.useMemo)(() => sketchColorToRgbaString(color), [color]);
|
|
3513
|
+
return /* @__PURE__ */ import_react43.default.createElement(Background, { background });
|
|
3502
3514
|
});
|
|
3503
|
-
var GradientPreviewBackground = (0,
|
|
3515
|
+
var GradientPreviewBackground = (0, import_react43.memo)(function GradientPreviewBackground2({
|
|
3504
3516
|
gradient
|
|
3505
3517
|
}) {
|
|
3506
|
-
const background = (0,
|
|
3518
|
+
const background = (0, import_react43.useMemo)(
|
|
3507
3519
|
() => getGradientBackground(gradient.stops, gradient.gradientType, 180),
|
|
3508
3520
|
[gradient.gradientType, gradient.stops]
|
|
3509
3521
|
);
|
|
3510
|
-
return /* @__PURE__ */
|
|
3522
|
+
return /* @__PURE__ */ import_react43.default.createElement(Background, { background });
|
|
3511
3523
|
});
|
|
3512
|
-
var FillPreviewBackground = (0,
|
|
3524
|
+
var FillPreviewBackground = (0, import_react43.memo)(function FillPreviewBackground2({
|
|
3513
3525
|
value
|
|
3514
3526
|
}) {
|
|
3515
3527
|
if (!value)
|
|
3516
|
-
return /* @__PURE__ */
|
|
3528
|
+
return /* @__PURE__ */ import_react43.default.createElement(HorizontalDotsBackground, null);
|
|
3517
3529
|
switch (value._class) {
|
|
3518
3530
|
case "color":
|
|
3519
|
-
return /* @__PURE__ */
|
|
3531
|
+
return /* @__PURE__ */ import_react43.default.createElement(ColorPreviewBackground, { color: value });
|
|
3520
3532
|
case "gradient":
|
|
3521
|
-
return /* @__PURE__ */
|
|
3533
|
+
return /* @__PURE__ */ import_react43.default.createElement(GradientPreviewBackground, { gradient: value });
|
|
3522
3534
|
case "pattern":
|
|
3523
3535
|
if (!value.image)
|
|
3524
3536
|
return null;
|
|
3525
|
-
return /* @__PURE__ */
|
|
3537
|
+
return /* @__PURE__ */ import_react43.default.createElement(
|
|
3526
3538
|
PatternPreviewBackground,
|
|
3527
3539
|
{
|
|
3528
3540
|
fillType: value.patternFillType,
|
|
@@ -3552,14 +3564,14 @@ var Container = import_styled_components21.default.button(
|
|
|
3552
3564
|
flex: $flex
|
|
3553
3565
|
})
|
|
3554
3566
|
);
|
|
3555
|
-
var FillInputField = (0,
|
|
3556
|
-
(0,
|
|
3557
|
-
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 }));
|
|
3558
3570
|
})
|
|
3559
3571
|
);
|
|
3560
3572
|
|
|
3561
3573
|
// src/components/FloatingWindow.tsx
|
|
3562
|
-
var
|
|
3574
|
+
var import_react45 = __toESM(require("react"));
|
|
3563
3575
|
var styles2 = {
|
|
3564
3576
|
noSelect: {
|
|
3565
3577
|
userSelect: "none",
|
|
@@ -3652,7 +3664,7 @@ function defaultRenderToolbar({
|
|
|
3652
3664
|
toolbarContent,
|
|
3653
3665
|
onClose
|
|
3654
3666
|
}) {
|
|
3655
|
-
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(
|
|
3656
3668
|
IconButton,
|
|
3657
3669
|
{
|
|
3658
3670
|
iconName: "Cross3Icon",
|
|
@@ -3677,16 +3689,16 @@ var FloatingWindow = ({
|
|
|
3677
3689
|
toolbarContent,
|
|
3678
3690
|
renderToolbar = defaultRenderToolbar
|
|
3679
3691
|
}) => {
|
|
3680
|
-
const [position, setPosition] = (0,
|
|
3681
|
-
const [size2, setSize] = (0,
|
|
3692
|
+
const [position, setPosition] = (0, import_react45.useState)({ x: initialX, y: initialY });
|
|
3693
|
+
const [size2, setSize] = (0, import_react45.useState)({
|
|
3682
3694
|
width: initialWidth,
|
|
3683
3695
|
height: initialHeight
|
|
3684
3696
|
});
|
|
3685
|
-
const [isDragging, setIsDragging] = (0,
|
|
3686
|
-
const [isResizing, setIsResizing] = (0,
|
|
3687
|
-
const [dragOffset, setDragOffset] = (0,
|
|
3688
|
-
const [resizeDirection, setResizeDirection] = (0,
|
|
3689
|
-
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);
|
|
3690
3702
|
const toggleGlobalTextSelection = (disable) => {
|
|
3691
3703
|
if (disable) {
|
|
3692
3704
|
document.body.style.userSelect = "none";
|
|
@@ -3694,7 +3706,7 @@ var FloatingWindow = ({
|
|
|
3694
3706
|
document.body.style.userSelect = "";
|
|
3695
3707
|
}
|
|
3696
3708
|
};
|
|
3697
|
-
const handleMouseDown = (0,
|
|
3709
|
+
const handleMouseDown = (0, import_react45.useCallback)((e) => {
|
|
3698
3710
|
if (!wrapperRef.current)
|
|
3699
3711
|
return;
|
|
3700
3712
|
const rect = wrapperRef.current.getBoundingClientRect();
|
|
@@ -3704,7 +3716,7 @@ var FloatingWindow = ({
|
|
|
3704
3716
|
});
|
|
3705
3717
|
setIsDragging(true);
|
|
3706
3718
|
}, []);
|
|
3707
|
-
const handleResizeStart = (0,
|
|
3719
|
+
const handleResizeStart = (0, import_react45.useCallback)(
|
|
3708
3720
|
(direction) => (e) => {
|
|
3709
3721
|
e.stopPropagation();
|
|
3710
3722
|
setIsResizing(true);
|
|
@@ -3713,7 +3725,7 @@ var FloatingWindow = ({
|
|
|
3713
3725
|
},
|
|
3714
3726
|
[]
|
|
3715
3727
|
);
|
|
3716
|
-
const handleMouseMove = (0,
|
|
3728
|
+
const handleMouseMove = (0, import_react45.useCallback)(
|
|
3717
3729
|
(e) => {
|
|
3718
3730
|
if (isDragging) {
|
|
3719
3731
|
setPosition({
|
|
@@ -3767,13 +3779,13 @@ var FloatingWindow = ({
|
|
|
3767
3779
|
minHeight
|
|
3768
3780
|
]
|
|
3769
3781
|
);
|
|
3770
|
-
const handleMouseUp = (0,
|
|
3782
|
+
const handleMouseUp = (0, import_react45.useCallback)((e) => {
|
|
3771
3783
|
setIsDragging(false);
|
|
3772
3784
|
setIsResizing(false);
|
|
3773
3785
|
setResizeDirection(null);
|
|
3774
3786
|
toggleGlobalTextSelection(false);
|
|
3775
3787
|
}, []);
|
|
3776
|
-
|
|
3788
|
+
import_react45.default.useEffect(() => {
|
|
3777
3789
|
document.addEventListener("mousemove", handleMouseMove);
|
|
3778
3790
|
document.addEventListener("mouseup", handleMouseUp);
|
|
3779
3791
|
return () => {
|
|
@@ -3784,12 +3796,12 @@ var FloatingWindow = ({
|
|
|
3784
3796
|
const theme = useDesignSystemTheme();
|
|
3785
3797
|
const floatingWindowManager = useFloatingWindowManager();
|
|
3786
3798
|
const currentFloatingWindow = useCurrentFloatingWindowInternal();
|
|
3787
|
-
const handleClose = (0,
|
|
3799
|
+
const handleClose = (0, import_react45.useCallback)(() => {
|
|
3788
3800
|
if (onClose)
|
|
3789
3801
|
onClose();
|
|
3790
3802
|
floatingWindowManager.closeWindow(currentFloatingWindow.id);
|
|
3791
3803
|
}, [currentFloatingWindow.id, floatingWindowManager, onClose]);
|
|
3792
|
-
return /* @__PURE__ */
|
|
3804
|
+
return /* @__PURE__ */ import_react45.default.createElement(
|
|
3793
3805
|
"div",
|
|
3794
3806
|
{
|
|
3795
3807
|
ref: wrapperRef,
|
|
@@ -3803,7 +3815,7 @@ var FloatingWindow = ({
|
|
|
3803
3815
|
backgroundColor: theme.colors.canvas.background
|
|
3804
3816
|
}
|
|
3805
3817
|
},
|
|
3806
|
-
/* @__PURE__ */
|
|
3818
|
+
/* @__PURE__ */ import_react45.default.createElement(
|
|
3807
3819
|
"div",
|
|
3808
3820
|
{
|
|
3809
3821
|
style: {
|
|
@@ -3814,9 +3826,9 @@ var FloatingWindow = ({
|
|
|
3814
3826
|
},
|
|
3815
3827
|
renderToolbar({ title, toolbarContent, onClose: handleClose })
|
|
3816
3828
|
),
|
|
3817
|
-
/* @__PURE__ */
|
|
3818
|
-
/* @__PURE__ */
|
|
3819
|
-
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(
|
|
3820
3832
|
"div",
|
|
3821
3833
|
{
|
|
3822
3834
|
key: direction,
|
|
@@ -3829,8 +3841,8 @@ var FloatingWindow = ({
|
|
|
3829
3841
|
|
|
3830
3842
|
// src/components/GradientPicker.tsx
|
|
3831
3843
|
var import_noya_colorpicker2 = require("@noya-app/noya-colorpicker");
|
|
3832
|
-
var
|
|
3833
|
-
var GradientPicker = (0,
|
|
3844
|
+
var import_react46 = __toESM(require("react"));
|
|
3845
|
+
var GradientPicker = (0, import_react46.memo)(function GradientPicker2({
|
|
3834
3846
|
value,
|
|
3835
3847
|
selectedStop,
|
|
3836
3848
|
onChangeColor,
|
|
@@ -3839,7 +3851,7 @@ var GradientPicker = (0, import_react45.memo)(function GradientPicker2({
|
|
|
3839
3851
|
onDelete,
|
|
3840
3852
|
onSelectStop
|
|
3841
3853
|
}) {
|
|
3842
|
-
const colorModel = (0,
|
|
3854
|
+
const colorModel = (0, import_react46.useMemo)(
|
|
3843
3855
|
() => ({
|
|
3844
3856
|
defaultColor: { r: 0, g: 0, b: 0, a: 1 },
|
|
3845
3857
|
toHsva: import_noya_colorpicker2.rgbaToHsva,
|
|
@@ -3848,30 +3860,30 @@ var GradientPicker = (0, import_react45.memo)(function GradientPicker2({
|
|
|
3848
3860
|
}),
|
|
3849
3861
|
[]
|
|
3850
3862
|
);
|
|
3851
|
-
const rgbaColor = (0,
|
|
3863
|
+
const rgbaColor = (0, import_react46.useMemo)(
|
|
3852
3864
|
() => sketchColorToRgba(value[selectedStop].color),
|
|
3853
3865
|
[value, selectedStop]
|
|
3854
3866
|
);
|
|
3855
|
-
const handleChangeColor = (0,
|
|
3867
|
+
const handleChangeColor = (0, import_react46.useCallback)(
|
|
3856
3868
|
(value2) => {
|
|
3857
3869
|
onChangeColor(rgbaToSketchColor(value2));
|
|
3858
3870
|
},
|
|
3859
3871
|
[onChangeColor]
|
|
3860
3872
|
);
|
|
3861
|
-
const handleAddGradientStop = (0,
|
|
3873
|
+
const handleAddGradientStop = (0, import_react46.useCallback)(
|
|
3862
3874
|
(value2, position) => {
|
|
3863
3875
|
onAdd(rgbaToSketchColor(value2), position);
|
|
3864
3876
|
},
|
|
3865
3877
|
[onAdd]
|
|
3866
3878
|
);
|
|
3867
|
-
return /* @__PURE__ */
|
|
3879
|
+
return /* @__PURE__ */ import_react46.default.createElement(
|
|
3868
3880
|
import_noya_colorpicker2.ColorPicker,
|
|
3869
3881
|
{
|
|
3870
3882
|
onChange: handleChangeColor,
|
|
3871
3883
|
colorModel,
|
|
3872
3884
|
color: rgbaColor
|
|
3873
3885
|
},
|
|
3874
|
-
/* @__PURE__ */
|
|
3886
|
+
/* @__PURE__ */ import_react46.default.createElement(
|
|
3875
3887
|
import_noya_colorpicker2.Gradient,
|
|
3876
3888
|
{
|
|
3877
3889
|
gradients: value,
|
|
@@ -3882,12 +3894,12 @@ var GradientPicker = (0, import_react45.memo)(function GradientPicker2({
|
|
|
3882
3894
|
onDelete
|
|
3883
3895
|
}
|
|
3884
3896
|
),
|
|
3885
|
-
/* @__PURE__ */
|
|
3886
|
-
/* @__PURE__ */
|
|
3887
|
-
/* @__PURE__ */
|
|
3888
|
-
/* @__PURE__ */
|
|
3889
|
-
/* @__PURE__ */
|
|
3890
|
-
/* @__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)
|
|
3891
3903
|
);
|
|
3892
3904
|
});
|
|
3893
3905
|
|
|
@@ -3919,12 +3931,12 @@ var Grid = import_styled_components22.default.div((props) => ({
|
|
|
3919
3931
|
}));
|
|
3920
3932
|
|
|
3921
3933
|
// src/components/GridView.tsx
|
|
3922
|
-
var
|
|
3934
|
+
var import_react48 = __toESM(require("react"));
|
|
3923
3935
|
var import_styled_components24 = __toESM(require("styled-components"));
|
|
3924
3936
|
|
|
3925
3937
|
// src/components/ScrollArea.tsx
|
|
3926
3938
|
var RadixScrollArea = __toESM(require("@radix-ui/react-scroll-area"));
|
|
3927
|
-
var
|
|
3939
|
+
var import_react47 = __toESM(require("react"));
|
|
3928
3940
|
var import_styled_components23 = __toESM(require("styled-components"));
|
|
3929
3941
|
var SCROLLBAR_SIZE = 10;
|
|
3930
3942
|
var StyledViewport = (0, import_styled_components23.default)(RadixScrollArea.Viewport)({
|
|
@@ -3952,18 +3964,18 @@ var Container2 = import_styled_components23.default.div({
|
|
|
3952
3964
|
flex: "1 1 0px",
|
|
3953
3965
|
minHeight: 0
|
|
3954
3966
|
});
|
|
3955
|
-
var ScrollArea = (0,
|
|
3956
|
-
const [scrollElementRef, setScrollElementRef] = (0,
|
|
3957
|
-
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(
|
|
3958
3970
|
StyledViewport,
|
|
3959
3971
|
{
|
|
3960
|
-
ref: (0,
|
|
3972
|
+
ref: (0, import_react47.useCallback)(
|
|
3961
3973
|
(ref) => setScrollElementRef(ref),
|
|
3962
3974
|
[]
|
|
3963
3975
|
)
|
|
3964
3976
|
},
|
|
3965
3977
|
typeof children === "function" ? scrollElementRef ? children(scrollElementRef) : null : children
|
|
3966
|
-
), /* @__PURE__ */
|
|
3978
|
+
), /* @__PURE__ */ import_react47.default.createElement(StyledScrollbar, { orientation: "vertical", className: "scroll-component" }, /* @__PURE__ */ import_react47.default.createElement(StyledThumb, { className: "scroll-component" }))));
|
|
3967
3979
|
});
|
|
3968
3980
|
|
|
3969
3981
|
// src/components/GridView.tsx
|
|
@@ -4143,7 +4155,7 @@ var Shimmer = import_styled_components24.default.div`
|
|
|
4143
4155
|
align-items: end;
|
|
4144
4156
|
padding: 4px;
|
|
4145
4157
|
`;
|
|
4146
|
-
var GridViewItem = (0,
|
|
4158
|
+
var GridViewItem = (0, import_react48.forwardRef)(function GridViewItem2({
|
|
4147
4159
|
id,
|
|
4148
4160
|
title,
|
|
4149
4161
|
subtitle,
|
|
@@ -4159,15 +4171,15 @@ var GridViewItem = (0, import_react47.forwardRef)(function GridViewItem2({
|
|
|
4159
4171
|
onContextMenu,
|
|
4160
4172
|
style: style3
|
|
4161
4173
|
}, forwardedRef) {
|
|
4162
|
-
const [hovered, setHovered] =
|
|
4174
|
+
const [hovered, setHovered] = import_react48.default.useState(false);
|
|
4163
4175
|
const { hoverProps } = useHover({
|
|
4164
4176
|
onHoverChange: (isHovering) => {
|
|
4165
4177
|
onHoverChange?.(isHovering);
|
|
4166
4178
|
setHovered(isHovering);
|
|
4167
4179
|
}
|
|
4168
4180
|
});
|
|
4169
|
-
const { textPosition, bordered, disabled } = (0,
|
|
4170
|
-
const handleClick = (0,
|
|
4181
|
+
const { textPosition, bordered, disabled } = (0, import_react48.useContext)(GridViewContext);
|
|
4182
|
+
const handleClick = (0, import_react48.useCallback)(
|
|
4171
4183
|
(event) => {
|
|
4172
4184
|
event.stopPropagation();
|
|
4173
4185
|
event.preventDefault();
|
|
@@ -4176,7 +4188,7 @@ var GridViewItem = (0, import_react47.forwardRef)(function GridViewItem2({
|
|
|
4176
4188
|
},
|
|
4177
4189
|
[onClick, onPress]
|
|
4178
4190
|
);
|
|
4179
|
-
const handleKeyDown = (0,
|
|
4191
|
+
const handleKeyDown = (0, import_react48.useCallback)(
|
|
4180
4192
|
(event) => {
|
|
4181
4193
|
if (event.key === "Enter" || event.key === " ") {
|
|
4182
4194
|
event.stopPropagation();
|
|
@@ -4188,7 +4200,7 @@ var GridViewItem = (0, import_react47.forwardRef)(function GridViewItem2({
|
|
|
4188
4200
|
},
|
|
4189
4201
|
[onPress]
|
|
4190
4202
|
);
|
|
4191
|
-
let element = /* @__PURE__ */
|
|
4203
|
+
let element = /* @__PURE__ */ import_react48.default.createElement(
|
|
4192
4204
|
ItemContainer,
|
|
4193
4205
|
{
|
|
4194
4206
|
id,
|
|
@@ -4197,7 +4209,7 @@ var GridViewItem = (0, import_react47.forwardRef)(function GridViewItem2({
|
|
|
4197
4209
|
tabIndex: disabled ? void 0 : 0,
|
|
4198
4210
|
onKeyDown: handleKeyDown
|
|
4199
4211
|
},
|
|
4200
|
-
/* @__PURE__ */
|
|
4212
|
+
/* @__PURE__ */ import_react48.default.createElement(
|
|
4201
4213
|
ContentContainer,
|
|
4202
4214
|
{
|
|
4203
4215
|
disabled,
|
|
@@ -4211,25 +4223,25 @@ var GridViewItem = (0, import_react47.forwardRef)(function GridViewItem2({
|
|
|
4211
4223
|
},
|
|
4212
4224
|
children
|
|
4213
4225
|
),
|
|
4214
|
-
textPosition === "below" && /* @__PURE__ */
|
|
4215
|
-
textPosition === "overlay" && hovered && (title || subtitle) && /* @__PURE__ */
|
|
4216
|
-
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 }))
|
|
4217
4229
|
);
|
|
4218
4230
|
if (menuItems && onSelectMenuItem) {
|
|
4219
|
-
element = /* @__PURE__ */
|
|
4231
|
+
element = /* @__PURE__ */ import_react48.default.createElement(ContextMenu, { items: menuItems, onSelect: onSelectMenuItem }, element);
|
|
4220
4232
|
}
|
|
4221
4233
|
if (textPosition === "toolip") {
|
|
4222
|
-
element = /* @__PURE__ */
|
|
4234
|
+
element = /* @__PURE__ */ import_react48.default.createElement(
|
|
4223
4235
|
Tooltip,
|
|
4224
4236
|
{
|
|
4225
|
-
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))
|
|
4226
4238
|
},
|
|
4227
4239
|
element
|
|
4228
4240
|
);
|
|
4229
4241
|
}
|
|
4230
4242
|
return element;
|
|
4231
4243
|
});
|
|
4232
|
-
var GridViewContext = (0,
|
|
4244
|
+
var GridViewContext = (0, import_react48.createContext)({
|
|
4233
4245
|
size: "small",
|
|
4234
4246
|
textPosition: "below",
|
|
4235
4247
|
bordered: false,
|
|
@@ -4244,7 +4256,7 @@ function GridViewRoot({
|
|
|
4244
4256
|
bordered = false,
|
|
4245
4257
|
disabled = false
|
|
4246
4258
|
}) {
|
|
4247
|
-
const handleClick = (0,
|
|
4259
|
+
const handleClick = (0, import_react48.useCallback)(
|
|
4248
4260
|
(event) => {
|
|
4249
4261
|
event.stopPropagation();
|
|
4250
4262
|
event.preventDefault();
|
|
@@ -4252,7 +4264,7 @@ function GridViewRoot({
|
|
|
4252
4264
|
},
|
|
4253
4265
|
[onClick]
|
|
4254
4266
|
);
|
|
4255
|
-
const contextValue = (0,
|
|
4267
|
+
const contextValue = (0, import_react48.useMemo)(
|
|
4256
4268
|
() => ({
|
|
4257
4269
|
size: size2,
|
|
4258
4270
|
textPosition,
|
|
@@ -4261,33 +4273,33 @@ function GridViewRoot({
|
|
|
4261
4273
|
}),
|
|
4262
4274
|
[bordered, disabled, size2, textPosition]
|
|
4263
4275
|
);
|
|
4264
|
-
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));
|
|
4265
4277
|
}
|
|
4266
4278
|
function GridViewSection({
|
|
4267
4279
|
children,
|
|
4268
4280
|
padding = "20px"
|
|
4269
4281
|
}) {
|
|
4270
|
-
const { size: size2 } = (0,
|
|
4271
|
-
return /* @__PURE__ */
|
|
4282
|
+
const { size: size2 } = (0, import_react48.useContext)(GridViewContext);
|
|
4283
|
+
return /* @__PURE__ */ import_react48.default.createElement(Grid2, { size: size2, padding }, children);
|
|
4272
4284
|
}
|
|
4273
4285
|
function GridViewSectionHeader({ title }) {
|
|
4274
4286
|
const grouped = title.split("/");
|
|
4275
|
-
return /* @__PURE__ */
|
|
4276
|
-
grouped.map((title2, index) => /* @__PURE__ */
|
|
4277
|
-
/* @__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, " / ")
|
|
4278
4290
|
));
|
|
4279
4291
|
}
|
|
4280
4292
|
var GridView;
|
|
4281
4293
|
((GridView2) => {
|
|
4282
|
-
GridView2.Root = (0,
|
|
4283
|
-
GridView2.Item = (0,
|
|
4284
|
-
GridView2.Section = (0,
|
|
4285
|
-
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);
|
|
4286
4298
|
})(GridView || (GridView = {}));
|
|
4287
4299
|
|
|
4288
4300
|
// src/components/InputFieldWithCompletions.tsx
|
|
4289
4301
|
var import_noya_utils8 = require("@noya-app/noya-utils");
|
|
4290
|
-
var
|
|
4302
|
+
var import_react52 = __toESM(require("react"));
|
|
4291
4303
|
var import_styled_components27 = __toESM(require("styled-components"));
|
|
4292
4304
|
|
|
4293
4305
|
// src/utils/fuzzyScorer.ts
|
|
@@ -4364,7 +4376,7 @@ function mergeRanges(ranges) {
|
|
|
4364
4376
|
// src/components/ListView.tsx
|
|
4365
4377
|
var import_noya_utils7 = require("@noya-app/noya-utils");
|
|
4366
4378
|
var import_react_compose_refs2 = require("@radix-ui/react-compose-refs");
|
|
4367
|
-
var
|
|
4379
|
+
var import_react50 = __toESM(require("react"));
|
|
4368
4380
|
var import_react_virtualized = require("react-virtualized");
|
|
4369
4381
|
var import_react_window = require("react-window");
|
|
4370
4382
|
var import_styled_components25 = __toESM(require("styled-components"));
|
|
@@ -4395,7 +4407,7 @@ function mergeEventHandlers(...handlerMaps) {
|
|
|
4395
4407
|
// src/components/Sortable.tsx
|
|
4396
4408
|
var import_core = require("@dnd-kit/core");
|
|
4397
4409
|
var import_sortable = require("@dnd-kit/sortable");
|
|
4398
|
-
var
|
|
4410
|
+
var import_react49 = __toESM(require("react"));
|
|
4399
4411
|
var import_react_dom2 = require("react-dom");
|
|
4400
4412
|
var normalizeListDestinationIndex = (index, position) => {
|
|
4401
4413
|
return position === "above" ? index : index + 1;
|
|
@@ -4409,7 +4421,7 @@ var defaultAcceptsDrop = (sourceIndex, destinationIndex, position) => {
|
|
|
4409
4421
|
}
|
|
4410
4422
|
return true;
|
|
4411
4423
|
};
|
|
4412
|
-
var SortableItemContext = (0,
|
|
4424
|
+
var SortableItemContext = (0, import_react49.createContext)({
|
|
4413
4425
|
keys: [],
|
|
4414
4426
|
position: { x: 0, y: 0 },
|
|
4415
4427
|
acceptsDrop: defaultAcceptsDrop,
|
|
@@ -4431,7 +4443,7 @@ function SortableItem({
|
|
|
4431
4443
|
disabled,
|
|
4432
4444
|
children
|
|
4433
4445
|
}) {
|
|
4434
|
-
const { keys, position, acceptsDrop, setActivatorEvent, axis } = (0,
|
|
4446
|
+
const { keys, position, acceptsDrop, setActivatorEvent, axis } = (0, import_react49.useContext)(SortableItemContext);
|
|
4435
4447
|
const sortable = (0, import_sortable.useSortable)({ id, disabled });
|
|
4436
4448
|
const {
|
|
4437
4449
|
active,
|
|
@@ -4451,7 +4463,7 @@ function SortableItem({
|
|
|
4451
4463
|
const eventY = activatorEvent?.clientY ?? 0;
|
|
4452
4464
|
const offsetLeft = eventX + position.x;
|
|
4453
4465
|
const offsetTop = eventY + position.y;
|
|
4454
|
-
const ref = (0,
|
|
4466
|
+
const ref = (0, import_react49.useCallback)((node) => setNodeRef(node), [setNodeRef]);
|
|
4455
4467
|
return children({
|
|
4456
4468
|
ref,
|
|
4457
4469
|
...attributes,
|
|
@@ -4482,22 +4494,22 @@ function SortableRoot({
|
|
|
4482
4494
|
}
|
|
4483
4495
|
})
|
|
4484
4496
|
);
|
|
4485
|
-
const [activeIndex, setActiveIndex] = (0,
|
|
4486
|
-
const activatorEvent = (0,
|
|
4487
|
-
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) => {
|
|
4488
4500
|
activatorEvent.current = event;
|
|
4489
4501
|
}, []);
|
|
4490
|
-
const [position, setPosition] = (0,
|
|
4491
|
-
const handleDragStart = (0,
|
|
4502
|
+
const [position, setPosition] = (0, import_react49.useState)({ x: 0, y: 0 });
|
|
4503
|
+
const handleDragStart = (0, import_react49.useCallback)(
|
|
4492
4504
|
(event) => {
|
|
4493
4505
|
setActiveIndex(keys.indexOf(event.active.id));
|
|
4494
4506
|
},
|
|
4495
4507
|
[keys]
|
|
4496
4508
|
);
|
|
4497
|
-
const handleDragMove = (0,
|
|
4509
|
+
const handleDragMove = (0, import_react49.useCallback)((event) => {
|
|
4498
4510
|
setPosition({ ...event.delta });
|
|
4499
4511
|
}, []);
|
|
4500
|
-
const handleDragEnd = (0,
|
|
4512
|
+
const handleDragEnd = (0, import_react49.useCallback)(
|
|
4501
4513
|
(event) => {
|
|
4502
4514
|
const { active, over } = event;
|
|
4503
4515
|
setActiveIndex(void 0);
|
|
@@ -4524,14 +4536,14 @@ function SortableRoot({
|
|
|
4524
4536
|
},
|
|
4525
4537
|
[acceptsDrop, axis, keys, onMoveItem, position.x, position.y]
|
|
4526
4538
|
);
|
|
4527
|
-
const [mounted, setMounted] = (0,
|
|
4528
|
-
(0,
|
|
4539
|
+
const [mounted, setMounted] = (0, import_react49.useState)(false);
|
|
4540
|
+
(0, import_react49.useEffect)(() => {
|
|
4529
4541
|
setMounted(true);
|
|
4530
4542
|
}, []);
|
|
4531
|
-
return /* @__PURE__ */
|
|
4543
|
+
return /* @__PURE__ */ import_react49.default.createElement(
|
|
4532
4544
|
SortableItemContext.Provider,
|
|
4533
4545
|
{
|
|
4534
|
-
value: (0,
|
|
4546
|
+
value: (0, import_react49.useMemo)(
|
|
4535
4547
|
() => ({
|
|
4536
4548
|
keys,
|
|
4537
4549
|
acceptsDrop,
|
|
@@ -4542,7 +4554,7 @@ function SortableRoot({
|
|
|
4542
4554
|
[acceptsDrop, axis, keys, position, setActivatorEvent]
|
|
4543
4555
|
)
|
|
4544
4556
|
},
|
|
4545
|
-
/* @__PURE__ */
|
|
4557
|
+
/* @__PURE__ */ import_react49.default.createElement(
|
|
4546
4558
|
import_core.DndContext,
|
|
4547
4559
|
{
|
|
4548
4560
|
sensors,
|
|
@@ -4551,9 +4563,9 @@ function SortableRoot({
|
|
|
4551
4563
|
onDragMove: handleDragMove,
|
|
4552
4564
|
onDragEnd: handleDragEnd
|
|
4553
4565
|
},
|
|
4554
|
-
/* @__PURE__ */
|
|
4566
|
+
/* @__PURE__ */ import_react49.default.createElement(import_sortable.SortableContext, { items: keys, strategy: import_sortable.verticalListSortingStrategy }, children),
|
|
4555
4567
|
mounted && renderOverlay && (0, import_react_dom2.createPortal)(
|
|
4556
|
-
/* @__PURE__ */
|
|
4568
|
+
/* @__PURE__ */ import_react49.default.createElement(import_core.DragOverlay, { dropAnimation: null }, activeIndex !== void 0 && activeIndex >= 0 && renderOverlay(activeIndex)),
|
|
4557
4569
|
document.body
|
|
4558
4570
|
)
|
|
4559
4571
|
)
|
|
@@ -4561,17 +4573,17 @@ function SortableRoot({
|
|
|
4561
4573
|
}
|
|
4562
4574
|
var Sortable;
|
|
4563
4575
|
((Sortable2) => {
|
|
4564
|
-
Sortable2.Item = (0,
|
|
4565
|
-
Sortable2.Root = (0,
|
|
4576
|
+
Sortable2.Item = (0, import_react49.memo)(SortableItem);
|
|
4577
|
+
Sortable2.Root = (0, import_react49.memo)(SortableRoot);
|
|
4566
4578
|
})(Sortable || (Sortable = {}));
|
|
4567
4579
|
|
|
4568
4580
|
// src/components/ListView.tsx
|
|
4569
4581
|
var ROW_HEIGHT = 31;
|
|
4570
4582
|
var SECTION_HEADER_LABEL_HEIGHT = 27;
|
|
4571
|
-
var DraggingContext = (0,
|
|
4583
|
+
var DraggingContext = (0, import_react50.createContext)({
|
|
4572
4584
|
indentation: 12
|
|
4573
4585
|
});
|
|
4574
|
-
var ListRowContext = (0,
|
|
4586
|
+
var ListRowContext = (0, import_react50.createContext)({
|
|
4575
4587
|
marginType: "none",
|
|
4576
4588
|
selectedPosition: "only",
|
|
4577
4589
|
sortable: false,
|
|
@@ -4601,8 +4613,8 @@ function ListViewEditableRowTitle({
|
|
|
4601
4613
|
autoFocus,
|
|
4602
4614
|
placeholder
|
|
4603
4615
|
}) {
|
|
4604
|
-
const inputRef = (0,
|
|
4605
|
-
(0,
|
|
4616
|
+
const inputRef = (0, import_react50.useRef)(null);
|
|
4617
|
+
(0, import_react50.useLayoutEffect)(() => {
|
|
4606
4618
|
const element = inputRef.current;
|
|
4607
4619
|
if (!element || !autoFocus)
|
|
4608
4620
|
return;
|
|
@@ -4611,7 +4623,7 @@ function ListViewEditableRowTitle({
|
|
|
4611
4623
|
element.select();
|
|
4612
4624
|
}, 0);
|
|
4613
4625
|
}, [autoFocus]);
|
|
4614
|
-
return /* @__PURE__ */
|
|
4626
|
+
return /* @__PURE__ */ import_react50.default.createElement(
|
|
4615
4627
|
ListViewEditableRowTitleElement,
|
|
4616
4628
|
{
|
|
4617
4629
|
ref: inputRef,
|
|
@@ -4733,7 +4745,7 @@ var ListViewDragIndicatorElement = import_styled_components25.default.div(({ the
|
|
|
4733
4745
|
boxShadow: "0 0 2px rgba(0,0,0,0.5)"
|
|
4734
4746
|
}
|
|
4735
4747
|
}));
|
|
4736
|
-
var ListViewRow = (0,
|
|
4748
|
+
var ListViewRow = (0, import_react50.forwardRef)(function ListViewRow2({
|
|
4737
4749
|
id,
|
|
4738
4750
|
tabIndex = 0,
|
|
4739
4751
|
gap,
|
|
@@ -4767,12 +4779,12 @@ var ListViewRow = (0, import_react49.forwardRef)(function ListViewRow2({
|
|
|
4767
4779
|
divider,
|
|
4768
4780
|
gap: listGap,
|
|
4769
4781
|
colorScheme
|
|
4770
|
-
} = (0,
|
|
4782
|
+
} = (0, import_react50.useContext)(ListRowContext);
|
|
4771
4783
|
const { hoverProps } = useHover({
|
|
4772
4784
|
onHoverChange
|
|
4773
4785
|
});
|
|
4774
|
-
const { indentation, isDragging } = (0,
|
|
4775
|
-
const handlePress = (0,
|
|
4786
|
+
const { indentation, isDragging } = (0, import_react50.useContext)(DraggingContext);
|
|
4787
|
+
const handlePress = (0, import_react50.useCallback)(
|
|
4776
4788
|
(event) => {
|
|
4777
4789
|
event.preventDefault();
|
|
4778
4790
|
if (event.button !== 0)
|
|
@@ -4781,14 +4793,14 @@ var ListViewRow = (0, import_react49.forwardRef)(function ListViewRow2({
|
|
|
4781
4793
|
},
|
|
4782
4794
|
[onPress]
|
|
4783
4795
|
);
|
|
4784
|
-
const handleDoubleClick = (0,
|
|
4796
|
+
const handleDoubleClick = (0, import_react50.useCallback)(
|
|
4785
4797
|
(event) => {
|
|
4786
4798
|
event.stopPropagation();
|
|
4787
4799
|
onDoubleClick?.();
|
|
4788
4800
|
},
|
|
4789
4801
|
[onDoubleClick]
|
|
4790
4802
|
);
|
|
4791
|
-
const mergedStyle = (0,
|
|
4803
|
+
const mergedStyle = (0, import_react50.useMemo)(() => {
|
|
4792
4804
|
return isDragging ? {
|
|
4793
4805
|
// TODO: Where do these offsets actually come from?
|
|
4794
4806
|
transform: `translate3d(-36px, -6px, 0)`,
|
|
@@ -4801,7 +4813,7 @@ var ListViewRow = (0, import_react49.forwardRef)(function ListViewRow2({
|
|
|
4801
4813
|
...renderProps
|
|
4802
4814
|
}, ref) => {
|
|
4803
4815
|
const Component = RowContainer;
|
|
4804
|
-
const element = /* @__PURE__ */
|
|
4816
|
+
const element = /* @__PURE__ */ import_react50.default.createElement(
|
|
4805
4817
|
Component,
|
|
4806
4818
|
{
|
|
4807
4819
|
ref,
|
|
@@ -4832,7 +4844,7 @@ var ListViewRow = (0, import_react49.forwardRef)(function ListViewRow2({
|
|
|
4832
4844
|
),
|
|
4833
4845
|
tabIndex
|
|
4834
4846
|
},
|
|
4835
|
-
relativeDropPosition && /* @__PURE__ */
|
|
4847
|
+
relativeDropPosition && /* @__PURE__ */ import_react50.default.createElement(
|
|
4836
4848
|
ListViewDragIndicatorElement,
|
|
4837
4849
|
{
|
|
4838
4850
|
$colorScheme: colorScheme,
|
|
@@ -4846,11 +4858,11 @@ var ListViewRow = (0, import_react49.forwardRef)(function ListViewRow2({
|
|
|
4846
4858
|
}) : dragIndicatorStyle
|
|
4847
4859
|
}
|
|
4848
4860
|
),
|
|
4849
|
-
depth > 0 && /* @__PURE__ */
|
|
4861
|
+
depth > 0 && /* @__PURE__ */ import_react50.default.createElement(Spacer.Horizontal, { size: depth * indentation }),
|
|
4850
4862
|
children
|
|
4851
4863
|
);
|
|
4852
4864
|
if (menuItems && onSelectMenuItem) {
|
|
4853
|
-
return /* @__PURE__ */
|
|
4865
|
+
return /* @__PURE__ */ import_react50.default.createElement(
|
|
4854
4866
|
ContextMenu,
|
|
4855
4867
|
{
|
|
4856
4868
|
items: menuItems,
|
|
@@ -4863,24 +4875,24 @@ var ListViewRow = (0, import_react49.forwardRef)(function ListViewRow2({
|
|
|
4863
4875
|
return element;
|
|
4864
4876
|
};
|
|
4865
4877
|
if (sortable && id) {
|
|
4866
|
-
return /* @__PURE__ */
|
|
4878
|
+
return /* @__PURE__ */ import_react50.default.createElement(Sortable.Item, { id, disabled: overrideSortable === false }, ({ ref: sortableRef, ...sortableProps }) => renderContent(
|
|
4867
4879
|
sortableProps,
|
|
4868
4880
|
(0, import_react_compose_refs2.composeRefs)(sortableRef, forwardedRef)
|
|
4869
4881
|
));
|
|
4870
4882
|
}
|
|
4871
4883
|
return renderContent({}, forwardedRef);
|
|
4872
4884
|
});
|
|
4873
|
-
var RenderItemContext = (0,
|
|
4885
|
+
var RenderItemContext = (0, import_react50.createContext)(
|
|
4874
4886
|
() => null
|
|
4875
4887
|
);
|
|
4876
|
-
var VirtualizedListRow = (0,
|
|
4888
|
+
var VirtualizedListRow = (0, import_react50.memo)(function VirtualizedListRow2({
|
|
4877
4889
|
index,
|
|
4878
4890
|
style: style3
|
|
4879
4891
|
}) {
|
|
4880
|
-
const renderItem = (0,
|
|
4881
|
-
return /* @__PURE__ */
|
|
4892
|
+
const renderItem = (0, import_react50.useContext)(RenderItemContext);
|
|
4893
|
+
return /* @__PURE__ */ import_react50.default.createElement("div", { key: index, style: style3 }, renderItem(index));
|
|
4882
4894
|
});
|
|
4883
|
-
var VirtualizedListInner = (0,
|
|
4895
|
+
var VirtualizedListInner = (0, import_react50.forwardRef)(function VirtualizedListInner2({
|
|
4884
4896
|
size: size2,
|
|
4885
4897
|
scrollElement,
|
|
4886
4898
|
items,
|
|
@@ -4888,20 +4900,20 @@ var VirtualizedListInner = (0, import_react49.forwardRef)(function VirtualizedLi
|
|
|
4888
4900
|
keyExtractor,
|
|
4889
4901
|
renderItem
|
|
4890
4902
|
}, ref) {
|
|
4891
|
-
const listRef = (0,
|
|
4892
|
-
(0,
|
|
4903
|
+
const listRef = (0, import_react50.useRef)(null);
|
|
4904
|
+
(0, import_react50.useImperativeHandle)(ref, () => ({
|
|
4893
4905
|
scrollToIndex(index) {
|
|
4894
4906
|
listRef.current?.scrollToItem(index);
|
|
4895
4907
|
}
|
|
4896
4908
|
}));
|
|
4897
|
-
(0,
|
|
4909
|
+
(0, import_react50.useLayoutEffect)(() => {
|
|
4898
4910
|
listRef.current?.resetAfterIndex(0);
|
|
4899
4911
|
}, [
|
|
4900
4912
|
// When items change, we need to re-render the virtualized list,
|
|
4901
4913
|
// since it doesn't currently support row height changes
|
|
4902
4914
|
items
|
|
4903
4915
|
]);
|
|
4904
|
-
const listStyle = (0,
|
|
4916
|
+
const listStyle = (0, import_react50.useMemo)(
|
|
4905
4917
|
() => ({
|
|
4906
4918
|
overflowX: "initial",
|
|
4907
4919
|
overflowY: "initial",
|
|
@@ -4909,18 +4921,18 @@ var VirtualizedListInner = (0, import_react49.forwardRef)(function VirtualizedLi
|
|
|
4909
4921
|
}),
|
|
4910
4922
|
[]
|
|
4911
4923
|
);
|
|
4912
|
-
return /* @__PURE__ */
|
|
4924
|
+
return /* @__PURE__ */ import_react50.default.createElement(RenderItemContext.Provider, { value: renderItem }, /* @__PURE__ */ import_react50.default.createElement(
|
|
4913
4925
|
import_react_virtualized.WindowScroller,
|
|
4914
4926
|
{
|
|
4915
4927
|
scrollElement,
|
|
4916
|
-
style: (0,
|
|
4928
|
+
style: (0, import_react50.useMemo)(() => ({ flex: "1 1 auto" }), [])
|
|
4917
4929
|
},
|
|
4918
|
-
(0,
|
|
4930
|
+
(0, import_react50.useCallback)(
|
|
4919
4931
|
({
|
|
4920
4932
|
registerChild,
|
|
4921
4933
|
onChildScroll,
|
|
4922
4934
|
scrollTop
|
|
4923
|
-
}) => /* @__PURE__ */
|
|
4935
|
+
}) => /* @__PURE__ */ import_react50.default.createElement("div", { ref: registerChild }, /* @__PURE__ */ import_react50.default.createElement(
|
|
4924
4936
|
import_react_window.VariableSizeList,
|
|
4925
4937
|
{
|
|
4926
4938
|
ref: listRef,
|
|
@@ -4950,7 +4962,7 @@ var VirtualizedListInner = (0, import_react49.forwardRef)(function VirtualizedLi
|
|
|
4950
4962
|
)
|
|
4951
4963
|
));
|
|
4952
4964
|
});
|
|
4953
|
-
var VirtualizedList = (0,
|
|
4965
|
+
var VirtualizedList = (0, import_react50.memo)(
|
|
4954
4966
|
VirtualizedListInner
|
|
4955
4967
|
);
|
|
4956
4968
|
var RootContainer2 = import_styled_components25.default.div(({ theme, $scrollable, $gap }) => ({
|
|
@@ -4961,7 +4973,7 @@ var RootContainer2 = import_styled_components25.default.div(({ theme, $scrollabl
|
|
|
4961
4973
|
color: theme.colors.textMuted,
|
|
4962
4974
|
gap: $gap
|
|
4963
4975
|
}));
|
|
4964
|
-
var ListViewRootInner = (0,
|
|
4976
|
+
var ListViewRootInner = (0, import_react50.forwardRef)(function ListViewRootInner2({
|
|
4965
4977
|
id,
|
|
4966
4978
|
className,
|
|
4967
4979
|
style: style3,
|
|
@@ -4983,7 +4995,7 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
|
|
|
4983
4995
|
colorScheme = "primary",
|
|
4984
4996
|
gap = 0
|
|
4985
4997
|
}, forwardedRef) {
|
|
4986
|
-
const handleClick = (0,
|
|
4998
|
+
const handleClick = (0, import_react50.useCallback)(
|
|
4987
4999
|
(event) => {
|
|
4988
5000
|
if (event.target instanceof HTMLElement && event.target.classList.contains("scroll-component"))
|
|
4989
5001
|
return;
|
|
@@ -4993,19 +5005,19 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
|
|
|
4993
5005
|
},
|
|
4994
5006
|
[onPress]
|
|
4995
5007
|
);
|
|
4996
|
-
const renderChild = (0,
|
|
5008
|
+
const renderChild = (0, import_react50.useCallback)(
|
|
4997
5009
|
(index) => renderItem(data[index], index, { isDragging: false }),
|
|
4998
5010
|
[data, renderItem]
|
|
4999
5011
|
);
|
|
5000
|
-
const getItemContextValue = (0,
|
|
5012
|
+
const getItemContextValue = (0, import_react50.useCallback)(
|
|
5001
5013
|
(i) => {
|
|
5002
5014
|
const current = renderChild(i);
|
|
5003
|
-
if (!(0,
|
|
5015
|
+
if (!(0, import_react50.isValidElement)(current))
|
|
5004
5016
|
return;
|
|
5005
5017
|
const prevChild = i - 1 >= 0 && renderChild(i - 1);
|
|
5006
5018
|
const nextChild = i + 1 < data.length && renderChild(i + 1);
|
|
5007
|
-
const next = (0,
|
|
5008
|
-
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;
|
|
5009
5021
|
const hasMarginTop = !prev;
|
|
5010
5022
|
const hasMarginBottom = !next || current.props.isSectionHeader || next && next.props.isSectionHeader;
|
|
5011
5023
|
let marginType;
|
|
@@ -5057,26 +5069,26 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
|
|
|
5057
5069
|
gap
|
|
5058
5070
|
]
|
|
5059
5071
|
);
|
|
5060
|
-
const draggingContextOverlayValue = (0,
|
|
5072
|
+
const draggingContextOverlayValue = (0, import_react50.useMemo)(
|
|
5061
5073
|
() => ({ indentation, isDragging: true }),
|
|
5062
5074
|
[indentation]
|
|
5063
5075
|
);
|
|
5064
|
-
const renderOverlay = (0,
|
|
5065
|
-
(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 }))),
|
|
5066
5078
|
[draggingContextOverlayValue, renderItem, data]
|
|
5067
5079
|
);
|
|
5068
|
-
const renderWrappedChild = (0,
|
|
5080
|
+
const renderWrappedChild = (0, import_react50.useCallback)(
|
|
5069
5081
|
(index) => {
|
|
5070
5082
|
const contextValue = getItemContextValue(index);
|
|
5071
5083
|
const current = renderChild(index);
|
|
5072
|
-
if (!contextValue || !(0,
|
|
5084
|
+
if (!contextValue || !(0, import_react50.isValidElement)(current))
|
|
5073
5085
|
return null;
|
|
5074
|
-
return /* @__PURE__ */
|
|
5086
|
+
return /* @__PURE__ */ import_react50.default.createElement(ListRowContext.Provider, { key: current.key, value: contextValue }, current);
|
|
5075
5087
|
},
|
|
5076
5088
|
[getItemContextValue, renderChild]
|
|
5077
5089
|
);
|
|
5078
|
-
const ids = (0,
|
|
5079
|
-
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(
|
|
5080
5092
|
Sortable.Root,
|
|
5081
5093
|
{
|
|
5082
5094
|
onMoveItem,
|
|
@@ -5086,8 +5098,8 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
|
|
|
5086
5098
|
},
|
|
5087
5099
|
children
|
|
5088
5100
|
) : children;
|
|
5089
|
-
const withScrollable = (children) => scrollable ? /* @__PURE__ */
|
|
5090
|
-
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)(
|
|
5091
5103
|
(index) => {
|
|
5092
5104
|
const child = getItemContextValue(index);
|
|
5093
5105
|
const margin = child?.marginType ? getPositionMargin(child.marginType) : { top: 0, bottom: 0 };
|
|
@@ -5096,12 +5108,12 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
|
|
|
5096
5108
|
},
|
|
5097
5109
|
[getItemContextValue, variant]
|
|
5098
5110
|
);
|
|
5099
|
-
const getKey = (0,
|
|
5111
|
+
const getKey = (0, import_react50.useCallback)(
|
|
5100
5112
|
(index) => keyExtractor(data[index], index),
|
|
5101
5113
|
[data, keyExtractor]
|
|
5102
5114
|
);
|
|
5103
|
-
const draggingContextValue = (0,
|
|
5104
|
-
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(
|
|
5105
5117
|
RootContainer2,
|
|
5106
5118
|
{
|
|
5107
5119
|
id,
|
|
@@ -5115,7 +5127,7 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
|
|
|
5115
5127
|
},
|
|
5116
5128
|
withScrollable(
|
|
5117
5129
|
(scrollElementRef) => withSortable(
|
|
5118
|
-
virtualized ? /* @__PURE__ */
|
|
5130
|
+
virtualized ? /* @__PURE__ */ import_react50.default.createElement(
|
|
5119
5131
|
VirtualizedList,
|
|
5120
5132
|
{
|
|
5121
5133
|
ref: forwardedRef,
|
|
@@ -5131,42 +5143,42 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
|
|
|
5131
5143
|
)
|
|
5132
5144
|
));
|
|
5133
5145
|
});
|
|
5134
|
-
var ListViewRoot = (0,
|
|
5135
|
-
var ChildrenListViewInner = (0,
|
|
5136
|
-
const items = (0,
|
|
5137
|
-
() =>
|
|
5138
|
-
(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] : []
|
|
5139
5151
|
),
|
|
5140
5152
|
[children]
|
|
5141
5153
|
);
|
|
5142
|
-
return /* @__PURE__ */
|
|
5154
|
+
return /* @__PURE__ */ import_react50.default.createElement(
|
|
5143
5155
|
ListViewRoot,
|
|
5144
5156
|
{
|
|
5145
5157
|
ref: forwardedRef,
|
|
5146
5158
|
...rest,
|
|
5147
5159
|
data: items,
|
|
5148
|
-
keyExtractor: (0,
|
|
5160
|
+
keyExtractor: (0, import_react50.useCallback)(
|
|
5149
5161
|
({ key }, index) => typeof key === "string" ? key : (key ?? index).toString(),
|
|
5150
5162
|
[]
|
|
5151
5163
|
),
|
|
5152
|
-
renderItem: (0,
|
|
5164
|
+
renderItem: (0, import_react50.useCallback)((item) => item, [])
|
|
5153
5165
|
}
|
|
5154
5166
|
);
|
|
5155
5167
|
});
|
|
5156
|
-
var ChildrenListView = (0,
|
|
5157
|
-
var SimpleListViewInner = (0,
|
|
5168
|
+
var ChildrenListView = (0, import_react50.memo)(ChildrenListViewInner);
|
|
5169
|
+
var SimpleListViewInner = (0, import_react50.forwardRef)(function SimpleListViewInner2(props, forwardedRef) {
|
|
5158
5170
|
if ("children" in props) {
|
|
5159
|
-
return /* @__PURE__ */
|
|
5171
|
+
return /* @__PURE__ */ import_react50.default.createElement(ChildrenListView, { ref: forwardedRef, ...props });
|
|
5160
5172
|
} else {
|
|
5161
|
-
return /* @__PURE__ */
|
|
5173
|
+
return /* @__PURE__ */ import_react50.default.createElement(ListViewRoot, { ref: forwardedRef, ...props });
|
|
5162
5174
|
}
|
|
5163
5175
|
});
|
|
5164
|
-
var SimpleListView = (0,
|
|
5176
|
+
var SimpleListView = (0, import_react50.memo)(SimpleListViewInner);
|
|
5165
5177
|
var ListView;
|
|
5166
5178
|
((ListView2) => {
|
|
5167
|
-
ListView2.RowTitle = (0,
|
|
5168
|
-
ListView2.EditableRowTitle = (0,
|
|
5169
|
-
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);
|
|
5170
5182
|
ListView2.Root = SimpleListView;
|
|
5171
5183
|
ListView2.RowContext = ListRowContext;
|
|
5172
5184
|
ListView2.DragIndicator = ListViewDragIndicatorElement;
|
|
@@ -5179,7 +5191,7 @@ var ListView;
|
|
|
5179
5191
|
})(ListView || (ListView = {}));
|
|
5180
5192
|
|
|
5181
5193
|
// src/components/Text.tsx
|
|
5182
|
-
var
|
|
5194
|
+
var import_react51 = __toESM(require("react"));
|
|
5183
5195
|
var import_styled_components26 = __toESM(require("styled-components"));
|
|
5184
5196
|
var elements = {
|
|
5185
5197
|
title: "h1",
|
|
@@ -5201,7 +5213,7 @@ var StyledElement = import_styled_components26.default.span(({ theme, $variant,
|
|
|
5201
5213
|
...$styleProps,
|
|
5202
5214
|
...mergeBreakpoints($breakpoints || [])
|
|
5203
5215
|
}));
|
|
5204
|
-
var Text = (0,
|
|
5216
|
+
var Text = (0, import_react51.forwardRef)(function Text2({
|
|
5205
5217
|
as,
|
|
5206
5218
|
variant,
|
|
5207
5219
|
breakpoints,
|
|
@@ -5215,7 +5227,7 @@ var Text = (0, import_react50.forwardRef)(function Text2({
|
|
|
5215
5227
|
...rest
|
|
5216
5228
|
}, forwardedRef) {
|
|
5217
5229
|
const element = as ?? elements[variant] ?? "span";
|
|
5218
|
-
return /* @__PURE__ */
|
|
5230
|
+
return /* @__PURE__ */ import_react51.default.createElement(
|
|
5219
5231
|
StyledElement,
|
|
5220
5232
|
{
|
|
5221
5233
|
ref: forwardedRef,
|
|
@@ -5233,28 +5245,28 @@ var Text = (0, import_react50.forwardRef)(function Text2({
|
|
|
5233
5245
|
children
|
|
5234
5246
|
);
|
|
5235
5247
|
});
|
|
5236
|
-
var Heading1 = (0,
|
|
5237
|
-
(props, ref) => /* @__PURE__ */
|
|
5248
|
+
var Heading1 = (0, import_react51.forwardRef)(
|
|
5249
|
+
(props, ref) => /* @__PURE__ */ import_react51.default.createElement(Text, { ref, ...props, variant: "heading1" })
|
|
5238
5250
|
);
|
|
5239
|
-
var Heading2 = (0,
|
|
5240
|
-
(props, ref) => /* @__PURE__ */
|
|
5251
|
+
var Heading2 = (0, import_react51.forwardRef)(
|
|
5252
|
+
(props, ref) => /* @__PURE__ */ import_react51.default.createElement(Text, { ref, ...props, variant: "heading2" })
|
|
5241
5253
|
);
|
|
5242
|
-
var Heading3 = (0,
|
|
5243
|
-
(props, ref) => /* @__PURE__ */
|
|
5254
|
+
var Heading3 = (0, import_react51.forwardRef)(
|
|
5255
|
+
(props, ref) => /* @__PURE__ */ import_react51.default.createElement(Text, { ref, ...props, variant: "heading3" })
|
|
5244
5256
|
);
|
|
5245
|
-
var Heading4 = (0,
|
|
5246
|
-
(props, ref) => /* @__PURE__ */
|
|
5257
|
+
var Heading4 = (0, import_react51.forwardRef)(
|
|
5258
|
+
(props, ref) => /* @__PURE__ */ import_react51.default.createElement(Text, { ref, ...props, variant: "heading4" })
|
|
5247
5259
|
);
|
|
5248
|
-
var Heading5 = (0,
|
|
5249
|
-
(props, ref) => /* @__PURE__ */
|
|
5260
|
+
var Heading5 = (0, import_react51.forwardRef)(
|
|
5261
|
+
(props, ref) => /* @__PURE__ */ import_react51.default.createElement(Text, { ref, ...props, variant: "heading5" })
|
|
5250
5262
|
);
|
|
5251
|
-
var Body = (0,
|
|
5252
|
-
(props, ref) => /* @__PURE__ */
|
|
5263
|
+
var Body = (0, import_react51.forwardRef)(
|
|
5264
|
+
(props, ref) => /* @__PURE__ */ import_react51.default.createElement(Text, { ref, ...props, variant: "body" })
|
|
5253
5265
|
);
|
|
5254
|
-
var Small = (0,
|
|
5255
|
-
(props, ref) => /* @__PURE__ */
|
|
5266
|
+
var Small = (0, import_react51.forwardRef)(
|
|
5267
|
+
(props, ref) => /* @__PURE__ */ import_react51.default.createElement(Text, { ref, ...props, variant: "small" })
|
|
5256
5268
|
);
|
|
5257
|
-
var Italic = ({ children }) => /* @__PURE__ */
|
|
5269
|
+
var Italic = ({ children }) => /* @__PURE__ */ import_react51.default.createElement(
|
|
5258
5270
|
"span",
|
|
5259
5271
|
{
|
|
5260
5272
|
style: {
|
|
@@ -5296,15 +5308,15 @@ var CompletionToken = import_styled_components27.default.span(
|
|
|
5296
5308
|
whiteSpace: "pre"
|
|
5297
5309
|
})
|
|
5298
5310
|
);
|
|
5299
|
-
var CompletionMenu = (0,
|
|
5300
|
-
(0,
|
|
5311
|
+
var CompletionMenu = (0, import_react52.memo)(
|
|
5312
|
+
(0, import_react52.forwardRef)(function CompletionMenu2({
|
|
5301
5313
|
items,
|
|
5302
5314
|
selectedIndex,
|
|
5303
5315
|
onSelectItem,
|
|
5304
5316
|
onHoverIndex,
|
|
5305
5317
|
listSize
|
|
5306
5318
|
}, forwardedRef) {
|
|
5307
|
-
return /* @__PURE__ */
|
|
5319
|
+
return /* @__PURE__ */ import_react52.default.createElement(
|
|
5308
5320
|
ListView.Root,
|
|
5309
5321
|
{
|
|
5310
5322
|
ref: forwardedRef,
|
|
@@ -5316,13 +5328,13 @@ var CompletionMenu = (0, import_react51.memo)(
|
|
|
5316
5328
|
sectionHeaderVariant: "label",
|
|
5317
5329
|
renderItem: (item, i) => {
|
|
5318
5330
|
if (item.type === "sectionHeader") {
|
|
5319
|
-
return /* @__PURE__ */
|
|
5331
|
+
return /* @__PURE__ */ import_react52.default.createElement(ListView.Row, { key: item.id, isSectionHeader: true }, item.name);
|
|
5320
5332
|
}
|
|
5321
5333
|
const tokens = fuzzyTokenize({
|
|
5322
5334
|
item: item.name,
|
|
5323
5335
|
itemScore: item
|
|
5324
5336
|
});
|
|
5325
|
-
return /* @__PURE__ */
|
|
5337
|
+
return /* @__PURE__ */ import_react52.default.createElement(
|
|
5326
5338
|
ListView.Row,
|
|
5327
5339
|
{
|
|
5328
5340
|
key: item.id,
|
|
@@ -5334,16 +5346,16 @@ var CompletionMenu = (0, import_react51.memo)(
|
|
|
5334
5346
|
}
|
|
5335
5347
|
}
|
|
5336
5348
|
},
|
|
5337
|
-
tokens.map((token, j) => /* @__PURE__ */
|
|
5338
|
-
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)
|
|
5339
5351
|
);
|
|
5340
5352
|
}
|
|
5341
5353
|
}
|
|
5342
5354
|
);
|
|
5343
5355
|
})
|
|
5344
5356
|
);
|
|
5345
|
-
var InputFieldWithCompletions = (0,
|
|
5346
|
-
(0,
|
|
5357
|
+
var InputFieldWithCompletions = (0, import_react52.memo)(
|
|
5358
|
+
(0, import_react52.forwardRef)(function InputFieldWithCompletions2({
|
|
5347
5359
|
loading,
|
|
5348
5360
|
initialValue = "",
|
|
5349
5361
|
placeholder,
|
|
@@ -5361,13 +5373,13 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
|
|
|
5361
5373
|
hideChildrenWhenFocused = false,
|
|
5362
5374
|
hideMenuWhenEmptyValue = false
|
|
5363
5375
|
}, forwardedRef) {
|
|
5364
|
-
const ref = (0,
|
|
5365
|
-
const [isFocused, setIsFocused] = (0,
|
|
5366
|
-
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)({
|
|
5367
5379
|
filter: initialValue,
|
|
5368
5380
|
selectedIndex: 0
|
|
5369
5381
|
});
|
|
5370
|
-
const updateState = (0,
|
|
5382
|
+
const updateState = (0, import_react52.useCallback)(
|
|
5371
5383
|
(newState, hoverItem) => {
|
|
5372
5384
|
const nextState = { ...state, ...newState };
|
|
5373
5385
|
const nextItems = filterWithGroupedSections(items, nextState.filter);
|
|
@@ -5396,16 +5408,16 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
|
|
|
5396
5408
|
},
|
|
5397
5409
|
[items, onChange, onHoverItem, state]
|
|
5398
5410
|
);
|
|
5399
|
-
const initialValueRef = (0,
|
|
5400
|
-
(0,
|
|
5411
|
+
const initialValueRef = (0, import_react52.useRef)(initialValue);
|
|
5412
|
+
(0, import_react52.useLayoutEffect)(() => {
|
|
5401
5413
|
if (initialValueRef.current === initialValue)
|
|
5402
5414
|
return;
|
|
5403
5415
|
initialValueRef.current = initialValue;
|
|
5404
5416
|
updateState({ filter: initialValue });
|
|
5405
5417
|
}, [initialValue, updateState]);
|
|
5406
5418
|
const { filter, selectedIndex } = state;
|
|
5407
|
-
const listRef =
|
|
5408
|
-
const filteredItems = (0,
|
|
5419
|
+
const listRef = import_react52.default.useRef(null);
|
|
5420
|
+
const filteredItems = (0, import_react52.useMemo)(
|
|
5409
5421
|
() => filterWithGroupedSections(items, filter),
|
|
5410
5422
|
[items, filter]
|
|
5411
5423
|
);
|
|
@@ -5421,13 +5433,13 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
|
|
|
5421
5433
|
),
|
|
5422
5434
|
ListView.rowHeight * 10.5
|
|
5423
5435
|
);
|
|
5424
|
-
(0,
|
|
5436
|
+
(0, import_react52.useEffect)(() => {
|
|
5425
5437
|
if (listRef.current) {
|
|
5426
5438
|
listRef.current.scrollToIndex(selectedIndex);
|
|
5427
5439
|
}
|
|
5428
5440
|
}, [selectedIndex]);
|
|
5429
|
-
const lastSubmittedValueRef = (0,
|
|
5430
|
-
const selectItem = (0,
|
|
5441
|
+
const lastSubmittedValueRef = (0, import_react52.useRef)(void 0);
|
|
5442
|
+
const selectItem = (0, import_react52.useCallback)(
|
|
5431
5443
|
(item) => {
|
|
5432
5444
|
if (item.type === "sectionHeader")
|
|
5433
5445
|
return;
|
|
@@ -5443,17 +5455,17 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
|
|
|
5443
5455
|
},
|
|
5444
5456
|
[filter, onSelectItem, onHoverItem, ref]
|
|
5445
5457
|
);
|
|
5446
|
-
const handleChange = (0,
|
|
5458
|
+
const handleChange = (0, import_react52.useCallback)(
|
|
5447
5459
|
(value) => updateState({ selectedIndex: 0, filter: value }),
|
|
5448
5460
|
[updateState]
|
|
5449
5461
|
);
|
|
5450
|
-
const handleBlur = (0,
|
|
5462
|
+
const handleBlur = (0, import_react52.useCallback)(() => {
|
|
5451
5463
|
setIsFocused(false);
|
|
5452
5464
|
const didSubmit = lastSubmittedValueRef.current?.filter === filter;
|
|
5453
5465
|
updateState({ selectedIndex: 0, filter: initialValue }, "resetHover");
|
|
5454
5466
|
onBlur?.(didSubmit, filter);
|
|
5455
5467
|
}, [filter, initialValue, onBlur, updateState]);
|
|
5456
|
-
const handleFocus = (0,
|
|
5468
|
+
const handleFocus = (0, import_react52.useCallback)(
|
|
5457
5469
|
(event) => {
|
|
5458
5470
|
setIsFocused(true);
|
|
5459
5471
|
updateState({ selectedIndex: 0, filter: initialValue });
|
|
@@ -5461,11 +5473,11 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
|
|
|
5461
5473
|
},
|
|
5462
5474
|
[initialValue, onFocus, updateState]
|
|
5463
5475
|
);
|
|
5464
|
-
const handleIndexChange = (0,
|
|
5476
|
+
const handleIndexChange = (0, import_react52.useCallback)(
|
|
5465
5477
|
(index) => updateState({ selectedIndex: index }),
|
|
5466
5478
|
[updateState]
|
|
5467
5479
|
);
|
|
5468
|
-
const handleKeyDown = (0,
|
|
5480
|
+
const handleKeyDown = (0, import_react52.useCallback)(
|
|
5469
5481
|
(event) => {
|
|
5470
5482
|
let handled = false;
|
|
5471
5483
|
switch (event.key) {
|
|
@@ -5529,7 +5541,7 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
|
|
|
5529
5541
|
);
|
|
5530
5542
|
const display = !filter && hideMenuWhenEmptyValue ? "none" : "flex";
|
|
5531
5543
|
const typeaheadValue = filteredItems[selectedIndex]?.name;
|
|
5532
|
-
(0,
|
|
5544
|
+
(0, import_react52.useImperativeHandle)(forwardedRef, () => ({
|
|
5533
5545
|
focus: () => {
|
|
5534
5546
|
ref.current?.focus();
|
|
5535
5547
|
},
|
|
@@ -5540,14 +5552,14 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
|
|
|
5540
5552
|
ref.current?.setSelectionRange(0, ref.current.value.length);
|
|
5541
5553
|
}
|
|
5542
5554
|
}));
|
|
5543
|
-
return /* @__PURE__ */
|
|
5555
|
+
return /* @__PURE__ */ import_react52.default.createElement(
|
|
5544
5556
|
InputField.Root,
|
|
5545
5557
|
{
|
|
5546
5558
|
size: size2,
|
|
5547
5559
|
labelSize: 16,
|
|
5548
5560
|
renderPopoverContent: ({ width }) => {
|
|
5549
5561
|
const listSize = { width, height };
|
|
5550
|
-
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(
|
|
5551
5563
|
CompletionMenu,
|
|
5552
5564
|
{
|
|
5553
5565
|
ref: listRef,
|
|
@@ -5557,7 +5569,7 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
|
|
|
5557
5569
|
onHoverIndex: handleIndexChange,
|
|
5558
5570
|
listSize
|
|
5559
5571
|
}
|
|
5560
|
-
) : /* @__PURE__ */
|
|
5572
|
+
) : /* @__PURE__ */ import_react52.default.createElement(
|
|
5561
5573
|
Stack.V,
|
|
5562
5574
|
{
|
|
5563
5575
|
height: "100px",
|
|
@@ -5565,11 +5577,11 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
|
|
|
5565
5577
|
alignItems: "center",
|
|
5566
5578
|
justifyContent: "center"
|
|
5567
5579
|
},
|
|
5568
|
-
/* @__PURE__ */
|
|
5580
|
+
/* @__PURE__ */ import_react52.default.createElement(Small, { color: "textDisabled" }, loading ? "Loading" : "No results")
|
|
5569
5581
|
));
|
|
5570
5582
|
}
|
|
5571
5583
|
},
|
|
5572
|
-
/* @__PURE__ */
|
|
5584
|
+
/* @__PURE__ */ import_react52.default.createElement(
|
|
5573
5585
|
InputField.Input,
|
|
5574
5586
|
{
|
|
5575
5587
|
ref,
|
|
@@ -5593,9 +5605,9 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
|
|
|
5593
5605
|
"aria-controls": "component-listbox"
|
|
5594
5606
|
}
|
|
5595
5607
|
),
|
|
5596
|
-
filter && typeaheadValue && typeaheadValue.startsWith(filter) && /* @__PURE__ */
|
|
5608
|
+
filter && typeaheadValue && typeaheadValue.startsWith(filter) && /* @__PURE__ */ import_react52.default.createElement(InputField.Typeahead, { value: typeaheadValue }),
|
|
5597
5609
|
(!isFocused || !hideChildrenWhenFocused) && children,
|
|
5598
|
-
loading && isFocused && /* @__PURE__ */
|
|
5610
|
+
loading && isFocused && /* @__PURE__ */ import_react52.default.createElement(InputField.Label, null, /* @__PURE__ */ import_react52.default.createElement(ActivityIndicator, null))
|
|
5599
5611
|
);
|
|
5600
5612
|
})
|
|
5601
5613
|
);
|
|
@@ -5617,9 +5629,9 @@ function getNextIndex(items, currentIndex, direction, isDisabled) {
|
|
|
5617
5629
|
}
|
|
5618
5630
|
|
|
5619
5631
|
// src/components/InspectorContainer.tsx
|
|
5620
|
-
var
|
|
5621
|
-
var InspectorContainer = (0,
|
|
5622
|
-
(0,
|
|
5632
|
+
var import_react53 = __toESM(require("react"));
|
|
5633
|
+
var InspectorContainer = (0, import_react53.memo)(
|
|
5634
|
+
(0, import_react53.forwardRef)(function InspectorContainer2({
|
|
5623
5635
|
header,
|
|
5624
5636
|
children,
|
|
5625
5637
|
fallback,
|
|
@@ -5629,7 +5641,7 @@ var InspectorContainer = (0, import_react52.memo)(
|
|
|
5629
5641
|
style: style3
|
|
5630
5642
|
}, forwardedRef) {
|
|
5631
5643
|
const theme = useDesignSystemTheme();
|
|
5632
|
-
return /* @__PURE__ */
|
|
5644
|
+
return /* @__PURE__ */ import_react53.default.createElement(
|
|
5633
5645
|
"div",
|
|
5634
5646
|
{
|
|
5635
5647
|
ref: forwardedRef,
|
|
@@ -5644,13 +5656,13 @@ var InspectorContainer = (0, import_react52.memo)(
|
|
|
5644
5656
|
}
|
|
5645
5657
|
},
|
|
5646
5658
|
header,
|
|
5647
|
-
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
|
|
5648
5660
|
);
|
|
5649
5661
|
})
|
|
5650
5662
|
);
|
|
5651
5663
|
|
|
5652
5664
|
// src/components/Label.tsx
|
|
5653
|
-
var
|
|
5665
|
+
var import_react54 = __toESM(require("react"));
|
|
5654
5666
|
var import_styled_components28 = __toESM(require("styled-components"));
|
|
5655
5667
|
var LabelLabel = import_styled_components28.default.label(
|
|
5656
5668
|
({ theme, $selected }) => ({
|
|
@@ -5679,17 +5691,17 @@ var LabelContainer2 = import_styled_components28.default.span(({ theme }) => ({
|
|
|
5679
5691
|
alignItems: "center"
|
|
5680
5692
|
}));
|
|
5681
5693
|
function LabelRoot({ label, children }) {
|
|
5682
|
-
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)));
|
|
5683
5695
|
}
|
|
5684
5696
|
var Label;
|
|
5685
5697
|
((_Label) => {
|
|
5686
|
-
_Label.Label = (0,
|
|
5687
|
-
_Label.Root = (0,
|
|
5698
|
+
_Label.Label = (0, import_react54.memo)(LabelLabel);
|
|
5699
|
+
_Label.Root = (0, import_react54.memo)(LabelRoot);
|
|
5688
5700
|
})(Label || (Label = {}));
|
|
5689
5701
|
|
|
5690
5702
|
// src/components/LabeledElementView.tsx
|
|
5691
5703
|
var kiwi = __toESM(require("kiwi.js"));
|
|
5692
|
-
var
|
|
5704
|
+
var import_react55 = __toESM(require("react"));
|
|
5693
5705
|
var import_styled_components29 = __toESM(require("styled-components"));
|
|
5694
5706
|
var Container4 = import_styled_components29.default.div(({ theme }) => ({
|
|
5695
5707
|
display: "flex",
|
|
@@ -5708,24 +5720,24 @@ var Labels = import_styled_components29.default.div(({ theme }) => ({
|
|
|
5708
5720
|
overflow: "hidden",
|
|
5709
5721
|
userSelect: "none"
|
|
5710
5722
|
}));
|
|
5711
|
-
var LabeledElementView = (0,
|
|
5723
|
+
var LabeledElementView = (0, import_react55.memo)(function LabeledElementView2({
|
|
5712
5724
|
children,
|
|
5713
5725
|
renderLabel
|
|
5714
5726
|
}) {
|
|
5715
|
-
const elementIds =
|
|
5716
|
-
(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]
|
|
5717
5729
|
).map(
|
|
5718
|
-
(child) => (0,
|
|
5730
|
+
(child) => (0, import_react55.isValidElement)(child) && "id" in child.props ? child.props.id : null
|
|
5719
5731
|
).filter((id) => !!id);
|
|
5720
5732
|
const serializedIds = elementIds.join(",");
|
|
5721
|
-
const containerRef = (0,
|
|
5722
|
-
const refs = (0,
|
|
5733
|
+
const containerRef = (0, import_react55.useRef)(null);
|
|
5734
|
+
const refs = (0, import_react55.useMemo)(() => {
|
|
5723
5735
|
return Object.fromEntries(
|
|
5724
|
-
serializedIds.split(",").map((id) => [id, (0,
|
|
5736
|
+
serializedIds.split(",").map((id) => [id, (0, import_react55.createRef)()])
|
|
5725
5737
|
);
|
|
5726
5738
|
}, [serializedIds]);
|
|
5727
|
-
const labelElements = (0,
|
|
5728
|
-
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(
|
|
5729
5741
|
"span",
|
|
5730
5742
|
{
|
|
5731
5743
|
key: id,
|
|
@@ -5738,7 +5750,7 @@ var LabeledElementView = (0, import_react54.memo)(function LabeledElementView2({
|
|
|
5738
5750
|
})
|
|
5739
5751
|
));
|
|
5740
5752
|
}, [refs, serializedIds, renderLabel]);
|
|
5741
|
-
(0,
|
|
5753
|
+
(0, import_react55.useLayoutEffect)(() => {
|
|
5742
5754
|
if (!containerRef.current)
|
|
5743
5755
|
return;
|
|
5744
5756
|
const containerRect = containerRef.current.getBoundingClientRect();
|
|
@@ -5803,13 +5815,13 @@ var LabeledElementView = (0, import_react54.memo)(function LabeledElementView2({
|
|
|
5803
5815
|
`${Math.max(...heights)}px`
|
|
5804
5816
|
);
|
|
5805
5817
|
}, [refs, labelElements]);
|
|
5806
|
-
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));
|
|
5807
5819
|
});
|
|
5808
5820
|
|
|
5809
5821
|
// src/components/Progress.tsx
|
|
5810
5822
|
var import_noya_utils9 = require("@noya-app/noya-utils");
|
|
5811
5823
|
var ProgressPrimitive = __toESM(require("@radix-ui/react-progress"));
|
|
5812
|
-
var
|
|
5824
|
+
var import_react56 = __toESM(require("react"));
|
|
5813
5825
|
var import_styled_components30 = __toESM(require("styled-components"));
|
|
5814
5826
|
function Progress({
|
|
5815
5827
|
value,
|
|
@@ -5819,7 +5831,7 @@ function Progress({
|
|
|
5819
5831
|
variant = "normal"
|
|
5820
5832
|
}) {
|
|
5821
5833
|
const clampedValue = (0, import_noya_utils9.clamp)(value, 0, 100);
|
|
5822
|
-
return /* @__PURE__ */
|
|
5834
|
+
return /* @__PURE__ */ import_react56.default.createElement(ProgressRoot, { value: clampedValue, style: { width, flex, height } }, /* @__PURE__ */ import_react56.default.createElement(
|
|
5823
5835
|
ProgressIndicator,
|
|
5824
5836
|
{
|
|
5825
5837
|
variant,
|
|
@@ -5844,7 +5856,7 @@ var ProgressIndicator = (0, import_styled_components30.default)(ProgressPrimitiv
|
|
|
5844
5856
|
|
|
5845
5857
|
// src/components/RadioGroup.tsx
|
|
5846
5858
|
var ToggleGroupPrimitive = __toESM(require("@radix-ui/react-toggle-group"));
|
|
5847
|
-
var
|
|
5859
|
+
var import_react57 = __toESM(require("react"));
|
|
5848
5860
|
var import_styled_components31 = __toESM(require("styled-components"));
|
|
5849
5861
|
var ignoredProps2 = /* @__PURE__ */ new Set(["colorScheme"]);
|
|
5850
5862
|
var StyledRoot = (0, import_styled_components31.default)(ToggleGroupPrimitive.Root).withConfig({
|
|
@@ -5897,9 +5909,9 @@ var StyledItem = (0, import_styled_components31.default)(ToggleGroupPrimitive.It
|
|
|
5897
5909
|
boxShadow: `0 0 0 1px ${theme.colors.sidebar.background}, 0 0 0 3px ${theme.colors[colorScheme ?? "primary"]}`
|
|
5898
5910
|
}
|
|
5899
5911
|
}));
|
|
5900
|
-
var ToggleGroupItem = (0,
|
|
5901
|
-
const { colorScheme } = (0,
|
|
5902
|
-
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(
|
|
5903
5915
|
StyledItem,
|
|
5904
5916
|
{
|
|
5905
5917
|
ref: forwardedRef,
|
|
@@ -5909,9 +5921,9 @@ var ToggleGroupItem = (0, import_react56.forwardRef)(function ToggleGroupItem2({
|
|
|
5909
5921
|
},
|
|
5910
5922
|
children
|
|
5911
5923
|
);
|
|
5912
|
-
return tooltip ? /* @__PURE__ */
|
|
5924
|
+
return tooltip ? /* @__PURE__ */ import_react57.default.createElement(Tooltip, { content: tooltip }, itemElement) : itemElement;
|
|
5913
5925
|
});
|
|
5914
|
-
var RadioGroupContext = (0,
|
|
5926
|
+
var RadioGroupContext = (0, import_react57.createContext)({
|
|
5915
5927
|
colorScheme: "primary"
|
|
5916
5928
|
});
|
|
5917
5929
|
function ToggleGroupRoot({
|
|
@@ -5922,8 +5934,8 @@ function ToggleGroupRoot({
|
|
|
5922
5934
|
allowEmpty,
|
|
5923
5935
|
children
|
|
5924
5936
|
}) {
|
|
5925
|
-
const contextValue = (0,
|
|
5926
|
-
const handleValueChange = (0,
|
|
5937
|
+
const contextValue = (0, import_react57.useMemo)(() => ({ colorScheme }), [colorScheme]);
|
|
5938
|
+
const handleValueChange = (0, import_react57.useCallback)(
|
|
5927
5939
|
(value2) => {
|
|
5928
5940
|
if (!allowEmpty && !value2)
|
|
5929
5941
|
return;
|
|
@@ -5931,7 +5943,7 @@ function ToggleGroupRoot({
|
|
|
5931
5943
|
},
|
|
5932
5944
|
[allowEmpty, onValueChange]
|
|
5933
5945
|
);
|
|
5934
|
-
return /* @__PURE__ */
|
|
5946
|
+
return /* @__PURE__ */ import_react57.default.createElement(RadioGroupContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react57.default.createElement(
|
|
5935
5947
|
StyledRoot,
|
|
5936
5948
|
{
|
|
5937
5949
|
id,
|
|
@@ -5945,28 +5957,28 @@ function ToggleGroupRoot({
|
|
|
5945
5957
|
}
|
|
5946
5958
|
var RadioGroup;
|
|
5947
5959
|
((RadioGroup2) => {
|
|
5948
|
-
RadioGroup2.Root = (0,
|
|
5949
|
-
RadioGroup2.Item = (0,
|
|
5960
|
+
RadioGroup2.Root = (0, import_react57.memo)(ToggleGroupRoot);
|
|
5961
|
+
RadioGroup2.Item = (0, import_react57.memo)(ToggleGroupItem);
|
|
5950
5962
|
})(RadioGroup || (RadioGroup = {}));
|
|
5951
5963
|
|
|
5952
5964
|
// src/components/Select.tsx
|
|
5953
5965
|
var import_noya_utils10 = require("@noya-app/noya-utils");
|
|
5954
|
-
var
|
|
5966
|
+
var import_react58 = __toESM(require("react"));
|
|
5955
5967
|
var import_styled_components32 = __toESM(require("styled-components"));
|
|
5956
|
-
var SelectContext = (0,
|
|
5957
|
-
var SelectOption = (0,
|
|
5968
|
+
var SelectContext = (0, import_react58.createContext)(void 0);
|
|
5969
|
+
var SelectOption = (0, import_react58.memo)(function SelectOption2({
|
|
5958
5970
|
value,
|
|
5959
5971
|
title,
|
|
5960
5972
|
onSelect
|
|
5961
5973
|
}) {
|
|
5962
|
-
const { addListener, removeListener } = (0,
|
|
5963
|
-
(0,
|
|
5974
|
+
const { addListener, removeListener } = (0, import_react58.useContext)(SelectContext);
|
|
5975
|
+
(0, import_react58.useEffect)(() => {
|
|
5964
5976
|
if (!onSelect)
|
|
5965
5977
|
return;
|
|
5966
5978
|
addListener(value, onSelect);
|
|
5967
5979
|
return () => removeListener(value);
|
|
5968
5980
|
}, [addListener, onSelect, removeListener, value]);
|
|
5969
|
-
return /* @__PURE__ */
|
|
5981
|
+
return /* @__PURE__ */ import_react58.default.createElement("option", { value }, title ?? value);
|
|
5970
5982
|
});
|
|
5971
5983
|
var createChevronSVGString = (0, import_noya_utils10.memoize)(
|
|
5972
5984
|
(color) => `
|
|
@@ -6028,7 +6040,7 @@ var SelectLabel = import_styled_components32.default.label(({ theme }) => ({
|
|
|
6028
6040
|
justifyContent: "end",
|
|
6029
6041
|
paddingRight: "24px"
|
|
6030
6042
|
}));
|
|
6031
|
-
var Select = (0,
|
|
6043
|
+
var Select = (0, import_react58.memo)(function Select2({
|
|
6032
6044
|
id,
|
|
6033
6045
|
flex,
|
|
6034
6046
|
value,
|
|
@@ -6039,8 +6051,8 @@ var Select = (0, import_react57.memo)(function Select2({
|
|
|
6039
6051
|
const getTitle = "options" in rest ? rest.getTitle : void 0;
|
|
6040
6052
|
const onChange = "options" in rest ? rest.onChange : void 0;
|
|
6041
6053
|
const children = "options" in rest ? void 0 : rest.children;
|
|
6042
|
-
const optionElements = (0,
|
|
6043
|
-
() => options ? options.map((option, index) => /* @__PURE__ */
|
|
6054
|
+
const optionElements = (0, import_react58.useMemo)(
|
|
6055
|
+
() => options ? options.map((option, index) => /* @__PURE__ */ import_react58.default.createElement(
|
|
6044
6056
|
SelectOption,
|
|
6045
6057
|
{
|
|
6046
6058
|
key: option,
|
|
@@ -6051,36 +6063,36 @@ var Select = (0, import_react57.memo)(function Select2({
|
|
|
6051
6063
|
)) : children,
|
|
6052
6064
|
[children, getTitle, onChange, options]
|
|
6053
6065
|
);
|
|
6054
|
-
const listeners = (0,
|
|
6055
|
-
const contextValue = (0,
|
|
6066
|
+
const listeners = (0, import_react58.useRef)(/* @__PURE__ */ new Map());
|
|
6067
|
+
const contextValue = (0, import_react58.useMemo)(
|
|
6056
6068
|
() => ({
|
|
6057
6069
|
addListener: (value2, listener) => listeners.current.set(value2, listener),
|
|
6058
6070
|
removeListener: (value2) => listeners.current.delete(value2)
|
|
6059
6071
|
}),
|
|
6060
6072
|
[]
|
|
6061
6073
|
);
|
|
6062
|
-
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(
|
|
6063
6075
|
SelectElement,
|
|
6064
6076
|
{
|
|
6065
6077
|
id,
|
|
6066
6078
|
$flex: flex,
|
|
6067
6079
|
value,
|
|
6068
|
-
onChange: (0,
|
|
6080
|
+
onChange: (0, import_react58.useCallback)(
|
|
6069
6081
|
(event) => listeners.current.get(event.target.value)?.(),
|
|
6070
6082
|
[listeners]
|
|
6071
6083
|
),
|
|
6072
6084
|
onPointerDown: (event) => event.stopPropagation()
|
|
6073
6085
|
},
|
|
6074
6086
|
optionElements
|
|
6075
|
-
)), label && /* @__PURE__ */
|
|
6087
|
+
)), label && /* @__PURE__ */ import_react58.default.createElement(SelectLabel, { htmlFor: id }, label));
|
|
6076
6088
|
});
|
|
6077
6089
|
|
|
6078
6090
|
// src/components/SelectMenu.tsx
|
|
6079
6091
|
var import_noya_icons6 = require("@noya-app/noya-icons");
|
|
6080
6092
|
var Select3 = __toESM(require("@radix-ui/react-select"));
|
|
6081
|
-
var
|
|
6093
|
+
var import_react59 = __toESM(require("react"));
|
|
6082
6094
|
var import_styled_components33 = require("styled-components");
|
|
6083
|
-
var SelectMenu = (0,
|
|
6095
|
+
var SelectMenu = (0, import_react59.memo)(function SelectMenu2({
|
|
6084
6096
|
id,
|
|
6085
6097
|
style: style3,
|
|
6086
6098
|
className,
|
|
@@ -6093,23 +6105,23 @@ var SelectMenu = (0, import_react58.memo)(function SelectMenu2({
|
|
|
6093
6105
|
(item) => typeof item !== "string" && item.value === value
|
|
6094
6106
|
);
|
|
6095
6107
|
const icon = selectedItem?.icon;
|
|
6096
|
-
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) => {
|
|
6097
6109
|
if (typeof menuItem === "string") {
|
|
6098
|
-
return /* @__PURE__ */
|
|
6110
|
+
return /* @__PURE__ */ import_react59.default.createElement(StyledSeparator, null);
|
|
6099
6111
|
}
|
|
6100
6112
|
const value2 = menuItem.value ?? "";
|
|
6101
|
-
return /* @__PURE__ */
|
|
6113
|
+
return /* @__PURE__ */ import_react59.default.createElement(SelectItem, { key: value2, value: value2, icon: menuItem.icon }, menuItem.title ?? value2);
|
|
6102
6114
|
})))));
|
|
6103
6115
|
});
|
|
6104
6116
|
var SelectContent = (0, import_styled_components33.styled)(Select3.Content)(styles.contentStyle);
|
|
6105
6117
|
var SelectViewport = (0, import_styled_components33.styled)(Select3.Viewport)({});
|
|
6106
|
-
var SelectItem =
|
|
6118
|
+
var SelectItem = import_react59.default.forwardRef(
|
|
6107
6119
|
({
|
|
6108
6120
|
children,
|
|
6109
6121
|
icon,
|
|
6110
6122
|
...props
|
|
6111
6123
|
}, forwardedRef) => {
|
|
6112
|
-
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));
|
|
6113
6125
|
}
|
|
6114
6126
|
);
|
|
6115
6127
|
var StyledItem2 = (0, import_styled_components33.styled)(Select3.Item)(styles.itemStyle);
|
|
@@ -6117,7 +6129,7 @@ var StyledSeparator = (0, import_styled_components33.styled)(Select3.Separator)(
|
|
|
6117
6129
|
|
|
6118
6130
|
// src/components/Slider.tsx
|
|
6119
6131
|
var RadixSlider = __toESM(require("@radix-ui/react-slider"));
|
|
6120
|
-
var
|
|
6132
|
+
var import_react60 = __toESM(require("react"));
|
|
6121
6133
|
var import_styled_components34 = __toESM(require("styled-components"));
|
|
6122
6134
|
var StyledSlider = (0, import_styled_components34.default)(RadixSlider.Root)({
|
|
6123
6135
|
flex: "1",
|
|
@@ -6158,17 +6170,17 @@ var Slider = function Slider2({
|
|
|
6158
6170
|
min,
|
|
6159
6171
|
max
|
|
6160
6172
|
}) {
|
|
6161
|
-
const arrayValue = (0,
|
|
6173
|
+
const arrayValue = (0, import_react60.useMemo)(
|
|
6162
6174
|
() => [Math.min(Math.max(value, min), max)],
|
|
6163
6175
|
[value, min, max]
|
|
6164
6176
|
);
|
|
6165
|
-
const handleValueChange = (0,
|
|
6177
|
+
const handleValueChange = (0, import_react60.useCallback)(
|
|
6166
6178
|
(arrayValue2) => {
|
|
6167
6179
|
onValueChange(arrayValue2[0]);
|
|
6168
6180
|
},
|
|
6169
6181
|
[onValueChange]
|
|
6170
6182
|
);
|
|
6171
|
-
return /* @__PURE__ */
|
|
6183
|
+
return /* @__PURE__ */ import_react60.default.createElement(
|
|
6172
6184
|
StyledSlider,
|
|
6173
6185
|
{
|
|
6174
6186
|
min,
|
|
@@ -6177,14 +6189,14 @@ var Slider = function Slider2({
|
|
|
6177
6189
|
value: arrayValue,
|
|
6178
6190
|
onValueChange: handleValueChange
|
|
6179
6191
|
},
|
|
6180
|
-
/* @__PURE__ */
|
|
6181
|
-
/* @__PURE__ */
|
|
6192
|
+
/* @__PURE__ */ import_react60.default.createElement(StyledTrack, null, /* @__PURE__ */ import_react60.default.createElement(StyledRange, null)),
|
|
6193
|
+
/* @__PURE__ */ import_react60.default.createElement(StyledThumb2, null)
|
|
6182
6194
|
);
|
|
6183
6195
|
};
|
|
6184
6196
|
|
|
6185
6197
|
// src/components/Switch.tsx
|
|
6186
6198
|
var SwitchPrimitive = __toESM(require("@radix-ui/react-switch"));
|
|
6187
|
-
var
|
|
6199
|
+
var import_react61 = __toESM(require("react"));
|
|
6188
6200
|
var import_styled_components35 = __toESM(require("styled-components"));
|
|
6189
6201
|
var SwitchRoot = (0, import_styled_components35.default)(SwitchPrimitive.Root)(({ theme, $colorScheme }) => ({
|
|
6190
6202
|
all: "unset",
|
|
@@ -6219,7 +6231,7 @@ var Switch = function Switch2({
|
|
|
6219
6231
|
onChange,
|
|
6220
6232
|
colorScheme = "normal"
|
|
6221
6233
|
}) {
|
|
6222
|
-
return /* @__PURE__ */
|
|
6234
|
+
return /* @__PURE__ */ import_react61.default.createElement(
|
|
6223
6235
|
SwitchRoot,
|
|
6224
6236
|
{
|
|
6225
6237
|
$colorScheme: colorScheme,
|
|
@@ -6228,62 +6240,62 @@ var Switch = function Switch2({
|
|
|
6228
6240
|
onChange(newValue);
|
|
6229
6241
|
}
|
|
6230
6242
|
},
|
|
6231
|
-
/* @__PURE__ */
|
|
6243
|
+
/* @__PURE__ */ import_react61.default.createElement(SwitchThumb, null)
|
|
6232
6244
|
);
|
|
6233
6245
|
};
|
|
6234
6246
|
|
|
6235
6247
|
// src/components/TreeView.tsx
|
|
6236
|
-
var
|
|
6237
|
-
var TreeRow = (0,
|
|
6248
|
+
var import_react62 = __toESM(require("react"));
|
|
6249
|
+
var TreeRow = (0, import_react62.forwardRef)(function TreeRow2({
|
|
6238
6250
|
icon,
|
|
6239
6251
|
expanded,
|
|
6240
6252
|
onClickChevron,
|
|
6241
6253
|
children,
|
|
6242
6254
|
...rest
|
|
6243
6255
|
}, forwardedRef) {
|
|
6244
|
-
const { expandable } = (0,
|
|
6245
|
-
const handleClickChevron = (0,
|
|
6256
|
+
const { expandable } = (0, import_react62.useContext)(ListView.RowContext);
|
|
6257
|
+
const handleClickChevron = (0, import_react62.useCallback)(
|
|
6246
6258
|
(event) => {
|
|
6247
6259
|
event.stopPropagation();
|
|
6248
6260
|
onClickChevron?.({ altKey: event.altKey });
|
|
6249
6261
|
},
|
|
6250
6262
|
[onClickChevron]
|
|
6251
6263
|
);
|
|
6252
|
-
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(
|
|
6253
6265
|
IconButton,
|
|
6254
6266
|
{
|
|
6255
6267
|
iconName: expanded ? "ChevronDownIcon2" : "ChevronRightIcon2",
|
|
6256
6268
|
onClick: handleClickChevron,
|
|
6257
6269
|
selected: rest.selected
|
|
6258
6270
|
}
|
|
6259
|
-
), /* @__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);
|
|
6260
6272
|
});
|
|
6261
6273
|
var TreeView;
|
|
6262
6274
|
((TreeView2) => {
|
|
6263
6275
|
TreeView2.Root = ListView.Root;
|
|
6264
6276
|
TreeView2.RowTitle = ListView.RowTitle;
|
|
6265
6277
|
TreeView2.EditableRowTitle = ListView.EditableRowTitle;
|
|
6266
|
-
TreeView2.Row = (0,
|
|
6278
|
+
TreeView2.Row = (0, import_react62.memo)(TreeRow);
|
|
6267
6279
|
})(TreeView || (TreeView = {}));
|
|
6268
6280
|
|
|
6269
6281
|
// src/components/WorkspaceLayout.tsx
|
|
6270
6282
|
var import_noya_keymap5 = require("@noya-app/noya-keymap");
|
|
6271
|
-
var
|
|
6283
|
+
var import_react65 = __toESM(require("react"));
|
|
6272
6284
|
var import_react_resizable_panels = require("react-resizable-panels");
|
|
6273
6285
|
|
|
6274
6286
|
// src/hooks/usePreservePanelSize.tsx
|
|
6275
|
-
var
|
|
6287
|
+
var import_react64 = require("react");
|
|
6276
6288
|
|
|
6277
6289
|
// src/hooks/useWindowSize.tsx
|
|
6278
|
-
var
|
|
6290
|
+
var import_react63 = require("react");
|
|
6279
6291
|
function useWindowSize() {
|
|
6280
|
-
const [size2, setSize] = (0,
|
|
6292
|
+
const [size2, setSize] = (0, import_react63.useState)(
|
|
6281
6293
|
typeof window === "undefined" ? { width: 0, height: 0 } : {
|
|
6282
6294
|
width: window.innerWidth,
|
|
6283
6295
|
height: window.innerHeight
|
|
6284
6296
|
}
|
|
6285
6297
|
);
|
|
6286
|
-
(0,
|
|
6298
|
+
(0, import_react63.useEffect)(() => {
|
|
6287
6299
|
const handleResize = () => setSize({
|
|
6288
6300
|
width: window.innerWidth,
|
|
6289
6301
|
height: window.innerHeight
|
|
@@ -6301,8 +6313,8 @@ var RIGHT_SIDEBAR_ID = "editor-right-sidebar";
|
|
|
6301
6313
|
var CONTENT_AREA_ID = "editor-content-area";
|
|
6302
6314
|
function usePreservePanelSize(panelGroupRef, setPanelLayoutState) {
|
|
6303
6315
|
const windowSize = useWindowSize();
|
|
6304
|
-
const layoutRef = (0,
|
|
6305
|
-
(0,
|
|
6316
|
+
const layoutRef = (0, import_react64.useRef)();
|
|
6317
|
+
(0, import_react64.useLayoutEffect)(() => {
|
|
6306
6318
|
const panelGroup = document.querySelector(
|
|
6307
6319
|
`[data-panel-group-id="${EDITOR_PANEL_GROUP_ID}"]`
|
|
6308
6320
|
);
|
|
@@ -6345,7 +6357,7 @@ function usePreservePanelSize(panelGroupRef, setPanelLayoutState) {
|
|
|
6345
6357
|
panelGroupObserver.disconnect();
|
|
6346
6358
|
};
|
|
6347
6359
|
}, [panelGroupRef, setPanelLayoutState]);
|
|
6348
|
-
(0,
|
|
6360
|
+
(0, import_react64.useLayoutEffect)(() => {
|
|
6349
6361
|
if (!layoutRef.current)
|
|
6350
6362
|
return;
|
|
6351
6363
|
const {
|
|
@@ -6405,7 +6417,7 @@ function usePreservePanelSize(panelGroupRef, setPanelLayoutState) {
|
|
|
6405
6417
|
}
|
|
6406
6418
|
|
|
6407
6419
|
// src/components/WorkspaceLayout.tsx
|
|
6408
|
-
var WorkspaceLayout = (0,
|
|
6420
|
+
var WorkspaceLayout = (0, import_react65.forwardRef)(function WorkspaceLayout2({
|
|
6409
6421
|
autoSavePrefix,
|
|
6410
6422
|
leftSidebarContent: leftPanelContent,
|
|
6411
6423
|
children: centerPanelContent,
|
|
@@ -6430,12 +6442,12 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
|
|
|
6430
6442
|
const rightSidebarPercentage = getPercentage(rightSidebarInitialSize);
|
|
6431
6443
|
const leftSidebarMinPercentage = leftSidebarMinSize !== void 0 ? getPercentage(leftSidebarMinSize) : void 0;
|
|
6432
6444
|
const rightSidebarMinPercentage = rightSidebarMinSize !== void 0 ? getPercentage(rightSidebarMinSize) : void 0;
|
|
6433
|
-
const panelGroupRef = (0,
|
|
6434
|
-
const leftSidebarRef = (0,
|
|
6435
|
-
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);
|
|
6436
6448
|
usePreservePanelSize(panelGroupRef, onChangeLayoutState);
|
|
6437
6449
|
const theme = useDesignSystemTheme();
|
|
6438
|
-
(0,
|
|
6450
|
+
(0, import_react65.useImperativeHandle)(forwardedRef, () => ({
|
|
6439
6451
|
setLeftSidebarExpanded: (expanded) => {
|
|
6440
6452
|
if (expanded) {
|
|
6441
6453
|
leftSidebarRef.current?.expand();
|
|
@@ -6492,7 +6504,7 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
|
|
|
6492
6504
|
}
|
|
6493
6505
|
});
|
|
6494
6506
|
const centerPanelPercentage = 100 - (leftPanelContent ? leftSidebarPercentage : 0) - (rightPanelContent ? rightSidebarPercentage : 0);
|
|
6495
|
-
return /* @__PURE__ */
|
|
6507
|
+
return /* @__PURE__ */ import_react65.default.createElement(
|
|
6496
6508
|
"div",
|
|
6497
6509
|
{
|
|
6498
6510
|
id,
|
|
@@ -6504,7 +6516,7 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
|
|
|
6504
6516
|
...style3
|
|
6505
6517
|
}
|
|
6506
6518
|
},
|
|
6507
|
-
/* @__PURE__ */
|
|
6519
|
+
/* @__PURE__ */ import_react65.default.createElement(
|
|
6508
6520
|
import_react_resizable_panels.PanelGroup,
|
|
6509
6521
|
{
|
|
6510
6522
|
ref: panelGroupRef,
|
|
@@ -6513,7 +6525,7 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
|
|
|
6513
6525
|
autoSaveId: autoSavePrefix ? `${autoSavePrefix}--${EDITOR_PANEL_GROUP_ID}` : void 0,
|
|
6514
6526
|
style: { flex: "1" }
|
|
6515
6527
|
},
|
|
6516
|
-
hasLeftSidebar && /* @__PURE__ */
|
|
6528
|
+
hasLeftSidebar && /* @__PURE__ */ import_react65.default.createElement(import_react65.default.Fragment, null, /* @__PURE__ */ import_react65.default.createElement(
|
|
6517
6529
|
import_react_resizable_panels.Panel,
|
|
6518
6530
|
{
|
|
6519
6531
|
id: LEFT_SIDEBAR_ID,
|
|
@@ -6530,7 +6542,7 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
|
|
|
6530
6542
|
}
|
|
6531
6543
|
},
|
|
6532
6544
|
leftPanelContent
|
|
6533
|
-
), /* @__PURE__ */
|
|
6545
|
+
), /* @__PURE__ */ import_react65.default.createElement(
|
|
6534
6546
|
import_react_resizable_panels.PanelResizeHandle,
|
|
6535
6547
|
{
|
|
6536
6548
|
style: {
|
|
@@ -6541,7 +6553,7 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
|
|
|
6541
6553
|
}
|
|
6542
6554
|
}
|
|
6543
6555
|
)),
|
|
6544
|
-
/* @__PURE__ */
|
|
6556
|
+
/* @__PURE__ */ import_react65.default.createElement(
|
|
6545
6557
|
import_react_resizable_panels.Panel,
|
|
6546
6558
|
{
|
|
6547
6559
|
id: CONTENT_AREA_ID,
|
|
@@ -6556,7 +6568,7 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
|
|
|
6556
6568
|
},
|
|
6557
6569
|
centerPanelContent
|
|
6558
6570
|
),
|
|
6559
|
-
hasRightSidebar && /* @__PURE__ */
|
|
6571
|
+
hasRightSidebar && /* @__PURE__ */ import_react65.default.createElement(import_react65.default.Fragment, null, /* @__PURE__ */ import_react65.default.createElement(
|
|
6560
6572
|
import_react_resizable_panels.PanelResizeHandle,
|
|
6561
6573
|
{
|
|
6562
6574
|
style: {
|
|
@@ -6566,7 +6578,7 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
|
|
|
6566
6578
|
backgroundColor: theme.colors.divider
|
|
6567
6579
|
}
|
|
6568
6580
|
}
|
|
6569
|
-
), /* @__PURE__ */
|
|
6581
|
+
), /* @__PURE__ */ import_react65.default.createElement(
|
|
6570
6582
|
import_react_resizable_panels.Panel,
|
|
6571
6583
|
{
|
|
6572
6584
|
id: RIGHT_SIDEBAR_ID,
|
|
@@ -6629,7 +6641,7 @@ var SUPPORTED_CANVAS_UPLOAD_TYPES = [
|
|
|
6629
6641
|
|
|
6630
6642
|
// src/components/ArrayController.tsx
|
|
6631
6643
|
var import_noya_utils11 = require("@noya-app/noya-utils");
|
|
6632
|
-
var
|
|
6644
|
+
var import_react67 = __toESM(require("react"));
|
|
6633
6645
|
var import_styled_components37 = __toESM(require("styled-components"));
|
|
6634
6646
|
|
|
6635
6647
|
// src/components/InspectorPrimitives.tsx
|
|
@@ -6648,7 +6660,7 @@ __export(InspectorPrimitives_exports, {
|
|
|
6648
6660
|
Title: () => Title3,
|
|
6649
6661
|
VerticalSeparator: () => VerticalSeparator
|
|
6650
6662
|
});
|
|
6651
|
-
var
|
|
6663
|
+
var import_react66 = __toESM(require("react"));
|
|
6652
6664
|
var import_styled_components36 = __toESM(require("styled-components"));
|
|
6653
6665
|
var Section = import_styled_components36.default.div(({ theme, $padding = "10px", $gap }) => ({
|
|
6654
6666
|
flex: "0 0 auto",
|
|
@@ -6695,8 +6707,8 @@ var Checkbox = import_styled_components36.default.input(({ theme }) => ({
|
|
|
6695
6707
|
var Text3 = import_styled_components36.default.span(({ theme }) => ({
|
|
6696
6708
|
...theme.textStyles.small
|
|
6697
6709
|
}));
|
|
6698
|
-
var VerticalSeparator = () => /* @__PURE__ */
|
|
6699
|
-
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 });
|
|
6700
6712
|
var SliderRowLabel = import_styled_components36.default.span(({ theme }) => ({
|
|
6701
6713
|
...theme.textStyles.small,
|
|
6702
6714
|
color: theme.colors.textMuted,
|
|
@@ -6716,7 +6728,7 @@ var RowLabel = import_styled_components36.default.span(({ theme, $textStyle }) =
|
|
|
6716
6728
|
// Button height
|
|
6717
6729
|
alignItems: "center"
|
|
6718
6730
|
}));
|
|
6719
|
-
var LabeledRow = (0,
|
|
6731
|
+
var LabeledRow = (0, import_react66.memo)(function LabeledRow2({
|
|
6720
6732
|
id,
|
|
6721
6733
|
children,
|
|
6722
6734
|
label,
|
|
@@ -6724,13 +6736,13 @@ var LabeledRow = (0, import_react65.memo)(function LabeledRow2({
|
|
|
6724
6736
|
gap,
|
|
6725
6737
|
right
|
|
6726
6738
|
}) {
|
|
6727
|
-
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)));
|
|
6728
6740
|
});
|
|
6729
|
-
var LabeledSliderRow = (0,
|
|
6741
|
+
var LabeledSliderRow = (0, import_react66.memo)(function LabeledRow3({
|
|
6730
6742
|
children,
|
|
6731
6743
|
label
|
|
6732
6744
|
}) {
|
|
6733
|
-
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)));
|
|
6734
6746
|
});
|
|
6735
6747
|
|
|
6736
6748
|
// src/components/ArrayController.tsx
|
|
@@ -6743,7 +6755,7 @@ var ElementRow = import_styled_components37.default.div({
|
|
|
6743
6755
|
var ItemContainer2 = import_styled_components37.default.div({
|
|
6744
6756
|
position: "relative"
|
|
6745
6757
|
});
|
|
6746
|
-
var ArrayController = (0,
|
|
6758
|
+
var ArrayController = (0, import_react67.memo)(function ArrayController2({
|
|
6747
6759
|
id,
|
|
6748
6760
|
items,
|
|
6749
6761
|
title,
|
|
@@ -6761,12 +6773,12 @@ var ArrayController = (0, import_react66.memo)(function ArrayController2({
|
|
|
6761
6773
|
}) {
|
|
6762
6774
|
const iconColor = (0, import_styled_components37.useTheme)().colors.icon;
|
|
6763
6775
|
const primaryLightColor = (0, import_styled_components37.useTheme)().colors.primaryLight;
|
|
6764
|
-
const keys = (0,
|
|
6776
|
+
const keys = (0, import_react67.useMemo)(
|
|
6765
6777
|
() => items.map((item, index) => getKey?.(item) ?? index.toString()),
|
|
6766
6778
|
[getKey, items]
|
|
6767
6779
|
);
|
|
6768
6780
|
const indexes = reversed ? (0, import_noya_utils11.range)(0, items.length).reverse() : (0, import_noya_utils11.range)(0, items.length);
|
|
6769
|
-
const handleMoveItem = (0,
|
|
6781
|
+
const handleMoveItem = (0, import_react67.useCallback)(
|
|
6770
6782
|
(sourceIndex, destinationIndex, position) => {
|
|
6771
6783
|
if (reversed) {
|
|
6772
6784
|
if (position === "above") {
|
|
@@ -6783,11 +6795,11 @@ var ArrayController = (0, import_react66.memo)(function ArrayController2({
|
|
|
6783
6795
|
[onMoveItem, reversed]
|
|
6784
6796
|
);
|
|
6785
6797
|
const renderRow = (index) => {
|
|
6786
|
-
return /* @__PURE__ */
|
|
6798
|
+
return /* @__PURE__ */ import_react67.default.createElement(ElementRow, { key: keys[index] }, renderItem({ item: items[index], index }));
|
|
6787
6799
|
};
|
|
6788
|
-
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(
|
|
6789
6801
|
[
|
|
6790
|
-
onClickTrash && /* @__PURE__ */
|
|
6802
|
+
onClickTrash && /* @__PURE__ */ import_react67.default.createElement(
|
|
6791
6803
|
IconButton,
|
|
6792
6804
|
{
|
|
6793
6805
|
id: `${id}-trash`,
|
|
@@ -6796,7 +6808,7 @@ var ArrayController = (0, import_react66.memo)(function ArrayController2({
|
|
|
6796
6808
|
onClick: onClickTrash
|
|
6797
6809
|
}
|
|
6798
6810
|
),
|
|
6799
|
-
onClickExpand && /* @__PURE__ */
|
|
6811
|
+
onClickExpand && /* @__PURE__ */ import_react67.default.createElement(
|
|
6800
6812
|
IconButton,
|
|
6801
6813
|
{
|
|
6802
6814
|
id: `${id}-gear`,
|
|
@@ -6805,7 +6817,7 @@ var ArrayController = (0, import_react66.memo)(function ArrayController2({
|
|
|
6805
6817
|
onClick: onClickExpand
|
|
6806
6818
|
}
|
|
6807
6819
|
),
|
|
6808
|
-
onClickPlus && /* @__PURE__ */
|
|
6820
|
+
onClickPlus && /* @__PURE__ */ import_react67.default.createElement(
|
|
6809
6821
|
IconButton,
|
|
6810
6822
|
{
|
|
6811
6823
|
id: `${id}-add`,
|
|
@@ -6815,15 +6827,15 @@ var ArrayController = (0, import_react66.memo)(function ArrayController2({
|
|
|
6815
6827
|
}
|
|
6816
6828
|
)
|
|
6817
6829
|
],
|
|
6818
|
-
/* @__PURE__ */
|
|
6819
|
-
)), /* @__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(
|
|
6820
6832
|
Sortable.Root,
|
|
6821
6833
|
{
|
|
6822
6834
|
keys,
|
|
6823
6835
|
renderOverlay: renderRow,
|
|
6824
6836
|
onMoveItem: handleMoveItem
|
|
6825
6837
|
},
|
|
6826
|
-
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(
|
|
6827
6839
|
ListView.DragIndicator,
|
|
6828
6840
|
{
|
|
6829
6841
|
$gap: 0,
|
|
@@ -6837,11 +6849,11 @@ var ArrayController = (0, import_react66.memo)(function ArrayController2({
|
|
|
6837
6849
|
|
|
6838
6850
|
// src/components/DimensionInput.tsx
|
|
6839
6851
|
var import_noya_utils12 = require("@noya-app/noya-utils");
|
|
6840
|
-
var
|
|
6852
|
+
var import_react68 = __toESM(require("react"));
|
|
6841
6853
|
function getNewValue(value, mode, delta) {
|
|
6842
6854
|
return delta === void 0 ? value : mode === "replace" ? delta : value + delta;
|
|
6843
6855
|
}
|
|
6844
|
-
var DimensionInput = (0,
|
|
6856
|
+
var DimensionInput = (0, import_react68.memo)(function DimensionInput2({
|
|
6845
6857
|
id,
|
|
6846
6858
|
value,
|
|
6847
6859
|
onSetValue,
|
|
@@ -6851,15 +6863,15 @@ var DimensionInput = (0, import_react67.memo)(function DimensionInput2({
|
|
|
6851
6863
|
disabled,
|
|
6852
6864
|
trigger = "submit"
|
|
6853
6865
|
}) {
|
|
6854
|
-
const handleNudgeValue = (0,
|
|
6866
|
+
const handleNudgeValue = (0, import_react68.useCallback)(
|
|
6855
6867
|
(value2) => onSetValue(value2, "adjust"),
|
|
6856
6868
|
[onSetValue]
|
|
6857
6869
|
);
|
|
6858
|
-
const handleSetValue = (0,
|
|
6870
|
+
const handleSetValue = (0, import_react68.useCallback)(
|
|
6859
6871
|
(value2) => onSetValue(value2, "replace"),
|
|
6860
6872
|
[onSetValue]
|
|
6861
6873
|
);
|
|
6862
|
-
return /* @__PURE__ */
|
|
6874
|
+
return /* @__PURE__ */ import_react68.default.createElement(InputField.Root, { id, width: size2 }, /* @__PURE__ */ import_react68.default.createElement(
|
|
6863
6875
|
InputField.NumberInput,
|
|
6864
6876
|
{
|
|
6865
6877
|
value: value === void 0 ? value : (0, import_noya_utils12.round)(value, 2),
|
|
@@ -6868,7 +6880,7 @@ var DimensionInput = (0, import_react67.memo)(function DimensionInput2({
|
|
|
6868
6880
|
disabled,
|
|
6869
6881
|
...trigger === "change" ? { onChange: handleSetValue } : { onSubmit: handleSetValue }
|
|
6870
6882
|
}
|
|
6871
|
-
), label && /* @__PURE__ */
|
|
6883
|
+
), label && /* @__PURE__ */ import_react68.default.createElement(InputField.Label, null, label));
|
|
6872
6884
|
});
|
|
6873
6885
|
// Annotate the CommonJS export names for ESM import in node:
|
|
6874
6886
|
0 && (module.exports = {
|