@noya-app/noya-designsystem 0.1.54 → 0.1.55
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 +10 -10
- package/CHANGELOG.md +8 -0
- package/dist/index.css +1 -1
- package/dist/index.d.mts +26 -5
- package/dist/index.d.ts +26 -5
- package/dist/index.js +363 -255
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +999 -894
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
- package/src/components/Button.tsx +13 -0
- package/src/components/Dialog.tsx +3 -5
- package/src/components/Grid.tsx +3 -1
- package/src/components/GridView.tsx +1 -0
- package/src/components/InputField.tsx +10 -3
- package/src/components/Popover.tsx +68 -4
- package/src/components/SegmentedControl.tsx +41 -18
- package/src/components/SelectionToolbar.tsx +35 -22
- package/src/components/Toolbar.tsx +7 -10
- package/src/components/connected-users-menu/ConnectedUsersMenuLayout.tsx +3 -26
- package/src/contexts/DesignSystemConfiguration.tsx +8 -5
- package/src/contexts/OpenPortalsContext.tsx +67 -0
- package/src/index.css +2 -2
- package/src/index.tsx +1 -0
package/dist/index.js
CHANGED
|
@@ -113,6 +113,7 @@ __export(src_exports, {
|
|
|
113
113
|
MediaThumbnail: () => MediaThumbnail,
|
|
114
114
|
MenuViewport: () => MenuViewport,
|
|
115
115
|
Message: () => Message,
|
|
116
|
+
OpenPortalsProvider: () => OpenPortalsProvider,
|
|
116
117
|
PatternPreviewBackground: () => PatternPreviewBackground,
|
|
117
118
|
PipelineResultLayout: () => PipelineResultLayout,
|
|
118
119
|
PipelineResultLink: () => PipelineResultLink,
|
|
@@ -205,6 +206,7 @@ __export(src_exports, {
|
|
|
205
206
|
useGlobalInputBlur: () => useGlobalInputBlur,
|
|
206
207
|
useGlobalInputBlurListener: () => useGlobalInputBlurListener,
|
|
207
208
|
useGlobalInputBlurTrigger: () => useGlobalInputBlurTrigger,
|
|
209
|
+
useHasOpenPortals: () => useHasOpenPortals,
|
|
208
210
|
useHover: () => useHover,
|
|
209
211
|
useImageData: () => useImageData,
|
|
210
212
|
useIndent: () => useIndent,
|
|
@@ -215,6 +217,7 @@ __export(src_exports, {
|
|
|
215
217
|
useOpenConfirmationDialog: () => useOpenConfirmationDialog,
|
|
216
218
|
useOpenDialog: () => useOpenDialog,
|
|
217
219
|
useOpenInputDialog: () => useOpenInputDialog,
|
|
220
|
+
useOpenPortalsControls: () => useOpenPortalsControls,
|
|
218
221
|
usePlatform: () => usePlatform,
|
|
219
222
|
usePlatformModKey: () => usePlatformModKey,
|
|
220
223
|
usePortalScopeId: () => usePortalScopeId,
|
|
@@ -676,14 +679,14 @@ var import_react32 = __toESM(require("react"));
|
|
|
676
679
|
|
|
677
680
|
// src/contexts/DesignSystemConfiguration.tsx
|
|
678
681
|
var import_noya_keymap = require("@noya-app/noya-keymap");
|
|
679
|
-
var
|
|
682
|
+
var React22 = __toESM(require("react"));
|
|
680
683
|
|
|
681
684
|
// src/components/Toast.tsx
|
|
682
685
|
var ToastPrimitive = __toESM(require("@radix-ui/react-toast"));
|
|
683
686
|
var import_react21 = __toESM(require("react"));
|
|
684
687
|
|
|
685
688
|
// src/components/IconButton.tsx
|
|
686
|
-
var
|
|
689
|
+
var React11 = __toESM(require("react"));
|
|
687
690
|
|
|
688
691
|
// src/components/Button.tsx
|
|
689
692
|
var import_react20 = __toESM(require("react"));
|
|
@@ -751,9 +754,58 @@ function mergeConflictingClassNames(classNames, options) {
|
|
|
751
754
|
return classNamesList.join(" ");
|
|
752
755
|
}
|
|
753
756
|
|
|
757
|
+
// src/components/Icons.tsx
|
|
758
|
+
var Icons = __toESM(require("@noya-app/noya-icons"));
|
|
759
|
+
var React6 = __toESM(require("react"));
|
|
760
|
+
function renderIcon(iconName) {
|
|
761
|
+
if (typeof iconName === "string") {
|
|
762
|
+
const Icon = Icons[iconName];
|
|
763
|
+
return /* @__PURE__ */ React6.createElement(Icon, null);
|
|
764
|
+
}
|
|
765
|
+
return iconName;
|
|
766
|
+
}
|
|
767
|
+
|
|
768
|
+
// src/components/Spacer.tsx
|
|
769
|
+
var React7 = __toESM(require("react"));
|
|
770
|
+
var SpacerVertical = React7.forwardRef(
|
|
771
|
+
({ size: size2, inline, ...props }, ref) => {
|
|
772
|
+
return /* @__PURE__ */ React7.createElement(
|
|
773
|
+
"span",
|
|
774
|
+
{
|
|
775
|
+
className: `${inline ? "inline-block" : "block"} ${size2 === void 0 ? "flex flex-1" : ""}`,
|
|
776
|
+
style: size2 ? {
|
|
777
|
+
minHeight: `${size2}px`
|
|
778
|
+
} : void 0,
|
|
779
|
+
...props,
|
|
780
|
+
ref
|
|
781
|
+
}
|
|
782
|
+
);
|
|
783
|
+
}
|
|
784
|
+
);
|
|
785
|
+
var SpacerHorizontal = React7.forwardRef(
|
|
786
|
+
({ size: size2, inline, ...props }, ref) => {
|
|
787
|
+
return /* @__PURE__ */ React7.createElement(
|
|
788
|
+
"span",
|
|
789
|
+
{
|
|
790
|
+
className: `${inline ? "inline-block" : "block"} ${size2 === void 0 ? "flex flex-1" : ""}`,
|
|
791
|
+
style: size2 ? {
|
|
792
|
+
minWidth: `${size2}px`
|
|
793
|
+
} : void 0,
|
|
794
|
+
...props,
|
|
795
|
+
ref
|
|
796
|
+
}
|
|
797
|
+
);
|
|
798
|
+
}
|
|
799
|
+
);
|
|
800
|
+
var Spacer;
|
|
801
|
+
((Spacer2) => {
|
|
802
|
+
Spacer2.Vertical = SpacerVertical;
|
|
803
|
+
Spacer2.Horizontal = SpacerHorizontal;
|
|
804
|
+
})(Spacer || (Spacer = {}));
|
|
805
|
+
|
|
754
806
|
// src/components/Tooltip.tsx
|
|
755
807
|
var TooltipPrimitive = __toESM(require("@radix-ui/react-tooltip"));
|
|
756
|
-
var
|
|
808
|
+
var React9 = __toESM(require("react"));
|
|
757
809
|
|
|
758
810
|
// src/components/Text.tsx
|
|
759
811
|
var import_react19 = __toESM(require("react"));
|
|
@@ -849,13 +901,13 @@ var Italic = ({ children }) => /* @__PURE__ */ import_react19.default.createElem
|
|
|
849
901
|
);
|
|
850
902
|
|
|
851
903
|
// src/components/Tooltip.tsx
|
|
852
|
-
var Tooltip =
|
|
904
|
+
var Tooltip = React9.memo(function Tooltip2({
|
|
853
905
|
children,
|
|
854
906
|
content,
|
|
855
907
|
sideOffset = 2
|
|
856
908
|
}) {
|
|
857
909
|
const portalScopeId = usePortalScopeId();
|
|
858
|
-
return /* @__PURE__ */
|
|
910
|
+
return /* @__PURE__ */ React9.createElement(TooltipPrimitive.Provider, null, /* @__PURE__ */ React9.createElement(TooltipPrimitive.Root, null, /* @__PURE__ */ React9.createElement(TooltipPrimitive.Trigger, { asChild: true }, children), /* @__PURE__ */ React9.createElement(TooltipPrimitive.Portal, null, /* @__PURE__ */ React9.createElement(
|
|
859
911
|
TooltipPrimitive.Content,
|
|
860
912
|
{
|
|
861
913
|
...portalScopeProps(portalScopeId),
|
|
@@ -892,6 +944,8 @@ var Button = (0, import_react20.forwardRef)(function Button2({
|
|
|
892
944
|
className,
|
|
893
945
|
style: style2,
|
|
894
946
|
tabIndex,
|
|
947
|
+
icon,
|
|
948
|
+
iconRight,
|
|
895
949
|
tooltip,
|
|
896
950
|
active = false,
|
|
897
951
|
disabled = false,
|
|
@@ -936,36 +990,29 @@ var Button = (0, import_react20.forwardRef)(function Button2({
|
|
|
936
990
|
className: "min-h-[19px] flex items-center flex-1 justify-center leading-[15px]",
|
|
937
991
|
style: contentStyle
|
|
938
992
|
},
|
|
939
|
-
|
|
993
|
+
icon && renderIcon(icon),
|
|
994
|
+
icon && children && /* @__PURE__ */ import_react20.default.createElement(Spacer.Horizontal, { inline: true, size: 6 }),
|
|
995
|
+
children,
|
|
996
|
+
iconRight && (icon || children) && /* @__PURE__ */ import_react20.default.createElement(Spacer.Horizontal, { inline: true, size: 6 }),
|
|
997
|
+
iconRight && renderIcon(iconRight)
|
|
940
998
|
)
|
|
941
999
|
);
|
|
942
1000
|
return tooltip ? /* @__PURE__ */ import_react20.default.createElement(Tooltip, { content: tooltip }, buttonElement) : buttonElement;
|
|
943
1001
|
});
|
|
944
1002
|
var Button_default = Button;
|
|
945
1003
|
|
|
946
|
-
// src/components/Icons.tsx
|
|
947
|
-
var Icons = __toESM(require("@noya-app/noya-icons"));
|
|
948
|
-
var React9 = __toESM(require("react"));
|
|
949
|
-
function renderIcon(iconName) {
|
|
950
|
-
if (typeof iconName === "string") {
|
|
951
|
-
const Icon = Icons[iconName];
|
|
952
|
-
return /* @__PURE__ */ React9.createElement(Icon, null);
|
|
953
|
-
}
|
|
954
|
-
return iconName;
|
|
955
|
-
}
|
|
956
|
-
|
|
957
1004
|
// src/components/IconButton.tsx
|
|
958
|
-
var IconButton =
|
|
959
|
-
|
|
1005
|
+
var IconButton = React11.memo(
|
|
1006
|
+
React11.forwardRef(function IconButton2({ selected, iconName, color, size: size2, contentStyle, ...props }, forwardedRef) {
|
|
960
1007
|
const Icon = Icons[iconName];
|
|
961
|
-
const style2 =
|
|
1008
|
+
const style2 = React11.useMemo(() => {
|
|
962
1009
|
return {
|
|
963
1010
|
padding: "0 2px",
|
|
964
1011
|
...size2 && { minHeight: size2 },
|
|
965
1012
|
...contentStyle
|
|
966
1013
|
};
|
|
967
1014
|
}, [contentStyle, size2]);
|
|
968
|
-
return /* @__PURE__ */
|
|
1015
|
+
return /* @__PURE__ */ React11.createElement(Button, { ref: forwardedRef, ...props, variant: "none", contentStyle: style2 }, /* @__PURE__ */ React11.createElement(
|
|
969
1016
|
Icon,
|
|
970
1017
|
{
|
|
971
1018
|
color: color ?? (selected ? cssVars.colors.iconSelected : cssVars.colors.icon),
|
|
@@ -1014,46 +1061,6 @@ var import_react29 = __toESM(require("react"));
|
|
|
1014
1061
|
// src/components/Dialog.tsx
|
|
1015
1062
|
var DialogPrimitive = __toESM(require("@radix-ui/react-dialog"));
|
|
1016
1063
|
var import_react22 = __toESM(require("react"));
|
|
1017
|
-
|
|
1018
|
-
// src/components/Spacer.tsx
|
|
1019
|
-
var React12 = __toESM(require("react"));
|
|
1020
|
-
var SpacerVertical = React12.forwardRef(
|
|
1021
|
-
({ size: size2, inline, ...props }, ref) => {
|
|
1022
|
-
return /* @__PURE__ */ React12.createElement(
|
|
1023
|
-
"span",
|
|
1024
|
-
{
|
|
1025
|
-
className: `${inline ? "inline-block" : "block"} ${size2 === void 0 ? "flex flex-1" : ""}`,
|
|
1026
|
-
style: size2 ? {
|
|
1027
|
-
minHeight: `${size2}px`
|
|
1028
|
-
} : void 0,
|
|
1029
|
-
...props,
|
|
1030
|
-
ref
|
|
1031
|
-
}
|
|
1032
|
-
);
|
|
1033
|
-
}
|
|
1034
|
-
);
|
|
1035
|
-
var SpacerHorizontal = React12.forwardRef(
|
|
1036
|
-
({ size: size2, inline, ...props }, ref) => {
|
|
1037
|
-
return /* @__PURE__ */ React12.createElement(
|
|
1038
|
-
"span",
|
|
1039
|
-
{
|
|
1040
|
-
className: `${inline ? "inline-block" : "block"} ${size2 === void 0 ? "flex flex-1" : ""}`,
|
|
1041
|
-
style: size2 ? {
|
|
1042
|
-
minWidth: `${size2}px`
|
|
1043
|
-
} : void 0,
|
|
1044
|
-
...props,
|
|
1045
|
-
ref
|
|
1046
|
-
}
|
|
1047
|
-
);
|
|
1048
|
-
}
|
|
1049
|
-
);
|
|
1050
|
-
var Spacer;
|
|
1051
|
-
((Spacer2) => {
|
|
1052
|
-
Spacer2.Vertical = SpacerVertical;
|
|
1053
|
-
Spacer2.Horizontal = SpacerHorizontal;
|
|
1054
|
-
})(Spacer || (Spacer = {}));
|
|
1055
|
-
|
|
1056
|
-
// src/components/Dialog.tsx
|
|
1057
1064
|
var StyledOverlay = (0, import_react22.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ import_react22.default.createElement(
|
|
1058
1065
|
DialogPrimitive.Overlay,
|
|
1059
1066
|
{
|
|
@@ -1068,9 +1075,8 @@ var StyledContent = (0, import_react22.forwardRef)(({ className, children, ...pr
|
|
|
1068
1075
|
{
|
|
1069
1076
|
ref,
|
|
1070
1077
|
className: cx(
|
|
1071
|
-
`
|
|
1072
|
-
|
|
1073
|
-
w-[90vw] max-w-[450px] max-h-[85vh] p-dialog-padding rounded-[2px]
|
|
1078
|
+
`fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2
|
|
1079
|
+
w-[90vw] max-w-[550px] max-h-[85vh] p-dialog-padding rounded-[2px]
|
|
1074
1080
|
font-sans text-heading5 font-normal leading-[19px] text-text-muted
|
|
1075
1081
|
bg-popover-background pointer-events-all z-[1000] focus:outline-none
|
|
1076
1082
|
shadow-dialog-shadow
|
|
@@ -1088,7 +1094,7 @@ var StyledTitle = (0, import_react22.forwardRef)(({ className, ...props }, ref)
|
|
|
1088
1094
|
{
|
|
1089
1095
|
ref,
|
|
1090
1096
|
className: cx(
|
|
1091
|
-
`m-0 font-sans text-
|
|
1097
|
+
`m-0 font-sans text-heading3 font-medium leading-[1.4] text-text `,
|
|
1092
1098
|
className
|
|
1093
1099
|
),
|
|
1094
1100
|
...props
|
|
@@ -1149,7 +1155,7 @@ var Dialog = (0, import_react22.forwardRef)(function Dialog2({
|
|
|
1149
1155
|
}
|
|
1150
1156
|
)),
|
|
1151
1157
|
title && /* @__PURE__ */ import_react22.default.createElement(import_react22.default.Fragment, null, /* @__PURE__ */ import_react22.default.createElement(StyledTitle, null, title), /* @__PURE__ */ import_react22.default.createElement(Spacer.Vertical, { size: description ? 10 : 20 })),
|
|
1152
|
-
description && /* @__PURE__ */ import_react22.default.createElement(import_react22.default.Fragment, null, /* @__PURE__ */ import_react22.default.createElement(
|
|
1158
|
+
description && /* @__PURE__ */ import_react22.default.createElement(import_react22.default.Fragment, null, /* @__PURE__ */ import_react22.default.createElement(StyledDescription, null, description), /* @__PURE__ */ import_react22.default.createElement(Spacer.Vertical, { size: 20 })),
|
|
1153
1159
|
children
|
|
1154
1160
|
));
|
|
1155
1161
|
});
|
|
@@ -1502,6 +1508,47 @@ var Label = (0, import_react26.memo)(
|
|
|
1502
1508
|
// src/components/Popover.tsx
|
|
1503
1509
|
var PopoverPrimitive = __toESM(require("@radix-ui/react-popover"));
|
|
1504
1510
|
var import_react27 = __toESM(require("react"));
|
|
1511
|
+
|
|
1512
|
+
// src/contexts/OpenPortalsContext.tsx
|
|
1513
|
+
var React17 = __toESM(require("react"));
|
|
1514
|
+
var OpenPortalsContext = React17.createContext({
|
|
1515
|
+
hasOpenPortals: false
|
|
1516
|
+
});
|
|
1517
|
+
var OpenPortalControlsContext = React17.createContext({
|
|
1518
|
+
addOpenPortal: () => {
|
|
1519
|
+
},
|
|
1520
|
+
removeOpenPortal: () => {
|
|
1521
|
+
}
|
|
1522
|
+
});
|
|
1523
|
+
var OpenPortalsProvider = React17.memo(function OpenPortalsProvider2({
|
|
1524
|
+
children
|
|
1525
|
+
}) {
|
|
1526
|
+
const [openPortals, setOpenPortals] = React17.useState([]);
|
|
1527
|
+
const value = React17.useMemo(
|
|
1528
|
+
() => ({ hasOpenPortals: openPortals.length > 0 }),
|
|
1529
|
+
[openPortals]
|
|
1530
|
+
);
|
|
1531
|
+
const controlsValue = React17.useMemo(
|
|
1532
|
+
() => ({
|
|
1533
|
+
addOpenPortal: (portal) => {
|
|
1534
|
+
setOpenPortals((prev) => [...prev, portal]);
|
|
1535
|
+
},
|
|
1536
|
+
removeOpenPortal: (portal) => {
|
|
1537
|
+
setOpenPortals((prev) => prev.filter((p) => p !== portal));
|
|
1538
|
+
}
|
|
1539
|
+
}),
|
|
1540
|
+
[]
|
|
1541
|
+
);
|
|
1542
|
+
return /* @__PURE__ */ React17.createElement(OpenPortalsContext.Provider, { value }, /* @__PURE__ */ React17.createElement(OpenPortalControlsContext.Provider, { value: controlsValue }, children));
|
|
1543
|
+
});
|
|
1544
|
+
function useHasOpenPortals() {
|
|
1545
|
+
return React17.useContext(OpenPortalsContext).hasOpenPortals;
|
|
1546
|
+
}
|
|
1547
|
+
function useOpenPortalsControls() {
|
|
1548
|
+
return React17.useContext(OpenPortalControlsContext);
|
|
1549
|
+
}
|
|
1550
|
+
|
|
1551
|
+
// src/components/Popover.tsx
|
|
1505
1552
|
var closeStyles = {
|
|
1506
1553
|
all: "unset",
|
|
1507
1554
|
fontFamily: "inherit"
|
|
@@ -1527,13 +1574,30 @@ function Popover({
|
|
|
1527
1574
|
onInteractOutside,
|
|
1528
1575
|
onFocusOutside,
|
|
1529
1576
|
onClickClose,
|
|
1530
|
-
className
|
|
1577
|
+
className,
|
|
1578
|
+
portalContainer
|
|
1531
1579
|
}) {
|
|
1580
|
+
const defaultId = (0, import_react27.useId)();
|
|
1532
1581
|
const portalScopeId = usePortalScopeId();
|
|
1533
|
-
|
|
1582
|
+
const contentRef = (0, import_react27.useRef)(null);
|
|
1583
|
+
const [isOpen, setIsOpen] = useControlledOrUncontrolled({
|
|
1584
|
+
value: open,
|
|
1585
|
+
onChange: onOpenChange,
|
|
1586
|
+
defaultValue: false
|
|
1587
|
+
});
|
|
1588
|
+
const { addOpenPortal, removeOpenPortal } = useOpenPortalsControls();
|
|
1589
|
+
(0, import_react27.useEffect)(() => {
|
|
1590
|
+
if (!isOpen) return;
|
|
1591
|
+
addOpenPortal(portalScopeId || defaultId);
|
|
1592
|
+
return () => {
|
|
1593
|
+
removeOpenPortal(portalScopeId || defaultId);
|
|
1594
|
+
};
|
|
1595
|
+
}, [addOpenPortal, isOpen, portalScopeId, removeOpenPortal, defaultId]);
|
|
1596
|
+
return /* @__PURE__ */ import_react27.default.createElement(PopoverPrimitive.Root, { open: isOpen, onOpenChange: setIsOpen }, /* @__PURE__ */ import_react27.default.createElement(PopoverPrimitive.Trigger, { asChild: true }, trigger), /* @__PURE__ */ import_react27.default.createElement(PopoverPrimitive.Portal, { container: portalContainer }, /* @__PURE__ */ import_react27.default.createElement(
|
|
1534
1597
|
PopoverPrimitive.Content,
|
|
1535
1598
|
{
|
|
1536
1599
|
...portalScopeProps(portalScopeId),
|
|
1600
|
+
ref: contentRef,
|
|
1537
1601
|
className: cx(
|
|
1538
1602
|
popoverStyle.base,
|
|
1539
1603
|
variant === "large" && popoverStyle.large,
|
|
@@ -1547,7 +1611,15 @@ function Popover({
|
|
|
1547
1611
|
onCloseAutoFocus,
|
|
1548
1612
|
onInteractOutside,
|
|
1549
1613
|
onFocusOutside,
|
|
1550
|
-
onPointerDownOutside
|
|
1614
|
+
onPointerDownOutside: (event) => {
|
|
1615
|
+
if (isEventInsideElement(
|
|
1616
|
+
event.detail.originalEvent,
|
|
1617
|
+
contentRef.current
|
|
1618
|
+
)) {
|
|
1619
|
+
event.preventDefault();
|
|
1620
|
+
}
|
|
1621
|
+
onPointerDownOutside?.(event);
|
|
1622
|
+
},
|
|
1551
1623
|
collisionPadding: 8,
|
|
1552
1624
|
arrowPadding: 2
|
|
1553
1625
|
},
|
|
@@ -1563,6 +1635,19 @@ function Popover({
|
|
|
1563
1635
|
)
|
|
1564
1636
|
)));
|
|
1565
1637
|
}
|
|
1638
|
+
function isEventInsideElement(event, element) {
|
|
1639
|
+
if (!element) return false;
|
|
1640
|
+
const body = document.body;
|
|
1641
|
+
const originalPointerEvents = body.style.pointerEvents;
|
|
1642
|
+
body.style.pointerEvents = "auto";
|
|
1643
|
+
const elementsAtPoint = document.elementsFromPoint(
|
|
1644
|
+
event.clientX,
|
|
1645
|
+
event.clientY
|
|
1646
|
+
);
|
|
1647
|
+
body.style.pointerEvents = originalPointerEvents;
|
|
1648
|
+
const target = elementsAtPoint.at(0);
|
|
1649
|
+
return target && element.contains(target);
|
|
1650
|
+
}
|
|
1566
1651
|
|
|
1567
1652
|
// src/components/InputField.tsx
|
|
1568
1653
|
var InputFieldContext = (0, import_react28.createContext)({
|
|
@@ -1685,7 +1770,7 @@ var InputElement = (0, import_react28.forwardRef)(
|
|
|
1685
1770
|
readOnly ? "text-text-muted" : disabled ? "text-text-disabled" : "text-text",
|
|
1686
1771
|
"font-sans font-normal",
|
|
1687
1772
|
$textAlign && `text-${$textAlign}`,
|
|
1688
|
-
size2 === "small" ? "text-[11px] leading-[19px] py-[1px]" : size2 === "large" ? "py-2.5 text-heading5" : size2 === "medium" ? "py-1
|
|
1773
|
+
size2 === "small" ? "text-[11px] leading-[19px] py-[1px]" : size2 === "large" ? "py-2.5 text-heading5" : size2 === "medium" ? "py-1 text-heading5" : $variant === "bare" && "py-1 -m-1",
|
|
1689
1774
|
className
|
|
1690
1775
|
);
|
|
1691
1776
|
const mergedClassName = (0, import_react28.useMemo)(
|
|
@@ -1856,6 +1941,8 @@ function InputFieldRoot({
|
|
|
1856
1941
|
className,
|
|
1857
1942
|
start,
|
|
1858
1943
|
end,
|
|
1944
|
+
startClassName,
|
|
1945
|
+
endClassName,
|
|
1859
1946
|
label: labelProp
|
|
1860
1947
|
}) {
|
|
1861
1948
|
const randomId = (0, import_react28.useId)();
|
|
@@ -1896,7 +1983,15 @@ function InputFieldRoot({
|
|
|
1896
1983
|
() => /* @__PURE__ */ import_react28.default.createElement(Label, { htmlFor: id, className: "!text-text-disabled" }, labelProp ?? label),
|
|
1897
1984
|
[id, labelProp, label]
|
|
1898
1985
|
);
|
|
1899
|
-
const rootElement = /* @__PURE__ */ import_react28.default.createElement(RootContainer, { $width: width, style: style2, className }, children, start && /* @__PURE__ */ import_react28.default.createElement("span", { ref: startRef, className: startBaseStyles }, start), (end || label) && /* @__PURE__ */ import_react28.default.createElement(
|
|
1986
|
+
const rootElement = /* @__PURE__ */ import_react28.default.createElement(RootContainer, { $width: width, style: style2, className }, children, start && /* @__PURE__ */ import_react28.default.createElement("span", { ref: startRef, className: cx(startBaseStyles, startClassName) }, start), (end || label) && /* @__PURE__ */ import_react28.default.createElement(
|
|
1987
|
+
"span",
|
|
1988
|
+
{
|
|
1989
|
+
ref: endRef,
|
|
1990
|
+
className: cx(endStyles, label && end && "gap-1.5", endClassName)
|
|
1991
|
+
},
|
|
1992
|
+
labelProp ? insetLabel : label && labelPosition === "inset" && insetLabel,
|
|
1993
|
+
end
|
|
1994
|
+
));
|
|
1900
1995
|
const measuredWidthObject = (0, import_react28.useMemo)(
|
|
1901
1996
|
() => measuredInputSize ? { width: measuredInputSize.width + 4 } : void 0,
|
|
1902
1997
|
[measuredInputSize]
|
|
@@ -2278,30 +2373,30 @@ var useCurrentFloatingWindowInternal = () => {
|
|
|
2278
2373
|
};
|
|
2279
2374
|
|
|
2280
2375
|
// src/contexts/DesignSystemConfiguration.tsx
|
|
2281
|
-
var DesignSystemConfigurationContext =
|
|
2376
|
+
var DesignSystemConfigurationContext = React22.createContext({
|
|
2282
2377
|
platform: "key"
|
|
2283
2378
|
});
|
|
2284
|
-
var DesignSystemConfigurationProvider =
|
|
2379
|
+
var DesignSystemConfigurationProvider = React22.memo(
|
|
2285
2380
|
function DesignSystemConfigurationProvider2({
|
|
2286
2381
|
children,
|
|
2287
2382
|
platform
|
|
2288
2383
|
}) {
|
|
2289
|
-
const [internalPlatform, setInternalPlatform] =
|
|
2290
|
-
|
|
2384
|
+
const [internalPlatform, setInternalPlatform] = React22.useState(platform ?? "key");
|
|
2385
|
+
React22.useEffect(() => {
|
|
2291
2386
|
if (platform !== void 0) return;
|
|
2292
2387
|
if (typeof navigator !== "undefined") {
|
|
2293
2388
|
setInternalPlatform((0, import_noya_keymap.getCurrentPlatform)(navigator));
|
|
2294
2389
|
}
|
|
2295
2390
|
}, [platform]);
|
|
2296
|
-
const contextValue =
|
|
2391
|
+
const contextValue = React22.useMemo(
|
|
2297
2392
|
() => ({ platform: platform ?? internalPlatform }),
|
|
2298
2393
|
[platform, internalPlatform]
|
|
2299
2394
|
);
|
|
2300
|
-
return /* @__PURE__ */
|
|
2395
|
+
return /* @__PURE__ */ React22.createElement(DesignSystemConfigurationContext.Provider, { value: contextValue }, /* @__PURE__ */ React22.createElement(OpenPortalsProvider, null, /* @__PURE__ */ React22.createElement(DialogProvider, null, /* @__PURE__ */ React22.createElement(ToastProvider, null, /* @__PURE__ */ React22.createElement(FloatingWindowProvider, null, children)))));
|
|
2301
2396
|
}
|
|
2302
2397
|
);
|
|
2303
2398
|
function useDesignSystemConfiguration() {
|
|
2304
|
-
return
|
|
2399
|
+
return React22.useContext(DesignSystemConfigurationContext);
|
|
2305
2400
|
}
|
|
2306
2401
|
|
|
2307
2402
|
// src/utils/withSeparatorElements.ts
|
|
@@ -2762,16 +2857,16 @@ var ActionMenu = memoGeneric(function ActionMenu2({
|
|
|
2762
2857
|
});
|
|
2763
2858
|
|
|
2764
2859
|
// src/components/ActivityIndicator.tsx
|
|
2765
|
-
var
|
|
2766
|
-
var ActivityIndicator =
|
|
2860
|
+
var React28 = __toESM(require("react"));
|
|
2861
|
+
var ActivityIndicator = React28.memo(function ActivityIndicator2({
|
|
2767
2862
|
size: size2 = 16,
|
|
2768
2863
|
opacity = 1,
|
|
2769
2864
|
color = "black",
|
|
2770
2865
|
trackColor = "rgba(0, 0, 0, 0.1)",
|
|
2771
2866
|
className
|
|
2772
2867
|
}) {
|
|
2773
|
-
const opacityStyle =
|
|
2774
|
-
const dynamicStyles =
|
|
2868
|
+
const opacityStyle = React28.useMemo(() => ({ opacity }), [opacity]);
|
|
2869
|
+
const dynamicStyles = React28.useMemo(
|
|
2775
2870
|
() => ({
|
|
2776
2871
|
border: `2px solid ${trackColor}`,
|
|
2777
2872
|
borderTopColor: color,
|
|
@@ -2780,13 +2875,13 @@ var ActivityIndicator = React27.memo(function ActivityIndicator2({
|
|
|
2780
2875
|
}),
|
|
2781
2876
|
[size2, color, trackColor]
|
|
2782
2877
|
);
|
|
2783
|
-
return /* @__PURE__ */
|
|
2878
|
+
return /* @__PURE__ */ React28.createElement(
|
|
2784
2879
|
"div",
|
|
2785
2880
|
{
|
|
2786
2881
|
className: cx("flex justify-center items-center", className),
|
|
2787
2882
|
style: opacityStyle
|
|
2788
2883
|
},
|
|
2789
|
-
/* @__PURE__ */
|
|
2884
|
+
/* @__PURE__ */ React28.createElement("div", { style: dynamicStyles, className: "animate-spin rounded-[50%]" })
|
|
2790
2885
|
);
|
|
2791
2886
|
});
|
|
2792
2887
|
|
|
@@ -3432,16 +3527,16 @@ var BreadcrumbSlash = () => {
|
|
|
3432
3527
|
};
|
|
3433
3528
|
|
|
3434
3529
|
// src/components/Checkbox.tsx
|
|
3435
|
-
var
|
|
3530
|
+
var React36 = __toESM(require("react"));
|
|
3436
3531
|
var colorSchemeStyles = {
|
|
3437
3532
|
normal: "text-text-subtle",
|
|
3438
3533
|
primary: "text-primary",
|
|
3439
3534
|
secondary: "text-secondary"
|
|
3440
3535
|
};
|
|
3441
|
-
var Checkbox =
|
|
3442
|
-
|
|
3536
|
+
var Checkbox = React36.memo(
|
|
3537
|
+
React36.forwardRef(function Checkbox2({ className, style: style2, colorScheme = "secondary", ...props }, ref) {
|
|
3443
3538
|
const { fieldId: id } = useLabel({ fieldId: props.id });
|
|
3444
|
-
return /* @__PURE__ */
|
|
3539
|
+
return /* @__PURE__ */ React36.createElement(
|
|
3445
3540
|
"div",
|
|
3446
3541
|
{
|
|
3447
3542
|
className: cx(
|
|
@@ -3451,7 +3546,7 @@ var Checkbox = React35.memo(
|
|
|
3451
3546
|
),
|
|
3452
3547
|
style: style2
|
|
3453
3548
|
},
|
|
3454
|
-
/* @__PURE__ */
|
|
3549
|
+
/* @__PURE__ */ React36.createElement(
|
|
3455
3550
|
"input",
|
|
3456
3551
|
{
|
|
3457
3552
|
ref,
|
|
@@ -3480,7 +3575,7 @@ var Checkbox = React35.memo(
|
|
|
3480
3575
|
id
|
|
3481
3576
|
}
|
|
3482
3577
|
),
|
|
3483
|
-
/* @__PURE__ */
|
|
3578
|
+
/* @__PURE__ */ React36.createElement(
|
|
3484
3579
|
"svg",
|
|
3485
3580
|
{
|
|
3486
3581
|
className: `
|
|
@@ -3500,7 +3595,7 @@ var Checkbox = React35.memo(
|
|
|
3500
3595
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3501
3596
|
"aria-hidden": "true"
|
|
3502
3597
|
},
|
|
3503
|
-
/* @__PURE__ */
|
|
3598
|
+
/* @__PURE__ */ React36.createElement(
|
|
3504
3599
|
"path",
|
|
3505
3600
|
{
|
|
3506
3601
|
d: "M3 6L4.5 7.5L8 4",
|
|
@@ -3519,7 +3614,7 @@ var import_noya_icons3 = require("@noya-app/noya-icons");
|
|
|
3519
3614
|
var import_react45 = __toESM(require("react"));
|
|
3520
3615
|
|
|
3521
3616
|
// src/hooks/useHover.ts
|
|
3522
|
-
var
|
|
3617
|
+
var React37 = __toESM(require("react"));
|
|
3523
3618
|
var globalIgnoreEmulatedMouseEvents = false;
|
|
3524
3619
|
var hoverCount = 0;
|
|
3525
3620
|
function setGlobalIgnoreEmulatedMouseEvents() {
|
|
@@ -3549,13 +3644,13 @@ function setupGlobalTouchEvents() {
|
|
|
3549
3644
|
}
|
|
3550
3645
|
function useHover(props = {}) {
|
|
3551
3646
|
const { onHoverStart, onHoverChange, onHoverEnd, isDisabled } = props;
|
|
3552
|
-
const [isHovered, setHovered] =
|
|
3553
|
-
const state =
|
|
3647
|
+
const [isHovered, setHovered] = React37.useState(false);
|
|
3648
|
+
const state = React37.useRef({
|
|
3554
3649
|
isHovered: false,
|
|
3555
3650
|
ignoreEmulatedMouseEvents: false
|
|
3556
3651
|
}).current;
|
|
3557
|
-
|
|
3558
|
-
const hoverProps =
|
|
3652
|
+
React37.useEffect(setupGlobalTouchEvents, []);
|
|
3653
|
+
const hoverProps = React37.useMemo(
|
|
3559
3654
|
function getHoverProps() {
|
|
3560
3655
|
function triggerHoverStart(event, pointerType) {
|
|
3561
3656
|
if (isDisabled || pointerType === "touch" || state.isHovered) {
|
|
@@ -3954,26 +4049,26 @@ var ContextMenu = memoGeneric(ContextMenuRoot);
|
|
|
3954
4049
|
|
|
3955
4050
|
// src/components/ScrollArea.tsx
|
|
3956
4051
|
var RadixScrollArea = __toESM(require("@radix-ui/react-scroll-area"));
|
|
3957
|
-
var
|
|
3958
|
-
var ScrollArea =
|
|
3959
|
-
const [scrollElementRef, setScrollElementRef] =
|
|
3960
|
-
return /* @__PURE__ */
|
|
4052
|
+
var React41 = __toESM(require("react"));
|
|
4053
|
+
var ScrollArea = React41.memo(function ScrollArea2({ children }) {
|
|
4054
|
+
const [scrollElementRef, setScrollElementRef] = React41.useState(null);
|
|
4055
|
+
return /* @__PURE__ */ React41.createElement("div", { className: "flex-1 min-h-0" }, /* @__PURE__ */ React41.createElement(RadixScrollArea.Root, { style: { width: "100%", height: "100%" } }, /* @__PURE__ */ React41.createElement(
|
|
3961
4056
|
RadixScrollArea.Viewport,
|
|
3962
4057
|
{
|
|
3963
4058
|
className: "w-full h-full [&>div]:block",
|
|
3964
|
-
ref:
|
|
4059
|
+
ref: React41.useCallback(
|
|
3965
4060
|
(ref) => setScrollElementRef(ref),
|
|
3966
4061
|
[]
|
|
3967
4062
|
)
|
|
3968
4063
|
},
|
|
3969
4064
|
typeof children === "function" ? scrollElementRef ? children(scrollElementRef) : null : children
|
|
3970
|
-
), /* @__PURE__ */
|
|
4065
|
+
), /* @__PURE__ */ React41.createElement(
|
|
3971
4066
|
RadixScrollArea.Scrollbar,
|
|
3972
4067
|
{
|
|
3973
4068
|
orientation: "vertical",
|
|
3974
4069
|
className: "scroll-component flex p-[3px] data-[orientation=vertical]:w-[10px]"
|
|
3975
4070
|
},
|
|
3976
|
-
/* @__PURE__ */
|
|
4071
|
+
/* @__PURE__ */ React41.createElement(RadixScrollArea.Thumb, { className: "scroll-component flex-1 rounded-[10px] bg-scrollbar" })
|
|
3977
4072
|
)));
|
|
3978
4073
|
});
|
|
3979
4074
|
|
|
@@ -4102,7 +4197,7 @@ var GridViewItem = forwardRefGeneric(function GridViewItem2({
|
|
|
4102
4197
|
},
|
|
4103
4198
|
children
|
|
4104
4199
|
),
|
|
4105
|
-
textPosition === "below" && /* @__PURE__ */ import_react48.default.createElement(import_react48.default.Fragment, null, /* @__PURE__ */ import_react48.default.createElement(Spacer.Vertical, { size: 8 }), /* @__PURE__ */ import_react48.default.createElement(ItemTitle, null, title || " "), /* @__PURE__ */ import_react48.default.createElement(ItemDescription, null, subtitle || " ")),
|
|
4200
|
+
textPosition === "below" && /* @__PURE__ */ import_react48.default.createElement(import_react48.default.Fragment, null, /* @__PURE__ */ import_react48.default.createElement(Spacer.Vertical, { size: 8 }), /* @__PURE__ */ import_react48.default.createElement(ItemTitle, null, title || " "), /* @__PURE__ */ import_react48.default.createElement(Spacer.Vertical, { size: 2 }), /* @__PURE__ */ import_react48.default.createElement(ItemDescription, null, subtitle || " ")),
|
|
4106
4201
|
textPosition === "overlay" && hovered && (title || subtitle) && /* @__PURE__ */ import_react48.default.createElement("div", { className: "absolute inset-0 flex flex-col justify-end items-start p-1 pointer-events-none truncate gap-0.5" }, title && /* @__PURE__ */ import_react48.default.createElement(ItemTitle, { showBackground: true }, title), subtitle && /* @__PURE__ */ import_react48.default.createElement(ItemDescription, { showBackground: true }, subtitle)),
|
|
4107
4202
|
action && /* @__PURE__ */ import_react48.default.createElement("div", { className: "absolute top-[7px] right-[7px] flex flex-col justify-end items-start p-1 truncate gap-0.5" }, action),
|
|
4108
4203
|
loading && /* @__PURE__ */ import_react48.default.createElement("div", { className: "flex flex-col justify-start items-end p-1 pointer-events-none animate-shimmer absolute inset-0 bg-gradient-to-r from-white/0 via-[rgb(226,232,240)]/50 to-white/0 bg-length:200%_100%]" }, /* @__PURE__ */ import_react48.default.createElement(ActivityIndicator, { opacity: 0.5, size: 13 }))
|
|
@@ -4409,7 +4504,7 @@ var Grid = memoGeneric(
|
|
|
4409
4504
|
{
|
|
4410
4505
|
...props2,
|
|
4411
4506
|
className: cx(
|
|
4412
|
-
isSelected
|
|
4507
|
+
isSelected ? "text-selected-list-item-text" : "text-text",
|
|
4413
4508
|
"truncate select-none"
|
|
4414
4509
|
)
|
|
4415
4510
|
}
|
|
@@ -4502,7 +4597,7 @@ function mergeEventHandlers(...handlerMaps) {
|
|
|
4502
4597
|
// src/components/Sortable.tsx
|
|
4503
4598
|
var import_core = require("@dnd-kit/core");
|
|
4504
4599
|
var import_sortable = require("@dnd-kit/sortable");
|
|
4505
|
-
var
|
|
4600
|
+
var React44 = __toESM(require("react"));
|
|
4506
4601
|
var import_react50 = require("react");
|
|
4507
4602
|
var import_react_dom2 = require("react-dom");
|
|
4508
4603
|
var normalizeListTargetIndex = (index, position) => {
|
|
@@ -4516,7 +4611,7 @@ var defaultAcceptsDrop = (sourceIndex, targetIndex, position) => {
|
|
|
4516
4611
|
}
|
|
4517
4612
|
return true;
|
|
4518
4613
|
};
|
|
4519
|
-
var SortableItemContext =
|
|
4614
|
+
var SortableItemContext = React44.createContext({
|
|
4520
4615
|
keys: [],
|
|
4521
4616
|
acceptsDrop: defaultAcceptsDrop,
|
|
4522
4617
|
axis: "y",
|
|
@@ -4571,7 +4666,7 @@ function SortableItem({
|
|
|
4571
4666
|
setActivatorEvent,
|
|
4572
4667
|
axis,
|
|
4573
4668
|
getDropTargetParentIndex
|
|
4574
|
-
} =
|
|
4669
|
+
} = React44.useContext(SortableItemContext);
|
|
4575
4670
|
const sortable = (0, import_sortable.useSortable)({ id, disabled });
|
|
4576
4671
|
const { activatorEvent } = (0, import_core.useDndContext)();
|
|
4577
4672
|
const {
|
|
@@ -4592,7 +4687,7 @@ function SortableItem({
|
|
|
4592
4687
|
const eventY = activatorEvent?.clientY ?? 0;
|
|
4593
4688
|
const offsetLeft = eventX + position.x;
|
|
4594
4689
|
const offsetTop = eventY + position.y;
|
|
4595
|
-
const ref =
|
|
4690
|
+
const ref = React44.useCallback((node) => setNodeRef(node), [setNodeRef]);
|
|
4596
4691
|
const parentIndex = overIndex === -1 ? void 0 : getDropTargetParentIndex?.(overIndex);
|
|
4597
4692
|
const isValidParent = parentIndex === void 0 || parentIndex === -1 ? false : acceptsDrop2(activeIndex, parentIndex, "inside");
|
|
4598
4693
|
const overIdAcceptsDrop = overIndex === -1 ? void 0 : acceptsDrop2(activeIndex, overIndex, "inside");
|
|
@@ -4629,26 +4724,26 @@ function SortableRoot({
|
|
|
4629
4724
|
}
|
|
4630
4725
|
})
|
|
4631
4726
|
);
|
|
4632
|
-
const [activeIndex, setActiveIndex] =
|
|
4633
|
-
const activatorEvent =
|
|
4634
|
-
const [position, setPosition] =
|
|
4727
|
+
const [activeIndex, setActiveIndex] = React44.useState();
|
|
4728
|
+
const activatorEvent = React44.useRef(null);
|
|
4729
|
+
const [position, setPosition] = React44.useState({
|
|
4635
4730
|
x: 0,
|
|
4636
4731
|
y: 0
|
|
4637
4732
|
});
|
|
4638
|
-
const setActivatorEvent =
|
|
4733
|
+
const setActivatorEvent = React44.useCallback((event) => {
|
|
4639
4734
|
activatorEvent.current = event;
|
|
4640
4735
|
}, []);
|
|
4641
|
-
const handleDragStart =
|
|
4736
|
+
const handleDragStart = React44.useCallback(
|
|
4642
4737
|
(event) => {
|
|
4643
4738
|
const index = keys.findIndex((id) => id === event.active.id);
|
|
4644
4739
|
setActiveIndex(index);
|
|
4645
4740
|
},
|
|
4646
4741
|
[keys]
|
|
4647
4742
|
);
|
|
4648
|
-
const handleDragMove =
|
|
4743
|
+
const handleDragMove = React44.useCallback((event) => {
|
|
4649
4744
|
setPosition({ ...event.delta });
|
|
4650
4745
|
}, []);
|
|
4651
|
-
const handleDragEnd =
|
|
4746
|
+
const handleDragEnd = React44.useCallback(
|
|
4652
4747
|
(event) => {
|
|
4653
4748
|
const { active, over } = event;
|
|
4654
4749
|
setActiveIndex(void 0);
|
|
@@ -4675,14 +4770,14 @@ function SortableRoot({
|
|
|
4675
4770
|
},
|
|
4676
4771
|
[acceptsDrop2, axis, keys, onMoveItem, position.x, position.y]
|
|
4677
4772
|
);
|
|
4678
|
-
const [mounted, setMounted] =
|
|
4679
|
-
|
|
4773
|
+
const [mounted, setMounted] = React44.useState(false);
|
|
4774
|
+
React44.useEffect(() => {
|
|
4680
4775
|
setMounted(true);
|
|
4681
4776
|
}, []);
|
|
4682
|
-
return /* @__PURE__ */
|
|
4777
|
+
return /* @__PURE__ */ React44.createElement(
|
|
4683
4778
|
SortableItemContext.Provider,
|
|
4684
4779
|
{
|
|
4685
|
-
value:
|
|
4780
|
+
value: React44.useMemo(
|
|
4686
4781
|
() => ({
|
|
4687
4782
|
keys,
|
|
4688
4783
|
acceptsDrop: acceptsDrop2,
|
|
@@ -4701,7 +4796,7 @@ function SortableRoot({
|
|
|
4701
4796
|
]
|
|
4702
4797
|
)
|
|
4703
4798
|
},
|
|
4704
|
-
/* @__PURE__ */
|
|
4799
|
+
/* @__PURE__ */ React44.createElement(
|
|
4705
4800
|
import_core.DndContext,
|
|
4706
4801
|
{
|
|
4707
4802
|
sensors,
|
|
@@ -4710,7 +4805,7 @@ function SortableRoot({
|
|
|
4710
4805
|
onDragMove: handleDragMove,
|
|
4711
4806
|
onDragEnd: handleDragEnd
|
|
4712
4807
|
},
|
|
4713
|
-
/* @__PURE__ */
|
|
4808
|
+
/* @__PURE__ */ React44.createElement(
|
|
4714
4809
|
import_sortable.SortableContext,
|
|
4715
4810
|
{
|
|
4716
4811
|
items: keys,
|
|
@@ -4719,7 +4814,7 @@ function SortableRoot({
|
|
|
4719
4814
|
children
|
|
4720
4815
|
),
|
|
4721
4816
|
mounted && renderOverlay && (0, import_react_dom2.createPortal)(
|
|
4722
|
-
/* @__PURE__ */
|
|
4817
|
+
/* @__PURE__ */ React44.createElement(import_core.DragOverlay, { dropAnimation: null }, activeIndex !== void 0 && activeIndex >= 0 && renderOverlay(activeIndex)),
|
|
4723
4818
|
document.body
|
|
4724
4819
|
)
|
|
4725
4820
|
)
|
|
@@ -4737,11 +4832,11 @@ var SortableComponent = memoGeneric(function Sortable(props) {
|
|
|
4737
4832
|
shouldRenderOverlay = true,
|
|
4738
4833
|
...rest
|
|
4739
4834
|
} = props;
|
|
4740
|
-
const keys =
|
|
4835
|
+
const keys = React44.useMemo(
|
|
4741
4836
|
() => items.map(keyExtractor),
|
|
4742
4837
|
[items, keyExtractor]
|
|
4743
4838
|
);
|
|
4744
|
-
const renderOverlay =
|
|
4839
|
+
const renderOverlay = React44.useCallback(
|
|
4745
4840
|
(index) => {
|
|
4746
4841
|
return renderItem(
|
|
4747
4842
|
items[index],
|
|
@@ -4761,14 +4856,14 @@ var SortableComponent = memoGeneric(function Sortable(props) {
|
|
|
4761
4856
|
},
|
|
4762
4857
|
[renderItem, items]
|
|
4763
4858
|
);
|
|
4764
|
-
return /* @__PURE__ */
|
|
4859
|
+
return /* @__PURE__ */ React44.createElement(
|
|
4765
4860
|
SortableSubcomponents.Root,
|
|
4766
4861
|
{
|
|
4767
4862
|
...rest,
|
|
4768
4863
|
keys,
|
|
4769
4864
|
renderOverlay: shouldRenderOverlay ? renderOverlay : void 0
|
|
4770
4865
|
},
|
|
4771
|
-
keys.map((key, index) => /* @__PURE__ */
|
|
4866
|
+
keys.map((key, index) => /* @__PURE__ */ React44.createElement(SortableSubcomponents.Item, { key, id: key }, (props2) => {
|
|
4772
4867
|
return renderItem(
|
|
4773
4868
|
items[index],
|
|
4774
4869
|
props2,
|
|
@@ -6976,7 +7071,6 @@ var CommandPalette = (0, import_react62.memo)(function CommandPalette2({
|
|
|
6976
7071
|
});
|
|
6977
7072
|
|
|
6978
7073
|
// src/components/connected-users-menu/ConnectedUsersMenuLayout.tsx
|
|
6979
|
-
var import_noya_icons6 = require("@noya-app/noya-icons");
|
|
6980
7074
|
var import_react63 = __toESM(require("react"));
|
|
6981
7075
|
var UserAvatar = ({ userId, name, image }) => /* @__PURE__ */ import_react63.default.createElement(
|
|
6982
7076
|
Tooltip,
|
|
@@ -6988,38 +7082,22 @@ var UserAvatar = ({ userId, name, image }) => /* @__PURE__ */ import_react63.def
|
|
|
6988
7082
|
);
|
|
6989
7083
|
var ConnectedUsersMenuLayout = ({
|
|
6990
7084
|
renderUsers,
|
|
6991
|
-
currentUserId,
|
|
6992
7085
|
launchAIAssistant,
|
|
6993
7086
|
isAssistantOpen
|
|
6994
7087
|
}) => {
|
|
6995
|
-
return /* @__PURE__ */ import_react63.default.createElement("div", { className: "flex gap-1.5" }, /* @__PURE__ */ import_react63.default.createElement(AvatarStack, { size: INPUT_HEIGHT, className: "mr-1" }, renderUsers()), launchAIAssistant && /* @__PURE__ */ import_react63.default.createElement(
|
|
6996
|
-
|
|
7088
|
+
return /* @__PURE__ */ import_react63.default.createElement("div", { className: "flex gap-1.5" }, /* @__PURE__ */ import_react63.default.createElement(AvatarStack, { size: INPUT_HEIGHT, className: "mr-1" }, renderUsers()), launchAIAssistant && /* @__PURE__ */ import_react63.default.createElement(Tooltip, { content: "AI Assistant" }, /* @__PURE__ */ import_react63.default.createElement(
|
|
7089
|
+
Button_default,
|
|
6997
7090
|
{
|
|
6998
|
-
|
|
7091
|
+
active: isAssistantOpen,
|
|
7092
|
+
onClick: launchAIAssistant,
|
|
7093
|
+
icon: "ChatBubbleWithDotsIcon"
|
|
6999
7094
|
},
|
|
7000
|
-
|
|
7001
|
-
|
|
7002
|
-
{
|
|
7003
|
-
variant: isAssistantOpen ? "secondary" : void 0,
|
|
7004
|
-
onClick: launchAIAssistant,
|
|
7005
|
-
style: {
|
|
7006
|
-
backgroundColor: isAssistantOpen ? colorFromString(currentUserId ?? "") : void 0
|
|
7007
|
-
}
|
|
7008
|
-
},
|
|
7009
|
-
/* @__PURE__ */ import_react63.default.createElement(
|
|
7010
|
-
import_noya_icons6.ChatBubbleWithDotsIcon,
|
|
7011
|
-
{
|
|
7012
|
-
color: isAssistantOpen ? void 0 : cssVars.colors.icon
|
|
7013
|
-
}
|
|
7014
|
-
),
|
|
7015
|
-
/* @__PURE__ */ import_react63.default.createElement(Spacer.Horizontal, { inline: true, size: 6 }),
|
|
7016
|
-
"AI"
|
|
7017
|
-
)
|
|
7018
|
-
));
|
|
7095
|
+
"AI"
|
|
7096
|
+
)));
|
|
7019
7097
|
};
|
|
7020
7098
|
|
|
7021
7099
|
// src/components/DraggableMenuButton.tsx
|
|
7022
|
-
var
|
|
7100
|
+
var import_noya_icons6 = require("@noya-app/noya-icons");
|
|
7023
7101
|
var import_react64 = __toESM(require("react"));
|
|
7024
7102
|
var DraggableMenuButton = memoGeneric(function DraggableMenuButton2({
|
|
7025
7103
|
items,
|
|
@@ -7092,13 +7170,13 @@ var DraggableMenuButton = memoGeneric(function DraggableMenuButton2({
|
|
|
7092
7170
|
shouldBindKeyboardShortcuts: false
|
|
7093
7171
|
},
|
|
7094
7172
|
/* @__PURE__ */ import_react64.default.createElement("div", { className: "pointer-events-none h-[15px]" }, /* @__PURE__ */ import_react64.default.createElement(
|
|
7095
|
-
|
|
7173
|
+
import_noya_icons6.DragHandleDots2Icon,
|
|
7096
7174
|
{
|
|
7097
7175
|
color: isVisible || open ? cssVars.colors.icon : "transparent"
|
|
7098
7176
|
}
|
|
7099
7177
|
))
|
|
7100
7178
|
) : /* @__PURE__ */ import_react64.default.createElement(
|
|
7101
|
-
|
|
7179
|
+
import_noya_icons6.DragHandleDots2Icon,
|
|
7102
7180
|
{
|
|
7103
7181
|
color: isVisible || open ? cssVars.colors.icon : "transparent"
|
|
7104
7182
|
}
|
|
@@ -7108,10 +7186,10 @@ var DraggableMenuButton = memoGeneric(function DraggableMenuButton2({
|
|
|
7108
7186
|
|
|
7109
7187
|
// src/components/Drawer.tsx
|
|
7110
7188
|
var Dialog3 = __toESM(require("@radix-ui/react-dialog"));
|
|
7111
|
-
var
|
|
7189
|
+
var React58 = __toESM(require("react"));
|
|
7112
7190
|
var import_react65 = require("react");
|
|
7113
|
-
var Drawer =
|
|
7114
|
-
|
|
7191
|
+
var Drawer = React58.memo(
|
|
7192
|
+
React58.forwardRef(function Drawer2({
|
|
7115
7193
|
open,
|
|
7116
7194
|
onOpenChange,
|
|
7117
7195
|
trigger,
|
|
@@ -7141,7 +7219,7 @@ var Drawer = React57.memo(
|
|
|
7141
7219
|
return internalOpen;
|
|
7142
7220
|
}
|
|
7143
7221
|
}));
|
|
7144
|
-
const inner = /* @__PURE__ */
|
|
7222
|
+
const inner = /* @__PURE__ */ React58.createElement(React58.Fragment, null, /* @__PURE__ */ React58.createElement(
|
|
7145
7223
|
Dialog3.Overlay,
|
|
7146
7224
|
{
|
|
7147
7225
|
className: cx(
|
|
@@ -7149,7 +7227,7 @@ var Drawer = React57.memo(
|
|
|
7149
7227
|
positioning === "absolute" ? "absolute" : "fixed"
|
|
7150
7228
|
)
|
|
7151
7229
|
}
|
|
7152
|
-
), /* @__PURE__ */
|
|
7230
|
+
), /* @__PURE__ */ React58.createElement(
|
|
7153
7231
|
Dialog3.Content,
|
|
7154
7232
|
{
|
|
7155
7233
|
id,
|
|
@@ -7161,18 +7239,18 @@ var Drawer = React57.memo(
|
|
|
7161
7239
|
className
|
|
7162
7240
|
)
|
|
7163
7241
|
},
|
|
7164
|
-
title && /* @__PURE__ */
|
|
7242
|
+
title && /* @__PURE__ */ React58.createElement(Dialog3.Title, null, title),
|
|
7165
7243
|
children
|
|
7166
7244
|
));
|
|
7167
|
-
return /* @__PURE__ */
|
|
7245
|
+
return /* @__PURE__ */ React58.createElement(
|
|
7168
7246
|
Dialog3.Root,
|
|
7169
7247
|
{
|
|
7170
7248
|
key: "dialog",
|
|
7171
7249
|
open: internalOpen,
|
|
7172
7250
|
onOpenChange: setInternalOpen
|
|
7173
7251
|
},
|
|
7174
|
-
/* @__PURE__ */
|
|
7175
|
-
portalled ? /* @__PURE__ */
|
|
7252
|
+
/* @__PURE__ */ React58.createElement(Dialog3.Trigger, { key: "trigger" }, trigger),
|
|
7253
|
+
portalled ? /* @__PURE__ */ React58.createElement(Dialog3.Portal, { container: portalContainer }, inner) : inner
|
|
7176
7254
|
);
|
|
7177
7255
|
})
|
|
7178
7256
|
);
|
|
@@ -7588,25 +7666,25 @@ var ClassValue = /* @__PURE__ */ ((ClassValue2) => {
|
|
|
7588
7666
|
})(ClassValue || {});
|
|
7589
7667
|
|
|
7590
7668
|
// src/components/FillPreviewBackground.tsx
|
|
7591
|
-
var
|
|
7669
|
+
var React62 = __toESM(require("react"));
|
|
7592
7670
|
|
|
7593
7671
|
// src/contexts/ImageDataContext.tsx
|
|
7594
|
-
var
|
|
7595
|
-
var ImageDataContext =
|
|
7672
|
+
var React61 = __toESM(require("react"));
|
|
7673
|
+
var ImageDataContext = React61.createContext(
|
|
7596
7674
|
void 0
|
|
7597
7675
|
);
|
|
7598
|
-
var ImageDataProvider =
|
|
7676
|
+
var ImageDataProvider = React61.memo(function ImageDataProvider2({
|
|
7599
7677
|
children,
|
|
7600
7678
|
getImageData
|
|
7601
7679
|
}) {
|
|
7602
|
-
const contextValue =
|
|
7680
|
+
const contextValue = React61.useMemo(
|
|
7603
7681
|
() => ({ getImageData: getImageData ?? (() => void 0) }),
|
|
7604
7682
|
[getImageData]
|
|
7605
7683
|
);
|
|
7606
|
-
return /* @__PURE__ */
|
|
7684
|
+
return /* @__PURE__ */ React61.createElement(ImageDataContext.Provider, { value: contextValue }, children);
|
|
7607
7685
|
});
|
|
7608
7686
|
function useImageData(ref) {
|
|
7609
|
-
const value =
|
|
7687
|
+
const value = React61.useContext(ImageDataContext);
|
|
7610
7688
|
if (!value) {
|
|
7611
7689
|
throw new Error("Missing ImageDataProvider");
|
|
7612
7690
|
}
|
|
@@ -7672,10 +7750,10 @@ var dotsHorizontalSvg = (fillColor) => `
|
|
|
7672
7750
|
<path d='M3.625 7.5C3.625 8.12132 3.12132 8.625 2.5 8.625C1.87868 8.625 1.375 8.12132 1.375 7.5C1.375 6.87868 1.87868 6.375 2.5 6.375C3.12132 6.375 3.625 6.87868 3.625 7.5ZM8.625 7.5C8.625 8.12132 8.12132 8.625 7.5 8.625C6.87868 8.625 6.375 8.12132 6.375 7.5C6.375 6.87868 6.87868 6.375 7.5 6.375C8.12132 6.375 8.625 6.87868 8.625 7.5ZM12.5 8.625C13.1213 8.625 13.625 8.12132 13.625 7.5C13.625 6.87868 13.1213 6.375 12.5 6.375C11.8787 6.375 11.375 6.87868 11.375 7.5C11.375 8.12132 11.8787 8.625 12.5 8.625Z'></path>
|
|
7673
7751
|
</svg>
|
|
7674
7752
|
`;
|
|
7675
|
-
var Background =
|
|
7753
|
+
var Background = React62.memo(function Background2({
|
|
7676
7754
|
background: background2
|
|
7677
7755
|
}) {
|
|
7678
|
-
return /* @__PURE__ */
|
|
7756
|
+
return /* @__PURE__ */ React62.createElement(
|
|
7679
7757
|
"span",
|
|
7680
7758
|
{
|
|
7681
7759
|
className: `${background2 ? `bg-[${background2}]` : "bg-input-background"} absolute inset-0`
|
|
@@ -7694,7 +7772,7 @@ function getPatternSizeAndPosition(fillType, tileScale) {
|
|
|
7694
7772
|
return "center / 100% 100%";
|
|
7695
7773
|
}
|
|
7696
7774
|
}
|
|
7697
|
-
var PatternPreviewBackground =
|
|
7775
|
+
var PatternPreviewBackground = React62.memo(
|
|
7698
7776
|
function PatternPreviewBackground2({
|
|
7699
7777
|
fillType,
|
|
7700
7778
|
tileScale,
|
|
@@ -7703,7 +7781,7 @@ var PatternPreviewBackground = React61.memo(
|
|
|
7703
7781
|
const image = useImageData(imageRef);
|
|
7704
7782
|
const url = useObjectURL(image);
|
|
7705
7783
|
const size2 = getPatternSizeAndPosition(fillType, tileScale);
|
|
7706
|
-
const background2 =
|
|
7784
|
+
const background2 = React62.useMemo(
|
|
7707
7785
|
() => [
|
|
7708
7786
|
size2,
|
|
7709
7787
|
`url(${url})`,
|
|
@@ -7711,44 +7789,44 @@ var PatternPreviewBackground = React61.memo(
|
|
|
7711
7789
|
].join(" "),
|
|
7712
7790
|
[fillType, size2, url]
|
|
7713
7791
|
);
|
|
7714
|
-
return /* @__PURE__ */
|
|
7792
|
+
return /* @__PURE__ */ React62.createElement(Background, { background: background2 });
|
|
7715
7793
|
}
|
|
7716
7794
|
);
|
|
7717
|
-
var ColorPreviewBackground =
|
|
7795
|
+
var ColorPreviewBackground = React62.memo(function ColorPreviewBackground2({
|
|
7718
7796
|
color
|
|
7719
7797
|
}) {
|
|
7720
|
-
const background2 =
|
|
7798
|
+
const background2 = React62.useMemo(
|
|
7721
7799
|
() => sketchColorToRgbaString(color),
|
|
7722
7800
|
[color]
|
|
7723
7801
|
);
|
|
7724
|
-
return /* @__PURE__ */
|
|
7802
|
+
return /* @__PURE__ */ React62.createElement(Background, { background: background2 });
|
|
7725
7803
|
});
|
|
7726
|
-
var GradientPreviewBackground =
|
|
7804
|
+
var GradientPreviewBackground = React62.memo(
|
|
7727
7805
|
function GradientPreviewBackground2({
|
|
7728
7806
|
gradient
|
|
7729
7807
|
}) {
|
|
7730
|
-
const background2 =
|
|
7808
|
+
const background2 = React62.useMemo(
|
|
7731
7809
|
() => getGradientBackground(gradient.stops, gradient.gradientType, 180),
|
|
7732
7810
|
[gradient.gradientType, gradient.stops]
|
|
7733
7811
|
);
|
|
7734
|
-
return /* @__PURE__ */
|
|
7812
|
+
return /* @__PURE__ */ React62.createElement(Background, { background: background2 });
|
|
7735
7813
|
}
|
|
7736
7814
|
);
|
|
7737
7815
|
var background = `center url("data:image/svg+xml;utf8,${dotsHorizontalSvg(
|
|
7738
7816
|
cssVars.colors.placeholderDots
|
|
7739
7817
|
)}") no-repeat`;
|
|
7740
|
-
var FillPreviewBackground =
|
|
7818
|
+
var FillPreviewBackground = React62.memo(function FillPreviewBackground2({
|
|
7741
7819
|
value
|
|
7742
7820
|
}) {
|
|
7743
|
-
if (!value) return /* @__PURE__ */
|
|
7821
|
+
if (!value) return /* @__PURE__ */ React62.createElement(Background, { background });
|
|
7744
7822
|
switch (value._class) {
|
|
7745
7823
|
case "color":
|
|
7746
|
-
return /* @__PURE__ */
|
|
7824
|
+
return /* @__PURE__ */ React62.createElement(ColorPreviewBackground, { color: value });
|
|
7747
7825
|
case "gradient":
|
|
7748
|
-
return /* @__PURE__ */
|
|
7826
|
+
return /* @__PURE__ */ React62.createElement(GradientPreviewBackground, { gradient: value });
|
|
7749
7827
|
case "pattern":
|
|
7750
7828
|
if (!value.image) return null;
|
|
7751
|
-
return /* @__PURE__ */
|
|
7829
|
+
return /* @__PURE__ */ React62.createElement(
|
|
7752
7830
|
PatternPreviewBackground,
|
|
7753
7831
|
{
|
|
7754
7832
|
fillType: value.patternFillType,
|
|
@@ -8048,8 +8126,8 @@ var FloatingWindow = ({
|
|
|
8048
8126
|
|
|
8049
8127
|
// src/components/GradientPicker.tsx
|
|
8050
8128
|
var import_noya_colorpicker2 = require("@noya-app/noya-colorpicker");
|
|
8051
|
-
var
|
|
8052
|
-
var GradientPicker =
|
|
8129
|
+
var React65 = __toESM(require("react"));
|
|
8130
|
+
var GradientPicker = React65.memo(function GradientPicker2({
|
|
8053
8131
|
value,
|
|
8054
8132
|
selectedStop,
|
|
8055
8133
|
onChangeColor,
|
|
@@ -8058,7 +8136,7 @@ var GradientPicker = React64.memo(function GradientPicker2({
|
|
|
8058
8136
|
onDelete,
|
|
8059
8137
|
onSelectStop
|
|
8060
8138
|
}) {
|
|
8061
|
-
const colorModel =
|
|
8139
|
+
const colorModel = React65.useMemo(
|
|
8062
8140
|
() => ({
|
|
8063
8141
|
defaultColor: { r: 0, g: 0, b: 0, a: 1 },
|
|
8064
8142
|
toHsva: import_noya_colorpicker2.rgbaToHsva,
|
|
@@ -8067,30 +8145,30 @@ var GradientPicker = React64.memo(function GradientPicker2({
|
|
|
8067
8145
|
}),
|
|
8068
8146
|
[]
|
|
8069
8147
|
);
|
|
8070
|
-
const rgbaColor =
|
|
8148
|
+
const rgbaColor = React65.useMemo(
|
|
8071
8149
|
() => sketchColorToRgba(value[selectedStop].color),
|
|
8072
8150
|
[value, selectedStop]
|
|
8073
8151
|
);
|
|
8074
|
-
const handleChangeColor =
|
|
8152
|
+
const handleChangeColor = React65.useCallback(
|
|
8075
8153
|
(value2) => {
|
|
8076
8154
|
onChangeColor(rgbaToSketchColor(value2));
|
|
8077
8155
|
},
|
|
8078
8156
|
[onChangeColor]
|
|
8079
8157
|
);
|
|
8080
|
-
const handleAddGradientStop =
|
|
8158
|
+
const handleAddGradientStop = React65.useCallback(
|
|
8081
8159
|
(value2, position) => {
|
|
8082
8160
|
onAdd(rgbaToSketchColor(value2), position);
|
|
8083
8161
|
},
|
|
8084
8162
|
[onAdd]
|
|
8085
8163
|
);
|
|
8086
|
-
return /* @__PURE__ */
|
|
8164
|
+
return /* @__PURE__ */ React65.createElement(
|
|
8087
8165
|
import_noya_colorpicker2.ColorPicker,
|
|
8088
8166
|
{
|
|
8089
8167
|
onChange: handleChangeColor,
|
|
8090
8168
|
colorModel,
|
|
8091
8169
|
color: rgbaColor
|
|
8092
8170
|
},
|
|
8093
|
-
/* @__PURE__ */
|
|
8171
|
+
/* @__PURE__ */ React65.createElement(
|
|
8094
8172
|
import_noya_colorpicker2.Gradient,
|
|
8095
8173
|
{
|
|
8096
8174
|
gradients: value,
|
|
@@ -8101,12 +8179,12 @@ var GradientPicker = React64.memo(function GradientPicker2({
|
|
|
8101
8179
|
onDelete
|
|
8102
8180
|
}
|
|
8103
8181
|
),
|
|
8104
|
-
/* @__PURE__ */
|
|
8105
|
-
/* @__PURE__ */
|
|
8106
|
-
/* @__PURE__ */
|
|
8107
|
-
/* @__PURE__ */
|
|
8108
|
-
/* @__PURE__ */
|
|
8109
|
-
/* @__PURE__ */
|
|
8182
|
+
/* @__PURE__ */ React65.createElement(Spacer.Vertical, { size: 10 }),
|
|
8183
|
+
/* @__PURE__ */ React65.createElement(import_noya_colorpicker2.Saturation, null),
|
|
8184
|
+
/* @__PURE__ */ React65.createElement(Spacer.Vertical, { size: 12 }),
|
|
8185
|
+
/* @__PURE__ */ React65.createElement(import_noya_colorpicker2.Hue, null),
|
|
8186
|
+
/* @__PURE__ */ React65.createElement(Spacer.Vertical, { size: 5 }),
|
|
8187
|
+
/* @__PURE__ */ React65.createElement(import_noya_colorpicker2.Alpha, null)
|
|
8110
8188
|
);
|
|
8111
8189
|
});
|
|
8112
8190
|
|
|
@@ -8144,25 +8222,25 @@ var InspectorContainer = (0, import_react71.memo)(
|
|
|
8144
8222
|
|
|
8145
8223
|
// src/components/LabeledElementView.tsx
|
|
8146
8224
|
var kiwi = __toESM(require("kiwi.js"));
|
|
8147
|
-
var
|
|
8148
|
-
var LabeledElementView =
|
|
8225
|
+
var React67 = __toESM(require("react"));
|
|
8226
|
+
var LabeledElementView = React67.memo(function LabeledElementView2({
|
|
8149
8227
|
children,
|
|
8150
8228
|
renderLabel
|
|
8151
8229
|
}) {
|
|
8152
|
-
const elementIds =
|
|
8153
|
-
(child) =>
|
|
8230
|
+
const elementIds = React67.Children.toArray(children).flatMap(
|
|
8231
|
+
(child) => React67.isValidElement(child) && child.type === React67.Fragment ? child.props.children : [child]
|
|
8154
8232
|
).map(
|
|
8155
|
-
(child) =>
|
|
8233
|
+
(child) => React67.isValidElement(child) && "id" in child.props ? child.props.id : null
|
|
8156
8234
|
).filter((id) => !!id);
|
|
8157
8235
|
const serializedIds = elementIds.join(",");
|
|
8158
|
-
const containerRef =
|
|
8159
|
-
const refs =
|
|
8236
|
+
const containerRef = React67.useRef(null);
|
|
8237
|
+
const refs = React67.useMemo(() => {
|
|
8160
8238
|
return Object.fromEntries(
|
|
8161
|
-
serializedIds.split(",").map((id) => [id,
|
|
8239
|
+
serializedIds.split(",").map((id) => [id, React67.createRef()])
|
|
8162
8240
|
);
|
|
8163
8241
|
}, [serializedIds]);
|
|
8164
|
-
const labelElements =
|
|
8165
|
-
return serializedIds.split(",").map((id, index) => /* @__PURE__ */
|
|
8242
|
+
const labelElements = React67.useMemo(() => {
|
|
8243
|
+
return serializedIds.split(",").map((id, index) => /* @__PURE__ */ React67.createElement(
|
|
8166
8244
|
"span",
|
|
8167
8245
|
{
|
|
8168
8246
|
key: id,
|
|
@@ -8175,7 +8253,7 @@ var LabeledElementView = React66.memo(function LabeledElementView2({
|
|
|
8175
8253
|
})
|
|
8176
8254
|
));
|
|
8177
8255
|
}, [refs, serializedIds, renderLabel]);
|
|
8178
|
-
|
|
8256
|
+
React67.useLayoutEffect(() => {
|
|
8179
8257
|
if (!containerRef.current) return;
|
|
8180
8258
|
const containerRect = containerRef.current.getBoundingClientRect();
|
|
8181
8259
|
const solver = new kiwi.Solver();
|
|
@@ -8237,7 +8315,7 @@ var LabeledElementView = React66.memo(function LabeledElementView2({
|
|
|
8237
8315
|
`${Math.max(...heights)}px`
|
|
8238
8316
|
);
|
|
8239
8317
|
}, [refs, labelElements]);
|
|
8240
|
-
return /* @__PURE__ */
|
|
8318
|
+
return /* @__PURE__ */ React67.createElement("div", { className: "flex flex-1 flex-col relative", ref: containerRef }, /* @__PURE__ */ React67.createElement("div", { className: "flex flex-1 items-center" }, children), /* @__PURE__ */ React67.createElement("div", { className: "relative overflow-hidden select-none" }, labelElements));
|
|
8241
8319
|
});
|
|
8242
8320
|
|
|
8243
8321
|
// src/components/LabeledField.tsx
|
|
@@ -8321,7 +8399,7 @@ var LabeledField = (0, import_react73.memo)(function LabeledField2({
|
|
|
8321
8399
|
});
|
|
8322
8400
|
|
|
8323
8401
|
// src/components/MediaThumbnail.tsx
|
|
8324
|
-
var
|
|
8402
|
+
var import_noya_icons7 = require("@noya-app/noya-icons");
|
|
8325
8403
|
var import_react74 = __toESM(require("react"));
|
|
8326
8404
|
|
|
8327
8405
|
// src/components/catppuccin/fileIcons.ts
|
|
@@ -10787,7 +10865,7 @@ var MediaThumbnail = (0, import_react74.memo)(function MediaThumbnail2({
|
|
|
10787
10865
|
const content = (0, import_react74.useMemo)(() => {
|
|
10788
10866
|
switch (contentType) {
|
|
10789
10867
|
case "image":
|
|
10790
|
-
if (!url) return /* @__PURE__ */ import_react74.default.createElement(
|
|
10868
|
+
if (!url) return /* @__PURE__ */ import_react74.default.createElement(import_noya_icons7.ImageIcon, { color: iconColor, style: iconStyles });
|
|
10791
10869
|
return /* @__PURE__ */ import_react74.default.createElement(
|
|
10792
10870
|
"img",
|
|
10793
10871
|
{
|
|
@@ -10798,9 +10876,9 @@ var MediaThumbnail = (0, import_react74.memo)(function MediaThumbnail2({
|
|
|
10798
10876
|
}
|
|
10799
10877
|
);
|
|
10800
10878
|
case "video":
|
|
10801
|
-
return /* @__PURE__ */ import_react74.default.createElement(
|
|
10879
|
+
return /* @__PURE__ */ import_react74.default.createElement(import_noya_icons7.VideoIcon, { color: iconColor, style: iconStyles });
|
|
10802
10880
|
case "audio":
|
|
10803
|
-
return /* @__PURE__ */ import_react74.default.createElement(
|
|
10881
|
+
return /* @__PURE__ */ import_react74.default.createElement(import_noya_icons7.SpeakerLoudIcon, { color: iconColor, style: iconStyles });
|
|
10804
10882
|
default:
|
|
10805
10883
|
if (iconName) {
|
|
10806
10884
|
const Icon = Icons[iconName];
|
|
@@ -10819,7 +10897,7 @@ var MediaThumbnail = (0, import_react74.memo)(function MediaThumbnail2({
|
|
|
10819
10897
|
);
|
|
10820
10898
|
}
|
|
10821
10899
|
}
|
|
10822
|
-
return /* @__PURE__ */ import_react74.default.createElement(
|
|
10900
|
+
return /* @__PURE__ */ import_react74.default.createElement(import_noya_icons7.FileIcon, { color: iconColor, style: iconStyles });
|
|
10823
10901
|
}
|
|
10824
10902
|
}, [contentType, url, iconColor, iconStyles, iconName, fileName]);
|
|
10825
10903
|
return /* @__PURE__ */ import_react74.default.createElement(
|
|
@@ -10913,7 +10991,7 @@ var Message = (0, import_react75.memo)(
|
|
|
10913
10991
|
);
|
|
10914
10992
|
|
|
10915
10993
|
// src/components/pipeline/PipelineResultLayout.tsx
|
|
10916
|
-
var
|
|
10994
|
+
var import_noya_icons8 = require("@noya-app/noya-icons");
|
|
10917
10995
|
var import_react76 = __toESM(require("react"));
|
|
10918
10996
|
var PipelineResultLink = ({ url }) => {
|
|
10919
10997
|
return /* @__PURE__ */ import_react76.default.createElement("div", { className: "flex flex-col gap-0.5" }, /* @__PURE__ */ import_react76.default.createElement(
|
|
@@ -10924,7 +11002,7 @@ var PipelineResultLink = ({ url }) => {
|
|
|
10924
11002
|
rel: "noopener noreferrer",
|
|
10925
11003
|
className: "flex text-primary hover:opacity-80 border border-divider rounded-md"
|
|
10926
11004
|
},
|
|
10927
|
-
/* @__PURE__ */ import_react76.default.createElement("div", { className: "flex gap-1 items-center p-2" }, /* @__PURE__ */ import_react76.default.createElement(
|
|
11005
|
+
/* @__PURE__ */ import_react76.default.createElement("div", { className: "flex gap-1 items-center p-2" }, /* @__PURE__ */ import_react76.default.createElement(import_noya_icons8.Link1Icon, { className: "w-[15px] h-[15px] flex-shrink-0" })),
|
|
10928
11006
|
/* @__PURE__ */ import_react76.default.createElement(DividerVertical, null),
|
|
10929
11007
|
/* @__PURE__ */ import_react76.default.createElement(Small, { className: "truncate p-2 flex-1" }, url)
|
|
10930
11008
|
));
|
|
@@ -10948,27 +11026,27 @@ function getPipelineResultLink(value) {
|
|
|
10948
11026
|
// src/components/Progress.tsx
|
|
10949
11027
|
var import_noya_utils10 = require("@noya-app/noya-utils");
|
|
10950
11028
|
var ProgressPrimitive = __toESM(require("@radix-ui/react-progress"));
|
|
10951
|
-
var
|
|
11029
|
+
var React73 = __toESM(require("react"));
|
|
10952
11030
|
function Progress({
|
|
10953
11031
|
value,
|
|
10954
11032
|
variant = "normal",
|
|
10955
11033
|
className
|
|
10956
11034
|
}) {
|
|
10957
11035
|
const clampedValue = (0, import_noya_utils10.clamp)(value, 0, 100);
|
|
10958
|
-
const transformStyles =
|
|
11036
|
+
const transformStyles = React73.useMemo(
|
|
10959
11037
|
() => ({
|
|
10960
11038
|
transform: `translateX(-${100 - clampedValue}%)`
|
|
10961
11039
|
}),
|
|
10962
11040
|
[clampedValue]
|
|
10963
11041
|
);
|
|
10964
|
-
return /* @__PURE__ */
|
|
11042
|
+
return /* @__PURE__ */ React73.createElement(
|
|
10965
11043
|
ProgressPrimitive.Root,
|
|
10966
11044
|
{
|
|
10967
11045
|
className: cx(`relative hidden bg-input-background h-[5px] `, className),
|
|
10968
11046
|
style: { transform: "translateZ(0)" },
|
|
10969
11047
|
value: clampedValue
|
|
10970
11048
|
},
|
|
10971
|
-
/* @__PURE__ */
|
|
11049
|
+
/* @__PURE__ */ React73.createElement(
|
|
10972
11050
|
ProgressPrimitive.Indicator,
|
|
10973
11051
|
{
|
|
10974
11052
|
className: `${variant === "primary" ? "bg-primary" : variant === "secondary" ? "bg-secondary" : variant === "warning" ? "bg-warning" : "bg-text"} transition-[transform_660ms_cubic-bezier(0.65,0,0.35,1) w-full h-full`,
|
|
@@ -11071,6 +11149,7 @@ var SegmentedControlItem = (0, import_react78.forwardRef)(function SegmentedCont
|
|
|
11071
11149
|
disabled = false,
|
|
11072
11150
|
icon,
|
|
11073
11151
|
className,
|
|
11152
|
+
variant = "default",
|
|
11074
11153
|
...props
|
|
11075
11154
|
}, forwardedRef) {
|
|
11076
11155
|
const { colorScheme } = (0, import_react78.useContext)(SegmentedControlContext);
|
|
@@ -11081,21 +11160,30 @@ var SegmentedControlItem = (0, import_react78.forwardRef)(function SegmentedCont
|
|
|
11081
11160
|
value: (value ?? "").toString(),
|
|
11082
11161
|
disabled,
|
|
11083
11162
|
className: cx(
|
|
11084
|
-
"
|
|
11085
|
-
|
|
11086
|
-
|
|
11163
|
+
"group",
|
|
11164
|
+
"flex items-center justify-center",
|
|
11165
|
+
"font-sans text-button relative flex-1 appearance-none text-segmented-control-item focus:outline-none transition-colors",
|
|
11166
|
+
variant === "tabs" ? "font-semibold" : "font-normal",
|
|
11167
|
+
variant === "tabs" ? "" : colorScheme === "secondary" ? "focus:ring-2 focus:ring-secondary focus:ring-offset-1" : "focus:ring-2 focus:ring-primary focus:ring-offset-1",
|
|
11168
|
+
variant === "tabs" ? "aria-checked:text-primary" : colorScheme === "secondary" ? "aria-checked:bg-secondary aria-checked:text-white" : colorScheme === "primary" ? "aria-checked:bg-primary aria-checked:text-white" : "aria-checked:bg-background aria-checked:text-text",
|
|
11087
11169
|
"focus:z-interactable",
|
|
11088
|
-
"aria-checked:shadow-segment",
|
|
11089
|
-
"
|
|
11090
|
-
"border-r border-divider last:border-r-0",
|
|
11091
|
-
"aria-checked:border-r-transparent",
|
|
11092
|
-
"[&:has(+[aria-checked=true])]:border-r-transparent",
|
|
11170
|
+
variant === "default" ? "px-1 rounded aria-checked:shadow-segment" : "px-1.5 border-y-2 border-y-transparent aria-checked:border-b-primary",
|
|
11171
|
+
variant === "default" && "border-r border-divider last:border-r-0 aria-checked:border-r-transparent [&:has(+[aria-checked=true])]:border-r-transparent",
|
|
11093
11172
|
className
|
|
11094
11173
|
),
|
|
11095
11174
|
...props
|
|
11096
11175
|
},
|
|
11097
|
-
|
|
11098
|
-
|
|
11176
|
+
/* @__PURE__ */ import_react78.default.createElement(
|
|
11177
|
+
"span",
|
|
11178
|
+
{
|
|
11179
|
+
className: cx(
|
|
11180
|
+
"inline-flex whitespace-pre flex-nowrap gap-1.5 items-center justify-center align-middle text-center",
|
|
11181
|
+
variant === "tabs" && "group-focus:ring-2 group-focus:ring-primary-pastel group-focus:ring-offset-2"
|
|
11182
|
+
)
|
|
11183
|
+
},
|
|
11184
|
+
icon && renderIcon(icon),
|
|
11185
|
+
title
|
|
11186
|
+
)
|
|
11099
11187
|
);
|
|
11100
11188
|
return tooltip ? /* @__PURE__ */ import_react78.default.createElement(Tooltip, { content: tooltip }, itemElement) : itemElement;
|
|
11101
11189
|
});
|
|
@@ -11106,6 +11194,7 @@ var SegmentedControl = memoGeneric(function SegmentedControl2({
|
|
|
11106
11194
|
colorScheme,
|
|
11107
11195
|
allowEmpty,
|
|
11108
11196
|
items,
|
|
11197
|
+
variant = "default",
|
|
11109
11198
|
className,
|
|
11110
11199
|
style: style2
|
|
11111
11200
|
}) {
|
|
@@ -11126,7 +11215,9 @@ var SegmentedControl = memoGeneric(function SegmentedControl2({
|
|
|
11126
11215
|
value,
|
|
11127
11216
|
onValueChange: handleValueChange,
|
|
11128
11217
|
className: cx(
|
|
11129
|
-
`
|
|
11218
|
+
`appearance-none relative outline-none`,
|
|
11219
|
+
variant === "default" && "grid min-h-input-height bg-input-background rounded py-0.5 px-0.5",
|
|
11220
|
+
variant === "tabs" && "flex gap-1.5 min-h-[33px]",
|
|
11130
11221
|
className
|
|
11131
11222
|
),
|
|
11132
11223
|
style: {
|
|
@@ -11134,13 +11225,14 @@ var SegmentedControl = memoGeneric(function SegmentedControl2({
|
|
|
11134
11225
|
gridTemplateColumns: `repeat(${items.length}, 1fr)`
|
|
11135
11226
|
}
|
|
11136
11227
|
},
|
|
11137
|
-
items.map((item, index) => /* @__PURE__ */ import_react78.default.createElement(SegmentedControlItem, { key: index, ...item }))
|
|
11228
|
+
items.map((item, index) => /* @__PURE__ */ import_react78.default.createElement(SegmentedControlItem, { key: index, ...item, variant }))
|
|
11138
11229
|
));
|
|
11139
11230
|
});
|
|
11140
11231
|
|
|
11141
11232
|
// src/components/SelectionToolbar.tsx
|
|
11142
11233
|
var PopperPrimitive = __toESM(require("@radix-ui/react-popper"));
|
|
11143
11234
|
var import_react79 = __toESM(require("react"));
|
|
11235
|
+
var import_react_dom3 = require("react-dom");
|
|
11144
11236
|
var createVirtualElement = (rect) => ({
|
|
11145
11237
|
getBoundingClientRect: () => ({
|
|
11146
11238
|
width: rect.width,
|
|
@@ -11157,7 +11249,8 @@ var createVirtualElement = (rect) => ({
|
|
|
11157
11249
|
var SelectionToolbarContainer = (0, import_react79.memo)(
|
|
11158
11250
|
function SelectionToolbarContainer2({
|
|
11159
11251
|
rect,
|
|
11160
|
-
children
|
|
11252
|
+
children,
|
|
11253
|
+
portalContainer
|
|
11161
11254
|
}) {
|
|
11162
11255
|
const portalScopeId = usePortalScopeId();
|
|
11163
11256
|
const containerRef = import_react79.default.useRef(null);
|
|
@@ -11168,7 +11261,7 @@ var SelectionToolbarContainer = (0, import_react79.memo)(
|
|
|
11168
11261
|
}),
|
|
11169
11262
|
[rect]
|
|
11170
11263
|
);
|
|
11171
|
-
|
|
11264
|
+
const popperContent = /* @__PURE__ */ import_react79.default.createElement(
|
|
11172
11265
|
PopperPrimitive.Content,
|
|
11173
11266
|
{
|
|
11174
11267
|
...portalScopeProps(portalScopeId),
|
|
@@ -11189,16 +11282,21 @@ var SelectionToolbarContainer = (0, import_react79.memo)(
|
|
|
11189
11282
|
"div",
|
|
11190
11283
|
{
|
|
11191
11284
|
ref: containerRef,
|
|
11192
|
-
className: "flex gap-1 bg-popover-background rounded shadow-popover p-1"
|
|
11285
|
+
className: "flex gap-1 bg-popover-background rounded shadow-popover p-1",
|
|
11286
|
+
onClick: (e) => e.stopPropagation(),
|
|
11287
|
+
onMouseDown: (e) => e.stopPropagation(),
|
|
11288
|
+
onPointerDown: (e) => e.stopPropagation(),
|
|
11289
|
+
onWheel: (e) => e.stopPropagation()
|
|
11193
11290
|
},
|
|
11194
11291
|
children
|
|
11195
11292
|
)
|
|
11196
|
-
)
|
|
11293
|
+
);
|
|
11294
|
+
return /* @__PURE__ */ import_react79.default.createElement(PopperPrimitive.Root, null, /* @__PURE__ */ import_react79.default.createElement(PopperPrimitive.Anchor, { virtualRef }), portalContainer ? (0, import_react_dom3.createPortal)(popperContent, portalContainer) : popperContent);
|
|
11197
11295
|
}
|
|
11198
11296
|
);
|
|
11199
11297
|
|
|
11200
11298
|
// src/components/SelectMenu.tsx
|
|
11201
|
-
var
|
|
11299
|
+
var import_noya_icons9 = require("@noya-app/noya-icons");
|
|
11202
11300
|
var Select = __toESM(require("@radix-ui/react-select"));
|
|
11203
11301
|
var import_react80 = __toESM(require("react"));
|
|
11204
11302
|
var readOnlyStyle = {
|
|
@@ -11247,7 +11345,7 @@ var SelectMenuTrigger = memoGeneric(function SelectMenuTrigger2({
|
|
|
11247
11345
|
label && labelPosition === "inset" && /* @__PURE__ */ import_react80.default.createElement("div", { className: insetEndStyles }, /* @__PURE__ */ import_react80.default.createElement(Label, { className: "pr-4 text-text-disabled", htmlFor: id }, label)),
|
|
11248
11346
|
/* @__PURE__ */ import_react80.default.createElement("span", { className: "flex-1 flex" }, /* @__PURE__ */ import_react80.default.createElement(Select.Value, { placeholder })),
|
|
11249
11347
|
/* @__PURE__ */ import_react80.default.createElement(
|
|
11250
|
-
|
|
11348
|
+
import_noya_icons9.DropdownChevronIcon,
|
|
11251
11349
|
{
|
|
11252
11350
|
className: cx(
|
|
11253
11351
|
"transition-transform duration-100 ml-1.5",
|
|
@@ -11352,13 +11450,13 @@ var SelectMenu = memoGeneric(function SelectMenu2({
|
|
|
11352
11450
|
style: contentStyle
|
|
11353
11451
|
},
|
|
11354
11452
|
/* @__PURE__ */ import_react80.default.createElement(Select.ScrollUpButton, { className: scrollButtonStyles }, /* @__PURE__ */ import_react80.default.createElement(
|
|
11355
|
-
|
|
11453
|
+
import_noya_icons9.ChevronUpIcon,
|
|
11356
11454
|
{
|
|
11357
11455
|
className: cx("transition-transform duration-100")
|
|
11358
11456
|
}
|
|
11359
11457
|
)),
|
|
11360
11458
|
/* @__PURE__ */ import_react80.default.createElement(Select.Viewport, null, /* @__PURE__ */ import_react80.default.createElement(MenuViewport, { items, Components: Components3 })),
|
|
11361
|
-
/* @__PURE__ */ import_react80.default.createElement(Select.ScrollDownButton, { className: scrollButtonStyles }, /* @__PURE__ */ import_react80.default.createElement(
|
|
11459
|
+
/* @__PURE__ */ import_react80.default.createElement(Select.ScrollDownButton, { className: scrollButtonStyles }, /* @__PURE__ */ import_react80.default.createElement(import_noya_icons9.ChevronDownIcon, null))
|
|
11362
11460
|
))
|
|
11363
11461
|
);
|
|
11364
11462
|
return readOnly ? readOnlyButton : content;
|
|
@@ -11468,7 +11566,7 @@ var Slider = (0, import_react81.memo)(function Slider2({
|
|
|
11468
11566
|
|
|
11469
11567
|
// src/components/Switch.tsx
|
|
11470
11568
|
var SwitchPrimitive = __toESM(require("@radix-ui/react-switch"));
|
|
11471
|
-
var
|
|
11569
|
+
var React79 = __toESM(require("react"));
|
|
11472
11570
|
var Switch = function Switch2({
|
|
11473
11571
|
id,
|
|
11474
11572
|
value,
|
|
@@ -11480,7 +11578,7 @@ var Switch = function Switch2({
|
|
|
11480
11578
|
style: style2,
|
|
11481
11579
|
className
|
|
11482
11580
|
}) {
|
|
11483
|
-
return /* @__PURE__ */
|
|
11581
|
+
return /* @__PURE__ */ React79.createElement(
|
|
11484
11582
|
SwitchPrimitive.Root,
|
|
11485
11583
|
{
|
|
11486
11584
|
id,
|
|
@@ -11499,7 +11597,7 @@ var Switch = function Switch2({
|
|
|
11499
11597
|
onFocus,
|
|
11500
11598
|
onBlur
|
|
11501
11599
|
},
|
|
11502
|
-
/* @__PURE__ */
|
|
11600
|
+
/* @__PURE__ */ React79.createElement(SwitchPrimitive.Thumb, { className: "block w-[15px] h-[15px] bg-background rounded-full transition-transform translate-x-[2px] data-[state=checked]:translate-x-[15px]" })
|
|
11503
11601
|
);
|
|
11504
11602
|
};
|
|
11505
11603
|
|
|
@@ -12289,11 +12387,11 @@ var SUPPORTED_CANVAS_UPLOAD_TYPES = [
|
|
|
12289
12387
|
|
|
12290
12388
|
// src/components/DimensionInput.tsx
|
|
12291
12389
|
var import_noya_utils12 = require("@noya-app/noya-utils");
|
|
12292
|
-
var
|
|
12390
|
+
var React85 = __toESM(require("react"));
|
|
12293
12391
|
function getNewValue(value, mode, delta) {
|
|
12294
12392
|
return delta === void 0 ? value : mode === "replace" ? delta : value + delta;
|
|
12295
12393
|
}
|
|
12296
|
-
var DimensionInput =
|
|
12394
|
+
var DimensionInput = React85.memo(function DimensionInput2({
|
|
12297
12395
|
id,
|
|
12298
12396
|
value,
|
|
12299
12397
|
onSetValue,
|
|
@@ -12303,15 +12401,15 @@ var DimensionInput = React84.memo(function DimensionInput2({
|
|
|
12303
12401
|
disabled,
|
|
12304
12402
|
trigger = "submit"
|
|
12305
12403
|
}) {
|
|
12306
|
-
const handleNudgeValue =
|
|
12404
|
+
const handleNudgeValue = React85.useCallback(
|
|
12307
12405
|
(value2) => onSetValue(value2, "adjust"),
|
|
12308
12406
|
[onSetValue]
|
|
12309
12407
|
);
|
|
12310
|
-
const handleSetValue =
|
|
12408
|
+
const handleSetValue = React85.useCallback(
|
|
12311
12409
|
(value2) => onSetValue(value2, "replace"),
|
|
12312
12410
|
[onSetValue]
|
|
12313
12411
|
);
|
|
12314
|
-
return /* @__PURE__ */
|
|
12412
|
+
return /* @__PURE__ */ React85.createElement(LabeledField, { label, labelPosition: "inset" }, /* @__PURE__ */ React85.createElement(InputField2.Root, { id, width: size2 }, /* @__PURE__ */ React85.createElement(
|
|
12315
12413
|
InputField2.NumberInput,
|
|
12316
12414
|
{
|
|
12317
12415
|
value: value === void 0 ? value : (0, import_noya_utils12.round)(value, 2),
|
|
@@ -12464,7 +12562,6 @@ function BaseToolbar({
|
|
|
12464
12562
|
}
|
|
12465
12563
|
|
|
12466
12564
|
// src/components/Toolbar.tsx
|
|
12467
|
-
var import_noya_icons11 = require("@noya-app/noya-icons");
|
|
12468
12565
|
var import_noya_keymap7 = require("@noya-app/noya-keymap");
|
|
12469
12566
|
var import_react91 = __toESM(require("react"));
|
|
12470
12567
|
var iconButtonStyle = {
|
|
@@ -12489,7 +12586,16 @@ var ToolbarMenuDropdown = memoGeneric(function ToolbarMenuDropdown2({
|
|
|
12489
12586
|
}
|
|
12490
12587
|
}
|
|
12491
12588
|
},
|
|
12492
|
-
/* @__PURE__ */ import_react91.default.createElement(
|
|
12589
|
+
/* @__PURE__ */ import_react91.default.createElement(
|
|
12590
|
+
Button,
|
|
12591
|
+
{
|
|
12592
|
+
disabled: item.disabled,
|
|
12593
|
+
active: item.checked || open,
|
|
12594
|
+
icon: item.icon,
|
|
12595
|
+
iconRight: "DropdownChevronIcon"
|
|
12596
|
+
},
|
|
12597
|
+
item.title
|
|
12598
|
+
)
|
|
12493
12599
|
);
|
|
12494
12600
|
});
|
|
12495
12601
|
var ToolbarMenuButton = memoGeneric(function ToolbarMenuButton2({
|
|
@@ -12501,6 +12607,7 @@ var ToolbarMenuButton = memoGeneric(function ToolbarMenuButton2({
|
|
|
12501
12607
|
{
|
|
12502
12608
|
disabled: item.disabled,
|
|
12503
12609
|
active: item.checked,
|
|
12610
|
+
icon: item.icon,
|
|
12504
12611
|
style: item.icon && !item.title ? iconButtonStyle : void 0,
|
|
12505
12612
|
onClick: () => {
|
|
12506
12613
|
if (onSelectMenuItem && item.value) {
|
|
@@ -12508,8 +12615,6 @@ var ToolbarMenuButton = memoGeneric(function ToolbarMenuButton2({
|
|
|
12508
12615
|
}
|
|
12509
12616
|
}
|
|
12510
12617
|
},
|
|
12511
|
-
item.icon && renderIcon(item.icon),
|
|
12512
|
-
item.title && item.icon && /* @__PURE__ */ import_react91.default.createElement(Spacer.Horizontal, { inline: true, size: 6 }),
|
|
12513
12618
|
item.title
|
|
12514
12619
|
);
|
|
12515
12620
|
return item.tooltip ? /* @__PURE__ */ import_react91.default.createElement(Tooltip, { sideOffset: 10, content: item.tooltip }, content) : content;
|
|
@@ -12667,6 +12772,7 @@ function Toolbar({
|
|
|
12667
12772
|
MediaThumbnail,
|
|
12668
12773
|
MenuViewport,
|
|
12669
12774
|
Message,
|
|
12775
|
+
OpenPortalsProvider,
|
|
12670
12776
|
PatternPreviewBackground,
|
|
12671
12777
|
PipelineResultLayout,
|
|
12672
12778
|
PipelineResultLink,
|
|
@@ -12759,6 +12865,7 @@ function Toolbar({
|
|
|
12759
12865
|
useGlobalInputBlur,
|
|
12760
12866
|
useGlobalInputBlurListener,
|
|
12761
12867
|
useGlobalInputBlurTrigger,
|
|
12868
|
+
useHasOpenPortals,
|
|
12762
12869
|
useHover,
|
|
12763
12870
|
useImageData,
|
|
12764
12871
|
useIndent,
|
|
@@ -12769,6 +12876,7 @@ function Toolbar({
|
|
|
12769
12876
|
useOpenConfirmationDialog,
|
|
12770
12877
|
useOpenDialog,
|
|
12771
12878
|
useOpenInputDialog,
|
|
12879
|
+
useOpenPortalsControls,
|
|
12772
12880
|
usePlatform,
|
|
12773
12881
|
usePlatformModKey,
|
|
12774
12882
|
usePortalScopeId,
|