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