@noya-app/noya-designsystem 0.1.6 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +9 -9
- package/CHANGELOG.md +17 -0
- package/dist/index.d.mts +7 -4
- package/dist/index.d.ts +7 -4
- package/dist/index.js +502 -491
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +184 -168
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
- package/src/components/Button.tsx +1 -1
- package/src/components/DraggableMenuButton.tsx +21 -15
- package/src/components/InspectorPrimitives.tsx +1 -0
- package/src/components/ListView.tsx +10 -5
- package/src/components/Select.tsx +1 -1
package/dist/index.js
CHANGED
|
@@ -260,7 +260,7 @@ var ButtonElement = import_styled_components4.default.button(({ theme, active, d
|
|
|
260
260
|
boxShadow: `0 0 0 1px ${theme.colors.sidebar.background}, 0 0 0 3px ${theme.colors.primary}`
|
|
261
261
|
},
|
|
262
262
|
"&:hover": {
|
|
263
|
-
background: variant === "primaryGradient" ? theme.colors.primaryLight : theme.colors.inputBackgroundLight
|
|
263
|
+
background: variant === "primaryGradient" || active ? theme.colors.primaryLight : theme.colors.inputBackgroundLight
|
|
264
264
|
},
|
|
265
265
|
"&:active": {
|
|
266
266
|
background: variant === "primaryGradient" ? theme.colors.primary : theme.colors.activeBackground
|
|
@@ -372,11 +372,11 @@ var Button = (0, import_react4.forwardRef)(function Button2({
|
|
|
372
372
|
|
|
373
373
|
// src/components/Chip.tsx
|
|
374
374
|
var import_noya_icons3 = require("@noya-app/noya-icons");
|
|
375
|
-
var
|
|
375
|
+
var import_react34 = __toESM(require("react"));
|
|
376
376
|
var import_styled_components16 = __toESM(require("styled-components"));
|
|
377
377
|
|
|
378
378
|
// src/contexts/DesignSystemConfiguration.tsx
|
|
379
|
-
var
|
|
379
|
+
var import_react33 = __toESM(require("react"));
|
|
380
380
|
var import_styled_components15 = require("styled-components");
|
|
381
381
|
|
|
382
382
|
// src/components/Toast.tsx
|
|
@@ -464,7 +464,7 @@ var Toast = ({
|
|
|
464
464
|
var ToastProvider = ({ children }) => /* @__PURE__ */ import_react6.default.createElement(ToastPrimitive.Provider, null, children, /* @__PURE__ */ import_react6.default.createElement(ToastViewport, null));
|
|
465
465
|
|
|
466
466
|
// src/contexts/DialogContext.tsx
|
|
467
|
-
var
|
|
467
|
+
var import_react32 = __toESM(require("react"));
|
|
468
468
|
var import_styled_components14 = __toESM(require("styled-components"));
|
|
469
469
|
|
|
470
470
|
// src/components/Dialog.tsx
|
|
@@ -771,22 +771,25 @@ var import_react16 = require("react");
|
|
|
771
771
|
// ../noya-react-utils/src/hooks/useMutableState.ts
|
|
772
772
|
var import_react17 = require("react");
|
|
773
773
|
|
|
774
|
-
// ../noya-react-utils/src/hooks/
|
|
774
|
+
// ../noya-react-utils/src/hooks/usePersistentState.ts
|
|
775
775
|
var import_react18 = require("react");
|
|
776
776
|
|
|
777
|
+
// ../noya-react-utils/src/hooks/usePixelRatio.ts
|
|
778
|
+
var import_react19 = require("react");
|
|
779
|
+
|
|
777
780
|
// ../noya-react-utils/src/hooks/useShallowArray.ts
|
|
778
781
|
var import_noya_utils3 = require("@noya-app/noya-utils");
|
|
779
|
-
var
|
|
782
|
+
var import_react20 = require("react");
|
|
780
783
|
|
|
781
784
|
// ../noya-react-utils/src/hooks/useStableCallback.ts
|
|
782
|
-
var
|
|
785
|
+
var import_react21 = require("react");
|
|
783
786
|
|
|
784
787
|
// ../noya-react-utils/src/hooks/useSystemColorScheme.ts
|
|
785
|
-
var
|
|
788
|
+
var import_react22 = require("react");
|
|
786
789
|
|
|
787
790
|
// ../noya-react-utils/src/hooks/useUrlHashParameters.ts
|
|
788
791
|
var import_noya_utils4 = require("@noya-app/noya-utils");
|
|
789
|
-
var
|
|
792
|
+
var import_react23 = require("react");
|
|
790
793
|
|
|
791
794
|
// ../noya-react-utils/src/utils/assignRef.ts
|
|
792
795
|
function assignRef(ref, value) {
|
|
@@ -798,7 +801,7 @@ function assignRef(ref, value) {
|
|
|
798
801
|
}
|
|
799
802
|
|
|
800
803
|
// src/components/InputField.tsx
|
|
801
|
-
var
|
|
804
|
+
var import_react31 = __toESM(require("react"));
|
|
802
805
|
var import_styled_components13 = __toESM(require("styled-components"));
|
|
803
806
|
|
|
804
807
|
// src/utils/handleNudge.ts
|
|
@@ -829,25 +832,25 @@ function handleNudge(e) {
|
|
|
829
832
|
var import_noya_icons = require("@noya-app/noya-icons");
|
|
830
833
|
var import_noya_keymap2 = require("@noya-app/noya-keymap");
|
|
831
834
|
var RadixDropdownMenu = __toESM(require("@radix-ui/react-dropdown-menu"));
|
|
832
|
-
var
|
|
835
|
+
var import_react26 = __toESM(require("react"));
|
|
833
836
|
var import_styled_components10 = __toESM(require("styled-components"));
|
|
834
837
|
|
|
835
838
|
// src/components/internal/Menu.tsx
|
|
836
839
|
var import_noya_keymap = require("@noya-app/noya-keymap");
|
|
837
|
-
var
|
|
840
|
+
var import_react25 = __toESM(require("react"));
|
|
838
841
|
var import_styled_components9 = __toESM(require("styled-components"));
|
|
839
842
|
|
|
840
843
|
// src/utils/withSeparatorElements.ts
|
|
841
|
-
var
|
|
844
|
+
var import_react24 = require("react");
|
|
842
845
|
function createKey(key) {
|
|
843
846
|
return `s-${key}`;
|
|
844
847
|
}
|
|
845
848
|
function withSeparatorElements(elements2, separator) {
|
|
846
|
-
const childrenArray =
|
|
849
|
+
const childrenArray = import_react24.Children.toArray(elements2);
|
|
847
850
|
for (let i = childrenArray.length - 1; i > 0; i--) {
|
|
848
|
-
let sep = typeof separator === "function" ? separator() : (0,
|
|
849
|
-
if ((0,
|
|
850
|
-
sep = (0,
|
|
851
|
+
let sep = typeof separator === "function" ? separator() : (0, import_react24.isValidElement)(separator) ? (0, import_react24.cloneElement)(separator, { key: createKey(i) }) : separator;
|
|
852
|
+
if ((0, import_react24.isValidElement)(sep) && sep.key == null) {
|
|
853
|
+
sep = (0, import_react24.cloneElement)(sep, { key: createKey(i) });
|
|
851
854
|
}
|
|
852
855
|
if (!sep || typeof sep === "boolean")
|
|
853
856
|
continue;
|
|
@@ -947,12 +950,12 @@ var ShortcutElement = import_styled_components9.default.kbd(
|
|
|
947
950
|
}
|
|
948
951
|
})
|
|
949
952
|
);
|
|
950
|
-
var KeyboardShortcut = (0,
|
|
953
|
+
var KeyboardShortcut = (0, import_react25.memo)(function KeyboardShortcut2({
|
|
951
954
|
shortcut
|
|
952
955
|
}) {
|
|
953
956
|
const platform = useDesignSystemConfiguration().platform;
|
|
954
957
|
const { keys, separator } = (0, import_noya_keymap.getShortcutDisplayParts)(shortcut, platform);
|
|
955
|
-
const keyElements = keys.map((key) => /* @__PURE__ */
|
|
958
|
+
const keyElements = keys.map((key) => /* @__PURE__ */ import_react25.default.createElement(
|
|
956
959
|
ShortcutElement,
|
|
957
960
|
{
|
|
958
961
|
key,
|
|
@@ -960,9 +963,9 @@ var KeyboardShortcut = (0, import_react24.memo)(function KeyboardShortcut2({
|
|
|
960
963
|
},
|
|
961
964
|
key
|
|
962
965
|
));
|
|
963
|
-
return /* @__PURE__ */
|
|
966
|
+
return /* @__PURE__ */ import_react25.default.createElement(import_react25.default.Fragment, null, separator ? withSeparatorElements(
|
|
964
967
|
keyElements,
|
|
965
|
-
/* @__PURE__ */
|
|
968
|
+
/* @__PURE__ */ import_react25.default.createElement(ShortcutElement, null, separator)
|
|
966
969
|
) : keyElements);
|
|
967
970
|
});
|
|
968
971
|
|
|
@@ -977,7 +980,7 @@ var CheckboxItemElement = (0, import_styled_components10.default)(RadixDropdownM
|
|
|
977
980
|
var StyledItemIndicator = (0, import_styled_components10.default)(RadixDropdownMenu.ItemIndicator)(
|
|
978
981
|
styles.itemIndicatorStyle
|
|
979
982
|
);
|
|
980
|
-
var DropdownMenuItem = (0,
|
|
983
|
+
var DropdownMenuItem = (0, import_react26.memo)(function ContextMenuItem({
|
|
981
984
|
value,
|
|
982
985
|
children,
|
|
983
986
|
onSelect,
|
|
@@ -988,34 +991,34 @@ var DropdownMenuItem = (0, import_react25.memo)(function ContextMenuItem({
|
|
|
988
991
|
items,
|
|
989
992
|
shortcut
|
|
990
993
|
}) {
|
|
991
|
-
const handleSelectItem = (0,
|
|
994
|
+
const handleSelectItem = (0, import_react26.useCallback)(() => {
|
|
992
995
|
if (!value)
|
|
993
996
|
return;
|
|
994
997
|
onSelect(value);
|
|
995
998
|
}, [onSelect, value]);
|
|
996
999
|
if (checked) {
|
|
997
|
-
return /* @__PURE__ */
|
|
1000
|
+
return /* @__PURE__ */ import_react26.default.createElement(
|
|
998
1001
|
CheckboxItemElement,
|
|
999
1002
|
{
|
|
1000
1003
|
checked,
|
|
1001
1004
|
disabled,
|
|
1002
1005
|
onSelect: handleSelectItem
|
|
1003
1006
|
},
|
|
1004
|
-
/* @__PURE__ */
|
|
1005
|
-
icon && /* @__PURE__ */
|
|
1007
|
+
/* @__PURE__ */ import_react26.default.createElement(StyledItemIndicator, null, /* @__PURE__ */ import_react26.default.createElement(import_noya_icons.CheckIcon, null)),
|
|
1008
|
+
icon && /* @__PURE__ */ import_react26.default.createElement(import_react26.default.Fragment, null, icon, /* @__PURE__ */ import_react26.default.createElement(Spacer.Horizontal, { size: 8 })),
|
|
1006
1009
|
children
|
|
1007
1010
|
);
|
|
1008
1011
|
}
|
|
1009
|
-
const element = /* @__PURE__ */
|
|
1012
|
+
const element = /* @__PURE__ */ import_react26.default.createElement(ItemElement, { disabled, onSelect: handleSelectItem }, indented && /* @__PURE__ */ import_react26.default.createElement(Spacer.Horizontal, { size: CHECKBOX_WIDTH - CHECKBOX_RIGHT_INSET }), icon && /* @__PURE__ */ import_react26.default.createElement(import_react26.default.Fragment, null, icon, /* @__PURE__ */ import_react26.default.createElement(Spacer.Horizontal, { size: 8 })), children, shortcut && /* @__PURE__ */ import_react26.default.createElement(import_react26.default.Fragment, null, /* @__PURE__ */ import_react26.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react26.default.createElement(Spacer.Horizontal, { size: 24 }), /* @__PURE__ */ import_react26.default.createElement(KeyboardShortcut, { shortcut })), items && items.length > 0 && /* @__PURE__ */ import_react26.default.createElement(import_react26.default.Fragment, null, /* @__PURE__ */ import_react26.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react26.default.createElement(Spacer.Horizontal, { size: 16 }), /* @__PURE__ */ import_react26.default.createElement(import_noya_icons.ChevronRightIcon, null)));
|
|
1010
1013
|
if (items && items.length > 0) {
|
|
1011
|
-
return /* @__PURE__ */
|
|
1014
|
+
return /* @__PURE__ */ import_react26.default.createElement(DropdownMenuRoot, { isNested: true, items, onSelect }, element);
|
|
1012
1015
|
} else {
|
|
1013
1016
|
return element;
|
|
1014
1017
|
}
|
|
1015
1018
|
});
|
|
1016
1019
|
var Content5 = (0, import_styled_components10.default)(RadixDropdownMenu.Content)(styles.contentStyle);
|
|
1017
1020
|
var SubContent2 = (0, import_styled_components10.default)(RadixDropdownMenu.SubContent)(styles.contentStyle);
|
|
1018
|
-
var DropdownMenuRoot = (0,
|
|
1021
|
+
var DropdownMenuRoot = (0, import_react26.forwardRef)(function DropdownMenuRoot2({
|
|
1019
1022
|
items,
|
|
1020
1023
|
children,
|
|
1021
1024
|
onSelect,
|
|
@@ -1028,7 +1031,7 @@ var DropdownMenuRoot = (0, import_react25.forwardRef)(function DropdownMenuRoot2
|
|
|
1028
1031
|
const hasCheckedItem = items.some(
|
|
1029
1032
|
(item) => item !== SEPARATOR_ITEM && item.checked
|
|
1030
1033
|
);
|
|
1031
|
-
const keymap = (0,
|
|
1034
|
+
const keymap = (0, import_react26.useMemo)(
|
|
1032
1035
|
() => isNested || shouldBindKeyboardShortcuts === false ? {} : getKeyboardShortcutsForMenuItems(items, onSelect),
|
|
1033
1036
|
[isNested, items, onSelect, shouldBindKeyboardShortcuts]
|
|
1034
1037
|
);
|
|
@@ -1036,8 +1039,8 @@ var DropdownMenuRoot = (0, import_react25.forwardRef)(function DropdownMenuRoot2
|
|
|
1036
1039
|
const RootComponent = isNested ? RadixDropdownMenu.Sub : RadixDropdownMenu.Root;
|
|
1037
1040
|
const TriggerComponent = isNested ? RadixDropdownMenu.SubTrigger : RadixDropdownMenu.Trigger;
|
|
1038
1041
|
const ContentComponent = isNested ? SubContent2 : Content5;
|
|
1039
|
-
const contentStyle = (0,
|
|
1040
|
-
return /* @__PURE__ */
|
|
1042
|
+
const contentStyle = (0, import_react26.useMemo)(() => ({ zIndex: 1e3 }), []);
|
|
1043
|
+
return /* @__PURE__ */ import_react26.default.createElement(RootComponent, { onOpenChange, open }, /* @__PURE__ */ import_react26.default.createElement(TriggerComponent, { ref: forwardedRef, asChild: true }, children), /* @__PURE__ */ import_react26.default.createElement(RadixDropdownMenu.Portal, null, /* @__PURE__ */ import_react26.default.createElement(
|
|
1041
1044
|
ContentComponent,
|
|
1042
1045
|
{
|
|
1043
1046
|
sideOffset: 4,
|
|
@@ -1046,7 +1049,7 @@ var DropdownMenuRoot = (0, import_react25.forwardRef)(function DropdownMenuRoot2
|
|
|
1046
1049
|
...{ onCloseAutoFocus }
|
|
1047
1050
|
},
|
|
1048
1051
|
items.map(
|
|
1049
|
-
(item, index) => item === SEPARATOR_ITEM ? /* @__PURE__ */
|
|
1052
|
+
(item, index) => item === SEPARATOR_ITEM ? /* @__PURE__ */ import_react26.default.createElement(SeparatorElement, { key: index }) : /* @__PURE__ */ import_react26.default.createElement(
|
|
1050
1053
|
DropdownMenuItem,
|
|
1051
1054
|
{
|
|
1052
1055
|
key: item.value ?? index,
|
|
@@ -1064,14 +1067,14 @@ var DropdownMenuRoot = (0, import_react25.forwardRef)(function DropdownMenuRoot2
|
|
|
1064
1067
|
)
|
|
1065
1068
|
)));
|
|
1066
1069
|
});
|
|
1067
|
-
var DropdownMenu = (0,
|
|
1070
|
+
var DropdownMenu = (0, import_react26.memo)(DropdownMenuRoot);
|
|
1068
1071
|
|
|
1069
1072
|
// src/components/internal/TextInput.tsx
|
|
1070
1073
|
var import_react_compose_refs = require("@radix-ui/react-compose-refs");
|
|
1071
|
-
var
|
|
1074
|
+
var import_react28 = __toESM(require("react"));
|
|
1072
1075
|
|
|
1073
1076
|
// src/contexts/GlobalInputBlurContext.tsx
|
|
1074
|
-
var
|
|
1077
|
+
var import_react27 = require("react");
|
|
1075
1078
|
var defaultValue = /* @__PURE__ */ (() => {
|
|
1076
1079
|
const listeners = [];
|
|
1077
1080
|
const value = {
|
|
@@ -1092,14 +1095,14 @@ var defaultValue = /* @__PURE__ */ (() => {
|
|
|
1092
1095
|
};
|
|
1093
1096
|
return value;
|
|
1094
1097
|
})();
|
|
1095
|
-
var GlobalInputBlurContext = (0,
|
|
1098
|
+
var GlobalInputBlurContext = (0, import_react27.createContext)(defaultValue);
|
|
1096
1099
|
var GlobalInputBlurProvider = GlobalInputBlurContext.Provider;
|
|
1097
1100
|
var useGlobalInputBlur = () => {
|
|
1098
|
-
return (0,
|
|
1101
|
+
return (0, import_react27.useContext)(GlobalInputBlurContext);
|
|
1099
1102
|
};
|
|
1100
1103
|
function useGlobalInputBlurListener(f) {
|
|
1101
1104
|
const context = useGlobalInputBlur();
|
|
1102
|
-
(0,
|
|
1105
|
+
(0, import_react27.useEffect)(() => {
|
|
1103
1106
|
context.addListener(f);
|
|
1104
1107
|
return () => {
|
|
1105
1108
|
context.removeListener(f);
|
|
@@ -1111,8 +1114,8 @@ function useGlobalInputBlurTrigger() {
|
|
|
1111
1114
|
}
|
|
1112
1115
|
|
|
1113
1116
|
// src/components/internal/TextInput.tsx
|
|
1114
|
-
var ReadOnlyTextInput = (0,
|
|
1115
|
-
return /* @__PURE__ */
|
|
1117
|
+
var ReadOnlyTextInput = (0, import_react28.forwardRef)(function ReadOnlyTextInput2({ onKeyDown, onFocusChange, value, ...rest }, forwardedRef) {
|
|
1118
|
+
return /* @__PURE__ */ import_react28.default.createElement(
|
|
1116
1119
|
"input",
|
|
1117
1120
|
{
|
|
1118
1121
|
ref: forwardedRef,
|
|
@@ -1123,7 +1126,7 @@ var ReadOnlyTextInput = (0, import_react27.forwardRef)(function ReadOnlyTextInpu
|
|
|
1123
1126
|
}
|
|
1124
1127
|
);
|
|
1125
1128
|
});
|
|
1126
|
-
var ControlledTextInput = (0,
|
|
1129
|
+
var ControlledTextInput = (0, import_react28.forwardRef)(function ControlledTextInput2({
|
|
1127
1130
|
onKeyDown,
|
|
1128
1131
|
value,
|
|
1129
1132
|
onChange,
|
|
@@ -1132,28 +1135,28 @@ var ControlledTextInput = (0, import_react27.forwardRef)(function ControlledText
|
|
|
1132
1135
|
onFocusCapture,
|
|
1133
1136
|
...rest
|
|
1134
1137
|
}, forwardedRef) {
|
|
1135
|
-
const handleBlur = (0,
|
|
1138
|
+
const handleBlur = (0, import_react28.useCallback)(
|
|
1136
1139
|
(event) => {
|
|
1137
1140
|
onBlur?.(event);
|
|
1138
1141
|
onFocusChange?.(false);
|
|
1139
1142
|
},
|
|
1140
1143
|
[onBlur, onFocusChange]
|
|
1141
1144
|
);
|
|
1142
|
-
const handleFocusCapture = (0,
|
|
1145
|
+
const handleFocusCapture = (0, import_react28.useCallback)(
|
|
1143
1146
|
(event) => {
|
|
1144
1147
|
onFocusCapture?.(event);
|
|
1145
1148
|
onFocusChange?.(true);
|
|
1146
1149
|
},
|
|
1147
1150
|
[onFocusCapture, onFocusChange]
|
|
1148
1151
|
);
|
|
1149
|
-
return /* @__PURE__ */
|
|
1152
|
+
return /* @__PURE__ */ import_react28.default.createElement(
|
|
1150
1153
|
"input",
|
|
1151
1154
|
{
|
|
1152
1155
|
ref: forwardedRef,
|
|
1153
1156
|
...rest,
|
|
1154
1157
|
value,
|
|
1155
1158
|
onKeyDown,
|
|
1156
|
-
onChange: (0,
|
|
1159
|
+
onChange: (0, import_react28.useCallback)(
|
|
1157
1160
|
(event) => onChange(event.target.value),
|
|
1158
1161
|
[onChange]
|
|
1159
1162
|
),
|
|
@@ -1162,7 +1165,7 @@ var ControlledTextInput = (0, import_react27.forwardRef)(function ControlledText
|
|
|
1162
1165
|
}
|
|
1163
1166
|
);
|
|
1164
1167
|
});
|
|
1165
|
-
var SubmittableTextInput = (0,
|
|
1168
|
+
var SubmittableTextInput = (0, import_react28.forwardRef)(function SubmittableTextInput2({
|
|
1166
1169
|
onKeyDown,
|
|
1167
1170
|
value,
|
|
1168
1171
|
onSubmit,
|
|
@@ -1173,16 +1176,16 @@ var SubmittableTextInput = (0, import_react27.forwardRef)(function SubmittableTe
|
|
|
1173
1176
|
submitAutomaticallyAfterDelay,
|
|
1174
1177
|
...rest
|
|
1175
1178
|
}, forwardedRef) {
|
|
1176
|
-
const ref =
|
|
1177
|
-
const latestValue = (0,
|
|
1179
|
+
const ref = import_react28.default.useRef(null);
|
|
1180
|
+
const latestValue = (0, import_react28.useRef)(value);
|
|
1178
1181
|
latestValue.current = value;
|
|
1179
|
-
const userDidEdit = (0,
|
|
1180
|
-
const isSubmitTriggeredByEscapeKey = (0,
|
|
1181
|
-
const [internalValue, setInternalValue] = (0,
|
|
1182
|
-
(0,
|
|
1182
|
+
const userDidEdit = (0, import_react28.useRef)(false);
|
|
1183
|
+
const isSubmitTriggeredByEscapeKey = (0, import_react28.useRef)(false);
|
|
1184
|
+
const [internalValue, setInternalValue] = (0, import_react28.useState)("");
|
|
1185
|
+
(0, import_react28.useLayoutEffect)(() => {
|
|
1183
1186
|
setInternalValue(value);
|
|
1184
1187
|
}, [value]);
|
|
1185
|
-
const handleSubmit = (0,
|
|
1188
|
+
const handleSubmit = (0, import_react28.useCallback)(() => {
|
|
1186
1189
|
const submissionValue = isSubmitTriggeredByEscapeKey.current ? value : internalValue;
|
|
1187
1190
|
isSubmitTriggeredByEscapeKey.current = false;
|
|
1188
1191
|
if (submissionValue === value && !allowSubmittingWithSameValue)
|
|
@@ -1192,13 +1195,13 @@ var SubmittableTextInput = (0, import_react27.forwardRef)(function SubmittableTe
|
|
|
1192
1195
|
setInternalValue(latestValue.current);
|
|
1193
1196
|
}, [allowSubmittingWithSameValue, value, internalValue, onSubmit]);
|
|
1194
1197
|
useGlobalInputBlurListener(
|
|
1195
|
-
(0,
|
|
1198
|
+
(0, import_react28.useCallback)(() => {
|
|
1196
1199
|
if (ref.current !== document.activeElement)
|
|
1197
1200
|
return;
|
|
1198
1201
|
handleSubmit();
|
|
1199
1202
|
}, [handleSubmit])
|
|
1200
1203
|
);
|
|
1201
|
-
const handleKeyDown = (0,
|
|
1204
|
+
const handleKeyDown = (0, import_react28.useCallback)(
|
|
1202
1205
|
(event) => {
|
|
1203
1206
|
if (event.key === "Enter") {
|
|
1204
1207
|
handleSubmit();
|
|
@@ -1213,14 +1216,14 @@ var SubmittableTextInput = (0, import_react27.forwardRef)(function SubmittableTe
|
|
|
1213
1216
|
},
|
|
1214
1217
|
[onKeyDown, handleSubmit]
|
|
1215
1218
|
);
|
|
1216
|
-
const handleChange = (0,
|
|
1219
|
+
const handleChange = (0, import_react28.useCallback)(
|
|
1217
1220
|
(event) => {
|
|
1218
1221
|
userDidEdit.current = true;
|
|
1219
1222
|
setInternalValue(event.target.value);
|
|
1220
1223
|
},
|
|
1221
1224
|
[]
|
|
1222
1225
|
);
|
|
1223
|
-
const handleBlur = (0,
|
|
1226
|
+
const handleBlur = (0, import_react28.useCallback)(
|
|
1224
1227
|
(event) => {
|
|
1225
1228
|
onBlur?.(event);
|
|
1226
1229
|
onFocusChange?.(false);
|
|
@@ -1228,19 +1231,19 @@ var SubmittableTextInput = (0, import_react27.forwardRef)(function SubmittableTe
|
|
|
1228
1231
|
},
|
|
1229
1232
|
[onBlur, onFocusChange, handleSubmit]
|
|
1230
1233
|
);
|
|
1231
|
-
const handleFocusCapture = (0,
|
|
1234
|
+
const handleFocusCapture = (0, import_react28.useCallback)(
|
|
1232
1235
|
(event) => {
|
|
1233
1236
|
onFocusCapture?.(event);
|
|
1234
1237
|
onFocusChange?.(true);
|
|
1235
1238
|
},
|
|
1236
1239
|
[onFocusCapture, onFocusChange]
|
|
1237
1240
|
);
|
|
1238
|
-
const autoSubmitTimeoutRef = (0,
|
|
1241
|
+
const autoSubmitTimeoutRef = (0, import_react28.useRef)(
|
|
1239
1242
|
null
|
|
1240
1243
|
);
|
|
1241
|
-
const latestHandleSubmit = (0,
|
|
1244
|
+
const latestHandleSubmit = (0, import_react28.useRef)(handleSubmit);
|
|
1242
1245
|
latestHandleSubmit.current = handleSubmit;
|
|
1243
|
-
(0,
|
|
1246
|
+
(0, import_react28.useEffect)(() => {
|
|
1244
1247
|
if (submitAutomaticallyAfterDelay) {
|
|
1245
1248
|
if (autoSubmitTimeoutRef.current) {
|
|
1246
1249
|
clearTimeout(autoSubmitTimeoutRef.current);
|
|
@@ -1257,7 +1260,7 @@ var SubmittableTextInput = (0, import_react27.forwardRef)(function SubmittableTe
|
|
|
1257
1260
|
}
|
|
1258
1261
|
};
|
|
1259
1262
|
}, [internalValue, submitAutomaticallyAfterDelay]);
|
|
1260
|
-
return /* @__PURE__ */
|
|
1263
|
+
return /* @__PURE__ */ import_react28.default.createElement(
|
|
1261
1264
|
"input",
|
|
1262
1265
|
{
|
|
1263
1266
|
ref: (0, import_react_compose_refs.composeRefs)(ref, forwardedRef),
|
|
@@ -1270,13 +1273,13 @@ var SubmittableTextInput = (0, import_react27.forwardRef)(function SubmittableTe
|
|
|
1270
1273
|
}
|
|
1271
1274
|
);
|
|
1272
1275
|
});
|
|
1273
|
-
var TextInput_default = (0,
|
|
1276
|
+
var TextInput_default = (0, import_react28.forwardRef)(function TextInput(props, forwardedRef) {
|
|
1274
1277
|
const commonProps = {
|
|
1275
|
-
onPointerDown: (0,
|
|
1278
|
+
onPointerDown: (0, import_react28.useCallback)(
|
|
1276
1279
|
(event) => event.stopPropagation(),
|
|
1277
1280
|
[]
|
|
1278
1281
|
),
|
|
1279
|
-
onClick: (0,
|
|
1282
|
+
onClick: (0, import_react28.useCallback)(
|
|
1280
1283
|
(event) => event.stopPropagation(),
|
|
1281
1284
|
[]
|
|
1282
1285
|
),
|
|
@@ -1289,17 +1292,17 @@ var TextInput_default = (0, import_react27.forwardRef)(function TextInput(props,
|
|
|
1289
1292
|
...props
|
|
1290
1293
|
};
|
|
1291
1294
|
if ("readOnly" in commonProps) {
|
|
1292
|
-
return /* @__PURE__ */
|
|
1295
|
+
return /* @__PURE__ */ import_react28.default.createElement(ReadOnlyTextInput, { ref: forwardedRef, ...commonProps, readOnly: true });
|
|
1293
1296
|
} else if ("onChange" in commonProps) {
|
|
1294
|
-
return /* @__PURE__ */
|
|
1297
|
+
return /* @__PURE__ */ import_react28.default.createElement(ControlledTextInput, { ref: forwardedRef, ...commonProps });
|
|
1295
1298
|
} else {
|
|
1296
|
-
return /* @__PURE__ */
|
|
1299
|
+
return /* @__PURE__ */ import_react28.default.createElement(SubmittableTextInput, { ref: forwardedRef, ...commonProps });
|
|
1297
1300
|
}
|
|
1298
1301
|
});
|
|
1299
1302
|
|
|
1300
1303
|
// src/components/Popover.tsx
|
|
1301
1304
|
var PopoverPrimitive = __toESM(require("@radix-ui/react-popover"));
|
|
1302
|
-
var
|
|
1305
|
+
var import_react29 = __toESM(require("react"));
|
|
1303
1306
|
var import_styled_components11 = __toESM(require("styled-components"));
|
|
1304
1307
|
var ContentElement = (0, import_styled_components11.default)(PopoverPrimitive.Content)(({ theme, variant }) => ({
|
|
1305
1308
|
borderRadius: 4,
|
|
@@ -1346,7 +1349,7 @@ function Popover({
|
|
|
1346
1349
|
onFocusOutside,
|
|
1347
1350
|
onClickClose
|
|
1348
1351
|
}) {
|
|
1349
|
-
return /* @__PURE__ */
|
|
1352
|
+
return /* @__PURE__ */ import_react29.default.createElement(PopoverPrimitive.Root, { open, onOpenChange }, /* @__PURE__ */ import_react29.default.createElement(PopoverPrimitive.Trigger, { asChild: true }, trigger), /* @__PURE__ */ import_react29.default.createElement(PopoverPrimitive.Portal, null, /* @__PURE__ */ import_react29.default.createElement(
|
|
1350
1353
|
ContentElement,
|
|
1351
1354
|
{
|
|
1352
1355
|
variant,
|
|
@@ -1367,13 +1370,13 @@ function Popover({
|
|
|
1367
1370
|
}
|
|
1368
1371
|
},
|
|
1369
1372
|
children,
|
|
1370
|
-
showArrow && /* @__PURE__ */
|
|
1371
|
-
closable && /* @__PURE__ */
|
|
1373
|
+
showArrow && /* @__PURE__ */ import_react29.default.createElement(ArrowElement, null),
|
|
1374
|
+
closable && /* @__PURE__ */ import_react29.default.createElement(PopoverClose, null, /* @__PURE__ */ import_react29.default.createElement(IconButton, { iconName: "Cross2Icon", onClick: onClickClose }))
|
|
1372
1375
|
)));
|
|
1373
1376
|
}
|
|
1374
1377
|
|
|
1375
1378
|
// src/components/Stack.tsx
|
|
1376
|
-
var
|
|
1379
|
+
var import_react30 = __toESM(require("react"));
|
|
1377
1380
|
var import_styled_components12 = __toESM(require("styled-components"));
|
|
1378
1381
|
|
|
1379
1382
|
// src/utils/breakpoints.ts
|
|
@@ -1399,15 +1402,15 @@ var Element = import_styled_components12.default.div(({ styleProps, breakpoints
|
|
|
1399
1402
|
...styleProps,
|
|
1400
1403
|
...mergeBreakpoints(breakpoints || [])
|
|
1401
1404
|
}));
|
|
1402
|
-
var StackBase = (0,
|
|
1403
|
-
const elements2 = separator ? withSeparatorElements(
|
|
1405
|
+
var StackBase = (0, import_react30.forwardRef)(function StackBase2({ id, as, children, separator, breakpoints, tabIndex, href, ...rest }, forwardedRef) {
|
|
1406
|
+
const elements2 = separator ? withSeparatorElements(import_react30.Children.toArray(children), separator) : children;
|
|
1404
1407
|
const styleProps = {
|
|
1405
1408
|
display: "flex",
|
|
1406
1409
|
position: "relative",
|
|
1407
1410
|
alignItems: "stretch",
|
|
1408
1411
|
...rest
|
|
1409
1412
|
};
|
|
1410
|
-
return /* @__PURE__ */
|
|
1413
|
+
return /* @__PURE__ */ import_react30.default.createElement(
|
|
1411
1414
|
Element,
|
|
1412
1415
|
{
|
|
1413
1416
|
ref: forwardedRef,
|
|
@@ -1421,14 +1424,14 @@ var StackBase = (0, import_react29.forwardRef)(function StackBase2({ id, as, chi
|
|
|
1421
1424
|
elements2
|
|
1422
1425
|
);
|
|
1423
1426
|
});
|
|
1424
|
-
var VerticalStack = (0,
|
|
1425
|
-
(0,
|
|
1426
|
-
return /* @__PURE__ */
|
|
1427
|
+
var VerticalStack = (0, import_react30.memo)(
|
|
1428
|
+
(0, import_react30.forwardRef)(function VStack(props, forwardedRef) {
|
|
1429
|
+
return /* @__PURE__ */ import_react30.default.createElement(StackBase, { ...props, flexDirection: "column", ref: forwardedRef });
|
|
1427
1430
|
})
|
|
1428
1431
|
);
|
|
1429
|
-
var HorizontalStack = (0,
|
|
1430
|
-
(0,
|
|
1431
|
-
return /* @__PURE__ */
|
|
1432
|
+
var HorizontalStack = (0, import_react30.memo)(
|
|
1433
|
+
(0, import_react30.forwardRef)(function HStack(props, forwardedRef) {
|
|
1434
|
+
return /* @__PURE__ */ import_react30.default.createElement(StackBase, { ...props, flexDirection: "row", ref: forwardedRef });
|
|
1432
1435
|
})
|
|
1433
1436
|
);
|
|
1434
1437
|
var Stack = {
|
|
@@ -1437,7 +1440,7 @@ var Stack = {
|
|
|
1437
1440
|
};
|
|
1438
1441
|
|
|
1439
1442
|
// src/components/InputField.tsx
|
|
1440
|
-
var InputFieldContext = (0,
|
|
1443
|
+
var InputFieldContext = (0, import_react31.createContext)({
|
|
1441
1444
|
labelPosition: "end",
|
|
1442
1445
|
labelSize: 6,
|
|
1443
1446
|
hasLabel: false,
|
|
@@ -1465,11 +1468,11 @@ var LabelContainer = import_styled_components13.default.label(({ theme, labelPos
|
|
|
1465
1468
|
paddingRight: hasDropdown ? "16px" : "6px"
|
|
1466
1469
|
}
|
|
1467
1470
|
}));
|
|
1468
|
-
var InputFieldLabel = (0,
|
|
1469
|
-
(0,
|
|
1470
|
-
const { labelPosition, hasDropdown, setLabelWidth } = (0,
|
|
1471
|
-
const ref = (0,
|
|
1472
|
-
(0,
|
|
1471
|
+
var InputFieldLabel = (0, import_react31.memo)(
|
|
1472
|
+
(0, import_react31.forwardRef)(function InputFieldLabel2({ children = false, pointerEvents = "none", style: style3 }, forwardedRef) {
|
|
1473
|
+
const { labelPosition, hasDropdown, setLabelWidth } = (0, import_react31.useContext)(InputFieldContext);
|
|
1474
|
+
const ref = (0, import_react31.useRef)(null);
|
|
1475
|
+
(0, import_react31.useLayoutEffect)(() => {
|
|
1473
1476
|
if (!setLabelWidth)
|
|
1474
1477
|
return;
|
|
1475
1478
|
const width = ref.current?.getBoundingClientRect().width;
|
|
@@ -1477,7 +1480,7 @@ var InputFieldLabel = (0, import_react30.memo)(
|
|
|
1477
1480
|
return;
|
|
1478
1481
|
setLabelWidth(width);
|
|
1479
1482
|
}, [setLabelWidth]);
|
|
1480
|
-
return /* @__PURE__ */
|
|
1483
|
+
return /* @__PURE__ */ import_react31.default.createElement(
|
|
1481
1484
|
LabelContainer,
|
|
1482
1485
|
{
|
|
1483
1486
|
ref: (element) => {
|
|
@@ -1501,16 +1504,16 @@ var DropdownContainer = import_styled_components13.default.span(({ theme }) => (
|
|
|
1501
1504
|
display: "flex",
|
|
1502
1505
|
flexDirection: "column"
|
|
1503
1506
|
}));
|
|
1504
|
-
var InputFieldDropdownMenu = (0,
|
|
1505
|
-
const { size: size2 } = (0,
|
|
1506
|
-
const contentStyle = (0,
|
|
1507
|
+
var InputFieldDropdownMenu = (0, import_react31.memo)(function InputFieldDropdownMenu2({ id, items, onSelect, children }) {
|
|
1508
|
+
const { size: size2 } = (0, import_react31.useContext)(InputFieldContext);
|
|
1509
|
+
const contentStyle = (0, import_react31.useMemo)(
|
|
1507
1510
|
() => ({
|
|
1508
1511
|
margin: "-4px 0",
|
|
1509
1512
|
minHeight: size2 === "small" ? "15px" : void 0
|
|
1510
1513
|
}),
|
|
1511
1514
|
[size2]
|
|
1512
1515
|
);
|
|
1513
|
-
return /* @__PURE__ */
|
|
1516
|
+
return /* @__PURE__ */ import_react31.default.createElement(DropdownContainer, null, /* @__PURE__ */ import_react31.default.createElement(DropdownMenu, { items, onSelect }, children || /* @__PURE__ */ import_react31.default.createElement(Button, { id, variant: "thin", flex: "1", contentStyle }, /* @__PURE__ */ import_react31.default.createElement(import_noya_icons2.CaretDownIcon, null))));
|
|
1514
1517
|
});
|
|
1515
1518
|
var ButtonContainer = import_styled_components13.default.span(
|
|
1516
1519
|
({ theme, size: size2 }) => ({
|
|
@@ -1519,12 +1522,12 @@ var ButtonContainer = import_styled_components13.default.span(
|
|
|
1519
1522
|
top: size2 === "large" ? "8px" : size2 === "medium" ? "4px" : "2px"
|
|
1520
1523
|
})
|
|
1521
1524
|
);
|
|
1522
|
-
var InputFieldButton = (0,
|
|
1525
|
+
var InputFieldButton = (0, import_react31.memo)(function InputFieldButton2({
|
|
1523
1526
|
children,
|
|
1524
1527
|
onClick
|
|
1525
1528
|
}) {
|
|
1526
|
-
const { size: size2, inputRef } = (0,
|
|
1527
|
-
const defaultHandleClick = (0,
|
|
1529
|
+
const { size: size2, inputRef } = (0, import_react31.useContext)(InputFieldContext);
|
|
1530
|
+
const defaultHandleClick = (0, import_react31.useCallback)(
|
|
1528
1531
|
(event) => {
|
|
1529
1532
|
if (inputRef && typeof inputRef !== "function") {
|
|
1530
1533
|
inputRef.current?.focus();
|
|
@@ -1535,11 +1538,11 @@ var InputFieldButton = (0, import_react30.memo)(function InputFieldButton2({
|
|
|
1535
1538
|
},
|
|
1536
1539
|
[inputRef]
|
|
1537
1540
|
);
|
|
1538
|
-
const handlePointerDown = (0,
|
|
1541
|
+
const handlePointerDown = (0, import_react31.useCallback)((event) => {
|
|
1539
1542
|
event.preventDefault();
|
|
1540
1543
|
event.stopPropagation();
|
|
1541
1544
|
}, []);
|
|
1542
|
-
return /* @__PURE__ */
|
|
1545
|
+
return /* @__PURE__ */ import_react31.default.createElement(ButtonContainer, { size: size2 }, /* @__PURE__ */ import_react31.default.createElement(
|
|
1543
1546
|
Button,
|
|
1544
1547
|
{
|
|
1545
1548
|
variant: "floating",
|
|
@@ -1626,7 +1629,7 @@ var InputElement = (0, import_styled_components13.default)(TextInput_default).wi
|
|
|
1626
1629
|
}
|
|
1627
1630
|
})
|
|
1628
1631
|
);
|
|
1629
|
-
var InputFieldInput = (0,
|
|
1632
|
+
var InputFieldInput = (0, import_react31.forwardRef)(function InputFieldInput2(props, forwardedRef) {
|
|
1630
1633
|
const {
|
|
1631
1634
|
labelPosition,
|
|
1632
1635
|
labelSize,
|
|
@@ -1635,17 +1638,17 @@ var InputFieldInput = (0, import_react30.forwardRef)(function InputFieldInput2(p
|
|
|
1635
1638
|
size: size2,
|
|
1636
1639
|
onFocusChange,
|
|
1637
1640
|
setInputRef
|
|
1638
|
-
} = (0,
|
|
1639
|
-
const handleFocusChange = (0,
|
|
1641
|
+
} = (0, import_react31.useContext)(InputFieldContext);
|
|
1642
|
+
const handleFocusChange = (0, import_react31.useCallback)(
|
|
1640
1643
|
(isFocused) => {
|
|
1641
1644
|
onFocusChange(isFocused);
|
|
1642
1645
|
},
|
|
1643
1646
|
[onFocusChange]
|
|
1644
1647
|
);
|
|
1645
|
-
(0,
|
|
1648
|
+
(0, import_react31.useLayoutEffect)(() => {
|
|
1646
1649
|
setInputRef?.(forwardedRef);
|
|
1647
1650
|
}, [forwardedRef, setInputRef]);
|
|
1648
|
-
return /* @__PURE__ */
|
|
1651
|
+
return /* @__PURE__ */ import_react31.default.createElement(
|
|
1649
1652
|
InputElement,
|
|
1650
1653
|
{
|
|
1651
1654
|
ref: forwardedRef,
|
|
@@ -1667,8 +1670,8 @@ var InputFieldTypeahead = (props) => {
|
|
|
1667
1670
|
hasLabel,
|
|
1668
1671
|
size: size2,
|
|
1669
1672
|
onFocusChange
|
|
1670
|
-
} = (0,
|
|
1671
|
-
return /* @__PURE__ */
|
|
1673
|
+
} = (0, import_react31.useContext)(InputFieldContext);
|
|
1674
|
+
return /* @__PURE__ */ import_react31.default.createElement(
|
|
1672
1675
|
InputElement,
|
|
1673
1676
|
{
|
|
1674
1677
|
labelPosition,
|
|
@@ -1702,7 +1705,7 @@ function InputFieldNumberInput(props) {
|
|
|
1702
1705
|
const { value, placeholder, onNudge } = props;
|
|
1703
1706
|
const onSubmit = "onSubmit" in props ? props.onSubmit : void 0;
|
|
1704
1707
|
const onChange = "onChange" in props ? props.onChange : void 0;
|
|
1705
|
-
const handleSubmit = (0,
|
|
1708
|
+
const handleSubmit = (0, import_react31.useCallback)(
|
|
1706
1709
|
(value2) => {
|
|
1707
1710
|
const newValue = parseNumber(value2);
|
|
1708
1711
|
if (!isNaN(newValue)) {
|
|
@@ -1711,7 +1714,7 @@ function InputFieldNumberInput(props) {
|
|
|
1711
1714
|
},
|
|
1712
1715
|
[onSubmit]
|
|
1713
1716
|
);
|
|
1714
|
-
const handleKeyDown = (0,
|
|
1717
|
+
const handleKeyDown = (0, import_react31.useCallback)(
|
|
1715
1718
|
(event) => {
|
|
1716
1719
|
const amount = handleNudge(event);
|
|
1717
1720
|
if (!amount)
|
|
@@ -1722,13 +1725,13 @@ function InputFieldNumberInput(props) {
|
|
|
1722
1725
|
},
|
|
1723
1726
|
[onNudge]
|
|
1724
1727
|
);
|
|
1725
|
-
const handleChange = (0,
|
|
1728
|
+
const handleChange = (0, import_react31.useCallback)(
|
|
1726
1729
|
(value2) => {
|
|
1727
1730
|
onChange?.(parseNumber(value2));
|
|
1728
1731
|
},
|
|
1729
1732
|
[onChange]
|
|
1730
1733
|
);
|
|
1731
|
-
return /* @__PURE__ */
|
|
1734
|
+
return /* @__PURE__ */ import_react31.default.createElement(
|
|
1732
1735
|
InputFieldInput,
|
|
1733
1736
|
{
|
|
1734
1737
|
...props,
|
|
@@ -1759,32 +1762,32 @@ function InputFieldRoot({
|
|
|
1759
1762
|
renderPopoverContent,
|
|
1760
1763
|
onFocusChange
|
|
1761
1764
|
}) {
|
|
1762
|
-
const childrenArray =
|
|
1765
|
+
const childrenArray = import_react31.Children.toArray(children);
|
|
1763
1766
|
const hasDropdown = childrenArray.some(
|
|
1764
|
-
(child) => (0,
|
|
1767
|
+
(child) => (0, import_react31.isValidElement)(child) && child.type === InputFieldDropdownMenu
|
|
1765
1768
|
);
|
|
1766
1769
|
const hasLabel = childrenArray.some(
|
|
1767
|
-
(child) => (0,
|
|
1770
|
+
(child) => (0, import_react31.isValidElement)(child) && child.type === InputFieldLabel
|
|
1768
1771
|
);
|
|
1769
|
-
const [isFocused, setIsFocused] =
|
|
1770
|
-
const [measuredLabelSize, setMeasuredLabelSize] =
|
|
1771
|
-
const [measuredWidth, setMeasuredWidth] =
|
|
1772
|
-
const handleFocusChange = (0,
|
|
1772
|
+
const [isFocused, setIsFocused] = import_react31.default.useState(false);
|
|
1773
|
+
const [measuredLabelSize, setMeasuredLabelSize] = import_react31.default.useState();
|
|
1774
|
+
const [measuredWidth, setMeasuredWidth] = import_react31.default.useState();
|
|
1775
|
+
const handleFocusChange = (0, import_react31.useCallback)(
|
|
1773
1776
|
(isFocused2) => {
|
|
1774
1777
|
setIsFocused(isFocused2);
|
|
1775
1778
|
onFocusChange?.(isFocused2);
|
|
1776
1779
|
},
|
|
1777
1780
|
[onFocusChange]
|
|
1778
1781
|
);
|
|
1779
|
-
const [inputRef, setInputRef] =
|
|
1780
|
-
(0,
|
|
1782
|
+
const [inputRef, setInputRef] = import_react31.default.useState();
|
|
1783
|
+
(0, import_react31.useEffect)(() => {
|
|
1781
1784
|
if (inputRef && typeof inputRef !== "function") {
|
|
1782
1785
|
setMeasuredWidth?.(
|
|
1783
1786
|
isFocused ? inputRef?.current?.getBoundingClientRect().width : void 0
|
|
1784
1787
|
);
|
|
1785
1788
|
}
|
|
1786
1789
|
}, [inputRef, isFocused]);
|
|
1787
|
-
const contextValue = (0,
|
|
1790
|
+
const contextValue = (0, import_react31.useMemo)(
|
|
1788
1791
|
() => ({
|
|
1789
1792
|
labelPosition,
|
|
1790
1793
|
labelSize: measuredLabelSize ?? labelSize ?? 6,
|
|
@@ -1809,8 +1812,8 @@ function InputFieldRoot({
|
|
|
1809
1812
|
inputRef
|
|
1810
1813
|
]
|
|
1811
1814
|
);
|
|
1812
|
-
const rootElement = /* @__PURE__ */
|
|
1813
|
-
return /* @__PURE__ */
|
|
1815
|
+
const rootElement = /* @__PURE__ */ import_react31.default.createElement(RootContainer, { id, width, flex }, children);
|
|
1816
|
+
return /* @__PURE__ */ import_react31.default.createElement(InputFieldContext.Provider, { value: contextValue }, renderPopoverContent ? /* @__PURE__ */ import_react31.default.createElement(
|
|
1814
1817
|
Popover,
|
|
1815
1818
|
{
|
|
1816
1819
|
open: true,
|
|
@@ -1826,15 +1829,15 @@ function InputFieldRoot({
|
|
|
1826
1829
|
event.stopPropagation();
|
|
1827
1830
|
}
|
|
1828
1831
|
},
|
|
1829
|
-
measuredWidth && /* @__PURE__ */
|
|
1832
|
+
measuredWidth && /* @__PURE__ */ import_react31.default.createElement(Stack.V, { width: measuredWidth, overflow: "hidden" }, renderPopoverContent({ width: measuredWidth }))
|
|
1830
1833
|
) : rootElement);
|
|
1831
1834
|
}
|
|
1832
1835
|
var InputField;
|
|
1833
1836
|
((InputField2) => {
|
|
1834
|
-
InputField2.Root = (0,
|
|
1835
|
-
InputField2.Input = (0,
|
|
1836
|
-
InputField2.Typeahead = (0,
|
|
1837
|
-
InputField2.NumberInput = (0,
|
|
1837
|
+
InputField2.Root = (0, import_react31.memo)(InputFieldRoot);
|
|
1838
|
+
InputField2.Input = (0, import_react31.memo)(InputFieldInput);
|
|
1839
|
+
InputField2.Typeahead = (0, import_react31.memo)(InputFieldTypeahead);
|
|
1840
|
+
InputField2.NumberInput = (0, import_react31.memo)(InputFieldNumberInput);
|
|
1838
1841
|
InputField2.DropdownMenu = InputFieldDropdownMenu;
|
|
1839
1842
|
InputField2.Button = InputFieldButton;
|
|
1840
1843
|
InputField2.Label = InputFieldLabel;
|
|
@@ -1858,24 +1861,24 @@ function createDeferredPromise() {
|
|
|
1858
1861
|
});
|
|
1859
1862
|
return { promise, resolve, reject };
|
|
1860
1863
|
}
|
|
1861
|
-
var DialogContext = (0,
|
|
1864
|
+
var DialogContext = (0, import_react32.createContext)(void 0);
|
|
1862
1865
|
var DialogProvider = function DialogProvider2({
|
|
1863
1866
|
children
|
|
1864
1867
|
}) {
|
|
1865
|
-
const [contents, setContents] = (0,
|
|
1868
|
+
const [contents, setContents] = (0, import_react32.useState)();
|
|
1866
1869
|
const isOpen = !!contents;
|
|
1867
|
-
const close = (0,
|
|
1870
|
+
const close = (0, import_react32.useCallback)(() => {
|
|
1868
1871
|
if (!contents)
|
|
1869
1872
|
return;
|
|
1870
1873
|
contents.resolve(void 0);
|
|
1871
1874
|
}, [contents]);
|
|
1872
|
-
const submit = (0,
|
|
1875
|
+
const submit = (0, import_react32.useCallback)(() => {
|
|
1873
1876
|
if (!contents || !contents.inputValue)
|
|
1874
1877
|
return;
|
|
1875
1878
|
contents.resolve(contents.inputValue);
|
|
1876
1879
|
setContents(void 0);
|
|
1877
1880
|
}, [contents]);
|
|
1878
|
-
const open = (0,
|
|
1881
|
+
const open = (0, import_react32.useCallback)(
|
|
1879
1882
|
(title, inputValue = "") => {
|
|
1880
1883
|
const { promise, resolve } = createDeferredPromise();
|
|
1881
1884
|
setContents({
|
|
@@ -1890,7 +1893,7 @@ var DialogProvider = function DialogProvider2({
|
|
|
1890
1893
|
},
|
|
1891
1894
|
[]
|
|
1892
1895
|
);
|
|
1893
|
-
const handleKeyDown = (0,
|
|
1896
|
+
const handleKeyDown = (0, import_react32.useCallback)(
|
|
1894
1897
|
(event) => {
|
|
1895
1898
|
if (event.key !== "Enter")
|
|
1896
1899
|
return;
|
|
@@ -1900,29 +1903,29 @@ var DialogProvider = function DialogProvider2({
|
|
|
1900
1903
|
},
|
|
1901
1904
|
[submit]
|
|
1902
1905
|
);
|
|
1903
|
-
const inputRef = (0,
|
|
1904
|
-
const dialogRef = (0,
|
|
1905
|
-
const containsElement = (0,
|
|
1906
|
+
const inputRef = (0, import_react32.useRef)(null);
|
|
1907
|
+
const dialogRef = (0, import_react32.useRef)(null);
|
|
1908
|
+
const containsElement = (0, import_react32.useCallback)((element) => {
|
|
1906
1909
|
if (!dialogRef.current)
|
|
1907
1910
|
return false;
|
|
1908
1911
|
return dialogRef.current.containsElement(element);
|
|
1909
1912
|
}, []);
|
|
1910
|
-
return /* @__PURE__ */
|
|
1913
|
+
return /* @__PURE__ */ import_react32.default.createElement(import_react32.default.Fragment, null, /* @__PURE__ */ import_react32.default.createElement(
|
|
1911
1914
|
DialogContext.Provider,
|
|
1912
1915
|
{
|
|
1913
|
-
value: (0,
|
|
1916
|
+
value: (0, import_react32.useMemo)(
|
|
1914
1917
|
() => ({ openInputDialog: open, containsElement }),
|
|
1915
1918
|
[containsElement, open]
|
|
1916
1919
|
)
|
|
1917
1920
|
},
|
|
1918
1921
|
children
|
|
1919
|
-
), /* @__PURE__ */
|
|
1922
|
+
), /* @__PURE__ */ import_react32.default.createElement(
|
|
1920
1923
|
Dialog,
|
|
1921
1924
|
{
|
|
1922
1925
|
ref: dialogRef,
|
|
1923
1926
|
title: contents?.title,
|
|
1924
1927
|
open: isOpen,
|
|
1925
|
-
onOpenChange: (0,
|
|
1928
|
+
onOpenChange: (0, import_react32.useCallback)(
|
|
1926
1929
|
(isOpen2) => {
|
|
1927
1930
|
if (!isOpen2) {
|
|
1928
1931
|
close();
|
|
@@ -1930,14 +1933,14 @@ var DialogProvider = function DialogProvider2({
|
|
|
1930
1933
|
},
|
|
1931
1934
|
[close]
|
|
1932
1935
|
),
|
|
1933
|
-
onOpenAutoFocus: (0,
|
|
1936
|
+
onOpenAutoFocus: (0, import_react32.useCallback)((event) => {
|
|
1934
1937
|
event.stopPropagation();
|
|
1935
1938
|
event.preventDefault();
|
|
1936
1939
|
inputRef.current?.focus();
|
|
1937
1940
|
inputRef.current?.setSelectionRange(0, inputRef.current.value.length);
|
|
1938
1941
|
}, [])
|
|
1939
1942
|
},
|
|
1940
|
-
/* @__PURE__ */
|
|
1943
|
+
/* @__PURE__ */ import_react32.default.createElement(InputField.Root, null, /* @__PURE__ */ import_react32.default.createElement(
|
|
1941
1944
|
InputField.Input,
|
|
1942
1945
|
{
|
|
1943
1946
|
ref: inputRef,
|
|
@@ -1953,12 +1956,12 @@ var DialogProvider = function DialogProvider2({
|
|
|
1953
1956
|
onKeyDown: handleKeyDown
|
|
1954
1957
|
}
|
|
1955
1958
|
)),
|
|
1956
|
-
/* @__PURE__ */
|
|
1957
|
-
/* @__PURE__ */
|
|
1959
|
+
/* @__PURE__ */ import_react32.default.createElement(Spacer.Vertical, { size: 20 }),
|
|
1960
|
+
/* @__PURE__ */ import_react32.default.createElement(Row, null, /* @__PURE__ */ import_react32.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react32.default.createElement(Button, { onClick: close }, "Cancel"), /* @__PURE__ */ import_react32.default.createElement(Spacer.Horizontal, { size: 16 }), /* @__PURE__ */ import_react32.default.createElement(Button, { disabled: !contents?.inputValue, onClick: submit }, "Submit"))
|
|
1958
1961
|
));
|
|
1959
1962
|
};
|
|
1960
1963
|
function useDialog() {
|
|
1961
|
-
const value = (0,
|
|
1964
|
+
const value = (0, import_react32.useContext)(DialogContext);
|
|
1962
1965
|
if (!value) {
|
|
1963
1966
|
throw new Error("Missing DialogProvider");
|
|
1964
1967
|
}
|
|
@@ -1972,19 +1975,19 @@ function useDialogContainsElement() {
|
|
|
1972
1975
|
}
|
|
1973
1976
|
|
|
1974
1977
|
// src/contexts/DesignSystemConfiguration.tsx
|
|
1975
|
-
var DesignSystemConfigurationContext = (0,
|
|
1976
|
-
var DesignSystemConfigurationProvider = (0,
|
|
1978
|
+
var DesignSystemConfigurationContext = (0, import_react33.createContext)(void 0);
|
|
1979
|
+
var DesignSystemConfigurationProvider = (0, import_react33.memo)(
|
|
1977
1980
|
function DesignSystemConfigurationProvider2({
|
|
1978
1981
|
children,
|
|
1979
1982
|
theme,
|
|
1980
1983
|
platform
|
|
1981
1984
|
}) {
|
|
1982
|
-
const contextValue = (0,
|
|
1983
|
-
return /* @__PURE__ */
|
|
1985
|
+
const contextValue = (0, import_react33.useMemo)(() => ({ platform }), [platform]);
|
|
1986
|
+
return /* @__PURE__ */ import_react33.default.createElement(DesignSystemConfigurationContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react33.default.createElement(import_styled_components15.ThemeProvider, { theme }, /* @__PURE__ */ import_react33.default.createElement(DialogProvider, null, /* @__PURE__ */ import_react33.default.createElement(ToastProvider, null, children))));
|
|
1984
1987
|
}
|
|
1985
1988
|
);
|
|
1986
1989
|
function useDesignSystemConfiguration() {
|
|
1987
|
-
const value = (0,
|
|
1990
|
+
const value = (0, import_react33.useContext)(DesignSystemConfigurationContext);
|
|
1988
1991
|
if (!value) {
|
|
1989
1992
|
throw new Error("Missing DesignSystemConfigurationProvider");
|
|
1990
1993
|
}
|
|
@@ -2172,7 +2175,7 @@ var AddElement = (0, import_styled_components16.default)(import_noya_icons3.Plus
|
|
|
2172
2175
|
opacity: 0.85
|
|
2173
2176
|
}
|
|
2174
2177
|
}));
|
|
2175
|
-
var Chip = (0,
|
|
2178
|
+
var Chip = (0, import_react34.memo)(function Chip2({
|
|
2176
2179
|
colorScheme,
|
|
2177
2180
|
children,
|
|
2178
2181
|
deletable,
|
|
@@ -2193,7 +2196,7 @@ var Chip = (0, import_react33.memo)(function Chip2({
|
|
|
2193
2196
|
});
|
|
2194
2197
|
const handleClick = !children && !deletable && addable ? onAdd : onClick;
|
|
2195
2198
|
const color = colorScheme === "primary" ? theme.colors.primary : colorScheme === "secondary" ? theme.colors.secondary : theme.colors.text;
|
|
2196
|
-
return /* @__PURE__ */
|
|
2199
|
+
return /* @__PURE__ */ import_react34.default.createElement(
|
|
2197
2200
|
ChipElement,
|
|
2198
2201
|
{
|
|
2199
2202
|
variant,
|
|
@@ -2205,7 +2208,7 @@ var Chip = (0, import_react33.memo)(function Chip2({
|
|
|
2205
2208
|
isInteractive: !!handleClick,
|
|
2206
2209
|
tabIndex
|
|
2207
2210
|
},
|
|
2208
|
-
addable && /* @__PURE__ */
|
|
2211
|
+
addable && /* @__PURE__ */ import_react34.default.createElement(
|
|
2209
2212
|
AddElement,
|
|
2210
2213
|
{
|
|
2211
2214
|
size: size2,
|
|
@@ -2218,7 +2221,7 @@ var Chip = (0, import_react33.memo)(function Chip2({
|
|
|
2218
2221
|
}
|
|
2219
2222
|
),
|
|
2220
2223
|
children,
|
|
2221
|
-
deletable && /* @__PURE__ */
|
|
2224
|
+
deletable && /* @__PURE__ */ import_react34.default.createElement(
|
|
2222
2225
|
DeleteElement,
|
|
2223
2226
|
{
|
|
2224
2227
|
size: size2,
|
|
@@ -2237,7 +2240,7 @@ var Chip = (0, import_react33.memo)(function Chip2({
|
|
|
2237
2240
|
var import_noya_icons4 = require("@noya-app/noya-icons");
|
|
2238
2241
|
var import_noya_keymap3 = require("@noya-app/noya-keymap");
|
|
2239
2242
|
var RadixContextMenu = __toESM(require("@radix-ui/react-context-menu"));
|
|
2240
|
-
var
|
|
2243
|
+
var import_react35 = __toESM(require("react"));
|
|
2241
2244
|
var import_styled_components17 = __toESM(require("styled-components"));
|
|
2242
2245
|
var SeparatorElement2 = (0, import_styled_components17.default)(RadixContextMenu.Separator)(
|
|
2243
2246
|
styles.separatorStyle
|
|
@@ -2249,7 +2252,7 @@ var CheckboxItemElement2 = (0, import_styled_components17.default)(RadixContextM
|
|
|
2249
2252
|
var StyledItemIndicator2 = (0, import_styled_components17.default)(RadixContextMenu.ItemIndicator)(
|
|
2250
2253
|
styles.itemIndicatorStyle
|
|
2251
2254
|
);
|
|
2252
|
-
var ContextMenuItem2 = (0,
|
|
2255
|
+
var ContextMenuItem2 = (0, import_react35.memo)(function ContextMenuItem3({
|
|
2253
2256
|
value,
|
|
2254
2257
|
children,
|
|
2255
2258
|
onSelect,
|
|
@@ -2260,42 +2263,42 @@ var ContextMenuItem2 = (0, import_react34.memo)(function ContextMenuItem3({
|
|
|
2260
2263
|
items,
|
|
2261
2264
|
shortcut
|
|
2262
2265
|
}) {
|
|
2263
|
-
const handlePointerDown = (0,
|
|
2266
|
+
const handlePointerDown = (0, import_react35.useCallback)(
|
|
2264
2267
|
(event) => event.stopPropagation(),
|
|
2265
2268
|
[]
|
|
2266
2269
|
);
|
|
2267
|
-
const handleSelectItem = (0,
|
|
2270
|
+
const handleSelectItem = (0, import_react35.useCallback)(() => {
|
|
2268
2271
|
if (!value)
|
|
2269
2272
|
return;
|
|
2270
2273
|
onSelect(value);
|
|
2271
2274
|
}, [onSelect, value]);
|
|
2272
2275
|
if (checked) {
|
|
2273
|
-
return /* @__PURE__ */
|
|
2276
|
+
return /* @__PURE__ */ import_react35.default.createElement(
|
|
2274
2277
|
CheckboxItemElement2,
|
|
2275
2278
|
{
|
|
2276
2279
|
checked,
|
|
2277
2280
|
disabled,
|
|
2278
2281
|
onSelect: handleSelectItem
|
|
2279
2282
|
},
|
|
2280
|
-
/* @__PURE__ */
|
|
2283
|
+
/* @__PURE__ */ import_react35.default.createElement(StyledItemIndicator2, null, /* @__PURE__ */ import_react35.default.createElement(import_noya_icons4.CheckIcon, null)),
|
|
2281
2284
|
children
|
|
2282
2285
|
);
|
|
2283
2286
|
}
|
|
2284
|
-
const element = /* @__PURE__ */
|
|
2287
|
+
const element = /* @__PURE__ */ import_react35.default.createElement(
|
|
2285
2288
|
ItemElement2,
|
|
2286
2289
|
{
|
|
2287
2290
|
disabled,
|
|
2288
2291
|
onSelect: handleSelectItem,
|
|
2289
2292
|
onPointerDown: handlePointerDown
|
|
2290
2293
|
},
|
|
2291
|
-
indented && /* @__PURE__ */
|
|
2292
|
-
icon && /* @__PURE__ */
|
|
2294
|
+
indented && /* @__PURE__ */ import_react35.default.createElement(Spacer.Horizontal, { size: CHECKBOX_WIDTH - CHECKBOX_RIGHT_INSET }),
|
|
2295
|
+
icon && /* @__PURE__ */ import_react35.default.createElement(import_react35.default.Fragment, null, icon, /* @__PURE__ */ import_react35.default.createElement(Spacer.Horizontal, { size: 8 })),
|
|
2293
2296
|
children,
|
|
2294
|
-
shortcut && /* @__PURE__ */
|
|
2295
|
-
items && items.length > 0 && /* @__PURE__ */
|
|
2297
|
+
shortcut && /* @__PURE__ */ import_react35.default.createElement(import_react35.default.Fragment, null, /* @__PURE__ */ import_react35.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react35.default.createElement(Spacer.Horizontal, { size: 24 }), /* @__PURE__ */ import_react35.default.createElement(KeyboardShortcut, { shortcut })),
|
|
2298
|
+
items && items.length > 0 && /* @__PURE__ */ import_react35.default.createElement(import_react35.default.Fragment, null, /* @__PURE__ */ import_react35.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react35.default.createElement(Spacer.Horizontal, { size: 16 }), /* @__PURE__ */ import_react35.default.createElement(import_noya_icons4.ChevronRightIcon, null))
|
|
2296
2299
|
);
|
|
2297
2300
|
if (items && items.length > 0) {
|
|
2298
|
-
return /* @__PURE__ */
|
|
2301
|
+
return /* @__PURE__ */ import_react35.default.createElement(ContextMenuRoot, { isNested: true, items, onSelect }, element);
|
|
2299
2302
|
} else {
|
|
2300
2303
|
return element;
|
|
2301
2304
|
}
|
|
@@ -2313,19 +2316,19 @@ function ContextMenuRoot({
|
|
|
2313
2316
|
const hasCheckedItem = items.some(
|
|
2314
2317
|
(item) => item !== SEPARATOR_ITEM && item.checked
|
|
2315
2318
|
);
|
|
2316
|
-
const keymap = (0,
|
|
2319
|
+
const keymap = (0, import_react35.useMemo)(
|
|
2317
2320
|
() => isNested || shouldBindKeyboardShortcuts === false ? {} : getKeyboardShortcutsForMenuItems(items, onSelect),
|
|
2318
2321
|
[isNested, items, onSelect, shouldBindKeyboardShortcuts]
|
|
2319
2322
|
);
|
|
2320
2323
|
(0, import_noya_keymap3.useKeyboardShortcuts)(keymap);
|
|
2321
|
-
const onPointerDown = (0,
|
|
2324
|
+
const onPointerDown = (0, import_react35.useCallback)((event) => {
|
|
2322
2325
|
event.preventDefault();
|
|
2323
2326
|
}, []);
|
|
2324
2327
|
const RootComponent = isNested ? RadixContextMenu.Sub : RadixContextMenu.Root;
|
|
2325
2328
|
const TriggerComponent = isNested ? RadixContextMenu.SubTrigger : RadixContextMenu.Trigger;
|
|
2326
2329
|
const ContentComponent = isNested ? SubContent4 : Content8;
|
|
2327
|
-
return /* @__PURE__ */
|
|
2328
|
-
(item, index) => item === SEPARATOR_ITEM ? /* @__PURE__ */
|
|
2330
|
+
return /* @__PURE__ */ import_react35.default.createElement(RootComponent, { onOpenChange }, /* @__PURE__ */ import_react35.default.createElement(TriggerComponent, { asChild: true, onPointerDown }, children), /* @__PURE__ */ import_react35.default.createElement(RadixContextMenu.Portal, null, /* @__PURE__ */ import_react35.default.createElement(ContentComponent, null, items.map(
|
|
2331
|
+
(item, index) => item === SEPARATOR_ITEM ? /* @__PURE__ */ import_react35.default.createElement(SeparatorElement2, { key: index }) : /* @__PURE__ */ import_react35.default.createElement(
|
|
2329
2332
|
ContextMenuItem2,
|
|
2330
2333
|
{
|
|
2331
2334
|
key: item.value ?? index,
|
|
@@ -2342,26 +2345,26 @@ function ContextMenuRoot({
|
|
|
2342
2345
|
)
|
|
2343
2346
|
))));
|
|
2344
2347
|
}
|
|
2345
|
-
var ContextMenu = (0,
|
|
2348
|
+
var ContextMenu = (0, import_react35.memo)(ContextMenuRoot);
|
|
2346
2349
|
|
|
2347
2350
|
// src/components/Divider.tsx
|
|
2348
|
-
var
|
|
2351
|
+
var import_react36 = __toESM(require("react"));
|
|
2349
2352
|
var import_styled_components18 = __toESM(require("styled-components"));
|
|
2350
2353
|
var DividerContainer = import_styled_components18.default.div(({ theme, variant = "normal", orientation, overflow = 0 }) => ({
|
|
2351
2354
|
...orientation === "horizontal" ? { height: "1px", minHeight: "1px", margin: `0px -${overflow}px` } : { width: "1px", minWidth: "1px", margin: `-${overflow}px 0px` },
|
|
2352
2355
|
background: variant === "strong" ? theme.colors.dividerStrong : variant === "subtle" ? theme.colors.dividerSubtle : theme.colors.divider,
|
|
2353
2356
|
alignSelf: "stretch"
|
|
2354
2357
|
}));
|
|
2355
|
-
var Divider = (0,
|
|
2356
|
-
return /* @__PURE__ */
|
|
2358
|
+
var Divider = (0, import_react36.memo)(function Divider2(props) {
|
|
2359
|
+
return /* @__PURE__ */ import_react36.default.createElement(DividerContainer, { orientation: "horizontal", ...props });
|
|
2357
2360
|
});
|
|
2358
|
-
var DividerVertical = (0,
|
|
2359
|
-
return /* @__PURE__ */
|
|
2361
|
+
var DividerVertical = (0, import_react36.memo)(function DividerVertical2(props) {
|
|
2362
|
+
return /* @__PURE__ */ import_react36.default.createElement(DividerContainer, { orientation: "vertical", ...props });
|
|
2360
2363
|
});
|
|
2361
2364
|
|
|
2362
2365
|
// src/components/DraggableMenuButton.tsx
|
|
2363
2366
|
var import_noya_icons5 = require("@noya-app/noya-icons");
|
|
2364
|
-
var
|
|
2367
|
+
var import_react37 = __toESM(require("react"));
|
|
2365
2368
|
var import_styled_components19 = __toESM(require("styled-components"));
|
|
2366
2369
|
var DotButtonElement = import_styled_components19.default.div(({ theme }) => ({
|
|
2367
2370
|
cursor: "pointer",
|
|
@@ -2381,15 +2384,15 @@ var TriggerElement = import_styled_components19.default.div({
|
|
|
2381
2384
|
pointerEvents: "none",
|
|
2382
2385
|
height: "15px"
|
|
2383
2386
|
});
|
|
2384
|
-
var DraggableMenuButton = (0,
|
|
2387
|
+
var DraggableMenuButton = (0, import_react37.memo)(function DraggableMenuButton2({
|
|
2385
2388
|
items,
|
|
2386
2389
|
onSelect,
|
|
2387
2390
|
isVisible = true
|
|
2388
2391
|
}) {
|
|
2389
2392
|
const color = useDesignSystemTheme().colors.icon;
|
|
2390
|
-
const [open, setOpen] = (0,
|
|
2391
|
-
const [downPosition, setDownPosition] =
|
|
2392
|
-
const handlePointerDownCapture = (0,
|
|
2393
|
+
const [open, setOpen] = (0, import_react37.useState)(false);
|
|
2394
|
+
const [downPosition, setDownPosition] = import_react37.default.useState(null);
|
|
2395
|
+
const handlePointerDownCapture = (0, import_react37.useCallback)(
|
|
2393
2396
|
(event) => {
|
|
2394
2397
|
if (open) {
|
|
2395
2398
|
setDownPosition(null);
|
|
@@ -2402,7 +2405,7 @@ var DraggableMenuButton = (0, import_react36.memo)(function DraggableMenuButton2
|
|
|
2402
2405
|
},
|
|
2403
2406
|
[open]
|
|
2404
2407
|
);
|
|
2405
|
-
const handlePointerUp = (0,
|
|
2408
|
+
const handlePointerUp = (0, import_react37.useCallback)(
|
|
2406
2409
|
(event) => {
|
|
2407
2410
|
if (open || !downPosition) {
|
|
2408
2411
|
setDownPosition(null);
|
|
@@ -2418,14 +2421,14 @@ var DraggableMenuButton = (0, import_react36.memo)(function DraggableMenuButton2
|
|
|
2418
2421
|
},
|
|
2419
2422
|
[downPosition, open]
|
|
2420
2423
|
);
|
|
2421
|
-
const handleOpenChange = (0,
|
|
2424
|
+
const handleOpenChange = (0, import_react37.useCallback)(
|
|
2422
2425
|
(isOpen) => {
|
|
2423
2426
|
if (!isOpen)
|
|
2424
2427
|
setOpen(false);
|
|
2425
2428
|
},
|
|
2426
2429
|
[setOpen]
|
|
2427
2430
|
);
|
|
2428
|
-
return /* @__PURE__ */
|
|
2431
|
+
return /* @__PURE__ */ import_react37.default.createElement(
|
|
2429
2432
|
DotButtonElement,
|
|
2430
2433
|
{
|
|
2431
2434
|
onPointerDownCapture: handlePointerDownCapture,
|
|
@@ -2435,7 +2438,7 @@ var DraggableMenuButton = (0, import_react36.memo)(function DraggableMenuButton2
|
|
|
2435
2438
|
event.preventDefault();
|
|
2436
2439
|
}
|
|
2437
2440
|
},
|
|
2438
|
-
/* @__PURE__ */
|
|
2441
|
+
items && onSelect ? /* @__PURE__ */ import_react37.default.createElement(
|
|
2439
2442
|
DropdownMenu,
|
|
2440
2443
|
{
|
|
2441
2444
|
open,
|
|
@@ -2444,18 +2447,23 @@ var DraggableMenuButton = (0, import_react36.memo)(function DraggableMenuButton2
|
|
|
2444
2447
|
onSelect,
|
|
2445
2448
|
shouldBindKeyboardShortcuts: false
|
|
2446
2449
|
},
|
|
2447
|
-
/* @__PURE__ */
|
|
2450
|
+
/* @__PURE__ */ import_react37.default.createElement(TriggerElement, null, /* @__PURE__ */ import_react37.default.createElement(
|
|
2448
2451
|
import_noya_icons5.DragHandleDots2Icon,
|
|
2449
2452
|
{
|
|
2450
2453
|
color: isVisible || open ? color : "transparent"
|
|
2451
2454
|
}
|
|
2452
2455
|
))
|
|
2456
|
+
) : /* @__PURE__ */ import_react37.default.createElement(
|
|
2457
|
+
import_noya_icons5.DragHandleDots2Icon,
|
|
2458
|
+
{
|
|
2459
|
+
color: isVisible || open ? color : "transparent"
|
|
2460
|
+
}
|
|
2453
2461
|
)
|
|
2454
2462
|
);
|
|
2455
2463
|
});
|
|
2456
2464
|
|
|
2457
2465
|
// src/components/FillInputField.tsx
|
|
2458
|
-
var
|
|
2466
|
+
var import_react41 = __toESM(require("react"));
|
|
2459
2467
|
var import_styled_components21 = __toESM(require("styled-components"));
|
|
2460
2468
|
|
|
2461
2469
|
// ../noya-file-format/src/types.ts
|
|
@@ -2781,26 +2789,26 @@ var ClassValue = /* @__PURE__ */ ((ClassValue2) => {
|
|
|
2781
2789
|
})(ClassValue || {});
|
|
2782
2790
|
|
|
2783
2791
|
// src/components/FillPreviewBackground.tsx
|
|
2784
|
-
var
|
|
2792
|
+
var import_react40 = __toESM(require("react"));
|
|
2785
2793
|
var import_styled_components20 = __toESM(require("styled-components"));
|
|
2786
2794
|
|
|
2787
2795
|
// src/contexts/ImageDataContext.tsx
|
|
2788
|
-
var
|
|
2789
|
-
var ImageDataContext = (0,
|
|
2796
|
+
var import_react38 = __toESM(require("react"));
|
|
2797
|
+
var ImageDataContext = (0, import_react38.createContext)(
|
|
2790
2798
|
void 0
|
|
2791
2799
|
);
|
|
2792
|
-
var ImageDataProvider = (0,
|
|
2800
|
+
var ImageDataProvider = (0, import_react38.memo)(function ImageDataProvider2({
|
|
2793
2801
|
children,
|
|
2794
2802
|
getImageData
|
|
2795
2803
|
}) {
|
|
2796
|
-
const contextValue = (0,
|
|
2804
|
+
const contextValue = (0, import_react38.useMemo)(
|
|
2797
2805
|
() => ({ getImageData: getImageData ?? (() => void 0) }),
|
|
2798
2806
|
[getImageData]
|
|
2799
2807
|
);
|
|
2800
|
-
return /* @__PURE__ */
|
|
2808
|
+
return /* @__PURE__ */ import_react38.default.createElement(ImageDataContext.Provider, { value: contextValue }, children);
|
|
2801
2809
|
});
|
|
2802
2810
|
function useImageData(ref) {
|
|
2803
|
-
const value = (0,
|
|
2811
|
+
const value = (0, import_react38.useContext)(ImageDataContext);
|
|
2804
2812
|
if (!value) {
|
|
2805
2813
|
throw new Error("Missing ImageDataProvider");
|
|
2806
2814
|
}
|
|
@@ -2808,15 +2816,15 @@ function useImageData(ref) {
|
|
|
2808
2816
|
}
|
|
2809
2817
|
|
|
2810
2818
|
// src/hooks/useObjectURL.ts
|
|
2811
|
-
var
|
|
2819
|
+
var import_react39 = require("react");
|
|
2812
2820
|
function useObjectURL(object) {
|
|
2813
|
-
const objectURL = (0,
|
|
2821
|
+
const objectURL = (0, import_react39.useMemo)(() => {
|
|
2814
2822
|
if (object instanceof Blob)
|
|
2815
2823
|
return URL.createObjectURL(object);
|
|
2816
2824
|
const bytes = object instanceof Uint8Array ? object : object !== void 0 ? new Uint8Array(object) : new Uint8Array();
|
|
2817
2825
|
return URL.createObjectURL(new Blob([bytes]));
|
|
2818
2826
|
}, [object]);
|
|
2819
|
-
(0,
|
|
2827
|
+
(0, import_react39.useLayoutEffect)(() => {
|
|
2820
2828
|
return () => URL.revokeObjectURL(objectURL);
|
|
2821
2829
|
}, [objectURL]);
|
|
2822
2830
|
return objectURL;
|
|
@@ -2872,9 +2880,9 @@ var Background = import_styled_components20.default.span(({ background }) => ({
|
|
|
2872
2880
|
position: "absolute",
|
|
2873
2881
|
inset: 0
|
|
2874
2882
|
}));
|
|
2875
|
-
var HorizontalDotsBackground = (0,
|
|
2883
|
+
var HorizontalDotsBackground = (0, import_react40.memo)(function HorizontalDotsBackground2() {
|
|
2876
2884
|
const { inputBackground, placeholderDots } = (0, import_styled_components20.useTheme)().colors;
|
|
2877
|
-
const background = (0,
|
|
2885
|
+
const background = (0, import_react40.useMemo)(
|
|
2878
2886
|
() => [
|
|
2879
2887
|
`center url("data:image/svg+xml;utf8,${dotsHorizontalSvg(
|
|
2880
2888
|
placeholderDots
|
|
@@ -2883,7 +2891,7 @@ var HorizontalDotsBackground = (0, import_react39.memo)(function HorizontalDotsB
|
|
|
2883
2891
|
].join(","),
|
|
2884
2892
|
[inputBackground, placeholderDots]
|
|
2885
2893
|
);
|
|
2886
|
-
return /* @__PURE__ */
|
|
2894
|
+
return /* @__PURE__ */ import_react40.default.createElement(Background, { background });
|
|
2887
2895
|
});
|
|
2888
2896
|
function getPatternSizeAndPosition(fillType, tileScale) {
|
|
2889
2897
|
switch (fillType) {
|
|
@@ -2897,7 +2905,7 @@ function getPatternSizeAndPosition(fillType, tileScale) {
|
|
|
2897
2905
|
return "center / 100% 100%";
|
|
2898
2906
|
}
|
|
2899
2907
|
}
|
|
2900
|
-
var PatternPreviewBackground = (0,
|
|
2908
|
+
var PatternPreviewBackground = (0, import_react40.memo)(function PatternPreviewBackground2({
|
|
2901
2909
|
fillType,
|
|
2902
2910
|
tileScale,
|
|
2903
2911
|
imageRef
|
|
@@ -2905,7 +2913,7 @@ var PatternPreviewBackground = (0, import_react39.memo)(function PatternPreviewB
|
|
|
2905
2913
|
const image = useImageData(imageRef);
|
|
2906
2914
|
const url = useObjectURL(image);
|
|
2907
2915
|
const size2 = getPatternSizeAndPosition(fillType, tileScale);
|
|
2908
|
-
const background = (0,
|
|
2916
|
+
const background = (0, import_react40.useMemo)(
|
|
2909
2917
|
() => [
|
|
2910
2918
|
size2,
|
|
2911
2919
|
`url(${url})`,
|
|
@@ -2913,37 +2921,37 @@ var PatternPreviewBackground = (0, import_react39.memo)(function PatternPreviewB
|
|
|
2913
2921
|
].join(" "),
|
|
2914
2922
|
[fillType, size2, url]
|
|
2915
2923
|
);
|
|
2916
|
-
return /* @__PURE__ */
|
|
2924
|
+
return /* @__PURE__ */ import_react40.default.createElement(Background, { background });
|
|
2917
2925
|
});
|
|
2918
|
-
var ColorPreviewBackground = (0,
|
|
2926
|
+
var ColorPreviewBackground = (0, import_react40.memo)(function ColorPreviewBackground2({
|
|
2919
2927
|
color
|
|
2920
2928
|
}) {
|
|
2921
|
-
const background = (0,
|
|
2922
|
-
return /* @__PURE__ */
|
|
2929
|
+
const background = (0, import_react40.useMemo)(() => sketchColorToRgbaString(color), [color]);
|
|
2930
|
+
return /* @__PURE__ */ import_react40.default.createElement(Background, { background });
|
|
2923
2931
|
});
|
|
2924
|
-
var GradientPreviewBackground = (0,
|
|
2932
|
+
var GradientPreviewBackground = (0, import_react40.memo)(function GradientPreviewBackground2({
|
|
2925
2933
|
gradient
|
|
2926
2934
|
}) {
|
|
2927
|
-
const background = (0,
|
|
2935
|
+
const background = (0, import_react40.useMemo)(
|
|
2928
2936
|
() => getGradientBackground(gradient.stops, gradient.gradientType, 180),
|
|
2929
2937
|
[gradient.gradientType, gradient.stops]
|
|
2930
2938
|
);
|
|
2931
|
-
return /* @__PURE__ */
|
|
2939
|
+
return /* @__PURE__ */ import_react40.default.createElement(Background, { background });
|
|
2932
2940
|
});
|
|
2933
|
-
var FillPreviewBackground = (0,
|
|
2941
|
+
var FillPreviewBackground = (0, import_react40.memo)(function FillPreviewBackground2({
|
|
2934
2942
|
value
|
|
2935
2943
|
}) {
|
|
2936
2944
|
if (!value)
|
|
2937
|
-
return /* @__PURE__ */
|
|
2945
|
+
return /* @__PURE__ */ import_react40.default.createElement(HorizontalDotsBackground, null);
|
|
2938
2946
|
switch (value._class) {
|
|
2939
2947
|
case "color":
|
|
2940
|
-
return /* @__PURE__ */
|
|
2948
|
+
return /* @__PURE__ */ import_react40.default.createElement(ColorPreviewBackground, { color: value });
|
|
2941
2949
|
case "gradient":
|
|
2942
|
-
return /* @__PURE__ */
|
|
2950
|
+
return /* @__PURE__ */ import_react40.default.createElement(GradientPreviewBackground, { gradient: value });
|
|
2943
2951
|
case "pattern":
|
|
2944
2952
|
if (!value.image)
|
|
2945
2953
|
return null;
|
|
2946
|
-
return /* @__PURE__ */
|
|
2954
|
+
return /* @__PURE__ */ import_react40.default.createElement(
|
|
2947
2955
|
PatternPreviewBackground,
|
|
2948
2956
|
{
|
|
2949
2957
|
fillType: value.patternFillType,
|
|
@@ -2973,16 +2981,16 @@ var Container = import_styled_components21.default.button(
|
|
|
2973
2981
|
flex
|
|
2974
2982
|
})
|
|
2975
2983
|
);
|
|
2976
|
-
var FillInputField = (0,
|
|
2977
|
-
(0,
|
|
2978
|
-
return /* @__PURE__ */
|
|
2984
|
+
var FillInputField = (0, import_react41.memo)(
|
|
2985
|
+
(0, import_react41.forwardRef)(function FillInputField2({ id, value, ...rest }, ref) {
|
|
2986
|
+
return /* @__PURE__ */ import_react41.default.createElement(Container, { ref, id, ...rest }, /* @__PURE__ */ import_react41.default.createElement(FillPreviewBackground, { value }));
|
|
2979
2987
|
})
|
|
2980
2988
|
);
|
|
2981
2989
|
|
|
2982
2990
|
// src/components/GradientPicker.tsx
|
|
2983
2991
|
var import_noya_colorpicker2 = require("@noya-app/noya-colorpicker");
|
|
2984
|
-
var
|
|
2985
|
-
var GradientPicker = (0,
|
|
2992
|
+
var import_react42 = __toESM(require("react"));
|
|
2993
|
+
var GradientPicker = (0, import_react42.memo)(function GradientPicker2({
|
|
2986
2994
|
value,
|
|
2987
2995
|
selectedStop,
|
|
2988
2996
|
onChangeColor,
|
|
@@ -2991,7 +2999,7 @@ var GradientPicker = (0, import_react41.memo)(function GradientPicker2({
|
|
|
2991
2999
|
onDelete,
|
|
2992
3000
|
onSelectStop
|
|
2993
3001
|
}) {
|
|
2994
|
-
const colorModel = (0,
|
|
3002
|
+
const colorModel = (0, import_react42.useMemo)(
|
|
2995
3003
|
() => ({
|
|
2996
3004
|
defaultColor: { r: 0, g: 0, b: 0, a: 1 },
|
|
2997
3005
|
toHsva: import_noya_colorpicker2.rgbaToHsva,
|
|
@@ -3000,30 +3008,30 @@ var GradientPicker = (0, import_react41.memo)(function GradientPicker2({
|
|
|
3000
3008
|
}),
|
|
3001
3009
|
[]
|
|
3002
3010
|
);
|
|
3003
|
-
const rgbaColor = (0,
|
|
3011
|
+
const rgbaColor = (0, import_react42.useMemo)(
|
|
3004
3012
|
() => sketchColorToRgba(value[selectedStop].color),
|
|
3005
3013
|
[value, selectedStop]
|
|
3006
3014
|
);
|
|
3007
|
-
const handleChangeColor = (0,
|
|
3015
|
+
const handleChangeColor = (0, import_react42.useCallback)(
|
|
3008
3016
|
(value2) => {
|
|
3009
3017
|
onChangeColor(rgbaToSketchColor(value2));
|
|
3010
3018
|
},
|
|
3011
3019
|
[onChangeColor]
|
|
3012
3020
|
);
|
|
3013
|
-
const handleAddGradientStop = (0,
|
|
3021
|
+
const handleAddGradientStop = (0, import_react42.useCallback)(
|
|
3014
3022
|
(value2, position) => {
|
|
3015
3023
|
onAdd(rgbaToSketchColor(value2), position);
|
|
3016
3024
|
},
|
|
3017
3025
|
[onAdd]
|
|
3018
3026
|
);
|
|
3019
|
-
return /* @__PURE__ */
|
|
3027
|
+
return /* @__PURE__ */ import_react42.default.createElement(
|
|
3020
3028
|
import_noya_colorpicker2.ColorPicker,
|
|
3021
3029
|
{
|
|
3022
3030
|
onChange: handleChangeColor,
|
|
3023
3031
|
colorModel,
|
|
3024
3032
|
color: rgbaColor
|
|
3025
3033
|
},
|
|
3026
|
-
/* @__PURE__ */
|
|
3034
|
+
/* @__PURE__ */ import_react42.default.createElement(
|
|
3027
3035
|
import_noya_colorpicker2.Gradient,
|
|
3028
3036
|
{
|
|
3029
3037
|
gradients: value,
|
|
@@ -3034,12 +3042,12 @@ var GradientPicker = (0, import_react41.memo)(function GradientPicker2({
|
|
|
3034
3042
|
onDelete
|
|
3035
3043
|
}
|
|
3036
3044
|
),
|
|
3037
|
-
/* @__PURE__ */
|
|
3038
|
-
/* @__PURE__ */
|
|
3039
|
-
/* @__PURE__ */
|
|
3040
|
-
/* @__PURE__ */
|
|
3041
|
-
/* @__PURE__ */
|
|
3042
|
-
/* @__PURE__ */
|
|
3045
|
+
/* @__PURE__ */ import_react42.default.createElement(Spacer.Vertical, { size: 10 }),
|
|
3046
|
+
/* @__PURE__ */ import_react42.default.createElement(import_noya_colorpicker2.Saturation, null),
|
|
3047
|
+
/* @__PURE__ */ import_react42.default.createElement(Spacer.Vertical, { size: 12 }),
|
|
3048
|
+
/* @__PURE__ */ import_react42.default.createElement(import_noya_colorpicker2.Hue, null),
|
|
3049
|
+
/* @__PURE__ */ import_react42.default.createElement(Spacer.Vertical, { size: 5 }),
|
|
3050
|
+
/* @__PURE__ */ import_react42.default.createElement(import_noya_colorpicker2.Alpha, null)
|
|
3043
3051
|
);
|
|
3044
3052
|
});
|
|
3045
3053
|
|
|
@@ -3071,12 +3079,12 @@ var Grid = import_styled_components22.default.div((props) => ({
|
|
|
3071
3079
|
}));
|
|
3072
3080
|
|
|
3073
3081
|
// src/components/GridView.tsx
|
|
3074
|
-
var
|
|
3082
|
+
var import_react44 = __toESM(require("react"));
|
|
3075
3083
|
var import_styled_components24 = __toESM(require("styled-components"));
|
|
3076
3084
|
|
|
3077
3085
|
// src/components/ScrollArea.tsx
|
|
3078
3086
|
var RadixScrollArea = __toESM(require("@radix-ui/react-scroll-area"));
|
|
3079
|
-
var
|
|
3087
|
+
var import_react43 = __toESM(require("react"));
|
|
3080
3088
|
var import_styled_components23 = __toESM(require("styled-components"));
|
|
3081
3089
|
var SCROLLBAR_SIZE = 10;
|
|
3082
3090
|
var StyledViewport = (0, import_styled_components23.default)(RadixScrollArea.Viewport)({
|
|
@@ -3104,18 +3112,18 @@ var Container2 = import_styled_components23.default.div({
|
|
|
3104
3112
|
flex: "1 1 0px",
|
|
3105
3113
|
minHeight: 0
|
|
3106
3114
|
});
|
|
3107
|
-
var ScrollArea = (0,
|
|
3108
|
-
const [scrollElementRef, setScrollElementRef] = (0,
|
|
3109
|
-
return /* @__PURE__ */
|
|
3115
|
+
var ScrollArea = (0, import_react43.memo)(function ScrollArea2({ children }) {
|
|
3116
|
+
const [scrollElementRef, setScrollElementRef] = (0, import_react43.useState)(null);
|
|
3117
|
+
return /* @__PURE__ */ import_react43.default.createElement(Container2, null, /* @__PURE__ */ import_react43.default.createElement(RadixScrollArea.Root, { style: { width: "100%", height: "100%" } }, /* @__PURE__ */ import_react43.default.createElement(
|
|
3110
3118
|
StyledViewport,
|
|
3111
3119
|
{
|
|
3112
|
-
ref: (0,
|
|
3120
|
+
ref: (0, import_react43.useCallback)(
|
|
3113
3121
|
(ref) => setScrollElementRef(ref),
|
|
3114
3122
|
[]
|
|
3115
3123
|
)
|
|
3116
3124
|
},
|
|
3117
3125
|
typeof children === "function" ? scrollElementRef ? children(scrollElementRef) : null : children
|
|
3118
|
-
), /* @__PURE__ */
|
|
3126
|
+
), /* @__PURE__ */ import_react43.default.createElement(StyledScrollbar, { orientation: "vertical", className: "scroll-component" }, /* @__PURE__ */ import_react43.default.createElement(StyledThumb, { className: "scroll-component" }))));
|
|
3119
3127
|
});
|
|
3120
3128
|
|
|
3121
3129
|
// src/components/GridView.tsx
|
|
@@ -3295,7 +3303,7 @@ var Shimmer = import_styled_components24.default.div`
|
|
|
3295
3303
|
align-items: end;
|
|
3296
3304
|
padding: 4px;
|
|
3297
3305
|
`;
|
|
3298
|
-
var GridViewItem = (0,
|
|
3306
|
+
var GridViewItem = (0, import_react44.forwardRef)(function GridViewItem2({
|
|
3299
3307
|
id,
|
|
3300
3308
|
title,
|
|
3301
3309
|
subtitle,
|
|
@@ -3311,15 +3319,15 @@ var GridViewItem = (0, import_react43.forwardRef)(function GridViewItem2({
|
|
|
3311
3319
|
onContextMenu,
|
|
3312
3320
|
style: style3
|
|
3313
3321
|
}, forwardedRef) {
|
|
3314
|
-
const [hovered, setHovered] =
|
|
3322
|
+
const [hovered, setHovered] = import_react44.default.useState(false);
|
|
3315
3323
|
const { hoverProps } = useHover({
|
|
3316
3324
|
onHoverChange: (isHovering) => {
|
|
3317
3325
|
onHoverChange?.(isHovering);
|
|
3318
3326
|
setHovered(isHovering);
|
|
3319
3327
|
}
|
|
3320
3328
|
});
|
|
3321
|
-
const { textPosition, bordered, disabled } = (0,
|
|
3322
|
-
const handleClick = (0,
|
|
3329
|
+
const { textPosition, bordered, disabled } = (0, import_react44.useContext)(GridViewContext);
|
|
3330
|
+
const handleClick = (0, import_react44.useCallback)(
|
|
3323
3331
|
(event) => {
|
|
3324
3332
|
event.stopPropagation();
|
|
3325
3333
|
event.preventDefault();
|
|
@@ -3328,7 +3336,7 @@ var GridViewItem = (0, import_react43.forwardRef)(function GridViewItem2({
|
|
|
3328
3336
|
},
|
|
3329
3337
|
[onClick, onPress]
|
|
3330
3338
|
);
|
|
3331
|
-
const handleKeyDown = (0,
|
|
3339
|
+
const handleKeyDown = (0, import_react44.useCallback)(
|
|
3332
3340
|
(event) => {
|
|
3333
3341
|
if (event.key === "Enter" || event.key === " ") {
|
|
3334
3342
|
event.stopPropagation();
|
|
@@ -3340,7 +3348,7 @@ var GridViewItem = (0, import_react43.forwardRef)(function GridViewItem2({
|
|
|
3340
3348
|
},
|
|
3341
3349
|
[onPress]
|
|
3342
3350
|
);
|
|
3343
|
-
let element = /* @__PURE__ */
|
|
3351
|
+
let element = /* @__PURE__ */ import_react44.default.createElement(
|
|
3344
3352
|
ItemContainer,
|
|
3345
3353
|
{
|
|
3346
3354
|
id,
|
|
@@ -3349,7 +3357,7 @@ var GridViewItem = (0, import_react43.forwardRef)(function GridViewItem2({
|
|
|
3349
3357
|
tabIndex: disabled ? void 0 : 0,
|
|
3350
3358
|
onKeyDown: handleKeyDown
|
|
3351
3359
|
},
|
|
3352
|
-
/* @__PURE__ */
|
|
3360
|
+
/* @__PURE__ */ import_react44.default.createElement(
|
|
3353
3361
|
ContentContainer,
|
|
3354
3362
|
{
|
|
3355
3363
|
disabled,
|
|
@@ -3363,25 +3371,25 @@ var GridViewItem = (0, import_react43.forwardRef)(function GridViewItem2({
|
|
|
3363
3371
|
},
|
|
3364
3372
|
children
|
|
3365
3373
|
),
|
|
3366
|
-
textPosition === "below" && /* @__PURE__ */
|
|
3367
|
-
textPosition === "overlay" && hovered && (title || subtitle) && /* @__PURE__ */
|
|
3368
|
-
loading && /* @__PURE__ */
|
|
3374
|
+
textPosition === "below" && /* @__PURE__ */ import_react44.default.createElement(import_react44.default.Fragment, null, /* @__PURE__ */ import_react44.default.createElement(Spacer.Vertical, { size: 8 }), /* @__PURE__ */ import_react44.default.createElement(ItemTitle, { showBackground: false }, title || " "), /* @__PURE__ */ import_react44.default.createElement(ItemDescription, { showBackground: false }, subtitle || " ")),
|
|
3375
|
+
textPosition === "overlay" && hovered && (title || subtitle) && /* @__PURE__ */ import_react44.default.createElement(TextOverlay, null, title && /* @__PURE__ */ import_react44.default.createElement(ItemTitle, { showBackground: true }, title), subtitle && /* @__PURE__ */ import_react44.default.createElement(ItemDescription, { showBackground: true }, subtitle)),
|
|
3376
|
+
loading && /* @__PURE__ */ import_react44.default.createElement(Shimmer, null, /* @__PURE__ */ import_react44.default.createElement(ActivityIndicator, { opacity: 0.5, size: 13 }))
|
|
3369
3377
|
);
|
|
3370
3378
|
if (menuItems && onSelectMenuItem) {
|
|
3371
|
-
element = /* @__PURE__ */
|
|
3379
|
+
element = /* @__PURE__ */ import_react44.default.createElement(ContextMenu, { items: menuItems, onSelect: onSelectMenuItem }, element);
|
|
3372
3380
|
}
|
|
3373
3381
|
if (textPosition === "toolip") {
|
|
3374
|
-
element = /* @__PURE__ */
|
|
3382
|
+
element = /* @__PURE__ */ import_react44.default.createElement(
|
|
3375
3383
|
Tooltip,
|
|
3376
3384
|
{
|
|
3377
|
-
content: /* @__PURE__ */
|
|
3385
|
+
content: /* @__PURE__ */ import_react44.default.createElement(Stack.V, { gap: 2 }, /* @__PURE__ */ import_react44.default.createElement(ItemTitle, { showBackground: false }, title), /* @__PURE__ */ import_react44.default.createElement(ItemDescription, { showBackground: false }, subtitle))
|
|
3378
3386
|
},
|
|
3379
3387
|
element
|
|
3380
3388
|
);
|
|
3381
3389
|
}
|
|
3382
3390
|
return element;
|
|
3383
3391
|
});
|
|
3384
|
-
var GridViewContext = (0,
|
|
3392
|
+
var GridViewContext = (0, import_react44.createContext)({
|
|
3385
3393
|
size: "small",
|
|
3386
3394
|
textPosition: "below",
|
|
3387
3395
|
bordered: false,
|
|
@@ -3396,7 +3404,7 @@ function GridViewRoot({
|
|
|
3396
3404
|
bordered = false,
|
|
3397
3405
|
disabled = false
|
|
3398
3406
|
}) {
|
|
3399
|
-
const handleClick = (0,
|
|
3407
|
+
const handleClick = (0, import_react44.useCallback)(
|
|
3400
3408
|
(event) => {
|
|
3401
3409
|
event.stopPropagation();
|
|
3402
3410
|
event.preventDefault();
|
|
@@ -3404,7 +3412,7 @@ function GridViewRoot({
|
|
|
3404
3412
|
},
|
|
3405
3413
|
[onClick]
|
|
3406
3414
|
);
|
|
3407
|
-
const contextValue = (0,
|
|
3415
|
+
const contextValue = (0, import_react44.useMemo)(
|
|
3408
3416
|
() => ({
|
|
3409
3417
|
size: size2,
|
|
3410
3418
|
textPosition,
|
|
@@ -3413,33 +3421,33 @@ function GridViewRoot({
|
|
|
3413
3421
|
}),
|
|
3414
3422
|
[bordered, disabled, size2, textPosition]
|
|
3415
3423
|
);
|
|
3416
|
-
return /* @__PURE__ */
|
|
3424
|
+
return /* @__PURE__ */ import_react44.default.createElement(GridViewContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react44.default.createElement(Container3, { onClick: handleClick, scrollable }, scrollable ? /* @__PURE__ */ import_react44.default.createElement(ScrollArea, null, children) : children));
|
|
3417
3425
|
}
|
|
3418
3426
|
function GridViewSection({
|
|
3419
3427
|
children,
|
|
3420
3428
|
padding = "20px"
|
|
3421
3429
|
}) {
|
|
3422
|
-
const { size: size2 } = (0,
|
|
3423
|
-
return /* @__PURE__ */
|
|
3430
|
+
const { size: size2 } = (0, import_react44.useContext)(GridViewContext);
|
|
3431
|
+
return /* @__PURE__ */ import_react44.default.createElement(Grid2, { size: size2, padding }, children);
|
|
3424
3432
|
}
|
|
3425
3433
|
function GridViewSectionHeader({ title }) {
|
|
3426
3434
|
const grouped = title.split("/");
|
|
3427
|
-
return /* @__PURE__ */
|
|
3428
|
-
grouped.map((title2, index) => /* @__PURE__ */
|
|
3429
|
-
/* @__PURE__ */
|
|
3435
|
+
return /* @__PURE__ */ import_react44.default.createElement(SectionHeaderContainer, null, /* @__PURE__ */ import_react44.default.createElement(Spacer.Vertical, { size: 24 }), withSeparatorElements(
|
|
3436
|
+
grouped.map((title2, index) => /* @__PURE__ */ import_react44.default.createElement(SectionTitle, { last: index === grouped.length - 1 }, title2)),
|
|
3437
|
+
/* @__PURE__ */ import_react44.default.createElement(SectionTitle, null, " / ")
|
|
3430
3438
|
));
|
|
3431
3439
|
}
|
|
3432
3440
|
var GridView;
|
|
3433
3441
|
((GridView2) => {
|
|
3434
|
-
GridView2.Root = (0,
|
|
3435
|
-
GridView2.Item = (0,
|
|
3436
|
-
GridView2.Section = (0,
|
|
3437
|
-
GridView2.SectionHeader = (0,
|
|
3442
|
+
GridView2.Root = (0, import_react44.memo)(GridViewRoot);
|
|
3443
|
+
GridView2.Item = (0, import_react44.memo)(GridViewItem);
|
|
3444
|
+
GridView2.Section = (0, import_react44.memo)(GridViewSection);
|
|
3445
|
+
GridView2.SectionHeader = (0, import_react44.memo)(GridViewSectionHeader);
|
|
3438
3446
|
})(GridView || (GridView = {}));
|
|
3439
3447
|
|
|
3440
3448
|
// src/components/InputFieldWithCompletions.tsx
|
|
3441
3449
|
var import_noya_utils8 = require("@noya-app/noya-utils");
|
|
3442
|
-
var
|
|
3450
|
+
var import_react48 = __toESM(require("react"));
|
|
3443
3451
|
var import_styled_components27 = __toESM(require("styled-components"));
|
|
3444
3452
|
|
|
3445
3453
|
// src/utils/fuzzyScorer.ts
|
|
@@ -3516,7 +3524,7 @@ function mergeRanges(ranges) {
|
|
|
3516
3524
|
// src/components/ListView.tsx
|
|
3517
3525
|
var import_noya_utils7 = require("@noya-app/noya-utils");
|
|
3518
3526
|
var import_react_compose_refs2 = require("@radix-ui/react-compose-refs");
|
|
3519
|
-
var
|
|
3527
|
+
var import_react46 = __toESM(require("react"));
|
|
3520
3528
|
var import_react_virtualized = require("react-virtualized");
|
|
3521
3529
|
var import_react_window = require("react-window");
|
|
3522
3530
|
var import_styled_components25 = __toESM(require("styled-components"));
|
|
@@ -3547,7 +3555,7 @@ function mergeEventHandlers(...handlerMaps) {
|
|
|
3547
3555
|
// src/components/Sortable.tsx
|
|
3548
3556
|
var import_core = require("@dnd-kit/core");
|
|
3549
3557
|
var import_sortable = require("@dnd-kit/sortable");
|
|
3550
|
-
var
|
|
3558
|
+
var import_react45 = __toESM(require("react"));
|
|
3551
3559
|
var import_react_dom = require("react-dom");
|
|
3552
3560
|
var normalizeListDestinationIndex = (index, position) => {
|
|
3553
3561
|
return position === "above" ? index : index + 1;
|
|
@@ -3561,7 +3569,7 @@ var defaultAcceptsDrop = (sourceIndex, destinationIndex, position) => {
|
|
|
3561
3569
|
}
|
|
3562
3570
|
return true;
|
|
3563
3571
|
};
|
|
3564
|
-
var SortableItemContext = (0,
|
|
3572
|
+
var SortableItemContext = (0, import_react45.createContext)({
|
|
3565
3573
|
keys: [],
|
|
3566
3574
|
position: { x: 0, y: 0 },
|
|
3567
3575
|
acceptsDrop: defaultAcceptsDrop,
|
|
@@ -3583,7 +3591,7 @@ function SortableItem({
|
|
|
3583
3591
|
disabled,
|
|
3584
3592
|
children
|
|
3585
3593
|
}) {
|
|
3586
|
-
const { keys, position, acceptsDrop, setActivatorEvent, axis } = (0,
|
|
3594
|
+
const { keys, position, acceptsDrop, setActivatorEvent, axis } = (0, import_react45.useContext)(SortableItemContext);
|
|
3587
3595
|
const sortable = (0, import_sortable.useSortable)({ id, disabled });
|
|
3588
3596
|
const {
|
|
3589
3597
|
active,
|
|
@@ -3603,7 +3611,7 @@ function SortableItem({
|
|
|
3603
3611
|
const eventY = activatorEvent?.clientY ?? 0;
|
|
3604
3612
|
const offsetLeft = eventX + position.x;
|
|
3605
3613
|
const offsetTop = eventY + position.y;
|
|
3606
|
-
const ref = (0,
|
|
3614
|
+
const ref = (0, import_react45.useCallback)((node) => setNodeRef(node), [setNodeRef]);
|
|
3607
3615
|
return children({
|
|
3608
3616
|
ref,
|
|
3609
3617
|
...attributes,
|
|
@@ -3634,22 +3642,22 @@ function SortableRoot({
|
|
|
3634
3642
|
}
|
|
3635
3643
|
})
|
|
3636
3644
|
);
|
|
3637
|
-
const [activeIndex, setActiveIndex] = (0,
|
|
3638
|
-
const activatorEvent = (0,
|
|
3639
|
-
const setActivatorEvent = (0,
|
|
3645
|
+
const [activeIndex, setActiveIndex] = (0, import_react45.useState)();
|
|
3646
|
+
const activatorEvent = (0, import_react45.useRef)(null);
|
|
3647
|
+
const setActivatorEvent = (0, import_react45.useCallback)((event) => {
|
|
3640
3648
|
activatorEvent.current = event;
|
|
3641
3649
|
}, []);
|
|
3642
|
-
const [position, setPosition] = (0,
|
|
3643
|
-
const handleDragStart = (0,
|
|
3650
|
+
const [position, setPosition] = (0, import_react45.useState)({ x: 0, y: 0 });
|
|
3651
|
+
const handleDragStart = (0, import_react45.useCallback)(
|
|
3644
3652
|
(event) => {
|
|
3645
3653
|
setActiveIndex(keys.indexOf(event.active.id));
|
|
3646
3654
|
},
|
|
3647
3655
|
[keys]
|
|
3648
3656
|
);
|
|
3649
|
-
const handleDragMove = (0,
|
|
3657
|
+
const handleDragMove = (0, import_react45.useCallback)((event) => {
|
|
3650
3658
|
setPosition({ ...event.delta });
|
|
3651
3659
|
}, []);
|
|
3652
|
-
const handleDragEnd = (0,
|
|
3660
|
+
const handleDragEnd = (0, import_react45.useCallback)(
|
|
3653
3661
|
(event) => {
|
|
3654
3662
|
const { active, over } = event;
|
|
3655
3663
|
setActiveIndex(void 0);
|
|
@@ -3676,10 +3684,10 @@ function SortableRoot({
|
|
|
3676
3684
|
},
|
|
3677
3685
|
[acceptsDrop, axis, keys, onMoveItem, position.x, position.y]
|
|
3678
3686
|
);
|
|
3679
|
-
return /* @__PURE__ */
|
|
3687
|
+
return /* @__PURE__ */ import_react45.default.createElement(
|
|
3680
3688
|
SortableItemContext.Provider,
|
|
3681
3689
|
{
|
|
3682
|
-
value: (0,
|
|
3690
|
+
value: (0, import_react45.useMemo)(
|
|
3683
3691
|
() => ({
|
|
3684
3692
|
keys,
|
|
3685
3693
|
acceptsDrop,
|
|
@@ -3690,7 +3698,7 @@ function SortableRoot({
|
|
|
3690
3698
|
[acceptsDrop, axis, keys, position, setActivatorEvent]
|
|
3691
3699
|
)
|
|
3692
3700
|
},
|
|
3693
|
-
/* @__PURE__ */
|
|
3701
|
+
/* @__PURE__ */ import_react45.default.createElement(
|
|
3694
3702
|
import_core.DndContext,
|
|
3695
3703
|
{
|
|
3696
3704
|
sensors,
|
|
@@ -3699,9 +3707,9 @@ function SortableRoot({
|
|
|
3699
3707
|
onDragMove: handleDragMove,
|
|
3700
3708
|
onDragEnd: handleDragEnd
|
|
3701
3709
|
},
|
|
3702
|
-
/* @__PURE__ */
|
|
3710
|
+
/* @__PURE__ */ import_react45.default.createElement(import_sortable.SortableContext, { items: keys, strategy: import_sortable.verticalListSortingStrategy }, children),
|
|
3703
3711
|
renderOverlay && (0, import_react_dom.createPortal)(
|
|
3704
|
-
/* @__PURE__ */
|
|
3712
|
+
/* @__PURE__ */ import_react45.default.createElement(import_core.DragOverlay, { dropAnimation: null }, activeIndex !== void 0 && activeIndex >= 0 && renderOverlay(activeIndex)),
|
|
3705
3713
|
document.body
|
|
3706
3714
|
)
|
|
3707
3715
|
)
|
|
@@ -3709,17 +3717,17 @@ function SortableRoot({
|
|
|
3709
3717
|
}
|
|
3710
3718
|
var Sortable;
|
|
3711
3719
|
((Sortable2) => {
|
|
3712
|
-
Sortable2.Item = (0,
|
|
3713
|
-
Sortable2.Root = (0,
|
|
3720
|
+
Sortable2.Item = (0, import_react45.memo)(SortableItem);
|
|
3721
|
+
Sortable2.Root = (0, import_react45.memo)(SortableRoot);
|
|
3714
3722
|
})(Sortable || (Sortable = {}));
|
|
3715
3723
|
|
|
3716
3724
|
// src/components/ListView.tsx
|
|
3717
3725
|
var ROW_HEIGHT = 31;
|
|
3718
3726
|
var SECTION_HEADER_LABEL_HEIGHT = 27;
|
|
3719
|
-
var DraggingContext = (0,
|
|
3727
|
+
var DraggingContext = (0, import_react46.createContext)({
|
|
3720
3728
|
indentation: 12
|
|
3721
3729
|
});
|
|
3722
|
-
var ListRowContext = (0,
|
|
3730
|
+
var ListRowContext = (0, import_react46.createContext)({
|
|
3723
3731
|
marginType: "none",
|
|
3724
3732
|
selectedPosition: "only",
|
|
3725
3733
|
sortable: false,
|
|
@@ -3749,8 +3757,8 @@ function ListViewEditableRowTitle({
|
|
|
3749
3757
|
autoFocus,
|
|
3750
3758
|
placeholder
|
|
3751
3759
|
}) {
|
|
3752
|
-
const inputRef = (0,
|
|
3753
|
-
(0,
|
|
3760
|
+
const inputRef = (0, import_react46.useRef)(null);
|
|
3761
|
+
(0, import_react46.useLayoutEffect)(() => {
|
|
3754
3762
|
const element = inputRef.current;
|
|
3755
3763
|
if (!element || !autoFocus)
|
|
3756
3764
|
return;
|
|
@@ -3759,7 +3767,7 @@ function ListViewEditableRowTitle({
|
|
|
3759
3767
|
element.select();
|
|
3760
3768
|
}, 0);
|
|
3761
3769
|
}, [autoFocus]);
|
|
3762
|
-
return /* @__PURE__ */
|
|
3770
|
+
return /* @__PURE__ */ import_react46.default.createElement(
|
|
3763
3771
|
ListViewEditableRowTitleElement,
|
|
3764
3772
|
{
|
|
3765
3773
|
ref: inputRef,
|
|
@@ -3881,7 +3889,7 @@ var ListViewDragIndicatorElement = import_styled_components25.default.div(({ the
|
|
|
3881
3889
|
boxShadow: "0 0 2px rgba(0,0,0,0.5)"
|
|
3882
3890
|
}
|
|
3883
3891
|
}));
|
|
3884
|
-
var ListViewRow = (0,
|
|
3892
|
+
var ListViewRow = (0, import_react46.forwardRef)(function ListViewRow2({
|
|
3885
3893
|
id,
|
|
3886
3894
|
tabIndex = 0,
|
|
3887
3895
|
gap,
|
|
@@ -3900,7 +3908,8 @@ var ListViewRow = (0, import_react45.forwardRef)(function ListViewRow2({
|
|
|
3900
3908
|
onContextMenu,
|
|
3901
3909
|
onSelectMenuItem,
|
|
3902
3910
|
onMenuOpenChange,
|
|
3903
|
-
onKeyDown
|
|
3911
|
+
onKeyDown,
|
|
3912
|
+
style: style3
|
|
3904
3913
|
}, forwardedRef) {
|
|
3905
3914
|
depth = Math.max(0, depth);
|
|
3906
3915
|
const {
|
|
@@ -3913,12 +3922,12 @@ var ListViewRow = (0, import_react45.forwardRef)(function ListViewRow2({
|
|
|
3913
3922
|
divider,
|
|
3914
3923
|
gap: listGap,
|
|
3915
3924
|
colorScheme
|
|
3916
|
-
} = (0,
|
|
3925
|
+
} = (0, import_react46.useContext)(ListRowContext);
|
|
3917
3926
|
const { hoverProps } = useHover({
|
|
3918
3927
|
onHoverChange
|
|
3919
3928
|
});
|
|
3920
|
-
const { indentation, isDragging } = (0,
|
|
3921
|
-
const handlePress = (0,
|
|
3929
|
+
const { indentation, isDragging } = (0, import_react46.useContext)(DraggingContext);
|
|
3930
|
+
const handlePress = (0, import_react46.useCallback)(
|
|
3922
3931
|
(event) => {
|
|
3923
3932
|
event.preventDefault();
|
|
3924
3933
|
if (event.button !== 0)
|
|
@@ -3927,25 +3936,26 @@ var ListViewRow = (0, import_react45.forwardRef)(function ListViewRow2({
|
|
|
3927
3936
|
},
|
|
3928
3937
|
[onPress]
|
|
3929
3938
|
);
|
|
3930
|
-
const handleDoubleClick = (0,
|
|
3939
|
+
const handleDoubleClick = (0, import_react46.useCallback)(
|
|
3931
3940
|
(event) => {
|
|
3932
3941
|
event.stopPropagation();
|
|
3933
3942
|
onDoubleClick?.();
|
|
3934
3943
|
},
|
|
3935
3944
|
[onDoubleClick]
|
|
3936
3945
|
);
|
|
3937
|
-
const
|
|
3946
|
+
const mergedStyle = (0, import_react46.useMemo)(() => {
|
|
3938
3947
|
return isDragging ? {
|
|
3939
3948
|
// TODO: Where do these offsets actually come from?
|
|
3940
3949
|
transform: `translate3d(-36px, -6px, 0)`,
|
|
3941
|
-
width: `calc(100% + 48px)
|
|
3942
|
-
|
|
3943
|
-
|
|
3950
|
+
width: `calc(100% + 48px)`,
|
|
3951
|
+
...style3
|
|
3952
|
+
} : style3;
|
|
3953
|
+
}, [isDragging, style3]);
|
|
3944
3954
|
const renderContent = ({
|
|
3945
3955
|
relativeDropPosition,
|
|
3946
3956
|
...renderProps
|
|
3947
3957
|
}, ref) => {
|
|
3948
|
-
const element = /* @__PURE__ */
|
|
3958
|
+
const element = /* @__PURE__ */ import_react46.default.createElement(
|
|
3949
3959
|
RowContainer,
|
|
3950
3960
|
{
|
|
3951
3961
|
ref,
|
|
@@ -3968,7 +3978,7 @@ var ListViewRow = (0, import_react45.forwardRef)(function ListViewRow2({
|
|
|
3968
3978
|
"aria-selected": selected,
|
|
3969
3979
|
divider: !isDragging && divider,
|
|
3970
3980
|
onKeyDown,
|
|
3971
|
-
style:
|
|
3981
|
+
style: mergedStyle,
|
|
3972
3982
|
...renderProps,
|
|
3973
3983
|
...mergeEventHandlers(
|
|
3974
3984
|
{ onPointerDown: renderProps.onPointerDown },
|
|
@@ -3976,7 +3986,7 @@ var ListViewRow = (0, import_react45.forwardRef)(function ListViewRow2({
|
|
|
3976
3986
|
),
|
|
3977
3987
|
tabIndex
|
|
3978
3988
|
},
|
|
3979
|
-
relativeDropPosition && /* @__PURE__ */
|
|
3989
|
+
relativeDropPosition && /* @__PURE__ */ import_react46.default.createElement(
|
|
3980
3990
|
ListViewDragIndicatorElement,
|
|
3981
3991
|
{
|
|
3982
3992
|
colorScheme,
|
|
@@ -3985,11 +3995,11 @@ var ListViewRow = (0, import_react45.forwardRef)(function ListViewRow2({
|
|
|
3985
3995
|
gap: listGap
|
|
3986
3996
|
}
|
|
3987
3997
|
),
|
|
3988
|
-
depth > 0 && /* @__PURE__ */
|
|
3998
|
+
depth > 0 && /* @__PURE__ */ import_react46.default.createElement(Spacer.Horizontal, { size: depth * indentation }),
|
|
3989
3999
|
children
|
|
3990
4000
|
);
|
|
3991
4001
|
if (menuItems && onSelectMenuItem) {
|
|
3992
|
-
return /* @__PURE__ */
|
|
4002
|
+
return /* @__PURE__ */ import_react46.default.createElement(
|
|
3993
4003
|
ContextMenu,
|
|
3994
4004
|
{
|
|
3995
4005
|
items: menuItems,
|
|
@@ -4002,21 +4012,21 @@ var ListViewRow = (0, import_react45.forwardRef)(function ListViewRow2({
|
|
|
4002
4012
|
return element;
|
|
4003
4013
|
};
|
|
4004
4014
|
if (sortable && id) {
|
|
4005
|
-
return /* @__PURE__ */
|
|
4015
|
+
return /* @__PURE__ */ import_react46.default.createElement(Sortable.Item, { id, disabled: overrideSortable === false }, ({ ref: sortableRef, ...sortableProps }) => renderContent(sortableProps, (0, import_react_compose_refs2.composeRefs)(sortableRef, forwardedRef)));
|
|
4006
4016
|
}
|
|
4007
4017
|
return renderContent({}, forwardedRef);
|
|
4008
4018
|
});
|
|
4009
|
-
var RenderItemContext = (0,
|
|
4019
|
+
var RenderItemContext = (0, import_react46.createContext)(
|
|
4010
4020
|
() => null
|
|
4011
4021
|
);
|
|
4012
|
-
var VirtualizedListRow = (0,
|
|
4022
|
+
var VirtualizedListRow = (0, import_react46.memo)(function VirtualizedListRow2({
|
|
4013
4023
|
index,
|
|
4014
4024
|
style: style3
|
|
4015
4025
|
}) {
|
|
4016
|
-
const renderItem = (0,
|
|
4017
|
-
return /* @__PURE__ */
|
|
4026
|
+
const renderItem = (0, import_react46.useContext)(RenderItemContext);
|
|
4027
|
+
return /* @__PURE__ */ import_react46.default.createElement("div", { key: index, style: style3 }, renderItem(index));
|
|
4018
4028
|
});
|
|
4019
|
-
var VirtualizedListInner = (0,
|
|
4029
|
+
var VirtualizedListInner = (0, import_react46.forwardRef)(function VirtualizedListInner2({
|
|
4020
4030
|
size: size2,
|
|
4021
4031
|
scrollElement,
|
|
4022
4032
|
items,
|
|
@@ -4024,20 +4034,20 @@ var VirtualizedListInner = (0, import_react45.forwardRef)(function VirtualizedLi
|
|
|
4024
4034
|
keyExtractor,
|
|
4025
4035
|
renderItem
|
|
4026
4036
|
}, ref) {
|
|
4027
|
-
const listRef = (0,
|
|
4028
|
-
(0,
|
|
4037
|
+
const listRef = (0, import_react46.useRef)(null);
|
|
4038
|
+
(0, import_react46.useImperativeHandle)(ref, () => ({
|
|
4029
4039
|
scrollToIndex(index) {
|
|
4030
4040
|
listRef.current?.scrollToItem(index);
|
|
4031
4041
|
}
|
|
4032
4042
|
}));
|
|
4033
|
-
(0,
|
|
4043
|
+
(0, import_react46.useLayoutEffect)(() => {
|
|
4034
4044
|
listRef.current?.resetAfterIndex(0);
|
|
4035
4045
|
}, [
|
|
4036
4046
|
// When items change, we need to re-render the virtualized list,
|
|
4037
4047
|
// since it doesn't currently support row height changes
|
|
4038
4048
|
items
|
|
4039
4049
|
]);
|
|
4040
|
-
const listStyle = (0,
|
|
4050
|
+
const listStyle = (0, import_react46.useMemo)(
|
|
4041
4051
|
() => ({
|
|
4042
4052
|
overflowX: "initial",
|
|
4043
4053
|
overflowY: "initial",
|
|
@@ -4045,18 +4055,18 @@ var VirtualizedListInner = (0, import_react45.forwardRef)(function VirtualizedLi
|
|
|
4045
4055
|
}),
|
|
4046
4056
|
[]
|
|
4047
4057
|
);
|
|
4048
|
-
return /* @__PURE__ */
|
|
4058
|
+
return /* @__PURE__ */ import_react46.default.createElement(RenderItemContext.Provider, { value: renderItem }, /* @__PURE__ */ import_react46.default.createElement(
|
|
4049
4059
|
import_react_virtualized.WindowScroller,
|
|
4050
4060
|
{
|
|
4051
4061
|
scrollElement,
|
|
4052
|
-
style: (0,
|
|
4062
|
+
style: (0, import_react46.useMemo)(() => ({ flex: "1 1 auto" }), [])
|
|
4053
4063
|
},
|
|
4054
|
-
(0,
|
|
4064
|
+
(0, import_react46.useCallback)(
|
|
4055
4065
|
({
|
|
4056
4066
|
registerChild,
|
|
4057
4067
|
onChildScroll,
|
|
4058
4068
|
scrollTop
|
|
4059
|
-
}) => /* @__PURE__ */
|
|
4069
|
+
}) => /* @__PURE__ */ import_react46.default.createElement("div", { ref: registerChild }, /* @__PURE__ */ import_react46.default.createElement(
|
|
4060
4070
|
import_react_window.VariableSizeList,
|
|
4061
4071
|
{
|
|
4062
4072
|
ref: listRef,
|
|
@@ -4086,7 +4096,7 @@ var VirtualizedListInner = (0, import_react45.forwardRef)(function VirtualizedLi
|
|
|
4086
4096
|
)
|
|
4087
4097
|
));
|
|
4088
4098
|
});
|
|
4089
|
-
var VirtualizedList = (0,
|
|
4099
|
+
var VirtualizedList = (0, import_react46.memo)(
|
|
4090
4100
|
VirtualizedListInner
|
|
4091
4101
|
);
|
|
4092
4102
|
var RootContainer2 = import_styled_components25.default.div(({ theme, scrollable, gap }) => ({
|
|
@@ -4097,7 +4107,7 @@ var RootContainer2 = import_styled_components25.default.div(({ theme, scrollable
|
|
|
4097
4107
|
color: theme.colors.textMuted,
|
|
4098
4108
|
gap
|
|
4099
4109
|
}));
|
|
4100
|
-
var ListViewRootInner = (0,
|
|
4110
|
+
var ListViewRootInner = (0, import_react46.forwardRef)(function ListViewRootInner2({
|
|
4101
4111
|
onPress,
|
|
4102
4112
|
scrollable = false,
|
|
4103
4113
|
expandable = true,
|
|
@@ -4116,7 +4126,7 @@ var ListViewRootInner = (0, import_react45.forwardRef)(function ListViewRootInne
|
|
|
4116
4126
|
colorScheme = "primary",
|
|
4117
4127
|
gap = 0
|
|
4118
4128
|
}, forwardedRef) {
|
|
4119
|
-
const handleClick = (0,
|
|
4129
|
+
const handleClick = (0, import_react46.useCallback)(
|
|
4120
4130
|
(event) => {
|
|
4121
4131
|
if (event.target instanceof HTMLElement && event.target.classList.contains("scroll-component"))
|
|
4122
4132
|
return;
|
|
@@ -4126,19 +4136,19 @@ var ListViewRootInner = (0, import_react45.forwardRef)(function ListViewRootInne
|
|
|
4126
4136
|
},
|
|
4127
4137
|
[onPress]
|
|
4128
4138
|
);
|
|
4129
|
-
const renderChild = (0,
|
|
4139
|
+
const renderChild = (0, import_react46.useCallback)(
|
|
4130
4140
|
(index) => renderItem(data[index], index, { isDragging: false }),
|
|
4131
4141
|
[data, renderItem]
|
|
4132
4142
|
);
|
|
4133
|
-
const getItemContextValue = (0,
|
|
4143
|
+
const getItemContextValue = (0, import_react46.useCallback)(
|
|
4134
4144
|
(i) => {
|
|
4135
4145
|
const current = renderChild(i);
|
|
4136
|
-
if (!(0,
|
|
4146
|
+
if (!(0, import_react46.isValidElement)(current))
|
|
4137
4147
|
return;
|
|
4138
4148
|
const prevChild = i - 1 >= 0 && renderChild(i - 1);
|
|
4139
4149
|
const nextChild = i + 1 < data.length && renderChild(i + 1);
|
|
4140
|
-
const next = (0,
|
|
4141
|
-
const prev = (0,
|
|
4150
|
+
const next = (0, import_react46.isValidElement)(nextChild) ? nextChild : void 0;
|
|
4151
|
+
const prev = (0, import_react46.isValidElement)(prevChild) ? prevChild : void 0;
|
|
4142
4152
|
const hasMarginTop = !prev;
|
|
4143
4153
|
const hasMarginBottom = !next || current.props.isSectionHeader || next && next.props.isSectionHeader;
|
|
4144
4154
|
let marginType;
|
|
@@ -4190,26 +4200,26 @@ var ListViewRootInner = (0, import_react45.forwardRef)(function ListViewRootInne
|
|
|
4190
4200
|
gap
|
|
4191
4201
|
]
|
|
4192
4202
|
);
|
|
4193
|
-
const draggingContextOverlayValue = (0,
|
|
4203
|
+
const draggingContextOverlayValue = (0, import_react46.useMemo)(
|
|
4194
4204
|
() => ({ indentation, isDragging: true }),
|
|
4195
4205
|
[indentation]
|
|
4196
4206
|
);
|
|
4197
|
-
const renderOverlay = (0,
|
|
4198
|
-
(index) => /* @__PURE__ */
|
|
4207
|
+
const renderOverlay = (0, import_react46.useCallback)(
|
|
4208
|
+
(index) => /* @__PURE__ */ import_react46.default.createElement("div", { style: { opacity: 0.25 } }, /* @__PURE__ */ import_react46.default.createElement(DraggingContext.Provider, { value: draggingContextOverlayValue }, renderItem(data[index], index, { isDragging: true }))),
|
|
4199
4209
|
[draggingContextOverlayValue, renderItem, data]
|
|
4200
4210
|
);
|
|
4201
|
-
const renderWrappedChild = (0,
|
|
4211
|
+
const renderWrappedChild = (0, import_react46.useCallback)(
|
|
4202
4212
|
(index) => {
|
|
4203
4213
|
const contextValue = getItemContextValue(index);
|
|
4204
4214
|
const current = renderChild(index);
|
|
4205
|
-
if (!contextValue || !(0,
|
|
4215
|
+
if (!contextValue || !(0, import_react46.isValidElement)(current))
|
|
4206
4216
|
return null;
|
|
4207
|
-
return /* @__PURE__ */
|
|
4217
|
+
return /* @__PURE__ */ import_react46.default.createElement(ListRowContext.Provider, { key: current.key, value: contextValue }, current);
|
|
4208
4218
|
},
|
|
4209
4219
|
[getItemContextValue, renderChild]
|
|
4210
4220
|
);
|
|
4211
|
-
const ids = (0,
|
|
4212
|
-
const withSortable = (children) => sortable ? /* @__PURE__ */
|
|
4221
|
+
const ids = (0, import_react46.useMemo)(() => data.map(keyExtractor), [keyExtractor, data]);
|
|
4222
|
+
const withSortable = (children) => sortable ? /* @__PURE__ */ import_react46.default.createElement(
|
|
4213
4223
|
Sortable.Root,
|
|
4214
4224
|
{
|
|
4215
4225
|
onMoveItem,
|
|
@@ -4219,8 +4229,8 @@ var ListViewRootInner = (0, import_react45.forwardRef)(function ListViewRootInne
|
|
|
4219
4229
|
},
|
|
4220
4230
|
children
|
|
4221
4231
|
) : children;
|
|
4222
|
-
const withScrollable = (children) => scrollable ? /* @__PURE__ */
|
|
4223
|
-
const getItemHeight = (0,
|
|
4232
|
+
const withScrollable = (children) => scrollable ? /* @__PURE__ */ import_react46.default.createElement(ScrollArea, null, children) : children(null);
|
|
4233
|
+
const getItemHeight = (0, import_react46.useCallback)(
|
|
4224
4234
|
(index) => {
|
|
4225
4235
|
const child = getItemContextValue(index);
|
|
4226
4236
|
const margin = child?.marginType ? getPositionMargin(child.marginType) : { top: 0, bottom: 0 };
|
|
@@ -4229,12 +4239,12 @@ var ListViewRootInner = (0, import_react45.forwardRef)(function ListViewRootInne
|
|
|
4229
4239
|
},
|
|
4230
4240
|
[getItemContextValue, variant]
|
|
4231
4241
|
);
|
|
4232
|
-
const getKey = (0,
|
|
4242
|
+
const getKey = (0, import_react46.useCallback)(
|
|
4233
4243
|
(index) => keyExtractor(data[index], index),
|
|
4234
4244
|
[data, keyExtractor]
|
|
4235
4245
|
);
|
|
4236
|
-
const draggingContextValue = (0,
|
|
4237
|
-
return /* @__PURE__ */
|
|
4246
|
+
const draggingContextValue = (0, import_react46.useMemo)(() => ({ indentation }), [indentation]);
|
|
4247
|
+
return /* @__PURE__ */ import_react46.default.createElement(DraggingContext.Provider, { value: draggingContextValue }, /* @__PURE__ */ import_react46.default.createElement(
|
|
4238
4248
|
RootContainer2,
|
|
4239
4249
|
{
|
|
4240
4250
|
...{
|
|
@@ -4245,7 +4255,7 @@ var ListViewRootInner = (0, import_react45.forwardRef)(function ListViewRootInne
|
|
|
4245
4255
|
},
|
|
4246
4256
|
withScrollable(
|
|
4247
4257
|
(scrollElementRef) => withSortable(
|
|
4248
|
-
virtualized ? /* @__PURE__ */
|
|
4258
|
+
virtualized ? /* @__PURE__ */ import_react46.default.createElement(
|
|
4249
4259
|
VirtualizedList,
|
|
4250
4260
|
{
|
|
4251
4261
|
ref: forwardedRef,
|
|
@@ -4261,42 +4271,42 @@ var ListViewRootInner = (0, import_react45.forwardRef)(function ListViewRootInne
|
|
|
4261
4271
|
)
|
|
4262
4272
|
));
|
|
4263
4273
|
});
|
|
4264
|
-
var ListViewRoot = (0,
|
|
4265
|
-
var ChildrenListViewInner = (0,
|
|
4266
|
-
const items = (0,
|
|
4267
|
-
() =>
|
|
4268
|
-
(child) => (0,
|
|
4274
|
+
var ListViewRoot = (0, import_react46.memo)(ListViewRootInner);
|
|
4275
|
+
var ChildrenListViewInner = (0, import_react46.forwardRef)(function ChildrenListViewInner2({ children, ...rest }, forwardedRef) {
|
|
4276
|
+
const items = (0, import_react46.useMemo)(
|
|
4277
|
+
() => import_react46.Children.toArray(children).flatMap(
|
|
4278
|
+
(child) => (0, import_react46.isValidElement)(child) ? [child] : []
|
|
4269
4279
|
),
|
|
4270
4280
|
[children]
|
|
4271
4281
|
);
|
|
4272
|
-
return /* @__PURE__ */
|
|
4282
|
+
return /* @__PURE__ */ import_react46.default.createElement(
|
|
4273
4283
|
ListViewRoot,
|
|
4274
4284
|
{
|
|
4275
4285
|
ref: forwardedRef,
|
|
4276
4286
|
...rest,
|
|
4277
4287
|
data: items,
|
|
4278
|
-
keyExtractor: (0,
|
|
4288
|
+
keyExtractor: (0, import_react46.useCallback)(
|
|
4279
4289
|
({ key }, index) => typeof key === "string" ? key : (key ?? index).toString(),
|
|
4280
4290
|
[]
|
|
4281
4291
|
),
|
|
4282
|
-
renderItem: (0,
|
|
4292
|
+
renderItem: (0, import_react46.useCallback)((item) => item, [])
|
|
4283
4293
|
}
|
|
4284
4294
|
);
|
|
4285
4295
|
});
|
|
4286
|
-
var ChildrenListView = (0,
|
|
4287
|
-
var SimpleListViewInner = (0,
|
|
4296
|
+
var ChildrenListView = (0, import_react46.memo)(ChildrenListViewInner);
|
|
4297
|
+
var SimpleListViewInner = (0, import_react46.forwardRef)(function SimpleListViewInner2(props, forwardedRef) {
|
|
4288
4298
|
if ("children" in props) {
|
|
4289
|
-
return /* @__PURE__ */
|
|
4299
|
+
return /* @__PURE__ */ import_react46.default.createElement(ChildrenListView, { ref: forwardedRef, ...props });
|
|
4290
4300
|
} else {
|
|
4291
|
-
return /* @__PURE__ */
|
|
4301
|
+
return /* @__PURE__ */ import_react46.default.createElement(ListViewRoot, { ref: forwardedRef, ...props });
|
|
4292
4302
|
}
|
|
4293
4303
|
});
|
|
4294
|
-
var SimpleListView = (0,
|
|
4304
|
+
var SimpleListView = (0, import_react46.memo)(SimpleListViewInner);
|
|
4295
4305
|
var ListView;
|
|
4296
4306
|
((ListView2) => {
|
|
4297
|
-
ListView2.RowTitle = (0,
|
|
4298
|
-
ListView2.EditableRowTitle = (0,
|
|
4299
|
-
ListView2.Row = (0,
|
|
4307
|
+
ListView2.RowTitle = (0, import_react46.memo)(ListViewRowTitle);
|
|
4308
|
+
ListView2.EditableRowTitle = (0, import_react46.memo)(ListViewEditableRowTitle);
|
|
4309
|
+
ListView2.Row = (0, import_react46.memo)(ListViewRow);
|
|
4300
4310
|
ListView2.Root = SimpleListView;
|
|
4301
4311
|
ListView2.RowContext = ListRowContext;
|
|
4302
4312
|
ListView2.DragIndicator = ListViewDragIndicatorElement;
|
|
@@ -4309,7 +4319,7 @@ var ListView;
|
|
|
4309
4319
|
})(ListView || (ListView = {}));
|
|
4310
4320
|
|
|
4311
4321
|
// src/components/Text.tsx
|
|
4312
|
-
var
|
|
4322
|
+
var import_react47 = __toESM(require("react"));
|
|
4313
4323
|
var import_styled_components26 = __toESM(require("styled-components"));
|
|
4314
4324
|
var elements = {
|
|
4315
4325
|
title: "h1",
|
|
@@ -4330,7 +4340,7 @@ var StyledElement = import_styled_components26.default.span(({ theme, variant, s
|
|
|
4330
4340
|
...styleProps,
|
|
4331
4341
|
...mergeBreakpoints(breakpoints || [])
|
|
4332
4342
|
}));
|
|
4333
|
-
var Text = (0,
|
|
4343
|
+
var Text = (0, import_react47.forwardRef)(function Text2({
|
|
4334
4344
|
as,
|
|
4335
4345
|
variant,
|
|
4336
4346
|
breakpoints,
|
|
@@ -4342,7 +4352,7 @@ var Text = (0, import_react46.forwardRef)(function Text2({
|
|
|
4342
4352
|
...rest
|
|
4343
4353
|
}, forwardedRef) {
|
|
4344
4354
|
const element = as ?? elements[variant] ?? "span";
|
|
4345
|
-
return /* @__PURE__ */
|
|
4355
|
+
return /* @__PURE__ */ import_react47.default.createElement(
|
|
4346
4356
|
StyledElement,
|
|
4347
4357
|
{
|
|
4348
4358
|
ref: forwardedRef,
|
|
@@ -4358,28 +4368,28 @@ var Text = (0, import_react46.forwardRef)(function Text2({
|
|
|
4358
4368
|
children
|
|
4359
4369
|
);
|
|
4360
4370
|
});
|
|
4361
|
-
var Heading1 = (0,
|
|
4362
|
-
(props, ref) => /* @__PURE__ */
|
|
4371
|
+
var Heading1 = (0, import_react47.forwardRef)(
|
|
4372
|
+
(props, ref) => /* @__PURE__ */ import_react47.default.createElement(Text, { ref, ...props, variant: "heading1" })
|
|
4363
4373
|
);
|
|
4364
|
-
var Heading2 = (0,
|
|
4365
|
-
(props, ref) => /* @__PURE__ */
|
|
4374
|
+
var Heading2 = (0, import_react47.forwardRef)(
|
|
4375
|
+
(props, ref) => /* @__PURE__ */ import_react47.default.createElement(Text, { ref, ...props, variant: "heading2" })
|
|
4366
4376
|
);
|
|
4367
|
-
var Heading3 = (0,
|
|
4368
|
-
(props, ref) => /* @__PURE__ */
|
|
4377
|
+
var Heading3 = (0, import_react47.forwardRef)(
|
|
4378
|
+
(props, ref) => /* @__PURE__ */ import_react47.default.createElement(Text, { ref, ...props, variant: "heading3" })
|
|
4369
4379
|
);
|
|
4370
|
-
var Heading4 = (0,
|
|
4371
|
-
(props, ref) => /* @__PURE__ */
|
|
4380
|
+
var Heading4 = (0, import_react47.forwardRef)(
|
|
4381
|
+
(props, ref) => /* @__PURE__ */ import_react47.default.createElement(Text, { ref, ...props, variant: "heading4" })
|
|
4372
4382
|
);
|
|
4373
|
-
var Heading5 = (0,
|
|
4374
|
-
(props, ref) => /* @__PURE__ */
|
|
4383
|
+
var Heading5 = (0, import_react47.forwardRef)(
|
|
4384
|
+
(props, ref) => /* @__PURE__ */ import_react47.default.createElement(Text, { ref, ...props, variant: "heading5" })
|
|
4375
4385
|
);
|
|
4376
|
-
var Body = (0,
|
|
4377
|
-
(props, ref) => /* @__PURE__ */
|
|
4386
|
+
var Body = (0, import_react47.forwardRef)(
|
|
4387
|
+
(props, ref) => /* @__PURE__ */ import_react47.default.createElement(Text, { ref, ...props, variant: "body" })
|
|
4378
4388
|
);
|
|
4379
|
-
var Small = (0,
|
|
4380
|
-
(props, ref) => /* @__PURE__ */
|
|
4389
|
+
var Small = (0, import_react47.forwardRef)(
|
|
4390
|
+
(props, ref) => /* @__PURE__ */ import_react47.default.createElement(Text, { ref, ...props, variant: "small" })
|
|
4381
4391
|
);
|
|
4382
|
-
var Italic = ({ children }) => /* @__PURE__ */
|
|
4392
|
+
var Italic = ({ children }) => /* @__PURE__ */ import_react47.default.createElement(
|
|
4383
4393
|
"span",
|
|
4384
4394
|
{
|
|
4385
4395
|
style: {
|
|
@@ -4421,15 +4431,15 @@ var CompletionToken = import_styled_components27.default.span(
|
|
|
4421
4431
|
whiteSpace: "pre"
|
|
4422
4432
|
})
|
|
4423
4433
|
);
|
|
4424
|
-
var CompletionMenu = (0,
|
|
4425
|
-
(0,
|
|
4434
|
+
var CompletionMenu = (0, import_react48.memo)(
|
|
4435
|
+
(0, import_react48.forwardRef)(function CompletionMenu2({
|
|
4426
4436
|
items,
|
|
4427
4437
|
selectedIndex,
|
|
4428
4438
|
onSelectItem,
|
|
4429
4439
|
onHoverIndex,
|
|
4430
4440
|
listSize
|
|
4431
4441
|
}, forwardedRef) {
|
|
4432
|
-
return /* @__PURE__ */
|
|
4442
|
+
return /* @__PURE__ */ import_react48.default.createElement(
|
|
4433
4443
|
ListView.Root,
|
|
4434
4444
|
{
|
|
4435
4445
|
ref: forwardedRef,
|
|
@@ -4441,13 +4451,13 @@ var CompletionMenu = (0, import_react47.memo)(
|
|
|
4441
4451
|
sectionHeaderVariant: "label",
|
|
4442
4452
|
renderItem: (item, i) => {
|
|
4443
4453
|
if (item.type === "sectionHeader") {
|
|
4444
|
-
return /* @__PURE__ */
|
|
4454
|
+
return /* @__PURE__ */ import_react48.default.createElement(ListView.Row, { key: item.id, isSectionHeader: true }, item.name);
|
|
4445
4455
|
}
|
|
4446
4456
|
const tokens = fuzzyTokenize({
|
|
4447
4457
|
item: item.name,
|
|
4448
4458
|
itemScore: item
|
|
4449
4459
|
});
|
|
4450
|
-
return /* @__PURE__ */
|
|
4460
|
+
return /* @__PURE__ */ import_react48.default.createElement(
|
|
4451
4461
|
ListView.Row,
|
|
4452
4462
|
{
|
|
4453
4463
|
key: item.id,
|
|
@@ -4459,16 +4469,16 @@ var CompletionMenu = (0, import_react47.memo)(
|
|
|
4459
4469
|
}
|
|
4460
4470
|
}
|
|
4461
4471
|
},
|
|
4462
|
-
tokens.map((token, j) => /* @__PURE__ */
|
|
4463
|
-
item.icon && /* @__PURE__ */
|
|
4472
|
+
tokens.map((token, j) => /* @__PURE__ */ import_react48.default.createElement(CompletionToken, { key: j, type: token.type }, token.text)),
|
|
4473
|
+
item.icon && /* @__PURE__ */ import_react48.default.createElement(import_react48.default.Fragment, null, /* @__PURE__ */ import_react48.default.createElement(Spacer.Horizontal, null), item.icon)
|
|
4464
4474
|
);
|
|
4465
4475
|
}
|
|
4466
4476
|
}
|
|
4467
4477
|
);
|
|
4468
4478
|
})
|
|
4469
4479
|
);
|
|
4470
|
-
var InputFieldWithCompletions = (0,
|
|
4471
|
-
(0,
|
|
4480
|
+
var InputFieldWithCompletions = (0, import_react48.memo)(
|
|
4481
|
+
(0, import_react48.forwardRef)(function InputFieldWithCompletions2({
|
|
4472
4482
|
loading,
|
|
4473
4483
|
initialValue = "",
|
|
4474
4484
|
placeholder,
|
|
@@ -4486,13 +4496,13 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
|
|
|
4486
4496
|
hideChildrenWhenFocused = false,
|
|
4487
4497
|
hideMenuWhenEmptyValue = false
|
|
4488
4498
|
}, forwardedRef) {
|
|
4489
|
-
const ref = (0,
|
|
4490
|
-
const [isFocused, setIsFocused] = (0,
|
|
4491
|
-
const [state, _setState] = (0,
|
|
4499
|
+
const ref = (0, import_react48.useRef)(null);
|
|
4500
|
+
const [isFocused, setIsFocused] = (0, import_react48.useState)(false);
|
|
4501
|
+
const [state, _setState] = (0, import_react48.useState)({
|
|
4492
4502
|
filter: initialValue,
|
|
4493
4503
|
selectedIndex: 0
|
|
4494
4504
|
});
|
|
4495
|
-
const updateState = (0,
|
|
4505
|
+
const updateState = (0, import_react48.useCallback)(
|
|
4496
4506
|
(newState, hoverItem) => {
|
|
4497
4507
|
const nextState = { ...state, ...newState };
|
|
4498
4508
|
const nextItems = filterWithGroupedSections(items, nextState.filter);
|
|
@@ -4521,16 +4531,16 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
|
|
|
4521
4531
|
},
|
|
4522
4532
|
[items, onChange, onHoverItem, state]
|
|
4523
4533
|
);
|
|
4524
|
-
const initialValueRef = (0,
|
|
4525
|
-
(0,
|
|
4534
|
+
const initialValueRef = (0, import_react48.useRef)(initialValue);
|
|
4535
|
+
(0, import_react48.useLayoutEffect)(() => {
|
|
4526
4536
|
if (initialValueRef.current === initialValue)
|
|
4527
4537
|
return;
|
|
4528
4538
|
initialValueRef.current = initialValue;
|
|
4529
4539
|
updateState({ filter: initialValue });
|
|
4530
4540
|
}, [initialValue, updateState]);
|
|
4531
4541
|
const { filter, selectedIndex } = state;
|
|
4532
|
-
const listRef =
|
|
4533
|
-
const filteredItems = (0,
|
|
4542
|
+
const listRef = import_react48.default.useRef(null);
|
|
4543
|
+
const filteredItems = (0, import_react48.useMemo)(
|
|
4534
4544
|
() => filterWithGroupedSections(items, filter),
|
|
4535
4545
|
[items, filter]
|
|
4536
4546
|
);
|
|
@@ -4546,13 +4556,13 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
|
|
|
4546
4556
|
),
|
|
4547
4557
|
ListView.rowHeight * 10.5
|
|
4548
4558
|
);
|
|
4549
|
-
(0,
|
|
4559
|
+
(0, import_react48.useEffect)(() => {
|
|
4550
4560
|
if (listRef.current) {
|
|
4551
4561
|
listRef.current.scrollToIndex(selectedIndex);
|
|
4552
4562
|
}
|
|
4553
4563
|
}, [selectedIndex]);
|
|
4554
|
-
const lastSubmittedValueRef = (0,
|
|
4555
|
-
const selectItem = (0,
|
|
4564
|
+
const lastSubmittedValueRef = (0, import_react48.useRef)(void 0);
|
|
4565
|
+
const selectItem = (0, import_react48.useCallback)(
|
|
4556
4566
|
(item) => {
|
|
4557
4567
|
if (item.type === "sectionHeader")
|
|
4558
4568
|
return;
|
|
@@ -4568,17 +4578,17 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
|
|
|
4568
4578
|
},
|
|
4569
4579
|
[filter, onSelectItem, onHoverItem, ref]
|
|
4570
4580
|
);
|
|
4571
|
-
const handleChange = (0,
|
|
4581
|
+
const handleChange = (0, import_react48.useCallback)(
|
|
4572
4582
|
(value) => updateState({ selectedIndex: 0, filter: value }),
|
|
4573
4583
|
[updateState]
|
|
4574
4584
|
);
|
|
4575
|
-
const handleBlur = (0,
|
|
4585
|
+
const handleBlur = (0, import_react48.useCallback)(() => {
|
|
4576
4586
|
setIsFocused(false);
|
|
4577
4587
|
const didSubmit = lastSubmittedValueRef.current?.filter === filter;
|
|
4578
4588
|
updateState({ selectedIndex: 0, filter: initialValue }, "resetHover");
|
|
4579
4589
|
onBlur?.(didSubmit, filter);
|
|
4580
4590
|
}, [filter, initialValue, onBlur, updateState]);
|
|
4581
|
-
const handleFocus = (0,
|
|
4591
|
+
const handleFocus = (0, import_react48.useCallback)(
|
|
4582
4592
|
(event) => {
|
|
4583
4593
|
setIsFocused(true);
|
|
4584
4594
|
updateState({ selectedIndex: 0, filter: initialValue });
|
|
@@ -4586,11 +4596,11 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
|
|
|
4586
4596
|
},
|
|
4587
4597
|
[initialValue, onFocus, updateState]
|
|
4588
4598
|
);
|
|
4589
|
-
const handleIndexChange = (0,
|
|
4599
|
+
const handleIndexChange = (0, import_react48.useCallback)(
|
|
4590
4600
|
(index) => updateState({ selectedIndex: index }),
|
|
4591
4601
|
[updateState]
|
|
4592
4602
|
);
|
|
4593
|
-
const handleKeyDown = (0,
|
|
4603
|
+
const handleKeyDown = (0, import_react48.useCallback)(
|
|
4594
4604
|
(event) => {
|
|
4595
4605
|
let handled = false;
|
|
4596
4606
|
switch (event.key) {
|
|
@@ -4654,7 +4664,7 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
|
|
|
4654
4664
|
);
|
|
4655
4665
|
const display = !filter && hideMenuWhenEmptyValue ? "none" : "flex";
|
|
4656
4666
|
const typeaheadValue = filteredItems[selectedIndex]?.name;
|
|
4657
|
-
(0,
|
|
4667
|
+
(0, import_react48.useImperativeHandle)(forwardedRef, () => ({
|
|
4658
4668
|
focus: () => {
|
|
4659
4669
|
ref.current?.focus();
|
|
4660
4670
|
},
|
|
@@ -4665,14 +4675,14 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
|
|
|
4665
4675
|
ref.current?.setSelectionRange(0, ref.current.value.length);
|
|
4666
4676
|
}
|
|
4667
4677
|
}));
|
|
4668
|
-
return /* @__PURE__ */
|
|
4678
|
+
return /* @__PURE__ */ import_react48.default.createElement(
|
|
4669
4679
|
InputField.Root,
|
|
4670
4680
|
{
|
|
4671
4681
|
size: size2,
|
|
4672
4682
|
labelSize: 16,
|
|
4673
4683
|
renderPopoverContent: ({ width }) => {
|
|
4674
4684
|
const listSize = { width, height };
|
|
4675
|
-
return /* @__PURE__ */
|
|
4685
|
+
return /* @__PURE__ */ import_react48.default.createElement(Stack.V, { flex: `0 0 ${height}px`, display }, filteredItems.length > 0 ? /* @__PURE__ */ import_react48.default.createElement(
|
|
4676
4686
|
CompletionMenu,
|
|
4677
4687
|
{
|
|
4678
4688
|
ref: listRef,
|
|
@@ -4682,7 +4692,7 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
|
|
|
4682
4692
|
onHoverIndex: handleIndexChange,
|
|
4683
4693
|
listSize
|
|
4684
4694
|
}
|
|
4685
|
-
) : /* @__PURE__ */
|
|
4695
|
+
) : /* @__PURE__ */ import_react48.default.createElement(
|
|
4686
4696
|
Stack.V,
|
|
4687
4697
|
{
|
|
4688
4698
|
height: "100px",
|
|
@@ -4690,11 +4700,11 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
|
|
|
4690
4700
|
alignItems: "center",
|
|
4691
4701
|
justifyContent: "center"
|
|
4692
4702
|
},
|
|
4693
|
-
/* @__PURE__ */
|
|
4703
|
+
/* @__PURE__ */ import_react48.default.createElement(Small, { color: "textDisabled" }, loading ? "Loading" : "No results")
|
|
4694
4704
|
));
|
|
4695
4705
|
}
|
|
4696
4706
|
},
|
|
4697
|
-
/* @__PURE__ */
|
|
4707
|
+
/* @__PURE__ */ import_react48.default.createElement(
|
|
4698
4708
|
InputField.Input,
|
|
4699
4709
|
{
|
|
4700
4710
|
ref,
|
|
@@ -4718,9 +4728,9 @@ var InputFieldWithCompletions = (0, import_react47.memo)(
|
|
|
4718
4728
|
"aria-controls": "component-listbox"
|
|
4719
4729
|
}
|
|
4720
4730
|
),
|
|
4721
|
-
filter && typeaheadValue && typeaheadValue.startsWith(filter) && /* @__PURE__ */
|
|
4731
|
+
filter && typeaheadValue && typeaheadValue.startsWith(filter) && /* @__PURE__ */ import_react48.default.createElement(InputField.Typeahead, { value: typeaheadValue }),
|
|
4722
4732
|
(!isFocused || !hideChildrenWhenFocused) && children,
|
|
4723
|
-
loading && isFocused && /* @__PURE__ */
|
|
4733
|
+
loading && isFocused && /* @__PURE__ */ import_react48.default.createElement(InputField.Label, null, /* @__PURE__ */ import_react48.default.createElement(ActivityIndicator, null))
|
|
4724
4734
|
);
|
|
4725
4735
|
})
|
|
4726
4736
|
);
|
|
@@ -4742,7 +4752,7 @@ function getNextIndex(items, currentIndex, direction, isDisabled) {
|
|
|
4742
4752
|
}
|
|
4743
4753
|
|
|
4744
4754
|
// src/components/Label.tsx
|
|
4745
|
-
var
|
|
4755
|
+
var import_react49 = __toESM(require("react"));
|
|
4746
4756
|
var import_styled_components28 = __toESM(require("styled-components"));
|
|
4747
4757
|
var LabelLabel = import_styled_components28.default.label(
|
|
4748
4758
|
({ theme, selected }) => ({
|
|
@@ -4771,17 +4781,17 @@ var LabelContainer2 = import_styled_components28.default.span(({ theme }) => ({
|
|
|
4771
4781
|
alignItems: "center"
|
|
4772
4782
|
}));
|
|
4773
4783
|
function LabelRoot({ label, children }) {
|
|
4774
|
-
return /* @__PURE__ */
|
|
4784
|
+
return /* @__PURE__ */ import_react49.default.createElement(LabelContainer2, null, children, label && /* @__PURE__ */ import_react49.default.createElement(import_react49.default.Fragment, null, /* @__PURE__ */ import_react49.default.createElement(Spacer.Vertical, { size: 2 }), /* @__PURE__ */ import_react49.default.createElement(LabelLabel, null, label)));
|
|
4775
4785
|
}
|
|
4776
4786
|
var Label;
|
|
4777
4787
|
((_Label) => {
|
|
4778
|
-
_Label.Label = (0,
|
|
4779
|
-
_Label.Root = (0,
|
|
4788
|
+
_Label.Label = (0, import_react49.memo)(LabelLabel);
|
|
4789
|
+
_Label.Root = (0, import_react49.memo)(LabelRoot);
|
|
4780
4790
|
})(Label || (Label = {}));
|
|
4781
4791
|
|
|
4782
4792
|
// src/components/LabeledElementView.tsx
|
|
4783
4793
|
var kiwi = __toESM(require("kiwi.js"));
|
|
4784
|
-
var
|
|
4794
|
+
var import_react50 = __toESM(require("react"));
|
|
4785
4795
|
var import_styled_components29 = __toESM(require("styled-components"));
|
|
4786
4796
|
var Container4 = import_styled_components29.default.div(({ theme }) => ({
|
|
4787
4797
|
display: "flex",
|
|
@@ -4800,24 +4810,24 @@ var Labels = import_styled_components29.default.div(({ theme }) => ({
|
|
|
4800
4810
|
overflow: "hidden",
|
|
4801
4811
|
userSelect: "none"
|
|
4802
4812
|
}));
|
|
4803
|
-
var LabeledElementView = (0,
|
|
4813
|
+
var LabeledElementView = (0, import_react50.memo)(function LabeledElementView2({
|
|
4804
4814
|
children,
|
|
4805
4815
|
renderLabel
|
|
4806
4816
|
}) {
|
|
4807
|
-
const elementIds =
|
|
4808
|
-
(child) => (0,
|
|
4817
|
+
const elementIds = import_react50.Children.toArray(children).flatMap(
|
|
4818
|
+
(child) => (0, import_react50.isValidElement)(child) && child.type === import_react50.Fragment ? child.props.children : [child]
|
|
4809
4819
|
).map(
|
|
4810
|
-
(child) => (0,
|
|
4820
|
+
(child) => (0, import_react50.isValidElement)(child) && "id" in child.props ? child.props.id : null
|
|
4811
4821
|
).filter((id) => !!id);
|
|
4812
4822
|
const serializedIds = elementIds.join(",");
|
|
4813
|
-
const containerRef = (0,
|
|
4814
|
-
const refs = (0,
|
|
4823
|
+
const containerRef = (0, import_react50.useRef)(null);
|
|
4824
|
+
const refs = (0, import_react50.useMemo)(() => {
|
|
4815
4825
|
return Object.fromEntries(
|
|
4816
|
-
serializedIds.split(",").map((id) => [id, (0,
|
|
4826
|
+
serializedIds.split(",").map((id) => [id, (0, import_react50.createRef)()])
|
|
4817
4827
|
);
|
|
4818
4828
|
}, [serializedIds]);
|
|
4819
|
-
const labelElements = (0,
|
|
4820
|
-
return serializedIds.split(",").map((id, index) => /* @__PURE__ */
|
|
4829
|
+
const labelElements = (0, import_react50.useMemo)(() => {
|
|
4830
|
+
return serializedIds.split(",").map((id, index) => /* @__PURE__ */ import_react50.default.createElement(
|
|
4821
4831
|
"span",
|
|
4822
4832
|
{
|
|
4823
4833
|
key: id,
|
|
@@ -4830,7 +4840,7 @@ var LabeledElementView = (0, import_react49.memo)(function LabeledElementView2({
|
|
|
4830
4840
|
})
|
|
4831
4841
|
));
|
|
4832
4842
|
}, [refs, serializedIds, renderLabel]);
|
|
4833
|
-
(0,
|
|
4843
|
+
(0, import_react50.useLayoutEffect)(() => {
|
|
4834
4844
|
if (!containerRef.current)
|
|
4835
4845
|
return;
|
|
4836
4846
|
const containerRect = containerRef.current.getBoundingClientRect();
|
|
@@ -4895,13 +4905,13 @@ var LabeledElementView = (0, import_react49.memo)(function LabeledElementView2({
|
|
|
4895
4905
|
`${Math.max(...heights)}px`
|
|
4896
4906
|
);
|
|
4897
4907
|
}, [refs, labelElements]);
|
|
4898
|
-
return /* @__PURE__ */
|
|
4908
|
+
return /* @__PURE__ */ import_react50.default.createElement(Container4, { ref: containerRef }, /* @__PURE__ */ import_react50.default.createElement(Tools, null, children), /* @__PURE__ */ import_react50.default.createElement(Labels, null, labelElements));
|
|
4899
4909
|
});
|
|
4900
4910
|
|
|
4901
4911
|
// src/components/Progress.tsx
|
|
4902
4912
|
var import_noya_utils9 = require("@noya-app/noya-utils");
|
|
4903
4913
|
var ProgressPrimitive = __toESM(require("@radix-ui/react-progress"));
|
|
4904
|
-
var
|
|
4914
|
+
var import_react51 = __toESM(require("react"));
|
|
4905
4915
|
var import_styled_components30 = __toESM(require("styled-components"));
|
|
4906
4916
|
function Progress({
|
|
4907
4917
|
value,
|
|
@@ -4911,7 +4921,7 @@ function Progress({
|
|
|
4911
4921
|
variant = "normal"
|
|
4912
4922
|
}) {
|
|
4913
4923
|
const clampedValue = (0, import_noya_utils9.clamp)(value, 0, 100);
|
|
4914
|
-
return /* @__PURE__ */
|
|
4924
|
+
return /* @__PURE__ */ import_react51.default.createElement(ProgressRoot, { value: clampedValue, style: { width, flex, height } }, /* @__PURE__ */ import_react51.default.createElement(
|
|
4915
4925
|
ProgressIndicator,
|
|
4916
4926
|
{
|
|
4917
4927
|
variant,
|
|
@@ -4936,7 +4946,7 @@ var ProgressIndicator = (0, import_styled_components30.default)(ProgressPrimitiv
|
|
|
4936
4946
|
|
|
4937
4947
|
// src/components/RadioGroup.tsx
|
|
4938
4948
|
var ToggleGroupPrimitive = __toESM(require("@radix-ui/react-toggle-group"));
|
|
4939
|
-
var
|
|
4949
|
+
var import_react52 = __toESM(require("react"));
|
|
4940
4950
|
var import_styled_components31 = __toESM(require("styled-components"));
|
|
4941
4951
|
var ignoredProps3 = /* @__PURE__ */ new Set(["colorScheme"]);
|
|
4942
4952
|
var StyledRoot = (0, import_styled_components31.default)(ToggleGroupPrimitive.Root).withConfig({
|
|
@@ -4989,9 +4999,9 @@ var StyledItem = (0, import_styled_components31.default)(ToggleGroupPrimitive.It
|
|
|
4989
4999
|
boxShadow: `0 0 0 1px ${theme.colors.sidebar.background}, 0 0 0 3px ${theme.colors[colorScheme ?? "primary"]}`
|
|
4990
5000
|
}
|
|
4991
5001
|
}));
|
|
4992
|
-
var ToggleGroupItem = (0,
|
|
4993
|
-
const { colorScheme } = (0,
|
|
4994
|
-
const itemElement = /* @__PURE__ */
|
|
5002
|
+
var ToggleGroupItem = (0, import_react52.forwardRef)(function ToggleGroupItem2({ value, tooltip, children, disabled = false }, forwardedRef) {
|
|
5003
|
+
const { colorScheme } = (0, import_react52.useContext)(RadioGroupContext);
|
|
5004
|
+
const itemElement = /* @__PURE__ */ import_react52.default.createElement(
|
|
4995
5005
|
StyledItem,
|
|
4996
5006
|
{
|
|
4997
5007
|
ref: forwardedRef,
|
|
@@ -5001,9 +5011,9 @@ var ToggleGroupItem = (0, import_react51.forwardRef)(function ToggleGroupItem2({
|
|
|
5001
5011
|
},
|
|
5002
5012
|
children
|
|
5003
5013
|
);
|
|
5004
|
-
return tooltip ? /* @__PURE__ */
|
|
5014
|
+
return tooltip ? /* @__PURE__ */ import_react52.default.createElement(Tooltip, { content: tooltip }, itemElement) : itemElement;
|
|
5005
5015
|
});
|
|
5006
|
-
var RadioGroupContext = (0,
|
|
5016
|
+
var RadioGroupContext = (0, import_react52.createContext)({
|
|
5007
5017
|
colorScheme: "primary"
|
|
5008
5018
|
});
|
|
5009
5019
|
function ToggleGroupRoot({
|
|
@@ -5014,8 +5024,8 @@ function ToggleGroupRoot({
|
|
|
5014
5024
|
allowEmpty,
|
|
5015
5025
|
children
|
|
5016
5026
|
}) {
|
|
5017
|
-
const contextValue = (0,
|
|
5018
|
-
const handleValueChange = (0,
|
|
5027
|
+
const contextValue = (0, import_react52.useMemo)(() => ({ colorScheme }), [colorScheme]);
|
|
5028
|
+
const handleValueChange = (0, import_react52.useCallback)(
|
|
5019
5029
|
(value2) => {
|
|
5020
5030
|
if (!allowEmpty && !value2)
|
|
5021
5031
|
return;
|
|
@@ -5023,7 +5033,7 @@ function ToggleGroupRoot({
|
|
|
5023
5033
|
},
|
|
5024
5034
|
[allowEmpty, onValueChange]
|
|
5025
5035
|
);
|
|
5026
|
-
return /* @__PURE__ */
|
|
5036
|
+
return /* @__PURE__ */ import_react52.default.createElement(RadioGroupContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react52.default.createElement(
|
|
5027
5037
|
StyledRoot,
|
|
5028
5038
|
{
|
|
5029
5039
|
id,
|
|
@@ -5037,28 +5047,28 @@ function ToggleGroupRoot({
|
|
|
5037
5047
|
}
|
|
5038
5048
|
var RadioGroup;
|
|
5039
5049
|
((RadioGroup2) => {
|
|
5040
|
-
RadioGroup2.Root = (0,
|
|
5041
|
-
RadioGroup2.Item = (0,
|
|
5050
|
+
RadioGroup2.Root = (0, import_react52.memo)(ToggleGroupRoot);
|
|
5051
|
+
RadioGroup2.Item = (0, import_react52.memo)(ToggleGroupItem);
|
|
5042
5052
|
})(RadioGroup || (RadioGroup = {}));
|
|
5043
5053
|
|
|
5044
5054
|
// src/components/Select.tsx
|
|
5045
5055
|
var import_noya_utils10 = require("@noya-app/noya-utils");
|
|
5046
|
-
var
|
|
5056
|
+
var import_react53 = __toESM(require("react"));
|
|
5047
5057
|
var import_styled_components32 = __toESM(require("styled-components"));
|
|
5048
|
-
var SelectContext = (0,
|
|
5049
|
-
var SelectOption = (0,
|
|
5058
|
+
var SelectContext = (0, import_react53.createContext)(void 0);
|
|
5059
|
+
var SelectOption = (0, import_react53.memo)(function SelectOption2({
|
|
5050
5060
|
value,
|
|
5051
5061
|
title,
|
|
5052
5062
|
onSelect
|
|
5053
5063
|
}) {
|
|
5054
|
-
const { addListener, removeListener } = (0,
|
|
5055
|
-
(0,
|
|
5064
|
+
const { addListener, removeListener } = (0, import_react53.useContext)(SelectContext);
|
|
5065
|
+
(0, import_react53.useEffect)(() => {
|
|
5056
5066
|
if (!onSelect)
|
|
5057
5067
|
return;
|
|
5058
5068
|
addListener(value, onSelect);
|
|
5059
5069
|
return () => removeListener(value);
|
|
5060
5070
|
}, [addListener, onSelect, removeListener, value]);
|
|
5061
|
-
return /* @__PURE__ */
|
|
5071
|
+
return /* @__PURE__ */ import_react53.default.createElement("option", { value }, title ?? value);
|
|
5062
5072
|
});
|
|
5063
5073
|
var createChevronSVGString = (0, import_noya_utils10.memoize)(
|
|
5064
5074
|
(color) => `
|
|
@@ -5098,7 +5108,7 @@ var SelectElement = import_styled_components32.default.select(
|
|
|
5098
5108
|
}
|
|
5099
5109
|
})
|
|
5100
5110
|
);
|
|
5101
|
-
var Select = (0,
|
|
5111
|
+
var Select = (0, import_react53.memo)(function Select2({
|
|
5102
5112
|
id,
|
|
5103
5113
|
flex,
|
|
5104
5114
|
value,
|
|
@@ -5108,8 +5118,8 @@ var Select = (0, import_react52.memo)(function Select2({
|
|
|
5108
5118
|
const getTitle = "options" in rest ? rest.getTitle : void 0;
|
|
5109
5119
|
const onChange = "options" in rest ? rest.onChange : void 0;
|
|
5110
5120
|
const children = "options" in rest ? void 0 : rest.children;
|
|
5111
|
-
const optionElements = (0,
|
|
5112
|
-
() => options ? options.map((option, index) => /* @__PURE__ */
|
|
5121
|
+
const optionElements = (0, import_react53.useMemo)(
|
|
5122
|
+
() => options ? options.map((option, index) => /* @__PURE__ */ import_react53.default.createElement(
|
|
5113
5123
|
SelectOption,
|
|
5114
5124
|
{
|
|
5115
5125
|
key: option,
|
|
@@ -5120,21 +5130,21 @@ var Select = (0, import_react52.memo)(function Select2({
|
|
|
5120
5130
|
)) : children,
|
|
5121
5131
|
[children, getTitle, onChange, options]
|
|
5122
5132
|
);
|
|
5123
|
-
const listeners = (0,
|
|
5124
|
-
const contextValue = (0,
|
|
5133
|
+
const listeners = (0, import_react53.useRef)(/* @__PURE__ */ new Map());
|
|
5134
|
+
const contextValue = (0, import_react53.useMemo)(
|
|
5125
5135
|
() => ({
|
|
5126
5136
|
addListener: (value2, listener) => listeners.current.set(value2, listener),
|
|
5127
5137
|
removeListener: (value2) => listeners.current.delete(value2)
|
|
5128
5138
|
}),
|
|
5129
5139
|
[]
|
|
5130
5140
|
);
|
|
5131
|
-
return /* @__PURE__ */
|
|
5141
|
+
return /* @__PURE__ */ import_react53.default.createElement(SelectContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react53.default.createElement(
|
|
5132
5142
|
SelectElement,
|
|
5133
5143
|
{
|
|
5134
5144
|
id,
|
|
5135
5145
|
flex,
|
|
5136
5146
|
value,
|
|
5137
|
-
onChange: (0,
|
|
5147
|
+
onChange: (0, import_react53.useCallback)(
|
|
5138
5148
|
(event) => listeners.current.get(event.target.value)?.(),
|
|
5139
5149
|
[listeners]
|
|
5140
5150
|
),
|
|
@@ -5146,7 +5156,7 @@ var Select = (0, import_react52.memo)(function Select2({
|
|
|
5146
5156
|
|
|
5147
5157
|
// src/components/Slider.tsx
|
|
5148
5158
|
var RadixSlider = __toESM(require("@radix-ui/react-slider"));
|
|
5149
|
-
var
|
|
5159
|
+
var import_react54 = __toESM(require("react"));
|
|
5150
5160
|
var import_styled_components33 = __toESM(require("styled-components"));
|
|
5151
5161
|
var StyledSlider = (0, import_styled_components33.default)(RadixSlider.Root)({
|
|
5152
5162
|
flex: "1",
|
|
@@ -5187,17 +5197,17 @@ var Slider = function Slider2({
|
|
|
5187
5197
|
min,
|
|
5188
5198
|
max
|
|
5189
5199
|
}) {
|
|
5190
|
-
const arrayValue = (0,
|
|
5200
|
+
const arrayValue = (0, import_react54.useMemo)(
|
|
5191
5201
|
() => [Math.min(Math.max(value, min), max)],
|
|
5192
5202
|
[value, min, max]
|
|
5193
5203
|
);
|
|
5194
|
-
const handleValueChange = (0,
|
|
5204
|
+
const handleValueChange = (0, import_react54.useCallback)(
|
|
5195
5205
|
(arrayValue2) => {
|
|
5196
5206
|
onValueChange(arrayValue2[0]);
|
|
5197
5207
|
},
|
|
5198
5208
|
[onValueChange]
|
|
5199
5209
|
);
|
|
5200
|
-
return /* @__PURE__ */
|
|
5210
|
+
return /* @__PURE__ */ import_react54.default.createElement(
|
|
5201
5211
|
StyledSlider,
|
|
5202
5212
|
{
|
|
5203
5213
|
min,
|
|
@@ -5206,14 +5216,14 @@ var Slider = function Slider2({
|
|
|
5206
5216
|
value: arrayValue,
|
|
5207
5217
|
onValueChange: handleValueChange
|
|
5208
5218
|
},
|
|
5209
|
-
/* @__PURE__ */
|
|
5210
|
-
/* @__PURE__ */
|
|
5219
|
+
/* @__PURE__ */ import_react54.default.createElement(StyledTrack, null, /* @__PURE__ */ import_react54.default.createElement(StyledRange, null)),
|
|
5220
|
+
/* @__PURE__ */ import_react54.default.createElement(StyledThumb2, null)
|
|
5211
5221
|
);
|
|
5212
5222
|
};
|
|
5213
5223
|
|
|
5214
5224
|
// src/components/Switch.tsx
|
|
5215
5225
|
var SwitchPrimitive = __toESM(require("@radix-ui/react-switch"));
|
|
5216
|
-
var
|
|
5226
|
+
var import_react55 = __toESM(require("react"));
|
|
5217
5227
|
var import_styled_components34 = __toESM(require("styled-components"));
|
|
5218
5228
|
var SwitchRoot = (0, import_styled_components34.default)(SwitchPrimitive.Root)(({ theme, colorScheme: variant }) => ({
|
|
5219
5229
|
all: "unset",
|
|
@@ -5249,7 +5259,7 @@ var Switch = function Switch2({
|
|
|
5249
5259
|
onChange,
|
|
5250
5260
|
colorScheme = "normal"
|
|
5251
5261
|
}) {
|
|
5252
|
-
return /* @__PURE__ */
|
|
5262
|
+
return /* @__PURE__ */ import_react55.default.createElement(
|
|
5253
5263
|
SwitchRoot,
|
|
5254
5264
|
{
|
|
5255
5265
|
colorScheme,
|
|
@@ -5258,42 +5268,42 @@ var Switch = function Switch2({
|
|
|
5258
5268
|
onChange(newValue);
|
|
5259
5269
|
}
|
|
5260
5270
|
},
|
|
5261
|
-
/* @__PURE__ */
|
|
5271
|
+
/* @__PURE__ */ import_react55.default.createElement(SwitchThumb, null)
|
|
5262
5272
|
);
|
|
5263
5273
|
};
|
|
5264
5274
|
|
|
5265
5275
|
// src/components/TreeView.tsx
|
|
5266
|
-
var
|
|
5267
|
-
var TreeRow = (0,
|
|
5276
|
+
var import_react56 = __toESM(require("react"));
|
|
5277
|
+
var TreeRow = (0, import_react56.forwardRef)(function TreeRow2({
|
|
5268
5278
|
icon,
|
|
5269
5279
|
expanded,
|
|
5270
5280
|
onClickChevron,
|
|
5271
5281
|
children,
|
|
5272
5282
|
...rest
|
|
5273
5283
|
}, forwardedRef) {
|
|
5274
|
-
const { expandable } = (0,
|
|
5275
|
-
const handleClickChevron = (0,
|
|
5284
|
+
const { expandable } = (0, import_react56.useContext)(ListView.RowContext);
|
|
5285
|
+
const handleClickChevron = (0, import_react56.useCallback)(
|
|
5276
5286
|
(event) => {
|
|
5277
5287
|
event.stopPropagation();
|
|
5278
5288
|
onClickChevron?.({ altKey: event.altKey });
|
|
5279
5289
|
},
|
|
5280
5290
|
[onClickChevron]
|
|
5281
5291
|
);
|
|
5282
|
-
return /* @__PURE__ */
|
|
5292
|
+
return /* @__PURE__ */ import_react56.default.createElement(ListView.Row, { ref: forwardedRef, ...rest }, expandable && /* @__PURE__ */ import_react56.default.createElement(import_react56.default.Fragment, null, expanded === void 0 ? /* @__PURE__ */ import_react56.default.createElement(Spacer.Horizontal, { size: 19 }) : /* @__PURE__ */ import_react56.default.createElement(
|
|
5283
5293
|
IconButton,
|
|
5284
5294
|
{
|
|
5285
5295
|
iconName: expanded ? "ChevronDownIcon" : "ChevronRightIcon",
|
|
5286
5296
|
onClick: handleClickChevron,
|
|
5287
5297
|
selected: rest.selected
|
|
5288
5298
|
}
|
|
5289
|
-
), /* @__PURE__ */
|
|
5299
|
+
), /* @__PURE__ */ import_react56.default.createElement(Spacer.Horizontal, { size: 6 })), icon && /* @__PURE__ */ import_react56.default.createElement(import_react56.default.Fragment, null, icon, /* @__PURE__ */ import_react56.default.createElement(Spacer.Horizontal, { size: 10 })), children);
|
|
5290
5300
|
});
|
|
5291
5301
|
var TreeView;
|
|
5292
5302
|
((TreeView2) => {
|
|
5293
5303
|
TreeView2.Root = ListView.Root;
|
|
5294
5304
|
TreeView2.RowTitle = ListView.RowTitle;
|
|
5295
5305
|
TreeView2.EditableRowTitle = ListView.EditableRowTitle;
|
|
5296
|
-
TreeView2.Row = (0,
|
|
5306
|
+
TreeView2.Row = (0, import_react56.memo)(TreeRow);
|
|
5297
5307
|
})(TreeView || (TreeView = {}));
|
|
5298
5308
|
|
|
5299
5309
|
// src/hooks/usePlatform.ts
|
|
@@ -5601,7 +5611,7 @@ var SUPPORTED_CANVAS_UPLOAD_TYPES = [
|
|
|
5601
5611
|
|
|
5602
5612
|
// src/components/ArrayController.tsx
|
|
5603
5613
|
var import_noya_utils11 = require("@noya-app/noya-utils");
|
|
5604
|
-
var
|
|
5614
|
+
var import_react58 = __toESM(require("react"));
|
|
5605
5615
|
var import_styled_components36 = __toESM(require("styled-components"));
|
|
5606
5616
|
|
|
5607
5617
|
// src/components/InspectorPrimitives.tsx
|
|
@@ -5620,7 +5630,7 @@ __export(InspectorPrimitives_exports, {
|
|
|
5620
5630
|
Title: () => Title3,
|
|
5621
5631
|
VerticalSeparator: () => VerticalSeparator
|
|
5622
5632
|
});
|
|
5623
|
-
var
|
|
5633
|
+
var import_react57 = __toESM(require("react"));
|
|
5624
5634
|
var import_styled_components35 = __toESM(require("styled-components"));
|
|
5625
5635
|
var Section = import_styled_components35.default.div(({ theme, padding = "10px", gap }) => ({
|
|
5626
5636
|
flex: "0 0 auto",
|
|
@@ -5667,8 +5677,8 @@ var Checkbox = import_styled_components35.default.input(({ theme }) => ({
|
|
|
5667
5677
|
var Text3 = import_styled_components35.default.span(({ theme }) => ({
|
|
5668
5678
|
...theme.textStyles.small
|
|
5669
5679
|
}));
|
|
5670
|
-
var VerticalSeparator = () => /* @__PURE__ */
|
|
5671
|
-
var HorizontalSeparator = () => /* @__PURE__ */
|
|
5680
|
+
var VerticalSeparator = () => /* @__PURE__ */ import_react57.default.createElement(Spacer.Vertical, { size: (0, import_styled_components35.useTheme)().sizes.inspector.verticalSeparator });
|
|
5681
|
+
var HorizontalSeparator = () => /* @__PURE__ */ import_react57.default.createElement(Spacer.Horizontal, { size: (0, import_styled_components35.useTheme)().sizes.inspector.horizontalSeparator });
|
|
5672
5682
|
var SliderRowLabel = import_styled_components35.default.span(({ theme }) => ({
|
|
5673
5683
|
...theme.textStyles.small,
|
|
5674
5684
|
color: theme.colors.textMuted,
|
|
@@ -5684,10 +5694,11 @@ var RowLabel = import_styled_components35.default.span(({ theme, textStyle }) =>
|
|
|
5684
5694
|
color: theme.colors.textSubtle,
|
|
5685
5695
|
fontWeight: "bold"
|
|
5686
5696
|
},
|
|
5687
|
-
lineHeight: "19px"
|
|
5697
|
+
lineHeight: "19px",
|
|
5688
5698
|
// Button height
|
|
5699
|
+
alignItems: "center"
|
|
5689
5700
|
}));
|
|
5690
|
-
var LabeledRow = (0,
|
|
5701
|
+
var LabeledRow = (0, import_react57.memo)(function LabeledRow2({
|
|
5691
5702
|
id,
|
|
5692
5703
|
children,
|
|
5693
5704
|
label,
|
|
@@ -5695,13 +5706,13 @@ var LabeledRow = (0, import_react56.memo)(function LabeledRow2({
|
|
|
5695
5706
|
gap,
|
|
5696
5707
|
right
|
|
5697
5708
|
}) {
|
|
5698
|
-
return /* @__PURE__ */
|
|
5709
|
+
return /* @__PURE__ */ import_react57.default.createElement(Row2, { id }, /* @__PURE__ */ import_react57.default.createElement(Column, null, /* @__PURE__ */ import_react57.default.createElement(RowLabel, { textStyle: labelTextStyle }, label, right && /* @__PURE__ */ import_react57.default.createElement(Spacer.Horizontal, null), right), /* @__PURE__ */ import_react57.default.createElement(Row2, { gap }, children)));
|
|
5699
5710
|
});
|
|
5700
|
-
var LabeledSliderRow = (0,
|
|
5711
|
+
var LabeledSliderRow = (0, import_react57.memo)(function LabeledRow3({
|
|
5701
5712
|
children,
|
|
5702
5713
|
label
|
|
5703
5714
|
}) {
|
|
5704
|
-
return /* @__PURE__ */
|
|
5715
|
+
return /* @__PURE__ */ import_react57.default.createElement(Row2, null, /* @__PURE__ */ import_react57.default.createElement(Column, null, /* @__PURE__ */ import_react57.default.createElement(SliderRowLabel, null, label), /* @__PURE__ */ import_react57.default.createElement(Row2, null, children)));
|
|
5705
5716
|
});
|
|
5706
5717
|
|
|
5707
5718
|
// src/components/ArrayController.tsx
|
|
@@ -5714,7 +5725,7 @@ var ElementRow = import_styled_components36.default.div({
|
|
|
5714
5725
|
var ItemContainer2 = import_styled_components36.default.div({
|
|
5715
5726
|
position: "relative"
|
|
5716
5727
|
});
|
|
5717
|
-
var ArrayController = (0,
|
|
5728
|
+
var ArrayController = (0, import_react58.memo)(function ArrayController2({
|
|
5718
5729
|
id,
|
|
5719
5730
|
items,
|
|
5720
5731
|
title,
|
|
@@ -5732,12 +5743,12 @@ var ArrayController = (0, import_react57.memo)(function ArrayController2({
|
|
|
5732
5743
|
}) {
|
|
5733
5744
|
const iconColor = (0, import_styled_components36.useTheme)().colors.icon;
|
|
5734
5745
|
const primaryLightColor = (0, import_styled_components36.useTheme)().colors.primaryLight;
|
|
5735
|
-
const keys = (0,
|
|
5746
|
+
const keys = (0, import_react58.useMemo)(
|
|
5736
5747
|
() => items.map((item, index) => getKey?.(item) ?? index.toString()),
|
|
5737
5748
|
[getKey, items]
|
|
5738
5749
|
);
|
|
5739
5750
|
const indexes = reversed ? (0, import_noya_utils11.range)(0, items.length).reverse() : (0, import_noya_utils11.range)(0, items.length);
|
|
5740
|
-
const handleMoveItem = (0,
|
|
5751
|
+
const handleMoveItem = (0, import_react58.useCallback)(
|
|
5741
5752
|
(sourceIndex, destinationIndex, position) => {
|
|
5742
5753
|
if (reversed) {
|
|
5743
5754
|
if (position === "above") {
|
|
@@ -5754,11 +5765,11 @@ var ArrayController = (0, import_react57.memo)(function ArrayController2({
|
|
|
5754
5765
|
[onMoveItem, reversed]
|
|
5755
5766
|
);
|
|
5756
5767
|
const renderRow = (index) => {
|
|
5757
|
-
return /* @__PURE__ */
|
|
5768
|
+
return /* @__PURE__ */ import_react58.default.createElement(ElementRow, { key: keys[index] }, renderItem({ item: items[index], index }));
|
|
5758
5769
|
};
|
|
5759
|
-
return /* @__PURE__ */
|
|
5770
|
+
return /* @__PURE__ */ import_react58.default.createElement(Section, { id, padding, gap: "2px" }, /* @__PURE__ */ import_react58.default.createElement(SectionHeader, null, /* @__PURE__ */ import_react58.default.createElement(Button, { variant: "none", onClick: onClickPlus }, /* @__PURE__ */ import_react58.default.createElement(Title3, null, title)), /* @__PURE__ */ import_react58.default.createElement(Spacer.Horizontal, null), withSeparatorElements(
|
|
5760
5771
|
[
|
|
5761
|
-
onClickTrash && /* @__PURE__ */
|
|
5772
|
+
onClickTrash && /* @__PURE__ */ import_react58.default.createElement(
|
|
5762
5773
|
IconButton,
|
|
5763
5774
|
{
|
|
5764
5775
|
id: `${id}-trash`,
|
|
@@ -5767,7 +5778,7 @@ var ArrayController = (0, import_react57.memo)(function ArrayController2({
|
|
|
5767
5778
|
onClick: onClickTrash
|
|
5768
5779
|
}
|
|
5769
5780
|
),
|
|
5770
|
-
onClickExpand && /* @__PURE__ */
|
|
5781
|
+
onClickExpand && /* @__PURE__ */ import_react58.default.createElement(
|
|
5771
5782
|
IconButton,
|
|
5772
5783
|
{
|
|
5773
5784
|
id: `${id}-gear`,
|
|
@@ -5776,7 +5787,7 @@ var ArrayController = (0, import_react57.memo)(function ArrayController2({
|
|
|
5776
5787
|
onClick: onClickExpand
|
|
5777
5788
|
}
|
|
5778
5789
|
),
|
|
5779
|
-
onClickPlus && /* @__PURE__ */
|
|
5790
|
+
onClickPlus && /* @__PURE__ */ import_react58.default.createElement(
|
|
5780
5791
|
IconButton,
|
|
5781
5792
|
{
|
|
5782
5793
|
id: `${id}-add`,
|
|
@@ -5786,15 +5797,15 @@ var ArrayController = (0, import_react57.memo)(function ArrayController2({
|
|
|
5786
5797
|
}
|
|
5787
5798
|
)
|
|
5788
5799
|
],
|
|
5789
|
-
/* @__PURE__ */
|
|
5790
|
-
)), /* @__PURE__ */
|
|
5800
|
+
/* @__PURE__ */ import_react58.default.createElement(Spacer.Horizontal, { size: 8 })
|
|
5801
|
+
)), /* @__PURE__ */ import_react58.default.createElement(Stack.V, { gap: "4px" }, sortable ? /* @__PURE__ */ import_react58.default.createElement(
|
|
5791
5802
|
Sortable.Root,
|
|
5792
5803
|
{
|
|
5793
5804
|
keys,
|
|
5794
5805
|
renderOverlay: renderRow,
|
|
5795
5806
|
onMoveItem: handleMoveItem
|
|
5796
5807
|
},
|
|
5797
|
-
indexes.map((index) => /* @__PURE__ */
|
|
5808
|
+
indexes.map((index) => /* @__PURE__ */ import_react58.default.createElement(Sortable.Item, { id: keys[index], key: keys[index] }, ({ relativeDropPosition, ...sortableProps }) => /* @__PURE__ */ import_react58.default.createElement(ItemContainer2, { ...sortableProps }, renderRow(index), relativeDropPosition && /* @__PURE__ */ import_react58.default.createElement(
|
|
5798
5809
|
ListView.DragIndicator,
|
|
5799
5810
|
{
|
|
5800
5811
|
gap: 0,
|
|
@@ -5808,11 +5819,11 @@ var ArrayController = (0, import_react57.memo)(function ArrayController2({
|
|
|
5808
5819
|
|
|
5809
5820
|
// src/components/DimensionInput.tsx
|
|
5810
5821
|
var import_noya_utils12 = require("@noya-app/noya-utils");
|
|
5811
|
-
var
|
|
5822
|
+
var import_react59 = __toESM(require("react"));
|
|
5812
5823
|
function getNewValue(value, mode, delta) {
|
|
5813
5824
|
return delta === void 0 ? value : mode === "replace" ? delta : value + delta;
|
|
5814
5825
|
}
|
|
5815
|
-
var DimensionInput = (0,
|
|
5826
|
+
var DimensionInput = (0, import_react59.memo)(function DimensionInput2({
|
|
5816
5827
|
id,
|
|
5817
5828
|
value,
|
|
5818
5829
|
onSetValue,
|
|
@@ -5822,15 +5833,15 @@ var DimensionInput = (0, import_react58.memo)(function DimensionInput2({
|
|
|
5822
5833
|
disabled,
|
|
5823
5834
|
trigger = "submit"
|
|
5824
5835
|
}) {
|
|
5825
|
-
const handleNudgeValue = (0,
|
|
5836
|
+
const handleNudgeValue = (0, import_react59.useCallback)(
|
|
5826
5837
|
(value2) => onSetValue(value2, "adjust"),
|
|
5827
5838
|
[onSetValue]
|
|
5828
5839
|
);
|
|
5829
|
-
const handleSetValue = (0,
|
|
5840
|
+
const handleSetValue = (0, import_react59.useCallback)(
|
|
5830
5841
|
(value2) => onSetValue(value2, "replace"),
|
|
5831
5842
|
[onSetValue]
|
|
5832
5843
|
);
|
|
5833
|
-
return /* @__PURE__ */
|
|
5844
|
+
return /* @__PURE__ */ import_react59.default.createElement(InputField.Root, { id, width: size2 }, /* @__PURE__ */ import_react59.default.createElement(
|
|
5834
5845
|
InputField.NumberInput,
|
|
5835
5846
|
{
|
|
5836
5847
|
value: value === void 0 ? value : (0, import_noya_utils12.round)(value, 2),
|
|
@@ -5839,7 +5850,7 @@ var DimensionInput = (0, import_react58.memo)(function DimensionInput2({
|
|
|
5839
5850
|
disabled,
|
|
5840
5851
|
...trigger === "change" ? { onChange: handleSetValue } : { onSubmit: handleSetValue }
|
|
5841
5852
|
}
|
|
5842
|
-
), label && /* @__PURE__ */
|
|
5853
|
+
), label && /* @__PURE__ */ import_react59.default.createElement(InputField.Label, null, label));
|
|
5843
5854
|
});
|
|
5844
5855
|
// Annotate the CommonJS export names for ESM import in node:
|
|
5845
5856
|
0 && (module.exports = {
|