@noya-app/noya-designsystem 0.1.23 → 0.1.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +9 -9
- package/CHANGELOG.md +12 -0
- package/dist/index.d.mts +12 -6
- package/dist/index.d.ts +12 -6
- package/dist/index.js +692 -603
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +357 -268
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/components/Chip.tsx +14 -9
- package/src/components/ContextMenu.tsx +2 -1
- package/src/components/DropdownMenu.tsx +3 -2
- package/src/components/IconButton.tsx +2 -2
- package/src/components/Icons.tsx +18 -0
- package/src/components/InputField.tsx +34 -0
- package/src/components/ListView.tsx +33 -8
- package/src/components/SelectMenu.tsx +34 -4
- package/src/components/Switch.tsx +3 -0
- 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,18 +2303,48 @@ 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
|
}
|
|
2309
|
+
var PrimitiveInputField = import_styled_components13.default.input(({ theme, readOnly, disabled }) => {
|
|
2310
|
+
return {
|
|
2311
|
+
// placeholder
|
|
2312
|
+
"&::placeholder": {
|
|
2313
|
+
color: theme.colors.textDisabled
|
|
2314
|
+
},
|
|
2315
|
+
...theme.textStyles.small,
|
|
2316
|
+
color: readOnly ? theme.colors.textMuted : disabled ? theme.colors.textDisabled : theme.colors.text,
|
|
2317
|
+
width: "0px",
|
|
2318
|
+
// Reset intrinsic width
|
|
2319
|
+
flex: "1 1 0px",
|
|
2320
|
+
position: "relative",
|
|
2321
|
+
border: "0",
|
|
2322
|
+
outline: "none",
|
|
2323
|
+
minWidth: "0",
|
|
2324
|
+
alignSelf: "stretch",
|
|
2325
|
+
borderRadius: "4px",
|
|
2326
|
+
paddingTop: "4px",
|
|
2327
|
+
paddingBottom: "4px",
|
|
2328
|
+
paddingLeft: "6px",
|
|
2329
|
+
paddingRight: "6px",
|
|
2330
|
+
background: theme.colors.inputBackground,
|
|
2331
|
+
"&:focus": {
|
|
2332
|
+
boxShadow: `0 0 0 2px ${theme.colors.primary}`
|
|
2333
|
+
},
|
|
2334
|
+
userSelect: "all",
|
|
2335
|
+
pointerEvents: "all"
|
|
2336
|
+
};
|
|
2337
|
+
});
|
|
2297
2338
|
var InputField;
|
|
2298
2339
|
((InputField2) => {
|
|
2299
|
-
InputField2.Root = (0,
|
|
2300
|
-
InputField2.Input = (0,
|
|
2301
|
-
InputField2.Typeahead = (0,
|
|
2302
|
-
InputField2.NumberInput = (0,
|
|
2340
|
+
InputField2.Root = (0, import_react33.memo)(InputFieldRoot);
|
|
2341
|
+
InputField2.Input = (0, import_react33.memo)(InputFieldInput);
|
|
2342
|
+
InputField2.Typeahead = (0, import_react33.memo)(InputFieldTypeahead);
|
|
2343
|
+
InputField2.NumberInput = (0, import_react33.memo)(InputFieldNumberInput);
|
|
2303
2344
|
InputField2.DropdownMenu = InputFieldDropdownMenu;
|
|
2304
2345
|
InputField2.Button = InputFieldButton;
|
|
2305
2346
|
InputField2.Label = InputFieldLabel;
|
|
2347
|
+
InputField2.PrimitiveElement = PrimitiveInputField;
|
|
2306
2348
|
})(InputField || (InputField = {}));
|
|
2307
2349
|
|
|
2308
2350
|
// src/contexts/DialogContext.tsx
|
|
@@ -2323,24 +2365,24 @@ function createDeferredPromise() {
|
|
|
2323
2365
|
});
|
|
2324
2366
|
return { promise, resolve, reject };
|
|
2325
2367
|
}
|
|
2326
|
-
var DialogContext = (0,
|
|
2368
|
+
var DialogContext = (0, import_react34.createContext)(void 0);
|
|
2327
2369
|
var DialogProvider = function DialogProvider2({
|
|
2328
2370
|
children
|
|
2329
2371
|
}) {
|
|
2330
|
-
const [contents, setContents] = (0,
|
|
2372
|
+
const [contents, setContents] = (0, import_react34.useState)();
|
|
2331
2373
|
const isOpen = !!contents;
|
|
2332
|
-
const close = (0,
|
|
2374
|
+
const close = (0, import_react34.useCallback)(() => {
|
|
2333
2375
|
if (!contents)
|
|
2334
2376
|
return;
|
|
2335
2377
|
contents.resolve(void 0);
|
|
2336
2378
|
}, [contents]);
|
|
2337
|
-
const submit = (0,
|
|
2379
|
+
const submit = (0, import_react34.useCallback)(() => {
|
|
2338
2380
|
if (!contents || !contents.inputValue)
|
|
2339
2381
|
return;
|
|
2340
2382
|
contents.resolve(contents.inputValue);
|
|
2341
2383
|
setContents(void 0);
|
|
2342
2384
|
}, [contents]);
|
|
2343
|
-
const open = (0,
|
|
2385
|
+
const open = (0, import_react34.useCallback)(
|
|
2344
2386
|
(title, inputValue = "") => {
|
|
2345
2387
|
const { promise, resolve } = createDeferredPromise();
|
|
2346
2388
|
setContents({
|
|
@@ -2355,7 +2397,7 @@ var DialogProvider = function DialogProvider2({
|
|
|
2355
2397
|
},
|
|
2356
2398
|
[]
|
|
2357
2399
|
);
|
|
2358
|
-
const handleKeyDown = (0,
|
|
2400
|
+
const handleKeyDown = (0, import_react34.useCallback)(
|
|
2359
2401
|
(event) => {
|
|
2360
2402
|
if (event.key !== "Enter")
|
|
2361
2403
|
return;
|
|
@@ -2365,29 +2407,29 @@ var DialogProvider = function DialogProvider2({
|
|
|
2365
2407
|
},
|
|
2366
2408
|
[submit]
|
|
2367
2409
|
);
|
|
2368
|
-
const inputRef = (0,
|
|
2369
|
-
const dialogRef = (0,
|
|
2370
|
-
const containsElement = (0,
|
|
2410
|
+
const inputRef = (0, import_react34.useRef)(null);
|
|
2411
|
+
const dialogRef = (0, import_react34.useRef)(null);
|
|
2412
|
+
const containsElement = (0, import_react34.useCallback)((element) => {
|
|
2371
2413
|
if (!dialogRef.current)
|
|
2372
2414
|
return false;
|
|
2373
2415
|
return dialogRef.current.containsElement(element);
|
|
2374
2416
|
}, []);
|
|
2375
|
-
return /* @__PURE__ */
|
|
2417
|
+
return /* @__PURE__ */ import_react34.default.createElement(import_react34.default.Fragment, null, /* @__PURE__ */ import_react34.default.createElement(
|
|
2376
2418
|
DialogContext.Provider,
|
|
2377
2419
|
{
|
|
2378
|
-
value: (0,
|
|
2420
|
+
value: (0, import_react34.useMemo)(
|
|
2379
2421
|
() => ({ openInputDialog: open, containsElement }),
|
|
2380
2422
|
[containsElement, open]
|
|
2381
2423
|
)
|
|
2382
2424
|
},
|
|
2383
2425
|
children
|
|
2384
|
-
), /* @__PURE__ */
|
|
2426
|
+
), /* @__PURE__ */ import_react34.default.createElement(
|
|
2385
2427
|
Dialog,
|
|
2386
2428
|
{
|
|
2387
2429
|
ref: dialogRef,
|
|
2388
2430
|
title: contents?.title,
|
|
2389
2431
|
open: isOpen,
|
|
2390
|
-
onOpenChange: (0,
|
|
2432
|
+
onOpenChange: (0, import_react34.useCallback)(
|
|
2391
2433
|
(isOpen2) => {
|
|
2392
2434
|
if (!isOpen2) {
|
|
2393
2435
|
close();
|
|
@@ -2395,14 +2437,14 @@ var DialogProvider = function DialogProvider2({
|
|
|
2395
2437
|
},
|
|
2396
2438
|
[close]
|
|
2397
2439
|
),
|
|
2398
|
-
onOpenAutoFocus: (0,
|
|
2440
|
+
onOpenAutoFocus: (0, import_react34.useCallback)((event) => {
|
|
2399
2441
|
event.stopPropagation();
|
|
2400
2442
|
event.preventDefault();
|
|
2401
2443
|
inputRef.current?.focus();
|
|
2402
2444
|
inputRef.current?.setSelectionRange(0, inputRef.current.value.length);
|
|
2403
2445
|
}, [])
|
|
2404
2446
|
},
|
|
2405
|
-
/* @__PURE__ */
|
|
2447
|
+
/* @__PURE__ */ import_react34.default.createElement(InputField.Root, null, /* @__PURE__ */ import_react34.default.createElement(
|
|
2406
2448
|
InputField.Input,
|
|
2407
2449
|
{
|
|
2408
2450
|
ref: inputRef,
|
|
@@ -2418,12 +2460,12 @@ var DialogProvider = function DialogProvider2({
|
|
|
2418
2460
|
onKeyDown: handleKeyDown
|
|
2419
2461
|
}
|
|
2420
2462
|
)),
|
|
2421
|
-
/* @__PURE__ */
|
|
2422
|
-
/* @__PURE__ */
|
|
2463
|
+
/* @__PURE__ */ import_react34.default.createElement(Spacer.Vertical, { size: 20 }),
|
|
2464
|
+
/* @__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
2465
|
));
|
|
2424
2466
|
};
|
|
2425
2467
|
function useDialog() {
|
|
2426
|
-
const value = (0,
|
|
2468
|
+
const value = (0, import_react34.useContext)(DialogContext);
|
|
2427
2469
|
if (!value) {
|
|
2428
2470
|
throw new Error("Missing DialogProvider");
|
|
2429
2471
|
}
|
|
@@ -2438,20 +2480,20 @@ function useDialogContainsElement() {
|
|
|
2438
2480
|
|
|
2439
2481
|
// src/contexts/FloatingWindowContext.tsx
|
|
2440
2482
|
var import_noya_utils5 = require("@noya-app/noya-utils");
|
|
2441
|
-
var
|
|
2483
|
+
var import_react35 = __toESM(require("react"));
|
|
2442
2484
|
var import_react_dom = require("react-dom");
|
|
2443
|
-
var FloatingWindowContext = (0,
|
|
2444
|
-
var CurrentWindowContext = (0,
|
|
2485
|
+
var FloatingWindowContext = (0, import_react35.createContext)(void 0);
|
|
2486
|
+
var CurrentWindowContext = (0, import_react35.createContext)(void 0);
|
|
2445
2487
|
var FloatingWindowProvider = ({
|
|
2446
2488
|
children
|
|
2447
2489
|
}) => {
|
|
2448
|
-
const [windows, setWindows] = (0,
|
|
2449
|
-
const contextValue = (0,
|
|
2490
|
+
const [windows, setWindows] = (0, import_react35.useState)({});
|
|
2491
|
+
const contextValue = (0, import_react35.useMemo)(() => {
|
|
2450
2492
|
const createWindow = (element) => {
|
|
2451
2493
|
const id = (0, import_noya_utils5.uuid)();
|
|
2452
2494
|
setWindows((windows2) => ({
|
|
2453
2495
|
...windows2,
|
|
2454
|
-
[id]: /* @__PURE__ */
|
|
2496
|
+
[id]: /* @__PURE__ */ import_react35.default.createElement(CurrentWindowContext.Provider, { value: { id } }, element)
|
|
2455
2497
|
}));
|
|
2456
2498
|
return id;
|
|
2457
2499
|
};
|
|
@@ -2463,12 +2505,12 @@ var FloatingWindowProvider = ({
|
|
|
2463
2505
|
};
|
|
2464
2506
|
return { createWindow, closeWindow };
|
|
2465
2507
|
}, []);
|
|
2466
|
-
return /* @__PURE__ */
|
|
2508
|
+
return /* @__PURE__ */ import_react35.default.createElement(FloatingWindowContext.Provider, { value: contextValue }, children, Object.entries(windows).map(
|
|
2467
2509
|
([id, element]) => (0, import_react_dom.createPortal)(element, document.body, id)
|
|
2468
2510
|
));
|
|
2469
2511
|
};
|
|
2470
2512
|
var useFloatingWindowManager = () => {
|
|
2471
|
-
const context = (0,
|
|
2513
|
+
const context = (0, import_react35.useContext)(FloatingWindowContext);
|
|
2472
2514
|
if (!context) {
|
|
2473
2515
|
throw new Error(
|
|
2474
2516
|
"useFloatingWindow must be used within a FloatingWindowProvider"
|
|
@@ -2477,7 +2519,7 @@ var useFloatingWindowManager = () => {
|
|
|
2477
2519
|
return context;
|
|
2478
2520
|
};
|
|
2479
2521
|
var useCurrentFloatingWindowInternal = () => {
|
|
2480
|
-
const context = (0,
|
|
2522
|
+
const context = (0, import_react35.useContext)(CurrentWindowContext);
|
|
2481
2523
|
if (!context) {
|
|
2482
2524
|
throw new Error("useCurrentWindow must be used within a FloatingWindow");
|
|
2483
2525
|
}
|
|
@@ -2485,7 +2527,7 @@ var useCurrentFloatingWindowInternal = () => {
|
|
|
2485
2527
|
};
|
|
2486
2528
|
|
|
2487
2529
|
// src/contexts/DesignSystemConfiguration.tsx
|
|
2488
|
-
var DesignSystemThemeProvider = (0,
|
|
2530
|
+
var DesignSystemThemeProvider = (0, import_react36.memo)(
|
|
2489
2531
|
function DesignSystemThemeProvider2({
|
|
2490
2532
|
children,
|
|
2491
2533
|
theme
|
|
@@ -2496,50 +2538,50 @@ var DesignSystemThemeProvider = (0, import_react35.memo)(
|
|
|
2496
2538
|
} catch (e) {
|
|
2497
2539
|
}
|
|
2498
2540
|
if (theme) {
|
|
2499
|
-
return /* @__PURE__ */
|
|
2541
|
+
return /* @__PURE__ */ import_react36.default.createElement(import_styled_components15.ThemeProvider, { theme }, children);
|
|
2500
2542
|
} else if (parentTheme) {
|
|
2501
2543
|
return children;
|
|
2502
2544
|
} else {
|
|
2503
|
-
return /* @__PURE__ */
|
|
2545
|
+
return /* @__PURE__ */ import_react36.default.createElement(import_styled_components15.ThemeProvider, { theme: light_exports }, children);
|
|
2504
2546
|
}
|
|
2505
2547
|
}
|
|
2506
2548
|
);
|
|
2507
|
-
var DesignSystemConfigurationContext = (0,
|
|
2549
|
+
var DesignSystemConfigurationContext = (0, import_react36.createContext)({
|
|
2508
2550
|
platform: "key"
|
|
2509
2551
|
});
|
|
2510
|
-
var DesignSystemConfigurationProvider = (0,
|
|
2552
|
+
var DesignSystemConfigurationProvider = (0, import_react36.memo)(
|
|
2511
2553
|
function DesignSystemConfigurationProvider2({
|
|
2512
2554
|
children,
|
|
2513
2555
|
theme,
|
|
2514
2556
|
platform
|
|
2515
2557
|
}) {
|
|
2516
|
-
const [internalPlatform, setInternalPlatform] = (0,
|
|
2558
|
+
const [internalPlatform, setInternalPlatform] = (0, import_react36.useState)(
|
|
2517
2559
|
platform ?? "key"
|
|
2518
2560
|
);
|
|
2519
|
-
(0,
|
|
2561
|
+
(0, import_react36.useEffect)(() => {
|
|
2520
2562
|
if (platform !== void 0)
|
|
2521
2563
|
return;
|
|
2522
2564
|
if (typeof navigator !== "undefined") {
|
|
2523
2565
|
setInternalPlatform((0, import_noya_keymap3.getCurrentPlatform)(navigator));
|
|
2524
2566
|
}
|
|
2525
2567
|
}, [platform]);
|
|
2526
|
-
const contextValue = (0,
|
|
2568
|
+
const contextValue = (0, import_react36.useMemo)(
|
|
2527
2569
|
() => ({ platform: platform ?? internalPlatform }),
|
|
2528
2570
|
[platform, internalPlatform]
|
|
2529
2571
|
);
|
|
2530
2572
|
const resolvedTheme = theme === "light" ? light_exports : theme === "dark" ? dark_exports : theme ?? light_exports;
|
|
2531
|
-
return /* @__PURE__ */
|
|
2573
|
+
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
2574
|
}
|
|
2533
2575
|
);
|
|
2534
2576
|
function useDesignSystemConfiguration() {
|
|
2535
|
-
return (0,
|
|
2577
|
+
return (0, import_react36.useContext)(DesignSystemConfigurationContext);
|
|
2536
2578
|
}
|
|
2537
2579
|
function useDesignSystemTheme() {
|
|
2538
2580
|
return (0, import_styled_components15.useTheme)();
|
|
2539
2581
|
}
|
|
2540
2582
|
|
|
2541
2583
|
// src/hooks/useHover.ts
|
|
2542
|
-
var
|
|
2584
|
+
var React22 = __toESM(require("react"));
|
|
2543
2585
|
var globalIgnoreEmulatedMouseEvents = false;
|
|
2544
2586
|
var hoverCount = 0;
|
|
2545
2587
|
function setGlobalIgnoreEmulatedMouseEvents() {
|
|
@@ -2569,13 +2611,13 @@ function setupGlobalTouchEvents() {
|
|
|
2569
2611
|
}
|
|
2570
2612
|
function useHover(props = {}) {
|
|
2571
2613
|
const { onHoverStart, onHoverChange, onHoverEnd, isDisabled } = props;
|
|
2572
|
-
const [isHovered, setHovered] =
|
|
2573
|
-
const state =
|
|
2614
|
+
const [isHovered, setHovered] = React22.useState(false);
|
|
2615
|
+
const state = React22.useRef({
|
|
2574
2616
|
isHovered: false,
|
|
2575
2617
|
ignoreEmulatedMouseEvents: false
|
|
2576
2618
|
}).current;
|
|
2577
|
-
|
|
2578
|
-
const hoverProps =
|
|
2619
|
+
React22.useEffect(setupGlobalTouchEvents, []);
|
|
2620
|
+
const hoverProps = React22.useMemo(
|
|
2579
2621
|
function getHoverProps() {
|
|
2580
2622
|
function triggerHoverStart(event, pointerType) {
|
|
2581
2623
|
if (isDisabled || pointerType === "touch" || state.isHovered) {
|
|
@@ -2648,9 +2690,12 @@ var ChipElement = import_styled_components16.default.span(({ theme, $colorScheme
|
|
|
2648
2690
|
// lineHeight: "1.4",
|
|
2649
2691
|
lineHeight: "15px",
|
|
2650
2692
|
whiteSpace: "pre",
|
|
2651
|
-
...$size === "
|
|
2693
|
+
...$size === "large" ? {
|
|
2652
2694
|
fontSize: "11px",
|
|
2653
2695
|
padding: "4px 8px"
|
|
2696
|
+
} : $size === "medium" ? {
|
|
2697
|
+
fontSize: "10px",
|
|
2698
|
+
padding: "2px 6px"
|
|
2654
2699
|
} : {
|
|
2655
2700
|
fontSize: "9px",
|
|
2656
2701
|
padding: "0px 4px"
|
|
@@ -2685,7 +2730,7 @@ var DeleteElement = (0, import_styled_components16.default)(import_noya_icons3.C
|
|
|
2685
2730
|
marginRight: "-2px",
|
|
2686
2731
|
cursor: "pointer",
|
|
2687
2732
|
opacity: 0.5,
|
|
2688
|
-
...size2 === "
|
|
2733
|
+
...size2 === "large" ? {
|
|
2689
2734
|
marginLeft: "2px",
|
|
2690
2735
|
// top: '-1px',
|
|
2691
2736
|
transform: "scale(0.75)"
|
|
@@ -2704,7 +2749,7 @@ var AddElement = (0, import_styled_components16.default)(import_noya_icons3.Plus
|
|
|
2704
2749
|
marginLeft: "-2px",
|
|
2705
2750
|
cursor: "pointer",
|
|
2706
2751
|
opacity: 0.5,
|
|
2707
|
-
...size2 === "
|
|
2752
|
+
...size2 === "large" ? {
|
|
2708
2753
|
marginRight: "2px",
|
|
2709
2754
|
top: "-1px",
|
|
2710
2755
|
transform: "scale(0.75)"
|
|
@@ -2716,15 +2761,15 @@ var AddElement = (0, import_styled_components16.default)(import_noya_icons3.Plus
|
|
|
2716
2761
|
opacity: 0.85
|
|
2717
2762
|
}
|
|
2718
2763
|
}));
|
|
2719
|
-
var Chip = (0,
|
|
2720
|
-
(0,
|
|
2764
|
+
var Chip = (0, import_react37.memo)(
|
|
2765
|
+
(0, import_react37.forwardRef)(function Chip2({
|
|
2721
2766
|
colorScheme,
|
|
2722
2767
|
children,
|
|
2723
2768
|
deletable,
|
|
2724
2769
|
addable,
|
|
2725
2770
|
clickable,
|
|
2726
2771
|
style: style3,
|
|
2727
|
-
size: size2 = "
|
|
2772
|
+
size: size2 = "large",
|
|
2728
2773
|
variant = "solid",
|
|
2729
2774
|
monospace = false,
|
|
2730
2775
|
tabIndex,
|
|
@@ -2740,7 +2785,7 @@ var Chip = (0, import_react36.memo)(
|
|
|
2740
2785
|
});
|
|
2741
2786
|
const handleClick = !children && !deletable && addable ? onAdd : onClick;
|
|
2742
2787
|
const color = colorScheme === "primary" ? theme.colors.primary : colorScheme === "secondary" ? theme.colors.secondary : theme.colors.text;
|
|
2743
|
-
return /* @__PURE__ */
|
|
2788
|
+
return /* @__PURE__ */ import_react37.default.createElement(
|
|
2744
2789
|
ChipElement,
|
|
2745
2790
|
{
|
|
2746
2791
|
ref: forwardedRef,
|
|
@@ -2754,7 +2799,7 @@ var Chip = (0, import_react36.memo)(
|
|
|
2754
2799
|
tabIndex,
|
|
2755
2800
|
...rest
|
|
2756
2801
|
},
|
|
2757
|
-
addable && /* @__PURE__ */
|
|
2802
|
+
addable && /* @__PURE__ */ import_react37.default.createElement(
|
|
2758
2803
|
AddElement,
|
|
2759
2804
|
{
|
|
2760
2805
|
size: size2,
|
|
@@ -2767,7 +2812,7 @@ var Chip = (0, import_react36.memo)(
|
|
|
2767
2812
|
}
|
|
2768
2813
|
),
|
|
2769
2814
|
children,
|
|
2770
|
-
deletable && /* @__PURE__ */
|
|
2815
|
+
deletable && /* @__PURE__ */ import_react37.default.createElement(
|
|
2771
2816
|
DeleteElement,
|
|
2772
2817
|
{
|
|
2773
2818
|
size: size2,
|
|
@@ -2787,7 +2832,7 @@ var Chip = (0, import_react36.memo)(
|
|
|
2787
2832
|
var import_noya_icons4 = require("@noya-app/noya-icons");
|
|
2788
2833
|
var import_noya_keymap4 = require("@noya-app/noya-keymap");
|
|
2789
2834
|
var RadixContextMenu = __toESM(require("@radix-ui/react-context-menu"));
|
|
2790
|
-
var
|
|
2835
|
+
var import_react38 = __toESM(require("react"));
|
|
2791
2836
|
var import_styled_components17 = __toESM(require("styled-components"));
|
|
2792
2837
|
var SeparatorElement2 = (0, import_styled_components17.default)(RadixContextMenu.Separator)(
|
|
2793
2838
|
styles.separatorStyle
|
|
@@ -2799,7 +2844,7 @@ var CheckboxItemElement2 = (0, import_styled_components17.default)(RadixContextM
|
|
|
2799
2844
|
var StyledItemIndicator2 = (0, import_styled_components17.default)(RadixContextMenu.ItemIndicator)(
|
|
2800
2845
|
styles.itemIndicatorStyle
|
|
2801
2846
|
);
|
|
2802
|
-
var ContextMenuItem2 = (0,
|
|
2847
|
+
var ContextMenuItem2 = (0, import_react38.memo)(function ContextMenuItem3({
|
|
2803
2848
|
value,
|
|
2804
2849
|
children,
|
|
2805
2850
|
onSelect,
|
|
@@ -2810,42 +2855,42 @@ var ContextMenuItem2 = (0, import_react37.memo)(function ContextMenuItem3({
|
|
|
2810
2855
|
items,
|
|
2811
2856
|
shortcut
|
|
2812
2857
|
}) {
|
|
2813
|
-
const handlePointerDown = (0,
|
|
2858
|
+
const handlePointerDown = (0, import_react38.useCallback)(
|
|
2814
2859
|
(event) => event.stopPropagation(),
|
|
2815
2860
|
[]
|
|
2816
2861
|
);
|
|
2817
|
-
const handleSelectItem = (0,
|
|
2862
|
+
const handleSelectItem = (0, import_react38.useCallback)(() => {
|
|
2818
2863
|
if (!value)
|
|
2819
2864
|
return;
|
|
2820
2865
|
onSelect(value);
|
|
2821
2866
|
}, [onSelect, value]);
|
|
2822
2867
|
if (checked) {
|
|
2823
|
-
return /* @__PURE__ */
|
|
2868
|
+
return /* @__PURE__ */ import_react38.default.createElement(
|
|
2824
2869
|
CheckboxItemElement2,
|
|
2825
2870
|
{
|
|
2826
2871
|
checked,
|
|
2827
2872
|
disabled,
|
|
2828
2873
|
onSelect: handleSelectItem
|
|
2829
2874
|
},
|
|
2830
|
-
/* @__PURE__ */
|
|
2875
|
+
/* @__PURE__ */ import_react38.default.createElement(StyledItemIndicator2, null, /* @__PURE__ */ import_react38.default.createElement(import_noya_icons4.CheckIcon, null)),
|
|
2831
2876
|
children
|
|
2832
2877
|
);
|
|
2833
2878
|
}
|
|
2834
|
-
const element = /* @__PURE__ */
|
|
2879
|
+
const element = /* @__PURE__ */ import_react38.default.createElement(
|
|
2835
2880
|
ItemElement2,
|
|
2836
2881
|
{
|
|
2837
2882
|
disabled,
|
|
2838
2883
|
onSelect: handleSelectItem,
|
|
2839
2884
|
onPointerDown: handlePointerDown
|
|
2840
2885
|
},
|
|
2841
|
-
indented && /* @__PURE__ */
|
|
2842
|
-
icon && /* @__PURE__ */
|
|
2886
|
+
indented && /* @__PURE__ */ import_react38.default.createElement(Spacer.Horizontal, { size: CHECKBOX_WIDTH - CHECKBOX_RIGHT_INSET }),
|
|
2887
|
+
icon && /* @__PURE__ */ import_react38.default.createElement(import_react38.default.Fragment, null, renderIcon(icon), /* @__PURE__ */ import_react38.default.createElement(Spacer.Horizontal, { size: 8 })),
|
|
2843
2888
|
children,
|
|
2844
|
-
shortcut && /* @__PURE__ */
|
|
2845
|
-
items && items.length > 0 && /* @__PURE__ */
|
|
2889
|
+
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 })),
|
|
2890
|
+
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
2891
|
);
|
|
2847
2892
|
if (items && items.length > 0) {
|
|
2848
|
-
return /* @__PURE__ */
|
|
2893
|
+
return /* @__PURE__ */ import_react38.default.createElement(ContextMenuRoot, { isNested: true, items, onSelect }, element);
|
|
2849
2894
|
} else {
|
|
2850
2895
|
return element;
|
|
2851
2896
|
}
|
|
@@ -2863,19 +2908,19 @@ function ContextMenuRoot({
|
|
|
2863
2908
|
const hasCheckedItem = items.some(
|
|
2864
2909
|
(item) => item !== SEPARATOR_ITEM && item.checked
|
|
2865
2910
|
);
|
|
2866
|
-
const keymap = (0,
|
|
2911
|
+
const keymap = (0, import_react38.useMemo)(
|
|
2867
2912
|
() => isNested || shouldBindKeyboardShortcuts === false ? {} : getKeyboardShortcutsForMenuItems(items, onSelect),
|
|
2868
2913
|
[isNested, items, onSelect, shouldBindKeyboardShortcuts]
|
|
2869
2914
|
);
|
|
2870
2915
|
(0, import_noya_keymap4.useKeyboardShortcuts)(keymap);
|
|
2871
|
-
const onPointerDown = (0,
|
|
2916
|
+
const onPointerDown = (0, import_react38.useCallback)((event) => {
|
|
2872
2917
|
event.preventDefault();
|
|
2873
2918
|
}, []);
|
|
2874
2919
|
const RootComponent = isNested ? RadixContextMenu.Sub : RadixContextMenu.Root;
|
|
2875
2920
|
const TriggerComponent = isNested ? RadixContextMenu.SubTrigger : RadixContextMenu.Trigger;
|
|
2876
2921
|
const ContentComponent = isNested ? SubContent4 : Content8;
|
|
2877
|
-
return /* @__PURE__ */
|
|
2878
|
-
(item, index) => item === SEPARATOR_ITEM ? /* @__PURE__ */
|
|
2922
|
+
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(
|
|
2923
|
+
(item, index) => item === SEPARATOR_ITEM ? /* @__PURE__ */ import_react38.default.createElement(SeparatorElement2, { key: index }) : /* @__PURE__ */ import_react38.default.createElement(
|
|
2879
2924
|
ContextMenuItem2,
|
|
2880
2925
|
{
|
|
2881
2926
|
key: item.value ?? index,
|
|
@@ -2892,22 +2937,22 @@ function ContextMenuRoot({
|
|
|
2892
2937
|
)
|
|
2893
2938
|
))));
|
|
2894
2939
|
}
|
|
2895
|
-
var ContextMenu = (0,
|
|
2940
|
+
var ContextMenu = (0, import_react38.memo)(ContextMenuRoot);
|
|
2896
2941
|
|
|
2897
2942
|
// src/components/Divider.tsx
|
|
2898
|
-
var
|
|
2943
|
+
var import_react39 = __toESM(require("react"));
|
|
2899
2944
|
var import_styled_components18 = __toESM(require("styled-components"));
|
|
2900
2945
|
var DividerContainer = import_styled_components18.default.div(({ theme, $variant = "normal", $orientation, $overflow = 0 }) => ({
|
|
2901
2946
|
...$orientation === "horizontal" ? { height: "1px", minHeight: "1px", margin: `0px -${$overflow}px` } : { width: "1px", minWidth: "1px", margin: `-${$overflow}px 0px` },
|
|
2902
2947
|
background: $variant === "strong" ? theme.colors.dividerStrong : $variant === "subtle" ? theme.colors.dividerSubtle : theme.colors.divider,
|
|
2903
2948
|
alignSelf: "stretch"
|
|
2904
2949
|
}));
|
|
2905
|
-
var Divider = (0,
|
|
2950
|
+
var Divider = (0, import_react39.memo)(function Divider2({
|
|
2906
2951
|
variant,
|
|
2907
2952
|
overflow,
|
|
2908
2953
|
...props
|
|
2909
2954
|
}) {
|
|
2910
|
-
return /* @__PURE__ */
|
|
2955
|
+
return /* @__PURE__ */ import_react39.default.createElement(
|
|
2911
2956
|
DividerContainer,
|
|
2912
2957
|
{
|
|
2913
2958
|
$orientation: "horizontal",
|
|
@@ -2917,12 +2962,12 @@ var Divider = (0, import_react38.memo)(function Divider2({
|
|
|
2917
2962
|
}
|
|
2918
2963
|
);
|
|
2919
2964
|
});
|
|
2920
|
-
var DividerVertical = (0,
|
|
2965
|
+
var DividerVertical = (0, import_react39.memo)(function DividerVertical2({
|
|
2921
2966
|
variant,
|
|
2922
2967
|
overflow,
|
|
2923
2968
|
...props
|
|
2924
2969
|
}) {
|
|
2925
|
-
return /* @__PURE__ */
|
|
2970
|
+
return /* @__PURE__ */ import_react39.default.createElement(
|
|
2926
2971
|
DividerContainer,
|
|
2927
2972
|
{
|
|
2928
2973
|
$orientation: "vertical",
|
|
@@ -2935,7 +2980,7 @@ var DividerVertical = (0, import_react38.memo)(function DividerVertical2({
|
|
|
2935
2980
|
|
|
2936
2981
|
// src/components/DraggableMenuButton.tsx
|
|
2937
2982
|
var import_noya_icons5 = require("@noya-app/noya-icons");
|
|
2938
|
-
var
|
|
2983
|
+
var import_react40 = __toESM(require("react"));
|
|
2939
2984
|
var import_styled_components19 = __toESM(require("styled-components"));
|
|
2940
2985
|
var DotButtonElement = import_styled_components19.default.div(({ theme }) => ({
|
|
2941
2986
|
cursor: "pointer",
|
|
@@ -2955,15 +3000,15 @@ var TriggerElement = import_styled_components19.default.div({
|
|
|
2955
3000
|
pointerEvents: "none",
|
|
2956
3001
|
height: "15px"
|
|
2957
3002
|
});
|
|
2958
|
-
var DraggableMenuButton = (0,
|
|
3003
|
+
var DraggableMenuButton = (0, import_react40.memo)(function DraggableMenuButton2({
|
|
2959
3004
|
items,
|
|
2960
3005
|
onSelect,
|
|
2961
3006
|
isVisible = true
|
|
2962
3007
|
}) {
|
|
2963
3008
|
const color = useDesignSystemTheme().colors.icon;
|
|
2964
|
-
const [open, setOpen] = (0,
|
|
2965
|
-
const [downPosition, setDownPosition] =
|
|
2966
|
-
const handlePointerDownCapture = (0,
|
|
3009
|
+
const [open, setOpen] = (0, import_react40.useState)(false);
|
|
3010
|
+
const [downPosition, setDownPosition] = import_react40.default.useState(null);
|
|
3011
|
+
const handlePointerDownCapture = (0, import_react40.useCallback)(
|
|
2967
3012
|
(event) => {
|
|
2968
3013
|
if (open) {
|
|
2969
3014
|
setDownPosition(null);
|
|
@@ -2976,7 +3021,7 @@ var DraggableMenuButton = (0, import_react39.memo)(function DraggableMenuButton2
|
|
|
2976
3021
|
},
|
|
2977
3022
|
[open]
|
|
2978
3023
|
);
|
|
2979
|
-
const handlePointerUp = (0,
|
|
3024
|
+
const handlePointerUp = (0, import_react40.useCallback)(
|
|
2980
3025
|
(event) => {
|
|
2981
3026
|
if (open || !downPosition) {
|
|
2982
3027
|
setDownPosition(null);
|
|
@@ -2992,14 +3037,14 @@ var DraggableMenuButton = (0, import_react39.memo)(function DraggableMenuButton2
|
|
|
2992
3037
|
},
|
|
2993
3038
|
[downPosition, open]
|
|
2994
3039
|
);
|
|
2995
|
-
const handleOpenChange = (0,
|
|
3040
|
+
const handleOpenChange = (0, import_react40.useCallback)(
|
|
2996
3041
|
(isOpen) => {
|
|
2997
3042
|
if (!isOpen)
|
|
2998
3043
|
setOpen(false);
|
|
2999
3044
|
},
|
|
3000
3045
|
[setOpen]
|
|
3001
3046
|
);
|
|
3002
|
-
return /* @__PURE__ */
|
|
3047
|
+
return /* @__PURE__ */ import_react40.default.createElement(
|
|
3003
3048
|
DotButtonElement,
|
|
3004
3049
|
{
|
|
3005
3050
|
onPointerDownCapture: handlePointerDownCapture,
|
|
@@ -3009,7 +3054,7 @@ var DraggableMenuButton = (0, import_react39.memo)(function DraggableMenuButton2
|
|
|
3009
3054
|
event.preventDefault();
|
|
3010
3055
|
}
|
|
3011
3056
|
},
|
|
3012
|
-
items && onSelect ? /* @__PURE__ */
|
|
3057
|
+
items && onSelect ? /* @__PURE__ */ import_react40.default.createElement(
|
|
3013
3058
|
DropdownMenu,
|
|
3014
3059
|
{
|
|
3015
3060
|
open,
|
|
@@ -3018,13 +3063,13 @@ var DraggableMenuButton = (0, import_react39.memo)(function DraggableMenuButton2
|
|
|
3018
3063
|
onSelect,
|
|
3019
3064
|
shouldBindKeyboardShortcuts: false
|
|
3020
3065
|
},
|
|
3021
|
-
/* @__PURE__ */
|
|
3066
|
+
/* @__PURE__ */ import_react40.default.createElement(TriggerElement, null, /* @__PURE__ */ import_react40.default.createElement(
|
|
3022
3067
|
import_noya_icons5.DragHandleDots2Icon,
|
|
3023
3068
|
{
|
|
3024
3069
|
color: isVisible || open ? color : "transparent"
|
|
3025
3070
|
}
|
|
3026
3071
|
))
|
|
3027
|
-
) : /* @__PURE__ */
|
|
3072
|
+
) : /* @__PURE__ */ import_react40.default.createElement(
|
|
3028
3073
|
import_noya_icons5.DragHandleDots2Icon,
|
|
3029
3074
|
{
|
|
3030
3075
|
color: isVisible || open ? color : "transparent"
|
|
@@ -3034,7 +3079,7 @@ var DraggableMenuButton = (0, import_react39.memo)(function DraggableMenuButton2
|
|
|
3034
3079
|
});
|
|
3035
3080
|
|
|
3036
3081
|
// src/components/FillInputField.tsx
|
|
3037
|
-
var
|
|
3082
|
+
var import_react44 = __toESM(require("react"));
|
|
3038
3083
|
var import_styled_components21 = __toESM(require("styled-components"));
|
|
3039
3084
|
|
|
3040
3085
|
// ../noya-file-format/src/types.ts
|
|
@@ -3360,26 +3405,26 @@ var ClassValue = /* @__PURE__ */ ((ClassValue2) => {
|
|
|
3360
3405
|
})(ClassValue || {});
|
|
3361
3406
|
|
|
3362
3407
|
// src/components/FillPreviewBackground.tsx
|
|
3363
|
-
var
|
|
3408
|
+
var import_react43 = __toESM(require("react"));
|
|
3364
3409
|
var import_styled_components20 = __toESM(require("styled-components"));
|
|
3365
3410
|
|
|
3366
3411
|
// src/contexts/ImageDataContext.tsx
|
|
3367
|
-
var
|
|
3368
|
-
var ImageDataContext = (0,
|
|
3412
|
+
var import_react41 = __toESM(require("react"));
|
|
3413
|
+
var ImageDataContext = (0, import_react41.createContext)(
|
|
3369
3414
|
void 0
|
|
3370
3415
|
);
|
|
3371
|
-
var ImageDataProvider = (0,
|
|
3416
|
+
var ImageDataProvider = (0, import_react41.memo)(function ImageDataProvider2({
|
|
3372
3417
|
children,
|
|
3373
3418
|
getImageData
|
|
3374
3419
|
}) {
|
|
3375
|
-
const contextValue = (0,
|
|
3420
|
+
const contextValue = (0, import_react41.useMemo)(
|
|
3376
3421
|
() => ({ getImageData: getImageData ?? (() => void 0) }),
|
|
3377
3422
|
[getImageData]
|
|
3378
3423
|
);
|
|
3379
|
-
return /* @__PURE__ */
|
|
3424
|
+
return /* @__PURE__ */ import_react41.default.createElement(ImageDataContext.Provider, { value: contextValue }, children);
|
|
3380
3425
|
});
|
|
3381
3426
|
function useImageData(ref) {
|
|
3382
|
-
const value = (0,
|
|
3427
|
+
const value = (0, import_react41.useContext)(ImageDataContext);
|
|
3383
3428
|
if (!value) {
|
|
3384
3429
|
throw new Error("Missing ImageDataProvider");
|
|
3385
3430
|
}
|
|
@@ -3387,15 +3432,15 @@ function useImageData(ref) {
|
|
|
3387
3432
|
}
|
|
3388
3433
|
|
|
3389
3434
|
// src/hooks/useObjectURL.ts
|
|
3390
|
-
var
|
|
3435
|
+
var import_react42 = require("react");
|
|
3391
3436
|
function useObjectURL(object) {
|
|
3392
|
-
const objectURL = (0,
|
|
3437
|
+
const objectURL = (0, import_react42.useMemo)(() => {
|
|
3393
3438
|
if (object instanceof Blob)
|
|
3394
3439
|
return URL.createObjectURL(object);
|
|
3395
3440
|
const bytes = object instanceof Uint8Array ? object : object !== void 0 ? new Uint8Array(object) : new Uint8Array();
|
|
3396
3441
|
return URL.createObjectURL(new Blob([bytes]));
|
|
3397
3442
|
}, [object]);
|
|
3398
|
-
(0,
|
|
3443
|
+
(0, import_react42.useLayoutEffect)(() => {
|
|
3399
3444
|
return () => URL.revokeObjectURL(objectURL);
|
|
3400
3445
|
}, [objectURL]);
|
|
3401
3446
|
return objectURL;
|
|
@@ -3451,9 +3496,9 @@ var Background = import_styled_components20.default.span(({ background }) => ({
|
|
|
3451
3496
|
position: "absolute",
|
|
3452
3497
|
inset: 0
|
|
3453
3498
|
}));
|
|
3454
|
-
var HorizontalDotsBackground = (0,
|
|
3499
|
+
var HorizontalDotsBackground = (0, import_react43.memo)(function HorizontalDotsBackground2() {
|
|
3455
3500
|
const { inputBackground, placeholderDots } = (0, import_styled_components20.useTheme)().colors;
|
|
3456
|
-
const background = (0,
|
|
3501
|
+
const background = (0, import_react43.useMemo)(
|
|
3457
3502
|
() => [
|
|
3458
3503
|
`center url("data:image/svg+xml;utf8,${dotsHorizontalSvg(
|
|
3459
3504
|
placeholderDots
|
|
@@ -3462,7 +3507,7 @@ var HorizontalDotsBackground = (0, import_react42.memo)(function HorizontalDotsB
|
|
|
3462
3507
|
].join(","),
|
|
3463
3508
|
[inputBackground, placeholderDots]
|
|
3464
3509
|
);
|
|
3465
|
-
return /* @__PURE__ */
|
|
3510
|
+
return /* @__PURE__ */ import_react43.default.createElement(Background, { background });
|
|
3466
3511
|
});
|
|
3467
3512
|
function getPatternSizeAndPosition(fillType, tileScale) {
|
|
3468
3513
|
switch (fillType) {
|
|
@@ -3476,7 +3521,7 @@ function getPatternSizeAndPosition(fillType, tileScale) {
|
|
|
3476
3521
|
return "center / 100% 100%";
|
|
3477
3522
|
}
|
|
3478
3523
|
}
|
|
3479
|
-
var PatternPreviewBackground = (0,
|
|
3524
|
+
var PatternPreviewBackground = (0, import_react43.memo)(function PatternPreviewBackground2({
|
|
3480
3525
|
fillType,
|
|
3481
3526
|
tileScale,
|
|
3482
3527
|
imageRef
|
|
@@ -3484,7 +3529,7 @@ var PatternPreviewBackground = (0, import_react42.memo)(function PatternPreviewB
|
|
|
3484
3529
|
const image = useImageData(imageRef);
|
|
3485
3530
|
const url = useObjectURL(image);
|
|
3486
3531
|
const size2 = getPatternSizeAndPosition(fillType, tileScale);
|
|
3487
|
-
const background = (0,
|
|
3532
|
+
const background = (0, import_react43.useMemo)(
|
|
3488
3533
|
() => [
|
|
3489
3534
|
size2,
|
|
3490
3535
|
`url(${url})`,
|
|
@@ -3492,37 +3537,37 @@ var PatternPreviewBackground = (0, import_react42.memo)(function PatternPreviewB
|
|
|
3492
3537
|
].join(" "),
|
|
3493
3538
|
[fillType, size2, url]
|
|
3494
3539
|
);
|
|
3495
|
-
return /* @__PURE__ */
|
|
3540
|
+
return /* @__PURE__ */ import_react43.default.createElement(Background, { background });
|
|
3496
3541
|
});
|
|
3497
|
-
var ColorPreviewBackground = (0,
|
|
3542
|
+
var ColorPreviewBackground = (0, import_react43.memo)(function ColorPreviewBackground2({
|
|
3498
3543
|
color
|
|
3499
3544
|
}) {
|
|
3500
|
-
const background = (0,
|
|
3501
|
-
return /* @__PURE__ */
|
|
3545
|
+
const background = (0, import_react43.useMemo)(() => sketchColorToRgbaString(color), [color]);
|
|
3546
|
+
return /* @__PURE__ */ import_react43.default.createElement(Background, { background });
|
|
3502
3547
|
});
|
|
3503
|
-
var GradientPreviewBackground = (0,
|
|
3548
|
+
var GradientPreviewBackground = (0, import_react43.memo)(function GradientPreviewBackground2({
|
|
3504
3549
|
gradient
|
|
3505
3550
|
}) {
|
|
3506
|
-
const background = (0,
|
|
3551
|
+
const background = (0, import_react43.useMemo)(
|
|
3507
3552
|
() => getGradientBackground(gradient.stops, gradient.gradientType, 180),
|
|
3508
3553
|
[gradient.gradientType, gradient.stops]
|
|
3509
3554
|
);
|
|
3510
|
-
return /* @__PURE__ */
|
|
3555
|
+
return /* @__PURE__ */ import_react43.default.createElement(Background, { background });
|
|
3511
3556
|
});
|
|
3512
|
-
var FillPreviewBackground = (0,
|
|
3557
|
+
var FillPreviewBackground = (0, import_react43.memo)(function FillPreviewBackground2({
|
|
3513
3558
|
value
|
|
3514
3559
|
}) {
|
|
3515
3560
|
if (!value)
|
|
3516
|
-
return /* @__PURE__ */
|
|
3561
|
+
return /* @__PURE__ */ import_react43.default.createElement(HorizontalDotsBackground, null);
|
|
3517
3562
|
switch (value._class) {
|
|
3518
3563
|
case "color":
|
|
3519
|
-
return /* @__PURE__ */
|
|
3564
|
+
return /* @__PURE__ */ import_react43.default.createElement(ColorPreviewBackground, { color: value });
|
|
3520
3565
|
case "gradient":
|
|
3521
|
-
return /* @__PURE__ */
|
|
3566
|
+
return /* @__PURE__ */ import_react43.default.createElement(GradientPreviewBackground, { gradient: value });
|
|
3522
3567
|
case "pattern":
|
|
3523
3568
|
if (!value.image)
|
|
3524
3569
|
return null;
|
|
3525
|
-
return /* @__PURE__ */
|
|
3570
|
+
return /* @__PURE__ */ import_react43.default.createElement(
|
|
3526
3571
|
PatternPreviewBackground,
|
|
3527
3572
|
{
|
|
3528
3573
|
fillType: value.patternFillType,
|
|
@@ -3552,14 +3597,14 @@ var Container = import_styled_components21.default.button(
|
|
|
3552
3597
|
flex: $flex
|
|
3553
3598
|
})
|
|
3554
3599
|
);
|
|
3555
|
-
var FillInputField = (0,
|
|
3556
|
-
(0,
|
|
3557
|
-
return /* @__PURE__ */
|
|
3600
|
+
var FillInputField = (0, import_react44.memo)(
|
|
3601
|
+
(0, import_react44.forwardRef)(function FillInputField2({ id, value, flex, ...rest }, ref) {
|
|
3602
|
+
return /* @__PURE__ */ import_react44.default.createElement(Container, { ref, id, $flex: flex, ...rest }, /* @__PURE__ */ import_react44.default.createElement(FillPreviewBackground, { value }));
|
|
3558
3603
|
})
|
|
3559
3604
|
);
|
|
3560
3605
|
|
|
3561
3606
|
// src/components/FloatingWindow.tsx
|
|
3562
|
-
var
|
|
3607
|
+
var import_react45 = __toESM(require("react"));
|
|
3563
3608
|
var styles2 = {
|
|
3564
3609
|
noSelect: {
|
|
3565
3610
|
userSelect: "none",
|
|
@@ -3652,7 +3697,7 @@ function defaultRenderToolbar({
|
|
|
3652
3697
|
toolbarContent,
|
|
3653
3698
|
onClose
|
|
3654
3699
|
}) {
|
|
3655
|
-
return /* @__PURE__ */
|
|
3700
|
+
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
3701
|
IconButton,
|
|
3657
3702
|
{
|
|
3658
3703
|
iconName: "Cross3Icon",
|
|
@@ -3677,16 +3722,16 @@ var FloatingWindow = ({
|
|
|
3677
3722
|
toolbarContent,
|
|
3678
3723
|
renderToolbar = defaultRenderToolbar
|
|
3679
3724
|
}) => {
|
|
3680
|
-
const [position, setPosition] = (0,
|
|
3681
|
-
const [size2, setSize] = (0,
|
|
3725
|
+
const [position, setPosition] = (0, import_react45.useState)({ x: initialX, y: initialY });
|
|
3726
|
+
const [size2, setSize] = (0, import_react45.useState)({
|
|
3682
3727
|
width: initialWidth,
|
|
3683
3728
|
height: initialHeight
|
|
3684
3729
|
});
|
|
3685
|
-
const [isDragging, setIsDragging] = (0,
|
|
3686
|
-
const [isResizing, setIsResizing] = (0,
|
|
3687
|
-
const [dragOffset, setDragOffset] = (0,
|
|
3688
|
-
const [resizeDirection, setResizeDirection] = (0,
|
|
3689
|
-
const wrapperRef = (0,
|
|
3730
|
+
const [isDragging, setIsDragging] = (0, import_react45.useState)(false);
|
|
3731
|
+
const [isResizing, setIsResizing] = (0, import_react45.useState)(false);
|
|
3732
|
+
const [dragOffset, setDragOffset] = (0, import_react45.useState)({ x: 0, y: 0 });
|
|
3733
|
+
const [resizeDirection, setResizeDirection] = (0, import_react45.useState)(null);
|
|
3734
|
+
const wrapperRef = (0, import_react45.useRef)(null);
|
|
3690
3735
|
const toggleGlobalTextSelection = (disable) => {
|
|
3691
3736
|
if (disable) {
|
|
3692
3737
|
document.body.style.userSelect = "none";
|
|
@@ -3694,7 +3739,7 @@ var FloatingWindow = ({
|
|
|
3694
3739
|
document.body.style.userSelect = "";
|
|
3695
3740
|
}
|
|
3696
3741
|
};
|
|
3697
|
-
const handleMouseDown = (0,
|
|
3742
|
+
const handleMouseDown = (0, import_react45.useCallback)((e) => {
|
|
3698
3743
|
if (!wrapperRef.current)
|
|
3699
3744
|
return;
|
|
3700
3745
|
const rect = wrapperRef.current.getBoundingClientRect();
|
|
@@ -3704,7 +3749,7 @@ var FloatingWindow = ({
|
|
|
3704
3749
|
});
|
|
3705
3750
|
setIsDragging(true);
|
|
3706
3751
|
}, []);
|
|
3707
|
-
const handleResizeStart = (0,
|
|
3752
|
+
const handleResizeStart = (0, import_react45.useCallback)(
|
|
3708
3753
|
(direction) => (e) => {
|
|
3709
3754
|
e.stopPropagation();
|
|
3710
3755
|
setIsResizing(true);
|
|
@@ -3713,7 +3758,7 @@ var FloatingWindow = ({
|
|
|
3713
3758
|
},
|
|
3714
3759
|
[]
|
|
3715
3760
|
);
|
|
3716
|
-
const handleMouseMove = (0,
|
|
3761
|
+
const handleMouseMove = (0, import_react45.useCallback)(
|
|
3717
3762
|
(e) => {
|
|
3718
3763
|
if (isDragging) {
|
|
3719
3764
|
setPosition({
|
|
@@ -3767,13 +3812,13 @@ var FloatingWindow = ({
|
|
|
3767
3812
|
minHeight
|
|
3768
3813
|
]
|
|
3769
3814
|
);
|
|
3770
|
-
const handleMouseUp = (0,
|
|
3815
|
+
const handleMouseUp = (0, import_react45.useCallback)((e) => {
|
|
3771
3816
|
setIsDragging(false);
|
|
3772
3817
|
setIsResizing(false);
|
|
3773
3818
|
setResizeDirection(null);
|
|
3774
3819
|
toggleGlobalTextSelection(false);
|
|
3775
3820
|
}, []);
|
|
3776
|
-
|
|
3821
|
+
import_react45.default.useEffect(() => {
|
|
3777
3822
|
document.addEventListener("mousemove", handleMouseMove);
|
|
3778
3823
|
document.addEventListener("mouseup", handleMouseUp);
|
|
3779
3824
|
return () => {
|
|
@@ -3784,12 +3829,12 @@ var FloatingWindow = ({
|
|
|
3784
3829
|
const theme = useDesignSystemTheme();
|
|
3785
3830
|
const floatingWindowManager = useFloatingWindowManager();
|
|
3786
3831
|
const currentFloatingWindow = useCurrentFloatingWindowInternal();
|
|
3787
|
-
const handleClose = (0,
|
|
3832
|
+
const handleClose = (0, import_react45.useCallback)(() => {
|
|
3788
3833
|
if (onClose)
|
|
3789
3834
|
onClose();
|
|
3790
3835
|
floatingWindowManager.closeWindow(currentFloatingWindow.id);
|
|
3791
3836
|
}, [currentFloatingWindow.id, floatingWindowManager, onClose]);
|
|
3792
|
-
return /* @__PURE__ */
|
|
3837
|
+
return /* @__PURE__ */ import_react45.default.createElement(
|
|
3793
3838
|
"div",
|
|
3794
3839
|
{
|
|
3795
3840
|
ref: wrapperRef,
|
|
@@ -3803,7 +3848,7 @@ var FloatingWindow = ({
|
|
|
3803
3848
|
backgroundColor: theme.colors.canvas.background
|
|
3804
3849
|
}
|
|
3805
3850
|
},
|
|
3806
|
-
/* @__PURE__ */
|
|
3851
|
+
/* @__PURE__ */ import_react45.default.createElement(
|
|
3807
3852
|
"div",
|
|
3808
3853
|
{
|
|
3809
3854
|
style: {
|
|
@@ -3814,9 +3859,9 @@ var FloatingWindow = ({
|
|
|
3814
3859
|
},
|
|
3815
3860
|
renderToolbar({ title, toolbarContent, onClose: handleClose })
|
|
3816
3861
|
),
|
|
3817
|
-
/* @__PURE__ */
|
|
3818
|
-
/* @__PURE__ */
|
|
3819
|
-
Object.entries(resizeHandlePositions).map(([direction, style3]) => /* @__PURE__ */
|
|
3862
|
+
/* @__PURE__ */ import_react45.default.createElement(Divider, null),
|
|
3863
|
+
/* @__PURE__ */ import_react45.default.createElement("div", { style: styles2.content }, children),
|
|
3864
|
+
Object.entries(resizeHandlePositions).map(([direction, style3]) => /* @__PURE__ */ import_react45.default.createElement(
|
|
3820
3865
|
"div",
|
|
3821
3866
|
{
|
|
3822
3867
|
key: direction,
|
|
@@ -3829,8 +3874,8 @@ var FloatingWindow = ({
|
|
|
3829
3874
|
|
|
3830
3875
|
// src/components/GradientPicker.tsx
|
|
3831
3876
|
var import_noya_colorpicker2 = require("@noya-app/noya-colorpicker");
|
|
3832
|
-
var
|
|
3833
|
-
var GradientPicker = (0,
|
|
3877
|
+
var import_react46 = __toESM(require("react"));
|
|
3878
|
+
var GradientPicker = (0, import_react46.memo)(function GradientPicker2({
|
|
3834
3879
|
value,
|
|
3835
3880
|
selectedStop,
|
|
3836
3881
|
onChangeColor,
|
|
@@ -3839,7 +3884,7 @@ var GradientPicker = (0, import_react45.memo)(function GradientPicker2({
|
|
|
3839
3884
|
onDelete,
|
|
3840
3885
|
onSelectStop
|
|
3841
3886
|
}) {
|
|
3842
|
-
const colorModel = (0,
|
|
3887
|
+
const colorModel = (0, import_react46.useMemo)(
|
|
3843
3888
|
() => ({
|
|
3844
3889
|
defaultColor: { r: 0, g: 0, b: 0, a: 1 },
|
|
3845
3890
|
toHsva: import_noya_colorpicker2.rgbaToHsva,
|
|
@@ -3848,30 +3893,30 @@ var GradientPicker = (0, import_react45.memo)(function GradientPicker2({
|
|
|
3848
3893
|
}),
|
|
3849
3894
|
[]
|
|
3850
3895
|
);
|
|
3851
|
-
const rgbaColor = (0,
|
|
3896
|
+
const rgbaColor = (0, import_react46.useMemo)(
|
|
3852
3897
|
() => sketchColorToRgba(value[selectedStop].color),
|
|
3853
3898
|
[value, selectedStop]
|
|
3854
3899
|
);
|
|
3855
|
-
const handleChangeColor = (0,
|
|
3900
|
+
const handleChangeColor = (0, import_react46.useCallback)(
|
|
3856
3901
|
(value2) => {
|
|
3857
3902
|
onChangeColor(rgbaToSketchColor(value2));
|
|
3858
3903
|
},
|
|
3859
3904
|
[onChangeColor]
|
|
3860
3905
|
);
|
|
3861
|
-
const handleAddGradientStop = (0,
|
|
3906
|
+
const handleAddGradientStop = (0, import_react46.useCallback)(
|
|
3862
3907
|
(value2, position) => {
|
|
3863
3908
|
onAdd(rgbaToSketchColor(value2), position);
|
|
3864
3909
|
},
|
|
3865
3910
|
[onAdd]
|
|
3866
3911
|
);
|
|
3867
|
-
return /* @__PURE__ */
|
|
3912
|
+
return /* @__PURE__ */ import_react46.default.createElement(
|
|
3868
3913
|
import_noya_colorpicker2.ColorPicker,
|
|
3869
3914
|
{
|
|
3870
3915
|
onChange: handleChangeColor,
|
|
3871
3916
|
colorModel,
|
|
3872
3917
|
color: rgbaColor
|
|
3873
3918
|
},
|
|
3874
|
-
/* @__PURE__ */
|
|
3919
|
+
/* @__PURE__ */ import_react46.default.createElement(
|
|
3875
3920
|
import_noya_colorpicker2.Gradient,
|
|
3876
3921
|
{
|
|
3877
3922
|
gradients: value,
|
|
@@ -3882,12 +3927,12 @@ var GradientPicker = (0, import_react45.memo)(function GradientPicker2({
|
|
|
3882
3927
|
onDelete
|
|
3883
3928
|
}
|
|
3884
3929
|
),
|
|
3885
|
-
/* @__PURE__ */
|
|
3886
|
-
/* @__PURE__ */
|
|
3887
|
-
/* @__PURE__ */
|
|
3888
|
-
/* @__PURE__ */
|
|
3889
|
-
/* @__PURE__ */
|
|
3890
|
-
/* @__PURE__ */
|
|
3930
|
+
/* @__PURE__ */ import_react46.default.createElement(Spacer.Vertical, { size: 10 }),
|
|
3931
|
+
/* @__PURE__ */ import_react46.default.createElement(import_noya_colorpicker2.Saturation, null),
|
|
3932
|
+
/* @__PURE__ */ import_react46.default.createElement(Spacer.Vertical, { size: 12 }),
|
|
3933
|
+
/* @__PURE__ */ import_react46.default.createElement(import_noya_colorpicker2.Hue, null),
|
|
3934
|
+
/* @__PURE__ */ import_react46.default.createElement(Spacer.Vertical, { size: 5 }),
|
|
3935
|
+
/* @__PURE__ */ import_react46.default.createElement(import_noya_colorpicker2.Alpha, null)
|
|
3891
3936
|
);
|
|
3892
3937
|
});
|
|
3893
3938
|
|
|
@@ -3919,12 +3964,12 @@ var Grid = import_styled_components22.default.div((props) => ({
|
|
|
3919
3964
|
}));
|
|
3920
3965
|
|
|
3921
3966
|
// src/components/GridView.tsx
|
|
3922
|
-
var
|
|
3967
|
+
var import_react48 = __toESM(require("react"));
|
|
3923
3968
|
var import_styled_components24 = __toESM(require("styled-components"));
|
|
3924
3969
|
|
|
3925
3970
|
// src/components/ScrollArea.tsx
|
|
3926
3971
|
var RadixScrollArea = __toESM(require("@radix-ui/react-scroll-area"));
|
|
3927
|
-
var
|
|
3972
|
+
var import_react47 = __toESM(require("react"));
|
|
3928
3973
|
var import_styled_components23 = __toESM(require("styled-components"));
|
|
3929
3974
|
var SCROLLBAR_SIZE = 10;
|
|
3930
3975
|
var StyledViewport = (0, import_styled_components23.default)(RadixScrollArea.Viewport)({
|
|
@@ -3952,18 +3997,18 @@ var Container2 = import_styled_components23.default.div({
|
|
|
3952
3997
|
flex: "1 1 0px",
|
|
3953
3998
|
minHeight: 0
|
|
3954
3999
|
});
|
|
3955
|
-
var ScrollArea = (0,
|
|
3956
|
-
const [scrollElementRef, setScrollElementRef] = (0,
|
|
3957
|
-
return /* @__PURE__ */
|
|
4000
|
+
var ScrollArea = (0, import_react47.memo)(function ScrollArea2({ children }) {
|
|
4001
|
+
const [scrollElementRef, setScrollElementRef] = (0, import_react47.useState)(null);
|
|
4002
|
+
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
4003
|
StyledViewport,
|
|
3959
4004
|
{
|
|
3960
|
-
ref: (0,
|
|
4005
|
+
ref: (0, import_react47.useCallback)(
|
|
3961
4006
|
(ref) => setScrollElementRef(ref),
|
|
3962
4007
|
[]
|
|
3963
4008
|
)
|
|
3964
4009
|
},
|
|
3965
4010
|
typeof children === "function" ? scrollElementRef ? children(scrollElementRef) : null : children
|
|
3966
|
-
), /* @__PURE__ */
|
|
4011
|
+
), /* @__PURE__ */ import_react47.default.createElement(StyledScrollbar, { orientation: "vertical", className: "scroll-component" }, /* @__PURE__ */ import_react47.default.createElement(StyledThumb, { className: "scroll-component" }))));
|
|
3967
4012
|
});
|
|
3968
4013
|
|
|
3969
4014
|
// src/components/GridView.tsx
|
|
@@ -4143,7 +4188,7 @@ var Shimmer = import_styled_components24.default.div`
|
|
|
4143
4188
|
align-items: end;
|
|
4144
4189
|
padding: 4px;
|
|
4145
4190
|
`;
|
|
4146
|
-
var GridViewItem = (0,
|
|
4191
|
+
var GridViewItem = (0, import_react48.forwardRef)(function GridViewItem2({
|
|
4147
4192
|
id,
|
|
4148
4193
|
title,
|
|
4149
4194
|
subtitle,
|
|
@@ -4159,15 +4204,15 @@ var GridViewItem = (0, import_react47.forwardRef)(function GridViewItem2({
|
|
|
4159
4204
|
onContextMenu,
|
|
4160
4205
|
style: style3
|
|
4161
4206
|
}, forwardedRef) {
|
|
4162
|
-
const [hovered, setHovered] =
|
|
4207
|
+
const [hovered, setHovered] = import_react48.default.useState(false);
|
|
4163
4208
|
const { hoverProps } = useHover({
|
|
4164
4209
|
onHoverChange: (isHovering) => {
|
|
4165
4210
|
onHoverChange?.(isHovering);
|
|
4166
4211
|
setHovered(isHovering);
|
|
4167
4212
|
}
|
|
4168
4213
|
});
|
|
4169
|
-
const { textPosition, bordered, disabled } = (0,
|
|
4170
|
-
const handleClick = (0,
|
|
4214
|
+
const { textPosition, bordered, disabled } = (0, import_react48.useContext)(GridViewContext);
|
|
4215
|
+
const handleClick = (0, import_react48.useCallback)(
|
|
4171
4216
|
(event) => {
|
|
4172
4217
|
event.stopPropagation();
|
|
4173
4218
|
event.preventDefault();
|
|
@@ -4176,7 +4221,7 @@ var GridViewItem = (0, import_react47.forwardRef)(function GridViewItem2({
|
|
|
4176
4221
|
},
|
|
4177
4222
|
[onClick, onPress]
|
|
4178
4223
|
);
|
|
4179
|
-
const handleKeyDown = (0,
|
|
4224
|
+
const handleKeyDown = (0, import_react48.useCallback)(
|
|
4180
4225
|
(event) => {
|
|
4181
4226
|
if (event.key === "Enter" || event.key === " ") {
|
|
4182
4227
|
event.stopPropagation();
|
|
@@ -4188,7 +4233,7 @@ var GridViewItem = (0, import_react47.forwardRef)(function GridViewItem2({
|
|
|
4188
4233
|
},
|
|
4189
4234
|
[onPress]
|
|
4190
4235
|
);
|
|
4191
|
-
let element = /* @__PURE__ */
|
|
4236
|
+
let element = /* @__PURE__ */ import_react48.default.createElement(
|
|
4192
4237
|
ItemContainer,
|
|
4193
4238
|
{
|
|
4194
4239
|
id,
|
|
@@ -4197,7 +4242,7 @@ var GridViewItem = (0, import_react47.forwardRef)(function GridViewItem2({
|
|
|
4197
4242
|
tabIndex: disabled ? void 0 : 0,
|
|
4198
4243
|
onKeyDown: handleKeyDown
|
|
4199
4244
|
},
|
|
4200
|
-
/* @__PURE__ */
|
|
4245
|
+
/* @__PURE__ */ import_react48.default.createElement(
|
|
4201
4246
|
ContentContainer,
|
|
4202
4247
|
{
|
|
4203
4248
|
disabled,
|
|
@@ -4211,25 +4256,25 @@ var GridViewItem = (0, import_react47.forwardRef)(function GridViewItem2({
|
|
|
4211
4256
|
},
|
|
4212
4257
|
children
|
|
4213
4258
|
),
|
|
4214
|
-
textPosition === "below" && /* @__PURE__ */
|
|
4215
|
-
textPosition === "overlay" && hovered && (title || subtitle) && /* @__PURE__ */
|
|
4216
|
-
loading && /* @__PURE__ */
|
|
4259
|
+
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 || " ")),
|
|
4260
|
+
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)),
|
|
4261
|
+
loading && /* @__PURE__ */ import_react48.default.createElement(Shimmer, null, /* @__PURE__ */ import_react48.default.createElement(ActivityIndicator, { opacity: 0.5, size: 13 }))
|
|
4217
4262
|
);
|
|
4218
4263
|
if (menuItems && onSelectMenuItem) {
|
|
4219
|
-
element = /* @__PURE__ */
|
|
4264
|
+
element = /* @__PURE__ */ import_react48.default.createElement(ContextMenu, { items: menuItems, onSelect: onSelectMenuItem }, element);
|
|
4220
4265
|
}
|
|
4221
4266
|
if (textPosition === "toolip") {
|
|
4222
|
-
element = /* @__PURE__ */
|
|
4267
|
+
element = /* @__PURE__ */ import_react48.default.createElement(
|
|
4223
4268
|
Tooltip,
|
|
4224
4269
|
{
|
|
4225
|
-
content: /* @__PURE__ */
|
|
4270
|
+
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
4271
|
},
|
|
4227
4272
|
element
|
|
4228
4273
|
);
|
|
4229
4274
|
}
|
|
4230
4275
|
return element;
|
|
4231
4276
|
});
|
|
4232
|
-
var GridViewContext = (0,
|
|
4277
|
+
var GridViewContext = (0, import_react48.createContext)({
|
|
4233
4278
|
size: "small",
|
|
4234
4279
|
textPosition: "below",
|
|
4235
4280
|
bordered: false,
|
|
@@ -4244,7 +4289,7 @@ function GridViewRoot({
|
|
|
4244
4289
|
bordered = false,
|
|
4245
4290
|
disabled = false
|
|
4246
4291
|
}) {
|
|
4247
|
-
const handleClick = (0,
|
|
4292
|
+
const handleClick = (0, import_react48.useCallback)(
|
|
4248
4293
|
(event) => {
|
|
4249
4294
|
event.stopPropagation();
|
|
4250
4295
|
event.preventDefault();
|
|
@@ -4252,7 +4297,7 @@ function GridViewRoot({
|
|
|
4252
4297
|
},
|
|
4253
4298
|
[onClick]
|
|
4254
4299
|
);
|
|
4255
|
-
const contextValue = (0,
|
|
4300
|
+
const contextValue = (0, import_react48.useMemo)(
|
|
4256
4301
|
() => ({
|
|
4257
4302
|
size: size2,
|
|
4258
4303
|
textPosition,
|
|
@@ -4261,33 +4306,33 @@ function GridViewRoot({
|
|
|
4261
4306
|
}),
|
|
4262
4307
|
[bordered, disabled, size2, textPosition]
|
|
4263
4308
|
);
|
|
4264
|
-
return /* @__PURE__ */
|
|
4309
|
+
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
4310
|
}
|
|
4266
4311
|
function GridViewSection({
|
|
4267
4312
|
children,
|
|
4268
4313
|
padding = "20px"
|
|
4269
4314
|
}) {
|
|
4270
|
-
const { size: size2 } = (0,
|
|
4271
|
-
return /* @__PURE__ */
|
|
4315
|
+
const { size: size2 } = (0, import_react48.useContext)(GridViewContext);
|
|
4316
|
+
return /* @__PURE__ */ import_react48.default.createElement(Grid2, { size: size2, padding }, children);
|
|
4272
4317
|
}
|
|
4273
4318
|
function GridViewSectionHeader({ title }) {
|
|
4274
4319
|
const grouped = title.split("/");
|
|
4275
|
-
return /* @__PURE__ */
|
|
4276
|
-
grouped.map((title2, index) => /* @__PURE__ */
|
|
4277
|
-
/* @__PURE__ */
|
|
4320
|
+
return /* @__PURE__ */ import_react48.default.createElement(SectionHeaderContainer, null, /* @__PURE__ */ import_react48.default.createElement(Spacer.Vertical, { size: 24 }), withSeparatorElements(
|
|
4321
|
+
grouped.map((title2, index) => /* @__PURE__ */ import_react48.default.createElement(SectionTitle, { last: index === grouped.length - 1 }, title2)),
|
|
4322
|
+
/* @__PURE__ */ import_react48.default.createElement(SectionTitle, null, " / ")
|
|
4278
4323
|
));
|
|
4279
4324
|
}
|
|
4280
4325
|
var GridView;
|
|
4281
4326
|
((GridView2) => {
|
|
4282
|
-
GridView2.Root = (0,
|
|
4283
|
-
GridView2.Item = (0,
|
|
4284
|
-
GridView2.Section = (0,
|
|
4285
|
-
GridView2.SectionHeader = (0,
|
|
4327
|
+
GridView2.Root = (0, import_react48.memo)(GridViewRoot);
|
|
4328
|
+
GridView2.Item = (0, import_react48.memo)(GridViewItem);
|
|
4329
|
+
GridView2.Section = (0, import_react48.memo)(GridViewSection);
|
|
4330
|
+
GridView2.SectionHeader = (0, import_react48.memo)(GridViewSectionHeader);
|
|
4286
4331
|
})(GridView || (GridView = {}));
|
|
4287
4332
|
|
|
4288
4333
|
// src/components/InputFieldWithCompletions.tsx
|
|
4289
4334
|
var import_noya_utils8 = require("@noya-app/noya-utils");
|
|
4290
|
-
var
|
|
4335
|
+
var import_react52 = __toESM(require("react"));
|
|
4291
4336
|
var import_styled_components27 = __toESM(require("styled-components"));
|
|
4292
4337
|
|
|
4293
4338
|
// src/utils/fuzzyScorer.ts
|
|
@@ -4364,7 +4409,7 @@ function mergeRanges(ranges) {
|
|
|
4364
4409
|
// src/components/ListView.tsx
|
|
4365
4410
|
var import_noya_utils7 = require("@noya-app/noya-utils");
|
|
4366
4411
|
var import_react_compose_refs2 = require("@radix-ui/react-compose-refs");
|
|
4367
|
-
var
|
|
4412
|
+
var import_react50 = __toESM(require("react"));
|
|
4368
4413
|
var import_react_virtualized = require("react-virtualized");
|
|
4369
4414
|
var import_react_window = require("react-window");
|
|
4370
4415
|
var import_styled_components25 = __toESM(require("styled-components"));
|
|
@@ -4395,7 +4440,7 @@ function mergeEventHandlers(...handlerMaps) {
|
|
|
4395
4440
|
// src/components/Sortable.tsx
|
|
4396
4441
|
var import_core = require("@dnd-kit/core");
|
|
4397
4442
|
var import_sortable = require("@dnd-kit/sortable");
|
|
4398
|
-
var
|
|
4443
|
+
var import_react49 = __toESM(require("react"));
|
|
4399
4444
|
var import_react_dom2 = require("react-dom");
|
|
4400
4445
|
var normalizeListDestinationIndex = (index, position) => {
|
|
4401
4446
|
return position === "above" ? index : index + 1;
|
|
@@ -4409,7 +4454,7 @@ var defaultAcceptsDrop = (sourceIndex, destinationIndex, position) => {
|
|
|
4409
4454
|
}
|
|
4410
4455
|
return true;
|
|
4411
4456
|
};
|
|
4412
|
-
var SortableItemContext = (0,
|
|
4457
|
+
var SortableItemContext = (0, import_react49.createContext)({
|
|
4413
4458
|
keys: [],
|
|
4414
4459
|
position: { x: 0, y: 0 },
|
|
4415
4460
|
acceptsDrop: defaultAcceptsDrop,
|
|
@@ -4431,7 +4476,7 @@ function SortableItem({
|
|
|
4431
4476
|
disabled,
|
|
4432
4477
|
children
|
|
4433
4478
|
}) {
|
|
4434
|
-
const { keys, position, acceptsDrop, setActivatorEvent, axis } = (0,
|
|
4479
|
+
const { keys, position, acceptsDrop, setActivatorEvent, axis } = (0, import_react49.useContext)(SortableItemContext);
|
|
4435
4480
|
const sortable = (0, import_sortable.useSortable)({ id, disabled });
|
|
4436
4481
|
const {
|
|
4437
4482
|
active,
|
|
@@ -4451,7 +4496,7 @@ function SortableItem({
|
|
|
4451
4496
|
const eventY = activatorEvent?.clientY ?? 0;
|
|
4452
4497
|
const offsetLeft = eventX + position.x;
|
|
4453
4498
|
const offsetTop = eventY + position.y;
|
|
4454
|
-
const ref = (0,
|
|
4499
|
+
const ref = (0, import_react49.useCallback)((node) => setNodeRef(node), [setNodeRef]);
|
|
4455
4500
|
return children({
|
|
4456
4501
|
ref,
|
|
4457
4502
|
...attributes,
|
|
@@ -4482,22 +4527,22 @@ function SortableRoot({
|
|
|
4482
4527
|
}
|
|
4483
4528
|
})
|
|
4484
4529
|
);
|
|
4485
|
-
const [activeIndex, setActiveIndex] = (0,
|
|
4486
|
-
const activatorEvent = (0,
|
|
4487
|
-
const setActivatorEvent = (0,
|
|
4530
|
+
const [activeIndex, setActiveIndex] = (0, import_react49.useState)();
|
|
4531
|
+
const activatorEvent = (0, import_react49.useRef)(null);
|
|
4532
|
+
const setActivatorEvent = (0, import_react49.useCallback)((event) => {
|
|
4488
4533
|
activatorEvent.current = event;
|
|
4489
4534
|
}, []);
|
|
4490
|
-
const [position, setPosition] = (0,
|
|
4491
|
-
const handleDragStart = (0,
|
|
4535
|
+
const [position, setPosition] = (0, import_react49.useState)({ x: 0, y: 0 });
|
|
4536
|
+
const handleDragStart = (0, import_react49.useCallback)(
|
|
4492
4537
|
(event) => {
|
|
4493
4538
|
setActiveIndex(keys.indexOf(event.active.id));
|
|
4494
4539
|
},
|
|
4495
4540
|
[keys]
|
|
4496
4541
|
);
|
|
4497
|
-
const handleDragMove = (0,
|
|
4542
|
+
const handleDragMove = (0, import_react49.useCallback)((event) => {
|
|
4498
4543
|
setPosition({ ...event.delta });
|
|
4499
4544
|
}, []);
|
|
4500
|
-
const handleDragEnd = (0,
|
|
4545
|
+
const handleDragEnd = (0, import_react49.useCallback)(
|
|
4501
4546
|
(event) => {
|
|
4502
4547
|
const { active, over } = event;
|
|
4503
4548
|
setActiveIndex(void 0);
|
|
@@ -4524,14 +4569,14 @@ function SortableRoot({
|
|
|
4524
4569
|
},
|
|
4525
4570
|
[acceptsDrop, axis, keys, onMoveItem, position.x, position.y]
|
|
4526
4571
|
);
|
|
4527
|
-
const [mounted, setMounted] = (0,
|
|
4528
|
-
(0,
|
|
4572
|
+
const [mounted, setMounted] = (0, import_react49.useState)(false);
|
|
4573
|
+
(0, import_react49.useEffect)(() => {
|
|
4529
4574
|
setMounted(true);
|
|
4530
4575
|
}, []);
|
|
4531
|
-
return /* @__PURE__ */
|
|
4576
|
+
return /* @__PURE__ */ import_react49.default.createElement(
|
|
4532
4577
|
SortableItemContext.Provider,
|
|
4533
4578
|
{
|
|
4534
|
-
value: (0,
|
|
4579
|
+
value: (0, import_react49.useMemo)(
|
|
4535
4580
|
() => ({
|
|
4536
4581
|
keys,
|
|
4537
4582
|
acceptsDrop,
|
|
@@ -4542,7 +4587,7 @@ function SortableRoot({
|
|
|
4542
4587
|
[acceptsDrop, axis, keys, position, setActivatorEvent]
|
|
4543
4588
|
)
|
|
4544
4589
|
},
|
|
4545
|
-
/* @__PURE__ */
|
|
4590
|
+
/* @__PURE__ */ import_react49.default.createElement(
|
|
4546
4591
|
import_core.DndContext,
|
|
4547
4592
|
{
|
|
4548
4593
|
sensors,
|
|
@@ -4551,9 +4596,9 @@ function SortableRoot({
|
|
|
4551
4596
|
onDragMove: handleDragMove,
|
|
4552
4597
|
onDragEnd: handleDragEnd
|
|
4553
4598
|
},
|
|
4554
|
-
/* @__PURE__ */
|
|
4599
|
+
/* @__PURE__ */ import_react49.default.createElement(import_sortable.SortableContext, { items: keys, strategy: import_sortable.verticalListSortingStrategy }, children),
|
|
4555
4600
|
mounted && renderOverlay && (0, import_react_dom2.createPortal)(
|
|
4556
|
-
/* @__PURE__ */
|
|
4601
|
+
/* @__PURE__ */ import_react49.default.createElement(import_core.DragOverlay, { dropAnimation: null }, activeIndex !== void 0 && activeIndex >= 0 && renderOverlay(activeIndex)),
|
|
4557
4602
|
document.body
|
|
4558
4603
|
)
|
|
4559
4604
|
)
|
|
@@ -4561,17 +4606,18 @@ function SortableRoot({
|
|
|
4561
4606
|
}
|
|
4562
4607
|
var Sortable;
|
|
4563
4608
|
((Sortable2) => {
|
|
4564
|
-
Sortable2.Item = (0,
|
|
4565
|
-
Sortable2.Root = (0,
|
|
4609
|
+
Sortable2.Item = (0, import_react49.memo)(SortableItem);
|
|
4610
|
+
Sortable2.Root = (0, import_react49.memo)(SortableRoot);
|
|
4566
4611
|
})(Sortable || (Sortable = {}));
|
|
4567
4612
|
|
|
4568
4613
|
// src/components/ListView.tsx
|
|
4569
4614
|
var ROW_HEIGHT = 31;
|
|
4570
4615
|
var SECTION_HEADER_LABEL_HEIGHT = 27;
|
|
4571
|
-
var
|
|
4616
|
+
var ListViewDraggingContext = (0, import_react50.createContext)({
|
|
4572
4617
|
indentation: 12
|
|
4573
4618
|
});
|
|
4574
|
-
|
|
4619
|
+
ListViewDraggingContext.displayName = "ListViewDraggingContext";
|
|
4620
|
+
var ListRowContext = (0, import_react50.createContext)({
|
|
4575
4621
|
marginType: "none",
|
|
4576
4622
|
selectedPosition: "only",
|
|
4577
4623
|
sortable: false,
|
|
@@ -4584,6 +4630,7 @@ var ListRowContext = (0, import_react49.createContext)({
|
|
|
4584
4630
|
isSectionHeader: false,
|
|
4585
4631
|
colorScheme: "primary"
|
|
4586
4632
|
});
|
|
4633
|
+
ListRowContext.displayName = "ListRowContext";
|
|
4587
4634
|
var ListViewRowTitle = import_styled_components25.default.span(({ theme }) => ({
|
|
4588
4635
|
flex: "1 1 0",
|
|
4589
4636
|
overflow: "hidden",
|
|
@@ -4601,8 +4648,8 @@ function ListViewEditableRowTitle({
|
|
|
4601
4648
|
autoFocus,
|
|
4602
4649
|
placeholder
|
|
4603
4650
|
}) {
|
|
4604
|
-
const inputRef = (0,
|
|
4605
|
-
(0,
|
|
4651
|
+
const inputRef = (0, import_react50.useRef)(null);
|
|
4652
|
+
(0, import_react50.useLayoutEffect)(() => {
|
|
4606
4653
|
const element = inputRef.current;
|
|
4607
4654
|
if (!element || !autoFocus)
|
|
4608
4655
|
return;
|
|
@@ -4611,7 +4658,7 @@ function ListViewEditableRowTitle({
|
|
|
4611
4658
|
element.select();
|
|
4612
4659
|
}, 0);
|
|
4613
4660
|
}, [autoFocus]);
|
|
4614
|
-
return /* @__PURE__ */
|
|
4661
|
+
return /* @__PURE__ */ import_react50.default.createElement(
|
|
4615
4662
|
ListViewEditableRowTitleElement,
|
|
4616
4663
|
{
|
|
4617
4664
|
ref: inputRef,
|
|
@@ -4733,7 +4780,7 @@ var ListViewDragIndicatorElement = import_styled_components25.default.div(({ the
|
|
|
4733
4780
|
boxShadow: "0 0 2px rgba(0,0,0,0.5)"
|
|
4734
4781
|
}
|
|
4735
4782
|
}));
|
|
4736
|
-
var ListViewRow = (0,
|
|
4783
|
+
var ListViewRow = (0, import_react50.forwardRef)(function ListViewRow2({
|
|
4737
4784
|
id,
|
|
4738
4785
|
tabIndex = 0,
|
|
4739
4786
|
gap,
|
|
@@ -4767,12 +4814,12 @@ var ListViewRow = (0, import_react49.forwardRef)(function ListViewRow2({
|
|
|
4767
4814
|
divider,
|
|
4768
4815
|
gap: listGap,
|
|
4769
4816
|
colorScheme
|
|
4770
|
-
} = (0,
|
|
4817
|
+
} = (0, import_react50.useContext)(ListRowContext);
|
|
4771
4818
|
const { hoverProps } = useHover({
|
|
4772
4819
|
onHoverChange
|
|
4773
4820
|
});
|
|
4774
|
-
const { indentation, isDragging } = (0,
|
|
4775
|
-
const handlePress = (0,
|
|
4821
|
+
const { indentation, isDragging } = (0, import_react50.useContext)(ListViewDraggingContext);
|
|
4822
|
+
const handlePress = (0, import_react50.useCallback)(
|
|
4776
4823
|
(event) => {
|
|
4777
4824
|
event.preventDefault();
|
|
4778
4825
|
if (event.button !== 0)
|
|
@@ -4781,14 +4828,14 @@ var ListViewRow = (0, import_react49.forwardRef)(function ListViewRow2({
|
|
|
4781
4828
|
},
|
|
4782
4829
|
[onPress]
|
|
4783
4830
|
);
|
|
4784
|
-
const handleDoubleClick = (0,
|
|
4831
|
+
const handleDoubleClick = (0, import_react50.useCallback)(
|
|
4785
4832
|
(event) => {
|
|
4786
4833
|
event.stopPropagation();
|
|
4787
4834
|
onDoubleClick?.();
|
|
4788
4835
|
},
|
|
4789
4836
|
[onDoubleClick]
|
|
4790
4837
|
);
|
|
4791
|
-
const mergedStyle = (0,
|
|
4838
|
+
const mergedStyle = (0, import_react50.useMemo)(() => {
|
|
4792
4839
|
return isDragging ? {
|
|
4793
4840
|
// TODO: Where do these offsets actually come from?
|
|
4794
4841
|
transform: `translate3d(-36px, -6px, 0)`,
|
|
@@ -4801,7 +4848,7 @@ var ListViewRow = (0, import_react49.forwardRef)(function ListViewRow2({
|
|
|
4801
4848
|
...renderProps
|
|
4802
4849
|
}, ref) => {
|
|
4803
4850
|
const Component = RowContainer;
|
|
4804
|
-
const element = /* @__PURE__ */
|
|
4851
|
+
const element = /* @__PURE__ */ import_react50.default.createElement(
|
|
4805
4852
|
Component,
|
|
4806
4853
|
{
|
|
4807
4854
|
ref,
|
|
@@ -4832,7 +4879,7 @@ var ListViewRow = (0, import_react49.forwardRef)(function ListViewRow2({
|
|
|
4832
4879
|
),
|
|
4833
4880
|
tabIndex
|
|
4834
4881
|
},
|
|
4835
|
-
relativeDropPosition && /* @__PURE__ */
|
|
4882
|
+
relativeDropPosition && /* @__PURE__ */ import_react50.default.createElement(
|
|
4836
4883
|
ListViewDragIndicatorElement,
|
|
4837
4884
|
{
|
|
4838
4885
|
$colorScheme: colorScheme,
|
|
@@ -4846,11 +4893,11 @@ var ListViewRow = (0, import_react49.forwardRef)(function ListViewRow2({
|
|
|
4846
4893
|
}) : dragIndicatorStyle
|
|
4847
4894
|
}
|
|
4848
4895
|
),
|
|
4849
|
-
depth > 0 && /* @__PURE__ */
|
|
4896
|
+
depth > 0 && /* @__PURE__ */ import_react50.default.createElement(Spacer.Horizontal, { size: depth * indentation }),
|
|
4850
4897
|
children
|
|
4851
4898
|
);
|
|
4852
4899
|
if (menuItems && onSelectMenuItem) {
|
|
4853
|
-
return /* @__PURE__ */
|
|
4900
|
+
return /* @__PURE__ */ import_react50.default.createElement(
|
|
4854
4901
|
ContextMenu,
|
|
4855
4902
|
{
|
|
4856
4903
|
items: menuItems,
|
|
@@ -4863,24 +4910,25 @@ var ListViewRow = (0, import_react49.forwardRef)(function ListViewRow2({
|
|
|
4863
4910
|
return element;
|
|
4864
4911
|
};
|
|
4865
4912
|
if (sortable && id) {
|
|
4866
|
-
return /* @__PURE__ */
|
|
4913
|
+
return /* @__PURE__ */ import_react50.default.createElement(Sortable.Item, { id, disabled: overrideSortable === false }, ({ ref: sortableRef, ...sortableProps }) => renderContent(
|
|
4867
4914
|
sortableProps,
|
|
4868
4915
|
(0, import_react_compose_refs2.composeRefs)(sortableRef, forwardedRef)
|
|
4869
4916
|
));
|
|
4870
4917
|
}
|
|
4871
4918
|
return renderContent({}, forwardedRef);
|
|
4872
4919
|
});
|
|
4873
|
-
var RenderItemContext = (0,
|
|
4920
|
+
var RenderItemContext = (0, import_react50.createContext)(
|
|
4874
4921
|
() => null
|
|
4875
4922
|
);
|
|
4876
|
-
|
|
4923
|
+
RenderItemContext.displayName = "RenderItemContext";
|
|
4924
|
+
var VirtualizedListRow = (0, import_react50.memo)(function VirtualizedListRow2({
|
|
4877
4925
|
index,
|
|
4878
4926
|
style: style3
|
|
4879
4927
|
}) {
|
|
4880
|
-
const renderItem = (0,
|
|
4881
|
-
return /* @__PURE__ */
|
|
4928
|
+
const renderItem = (0, import_react50.useContext)(RenderItemContext);
|
|
4929
|
+
return /* @__PURE__ */ import_react50.default.createElement("div", { key: index, style: style3 }, renderItem(index));
|
|
4882
4930
|
});
|
|
4883
|
-
var VirtualizedListInner = (0,
|
|
4931
|
+
var VirtualizedListInner = (0, import_react50.forwardRef)(function VirtualizedListInner2({
|
|
4884
4932
|
size: size2,
|
|
4885
4933
|
scrollElement,
|
|
4886
4934
|
items,
|
|
@@ -4888,20 +4936,20 @@ var VirtualizedListInner = (0, import_react49.forwardRef)(function VirtualizedLi
|
|
|
4888
4936
|
keyExtractor,
|
|
4889
4937
|
renderItem
|
|
4890
4938
|
}, ref) {
|
|
4891
|
-
const listRef = (0,
|
|
4892
|
-
(0,
|
|
4939
|
+
const listRef = (0, import_react50.useRef)(null);
|
|
4940
|
+
(0, import_react50.useImperativeHandle)(ref, () => ({
|
|
4893
4941
|
scrollToIndex(index) {
|
|
4894
4942
|
listRef.current?.scrollToItem(index);
|
|
4895
4943
|
}
|
|
4896
4944
|
}));
|
|
4897
|
-
(0,
|
|
4945
|
+
(0, import_react50.useLayoutEffect)(() => {
|
|
4898
4946
|
listRef.current?.resetAfterIndex(0);
|
|
4899
4947
|
}, [
|
|
4900
4948
|
// When items change, we need to re-render the virtualized list,
|
|
4901
4949
|
// since it doesn't currently support row height changes
|
|
4902
4950
|
items
|
|
4903
4951
|
]);
|
|
4904
|
-
const listStyle = (0,
|
|
4952
|
+
const listStyle = (0, import_react50.useMemo)(
|
|
4905
4953
|
() => ({
|
|
4906
4954
|
overflowX: "initial",
|
|
4907
4955
|
overflowY: "initial",
|
|
@@ -4909,18 +4957,18 @@ var VirtualizedListInner = (0, import_react49.forwardRef)(function VirtualizedLi
|
|
|
4909
4957
|
}),
|
|
4910
4958
|
[]
|
|
4911
4959
|
);
|
|
4912
|
-
return /* @__PURE__ */
|
|
4960
|
+
return /* @__PURE__ */ import_react50.default.createElement(RenderItemContext.Provider, { value: renderItem }, /* @__PURE__ */ import_react50.default.createElement(
|
|
4913
4961
|
import_react_virtualized.WindowScroller,
|
|
4914
4962
|
{
|
|
4915
4963
|
scrollElement,
|
|
4916
|
-
style: (0,
|
|
4964
|
+
style: (0, import_react50.useMemo)(() => ({ flex: "1 1 auto" }), [])
|
|
4917
4965
|
},
|
|
4918
|
-
(0,
|
|
4966
|
+
(0, import_react50.useCallback)(
|
|
4919
4967
|
({
|
|
4920
4968
|
registerChild,
|
|
4921
4969
|
onChildScroll,
|
|
4922
4970
|
scrollTop
|
|
4923
|
-
}) => /* @__PURE__ */
|
|
4971
|
+
}) => /* @__PURE__ */ import_react50.default.createElement("div", { ref: registerChild }, /* @__PURE__ */ import_react50.default.createElement(
|
|
4924
4972
|
import_react_window.VariableSizeList,
|
|
4925
4973
|
{
|
|
4926
4974
|
ref: listRef,
|
|
@@ -4950,7 +4998,7 @@ var VirtualizedListInner = (0, import_react49.forwardRef)(function VirtualizedLi
|
|
|
4950
4998
|
)
|
|
4951
4999
|
));
|
|
4952
5000
|
});
|
|
4953
|
-
var VirtualizedList = (0,
|
|
5001
|
+
var VirtualizedList = (0, import_react50.memo)(
|
|
4954
5002
|
VirtualizedListInner
|
|
4955
5003
|
);
|
|
4956
5004
|
var RootContainer2 = import_styled_components25.default.div(({ theme, $scrollable, $gap }) => ({
|
|
@@ -4961,7 +5009,7 @@ var RootContainer2 = import_styled_components25.default.div(({ theme, $scrollabl
|
|
|
4961
5009
|
color: theme.colors.textMuted,
|
|
4962
5010
|
gap: $gap
|
|
4963
5011
|
}));
|
|
4964
|
-
var ListViewRootInner = (0,
|
|
5012
|
+
var ListViewRootInner = (0, import_react50.forwardRef)(function ListViewRootInner2({
|
|
4965
5013
|
id,
|
|
4966
5014
|
className,
|
|
4967
5015
|
style: style3,
|
|
@@ -4983,7 +5031,7 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
|
|
|
4983
5031
|
colorScheme = "primary",
|
|
4984
5032
|
gap = 0
|
|
4985
5033
|
}, forwardedRef) {
|
|
4986
|
-
const handleClick = (0,
|
|
5034
|
+
const handleClick = (0, import_react50.useCallback)(
|
|
4987
5035
|
(event) => {
|
|
4988
5036
|
if (event.target instanceof HTMLElement && event.target.classList.contains("scroll-component"))
|
|
4989
5037
|
return;
|
|
@@ -4993,19 +5041,37 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
|
|
|
4993
5041
|
},
|
|
4994
5042
|
[onPress]
|
|
4995
5043
|
);
|
|
4996
|
-
const renderChild = (0,
|
|
5044
|
+
const renderChild = (0, import_react50.useCallback)(
|
|
4997
5045
|
(index) => renderItem(data[index], index, { isDragging: false }),
|
|
4998
5046
|
[data, renderItem]
|
|
4999
5047
|
);
|
|
5000
|
-
const
|
|
5048
|
+
const defaultContextValue = (0, import_react50.useMemo)(
|
|
5049
|
+
() => ({
|
|
5050
|
+
colorScheme,
|
|
5051
|
+
marginType: "none",
|
|
5052
|
+
selectedPosition: "only",
|
|
5053
|
+
sortable,
|
|
5054
|
+
expandable,
|
|
5055
|
+
divider,
|
|
5056
|
+
pressEventName,
|
|
5057
|
+
variant,
|
|
5058
|
+
gap,
|
|
5059
|
+
sectionHeaderVariant: "normal",
|
|
5060
|
+
isSectionHeader: false
|
|
5061
|
+
}),
|
|
5062
|
+
[colorScheme, sortable, expandable, divider, pressEventName, variant, gap]
|
|
5063
|
+
);
|
|
5064
|
+
const getItemContextValue = (0, import_react50.useCallback)(
|
|
5001
5065
|
(i) => {
|
|
5066
|
+
if (variant === "bare" || variant === "normal")
|
|
5067
|
+
return defaultContextValue;
|
|
5002
5068
|
const current = renderChild(i);
|
|
5003
|
-
if (!(0,
|
|
5069
|
+
if (!(0, import_react50.isValidElement)(current))
|
|
5004
5070
|
return;
|
|
5005
5071
|
const prevChild = i - 1 >= 0 && renderChild(i - 1);
|
|
5006
5072
|
const nextChild = i + 1 < data.length && renderChild(i + 1);
|
|
5007
|
-
const next = (0,
|
|
5008
|
-
const prev = (0,
|
|
5073
|
+
const next = (0, import_react50.isValidElement)(nextChild) ? nextChild : void 0;
|
|
5074
|
+
const prev = (0, import_react50.isValidElement)(prevChild) ? prevChild : void 0;
|
|
5009
5075
|
const hasMarginTop = !prev;
|
|
5010
5076
|
const hasMarginBottom = !next || current.props.isSectionHeader || next && next.props.isSectionHeader;
|
|
5011
5077
|
let marginType;
|
|
@@ -5045,6 +5111,8 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
|
|
|
5045
5111
|
};
|
|
5046
5112
|
},
|
|
5047
5113
|
[
|
|
5114
|
+
variant,
|
|
5115
|
+
defaultContextValue,
|
|
5048
5116
|
renderChild,
|
|
5049
5117
|
data.length,
|
|
5050
5118
|
colorScheme,
|
|
@@ -5052,31 +5120,30 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
|
|
|
5052
5120
|
expandable,
|
|
5053
5121
|
divider,
|
|
5054
5122
|
pressEventName,
|
|
5055
|
-
variant,
|
|
5056
5123
|
sectionHeaderVariant,
|
|
5057
5124
|
gap
|
|
5058
5125
|
]
|
|
5059
5126
|
);
|
|
5060
|
-
const draggingContextOverlayValue = (0,
|
|
5127
|
+
const draggingContextOverlayValue = (0, import_react50.useMemo)(
|
|
5061
5128
|
() => ({ indentation, isDragging: true }),
|
|
5062
5129
|
[indentation]
|
|
5063
5130
|
);
|
|
5064
|
-
const renderOverlay = (0,
|
|
5065
|
-
(index) => /* @__PURE__ */
|
|
5131
|
+
const renderOverlay = (0, import_react50.useCallback)(
|
|
5132
|
+
(index) => /* @__PURE__ */ import_react50.default.createElement("div", { style: { opacity: 0.25 } }, /* @__PURE__ */ import_react50.default.createElement(ListViewDraggingContext.Provider, { value: draggingContextOverlayValue }, renderItem(data[index], index, { isDragging: true }))),
|
|
5066
5133
|
[draggingContextOverlayValue, renderItem, data]
|
|
5067
5134
|
);
|
|
5068
|
-
const renderWrappedChild = (0,
|
|
5135
|
+
const renderWrappedChild = (0, import_react50.useCallback)(
|
|
5069
5136
|
(index) => {
|
|
5070
5137
|
const contextValue = getItemContextValue(index);
|
|
5071
5138
|
const current = renderChild(index);
|
|
5072
|
-
if (!contextValue || !(0,
|
|
5139
|
+
if (!contextValue || !(0, import_react50.isValidElement)(current))
|
|
5073
5140
|
return null;
|
|
5074
|
-
return /* @__PURE__ */
|
|
5141
|
+
return /* @__PURE__ */ import_react50.default.createElement(ListRowContext.Provider, { key: current.key, value: contextValue }, current);
|
|
5075
5142
|
},
|
|
5076
5143
|
[getItemContextValue, renderChild]
|
|
5077
5144
|
);
|
|
5078
|
-
const ids = (0,
|
|
5079
|
-
const withSortable = (children) => sortable ? /* @__PURE__ */
|
|
5145
|
+
const ids = (0, import_react50.useMemo)(() => data.map(keyExtractor), [keyExtractor, data]);
|
|
5146
|
+
const withSortable = (children) => sortable ? /* @__PURE__ */ import_react50.default.createElement(
|
|
5080
5147
|
Sortable.Root,
|
|
5081
5148
|
{
|
|
5082
5149
|
onMoveItem,
|
|
@@ -5086,8 +5153,8 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
|
|
|
5086
5153
|
},
|
|
5087
5154
|
children
|
|
5088
5155
|
) : children;
|
|
5089
|
-
const withScrollable = (children) => scrollable ? /* @__PURE__ */
|
|
5090
|
-
const getItemHeight = (0,
|
|
5156
|
+
const withScrollable = (children) => scrollable ? /* @__PURE__ */ import_react50.default.createElement(ScrollArea, null, children) : children(null);
|
|
5157
|
+
const getItemHeight = (0, import_react50.useCallback)(
|
|
5091
5158
|
(index) => {
|
|
5092
5159
|
const child = getItemContextValue(index);
|
|
5093
5160
|
const margin = child?.marginType ? getPositionMargin(child.marginType) : { top: 0, bottom: 0 };
|
|
@@ -5096,12 +5163,12 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
|
|
|
5096
5163
|
},
|
|
5097
5164
|
[getItemContextValue, variant]
|
|
5098
5165
|
);
|
|
5099
|
-
const getKey = (0,
|
|
5166
|
+
const getKey = (0, import_react50.useCallback)(
|
|
5100
5167
|
(index) => keyExtractor(data[index], index),
|
|
5101
5168
|
[data, keyExtractor]
|
|
5102
5169
|
);
|
|
5103
|
-
const draggingContextValue = (0,
|
|
5104
|
-
return /* @__PURE__ */
|
|
5170
|
+
const draggingContextValue = (0, import_react50.useMemo)(() => ({ indentation }), [indentation]);
|
|
5171
|
+
return /* @__PURE__ */ import_react50.default.createElement(ListViewDraggingContext.Provider, { value: draggingContextValue }, /* @__PURE__ */ import_react50.default.createElement(
|
|
5105
5172
|
RootContainer2,
|
|
5106
5173
|
{
|
|
5107
5174
|
id,
|
|
@@ -5115,7 +5182,7 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
|
|
|
5115
5182
|
},
|
|
5116
5183
|
withScrollable(
|
|
5117
5184
|
(scrollElementRef) => withSortable(
|
|
5118
|
-
virtualized ? /* @__PURE__ */
|
|
5185
|
+
virtualized ? /* @__PURE__ */ import_react50.default.createElement(
|
|
5119
5186
|
VirtualizedList,
|
|
5120
5187
|
{
|
|
5121
5188
|
ref: forwardedRef,
|
|
@@ -5131,42 +5198,42 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
|
|
|
5131
5198
|
)
|
|
5132
5199
|
));
|
|
5133
5200
|
});
|
|
5134
|
-
var ListViewRoot = (0,
|
|
5135
|
-
var ChildrenListViewInner = (0,
|
|
5136
|
-
const items = (0,
|
|
5137
|
-
() =>
|
|
5138
|
-
(child) => (0,
|
|
5201
|
+
var ListViewRoot = (0, import_react50.memo)(ListViewRootInner);
|
|
5202
|
+
var ChildrenListViewInner = (0, import_react50.forwardRef)(function ChildrenListViewInner2({ children, ...rest }, forwardedRef) {
|
|
5203
|
+
const items = (0, import_react50.useMemo)(
|
|
5204
|
+
() => import_react50.Children.toArray(children).flatMap(
|
|
5205
|
+
(child) => (0, import_react50.isValidElement)(child) ? [child] : []
|
|
5139
5206
|
),
|
|
5140
5207
|
[children]
|
|
5141
5208
|
);
|
|
5142
|
-
return /* @__PURE__ */
|
|
5209
|
+
return /* @__PURE__ */ import_react50.default.createElement(
|
|
5143
5210
|
ListViewRoot,
|
|
5144
5211
|
{
|
|
5145
5212
|
ref: forwardedRef,
|
|
5146
5213
|
...rest,
|
|
5147
5214
|
data: items,
|
|
5148
|
-
keyExtractor: (0,
|
|
5215
|
+
keyExtractor: (0, import_react50.useCallback)(
|
|
5149
5216
|
({ key }, index) => typeof key === "string" ? key : (key ?? index).toString(),
|
|
5150
5217
|
[]
|
|
5151
5218
|
),
|
|
5152
|
-
renderItem: (0,
|
|
5219
|
+
renderItem: (0, import_react50.useCallback)((item) => item, [])
|
|
5153
5220
|
}
|
|
5154
5221
|
);
|
|
5155
5222
|
});
|
|
5156
|
-
var ChildrenListView = (0,
|
|
5157
|
-
var SimpleListViewInner = (0,
|
|
5223
|
+
var ChildrenListView = (0, import_react50.memo)(ChildrenListViewInner);
|
|
5224
|
+
var SimpleListViewInner = (0, import_react50.forwardRef)(function SimpleListViewInner2(props, forwardedRef) {
|
|
5158
5225
|
if ("children" in props) {
|
|
5159
|
-
return /* @__PURE__ */
|
|
5226
|
+
return /* @__PURE__ */ import_react50.default.createElement(ChildrenListView, { ref: forwardedRef, ...props });
|
|
5160
5227
|
} else {
|
|
5161
|
-
return /* @__PURE__ */
|
|
5228
|
+
return /* @__PURE__ */ import_react50.default.createElement(ListViewRoot, { ref: forwardedRef, ...props });
|
|
5162
5229
|
}
|
|
5163
5230
|
});
|
|
5164
|
-
var SimpleListView = (0,
|
|
5231
|
+
var SimpleListView = (0, import_react50.memo)(SimpleListViewInner);
|
|
5165
5232
|
var ListView;
|
|
5166
5233
|
((ListView2) => {
|
|
5167
|
-
ListView2.RowTitle = (0,
|
|
5168
|
-
ListView2.EditableRowTitle = (0,
|
|
5169
|
-
ListView2.Row = (0,
|
|
5234
|
+
ListView2.RowTitle = (0, import_react50.memo)(ListViewRowTitle);
|
|
5235
|
+
ListView2.EditableRowTitle = (0, import_react50.memo)(ListViewEditableRowTitle);
|
|
5236
|
+
ListView2.Row = (0, import_react50.memo)(ListViewRow);
|
|
5170
5237
|
ListView2.Root = SimpleListView;
|
|
5171
5238
|
ListView2.RowContext = ListRowContext;
|
|
5172
5239
|
ListView2.DragIndicator = ListViewDragIndicatorElement;
|
|
@@ -5179,7 +5246,7 @@ var ListView;
|
|
|
5179
5246
|
})(ListView || (ListView = {}));
|
|
5180
5247
|
|
|
5181
5248
|
// src/components/Text.tsx
|
|
5182
|
-
var
|
|
5249
|
+
var import_react51 = __toESM(require("react"));
|
|
5183
5250
|
var import_styled_components26 = __toESM(require("styled-components"));
|
|
5184
5251
|
var elements = {
|
|
5185
5252
|
title: "h1",
|
|
@@ -5201,7 +5268,7 @@ var StyledElement = import_styled_components26.default.span(({ theme, $variant,
|
|
|
5201
5268
|
...$styleProps,
|
|
5202
5269
|
...mergeBreakpoints($breakpoints || [])
|
|
5203
5270
|
}));
|
|
5204
|
-
var Text = (0,
|
|
5271
|
+
var Text = (0, import_react51.forwardRef)(function Text2({
|
|
5205
5272
|
as,
|
|
5206
5273
|
variant,
|
|
5207
5274
|
breakpoints,
|
|
@@ -5215,7 +5282,7 @@ var Text = (0, import_react50.forwardRef)(function Text2({
|
|
|
5215
5282
|
...rest
|
|
5216
5283
|
}, forwardedRef) {
|
|
5217
5284
|
const element = as ?? elements[variant] ?? "span";
|
|
5218
|
-
return /* @__PURE__ */
|
|
5285
|
+
return /* @__PURE__ */ import_react51.default.createElement(
|
|
5219
5286
|
StyledElement,
|
|
5220
5287
|
{
|
|
5221
5288
|
ref: forwardedRef,
|
|
@@ -5233,28 +5300,28 @@ var Text = (0, import_react50.forwardRef)(function Text2({
|
|
|
5233
5300
|
children
|
|
5234
5301
|
);
|
|
5235
5302
|
});
|
|
5236
|
-
var Heading1 = (0,
|
|
5237
|
-
(props, ref) => /* @__PURE__ */
|
|
5303
|
+
var Heading1 = (0, import_react51.forwardRef)(
|
|
5304
|
+
(props, ref) => /* @__PURE__ */ import_react51.default.createElement(Text, { ref, ...props, variant: "heading1" })
|
|
5238
5305
|
);
|
|
5239
|
-
var Heading2 = (0,
|
|
5240
|
-
(props, ref) => /* @__PURE__ */
|
|
5306
|
+
var Heading2 = (0, import_react51.forwardRef)(
|
|
5307
|
+
(props, ref) => /* @__PURE__ */ import_react51.default.createElement(Text, { ref, ...props, variant: "heading2" })
|
|
5241
5308
|
);
|
|
5242
|
-
var Heading3 = (0,
|
|
5243
|
-
(props, ref) => /* @__PURE__ */
|
|
5309
|
+
var Heading3 = (0, import_react51.forwardRef)(
|
|
5310
|
+
(props, ref) => /* @__PURE__ */ import_react51.default.createElement(Text, { ref, ...props, variant: "heading3" })
|
|
5244
5311
|
);
|
|
5245
|
-
var Heading4 = (0,
|
|
5246
|
-
(props, ref) => /* @__PURE__ */
|
|
5312
|
+
var Heading4 = (0, import_react51.forwardRef)(
|
|
5313
|
+
(props, ref) => /* @__PURE__ */ import_react51.default.createElement(Text, { ref, ...props, variant: "heading4" })
|
|
5247
5314
|
);
|
|
5248
|
-
var Heading5 = (0,
|
|
5249
|
-
(props, ref) => /* @__PURE__ */
|
|
5315
|
+
var Heading5 = (0, import_react51.forwardRef)(
|
|
5316
|
+
(props, ref) => /* @__PURE__ */ import_react51.default.createElement(Text, { ref, ...props, variant: "heading5" })
|
|
5250
5317
|
);
|
|
5251
|
-
var Body = (0,
|
|
5252
|
-
(props, ref) => /* @__PURE__ */
|
|
5318
|
+
var Body = (0, import_react51.forwardRef)(
|
|
5319
|
+
(props, ref) => /* @__PURE__ */ import_react51.default.createElement(Text, { ref, ...props, variant: "body" })
|
|
5253
5320
|
);
|
|
5254
|
-
var Small = (0,
|
|
5255
|
-
(props, ref) => /* @__PURE__ */
|
|
5321
|
+
var Small = (0, import_react51.forwardRef)(
|
|
5322
|
+
(props, ref) => /* @__PURE__ */ import_react51.default.createElement(Text, { ref, ...props, variant: "small" })
|
|
5256
5323
|
);
|
|
5257
|
-
var Italic = ({ children }) => /* @__PURE__ */
|
|
5324
|
+
var Italic = ({ children }) => /* @__PURE__ */ import_react51.default.createElement(
|
|
5258
5325
|
"span",
|
|
5259
5326
|
{
|
|
5260
5327
|
style: {
|
|
@@ -5296,15 +5363,15 @@ var CompletionToken = import_styled_components27.default.span(
|
|
|
5296
5363
|
whiteSpace: "pre"
|
|
5297
5364
|
})
|
|
5298
5365
|
);
|
|
5299
|
-
var CompletionMenu = (0,
|
|
5300
|
-
(0,
|
|
5366
|
+
var CompletionMenu = (0, import_react52.memo)(
|
|
5367
|
+
(0, import_react52.forwardRef)(function CompletionMenu2({
|
|
5301
5368
|
items,
|
|
5302
5369
|
selectedIndex,
|
|
5303
5370
|
onSelectItem,
|
|
5304
5371
|
onHoverIndex,
|
|
5305
5372
|
listSize
|
|
5306
5373
|
}, forwardedRef) {
|
|
5307
|
-
return /* @__PURE__ */
|
|
5374
|
+
return /* @__PURE__ */ import_react52.default.createElement(
|
|
5308
5375
|
ListView.Root,
|
|
5309
5376
|
{
|
|
5310
5377
|
ref: forwardedRef,
|
|
@@ -5316,13 +5383,13 @@ var CompletionMenu = (0, import_react51.memo)(
|
|
|
5316
5383
|
sectionHeaderVariant: "label",
|
|
5317
5384
|
renderItem: (item, i) => {
|
|
5318
5385
|
if (item.type === "sectionHeader") {
|
|
5319
|
-
return /* @__PURE__ */
|
|
5386
|
+
return /* @__PURE__ */ import_react52.default.createElement(ListView.Row, { key: item.id, isSectionHeader: true }, item.name);
|
|
5320
5387
|
}
|
|
5321
5388
|
const tokens = fuzzyTokenize({
|
|
5322
5389
|
item: item.name,
|
|
5323
5390
|
itemScore: item
|
|
5324
5391
|
});
|
|
5325
|
-
return /* @__PURE__ */
|
|
5392
|
+
return /* @__PURE__ */ import_react52.default.createElement(
|
|
5326
5393
|
ListView.Row,
|
|
5327
5394
|
{
|
|
5328
5395
|
key: item.id,
|
|
@@ -5334,16 +5401,16 @@ var CompletionMenu = (0, import_react51.memo)(
|
|
|
5334
5401
|
}
|
|
5335
5402
|
}
|
|
5336
5403
|
},
|
|
5337
|
-
tokens.map((token, j) => /* @__PURE__ */
|
|
5338
|
-
item.icon && /* @__PURE__ */
|
|
5404
|
+
tokens.map((token, j) => /* @__PURE__ */ import_react52.default.createElement(CompletionToken, { key: j, $type: token.type }, token.text)),
|
|
5405
|
+
item.icon && /* @__PURE__ */ import_react52.default.createElement(import_react52.default.Fragment, null, /* @__PURE__ */ import_react52.default.createElement(Spacer.Horizontal, null), item.icon)
|
|
5339
5406
|
);
|
|
5340
5407
|
}
|
|
5341
5408
|
}
|
|
5342
5409
|
);
|
|
5343
5410
|
})
|
|
5344
5411
|
);
|
|
5345
|
-
var InputFieldWithCompletions = (0,
|
|
5346
|
-
(0,
|
|
5412
|
+
var InputFieldWithCompletions = (0, import_react52.memo)(
|
|
5413
|
+
(0, import_react52.forwardRef)(function InputFieldWithCompletions2({
|
|
5347
5414
|
loading,
|
|
5348
5415
|
initialValue = "",
|
|
5349
5416
|
placeholder,
|
|
@@ -5361,13 +5428,13 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
|
|
|
5361
5428
|
hideChildrenWhenFocused = false,
|
|
5362
5429
|
hideMenuWhenEmptyValue = false
|
|
5363
5430
|
}, forwardedRef) {
|
|
5364
|
-
const ref = (0,
|
|
5365
|
-
const [isFocused, setIsFocused] = (0,
|
|
5366
|
-
const [state, _setState] = (0,
|
|
5431
|
+
const ref = (0, import_react52.useRef)(null);
|
|
5432
|
+
const [isFocused, setIsFocused] = (0, import_react52.useState)(false);
|
|
5433
|
+
const [state, _setState] = (0, import_react52.useState)({
|
|
5367
5434
|
filter: initialValue,
|
|
5368
5435
|
selectedIndex: 0
|
|
5369
5436
|
});
|
|
5370
|
-
const updateState = (0,
|
|
5437
|
+
const updateState = (0, import_react52.useCallback)(
|
|
5371
5438
|
(newState, hoverItem) => {
|
|
5372
5439
|
const nextState = { ...state, ...newState };
|
|
5373
5440
|
const nextItems = filterWithGroupedSections(items, nextState.filter);
|
|
@@ -5396,16 +5463,16 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
|
|
|
5396
5463
|
},
|
|
5397
5464
|
[items, onChange, onHoverItem, state]
|
|
5398
5465
|
);
|
|
5399
|
-
const initialValueRef = (0,
|
|
5400
|
-
(0,
|
|
5466
|
+
const initialValueRef = (0, import_react52.useRef)(initialValue);
|
|
5467
|
+
(0, import_react52.useLayoutEffect)(() => {
|
|
5401
5468
|
if (initialValueRef.current === initialValue)
|
|
5402
5469
|
return;
|
|
5403
5470
|
initialValueRef.current = initialValue;
|
|
5404
5471
|
updateState({ filter: initialValue });
|
|
5405
5472
|
}, [initialValue, updateState]);
|
|
5406
5473
|
const { filter, selectedIndex } = state;
|
|
5407
|
-
const listRef =
|
|
5408
|
-
const filteredItems = (0,
|
|
5474
|
+
const listRef = import_react52.default.useRef(null);
|
|
5475
|
+
const filteredItems = (0, import_react52.useMemo)(
|
|
5409
5476
|
() => filterWithGroupedSections(items, filter),
|
|
5410
5477
|
[items, filter]
|
|
5411
5478
|
);
|
|
@@ -5421,13 +5488,13 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
|
|
|
5421
5488
|
),
|
|
5422
5489
|
ListView.rowHeight * 10.5
|
|
5423
5490
|
);
|
|
5424
|
-
(0,
|
|
5491
|
+
(0, import_react52.useEffect)(() => {
|
|
5425
5492
|
if (listRef.current) {
|
|
5426
5493
|
listRef.current.scrollToIndex(selectedIndex);
|
|
5427
5494
|
}
|
|
5428
5495
|
}, [selectedIndex]);
|
|
5429
|
-
const lastSubmittedValueRef = (0,
|
|
5430
|
-
const selectItem = (0,
|
|
5496
|
+
const lastSubmittedValueRef = (0, import_react52.useRef)(void 0);
|
|
5497
|
+
const selectItem = (0, import_react52.useCallback)(
|
|
5431
5498
|
(item) => {
|
|
5432
5499
|
if (item.type === "sectionHeader")
|
|
5433
5500
|
return;
|
|
@@ -5443,17 +5510,17 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
|
|
|
5443
5510
|
},
|
|
5444
5511
|
[filter, onSelectItem, onHoverItem, ref]
|
|
5445
5512
|
);
|
|
5446
|
-
const handleChange = (0,
|
|
5513
|
+
const handleChange = (0, import_react52.useCallback)(
|
|
5447
5514
|
(value) => updateState({ selectedIndex: 0, filter: value }),
|
|
5448
5515
|
[updateState]
|
|
5449
5516
|
);
|
|
5450
|
-
const handleBlur = (0,
|
|
5517
|
+
const handleBlur = (0, import_react52.useCallback)(() => {
|
|
5451
5518
|
setIsFocused(false);
|
|
5452
5519
|
const didSubmit = lastSubmittedValueRef.current?.filter === filter;
|
|
5453
5520
|
updateState({ selectedIndex: 0, filter: initialValue }, "resetHover");
|
|
5454
5521
|
onBlur?.(didSubmit, filter);
|
|
5455
5522
|
}, [filter, initialValue, onBlur, updateState]);
|
|
5456
|
-
const handleFocus = (0,
|
|
5523
|
+
const handleFocus = (0, import_react52.useCallback)(
|
|
5457
5524
|
(event) => {
|
|
5458
5525
|
setIsFocused(true);
|
|
5459
5526
|
updateState({ selectedIndex: 0, filter: initialValue });
|
|
@@ -5461,11 +5528,11 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
|
|
|
5461
5528
|
},
|
|
5462
5529
|
[initialValue, onFocus, updateState]
|
|
5463
5530
|
);
|
|
5464
|
-
const handleIndexChange = (0,
|
|
5531
|
+
const handleIndexChange = (0, import_react52.useCallback)(
|
|
5465
5532
|
(index) => updateState({ selectedIndex: index }),
|
|
5466
5533
|
[updateState]
|
|
5467
5534
|
);
|
|
5468
|
-
const handleKeyDown = (0,
|
|
5535
|
+
const handleKeyDown = (0, import_react52.useCallback)(
|
|
5469
5536
|
(event) => {
|
|
5470
5537
|
let handled = false;
|
|
5471
5538
|
switch (event.key) {
|
|
@@ -5529,7 +5596,7 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
|
|
|
5529
5596
|
);
|
|
5530
5597
|
const display = !filter && hideMenuWhenEmptyValue ? "none" : "flex";
|
|
5531
5598
|
const typeaheadValue = filteredItems[selectedIndex]?.name;
|
|
5532
|
-
(0,
|
|
5599
|
+
(0, import_react52.useImperativeHandle)(forwardedRef, () => ({
|
|
5533
5600
|
focus: () => {
|
|
5534
5601
|
ref.current?.focus();
|
|
5535
5602
|
},
|
|
@@ -5540,14 +5607,14 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
|
|
|
5540
5607
|
ref.current?.setSelectionRange(0, ref.current.value.length);
|
|
5541
5608
|
}
|
|
5542
5609
|
}));
|
|
5543
|
-
return /* @__PURE__ */
|
|
5610
|
+
return /* @__PURE__ */ import_react52.default.createElement(
|
|
5544
5611
|
InputField.Root,
|
|
5545
5612
|
{
|
|
5546
5613
|
size: size2,
|
|
5547
5614
|
labelSize: 16,
|
|
5548
5615
|
renderPopoverContent: ({ width }) => {
|
|
5549
5616
|
const listSize = { width, height };
|
|
5550
|
-
return /* @__PURE__ */
|
|
5617
|
+
return /* @__PURE__ */ import_react52.default.createElement(Stack.V, { flex: `0 0 ${height}px`, display }, filteredItems.length > 0 ? /* @__PURE__ */ import_react52.default.createElement(
|
|
5551
5618
|
CompletionMenu,
|
|
5552
5619
|
{
|
|
5553
5620
|
ref: listRef,
|
|
@@ -5557,7 +5624,7 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
|
|
|
5557
5624
|
onHoverIndex: handleIndexChange,
|
|
5558
5625
|
listSize
|
|
5559
5626
|
}
|
|
5560
|
-
) : /* @__PURE__ */
|
|
5627
|
+
) : /* @__PURE__ */ import_react52.default.createElement(
|
|
5561
5628
|
Stack.V,
|
|
5562
5629
|
{
|
|
5563
5630
|
height: "100px",
|
|
@@ -5565,11 +5632,11 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
|
|
|
5565
5632
|
alignItems: "center",
|
|
5566
5633
|
justifyContent: "center"
|
|
5567
5634
|
},
|
|
5568
|
-
/* @__PURE__ */
|
|
5635
|
+
/* @__PURE__ */ import_react52.default.createElement(Small, { color: "textDisabled" }, loading ? "Loading" : "No results")
|
|
5569
5636
|
));
|
|
5570
5637
|
}
|
|
5571
5638
|
},
|
|
5572
|
-
/* @__PURE__ */
|
|
5639
|
+
/* @__PURE__ */ import_react52.default.createElement(
|
|
5573
5640
|
InputField.Input,
|
|
5574
5641
|
{
|
|
5575
5642
|
ref,
|
|
@@ -5593,9 +5660,9 @@ var InputFieldWithCompletions = (0, import_react51.memo)(
|
|
|
5593
5660
|
"aria-controls": "component-listbox"
|
|
5594
5661
|
}
|
|
5595
5662
|
),
|
|
5596
|
-
filter && typeaheadValue && typeaheadValue.startsWith(filter) && /* @__PURE__ */
|
|
5663
|
+
filter && typeaheadValue && typeaheadValue.startsWith(filter) && /* @__PURE__ */ import_react52.default.createElement(InputField.Typeahead, { value: typeaheadValue }),
|
|
5597
5664
|
(!isFocused || !hideChildrenWhenFocused) && children,
|
|
5598
|
-
loading && isFocused && /* @__PURE__ */
|
|
5665
|
+
loading && isFocused && /* @__PURE__ */ import_react52.default.createElement(InputField.Label, null, /* @__PURE__ */ import_react52.default.createElement(ActivityIndicator, null))
|
|
5599
5666
|
);
|
|
5600
5667
|
})
|
|
5601
5668
|
);
|
|
@@ -5617,9 +5684,9 @@ function getNextIndex(items, currentIndex, direction, isDisabled) {
|
|
|
5617
5684
|
}
|
|
5618
5685
|
|
|
5619
5686
|
// src/components/InspectorContainer.tsx
|
|
5620
|
-
var
|
|
5621
|
-
var InspectorContainer = (0,
|
|
5622
|
-
(0,
|
|
5687
|
+
var import_react53 = __toESM(require("react"));
|
|
5688
|
+
var InspectorContainer = (0, import_react53.memo)(
|
|
5689
|
+
(0, import_react53.forwardRef)(function InspectorContainer2({
|
|
5623
5690
|
header,
|
|
5624
5691
|
children,
|
|
5625
5692
|
fallback,
|
|
@@ -5629,7 +5696,7 @@ var InspectorContainer = (0, import_react52.memo)(
|
|
|
5629
5696
|
style: style3
|
|
5630
5697
|
}, forwardedRef) {
|
|
5631
5698
|
const theme = useDesignSystemTheme();
|
|
5632
|
-
return /* @__PURE__ */
|
|
5699
|
+
return /* @__PURE__ */ import_react53.default.createElement(
|
|
5633
5700
|
"div",
|
|
5634
5701
|
{
|
|
5635
5702
|
ref: forwardedRef,
|
|
@@ -5644,13 +5711,13 @@ var InspectorContainer = (0, import_react52.memo)(
|
|
|
5644
5711
|
}
|
|
5645
5712
|
},
|
|
5646
5713
|
header,
|
|
5647
|
-
children ? /* @__PURE__ */
|
|
5714
|
+
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
5715
|
);
|
|
5649
5716
|
})
|
|
5650
5717
|
);
|
|
5651
5718
|
|
|
5652
5719
|
// src/components/Label.tsx
|
|
5653
|
-
var
|
|
5720
|
+
var import_react54 = __toESM(require("react"));
|
|
5654
5721
|
var import_styled_components28 = __toESM(require("styled-components"));
|
|
5655
5722
|
var LabelLabel = import_styled_components28.default.label(
|
|
5656
5723
|
({ theme, $selected }) => ({
|
|
@@ -5679,17 +5746,17 @@ var LabelContainer2 = import_styled_components28.default.span(({ theme }) => ({
|
|
|
5679
5746
|
alignItems: "center"
|
|
5680
5747
|
}));
|
|
5681
5748
|
function LabelRoot({ label, children }) {
|
|
5682
|
-
return /* @__PURE__ */
|
|
5749
|
+
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
5750
|
}
|
|
5684
5751
|
var Label;
|
|
5685
5752
|
((_Label) => {
|
|
5686
|
-
_Label.Label = (0,
|
|
5687
|
-
_Label.Root = (0,
|
|
5753
|
+
_Label.Label = (0, import_react54.memo)(LabelLabel);
|
|
5754
|
+
_Label.Root = (0, import_react54.memo)(LabelRoot);
|
|
5688
5755
|
})(Label || (Label = {}));
|
|
5689
5756
|
|
|
5690
5757
|
// src/components/LabeledElementView.tsx
|
|
5691
5758
|
var kiwi = __toESM(require("kiwi.js"));
|
|
5692
|
-
var
|
|
5759
|
+
var import_react55 = __toESM(require("react"));
|
|
5693
5760
|
var import_styled_components29 = __toESM(require("styled-components"));
|
|
5694
5761
|
var Container4 = import_styled_components29.default.div(({ theme }) => ({
|
|
5695
5762
|
display: "flex",
|
|
@@ -5708,24 +5775,24 @@ var Labels = import_styled_components29.default.div(({ theme }) => ({
|
|
|
5708
5775
|
overflow: "hidden",
|
|
5709
5776
|
userSelect: "none"
|
|
5710
5777
|
}));
|
|
5711
|
-
var LabeledElementView = (0,
|
|
5778
|
+
var LabeledElementView = (0, import_react55.memo)(function LabeledElementView2({
|
|
5712
5779
|
children,
|
|
5713
5780
|
renderLabel
|
|
5714
5781
|
}) {
|
|
5715
|
-
const elementIds =
|
|
5716
|
-
(child) => (0,
|
|
5782
|
+
const elementIds = import_react55.Children.toArray(children).flatMap(
|
|
5783
|
+
(child) => (0, import_react55.isValidElement)(child) && child.type === import_react55.Fragment ? child.props.children : [child]
|
|
5717
5784
|
).map(
|
|
5718
|
-
(child) => (0,
|
|
5785
|
+
(child) => (0, import_react55.isValidElement)(child) && "id" in child.props ? child.props.id : null
|
|
5719
5786
|
).filter((id) => !!id);
|
|
5720
5787
|
const serializedIds = elementIds.join(",");
|
|
5721
|
-
const containerRef = (0,
|
|
5722
|
-
const refs = (0,
|
|
5788
|
+
const containerRef = (0, import_react55.useRef)(null);
|
|
5789
|
+
const refs = (0, import_react55.useMemo)(() => {
|
|
5723
5790
|
return Object.fromEntries(
|
|
5724
|
-
serializedIds.split(",").map((id) => [id, (0,
|
|
5791
|
+
serializedIds.split(",").map((id) => [id, (0, import_react55.createRef)()])
|
|
5725
5792
|
);
|
|
5726
5793
|
}, [serializedIds]);
|
|
5727
|
-
const labelElements = (0,
|
|
5728
|
-
return serializedIds.split(",").map((id, index) => /* @__PURE__ */
|
|
5794
|
+
const labelElements = (0, import_react55.useMemo)(() => {
|
|
5795
|
+
return serializedIds.split(",").map((id, index) => /* @__PURE__ */ import_react55.default.createElement(
|
|
5729
5796
|
"span",
|
|
5730
5797
|
{
|
|
5731
5798
|
key: id,
|
|
@@ -5738,7 +5805,7 @@ var LabeledElementView = (0, import_react54.memo)(function LabeledElementView2({
|
|
|
5738
5805
|
})
|
|
5739
5806
|
));
|
|
5740
5807
|
}, [refs, serializedIds, renderLabel]);
|
|
5741
|
-
(0,
|
|
5808
|
+
(0, import_react55.useLayoutEffect)(() => {
|
|
5742
5809
|
if (!containerRef.current)
|
|
5743
5810
|
return;
|
|
5744
5811
|
const containerRect = containerRef.current.getBoundingClientRect();
|
|
@@ -5803,13 +5870,13 @@ var LabeledElementView = (0, import_react54.memo)(function LabeledElementView2({
|
|
|
5803
5870
|
`${Math.max(...heights)}px`
|
|
5804
5871
|
);
|
|
5805
5872
|
}, [refs, labelElements]);
|
|
5806
|
-
return /* @__PURE__ */
|
|
5873
|
+
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
5874
|
});
|
|
5808
5875
|
|
|
5809
5876
|
// src/components/Progress.tsx
|
|
5810
5877
|
var import_noya_utils9 = require("@noya-app/noya-utils");
|
|
5811
5878
|
var ProgressPrimitive = __toESM(require("@radix-ui/react-progress"));
|
|
5812
|
-
var
|
|
5879
|
+
var import_react56 = __toESM(require("react"));
|
|
5813
5880
|
var import_styled_components30 = __toESM(require("styled-components"));
|
|
5814
5881
|
function Progress({
|
|
5815
5882
|
value,
|
|
@@ -5819,7 +5886,7 @@ function Progress({
|
|
|
5819
5886
|
variant = "normal"
|
|
5820
5887
|
}) {
|
|
5821
5888
|
const clampedValue = (0, import_noya_utils9.clamp)(value, 0, 100);
|
|
5822
|
-
return /* @__PURE__ */
|
|
5889
|
+
return /* @__PURE__ */ import_react56.default.createElement(ProgressRoot, { value: clampedValue, style: { width, flex, height } }, /* @__PURE__ */ import_react56.default.createElement(
|
|
5823
5890
|
ProgressIndicator,
|
|
5824
5891
|
{
|
|
5825
5892
|
variant,
|
|
@@ -5844,7 +5911,7 @@ var ProgressIndicator = (0, import_styled_components30.default)(ProgressPrimitiv
|
|
|
5844
5911
|
|
|
5845
5912
|
// src/components/RadioGroup.tsx
|
|
5846
5913
|
var ToggleGroupPrimitive = __toESM(require("@radix-ui/react-toggle-group"));
|
|
5847
|
-
var
|
|
5914
|
+
var import_react57 = __toESM(require("react"));
|
|
5848
5915
|
var import_styled_components31 = __toESM(require("styled-components"));
|
|
5849
5916
|
var ignoredProps2 = /* @__PURE__ */ new Set(["colorScheme"]);
|
|
5850
5917
|
var StyledRoot = (0, import_styled_components31.default)(ToggleGroupPrimitive.Root).withConfig({
|
|
@@ -5897,9 +5964,9 @@ var StyledItem = (0, import_styled_components31.default)(ToggleGroupPrimitive.It
|
|
|
5897
5964
|
boxShadow: `0 0 0 1px ${theme.colors.sidebar.background}, 0 0 0 3px ${theme.colors[colorScheme ?? "primary"]}`
|
|
5898
5965
|
}
|
|
5899
5966
|
}));
|
|
5900
|
-
var ToggleGroupItem = (0,
|
|
5901
|
-
const { colorScheme } = (0,
|
|
5902
|
-
const itemElement = /* @__PURE__ */
|
|
5967
|
+
var ToggleGroupItem = (0, import_react57.forwardRef)(function ToggleGroupItem2({ value, tooltip, children, disabled = false }, forwardedRef) {
|
|
5968
|
+
const { colorScheme } = (0, import_react57.useContext)(RadioGroupContext);
|
|
5969
|
+
const itemElement = /* @__PURE__ */ import_react57.default.createElement(
|
|
5903
5970
|
StyledItem,
|
|
5904
5971
|
{
|
|
5905
5972
|
ref: forwardedRef,
|
|
@@ -5909,9 +5976,9 @@ var ToggleGroupItem = (0, import_react56.forwardRef)(function ToggleGroupItem2({
|
|
|
5909
5976
|
},
|
|
5910
5977
|
children
|
|
5911
5978
|
);
|
|
5912
|
-
return tooltip ? /* @__PURE__ */
|
|
5979
|
+
return tooltip ? /* @__PURE__ */ import_react57.default.createElement(Tooltip, { content: tooltip }, itemElement) : itemElement;
|
|
5913
5980
|
});
|
|
5914
|
-
var RadioGroupContext = (0,
|
|
5981
|
+
var RadioGroupContext = (0, import_react57.createContext)({
|
|
5915
5982
|
colorScheme: "primary"
|
|
5916
5983
|
});
|
|
5917
5984
|
function ToggleGroupRoot({
|
|
@@ -5922,8 +5989,8 @@ function ToggleGroupRoot({
|
|
|
5922
5989
|
allowEmpty,
|
|
5923
5990
|
children
|
|
5924
5991
|
}) {
|
|
5925
|
-
const contextValue = (0,
|
|
5926
|
-
const handleValueChange = (0,
|
|
5992
|
+
const contextValue = (0, import_react57.useMemo)(() => ({ colorScheme }), [colorScheme]);
|
|
5993
|
+
const handleValueChange = (0, import_react57.useCallback)(
|
|
5927
5994
|
(value2) => {
|
|
5928
5995
|
if (!allowEmpty && !value2)
|
|
5929
5996
|
return;
|
|
@@ -5931,7 +5998,7 @@ function ToggleGroupRoot({
|
|
|
5931
5998
|
},
|
|
5932
5999
|
[allowEmpty, onValueChange]
|
|
5933
6000
|
);
|
|
5934
|
-
return /* @__PURE__ */
|
|
6001
|
+
return /* @__PURE__ */ import_react57.default.createElement(RadioGroupContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react57.default.createElement(
|
|
5935
6002
|
StyledRoot,
|
|
5936
6003
|
{
|
|
5937
6004
|
id,
|
|
@@ -5945,28 +6012,28 @@ function ToggleGroupRoot({
|
|
|
5945
6012
|
}
|
|
5946
6013
|
var RadioGroup;
|
|
5947
6014
|
((RadioGroup2) => {
|
|
5948
|
-
RadioGroup2.Root = (0,
|
|
5949
|
-
RadioGroup2.Item = (0,
|
|
6015
|
+
RadioGroup2.Root = (0, import_react57.memo)(ToggleGroupRoot);
|
|
6016
|
+
RadioGroup2.Item = (0, import_react57.memo)(ToggleGroupItem);
|
|
5950
6017
|
})(RadioGroup || (RadioGroup = {}));
|
|
5951
6018
|
|
|
5952
6019
|
// src/components/Select.tsx
|
|
5953
6020
|
var import_noya_utils10 = require("@noya-app/noya-utils");
|
|
5954
|
-
var
|
|
6021
|
+
var import_react58 = __toESM(require("react"));
|
|
5955
6022
|
var import_styled_components32 = __toESM(require("styled-components"));
|
|
5956
|
-
var SelectContext = (0,
|
|
5957
|
-
var SelectOption = (0,
|
|
6023
|
+
var SelectContext = (0, import_react58.createContext)(void 0);
|
|
6024
|
+
var SelectOption = (0, import_react58.memo)(function SelectOption2({
|
|
5958
6025
|
value,
|
|
5959
6026
|
title,
|
|
5960
6027
|
onSelect
|
|
5961
6028
|
}) {
|
|
5962
|
-
const { addListener, removeListener } = (0,
|
|
5963
|
-
(0,
|
|
6029
|
+
const { addListener, removeListener } = (0, import_react58.useContext)(SelectContext);
|
|
6030
|
+
(0, import_react58.useEffect)(() => {
|
|
5964
6031
|
if (!onSelect)
|
|
5965
6032
|
return;
|
|
5966
6033
|
addListener(value, onSelect);
|
|
5967
6034
|
return () => removeListener(value);
|
|
5968
6035
|
}, [addListener, onSelect, removeListener, value]);
|
|
5969
|
-
return /* @__PURE__ */
|
|
6036
|
+
return /* @__PURE__ */ import_react58.default.createElement("option", { value }, title ?? value);
|
|
5970
6037
|
});
|
|
5971
6038
|
var createChevronSVGString = (0, import_noya_utils10.memoize)(
|
|
5972
6039
|
(color) => `
|
|
@@ -6028,7 +6095,7 @@ var SelectLabel = import_styled_components32.default.label(({ theme }) => ({
|
|
|
6028
6095
|
justifyContent: "end",
|
|
6029
6096
|
paddingRight: "24px"
|
|
6030
6097
|
}));
|
|
6031
|
-
var Select = (0,
|
|
6098
|
+
var Select = (0, import_react58.memo)(function Select2({
|
|
6032
6099
|
id,
|
|
6033
6100
|
flex,
|
|
6034
6101
|
value,
|
|
@@ -6039,8 +6106,8 @@ var Select = (0, import_react57.memo)(function Select2({
|
|
|
6039
6106
|
const getTitle = "options" in rest ? rest.getTitle : void 0;
|
|
6040
6107
|
const onChange = "options" in rest ? rest.onChange : void 0;
|
|
6041
6108
|
const children = "options" in rest ? void 0 : rest.children;
|
|
6042
|
-
const optionElements = (0,
|
|
6043
|
-
() => options ? options.map((option, index) => /* @__PURE__ */
|
|
6109
|
+
const optionElements = (0, import_react58.useMemo)(
|
|
6110
|
+
() => options ? options.map((option, index) => /* @__PURE__ */ import_react58.default.createElement(
|
|
6044
6111
|
SelectOption,
|
|
6045
6112
|
{
|
|
6046
6113
|
key: option,
|
|
@@ -6051,65 +6118,85 @@ var Select = (0, import_react57.memo)(function Select2({
|
|
|
6051
6118
|
)) : children,
|
|
6052
6119
|
[children, getTitle, onChange, options]
|
|
6053
6120
|
);
|
|
6054
|
-
const listeners = (0,
|
|
6055
|
-
const contextValue = (0,
|
|
6121
|
+
const listeners = (0, import_react58.useRef)(/* @__PURE__ */ new Map());
|
|
6122
|
+
const contextValue = (0, import_react58.useMemo)(
|
|
6056
6123
|
() => ({
|
|
6057
6124
|
addListener: (value2, listener) => listeners.current.set(value2, listener),
|
|
6058
6125
|
removeListener: (value2) => listeners.current.delete(value2)
|
|
6059
6126
|
}),
|
|
6060
6127
|
[]
|
|
6061
6128
|
);
|
|
6062
|
-
return /* @__PURE__ */
|
|
6129
|
+
return /* @__PURE__ */ import_react58.default.createElement(SelectContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react58.default.createElement(SelectContainer, { $flex: flex }, /* @__PURE__ */ import_react58.default.createElement(
|
|
6063
6130
|
SelectElement,
|
|
6064
6131
|
{
|
|
6065
6132
|
id,
|
|
6066
6133
|
$flex: flex,
|
|
6067
6134
|
value,
|
|
6068
|
-
onChange: (0,
|
|
6135
|
+
onChange: (0, import_react58.useCallback)(
|
|
6069
6136
|
(event) => listeners.current.get(event.target.value)?.(),
|
|
6070
6137
|
[listeners]
|
|
6071
6138
|
),
|
|
6072
6139
|
onPointerDown: (event) => event.stopPropagation()
|
|
6073
6140
|
},
|
|
6074
6141
|
optionElements
|
|
6075
|
-
)), label && /* @__PURE__ */
|
|
6142
|
+
)), label && /* @__PURE__ */ import_react58.default.createElement(SelectLabel, { htmlFor: id }, label));
|
|
6076
6143
|
});
|
|
6077
6144
|
|
|
6078
6145
|
// src/components/SelectMenu.tsx
|
|
6079
6146
|
var import_noya_icons6 = require("@noya-app/noya-icons");
|
|
6080
6147
|
var Select3 = __toESM(require("@radix-ui/react-select"));
|
|
6081
|
-
var
|
|
6148
|
+
var import_react59 = __toESM(require("react"));
|
|
6082
6149
|
var import_styled_components33 = require("styled-components");
|
|
6083
|
-
var
|
|
6150
|
+
var readOnlyStyle = {
|
|
6151
|
+
justifyContent: "flex-start",
|
|
6152
|
+
textAlign: "left"
|
|
6153
|
+
};
|
|
6154
|
+
var SelectMenu = (0, import_react59.memo)(function SelectMenu2({
|
|
6084
6155
|
id,
|
|
6085
6156
|
style: style3,
|
|
6086
6157
|
className,
|
|
6087
6158
|
menuItems,
|
|
6088
6159
|
value,
|
|
6089
6160
|
onSelect,
|
|
6090
|
-
placeholder
|
|
6161
|
+
placeholder,
|
|
6162
|
+
disabled,
|
|
6163
|
+
readOnly
|
|
6091
6164
|
}) {
|
|
6092
6165
|
const selectedItem = menuItems.find(
|
|
6093
6166
|
(item) => typeof item !== "string" && item.value === value
|
|
6094
6167
|
);
|
|
6095
6168
|
const icon = selectedItem?.icon;
|
|
6096
|
-
|
|
6169
|
+
if (readOnly) {
|
|
6170
|
+
return /* @__PURE__ */ import_react59.default.createElement(
|
|
6171
|
+
Button,
|
|
6172
|
+
{
|
|
6173
|
+
id,
|
|
6174
|
+
style: style3,
|
|
6175
|
+
contentStyle: readOnlyStyle,
|
|
6176
|
+
className,
|
|
6177
|
+
disabled
|
|
6178
|
+
},
|
|
6179
|
+
icon && /* @__PURE__ */ import_react59.default.createElement(import_react59.default.Fragment, null, renderIcon(icon), /* @__PURE__ */ import_react59.default.createElement(Spacer.Horizontal, { size: 8 })),
|
|
6180
|
+
selectedItem?.title ?? value
|
|
6181
|
+
);
|
|
6182
|
+
}
|
|
6183
|
+
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, disabled }, 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
6184
|
if (typeof menuItem === "string") {
|
|
6098
|
-
return /* @__PURE__ */
|
|
6185
|
+
return /* @__PURE__ */ import_react59.default.createElement(StyledSeparator, null);
|
|
6099
6186
|
}
|
|
6100
6187
|
const value2 = menuItem.value ?? "";
|
|
6101
|
-
return /* @__PURE__ */
|
|
6188
|
+
return /* @__PURE__ */ import_react59.default.createElement(SelectItem, { key: value2, value: value2, icon: menuItem.icon }, menuItem.title ?? value2);
|
|
6102
6189
|
})))));
|
|
6103
6190
|
});
|
|
6104
6191
|
var SelectContent = (0, import_styled_components33.styled)(Select3.Content)(styles.contentStyle);
|
|
6105
6192
|
var SelectViewport = (0, import_styled_components33.styled)(Select3.Viewport)({});
|
|
6106
|
-
var SelectItem =
|
|
6193
|
+
var SelectItem = import_react59.default.forwardRef(
|
|
6107
6194
|
({
|
|
6108
6195
|
children,
|
|
6109
6196
|
icon,
|
|
6110
6197
|
...props
|
|
6111
6198
|
}, forwardedRef) => {
|
|
6112
|
-
return /* @__PURE__ */
|
|
6199
|
+
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
6200
|
}
|
|
6114
6201
|
);
|
|
6115
6202
|
var StyledItem2 = (0, import_styled_components33.styled)(Select3.Item)(styles.itemStyle);
|
|
@@ -6117,7 +6204,7 @@ var StyledSeparator = (0, import_styled_components33.styled)(Select3.Separator)(
|
|
|
6117
6204
|
|
|
6118
6205
|
// src/components/Slider.tsx
|
|
6119
6206
|
var RadixSlider = __toESM(require("@radix-ui/react-slider"));
|
|
6120
|
-
var
|
|
6207
|
+
var import_react60 = __toESM(require("react"));
|
|
6121
6208
|
var import_styled_components34 = __toESM(require("styled-components"));
|
|
6122
6209
|
var StyledSlider = (0, import_styled_components34.default)(RadixSlider.Root)({
|
|
6123
6210
|
flex: "1",
|
|
@@ -6158,17 +6245,17 @@ var Slider = function Slider2({
|
|
|
6158
6245
|
min,
|
|
6159
6246
|
max
|
|
6160
6247
|
}) {
|
|
6161
|
-
const arrayValue = (0,
|
|
6248
|
+
const arrayValue = (0, import_react60.useMemo)(
|
|
6162
6249
|
() => [Math.min(Math.max(value, min), max)],
|
|
6163
6250
|
[value, min, max]
|
|
6164
6251
|
);
|
|
6165
|
-
const handleValueChange = (0,
|
|
6252
|
+
const handleValueChange = (0, import_react60.useCallback)(
|
|
6166
6253
|
(arrayValue2) => {
|
|
6167
6254
|
onValueChange(arrayValue2[0]);
|
|
6168
6255
|
},
|
|
6169
6256
|
[onValueChange]
|
|
6170
6257
|
);
|
|
6171
|
-
return /* @__PURE__ */
|
|
6258
|
+
return /* @__PURE__ */ import_react60.default.createElement(
|
|
6172
6259
|
StyledSlider,
|
|
6173
6260
|
{
|
|
6174
6261
|
min,
|
|
@@ -6177,14 +6264,14 @@ var Slider = function Slider2({
|
|
|
6177
6264
|
value: arrayValue,
|
|
6178
6265
|
onValueChange: handleValueChange
|
|
6179
6266
|
},
|
|
6180
|
-
/* @__PURE__ */
|
|
6181
|
-
/* @__PURE__ */
|
|
6267
|
+
/* @__PURE__ */ import_react60.default.createElement(StyledTrack, null, /* @__PURE__ */ import_react60.default.createElement(StyledRange, null)),
|
|
6268
|
+
/* @__PURE__ */ import_react60.default.createElement(StyledThumb2, null)
|
|
6182
6269
|
);
|
|
6183
6270
|
};
|
|
6184
6271
|
|
|
6185
6272
|
// src/components/Switch.tsx
|
|
6186
6273
|
var SwitchPrimitive = __toESM(require("@radix-ui/react-switch"));
|
|
6187
|
-
var
|
|
6274
|
+
var import_react61 = __toESM(require("react"));
|
|
6188
6275
|
var import_styled_components35 = __toESM(require("styled-components"));
|
|
6189
6276
|
var SwitchRoot = (0, import_styled_components35.default)(SwitchPrimitive.Root)(({ theme, $colorScheme }) => ({
|
|
6190
6277
|
all: "unset",
|
|
@@ -6217,73 +6304,75 @@ var SwitchThumb = (0, import_styled_components35.default)(SwitchPrimitive.Thumb)
|
|
|
6217
6304
|
var Switch = function Switch2({
|
|
6218
6305
|
value,
|
|
6219
6306
|
onChange,
|
|
6220
|
-
colorScheme = "normal"
|
|
6307
|
+
colorScheme = "normal",
|
|
6308
|
+
disabled
|
|
6221
6309
|
}) {
|
|
6222
|
-
return /* @__PURE__ */
|
|
6310
|
+
return /* @__PURE__ */ import_react61.default.createElement(
|
|
6223
6311
|
SwitchRoot,
|
|
6224
6312
|
{
|
|
6225
6313
|
$colorScheme: colorScheme,
|
|
6226
6314
|
checked: value,
|
|
6315
|
+
disabled,
|
|
6227
6316
|
onCheckedChange: (newValue) => {
|
|
6228
6317
|
onChange(newValue);
|
|
6229
6318
|
}
|
|
6230
6319
|
},
|
|
6231
|
-
/* @__PURE__ */
|
|
6320
|
+
/* @__PURE__ */ import_react61.default.createElement(SwitchThumb, null)
|
|
6232
6321
|
);
|
|
6233
6322
|
};
|
|
6234
6323
|
|
|
6235
6324
|
// src/components/TreeView.tsx
|
|
6236
|
-
var
|
|
6237
|
-
var TreeRow = (0,
|
|
6325
|
+
var import_react62 = __toESM(require("react"));
|
|
6326
|
+
var TreeRow = (0, import_react62.forwardRef)(function TreeRow2({
|
|
6238
6327
|
icon,
|
|
6239
6328
|
expanded,
|
|
6240
6329
|
onClickChevron,
|
|
6241
6330
|
children,
|
|
6242
6331
|
...rest
|
|
6243
6332
|
}, forwardedRef) {
|
|
6244
|
-
const { expandable } = (0,
|
|
6245
|
-
const handleClickChevron = (0,
|
|
6333
|
+
const { expandable } = (0, import_react62.useContext)(ListView.RowContext);
|
|
6334
|
+
const handleClickChevron = (0, import_react62.useCallback)(
|
|
6246
6335
|
(event) => {
|
|
6247
6336
|
event.stopPropagation();
|
|
6248
6337
|
onClickChevron?.({ altKey: event.altKey });
|
|
6249
6338
|
},
|
|
6250
6339
|
[onClickChevron]
|
|
6251
6340
|
);
|
|
6252
|
-
return /* @__PURE__ */
|
|
6341
|
+
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
6342
|
IconButton,
|
|
6254
6343
|
{
|
|
6255
6344
|
iconName: expanded ? "ChevronDownIcon2" : "ChevronRightIcon2",
|
|
6256
6345
|
onClick: handleClickChevron,
|
|
6257
6346
|
selected: rest.selected
|
|
6258
6347
|
}
|
|
6259
|
-
), /* @__PURE__ */
|
|
6348
|
+
), /* @__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
6349
|
});
|
|
6261
6350
|
var TreeView;
|
|
6262
6351
|
((TreeView2) => {
|
|
6263
6352
|
TreeView2.Root = ListView.Root;
|
|
6264
6353
|
TreeView2.RowTitle = ListView.RowTitle;
|
|
6265
6354
|
TreeView2.EditableRowTitle = ListView.EditableRowTitle;
|
|
6266
|
-
TreeView2.Row = (0,
|
|
6355
|
+
TreeView2.Row = (0, import_react62.memo)(TreeRow);
|
|
6267
6356
|
})(TreeView || (TreeView = {}));
|
|
6268
6357
|
|
|
6269
6358
|
// src/components/WorkspaceLayout.tsx
|
|
6270
6359
|
var import_noya_keymap5 = require("@noya-app/noya-keymap");
|
|
6271
|
-
var
|
|
6360
|
+
var import_react65 = __toESM(require("react"));
|
|
6272
6361
|
var import_react_resizable_panels = require("react-resizable-panels");
|
|
6273
6362
|
|
|
6274
6363
|
// src/hooks/usePreservePanelSize.tsx
|
|
6275
|
-
var
|
|
6364
|
+
var import_react64 = require("react");
|
|
6276
6365
|
|
|
6277
6366
|
// src/hooks/useWindowSize.tsx
|
|
6278
|
-
var
|
|
6367
|
+
var import_react63 = require("react");
|
|
6279
6368
|
function useWindowSize() {
|
|
6280
|
-
const [size2, setSize] = (0,
|
|
6369
|
+
const [size2, setSize] = (0, import_react63.useState)(
|
|
6281
6370
|
typeof window === "undefined" ? { width: 0, height: 0 } : {
|
|
6282
6371
|
width: window.innerWidth,
|
|
6283
6372
|
height: window.innerHeight
|
|
6284
6373
|
}
|
|
6285
6374
|
);
|
|
6286
|
-
(0,
|
|
6375
|
+
(0, import_react63.useEffect)(() => {
|
|
6287
6376
|
const handleResize = () => setSize({
|
|
6288
6377
|
width: window.innerWidth,
|
|
6289
6378
|
height: window.innerHeight
|
|
@@ -6301,8 +6390,8 @@ var RIGHT_SIDEBAR_ID = "editor-right-sidebar";
|
|
|
6301
6390
|
var CONTENT_AREA_ID = "editor-content-area";
|
|
6302
6391
|
function usePreservePanelSize(panelGroupRef, setPanelLayoutState) {
|
|
6303
6392
|
const windowSize = useWindowSize();
|
|
6304
|
-
const layoutRef = (0,
|
|
6305
|
-
(0,
|
|
6393
|
+
const layoutRef = (0, import_react64.useRef)();
|
|
6394
|
+
(0, import_react64.useLayoutEffect)(() => {
|
|
6306
6395
|
const panelGroup = document.querySelector(
|
|
6307
6396
|
`[data-panel-group-id="${EDITOR_PANEL_GROUP_ID}"]`
|
|
6308
6397
|
);
|
|
@@ -6345,7 +6434,7 @@ function usePreservePanelSize(panelGroupRef, setPanelLayoutState) {
|
|
|
6345
6434
|
panelGroupObserver.disconnect();
|
|
6346
6435
|
};
|
|
6347
6436
|
}, [panelGroupRef, setPanelLayoutState]);
|
|
6348
|
-
(0,
|
|
6437
|
+
(0, import_react64.useLayoutEffect)(() => {
|
|
6349
6438
|
if (!layoutRef.current)
|
|
6350
6439
|
return;
|
|
6351
6440
|
const {
|
|
@@ -6405,7 +6494,7 @@ function usePreservePanelSize(panelGroupRef, setPanelLayoutState) {
|
|
|
6405
6494
|
}
|
|
6406
6495
|
|
|
6407
6496
|
// src/components/WorkspaceLayout.tsx
|
|
6408
|
-
var WorkspaceLayout = (0,
|
|
6497
|
+
var WorkspaceLayout = (0, import_react65.forwardRef)(function WorkspaceLayout2({
|
|
6409
6498
|
autoSavePrefix,
|
|
6410
6499
|
leftSidebarContent: leftPanelContent,
|
|
6411
6500
|
children: centerPanelContent,
|
|
@@ -6430,12 +6519,12 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
|
|
|
6430
6519
|
const rightSidebarPercentage = getPercentage(rightSidebarInitialSize);
|
|
6431
6520
|
const leftSidebarMinPercentage = leftSidebarMinSize !== void 0 ? getPercentage(leftSidebarMinSize) : void 0;
|
|
6432
6521
|
const rightSidebarMinPercentage = rightSidebarMinSize !== void 0 ? getPercentage(rightSidebarMinSize) : void 0;
|
|
6433
|
-
const panelGroupRef = (0,
|
|
6434
|
-
const leftSidebarRef = (0,
|
|
6435
|
-
const rightSidebarRef = (0,
|
|
6522
|
+
const panelGroupRef = (0, import_react65.useRef)(null);
|
|
6523
|
+
const leftSidebarRef = (0, import_react65.useRef)(null);
|
|
6524
|
+
const rightSidebarRef = (0, import_react65.useRef)(null);
|
|
6436
6525
|
usePreservePanelSize(panelGroupRef, onChangeLayoutState);
|
|
6437
6526
|
const theme = useDesignSystemTheme();
|
|
6438
|
-
(0,
|
|
6527
|
+
(0, import_react65.useImperativeHandle)(forwardedRef, () => ({
|
|
6439
6528
|
setLeftSidebarExpanded: (expanded) => {
|
|
6440
6529
|
if (expanded) {
|
|
6441
6530
|
leftSidebarRef.current?.expand();
|
|
@@ -6492,7 +6581,7 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
|
|
|
6492
6581
|
}
|
|
6493
6582
|
});
|
|
6494
6583
|
const centerPanelPercentage = 100 - (leftPanelContent ? leftSidebarPercentage : 0) - (rightPanelContent ? rightSidebarPercentage : 0);
|
|
6495
|
-
return /* @__PURE__ */
|
|
6584
|
+
return /* @__PURE__ */ import_react65.default.createElement(
|
|
6496
6585
|
"div",
|
|
6497
6586
|
{
|
|
6498
6587
|
id,
|
|
@@ -6504,7 +6593,7 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
|
|
|
6504
6593
|
...style3
|
|
6505
6594
|
}
|
|
6506
6595
|
},
|
|
6507
|
-
/* @__PURE__ */
|
|
6596
|
+
/* @__PURE__ */ import_react65.default.createElement(
|
|
6508
6597
|
import_react_resizable_panels.PanelGroup,
|
|
6509
6598
|
{
|
|
6510
6599
|
ref: panelGroupRef,
|
|
@@ -6513,7 +6602,7 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
|
|
|
6513
6602
|
autoSaveId: autoSavePrefix ? `${autoSavePrefix}--${EDITOR_PANEL_GROUP_ID}` : void 0,
|
|
6514
6603
|
style: { flex: "1" }
|
|
6515
6604
|
},
|
|
6516
|
-
hasLeftSidebar && /* @__PURE__ */
|
|
6605
|
+
hasLeftSidebar && /* @__PURE__ */ import_react65.default.createElement(import_react65.default.Fragment, null, /* @__PURE__ */ import_react65.default.createElement(
|
|
6517
6606
|
import_react_resizable_panels.Panel,
|
|
6518
6607
|
{
|
|
6519
6608
|
id: LEFT_SIDEBAR_ID,
|
|
@@ -6530,7 +6619,7 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
|
|
|
6530
6619
|
}
|
|
6531
6620
|
},
|
|
6532
6621
|
leftPanelContent
|
|
6533
|
-
), /* @__PURE__ */
|
|
6622
|
+
), /* @__PURE__ */ import_react65.default.createElement(
|
|
6534
6623
|
import_react_resizable_panels.PanelResizeHandle,
|
|
6535
6624
|
{
|
|
6536
6625
|
style: {
|
|
@@ -6541,7 +6630,7 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
|
|
|
6541
6630
|
}
|
|
6542
6631
|
}
|
|
6543
6632
|
)),
|
|
6544
|
-
/* @__PURE__ */
|
|
6633
|
+
/* @__PURE__ */ import_react65.default.createElement(
|
|
6545
6634
|
import_react_resizable_panels.Panel,
|
|
6546
6635
|
{
|
|
6547
6636
|
id: CONTENT_AREA_ID,
|
|
@@ -6556,7 +6645,7 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
|
|
|
6556
6645
|
},
|
|
6557
6646
|
centerPanelContent
|
|
6558
6647
|
),
|
|
6559
|
-
hasRightSidebar && /* @__PURE__ */
|
|
6648
|
+
hasRightSidebar && /* @__PURE__ */ import_react65.default.createElement(import_react65.default.Fragment, null, /* @__PURE__ */ import_react65.default.createElement(
|
|
6560
6649
|
import_react_resizable_panels.PanelResizeHandle,
|
|
6561
6650
|
{
|
|
6562
6651
|
style: {
|
|
@@ -6566,7 +6655,7 @@ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
|
|
|
6566
6655
|
backgroundColor: theme.colors.divider
|
|
6567
6656
|
}
|
|
6568
6657
|
}
|
|
6569
|
-
), /* @__PURE__ */
|
|
6658
|
+
), /* @__PURE__ */ import_react65.default.createElement(
|
|
6570
6659
|
import_react_resizable_panels.Panel,
|
|
6571
6660
|
{
|
|
6572
6661
|
id: RIGHT_SIDEBAR_ID,
|
|
@@ -6629,7 +6718,7 @@ var SUPPORTED_CANVAS_UPLOAD_TYPES = [
|
|
|
6629
6718
|
|
|
6630
6719
|
// src/components/ArrayController.tsx
|
|
6631
6720
|
var import_noya_utils11 = require("@noya-app/noya-utils");
|
|
6632
|
-
var
|
|
6721
|
+
var import_react67 = __toESM(require("react"));
|
|
6633
6722
|
var import_styled_components37 = __toESM(require("styled-components"));
|
|
6634
6723
|
|
|
6635
6724
|
// src/components/InspectorPrimitives.tsx
|
|
@@ -6648,7 +6737,7 @@ __export(InspectorPrimitives_exports, {
|
|
|
6648
6737
|
Title: () => Title3,
|
|
6649
6738
|
VerticalSeparator: () => VerticalSeparator
|
|
6650
6739
|
});
|
|
6651
|
-
var
|
|
6740
|
+
var import_react66 = __toESM(require("react"));
|
|
6652
6741
|
var import_styled_components36 = __toESM(require("styled-components"));
|
|
6653
6742
|
var Section = import_styled_components36.default.div(({ theme, $padding = "10px", $gap }) => ({
|
|
6654
6743
|
flex: "0 0 auto",
|
|
@@ -6695,8 +6784,8 @@ var Checkbox = import_styled_components36.default.input(({ theme }) => ({
|
|
|
6695
6784
|
var Text3 = import_styled_components36.default.span(({ theme }) => ({
|
|
6696
6785
|
...theme.textStyles.small
|
|
6697
6786
|
}));
|
|
6698
|
-
var VerticalSeparator = () => /* @__PURE__ */
|
|
6699
|
-
var HorizontalSeparator = () => /* @__PURE__ */
|
|
6787
|
+
var VerticalSeparator = () => /* @__PURE__ */ import_react66.default.createElement(Spacer.Vertical, { size: (0, import_styled_components36.useTheme)().sizes.inspector.verticalSeparator });
|
|
6788
|
+
var HorizontalSeparator = () => /* @__PURE__ */ import_react66.default.createElement(Spacer.Horizontal, { size: (0, import_styled_components36.useTheme)().sizes.inspector.horizontalSeparator });
|
|
6700
6789
|
var SliderRowLabel = import_styled_components36.default.span(({ theme }) => ({
|
|
6701
6790
|
...theme.textStyles.small,
|
|
6702
6791
|
color: theme.colors.textMuted,
|
|
@@ -6716,7 +6805,7 @@ var RowLabel = import_styled_components36.default.span(({ theme, $textStyle }) =
|
|
|
6716
6805
|
// Button height
|
|
6717
6806
|
alignItems: "center"
|
|
6718
6807
|
}));
|
|
6719
|
-
var LabeledRow = (0,
|
|
6808
|
+
var LabeledRow = (0, import_react66.memo)(function LabeledRow2({
|
|
6720
6809
|
id,
|
|
6721
6810
|
children,
|
|
6722
6811
|
label,
|
|
@@ -6724,13 +6813,13 @@ var LabeledRow = (0, import_react65.memo)(function LabeledRow2({
|
|
|
6724
6813
|
gap,
|
|
6725
6814
|
right
|
|
6726
6815
|
}) {
|
|
6727
|
-
return /* @__PURE__ */
|
|
6816
|
+
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
6817
|
});
|
|
6729
|
-
var LabeledSliderRow = (0,
|
|
6818
|
+
var LabeledSliderRow = (0, import_react66.memo)(function LabeledRow3({
|
|
6730
6819
|
children,
|
|
6731
6820
|
label
|
|
6732
6821
|
}) {
|
|
6733
|
-
return /* @__PURE__ */
|
|
6822
|
+
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
6823
|
});
|
|
6735
6824
|
|
|
6736
6825
|
// src/components/ArrayController.tsx
|
|
@@ -6743,7 +6832,7 @@ var ElementRow = import_styled_components37.default.div({
|
|
|
6743
6832
|
var ItemContainer2 = import_styled_components37.default.div({
|
|
6744
6833
|
position: "relative"
|
|
6745
6834
|
});
|
|
6746
|
-
var ArrayController = (0,
|
|
6835
|
+
var ArrayController = (0, import_react67.memo)(function ArrayController2({
|
|
6747
6836
|
id,
|
|
6748
6837
|
items,
|
|
6749
6838
|
title,
|
|
@@ -6761,12 +6850,12 @@ var ArrayController = (0, import_react66.memo)(function ArrayController2({
|
|
|
6761
6850
|
}) {
|
|
6762
6851
|
const iconColor = (0, import_styled_components37.useTheme)().colors.icon;
|
|
6763
6852
|
const primaryLightColor = (0, import_styled_components37.useTheme)().colors.primaryLight;
|
|
6764
|
-
const keys = (0,
|
|
6853
|
+
const keys = (0, import_react67.useMemo)(
|
|
6765
6854
|
() => items.map((item, index) => getKey?.(item) ?? index.toString()),
|
|
6766
6855
|
[getKey, items]
|
|
6767
6856
|
);
|
|
6768
6857
|
const indexes = reversed ? (0, import_noya_utils11.range)(0, items.length).reverse() : (0, import_noya_utils11.range)(0, items.length);
|
|
6769
|
-
const handleMoveItem = (0,
|
|
6858
|
+
const handleMoveItem = (0, import_react67.useCallback)(
|
|
6770
6859
|
(sourceIndex, destinationIndex, position) => {
|
|
6771
6860
|
if (reversed) {
|
|
6772
6861
|
if (position === "above") {
|
|
@@ -6783,11 +6872,11 @@ var ArrayController = (0, import_react66.memo)(function ArrayController2({
|
|
|
6783
6872
|
[onMoveItem, reversed]
|
|
6784
6873
|
);
|
|
6785
6874
|
const renderRow = (index) => {
|
|
6786
|
-
return /* @__PURE__ */
|
|
6875
|
+
return /* @__PURE__ */ import_react67.default.createElement(ElementRow, { key: keys[index] }, renderItem({ item: items[index], index }));
|
|
6787
6876
|
};
|
|
6788
|
-
return /* @__PURE__ */
|
|
6877
|
+
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
6878
|
[
|
|
6790
|
-
onClickTrash && /* @__PURE__ */
|
|
6879
|
+
onClickTrash && /* @__PURE__ */ import_react67.default.createElement(
|
|
6791
6880
|
IconButton,
|
|
6792
6881
|
{
|
|
6793
6882
|
id: `${id}-trash`,
|
|
@@ -6796,7 +6885,7 @@ var ArrayController = (0, import_react66.memo)(function ArrayController2({
|
|
|
6796
6885
|
onClick: onClickTrash
|
|
6797
6886
|
}
|
|
6798
6887
|
),
|
|
6799
|
-
onClickExpand && /* @__PURE__ */
|
|
6888
|
+
onClickExpand && /* @__PURE__ */ import_react67.default.createElement(
|
|
6800
6889
|
IconButton,
|
|
6801
6890
|
{
|
|
6802
6891
|
id: `${id}-gear`,
|
|
@@ -6805,7 +6894,7 @@ var ArrayController = (0, import_react66.memo)(function ArrayController2({
|
|
|
6805
6894
|
onClick: onClickExpand
|
|
6806
6895
|
}
|
|
6807
6896
|
),
|
|
6808
|
-
onClickPlus && /* @__PURE__ */
|
|
6897
|
+
onClickPlus && /* @__PURE__ */ import_react67.default.createElement(
|
|
6809
6898
|
IconButton,
|
|
6810
6899
|
{
|
|
6811
6900
|
id: `${id}-add`,
|
|
@@ -6815,15 +6904,15 @@ var ArrayController = (0, import_react66.memo)(function ArrayController2({
|
|
|
6815
6904
|
}
|
|
6816
6905
|
)
|
|
6817
6906
|
],
|
|
6818
|
-
/* @__PURE__ */
|
|
6819
|
-
)), /* @__PURE__ */
|
|
6907
|
+
/* @__PURE__ */ import_react67.default.createElement(Spacer.Horizontal, { size: 8 })
|
|
6908
|
+
)), /* @__PURE__ */ import_react67.default.createElement(Stack.V, { gap: "4px" }, sortable ? /* @__PURE__ */ import_react67.default.createElement(
|
|
6820
6909
|
Sortable.Root,
|
|
6821
6910
|
{
|
|
6822
6911
|
keys,
|
|
6823
6912
|
renderOverlay: renderRow,
|
|
6824
6913
|
onMoveItem: handleMoveItem
|
|
6825
6914
|
},
|
|
6826
|
-
indexes.map((index) => /* @__PURE__ */
|
|
6915
|
+
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
6916
|
ListView.DragIndicator,
|
|
6828
6917
|
{
|
|
6829
6918
|
$gap: 0,
|
|
@@ -6837,11 +6926,11 @@ var ArrayController = (0, import_react66.memo)(function ArrayController2({
|
|
|
6837
6926
|
|
|
6838
6927
|
// src/components/DimensionInput.tsx
|
|
6839
6928
|
var import_noya_utils12 = require("@noya-app/noya-utils");
|
|
6840
|
-
var
|
|
6929
|
+
var import_react68 = __toESM(require("react"));
|
|
6841
6930
|
function getNewValue(value, mode, delta) {
|
|
6842
6931
|
return delta === void 0 ? value : mode === "replace" ? delta : value + delta;
|
|
6843
6932
|
}
|
|
6844
|
-
var DimensionInput = (0,
|
|
6933
|
+
var DimensionInput = (0, import_react68.memo)(function DimensionInput2({
|
|
6845
6934
|
id,
|
|
6846
6935
|
value,
|
|
6847
6936
|
onSetValue,
|
|
@@ -6851,15 +6940,15 @@ var DimensionInput = (0, import_react67.memo)(function DimensionInput2({
|
|
|
6851
6940
|
disabled,
|
|
6852
6941
|
trigger = "submit"
|
|
6853
6942
|
}) {
|
|
6854
|
-
const handleNudgeValue = (0,
|
|
6943
|
+
const handleNudgeValue = (0, import_react68.useCallback)(
|
|
6855
6944
|
(value2) => onSetValue(value2, "adjust"),
|
|
6856
6945
|
[onSetValue]
|
|
6857
6946
|
);
|
|
6858
|
-
const handleSetValue = (0,
|
|
6947
|
+
const handleSetValue = (0, import_react68.useCallback)(
|
|
6859
6948
|
(value2) => onSetValue(value2, "replace"),
|
|
6860
6949
|
[onSetValue]
|
|
6861
6950
|
);
|
|
6862
|
-
return /* @__PURE__ */
|
|
6951
|
+
return /* @__PURE__ */ import_react68.default.createElement(InputField.Root, { id, width: size2 }, /* @__PURE__ */ import_react68.default.createElement(
|
|
6863
6952
|
InputField.NumberInput,
|
|
6864
6953
|
{
|
|
6865
6954
|
value: value === void 0 ? value : (0, import_noya_utils12.round)(value, 2),
|
|
@@ -6868,7 +6957,7 @@ var DimensionInput = (0, import_react67.memo)(function DimensionInput2({
|
|
|
6868
6957
|
disabled,
|
|
6869
6958
|
...trigger === "change" ? { onChange: handleSetValue } : { onSubmit: handleSetValue }
|
|
6870
6959
|
}
|
|
6871
|
-
), label && /* @__PURE__ */
|
|
6960
|
+
), label && /* @__PURE__ */ import_react68.default.createElement(InputField.Label, null, label));
|
|
6872
6961
|
});
|
|
6873
6962
|
// Annotate the CommonJS export names for ESM import in node:
|
|
6874
6963
|
0 && (module.exports = {
|