@comergehq/studio 0.1.2 → 0.1.3
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/dist/index.js +255 -245
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +213 -203
- package/dist/index.mjs.map +1 -1
- package/package.json +8 -5
- package/src/components/chat/ChatComposer.tsx +277 -0
- package/src/components/chat/ChatHeader.tsx +31 -0
- package/src/components/chat/ChatMessageBubble.tsx +69 -0
- package/src/components/chat/ChatMessageList.tsx +137 -0
- package/src/components/chat/ChatPage.tsx +69 -0
- package/src/components/chat/ForkNoticeBanner.tsx +66 -0
- package/src/components/chat/MultilineTextInput.tsx +46 -0
- package/src/components/chat/ScrollToBottomButton.tsx +78 -0
- package/src/components/chat/TypingIndicator.tsx +54 -0
- package/src/components/chat/index.ts +28 -0
- package/src/components/comments/AppCommentsSheet.tsx +213 -0
- package/src/components/comments/CommentRow.tsx +63 -0
- package/src/components/comments/formatTimeAgo.ts +3 -0
- package/src/components/comments/index.ts +3 -0
- package/src/components/comments/useAppComments.ts +74 -0
- package/src/components/comments/useAppDetails.ts +35 -0
- package/src/components/comments/useIosKeyboardSnapFix.ts +24 -0
- package/src/components/dialogs/ConfirmMergeRequestDialog.tsx +156 -0
- package/src/components/dialogs/index.ts +4 -0
- package/src/components/draw/DrawColorPicker.tsx +77 -0
- package/src/components/draw/DrawModeOverlay.tsx +144 -0
- package/src/components/draw/DrawSurface.tsx +127 -0
- package/src/components/draw/DrawToolbar.tsx +253 -0
- package/src/components/draw/index.ts +15 -0
- package/src/components/draw/optionalHaptics.ts +15 -0
- package/src/components/draw/strokes.ts +21 -0
- package/src/components/draw/types.ts +9 -0
- package/src/components/floating-draggable-button/FloatingDraggableButton.tsx +323 -0
- package/src/components/floating-draggable-button/constants.ts +17 -0
- package/src/components/floating-draggable-button/index.ts +4 -0
- package/src/components/floating-draggable-button/types.ts +63 -0
- package/src/components/icons/MergeIcon.tsx +14 -0
- package/src/components/icons/StudioIcons.tsx +66 -0
- package/src/components/index.ts +17 -0
- package/src/components/merge-requests/MergeRequestStatusCard.tsx +179 -0
- package/src/components/merge-requests/ReviewMergeRequestActionButton.tsx +62 -0
- package/src/components/merge-requests/ReviewMergeRequestCard.tsx +192 -0
- package/src/components/merge-requests/ReviewMergeRequestCarousel.tsx +132 -0
- package/src/components/merge-requests/index.ts +7 -0
- package/src/components/merge-requests/mergeRequestStatusDisplay.ts +23 -0
- package/src/components/merge-requests/toIsoString.ts +9 -0
- package/src/components/merge-requests/useControlledExpansion.ts +16 -0
- package/src/components/models/index.ts +9 -0
- package/src/components/models/types.ts +43 -0
- package/src/components/overlays/EdgeGlowFrame.tsx +105 -0
- package/src/components/overlays/index.ts +4 -0
- package/src/components/preview/PreviewHeroCard.tsx +58 -0
- package/src/components/preview/PreviewImage.tsx +22 -0
- package/src/components/preview/PreviewMetaRow.tsx +70 -0
- package/src/components/preview/PreviewPage.tsx +36 -0
- package/src/components/preview/PreviewPlaceholder.tsx +72 -0
- package/src/components/preview/PreviewStatusBadge.tsx +63 -0
- package/src/components/preview/StatsBar.tsx +109 -0
- package/src/components/preview/index.ts +22 -0
- package/src/components/primitives/Avatar.tsx +68 -0
- package/src/components/primitives/Button.tsx +102 -0
- package/src/components/primitives/Card.tsx +30 -0
- package/src/components/primitives/Divider.tsx +17 -0
- package/src/components/primitives/Icon.tsx +40 -0
- package/src/components/primitives/MarkdownText.tsx +72 -0
- package/src/components/primitives/Modal.tsx +53 -0
- package/src/components/primitives/Surface.tsx +42 -0
- package/src/components/primitives/Text.tsx +83 -0
- package/src/components/primitives/index.ts +35 -0
- package/src/components/primitives/types.ts +30 -0
- package/src/components/studio-sheet/StudioBottomSheet.tsx +114 -0
- package/src/components/studio-sheet/StudioSheetBackground.tsx +63 -0
- package/src/components/studio-sheet/StudioSheetHeader.tsx +35 -0
- package/src/components/studio-sheet/StudioSheetHeaderIconButton.tsx +109 -0
- package/src/components/studio-sheet/StudioSheetPager.tsx +66 -0
- package/src/components/studio-sheet/index.ts +18 -0
- package/src/components/studio-sheet/types.ts +5 -0
- package/src/components/utils/color.ts +25 -0
- package/src/components/utils/formatTimeAgo.ts +19 -0
- package/src/core/logger.ts +42 -0
- package/src/core/services/http/baseUrl.ts +3 -0
- package/src/core/services/http/index.ts +128 -0
- package/src/core/services/http/public.ts +14 -0
- package/src/core/services/supabase/auth.ts +41 -0
- package/src/core/services/supabase/client.ts +43 -0
- package/src/core/services/supabase/index.ts +7 -0
- package/src/data/agent/remote.ts +30 -0
- package/src/data/agent/repository.ts +34 -0
- package/src/data/agent/types.ts +28 -0
- package/src/data/apps/bundles/remote.ts +47 -0
- package/src/data/apps/bundles/repository.ts +35 -0
- package/src/data/apps/bundles/types.ts +27 -0
- package/src/data/apps/images/remote.ts +61 -0
- package/src/data/apps/images/repository.ts +47 -0
- package/src/data/apps/remote.ts +97 -0
- package/src/data/apps/repository.ts +185 -0
- package/src/data/apps/types.ts +206 -0
- package/src/data/attachment/remote.ts +32 -0
- package/src/data/attachment/repository.ts +40 -0
- package/src/data/attachment/types.ts +42 -0
- package/src/data/base-remote.ts +3 -0
- package/src/data/base-repository.ts +11 -0
- package/src/data/comments/likes/remote.ts +87 -0
- package/src/data/comments/likes/repository.ts +61 -0
- package/src/data/comments/likes/types.ts +47 -0
- package/src/data/comments/remote.ts +71 -0
- package/src/data/comments/repository.ts +53 -0
- package/src/data/comments/types.ts +60 -0
- package/src/data/github/remote.ts +23 -0
- package/src/data/github/repository.ts +35 -0
- package/src/data/github/types.ts +23 -0
- package/src/data/home/remote.ts +24 -0
- package/src/data/home/repository.ts +28 -0
- package/src/data/home/types.ts +70 -0
- package/src/data/index.ts +3 -0
- package/src/data/likes/remote.ts +57 -0
- package/src/data/likes/repository.ts +47 -0
- package/src/data/likes/types.ts +46 -0
- package/src/data/me/remote.ts +28 -0
- package/src/data/me/repository.ts +30 -0
- package/src/data/me/types.ts +14 -0
- package/src/data/merge-requests/remote.ts +76 -0
- package/src/data/merge-requests/repository.ts +66 -0
- package/src/data/merge-requests/types.ts +33 -0
- package/src/data/messages/remote.ts +21 -0
- package/src/data/messages/repository.ts +104 -0
- package/src/data/messages/types.ts +20 -0
- package/src/data/public/studio-config/remote.ts +19 -0
- package/src/data/public/studio-config/repository.ts +23 -0
- package/src/data/public/studio-config/types.ts +6 -0
- package/src/data/ratings/remote.ts +76 -0
- package/src/data/ratings/repository.ts +63 -0
- package/src/data/ratings/types.ts +57 -0
- package/src/data/threads/remote.ts +40 -0
- package/src/data/threads/repository.ts +41 -0
- package/src/data/threads/types.ts +25 -0
- package/src/data/types.ts +8 -0
- package/src/data/users/remote.ts +31 -0
- package/src/data/users/repository.ts +45 -0
- package/src/data/users/types.ts +15 -0
- package/src/index.ts +6 -0
- package/src/studio/ComergeStudio.tsx +246 -0
- package/src/studio/bootstrap/StudioBootstrap.tsx +45 -0
- package/src/studio/bootstrap/useStudioBootstrap.ts +51 -0
- package/src/studio/hooks/useApp.ts +83 -0
- package/src/studio/hooks/useAppStats.ts +111 -0
- package/src/studio/hooks/useAttachmentUpload.ts +59 -0
- package/src/studio/hooks/useBundleManager.ts +389 -0
- package/src/studio/hooks/useMergeRequests.ts +173 -0
- package/src/studio/hooks/useStudioActions.ts +96 -0
- package/src/studio/hooks/useThreadMessages.ts +85 -0
- package/src/studio/lib/chat.ts +34 -0
- package/src/studio/ui/ChatPanel.tsx +154 -0
- package/src/studio/ui/ConfirmMergeFlow.tsx +55 -0
- package/src/studio/ui/PreviewPanel.tsx +131 -0
- package/src/studio/ui/RuntimeRenderer.tsx +40 -0
- package/src/studio/ui/StudioOverlay.tsx +257 -0
- package/src/studio/ui/preview-panel/PressableCardRow.tsx +49 -0
- package/src/studio/ui/preview-panel/PreviewCollaborateSection.tsx +174 -0
- package/src/studio/ui/preview-panel/PreviewCustomizeSection.tsx +160 -0
- package/src/studio/ui/preview-panel/PreviewHeroSection.tsx +56 -0
- package/src/studio/ui/preview-panel/PreviewMetaSection.tsx +67 -0
- package/src/studio/ui/preview-panel/PreviewPanelHeader.tsx +48 -0
- package/src/studio/ui/preview-panel/SectionTitle.tsx +31 -0
- package/src/studio/ui/preview-panel/usePreviewPanelData.ts +132 -0
- package/src/studio/ui/preview-panel/utils.ts +29 -0
- package/src/theme/index.ts +5 -0
- package/src/theme/tokens.ts +118 -0
- package/src/theme/types.ts +90 -0
- package/src/theme/useTheme.ts +11 -0
- package/dist/assets/images/merge.svg +0 -3
- package/dist/merge-72UG27QV.svg +0 -3
package/dist/index.js
CHANGED
|
@@ -3834,11 +3834,21 @@ var import_react_native28 = require("react-native");
|
|
|
3834
3834
|
var import_liquid_glass6 = require("@callstack/liquid-glass");
|
|
3835
3835
|
var import_lucide_react_native5 = require("lucide-react-native");
|
|
3836
3836
|
|
|
3837
|
-
// src/
|
|
3838
|
-
var
|
|
3837
|
+
// src/components/icons/MergeIcon.tsx
|
|
3838
|
+
var import_react_native_svg2 = __toESM(require("react-native-svg"));
|
|
3839
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
3840
|
+
function MergeIcon({ color = "currentColor", width = 24, height = 24, ...props }) {
|
|
3841
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_react_native_svg2.default, { viewBox: "0 0 486 486", width, height, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3842
|
+
import_react_native_svg2.Path,
|
|
3843
|
+
{
|
|
3844
|
+
d: "M237.025 0H243.664C254.876 95.0361 275.236 175.597 304.743 241.684C334.249 307.478 367.002 357.774 403 392.572L389.722 486C361.691 458.22 338.233 429.417 319.349 399.59C300.464 369.764 284.531 335.843 271.548 297.829C258.565 259.522 246.615 214.343 235.697 162.292L237.91 161.415C228.468 214.928 217.993 261.569 206.485 301.338C194.978 341.107 179.634 375.904 160.455 405.731C141.571 435.265 115.752 462.022 83 486L96.278 392.572C124.014 369.179 147.62 336.72 167.094 295.197C186.864 253.381 202.65 206.886 214.452 155.713C226.255 104.247 233.779 52.343 237.025 0Z",
|
|
3845
|
+
fill: color
|
|
3846
|
+
}
|
|
3847
|
+
) });
|
|
3848
|
+
}
|
|
3839
3849
|
|
|
3840
3850
|
// src/components/preview/StatsBar.tsx
|
|
3841
|
-
var
|
|
3851
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
3842
3852
|
function StatsBar({
|
|
3843
3853
|
likeCount,
|
|
3844
3854
|
commentCount,
|
|
@@ -3852,7 +3862,7 @@ function StatsBar({
|
|
|
3852
3862
|
}) {
|
|
3853
3863
|
const theme = useTheme();
|
|
3854
3864
|
const statsBgColor = theme.scheme === "dark" ? "rgba(24, 24, 27, 0.5)" : "rgba(255, 255, 255, 0.5)";
|
|
3855
|
-
return /* @__PURE__ */ (0,
|
|
3865
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
3856
3866
|
import_react_native28.View,
|
|
3857
3867
|
{
|
|
3858
3868
|
style: [
|
|
@@ -3860,7 +3870,7 @@ function StatsBar({
|
|
|
3860
3870
|
centered && { alignItems: "center" },
|
|
3861
3871
|
style
|
|
3862
3872
|
],
|
|
3863
|
-
children: /* @__PURE__ */ (0,
|
|
3873
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
3864
3874
|
import_liquid_glass6.LiquidGlassView,
|
|
3865
3875
|
{
|
|
3866
3876
|
style: [
|
|
@@ -3869,16 +3879,16 @@ function StatsBar({
|
|
|
3869
3879
|
!import_liquid_glass6.isLiquidGlassSupported && { backgroundColor: statsBgColor }
|
|
3870
3880
|
],
|
|
3871
3881
|
effect: "clear",
|
|
3872
|
-
children: /* @__PURE__ */ (0,
|
|
3873
|
-
/* @__PURE__ */ (0,
|
|
3882
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_react_native28.View, { style: { flexDirection: "row", alignItems: "center", justifyContent: "space-between", paddingHorizontal: 16 }, children: [
|
|
3883
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
3874
3884
|
import_react_native28.Pressable,
|
|
3875
3885
|
{
|
|
3876
3886
|
disabled: !onPressLike,
|
|
3877
3887
|
onPress: onPressLike,
|
|
3878
3888
|
hitSlop: 8,
|
|
3879
3889
|
style: { paddingVertical: 8 },
|
|
3880
|
-
children: /* @__PURE__ */ (0,
|
|
3881
|
-
/* @__PURE__ */ (0,
|
|
3890
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_react_native28.View, { style: { flexDirection: "row", alignItems: "center" }, children: [
|
|
3891
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
3882
3892
|
import_lucide_react_native5.Heart,
|
|
3883
3893
|
{
|
|
3884
3894
|
size: 16,
|
|
@@ -3887,8 +3897,8 @@ function StatsBar({
|
|
|
3887
3897
|
fill: isLiked ? theme.colors.danger : "transparent"
|
|
3888
3898
|
}
|
|
3889
3899
|
),
|
|
3890
|
-
/* @__PURE__ */ (0,
|
|
3891
|
-
/* @__PURE__ */ (0,
|
|
3900
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_native28.View, { style: { width: 4 } }),
|
|
3901
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
3892
3902
|
Text,
|
|
3893
3903
|
{
|
|
3894
3904
|
variant: "caption",
|
|
@@ -3902,24 +3912,24 @@ function StatsBar({
|
|
|
3902
3912
|
] })
|
|
3903
3913
|
}
|
|
3904
3914
|
),
|
|
3905
|
-
/* @__PURE__ */ (0,
|
|
3915
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
3906
3916
|
import_react_native28.Pressable,
|
|
3907
3917
|
{
|
|
3908
3918
|
disabled: !onPressComments,
|
|
3909
3919
|
onPress: onPressComments,
|
|
3910
3920
|
hitSlop: 8,
|
|
3911
3921
|
style: { paddingVertical: 8 },
|
|
3912
|
-
children: /* @__PURE__ */ (0,
|
|
3913
|
-
/* @__PURE__ */ (0,
|
|
3914
|
-
/* @__PURE__ */ (0,
|
|
3915
|
-
/* @__PURE__ */ (0,
|
|
3922
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_react_native28.View, { style: { flexDirection: "row", alignItems: "center" }, children: [
|
|
3923
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_lucide_react_native5.MessageCircle, { size: 16, strokeWidth: 2.5, color: "#FFFFFF" }),
|
|
3924
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_native28.View, { style: { width: 4 } }),
|
|
3925
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { variant: "caption", style: { color: "#FFFFFF", fontWeight: theme.typography.fontWeight.bold }, children: commentCount })
|
|
3916
3926
|
] })
|
|
3917
3927
|
}
|
|
3918
3928
|
),
|
|
3919
|
-
/* @__PURE__ */ (0,
|
|
3920
|
-
/* @__PURE__ */ (0,
|
|
3921
|
-
/* @__PURE__ */ (0,
|
|
3922
|
-
/* @__PURE__ */ (0,
|
|
3929
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_react_native28.View, { style: { flexDirection: "row", alignItems: "center", paddingVertical: 8 }, children: [
|
|
3930
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_native28.View, { style: { transform: [{ scaleY: -1 }] }, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(MergeIcon, { width: 14, height: 14, color: "#FFFFFF" }) }),
|
|
3931
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_native28.View, { style: { width: 4 } }),
|
|
3932
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { variant: "caption", style: { color: "#FFFFFF", fontWeight: theme.typography.fontWeight.bold }, children: forkCount })
|
|
3923
3933
|
] })
|
|
3924
3934
|
] })
|
|
3925
3935
|
}
|
|
@@ -3944,7 +3954,7 @@ var APP_STATUS_LABEL = {
|
|
|
3944
3954
|
};
|
|
3945
3955
|
|
|
3946
3956
|
// src/components/preview/PreviewStatusBadge.tsx
|
|
3947
|
-
var
|
|
3957
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
3948
3958
|
var STATUS_BG = {
|
|
3949
3959
|
ready: "#10B981",
|
|
3950
3960
|
// emerald-500
|
|
@@ -3973,7 +3983,7 @@ var STATUS_ICON = {
|
|
|
3973
3983
|
function PreviewStatusBadge({ status }) {
|
|
3974
3984
|
const IconComp = STATUS_ICON[status];
|
|
3975
3985
|
const label = APP_STATUS_LABEL[status] ?? status;
|
|
3976
|
-
return /* @__PURE__ */ (0,
|
|
3986
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
|
|
3977
3987
|
import_react_native29.View,
|
|
3978
3988
|
{
|
|
3979
3989
|
style: {
|
|
@@ -3985,15 +3995,15 @@ function PreviewStatusBadge({ status }) {
|
|
|
3985
3995
|
backgroundColor: STATUS_BG[status]
|
|
3986
3996
|
},
|
|
3987
3997
|
children: [
|
|
3988
|
-
/* @__PURE__ */ (0,
|
|
3989
|
-
/* @__PURE__ */ (0,
|
|
3998
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(IconComp, { size: 12, color: "#FFFFFF", style: { marginRight: 4 } }),
|
|
3999
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { style: { color: "#FFFFFF", fontSize: 11, lineHeight: 14 }, children: label })
|
|
3990
4000
|
]
|
|
3991
4001
|
}
|
|
3992
4002
|
);
|
|
3993
4003
|
}
|
|
3994
4004
|
|
|
3995
4005
|
// src/studio/ui/preview-panel/PreviewHeroSection.tsx
|
|
3996
|
-
var
|
|
4006
|
+
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
3997
4007
|
function PreviewHeroSection({
|
|
3998
4008
|
appStatus,
|
|
3999
4009
|
showProcessing,
|
|
@@ -4002,13 +4012,13 @@ function PreviewHeroSection({
|
|
|
4002
4012
|
onImageLoad,
|
|
4003
4013
|
stats
|
|
4004
4014
|
}) {
|
|
4005
|
-
return /* @__PURE__ */ (0,
|
|
4015
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
4006
4016
|
PreviewHeroCard,
|
|
4007
4017
|
{
|
|
4008
|
-
overlayTopLeft: showProcessing ? /* @__PURE__ */ (0,
|
|
4009
|
-
background: /* @__PURE__ */ (0,
|
|
4010
|
-
image: /* @__PURE__ */ (0,
|
|
4011
|
-
overlayBottom: /* @__PURE__ */ (0,
|
|
4018
|
+
overlayTopLeft: showProcessing ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(PreviewStatusBadge, { status: appStatus }) : null,
|
|
4019
|
+
background: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(PreviewPlaceholder, { visible: !imageLoaded }),
|
|
4020
|
+
image: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(PreviewImage, { uri: imageUrl, onLoad: onImageLoad }),
|
|
4021
|
+
overlayBottom: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
4012
4022
|
StatsBar,
|
|
4013
4023
|
{
|
|
4014
4024
|
likeCount: stats.likeCount,
|
|
@@ -4031,7 +4041,7 @@ var import_react_native31 = require("react-native");
|
|
|
4031
4041
|
|
|
4032
4042
|
// src/components/preview/PreviewMetaRow.tsx
|
|
4033
4043
|
var import_react_native30 = require("react-native");
|
|
4034
|
-
var
|
|
4044
|
+
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
4035
4045
|
function PreviewMetaRow({
|
|
4036
4046
|
avatarUri,
|
|
4037
4047
|
creatorName,
|
|
@@ -4042,11 +4052,11 @@ function PreviewMetaRow({
|
|
|
4042
4052
|
style
|
|
4043
4053
|
}) {
|
|
4044
4054
|
const theme = useTheme();
|
|
4045
|
-
return /* @__PURE__ */ (0,
|
|
4046
|
-
/* @__PURE__ */ (0,
|
|
4047
|
-
/* @__PURE__ */ (0,
|
|
4048
|
-
/* @__PURE__ */ (0,
|
|
4049
|
-
/* @__PURE__ */ (0,
|
|
4055
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_react_native30.View, { style: [{ alignSelf: "stretch" }, style], children: [
|
|
4056
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_react_native30.View, { style: { flexDirection: "row", alignItems: "center" }, children: [
|
|
4057
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Avatar, { uri: avatarUri, name: creatorName, size: 24, style: { marginRight: theme.spacing.sm } }),
|
|
4058
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_react_native30.View, { style: { flexDirection: "row", alignItems: "center", flex: 1, minWidth: 0, marginRight: theme.spacing.sm }, children: [
|
|
4059
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
4050
4060
|
Text,
|
|
4051
4061
|
{
|
|
4052
4062
|
numberOfLines: 1,
|
|
@@ -4060,11 +4070,11 @@ function PreviewMetaRow({
|
|
|
4060
4070
|
children: title
|
|
4061
4071
|
}
|
|
4062
4072
|
),
|
|
4063
|
-
tag ? /* @__PURE__ */ (0,
|
|
4073
|
+
tag ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_native30.View, { style: { marginLeft: theme.spacing.sm }, children: tag }) : null
|
|
4064
4074
|
] }),
|
|
4065
|
-
rightMetric ? /* @__PURE__ */ (0,
|
|
4075
|
+
rightMetric ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_native30.View, { children: rightMetric }) : null
|
|
4066
4076
|
] }),
|
|
4067
|
-
subtitle ? /* @__PURE__ */ (0,
|
|
4077
|
+
subtitle ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
4068
4078
|
Text,
|
|
4069
4079
|
{
|
|
4070
4080
|
numberOfLines: 2,
|
|
@@ -4107,19 +4117,19 @@ function statusDescription(status, statusError) {
|
|
|
4107
4117
|
}
|
|
4108
4118
|
|
|
4109
4119
|
// src/studio/ui/preview-panel/PreviewMetaSection.tsx
|
|
4110
|
-
var
|
|
4120
|
+
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
4111
4121
|
function PreviewMetaSection({ app, isOwner, creator, downloadsCount }) {
|
|
4112
4122
|
var _a;
|
|
4113
4123
|
const theme = useTheme();
|
|
4114
|
-
return /* @__PURE__ */ (0,
|
|
4124
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
4115
4125
|
PreviewMetaRow,
|
|
4116
4126
|
{
|
|
4117
4127
|
title: app.name,
|
|
4118
4128
|
subtitle: app.description,
|
|
4119
4129
|
avatarUri: (creator == null ? void 0 : creator.avatar) ?? null,
|
|
4120
4130
|
creatorName: (creator == null ? void 0 : creator.name) ?? null,
|
|
4121
|
-
tag: isOwner || app.forkedFromAppId ? /* @__PURE__ */ (0,
|
|
4122
|
-
rightMetric: /* @__PURE__ */ (0,
|
|
4131
|
+
tag: isOwner || app.forkedFromAppId ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_react_native31.View, { style: { paddingHorizontal: 8, paddingVertical: 2, borderRadius: 999, backgroundColor: "#3700B3" }, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { variant: "caption", style: { color: "#fff", fontWeight: theme.typography.fontWeight.semibold }, children: app.forkedFromAppId ? "Remix" : "Owner" }) }) : null,
|
|
4132
|
+
rightMetric: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
|
|
4123
4133
|
import_react_native31.View,
|
|
4124
4134
|
{
|
|
4125
4135
|
style: {
|
|
@@ -4131,7 +4141,7 @@ function PreviewMetaSection({ app, isOwner, creator, downloadsCount }) {
|
|
|
4131
4141
|
backgroundColor: withAlpha(theme.colors.neutral, 0.3)
|
|
4132
4142
|
},
|
|
4133
4143
|
children: [
|
|
4134
|
-
/* @__PURE__ */ (0,
|
|
4144
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
4135
4145
|
Text,
|
|
4136
4146
|
{
|
|
4137
4147
|
style: {
|
|
@@ -4144,7 +4154,7 @@ function PreviewMetaSection({ app, isOwner, creator, downloadsCount }) {
|
|
|
4144
4154
|
children: formatCount(downloadsCount ?? ((_a = app.insights) == null ? void 0 : _a.totalDownloads) ?? 0)
|
|
4145
4155
|
}
|
|
4146
4156
|
),
|
|
4147
|
-
/* @__PURE__ */ (0,
|
|
4157
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(IconPlay, { size: 14, colorToken: "textMuted", fill: theme.colors.textMuted })
|
|
4148
4158
|
]
|
|
4149
4159
|
}
|
|
4150
4160
|
),
|
|
@@ -4158,7 +4168,7 @@ var import_react_native33 = require("react-native");
|
|
|
4158
4168
|
|
|
4159
4169
|
// src/studio/ui/preview-panel/PressableCardRow.tsx
|
|
4160
4170
|
var import_react_native32 = require("react-native");
|
|
4161
|
-
var
|
|
4171
|
+
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
4162
4172
|
function PressableCardRow({
|
|
4163
4173
|
accessibilityLabel,
|
|
4164
4174
|
onPress,
|
|
@@ -4169,7 +4179,7 @@ function PressableCardRow({
|
|
|
4169
4179
|
right,
|
|
4170
4180
|
style
|
|
4171
4181
|
}) {
|
|
4172
|
-
return /* @__PURE__ */ (0,
|
|
4182
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
4173
4183
|
import_react_native32.Pressable,
|
|
4174
4184
|
{
|
|
4175
4185
|
accessibilityRole: "button",
|
|
@@ -4177,23 +4187,23 @@ function PressableCardRow({
|
|
|
4177
4187
|
disabled,
|
|
4178
4188
|
onPress,
|
|
4179
4189
|
style: ({ pressed }) => ({ opacity: disabled ? 0.6 : pressed ? 0.85 : 1 }),
|
|
4180
|
-
children: /* @__PURE__ */ (0,
|
|
4190
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Card, { padded: false, border: false, style, children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_react_native32.View, { style: { flexDirection: "row", alignItems: "center" }, children: [
|
|
4181
4191
|
left,
|
|
4182
|
-
/* @__PURE__ */ (0,
|
|
4192
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_react_native32.View, { style: { flex: 1, minWidth: 0 }, children: [
|
|
4183
4193
|
title,
|
|
4184
4194
|
subtitle ? subtitle : null
|
|
4185
4195
|
] }),
|
|
4186
|
-
right ? /* @__PURE__ */ (0,
|
|
4196
|
+
right ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_react_native32.View, { style: { marginLeft: 16 }, children: right }) : null
|
|
4187
4197
|
] }) })
|
|
4188
4198
|
}
|
|
4189
4199
|
);
|
|
4190
4200
|
}
|
|
4191
4201
|
|
|
4192
4202
|
// src/studio/ui/preview-panel/SectionTitle.tsx
|
|
4193
|
-
var
|
|
4203
|
+
var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
4194
4204
|
function SectionTitle({ children, marginTop }) {
|
|
4195
4205
|
const theme = useTheme();
|
|
4196
|
-
return /* @__PURE__ */ (0,
|
|
4206
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4197
4207
|
Text,
|
|
4198
4208
|
{
|
|
4199
4209
|
style: {
|
|
@@ -4212,7 +4222,7 @@ function SectionTitle({ children, marginTop }) {
|
|
|
4212
4222
|
}
|
|
4213
4223
|
|
|
4214
4224
|
// src/studio/ui/preview-panel/PreviewCustomizeSection.tsx
|
|
4215
|
-
var
|
|
4225
|
+
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
4216
4226
|
function PreviewCustomizeSection({
|
|
4217
4227
|
app,
|
|
4218
4228
|
isOwner,
|
|
@@ -4222,9 +4232,9 @@ function PreviewCustomizeSection({
|
|
|
4222
4232
|
onStartDraw
|
|
4223
4233
|
}) {
|
|
4224
4234
|
const theme = useTheme();
|
|
4225
|
-
return /* @__PURE__ */ (0,
|
|
4226
|
-
/* @__PURE__ */ (0,
|
|
4227
|
-
showProcessing ? /* @__PURE__ */ (0,
|
|
4235
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(import_jsx_runtime36.Fragment, { children: [
|
|
4236
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(SectionTitle, { children: "Customize" }),
|
|
4237
|
+
showProcessing ? /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
|
|
4228
4238
|
import_react_native33.View,
|
|
4229
4239
|
{
|
|
4230
4240
|
style: {
|
|
@@ -4238,7 +4248,7 @@ function PreviewCustomizeSection({
|
|
|
4238
4248
|
marginBottom: theme.spacing.sm
|
|
4239
4249
|
},
|
|
4240
4250
|
children: [
|
|
4241
|
-
/* @__PURE__ */ (0,
|
|
4251
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
4242
4252
|
import_react_native33.View,
|
|
4243
4253
|
{
|
|
4244
4254
|
style: {
|
|
@@ -4250,17 +4260,17 @@ function PreviewCustomizeSection({
|
|
|
4250
4260
|
backgroundColor: withAlpha(theme.colors.warning, 0.1),
|
|
4251
4261
|
marginRight: theme.spacing.lg
|
|
4252
4262
|
},
|
|
4253
|
-
children: /* @__PURE__ */ (0,
|
|
4263
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react_native33.ActivityIndicator, { color: theme.colors.warning, size: "small" })
|
|
4254
4264
|
}
|
|
4255
4265
|
),
|
|
4256
|
-
/* @__PURE__ */ (0,
|
|
4257
|
-
/* @__PURE__ */ (0,
|
|
4258
|
-
/* @__PURE__ */ (0,
|
|
4266
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(import_react_native33.View, { style: { flex: 1, minWidth: 0 }, children: [
|
|
4267
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Text, { style: { color: theme.colors.text, fontSize: 16, lineHeight: 20, fontWeight: theme.typography.fontWeight.semibold }, children: app.status === "error" ? "Error" : "Processing" }),
|
|
4268
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Text, { style: { color: theme.colors.textMuted, fontSize: 12, lineHeight: 16, marginTop: 2 }, children: statusDescription(app.status, app.statusError) })
|
|
4259
4269
|
] })
|
|
4260
4270
|
]
|
|
4261
4271
|
}
|
|
4262
4272
|
) : null,
|
|
4263
|
-
/* @__PURE__ */ (0,
|
|
4273
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
4264
4274
|
PressableCardRow,
|
|
4265
4275
|
{
|
|
4266
4276
|
accessibilityLabel: isOwner ? "Edit app" : "Remix app",
|
|
@@ -4273,7 +4283,7 @@ function PreviewCustomizeSection({
|
|
|
4273
4283
|
borderColor: withAlpha(theme.colors.primary, 0.1),
|
|
4274
4284
|
marginBottom: theme.spacing.sm
|
|
4275
4285
|
},
|
|
4276
|
-
left: /* @__PURE__ */ (0,
|
|
4286
|
+
left: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
4277
4287
|
import_react_native33.View,
|
|
4278
4288
|
{
|
|
4279
4289
|
style: {
|
|
@@ -4285,15 +4295,15 @@ function PreviewCustomizeSection({
|
|
|
4285
4295
|
backgroundColor: withAlpha(theme.colors.primary, 0.1),
|
|
4286
4296
|
marginRight: theme.spacing.lg
|
|
4287
4297
|
},
|
|
4288
|
-
children: /* @__PURE__ */ (0,
|
|
4298
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(IconChat, { size: 20, colorToken: "primary" })
|
|
4289
4299
|
}
|
|
4290
4300
|
),
|
|
4291
|
-
title: /* @__PURE__ */ (0,
|
|
4292
|
-
subtitle: /* @__PURE__ */ (0,
|
|
4293
|
-
right: /* @__PURE__ */ (0,
|
|
4301
|
+
title: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Text, { style: { color: theme.colors.text, fontSize: 16, lineHeight: 20, fontWeight: theme.typography.fontWeight.semibold }, children: isOwner ? app.forkedFromAppId ? "Edit your Remix" : "Edit Your App" : "Remix App" }),
|
|
4302
|
+
subtitle: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Text, { style: { color: theme.colors.textMuted, fontSize: 12, lineHeight: 16, marginTop: 2 }, children: isOwner && app.forkedFromAppId ? "Make changes to your remix with chat" : shouldForkOnEdit ? "Chat to create your own copy and edit it" : "Chat to apply changes" }),
|
|
4303
|
+
right: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(IconChevronRight, { size: 20, colorToken: "textMuted" })
|
|
4294
4304
|
}
|
|
4295
4305
|
),
|
|
4296
|
-
isOwner && onStartDraw ? /* @__PURE__ */ (0,
|
|
4306
|
+
isOwner && onStartDraw ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
4297
4307
|
PressableCardRow,
|
|
4298
4308
|
{
|
|
4299
4309
|
accessibilityLabel: "Draw changes",
|
|
@@ -4306,7 +4316,7 @@ function PreviewCustomizeSection({
|
|
|
4306
4316
|
borderColor: withAlpha(theme.colors.danger, 0.1),
|
|
4307
4317
|
marginBottom: theme.spacing.sm
|
|
4308
4318
|
},
|
|
4309
|
-
left: /* @__PURE__ */ (0,
|
|
4319
|
+
left: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
4310
4320
|
import_react_native33.View,
|
|
4311
4321
|
{
|
|
4312
4322
|
style: {
|
|
@@ -4318,12 +4328,12 @@ function PreviewCustomizeSection({
|
|
|
4318
4328
|
backgroundColor: withAlpha(theme.colors.danger, 0.1),
|
|
4319
4329
|
marginRight: theme.spacing.lg
|
|
4320
4330
|
},
|
|
4321
|
-
children: /* @__PURE__ */ (0,
|
|
4331
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(IconDraw, { size: 20, colorToken: "danger" })
|
|
4322
4332
|
}
|
|
4323
4333
|
),
|
|
4324
|
-
title: /* @__PURE__ */ (0,
|
|
4325
|
-
subtitle: /* @__PURE__ */ (0,
|
|
4326
|
-
right: /* @__PURE__ */ (0,
|
|
4334
|
+
title: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Text, { style: { color: theme.colors.text, fontSize: 16, lineHeight: 20, fontWeight: theme.typography.fontWeight.semibold }, children: "Draw Changes" }),
|
|
4335
|
+
subtitle: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Text, { style: { color: theme.colors.textMuted, fontSize: 12, lineHeight: 16, marginTop: 2 }, children: "Annotate the app with drawings" }),
|
|
4336
|
+
right: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(IconChevronRight, { size: 20, colorToken: "textMuted" })
|
|
4327
4337
|
}
|
|
4328
4338
|
) : null
|
|
4329
4339
|
] });
|
|
@@ -4342,7 +4352,7 @@ var import_lucide_react_native7 = require("lucide-react-native");
|
|
|
4342
4352
|
// src/components/primitives/MarkdownText.tsx
|
|
4343
4353
|
var import_react_native34 = require("react-native");
|
|
4344
4354
|
var import_react_native_markdown_display = __toESM(require("react-native-markdown-display"));
|
|
4345
|
-
var
|
|
4355
|
+
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
4346
4356
|
function MarkdownText({ markdown, variant = "chat", bodyColor, style }) {
|
|
4347
4357
|
const theme = useTheme();
|
|
4348
4358
|
const isDark = theme.scheme === "dark";
|
|
@@ -4353,7 +4363,7 @@ function MarkdownText({ markdown, variant = "chat", bodyColor, style }) {
|
|
|
4353
4363
|
const codeTextColor = isDark ? "#FFFFFF" : theme.colors.text;
|
|
4354
4364
|
const paragraphBottom = variant === "mergeRequest" ? 8 : 6;
|
|
4355
4365
|
const baseLineHeight = variant === "mergeRequest" ? 22 : 20;
|
|
4356
|
-
return /* @__PURE__ */ (0,
|
|
4366
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_react_native34.View, { style, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
4357
4367
|
import_react_native_markdown_display.default,
|
|
4358
4368
|
{
|
|
4359
4369
|
style: {
|
|
@@ -4433,7 +4443,7 @@ function useControlledExpansion(props) {
|
|
|
4433
4443
|
}
|
|
4434
4444
|
|
|
4435
4445
|
// src/components/merge-requests/MergeRequestStatusCard.tsx
|
|
4436
|
-
var
|
|
4446
|
+
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
4437
4447
|
function MergeRequestStatusCard({
|
|
4438
4448
|
mergeRequest,
|
|
4439
4449
|
expanded: expandedProp,
|
|
@@ -4486,7 +4496,7 @@ function MergeRequestStatusCard({
|
|
|
4486
4496
|
useNativeDriver: true
|
|
4487
4497
|
}).start();
|
|
4488
4498
|
}, [expanded, rotate]);
|
|
4489
|
-
return /* @__PURE__ */ (0,
|
|
4499
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_react_native35.Pressable, { onPress: () => setExpanded(!expanded), style: ({ pressed }) => [{ opacity: pressed ? 0.95 : 1 }], children: /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
|
|
4490
4500
|
Card,
|
|
4491
4501
|
{
|
|
4492
4502
|
padded: false,
|
|
@@ -4499,11 +4509,11 @@ function MergeRequestStatusCard({
|
|
|
4499
4509
|
style
|
|
4500
4510
|
],
|
|
4501
4511
|
children: [
|
|
4502
|
-
/* @__PURE__ */ (0,
|
|
4503
|
-
/* @__PURE__ */ (0,
|
|
4504
|
-
/* @__PURE__ */ (0,
|
|
4505
|
-
/* @__PURE__ */ (0,
|
|
4506
|
-
/* @__PURE__ */ (0,
|
|
4512
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_react_native35.View, { style: { flexDirection: "row", alignItems: "center", gap: theme.spacing.lg }, children: [
|
|
4513
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_react_native35.View, { style: { width: 40, height: 40, borderRadius: 999, alignItems: "center", justifyContent: "center", backgroundColor: bgColor }, children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(StatusIcon, { size: 20, color: iconColor }) }),
|
|
4514
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_react_native35.View, { style: { flex: 1, minWidth: 0 }, children: [
|
|
4515
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_react_native35.View, { style: { flexDirection: "row", alignItems: "center", justifyContent: "space-between" }, children: [
|
|
4516
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
4507
4517
|
Text,
|
|
4508
4518
|
{
|
|
4509
4519
|
style: {
|
|
@@ -4517,11 +4527,11 @@ function MergeRequestStatusCard({
|
|
|
4517
4527
|
children: statusText
|
|
4518
4528
|
}
|
|
4519
4529
|
),
|
|
4520
|
-
headerTimeAgo ? /* @__PURE__ */ (0,
|
|
4530
|
+
headerTimeAgo ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Text, { style: { fontSize: 10, lineHeight: 14, marginLeft: theme.spacing.sm, color: withAlpha(theme.colors.textMuted, 0.6) }, children: headerTimeAgo }) : null
|
|
4521
4531
|
] }),
|
|
4522
|
-
/* @__PURE__ */ (0,
|
|
4532
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Text, { style: { fontSize: 12, lineHeight: 16, color: theme.colors.textMuted }, numberOfLines: 1, children: mergeRequest.title ?? "Untitled merge request" })
|
|
4523
4533
|
] }),
|
|
4524
|
-
headerRight ? /* @__PURE__ */ (0,
|
|
4534
|
+
headerRight ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_react_native35.View, { children: headerRight }) : /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
4525
4535
|
import_react_native35.Animated.View,
|
|
4526
4536
|
{
|
|
4527
4537
|
style: {
|
|
@@ -4531,12 +4541,12 @@ function MergeRequestStatusCard({
|
|
|
4531
4541
|
}
|
|
4532
4542
|
]
|
|
4533
4543
|
},
|
|
4534
|
-
children: /* @__PURE__ */ (0,
|
|
4544
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_lucide_react_native7.ChevronDown, { size: 20, color: withAlpha(theme.colors.textMuted, 0.4) })
|
|
4535
4545
|
}
|
|
4536
4546
|
)
|
|
4537
4547
|
] }),
|
|
4538
|
-
expanded ? /* @__PURE__ */ (0,
|
|
4539
|
-
/* @__PURE__ */ (0,
|
|
4548
|
+
expanded ? /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_react_native35.View, { style: { marginTop: 16, marginLeft: 56 }, children: [
|
|
4549
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
4540
4550
|
Text,
|
|
4541
4551
|
{
|
|
4542
4552
|
style: {
|
|
@@ -4550,7 +4560,7 @@ function MergeRequestStatusCard({
|
|
|
4550
4560
|
children: status.text
|
|
4551
4561
|
}
|
|
4552
4562
|
),
|
|
4553
|
-
createdTimeAgo ? /* @__PURE__ */ (0,
|
|
4563
|
+
createdTimeAgo ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
4554
4564
|
Text,
|
|
4555
4565
|
{
|
|
4556
4566
|
style: {
|
|
@@ -4561,8 +4571,8 @@ function MergeRequestStatusCard({
|
|
|
4561
4571
|
children: createdTimeAgo
|
|
4562
4572
|
}
|
|
4563
4573
|
) : null,
|
|
4564
|
-
/* @__PURE__ */ (0,
|
|
4565
|
-
mergeRequest.description ? /* @__PURE__ */ (0,
|
|
4574
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Text, { style: { fontSize: 16, fontWeight: "600", color: textColor, marginBottom: 8 }, children: mergeRequest.title ?? "Untitled merge request" }),
|
|
4575
|
+
mergeRequest.description ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(MarkdownText, { markdown: mergeRequest.description, variant: "mergeRequest" }) : null
|
|
4566
4576
|
] }) : null
|
|
4567
4577
|
]
|
|
4568
4578
|
}
|
|
@@ -4581,7 +4591,7 @@ var import_lucide_react_native8 = require("lucide-react-native");
|
|
|
4581
4591
|
// src/components/merge-requests/ReviewMergeRequestActionButton.tsx
|
|
4582
4592
|
var React25 = __toESM(require("react"));
|
|
4583
4593
|
var import_react_native36 = require("react-native");
|
|
4584
|
-
var
|
|
4594
|
+
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
4585
4595
|
function ReviewMergeRequestActionButton({
|
|
4586
4596
|
accessibilityLabel,
|
|
4587
4597
|
backgroundColor,
|
|
@@ -4596,7 +4606,7 @@ function ReviewMergeRequestActionButton({
|
|
|
4596
4606
|
const paddingHorizontal = iconOnly ? 0 : 16;
|
|
4597
4607
|
const paddingVertical = iconOnly ? 0 : 8;
|
|
4598
4608
|
const opacity = disabled ? 0.5 : pressed ? 0.9 : 1;
|
|
4599
|
-
return /* @__PURE__ */ (0,
|
|
4609
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
4600
4610
|
import_react_native36.View,
|
|
4601
4611
|
{
|
|
4602
4612
|
style: {
|
|
@@ -4611,7 +4621,7 @@ function ReviewMergeRequestActionButton({
|
|
|
4611
4621
|
paddingVertical,
|
|
4612
4622
|
justifyContent: "center"
|
|
4613
4623
|
},
|
|
4614
|
-
children: /* @__PURE__ */ (0,
|
|
4624
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
4615
4625
|
import_react_native36.Pressable,
|
|
4616
4626
|
{
|
|
4617
4627
|
accessibilityRole: "button",
|
|
@@ -4635,7 +4645,7 @@ function ReviewMergeRequestActionButton({
|
|
|
4635
4645
|
}
|
|
4636
4646
|
|
|
4637
4647
|
// src/components/merge-requests/ReviewMergeRequestCard.tsx
|
|
4638
|
-
var
|
|
4648
|
+
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
4639
4649
|
function ReviewMergeRequestCard({
|
|
4640
4650
|
mr,
|
|
4641
4651
|
index,
|
|
@@ -4659,7 +4669,7 @@ function ReviewMergeRequestCard({
|
|
|
4659
4669
|
import_react_native37.Animated.timing(rotate, { toValue: isExpanded ? 1 : 0, duration: 200, useNativeDriver: true }).start();
|
|
4660
4670
|
}, [isExpanded, rotate]);
|
|
4661
4671
|
const position = total > 1 ? `${index + 1}/${total}` : "Merge request";
|
|
4662
|
-
return /* @__PURE__ */ (0,
|
|
4672
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_react_native37.Pressable, { onPress: onToggle, style: ({ pressed }) => ({ opacity: pressed ? 0.95 : 1 }), children: /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
|
|
4663
4673
|
Card,
|
|
4664
4674
|
{
|
|
4665
4675
|
padded: false,
|
|
@@ -4672,10 +4682,10 @@ function ReviewMergeRequestCard({
|
|
|
4672
4682
|
}
|
|
4673
4683
|
],
|
|
4674
4684
|
children: [
|
|
4675
|
-
/* @__PURE__ */ (0,
|
|
4676
|
-
/* @__PURE__ */ (0,
|
|
4677
|
-
/* @__PURE__ */ (0,
|
|
4678
|
-
/* @__PURE__ */ (0,
|
|
4685
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_react_native37.View, { style: { flexDirection: "row", alignItems: "center", gap: 12 }, children: [
|
|
4686
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Avatar, { size: 40, uri: (creator == null ? void 0 : creator.avatar) ?? null, name: (creator == null ? void 0 : creator.name) ?? void 0 }),
|
|
4687
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_react_native37.View, { style: { flex: 1, minWidth: 0 }, children: [
|
|
4688
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
4679
4689
|
Text,
|
|
4680
4690
|
{
|
|
4681
4691
|
style: { fontWeight: theme.typography.fontWeight.semibold, color: theme.colors.text, fontSize: 16, lineHeight: 20 },
|
|
@@ -4683,24 +4693,24 @@ function ReviewMergeRequestCard({
|
|
|
4683
4693
|
children: mr.title ?? "Untitled merge request"
|
|
4684
4694
|
}
|
|
4685
4695
|
),
|
|
4686
|
-
/* @__PURE__ */ (0,
|
|
4696
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { style: { color: theme.colors.textMuted, fontSize: 12, lineHeight: 16 }, numberOfLines: 1, children: [
|
|
4687
4697
|
(creator == null ? void 0 : creator.name) ?? "Loading...",
|
|
4688
4698
|
" \xB7 ",
|
|
4689
4699
|
position
|
|
4690
4700
|
] })
|
|
4691
4701
|
] }),
|
|
4692
|
-
/* @__PURE__ */ (0,
|
|
4702
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
4693
4703
|
import_react_native37.Animated.View,
|
|
4694
4704
|
{
|
|
4695
4705
|
style: {
|
|
4696
4706
|
transform: [{ rotate: rotate.interpolate({ inputRange: [0, 1], outputRange: ["0deg", "180deg"] }) }]
|
|
4697
4707
|
},
|
|
4698
|
-
children: /* @__PURE__ */ (0,
|
|
4708
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_lucide_react_native8.ChevronDown, { size: 20, color: withAlpha(theme.colors.textMuted, 0.4) })
|
|
4699
4709
|
}
|
|
4700
4710
|
)
|
|
4701
4711
|
] }),
|
|
4702
|
-
isExpanded ? /* @__PURE__ */ (0,
|
|
4703
|
-
/* @__PURE__ */ (0,
|
|
4712
|
+
isExpanded ? /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_react_native37.View, { style: { marginTop: 16 }, children: [
|
|
4713
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
4704
4714
|
Text,
|
|
4705
4715
|
{
|
|
4706
4716
|
style: {
|
|
@@ -4714,13 +4724,13 @@ function ReviewMergeRequestCard({
|
|
|
4714
4724
|
children: status.text
|
|
4715
4725
|
}
|
|
4716
4726
|
),
|
|
4717
|
-
/* @__PURE__ */ (0,
|
|
4718
|
-
mr.description ? /* @__PURE__ */ (0,
|
|
4727
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { style: { color: theme.colors.textMuted, fontSize: 12, lineHeight: 16, marginBottom: 12 }, children: creator ? `${creator.approvedOpenedMergeRequests} approved merge${creator.approvedOpenedMergeRequests !== 1 ? "s" : ""}` : "Loading stats..." }),
|
|
4728
|
+
mr.description ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(MarkdownText, { markdown: mr.description, variant: "mergeRequest" }) : null
|
|
4719
4729
|
] }) : null,
|
|
4720
|
-
/* @__PURE__ */ (0,
|
|
4721
|
-
/* @__PURE__ */ (0,
|
|
4722
|
-
/* @__PURE__ */ (0,
|
|
4723
|
-
/* @__PURE__ */ (0,
|
|
4730
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_react_native37.View, { style: { height: 1, backgroundColor: withAlpha(theme.colors.borderStrong, 0.5), marginTop: 12, marginBottom: 12 } }),
|
|
4731
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_react_native37.View, { style: { flexDirection: "row", alignItems: "center", justifyContent: "space-between" }, children: [
|
|
4732
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_react_native37.View, { style: { flexDirection: "row", gap: 8 }, children: [
|
|
4733
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
4724
4734
|
ReviewMergeRequestActionButton,
|
|
4725
4735
|
{
|
|
4726
4736
|
accessibilityLabel: "Reject",
|
|
@@ -4728,13 +4738,13 @@ function ReviewMergeRequestCard({
|
|
|
4728
4738
|
disabled: !canAct || isAnyProcessing,
|
|
4729
4739
|
onPress: onReject,
|
|
4730
4740
|
iconOnly: !isExpanded,
|
|
4731
|
-
children: /* @__PURE__ */ (0,
|
|
4732
|
-
/* @__PURE__ */ (0,
|
|
4733
|
-
isExpanded ? /* @__PURE__ */ (0,
|
|
4741
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_react_native37.View, { style: { flexDirection: "row", alignItems: "center", gap: isExpanded ? 4 : 0 }, children: [
|
|
4742
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_lucide_react_native8.X, { size: 18, color: "#FFFFFF" }),
|
|
4743
|
+
isExpanded ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { style: { fontSize: 13, color: "#FFFFFF", fontWeight: theme.typography.fontWeight.semibold }, children: "Reject" }) : null
|
|
4734
4744
|
] })
|
|
4735
4745
|
}
|
|
4736
4746
|
),
|
|
4737
|
-
/* @__PURE__ */ (0,
|
|
4747
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
4738
4748
|
ReviewMergeRequestActionButton,
|
|
4739
4749
|
{
|
|
4740
4750
|
accessibilityLabel: !canAct ? "Not actionable" : isProcessing ? "Processing" : "Approve",
|
|
@@ -4742,17 +4752,17 @@ function ReviewMergeRequestCard({
|
|
|
4742
4752
|
disabled: !canAct || isAnyProcessing,
|
|
4743
4753
|
onPress: onApprove,
|
|
4744
4754
|
iconOnly: !isExpanded,
|
|
4745
|
-
children: isProcessing ? /* @__PURE__ */ (0,
|
|
4746
|
-
/* @__PURE__ */ (0,
|
|
4747
|
-
isExpanded ? /* @__PURE__ */ (0,
|
|
4748
|
-
] }) : /* @__PURE__ */ (0,
|
|
4749
|
-
/* @__PURE__ */ (0,
|
|
4750
|
-
isExpanded ? /* @__PURE__ */ (0,
|
|
4755
|
+
children: isProcessing ? /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_react_native37.View, { style: { flexDirection: "row", alignItems: "center", gap: isExpanded ? 4 : 0 }, children: [
|
|
4756
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_react_native37.ActivityIndicator, { size: "small", color: "#FFFFFF" }),
|
|
4757
|
+
isExpanded ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { style: { fontSize: 13, color: "#FFFFFF", fontWeight: theme.typography.fontWeight.semibold }, children: "Processing" }) : null
|
|
4758
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_react_native37.View, { style: { flexDirection: "row", alignItems: "center", gap: isExpanded ? 4 : 0 }, children: [
|
|
4759
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_lucide_react_native8.Check, { size: 18, color: "#FFFFFF" }),
|
|
4760
|
+
isExpanded ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { style: { fontSize: 13, color: "#FFFFFF", fontWeight: theme.typography.fontWeight.semibold }, children: "Approve" }) : null
|
|
4751
4761
|
] })
|
|
4752
4762
|
}
|
|
4753
4763
|
)
|
|
4754
4764
|
] }),
|
|
4755
|
-
/* @__PURE__ */ (0,
|
|
4765
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
4756
4766
|
ReviewMergeRequestActionButton,
|
|
4757
4767
|
{
|
|
4758
4768
|
accessibilityLabel: "Test",
|
|
@@ -4760,9 +4770,9 @@ function ReviewMergeRequestCard({
|
|
|
4760
4770
|
disabled: isBuilding || isTestingThis,
|
|
4761
4771
|
onPress: onTest,
|
|
4762
4772
|
iconOnly: !isExpanded,
|
|
4763
|
-
children: isTestingThis ? /* @__PURE__ */ (0,
|
|
4764
|
-
/* @__PURE__ */ (0,
|
|
4765
|
-
isExpanded ? /* @__PURE__ */ (0,
|
|
4773
|
+
children: isTestingThis ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_react_native37.ActivityIndicator, { size: "small", color: "#888" }) : /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_react_native37.View, { style: { flexDirection: "row", alignItems: "center", gap: isExpanded ? 4 : 0 }, children: [
|
|
4774
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_lucide_react_native8.Play, { size: 14, color: theme.colors.text }),
|
|
4775
|
+
isExpanded ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { style: { fontSize: 13, color: theme.colors.text, fontWeight: theme.typography.fontWeight.semibold }, children: "Test" }) : null
|
|
4766
4776
|
] })
|
|
4767
4777
|
}
|
|
4768
4778
|
)
|
|
@@ -4773,7 +4783,7 @@ function ReviewMergeRequestCard({
|
|
|
4773
4783
|
}
|
|
4774
4784
|
|
|
4775
4785
|
// src/components/merge-requests/ReviewMergeRequestCarousel.tsx
|
|
4776
|
-
var
|
|
4786
|
+
var import_jsx_runtime41 = require("react/jsx-runtime");
|
|
4777
4787
|
function ReviewMergeRequestCarousel({
|
|
4778
4788
|
mergeRequests,
|
|
4779
4789
|
creatorStatsById,
|
|
@@ -4795,8 +4805,8 @@ function ReviewMergeRequestCarousel({
|
|
|
4795
4805
|
const snapInterval = cardWidth + gap;
|
|
4796
4806
|
const dotColor = theme.scheme === "dark" ? "#FFFFFF" : "#000000";
|
|
4797
4807
|
if (mergeRequests.length === 0) return null;
|
|
4798
|
-
return /* @__PURE__ */ (0,
|
|
4799
|
-
/* @__PURE__ */ (0,
|
|
4808
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(import_react_native38.View, { style: [{ marginHorizontal: -theme.spacing.lg }, style], children: [
|
|
4809
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
4800
4810
|
import_react_native38.FlatList,
|
|
4801
4811
|
{
|
|
4802
4812
|
horizontal: true,
|
|
@@ -4804,13 +4814,13 @@ function ReviewMergeRequestCarousel({
|
|
|
4804
4814
|
keyExtractor: (mr) => mr.id,
|
|
4805
4815
|
showsHorizontalScrollIndicator: false,
|
|
4806
4816
|
contentContainerStyle: { paddingHorizontal: theme.spacing.lg, paddingVertical: theme.spacing.sm },
|
|
4807
|
-
ItemSeparatorComponent: () => /* @__PURE__ */ (0,
|
|
4817
|
+
ItemSeparatorComponent: () => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_react_native38.View, { style: { width: gap } }),
|
|
4808
4818
|
snapToAlignment: "start",
|
|
4809
4819
|
decelerationRate: "fast",
|
|
4810
4820
|
snapToInterval: snapInterval,
|
|
4811
4821
|
disableIntervalMomentum: true,
|
|
4812
4822
|
style: { paddingRight: peekAmount },
|
|
4813
|
-
ListFooterComponent: /* @__PURE__ */ (0,
|
|
4823
|
+
ListFooterComponent: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_react_native38.View, { style: { width: peekAmount } }),
|
|
4814
4824
|
onScroll: import_react_native38.Animated.event([{ nativeEvent: { contentOffset: { x: carouselScrollX } } }], {
|
|
4815
4825
|
useNativeDriver: false
|
|
4816
4826
|
}),
|
|
@@ -4822,7 +4832,7 @@ function ReviewMergeRequestCarousel({
|
|
|
4822
4832
|
const isProcessing = Boolean(processingMrId && processingMrId === item.id);
|
|
4823
4833
|
const isAnyProcessing = Boolean(processingMrId);
|
|
4824
4834
|
const isTestingThis = Boolean(testingMrId && testingMrId === item.id);
|
|
4825
|
-
return /* @__PURE__ */ (0,
|
|
4835
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_react_native38.View, { style: { width: cardWidth }, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
4826
4836
|
ReviewMergeRequestCard,
|
|
4827
4837
|
{
|
|
4828
4838
|
mr: item,
|
|
@@ -4843,7 +4853,7 @@ function ReviewMergeRequestCarousel({
|
|
|
4843
4853
|
}
|
|
4844
4854
|
}
|
|
4845
4855
|
),
|
|
4846
|
-
mergeRequests.length >= 1 ? /* @__PURE__ */ (0,
|
|
4856
|
+
mergeRequests.length >= 1 ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_react_native38.View, { style: { flexDirection: "row", justifyContent: "center", columnGap: 8, marginTop: theme.spacing.md }, children: mergeRequests.map((mr, index) => {
|
|
4847
4857
|
const inputRange = [(index - 1) * snapInterval, index * snapInterval, (index + 1) * snapInterval];
|
|
4848
4858
|
const scale = carouselScrollX.interpolate({
|
|
4849
4859
|
inputRange,
|
|
@@ -4855,7 +4865,7 @@ function ReviewMergeRequestCarousel({
|
|
|
4855
4865
|
outputRange: [0.4, 1, 0.4],
|
|
4856
4866
|
extrapolate: "clamp"
|
|
4857
4867
|
});
|
|
4858
|
-
return /* @__PURE__ */ (0,
|
|
4868
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
4859
4869
|
import_react_native38.Animated.View,
|
|
4860
4870
|
{
|
|
4861
4871
|
style: {
|
|
@@ -4874,7 +4884,7 @@ function ReviewMergeRequestCarousel({
|
|
|
4874
4884
|
}
|
|
4875
4885
|
|
|
4876
4886
|
// src/studio/ui/preview-panel/PreviewCollaborateSection.tsx
|
|
4877
|
-
var
|
|
4887
|
+
var import_jsx_runtime42 = require("react/jsx-runtime");
|
|
4878
4888
|
function PreviewCollaborateSection({
|
|
4879
4889
|
canSubmitMergeRequest,
|
|
4880
4890
|
incomingMergeRequests,
|
|
@@ -4894,9 +4904,9 @@ function PreviewCollaborateSection({
|
|
|
4894
4904
|
const hasSection = canSubmitMergeRequest || incomingMergeRequests.length > 0 || outgoingMergeRequests.length > 0;
|
|
4895
4905
|
if (!hasSection) return null;
|
|
4896
4906
|
const showActionsSubtitle = canSubmitMergeRequest && onSubmitMergeRequest || onTestMr && incomingMergeRequests.length > 0;
|
|
4897
|
-
return /* @__PURE__ */ (0,
|
|
4898
|
-
/* @__PURE__ */ (0,
|
|
4899
|
-
showActionsSubtitle ? /* @__PURE__ */ (0,
|
|
4907
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_jsx_runtime42.Fragment, { children: [
|
|
4908
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(SectionTitle, { marginTop: theme.spacing.xl, children: "Collaborate" }),
|
|
4909
|
+
showActionsSubtitle ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
4900
4910
|
Text,
|
|
4901
4911
|
{
|
|
4902
4912
|
style: {
|
|
@@ -4911,7 +4921,7 @@ function PreviewCollaborateSection({
|
|
|
4911
4921
|
children: "Actions"
|
|
4912
4922
|
}
|
|
4913
4923
|
) : null,
|
|
4914
|
-
canSubmitMergeRequest && onSubmitMergeRequest ? /* @__PURE__ */ (0,
|
|
4924
|
+
canSubmitMergeRequest && onSubmitMergeRequest ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
4915
4925
|
PressableCardRow,
|
|
4916
4926
|
{
|
|
4917
4927
|
accessibilityLabel: "Submit merge request",
|
|
@@ -4942,7 +4952,7 @@ function PreviewCollaborateSection({
|
|
|
4942
4952
|
borderColor: withAlpha("#03DAC6", 0.2),
|
|
4943
4953
|
marginBottom: theme.spacing.sm
|
|
4944
4954
|
},
|
|
4945
|
-
left: /* @__PURE__ */ (0,
|
|
4955
|
+
left: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
4946
4956
|
import_react_native39.View,
|
|
4947
4957
|
{
|
|
4948
4958
|
style: {
|
|
@@ -4954,15 +4964,15 @@ function PreviewCollaborateSection({
|
|
|
4954
4964
|
backgroundColor: withAlpha("#03DAC6", 0.1),
|
|
4955
4965
|
marginRight: theme.spacing.lg
|
|
4956
4966
|
},
|
|
4957
|
-
children: submittingMr ? /* @__PURE__ */ (0,
|
|
4967
|
+
children: submittingMr ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_react_native39.ActivityIndicator, { color: "#03DAC6", size: "small" }) : /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(MergeIcon, { width: 20, height: 20, color: "#03DAC6" })
|
|
4958
4968
|
}
|
|
4959
4969
|
),
|
|
4960
|
-
title: /* @__PURE__ */ (0,
|
|
4961
|
-
subtitle: /* @__PURE__ */ (0,
|
|
4962
|
-
right: /* @__PURE__ */ (0,
|
|
4970
|
+
title: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { style: { color: theme.colors.text, fontSize: 16, lineHeight: 20, fontWeight: theme.typography.fontWeight.semibold }, children: "Submit your new changes" }),
|
|
4971
|
+
subtitle: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { style: { color: theme.colors.textMuted, fontSize: 12, lineHeight: 16, marginTop: 2 }, children: "Ask to merge this remix to the original app" }),
|
|
4972
|
+
right: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_lucide_react_native9.Send, { size: 16, color: "#03DAC6" })
|
|
4963
4973
|
}
|
|
4964
4974
|
) : null,
|
|
4965
|
-
onTestMr && incomingMergeRequests.length > 0 ? /* @__PURE__ */ (0,
|
|
4975
|
+
onTestMr && incomingMergeRequests.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
4966
4976
|
ReviewMergeRequestCarousel,
|
|
4967
4977
|
{
|
|
4968
4978
|
mergeRequests: incomingMergeRequests,
|
|
@@ -4975,8 +4985,8 @@ function PreviewCollaborateSection({
|
|
|
4975
4985
|
onTest: (mr) => onTestMr ? onTestMr(mr) : void 0
|
|
4976
4986
|
}
|
|
4977
4987
|
) : null,
|
|
4978
|
-
outgoingMergeRequests.length > 0 ? /* @__PURE__ */ (0,
|
|
4979
|
-
/* @__PURE__ */ (0,
|
|
4988
|
+
outgoingMergeRequests.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_jsx_runtime42.Fragment, { children: [
|
|
4989
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
4980
4990
|
Text,
|
|
4981
4991
|
{
|
|
4982
4992
|
style: {
|
|
@@ -4992,7 +5002,7 @@ function PreviewCollaborateSection({
|
|
|
4992
5002
|
children: "History"
|
|
4993
5003
|
}
|
|
4994
5004
|
),
|
|
4995
|
-
outgoingMergeRequests.map((mr) => /* @__PURE__ */ (0,
|
|
5005
|
+
outgoingMergeRequests.map((mr) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_react_native39.View, { style: { marginBottom: theme.spacing.sm }, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(MergeRequestStatusCard, { mergeRequest: toMergeRequestSummary(mr) }) }, mr.id))
|
|
4996
5006
|
] }) : null
|
|
4997
5007
|
] });
|
|
4998
5008
|
}
|
|
@@ -5283,7 +5293,7 @@ function usePreviewPanelData(params) {
|
|
|
5283
5293
|
}
|
|
5284
5294
|
|
|
5285
5295
|
// src/studio/ui/PreviewPanel.tsx
|
|
5286
|
-
var
|
|
5296
|
+
var import_jsx_runtime43 = require("react/jsx-runtime");
|
|
5287
5297
|
function PreviewPanel({
|
|
5288
5298
|
app,
|
|
5289
5299
|
loading,
|
|
@@ -5314,16 +5324,16 @@ function PreviewPanel({
|
|
|
5314
5324
|
onOpenComments,
|
|
5315
5325
|
commentCountOverride
|
|
5316
5326
|
});
|
|
5317
|
-
const header = /* @__PURE__ */ (0,
|
|
5327
|
+
const header = /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(PreviewPanelHeader, { isOwner, onClose, onNavigateHome, onGoToChat });
|
|
5318
5328
|
if (loading || !app) {
|
|
5319
|
-
return /* @__PURE__ */ (0,
|
|
5320
|
-
/* @__PURE__ */ (0,
|
|
5321
|
-
/* @__PURE__ */ (0,
|
|
5322
|
-
/* @__PURE__ */ (0,
|
|
5329
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(PreviewPage, { header, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_react_native40.View, { style: { flex: 1, justifyContent: "center", alignItems: "center", padding: 24 }, children: [
|
|
5330
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_react_native40.ActivityIndicator, {}),
|
|
5331
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_react_native40.View, { style: { height: 12 } }),
|
|
5332
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { variant: "bodyMuted", children: "Loading app\u2026" })
|
|
5323
5333
|
] }) });
|
|
5324
5334
|
}
|
|
5325
|
-
return /* @__PURE__ */ (0,
|
|
5326
|
-
/* @__PURE__ */ (0,
|
|
5335
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(PreviewPage, { header, children: [
|
|
5336
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
5327
5337
|
PreviewHeroSection,
|
|
5328
5338
|
{
|
|
5329
5339
|
appStatus: app.status,
|
|
@@ -5341,8 +5351,8 @@ function PreviewPanel({
|
|
|
5341
5351
|
}
|
|
5342
5352
|
}
|
|
5343
5353
|
),
|
|
5344
|
-
/* @__PURE__ */ (0,
|
|
5345
|
-
/* @__PURE__ */ (0,
|
|
5354
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(PreviewMetaSection, { app, isOwner, creator, downloadsCount: insights.downloads }),
|
|
5355
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
5346
5356
|
PreviewCustomizeSection,
|
|
5347
5357
|
{
|
|
5348
5358
|
app,
|
|
@@ -5353,7 +5363,7 @@ function PreviewPanel({
|
|
|
5353
5363
|
onStartDraw
|
|
5354
5364
|
}
|
|
5355
5365
|
),
|
|
5356
|
-
/* @__PURE__ */ (0,
|
|
5366
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
5357
5367
|
PreviewCollaborateSection,
|
|
5358
5368
|
{
|
|
5359
5369
|
canSubmitMergeRequest,
|
|
@@ -5389,7 +5399,7 @@ var import_bottom_sheet5 = require("@gorhom/bottom-sheet");
|
|
|
5389
5399
|
// src/components/chat/ChatMessageBubble.tsx
|
|
5390
5400
|
var import_react_native41 = require("react-native");
|
|
5391
5401
|
var import_lucide_react_native10 = require("lucide-react-native");
|
|
5392
|
-
var
|
|
5402
|
+
var import_jsx_runtime44 = require("react/jsx-runtime");
|
|
5393
5403
|
function ChatMessageBubble({ message, renderContent, style }) {
|
|
5394
5404
|
var _a, _b;
|
|
5395
5405
|
const theme = useTheme();
|
|
@@ -5403,7 +5413,7 @@ function ChatMessageBubble({ message, renderContent, style }) {
|
|
|
5403
5413
|
const bubbleVariant = isHuman ? "surface" : "surfaceRaised";
|
|
5404
5414
|
const cornerStyle = isHuman ? { borderTopRightRadius: 0 } : { borderTopLeftRadius: 0 };
|
|
5405
5415
|
const bodyColor = metaStatus === "success" ? theme.colors.success : metaStatus === "error" ? theme.colors.danger : void 0;
|
|
5406
|
-
return /* @__PURE__ */ (0,
|
|
5416
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_react_native41.View, { style: [align, style], children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
5407
5417
|
Surface,
|
|
5408
5418
|
{
|
|
5409
5419
|
variant: bubbleVariant,
|
|
@@ -5418,10 +5428,10 @@ function ChatMessageBubble({ message, renderContent, style }) {
|
|
|
5418
5428
|
},
|
|
5419
5429
|
cornerStyle
|
|
5420
5430
|
],
|
|
5421
|
-
children: /* @__PURE__ */ (0,
|
|
5422
|
-
isMergeCompleted ? /* @__PURE__ */ (0,
|
|
5423
|
-
isMergeApproved ? /* @__PURE__ */ (0,
|
|
5424
|
-
/* @__PURE__ */ (0,
|
|
5431
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_react_native41.View, { style: { flexDirection: "row", alignItems: "center" }, children: [
|
|
5432
|
+
isMergeCompleted ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_lucide_react_native10.CheckCheck, { size: 16, color: theme.colors.success, style: { marginRight: theme.spacing.sm } }) : null,
|
|
5433
|
+
isMergeApproved ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_lucide_react_native10.GitMerge, { size: 16, color: theme.colors.text, style: { marginRight: theme.spacing.sm } }) : null,
|
|
5434
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_react_native41.View, { style: { flexShrink: 1, minWidth: 0 }, children: renderContent ? renderContent(message) : /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(MarkdownText, { markdown: message.content, variant: "chat", bodyColor }) })
|
|
5425
5435
|
] })
|
|
5426
5436
|
}
|
|
5427
5437
|
) });
|
|
@@ -5430,7 +5440,7 @@ function ChatMessageBubble({ message, renderContent, style }) {
|
|
|
5430
5440
|
// src/components/chat/TypingIndicator.tsx
|
|
5431
5441
|
var React31 = __toESM(require("react"));
|
|
5432
5442
|
var import_react_native42 = require("react-native");
|
|
5433
|
-
var
|
|
5443
|
+
var import_jsx_runtime45 = require("react/jsx-runtime");
|
|
5434
5444
|
function TypingIndicator({ style }) {
|
|
5435
5445
|
const theme = useTheme();
|
|
5436
5446
|
const dotColor = theme.colors.textSubtle;
|
|
@@ -5453,7 +5463,7 @@ function TypingIndicator({ style }) {
|
|
|
5453
5463
|
loops.forEach((l) => l.stop());
|
|
5454
5464
|
};
|
|
5455
5465
|
}, [anims]);
|
|
5456
|
-
return /* @__PURE__ */ (0,
|
|
5466
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_react_native42.View, { style: [{ flexDirection: "row", alignItems: "center" }, style], children: anims.map((a, i) => /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
5457
5467
|
import_react_native42.Animated.View,
|
|
5458
5468
|
{
|
|
5459
5469
|
style: {
|
|
@@ -5471,7 +5481,7 @@ function TypingIndicator({ style }) {
|
|
|
5471
5481
|
}
|
|
5472
5482
|
|
|
5473
5483
|
// src/components/chat/ChatMessageList.tsx
|
|
5474
|
-
var
|
|
5484
|
+
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
5475
5485
|
var ChatMessageList = React32.forwardRef(
|
|
5476
5486
|
({
|
|
5477
5487
|
messages,
|
|
@@ -5530,7 +5540,7 @@ var ChatMessageList = React32.forwardRef(
|
|
|
5530
5540
|
}
|
|
5531
5541
|
return void 0;
|
|
5532
5542
|
}, [showTypingIndicator, scrollToBottom]);
|
|
5533
|
-
return /* @__PURE__ */ (0,
|
|
5543
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
5534
5544
|
import_bottom_sheet5.BottomSheetFlatList,
|
|
5535
5545
|
{
|
|
5536
5546
|
ref: listRef,
|
|
@@ -5547,8 +5557,8 @@ var ChatMessageList = React32.forwardRef(
|
|
|
5547
5557
|
},
|
|
5548
5558
|
contentStyle
|
|
5549
5559
|
],
|
|
5550
|
-
renderItem: ({ item, index }) => /* @__PURE__ */ (0,
|
|
5551
|
-
ListFooterComponent: showTypingIndicator ? /* @__PURE__ */ (0,
|
|
5560
|
+
renderItem: ({ item, index }) => /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_react_native43.View, { style: { marginTop: index === 0 ? 0 : theme.spacing.sm }, children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(ChatMessageBubble, { message: item, renderContent: renderMessageContent }) }),
|
|
5561
|
+
ListFooterComponent: showTypingIndicator ? /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_react_native43.View, { style: { marginTop: theme.spacing.sm, alignSelf: "flex-start", paddingHorizontal: theme.spacing.lg }, children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(TypingIndicator, {}) }) : null,
|
|
5552
5562
|
maintainVisibleContentPosition: { minIndexForVisible: 0, autoscrollToTopThreshold: nearBottomThreshold }
|
|
5553
5563
|
}
|
|
5554
5564
|
);
|
|
@@ -5557,7 +5567,7 @@ var ChatMessageList = React32.forwardRef(
|
|
|
5557
5567
|
ChatMessageList.displayName = "ChatMessageList";
|
|
5558
5568
|
|
|
5559
5569
|
// src/components/chat/ChatPage.tsx
|
|
5560
|
-
var
|
|
5570
|
+
var import_jsx_runtime47 = require("react/jsx-runtime");
|
|
5561
5571
|
function ChatPage({
|
|
5562
5572
|
header,
|
|
5563
5573
|
messages,
|
|
@@ -5572,11 +5582,11 @@ function ChatPage({
|
|
|
5572
5582
|
}) {
|
|
5573
5583
|
const theme = useTheme();
|
|
5574
5584
|
const [composerHeight, setComposerHeight] = React33.useState(0);
|
|
5575
|
-
return /* @__PURE__ */ (0,
|
|
5576
|
-
header ? /* @__PURE__ */ (0,
|
|
5577
|
-
topBanner ? /* @__PURE__ */ (0,
|
|
5578
|
-
/* @__PURE__ */ (0,
|
|
5579
|
-
/* @__PURE__ */ (0,
|
|
5585
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(import_react_native44.View, { style: [{ flex: 1 }, style], children: [
|
|
5586
|
+
header ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_react_native44.View, { children: header }) : null,
|
|
5587
|
+
topBanner ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_react_native44.View, { style: { paddingHorizontal: theme.spacing.lg, paddingTop: theme.spacing.sm }, children: topBanner }) : null,
|
|
5588
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(import_react_native44.View, { style: { flex: 1 }, children: [
|
|
5589
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
5580
5590
|
ChatMessageList,
|
|
5581
5591
|
{
|
|
5582
5592
|
ref: listRef,
|
|
@@ -5589,7 +5599,7 @@ function ChatPage({
|
|
|
5589
5599
|
),
|
|
5590
5600
|
overlay
|
|
5591
5601
|
] }),
|
|
5592
|
-
/* @__PURE__ */ (0,
|
|
5602
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
5593
5603
|
ChatComposer,
|
|
5594
5604
|
{
|
|
5595
5605
|
...composer,
|
|
@@ -5604,7 +5614,7 @@ function ChatPage({
|
|
|
5604
5614
|
var React34 = __toESM(require("react"));
|
|
5605
5615
|
var import_react_native45 = require("react-native");
|
|
5606
5616
|
var import_react_native_reanimated2 = __toESM(require("react-native-reanimated"));
|
|
5607
|
-
var
|
|
5617
|
+
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
5608
5618
|
function ScrollToBottomButton({ visible, onPress, children, style }) {
|
|
5609
5619
|
const theme = useTheme();
|
|
5610
5620
|
const progress = (0, import_react_native_reanimated2.useSharedValue)(visible ? 1 : 0);
|
|
@@ -5618,7 +5628,7 @@ function ScrollToBottomButton({ visible, onPress, children, style }) {
|
|
|
5618
5628
|
}));
|
|
5619
5629
|
const bg = theme.scheme === "dark" ? "rgba(39,39,42,0.9)" : "rgba(244,244,245,0.95)";
|
|
5620
5630
|
const border = theme.scheme === "dark" ? withAlpha("#FFFFFF", 0.12) : withAlpha("#000000", 0.08);
|
|
5621
|
-
return /* @__PURE__ */ (0,
|
|
5631
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
5622
5632
|
import_react_native_reanimated2.default.View,
|
|
5623
5633
|
{
|
|
5624
5634
|
pointerEvents: visible ? "auto" : "none",
|
|
@@ -5632,7 +5642,7 @@ function ScrollToBottomButton({ visible, onPress, children, style }) {
|
|
|
5632
5642
|
style,
|
|
5633
5643
|
animStyle
|
|
5634
5644
|
],
|
|
5635
|
-
children: /* @__PURE__ */ (0,
|
|
5645
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
5636
5646
|
import_react_native45.View,
|
|
5637
5647
|
{
|
|
5638
5648
|
style: {
|
|
@@ -5651,7 +5661,7 @@ function ScrollToBottomButton({ visible, onPress, children, style }) {
|
|
|
5651
5661
|
elevation: 5,
|
|
5652
5662
|
opacity: pressed ? 0.85 : 1
|
|
5653
5663
|
},
|
|
5654
|
-
children: /* @__PURE__ */ (0,
|
|
5664
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
5655
5665
|
import_react_native45.Pressable,
|
|
5656
5666
|
{
|
|
5657
5667
|
onPress,
|
|
@@ -5670,7 +5680,7 @@ function ScrollToBottomButton({ visible, onPress, children, style }) {
|
|
|
5670
5680
|
|
|
5671
5681
|
// src/components/chat/ChatHeader.tsx
|
|
5672
5682
|
var import_react_native46 = require("react-native");
|
|
5673
|
-
var
|
|
5683
|
+
var import_jsx_runtime49 = require("react/jsx-runtime");
|
|
5674
5684
|
function ChatHeader({ left, right, center, style }) {
|
|
5675
5685
|
const flattenedStyle = import_react_native46.StyleSheet.flatten([
|
|
5676
5686
|
{
|
|
@@ -5678,7 +5688,7 @@ function ChatHeader({ left, right, center, style }) {
|
|
|
5678
5688
|
},
|
|
5679
5689
|
style
|
|
5680
5690
|
]);
|
|
5681
|
-
return /* @__PURE__ */ (0,
|
|
5691
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
5682
5692
|
StudioSheetHeader,
|
|
5683
5693
|
{
|
|
5684
5694
|
left,
|
|
@@ -5691,12 +5701,12 @@ function ChatHeader({ left, right, center, style }) {
|
|
|
5691
5701
|
|
|
5692
5702
|
// src/components/chat/ForkNoticeBanner.tsx
|
|
5693
5703
|
var import_react_native47 = require("react-native");
|
|
5694
|
-
var
|
|
5704
|
+
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
5695
5705
|
function ForkNoticeBanner({ isOwner = true, title, description, style }) {
|
|
5696
5706
|
const theme = useTheme();
|
|
5697
5707
|
const resolvedTitle = title ?? (isOwner ? "Remixed app" : "Remix app");
|
|
5698
5708
|
const resolvedDescription = description ?? (isOwner ? "Any changes you make will be a remix of the original app. You can view the edited version in the Remix tab in your apps page." : "Once you make edits, this remixed version will appear on your Remixed apps page.");
|
|
5699
|
-
return /* @__PURE__ */ (0,
|
|
5709
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
5700
5710
|
Card,
|
|
5701
5711
|
{
|
|
5702
5712
|
variant: "surfaceRaised",
|
|
@@ -5711,8 +5721,8 @@ function ForkNoticeBanner({ isOwner = true, title, description, style }) {
|
|
|
5711
5721
|
},
|
|
5712
5722
|
style
|
|
5713
5723
|
],
|
|
5714
|
-
children: /* @__PURE__ */ (0,
|
|
5715
|
-
/* @__PURE__ */ (0,
|
|
5724
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(import_react_native47.View, { style: { minWidth: 0 }, children: [
|
|
5725
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
5716
5726
|
Text,
|
|
5717
5727
|
{
|
|
5718
5728
|
style: {
|
|
@@ -5726,7 +5736,7 @@ function ForkNoticeBanner({ isOwner = true, title, description, style }) {
|
|
|
5726
5736
|
children: resolvedTitle
|
|
5727
5737
|
}
|
|
5728
5738
|
),
|
|
5729
|
-
/* @__PURE__ */ (0,
|
|
5739
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
5730
5740
|
Text,
|
|
5731
5741
|
{
|
|
5732
5742
|
style: {
|
|
@@ -5744,7 +5754,7 @@ function ForkNoticeBanner({ isOwner = true, title, description, style }) {
|
|
|
5744
5754
|
}
|
|
5745
5755
|
|
|
5746
5756
|
// src/studio/ui/ChatPanel.tsx
|
|
5747
|
-
var
|
|
5757
|
+
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
5748
5758
|
function ChatPanel({
|
|
5749
5759
|
title = "Chat",
|
|
5750
5760
|
autoFocusComposer = false,
|
|
@@ -5782,21 +5792,21 @@ function ChatPanel({
|
|
|
5782
5792
|
var _a;
|
|
5783
5793
|
(_a = listRef.current) == null ? void 0 : _a.scrollToBottom({ animated: true });
|
|
5784
5794
|
}, []);
|
|
5785
|
-
const header = /* @__PURE__ */ (0,
|
|
5795
|
+
const header = /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
5786
5796
|
ChatHeader,
|
|
5787
5797
|
{
|
|
5788
|
-
left: /* @__PURE__ */ (0,
|
|
5789
|
-
/* @__PURE__ */ (0,
|
|
5790
|
-
onNavigateHome ? /* @__PURE__ */ (0,
|
|
5798
|
+
left: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_react_native48.View, { style: { flexDirection: "row", alignItems: "center" }, children: [
|
|
5799
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(StudioSheetHeaderIconButton, { onPress: onBack, accessibilityLabel: "Back", style: { marginRight: 8 }, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(IconBack, { size: 20, colorToken: "floatingContent" }) }),
|
|
5800
|
+
onNavigateHome ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(StudioSheetHeaderIconButton, { onPress: onNavigateHome, accessibilityLabel: "Home", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(IconHome, { size: 20, colorToken: "floatingContent" }) }) : null
|
|
5791
5801
|
] }),
|
|
5792
|
-
right: /* @__PURE__ */ (0,
|
|
5793
|
-
onStartDraw ? /* @__PURE__ */ (0,
|
|
5794
|
-
/* @__PURE__ */ (0,
|
|
5802
|
+
right: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_react_native48.View, { style: { flexDirection: "row", alignItems: "center" }, children: [
|
|
5803
|
+
onStartDraw ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(StudioSheetHeaderIconButton, { onPress: onStartDraw, accessibilityLabel: "Draw", intent: "danger", style: { marginRight: 8 }, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(IconDraw, { size: 20, colorToken: "onDanger" }) }) : null,
|
|
5804
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(StudioSheetHeaderIconButton, { onPress: onClose, accessibilityLabel: "Close", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(IconClose, { size: 20, colorToken: "floatingContent" }) })
|
|
5795
5805
|
] }),
|
|
5796
5806
|
center: null
|
|
5797
5807
|
}
|
|
5798
5808
|
);
|
|
5799
|
-
const topBanner = shouldForkOnEdit ? /* @__PURE__ */ (0,
|
|
5809
|
+
const topBanner = shouldForkOnEdit ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
5800
5810
|
ForkNoticeBanner,
|
|
5801
5811
|
{
|
|
5802
5812
|
isOwner: !shouldForkOnEdit,
|
|
@@ -5805,17 +5815,17 @@ function ChatPanel({
|
|
|
5805
5815
|
) : null;
|
|
5806
5816
|
const showMessagesLoading = Boolean(loading) && messages.length === 0 || forking;
|
|
5807
5817
|
if (showMessagesLoading) {
|
|
5808
|
-
return /* @__PURE__ */ (0,
|
|
5809
|
-
/* @__PURE__ */ (0,
|
|
5810
|
-
topBanner ? /* @__PURE__ */ (0,
|
|
5811
|
-
/* @__PURE__ */ (0,
|
|
5812
|
-
/* @__PURE__ */ (0,
|
|
5813
|
-
/* @__PURE__ */ (0,
|
|
5814
|
-
/* @__PURE__ */ (0,
|
|
5818
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_react_native48.View, { style: { flex: 1 }, children: [
|
|
5819
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_native48.View, { children: header }),
|
|
5820
|
+
topBanner ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_native48.View, { style: { paddingHorizontal: 16, paddingTop: 8 }, children: topBanner }) : null,
|
|
5821
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_react_native48.View, { style: { flex: 1, alignItems: "center", justifyContent: "center", paddingHorizontal: 24, paddingVertical: 12 }, children: [
|
|
5822
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_native48.ActivityIndicator, {}),
|
|
5823
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_native48.View, { style: { height: 12 } }),
|
|
5824
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Text, { variant: "bodyMuted", children: forking ? "Creating your copy\u2026" : "Loading messages\u2026" })
|
|
5815
5825
|
] })
|
|
5816
5826
|
] });
|
|
5817
5827
|
}
|
|
5818
|
-
return /* @__PURE__ */ (0,
|
|
5828
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
5819
5829
|
ChatPage,
|
|
5820
5830
|
{
|
|
5821
5831
|
header,
|
|
@@ -5824,13 +5834,13 @@ function ChatPanel({
|
|
|
5824
5834
|
topBanner,
|
|
5825
5835
|
listRef,
|
|
5826
5836
|
onNearBottomChange: setNearBottom,
|
|
5827
|
-
overlay: /* @__PURE__ */ (0,
|
|
5837
|
+
overlay: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
5828
5838
|
ScrollToBottomButton,
|
|
5829
5839
|
{
|
|
5830
5840
|
visible: !nearBottom,
|
|
5831
5841
|
onPress: handleScrollToBottom,
|
|
5832
5842
|
style: { bottom: 80 },
|
|
5833
|
-
children: /* @__PURE__ */ (0,
|
|
5843
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(IconArrowDown, { size: 20, colorToken: "floatingContent" })
|
|
5834
5844
|
}
|
|
5835
5845
|
),
|
|
5836
5846
|
composer: {
|
|
@@ -5853,7 +5863,7 @@ var import_react_native50 = require("react-native");
|
|
|
5853
5863
|
|
|
5854
5864
|
// src/components/primitives/Modal.tsx
|
|
5855
5865
|
var import_react_native49 = require("react-native");
|
|
5856
|
-
var
|
|
5866
|
+
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
5857
5867
|
function Modal({
|
|
5858
5868
|
visible,
|
|
5859
5869
|
onRequestClose,
|
|
@@ -5862,15 +5872,15 @@ function Modal({
|
|
|
5862
5872
|
contentStyle
|
|
5863
5873
|
}) {
|
|
5864
5874
|
const theme = useTheme();
|
|
5865
|
-
return /* @__PURE__ */ (0,
|
|
5875
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
5866
5876
|
import_react_native49.Modal,
|
|
5867
5877
|
{
|
|
5868
5878
|
visible,
|
|
5869
5879
|
transparent: true,
|
|
5870
5880
|
animationType: "fade",
|
|
5871
5881
|
onRequestClose,
|
|
5872
|
-
children: /* @__PURE__ */ (0,
|
|
5873
|
-
/* @__PURE__ */ (0,
|
|
5882
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_react_native49.View, { style: { flex: 1, backgroundColor: theme.colors.backdrop, justifyContent: "center", padding: theme.spacing.lg }, children: [
|
|
5883
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
5874
5884
|
import_react_native49.Pressable,
|
|
5875
5885
|
{
|
|
5876
5886
|
accessibilityRole: "button",
|
|
@@ -5878,14 +5888,14 @@ function Modal({
|
|
|
5878
5888
|
style: { position: "absolute", inset: 0 }
|
|
5879
5889
|
}
|
|
5880
5890
|
),
|
|
5881
|
-
/* @__PURE__ */ (0,
|
|
5891
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Card, { variant: "surfaceRaised", padded: true, style: [{ borderRadius: theme.radii.xl }, contentStyle], children })
|
|
5882
5892
|
] })
|
|
5883
5893
|
}
|
|
5884
5894
|
);
|
|
5885
5895
|
}
|
|
5886
5896
|
|
|
5887
5897
|
// src/components/dialogs/ConfirmMergeRequestDialog.tsx
|
|
5888
|
-
var
|
|
5898
|
+
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
5889
5899
|
function ConfirmMergeRequestDialog({
|
|
5890
5900
|
visible,
|
|
5891
5901
|
onOpenChange,
|
|
@@ -5915,7 +5925,7 @@ function ConfirmMergeRequestDialog({
|
|
|
5915
5925
|
justifyContent: "center",
|
|
5916
5926
|
alignSelf: "stretch"
|
|
5917
5927
|
};
|
|
5918
|
-
return /* @__PURE__ */ (0,
|
|
5928
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
|
|
5919
5929
|
Modal,
|
|
5920
5930
|
{
|
|
5921
5931
|
visible,
|
|
@@ -5926,7 +5936,7 @@ function ConfirmMergeRequestDialog({
|
|
|
5926
5936
|
backgroundColor: theme.colors.background
|
|
5927
5937
|
},
|
|
5928
5938
|
children: [
|
|
5929
|
-
/* @__PURE__ */ (0,
|
|
5939
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_native50.View, { children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
5930
5940
|
Text,
|
|
5931
5941
|
{
|
|
5932
5942
|
style: {
|
|
@@ -5938,8 +5948,8 @@ function ConfirmMergeRequestDialog({
|
|
|
5938
5948
|
children: "Are you sure you want to approve this merge request?"
|
|
5939
5949
|
}
|
|
5940
5950
|
) }),
|
|
5941
|
-
/* @__PURE__ */ (0,
|
|
5942
|
-
/* @__PURE__ */ (0,
|
|
5951
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_react_native50.View, { style: { marginTop: 16 }, children: [
|
|
5952
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
5943
5953
|
import_react_native50.View,
|
|
5944
5954
|
{
|
|
5945
5955
|
style: [
|
|
@@ -5949,7 +5959,7 @@ function ConfirmMergeRequestDialog({
|
|
|
5949
5959
|
opacity: canConfirm ? 1 : 0.5
|
|
5950
5960
|
}
|
|
5951
5961
|
],
|
|
5952
|
-
children: /* @__PURE__ */ (0,
|
|
5962
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
5953
5963
|
import_react_native50.Pressable,
|
|
5954
5964
|
{
|
|
5955
5965
|
accessibilityRole: "button",
|
|
@@ -5957,13 +5967,13 @@ function ConfirmMergeRequestDialog({
|
|
|
5957
5967
|
disabled: !canConfirm,
|
|
5958
5968
|
onPress: handleConfirm,
|
|
5959
5969
|
style: [fullWidthButtonBase, { flex: 1 }],
|
|
5960
|
-
children: /* @__PURE__ */ (0,
|
|
5970
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { style: { textAlign: "center", color: theme.colors.onPrimary }, children: "Approve Merge" })
|
|
5961
5971
|
}
|
|
5962
5972
|
)
|
|
5963
5973
|
}
|
|
5964
5974
|
),
|
|
5965
|
-
/* @__PURE__ */ (0,
|
|
5966
|
-
/* @__PURE__ */ (0,
|
|
5975
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_native50.View, { style: { height: 8 } }),
|
|
5976
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
5967
5977
|
import_react_native50.View,
|
|
5968
5978
|
{
|
|
5969
5979
|
style: [
|
|
@@ -5975,7 +5985,7 @@ function ConfirmMergeRequestDialog({
|
|
|
5975
5985
|
opacity: isBuilding || !mergeRequest ? 0.5 : 1
|
|
5976
5986
|
}
|
|
5977
5987
|
],
|
|
5978
|
-
children: /* @__PURE__ */ (0,
|
|
5988
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
5979
5989
|
import_react_native50.Pressable,
|
|
5980
5990
|
{
|
|
5981
5991
|
accessibilityRole: "button",
|
|
@@ -5983,13 +5993,13 @@ function ConfirmMergeRequestDialog({
|
|
|
5983
5993
|
disabled: isBuilding || !mergeRequest,
|
|
5984
5994
|
onPress: handleTestFirst,
|
|
5985
5995
|
style: [fullWidthButtonBase, { flex: 1 }],
|
|
5986
|
-
children: /* @__PURE__ */ (0,
|
|
5996
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { style: { textAlign: "center", color: theme.colors.text }, children: isBuilding ? "Preparing\u2026" : "Test edits first" })
|
|
5987
5997
|
}
|
|
5988
5998
|
)
|
|
5989
5999
|
}
|
|
5990
6000
|
),
|
|
5991
|
-
/* @__PURE__ */ (0,
|
|
5992
|
-
/* @__PURE__ */ (0,
|
|
6001
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_native50.View, { style: { height: 8 } }),
|
|
6002
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
5993
6003
|
import_react_native50.View,
|
|
5994
6004
|
{
|
|
5995
6005
|
style: [
|
|
@@ -6000,14 +6010,14 @@ function ConfirmMergeRequestDialog({
|
|
|
6000
6010
|
borderColor: theme.colors.border
|
|
6001
6011
|
}
|
|
6002
6012
|
],
|
|
6003
|
-
children: /* @__PURE__ */ (0,
|
|
6013
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
6004
6014
|
import_react_native50.Pressable,
|
|
6005
6015
|
{
|
|
6006
6016
|
accessibilityRole: "button",
|
|
6007
6017
|
accessibilityLabel: "Cancel",
|
|
6008
6018
|
onPress: close,
|
|
6009
6019
|
style: [fullWidthButtonBase, { flex: 1 }],
|
|
6010
|
-
children: /* @__PURE__ */ (0,
|
|
6020
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { style: { textAlign: "center", color: theme.colors.text }, children: "Cancel" })
|
|
6011
6021
|
}
|
|
6012
6022
|
)
|
|
6013
6023
|
}
|
|
@@ -6019,7 +6029,7 @@ function ConfirmMergeRequestDialog({
|
|
|
6019
6029
|
}
|
|
6020
6030
|
|
|
6021
6031
|
// src/studio/ui/ConfirmMergeFlow.tsx
|
|
6022
|
-
var
|
|
6032
|
+
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
6023
6033
|
function ConfirmMergeFlow({
|
|
6024
6034
|
visible,
|
|
6025
6035
|
onOpenChange,
|
|
@@ -6030,7 +6040,7 @@ function ConfirmMergeFlow({
|
|
|
6030
6040
|
onConfirm,
|
|
6031
6041
|
onTestFirst
|
|
6032
6042
|
}) {
|
|
6033
|
-
return /* @__PURE__ */ (0,
|
|
6043
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
6034
6044
|
ConfirmMergeRequestDialog,
|
|
6035
6045
|
{
|
|
6036
6046
|
visible,
|
|
@@ -6052,7 +6062,7 @@ function ConfirmMergeFlow({
|
|
|
6052
6062
|
}
|
|
6053
6063
|
|
|
6054
6064
|
// src/studio/ui/StudioOverlay.tsx
|
|
6055
|
-
var
|
|
6065
|
+
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
6056
6066
|
function StudioOverlay({
|
|
6057
6067
|
captureTargetRef,
|
|
6058
6068
|
app,
|
|
@@ -6140,14 +6150,14 @@ function StudioOverlay({
|
|
|
6140
6150
|
},
|
|
6141
6151
|
[closeSheet, onTestMr]
|
|
6142
6152
|
);
|
|
6143
|
-
return /* @__PURE__ */ (0,
|
|
6144
|
-
/* @__PURE__ */ (0,
|
|
6145
|
-
/* @__PURE__ */ (0,
|
|
6153
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(import_jsx_runtime55.Fragment, { children: [
|
|
6154
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(EdgeGlowFrame, { visible: isTesting, role: "accent", thickness: 40, intensity: 1 }),
|
|
6155
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(StudioBottomSheet, { open: sheetOpen, onOpenChange: setSheetOpen, children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
6146
6156
|
StudioSheetPager,
|
|
6147
6157
|
{
|
|
6148
6158
|
activePage,
|
|
6149
6159
|
width,
|
|
6150
|
-
preview: /* @__PURE__ */ (0,
|
|
6160
|
+
preview: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
6151
6161
|
PreviewPanel,
|
|
6152
6162
|
{
|
|
6153
6163
|
app,
|
|
@@ -6173,7 +6183,7 @@ function StudioOverlay({
|
|
|
6173
6183
|
commentCountOverride: commentsCount ?? void 0
|
|
6174
6184
|
}
|
|
6175
6185
|
),
|
|
6176
|
-
chat: /* @__PURE__ */ (0,
|
|
6186
|
+
chat: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
6177
6187
|
ChatPanel,
|
|
6178
6188
|
{
|
|
6179
6189
|
messages: chatMessages,
|
|
@@ -6196,7 +6206,7 @@ function StudioOverlay({
|
|
|
6196
6206
|
)
|
|
6197
6207
|
}
|
|
6198
6208
|
) }),
|
|
6199
|
-
/* @__PURE__ */ (0,
|
|
6209
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
6200
6210
|
FloatingDraggableButton,
|
|
6201
6211
|
{
|
|
6202
6212
|
visible: !sheetOpen && !drawing,
|
|
@@ -6204,10 +6214,10 @@ function StudioOverlay({
|
|
|
6204
6214
|
badgeCount: incomingMergeRequests.length,
|
|
6205
6215
|
onPress: toggleSheet,
|
|
6206
6216
|
isLoading: (app == null ? void 0 : app.status) === "editing",
|
|
6207
|
-
children: /* @__PURE__ */ (0,
|
|
6217
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_react_native51.View, { style: { width: 28, height: 28, alignItems: "center", justifyContent: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(MergeIcon, { width: 24, height: 24, color: theme.colors.floatingContent }) })
|
|
6208
6218
|
}
|
|
6209
6219
|
),
|
|
6210
|
-
/* @__PURE__ */ (0,
|
|
6220
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
6211
6221
|
DrawModeOverlay,
|
|
6212
6222
|
{
|
|
6213
6223
|
visible: drawing,
|
|
@@ -6216,7 +6226,7 @@ function StudioOverlay({
|
|
|
6216
6226
|
onCapture: handleDrawCapture
|
|
6217
6227
|
}
|
|
6218
6228
|
),
|
|
6219
|
-
/* @__PURE__ */ (0,
|
|
6229
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
6220
6230
|
ConfirmMergeFlow,
|
|
6221
6231
|
{
|
|
6222
6232
|
visible: Boolean(confirmMr),
|
|
@@ -6229,7 +6239,7 @@ function StudioOverlay({
|
|
|
6229
6239
|
onTestFirst: handleTestMr
|
|
6230
6240
|
}
|
|
6231
6241
|
),
|
|
6232
|
-
/* @__PURE__ */ (0,
|
|
6242
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
6233
6243
|
AppCommentsSheet,
|
|
6234
6244
|
{
|
|
6235
6245
|
appId: commentsAppId,
|
|
@@ -6242,7 +6252,7 @@ function StudioOverlay({
|
|
|
6242
6252
|
}
|
|
6243
6253
|
|
|
6244
6254
|
// src/studio/ComergeStudio.tsx
|
|
6245
|
-
var
|
|
6255
|
+
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
6246
6256
|
function ComergeStudio({
|
|
6247
6257
|
appId,
|
|
6248
6258
|
appKey = "MicroMain",
|
|
@@ -6259,7 +6269,7 @@ function ComergeStudio({
|
|
|
6259
6269
|
setPendingRuntimeTargetAppId(null);
|
|
6260
6270
|
}, [appId]);
|
|
6261
6271
|
const captureTargetRef = React38.useRef(null);
|
|
6262
|
-
return /* @__PURE__ */ (0,
|
|
6272
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(StudioBootstrap, { children: ({ userId }) => /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_bottom_sheet6.BottomSheetModalProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
6263
6273
|
ComergeStudioInner,
|
|
6264
6274
|
{
|
|
6265
6275
|
userId,
|
|
@@ -6352,9 +6362,9 @@ function ComergeStudioInner({
|
|
|
6352
6362
|
const payloadType = typeof ((_a = last.payload) == null ? void 0 : _a.type) === "string" ? String(last.payload.type) : void 0;
|
|
6353
6363
|
return payloadType !== "outcome";
|
|
6354
6364
|
}, [thread.raw]);
|
|
6355
|
-
return /* @__PURE__ */ (0,
|
|
6356
|
-
/* @__PURE__ */ (0,
|
|
6357
|
-
/* @__PURE__ */ (0,
|
|
6365
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_native52.View, { style: [{ flex: 1 }, style], children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_react_native52.View, { ref: captureTargetRef, style: { flex: 1 }, collapsable: false, children: [
|
|
6366
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(RuntimeRenderer, { appKey, bundlePath: bundle.bundlePath, renderToken: bundle.renderToken }),
|
|
6367
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
6358
6368
|
StudioOverlay,
|
|
6359
6369
|
{
|
|
6360
6370
|
captureTargetRef,
|