@noya-app/noya-designsystem 0.1.14 → 0.1.16
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 +15 -0
- package/dist/index.d.mts +56 -59
- package/dist/index.d.ts +56 -59
- package/dist/index.js +852 -825
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +567 -539
- package/dist/index.mjs.map +1 -1
- package/package.json +6 -6
- package/src/components/ActivityIndicator.tsx +23 -13
- package/src/components/ArrayController.tsx +5 -5
- package/src/components/Avatar.tsx +5 -5
- package/src/components/Button.tsx +39 -36
- package/src/components/Chip.tsx +25 -25
- package/src/components/Divider.tsx +45 -20
- package/src/components/FillInputField.tsx +23 -23
- package/src/components/InputField.tsx +78 -91
- package/src/components/InputFieldWithCompletions.tsx +4 -4
- package/src/components/InspectorPrimitives.tsx +18 -18
- package/src/components/Label.tsx +21 -21
- package/src/components/ListView.tsx +100 -95
- package/src/components/RadioGroup.tsx +1 -2
- package/src/components/Select.tsx +11 -11
- package/src/components/Sortable.tsx +9 -1
- package/src/components/Spacer.tsx +30 -7
- package/src/components/Stack.tsx +8 -8
- package/src/components/Switch.tsx +9 -10
- package/src/components/Text.tsx +15 -15
- package/src/components/internal/Menu.tsx +6 -10
- package/src/contexts/DesignSystemConfiguration.tsx +8 -1
package/dist/index.js
CHANGED
|
@@ -140,14 +140,14 @@ var Spinner = import_styled_components.default.div`
|
|
|
140
140
|
display: flex;
|
|
141
141
|
justify-content: center;
|
|
142
142
|
align-items: center;
|
|
143
|
-
opacity: ${({ opacity }) => opacity};
|
|
143
|
+
opacity: ${({ $opacity }) => $opacity};
|
|
144
144
|
`;
|
|
145
145
|
var SpinnerCircle = import_styled_components.default.div`
|
|
146
|
-
border: 2px solid ${({ trackColor }) => trackColor};
|
|
147
|
-
border-top: 2px solid ${({ color }) => color};
|
|
146
|
+
border: 2px solid ${({ $trackColor }) => $trackColor};
|
|
147
|
+
border-top: 2px solid ${({ $color }) => $color};
|
|
148
148
|
border-radius: 50%;
|
|
149
|
-
width: ${({ size
|
|
150
|
-
height: ${({ size
|
|
149
|
+
width: ${({ $size }) => `${$size}px`};
|
|
150
|
+
height: ${({ $size }) => `${$size}px`};
|
|
151
151
|
animation: ${spin} 1s linear infinite;
|
|
152
152
|
`;
|
|
153
153
|
var ActivityIndicator = (0, import_react.memo)(function ActivityIndicator2({
|
|
@@ -156,7 +156,7 @@ var ActivityIndicator = (0, import_react.memo)(function ActivityIndicator2({
|
|
|
156
156
|
color = "black",
|
|
157
157
|
trackColor = "rgba(0, 0, 0, 0.1)"
|
|
158
158
|
}) {
|
|
159
|
-
return /* @__PURE__ */ import_react.default.createElement(Spinner, { opacity }, /* @__PURE__ */ import_react.default.createElement(SpinnerCircle, { size: size2, color, trackColor }));
|
|
159
|
+
return /* @__PURE__ */ import_react.default.createElement(Spinner, { $opacity: opacity }, /* @__PURE__ */ import_react.default.createElement(SpinnerCircle, { $size: size2, $color: color, $trackColor: trackColor }));
|
|
160
160
|
});
|
|
161
161
|
|
|
162
162
|
// src/components/Avatar.tsx
|
|
@@ -206,9 +206,9 @@ function withSeparatorElements(elements2, separator) {
|
|
|
206
206
|
}
|
|
207
207
|
|
|
208
208
|
// src/components/Stack.tsx
|
|
209
|
-
var Element = import_styled_components2.default.div(({ styleProps, breakpoints }) => ({
|
|
210
|
-
|
|
211
|
-
...mergeBreakpoints(breakpoints || [])
|
|
209
|
+
var Element = import_styled_components2.default.div(({ $styleProps, $breakpoints }) => ({
|
|
210
|
+
...$styleProps,
|
|
211
|
+
...mergeBreakpoints($breakpoints || [])
|
|
212
212
|
}));
|
|
213
213
|
var StackBase = (0, import_react3.forwardRef)(function StackBase2({ id, as, children, separator, breakpoints, tabIndex, href, ...rest }, forwardedRef) {
|
|
214
214
|
const elements2 = separator ? withSeparatorElements(import_react3.Children.toArray(children), separator) : children;
|
|
@@ -224,8 +224,8 @@ var StackBase = (0, import_react3.forwardRef)(function StackBase2({ id, as, chil
|
|
|
224
224
|
ref: forwardedRef,
|
|
225
225
|
id,
|
|
226
226
|
as,
|
|
227
|
-
styleProps,
|
|
228
|
-
breakpoints,
|
|
227
|
+
$styleProps: styleProps,
|
|
228
|
+
$breakpoints: breakpoints,
|
|
229
229
|
tabIndex,
|
|
230
230
|
...href && { href }
|
|
231
231
|
},
|
|
@@ -294,10 +294,10 @@ var Avatar = (0, import_react4.forwardRef)(function Avatar2({
|
|
|
294
294
|
}, forwardedRef) {
|
|
295
295
|
return /* @__PURE__ */ import_react4.default.createElement(AvatarRoot, { ref: forwardedRef, size: size2, overflow, ...props }, /* @__PURE__ */ import_react4.default.createElement(AvatarImage, { src: image, alt: name3 }), /* @__PURE__ */ import_react4.default.createElement(AvatarFallback, { size: size2 }, fallback));
|
|
296
296
|
});
|
|
297
|
-
var AvatarStackItemWrapper = import_styled_components3.default.div(({ size
|
|
297
|
+
var AvatarStackItemWrapper = import_styled_components3.default.div(({ $size, theme }) => ({
|
|
298
298
|
position: "relative",
|
|
299
|
-
width:
|
|
300
|
-
height:
|
|
299
|
+
width: $size,
|
|
300
|
+
height: $size,
|
|
301
301
|
marginLeft: "-8px",
|
|
302
302
|
// outline: `2px solid ${theme.colors.sidebar.background}`,
|
|
303
303
|
borderRadius: "50%",
|
|
@@ -314,7 +314,7 @@ function AvatarStack({
|
|
|
314
314
|
return /* @__PURE__ */ import_react4.default.createElement(Stack.H, null, childrenArray.map((child, index) => {
|
|
315
315
|
if (index === 0)
|
|
316
316
|
return child;
|
|
317
|
-
return /* @__PURE__ */ import_react4.default.createElement(AvatarStackItemWrapper, { size: size2, key: index }, child);
|
|
317
|
+
return /* @__PURE__ */ import_react4.default.createElement(AvatarStackItemWrapper, { $size: size2, key: index }, child);
|
|
318
318
|
}));
|
|
319
319
|
}
|
|
320
320
|
|
|
@@ -352,48 +352,49 @@ var Tooltip = (0, import_react5.memo)(function Tooltip2({ children, content }) {
|
|
|
352
352
|
var ButtonElement = import_styled_components5.default.button(
|
|
353
353
|
({
|
|
354
354
|
theme,
|
|
355
|
-
active,
|
|
355
|
+
$active,
|
|
356
356
|
disabled,
|
|
357
|
-
variant,
|
|
358
|
-
size
|
|
359
|
-
flex,
|
|
360
|
-
defaultBackground = theme.colors.inputBackground
|
|
357
|
+
$variant,
|
|
358
|
+
$size,
|
|
359
|
+
$flex,
|
|
360
|
+
$defaultBackground = theme.colors.inputBackground
|
|
361
361
|
}) => ({
|
|
362
|
-
|
|
362
|
+
...$size === "large" ? theme.textStyles.heading4 : theme.textStyles.button,
|
|
363
363
|
textDecoration: "none",
|
|
364
364
|
lineHeight: "1",
|
|
365
|
-
flex: flex ?? "0 0 auto",
|
|
365
|
+
flex: $flex ?? "0 0 auto",
|
|
366
366
|
position: "relative",
|
|
367
367
|
border: "0",
|
|
368
368
|
outline: "none",
|
|
369
369
|
WebkitAppRegion: "no-drag",
|
|
370
370
|
userSelect: "none",
|
|
371
|
-
minWidth: variant === "normal" ? "31px" : void 0,
|
|
371
|
+
minWidth: $variant === "normal" ? "31px" : void 0,
|
|
372
372
|
textAlign: "left",
|
|
373
373
|
borderRadius: "4px",
|
|
374
|
-
paddingTop: variant === "none" ? "0px" : "4px",
|
|
375
|
-
paddingRight: variant === "none" ? "0px" : variant === "thin" ? "1px" : "8px",
|
|
376
|
-
paddingBottom: variant === "none" ? "0px" : "4px",
|
|
377
|
-
paddingLeft: variant === "none" ? "0px" : variant === "thin" ? "1px" : "8px",
|
|
378
|
-
|
|
374
|
+
paddingTop: $variant === "none" ? "0px" : "4px",
|
|
375
|
+
paddingRight: $variant === "none" ? "0px" : $variant === "thin" ? "1px" : "8px",
|
|
376
|
+
paddingBottom: $variant === "none" ? "0px" : "4px",
|
|
377
|
+
paddingLeft: $variant === "none" ? "0px" : $variant === "thin" ? "1px" : "8px",
|
|
378
|
+
...$size === "large" && {
|
|
379
379
|
paddingTop: "12px",
|
|
380
380
|
paddingRight: "16px",
|
|
381
381
|
paddingBottom: "12px",
|
|
382
382
|
paddingLeft: "16px"
|
|
383
383
|
},
|
|
384
|
-
background: active ? theme.colors.primary : variant === "primaryGradient" ? `linear-gradient(90deg, ${theme.colors.primary}, ${theme.colors.primaryLight})` : variant === "none" || variant === "thin" ? "transparent" : defaultBackground,
|
|
385
|
-
color: active ? "white" : theme.colors.text,
|
|
384
|
+
background: $active ? theme.colors.primary : $variant === "primaryGradient" ? `linear-gradient(90deg, ${theme.colors.primary}, ${theme.colors.primaryLight})` : $variant === "none" || $variant === "thin" ? "transparent" : $defaultBackground,
|
|
385
|
+
color: $active ? "white" : theme.colors.text,
|
|
386
386
|
opacity: disabled ? 0.25 : 1,
|
|
387
387
|
"&:focus": {
|
|
388
|
-
|
|
388
|
+
outline: `2px solid ${theme.colors.primary}`,
|
|
389
|
+
boxShadow: `0 0 0 1px ${theme.colors.popover.background} inset`
|
|
389
390
|
},
|
|
390
391
|
"&:hover": {
|
|
391
|
-
background: variant === "primaryGradient" || active ? theme.colors.primaryLight : theme.colors.inputBackgroundLight
|
|
392
|
+
background: $variant === "primaryGradient" || $active ? theme.colors.primaryLight : theme.colors.inputBackgroundLight
|
|
392
393
|
},
|
|
393
394
|
"&:active": {
|
|
394
|
-
background: variant === "primaryGradient" || active ? theme.colors.primary : theme.colors.activeBackground
|
|
395
|
+
background: $variant === "primaryGradient" || $active ? theme.colors.primary : theme.colors.activeBackground
|
|
395
396
|
},
|
|
396
|
-
|
|
397
|
+
...$variant === "primary" && {
|
|
397
398
|
background: theme.colors.primary,
|
|
398
399
|
color: "white",
|
|
399
400
|
"&:hover": {
|
|
@@ -403,7 +404,7 @@ var ButtonElement = import_styled_components5.default.button(
|
|
|
403
404
|
background: theme.colors.primary
|
|
404
405
|
}
|
|
405
406
|
},
|
|
406
|
-
|
|
407
|
+
...$variant === "secondary" && {
|
|
407
408
|
background: theme.colors.secondary,
|
|
408
409
|
color: "white",
|
|
409
410
|
"&:hover": {
|
|
@@ -413,7 +414,7 @@ var ButtonElement = import_styled_components5.default.button(
|
|
|
413
414
|
background: theme.colors.secondary
|
|
414
415
|
}
|
|
415
416
|
},
|
|
416
|
-
|
|
417
|
+
...$variant === "secondaryBright" && {
|
|
417
418
|
background: "#0ab557",
|
|
418
419
|
color: "white",
|
|
419
420
|
"&:hover": {
|
|
@@ -423,7 +424,7 @@ var ButtonElement = import_styled_components5.default.button(
|
|
|
423
424
|
opacity: 0.9
|
|
424
425
|
}
|
|
425
426
|
},
|
|
426
|
-
|
|
427
|
+
...$variant === "white" && {
|
|
427
428
|
background: "white",
|
|
428
429
|
"&:hover": {
|
|
429
430
|
opacity: 0.8
|
|
@@ -432,7 +433,7 @@ var ButtonElement = import_styled_components5.default.button(
|
|
|
432
433
|
opacity: 0.9
|
|
433
434
|
}
|
|
434
435
|
},
|
|
435
|
-
|
|
436
|
+
...$variant === "floating" && {
|
|
436
437
|
background: "white",
|
|
437
438
|
color: theme.colors.text,
|
|
438
439
|
boxShadow: "0 1px 2px rgba(0, 0, 0, 0.1)",
|
|
@@ -483,13 +484,13 @@ var Button = (0, import_react6.forwardRef)(function Button2({
|
|
|
483
484
|
id,
|
|
484
485
|
className,
|
|
485
486
|
style: style3,
|
|
486
|
-
flex,
|
|
487
|
+
$flex: flex,
|
|
487
488
|
tabIndex,
|
|
488
|
-
active,
|
|
489
|
+
$active: active,
|
|
489
490
|
disabled,
|
|
490
|
-
variant,
|
|
491
|
-
size: size2,
|
|
492
|
-
defaultBackground,
|
|
491
|
+
$variant: variant,
|
|
492
|
+
$size: size2,
|
|
493
|
+
$defaultBackground: defaultBackground,
|
|
493
494
|
onClick,
|
|
494
495
|
onDoubleClick: (0, import_react6.useCallback)((event) => {
|
|
495
496
|
event.stopPropagation();
|
|
@@ -503,12 +504,12 @@ var Button = (0, import_react6.forwardRef)(function Button2({
|
|
|
503
504
|
|
|
504
505
|
// src/components/Chip.tsx
|
|
505
506
|
var import_noya_icons3 = require("@noya-app/noya-icons");
|
|
506
|
-
var
|
|
507
|
+
var import_react36 = __toESM(require("react"));
|
|
507
508
|
var import_styled_components16 = __toESM(require("styled-components"));
|
|
508
509
|
|
|
509
510
|
// src/contexts/DesignSystemConfiguration.tsx
|
|
510
511
|
var import_noya_keymap3 = require("@noya-app/noya-keymap");
|
|
511
|
-
var
|
|
512
|
+
var import_react35 = __toESM(require("react"));
|
|
512
513
|
var import_styled_components15 = require("styled-components");
|
|
513
514
|
|
|
514
515
|
// src/components/Toast.tsx
|
|
@@ -821,24 +822,35 @@ var sizes = {
|
|
|
821
822
|
};
|
|
822
823
|
|
|
823
824
|
// src/contexts/DialogContext.tsx
|
|
824
|
-
var
|
|
825
|
+
var import_react33 = __toESM(require("react"));
|
|
825
826
|
var import_styled_components14 = __toESM(require("styled-components"));
|
|
826
827
|
|
|
827
828
|
// src/components/Dialog.tsx
|
|
828
829
|
var DialogPrimitive = __toESM(require("@radix-ui/react-dialog"));
|
|
829
|
-
var
|
|
830
|
+
var import_react10 = __toESM(require("react"));
|
|
830
831
|
var import_styled_components9 = __toESM(require("styled-components"));
|
|
831
832
|
|
|
832
833
|
// src/components/Spacer.tsx
|
|
834
|
+
var import_react9 = __toESM(require("react"));
|
|
833
835
|
var import_styled_components8 = __toESM(require("styled-components"));
|
|
834
|
-
var
|
|
835
|
-
display: inline ? "inline-block" : "block",
|
|
836
|
-
|
|
836
|
+
var SpacerVertical_ = import_styled_components8.default.span(({ $size, $inline }) => ({
|
|
837
|
+
display: $inline ? "inline-block" : "block",
|
|
838
|
+
...$size === void 0 ? { flex: 1 } : { minHeight: $size }
|
|
837
839
|
}));
|
|
838
|
-
var
|
|
839
|
-
|
|
840
|
-
|
|
840
|
+
var SpacerVertical = (0, import_react9.forwardRef)(
|
|
841
|
+
({ size: size2, inline, ...props }, ref) => {
|
|
842
|
+
return /* @__PURE__ */ import_react9.default.createElement(SpacerVertical_, { $size: size2, $inline: inline, ...props, ref });
|
|
843
|
+
}
|
|
844
|
+
);
|
|
845
|
+
var SpacerHorizontal_ = import_styled_components8.default.span(({ $size, $inline }) => ({
|
|
846
|
+
display: $inline ? "inline-block" : "block",
|
|
847
|
+
...$size === void 0 ? { flex: 1 } : { minWidth: $size }
|
|
841
848
|
}));
|
|
849
|
+
var SpacerHorizontal = (0, import_react9.forwardRef)(
|
|
850
|
+
({ size: size2, inline, ...props }, ref) => {
|
|
851
|
+
return /* @__PURE__ */ import_react9.default.createElement(SpacerHorizontal_, { $size: size2, $inline: inline, ...props, ref });
|
|
852
|
+
}
|
|
853
|
+
);
|
|
842
854
|
var Spacer;
|
|
843
855
|
((Spacer2) => {
|
|
844
856
|
Spacer2.Vertical = SpacerVertical;
|
|
@@ -891,7 +903,7 @@ var CloseButtonContainer = import_styled_components9.default.div(({ theme }) =>
|
|
|
891
903
|
// boxShadow: `0 0 2px rgba(0, 0, 0, 0.2)`,
|
|
892
904
|
border: `1px solid rgba(128,128,128,0.2)`
|
|
893
905
|
}));
|
|
894
|
-
var Dialog = (0,
|
|
906
|
+
var Dialog = (0, import_react10.forwardRef)(function Dialog2({
|
|
895
907
|
children,
|
|
896
908
|
title,
|
|
897
909
|
description,
|
|
@@ -901,15 +913,15 @@ var Dialog = (0, import_react9.forwardRef)(function Dialog2({
|
|
|
901
913
|
onOpenAutoFocus,
|
|
902
914
|
closeOnInteractOutside = true
|
|
903
915
|
}, forwardedRef) {
|
|
904
|
-
const contentRef = (0,
|
|
905
|
-
(0,
|
|
916
|
+
const contentRef = (0, import_react10.useRef)(null);
|
|
917
|
+
(0, import_react10.useImperativeHandle)(forwardedRef, () => ({
|
|
906
918
|
containsElement(element) {
|
|
907
919
|
if (!contentRef.current)
|
|
908
920
|
return false;
|
|
909
921
|
return contentRef.current.contains(element);
|
|
910
922
|
}
|
|
911
923
|
}));
|
|
912
|
-
return /* @__PURE__ */
|
|
924
|
+
return /* @__PURE__ */ import_react10.default.createElement(DialogPrimitive.Root, { open, onOpenChange }, /* @__PURE__ */ import_react10.default.createElement(StyledOverlay, null), /* @__PURE__ */ import_react10.default.createElement(
|
|
913
925
|
StyledContent,
|
|
914
926
|
{
|
|
915
927
|
ref: contentRef,
|
|
@@ -924,14 +936,14 @@ var Dialog = (0, import_react9.forwardRef)(function Dialog2({
|
|
|
924
936
|
}
|
|
925
937
|
}
|
|
926
938
|
},
|
|
927
|
-
/* @__PURE__ */
|
|
928
|
-
title && /* @__PURE__ */
|
|
929
|
-
description && /* @__PURE__ */
|
|
939
|
+
/* @__PURE__ */ import_react10.default.createElement(CloseButtonContainer, null, /* @__PURE__ */ import_react10.default.createElement(DialogPrimitive.Close, { asChild: true }, /* @__PURE__ */ import_react10.default.createElement(IconButton, { iconName: "Cross1Icon" }))),
|
|
940
|
+
title && /* @__PURE__ */ import_react10.default.createElement(import_react10.default.Fragment, null, /* @__PURE__ */ import_react10.default.createElement(StyledTitle, null, title), /* @__PURE__ */ import_react10.default.createElement(Spacer.Vertical, { size: description ? 10 : 20 })),
|
|
941
|
+
description && /* @__PURE__ */ import_react10.default.createElement(import_react10.default.Fragment, null, /* @__PURE__ */ import_react10.default.createElement(Spacer.Vertical, { size: 10 }), /* @__PURE__ */ import_react10.default.createElement(StyledDescription, null, description), /* @__PURE__ */ import_react10.default.createElement(Spacer.Vertical, { size: 20 })),
|
|
930
942
|
children
|
|
931
943
|
));
|
|
932
944
|
});
|
|
933
|
-
var FullscreenDialog = (0,
|
|
934
|
-
return /* @__PURE__ */
|
|
945
|
+
var FullscreenDialog = (0, import_react10.forwardRef)(function FullscreenDialog2({ style: style3, ...rest }, forwardedRef) {
|
|
946
|
+
return /* @__PURE__ */ import_react10.default.createElement(
|
|
935
947
|
Dialog,
|
|
936
948
|
{
|
|
937
949
|
ref: forwardedRef,
|
|
@@ -955,16 +967,15 @@ var FullscreenDialog = (0, import_react9.forwardRef)(function FullscreenDialog2(
|
|
|
955
967
|
|
|
956
968
|
// src/components/InputField.tsx
|
|
957
969
|
var import_noya_icons2 = require("@noya-app/noya-icons");
|
|
958
|
-
var import_noya_utils5 = require("@noya-app/noya-utils");
|
|
959
970
|
|
|
960
971
|
// ../noya-react-utils/src/components/AutoSizer.tsx
|
|
961
|
-
var
|
|
972
|
+
var import_react11 = __toESM(require("react"));
|
|
962
973
|
|
|
963
974
|
// ../noya-react-utils/src/hooks/useSize.ts
|
|
964
|
-
var
|
|
975
|
+
var React10 = __toESM(require("react"));
|
|
965
976
|
function useSize(refToObserve, dimensions = "both") {
|
|
966
|
-
const [size2, setSize] =
|
|
967
|
-
|
|
977
|
+
const [size2, setSize] = React10.useState(void 0);
|
|
978
|
+
React10.useEffect(() => {
|
|
968
979
|
if (refToObserve.current) {
|
|
969
980
|
const elementToObserve = refToObserve.current;
|
|
970
981
|
const resizeObserver = new ResizeObserver((entries) => {
|
|
@@ -1011,37 +1022,37 @@ var style = {
|
|
|
1011
1022
|
flex: "1 0 0",
|
|
1012
1023
|
flexDirection: "column"
|
|
1013
1024
|
};
|
|
1014
|
-
var AutoSizer = (0,
|
|
1025
|
+
var AutoSizer = (0, import_react11.memo)(function AutoSizer2({
|
|
1015
1026
|
children,
|
|
1016
1027
|
className
|
|
1017
1028
|
}) {
|
|
1018
|
-
const containerRef = (0,
|
|
1029
|
+
const containerRef = (0, import_react11.useRef)(null);
|
|
1019
1030
|
const containerSize = useSize(containerRef);
|
|
1020
|
-
return /* @__PURE__ */
|
|
1031
|
+
return /* @__PURE__ */ import_react11.default.createElement("div", { ref: containerRef, style, className }, containerSize && containerSize.width > 0 && containerSize.height > 0 && children(containerSize));
|
|
1021
1032
|
});
|
|
1022
|
-
var SingleDimensionAutoSizer = (0,
|
|
1033
|
+
var SingleDimensionAutoSizer = (0, import_react11.memo)(function SingleDimensionAutoSizer2({
|
|
1023
1034
|
children,
|
|
1024
1035
|
dimension,
|
|
1025
1036
|
className
|
|
1026
1037
|
}) {
|
|
1027
|
-
const containerRef = (0,
|
|
1038
|
+
const containerRef = (0, import_react11.useRef)(null);
|
|
1028
1039
|
const containerSize = useSize(containerRef, dimension);
|
|
1029
|
-
return /* @__PURE__ */
|
|
1040
|
+
return /* @__PURE__ */ import_react11.default.createElement("div", { ref: containerRef, style, className }, containerSize && containerSize[dimension] > 0 && children(containerSize[dimension]));
|
|
1030
1041
|
});
|
|
1031
1042
|
|
|
1032
1043
|
// ../noya-react-utils/src/components/FileDropTarget.tsx
|
|
1033
|
-
var
|
|
1044
|
+
var import_react13 = __toESM(require("react"));
|
|
1034
1045
|
|
|
1035
1046
|
// ../noya-react-utils/src/hooks/useFileDropTarget.ts
|
|
1036
|
-
var
|
|
1047
|
+
var import_react12 = require("react");
|
|
1037
1048
|
function useFileDropTarget(dropEvent) {
|
|
1038
|
-
const [isDropTargetActive, setIsDropTargetActive] = (0,
|
|
1039
|
-
const handleDragEvent = (0,
|
|
1049
|
+
const [isDropTargetActive, setIsDropTargetActive] = (0, import_react12.useState)(false);
|
|
1050
|
+
const handleDragEvent = (0, import_react12.useCallback)((event, on) => {
|
|
1040
1051
|
if (on !== void 0)
|
|
1041
1052
|
setIsDropTargetActive(on);
|
|
1042
1053
|
event.preventDefault();
|
|
1043
1054
|
}, []);
|
|
1044
|
-
const handleDropEvent = (0,
|
|
1055
|
+
const handleDropEvent = (0, import_react12.useCallback)(
|
|
1045
1056
|
(event) => {
|
|
1046
1057
|
dropEvent(event);
|
|
1047
1058
|
setIsDropTargetActive(false);
|
|
@@ -1064,12 +1075,12 @@ function isSupportedFile(file, supportedFileTypes) {
|
|
|
1064
1075
|
return supportedFileTypes.includes(file.type) || file.type === "" && file.name.endsWith(".sketch");
|
|
1065
1076
|
}
|
|
1066
1077
|
var style2 = { display: "flex", flex: 1 };
|
|
1067
|
-
var FileDropTarget = (0,
|
|
1078
|
+
var FileDropTarget = (0, import_react13.memo)(function FileDropTarget2({
|
|
1068
1079
|
children,
|
|
1069
1080
|
onDropFiles,
|
|
1070
1081
|
supportedFileTypes
|
|
1071
1082
|
}) {
|
|
1072
|
-
const handleFile = (0,
|
|
1083
|
+
const handleFile = (0, import_react13.useCallback)(
|
|
1073
1084
|
(event) => {
|
|
1074
1085
|
event.preventDefault();
|
|
1075
1086
|
const offsetPoint = {
|
|
@@ -1102,51 +1113,51 @@ var FileDropTarget = (0, import_react12.memo)(function FileDropTarget2({
|
|
|
1102
1113
|
[onDropFiles, supportedFileTypes]
|
|
1103
1114
|
);
|
|
1104
1115
|
const { dropTargetProps, isDropTargetActive } = useFileDropTarget(handleFile);
|
|
1105
|
-
return /* @__PURE__ */
|
|
1116
|
+
return /* @__PURE__ */ import_react13.default.createElement("div", { style: style2, ...dropTargetProps }, typeof children === "function" ? children(isDropTargetActive) : children);
|
|
1106
1117
|
});
|
|
1107
1118
|
|
|
1108
1119
|
// ../noya-react-utils/src/hooks/useDeepArray.ts
|
|
1109
1120
|
var import_noya_utils = require("@noya-app/noya-utils");
|
|
1110
|
-
var
|
|
1121
|
+
var import_react14 = require("react");
|
|
1111
1122
|
|
|
1112
1123
|
// ../noya-react-utils/src/hooks/useDeepState.ts
|
|
1113
1124
|
var import_noya_utils2 = require("@noya-app/noya-utils");
|
|
1114
|
-
var
|
|
1125
|
+
var import_react15 = require("react");
|
|
1115
1126
|
|
|
1116
1127
|
// ../noya-react-utils/src/hooks/useFetch.ts
|
|
1117
|
-
var
|
|
1128
|
+
var import_react16 = require("react");
|
|
1118
1129
|
|
|
1119
1130
|
// ../noya-react-utils/src/hooks/useIsMounted.ts
|
|
1120
|
-
var
|
|
1131
|
+
var import_react17 = require("react");
|
|
1121
1132
|
|
|
1122
1133
|
// ../noya-react-utils/src/hooks/useLateReference.ts
|
|
1123
|
-
var
|
|
1134
|
+
var import_react18 = require("react");
|
|
1124
1135
|
|
|
1125
1136
|
// ../noya-react-utils/src/hooks/useLazyValue.ts
|
|
1126
|
-
var
|
|
1137
|
+
var import_react19 = require("react");
|
|
1127
1138
|
|
|
1128
1139
|
// ../noya-react-utils/src/hooks/useMutableState.ts
|
|
1129
|
-
var
|
|
1140
|
+
var import_react20 = require("react");
|
|
1130
1141
|
|
|
1131
1142
|
// ../noya-react-utils/src/hooks/usePersistentState.ts
|
|
1132
|
-
var
|
|
1143
|
+
var import_react21 = require("react");
|
|
1133
1144
|
|
|
1134
1145
|
// ../noya-react-utils/src/hooks/usePixelRatio.ts
|
|
1135
|
-
var
|
|
1146
|
+
var import_react22 = require("react");
|
|
1136
1147
|
|
|
1137
1148
|
// ../noya-react-utils/src/hooks/useShallowArray.ts
|
|
1138
1149
|
var import_noya_utils3 = require("@noya-app/noya-utils");
|
|
1139
|
-
var
|
|
1150
|
+
var import_react23 = require("react");
|
|
1140
1151
|
|
|
1141
1152
|
// ../noya-react-utils/src/hooks/useStableCallback.ts
|
|
1142
|
-
var
|
|
1153
|
+
var import_react24 = require("react");
|
|
1143
1154
|
|
|
1144
1155
|
// ../noya-react-utils/src/hooks/useSystemColorScheme.ts
|
|
1145
|
-
var
|
|
1156
|
+
var import_react25 = require("react");
|
|
1146
1157
|
|
|
1147
1158
|
// ../noya-react-utils/src/hooks/useUrlHashParameters.ts
|
|
1148
1159
|
var import_noya_utils4 = require("@noya-app/noya-utils");
|
|
1149
|
-
var
|
|
1160
|
+
var import_react26 = require("react");
|
|
1150
1161
|
|
|
1151
1162
|
// ../emitter/src/index.ts
|
|
1152
1163
|
var Emitter = class {
|
|
@@ -1237,7 +1248,7 @@ function assignRef(ref, value) {
|
|
|
1237
1248
|
}
|
|
1238
1249
|
|
|
1239
1250
|
// src/components/InputField.tsx
|
|
1240
|
-
var
|
|
1251
|
+
var import_react32 = __toESM(require("react"));
|
|
1241
1252
|
var import_styled_components13 = __toESM(require("styled-components"));
|
|
1242
1253
|
|
|
1243
1254
|
// src/utils/handleNudge.ts
|
|
@@ -1268,12 +1279,12 @@ function handleNudge(e) {
|
|
|
1268
1279
|
var import_noya_icons = require("@noya-app/noya-icons");
|
|
1269
1280
|
var import_noya_keymap2 = require("@noya-app/noya-keymap");
|
|
1270
1281
|
var RadixDropdownMenu = __toESM(require("@radix-ui/react-dropdown-menu"));
|
|
1271
|
-
var
|
|
1282
|
+
var import_react28 = __toESM(require("react"));
|
|
1272
1283
|
var import_styled_components11 = __toESM(require("styled-components"));
|
|
1273
1284
|
|
|
1274
1285
|
// src/components/internal/Menu.tsx
|
|
1275
1286
|
var import_noya_keymap = require("@noya-app/noya-keymap");
|
|
1276
|
-
var
|
|
1287
|
+
var import_react27 = __toESM(require("react"));
|
|
1277
1288
|
var import_styled_components10 = __toESM(require("styled-components"));
|
|
1278
1289
|
var SEPARATOR_ITEM = "separator";
|
|
1279
1290
|
var CHECKBOX_WIDTH = 15;
|
|
@@ -1351,34 +1362,31 @@ function getKeyboardShortcutsForMenuItems(menuItems, onSelect) {
|
|
|
1351
1362
|
);
|
|
1352
1363
|
}
|
|
1353
1364
|
var ShortcutElement = import_styled_components10.default.kbd(
|
|
1354
|
-
({
|
|
1355
|
-
theme,
|
|
1356
|
-
fixedWidth
|
|
1357
|
-
}) => ({
|
|
1365
|
+
({ theme, $fixedWidth }) => ({
|
|
1358
1366
|
...theme.textStyles.small,
|
|
1359
1367
|
color: theme.colors.textDisabled,
|
|
1360
|
-
|
|
1368
|
+
...$fixedWidth && {
|
|
1361
1369
|
width: "0.9rem",
|
|
1362
1370
|
textAlign: "center"
|
|
1363
1371
|
}
|
|
1364
1372
|
})
|
|
1365
1373
|
);
|
|
1366
|
-
var KeyboardShortcut = (0,
|
|
1374
|
+
var KeyboardShortcut = (0, import_react27.memo)(function KeyboardShortcut2({
|
|
1367
1375
|
shortcut
|
|
1368
1376
|
}) {
|
|
1369
1377
|
const platform = useDesignSystemConfiguration().platform;
|
|
1370
1378
|
const { keys, separator } = (0, import_noya_keymap.getShortcutDisplayParts)(shortcut, platform);
|
|
1371
|
-
const keyElements = keys.map((key) => /* @__PURE__ */
|
|
1379
|
+
const keyElements = keys.map((key) => /* @__PURE__ */ import_react27.default.createElement(
|
|
1372
1380
|
ShortcutElement,
|
|
1373
1381
|
{
|
|
1374
1382
|
key,
|
|
1375
|
-
fixedWidth: platform === "mac" && key.length === 1
|
|
1383
|
+
$fixedWidth: platform === "mac" && key.length === 1
|
|
1376
1384
|
},
|
|
1377
1385
|
key
|
|
1378
1386
|
));
|
|
1379
|
-
return /* @__PURE__ */
|
|
1387
|
+
return /* @__PURE__ */ import_react27.default.createElement(import_react27.default.Fragment, null, separator ? withSeparatorElements(
|
|
1380
1388
|
keyElements,
|
|
1381
|
-
/* @__PURE__ */
|
|
1389
|
+
/* @__PURE__ */ import_react27.default.createElement(ShortcutElement, null, separator)
|
|
1382
1390
|
) : keyElements);
|
|
1383
1391
|
});
|
|
1384
1392
|
|
|
@@ -1393,7 +1401,7 @@ var CheckboxItemElement = (0, import_styled_components11.default)(RadixDropdownM
|
|
|
1393
1401
|
var StyledItemIndicator = (0, import_styled_components11.default)(RadixDropdownMenu.ItemIndicator)(
|
|
1394
1402
|
styles.itemIndicatorStyle
|
|
1395
1403
|
);
|
|
1396
|
-
var DropdownMenuItem = (0,
|
|
1404
|
+
var DropdownMenuItem = (0, import_react28.memo)(function ContextMenuItem({
|
|
1397
1405
|
value,
|
|
1398
1406
|
children,
|
|
1399
1407
|
onSelect,
|
|
@@ -1404,27 +1412,27 @@ var DropdownMenuItem = (0, import_react27.memo)(function ContextMenuItem({
|
|
|
1404
1412
|
items,
|
|
1405
1413
|
shortcut
|
|
1406
1414
|
}) {
|
|
1407
|
-
const handleSelectItem = (0,
|
|
1415
|
+
const handleSelectItem = (0, import_react28.useCallback)(() => {
|
|
1408
1416
|
if (!value)
|
|
1409
1417
|
return;
|
|
1410
1418
|
onSelect(value);
|
|
1411
1419
|
}, [onSelect, value]);
|
|
1412
1420
|
if (checked) {
|
|
1413
|
-
return /* @__PURE__ */
|
|
1421
|
+
return /* @__PURE__ */ import_react28.default.createElement(
|
|
1414
1422
|
CheckboxItemElement,
|
|
1415
1423
|
{
|
|
1416
1424
|
checked,
|
|
1417
1425
|
disabled,
|
|
1418
1426
|
onSelect: handleSelectItem
|
|
1419
1427
|
},
|
|
1420
|
-
/* @__PURE__ */
|
|
1421
|
-
icon && /* @__PURE__ */
|
|
1428
|
+
/* @__PURE__ */ import_react28.default.createElement(StyledItemIndicator, null, /* @__PURE__ */ import_react28.default.createElement(import_noya_icons.CheckIcon, null)),
|
|
1429
|
+
icon && /* @__PURE__ */ import_react28.default.createElement(import_react28.default.Fragment, null, icon, /* @__PURE__ */ import_react28.default.createElement(Spacer.Horizontal, { size: 8 })),
|
|
1422
1430
|
children
|
|
1423
1431
|
);
|
|
1424
1432
|
}
|
|
1425
|
-
const element = /* @__PURE__ */
|
|
1433
|
+
const element = /* @__PURE__ */ import_react28.default.createElement(ItemElement, { disabled, onSelect: handleSelectItem }, indented && /* @__PURE__ */ import_react28.default.createElement(Spacer.Horizontal, { size: CHECKBOX_WIDTH - CHECKBOX_RIGHT_INSET }), icon && /* @__PURE__ */ import_react28.default.createElement(import_react28.default.Fragment, null, icon, /* @__PURE__ */ import_react28.default.createElement(Spacer.Horizontal, { size: 8 })), children, shortcut && /* @__PURE__ */ import_react28.default.createElement(import_react28.default.Fragment, null, /* @__PURE__ */ import_react28.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react28.default.createElement(Spacer.Horizontal, { size: 24 }), /* @__PURE__ */ import_react28.default.createElement(KeyboardShortcut, { shortcut })), items && items.length > 0 && /* @__PURE__ */ import_react28.default.createElement(import_react28.default.Fragment, null, /* @__PURE__ */ import_react28.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react28.default.createElement(Spacer.Horizontal, { size: 16 }), /* @__PURE__ */ import_react28.default.createElement(import_noya_icons.ChevronRightIcon, null)));
|
|
1426
1434
|
if (items && items.length > 0) {
|
|
1427
|
-
return /* @__PURE__ */
|
|
1435
|
+
return /* @__PURE__ */ import_react28.default.createElement(
|
|
1428
1436
|
DropdownMenuRoot,
|
|
1429
1437
|
{
|
|
1430
1438
|
isNested: true,
|
|
@@ -1440,7 +1448,7 @@ var DropdownMenuItem = (0, import_react27.memo)(function ContextMenuItem({
|
|
|
1440
1448
|
});
|
|
1441
1449
|
var Content5 = (0, import_styled_components11.default)(RadixDropdownMenu.Content)(styles.contentStyle);
|
|
1442
1450
|
var SubContent2 = (0, import_styled_components11.default)(RadixDropdownMenu.SubContent)(styles.contentStyle);
|
|
1443
|
-
var DropdownMenuRoot = (0,
|
|
1451
|
+
var DropdownMenuRoot = (0, import_react28.forwardRef)(function DropdownMenuRoot2({
|
|
1444
1452
|
items,
|
|
1445
1453
|
children,
|
|
1446
1454
|
onSelect,
|
|
@@ -1458,7 +1466,7 @@ var DropdownMenuRoot = (0, import_react27.forwardRef)(function DropdownMenuRoot2
|
|
|
1458
1466
|
const hasCheckedItem = items.some(
|
|
1459
1467
|
(item) => item !== SEPARATOR_ITEM && item.checked
|
|
1460
1468
|
);
|
|
1461
|
-
const keymap = (0,
|
|
1469
|
+
const keymap = (0, import_react28.useMemo)(
|
|
1462
1470
|
() => isNested || shouldBindKeyboardShortcuts === false ? {} : getKeyboardShortcutsForMenuItems(items, onSelect),
|
|
1463
1471
|
[isNested, items, onSelect, shouldBindKeyboardShortcuts]
|
|
1464
1472
|
);
|
|
@@ -1466,8 +1474,8 @@ var DropdownMenuRoot = (0, import_react27.forwardRef)(function DropdownMenuRoot2
|
|
|
1466
1474
|
const RootComponent = isNested ? RadixDropdownMenu.Sub : RadixDropdownMenu.Root;
|
|
1467
1475
|
const TriggerComponent = isNested ? RadixDropdownMenu.SubTrigger : RadixDropdownMenu.Trigger;
|
|
1468
1476
|
const ContentComponent = isNested ? SubContent2 : Content5;
|
|
1469
|
-
const contentStyle = (0,
|
|
1470
|
-
return /* @__PURE__ */
|
|
1477
|
+
const contentStyle = (0, import_react28.useMemo)(() => ({ zIndex: 1e3 }), []);
|
|
1478
|
+
return /* @__PURE__ */ import_react28.default.createElement(RootComponent, { onOpenChange, open }, /* @__PURE__ */ import_react28.default.createElement(TriggerComponent, { ref: forwardedRef, asChild: true }, children), /* @__PURE__ */ import_react28.default.createElement(RadixDropdownMenu.Portal, null, /* @__PURE__ */ import_react28.default.createElement(
|
|
1471
1479
|
ContentComponent,
|
|
1472
1480
|
{
|
|
1473
1481
|
side,
|
|
@@ -1479,7 +1487,7 @@ var DropdownMenuRoot = (0, import_react27.forwardRef)(function DropdownMenuRoot2
|
|
|
1479
1487
|
...{ onCloseAutoFocus }
|
|
1480
1488
|
},
|
|
1481
1489
|
items.map(
|
|
1482
|
-
(item, index) => item === SEPARATOR_ITEM ? /* @__PURE__ */
|
|
1490
|
+
(item, index) => item === SEPARATOR_ITEM ? /* @__PURE__ */ import_react28.default.createElement(SeparatorElement, { key: index }) : /* @__PURE__ */ import_react28.default.createElement(
|
|
1483
1491
|
DropdownMenuItem,
|
|
1484
1492
|
{
|
|
1485
1493
|
key: item.value ?? index,
|
|
@@ -1497,14 +1505,14 @@ var DropdownMenuRoot = (0, import_react27.forwardRef)(function DropdownMenuRoot2
|
|
|
1497
1505
|
)
|
|
1498
1506
|
)));
|
|
1499
1507
|
});
|
|
1500
|
-
var DropdownMenu = (0,
|
|
1508
|
+
var DropdownMenu = (0, import_react28.memo)(DropdownMenuRoot);
|
|
1501
1509
|
|
|
1502
1510
|
// src/components/internal/TextInput.tsx
|
|
1503
1511
|
var import_react_compose_refs = require("@radix-ui/react-compose-refs");
|
|
1504
|
-
var
|
|
1512
|
+
var import_react30 = __toESM(require("react"));
|
|
1505
1513
|
|
|
1506
1514
|
// src/contexts/GlobalInputBlurContext.tsx
|
|
1507
|
-
var
|
|
1515
|
+
var import_react29 = require("react");
|
|
1508
1516
|
var defaultValue = /* @__PURE__ */ (() => {
|
|
1509
1517
|
const listeners = [];
|
|
1510
1518
|
const value = {
|
|
@@ -1525,14 +1533,14 @@ var defaultValue = /* @__PURE__ */ (() => {
|
|
|
1525
1533
|
};
|
|
1526
1534
|
return value;
|
|
1527
1535
|
})();
|
|
1528
|
-
var GlobalInputBlurContext = (0,
|
|
1536
|
+
var GlobalInputBlurContext = (0, import_react29.createContext)(defaultValue);
|
|
1529
1537
|
var GlobalInputBlurProvider = GlobalInputBlurContext.Provider;
|
|
1530
1538
|
var useGlobalInputBlur = () => {
|
|
1531
|
-
return (0,
|
|
1539
|
+
return (0, import_react29.useContext)(GlobalInputBlurContext);
|
|
1532
1540
|
};
|
|
1533
1541
|
function useGlobalInputBlurListener(f) {
|
|
1534
1542
|
const context = useGlobalInputBlur();
|
|
1535
|
-
(0,
|
|
1543
|
+
(0, import_react29.useEffect)(() => {
|
|
1536
1544
|
context.addListener(f);
|
|
1537
1545
|
return () => {
|
|
1538
1546
|
context.removeListener(f);
|
|
@@ -1544,8 +1552,8 @@ function useGlobalInputBlurTrigger() {
|
|
|
1544
1552
|
}
|
|
1545
1553
|
|
|
1546
1554
|
// src/components/internal/TextInput.tsx
|
|
1547
|
-
var ReadOnlyTextInput = (0,
|
|
1548
|
-
return /* @__PURE__ */
|
|
1555
|
+
var ReadOnlyTextInput = (0, import_react30.forwardRef)(function ReadOnlyTextInput2({ onKeyDown, onFocusChange, value, ...rest }, forwardedRef) {
|
|
1556
|
+
return /* @__PURE__ */ import_react30.default.createElement(
|
|
1549
1557
|
"input",
|
|
1550
1558
|
{
|
|
1551
1559
|
ref: forwardedRef,
|
|
@@ -1556,7 +1564,7 @@ var ReadOnlyTextInput = (0, import_react29.forwardRef)(function ReadOnlyTextInpu
|
|
|
1556
1564
|
}
|
|
1557
1565
|
);
|
|
1558
1566
|
});
|
|
1559
|
-
var ControlledTextInput = (0,
|
|
1567
|
+
var ControlledTextInput = (0, import_react30.forwardRef)(function ControlledTextInput2({
|
|
1560
1568
|
onKeyDown,
|
|
1561
1569
|
value,
|
|
1562
1570
|
onChange,
|
|
@@ -1565,28 +1573,28 @@ var ControlledTextInput = (0, import_react29.forwardRef)(function ControlledText
|
|
|
1565
1573
|
onFocusCapture,
|
|
1566
1574
|
...rest
|
|
1567
1575
|
}, forwardedRef) {
|
|
1568
|
-
const handleBlur = (0,
|
|
1576
|
+
const handleBlur = (0, import_react30.useCallback)(
|
|
1569
1577
|
(event) => {
|
|
1570
1578
|
onBlur?.(event);
|
|
1571
1579
|
onFocusChange?.(false);
|
|
1572
1580
|
},
|
|
1573
1581
|
[onBlur, onFocusChange]
|
|
1574
1582
|
);
|
|
1575
|
-
const handleFocusCapture = (0,
|
|
1583
|
+
const handleFocusCapture = (0, import_react30.useCallback)(
|
|
1576
1584
|
(event) => {
|
|
1577
1585
|
onFocusCapture?.(event);
|
|
1578
1586
|
onFocusChange?.(true);
|
|
1579
1587
|
},
|
|
1580
1588
|
[onFocusCapture, onFocusChange]
|
|
1581
1589
|
);
|
|
1582
|
-
return /* @__PURE__ */
|
|
1590
|
+
return /* @__PURE__ */ import_react30.default.createElement(
|
|
1583
1591
|
"input",
|
|
1584
1592
|
{
|
|
1585
1593
|
ref: forwardedRef,
|
|
1586
1594
|
...rest,
|
|
1587
1595
|
value,
|
|
1588
1596
|
onKeyDown,
|
|
1589
|
-
onChange: (0,
|
|
1597
|
+
onChange: (0, import_react30.useCallback)(
|
|
1590
1598
|
(event) => onChange(event.target.value),
|
|
1591
1599
|
[onChange]
|
|
1592
1600
|
),
|
|
@@ -1595,7 +1603,7 @@ var ControlledTextInput = (0, import_react29.forwardRef)(function ControlledText
|
|
|
1595
1603
|
}
|
|
1596
1604
|
);
|
|
1597
1605
|
});
|
|
1598
|
-
var SubmittableTextInput = (0,
|
|
1606
|
+
var SubmittableTextInput = (0, import_react30.forwardRef)(function SubmittableTextInput2({
|
|
1599
1607
|
onKeyDown,
|
|
1600
1608
|
value,
|
|
1601
1609
|
onSubmit,
|
|
@@ -1606,16 +1614,16 @@ var SubmittableTextInput = (0, import_react29.forwardRef)(function SubmittableTe
|
|
|
1606
1614
|
submitAutomaticallyAfterDelay,
|
|
1607
1615
|
...rest
|
|
1608
1616
|
}, forwardedRef) {
|
|
1609
|
-
const ref =
|
|
1610
|
-
const latestValue = (0,
|
|
1617
|
+
const ref = import_react30.default.useRef(null);
|
|
1618
|
+
const latestValue = (0, import_react30.useRef)(value);
|
|
1611
1619
|
latestValue.current = value;
|
|
1612
|
-
const userDidEdit = (0,
|
|
1613
|
-
const isSubmitTriggeredByEscapeKey = (0,
|
|
1614
|
-
const [internalValue, setInternalValue] = (0,
|
|
1615
|
-
(0,
|
|
1620
|
+
const userDidEdit = (0, import_react30.useRef)(false);
|
|
1621
|
+
const isSubmitTriggeredByEscapeKey = (0, import_react30.useRef)(false);
|
|
1622
|
+
const [internalValue, setInternalValue] = (0, import_react30.useState)("");
|
|
1623
|
+
(0, import_react30.useLayoutEffect)(() => {
|
|
1616
1624
|
setInternalValue(value);
|
|
1617
1625
|
}, [value]);
|
|
1618
|
-
const handleSubmit = (0,
|
|
1626
|
+
const handleSubmit = (0, import_react30.useCallback)(() => {
|
|
1619
1627
|
const submissionValue = isSubmitTriggeredByEscapeKey.current ? value : internalValue;
|
|
1620
1628
|
isSubmitTriggeredByEscapeKey.current = false;
|
|
1621
1629
|
if (submissionValue === value && !allowSubmittingWithSameValue)
|
|
@@ -1625,13 +1633,13 @@ var SubmittableTextInput = (0, import_react29.forwardRef)(function SubmittableTe
|
|
|
1625
1633
|
setInternalValue(latestValue.current);
|
|
1626
1634
|
}, [allowSubmittingWithSameValue, value, internalValue, onSubmit]);
|
|
1627
1635
|
useGlobalInputBlurListener(
|
|
1628
|
-
(0,
|
|
1636
|
+
(0, import_react30.useCallback)(() => {
|
|
1629
1637
|
if (ref.current !== document.activeElement)
|
|
1630
1638
|
return;
|
|
1631
1639
|
handleSubmit();
|
|
1632
1640
|
}, [handleSubmit])
|
|
1633
1641
|
);
|
|
1634
|
-
const handleKeyDown = (0,
|
|
1642
|
+
const handleKeyDown = (0, import_react30.useCallback)(
|
|
1635
1643
|
(event) => {
|
|
1636
1644
|
if (event.key === "Enter") {
|
|
1637
1645
|
handleSubmit();
|
|
@@ -1646,14 +1654,14 @@ var SubmittableTextInput = (0, import_react29.forwardRef)(function SubmittableTe
|
|
|
1646
1654
|
},
|
|
1647
1655
|
[onKeyDown, handleSubmit]
|
|
1648
1656
|
);
|
|
1649
|
-
const handleChange = (0,
|
|
1657
|
+
const handleChange = (0, import_react30.useCallback)(
|
|
1650
1658
|
(event) => {
|
|
1651
1659
|
userDidEdit.current = true;
|
|
1652
1660
|
setInternalValue(event.target.value);
|
|
1653
1661
|
},
|
|
1654
1662
|
[]
|
|
1655
1663
|
);
|
|
1656
|
-
const handleBlur = (0,
|
|
1664
|
+
const handleBlur = (0, import_react30.useCallback)(
|
|
1657
1665
|
(event) => {
|
|
1658
1666
|
onBlur?.(event);
|
|
1659
1667
|
onFocusChange?.(false);
|
|
@@ -1661,19 +1669,19 @@ var SubmittableTextInput = (0, import_react29.forwardRef)(function SubmittableTe
|
|
|
1661
1669
|
},
|
|
1662
1670
|
[onBlur, onFocusChange, handleSubmit]
|
|
1663
1671
|
);
|
|
1664
|
-
const handleFocusCapture = (0,
|
|
1672
|
+
const handleFocusCapture = (0, import_react30.useCallback)(
|
|
1665
1673
|
(event) => {
|
|
1666
1674
|
onFocusCapture?.(event);
|
|
1667
1675
|
onFocusChange?.(true);
|
|
1668
1676
|
},
|
|
1669
1677
|
[onFocusCapture, onFocusChange]
|
|
1670
1678
|
);
|
|
1671
|
-
const autoSubmitTimeoutRef = (0,
|
|
1679
|
+
const autoSubmitTimeoutRef = (0, import_react30.useRef)(
|
|
1672
1680
|
null
|
|
1673
1681
|
);
|
|
1674
|
-
const latestHandleSubmit = (0,
|
|
1682
|
+
const latestHandleSubmit = (0, import_react30.useRef)(handleSubmit);
|
|
1675
1683
|
latestHandleSubmit.current = handleSubmit;
|
|
1676
|
-
(0,
|
|
1684
|
+
(0, import_react30.useEffect)(() => {
|
|
1677
1685
|
if (submitAutomaticallyAfterDelay) {
|
|
1678
1686
|
if (autoSubmitTimeoutRef.current) {
|
|
1679
1687
|
clearTimeout(autoSubmitTimeoutRef.current);
|
|
@@ -1690,7 +1698,7 @@ var SubmittableTextInput = (0, import_react29.forwardRef)(function SubmittableTe
|
|
|
1690
1698
|
}
|
|
1691
1699
|
};
|
|
1692
1700
|
}, [internalValue, submitAutomaticallyAfterDelay]);
|
|
1693
|
-
return /* @__PURE__ */
|
|
1701
|
+
return /* @__PURE__ */ import_react30.default.createElement(
|
|
1694
1702
|
"input",
|
|
1695
1703
|
{
|
|
1696
1704
|
ref: (0, import_react_compose_refs.composeRefs)(ref, forwardedRef),
|
|
@@ -1703,13 +1711,13 @@ var SubmittableTextInput = (0, import_react29.forwardRef)(function SubmittableTe
|
|
|
1703
1711
|
}
|
|
1704
1712
|
);
|
|
1705
1713
|
});
|
|
1706
|
-
var TextInput_default = (0,
|
|
1714
|
+
var TextInput_default = (0, import_react30.forwardRef)(function TextInput(props, forwardedRef) {
|
|
1707
1715
|
const commonProps = {
|
|
1708
|
-
onPointerDown: (0,
|
|
1716
|
+
onPointerDown: (0, import_react30.useCallback)(
|
|
1709
1717
|
(event) => event.stopPropagation(),
|
|
1710
1718
|
[]
|
|
1711
1719
|
),
|
|
1712
|
-
onClick: (0,
|
|
1720
|
+
onClick: (0, import_react30.useCallback)(
|
|
1713
1721
|
(event) => event.stopPropagation(),
|
|
1714
1722
|
[]
|
|
1715
1723
|
),
|
|
@@ -1722,17 +1730,17 @@ var TextInput_default = (0, import_react29.forwardRef)(function TextInput(props,
|
|
|
1722
1730
|
...props
|
|
1723
1731
|
};
|
|
1724
1732
|
if ("readOnly" in commonProps) {
|
|
1725
|
-
return /* @__PURE__ */
|
|
1733
|
+
return /* @__PURE__ */ import_react30.default.createElement(ReadOnlyTextInput, { ref: forwardedRef, ...commonProps, readOnly: true });
|
|
1726
1734
|
} else if ("onChange" in commonProps) {
|
|
1727
|
-
return /* @__PURE__ */
|
|
1735
|
+
return /* @__PURE__ */ import_react30.default.createElement(ControlledTextInput, { ref: forwardedRef, ...commonProps });
|
|
1728
1736
|
} else {
|
|
1729
|
-
return /* @__PURE__ */
|
|
1737
|
+
return /* @__PURE__ */ import_react30.default.createElement(SubmittableTextInput, { ref: forwardedRef, ...commonProps });
|
|
1730
1738
|
}
|
|
1731
1739
|
});
|
|
1732
1740
|
|
|
1733
1741
|
// src/components/Popover.tsx
|
|
1734
1742
|
var PopoverPrimitive = __toESM(require("@radix-ui/react-popover"));
|
|
1735
|
-
var
|
|
1743
|
+
var import_react31 = __toESM(require("react"));
|
|
1736
1744
|
var import_styled_components12 = __toESM(require("styled-components"));
|
|
1737
1745
|
var ContentElement = (0, import_styled_components12.default)(PopoverPrimitive.Content)(({ theme, variant }) => ({
|
|
1738
1746
|
borderRadius: 4,
|
|
@@ -1779,7 +1787,7 @@ function Popover({
|
|
|
1779
1787
|
onFocusOutside,
|
|
1780
1788
|
onClickClose
|
|
1781
1789
|
}) {
|
|
1782
|
-
return /* @__PURE__ */
|
|
1790
|
+
return /* @__PURE__ */ import_react31.default.createElement(PopoverPrimitive.Root, { open, onOpenChange }, /* @__PURE__ */ import_react31.default.createElement(PopoverPrimitive.Trigger, { asChild: true }, trigger), /* @__PURE__ */ import_react31.default.createElement(PopoverPrimitive.Portal, null, /* @__PURE__ */ import_react31.default.createElement(
|
|
1783
1791
|
ContentElement,
|
|
1784
1792
|
{
|
|
1785
1793
|
variant,
|
|
@@ -1801,13 +1809,13 @@ function Popover({
|
|
|
1801
1809
|
}
|
|
1802
1810
|
},
|
|
1803
1811
|
children,
|
|
1804
|
-
showArrow && /* @__PURE__ */
|
|
1805
|
-
closable && /* @__PURE__ */
|
|
1812
|
+
showArrow && /* @__PURE__ */ import_react31.default.createElement(ArrowElement, null),
|
|
1813
|
+
closable && /* @__PURE__ */ import_react31.default.createElement(PopoverClose, null, /* @__PURE__ */ import_react31.default.createElement(IconButton, { iconName: "Cross2Icon", onClick: onClickClose }))
|
|
1806
1814
|
)));
|
|
1807
1815
|
}
|
|
1808
1816
|
|
|
1809
1817
|
// src/components/InputField.tsx
|
|
1810
|
-
var InputFieldContext = (0,
|
|
1818
|
+
var InputFieldContext = (0, import_react32.createContext)({
|
|
1811
1819
|
labelPosition: "end",
|
|
1812
1820
|
labelSize: 6,
|
|
1813
1821
|
hasLabel: false,
|
|
@@ -1817,29 +1825,29 @@ var InputFieldContext = (0, import_react31.createContext)({
|
|
|
1817
1825
|
onFocusChange: () => {
|
|
1818
1826
|
}
|
|
1819
1827
|
});
|
|
1820
|
-
var LabelContainer = import_styled_components13.default.label(({ theme, labelPosition, hasDropdown, pointerEvents }) => ({
|
|
1828
|
+
var LabelContainer = import_styled_components13.default.label(({ theme, $labelPosition, $hasDropdown, pointerEvents }) => ({
|
|
1821
1829
|
...theme.textStyles.label,
|
|
1822
1830
|
fontWeight: "bold",
|
|
1823
1831
|
color: theme.colors.textDisabled,
|
|
1824
1832
|
position: "absolute",
|
|
1825
1833
|
top: 0,
|
|
1826
|
-
right: labelPosition === "end" ? 0 : void 0,
|
|
1834
|
+
right: $labelPosition === "end" ? 0 : void 0,
|
|
1827
1835
|
bottom: 0,
|
|
1828
|
-
left: labelPosition === "start" ? 0 : void 0,
|
|
1836
|
+
left: $labelPosition === "start" ? 0 : void 0,
|
|
1829
1837
|
display: "flex",
|
|
1830
1838
|
alignItems: "center",
|
|
1831
1839
|
pointerEvents,
|
|
1832
1840
|
userSelect: "none",
|
|
1833
|
-
|
|
1841
|
+
...$labelPosition === "start" ? { justifyContent: "flex-start", paddingLeft: "6px" } : {
|
|
1834
1842
|
justifyContent: "flex-end",
|
|
1835
|
-
paddingRight: hasDropdown ? "16px" : "6px"
|
|
1843
|
+
paddingRight: $hasDropdown ? "16px" : "6px"
|
|
1836
1844
|
}
|
|
1837
1845
|
}));
|
|
1838
|
-
var InputFieldLabel = (0,
|
|
1839
|
-
(0,
|
|
1840
|
-
const { labelPosition, hasDropdown, setLabelWidth } = (0,
|
|
1841
|
-
const ref = (0,
|
|
1842
|
-
(0,
|
|
1846
|
+
var InputFieldLabel = (0, import_react32.memo)(
|
|
1847
|
+
(0, import_react32.forwardRef)(function InputFieldLabel2({ children = false, pointerEvents = "none", style: style3 }, forwardedRef) {
|
|
1848
|
+
const { labelPosition, hasDropdown, setLabelWidth } = (0, import_react32.useContext)(InputFieldContext);
|
|
1849
|
+
const ref = (0, import_react32.useRef)(null);
|
|
1850
|
+
(0, import_react32.useLayoutEffect)(() => {
|
|
1843
1851
|
if (!setLabelWidth)
|
|
1844
1852
|
return;
|
|
1845
1853
|
const width = ref.current?.getBoundingClientRect().width;
|
|
@@ -1847,7 +1855,7 @@ var InputFieldLabel = (0, import_react31.memo)(
|
|
|
1847
1855
|
return;
|
|
1848
1856
|
setLabelWidth(width);
|
|
1849
1857
|
}, [setLabelWidth]);
|
|
1850
|
-
return /* @__PURE__ */
|
|
1858
|
+
return /* @__PURE__ */ import_react32.default.createElement(
|
|
1851
1859
|
LabelContainer,
|
|
1852
1860
|
{
|
|
1853
1861
|
ref: (element) => {
|
|
@@ -1855,8 +1863,8 @@ var InputFieldLabel = (0, import_react31.memo)(
|
|
|
1855
1863
|
assignRef(forwardedRef, element);
|
|
1856
1864
|
},
|
|
1857
1865
|
pointerEvents,
|
|
1858
|
-
labelPosition,
|
|
1859
|
-
hasDropdown,
|
|
1866
|
+
$labelPosition: labelPosition,
|
|
1867
|
+
$hasDropdown: hasDropdown,
|
|
1860
1868
|
style: style3
|
|
1861
1869
|
},
|
|
1862
1870
|
children
|
|
@@ -1871,30 +1879,30 @@ var DropdownContainer = import_styled_components13.default.span(({ theme }) => (
|
|
|
1871
1879
|
display: "flex",
|
|
1872
1880
|
flexDirection: "column"
|
|
1873
1881
|
}));
|
|
1874
|
-
var InputFieldDropdownMenu = (0,
|
|
1875
|
-
const { size: size2 } = (0,
|
|
1876
|
-
const contentStyle = (0,
|
|
1882
|
+
var InputFieldDropdownMenu = (0, import_react32.memo)(function InputFieldDropdownMenu2({ id, items, onSelect, children }) {
|
|
1883
|
+
const { size: size2 } = (0, import_react32.useContext)(InputFieldContext);
|
|
1884
|
+
const contentStyle = (0, import_react32.useMemo)(
|
|
1877
1885
|
() => ({
|
|
1878
1886
|
margin: "-4px 0",
|
|
1879
1887
|
minHeight: size2 === "small" ? "15px" : void 0
|
|
1880
1888
|
}),
|
|
1881
1889
|
[size2]
|
|
1882
1890
|
);
|
|
1883
|
-
return /* @__PURE__ */
|
|
1891
|
+
return /* @__PURE__ */ import_react32.default.createElement(DropdownContainer, null, /* @__PURE__ */ import_react32.default.createElement(DropdownMenu, { items, onSelect }, children || /* @__PURE__ */ import_react32.default.createElement(Button, { id, variant: "thin", flex: "1", contentStyle }, /* @__PURE__ */ import_react32.default.createElement(import_noya_icons2.CaretDownIcon, null))));
|
|
1884
1892
|
});
|
|
1885
1893
|
var ButtonContainer = import_styled_components13.default.span(
|
|
1886
|
-
({ theme, size
|
|
1894
|
+
({ theme, $size }) => ({
|
|
1887
1895
|
position: "absolute",
|
|
1888
|
-
right:
|
|
1889
|
-
top:
|
|
1896
|
+
right: $size === "large" ? "9px" : $size === "medium" ? "4px" : "2px",
|
|
1897
|
+
top: $size === "large" ? "8px" : $size === "medium" ? "4px" : "2px"
|
|
1890
1898
|
})
|
|
1891
1899
|
);
|
|
1892
|
-
var InputFieldButton = (0,
|
|
1900
|
+
var InputFieldButton = (0, import_react32.memo)(function InputFieldButton2({
|
|
1893
1901
|
children,
|
|
1894
1902
|
onClick
|
|
1895
1903
|
}) {
|
|
1896
|
-
const { size: size2, inputRef } = (0,
|
|
1897
|
-
const defaultHandleClick = (0,
|
|
1904
|
+
const { size: size2, inputRef } = (0, import_react32.useContext)(InputFieldContext);
|
|
1905
|
+
const defaultHandleClick = (0, import_react32.useCallback)(
|
|
1898
1906
|
(event) => {
|
|
1899
1907
|
if (inputRef && typeof inputRef !== "function") {
|
|
1900
1908
|
inputRef.current?.focus();
|
|
@@ -1905,11 +1913,11 @@ var InputFieldButton = (0, import_react31.memo)(function InputFieldButton2({
|
|
|
1905
1913
|
},
|
|
1906
1914
|
[inputRef]
|
|
1907
1915
|
);
|
|
1908
|
-
const handlePointerDown = (0,
|
|
1916
|
+
const handlePointerDown = (0, import_react32.useCallback)((event) => {
|
|
1909
1917
|
event.preventDefault();
|
|
1910
1918
|
event.stopPropagation();
|
|
1911
1919
|
}, []);
|
|
1912
|
-
return /* @__PURE__ */
|
|
1920
|
+
return /* @__PURE__ */ import_react32.default.createElement(ButtonContainer, { $size: size2 }, /* @__PURE__ */ import_react32.default.createElement(
|
|
1913
1921
|
Button,
|
|
1914
1922
|
{
|
|
1915
1923
|
variant: "floating",
|
|
@@ -1920,42 +1928,26 @@ var InputFieldButton = (0, import_react31.memo)(function InputFieldButton2({
|
|
|
1920
1928
|
children
|
|
1921
1929
|
));
|
|
1922
1930
|
});
|
|
1923
|
-
var
|
|
1924
|
-
|
|
1925
|
-
|
|
1926
|
-
|
|
1927
|
-
|
|
1928
|
-
|
|
1929
|
-
|
|
1930
|
-
|
|
1931
|
-
|
|
1932
|
-
"
|
|
1933
|
-
|
|
1934
|
-
|
|
1935
|
-
|
|
1936
|
-
]);
|
|
1937
|
-
var InputElement = (0, import_styled_components13.default)(TextInput_default).withConfig({
|
|
1938
|
-
shouldForwardProp: (prop) => ignoredProps.has(prop) ? false : true
|
|
1939
|
-
})(
|
|
1940
|
-
({
|
|
1941
|
-
theme,
|
|
1942
|
-
labelPosition,
|
|
1943
|
-
labelSize,
|
|
1944
|
-
hasDropdown,
|
|
1945
|
-
textAlign,
|
|
1946
|
-
disabled,
|
|
1947
|
-
hasLabel,
|
|
1948
|
-
readOnly,
|
|
1949
|
-
variant = "normal",
|
|
1950
|
-
size: size2
|
|
1951
|
-
}) => ({
|
|
1931
|
+
var InputElement = (0, import_styled_components13.default)(TextInput_default)(({
|
|
1932
|
+
theme,
|
|
1933
|
+
$labelPosition,
|
|
1934
|
+
$labelSize,
|
|
1935
|
+
$hasDropdown,
|
|
1936
|
+
$textAlign,
|
|
1937
|
+
disabled,
|
|
1938
|
+
$hasLabel,
|
|
1939
|
+
readOnly,
|
|
1940
|
+
$variant = "normal",
|
|
1941
|
+
$size
|
|
1942
|
+
}) => {
|
|
1943
|
+
return {
|
|
1952
1944
|
// placeholder
|
|
1953
1945
|
"&::placeholder": {
|
|
1954
1946
|
color: theme.colors.textDisabled
|
|
1955
1947
|
},
|
|
1956
1948
|
...theme.textStyles.small,
|
|
1957
1949
|
color: readOnly ? theme.colors.textMuted : disabled ? theme.colors.textDisabled : theme.colors.text,
|
|
1958
|
-
|
|
1950
|
+
...$size === "small" && {
|
|
1959
1951
|
fontSize: "11px"
|
|
1960
1952
|
},
|
|
1961
1953
|
width: "0px",
|
|
@@ -1965,18 +1957,18 @@ var InputElement = (0, import_styled_components13.default)(TextInput_default).wi
|
|
|
1965
1957
|
border: "0",
|
|
1966
1958
|
outline: "none",
|
|
1967
1959
|
minWidth: "0",
|
|
1968
|
-
textAlign: textAlign ?? "left",
|
|
1960
|
+
textAlign: $textAlign ?? "left",
|
|
1969
1961
|
alignSelf: "stretch",
|
|
1970
1962
|
borderRadius: "4px",
|
|
1971
|
-
paddingTop:
|
|
1972
|
-
paddingBottom:
|
|
1973
|
-
paddingLeft: (
|
|
1974
|
-
paddingRight: (
|
|
1963
|
+
paddingTop: $size === "large" ? "10px" : $size === "medium" ? "4px" : "1px",
|
|
1964
|
+
paddingBottom: $size === "large" ? "10px" : $size === "medium" ? "4px" : "1px",
|
|
1965
|
+
paddingLeft: ($size === "large" ? 10 : $size === "medium" ? 6 : 4) + ($hasLabel && $labelPosition === "start" ? 6 + $labelSize : 0) + "px",
|
|
1966
|
+
paddingRight: ($size === "large" ? 10 : $size === "medium" ? 6 : 4) + ($hasLabel && $labelPosition === "end" ? 6 + $labelSize : 0) + ($hasDropdown ? 11 : 0) + "px",
|
|
1975
1967
|
background: theme.colors.inputBackground,
|
|
1976
1968
|
"&:focus": {
|
|
1977
1969
|
boxShadow: `0 0 0 2px ${theme.colors.primary}`
|
|
1978
1970
|
},
|
|
1979
|
-
|
|
1971
|
+
...$variant === "bare" && {
|
|
1980
1972
|
paddingTop: "4px",
|
|
1981
1973
|
paddingRight: "4px",
|
|
1982
1974
|
paddingBottom: "4px",
|
|
@@ -1985,18 +1977,18 @@ var InputElement = (0, import_styled_components13.default)(TextInput_default).wi
|
|
|
1985
1977
|
marginRight: "-4px",
|
|
1986
1978
|
marginBottom: "-4px",
|
|
1987
1979
|
marginLeft: "-4px"
|
|
1988
|
-
},
|
|
1989
|
-
'&[type="search"]::-webkit-search-cancel-button': {
|
|
1990
|
-
appearance: "none",
|
|
1991
|
-
height: "15px",
|
|
1992
|
-
width: "15px",
|
|
1993
|
-
background: `url("data:image/svg+xml;utf8,${createCrossSVGString(
|
|
1994
|
-
theme.colors.icon
|
|
1995
|
-
)}") no-repeat`
|
|
1996
1980
|
}
|
|
1997
|
-
|
|
1998
|
-
|
|
1999
|
-
|
|
1981
|
+
// '&[type="search"]::-webkit-search-cancel-button': {
|
|
1982
|
+
// appearance: "none",
|
|
1983
|
+
// height: "15px",
|
|
1984
|
+
// width: "15px",
|
|
1985
|
+
// background: `url("data:image/svg+xml;utf8,${createCrossSVGString(
|
|
1986
|
+
// theme.colors.icon
|
|
1987
|
+
// )}") no-repeat`,
|
|
1988
|
+
// },
|
|
1989
|
+
};
|
|
1990
|
+
});
|
|
1991
|
+
var InputFieldInput = (0, import_react32.forwardRef)(function InputFieldInput2(props, forwardedRef) {
|
|
2000
1992
|
const {
|
|
2001
1993
|
labelPosition,
|
|
2002
1994
|
labelSize,
|
|
@@ -2005,25 +1997,25 @@ var InputFieldInput = (0, import_react31.forwardRef)(function InputFieldInput2(p
|
|
|
2005
1997
|
size: size2,
|
|
2006
1998
|
onFocusChange,
|
|
2007
1999
|
setInputRef
|
|
2008
|
-
} = (0,
|
|
2009
|
-
const handleFocusChange = (0,
|
|
2000
|
+
} = (0, import_react32.useContext)(InputFieldContext);
|
|
2001
|
+
const handleFocusChange = (0, import_react32.useCallback)(
|
|
2010
2002
|
(isFocused) => {
|
|
2011
2003
|
onFocusChange(isFocused);
|
|
2012
2004
|
},
|
|
2013
2005
|
[onFocusChange]
|
|
2014
2006
|
);
|
|
2015
|
-
(0,
|
|
2007
|
+
(0, import_react32.useLayoutEffect)(() => {
|
|
2016
2008
|
setInputRef?.(forwardedRef);
|
|
2017
2009
|
}, [forwardedRef, setInputRef]);
|
|
2018
|
-
return /* @__PURE__ */
|
|
2010
|
+
return /* @__PURE__ */ import_react32.default.createElement(
|
|
2019
2011
|
InputElement,
|
|
2020
2012
|
{
|
|
2021
2013
|
ref: forwardedRef,
|
|
2022
|
-
labelPosition,
|
|
2023
|
-
labelSize,
|
|
2024
|
-
hasLabel,
|
|
2025
|
-
hasDropdown,
|
|
2026
|
-
size: size2,
|
|
2014
|
+
$labelPosition: labelPosition,
|
|
2015
|
+
$labelSize: labelSize,
|
|
2016
|
+
$hasLabel: hasLabel,
|
|
2017
|
+
$hasDropdown: hasDropdown,
|
|
2018
|
+
$size: size2,
|
|
2027
2019
|
onFocusChange: handleFocusChange,
|
|
2028
2020
|
...props
|
|
2029
2021
|
}
|
|
@@ -2037,15 +2029,15 @@ var InputFieldTypeahead = (props) => {
|
|
|
2037
2029
|
hasLabel,
|
|
2038
2030
|
size: size2,
|
|
2039
2031
|
onFocusChange
|
|
2040
|
-
} = (0,
|
|
2041
|
-
return /* @__PURE__ */
|
|
2032
|
+
} = (0, import_react32.useContext)(InputFieldContext);
|
|
2033
|
+
return /* @__PURE__ */ import_react32.default.createElement(
|
|
2042
2034
|
InputElement,
|
|
2043
2035
|
{
|
|
2044
|
-
labelPosition,
|
|
2045
|
-
labelSize,
|
|
2046
|
-
hasLabel,
|
|
2047
|
-
hasDropdown,
|
|
2048
|
-
size: size2,
|
|
2036
|
+
$labelPosition: labelPosition,
|
|
2037
|
+
$labelSize: labelSize,
|
|
2038
|
+
$hasLabel: hasLabel,
|
|
2039
|
+
$hasDropdown: hasDropdown,
|
|
2040
|
+
$size: size2,
|
|
2049
2041
|
onFocusChange,
|
|
2050
2042
|
readOnly: true,
|
|
2051
2043
|
placeholder: props.value,
|
|
@@ -2069,10 +2061,10 @@ function parseNumber(value) {
|
|
|
2069
2061
|
return value ? Number(value) : NaN;
|
|
2070
2062
|
}
|
|
2071
2063
|
function InputFieldNumberInput(props) {
|
|
2072
|
-
const { value, placeholder, onNudge } = props;
|
|
2064
|
+
const { value, placeholder, onNudge, ...rest } = props;
|
|
2073
2065
|
const onSubmit = "onSubmit" in props ? props.onSubmit : void 0;
|
|
2074
2066
|
const onChange = "onChange" in props ? props.onChange : void 0;
|
|
2075
|
-
const handleSubmit = (0,
|
|
2067
|
+
const handleSubmit = (0, import_react32.useCallback)(
|
|
2076
2068
|
(value2) => {
|
|
2077
2069
|
const newValue = parseNumber(value2);
|
|
2078
2070
|
if (!isNaN(newValue)) {
|
|
@@ -2081,7 +2073,7 @@ function InputFieldNumberInput(props) {
|
|
|
2081
2073
|
},
|
|
2082
2074
|
[onSubmit]
|
|
2083
2075
|
);
|
|
2084
|
-
const handleKeyDown = (0,
|
|
2076
|
+
const handleKeyDown = (0, import_react32.useCallback)(
|
|
2085
2077
|
(event) => {
|
|
2086
2078
|
const amount = handleNudge(event);
|
|
2087
2079
|
if (!amount)
|
|
@@ -2092,16 +2084,16 @@ function InputFieldNumberInput(props) {
|
|
|
2092
2084
|
},
|
|
2093
2085
|
[onNudge]
|
|
2094
2086
|
);
|
|
2095
|
-
const handleChange = (0,
|
|
2087
|
+
const handleChange = (0, import_react32.useCallback)(
|
|
2096
2088
|
(value2) => {
|
|
2097
2089
|
onChange?.(parseNumber(value2));
|
|
2098
2090
|
},
|
|
2099
2091
|
[onChange]
|
|
2100
2092
|
);
|
|
2101
|
-
return /* @__PURE__ */
|
|
2093
|
+
return /* @__PURE__ */ import_react32.default.createElement(
|
|
2102
2094
|
InputFieldInput,
|
|
2103
2095
|
{
|
|
2104
|
-
...
|
|
2096
|
+
...rest,
|
|
2105
2097
|
value: value === void 0 ? "" : String(value),
|
|
2106
2098
|
placeholder,
|
|
2107
2099
|
onKeyDown: handleKeyDown,
|
|
@@ -2110,12 +2102,12 @@ function InputFieldNumberInput(props) {
|
|
|
2110
2102
|
);
|
|
2111
2103
|
}
|
|
2112
2104
|
var RootContainer = import_styled_components13.default.div(
|
|
2113
|
-
({ theme, flex, width }) => ({
|
|
2114
|
-
flex: flex ?? "1",
|
|
2105
|
+
({ theme, $flex, $width }) => ({
|
|
2106
|
+
flex: $flex ?? "1",
|
|
2115
2107
|
display: "flex",
|
|
2116
2108
|
flexDirection: "row",
|
|
2117
2109
|
position: "relative",
|
|
2118
|
-
maxWidth: typeof width === "number" ? `${width}px` : void 0
|
|
2110
|
+
maxWidth: typeof $width === "number" ? `${$width}px` : void 0
|
|
2119
2111
|
})
|
|
2120
2112
|
);
|
|
2121
2113
|
function InputFieldRoot({
|
|
@@ -2129,32 +2121,32 @@ function InputFieldRoot({
|
|
|
2129
2121
|
renderPopoverContent,
|
|
2130
2122
|
onFocusChange
|
|
2131
2123
|
}) {
|
|
2132
|
-
const childrenArray =
|
|
2124
|
+
const childrenArray = import_react32.Children.toArray(children);
|
|
2133
2125
|
const hasDropdown = childrenArray.some(
|
|
2134
|
-
(child) => (0,
|
|
2126
|
+
(child) => (0, import_react32.isValidElement)(child) && child.type === InputFieldDropdownMenu
|
|
2135
2127
|
);
|
|
2136
2128
|
const hasLabel = childrenArray.some(
|
|
2137
|
-
(child) => (0,
|
|
2129
|
+
(child) => (0, import_react32.isValidElement)(child) && child.type === InputFieldLabel
|
|
2138
2130
|
);
|
|
2139
|
-
const [isFocused, setIsFocused] =
|
|
2140
|
-
const [measuredLabelSize, setMeasuredLabelSize] =
|
|
2141
|
-
const [measuredWidth, setMeasuredWidth] =
|
|
2142
|
-
const handleFocusChange = (0,
|
|
2131
|
+
const [isFocused, setIsFocused] = import_react32.default.useState(false);
|
|
2132
|
+
const [measuredLabelSize, setMeasuredLabelSize] = import_react32.default.useState();
|
|
2133
|
+
const [measuredWidth, setMeasuredWidth] = import_react32.default.useState();
|
|
2134
|
+
const handleFocusChange = (0, import_react32.useCallback)(
|
|
2143
2135
|
(isFocused2) => {
|
|
2144
2136
|
setIsFocused(isFocused2);
|
|
2145
2137
|
onFocusChange?.(isFocused2);
|
|
2146
2138
|
},
|
|
2147
2139
|
[onFocusChange]
|
|
2148
2140
|
);
|
|
2149
|
-
const [inputRef, setInputRef] =
|
|
2150
|
-
(0,
|
|
2141
|
+
const [inputRef, setInputRef] = import_react32.default.useState();
|
|
2142
|
+
(0, import_react32.useEffect)(() => {
|
|
2151
2143
|
if (inputRef && typeof inputRef !== "function") {
|
|
2152
2144
|
setMeasuredWidth?.(
|
|
2153
2145
|
isFocused ? inputRef?.current?.getBoundingClientRect().width : void 0
|
|
2154
2146
|
);
|
|
2155
2147
|
}
|
|
2156
2148
|
}, [inputRef, isFocused]);
|
|
2157
|
-
const contextValue = (0,
|
|
2149
|
+
const contextValue = (0, import_react32.useMemo)(
|
|
2158
2150
|
() => ({
|
|
2159
2151
|
labelPosition,
|
|
2160
2152
|
labelSize: measuredLabelSize ?? labelSize ?? 6,
|
|
@@ -2179,8 +2171,8 @@ function InputFieldRoot({
|
|
|
2179
2171
|
inputRef
|
|
2180
2172
|
]
|
|
2181
2173
|
);
|
|
2182
|
-
const rootElement = /* @__PURE__ */
|
|
2183
|
-
return /* @__PURE__ */
|
|
2174
|
+
const rootElement = /* @__PURE__ */ import_react32.default.createElement(RootContainer, { id, $width: width, $flex: flex }, children);
|
|
2175
|
+
return /* @__PURE__ */ import_react32.default.createElement(InputFieldContext.Provider, { value: contextValue }, renderPopoverContent ? /* @__PURE__ */ import_react32.default.createElement(
|
|
2184
2176
|
Popover,
|
|
2185
2177
|
{
|
|
2186
2178
|
open: true,
|
|
@@ -2196,15 +2188,15 @@ function InputFieldRoot({
|
|
|
2196
2188
|
event.stopPropagation();
|
|
2197
2189
|
}
|
|
2198
2190
|
},
|
|
2199
|
-
measuredWidth && /* @__PURE__ */
|
|
2191
|
+
measuredWidth && /* @__PURE__ */ import_react32.default.createElement(Stack.V, { width: measuredWidth, overflow: "hidden" }, renderPopoverContent({ width: measuredWidth }))
|
|
2200
2192
|
) : rootElement);
|
|
2201
2193
|
}
|
|
2202
2194
|
var InputField;
|
|
2203
2195
|
((InputField2) => {
|
|
2204
|
-
InputField2.Root = (0,
|
|
2205
|
-
InputField2.Input = (0,
|
|
2206
|
-
InputField2.Typeahead = (0,
|
|
2207
|
-
InputField2.NumberInput = (0,
|
|
2196
|
+
InputField2.Root = (0, import_react32.memo)(InputFieldRoot);
|
|
2197
|
+
InputField2.Input = (0, import_react32.memo)(InputFieldInput);
|
|
2198
|
+
InputField2.Typeahead = (0, import_react32.memo)(InputFieldTypeahead);
|
|
2199
|
+
InputField2.NumberInput = (0, import_react32.memo)(InputFieldNumberInput);
|
|
2208
2200
|
InputField2.DropdownMenu = InputFieldDropdownMenu;
|
|
2209
2201
|
InputField2.Button = InputFieldButton;
|
|
2210
2202
|
InputField2.Label = InputFieldLabel;
|
|
@@ -2228,24 +2220,24 @@ function createDeferredPromise() {
|
|
|
2228
2220
|
});
|
|
2229
2221
|
return { promise, resolve, reject };
|
|
2230
2222
|
}
|
|
2231
|
-
var DialogContext = (0,
|
|
2223
|
+
var DialogContext = (0, import_react33.createContext)(void 0);
|
|
2232
2224
|
var DialogProvider = function DialogProvider2({
|
|
2233
2225
|
children
|
|
2234
2226
|
}) {
|
|
2235
|
-
const [contents, setContents] = (0,
|
|
2227
|
+
const [contents, setContents] = (0, import_react33.useState)();
|
|
2236
2228
|
const isOpen = !!contents;
|
|
2237
|
-
const close = (0,
|
|
2229
|
+
const close = (0, import_react33.useCallback)(() => {
|
|
2238
2230
|
if (!contents)
|
|
2239
2231
|
return;
|
|
2240
2232
|
contents.resolve(void 0);
|
|
2241
2233
|
}, [contents]);
|
|
2242
|
-
const submit = (0,
|
|
2234
|
+
const submit = (0, import_react33.useCallback)(() => {
|
|
2243
2235
|
if (!contents || !contents.inputValue)
|
|
2244
2236
|
return;
|
|
2245
2237
|
contents.resolve(contents.inputValue);
|
|
2246
2238
|
setContents(void 0);
|
|
2247
2239
|
}, [contents]);
|
|
2248
|
-
const open = (0,
|
|
2240
|
+
const open = (0, import_react33.useCallback)(
|
|
2249
2241
|
(title, inputValue = "") => {
|
|
2250
2242
|
const { promise, resolve } = createDeferredPromise();
|
|
2251
2243
|
setContents({
|
|
@@ -2260,7 +2252,7 @@ var DialogProvider = function DialogProvider2({
|
|
|
2260
2252
|
},
|
|
2261
2253
|
[]
|
|
2262
2254
|
);
|
|
2263
|
-
const handleKeyDown = (0,
|
|
2255
|
+
const handleKeyDown = (0, import_react33.useCallback)(
|
|
2264
2256
|
(event) => {
|
|
2265
2257
|
if (event.key !== "Enter")
|
|
2266
2258
|
return;
|
|
@@ -2270,29 +2262,29 @@ var DialogProvider = function DialogProvider2({
|
|
|
2270
2262
|
},
|
|
2271
2263
|
[submit]
|
|
2272
2264
|
);
|
|
2273
|
-
const inputRef = (0,
|
|
2274
|
-
const dialogRef = (0,
|
|
2275
|
-
const containsElement = (0,
|
|
2265
|
+
const inputRef = (0, import_react33.useRef)(null);
|
|
2266
|
+
const dialogRef = (0, import_react33.useRef)(null);
|
|
2267
|
+
const containsElement = (0, import_react33.useCallback)((element) => {
|
|
2276
2268
|
if (!dialogRef.current)
|
|
2277
2269
|
return false;
|
|
2278
2270
|
return dialogRef.current.containsElement(element);
|
|
2279
2271
|
}, []);
|
|
2280
|
-
return /* @__PURE__ */
|
|
2272
|
+
return /* @__PURE__ */ import_react33.default.createElement(import_react33.default.Fragment, null, /* @__PURE__ */ import_react33.default.createElement(
|
|
2281
2273
|
DialogContext.Provider,
|
|
2282
2274
|
{
|
|
2283
|
-
value: (0,
|
|
2275
|
+
value: (0, import_react33.useMemo)(
|
|
2284
2276
|
() => ({ openInputDialog: open, containsElement }),
|
|
2285
2277
|
[containsElement, open]
|
|
2286
2278
|
)
|
|
2287
2279
|
},
|
|
2288
2280
|
children
|
|
2289
|
-
), /* @__PURE__ */
|
|
2281
|
+
), /* @__PURE__ */ import_react33.default.createElement(
|
|
2290
2282
|
Dialog,
|
|
2291
2283
|
{
|
|
2292
2284
|
ref: dialogRef,
|
|
2293
2285
|
title: contents?.title,
|
|
2294
2286
|
open: isOpen,
|
|
2295
|
-
onOpenChange: (0,
|
|
2287
|
+
onOpenChange: (0, import_react33.useCallback)(
|
|
2296
2288
|
(isOpen2) => {
|
|
2297
2289
|
if (!isOpen2) {
|
|
2298
2290
|
close();
|
|
@@ -2300,14 +2292,14 @@ var DialogProvider = function DialogProvider2({
|
|
|
2300
2292
|
},
|
|
2301
2293
|
[close]
|
|
2302
2294
|
),
|
|
2303
|
-
onOpenAutoFocus: (0,
|
|
2295
|
+
onOpenAutoFocus: (0, import_react33.useCallback)((event) => {
|
|
2304
2296
|
event.stopPropagation();
|
|
2305
2297
|
event.preventDefault();
|
|
2306
2298
|
inputRef.current?.focus();
|
|
2307
2299
|
inputRef.current?.setSelectionRange(0, inputRef.current.value.length);
|
|
2308
2300
|
}, [])
|
|
2309
2301
|
},
|
|
2310
|
-
/* @__PURE__ */
|
|
2302
|
+
/* @__PURE__ */ import_react33.default.createElement(InputField.Root, null, /* @__PURE__ */ import_react33.default.createElement(
|
|
2311
2303
|
InputField.Input,
|
|
2312
2304
|
{
|
|
2313
2305
|
ref: inputRef,
|
|
@@ -2323,12 +2315,12 @@ var DialogProvider = function DialogProvider2({
|
|
|
2323
2315
|
onKeyDown: handleKeyDown
|
|
2324
2316
|
}
|
|
2325
2317
|
)),
|
|
2326
|
-
/* @__PURE__ */
|
|
2327
|
-
/* @__PURE__ */
|
|
2318
|
+
/* @__PURE__ */ import_react33.default.createElement(Spacer.Vertical, { size: 20 }),
|
|
2319
|
+
/* @__PURE__ */ import_react33.default.createElement(Row, null, /* @__PURE__ */ import_react33.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react33.default.createElement(Button, { onClick: close }, "Cancel"), /* @__PURE__ */ import_react33.default.createElement(Spacer.Horizontal, { size: 16 }), /* @__PURE__ */ import_react33.default.createElement(Button, { disabled: !contents?.inputValue, onClick: submit }, "Submit"))
|
|
2328
2320
|
));
|
|
2329
2321
|
};
|
|
2330
2322
|
function useDialog() {
|
|
2331
|
-
const value = (0,
|
|
2323
|
+
const value = (0, import_react33.useContext)(DialogContext);
|
|
2332
2324
|
if (!value) {
|
|
2333
2325
|
throw new Error("Missing DialogProvider");
|
|
2334
2326
|
}
|
|
@@ -2342,21 +2334,21 @@ function useDialogContainsElement() {
|
|
|
2342
2334
|
}
|
|
2343
2335
|
|
|
2344
2336
|
// src/contexts/FloatingWindowContext.tsx
|
|
2345
|
-
var
|
|
2346
|
-
var
|
|
2337
|
+
var import_noya_utils5 = require("@noya-app/noya-utils");
|
|
2338
|
+
var import_react34 = __toESM(require("react"));
|
|
2347
2339
|
var import_react_dom = require("react-dom");
|
|
2348
|
-
var FloatingWindowContext = (0,
|
|
2349
|
-
var CurrentWindowContext = (0,
|
|
2340
|
+
var FloatingWindowContext = (0, import_react34.createContext)(void 0);
|
|
2341
|
+
var CurrentWindowContext = (0, import_react34.createContext)(void 0);
|
|
2350
2342
|
var FloatingWindowProvider = ({
|
|
2351
2343
|
children
|
|
2352
2344
|
}) => {
|
|
2353
|
-
const [windows, setWindows] = (0,
|
|
2354
|
-
const contextValue = (0,
|
|
2345
|
+
const [windows, setWindows] = (0, import_react34.useState)({});
|
|
2346
|
+
const contextValue = (0, import_react34.useMemo)(() => {
|
|
2355
2347
|
const createWindow = (element) => {
|
|
2356
|
-
const id = (0,
|
|
2348
|
+
const id = (0, import_noya_utils5.uuid)();
|
|
2357
2349
|
setWindows((windows2) => ({
|
|
2358
2350
|
...windows2,
|
|
2359
|
-
[id]: /* @__PURE__ */
|
|
2351
|
+
[id]: /* @__PURE__ */ import_react34.default.createElement(CurrentWindowContext.Provider, { value: { id } }, element)
|
|
2360
2352
|
}));
|
|
2361
2353
|
return id;
|
|
2362
2354
|
};
|
|
@@ -2368,12 +2360,12 @@ var FloatingWindowProvider = ({
|
|
|
2368
2360
|
};
|
|
2369
2361
|
return { createWindow, closeWindow };
|
|
2370
2362
|
}, []);
|
|
2371
|
-
return /* @__PURE__ */
|
|
2363
|
+
return /* @__PURE__ */ import_react34.default.createElement(FloatingWindowContext.Provider, { value: contextValue }, children, Object.entries(windows).map(
|
|
2372
2364
|
([id, element]) => (0, import_react_dom.createPortal)(element, document.body, id)
|
|
2373
2365
|
));
|
|
2374
2366
|
};
|
|
2375
2367
|
var useFloatingWindowManager = () => {
|
|
2376
|
-
const context = (0,
|
|
2368
|
+
const context = (0, import_react34.useContext)(FloatingWindowContext);
|
|
2377
2369
|
if (!context) {
|
|
2378
2370
|
throw new Error(
|
|
2379
2371
|
"useFloatingWindow must be used within a FloatingWindowProvider"
|
|
@@ -2382,7 +2374,7 @@ var useFloatingWindowManager = () => {
|
|
|
2382
2374
|
return context;
|
|
2383
2375
|
};
|
|
2384
2376
|
var useCurrentFloatingWindowInternal = () => {
|
|
2385
|
-
const context = (0,
|
|
2377
|
+
const context = (0, import_react34.useContext)(CurrentWindowContext);
|
|
2386
2378
|
if (!context) {
|
|
2387
2379
|
throw new Error("useCurrentWindow must be used within a FloatingWindow");
|
|
2388
2380
|
}
|
|
@@ -2390,56 +2382,60 @@ var useCurrentFloatingWindowInternal = () => {
|
|
|
2390
2382
|
};
|
|
2391
2383
|
|
|
2392
2384
|
// src/contexts/DesignSystemConfiguration.tsx
|
|
2393
|
-
var DesignSystemThemeProvider = (0,
|
|
2385
|
+
var DesignSystemThemeProvider = (0, import_react35.memo)(
|
|
2394
2386
|
function DesignSystemThemeProvider2({
|
|
2395
2387
|
children,
|
|
2396
2388
|
theme
|
|
2397
2389
|
}) {
|
|
2398
|
-
|
|
2390
|
+
let parentTheme;
|
|
2391
|
+
try {
|
|
2392
|
+
parentTheme = (0, import_styled_components15.useTheme)();
|
|
2393
|
+
} catch (e) {
|
|
2394
|
+
}
|
|
2399
2395
|
if (theme) {
|
|
2400
|
-
return /* @__PURE__ */
|
|
2396
|
+
return /* @__PURE__ */ import_react35.default.createElement(import_styled_components15.ThemeProvider, { theme }, children);
|
|
2401
2397
|
} else if (parentTheme) {
|
|
2402
2398
|
return children;
|
|
2403
2399
|
} else {
|
|
2404
|
-
return /* @__PURE__ */
|
|
2400
|
+
return /* @__PURE__ */ import_react35.default.createElement(import_styled_components15.ThemeProvider, { theme: light_exports }, children);
|
|
2405
2401
|
}
|
|
2406
2402
|
}
|
|
2407
2403
|
);
|
|
2408
|
-
var DesignSystemConfigurationContext = (0,
|
|
2404
|
+
var DesignSystemConfigurationContext = (0, import_react35.createContext)({
|
|
2409
2405
|
platform: "key"
|
|
2410
2406
|
});
|
|
2411
|
-
var DesignSystemConfigurationProvider = (0,
|
|
2407
|
+
var DesignSystemConfigurationProvider = (0, import_react35.memo)(
|
|
2412
2408
|
function DesignSystemConfigurationProvider2({
|
|
2413
2409
|
children,
|
|
2414
2410
|
theme = light_exports,
|
|
2415
2411
|
platform
|
|
2416
2412
|
}) {
|
|
2417
|
-
const [internalPlatform, setInternalPlatform] = (0,
|
|
2413
|
+
const [internalPlatform, setInternalPlatform] = (0, import_react35.useState)(
|
|
2418
2414
|
platform ?? "key"
|
|
2419
2415
|
);
|
|
2420
|
-
(0,
|
|
2416
|
+
(0, import_react35.useEffect)(() => {
|
|
2421
2417
|
if (platform !== void 0)
|
|
2422
2418
|
return;
|
|
2423
2419
|
if (typeof navigator !== "undefined") {
|
|
2424
2420
|
setInternalPlatform((0, import_noya_keymap3.getCurrentPlatform)(navigator));
|
|
2425
2421
|
}
|
|
2426
2422
|
}, [platform]);
|
|
2427
|
-
const contextValue = (0,
|
|
2423
|
+
const contextValue = (0, import_react35.useMemo)(
|
|
2428
2424
|
() => ({ platform: platform ?? internalPlatform }),
|
|
2429
2425
|
[platform, internalPlatform]
|
|
2430
2426
|
);
|
|
2431
|
-
return /* @__PURE__ */
|
|
2427
|
+
return /* @__PURE__ */ import_react35.default.createElement(DesignSystemConfigurationContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react35.default.createElement(import_styled_components15.ThemeProvider, { theme }, /* @__PURE__ */ import_react35.default.createElement(DialogProvider, null, /* @__PURE__ */ import_react35.default.createElement(ToastProvider, null, /* @__PURE__ */ import_react35.default.createElement(FloatingWindowProvider, null, children)))));
|
|
2432
2428
|
}
|
|
2433
2429
|
);
|
|
2434
2430
|
function useDesignSystemConfiguration() {
|
|
2435
|
-
return (0,
|
|
2431
|
+
return (0, import_react35.useContext)(DesignSystemConfigurationContext);
|
|
2436
2432
|
}
|
|
2437
2433
|
function useDesignSystemTheme() {
|
|
2438
2434
|
return (0, import_styled_components15.useTheme)();
|
|
2439
2435
|
}
|
|
2440
2436
|
|
|
2441
2437
|
// src/hooks/useHover.ts
|
|
2442
|
-
var
|
|
2438
|
+
var React21 = __toESM(require("react"));
|
|
2443
2439
|
var globalIgnoreEmulatedMouseEvents = false;
|
|
2444
2440
|
var hoverCount = 0;
|
|
2445
2441
|
function setGlobalIgnoreEmulatedMouseEvents() {
|
|
@@ -2469,13 +2465,13 @@ function setupGlobalTouchEvents() {
|
|
|
2469
2465
|
}
|
|
2470
2466
|
function useHover(props = {}) {
|
|
2471
2467
|
const { onHoverStart, onHoverChange, onHoverEnd, isDisabled } = props;
|
|
2472
|
-
const [isHovered, setHovered] =
|
|
2473
|
-
const state =
|
|
2468
|
+
const [isHovered, setHovered] = React21.useState(false);
|
|
2469
|
+
const state = React21.useRef({
|
|
2474
2470
|
isHovered: false,
|
|
2475
2471
|
ignoreEmulatedMouseEvents: false
|
|
2476
2472
|
}).current;
|
|
2477
|
-
|
|
2478
|
-
const hoverProps =
|
|
2473
|
+
React21.useEffect(setupGlobalTouchEvents, []);
|
|
2474
|
+
const hoverProps = React21.useMemo(
|
|
2479
2475
|
function getHoverProps() {
|
|
2480
2476
|
function triggerHoverStart(event, pointerType) {
|
|
2481
2477
|
if (isDisabled || pointerType === "touch" || state.isHovered) {
|
|
@@ -2535,10 +2531,10 @@ function useHover(props = {}) {
|
|
|
2535
2531
|
}
|
|
2536
2532
|
|
|
2537
2533
|
// src/components/Chip.tsx
|
|
2538
|
-
var ChipElement = import_styled_components16.default.span(({ theme, colorScheme, size
|
|
2539
|
-
const color = colorScheme === "primary" ? theme.colors.primary : colorScheme === "secondary" ? theme.colors.secondary : theme.colors.text;
|
|
2540
|
-
const backgroundColor = colorScheme === "primary" ? "rgb(238, 229, 255)" : colorScheme === "secondary" ? "rgb(205, 238, 231)" : colorScheme === "error" ? "rgb(255, 219, 219)" : theme.colors.inputBackground;
|
|
2541
|
-
const subtleColor = colorScheme === "primary" ? "rgba(238, 229, 255, 0.2)" : colorScheme === "secondary" ? "rgba(205, 238, 231, 0.2)" : colorScheme === "error" ? "rgba(255, 219, 219, 0.2)" : "rgba(0, 0, 0, 0.1)";
|
|
2534
|
+
var ChipElement = import_styled_components16.default.span(({ theme, $colorScheme, $size, $variant, $monospace, $isInteractive }) => {
|
|
2535
|
+
const color = $colorScheme === "primary" ? theme.colors.primary : $colorScheme === "secondary" ? theme.colors.secondary : theme.colors.text;
|
|
2536
|
+
const backgroundColor = $colorScheme === "primary" ? "rgb(238, 229, 255)" : $colorScheme === "secondary" ? "rgb(205, 238, 231)" : $colorScheme === "error" ? "rgb(255, 219, 219)" : theme.colors.inputBackground;
|
|
2537
|
+
const subtleColor = $colorScheme === "primary" ? "rgba(238, 229, 255, 0.2)" : $colorScheme === "secondary" ? "rgba(205, 238, 231, 0.2)" : $colorScheme === "error" ? "rgba(255, 219, 219, 0.2)" : "rgba(0, 0, 0, 0.1)";
|
|
2542
2538
|
return {
|
|
2543
2539
|
textTransform: "initial",
|
|
2544
2540
|
borderRadius: 4,
|
|
@@ -2547,7 +2543,7 @@ var ChipElement = import_styled_components16.default.span(({ theme, colorScheme,
|
|
|
2547
2543
|
alignItems: "center",
|
|
2548
2544
|
lineHeight: "1.4",
|
|
2549
2545
|
whiteSpace: "pre",
|
|
2550
|
-
|
|
2546
|
+
...$size === "medium" ? {
|
|
2551
2547
|
fontSize: "11px",
|
|
2552
2548
|
padding: "4px 8px"
|
|
2553
2549
|
} : {
|
|
@@ -2555,24 +2551,24 @@ var ChipElement = import_styled_components16.default.span(({ theme, colorScheme,
|
|
|
2555
2551
|
padding: "0px 4px",
|
|
2556
2552
|
lineHeight: "15px"
|
|
2557
2553
|
},
|
|
2558
|
-
|
|
2554
|
+
...$monospace && {
|
|
2559
2555
|
fontFamily: theme.fonts.monospace
|
|
2560
2556
|
},
|
|
2561
|
-
|
|
2557
|
+
...$variant === "solid" ? {
|
|
2562
2558
|
color,
|
|
2563
2559
|
backgroundColor
|
|
2564
|
-
} : variant === "outlined" ? {
|
|
2560
|
+
} : $variant === "outlined" ? {
|
|
2565
2561
|
color,
|
|
2566
2562
|
backgroundColor: "transparent",
|
|
2567
2563
|
boxShadow: `0 0 0 1px ${subtleColor} inset`
|
|
2568
2564
|
} : {},
|
|
2569
2565
|
"&:hover": {
|
|
2570
|
-
|
|
2566
|
+
...$variant === "outlined" && {
|
|
2571
2567
|
backgroundColor: subtleColor,
|
|
2572
2568
|
boxShadow: "none"
|
|
2573
2569
|
}
|
|
2574
2570
|
},
|
|
2575
|
-
|
|
2571
|
+
...$isInteractive && {
|
|
2576
2572
|
cursor: "pointer",
|
|
2577
2573
|
"&:hover": {
|
|
2578
2574
|
opacity: 0.85
|
|
@@ -2596,9 +2592,9 @@ var DeleteElement = (0, import_styled_components16.default)(import_noya_icons3.C
|
|
|
2596
2592
|
opacity: 0.85
|
|
2597
2593
|
}
|
|
2598
2594
|
}));
|
|
2599
|
-
var
|
|
2595
|
+
var ignoredProps = /* @__PURE__ */ new Set(["size", "isOnlyChild"]);
|
|
2600
2596
|
var AddElement = (0, import_styled_components16.default)(import_noya_icons3.PlusIcon).withConfig({
|
|
2601
|
-
shouldForwardProp: (prop) => !
|
|
2597
|
+
shouldForwardProp: (prop) => !ignoredProps.has(prop)
|
|
2602
2598
|
})(({ size: size2, isOnlyChild }) => ({
|
|
2603
2599
|
position: "relative",
|
|
2604
2600
|
marginLeft: "-2px",
|
|
@@ -2616,7 +2612,7 @@ var AddElement = (0, import_styled_components16.default)(import_noya_icons3.Plus
|
|
|
2616
2612
|
opacity: 0.85
|
|
2617
2613
|
}
|
|
2618
2614
|
}));
|
|
2619
|
-
var Chip = (0,
|
|
2615
|
+
var Chip = (0, import_react36.memo)(function Chip2({
|
|
2620
2616
|
colorScheme,
|
|
2621
2617
|
children,
|
|
2622
2618
|
deletable,
|
|
@@ -2637,19 +2633,19 @@ var Chip = (0, import_react35.memo)(function Chip2({
|
|
|
2637
2633
|
});
|
|
2638
2634
|
const handleClick = !children && !deletable && addable ? onAdd : onClick;
|
|
2639
2635
|
const color = colorScheme === "primary" ? theme.colors.primary : colorScheme === "secondary" ? theme.colors.secondary : theme.colors.text;
|
|
2640
|
-
return /* @__PURE__ */
|
|
2636
|
+
return /* @__PURE__ */ import_react36.default.createElement(
|
|
2641
2637
|
ChipElement,
|
|
2642
2638
|
{
|
|
2643
|
-
variant,
|
|
2644
|
-
colorScheme,
|
|
2639
|
+
$variant: variant,
|
|
2640
|
+
$colorScheme: colorScheme,
|
|
2645
2641
|
style: style3,
|
|
2646
2642
|
onClick: handleClick,
|
|
2647
|
-
size: size2,
|
|
2648
|
-
monospace,
|
|
2649
|
-
isInteractive: !!handleClick,
|
|
2643
|
+
$size: size2,
|
|
2644
|
+
$monospace: monospace,
|
|
2645
|
+
$isInteractive: !!handleClick,
|
|
2650
2646
|
tabIndex
|
|
2651
2647
|
},
|
|
2652
|
-
addable && /* @__PURE__ */
|
|
2648
|
+
addable && /* @__PURE__ */ import_react36.default.createElement(
|
|
2653
2649
|
AddElement,
|
|
2654
2650
|
{
|
|
2655
2651
|
size: size2,
|
|
@@ -2662,7 +2658,7 @@ var Chip = (0, import_react35.memo)(function Chip2({
|
|
|
2662
2658
|
}
|
|
2663
2659
|
),
|
|
2664
2660
|
children,
|
|
2665
|
-
deletable && /* @__PURE__ */
|
|
2661
|
+
deletable && /* @__PURE__ */ import_react36.default.createElement(
|
|
2666
2662
|
DeleteElement,
|
|
2667
2663
|
{
|
|
2668
2664
|
size: size2,
|
|
@@ -2681,7 +2677,7 @@ var Chip = (0, import_react35.memo)(function Chip2({
|
|
|
2681
2677
|
var import_noya_icons4 = require("@noya-app/noya-icons");
|
|
2682
2678
|
var import_noya_keymap4 = require("@noya-app/noya-keymap");
|
|
2683
2679
|
var RadixContextMenu = __toESM(require("@radix-ui/react-context-menu"));
|
|
2684
|
-
var
|
|
2680
|
+
var import_react37 = __toESM(require("react"));
|
|
2685
2681
|
var import_styled_components17 = __toESM(require("styled-components"));
|
|
2686
2682
|
var SeparatorElement2 = (0, import_styled_components17.default)(RadixContextMenu.Separator)(
|
|
2687
2683
|
styles.separatorStyle
|
|
@@ -2693,7 +2689,7 @@ var CheckboxItemElement2 = (0, import_styled_components17.default)(RadixContextM
|
|
|
2693
2689
|
var StyledItemIndicator2 = (0, import_styled_components17.default)(RadixContextMenu.ItemIndicator)(
|
|
2694
2690
|
styles.itemIndicatorStyle
|
|
2695
2691
|
);
|
|
2696
|
-
var ContextMenuItem2 = (0,
|
|
2692
|
+
var ContextMenuItem2 = (0, import_react37.memo)(function ContextMenuItem3({
|
|
2697
2693
|
value,
|
|
2698
2694
|
children,
|
|
2699
2695
|
onSelect,
|
|
@@ -2704,42 +2700,42 @@ var ContextMenuItem2 = (0, import_react36.memo)(function ContextMenuItem3({
|
|
|
2704
2700
|
items,
|
|
2705
2701
|
shortcut
|
|
2706
2702
|
}) {
|
|
2707
|
-
const handlePointerDown = (0,
|
|
2703
|
+
const handlePointerDown = (0, import_react37.useCallback)(
|
|
2708
2704
|
(event) => event.stopPropagation(),
|
|
2709
2705
|
[]
|
|
2710
2706
|
);
|
|
2711
|
-
const handleSelectItem = (0,
|
|
2707
|
+
const handleSelectItem = (0, import_react37.useCallback)(() => {
|
|
2712
2708
|
if (!value)
|
|
2713
2709
|
return;
|
|
2714
2710
|
onSelect(value);
|
|
2715
2711
|
}, [onSelect, value]);
|
|
2716
2712
|
if (checked) {
|
|
2717
|
-
return /* @__PURE__ */
|
|
2713
|
+
return /* @__PURE__ */ import_react37.default.createElement(
|
|
2718
2714
|
CheckboxItemElement2,
|
|
2719
2715
|
{
|
|
2720
2716
|
checked,
|
|
2721
2717
|
disabled,
|
|
2722
2718
|
onSelect: handleSelectItem
|
|
2723
2719
|
},
|
|
2724
|
-
/* @__PURE__ */
|
|
2720
|
+
/* @__PURE__ */ import_react37.default.createElement(StyledItemIndicator2, null, /* @__PURE__ */ import_react37.default.createElement(import_noya_icons4.CheckIcon, null)),
|
|
2725
2721
|
children
|
|
2726
2722
|
);
|
|
2727
2723
|
}
|
|
2728
|
-
const element = /* @__PURE__ */
|
|
2724
|
+
const element = /* @__PURE__ */ import_react37.default.createElement(
|
|
2729
2725
|
ItemElement2,
|
|
2730
2726
|
{
|
|
2731
2727
|
disabled,
|
|
2732
2728
|
onSelect: handleSelectItem,
|
|
2733
2729
|
onPointerDown: handlePointerDown
|
|
2734
2730
|
},
|
|
2735
|
-
indented && /* @__PURE__ */
|
|
2736
|
-
icon && /* @__PURE__ */
|
|
2731
|
+
indented && /* @__PURE__ */ import_react37.default.createElement(Spacer.Horizontal, { size: CHECKBOX_WIDTH - CHECKBOX_RIGHT_INSET }),
|
|
2732
|
+
icon && /* @__PURE__ */ import_react37.default.createElement(import_react37.default.Fragment, null, icon, /* @__PURE__ */ import_react37.default.createElement(Spacer.Horizontal, { size: 8 })),
|
|
2737
2733
|
children,
|
|
2738
|
-
shortcut && /* @__PURE__ */
|
|
2739
|
-
items && items.length > 0 && /* @__PURE__ */
|
|
2734
|
+
shortcut && /* @__PURE__ */ import_react37.default.createElement(import_react37.default.Fragment, null, /* @__PURE__ */ import_react37.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react37.default.createElement(Spacer.Horizontal, { size: 24 }), /* @__PURE__ */ import_react37.default.createElement(KeyboardShortcut, { shortcut })),
|
|
2735
|
+
items && items.length > 0 && /* @__PURE__ */ import_react37.default.createElement(import_react37.default.Fragment, null, /* @__PURE__ */ import_react37.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react37.default.createElement(Spacer.Horizontal, { size: 16 }), /* @__PURE__ */ import_react37.default.createElement(import_noya_icons4.ChevronRightIcon, null))
|
|
2740
2736
|
);
|
|
2741
2737
|
if (items && items.length > 0) {
|
|
2742
|
-
return /* @__PURE__ */
|
|
2738
|
+
return /* @__PURE__ */ import_react37.default.createElement(ContextMenuRoot, { isNested: true, items, onSelect }, element);
|
|
2743
2739
|
} else {
|
|
2744
2740
|
return element;
|
|
2745
2741
|
}
|
|
@@ -2757,19 +2753,19 @@ function ContextMenuRoot({
|
|
|
2757
2753
|
const hasCheckedItem = items.some(
|
|
2758
2754
|
(item) => item !== SEPARATOR_ITEM && item.checked
|
|
2759
2755
|
);
|
|
2760
|
-
const keymap = (0,
|
|
2756
|
+
const keymap = (0, import_react37.useMemo)(
|
|
2761
2757
|
() => isNested || shouldBindKeyboardShortcuts === false ? {} : getKeyboardShortcutsForMenuItems(items, onSelect),
|
|
2762
2758
|
[isNested, items, onSelect, shouldBindKeyboardShortcuts]
|
|
2763
2759
|
);
|
|
2764
2760
|
(0, import_noya_keymap4.useKeyboardShortcuts)(keymap);
|
|
2765
|
-
const onPointerDown = (0,
|
|
2761
|
+
const onPointerDown = (0, import_react37.useCallback)((event) => {
|
|
2766
2762
|
event.preventDefault();
|
|
2767
2763
|
}, []);
|
|
2768
2764
|
const RootComponent = isNested ? RadixContextMenu.Sub : RadixContextMenu.Root;
|
|
2769
2765
|
const TriggerComponent = isNested ? RadixContextMenu.SubTrigger : RadixContextMenu.Trigger;
|
|
2770
2766
|
const ContentComponent = isNested ? SubContent4 : Content8;
|
|
2771
|
-
return /* @__PURE__ */
|
|
2772
|
-
(item, index) => item === SEPARATOR_ITEM ? /* @__PURE__ */
|
|
2767
|
+
return /* @__PURE__ */ import_react37.default.createElement(RootComponent, { onOpenChange }, /* @__PURE__ */ import_react37.default.createElement(TriggerComponent, { asChild: true, onPointerDown }, children), /* @__PURE__ */ import_react37.default.createElement(RadixContextMenu.Portal, null, /* @__PURE__ */ import_react37.default.createElement(ContentComponent, null, items.map(
|
|
2768
|
+
(item, index) => item === SEPARATOR_ITEM ? /* @__PURE__ */ import_react37.default.createElement(SeparatorElement2, { key: index }) : /* @__PURE__ */ import_react37.default.createElement(
|
|
2773
2769
|
ContextMenuItem2,
|
|
2774
2770
|
{
|
|
2775
2771
|
key: item.value ?? index,
|
|
@@ -2786,26 +2782,50 @@ function ContextMenuRoot({
|
|
|
2786
2782
|
)
|
|
2787
2783
|
))));
|
|
2788
2784
|
}
|
|
2789
|
-
var ContextMenu = (0,
|
|
2785
|
+
var ContextMenu = (0, import_react37.memo)(ContextMenuRoot);
|
|
2790
2786
|
|
|
2791
2787
|
// src/components/Divider.tsx
|
|
2792
|
-
var
|
|
2788
|
+
var import_react38 = __toESM(require("react"));
|
|
2793
2789
|
var import_styled_components18 = __toESM(require("styled-components"));
|
|
2794
|
-
var DividerContainer = import_styled_components18.default.div(({ theme, variant = "normal", orientation, overflow = 0 }) => ({
|
|
2795
|
-
|
|
2796
|
-
background: variant === "strong" ? theme.colors.dividerStrong : variant === "subtle" ? theme.colors.dividerSubtle : theme.colors.divider,
|
|
2790
|
+
var DividerContainer = import_styled_components18.default.div(({ theme, $variant = "normal", $orientation, $overflow = 0 }) => ({
|
|
2791
|
+
...$orientation === "horizontal" ? { height: "1px", minHeight: "1px", margin: `0px -${$overflow}px` } : { width: "1px", minWidth: "1px", margin: `-${$overflow}px 0px` },
|
|
2792
|
+
background: $variant === "strong" ? theme.colors.dividerStrong : $variant === "subtle" ? theme.colors.dividerSubtle : theme.colors.divider,
|
|
2797
2793
|
alignSelf: "stretch"
|
|
2798
2794
|
}));
|
|
2799
|
-
var Divider = (0,
|
|
2800
|
-
|
|
2795
|
+
var Divider = (0, import_react38.memo)(function Divider2({
|
|
2796
|
+
variant,
|
|
2797
|
+
overflow,
|
|
2798
|
+
...props
|
|
2799
|
+
}) {
|
|
2800
|
+
return /* @__PURE__ */ import_react38.default.createElement(
|
|
2801
|
+
DividerContainer,
|
|
2802
|
+
{
|
|
2803
|
+
$orientation: "horizontal",
|
|
2804
|
+
$variant: variant,
|
|
2805
|
+
$overflow: overflow,
|
|
2806
|
+
...props
|
|
2807
|
+
}
|
|
2808
|
+
);
|
|
2801
2809
|
});
|
|
2802
|
-
var DividerVertical = (0,
|
|
2803
|
-
|
|
2810
|
+
var DividerVertical = (0, import_react38.memo)(function DividerVertical2({
|
|
2811
|
+
variant,
|
|
2812
|
+
overflow,
|
|
2813
|
+
...props
|
|
2814
|
+
}) {
|
|
2815
|
+
return /* @__PURE__ */ import_react38.default.createElement(
|
|
2816
|
+
DividerContainer,
|
|
2817
|
+
{
|
|
2818
|
+
$orientation: "vertical",
|
|
2819
|
+
$variant: variant,
|
|
2820
|
+
$overflow: overflow,
|
|
2821
|
+
...props
|
|
2822
|
+
}
|
|
2823
|
+
);
|
|
2804
2824
|
});
|
|
2805
2825
|
|
|
2806
2826
|
// src/components/DraggableMenuButton.tsx
|
|
2807
2827
|
var import_noya_icons5 = require("@noya-app/noya-icons");
|
|
2808
|
-
var
|
|
2828
|
+
var import_react39 = __toESM(require("react"));
|
|
2809
2829
|
var import_styled_components19 = __toESM(require("styled-components"));
|
|
2810
2830
|
var DotButtonElement = import_styled_components19.default.div(({ theme }) => ({
|
|
2811
2831
|
cursor: "pointer",
|
|
@@ -2825,15 +2845,15 @@ var TriggerElement = import_styled_components19.default.div({
|
|
|
2825
2845
|
pointerEvents: "none",
|
|
2826
2846
|
height: "15px"
|
|
2827
2847
|
});
|
|
2828
|
-
var DraggableMenuButton = (0,
|
|
2848
|
+
var DraggableMenuButton = (0, import_react39.memo)(function DraggableMenuButton2({
|
|
2829
2849
|
items,
|
|
2830
2850
|
onSelect,
|
|
2831
2851
|
isVisible = true
|
|
2832
2852
|
}) {
|
|
2833
2853
|
const color = useDesignSystemTheme().colors.icon;
|
|
2834
|
-
const [open, setOpen] = (0,
|
|
2835
|
-
const [downPosition, setDownPosition] =
|
|
2836
|
-
const handlePointerDownCapture = (0,
|
|
2854
|
+
const [open, setOpen] = (0, import_react39.useState)(false);
|
|
2855
|
+
const [downPosition, setDownPosition] = import_react39.default.useState(null);
|
|
2856
|
+
const handlePointerDownCapture = (0, import_react39.useCallback)(
|
|
2837
2857
|
(event) => {
|
|
2838
2858
|
if (open) {
|
|
2839
2859
|
setDownPosition(null);
|
|
@@ -2846,7 +2866,7 @@ var DraggableMenuButton = (0, import_react38.memo)(function DraggableMenuButton2
|
|
|
2846
2866
|
},
|
|
2847
2867
|
[open]
|
|
2848
2868
|
);
|
|
2849
|
-
const handlePointerUp = (0,
|
|
2869
|
+
const handlePointerUp = (0, import_react39.useCallback)(
|
|
2850
2870
|
(event) => {
|
|
2851
2871
|
if (open || !downPosition) {
|
|
2852
2872
|
setDownPosition(null);
|
|
@@ -2862,14 +2882,14 @@ var DraggableMenuButton = (0, import_react38.memo)(function DraggableMenuButton2
|
|
|
2862
2882
|
},
|
|
2863
2883
|
[downPosition, open]
|
|
2864
2884
|
);
|
|
2865
|
-
const handleOpenChange = (0,
|
|
2885
|
+
const handleOpenChange = (0, import_react39.useCallback)(
|
|
2866
2886
|
(isOpen) => {
|
|
2867
2887
|
if (!isOpen)
|
|
2868
2888
|
setOpen(false);
|
|
2869
2889
|
},
|
|
2870
2890
|
[setOpen]
|
|
2871
2891
|
);
|
|
2872
|
-
return /* @__PURE__ */
|
|
2892
|
+
return /* @__PURE__ */ import_react39.default.createElement(
|
|
2873
2893
|
DotButtonElement,
|
|
2874
2894
|
{
|
|
2875
2895
|
onPointerDownCapture: handlePointerDownCapture,
|
|
@@ -2879,7 +2899,7 @@ var DraggableMenuButton = (0, import_react38.memo)(function DraggableMenuButton2
|
|
|
2879
2899
|
event.preventDefault();
|
|
2880
2900
|
}
|
|
2881
2901
|
},
|
|
2882
|
-
items && onSelect ? /* @__PURE__ */
|
|
2902
|
+
items && onSelect ? /* @__PURE__ */ import_react39.default.createElement(
|
|
2883
2903
|
DropdownMenu,
|
|
2884
2904
|
{
|
|
2885
2905
|
open,
|
|
@@ -2888,13 +2908,13 @@ var DraggableMenuButton = (0, import_react38.memo)(function DraggableMenuButton2
|
|
|
2888
2908
|
onSelect,
|
|
2889
2909
|
shouldBindKeyboardShortcuts: false
|
|
2890
2910
|
},
|
|
2891
|
-
/* @__PURE__ */
|
|
2911
|
+
/* @__PURE__ */ import_react39.default.createElement(TriggerElement, null, /* @__PURE__ */ import_react39.default.createElement(
|
|
2892
2912
|
import_noya_icons5.DragHandleDots2Icon,
|
|
2893
2913
|
{
|
|
2894
2914
|
color: isVisible || open ? color : "transparent"
|
|
2895
2915
|
}
|
|
2896
2916
|
))
|
|
2897
|
-
) : /* @__PURE__ */
|
|
2917
|
+
) : /* @__PURE__ */ import_react39.default.createElement(
|
|
2898
2918
|
import_noya_icons5.DragHandleDots2Icon,
|
|
2899
2919
|
{
|
|
2900
2920
|
color: isVisible || open ? color : "transparent"
|
|
@@ -2904,7 +2924,7 @@ var DraggableMenuButton = (0, import_react38.memo)(function DraggableMenuButton2
|
|
|
2904
2924
|
});
|
|
2905
2925
|
|
|
2906
2926
|
// src/components/FillInputField.tsx
|
|
2907
|
-
var
|
|
2927
|
+
var import_react43 = __toESM(require("react"));
|
|
2908
2928
|
var import_styled_components21 = __toESM(require("styled-components"));
|
|
2909
2929
|
|
|
2910
2930
|
// ../noya-file-format/src/types.ts
|
|
@@ -3230,26 +3250,26 @@ var ClassValue = /* @__PURE__ */ ((ClassValue2) => {
|
|
|
3230
3250
|
})(ClassValue || {});
|
|
3231
3251
|
|
|
3232
3252
|
// src/components/FillPreviewBackground.tsx
|
|
3233
|
-
var
|
|
3253
|
+
var import_react42 = __toESM(require("react"));
|
|
3234
3254
|
var import_styled_components20 = __toESM(require("styled-components"));
|
|
3235
3255
|
|
|
3236
3256
|
// src/contexts/ImageDataContext.tsx
|
|
3237
|
-
var
|
|
3238
|
-
var ImageDataContext = (0,
|
|
3257
|
+
var import_react40 = __toESM(require("react"));
|
|
3258
|
+
var ImageDataContext = (0, import_react40.createContext)(
|
|
3239
3259
|
void 0
|
|
3240
3260
|
);
|
|
3241
|
-
var ImageDataProvider = (0,
|
|
3261
|
+
var ImageDataProvider = (0, import_react40.memo)(function ImageDataProvider2({
|
|
3242
3262
|
children,
|
|
3243
3263
|
getImageData
|
|
3244
3264
|
}) {
|
|
3245
|
-
const contextValue = (0,
|
|
3265
|
+
const contextValue = (0, import_react40.useMemo)(
|
|
3246
3266
|
() => ({ getImageData: getImageData ?? (() => void 0) }),
|
|
3247
3267
|
[getImageData]
|
|
3248
3268
|
);
|
|
3249
|
-
return /* @__PURE__ */
|
|
3269
|
+
return /* @__PURE__ */ import_react40.default.createElement(ImageDataContext.Provider, { value: contextValue }, children);
|
|
3250
3270
|
});
|
|
3251
3271
|
function useImageData(ref) {
|
|
3252
|
-
const value = (0,
|
|
3272
|
+
const value = (0, import_react40.useContext)(ImageDataContext);
|
|
3253
3273
|
if (!value) {
|
|
3254
3274
|
throw new Error("Missing ImageDataProvider");
|
|
3255
3275
|
}
|
|
@@ -3257,15 +3277,15 @@ function useImageData(ref) {
|
|
|
3257
3277
|
}
|
|
3258
3278
|
|
|
3259
3279
|
// src/hooks/useObjectURL.ts
|
|
3260
|
-
var
|
|
3280
|
+
var import_react41 = require("react");
|
|
3261
3281
|
function useObjectURL(object) {
|
|
3262
|
-
const objectURL = (0,
|
|
3282
|
+
const objectURL = (0, import_react41.useMemo)(() => {
|
|
3263
3283
|
if (object instanceof Blob)
|
|
3264
3284
|
return URL.createObjectURL(object);
|
|
3265
3285
|
const bytes = object instanceof Uint8Array ? object : object !== void 0 ? new Uint8Array(object) : new Uint8Array();
|
|
3266
3286
|
return URL.createObjectURL(new Blob([bytes]));
|
|
3267
3287
|
}, [object]);
|
|
3268
|
-
(0,
|
|
3288
|
+
(0, import_react41.useLayoutEffect)(() => {
|
|
3269
3289
|
return () => URL.revokeObjectURL(objectURL);
|
|
3270
3290
|
}, [objectURL]);
|
|
3271
3291
|
return objectURL;
|
|
@@ -3321,9 +3341,9 @@ var Background = import_styled_components20.default.span(({ background }) => ({
|
|
|
3321
3341
|
position: "absolute",
|
|
3322
3342
|
inset: 0
|
|
3323
3343
|
}));
|
|
3324
|
-
var HorizontalDotsBackground = (0,
|
|
3344
|
+
var HorizontalDotsBackground = (0, import_react42.memo)(function HorizontalDotsBackground2() {
|
|
3325
3345
|
const { inputBackground, placeholderDots } = (0, import_styled_components20.useTheme)().colors;
|
|
3326
|
-
const background = (0,
|
|
3346
|
+
const background = (0, import_react42.useMemo)(
|
|
3327
3347
|
() => [
|
|
3328
3348
|
`center url("data:image/svg+xml;utf8,${dotsHorizontalSvg(
|
|
3329
3349
|
placeholderDots
|
|
@@ -3332,7 +3352,7 @@ var HorizontalDotsBackground = (0, import_react41.memo)(function HorizontalDotsB
|
|
|
3332
3352
|
].join(","),
|
|
3333
3353
|
[inputBackground, placeholderDots]
|
|
3334
3354
|
);
|
|
3335
|
-
return /* @__PURE__ */
|
|
3355
|
+
return /* @__PURE__ */ import_react42.default.createElement(Background, { background });
|
|
3336
3356
|
});
|
|
3337
3357
|
function getPatternSizeAndPosition(fillType, tileScale) {
|
|
3338
3358
|
switch (fillType) {
|
|
@@ -3346,7 +3366,7 @@ function getPatternSizeAndPosition(fillType, tileScale) {
|
|
|
3346
3366
|
return "center / 100% 100%";
|
|
3347
3367
|
}
|
|
3348
3368
|
}
|
|
3349
|
-
var PatternPreviewBackground = (0,
|
|
3369
|
+
var PatternPreviewBackground = (0, import_react42.memo)(function PatternPreviewBackground2({
|
|
3350
3370
|
fillType,
|
|
3351
3371
|
tileScale,
|
|
3352
3372
|
imageRef
|
|
@@ -3354,7 +3374,7 @@ var PatternPreviewBackground = (0, import_react41.memo)(function PatternPreviewB
|
|
|
3354
3374
|
const image = useImageData(imageRef);
|
|
3355
3375
|
const url = useObjectURL(image);
|
|
3356
3376
|
const size2 = getPatternSizeAndPosition(fillType, tileScale);
|
|
3357
|
-
const background = (0,
|
|
3377
|
+
const background = (0, import_react42.useMemo)(
|
|
3358
3378
|
() => [
|
|
3359
3379
|
size2,
|
|
3360
3380
|
`url(${url})`,
|
|
@@ -3362,37 +3382,37 @@ var PatternPreviewBackground = (0, import_react41.memo)(function PatternPreviewB
|
|
|
3362
3382
|
].join(" "),
|
|
3363
3383
|
[fillType, size2, url]
|
|
3364
3384
|
);
|
|
3365
|
-
return /* @__PURE__ */
|
|
3385
|
+
return /* @__PURE__ */ import_react42.default.createElement(Background, { background });
|
|
3366
3386
|
});
|
|
3367
|
-
var ColorPreviewBackground = (0,
|
|
3387
|
+
var ColorPreviewBackground = (0, import_react42.memo)(function ColorPreviewBackground2({
|
|
3368
3388
|
color
|
|
3369
3389
|
}) {
|
|
3370
|
-
const background = (0,
|
|
3371
|
-
return /* @__PURE__ */
|
|
3390
|
+
const background = (0, import_react42.useMemo)(() => sketchColorToRgbaString(color), [color]);
|
|
3391
|
+
return /* @__PURE__ */ import_react42.default.createElement(Background, { background });
|
|
3372
3392
|
});
|
|
3373
|
-
var GradientPreviewBackground = (0,
|
|
3393
|
+
var GradientPreviewBackground = (0, import_react42.memo)(function GradientPreviewBackground2({
|
|
3374
3394
|
gradient
|
|
3375
3395
|
}) {
|
|
3376
|
-
const background = (0,
|
|
3396
|
+
const background = (0, import_react42.useMemo)(
|
|
3377
3397
|
() => getGradientBackground(gradient.stops, gradient.gradientType, 180),
|
|
3378
3398
|
[gradient.gradientType, gradient.stops]
|
|
3379
3399
|
);
|
|
3380
|
-
return /* @__PURE__ */
|
|
3400
|
+
return /* @__PURE__ */ import_react42.default.createElement(Background, { background });
|
|
3381
3401
|
});
|
|
3382
|
-
var FillPreviewBackground = (0,
|
|
3402
|
+
var FillPreviewBackground = (0, import_react42.memo)(function FillPreviewBackground2({
|
|
3383
3403
|
value
|
|
3384
3404
|
}) {
|
|
3385
3405
|
if (!value)
|
|
3386
|
-
return /* @__PURE__ */
|
|
3406
|
+
return /* @__PURE__ */ import_react42.default.createElement(HorizontalDotsBackground, null);
|
|
3387
3407
|
switch (value._class) {
|
|
3388
3408
|
case "color":
|
|
3389
|
-
return /* @__PURE__ */
|
|
3409
|
+
return /* @__PURE__ */ import_react42.default.createElement(ColorPreviewBackground, { color: value });
|
|
3390
3410
|
case "gradient":
|
|
3391
|
-
return /* @__PURE__ */
|
|
3411
|
+
return /* @__PURE__ */ import_react42.default.createElement(GradientPreviewBackground, { gradient: value });
|
|
3392
3412
|
case "pattern":
|
|
3393
3413
|
if (!value.image)
|
|
3394
3414
|
return null;
|
|
3395
|
-
return /* @__PURE__ */
|
|
3415
|
+
return /* @__PURE__ */ import_react42.default.createElement(
|
|
3396
3416
|
PatternPreviewBackground,
|
|
3397
3417
|
{
|
|
3398
3418
|
fillType: value.patternFillType,
|
|
@@ -3405,7 +3425,7 @@ var FillPreviewBackground = (0, import_react41.memo)(function FillPreviewBackgro
|
|
|
3405
3425
|
|
|
3406
3426
|
// src/components/FillInputField.tsx
|
|
3407
3427
|
var Container = import_styled_components21.default.button(
|
|
3408
|
-
({ theme, flex }) => ({
|
|
3428
|
+
({ theme, $flex }) => ({
|
|
3409
3429
|
outline: "none",
|
|
3410
3430
|
padding: 0,
|
|
3411
3431
|
width: "50px",
|
|
@@ -3419,17 +3439,17 @@ var Container = import_styled_components21.default.button(
|
|
|
3419
3439
|
boxShadow: `0 0 0 1px ${theme.colors.sidebar.background}, 0 0 0 3px ${theme.colors.primary}`
|
|
3420
3440
|
},
|
|
3421
3441
|
position: "relative",
|
|
3422
|
-
flex
|
|
3442
|
+
flex: $flex
|
|
3423
3443
|
})
|
|
3424
3444
|
);
|
|
3425
|
-
var FillInputField = (0,
|
|
3426
|
-
(0,
|
|
3427
|
-
return /* @__PURE__ */
|
|
3445
|
+
var FillInputField = (0, import_react43.memo)(
|
|
3446
|
+
(0, import_react43.forwardRef)(function FillInputField2({ id, value, flex, ...rest }, ref) {
|
|
3447
|
+
return /* @__PURE__ */ import_react43.default.createElement(Container, { ref, id, $flex: flex, ...rest }, /* @__PURE__ */ import_react43.default.createElement(FillPreviewBackground, { value }));
|
|
3428
3448
|
})
|
|
3429
3449
|
);
|
|
3430
3450
|
|
|
3431
3451
|
// src/components/FloatingWindow.tsx
|
|
3432
|
-
var
|
|
3452
|
+
var import_react44 = __toESM(require("react"));
|
|
3433
3453
|
var styles2 = {
|
|
3434
3454
|
noSelect: {
|
|
3435
3455
|
userSelect: "none",
|
|
@@ -3522,7 +3542,7 @@ function defaultRenderToolbar({
|
|
|
3522
3542
|
toolbarContent,
|
|
3523
3543
|
onClose
|
|
3524
3544
|
}) {
|
|
3525
|
-
return /* @__PURE__ */
|
|
3545
|
+
return /* @__PURE__ */ import_react44.default.createElement(import_react44.default.Fragment, null, /* @__PURE__ */ import_react44.default.createElement(Small, { flex: "1", fontWeight: "500", color: "text" }, title), toolbarContent, /* @__PURE__ */ import_react44.default.createElement(
|
|
3526
3546
|
IconButton,
|
|
3527
3547
|
{
|
|
3528
3548
|
iconName: "Cross3Icon",
|
|
@@ -3547,16 +3567,16 @@ var FloatingWindow = ({
|
|
|
3547
3567
|
toolbarContent,
|
|
3548
3568
|
renderToolbar = defaultRenderToolbar
|
|
3549
3569
|
}) => {
|
|
3550
|
-
const [position, setPosition] = (0,
|
|
3551
|
-
const [size2, setSize] = (0,
|
|
3570
|
+
const [position, setPosition] = (0, import_react44.useState)({ x: initialX, y: initialY });
|
|
3571
|
+
const [size2, setSize] = (0, import_react44.useState)({
|
|
3552
3572
|
width: initialWidth,
|
|
3553
3573
|
height: initialHeight
|
|
3554
3574
|
});
|
|
3555
|
-
const [isDragging, setIsDragging] = (0,
|
|
3556
|
-
const [isResizing, setIsResizing] = (0,
|
|
3557
|
-
const [dragOffset, setDragOffset] = (0,
|
|
3558
|
-
const [resizeDirection, setResizeDirection] = (0,
|
|
3559
|
-
const wrapperRef = (0,
|
|
3575
|
+
const [isDragging, setIsDragging] = (0, import_react44.useState)(false);
|
|
3576
|
+
const [isResizing, setIsResizing] = (0, import_react44.useState)(false);
|
|
3577
|
+
const [dragOffset, setDragOffset] = (0, import_react44.useState)({ x: 0, y: 0 });
|
|
3578
|
+
const [resizeDirection, setResizeDirection] = (0, import_react44.useState)(null);
|
|
3579
|
+
const wrapperRef = (0, import_react44.useRef)(null);
|
|
3560
3580
|
const toggleGlobalTextSelection = (disable) => {
|
|
3561
3581
|
if (disable) {
|
|
3562
3582
|
document.body.style.userSelect = "none";
|
|
@@ -3564,7 +3584,7 @@ var FloatingWindow = ({
|
|
|
3564
3584
|
document.body.style.userSelect = "";
|
|
3565
3585
|
}
|
|
3566
3586
|
};
|
|
3567
|
-
const handleMouseDown = (0,
|
|
3587
|
+
const handleMouseDown = (0, import_react44.useCallback)((e) => {
|
|
3568
3588
|
if (!wrapperRef.current)
|
|
3569
3589
|
return;
|
|
3570
3590
|
const rect = wrapperRef.current.getBoundingClientRect();
|
|
@@ -3574,7 +3594,7 @@ var FloatingWindow = ({
|
|
|
3574
3594
|
});
|
|
3575
3595
|
setIsDragging(true);
|
|
3576
3596
|
}, []);
|
|
3577
|
-
const handleResizeStart = (0,
|
|
3597
|
+
const handleResizeStart = (0, import_react44.useCallback)(
|
|
3578
3598
|
(direction) => (e) => {
|
|
3579
3599
|
e.stopPropagation();
|
|
3580
3600
|
setIsResizing(true);
|
|
@@ -3583,7 +3603,7 @@ var FloatingWindow = ({
|
|
|
3583
3603
|
},
|
|
3584
3604
|
[]
|
|
3585
3605
|
);
|
|
3586
|
-
const handleMouseMove = (0,
|
|
3606
|
+
const handleMouseMove = (0, import_react44.useCallback)(
|
|
3587
3607
|
(e) => {
|
|
3588
3608
|
if (isDragging) {
|
|
3589
3609
|
setPosition({
|
|
@@ -3637,13 +3657,13 @@ var FloatingWindow = ({
|
|
|
3637
3657
|
minHeight
|
|
3638
3658
|
]
|
|
3639
3659
|
);
|
|
3640
|
-
const handleMouseUp = (0,
|
|
3660
|
+
const handleMouseUp = (0, import_react44.useCallback)((e) => {
|
|
3641
3661
|
setIsDragging(false);
|
|
3642
3662
|
setIsResizing(false);
|
|
3643
3663
|
setResizeDirection(null);
|
|
3644
3664
|
toggleGlobalTextSelection(false);
|
|
3645
3665
|
}, []);
|
|
3646
|
-
|
|
3666
|
+
import_react44.default.useEffect(() => {
|
|
3647
3667
|
document.addEventListener("mousemove", handleMouseMove);
|
|
3648
3668
|
document.addEventListener("mouseup", handleMouseUp);
|
|
3649
3669
|
return () => {
|
|
@@ -3654,12 +3674,12 @@ var FloatingWindow = ({
|
|
|
3654
3674
|
const theme = useDesignSystemTheme();
|
|
3655
3675
|
const floatingWindowManager = useFloatingWindowManager();
|
|
3656
3676
|
const currentFloatingWindow = useCurrentFloatingWindowInternal();
|
|
3657
|
-
const handleClose = (0,
|
|
3677
|
+
const handleClose = (0, import_react44.useCallback)(() => {
|
|
3658
3678
|
if (onClose)
|
|
3659
3679
|
onClose();
|
|
3660
3680
|
floatingWindowManager.closeWindow(currentFloatingWindow.id);
|
|
3661
3681
|
}, [currentFloatingWindow.id, floatingWindowManager, onClose]);
|
|
3662
|
-
return /* @__PURE__ */
|
|
3682
|
+
return /* @__PURE__ */ import_react44.default.createElement(
|
|
3663
3683
|
"div",
|
|
3664
3684
|
{
|
|
3665
3685
|
ref: wrapperRef,
|
|
@@ -3673,7 +3693,7 @@ var FloatingWindow = ({
|
|
|
3673
3693
|
backgroundColor: theme.colors.canvas.background
|
|
3674
3694
|
}
|
|
3675
3695
|
},
|
|
3676
|
-
/* @__PURE__ */
|
|
3696
|
+
/* @__PURE__ */ import_react44.default.createElement(
|
|
3677
3697
|
"div",
|
|
3678
3698
|
{
|
|
3679
3699
|
style: {
|
|
@@ -3684,9 +3704,9 @@ var FloatingWindow = ({
|
|
|
3684
3704
|
},
|
|
3685
3705
|
renderToolbar({ title, toolbarContent, onClose: handleClose })
|
|
3686
3706
|
),
|
|
3687
|
-
/* @__PURE__ */
|
|
3688
|
-
/* @__PURE__ */
|
|
3689
|
-
Object.entries(resizeHandlePositions).map(([direction, style3]) => /* @__PURE__ */
|
|
3707
|
+
/* @__PURE__ */ import_react44.default.createElement(Divider, null),
|
|
3708
|
+
/* @__PURE__ */ import_react44.default.createElement("div", { style: styles2.content }, children),
|
|
3709
|
+
Object.entries(resizeHandlePositions).map(([direction, style3]) => /* @__PURE__ */ import_react44.default.createElement(
|
|
3690
3710
|
"div",
|
|
3691
3711
|
{
|
|
3692
3712
|
key: direction,
|
|
@@ -3699,8 +3719,8 @@ var FloatingWindow = ({
|
|
|
3699
3719
|
|
|
3700
3720
|
// src/components/GradientPicker.tsx
|
|
3701
3721
|
var import_noya_colorpicker2 = require("@noya-app/noya-colorpicker");
|
|
3702
|
-
var
|
|
3703
|
-
var GradientPicker = (0,
|
|
3722
|
+
var import_react45 = __toESM(require("react"));
|
|
3723
|
+
var GradientPicker = (0, import_react45.memo)(function GradientPicker2({
|
|
3704
3724
|
value,
|
|
3705
3725
|
selectedStop,
|
|
3706
3726
|
onChangeColor,
|
|
@@ -3709,7 +3729,7 @@ var GradientPicker = (0, import_react44.memo)(function GradientPicker2({
|
|
|
3709
3729
|
onDelete,
|
|
3710
3730
|
onSelectStop
|
|
3711
3731
|
}) {
|
|
3712
|
-
const colorModel = (0,
|
|
3732
|
+
const colorModel = (0, import_react45.useMemo)(
|
|
3713
3733
|
() => ({
|
|
3714
3734
|
defaultColor: { r: 0, g: 0, b: 0, a: 1 },
|
|
3715
3735
|
toHsva: import_noya_colorpicker2.rgbaToHsva,
|
|
@@ -3718,30 +3738,30 @@ var GradientPicker = (0, import_react44.memo)(function GradientPicker2({
|
|
|
3718
3738
|
}),
|
|
3719
3739
|
[]
|
|
3720
3740
|
);
|
|
3721
|
-
const rgbaColor = (0,
|
|
3741
|
+
const rgbaColor = (0, import_react45.useMemo)(
|
|
3722
3742
|
() => sketchColorToRgba(value[selectedStop].color),
|
|
3723
3743
|
[value, selectedStop]
|
|
3724
3744
|
);
|
|
3725
|
-
const handleChangeColor = (0,
|
|
3745
|
+
const handleChangeColor = (0, import_react45.useCallback)(
|
|
3726
3746
|
(value2) => {
|
|
3727
3747
|
onChangeColor(rgbaToSketchColor(value2));
|
|
3728
3748
|
},
|
|
3729
3749
|
[onChangeColor]
|
|
3730
3750
|
);
|
|
3731
|
-
const handleAddGradientStop = (0,
|
|
3751
|
+
const handleAddGradientStop = (0, import_react45.useCallback)(
|
|
3732
3752
|
(value2, position) => {
|
|
3733
3753
|
onAdd(rgbaToSketchColor(value2), position);
|
|
3734
3754
|
},
|
|
3735
3755
|
[onAdd]
|
|
3736
3756
|
);
|
|
3737
|
-
return /* @__PURE__ */
|
|
3757
|
+
return /* @__PURE__ */ import_react45.default.createElement(
|
|
3738
3758
|
import_noya_colorpicker2.ColorPicker,
|
|
3739
3759
|
{
|
|
3740
3760
|
onChange: handleChangeColor,
|
|
3741
3761
|
colorModel,
|
|
3742
3762
|
color: rgbaColor
|
|
3743
3763
|
},
|
|
3744
|
-
/* @__PURE__ */
|
|
3764
|
+
/* @__PURE__ */ import_react45.default.createElement(
|
|
3745
3765
|
import_noya_colorpicker2.Gradient,
|
|
3746
3766
|
{
|
|
3747
3767
|
gradients: value,
|
|
@@ -3752,12 +3772,12 @@ var GradientPicker = (0, import_react44.memo)(function GradientPicker2({
|
|
|
3752
3772
|
onDelete
|
|
3753
3773
|
}
|
|
3754
3774
|
),
|
|
3755
|
-
/* @__PURE__ */
|
|
3756
|
-
/* @__PURE__ */
|
|
3757
|
-
/* @__PURE__ */
|
|
3758
|
-
/* @__PURE__ */
|
|
3759
|
-
/* @__PURE__ */
|
|
3760
|
-
/* @__PURE__ */
|
|
3775
|
+
/* @__PURE__ */ import_react45.default.createElement(Spacer.Vertical, { size: 10 }),
|
|
3776
|
+
/* @__PURE__ */ import_react45.default.createElement(import_noya_colorpicker2.Saturation, null),
|
|
3777
|
+
/* @__PURE__ */ import_react45.default.createElement(Spacer.Vertical, { size: 12 }),
|
|
3778
|
+
/* @__PURE__ */ import_react45.default.createElement(import_noya_colorpicker2.Hue, null),
|
|
3779
|
+
/* @__PURE__ */ import_react45.default.createElement(Spacer.Vertical, { size: 5 }),
|
|
3780
|
+
/* @__PURE__ */ import_react45.default.createElement(import_noya_colorpicker2.Alpha, null)
|
|
3761
3781
|
);
|
|
3762
3782
|
});
|
|
3763
3783
|
|
|
@@ -3789,12 +3809,12 @@ var Grid = import_styled_components22.default.div((props) => ({
|
|
|
3789
3809
|
}));
|
|
3790
3810
|
|
|
3791
3811
|
// src/components/GridView.tsx
|
|
3792
|
-
var
|
|
3812
|
+
var import_react47 = __toESM(require("react"));
|
|
3793
3813
|
var import_styled_components24 = __toESM(require("styled-components"));
|
|
3794
3814
|
|
|
3795
3815
|
// src/components/ScrollArea.tsx
|
|
3796
3816
|
var RadixScrollArea = __toESM(require("@radix-ui/react-scroll-area"));
|
|
3797
|
-
var
|
|
3817
|
+
var import_react46 = __toESM(require("react"));
|
|
3798
3818
|
var import_styled_components23 = __toESM(require("styled-components"));
|
|
3799
3819
|
var SCROLLBAR_SIZE = 10;
|
|
3800
3820
|
var StyledViewport = (0, import_styled_components23.default)(RadixScrollArea.Viewport)({
|
|
@@ -3822,18 +3842,18 @@ var Container2 = import_styled_components23.default.div({
|
|
|
3822
3842
|
flex: "1 1 0px",
|
|
3823
3843
|
minHeight: 0
|
|
3824
3844
|
});
|
|
3825
|
-
var ScrollArea = (0,
|
|
3826
|
-
const [scrollElementRef, setScrollElementRef] = (0,
|
|
3827
|
-
return /* @__PURE__ */
|
|
3845
|
+
var ScrollArea = (0, import_react46.memo)(function ScrollArea2({ children }) {
|
|
3846
|
+
const [scrollElementRef, setScrollElementRef] = (0, import_react46.useState)(null);
|
|
3847
|
+
return /* @__PURE__ */ import_react46.default.createElement(Container2, null, /* @__PURE__ */ import_react46.default.createElement(RadixScrollArea.Root, { style: { width: "100%", height: "100%" } }, /* @__PURE__ */ import_react46.default.createElement(
|
|
3828
3848
|
StyledViewport,
|
|
3829
3849
|
{
|
|
3830
|
-
ref: (0,
|
|
3850
|
+
ref: (0, import_react46.useCallback)(
|
|
3831
3851
|
(ref) => setScrollElementRef(ref),
|
|
3832
3852
|
[]
|
|
3833
3853
|
)
|
|
3834
3854
|
},
|
|
3835
3855
|
typeof children === "function" ? scrollElementRef ? children(scrollElementRef) : null : children
|
|
3836
|
-
), /* @__PURE__ */
|
|
3856
|
+
), /* @__PURE__ */ import_react46.default.createElement(StyledScrollbar, { orientation: "vertical", className: "scroll-component" }, /* @__PURE__ */ import_react46.default.createElement(StyledThumb, { className: "scroll-component" }))));
|
|
3837
3857
|
});
|
|
3838
3858
|
|
|
3839
3859
|
// src/components/GridView.tsx
|
|
@@ -4013,7 +4033,7 @@ var Shimmer = import_styled_components24.default.div`
|
|
|
4013
4033
|
align-items: end;
|
|
4014
4034
|
padding: 4px;
|
|
4015
4035
|
`;
|
|
4016
|
-
var GridViewItem = (0,
|
|
4036
|
+
var GridViewItem = (0, import_react47.forwardRef)(function GridViewItem2({
|
|
4017
4037
|
id,
|
|
4018
4038
|
title,
|
|
4019
4039
|
subtitle,
|
|
@@ -4029,15 +4049,15 @@ var GridViewItem = (0, import_react46.forwardRef)(function GridViewItem2({
|
|
|
4029
4049
|
onContextMenu,
|
|
4030
4050
|
style: style3
|
|
4031
4051
|
}, forwardedRef) {
|
|
4032
|
-
const [hovered, setHovered] =
|
|
4052
|
+
const [hovered, setHovered] = import_react47.default.useState(false);
|
|
4033
4053
|
const { hoverProps } = useHover({
|
|
4034
4054
|
onHoverChange: (isHovering) => {
|
|
4035
4055
|
onHoverChange?.(isHovering);
|
|
4036
4056
|
setHovered(isHovering);
|
|
4037
4057
|
}
|
|
4038
4058
|
});
|
|
4039
|
-
const { textPosition, bordered, disabled } = (0,
|
|
4040
|
-
const handleClick = (0,
|
|
4059
|
+
const { textPosition, bordered, disabled } = (0, import_react47.useContext)(GridViewContext);
|
|
4060
|
+
const handleClick = (0, import_react47.useCallback)(
|
|
4041
4061
|
(event) => {
|
|
4042
4062
|
event.stopPropagation();
|
|
4043
4063
|
event.preventDefault();
|
|
@@ -4046,7 +4066,7 @@ var GridViewItem = (0, import_react46.forwardRef)(function GridViewItem2({
|
|
|
4046
4066
|
},
|
|
4047
4067
|
[onClick, onPress]
|
|
4048
4068
|
);
|
|
4049
|
-
const handleKeyDown = (0,
|
|
4069
|
+
const handleKeyDown = (0, import_react47.useCallback)(
|
|
4050
4070
|
(event) => {
|
|
4051
4071
|
if (event.key === "Enter" || event.key === " ") {
|
|
4052
4072
|
event.stopPropagation();
|
|
@@ -4058,7 +4078,7 @@ var GridViewItem = (0, import_react46.forwardRef)(function GridViewItem2({
|
|
|
4058
4078
|
},
|
|
4059
4079
|
[onPress]
|
|
4060
4080
|
);
|
|
4061
|
-
let element = /* @__PURE__ */
|
|
4081
|
+
let element = /* @__PURE__ */ import_react47.default.createElement(
|
|
4062
4082
|
ItemContainer,
|
|
4063
4083
|
{
|
|
4064
4084
|
id,
|
|
@@ -4067,7 +4087,7 @@ var GridViewItem = (0, import_react46.forwardRef)(function GridViewItem2({
|
|
|
4067
4087
|
tabIndex: disabled ? void 0 : 0,
|
|
4068
4088
|
onKeyDown: handleKeyDown
|
|
4069
4089
|
},
|
|
4070
|
-
/* @__PURE__ */
|
|
4090
|
+
/* @__PURE__ */ import_react47.default.createElement(
|
|
4071
4091
|
ContentContainer,
|
|
4072
4092
|
{
|
|
4073
4093
|
disabled,
|
|
@@ -4081,25 +4101,25 @@ var GridViewItem = (0, import_react46.forwardRef)(function GridViewItem2({
|
|
|
4081
4101
|
},
|
|
4082
4102
|
children
|
|
4083
4103
|
),
|
|
4084
|
-
textPosition === "below" && /* @__PURE__ */
|
|
4085
|
-
textPosition === "overlay" && hovered && (title || subtitle) && /* @__PURE__ */
|
|
4086
|
-
loading && /* @__PURE__ */
|
|
4104
|
+
textPosition === "below" && /* @__PURE__ */ import_react47.default.createElement(import_react47.default.Fragment, null, /* @__PURE__ */ import_react47.default.createElement(Spacer.Vertical, { size: 8 }), /* @__PURE__ */ import_react47.default.createElement(ItemTitle, { showBackground: false }, title || " "), /* @__PURE__ */ import_react47.default.createElement(ItemDescription, { showBackground: false }, subtitle || " ")),
|
|
4105
|
+
textPosition === "overlay" && hovered && (title || subtitle) && /* @__PURE__ */ import_react47.default.createElement(TextOverlay, null, title && /* @__PURE__ */ import_react47.default.createElement(ItemTitle, { showBackground: true }, title), subtitle && /* @__PURE__ */ import_react47.default.createElement(ItemDescription, { showBackground: true }, subtitle)),
|
|
4106
|
+
loading && /* @__PURE__ */ import_react47.default.createElement(Shimmer, null, /* @__PURE__ */ import_react47.default.createElement(ActivityIndicator, { opacity: 0.5, size: 13 }))
|
|
4087
4107
|
);
|
|
4088
4108
|
if (menuItems && onSelectMenuItem) {
|
|
4089
|
-
element = /* @__PURE__ */
|
|
4109
|
+
element = /* @__PURE__ */ import_react47.default.createElement(ContextMenu, { items: menuItems, onSelect: onSelectMenuItem }, element);
|
|
4090
4110
|
}
|
|
4091
4111
|
if (textPosition === "toolip") {
|
|
4092
|
-
element = /* @__PURE__ */
|
|
4112
|
+
element = /* @__PURE__ */ import_react47.default.createElement(
|
|
4093
4113
|
Tooltip,
|
|
4094
4114
|
{
|
|
4095
|
-
content: /* @__PURE__ */
|
|
4115
|
+
content: /* @__PURE__ */ import_react47.default.createElement(Stack.V, { gap: 2 }, /* @__PURE__ */ import_react47.default.createElement(ItemTitle, { showBackground: false }, title), /* @__PURE__ */ import_react47.default.createElement(ItemDescription, { showBackground: false }, subtitle))
|
|
4096
4116
|
},
|
|
4097
4117
|
element
|
|
4098
4118
|
);
|
|
4099
4119
|
}
|
|
4100
4120
|
return element;
|
|
4101
4121
|
});
|
|
4102
|
-
var GridViewContext = (0,
|
|
4122
|
+
var GridViewContext = (0, import_react47.createContext)({
|
|
4103
4123
|
size: "small",
|
|
4104
4124
|
textPosition: "below",
|
|
4105
4125
|
bordered: false,
|
|
@@ -4114,7 +4134,7 @@ function GridViewRoot({
|
|
|
4114
4134
|
bordered = false,
|
|
4115
4135
|
disabled = false
|
|
4116
4136
|
}) {
|
|
4117
|
-
const handleClick = (0,
|
|
4137
|
+
const handleClick = (0, import_react47.useCallback)(
|
|
4118
4138
|
(event) => {
|
|
4119
4139
|
event.stopPropagation();
|
|
4120
4140
|
event.preventDefault();
|
|
@@ -4122,7 +4142,7 @@ function GridViewRoot({
|
|
|
4122
4142
|
},
|
|
4123
4143
|
[onClick]
|
|
4124
4144
|
);
|
|
4125
|
-
const contextValue = (0,
|
|
4145
|
+
const contextValue = (0, import_react47.useMemo)(
|
|
4126
4146
|
() => ({
|
|
4127
4147
|
size: size2,
|
|
4128
4148
|
textPosition,
|
|
@@ -4131,33 +4151,33 @@ function GridViewRoot({
|
|
|
4131
4151
|
}),
|
|
4132
4152
|
[bordered, disabled, size2, textPosition]
|
|
4133
4153
|
);
|
|
4134
|
-
return /* @__PURE__ */
|
|
4154
|
+
return /* @__PURE__ */ import_react47.default.createElement(GridViewContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react47.default.createElement(Container3, { onClick: handleClick, scrollable }, scrollable ? /* @__PURE__ */ import_react47.default.createElement(ScrollArea, null, children) : children));
|
|
4135
4155
|
}
|
|
4136
4156
|
function GridViewSection({
|
|
4137
4157
|
children,
|
|
4138
4158
|
padding = "20px"
|
|
4139
4159
|
}) {
|
|
4140
|
-
const { size: size2 } = (0,
|
|
4141
|
-
return /* @__PURE__ */
|
|
4160
|
+
const { size: size2 } = (0, import_react47.useContext)(GridViewContext);
|
|
4161
|
+
return /* @__PURE__ */ import_react47.default.createElement(Grid2, { size: size2, padding }, children);
|
|
4142
4162
|
}
|
|
4143
4163
|
function GridViewSectionHeader({ title }) {
|
|
4144
4164
|
const grouped = title.split("/");
|
|
4145
|
-
return /* @__PURE__ */
|
|
4146
|
-
grouped.map((title2, index) => /* @__PURE__ */
|
|
4147
|
-
/* @__PURE__ */
|
|
4165
|
+
return /* @__PURE__ */ import_react47.default.createElement(SectionHeaderContainer, null, /* @__PURE__ */ import_react47.default.createElement(Spacer.Vertical, { size: 24 }), withSeparatorElements(
|
|
4166
|
+
grouped.map((title2, index) => /* @__PURE__ */ import_react47.default.createElement(SectionTitle, { last: index === grouped.length - 1 }, title2)),
|
|
4167
|
+
/* @__PURE__ */ import_react47.default.createElement(SectionTitle, null, " / ")
|
|
4148
4168
|
));
|
|
4149
4169
|
}
|
|
4150
4170
|
var GridView;
|
|
4151
4171
|
((GridView2) => {
|
|
4152
|
-
GridView2.Root = (0,
|
|
4153
|
-
GridView2.Item = (0,
|
|
4154
|
-
GridView2.Section = (0,
|
|
4155
|
-
GridView2.SectionHeader = (0,
|
|
4172
|
+
GridView2.Root = (0, import_react47.memo)(GridViewRoot);
|
|
4173
|
+
GridView2.Item = (0, import_react47.memo)(GridViewItem);
|
|
4174
|
+
GridView2.Section = (0, import_react47.memo)(GridViewSection);
|
|
4175
|
+
GridView2.SectionHeader = (0, import_react47.memo)(GridViewSectionHeader);
|
|
4156
4176
|
})(GridView || (GridView = {}));
|
|
4157
4177
|
|
|
4158
4178
|
// src/components/InputFieldWithCompletions.tsx
|
|
4159
|
-
var
|
|
4160
|
-
var
|
|
4179
|
+
var import_noya_utils8 = require("@noya-app/noya-utils");
|
|
4180
|
+
var import_react51 = __toESM(require("react"));
|
|
4161
4181
|
var import_styled_components27 = __toESM(require("styled-components"));
|
|
4162
4182
|
|
|
4163
4183
|
// src/utils/fuzzyScorer.ts
|
|
@@ -4232,15 +4252,15 @@ function mergeRanges(ranges) {
|
|
|
4232
4252
|
}
|
|
4233
4253
|
|
|
4234
4254
|
// src/components/ListView.tsx
|
|
4235
|
-
var
|
|
4255
|
+
var import_noya_utils7 = require("@noya-app/noya-utils");
|
|
4236
4256
|
var import_react_compose_refs2 = require("@radix-ui/react-compose-refs");
|
|
4237
|
-
var
|
|
4257
|
+
var import_react49 = __toESM(require("react"));
|
|
4238
4258
|
var import_react_virtualized = require("react-virtualized");
|
|
4239
4259
|
var import_react_window = require("react-window");
|
|
4240
4260
|
var import_styled_components25 = __toESM(require("styled-components"));
|
|
4241
4261
|
|
|
4242
4262
|
// src/hooks/mergeEventHandlers.ts
|
|
4243
|
-
var
|
|
4263
|
+
var import_noya_utils6 = require("@noya-app/noya-utils");
|
|
4244
4264
|
var import_primitive = require("@radix-ui/primitive");
|
|
4245
4265
|
function composeAllEventHandlers(...handlers) {
|
|
4246
4266
|
const [first, ...rest] = handlers;
|
|
@@ -4250,7 +4270,7 @@ function composeAllEventHandlers(...handlers) {
|
|
|
4250
4270
|
);
|
|
4251
4271
|
}
|
|
4252
4272
|
function mergeEventHandlers(...handlerMaps) {
|
|
4253
|
-
const eventNames = (0,
|
|
4273
|
+
const eventNames = (0, import_noya_utils6.unique)(handlerMaps.map(Object.keys).flat());
|
|
4254
4274
|
return Object.fromEntries(
|
|
4255
4275
|
eventNames.map((eventName) => {
|
|
4256
4276
|
const handlers = handlerMaps.flatMap((handlerMap) => {
|
|
@@ -4265,7 +4285,7 @@ function mergeEventHandlers(...handlerMaps) {
|
|
|
4265
4285
|
// src/components/Sortable.tsx
|
|
4266
4286
|
var import_core = require("@dnd-kit/core");
|
|
4267
4287
|
var import_sortable = require("@dnd-kit/sortable");
|
|
4268
|
-
var
|
|
4288
|
+
var import_react48 = __toESM(require("react"));
|
|
4269
4289
|
var import_react_dom2 = require("react-dom");
|
|
4270
4290
|
var normalizeListDestinationIndex = (index, position) => {
|
|
4271
4291
|
return position === "above" ? index : index + 1;
|
|
@@ -4279,7 +4299,7 @@ var defaultAcceptsDrop = (sourceIndex, destinationIndex, position) => {
|
|
|
4279
4299
|
}
|
|
4280
4300
|
return true;
|
|
4281
4301
|
};
|
|
4282
|
-
var SortableItemContext = (0,
|
|
4302
|
+
var SortableItemContext = (0, import_react48.createContext)({
|
|
4283
4303
|
keys: [],
|
|
4284
4304
|
position: { x: 0, y: 0 },
|
|
4285
4305
|
acceptsDrop: defaultAcceptsDrop,
|
|
@@ -4301,7 +4321,7 @@ function SortableItem({
|
|
|
4301
4321
|
disabled,
|
|
4302
4322
|
children
|
|
4303
4323
|
}) {
|
|
4304
|
-
const { keys, position, acceptsDrop, setActivatorEvent, axis } = (0,
|
|
4324
|
+
const { keys, position, acceptsDrop, setActivatorEvent, axis } = (0, import_react48.useContext)(SortableItemContext);
|
|
4305
4325
|
const sortable = (0, import_sortable.useSortable)({ id, disabled });
|
|
4306
4326
|
const {
|
|
4307
4327
|
active,
|
|
@@ -4321,7 +4341,7 @@ function SortableItem({
|
|
|
4321
4341
|
const eventY = activatorEvent?.clientY ?? 0;
|
|
4322
4342
|
const offsetLeft = eventX + position.x;
|
|
4323
4343
|
const offsetTop = eventY + position.y;
|
|
4324
|
-
const ref = (0,
|
|
4344
|
+
const ref = (0, import_react48.useCallback)((node) => setNodeRef(node), [setNodeRef]);
|
|
4325
4345
|
return children({
|
|
4326
4346
|
ref,
|
|
4327
4347
|
...attributes,
|
|
@@ -4352,22 +4372,22 @@ function SortableRoot({
|
|
|
4352
4372
|
}
|
|
4353
4373
|
})
|
|
4354
4374
|
);
|
|
4355
|
-
const [activeIndex, setActiveIndex] = (0,
|
|
4356
|
-
const activatorEvent = (0,
|
|
4357
|
-
const setActivatorEvent = (0,
|
|
4375
|
+
const [activeIndex, setActiveIndex] = (0, import_react48.useState)();
|
|
4376
|
+
const activatorEvent = (0, import_react48.useRef)(null);
|
|
4377
|
+
const setActivatorEvent = (0, import_react48.useCallback)((event) => {
|
|
4358
4378
|
activatorEvent.current = event;
|
|
4359
4379
|
}, []);
|
|
4360
|
-
const [position, setPosition] = (0,
|
|
4361
|
-
const handleDragStart = (0,
|
|
4380
|
+
const [position, setPosition] = (0, import_react48.useState)({ x: 0, y: 0 });
|
|
4381
|
+
const handleDragStart = (0, import_react48.useCallback)(
|
|
4362
4382
|
(event) => {
|
|
4363
4383
|
setActiveIndex(keys.indexOf(event.active.id));
|
|
4364
4384
|
},
|
|
4365
4385
|
[keys]
|
|
4366
4386
|
);
|
|
4367
|
-
const handleDragMove = (0,
|
|
4387
|
+
const handleDragMove = (0, import_react48.useCallback)((event) => {
|
|
4368
4388
|
setPosition({ ...event.delta });
|
|
4369
4389
|
}, []);
|
|
4370
|
-
const handleDragEnd = (0,
|
|
4390
|
+
const handleDragEnd = (0, import_react48.useCallback)(
|
|
4371
4391
|
(event) => {
|
|
4372
4392
|
const { active, over } = event;
|
|
4373
4393
|
setActiveIndex(void 0);
|
|
@@ -4394,10 +4414,14 @@ function SortableRoot({
|
|
|
4394
4414
|
},
|
|
4395
4415
|
[acceptsDrop, axis, keys, onMoveItem, position.x, position.y]
|
|
4396
4416
|
);
|
|
4397
|
-
|
|
4417
|
+
const [mounted, setMounted] = (0, import_react48.useState)(false);
|
|
4418
|
+
(0, import_react48.useEffect)(() => {
|
|
4419
|
+
setMounted(true);
|
|
4420
|
+
}, []);
|
|
4421
|
+
return /* @__PURE__ */ import_react48.default.createElement(
|
|
4398
4422
|
SortableItemContext.Provider,
|
|
4399
4423
|
{
|
|
4400
|
-
value: (0,
|
|
4424
|
+
value: (0, import_react48.useMemo)(
|
|
4401
4425
|
() => ({
|
|
4402
4426
|
keys,
|
|
4403
4427
|
acceptsDrop,
|
|
@@ -4408,7 +4432,7 @@ function SortableRoot({
|
|
|
4408
4432
|
[acceptsDrop, axis, keys, position, setActivatorEvent]
|
|
4409
4433
|
)
|
|
4410
4434
|
},
|
|
4411
|
-
/* @__PURE__ */
|
|
4435
|
+
/* @__PURE__ */ import_react48.default.createElement(
|
|
4412
4436
|
import_core.DndContext,
|
|
4413
4437
|
{
|
|
4414
4438
|
sensors,
|
|
@@ -4417,9 +4441,9 @@ function SortableRoot({
|
|
|
4417
4441
|
onDragMove: handleDragMove,
|
|
4418
4442
|
onDragEnd: handleDragEnd
|
|
4419
4443
|
},
|
|
4420
|
-
/* @__PURE__ */
|
|
4421
|
-
renderOverlay && (0, import_react_dom2.createPortal)(
|
|
4422
|
-
/* @__PURE__ */
|
|
4444
|
+
/* @__PURE__ */ import_react48.default.createElement(import_sortable.SortableContext, { items: keys, strategy: import_sortable.verticalListSortingStrategy }, children),
|
|
4445
|
+
mounted && renderOverlay && (0, import_react_dom2.createPortal)(
|
|
4446
|
+
/* @__PURE__ */ import_react48.default.createElement(import_core.DragOverlay, { dropAnimation: null }, activeIndex !== void 0 && activeIndex >= 0 && renderOverlay(activeIndex)),
|
|
4423
4447
|
document.body
|
|
4424
4448
|
)
|
|
4425
4449
|
)
|
|
@@ -4427,17 +4451,17 @@ function SortableRoot({
|
|
|
4427
4451
|
}
|
|
4428
4452
|
var Sortable;
|
|
4429
4453
|
((Sortable2) => {
|
|
4430
|
-
Sortable2.Item = (0,
|
|
4431
|
-
Sortable2.Root = (0,
|
|
4454
|
+
Sortable2.Item = (0, import_react48.memo)(SortableItem);
|
|
4455
|
+
Sortable2.Root = (0, import_react48.memo)(SortableRoot);
|
|
4432
4456
|
})(Sortable || (Sortable = {}));
|
|
4433
4457
|
|
|
4434
4458
|
// src/components/ListView.tsx
|
|
4435
4459
|
var ROW_HEIGHT = 31;
|
|
4436
4460
|
var SECTION_HEADER_LABEL_HEIGHT = 27;
|
|
4437
|
-
var DraggingContext = (0,
|
|
4461
|
+
var DraggingContext = (0, import_react49.createContext)({
|
|
4438
4462
|
indentation: 12
|
|
4439
4463
|
});
|
|
4440
|
-
var ListRowContext = (0,
|
|
4464
|
+
var ListRowContext = (0, import_react49.createContext)({
|
|
4441
4465
|
marginType: "none",
|
|
4442
4466
|
selectedPosition: "only",
|
|
4443
4467
|
sortable: false,
|
|
@@ -4467,8 +4491,8 @@ function ListViewEditableRowTitle({
|
|
|
4467
4491
|
autoFocus,
|
|
4468
4492
|
placeholder
|
|
4469
4493
|
}) {
|
|
4470
|
-
const inputRef = (0,
|
|
4471
|
-
(0,
|
|
4494
|
+
const inputRef = (0, import_react49.useRef)(null);
|
|
4495
|
+
(0, import_react49.useLayoutEffect)(() => {
|
|
4472
4496
|
const element = inputRef.current;
|
|
4473
4497
|
if (!element || !autoFocus)
|
|
4474
4498
|
return;
|
|
@@ -4477,7 +4501,7 @@ function ListViewEditableRowTitle({
|
|
|
4477
4501
|
element.select();
|
|
4478
4502
|
}, 0);
|
|
4479
4503
|
}, [autoFocus]);
|
|
4480
|
-
return /* @__PURE__ */
|
|
4504
|
+
return /* @__PURE__ */ import_react49.default.createElement(
|
|
4481
4505
|
ListViewEditableRowTitleElement,
|
|
4482
4506
|
{
|
|
4483
4507
|
ref: inputRef,
|
|
@@ -4498,34 +4522,34 @@ function getPositionMargin(marginType) {
|
|
|
4498
4522
|
var RowContainer = import_styled_components25.default.div(
|
|
4499
4523
|
({
|
|
4500
4524
|
theme,
|
|
4501
|
-
marginType,
|
|
4502
|
-
selected,
|
|
4503
|
-
selectedPosition,
|
|
4504
|
-
disabled,
|
|
4505
|
-
hovered,
|
|
4506
|
-
variant,
|
|
4507
|
-
divider,
|
|
4508
|
-
isSectionHeader,
|
|
4509
|
-
showsActiveState,
|
|
4510
|
-
sectionHeaderVariant,
|
|
4511
|
-
colorScheme,
|
|
4512
|
-
gap,
|
|
4513
|
-
backgroundColor
|
|
4525
|
+
$marginType,
|
|
4526
|
+
$selected,
|
|
4527
|
+
$selectedPosition,
|
|
4528
|
+
$disabled,
|
|
4529
|
+
$hovered,
|
|
4530
|
+
$variant,
|
|
4531
|
+
$divider,
|
|
4532
|
+
$isSectionHeader,
|
|
4533
|
+
$showsActiveState,
|
|
4534
|
+
$sectionHeaderVariant,
|
|
4535
|
+
$colorScheme,
|
|
4536
|
+
$gap,
|
|
4537
|
+
$backgroundColor
|
|
4514
4538
|
}) => {
|
|
4515
|
-
const margin = getPositionMargin(marginType);
|
|
4539
|
+
const margin = getPositionMargin($marginType);
|
|
4516
4540
|
return {
|
|
4517
|
-
|
|
4518
|
-
|
|
4519
|
-
gap,
|
|
4541
|
+
...$isSectionHeader && $sectionHeaderVariant === "label" ? theme.textStyles.label : theme.textStyles.small,
|
|
4542
|
+
...$isSectionHeader && { fontWeight: 500 },
|
|
4543
|
+
gap: $gap,
|
|
4520
4544
|
flex: "0 0 auto",
|
|
4521
4545
|
userSelect: "none",
|
|
4522
4546
|
cursor: "default",
|
|
4523
|
-
|
|
4547
|
+
...$variant !== "bare" && {
|
|
4524
4548
|
paddingTop: "6px",
|
|
4525
4549
|
paddingRight: "12px",
|
|
4526
4550
|
paddingBottom: "6px",
|
|
4527
4551
|
paddingLeft: "12px",
|
|
4528
|
-
|
|
4552
|
+
...$variant === "padded" && {
|
|
4529
4553
|
borderRadius: "2px",
|
|
4530
4554
|
marginLeft: "8px",
|
|
4531
4555
|
marginRight: "8px",
|
|
@@ -4534,72 +4558,72 @@ var RowContainer = import_styled_components25.default.div(
|
|
|
4534
4558
|
}
|
|
4535
4559
|
},
|
|
4536
4560
|
color: theme.colors.textMuted,
|
|
4537
|
-
|
|
4561
|
+
...$isSectionHeader && {
|
|
4538
4562
|
backgroundColor: theme.colors.listView.raisedBackground,
|
|
4539
|
-
|
|
4563
|
+
...$sectionHeaderVariant === "label" && {
|
|
4540
4564
|
color: theme.colors.textDisabled
|
|
4541
4565
|
}
|
|
4542
4566
|
},
|
|
4543
|
-
|
|
4567
|
+
...$disabled && {
|
|
4544
4568
|
color: theme.colors.textDisabled
|
|
4545
4569
|
},
|
|
4546
|
-
|
|
4570
|
+
...$selected && {
|
|
4547
4571
|
color: "white",
|
|
4548
|
-
backgroundColor: theme.colors[colorScheme]
|
|
4572
|
+
backgroundColor: theme.colors[$colorScheme]
|
|
4549
4573
|
},
|
|
4550
4574
|
display: "flex",
|
|
4551
4575
|
alignItems: "center",
|
|
4552
|
-
|
|
4576
|
+
...$selected && !$isSectionHeader && ($selectedPosition === "middle" || $selectedPosition === "last") && {
|
|
4553
4577
|
borderTopRightRadius: "0px",
|
|
4554
4578
|
borderTopLeftRadius: "0px"
|
|
4555
4579
|
},
|
|
4556
|
-
|
|
4580
|
+
...$selected && !$isSectionHeader && ($selectedPosition === "middle" || $selectedPosition === "first") && {
|
|
4557
4581
|
borderBottomRightRadius: "0px",
|
|
4558
4582
|
borderBottomLeftRadius: "0px"
|
|
4559
4583
|
},
|
|
4560
4584
|
position: "relative",
|
|
4561
|
-
|
|
4562
|
-
boxShadow: `0 0 0 1px ${theme.colors[colorScheme]} inset`
|
|
4585
|
+
...$hovered && {
|
|
4586
|
+
boxShadow: `0 0 0 1px ${theme.colors[$colorScheme]} inset`
|
|
4563
4587
|
},
|
|
4564
|
-
|
|
4588
|
+
...$showsActiveState && {
|
|
4565
4589
|
"&:active": {
|
|
4566
|
-
backgroundColor: selected ? colorScheme === "secondary" ? theme.colors.secondaryLight : theme.colors.primaryLight : theme.colors.activeBackground
|
|
4590
|
+
backgroundColor: $selected ? $colorScheme === "secondary" ? theme.colors.secondaryLight : theme.colors.primaryLight : theme.colors.activeBackground
|
|
4567
4591
|
}
|
|
4568
4592
|
},
|
|
4569
|
-
|
|
4593
|
+
...$divider && {
|
|
4570
4594
|
borderBottom: `1px solid ${theme.colors.dividerSubtle}`
|
|
4571
4595
|
},
|
|
4572
|
-
|
|
4573
|
-
backgroundColor,
|
|
4596
|
+
...$backgroundColor && {
|
|
4597
|
+
backgroundColor: $backgroundColor,
|
|
4574
4598
|
"&:hover": {
|
|
4575
|
-
backgroundColor
|
|
4599
|
+
backgroundColor: $backgroundColor
|
|
4576
4600
|
},
|
|
4577
4601
|
"&:active": {
|
|
4578
|
-
backgroundColor
|
|
4602
|
+
backgroundColor: $backgroundColor
|
|
4579
4603
|
}
|
|
4580
4604
|
}
|
|
4581
4605
|
};
|
|
4582
4606
|
}
|
|
4583
4607
|
);
|
|
4584
|
-
var ListViewDragIndicatorElement = import_styled_components25.default.div(({ theme, relativeDropPosition, offsetLeft, colorScheme, gap }) => ({
|
|
4608
|
+
var ListViewDragIndicatorElement = import_styled_components25.default.div(({ theme, $relativeDropPosition, $offsetLeft, $colorScheme, $gap }) => ({
|
|
4585
4609
|
zIndex: 1,
|
|
4586
4610
|
position: "absolute",
|
|
4587
4611
|
borderRadius: "3px",
|
|
4588
|
-
|
|
4612
|
+
...$relativeDropPosition === "inside" ? {
|
|
4589
4613
|
inset: 2,
|
|
4590
|
-
boxShadow: `0 0 0 1px ${theme.colors.sidebar.background}, 0 0 0 3px ${colorScheme === "secondary" ? theme.colors.secondary : theme.colors.dragOutline}`
|
|
4614
|
+
boxShadow: `0 0 0 1px ${theme.colors.sidebar.background}, 0 0 0 3px ${$colorScheme === "secondary" ? theme.colors.secondary : theme.colors.dragOutline}`
|
|
4591
4615
|
} : {
|
|
4592
|
-
top: relativeDropPosition === "above" ? -(3 + gap / 2) : void 0,
|
|
4593
|
-
bottom: relativeDropPosition === "below" ? -(3 + gap / 2) : void 0,
|
|
4594
|
-
left: offsetLeft,
|
|
4616
|
+
top: $relativeDropPosition === "above" ? -(3 + $gap / 2) : void 0,
|
|
4617
|
+
bottom: $relativeDropPosition === "below" ? -(3 + $gap / 2) : void 0,
|
|
4618
|
+
left: $offsetLeft,
|
|
4595
4619
|
right: 0,
|
|
4596
4620
|
height: 6,
|
|
4597
|
-
background: theme.colors[colorScheme],
|
|
4621
|
+
background: theme.colors[$colorScheme],
|
|
4598
4622
|
border: `2px solid white`,
|
|
4599
4623
|
boxShadow: "0 0 2px rgba(0,0,0,0.5)"
|
|
4600
4624
|
}
|
|
4601
4625
|
}));
|
|
4602
|
-
var ListViewRow = (0,
|
|
4626
|
+
var ListViewRow = (0, import_react49.forwardRef)(function ListViewRow2({
|
|
4603
4627
|
id,
|
|
4604
4628
|
tabIndex = 0,
|
|
4605
4629
|
gap,
|
|
@@ -4632,12 +4656,12 @@ var ListViewRow = (0, import_react48.forwardRef)(function ListViewRow2({
|
|
|
4632
4656
|
divider,
|
|
4633
4657
|
gap: listGap,
|
|
4634
4658
|
colorScheme
|
|
4635
|
-
} = (0,
|
|
4659
|
+
} = (0, import_react49.useContext)(ListRowContext);
|
|
4636
4660
|
const { hoverProps } = useHover({
|
|
4637
4661
|
onHoverChange
|
|
4638
4662
|
});
|
|
4639
|
-
const { indentation, isDragging } = (0,
|
|
4640
|
-
const handlePress = (0,
|
|
4663
|
+
const { indentation, isDragging } = (0, import_react49.useContext)(DraggingContext);
|
|
4664
|
+
const handlePress = (0, import_react49.useCallback)(
|
|
4641
4665
|
(event) => {
|
|
4642
4666
|
event.preventDefault();
|
|
4643
4667
|
if (event.button !== 0)
|
|
@@ -4646,14 +4670,14 @@ var ListViewRow = (0, import_react48.forwardRef)(function ListViewRow2({
|
|
|
4646
4670
|
},
|
|
4647
4671
|
[onPress]
|
|
4648
4672
|
);
|
|
4649
|
-
const handleDoubleClick = (0,
|
|
4673
|
+
const handleDoubleClick = (0, import_react49.useCallback)(
|
|
4650
4674
|
(event) => {
|
|
4651
4675
|
event.stopPropagation();
|
|
4652
4676
|
onDoubleClick?.();
|
|
4653
4677
|
},
|
|
4654
4678
|
[onDoubleClick]
|
|
4655
4679
|
);
|
|
4656
|
-
const mergedStyle = (0,
|
|
4680
|
+
const mergedStyle = (0, import_react49.useMemo)(() => {
|
|
4657
4681
|
return isDragging ? {
|
|
4658
4682
|
// TODO: Where do these offsets actually come from?
|
|
4659
4683
|
transform: `translate3d(-36px, -6px, 0)`,
|
|
@@ -4665,28 +4689,29 @@ var ListViewRow = (0, import_react48.forwardRef)(function ListViewRow2({
|
|
|
4665
4689
|
relativeDropPosition,
|
|
4666
4690
|
...renderProps
|
|
4667
4691
|
}, ref) => {
|
|
4668
|
-
const
|
|
4669
|
-
|
|
4692
|
+
const Component = RowContainer;
|
|
4693
|
+
const element = /* @__PURE__ */ import_react49.default.createElement(
|
|
4694
|
+
Component,
|
|
4670
4695
|
{
|
|
4671
4696
|
ref,
|
|
4672
|
-
colorScheme,
|
|
4697
|
+
$colorScheme: colorScheme,
|
|
4673
4698
|
onContextMenu,
|
|
4674
|
-
isSectionHeader,
|
|
4699
|
+
$isSectionHeader: isSectionHeader,
|
|
4675
4700
|
id,
|
|
4676
|
-
gap,
|
|
4677
|
-
backgroundColor,
|
|
4701
|
+
$gap: gap ?? 0,
|
|
4702
|
+
$backgroundColor: backgroundColor,
|
|
4678
4703
|
...hoverProps,
|
|
4679
4704
|
onDoubleClick: handleDoubleClick,
|
|
4680
|
-
marginType,
|
|
4681
|
-
disabled,
|
|
4682
|
-
hovered,
|
|
4683
|
-
selected,
|
|
4684
|
-
variant,
|
|
4685
|
-
sectionHeaderVariant,
|
|
4686
|
-
selectedPosition,
|
|
4687
|
-
showsActiveState: pressEventName === "onClick",
|
|
4705
|
+
$marginType: marginType ?? "none",
|
|
4706
|
+
$disabled: disabled,
|
|
4707
|
+
$hovered: hovered,
|
|
4708
|
+
$selected: selected,
|
|
4709
|
+
$variant: variant,
|
|
4710
|
+
$sectionHeaderVariant: sectionHeaderVariant,
|
|
4711
|
+
$selectedPosition: selectedPosition,
|
|
4712
|
+
$showsActiveState: pressEventName === "onClick",
|
|
4688
4713
|
"aria-selected": selected,
|
|
4689
|
-
divider: !isDragging && divider,
|
|
4714
|
+
$divider: !isDragging && divider,
|
|
4690
4715
|
onKeyDown,
|
|
4691
4716
|
style: mergedStyle,
|
|
4692
4717
|
...renderProps,
|
|
@@ -4696,20 +4721,20 @@ var ListViewRow = (0, import_react48.forwardRef)(function ListViewRow2({
|
|
|
4696
4721
|
),
|
|
4697
4722
|
tabIndex
|
|
4698
4723
|
},
|
|
4699
|
-
relativeDropPosition && /* @__PURE__ */
|
|
4724
|
+
relativeDropPosition && /* @__PURE__ */ import_react49.default.createElement(
|
|
4700
4725
|
ListViewDragIndicatorElement,
|
|
4701
4726
|
{
|
|
4702
|
-
colorScheme,
|
|
4703
|
-
relativeDropPosition,
|
|
4704
|
-
offsetLeft: 33 + depth * indentation,
|
|
4705
|
-
gap: listGap
|
|
4727
|
+
$colorScheme: colorScheme,
|
|
4728
|
+
$relativeDropPosition: relativeDropPosition,
|
|
4729
|
+
$offsetLeft: 33 + depth * indentation,
|
|
4730
|
+
$gap: listGap
|
|
4706
4731
|
}
|
|
4707
4732
|
),
|
|
4708
|
-
depth > 0 && /* @__PURE__ */
|
|
4733
|
+
depth > 0 && /* @__PURE__ */ import_react49.default.createElement(Spacer.Horizontal, { size: depth * indentation }),
|
|
4709
4734
|
children
|
|
4710
4735
|
);
|
|
4711
4736
|
if (menuItems && onSelectMenuItem) {
|
|
4712
|
-
return /* @__PURE__ */
|
|
4737
|
+
return /* @__PURE__ */ import_react49.default.createElement(
|
|
4713
4738
|
ContextMenu,
|
|
4714
4739
|
{
|
|
4715
4740
|
items: menuItems,
|
|
@@ -4722,21 +4747,24 @@ var ListViewRow = (0, import_react48.forwardRef)(function ListViewRow2({
|
|
|
4722
4747
|
return element;
|
|
4723
4748
|
};
|
|
4724
4749
|
if (sortable && id) {
|
|
4725
|
-
return /* @__PURE__ */
|
|
4750
|
+
return /* @__PURE__ */ import_react49.default.createElement(Sortable.Item, { id, disabled: overrideSortable === false }, ({ ref: sortableRef, ...sortableProps }) => renderContent(
|
|
4751
|
+
sortableProps,
|
|
4752
|
+
(0, import_react_compose_refs2.composeRefs)(sortableRef, forwardedRef)
|
|
4753
|
+
));
|
|
4726
4754
|
}
|
|
4727
4755
|
return renderContent({}, forwardedRef);
|
|
4728
4756
|
});
|
|
4729
|
-
var RenderItemContext = (0,
|
|
4757
|
+
var RenderItemContext = (0, import_react49.createContext)(
|
|
4730
4758
|
() => null
|
|
4731
4759
|
);
|
|
4732
|
-
var VirtualizedListRow = (0,
|
|
4760
|
+
var VirtualizedListRow = (0, import_react49.memo)(function VirtualizedListRow2({
|
|
4733
4761
|
index,
|
|
4734
4762
|
style: style3
|
|
4735
4763
|
}) {
|
|
4736
|
-
const renderItem = (0,
|
|
4737
|
-
return /* @__PURE__ */
|
|
4764
|
+
const renderItem = (0, import_react49.useContext)(RenderItemContext);
|
|
4765
|
+
return /* @__PURE__ */ import_react49.default.createElement("div", { key: index, style: style3 }, renderItem(index));
|
|
4738
4766
|
});
|
|
4739
|
-
var VirtualizedListInner = (0,
|
|
4767
|
+
var VirtualizedListInner = (0, import_react49.forwardRef)(function VirtualizedListInner2({
|
|
4740
4768
|
size: size2,
|
|
4741
4769
|
scrollElement,
|
|
4742
4770
|
items,
|
|
@@ -4744,20 +4772,20 @@ var VirtualizedListInner = (0, import_react48.forwardRef)(function VirtualizedLi
|
|
|
4744
4772
|
keyExtractor,
|
|
4745
4773
|
renderItem
|
|
4746
4774
|
}, ref) {
|
|
4747
|
-
const listRef = (0,
|
|
4748
|
-
(0,
|
|
4775
|
+
const listRef = (0, import_react49.useRef)(null);
|
|
4776
|
+
(0, import_react49.useImperativeHandle)(ref, () => ({
|
|
4749
4777
|
scrollToIndex(index) {
|
|
4750
4778
|
listRef.current?.scrollToItem(index);
|
|
4751
4779
|
}
|
|
4752
4780
|
}));
|
|
4753
|
-
(0,
|
|
4781
|
+
(0, import_react49.useLayoutEffect)(() => {
|
|
4754
4782
|
listRef.current?.resetAfterIndex(0);
|
|
4755
4783
|
}, [
|
|
4756
4784
|
// When items change, we need to re-render the virtualized list,
|
|
4757
4785
|
// since it doesn't currently support row height changes
|
|
4758
4786
|
items
|
|
4759
4787
|
]);
|
|
4760
|
-
const listStyle = (0,
|
|
4788
|
+
const listStyle = (0, import_react49.useMemo)(
|
|
4761
4789
|
() => ({
|
|
4762
4790
|
overflowX: "initial",
|
|
4763
4791
|
overflowY: "initial",
|
|
@@ -4765,18 +4793,18 @@ var VirtualizedListInner = (0, import_react48.forwardRef)(function VirtualizedLi
|
|
|
4765
4793
|
}),
|
|
4766
4794
|
[]
|
|
4767
4795
|
);
|
|
4768
|
-
return /* @__PURE__ */
|
|
4796
|
+
return /* @__PURE__ */ import_react49.default.createElement(RenderItemContext.Provider, { value: renderItem }, /* @__PURE__ */ import_react49.default.createElement(
|
|
4769
4797
|
import_react_virtualized.WindowScroller,
|
|
4770
4798
|
{
|
|
4771
4799
|
scrollElement,
|
|
4772
|
-
style: (0,
|
|
4800
|
+
style: (0, import_react49.useMemo)(() => ({ flex: "1 1 auto" }), [])
|
|
4773
4801
|
},
|
|
4774
|
-
(0,
|
|
4802
|
+
(0, import_react49.useCallback)(
|
|
4775
4803
|
({
|
|
4776
4804
|
registerChild,
|
|
4777
4805
|
onChildScroll,
|
|
4778
4806
|
scrollTop
|
|
4779
|
-
}) => /* @__PURE__ */
|
|
4807
|
+
}) => /* @__PURE__ */ import_react49.default.createElement("div", { ref: registerChild }, /* @__PURE__ */ import_react49.default.createElement(
|
|
4780
4808
|
import_react_window.VariableSizeList,
|
|
4781
4809
|
{
|
|
4782
4810
|
ref: listRef,
|
|
@@ -4806,18 +4834,18 @@ var VirtualizedListInner = (0, import_react48.forwardRef)(function VirtualizedLi
|
|
|
4806
4834
|
)
|
|
4807
4835
|
));
|
|
4808
4836
|
});
|
|
4809
|
-
var VirtualizedList = (0,
|
|
4837
|
+
var VirtualizedList = (0, import_react49.memo)(
|
|
4810
4838
|
VirtualizedListInner
|
|
4811
4839
|
);
|
|
4812
|
-
var RootContainer2 = import_styled_components25.default.div(({ theme, scrollable, gap }) => ({
|
|
4813
|
-
flex: scrollable ? "1 0 0" : "0 0 auto",
|
|
4840
|
+
var RootContainer2 = import_styled_components25.default.div(({ theme, $scrollable, $gap }) => ({
|
|
4841
|
+
flex: $scrollable ? "1 0 0" : "0 0 auto",
|
|
4814
4842
|
display: "flex",
|
|
4815
4843
|
flexDirection: "column",
|
|
4816
4844
|
flexWrap: "nowrap",
|
|
4817
4845
|
color: theme.colors.textMuted,
|
|
4818
|
-
gap
|
|
4846
|
+
gap: $gap
|
|
4819
4847
|
}));
|
|
4820
|
-
var ListViewRootInner = (0,
|
|
4848
|
+
var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInner2({
|
|
4821
4849
|
onPress,
|
|
4822
4850
|
scrollable = false,
|
|
4823
4851
|
expandable = true,
|
|
@@ -4836,7 +4864,7 @@ var ListViewRootInner = (0, import_react48.forwardRef)(function ListViewRootInne
|
|
|
4836
4864
|
colorScheme = "primary",
|
|
4837
4865
|
gap = 0
|
|
4838
4866
|
}, forwardedRef) {
|
|
4839
|
-
const handleClick = (0,
|
|
4867
|
+
const handleClick = (0, import_react49.useCallback)(
|
|
4840
4868
|
(event) => {
|
|
4841
4869
|
if (event.target instanceof HTMLElement && event.target.classList.contains("scroll-component"))
|
|
4842
4870
|
return;
|
|
@@ -4846,19 +4874,19 @@ var ListViewRootInner = (0, import_react48.forwardRef)(function ListViewRootInne
|
|
|
4846
4874
|
},
|
|
4847
4875
|
[onPress]
|
|
4848
4876
|
);
|
|
4849
|
-
const renderChild = (0,
|
|
4877
|
+
const renderChild = (0, import_react49.useCallback)(
|
|
4850
4878
|
(index) => renderItem(data[index], index, { isDragging: false }),
|
|
4851
4879
|
[data, renderItem]
|
|
4852
4880
|
);
|
|
4853
|
-
const getItemContextValue = (0,
|
|
4881
|
+
const getItemContextValue = (0, import_react49.useCallback)(
|
|
4854
4882
|
(i) => {
|
|
4855
4883
|
const current = renderChild(i);
|
|
4856
|
-
if (!(0,
|
|
4884
|
+
if (!(0, import_react49.isValidElement)(current))
|
|
4857
4885
|
return;
|
|
4858
4886
|
const prevChild = i - 1 >= 0 && renderChild(i - 1);
|
|
4859
4887
|
const nextChild = i + 1 < data.length && renderChild(i + 1);
|
|
4860
|
-
const next = (0,
|
|
4861
|
-
const prev = (0,
|
|
4888
|
+
const next = (0, import_react49.isValidElement)(nextChild) ? nextChild : void 0;
|
|
4889
|
+
const prev = (0, import_react49.isValidElement)(prevChild) ? prevChild : void 0;
|
|
4862
4890
|
const hasMarginTop = !prev;
|
|
4863
4891
|
const hasMarginBottom = !next || current.props.isSectionHeader || next && next.props.isSectionHeader;
|
|
4864
4892
|
let marginType;
|
|
@@ -4910,26 +4938,26 @@ var ListViewRootInner = (0, import_react48.forwardRef)(function ListViewRootInne
|
|
|
4910
4938
|
gap
|
|
4911
4939
|
]
|
|
4912
4940
|
);
|
|
4913
|
-
const draggingContextOverlayValue = (0,
|
|
4941
|
+
const draggingContextOverlayValue = (0, import_react49.useMemo)(
|
|
4914
4942
|
() => ({ indentation, isDragging: true }),
|
|
4915
4943
|
[indentation]
|
|
4916
4944
|
);
|
|
4917
|
-
const renderOverlay = (0,
|
|
4918
|
-
(index) => /* @__PURE__ */
|
|
4945
|
+
const renderOverlay = (0, import_react49.useCallback)(
|
|
4946
|
+
(index) => /* @__PURE__ */ import_react49.default.createElement("div", { style: { opacity: 0.25 } }, /* @__PURE__ */ import_react49.default.createElement(DraggingContext.Provider, { value: draggingContextOverlayValue }, renderItem(data[index], index, { isDragging: true }))),
|
|
4919
4947
|
[draggingContextOverlayValue, renderItem, data]
|
|
4920
4948
|
);
|
|
4921
|
-
const renderWrappedChild = (0,
|
|
4949
|
+
const renderWrappedChild = (0, import_react49.useCallback)(
|
|
4922
4950
|
(index) => {
|
|
4923
4951
|
const contextValue = getItemContextValue(index);
|
|
4924
4952
|
const current = renderChild(index);
|
|
4925
|
-
if (!contextValue || !(0,
|
|
4953
|
+
if (!contextValue || !(0, import_react49.isValidElement)(current))
|
|
4926
4954
|
return null;
|
|
4927
|
-
return /* @__PURE__ */
|
|
4955
|
+
return /* @__PURE__ */ import_react49.default.createElement(ListRowContext.Provider, { key: current.key, value: contextValue }, current);
|
|
4928
4956
|
},
|
|
4929
4957
|
[getItemContextValue, renderChild]
|
|
4930
4958
|
);
|
|
4931
|
-
const ids = (0,
|
|
4932
|
-
const withSortable = (children) => sortable ? /* @__PURE__ */
|
|
4959
|
+
const ids = (0, import_react49.useMemo)(() => data.map(keyExtractor), [keyExtractor, data]);
|
|
4960
|
+
const withSortable = (children) => sortable ? /* @__PURE__ */ import_react49.default.createElement(
|
|
4933
4961
|
Sortable.Root,
|
|
4934
4962
|
{
|
|
4935
4963
|
onMoveItem,
|
|
@@ -4939,8 +4967,8 @@ var ListViewRootInner = (0, import_react48.forwardRef)(function ListViewRootInne
|
|
|
4939
4967
|
},
|
|
4940
4968
|
children
|
|
4941
4969
|
) : children;
|
|
4942
|
-
const withScrollable = (children) => scrollable ? /* @__PURE__ */
|
|
4943
|
-
const getItemHeight = (0,
|
|
4970
|
+
const withScrollable = (children) => scrollable ? /* @__PURE__ */ import_react49.default.createElement(ScrollArea, null, children) : children(null);
|
|
4971
|
+
const getItemHeight = (0, import_react49.useCallback)(
|
|
4944
4972
|
(index) => {
|
|
4945
4973
|
const child = getItemContextValue(index);
|
|
4946
4974
|
const margin = child?.marginType ? getPositionMargin(child.marginType) : { top: 0, bottom: 0 };
|
|
@@ -4949,23 +4977,23 @@ var ListViewRootInner = (0, import_react48.forwardRef)(function ListViewRootInne
|
|
|
4949
4977
|
},
|
|
4950
4978
|
[getItemContextValue, variant]
|
|
4951
4979
|
);
|
|
4952
|
-
const getKey = (0,
|
|
4980
|
+
const getKey = (0, import_react49.useCallback)(
|
|
4953
4981
|
(index) => keyExtractor(data[index], index),
|
|
4954
4982
|
[data, keyExtractor]
|
|
4955
4983
|
);
|
|
4956
|
-
const draggingContextValue = (0,
|
|
4957
|
-
return /* @__PURE__ */
|
|
4984
|
+
const draggingContextValue = (0, import_react49.useMemo)(() => ({ indentation }), [indentation]);
|
|
4985
|
+
return /* @__PURE__ */ import_react49.default.createElement(DraggingContext.Provider, { value: draggingContextValue }, /* @__PURE__ */ import_react49.default.createElement(
|
|
4958
4986
|
RootContainer2,
|
|
4959
4987
|
{
|
|
4960
4988
|
...{
|
|
4961
4989
|
[pressEventName]: handleClick
|
|
4962
4990
|
},
|
|
4963
|
-
gap,
|
|
4964
|
-
scrollable
|
|
4991
|
+
$gap: gap,
|
|
4992
|
+
$scrollable: scrollable
|
|
4965
4993
|
},
|
|
4966
4994
|
withScrollable(
|
|
4967
4995
|
(scrollElementRef) => withSortable(
|
|
4968
|
-
virtualized ? /* @__PURE__ */
|
|
4996
|
+
virtualized ? /* @__PURE__ */ import_react49.default.createElement(
|
|
4969
4997
|
VirtualizedList,
|
|
4970
4998
|
{
|
|
4971
4999
|
ref: forwardedRef,
|
|
@@ -4976,47 +5004,47 @@ var ListViewRootInner = (0, import_react48.forwardRef)(function ListViewRootInne
|
|
|
4976
5004
|
keyExtractor: getKey,
|
|
4977
5005
|
renderItem: renderWrappedChild
|
|
4978
5006
|
}
|
|
4979
|
-
) : (0,
|
|
5007
|
+
) : (0, import_noya_utils7.range)(0, data.length).map(renderWrappedChild)
|
|
4980
5008
|
)
|
|
4981
5009
|
)
|
|
4982
5010
|
));
|
|
4983
5011
|
});
|
|
4984
|
-
var ListViewRoot = (0,
|
|
4985
|
-
var ChildrenListViewInner = (0,
|
|
4986
|
-
const items = (0,
|
|
4987
|
-
() =>
|
|
4988
|
-
(child) => (0,
|
|
5012
|
+
var ListViewRoot = (0, import_react49.memo)(ListViewRootInner);
|
|
5013
|
+
var ChildrenListViewInner = (0, import_react49.forwardRef)(function ChildrenListViewInner2({ children, ...rest }, forwardedRef) {
|
|
5014
|
+
const items = (0, import_react49.useMemo)(
|
|
5015
|
+
() => import_react49.Children.toArray(children).flatMap(
|
|
5016
|
+
(child) => (0, import_react49.isValidElement)(child) ? [child] : []
|
|
4989
5017
|
),
|
|
4990
5018
|
[children]
|
|
4991
5019
|
);
|
|
4992
|
-
return /* @__PURE__ */
|
|
5020
|
+
return /* @__PURE__ */ import_react49.default.createElement(
|
|
4993
5021
|
ListViewRoot,
|
|
4994
5022
|
{
|
|
4995
5023
|
ref: forwardedRef,
|
|
4996
5024
|
...rest,
|
|
4997
5025
|
data: items,
|
|
4998
|
-
keyExtractor: (0,
|
|
5026
|
+
keyExtractor: (0, import_react49.useCallback)(
|
|
4999
5027
|
({ key }, index) => typeof key === "string" ? key : (key ?? index).toString(),
|
|
5000
5028
|
[]
|
|
5001
5029
|
),
|
|
5002
|
-
renderItem: (0,
|
|
5030
|
+
renderItem: (0, import_react49.useCallback)((item) => item, [])
|
|
5003
5031
|
}
|
|
5004
5032
|
);
|
|
5005
5033
|
});
|
|
5006
|
-
var ChildrenListView = (0,
|
|
5007
|
-
var SimpleListViewInner = (0,
|
|
5034
|
+
var ChildrenListView = (0, import_react49.memo)(ChildrenListViewInner);
|
|
5035
|
+
var SimpleListViewInner = (0, import_react49.forwardRef)(function SimpleListViewInner2(props, forwardedRef) {
|
|
5008
5036
|
if ("children" in props) {
|
|
5009
|
-
return /* @__PURE__ */
|
|
5037
|
+
return /* @__PURE__ */ import_react49.default.createElement(ChildrenListView, { ref: forwardedRef, ...props });
|
|
5010
5038
|
} else {
|
|
5011
|
-
return /* @__PURE__ */
|
|
5039
|
+
return /* @__PURE__ */ import_react49.default.createElement(ListViewRoot, { ref: forwardedRef, ...props });
|
|
5012
5040
|
}
|
|
5013
5041
|
});
|
|
5014
|
-
var SimpleListView = (0,
|
|
5042
|
+
var SimpleListView = (0, import_react49.memo)(SimpleListViewInner);
|
|
5015
5043
|
var ListView;
|
|
5016
5044
|
((ListView2) => {
|
|
5017
|
-
ListView2.RowTitle = (0,
|
|
5018
|
-
ListView2.EditableRowTitle = (0,
|
|
5019
|
-
ListView2.Row = (0,
|
|
5045
|
+
ListView2.RowTitle = (0, import_react49.memo)(ListViewRowTitle);
|
|
5046
|
+
ListView2.EditableRowTitle = (0, import_react49.memo)(ListViewEditableRowTitle);
|
|
5047
|
+
ListView2.Row = (0, import_react49.memo)(ListViewRow);
|
|
5020
5048
|
ListView2.Root = SimpleListView;
|
|
5021
5049
|
ListView2.RowContext = ListRowContext;
|
|
5022
5050
|
ListView2.DragIndicator = ListViewDragIndicatorElement;
|
|
@@ -5029,7 +5057,7 @@ var ListView;
|
|
|
5029
5057
|
})(ListView || (ListView = {}));
|
|
5030
5058
|
|
|
5031
5059
|
// src/components/Text.tsx
|
|
5032
|
-
var
|
|
5060
|
+
var import_react50 = __toESM(require("react"));
|
|
5033
5061
|
var import_styled_components26 = __toESM(require("styled-components"));
|
|
5034
5062
|
var elements = {
|
|
5035
5063
|
title: "h1",
|
|
@@ -5045,13 +5073,13 @@ var elements = {
|
|
|
5045
5073
|
code: "code",
|
|
5046
5074
|
label: "span"
|
|
5047
5075
|
};
|
|
5048
|
-
var StyledElement = import_styled_components26.default.span(({ theme, variant, styleProps, breakpoints, color }) => ({
|
|
5049
|
-
...theme.textStyles[variant],
|
|
5050
|
-
color: color ? theme.colors[color] : void 0,
|
|
5051
|
-
|
|
5052
|
-
...mergeBreakpoints(breakpoints || [])
|
|
5076
|
+
var StyledElement = import_styled_components26.default.span(({ theme, $variant, $styleProps, $breakpoints, $color }) => ({
|
|
5077
|
+
...theme.textStyles[$variant],
|
|
5078
|
+
color: $color ? theme.colors[$color] : void 0,
|
|
5079
|
+
...$styleProps,
|
|
5080
|
+
...mergeBreakpoints($breakpoints || [])
|
|
5053
5081
|
}));
|
|
5054
|
-
var Text = (0,
|
|
5082
|
+
var Text = (0, import_react50.forwardRef)(function Text2({
|
|
5055
5083
|
as,
|
|
5056
5084
|
variant,
|
|
5057
5085
|
breakpoints,
|
|
@@ -5063,44 +5091,44 @@ var Text = (0, import_react49.forwardRef)(function Text2({
|
|
|
5063
5091
|
...rest
|
|
5064
5092
|
}, forwardedRef) {
|
|
5065
5093
|
const element = as ?? elements[variant] ?? "span";
|
|
5066
|
-
return /* @__PURE__ */
|
|
5094
|
+
return /* @__PURE__ */ import_react50.default.createElement(
|
|
5067
5095
|
StyledElement,
|
|
5068
5096
|
{
|
|
5069
5097
|
ref: forwardedRef,
|
|
5070
5098
|
as: element,
|
|
5071
5099
|
className,
|
|
5072
|
-
variant,
|
|
5073
|
-
breakpoints,
|
|
5074
|
-
styleProps: rest,
|
|
5075
|
-
color,
|
|
5100
|
+
$variant: variant,
|
|
5101
|
+
$breakpoints: breakpoints,
|
|
5102
|
+
$styleProps: rest,
|
|
5103
|
+
$color: color,
|
|
5076
5104
|
onClick,
|
|
5077
5105
|
...href && { href }
|
|
5078
5106
|
},
|
|
5079
5107
|
children
|
|
5080
5108
|
);
|
|
5081
5109
|
});
|
|
5082
|
-
var Heading1 = (0,
|
|
5083
|
-
(props, ref) => /* @__PURE__ */
|
|
5110
|
+
var Heading1 = (0, import_react50.forwardRef)(
|
|
5111
|
+
(props, ref) => /* @__PURE__ */ import_react50.default.createElement(Text, { ref, ...props, variant: "heading1" })
|
|
5084
5112
|
);
|
|
5085
|
-
var Heading2 = (0,
|
|
5086
|
-
(props, ref) => /* @__PURE__ */
|
|
5113
|
+
var Heading2 = (0, import_react50.forwardRef)(
|
|
5114
|
+
(props, ref) => /* @__PURE__ */ import_react50.default.createElement(Text, { ref, ...props, variant: "heading2" })
|
|
5087
5115
|
);
|
|
5088
|
-
var Heading3 = (0,
|
|
5089
|
-
(props, ref) => /* @__PURE__ */
|
|
5116
|
+
var Heading3 = (0, import_react50.forwardRef)(
|
|
5117
|
+
(props, ref) => /* @__PURE__ */ import_react50.default.createElement(Text, { ref, ...props, variant: "heading3" })
|
|
5090
5118
|
);
|
|
5091
|
-
var Heading4 = (0,
|
|
5092
|
-
(props, ref) => /* @__PURE__ */
|
|
5119
|
+
var Heading4 = (0, import_react50.forwardRef)(
|
|
5120
|
+
(props, ref) => /* @__PURE__ */ import_react50.default.createElement(Text, { ref, ...props, variant: "heading4" })
|
|
5093
5121
|
);
|
|
5094
|
-
var Heading5 = (0,
|
|
5095
|
-
(props, ref) => /* @__PURE__ */
|
|
5122
|
+
var Heading5 = (0, import_react50.forwardRef)(
|
|
5123
|
+
(props, ref) => /* @__PURE__ */ import_react50.default.createElement(Text, { ref, ...props, variant: "heading5" })
|
|
5096
5124
|
);
|
|
5097
|
-
var Body = (0,
|
|
5098
|
-
(props, ref) => /* @__PURE__ */
|
|
5125
|
+
var Body = (0, import_react50.forwardRef)(
|
|
5126
|
+
(props, ref) => /* @__PURE__ */ import_react50.default.createElement(Text, { ref, ...props, variant: "body" })
|
|
5099
5127
|
);
|
|
5100
|
-
var Small = (0,
|
|
5101
|
-
(props, ref) => /* @__PURE__ */
|
|
5128
|
+
var Small = (0, import_react50.forwardRef)(
|
|
5129
|
+
(props, ref) => /* @__PURE__ */ import_react50.default.createElement(Text, { ref, ...props, variant: "small" })
|
|
5102
5130
|
);
|
|
5103
|
-
var Italic = ({ children }) => /* @__PURE__ */
|
|
5131
|
+
var Italic = ({ children }) => /* @__PURE__ */ import_react50.default.createElement(
|
|
5104
5132
|
"span",
|
|
5105
5133
|
{
|
|
5106
5134
|
style: {
|
|
@@ -5112,9 +5140,9 @@ var Italic = ({ children }) => /* @__PURE__ */ import_react49.default.createElem
|
|
|
5112
5140
|
|
|
5113
5141
|
// src/components/InputFieldWithCompletions.tsx
|
|
5114
5142
|
function filterWithGroupedSections(items, query) {
|
|
5115
|
-
const sections = (0,
|
|
5143
|
+
const sections = (0, import_noya_utils8.chunkBy)(items, (a, b) => b.type !== "sectionHeader");
|
|
5116
5144
|
return sections.flatMap((section) => {
|
|
5117
|
-
const [headers, regular] = (0,
|
|
5145
|
+
const [headers, regular] = (0, import_noya_utils8.partition)(
|
|
5118
5146
|
section,
|
|
5119
5147
|
(item) => item.type === "sectionHeader"
|
|
5120
5148
|
);
|
|
@@ -5137,20 +5165,20 @@ function filterWithGroupedSections(items, query) {
|
|
|
5137
5165
|
});
|
|
5138
5166
|
}
|
|
5139
5167
|
var CompletionToken = import_styled_components27.default.span(
|
|
5140
|
-
({ type }) => ({
|
|
5141
|
-
fontWeight: type === "match" ? "bold" : "normal",
|
|
5168
|
+
({ $type }) => ({
|
|
5169
|
+
fontWeight: $type === "match" ? "bold" : "normal",
|
|
5142
5170
|
whiteSpace: "pre"
|
|
5143
5171
|
})
|
|
5144
5172
|
);
|
|
5145
|
-
var CompletionMenu = (0,
|
|
5146
|
-
(0,
|
|
5173
|
+
var CompletionMenu = (0, import_react51.memo)(
|
|
5174
|
+
(0, import_react51.forwardRef)(function CompletionMenu2({
|
|
5147
5175
|
items,
|
|
5148
5176
|
selectedIndex,
|
|
5149
5177
|
onSelectItem,
|
|
5150
5178
|
onHoverIndex,
|
|
5151
5179
|
listSize
|
|
5152
5180
|
}, forwardedRef) {
|
|
5153
|
-
return /* @__PURE__ */
|
|
5181
|
+
return /* @__PURE__ */ import_react51.default.createElement(
|
|
5154
5182
|
ListView.Root,
|
|
5155
5183
|
{
|
|
5156
5184
|
ref: forwardedRef,
|
|
@@ -5162,13 +5190,13 @@ var CompletionMenu = (0, import_react50.memo)(
|
|
|
5162
5190
|
sectionHeaderVariant: "label",
|
|
5163
5191
|
renderItem: (item, i) => {
|
|
5164
5192
|
if (item.type === "sectionHeader") {
|
|
5165
|
-
return /* @__PURE__ */
|
|
5193
|
+
return /* @__PURE__ */ import_react51.default.createElement(ListView.Row, { key: item.id, isSectionHeader: true }, item.name);
|
|
5166
5194
|
}
|
|
5167
5195
|
const tokens = fuzzyTokenize({
|
|
5168
5196
|
item: item.name,
|
|
5169
5197
|
itemScore: item
|
|
5170
5198
|
});
|
|
5171
|
-
return /* @__PURE__ */
|
|
5199
|
+
return /* @__PURE__ */ import_react51.default.createElement(
|
|
5172
5200
|
ListView.Row,
|
|
5173
5201
|
{
|
|
5174
5202
|
key: item.id,
|
|
@@ -5180,16 +5208,16 @@ var CompletionMenu = (0, import_react50.memo)(
|
|
|
5180
5208
|
}
|
|
5181
5209
|
}
|
|
5182
5210
|
},
|
|
5183
|
-
tokens.map((token, j) => /* @__PURE__ */
|
|
5184
|
-
item.icon && /* @__PURE__ */
|
|
5211
|
+
tokens.map((token, j) => /* @__PURE__ */ import_react51.default.createElement(CompletionToken, { key: j, $type: token.type }, token.text)),
|
|
5212
|
+
item.icon && /* @__PURE__ */ import_react51.default.createElement(import_react51.default.Fragment, null, /* @__PURE__ */ import_react51.default.createElement(Spacer.Horizontal, null), item.icon)
|
|
5185
5213
|
);
|
|
5186
5214
|
}
|
|
5187
5215
|
}
|
|
5188
5216
|
);
|
|
5189
5217
|
})
|
|
5190
5218
|
);
|
|
5191
|
-
var InputFieldWithCompletions = (0,
|
|
5192
|
-
(0,
|
|
5219
|
+
var InputFieldWithCompletions = (0, import_react51.memo)(
|
|
5220
|
+
(0, import_react51.forwardRef)(function InputFieldWithCompletions2({
|
|
5193
5221
|
loading,
|
|
5194
5222
|
initialValue = "",
|
|
5195
5223
|
placeholder,
|
|
@@ -5207,13 +5235,13 @@ var InputFieldWithCompletions = (0, import_react50.memo)(
|
|
|
5207
5235
|
hideChildrenWhenFocused = false,
|
|
5208
5236
|
hideMenuWhenEmptyValue = false
|
|
5209
5237
|
}, forwardedRef) {
|
|
5210
|
-
const ref = (0,
|
|
5211
|
-
const [isFocused, setIsFocused] = (0,
|
|
5212
|
-
const [state, _setState] = (0,
|
|
5238
|
+
const ref = (0, import_react51.useRef)(null);
|
|
5239
|
+
const [isFocused, setIsFocused] = (0, import_react51.useState)(false);
|
|
5240
|
+
const [state, _setState] = (0, import_react51.useState)({
|
|
5213
5241
|
filter: initialValue,
|
|
5214
5242
|
selectedIndex: 0
|
|
5215
5243
|
});
|
|
5216
|
-
const updateState = (0,
|
|
5244
|
+
const updateState = (0, import_react51.useCallback)(
|
|
5217
5245
|
(newState, hoverItem) => {
|
|
5218
5246
|
const nextState = { ...state, ...newState };
|
|
5219
5247
|
const nextItems = filterWithGroupedSections(items, nextState.filter);
|
|
@@ -5242,20 +5270,20 @@ var InputFieldWithCompletions = (0, import_react50.memo)(
|
|
|
5242
5270
|
},
|
|
5243
5271
|
[items, onChange, onHoverItem, state]
|
|
5244
5272
|
);
|
|
5245
|
-
const initialValueRef = (0,
|
|
5246
|
-
(0,
|
|
5273
|
+
const initialValueRef = (0, import_react51.useRef)(initialValue);
|
|
5274
|
+
(0, import_react51.useLayoutEffect)(() => {
|
|
5247
5275
|
if (initialValueRef.current === initialValue)
|
|
5248
5276
|
return;
|
|
5249
5277
|
initialValueRef.current = initialValue;
|
|
5250
5278
|
updateState({ filter: initialValue });
|
|
5251
5279
|
}, [initialValue, updateState]);
|
|
5252
5280
|
const { filter, selectedIndex } = state;
|
|
5253
|
-
const listRef =
|
|
5254
|
-
const filteredItems = (0,
|
|
5281
|
+
const listRef = import_react51.default.useRef(null);
|
|
5282
|
+
const filteredItems = (0, import_react51.useMemo)(
|
|
5255
5283
|
() => filterWithGroupedSections(items, filter),
|
|
5256
5284
|
[items, filter]
|
|
5257
5285
|
);
|
|
5258
|
-
const [normalItems, sectionHeaderItems] = (0,
|
|
5286
|
+
const [normalItems, sectionHeaderItems] = (0, import_noya_utils8.partition)(
|
|
5259
5287
|
filteredItems,
|
|
5260
5288
|
(item) => item.type !== "sectionHeader"
|
|
5261
5289
|
);
|
|
@@ -5267,13 +5295,13 @@ var InputFieldWithCompletions = (0, import_react50.memo)(
|
|
|
5267
5295
|
),
|
|
5268
5296
|
ListView.rowHeight * 10.5
|
|
5269
5297
|
);
|
|
5270
|
-
(0,
|
|
5298
|
+
(0, import_react51.useEffect)(() => {
|
|
5271
5299
|
if (listRef.current) {
|
|
5272
5300
|
listRef.current.scrollToIndex(selectedIndex);
|
|
5273
5301
|
}
|
|
5274
5302
|
}, [selectedIndex]);
|
|
5275
|
-
const lastSubmittedValueRef = (0,
|
|
5276
|
-
const selectItem = (0,
|
|
5303
|
+
const lastSubmittedValueRef = (0, import_react51.useRef)(void 0);
|
|
5304
|
+
const selectItem = (0, import_react51.useCallback)(
|
|
5277
5305
|
(item) => {
|
|
5278
5306
|
if (item.type === "sectionHeader")
|
|
5279
5307
|
return;
|
|
@@ -5289,17 +5317,17 @@ var InputFieldWithCompletions = (0, import_react50.memo)(
|
|
|
5289
5317
|
},
|
|
5290
5318
|
[filter, onSelectItem, onHoverItem, ref]
|
|
5291
5319
|
);
|
|
5292
|
-
const handleChange = (0,
|
|
5320
|
+
const handleChange = (0, import_react51.useCallback)(
|
|
5293
5321
|
(value) => updateState({ selectedIndex: 0, filter: value }),
|
|
5294
5322
|
[updateState]
|
|
5295
5323
|
);
|
|
5296
|
-
const handleBlur = (0,
|
|
5324
|
+
const handleBlur = (0, import_react51.useCallback)(() => {
|
|
5297
5325
|
setIsFocused(false);
|
|
5298
5326
|
const didSubmit = lastSubmittedValueRef.current?.filter === filter;
|
|
5299
5327
|
updateState({ selectedIndex: 0, filter: initialValue }, "resetHover");
|
|
5300
5328
|
onBlur?.(didSubmit, filter);
|
|
5301
5329
|
}, [filter, initialValue, onBlur, updateState]);
|
|
5302
|
-
const handleFocus = (0,
|
|
5330
|
+
const handleFocus = (0, import_react51.useCallback)(
|
|
5303
5331
|
(event) => {
|
|
5304
5332
|
setIsFocused(true);
|
|
5305
5333
|
updateState({ selectedIndex: 0, filter: initialValue });
|
|
@@ -5307,11 +5335,11 @@ var InputFieldWithCompletions = (0, import_react50.memo)(
|
|
|
5307
5335
|
},
|
|
5308
5336
|
[initialValue, onFocus, updateState]
|
|
5309
5337
|
);
|
|
5310
|
-
const handleIndexChange = (0,
|
|
5338
|
+
const handleIndexChange = (0, import_react51.useCallback)(
|
|
5311
5339
|
(index) => updateState({ selectedIndex: index }),
|
|
5312
5340
|
[updateState]
|
|
5313
5341
|
);
|
|
5314
|
-
const handleKeyDown = (0,
|
|
5342
|
+
const handleKeyDown = (0, import_react51.useCallback)(
|
|
5315
5343
|
(event) => {
|
|
5316
5344
|
let handled = false;
|
|
5317
5345
|
switch (event.key) {
|
|
@@ -5375,7 +5403,7 @@ var InputFieldWithCompletions = (0, import_react50.memo)(
|
|
|
5375
5403
|
);
|
|
5376
5404
|
const display = !filter && hideMenuWhenEmptyValue ? "none" : "flex";
|
|
5377
5405
|
const typeaheadValue = filteredItems[selectedIndex]?.name;
|
|
5378
|
-
(0,
|
|
5406
|
+
(0, import_react51.useImperativeHandle)(forwardedRef, () => ({
|
|
5379
5407
|
focus: () => {
|
|
5380
5408
|
ref.current?.focus();
|
|
5381
5409
|
},
|
|
@@ -5386,14 +5414,14 @@ var InputFieldWithCompletions = (0, import_react50.memo)(
|
|
|
5386
5414
|
ref.current?.setSelectionRange(0, ref.current.value.length);
|
|
5387
5415
|
}
|
|
5388
5416
|
}));
|
|
5389
|
-
return /* @__PURE__ */
|
|
5417
|
+
return /* @__PURE__ */ import_react51.default.createElement(
|
|
5390
5418
|
InputField.Root,
|
|
5391
5419
|
{
|
|
5392
5420
|
size: size2,
|
|
5393
5421
|
labelSize: 16,
|
|
5394
5422
|
renderPopoverContent: ({ width }) => {
|
|
5395
5423
|
const listSize = { width, height };
|
|
5396
|
-
return /* @__PURE__ */
|
|
5424
|
+
return /* @__PURE__ */ import_react51.default.createElement(Stack.V, { flex: `0 0 ${height}px`, display }, filteredItems.length > 0 ? /* @__PURE__ */ import_react51.default.createElement(
|
|
5397
5425
|
CompletionMenu,
|
|
5398
5426
|
{
|
|
5399
5427
|
ref: listRef,
|
|
@@ -5403,7 +5431,7 @@ var InputFieldWithCompletions = (0, import_react50.memo)(
|
|
|
5403
5431
|
onHoverIndex: handleIndexChange,
|
|
5404
5432
|
listSize
|
|
5405
5433
|
}
|
|
5406
|
-
) : /* @__PURE__ */
|
|
5434
|
+
) : /* @__PURE__ */ import_react51.default.createElement(
|
|
5407
5435
|
Stack.V,
|
|
5408
5436
|
{
|
|
5409
5437
|
height: "100px",
|
|
@@ -5411,11 +5439,11 @@ var InputFieldWithCompletions = (0, import_react50.memo)(
|
|
|
5411
5439
|
alignItems: "center",
|
|
5412
5440
|
justifyContent: "center"
|
|
5413
5441
|
},
|
|
5414
|
-
/* @__PURE__ */
|
|
5442
|
+
/* @__PURE__ */ import_react51.default.createElement(Small, { color: "textDisabled" }, loading ? "Loading" : "No results")
|
|
5415
5443
|
));
|
|
5416
5444
|
}
|
|
5417
5445
|
},
|
|
5418
|
-
/* @__PURE__ */
|
|
5446
|
+
/* @__PURE__ */ import_react51.default.createElement(
|
|
5419
5447
|
InputField.Input,
|
|
5420
5448
|
{
|
|
5421
5449
|
ref,
|
|
@@ -5439,9 +5467,9 @@ var InputFieldWithCompletions = (0, import_react50.memo)(
|
|
|
5439
5467
|
"aria-controls": "component-listbox"
|
|
5440
5468
|
}
|
|
5441
5469
|
),
|
|
5442
|
-
filter && typeaheadValue && typeaheadValue.startsWith(filter) && /* @__PURE__ */
|
|
5470
|
+
filter && typeaheadValue && typeaheadValue.startsWith(filter) && /* @__PURE__ */ import_react51.default.createElement(InputField.Typeahead, { value: typeaheadValue }),
|
|
5443
5471
|
(!isFocused || !hideChildrenWhenFocused) && children,
|
|
5444
|
-
loading && isFocused && /* @__PURE__ */
|
|
5472
|
+
loading && isFocused && /* @__PURE__ */ import_react51.default.createElement(InputField.Label, null, /* @__PURE__ */ import_react51.default.createElement(ActivityIndicator, null))
|
|
5445
5473
|
);
|
|
5446
5474
|
})
|
|
5447
5475
|
);
|
|
@@ -5463,13 +5491,13 @@ function getNextIndex(items, currentIndex, direction, isDisabled) {
|
|
|
5463
5491
|
}
|
|
5464
5492
|
|
|
5465
5493
|
// src/components/Label.tsx
|
|
5466
|
-
var
|
|
5494
|
+
var import_react52 = __toESM(require("react"));
|
|
5467
5495
|
var import_styled_components28 = __toESM(require("styled-components"));
|
|
5468
5496
|
var LabelLabel = import_styled_components28.default.label(
|
|
5469
|
-
({ theme, selected }) => ({
|
|
5497
|
+
({ theme, $selected }) => ({
|
|
5470
5498
|
...theme.textStyles.small,
|
|
5471
5499
|
color: theme.colors.textMuted,
|
|
5472
|
-
|
|
5500
|
+
...$selected && {
|
|
5473
5501
|
color: theme.colors.text
|
|
5474
5502
|
},
|
|
5475
5503
|
fontSize: "11px",
|
|
@@ -5492,17 +5520,17 @@ var LabelContainer2 = import_styled_components28.default.span(({ theme }) => ({
|
|
|
5492
5520
|
alignItems: "center"
|
|
5493
5521
|
}));
|
|
5494
5522
|
function LabelRoot({ label, children }) {
|
|
5495
|
-
return /* @__PURE__ */
|
|
5523
|
+
return /* @__PURE__ */ import_react52.default.createElement(LabelContainer2, null, children, label && /* @__PURE__ */ import_react52.default.createElement(import_react52.default.Fragment, null, /* @__PURE__ */ import_react52.default.createElement(Spacer.Vertical, { size: 2 }), /* @__PURE__ */ import_react52.default.createElement(LabelLabel, null, label)));
|
|
5496
5524
|
}
|
|
5497
5525
|
var Label;
|
|
5498
5526
|
((_Label) => {
|
|
5499
|
-
_Label.Label = (0,
|
|
5500
|
-
_Label.Root = (0,
|
|
5527
|
+
_Label.Label = (0, import_react52.memo)(LabelLabel);
|
|
5528
|
+
_Label.Root = (0, import_react52.memo)(LabelRoot);
|
|
5501
5529
|
})(Label || (Label = {}));
|
|
5502
5530
|
|
|
5503
5531
|
// src/components/LabeledElementView.tsx
|
|
5504
5532
|
var kiwi = __toESM(require("kiwi.js"));
|
|
5505
|
-
var
|
|
5533
|
+
var import_react53 = __toESM(require("react"));
|
|
5506
5534
|
var import_styled_components29 = __toESM(require("styled-components"));
|
|
5507
5535
|
var Container4 = import_styled_components29.default.div(({ theme }) => ({
|
|
5508
5536
|
display: "flex",
|
|
@@ -5521,24 +5549,24 @@ var Labels = import_styled_components29.default.div(({ theme }) => ({
|
|
|
5521
5549
|
overflow: "hidden",
|
|
5522
5550
|
userSelect: "none"
|
|
5523
5551
|
}));
|
|
5524
|
-
var LabeledElementView = (0,
|
|
5552
|
+
var LabeledElementView = (0, import_react53.memo)(function LabeledElementView2({
|
|
5525
5553
|
children,
|
|
5526
5554
|
renderLabel
|
|
5527
5555
|
}) {
|
|
5528
|
-
const elementIds =
|
|
5529
|
-
(child) => (0,
|
|
5556
|
+
const elementIds = import_react53.Children.toArray(children).flatMap(
|
|
5557
|
+
(child) => (0, import_react53.isValidElement)(child) && child.type === import_react53.Fragment ? child.props.children : [child]
|
|
5530
5558
|
).map(
|
|
5531
|
-
(child) => (0,
|
|
5559
|
+
(child) => (0, import_react53.isValidElement)(child) && "id" in child.props ? child.props.id : null
|
|
5532
5560
|
).filter((id) => !!id);
|
|
5533
5561
|
const serializedIds = elementIds.join(",");
|
|
5534
|
-
const containerRef = (0,
|
|
5535
|
-
const refs = (0,
|
|
5562
|
+
const containerRef = (0, import_react53.useRef)(null);
|
|
5563
|
+
const refs = (0, import_react53.useMemo)(() => {
|
|
5536
5564
|
return Object.fromEntries(
|
|
5537
|
-
serializedIds.split(",").map((id) => [id, (0,
|
|
5565
|
+
serializedIds.split(",").map((id) => [id, (0, import_react53.createRef)()])
|
|
5538
5566
|
);
|
|
5539
5567
|
}, [serializedIds]);
|
|
5540
|
-
const labelElements = (0,
|
|
5541
|
-
return serializedIds.split(",").map((id, index) => /* @__PURE__ */
|
|
5568
|
+
const labelElements = (0, import_react53.useMemo)(() => {
|
|
5569
|
+
return serializedIds.split(",").map((id, index) => /* @__PURE__ */ import_react53.default.createElement(
|
|
5542
5570
|
"span",
|
|
5543
5571
|
{
|
|
5544
5572
|
key: id,
|
|
@@ -5551,7 +5579,7 @@ var LabeledElementView = (0, import_react52.memo)(function LabeledElementView2({
|
|
|
5551
5579
|
})
|
|
5552
5580
|
));
|
|
5553
5581
|
}, [refs, serializedIds, renderLabel]);
|
|
5554
|
-
(0,
|
|
5582
|
+
(0, import_react53.useLayoutEffect)(() => {
|
|
5555
5583
|
if (!containerRef.current)
|
|
5556
5584
|
return;
|
|
5557
5585
|
const containerRect = containerRef.current.getBoundingClientRect();
|
|
@@ -5616,13 +5644,13 @@ var LabeledElementView = (0, import_react52.memo)(function LabeledElementView2({
|
|
|
5616
5644
|
`${Math.max(...heights)}px`
|
|
5617
5645
|
);
|
|
5618
5646
|
}, [refs, labelElements]);
|
|
5619
|
-
return /* @__PURE__ */
|
|
5647
|
+
return /* @__PURE__ */ import_react53.default.createElement(Container4, { ref: containerRef }, /* @__PURE__ */ import_react53.default.createElement(Tools, null, children), /* @__PURE__ */ import_react53.default.createElement(Labels, null, labelElements));
|
|
5620
5648
|
});
|
|
5621
5649
|
|
|
5622
5650
|
// src/components/Progress.tsx
|
|
5623
|
-
var
|
|
5651
|
+
var import_noya_utils9 = require("@noya-app/noya-utils");
|
|
5624
5652
|
var ProgressPrimitive = __toESM(require("@radix-ui/react-progress"));
|
|
5625
|
-
var
|
|
5653
|
+
var import_react54 = __toESM(require("react"));
|
|
5626
5654
|
var import_styled_components30 = __toESM(require("styled-components"));
|
|
5627
5655
|
function Progress({
|
|
5628
5656
|
value,
|
|
@@ -5631,8 +5659,8 @@ function Progress({
|
|
|
5631
5659
|
flex,
|
|
5632
5660
|
variant = "normal"
|
|
5633
5661
|
}) {
|
|
5634
|
-
const clampedValue = (0,
|
|
5635
|
-
return /* @__PURE__ */
|
|
5662
|
+
const clampedValue = (0, import_noya_utils9.clamp)(value, 0, 100);
|
|
5663
|
+
return /* @__PURE__ */ import_react54.default.createElement(ProgressRoot, { value: clampedValue, style: { width, flex, height } }, /* @__PURE__ */ import_react54.default.createElement(
|
|
5636
5664
|
ProgressIndicator,
|
|
5637
5665
|
{
|
|
5638
5666
|
variant,
|
|
@@ -5657,11 +5685,11 @@ var ProgressIndicator = (0, import_styled_components30.default)(ProgressPrimitiv
|
|
|
5657
5685
|
|
|
5658
5686
|
// src/components/RadioGroup.tsx
|
|
5659
5687
|
var ToggleGroupPrimitive = __toESM(require("@radix-ui/react-toggle-group"));
|
|
5660
|
-
var
|
|
5688
|
+
var import_react55 = __toESM(require("react"));
|
|
5661
5689
|
var import_styled_components31 = __toESM(require("styled-components"));
|
|
5662
|
-
var
|
|
5690
|
+
var ignoredProps2 = /* @__PURE__ */ new Set(["colorScheme"]);
|
|
5663
5691
|
var StyledRoot = (0, import_styled_components31.default)(ToggleGroupPrimitive.Root).withConfig({
|
|
5664
|
-
shouldForwardProp: (prop) => !
|
|
5692
|
+
shouldForwardProp: (prop) => !ignoredProps2.has(prop)
|
|
5665
5693
|
})(({ theme, colorScheme }) => ({
|
|
5666
5694
|
appearance: "none",
|
|
5667
5695
|
width: "0px",
|
|
@@ -5684,7 +5712,7 @@ var StyledRoot = (0, import_styled_components31.default)(ToggleGroupPrimitive.Ro
|
|
|
5684
5712
|
padding: colorScheme === void 0 ? "2px" : 0
|
|
5685
5713
|
}));
|
|
5686
5714
|
var StyledItem = (0, import_styled_components31.default)(ToggleGroupPrimitive.Item).withConfig({
|
|
5687
|
-
shouldForwardProp: (prop) => !
|
|
5715
|
+
shouldForwardProp: (prop) => !ignoredProps2.has(prop)
|
|
5688
5716
|
})(({ theme, colorScheme }) => ({
|
|
5689
5717
|
...theme.textStyles.small,
|
|
5690
5718
|
position: "relative",
|
|
@@ -5710,9 +5738,9 @@ var StyledItem = (0, import_styled_components31.default)(ToggleGroupPrimitive.It
|
|
|
5710
5738
|
boxShadow: `0 0 0 1px ${theme.colors.sidebar.background}, 0 0 0 3px ${theme.colors[colorScheme ?? "primary"]}`
|
|
5711
5739
|
}
|
|
5712
5740
|
}));
|
|
5713
|
-
var ToggleGroupItem = (0,
|
|
5714
|
-
const { colorScheme } = (0,
|
|
5715
|
-
const itemElement = /* @__PURE__ */
|
|
5741
|
+
var ToggleGroupItem = (0, import_react55.forwardRef)(function ToggleGroupItem2({ value, tooltip, children, disabled = false }, forwardedRef) {
|
|
5742
|
+
const { colorScheme } = (0, import_react55.useContext)(RadioGroupContext);
|
|
5743
|
+
const itemElement = /* @__PURE__ */ import_react55.default.createElement(
|
|
5716
5744
|
StyledItem,
|
|
5717
5745
|
{
|
|
5718
5746
|
ref: forwardedRef,
|
|
@@ -5722,9 +5750,9 @@ var ToggleGroupItem = (0, import_react54.forwardRef)(function ToggleGroupItem2({
|
|
|
5722
5750
|
},
|
|
5723
5751
|
children
|
|
5724
5752
|
);
|
|
5725
|
-
return tooltip ? /* @__PURE__ */
|
|
5753
|
+
return tooltip ? /* @__PURE__ */ import_react55.default.createElement(Tooltip, { content: tooltip }, itemElement) : itemElement;
|
|
5726
5754
|
});
|
|
5727
|
-
var RadioGroupContext = (0,
|
|
5755
|
+
var RadioGroupContext = (0, import_react55.createContext)({
|
|
5728
5756
|
colorScheme: "primary"
|
|
5729
5757
|
});
|
|
5730
5758
|
function ToggleGroupRoot({
|
|
@@ -5735,8 +5763,8 @@ function ToggleGroupRoot({
|
|
|
5735
5763
|
allowEmpty,
|
|
5736
5764
|
children
|
|
5737
5765
|
}) {
|
|
5738
|
-
const contextValue = (0,
|
|
5739
|
-
const handleValueChange = (0,
|
|
5766
|
+
const contextValue = (0, import_react55.useMemo)(() => ({ colorScheme }), [colorScheme]);
|
|
5767
|
+
const handleValueChange = (0, import_react55.useCallback)(
|
|
5740
5768
|
(value2) => {
|
|
5741
5769
|
if (!allowEmpty && !value2)
|
|
5742
5770
|
return;
|
|
@@ -5744,7 +5772,7 @@ function ToggleGroupRoot({
|
|
|
5744
5772
|
},
|
|
5745
5773
|
[allowEmpty, onValueChange]
|
|
5746
5774
|
);
|
|
5747
|
-
return /* @__PURE__ */
|
|
5775
|
+
return /* @__PURE__ */ import_react55.default.createElement(RadioGroupContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react55.default.createElement(
|
|
5748
5776
|
StyledRoot,
|
|
5749
5777
|
{
|
|
5750
5778
|
id,
|
|
@@ -5758,53 +5786,53 @@ function ToggleGroupRoot({
|
|
|
5758
5786
|
}
|
|
5759
5787
|
var RadioGroup;
|
|
5760
5788
|
((RadioGroup2) => {
|
|
5761
|
-
RadioGroup2.Root = (0,
|
|
5762
|
-
RadioGroup2.Item = (0,
|
|
5789
|
+
RadioGroup2.Root = (0, import_react55.memo)(ToggleGroupRoot);
|
|
5790
|
+
RadioGroup2.Item = (0, import_react55.memo)(ToggleGroupItem);
|
|
5763
5791
|
})(RadioGroup || (RadioGroup = {}));
|
|
5764
5792
|
|
|
5765
5793
|
// src/components/Select.tsx
|
|
5766
|
-
var
|
|
5767
|
-
var
|
|
5794
|
+
var import_noya_utils10 = require("@noya-app/noya-utils");
|
|
5795
|
+
var import_react56 = __toESM(require("react"));
|
|
5768
5796
|
var import_styled_components32 = __toESM(require("styled-components"));
|
|
5769
|
-
var SelectContext = (0,
|
|
5770
|
-
var SelectOption = (0,
|
|
5797
|
+
var SelectContext = (0, import_react56.createContext)(void 0);
|
|
5798
|
+
var SelectOption = (0, import_react56.memo)(function SelectOption2({
|
|
5771
5799
|
value,
|
|
5772
5800
|
title,
|
|
5773
5801
|
onSelect
|
|
5774
5802
|
}) {
|
|
5775
|
-
const { addListener, removeListener } = (0,
|
|
5776
|
-
(0,
|
|
5803
|
+
const { addListener, removeListener } = (0, import_react56.useContext)(SelectContext);
|
|
5804
|
+
(0, import_react56.useEffect)(() => {
|
|
5777
5805
|
if (!onSelect)
|
|
5778
5806
|
return;
|
|
5779
5807
|
addListener(value, onSelect);
|
|
5780
5808
|
return () => removeListener(value);
|
|
5781
5809
|
}, [addListener, onSelect, removeListener, value]);
|
|
5782
|
-
return /* @__PURE__ */
|
|
5810
|
+
return /* @__PURE__ */ import_react56.default.createElement("option", { value }, title ?? value);
|
|
5783
5811
|
});
|
|
5784
|
-
var createChevronSVGString = (0,
|
|
5812
|
+
var createChevronSVGString = (0, import_noya_utils10.memoize)(
|
|
5785
5813
|
(color) => `
|
|
5786
5814
|
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15 15' fill='${color}'>
|
|
5787
5815
|
<path d='M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z'></path>
|
|
5788
5816
|
</svg>
|
|
5789
|
-
|
|
5817
|
+
`.replace(/\n/g, "")
|
|
5790
5818
|
);
|
|
5791
5819
|
var SelectContainer = import_styled_components32.default.div(
|
|
5792
|
-
({ flex }) => ({
|
|
5793
|
-
flex: flex ?? "1 1 0px",
|
|
5820
|
+
({ $flex }) => ({
|
|
5821
|
+
flex: $flex ?? "1 1 0px",
|
|
5794
5822
|
display: "flex",
|
|
5795
5823
|
flexDirection: "row",
|
|
5796
5824
|
position: "relative"
|
|
5797
5825
|
})
|
|
5798
5826
|
);
|
|
5799
5827
|
var SelectElement = import_styled_components32.default.select(
|
|
5800
|
-
({ theme, flex }) => ({
|
|
5828
|
+
({ theme, $flex }) => ({
|
|
5801
5829
|
appearance: "none",
|
|
5802
5830
|
...theme.textStyles.small,
|
|
5803
5831
|
color: theme.colors.text,
|
|
5804
5832
|
lineHeight: "19px",
|
|
5805
5833
|
width: "0px",
|
|
5806
5834
|
// Reset intrinsic width
|
|
5807
|
-
flex: flex ?? "1 1 0px",
|
|
5835
|
+
flex: $flex ?? "1 1 0px",
|
|
5808
5836
|
position: "relative",
|
|
5809
5837
|
border: "0",
|
|
5810
5838
|
outline: "none",
|
|
@@ -5841,7 +5869,7 @@ var SelectLabel = import_styled_components32.default.label(({ theme }) => ({
|
|
|
5841
5869
|
justifyContent: "end",
|
|
5842
5870
|
paddingRight: "24px"
|
|
5843
5871
|
}));
|
|
5844
|
-
var Select = (0,
|
|
5872
|
+
var Select = (0, import_react56.memo)(function Select2({
|
|
5845
5873
|
id,
|
|
5846
5874
|
flex,
|
|
5847
5875
|
value,
|
|
@@ -5852,8 +5880,8 @@ var Select = (0, import_react55.memo)(function Select2({
|
|
|
5852
5880
|
const getTitle = "options" in rest ? rest.getTitle : void 0;
|
|
5853
5881
|
const onChange = "options" in rest ? rest.onChange : void 0;
|
|
5854
5882
|
const children = "options" in rest ? void 0 : rest.children;
|
|
5855
|
-
const optionElements = (0,
|
|
5856
|
-
() => options ? options.map((option, index) => /* @__PURE__ */
|
|
5883
|
+
const optionElements = (0, import_react56.useMemo)(
|
|
5884
|
+
() => options ? options.map((option, index) => /* @__PURE__ */ import_react56.default.createElement(
|
|
5857
5885
|
SelectOption,
|
|
5858
5886
|
{
|
|
5859
5887
|
key: option,
|
|
@@ -5864,33 +5892,33 @@ var Select = (0, import_react55.memo)(function Select2({
|
|
|
5864
5892
|
)) : children,
|
|
5865
5893
|
[children, getTitle, onChange, options]
|
|
5866
5894
|
);
|
|
5867
|
-
const listeners = (0,
|
|
5868
|
-
const contextValue = (0,
|
|
5895
|
+
const listeners = (0, import_react56.useRef)(/* @__PURE__ */ new Map());
|
|
5896
|
+
const contextValue = (0, import_react56.useMemo)(
|
|
5869
5897
|
() => ({
|
|
5870
5898
|
addListener: (value2, listener) => listeners.current.set(value2, listener),
|
|
5871
5899
|
removeListener: (value2) => listeners.current.delete(value2)
|
|
5872
5900
|
}),
|
|
5873
5901
|
[]
|
|
5874
5902
|
);
|
|
5875
|
-
return /* @__PURE__ */
|
|
5903
|
+
return /* @__PURE__ */ import_react56.default.createElement(SelectContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react56.default.createElement(SelectContainer, { $flex: flex }, /* @__PURE__ */ import_react56.default.createElement(
|
|
5876
5904
|
SelectElement,
|
|
5877
5905
|
{
|
|
5878
5906
|
id,
|
|
5879
|
-
flex,
|
|
5907
|
+
$flex: flex,
|
|
5880
5908
|
value,
|
|
5881
|
-
onChange: (0,
|
|
5909
|
+
onChange: (0, import_react56.useCallback)(
|
|
5882
5910
|
(event) => listeners.current.get(event.target.value)?.(),
|
|
5883
5911
|
[listeners]
|
|
5884
5912
|
),
|
|
5885
5913
|
onPointerDown: (event) => event.stopPropagation()
|
|
5886
5914
|
},
|
|
5887
5915
|
optionElements
|
|
5888
|
-
)), label && /* @__PURE__ */
|
|
5916
|
+
)), label && /* @__PURE__ */ import_react56.default.createElement(SelectLabel, { htmlFor: id }, label));
|
|
5889
5917
|
});
|
|
5890
5918
|
|
|
5891
5919
|
// src/components/Slider.tsx
|
|
5892
5920
|
var RadixSlider = __toESM(require("@radix-ui/react-slider"));
|
|
5893
|
-
var
|
|
5921
|
+
var import_react57 = __toESM(require("react"));
|
|
5894
5922
|
var import_styled_components33 = __toESM(require("styled-components"));
|
|
5895
5923
|
var StyledSlider = (0, import_styled_components33.default)(RadixSlider.Root)({
|
|
5896
5924
|
flex: "1",
|
|
@@ -5931,17 +5959,17 @@ var Slider = function Slider2({
|
|
|
5931
5959
|
min,
|
|
5932
5960
|
max
|
|
5933
5961
|
}) {
|
|
5934
|
-
const arrayValue = (0,
|
|
5962
|
+
const arrayValue = (0, import_react57.useMemo)(
|
|
5935
5963
|
() => [Math.min(Math.max(value, min), max)],
|
|
5936
5964
|
[value, min, max]
|
|
5937
5965
|
);
|
|
5938
|
-
const handleValueChange = (0,
|
|
5966
|
+
const handleValueChange = (0, import_react57.useCallback)(
|
|
5939
5967
|
(arrayValue2) => {
|
|
5940
5968
|
onValueChange(arrayValue2[0]);
|
|
5941
5969
|
},
|
|
5942
5970
|
[onValueChange]
|
|
5943
5971
|
);
|
|
5944
|
-
return /* @__PURE__ */
|
|
5972
|
+
return /* @__PURE__ */ import_react57.default.createElement(
|
|
5945
5973
|
StyledSlider,
|
|
5946
5974
|
{
|
|
5947
5975
|
min,
|
|
@@ -5950,16 +5978,16 @@ var Slider = function Slider2({
|
|
|
5950
5978
|
value: arrayValue,
|
|
5951
5979
|
onValueChange: handleValueChange
|
|
5952
5980
|
},
|
|
5953
|
-
/* @__PURE__ */
|
|
5954
|
-
/* @__PURE__ */
|
|
5981
|
+
/* @__PURE__ */ import_react57.default.createElement(StyledTrack, null, /* @__PURE__ */ import_react57.default.createElement(StyledRange, null)),
|
|
5982
|
+
/* @__PURE__ */ import_react57.default.createElement(StyledThumb2, null)
|
|
5955
5983
|
);
|
|
5956
5984
|
};
|
|
5957
5985
|
|
|
5958
5986
|
// src/components/Switch.tsx
|
|
5959
5987
|
var SwitchPrimitive = __toESM(require("@radix-ui/react-switch"));
|
|
5960
|
-
var
|
|
5988
|
+
var import_react58 = __toESM(require("react"));
|
|
5961
5989
|
var import_styled_components34 = __toESM(require("styled-components"));
|
|
5962
|
-
var SwitchRoot = (0, import_styled_components34.default)(SwitchPrimitive.Root)(({ theme, colorScheme
|
|
5990
|
+
var SwitchRoot = (0, import_styled_components34.default)(SwitchPrimitive.Root)(({ theme, $colorScheme }) => ({
|
|
5963
5991
|
all: "unset",
|
|
5964
5992
|
width: 32,
|
|
5965
5993
|
height: 19,
|
|
@@ -5968,13 +5996,12 @@ var SwitchRoot = (0, import_styled_components34.default)(SwitchPrimitive.Root)((
|
|
|
5968
5996
|
position: "relative",
|
|
5969
5997
|
WebkitTapHighlightColor: "rgba(0, 0, 0, 0)",
|
|
5970
5998
|
cursor: "pointer",
|
|
5971
|
-
|
|
5972
|
-
|
|
5973
|
-
|
|
5974
|
-
|
|
5975
|
-
// },
|
|
5999
|
+
"&:focus": {
|
|
6000
|
+
outline: `2px solid ${theme.colors.primary}`,
|
|
6001
|
+
outlineOffset: "1px"
|
|
6002
|
+
},
|
|
5976
6003
|
'&[data-state="checked"]': {
|
|
5977
|
-
backgroundColor:
|
|
6004
|
+
backgroundColor: $colorScheme === "primary" ? theme.colors.primary : $colorScheme === "secondary" ? theme.colors.secondary : void 0
|
|
5978
6005
|
}
|
|
5979
6006
|
}));
|
|
5980
6007
|
var SwitchThumb = (0, import_styled_components34.default)(SwitchPrimitive.Thumb)({
|
|
@@ -5993,51 +6020,51 @@ var Switch = function Switch2({
|
|
|
5993
6020
|
onChange,
|
|
5994
6021
|
colorScheme = "normal"
|
|
5995
6022
|
}) {
|
|
5996
|
-
return /* @__PURE__ */
|
|
6023
|
+
return /* @__PURE__ */ import_react58.default.createElement(
|
|
5997
6024
|
SwitchRoot,
|
|
5998
6025
|
{
|
|
5999
|
-
colorScheme,
|
|
6026
|
+
$colorScheme: colorScheme,
|
|
6000
6027
|
checked: value,
|
|
6001
6028
|
onCheckedChange: (newValue) => {
|
|
6002
6029
|
onChange(newValue);
|
|
6003
6030
|
}
|
|
6004
6031
|
},
|
|
6005
|
-
/* @__PURE__ */
|
|
6032
|
+
/* @__PURE__ */ import_react58.default.createElement(SwitchThumb, null)
|
|
6006
6033
|
);
|
|
6007
6034
|
};
|
|
6008
6035
|
|
|
6009
6036
|
// src/components/TreeView.tsx
|
|
6010
|
-
var
|
|
6011
|
-
var TreeRow = (0,
|
|
6037
|
+
var import_react59 = __toESM(require("react"));
|
|
6038
|
+
var TreeRow = (0, import_react59.forwardRef)(function TreeRow2({
|
|
6012
6039
|
icon,
|
|
6013
6040
|
expanded,
|
|
6014
6041
|
onClickChevron,
|
|
6015
6042
|
children,
|
|
6016
6043
|
...rest
|
|
6017
6044
|
}, forwardedRef) {
|
|
6018
|
-
const { expandable } = (0,
|
|
6019
|
-
const handleClickChevron = (0,
|
|
6045
|
+
const { expandable } = (0, import_react59.useContext)(ListView.RowContext);
|
|
6046
|
+
const handleClickChevron = (0, import_react59.useCallback)(
|
|
6020
6047
|
(event) => {
|
|
6021
6048
|
event.stopPropagation();
|
|
6022
6049
|
onClickChevron?.({ altKey: event.altKey });
|
|
6023
6050
|
},
|
|
6024
6051
|
[onClickChevron]
|
|
6025
6052
|
);
|
|
6026
|
-
return /* @__PURE__ */
|
|
6053
|
+
return /* @__PURE__ */ import_react59.default.createElement(ListView.Row, { ref: forwardedRef, ...rest }, expandable && /* @__PURE__ */ import_react59.default.createElement(import_react59.default.Fragment, null, expanded === void 0 ? /* @__PURE__ */ import_react59.default.createElement(Spacer.Horizontal, { size: 19 }) : /* @__PURE__ */ import_react59.default.createElement(
|
|
6027
6054
|
IconButton,
|
|
6028
6055
|
{
|
|
6029
6056
|
iconName: expanded ? "ChevronDownIcon" : "ChevronRightIcon",
|
|
6030
6057
|
onClick: handleClickChevron,
|
|
6031
6058
|
selected: rest.selected
|
|
6032
6059
|
}
|
|
6033
|
-
), /* @__PURE__ */
|
|
6060
|
+
), /* @__PURE__ */ import_react59.default.createElement(Spacer.Horizontal, { size: 6 })), icon && /* @__PURE__ */ import_react59.default.createElement(import_react59.default.Fragment, null, icon, /* @__PURE__ */ import_react59.default.createElement(Spacer.Horizontal, { size: 10 })), children);
|
|
6034
6061
|
});
|
|
6035
6062
|
var TreeView;
|
|
6036
6063
|
((TreeView2) => {
|
|
6037
6064
|
TreeView2.Root = ListView.Root;
|
|
6038
6065
|
TreeView2.RowTitle = ListView.RowTitle;
|
|
6039
6066
|
TreeView2.EditableRowTitle = ListView.EditableRowTitle;
|
|
6040
|
-
TreeView2.Row = (0,
|
|
6067
|
+
TreeView2.Row = (0, import_react59.memo)(TreeRow);
|
|
6041
6068
|
})(TreeView || (TreeView = {}));
|
|
6042
6069
|
|
|
6043
6070
|
// src/hooks/usePlatform.ts
|
|
@@ -6130,8 +6157,8 @@ var SUPPORTED_CANVAS_UPLOAD_TYPES = [
|
|
|
6130
6157
|
];
|
|
6131
6158
|
|
|
6132
6159
|
// src/components/ArrayController.tsx
|
|
6133
|
-
var
|
|
6134
|
-
var
|
|
6160
|
+
var import_noya_utils11 = require("@noya-app/noya-utils");
|
|
6161
|
+
var import_react61 = __toESM(require("react"));
|
|
6135
6162
|
var import_styled_components36 = __toESM(require("styled-components"));
|
|
6136
6163
|
|
|
6137
6164
|
// src/components/InspectorPrimitives.tsx
|
|
@@ -6150,25 +6177,25 @@ __export(InspectorPrimitives_exports, {
|
|
|
6150
6177
|
Title: () => Title3,
|
|
6151
6178
|
VerticalSeparator: () => VerticalSeparator
|
|
6152
6179
|
});
|
|
6153
|
-
var
|
|
6180
|
+
var import_react60 = __toESM(require("react"));
|
|
6154
6181
|
var import_styled_components35 = __toESM(require("styled-components"));
|
|
6155
|
-
var Section = import_styled_components35.default.div(({ theme, padding = "10px", gap }) => ({
|
|
6182
|
+
var Section = import_styled_components35.default.div(({ theme, $padding = "10px", $gap }) => ({
|
|
6156
6183
|
flex: "0 0 auto",
|
|
6157
6184
|
display: "flex",
|
|
6158
6185
|
flexDirection: "column",
|
|
6159
|
-
padding,
|
|
6160
|
-
gap
|
|
6186
|
+
padding: $padding,
|
|
6187
|
+
gap: $gap
|
|
6161
6188
|
}));
|
|
6162
6189
|
var SectionHeader = import_styled_components35.default.div(({ theme }) => ({
|
|
6163
6190
|
display: "flex",
|
|
6164
6191
|
alignItems: "center"
|
|
6165
6192
|
}));
|
|
6166
|
-
var Title3 = import_styled_components35.default.div(({ theme, textStyle }) => ({
|
|
6193
|
+
var Title3 = import_styled_components35.default.div(({ theme, $textStyle }) => ({
|
|
6167
6194
|
display: "flex",
|
|
6168
6195
|
flexDirection: "row",
|
|
6169
6196
|
userSelect: "none",
|
|
6170
|
-
|
|
6171
|
-
...theme.textStyles[textStyle],
|
|
6197
|
+
...$textStyle ? {
|
|
6198
|
+
...theme.textStyles[$textStyle],
|
|
6172
6199
|
color: theme.colors.text
|
|
6173
6200
|
} : {
|
|
6174
6201
|
...theme.textStyles.label,
|
|
@@ -6177,12 +6204,12 @@ var Title3 = import_styled_components35.default.div(({ theme, textStyle }) => ({
|
|
|
6177
6204
|
}
|
|
6178
6205
|
}));
|
|
6179
6206
|
var Row2 = import_styled_components35.default.div(
|
|
6180
|
-
({ theme, gap }) => ({
|
|
6207
|
+
({ theme, $gap }) => ({
|
|
6181
6208
|
flex: "1",
|
|
6182
6209
|
display: "flex",
|
|
6183
6210
|
flexDirection: "row",
|
|
6184
6211
|
alignItems: "center",
|
|
6185
|
-
gap
|
|
6212
|
+
gap: $gap
|
|
6186
6213
|
})
|
|
6187
6214
|
);
|
|
6188
6215
|
var Column = import_styled_components35.default.div(({ theme }) => ({
|
|
@@ -6197,18 +6224,18 @@ var Checkbox = import_styled_components35.default.input(({ theme }) => ({
|
|
|
6197
6224
|
var Text3 = import_styled_components35.default.span(({ theme }) => ({
|
|
6198
6225
|
...theme.textStyles.small
|
|
6199
6226
|
}));
|
|
6200
|
-
var VerticalSeparator = () => /* @__PURE__ */
|
|
6201
|
-
var HorizontalSeparator = () => /* @__PURE__ */
|
|
6227
|
+
var VerticalSeparator = () => /* @__PURE__ */ import_react60.default.createElement(Spacer.Vertical, { size: (0, import_styled_components35.useTheme)().sizes.inspector.verticalSeparator });
|
|
6228
|
+
var HorizontalSeparator = () => /* @__PURE__ */ import_react60.default.createElement(Spacer.Horizontal, { size: (0, import_styled_components35.useTheme)().sizes.inspector.horizontalSeparator });
|
|
6202
6229
|
var SliderRowLabel = import_styled_components35.default.span(({ theme }) => ({
|
|
6203
6230
|
...theme.textStyles.small,
|
|
6204
6231
|
color: theme.colors.textMuted,
|
|
6205
6232
|
marginBottom: "-6px"
|
|
6206
6233
|
}));
|
|
6207
|
-
var RowLabel = import_styled_components35.default.span(({ theme, textStyle }) => ({
|
|
6234
|
+
var RowLabel = import_styled_components35.default.span(({ theme, $textStyle }) => ({
|
|
6208
6235
|
// marginBottom: '6px',
|
|
6209
6236
|
display: "flex",
|
|
6210
|
-
|
|
6211
|
-
...theme.textStyles[textStyle]
|
|
6237
|
+
...$textStyle ? {
|
|
6238
|
+
...theme.textStyles[$textStyle]
|
|
6212
6239
|
} : {
|
|
6213
6240
|
...theme.textStyles.label,
|
|
6214
6241
|
color: theme.colors.textSubtle,
|
|
@@ -6218,7 +6245,7 @@ var RowLabel = import_styled_components35.default.span(({ theme, textStyle }) =>
|
|
|
6218
6245
|
// Button height
|
|
6219
6246
|
alignItems: "center"
|
|
6220
6247
|
}));
|
|
6221
|
-
var LabeledRow = (0,
|
|
6248
|
+
var LabeledRow = (0, import_react60.memo)(function LabeledRow2({
|
|
6222
6249
|
id,
|
|
6223
6250
|
children,
|
|
6224
6251
|
label,
|
|
@@ -6226,13 +6253,13 @@ var LabeledRow = (0, import_react59.memo)(function LabeledRow2({
|
|
|
6226
6253
|
gap,
|
|
6227
6254
|
right
|
|
6228
6255
|
}) {
|
|
6229
|
-
return /* @__PURE__ */
|
|
6256
|
+
return /* @__PURE__ */ import_react60.default.createElement(Row2, { id }, /* @__PURE__ */ import_react60.default.createElement(Column, null, /* @__PURE__ */ import_react60.default.createElement(RowLabel, { $textStyle: labelTextStyle }, label, right && /* @__PURE__ */ import_react60.default.createElement(Spacer.Horizontal, null), right), /* @__PURE__ */ import_react60.default.createElement(Row2, { $gap: gap }, children)));
|
|
6230
6257
|
});
|
|
6231
|
-
var LabeledSliderRow = (0,
|
|
6258
|
+
var LabeledSliderRow = (0, import_react60.memo)(function LabeledRow3({
|
|
6232
6259
|
children,
|
|
6233
6260
|
label
|
|
6234
6261
|
}) {
|
|
6235
|
-
return /* @__PURE__ */
|
|
6262
|
+
return /* @__PURE__ */ import_react60.default.createElement(Row2, null, /* @__PURE__ */ import_react60.default.createElement(Column, null, /* @__PURE__ */ import_react60.default.createElement(SliderRowLabel, null, label), /* @__PURE__ */ import_react60.default.createElement(Row2, null, children)));
|
|
6236
6263
|
});
|
|
6237
6264
|
|
|
6238
6265
|
// src/components/ArrayController.tsx
|
|
@@ -6245,7 +6272,7 @@ var ElementRow = import_styled_components36.default.div({
|
|
|
6245
6272
|
var ItemContainer2 = import_styled_components36.default.div({
|
|
6246
6273
|
position: "relative"
|
|
6247
6274
|
});
|
|
6248
|
-
var ArrayController = (0,
|
|
6275
|
+
var ArrayController = (0, import_react61.memo)(function ArrayController2({
|
|
6249
6276
|
id,
|
|
6250
6277
|
items,
|
|
6251
6278
|
title,
|
|
@@ -6263,12 +6290,12 @@ var ArrayController = (0, import_react60.memo)(function ArrayController2({
|
|
|
6263
6290
|
}) {
|
|
6264
6291
|
const iconColor = (0, import_styled_components36.useTheme)().colors.icon;
|
|
6265
6292
|
const primaryLightColor = (0, import_styled_components36.useTheme)().colors.primaryLight;
|
|
6266
|
-
const keys = (0,
|
|
6293
|
+
const keys = (0, import_react61.useMemo)(
|
|
6267
6294
|
() => items.map((item, index) => getKey?.(item) ?? index.toString()),
|
|
6268
6295
|
[getKey, items]
|
|
6269
6296
|
);
|
|
6270
|
-
const indexes = reversed ? (0,
|
|
6271
|
-
const handleMoveItem = (0,
|
|
6297
|
+
const indexes = reversed ? (0, import_noya_utils11.range)(0, items.length).reverse() : (0, import_noya_utils11.range)(0, items.length);
|
|
6298
|
+
const handleMoveItem = (0, import_react61.useCallback)(
|
|
6272
6299
|
(sourceIndex, destinationIndex, position) => {
|
|
6273
6300
|
if (reversed) {
|
|
6274
6301
|
if (position === "above") {
|
|
@@ -6285,11 +6312,11 @@ var ArrayController = (0, import_react60.memo)(function ArrayController2({
|
|
|
6285
6312
|
[onMoveItem, reversed]
|
|
6286
6313
|
);
|
|
6287
6314
|
const renderRow = (index) => {
|
|
6288
|
-
return /* @__PURE__ */
|
|
6315
|
+
return /* @__PURE__ */ import_react61.default.createElement(ElementRow, { key: keys[index] }, renderItem({ item: items[index], index }));
|
|
6289
6316
|
};
|
|
6290
|
-
return /* @__PURE__ */
|
|
6317
|
+
return /* @__PURE__ */ import_react61.default.createElement(Section, { id, $padding: padding, $gap: "2px" }, /* @__PURE__ */ import_react61.default.createElement(SectionHeader, null, /* @__PURE__ */ import_react61.default.createElement(Button, { variant: "none", onClick: onClickPlus }, /* @__PURE__ */ import_react61.default.createElement(Title3, null, title)), /* @__PURE__ */ import_react61.default.createElement(Spacer.Horizontal, null), withSeparatorElements(
|
|
6291
6318
|
[
|
|
6292
|
-
onClickTrash && /* @__PURE__ */
|
|
6319
|
+
onClickTrash && /* @__PURE__ */ import_react61.default.createElement(
|
|
6293
6320
|
IconButton,
|
|
6294
6321
|
{
|
|
6295
6322
|
id: `${id}-trash`,
|
|
@@ -6298,7 +6325,7 @@ var ArrayController = (0, import_react60.memo)(function ArrayController2({
|
|
|
6298
6325
|
onClick: onClickTrash
|
|
6299
6326
|
}
|
|
6300
6327
|
),
|
|
6301
|
-
onClickExpand && /* @__PURE__ */
|
|
6328
|
+
onClickExpand && /* @__PURE__ */ import_react61.default.createElement(
|
|
6302
6329
|
IconButton,
|
|
6303
6330
|
{
|
|
6304
6331
|
id: `${id}-gear`,
|
|
@@ -6307,7 +6334,7 @@ var ArrayController = (0, import_react60.memo)(function ArrayController2({
|
|
|
6307
6334
|
onClick: onClickExpand
|
|
6308
6335
|
}
|
|
6309
6336
|
),
|
|
6310
|
-
onClickPlus && /* @__PURE__ */
|
|
6337
|
+
onClickPlus && /* @__PURE__ */ import_react61.default.createElement(
|
|
6311
6338
|
IconButton,
|
|
6312
6339
|
{
|
|
6313
6340
|
id: `${id}-add`,
|
|
@@ -6317,33 +6344,33 @@ var ArrayController = (0, import_react60.memo)(function ArrayController2({
|
|
|
6317
6344
|
}
|
|
6318
6345
|
)
|
|
6319
6346
|
],
|
|
6320
|
-
/* @__PURE__ */
|
|
6321
|
-
)), /* @__PURE__ */
|
|
6347
|
+
/* @__PURE__ */ import_react61.default.createElement(Spacer.Horizontal, { size: 8 })
|
|
6348
|
+
)), /* @__PURE__ */ import_react61.default.createElement(Stack.V, { gap: "4px" }, sortable ? /* @__PURE__ */ import_react61.default.createElement(
|
|
6322
6349
|
Sortable.Root,
|
|
6323
6350
|
{
|
|
6324
6351
|
keys,
|
|
6325
6352
|
renderOverlay: renderRow,
|
|
6326
6353
|
onMoveItem: handleMoveItem
|
|
6327
6354
|
},
|
|
6328
|
-
indexes.map((index) => /* @__PURE__ */
|
|
6355
|
+
indexes.map((index) => /* @__PURE__ */ import_react61.default.createElement(Sortable.Item, { id: keys[index], key: keys[index] }, ({ relativeDropPosition, ...sortableProps }) => /* @__PURE__ */ import_react61.default.createElement(ItemContainer2, { ...sortableProps }, renderRow(index), relativeDropPosition && /* @__PURE__ */ import_react61.default.createElement(
|
|
6329
6356
|
ListView.DragIndicator,
|
|
6330
6357
|
{
|
|
6331
|
-
gap: 0,
|
|
6332
|
-
colorScheme: "primary",
|
|
6333
|
-
relativeDropPosition,
|
|
6334
|
-
offsetLeft: 0
|
|
6358
|
+
$gap: 0,
|
|
6359
|
+
$colorScheme: "primary",
|
|
6360
|
+
$relativeDropPosition: relativeDropPosition,
|
|
6361
|
+
$offsetLeft: 0
|
|
6335
6362
|
}
|
|
6336
6363
|
))))
|
|
6337
6364
|
) : indexes.map(renderRow)), expanded && renderExpandedContent?.());
|
|
6338
6365
|
});
|
|
6339
6366
|
|
|
6340
6367
|
// src/components/DimensionInput.tsx
|
|
6341
|
-
var
|
|
6342
|
-
var
|
|
6368
|
+
var import_noya_utils12 = require("@noya-app/noya-utils");
|
|
6369
|
+
var import_react62 = __toESM(require("react"));
|
|
6343
6370
|
function getNewValue(value, mode, delta) {
|
|
6344
6371
|
return delta === void 0 ? value : mode === "replace" ? delta : value + delta;
|
|
6345
6372
|
}
|
|
6346
|
-
var DimensionInput = (0,
|
|
6373
|
+
var DimensionInput = (0, import_react62.memo)(function DimensionInput2({
|
|
6347
6374
|
id,
|
|
6348
6375
|
value,
|
|
6349
6376
|
onSetValue,
|
|
@@ -6353,24 +6380,24 @@ var DimensionInput = (0, import_react61.memo)(function DimensionInput2({
|
|
|
6353
6380
|
disabled,
|
|
6354
6381
|
trigger = "submit"
|
|
6355
6382
|
}) {
|
|
6356
|
-
const handleNudgeValue = (0,
|
|
6383
|
+
const handleNudgeValue = (0, import_react62.useCallback)(
|
|
6357
6384
|
(value2) => onSetValue(value2, "adjust"),
|
|
6358
6385
|
[onSetValue]
|
|
6359
6386
|
);
|
|
6360
|
-
const handleSetValue = (0,
|
|
6387
|
+
const handleSetValue = (0, import_react62.useCallback)(
|
|
6361
6388
|
(value2) => onSetValue(value2, "replace"),
|
|
6362
6389
|
[onSetValue]
|
|
6363
6390
|
);
|
|
6364
|
-
return /* @__PURE__ */
|
|
6391
|
+
return /* @__PURE__ */ import_react62.default.createElement(InputField.Root, { id, width: size2 }, /* @__PURE__ */ import_react62.default.createElement(
|
|
6365
6392
|
InputField.NumberInput,
|
|
6366
6393
|
{
|
|
6367
|
-
value: value === void 0 ? value : (0,
|
|
6394
|
+
value: value === void 0 ? value : (0, import_noya_utils12.round)(value, 2),
|
|
6368
6395
|
placeholder: value === void 0 ? placeholder : void 0,
|
|
6369
6396
|
onNudge: handleNudgeValue,
|
|
6370
6397
|
disabled,
|
|
6371
6398
|
...trigger === "change" ? { onChange: handleSetValue } : { onSubmit: handleSetValue }
|
|
6372
6399
|
}
|
|
6373
|
-
), label && /* @__PURE__ */
|
|
6400
|
+
), label && /* @__PURE__ */ import_react62.default.createElement(InputField.Label, null, label));
|
|
6374
6401
|
});
|
|
6375
6402
|
// Annotate the CommonJS export names for ESM import in node:
|
|
6376
6403
|
0 && (module.exports = {
|