@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.mjs
CHANGED
|
@@ -3852,11 +3852,21 @@ import { Pressable as Pressable7, View as View21 } from "react-native";
|
|
|
3852
3852
|
import { LiquidGlassView as LiquidGlassView6, isLiquidGlassSupported as isLiquidGlassSupported6 } from "@callstack/liquid-glass";
|
|
3853
3853
|
import { Heart, MessageCircle } from "lucide-react-native";
|
|
3854
3854
|
|
|
3855
|
-
// src/
|
|
3856
|
-
|
|
3855
|
+
// src/components/icons/MergeIcon.tsx
|
|
3856
|
+
import Svg2, { Path as Path2 } from "react-native-svg";
|
|
3857
|
+
import { jsx as jsx28 } from "react/jsx-runtime";
|
|
3858
|
+
function MergeIcon({ color = "currentColor", width = 24, height = 24, ...props }) {
|
|
3859
|
+
return /* @__PURE__ */ jsx28(Svg2, { viewBox: "0 0 486 486", width, height, ...props, children: /* @__PURE__ */ jsx28(
|
|
3860
|
+
Path2,
|
|
3861
|
+
{
|
|
3862
|
+
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",
|
|
3863
|
+
fill: color
|
|
3864
|
+
}
|
|
3865
|
+
) });
|
|
3866
|
+
}
|
|
3857
3867
|
|
|
3858
3868
|
// src/components/preview/StatsBar.tsx
|
|
3859
|
-
import { jsx as
|
|
3869
|
+
import { jsx as jsx29, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
3860
3870
|
function StatsBar({
|
|
3861
3871
|
likeCount,
|
|
3862
3872
|
commentCount,
|
|
@@ -3870,7 +3880,7 @@ function StatsBar({
|
|
|
3870
3880
|
}) {
|
|
3871
3881
|
const theme = useTheme();
|
|
3872
3882
|
const statsBgColor = theme.scheme === "dark" ? "rgba(24, 24, 27, 0.5)" : "rgba(255, 255, 255, 0.5)";
|
|
3873
|
-
return /* @__PURE__ */
|
|
3883
|
+
return /* @__PURE__ */ jsx29(
|
|
3874
3884
|
View21,
|
|
3875
3885
|
{
|
|
3876
3886
|
style: [
|
|
@@ -3878,7 +3888,7 @@ function StatsBar({
|
|
|
3878
3888
|
centered && { alignItems: "center" },
|
|
3879
3889
|
style
|
|
3880
3890
|
],
|
|
3881
|
-
children: /* @__PURE__ */
|
|
3891
|
+
children: /* @__PURE__ */ jsx29(
|
|
3882
3892
|
LiquidGlassView6,
|
|
3883
3893
|
{
|
|
3884
3894
|
style: [
|
|
@@ -3888,7 +3898,7 @@ function StatsBar({
|
|
|
3888
3898
|
],
|
|
3889
3899
|
effect: "clear",
|
|
3890
3900
|
children: /* @__PURE__ */ jsxs16(View21, { style: { flexDirection: "row", alignItems: "center", justifyContent: "space-between", paddingHorizontal: 16 }, children: [
|
|
3891
|
-
/* @__PURE__ */
|
|
3901
|
+
/* @__PURE__ */ jsx29(
|
|
3892
3902
|
Pressable7,
|
|
3893
3903
|
{
|
|
3894
3904
|
disabled: !onPressLike,
|
|
@@ -3896,7 +3906,7 @@ function StatsBar({
|
|
|
3896
3906
|
hitSlop: 8,
|
|
3897
3907
|
style: { paddingVertical: 8 },
|
|
3898
3908
|
children: /* @__PURE__ */ jsxs16(View21, { style: { flexDirection: "row", alignItems: "center" }, children: [
|
|
3899
|
-
/* @__PURE__ */
|
|
3909
|
+
/* @__PURE__ */ jsx29(
|
|
3900
3910
|
Heart,
|
|
3901
3911
|
{
|
|
3902
3912
|
size: 16,
|
|
@@ -3905,8 +3915,8 @@ function StatsBar({
|
|
|
3905
3915
|
fill: isLiked ? theme.colors.danger : "transparent"
|
|
3906
3916
|
}
|
|
3907
3917
|
),
|
|
3908
|
-
/* @__PURE__ */
|
|
3909
|
-
/* @__PURE__ */
|
|
3918
|
+
/* @__PURE__ */ jsx29(View21, { style: { width: 4 } }),
|
|
3919
|
+
/* @__PURE__ */ jsx29(
|
|
3910
3920
|
Text,
|
|
3911
3921
|
{
|
|
3912
3922
|
variant: "caption",
|
|
@@ -3920,7 +3930,7 @@ function StatsBar({
|
|
|
3920
3930
|
] })
|
|
3921
3931
|
}
|
|
3922
3932
|
),
|
|
3923
|
-
/* @__PURE__ */
|
|
3933
|
+
/* @__PURE__ */ jsx29(
|
|
3924
3934
|
Pressable7,
|
|
3925
3935
|
{
|
|
3926
3936
|
disabled: !onPressComments,
|
|
@@ -3928,16 +3938,16 @@ function StatsBar({
|
|
|
3928
3938
|
hitSlop: 8,
|
|
3929
3939
|
style: { paddingVertical: 8 },
|
|
3930
3940
|
children: /* @__PURE__ */ jsxs16(View21, { style: { flexDirection: "row", alignItems: "center" }, children: [
|
|
3931
|
-
/* @__PURE__ */
|
|
3932
|
-
/* @__PURE__ */
|
|
3933
|
-
/* @__PURE__ */
|
|
3941
|
+
/* @__PURE__ */ jsx29(MessageCircle, { size: 16, strokeWidth: 2.5, color: "#FFFFFF" }),
|
|
3942
|
+
/* @__PURE__ */ jsx29(View21, { style: { width: 4 } }),
|
|
3943
|
+
/* @__PURE__ */ jsx29(Text, { variant: "caption", style: { color: "#FFFFFF", fontWeight: theme.typography.fontWeight.bold }, children: commentCount })
|
|
3934
3944
|
] })
|
|
3935
3945
|
}
|
|
3936
3946
|
),
|
|
3937
3947
|
/* @__PURE__ */ jsxs16(View21, { style: { flexDirection: "row", alignItems: "center", paddingVertical: 8 }, children: [
|
|
3938
|
-
/* @__PURE__ */
|
|
3939
|
-
/* @__PURE__ */
|
|
3940
|
-
/* @__PURE__ */
|
|
3948
|
+
/* @__PURE__ */ jsx29(View21, { style: { transform: [{ scaleY: -1 }] }, children: /* @__PURE__ */ jsx29(MergeIcon, { width: 14, height: 14, color: "#FFFFFF" }) }),
|
|
3949
|
+
/* @__PURE__ */ jsx29(View21, { style: { width: 4 } }),
|
|
3950
|
+
/* @__PURE__ */ jsx29(Text, { variant: "caption", style: { color: "#FFFFFF", fontWeight: theme.typography.fontWeight.bold }, children: forkCount })
|
|
3941
3951
|
] })
|
|
3942
3952
|
] })
|
|
3943
3953
|
}
|
|
@@ -3970,7 +3980,7 @@ var APP_STATUS_LABEL = {
|
|
|
3970
3980
|
};
|
|
3971
3981
|
|
|
3972
3982
|
// src/components/preview/PreviewStatusBadge.tsx
|
|
3973
|
-
import { jsx as
|
|
3983
|
+
import { jsx as jsx30, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
3974
3984
|
var STATUS_BG = {
|
|
3975
3985
|
ready: "#10B981",
|
|
3976
3986
|
// emerald-500
|
|
@@ -4011,15 +4021,15 @@ function PreviewStatusBadge({ status }) {
|
|
|
4011
4021
|
backgroundColor: STATUS_BG[status]
|
|
4012
4022
|
},
|
|
4013
4023
|
children: [
|
|
4014
|
-
/* @__PURE__ */
|
|
4015
|
-
/* @__PURE__ */
|
|
4024
|
+
/* @__PURE__ */ jsx30(IconComp, { size: 12, color: "#FFFFFF", style: { marginRight: 4 } }),
|
|
4025
|
+
/* @__PURE__ */ jsx30(Text, { style: { color: "#FFFFFF", fontSize: 11, lineHeight: 14 }, children: label })
|
|
4016
4026
|
]
|
|
4017
4027
|
}
|
|
4018
4028
|
);
|
|
4019
4029
|
}
|
|
4020
4030
|
|
|
4021
4031
|
// src/studio/ui/preview-panel/PreviewHeroSection.tsx
|
|
4022
|
-
import { jsx as
|
|
4032
|
+
import { jsx as jsx31 } from "react/jsx-runtime";
|
|
4023
4033
|
function PreviewHeroSection({
|
|
4024
4034
|
appStatus,
|
|
4025
4035
|
showProcessing,
|
|
@@ -4028,13 +4038,13 @@ function PreviewHeroSection({
|
|
|
4028
4038
|
onImageLoad,
|
|
4029
4039
|
stats
|
|
4030
4040
|
}) {
|
|
4031
|
-
return /* @__PURE__ */
|
|
4041
|
+
return /* @__PURE__ */ jsx31(
|
|
4032
4042
|
PreviewHeroCard,
|
|
4033
4043
|
{
|
|
4034
|
-
overlayTopLeft: showProcessing ? /* @__PURE__ */
|
|
4035
|
-
background: /* @__PURE__ */
|
|
4036
|
-
image: /* @__PURE__ */
|
|
4037
|
-
overlayBottom: /* @__PURE__ */
|
|
4044
|
+
overlayTopLeft: showProcessing ? /* @__PURE__ */ jsx31(PreviewStatusBadge, { status: appStatus }) : null,
|
|
4045
|
+
background: /* @__PURE__ */ jsx31(PreviewPlaceholder, { visible: !imageLoaded }),
|
|
4046
|
+
image: /* @__PURE__ */ jsx31(PreviewImage, { uri: imageUrl, onLoad: onImageLoad }),
|
|
4047
|
+
overlayBottom: /* @__PURE__ */ jsx31(
|
|
4038
4048
|
StatsBar,
|
|
4039
4049
|
{
|
|
4040
4050
|
likeCount: stats.likeCount,
|
|
@@ -4057,7 +4067,7 @@ import { View as View24 } from "react-native";
|
|
|
4057
4067
|
|
|
4058
4068
|
// src/components/preview/PreviewMetaRow.tsx
|
|
4059
4069
|
import { View as View23 } from "react-native";
|
|
4060
|
-
import { jsx as
|
|
4070
|
+
import { jsx as jsx32, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
4061
4071
|
function PreviewMetaRow({
|
|
4062
4072
|
avatarUri,
|
|
4063
4073
|
creatorName,
|
|
@@ -4070,9 +4080,9 @@ function PreviewMetaRow({
|
|
|
4070
4080
|
const theme = useTheme();
|
|
4071
4081
|
return /* @__PURE__ */ jsxs18(View23, { style: [{ alignSelf: "stretch" }, style], children: [
|
|
4072
4082
|
/* @__PURE__ */ jsxs18(View23, { style: { flexDirection: "row", alignItems: "center" }, children: [
|
|
4073
|
-
/* @__PURE__ */
|
|
4083
|
+
/* @__PURE__ */ jsx32(Avatar, { uri: avatarUri, name: creatorName, size: 24, style: { marginRight: theme.spacing.sm } }),
|
|
4074
4084
|
/* @__PURE__ */ jsxs18(View23, { style: { flexDirection: "row", alignItems: "center", flex: 1, minWidth: 0, marginRight: theme.spacing.sm }, children: [
|
|
4075
|
-
/* @__PURE__ */
|
|
4085
|
+
/* @__PURE__ */ jsx32(
|
|
4076
4086
|
Text,
|
|
4077
4087
|
{
|
|
4078
4088
|
numberOfLines: 1,
|
|
@@ -4086,11 +4096,11 @@ function PreviewMetaRow({
|
|
|
4086
4096
|
children: title
|
|
4087
4097
|
}
|
|
4088
4098
|
),
|
|
4089
|
-
tag ? /* @__PURE__ */
|
|
4099
|
+
tag ? /* @__PURE__ */ jsx32(View23, { style: { marginLeft: theme.spacing.sm }, children: tag }) : null
|
|
4090
4100
|
] }),
|
|
4091
|
-
rightMetric ? /* @__PURE__ */
|
|
4101
|
+
rightMetric ? /* @__PURE__ */ jsx32(View23, { children: rightMetric }) : null
|
|
4092
4102
|
] }),
|
|
4093
|
-
subtitle ? /* @__PURE__ */
|
|
4103
|
+
subtitle ? /* @__PURE__ */ jsx32(
|
|
4094
4104
|
Text,
|
|
4095
4105
|
{
|
|
4096
4106
|
numberOfLines: 2,
|
|
@@ -4133,18 +4143,18 @@ function statusDescription(status, statusError) {
|
|
|
4133
4143
|
}
|
|
4134
4144
|
|
|
4135
4145
|
// src/studio/ui/preview-panel/PreviewMetaSection.tsx
|
|
4136
|
-
import { jsx as
|
|
4146
|
+
import { jsx as jsx33, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
4137
4147
|
function PreviewMetaSection({ app, isOwner, creator, downloadsCount }) {
|
|
4138
4148
|
var _a;
|
|
4139
4149
|
const theme = useTheme();
|
|
4140
|
-
return /* @__PURE__ */
|
|
4150
|
+
return /* @__PURE__ */ jsx33(
|
|
4141
4151
|
PreviewMetaRow,
|
|
4142
4152
|
{
|
|
4143
4153
|
title: app.name,
|
|
4144
4154
|
subtitle: app.description,
|
|
4145
4155
|
avatarUri: (creator == null ? void 0 : creator.avatar) ?? null,
|
|
4146
4156
|
creatorName: (creator == null ? void 0 : creator.name) ?? null,
|
|
4147
|
-
tag: isOwner || app.forkedFromAppId ? /* @__PURE__ */
|
|
4157
|
+
tag: isOwner || app.forkedFromAppId ? /* @__PURE__ */ jsx33(View24, { style: { paddingHorizontal: 8, paddingVertical: 2, borderRadius: 999, backgroundColor: "#3700B3" }, children: /* @__PURE__ */ jsx33(Text, { variant: "caption", style: { color: "#fff", fontWeight: theme.typography.fontWeight.semibold }, children: app.forkedFromAppId ? "Remix" : "Owner" }) }) : null,
|
|
4148
4158
|
rightMetric: /* @__PURE__ */ jsxs19(
|
|
4149
4159
|
View24,
|
|
4150
4160
|
{
|
|
@@ -4157,7 +4167,7 @@ function PreviewMetaSection({ app, isOwner, creator, downloadsCount }) {
|
|
|
4157
4167
|
backgroundColor: withAlpha(theme.colors.neutral, 0.3)
|
|
4158
4168
|
},
|
|
4159
4169
|
children: [
|
|
4160
|
-
/* @__PURE__ */
|
|
4170
|
+
/* @__PURE__ */ jsx33(
|
|
4161
4171
|
Text,
|
|
4162
4172
|
{
|
|
4163
4173
|
style: {
|
|
@@ -4170,7 +4180,7 @@ function PreviewMetaSection({ app, isOwner, creator, downloadsCount }) {
|
|
|
4170
4180
|
children: formatCount(downloadsCount ?? ((_a = app.insights) == null ? void 0 : _a.totalDownloads) ?? 0)
|
|
4171
4181
|
}
|
|
4172
4182
|
),
|
|
4173
|
-
/* @__PURE__ */
|
|
4183
|
+
/* @__PURE__ */ jsx33(IconPlay, { size: 14, colorToken: "textMuted", fill: theme.colors.textMuted })
|
|
4174
4184
|
]
|
|
4175
4185
|
}
|
|
4176
4186
|
),
|
|
@@ -4184,7 +4194,7 @@ import { ActivityIndicator as ActivityIndicator4, View as View26 } from "react-n
|
|
|
4184
4194
|
|
|
4185
4195
|
// src/studio/ui/preview-panel/PressableCardRow.tsx
|
|
4186
4196
|
import { Pressable as Pressable8, View as View25 } from "react-native";
|
|
4187
|
-
import { jsx as
|
|
4197
|
+
import { jsx as jsx34, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
4188
4198
|
function PressableCardRow({
|
|
4189
4199
|
accessibilityLabel,
|
|
4190
4200
|
onPress,
|
|
@@ -4195,7 +4205,7 @@ function PressableCardRow({
|
|
|
4195
4205
|
right,
|
|
4196
4206
|
style
|
|
4197
4207
|
}) {
|
|
4198
|
-
return /* @__PURE__ */
|
|
4208
|
+
return /* @__PURE__ */ jsx34(
|
|
4199
4209
|
Pressable8,
|
|
4200
4210
|
{
|
|
4201
4211
|
accessibilityRole: "button",
|
|
@@ -4203,23 +4213,23 @@ function PressableCardRow({
|
|
|
4203
4213
|
disabled,
|
|
4204
4214
|
onPress,
|
|
4205
4215
|
style: ({ pressed }) => ({ opacity: disabled ? 0.6 : pressed ? 0.85 : 1 }),
|
|
4206
|
-
children: /* @__PURE__ */
|
|
4216
|
+
children: /* @__PURE__ */ jsx34(Card, { padded: false, border: false, style, children: /* @__PURE__ */ jsxs20(View25, { style: { flexDirection: "row", alignItems: "center" }, children: [
|
|
4207
4217
|
left,
|
|
4208
4218
|
/* @__PURE__ */ jsxs20(View25, { style: { flex: 1, minWidth: 0 }, children: [
|
|
4209
4219
|
title,
|
|
4210
4220
|
subtitle ? subtitle : null
|
|
4211
4221
|
] }),
|
|
4212
|
-
right ? /* @__PURE__ */
|
|
4222
|
+
right ? /* @__PURE__ */ jsx34(View25, { style: { marginLeft: 16 }, children: right }) : null
|
|
4213
4223
|
] }) })
|
|
4214
4224
|
}
|
|
4215
4225
|
);
|
|
4216
4226
|
}
|
|
4217
4227
|
|
|
4218
4228
|
// src/studio/ui/preview-panel/SectionTitle.tsx
|
|
4219
|
-
import { jsx as
|
|
4229
|
+
import { jsx as jsx35 } from "react/jsx-runtime";
|
|
4220
4230
|
function SectionTitle({ children, marginTop }) {
|
|
4221
4231
|
const theme = useTheme();
|
|
4222
|
-
return /* @__PURE__ */
|
|
4232
|
+
return /* @__PURE__ */ jsx35(
|
|
4223
4233
|
Text,
|
|
4224
4234
|
{
|
|
4225
4235
|
style: {
|
|
@@ -4238,7 +4248,7 @@ function SectionTitle({ children, marginTop }) {
|
|
|
4238
4248
|
}
|
|
4239
4249
|
|
|
4240
4250
|
// src/studio/ui/preview-panel/PreviewCustomizeSection.tsx
|
|
4241
|
-
import { Fragment as Fragment4, jsx as
|
|
4251
|
+
import { Fragment as Fragment4, jsx as jsx36, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
4242
4252
|
function PreviewCustomizeSection({
|
|
4243
4253
|
app,
|
|
4244
4254
|
isOwner,
|
|
@@ -4249,7 +4259,7 @@ function PreviewCustomizeSection({
|
|
|
4249
4259
|
}) {
|
|
4250
4260
|
const theme = useTheme();
|
|
4251
4261
|
return /* @__PURE__ */ jsxs21(Fragment4, { children: [
|
|
4252
|
-
/* @__PURE__ */
|
|
4262
|
+
/* @__PURE__ */ jsx36(SectionTitle, { children: "Customize" }),
|
|
4253
4263
|
showProcessing ? /* @__PURE__ */ jsxs21(
|
|
4254
4264
|
View26,
|
|
4255
4265
|
{
|
|
@@ -4264,7 +4274,7 @@ function PreviewCustomizeSection({
|
|
|
4264
4274
|
marginBottom: theme.spacing.sm
|
|
4265
4275
|
},
|
|
4266
4276
|
children: [
|
|
4267
|
-
/* @__PURE__ */
|
|
4277
|
+
/* @__PURE__ */ jsx36(
|
|
4268
4278
|
View26,
|
|
4269
4279
|
{
|
|
4270
4280
|
style: {
|
|
@@ -4276,17 +4286,17 @@ function PreviewCustomizeSection({
|
|
|
4276
4286
|
backgroundColor: withAlpha(theme.colors.warning, 0.1),
|
|
4277
4287
|
marginRight: theme.spacing.lg
|
|
4278
4288
|
},
|
|
4279
|
-
children: /* @__PURE__ */
|
|
4289
|
+
children: /* @__PURE__ */ jsx36(ActivityIndicator4, { color: theme.colors.warning, size: "small" })
|
|
4280
4290
|
}
|
|
4281
4291
|
),
|
|
4282
4292
|
/* @__PURE__ */ jsxs21(View26, { style: { flex: 1, minWidth: 0 }, children: [
|
|
4283
|
-
/* @__PURE__ */
|
|
4284
|
-
/* @__PURE__ */
|
|
4293
|
+
/* @__PURE__ */ jsx36(Text, { style: { color: theme.colors.text, fontSize: 16, lineHeight: 20, fontWeight: theme.typography.fontWeight.semibold }, children: app.status === "error" ? "Error" : "Processing" }),
|
|
4294
|
+
/* @__PURE__ */ jsx36(Text, { style: { color: theme.colors.textMuted, fontSize: 12, lineHeight: 16, marginTop: 2 }, children: statusDescription(app.status, app.statusError) })
|
|
4285
4295
|
] })
|
|
4286
4296
|
]
|
|
4287
4297
|
}
|
|
4288
4298
|
) : null,
|
|
4289
|
-
/* @__PURE__ */
|
|
4299
|
+
/* @__PURE__ */ jsx36(
|
|
4290
4300
|
PressableCardRow,
|
|
4291
4301
|
{
|
|
4292
4302
|
accessibilityLabel: isOwner ? "Edit app" : "Remix app",
|
|
@@ -4299,7 +4309,7 @@ function PreviewCustomizeSection({
|
|
|
4299
4309
|
borderColor: withAlpha(theme.colors.primary, 0.1),
|
|
4300
4310
|
marginBottom: theme.spacing.sm
|
|
4301
4311
|
},
|
|
4302
|
-
left: /* @__PURE__ */
|
|
4312
|
+
left: /* @__PURE__ */ jsx36(
|
|
4303
4313
|
View26,
|
|
4304
4314
|
{
|
|
4305
4315
|
style: {
|
|
@@ -4311,15 +4321,15 @@ function PreviewCustomizeSection({
|
|
|
4311
4321
|
backgroundColor: withAlpha(theme.colors.primary, 0.1),
|
|
4312
4322
|
marginRight: theme.spacing.lg
|
|
4313
4323
|
},
|
|
4314
|
-
children: /* @__PURE__ */
|
|
4324
|
+
children: /* @__PURE__ */ jsx36(IconChat, { size: 20, colorToken: "primary" })
|
|
4315
4325
|
}
|
|
4316
4326
|
),
|
|
4317
|
-
title: /* @__PURE__ */
|
|
4318
|
-
subtitle: /* @__PURE__ */
|
|
4319
|
-
right: /* @__PURE__ */
|
|
4327
|
+
title: /* @__PURE__ */ jsx36(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" }),
|
|
4328
|
+
subtitle: /* @__PURE__ */ jsx36(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" }),
|
|
4329
|
+
right: /* @__PURE__ */ jsx36(IconChevronRight, { size: 20, colorToken: "textMuted" })
|
|
4320
4330
|
}
|
|
4321
4331
|
),
|
|
4322
|
-
isOwner && onStartDraw ? /* @__PURE__ */
|
|
4332
|
+
isOwner && onStartDraw ? /* @__PURE__ */ jsx36(
|
|
4323
4333
|
PressableCardRow,
|
|
4324
4334
|
{
|
|
4325
4335
|
accessibilityLabel: "Draw changes",
|
|
@@ -4332,7 +4342,7 @@ function PreviewCustomizeSection({
|
|
|
4332
4342
|
borderColor: withAlpha(theme.colors.danger, 0.1),
|
|
4333
4343
|
marginBottom: theme.spacing.sm
|
|
4334
4344
|
},
|
|
4335
|
-
left: /* @__PURE__ */
|
|
4345
|
+
left: /* @__PURE__ */ jsx36(
|
|
4336
4346
|
View26,
|
|
4337
4347
|
{
|
|
4338
4348
|
style: {
|
|
@@ -4344,12 +4354,12 @@ function PreviewCustomizeSection({
|
|
|
4344
4354
|
backgroundColor: withAlpha(theme.colors.danger, 0.1),
|
|
4345
4355
|
marginRight: theme.spacing.lg
|
|
4346
4356
|
},
|
|
4347
|
-
children: /* @__PURE__ */
|
|
4357
|
+
children: /* @__PURE__ */ jsx36(IconDraw, { size: 20, colorToken: "danger" })
|
|
4348
4358
|
}
|
|
4349
4359
|
),
|
|
4350
|
-
title: /* @__PURE__ */
|
|
4351
|
-
subtitle: /* @__PURE__ */
|
|
4352
|
-
right: /* @__PURE__ */
|
|
4360
|
+
title: /* @__PURE__ */ jsx36(Text, { style: { color: theme.colors.text, fontSize: 16, lineHeight: 20, fontWeight: theme.typography.fontWeight.semibold }, children: "Draw Changes" }),
|
|
4361
|
+
subtitle: /* @__PURE__ */ jsx36(Text, { style: { color: theme.colors.textMuted, fontSize: 12, lineHeight: 16, marginTop: 2 }, children: "Annotate the app with drawings" }),
|
|
4362
|
+
right: /* @__PURE__ */ jsx36(IconChevronRight, { size: 20, colorToken: "textMuted" })
|
|
4353
4363
|
}
|
|
4354
4364
|
) : null
|
|
4355
4365
|
] });
|
|
@@ -4368,7 +4378,7 @@ import { Ban, Check as Check3, CheckCheck, ChevronDown as ChevronDown2 } from "l
|
|
|
4368
4378
|
// src/components/primitives/MarkdownText.tsx
|
|
4369
4379
|
import { Platform as Platform4, View as View27 } from "react-native";
|
|
4370
4380
|
import Markdown from "react-native-markdown-display";
|
|
4371
|
-
import { jsx as
|
|
4381
|
+
import { jsx as jsx37 } from "react/jsx-runtime";
|
|
4372
4382
|
function MarkdownText({ markdown, variant = "chat", bodyColor, style }) {
|
|
4373
4383
|
const theme = useTheme();
|
|
4374
4384
|
const isDark = theme.scheme === "dark";
|
|
@@ -4379,7 +4389,7 @@ function MarkdownText({ markdown, variant = "chat", bodyColor, style }) {
|
|
|
4379
4389
|
const codeTextColor = isDark ? "#FFFFFF" : theme.colors.text;
|
|
4380
4390
|
const paragraphBottom = variant === "mergeRequest" ? 8 : 6;
|
|
4381
4391
|
const baseLineHeight = variant === "mergeRequest" ? 22 : 20;
|
|
4382
|
-
return /* @__PURE__ */
|
|
4392
|
+
return /* @__PURE__ */ jsx37(View27, { style, children: /* @__PURE__ */ jsx37(
|
|
4383
4393
|
Markdown,
|
|
4384
4394
|
{
|
|
4385
4395
|
style: {
|
|
@@ -4459,7 +4469,7 @@ function useControlledExpansion(props) {
|
|
|
4459
4469
|
}
|
|
4460
4470
|
|
|
4461
4471
|
// src/components/merge-requests/MergeRequestStatusCard.tsx
|
|
4462
|
-
import { jsx as
|
|
4472
|
+
import { jsx as jsx38, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
4463
4473
|
function MergeRequestStatusCard({
|
|
4464
4474
|
mergeRequest,
|
|
4465
4475
|
expanded: expandedProp,
|
|
@@ -4512,7 +4522,7 @@ function MergeRequestStatusCard({
|
|
|
4512
4522
|
useNativeDriver: true
|
|
4513
4523
|
}).start();
|
|
4514
4524
|
}, [expanded, rotate]);
|
|
4515
|
-
return /* @__PURE__ */
|
|
4525
|
+
return /* @__PURE__ */ jsx38(Pressable9, { onPress: () => setExpanded(!expanded), style: ({ pressed }) => [{ opacity: pressed ? 0.95 : 1 }], children: /* @__PURE__ */ jsxs22(
|
|
4516
4526
|
Card,
|
|
4517
4527
|
{
|
|
4518
4528
|
padded: false,
|
|
@@ -4526,10 +4536,10 @@ function MergeRequestStatusCard({
|
|
|
4526
4536
|
],
|
|
4527
4537
|
children: [
|
|
4528
4538
|
/* @__PURE__ */ jsxs22(View28, { style: { flexDirection: "row", alignItems: "center", gap: theme.spacing.lg }, children: [
|
|
4529
|
-
/* @__PURE__ */
|
|
4539
|
+
/* @__PURE__ */ jsx38(View28, { style: { width: 40, height: 40, borderRadius: 999, alignItems: "center", justifyContent: "center", backgroundColor: bgColor }, children: /* @__PURE__ */ jsx38(StatusIcon, { size: 20, color: iconColor }) }),
|
|
4530
4540
|
/* @__PURE__ */ jsxs22(View28, { style: { flex: 1, minWidth: 0 }, children: [
|
|
4531
4541
|
/* @__PURE__ */ jsxs22(View28, { style: { flexDirection: "row", alignItems: "center", justifyContent: "space-between" }, children: [
|
|
4532
|
-
/* @__PURE__ */
|
|
4542
|
+
/* @__PURE__ */ jsx38(
|
|
4533
4543
|
Text,
|
|
4534
4544
|
{
|
|
4535
4545
|
style: {
|
|
@@ -4543,11 +4553,11 @@ function MergeRequestStatusCard({
|
|
|
4543
4553
|
children: statusText
|
|
4544
4554
|
}
|
|
4545
4555
|
),
|
|
4546
|
-
headerTimeAgo ? /* @__PURE__ */
|
|
4556
|
+
headerTimeAgo ? /* @__PURE__ */ jsx38(Text, { style: { fontSize: 10, lineHeight: 14, marginLeft: theme.spacing.sm, color: withAlpha(theme.colors.textMuted, 0.6) }, children: headerTimeAgo }) : null
|
|
4547
4557
|
] }),
|
|
4548
|
-
/* @__PURE__ */
|
|
4558
|
+
/* @__PURE__ */ jsx38(Text, { style: { fontSize: 12, lineHeight: 16, color: theme.colors.textMuted }, numberOfLines: 1, children: mergeRequest.title ?? "Untitled merge request" })
|
|
4549
4559
|
] }),
|
|
4550
|
-
headerRight ? /* @__PURE__ */
|
|
4560
|
+
headerRight ? /* @__PURE__ */ jsx38(View28, { children: headerRight }) : /* @__PURE__ */ jsx38(
|
|
4551
4561
|
Animated7.View,
|
|
4552
4562
|
{
|
|
4553
4563
|
style: {
|
|
@@ -4557,12 +4567,12 @@ function MergeRequestStatusCard({
|
|
|
4557
4567
|
}
|
|
4558
4568
|
]
|
|
4559
4569
|
},
|
|
4560
|
-
children: /* @__PURE__ */
|
|
4570
|
+
children: /* @__PURE__ */ jsx38(ChevronDown2, { size: 20, color: withAlpha(theme.colors.textMuted, 0.4) })
|
|
4561
4571
|
}
|
|
4562
4572
|
)
|
|
4563
4573
|
] }),
|
|
4564
4574
|
expanded ? /* @__PURE__ */ jsxs22(View28, { style: { marginTop: 16, marginLeft: 56 }, children: [
|
|
4565
|
-
/* @__PURE__ */
|
|
4575
|
+
/* @__PURE__ */ jsx38(
|
|
4566
4576
|
Text,
|
|
4567
4577
|
{
|
|
4568
4578
|
style: {
|
|
@@ -4576,7 +4586,7 @@ function MergeRequestStatusCard({
|
|
|
4576
4586
|
children: status.text
|
|
4577
4587
|
}
|
|
4578
4588
|
),
|
|
4579
|
-
createdTimeAgo ? /* @__PURE__ */
|
|
4589
|
+
createdTimeAgo ? /* @__PURE__ */ jsx38(
|
|
4580
4590
|
Text,
|
|
4581
4591
|
{
|
|
4582
4592
|
style: {
|
|
@@ -4587,8 +4597,8 @@ function MergeRequestStatusCard({
|
|
|
4587
4597
|
children: createdTimeAgo
|
|
4588
4598
|
}
|
|
4589
4599
|
) : null,
|
|
4590
|
-
/* @__PURE__ */
|
|
4591
|
-
mergeRequest.description ? /* @__PURE__ */
|
|
4600
|
+
/* @__PURE__ */ jsx38(Text, { style: { fontSize: 16, fontWeight: "600", color: textColor, marginBottom: 8 }, children: mergeRequest.title ?? "Untitled merge request" }),
|
|
4601
|
+
mergeRequest.description ? /* @__PURE__ */ jsx38(MarkdownText, { markdown: mergeRequest.description, variant: "mergeRequest" }) : null
|
|
4592
4602
|
] }) : null
|
|
4593
4603
|
]
|
|
4594
4604
|
}
|
|
@@ -4607,7 +4617,7 @@ import { Check as Check4, ChevronDown as ChevronDown3, Play as Play3, X as X3 }
|
|
|
4607
4617
|
// src/components/merge-requests/ReviewMergeRequestActionButton.tsx
|
|
4608
4618
|
import * as React25 from "react";
|
|
4609
4619
|
import { Pressable as Pressable10, View as View29 } from "react-native";
|
|
4610
|
-
import { jsx as
|
|
4620
|
+
import { jsx as jsx39 } from "react/jsx-runtime";
|
|
4611
4621
|
function ReviewMergeRequestActionButton({
|
|
4612
4622
|
accessibilityLabel,
|
|
4613
4623
|
backgroundColor,
|
|
@@ -4622,7 +4632,7 @@ function ReviewMergeRequestActionButton({
|
|
|
4622
4632
|
const paddingHorizontal = iconOnly ? 0 : 16;
|
|
4623
4633
|
const paddingVertical = iconOnly ? 0 : 8;
|
|
4624
4634
|
const opacity = disabled ? 0.5 : pressed ? 0.9 : 1;
|
|
4625
|
-
return /* @__PURE__ */
|
|
4635
|
+
return /* @__PURE__ */ jsx39(
|
|
4626
4636
|
View29,
|
|
4627
4637
|
{
|
|
4628
4638
|
style: {
|
|
@@ -4637,7 +4647,7 @@ function ReviewMergeRequestActionButton({
|
|
|
4637
4647
|
paddingVertical,
|
|
4638
4648
|
justifyContent: "center"
|
|
4639
4649
|
},
|
|
4640
|
-
children: /* @__PURE__ */
|
|
4650
|
+
children: /* @__PURE__ */ jsx39(
|
|
4641
4651
|
Pressable10,
|
|
4642
4652
|
{
|
|
4643
4653
|
accessibilityRole: "button",
|
|
@@ -4661,7 +4671,7 @@ function ReviewMergeRequestActionButton({
|
|
|
4661
4671
|
}
|
|
4662
4672
|
|
|
4663
4673
|
// src/components/merge-requests/ReviewMergeRequestCard.tsx
|
|
4664
|
-
import { jsx as
|
|
4674
|
+
import { jsx as jsx40, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
4665
4675
|
function ReviewMergeRequestCard({
|
|
4666
4676
|
mr,
|
|
4667
4677
|
index,
|
|
@@ -4685,7 +4695,7 @@ function ReviewMergeRequestCard({
|
|
|
4685
4695
|
Animated8.timing(rotate, { toValue: isExpanded ? 1 : 0, duration: 200, useNativeDriver: true }).start();
|
|
4686
4696
|
}, [isExpanded, rotate]);
|
|
4687
4697
|
const position = total > 1 ? `${index + 1}/${total}` : "Merge request";
|
|
4688
|
-
return /* @__PURE__ */
|
|
4698
|
+
return /* @__PURE__ */ jsx40(Pressable11, { onPress: onToggle, style: ({ pressed }) => ({ opacity: pressed ? 0.95 : 1 }), children: /* @__PURE__ */ jsxs23(
|
|
4689
4699
|
Card,
|
|
4690
4700
|
{
|
|
4691
4701
|
padded: false,
|
|
@@ -4699,9 +4709,9 @@ function ReviewMergeRequestCard({
|
|
|
4699
4709
|
],
|
|
4700
4710
|
children: [
|
|
4701
4711
|
/* @__PURE__ */ jsxs23(View30, { style: { flexDirection: "row", alignItems: "center", gap: 12 }, children: [
|
|
4702
|
-
/* @__PURE__ */
|
|
4712
|
+
/* @__PURE__ */ jsx40(Avatar, { size: 40, uri: (creator == null ? void 0 : creator.avatar) ?? null, name: (creator == null ? void 0 : creator.name) ?? void 0 }),
|
|
4703
4713
|
/* @__PURE__ */ jsxs23(View30, { style: { flex: 1, minWidth: 0 }, children: [
|
|
4704
|
-
/* @__PURE__ */
|
|
4714
|
+
/* @__PURE__ */ jsx40(
|
|
4705
4715
|
Text,
|
|
4706
4716
|
{
|
|
4707
4717
|
style: { fontWeight: theme.typography.fontWeight.semibold, color: theme.colors.text, fontSize: 16, lineHeight: 20 },
|
|
@@ -4715,18 +4725,18 @@ function ReviewMergeRequestCard({
|
|
|
4715
4725
|
position
|
|
4716
4726
|
] })
|
|
4717
4727
|
] }),
|
|
4718
|
-
/* @__PURE__ */
|
|
4728
|
+
/* @__PURE__ */ jsx40(
|
|
4719
4729
|
Animated8.View,
|
|
4720
4730
|
{
|
|
4721
4731
|
style: {
|
|
4722
4732
|
transform: [{ rotate: rotate.interpolate({ inputRange: [0, 1], outputRange: ["0deg", "180deg"] }) }]
|
|
4723
4733
|
},
|
|
4724
|
-
children: /* @__PURE__ */
|
|
4734
|
+
children: /* @__PURE__ */ jsx40(ChevronDown3, { size: 20, color: withAlpha(theme.colors.textMuted, 0.4) })
|
|
4725
4735
|
}
|
|
4726
4736
|
)
|
|
4727
4737
|
] }),
|
|
4728
4738
|
isExpanded ? /* @__PURE__ */ jsxs23(View30, { style: { marginTop: 16 }, children: [
|
|
4729
|
-
/* @__PURE__ */
|
|
4739
|
+
/* @__PURE__ */ jsx40(
|
|
4730
4740
|
Text,
|
|
4731
4741
|
{
|
|
4732
4742
|
style: {
|
|
@@ -4740,13 +4750,13 @@ function ReviewMergeRequestCard({
|
|
|
4740
4750
|
children: status.text
|
|
4741
4751
|
}
|
|
4742
4752
|
),
|
|
4743
|
-
/* @__PURE__ */
|
|
4744
|
-
mr.description ? /* @__PURE__ */
|
|
4753
|
+
/* @__PURE__ */ jsx40(Text, { style: { color: theme.colors.textMuted, fontSize: 12, lineHeight: 16, marginBottom: 12 }, children: creator ? `${creator.approvedOpenedMergeRequests} approved merge${creator.approvedOpenedMergeRequests !== 1 ? "s" : ""}` : "Loading stats..." }),
|
|
4754
|
+
mr.description ? /* @__PURE__ */ jsx40(MarkdownText, { markdown: mr.description, variant: "mergeRequest" }) : null
|
|
4745
4755
|
] }) : null,
|
|
4746
|
-
/* @__PURE__ */
|
|
4756
|
+
/* @__PURE__ */ jsx40(View30, { style: { height: 1, backgroundColor: withAlpha(theme.colors.borderStrong, 0.5), marginTop: 12, marginBottom: 12 } }),
|
|
4747
4757
|
/* @__PURE__ */ jsxs23(View30, { style: { flexDirection: "row", alignItems: "center", justifyContent: "space-between" }, children: [
|
|
4748
4758
|
/* @__PURE__ */ jsxs23(View30, { style: { flexDirection: "row", gap: 8 }, children: [
|
|
4749
|
-
/* @__PURE__ */
|
|
4759
|
+
/* @__PURE__ */ jsx40(
|
|
4750
4760
|
ReviewMergeRequestActionButton,
|
|
4751
4761
|
{
|
|
4752
4762
|
accessibilityLabel: "Reject",
|
|
@@ -4755,12 +4765,12 @@ function ReviewMergeRequestCard({
|
|
|
4755
4765
|
onPress: onReject,
|
|
4756
4766
|
iconOnly: !isExpanded,
|
|
4757
4767
|
children: /* @__PURE__ */ jsxs23(View30, { style: { flexDirection: "row", alignItems: "center", gap: isExpanded ? 4 : 0 }, children: [
|
|
4758
|
-
/* @__PURE__ */
|
|
4759
|
-
isExpanded ? /* @__PURE__ */
|
|
4768
|
+
/* @__PURE__ */ jsx40(X3, { size: 18, color: "#FFFFFF" }),
|
|
4769
|
+
isExpanded ? /* @__PURE__ */ jsx40(Text, { style: { fontSize: 13, color: "#FFFFFF", fontWeight: theme.typography.fontWeight.semibold }, children: "Reject" }) : null
|
|
4760
4770
|
] })
|
|
4761
4771
|
}
|
|
4762
4772
|
),
|
|
4763
|
-
/* @__PURE__ */
|
|
4773
|
+
/* @__PURE__ */ jsx40(
|
|
4764
4774
|
ReviewMergeRequestActionButton,
|
|
4765
4775
|
{
|
|
4766
4776
|
accessibilityLabel: !canAct ? "Not actionable" : isProcessing ? "Processing" : "Approve",
|
|
@@ -4769,16 +4779,16 @@ function ReviewMergeRequestCard({
|
|
|
4769
4779
|
onPress: onApprove,
|
|
4770
4780
|
iconOnly: !isExpanded,
|
|
4771
4781
|
children: isProcessing ? /* @__PURE__ */ jsxs23(View30, { style: { flexDirection: "row", alignItems: "center", gap: isExpanded ? 4 : 0 }, children: [
|
|
4772
|
-
/* @__PURE__ */
|
|
4773
|
-
isExpanded ? /* @__PURE__ */
|
|
4782
|
+
/* @__PURE__ */ jsx40(ActivityIndicator5, { size: "small", color: "#FFFFFF" }),
|
|
4783
|
+
isExpanded ? /* @__PURE__ */ jsx40(Text, { style: { fontSize: 13, color: "#FFFFFF", fontWeight: theme.typography.fontWeight.semibold }, children: "Processing" }) : null
|
|
4774
4784
|
] }) : /* @__PURE__ */ jsxs23(View30, { style: { flexDirection: "row", alignItems: "center", gap: isExpanded ? 4 : 0 }, children: [
|
|
4775
|
-
/* @__PURE__ */
|
|
4776
|
-
isExpanded ? /* @__PURE__ */
|
|
4785
|
+
/* @__PURE__ */ jsx40(Check4, { size: 18, color: "#FFFFFF" }),
|
|
4786
|
+
isExpanded ? /* @__PURE__ */ jsx40(Text, { style: { fontSize: 13, color: "#FFFFFF", fontWeight: theme.typography.fontWeight.semibold }, children: "Approve" }) : null
|
|
4777
4787
|
] })
|
|
4778
4788
|
}
|
|
4779
4789
|
)
|
|
4780
4790
|
] }),
|
|
4781
|
-
/* @__PURE__ */
|
|
4791
|
+
/* @__PURE__ */ jsx40(
|
|
4782
4792
|
ReviewMergeRequestActionButton,
|
|
4783
4793
|
{
|
|
4784
4794
|
accessibilityLabel: "Test",
|
|
@@ -4786,9 +4796,9 @@ function ReviewMergeRequestCard({
|
|
|
4786
4796
|
disabled: isBuilding || isTestingThis,
|
|
4787
4797
|
onPress: onTest,
|
|
4788
4798
|
iconOnly: !isExpanded,
|
|
4789
|
-
children: isTestingThis ? /* @__PURE__ */
|
|
4790
|
-
/* @__PURE__ */
|
|
4791
|
-
isExpanded ? /* @__PURE__ */
|
|
4799
|
+
children: isTestingThis ? /* @__PURE__ */ jsx40(ActivityIndicator5, { size: "small", color: "#888" }) : /* @__PURE__ */ jsxs23(View30, { style: { flexDirection: "row", alignItems: "center", gap: isExpanded ? 4 : 0 }, children: [
|
|
4800
|
+
/* @__PURE__ */ jsx40(Play3, { size: 14, color: theme.colors.text }),
|
|
4801
|
+
isExpanded ? /* @__PURE__ */ jsx40(Text, { style: { fontSize: 13, color: theme.colors.text, fontWeight: theme.typography.fontWeight.semibold }, children: "Test" }) : null
|
|
4792
4802
|
] })
|
|
4793
4803
|
}
|
|
4794
4804
|
)
|
|
@@ -4799,7 +4809,7 @@ function ReviewMergeRequestCard({
|
|
|
4799
4809
|
}
|
|
4800
4810
|
|
|
4801
4811
|
// src/components/merge-requests/ReviewMergeRequestCarousel.tsx
|
|
4802
|
-
import { jsx as
|
|
4812
|
+
import { jsx as jsx41, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
4803
4813
|
function ReviewMergeRequestCarousel({
|
|
4804
4814
|
mergeRequests,
|
|
4805
4815
|
creatorStatsById,
|
|
@@ -4822,7 +4832,7 @@ function ReviewMergeRequestCarousel({
|
|
|
4822
4832
|
const dotColor = theme.scheme === "dark" ? "#FFFFFF" : "#000000";
|
|
4823
4833
|
if (mergeRequests.length === 0) return null;
|
|
4824
4834
|
return /* @__PURE__ */ jsxs24(View31, { style: [{ marginHorizontal: -theme.spacing.lg }, style], children: [
|
|
4825
|
-
/* @__PURE__ */
|
|
4835
|
+
/* @__PURE__ */ jsx41(
|
|
4826
4836
|
FlatList,
|
|
4827
4837
|
{
|
|
4828
4838
|
horizontal: true,
|
|
@@ -4830,13 +4840,13 @@ function ReviewMergeRequestCarousel({
|
|
|
4830
4840
|
keyExtractor: (mr) => mr.id,
|
|
4831
4841
|
showsHorizontalScrollIndicator: false,
|
|
4832
4842
|
contentContainerStyle: { paddingHorizontal: theme.spacing.lg, paddingVertical: theme.spacing.sm },
|
|
4833
|
-
ItemSeparatorComponent: () => /* @__PURE__ */
|
|
4843
|
+
ItemSeparatorComponent: () => /* @__PURE__ */ jsx41(View31, { style: { width: gap } }),
|
|
4834
4844
|
snapToAlignment: "start",
|
|
4835
4845
|
decelerationRate: "fast",
|
|
4836
4846
|
snapToInterval: snapInterval,
|
|
4837
4847
|
disableIntervalMomentum: true,
|
|
4838
4848
|
style: { paddingRight: peekAmount },
|
|
4839
|
-
ListFooterComponent: /* @__PURE__ */
|
|
4849
|
+
ListFooterComponent: /* @__PURE__ */ jsx41(View31, { style: { width: peekAmount } }),
|
|
4840
4850
|
onScroll: Animated9.event([{ nativeEvent: { contentOffset: { x: carouselScrollX } } }], {
|
|
4841
4851
|
useNativeDriver: false
|
|
4842
4852
|
}),
|
|
@@ -4848,7 +4858,7 @@ function ReviewMergeRequestCarousel({
|
|
|
4848
4858
|
const isProcessing = Boolean(processingMrId && processingMrId === item.id);
|
|
4849
4859
|
const isAnyProcessing = Boolean(processingMrId);
|
|
4850
4860
|
const isTestingThis = Boolean(testingMrId && testingMrId === item.id);
|
|
4851
|
-
return /* @__PURE__ */
|
|
4861
|
+
return /* @__PURE__ */ jsx41(View31, { style: { width: cardWidth }, children: /* @__PURE__ */ jsx41(
|
|
4852
4862
|
ReviewMergeRequestCard,
|
|
4853
4863
|
{
|
|
4854
4864
|
mr: item,
|
|
@@ -4869,7 +4879,7 @@ function ReviewMergeRequestCarousel({
|
|
|
4869
4879
|
}
|
|
4870
4880
|
}
|
|
4871
4881
|
),
|
|
4872
|
-
mergeRequests.length >= 1 ? /* @__PURE__ */
|
|
4882
|
+
mergeRequests.length >= 1 ? /* @__PURE__ */ jsx41(View31, { style: { flexDirection: "row", justifyContent: "center", columnGap: 8, marginTop: theme.spacing.md }, children: mergeRequests.map((mr, index) => {
|
|
4873
4883
|
const inputRange = [(index - 1) * snapInterval, index * snapInterval, (index + 1) * snapInterval];
|
|
4874
4884
|
const scale = carouselScrollX.interpolate({
|
|
4875
4885
|
inputRange,
|
|
@@ -4881,7 +4891,7 @@ function ReviewMergeRequestCarousel({
|
|
|
4881
4891
|
outputRange: [0.4, 1, 0.4],
|
|
4882
4892
|
extrapolate: "clamp"
|
|
4883
4893
|
});
|
|
4884
|
-
return /* @__PURE__ */
|
|
4894
|
+
return /* @__PURE__ */ jsx41(
|
|
4885
4895
|
Animated9.View,
|
|
4886
4896
|
{
|
|
4887
4897
|
style: {
|
|
@@ -4900,7 +4910,7 @@ function ReviewMergeRequestCarousel({
|
|
|
4900
4910
|
}
|
|
4901
4911
|
|
|
4902
4912
|
// src/studio/ui/preview-panel/PreviewCollaborateSection.tsx
|
|
4903
|
-
import { Fragment as Fragment5, jsx as
|
|
4913
|
+
import { Fragment as Fragment5, jsx as jsx42, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
4904
4914
|
function PreviewCollaborateSection({
|
|
4905
4915
|
canSubmitMergeRequest,
|
|
4906
4916
|
incomingMergeRequests,
|
|
@@ -4921,8 +4931,8 @@ function PreviewCollaborateSection({
|
|
|
4921
4931
|
if (!hasSection) return null;
|
|
4922
4932
|
const showActionsSubtitle = canSubmitMergeRequest && onSubmitMergeRequest || onTestMr && incomingMergeRequests.length > 0;
|
|
4923
4933
|
return /* @__PURE__ */ jsxs25(Fragment5, { children: [
|
|
4924
|
-
/* @__PURE__ */
|
|
4925
|
-
showActionsSubtitle ? /* @__PURE__ */
|
|
4934
|
+
/* @__PURE__ */ jsx42(SectionTitle, { marginTop: theme.spacing.xl, children: "Collaborate" }),
|
|
4935
|
+
showActionsSubtitle ? /* @__PURE__ */ jsx42(
|
|
4926
4936
|
Text,
|
|
4927
4937
|
{
|
|
4928
4938
|
style: {
|
|
@@ -4937,7 +4947,7 @@ function PreviewCollaborateSection({
|
|
|
4937
4947
|
children: "Actions"
|
|
4938
4948
|
}
|
|
4939
4949
|
) : null,
|
|
4940
|
-
canSubmitMergeRequest && onSubmitMergeRequest ? /* @__PURE__ */
|
|
4950
|
+
canSubmitMergeRequest && onSubmitMergeRequest ? /* @__PURE__ */ jsx42(
|
|
4941
4951
|
PressableCardRow,
|
|
4942
4952
|
{
|
|
4943
4953
|
accessibilityLabel: "Submit merge request",
|
|
@@ -4968,7 +4978,7 @@ function PreviewCollaborateSection({
|
|
|
4968
4978
|
borderColor: withAlpha("#03DAC6", 0.2),
|
|
4969
4979
|
marginBottom: theme.spacing.sm
|
|
4970
4980
|
},
|
|
4971
|
-
left: /* @__PURE__ */
|
|
4981
|
+
left: /* @__PURE__ */ jsx42(
|
|
4972
4982
|
View32,
|
|
4973
4983
|
{
|
|
4974
4984
|
style: {
|
|
@@ -4980,15 +4990,15 @@ function PreviewCollaborateSection({
|
|
|
4980
4990
|
backgroundColor: withAlpha("#03DAC6", 0.1),
|
|
4981
4991
|
marginRight: theme.spacing.lg
|
|
4982
4992
|
},
|
|
4983
|
-
children: submittingMr ? /* @__PURE__ */
|
|
4993
|
+
children: submittingMr ? /* @__PURE__ */ jsx42(ActivityIndicator6, { color: "#03DAC6", size: "small" }) : /* @__PURE__ */ jsx42(MergeIcon, { width: 20, height: 20, color: "#03DAC6" })
|
|
4984
4994
|
}
|
|
4985
4995
|
),
|
|
4986
|
-
title: /* @__PURE__ */
|
|
4987
|
-
subtitle: /* @__PURE__ */
|
|
4988
|
-
right: /* @__PURE__ */
|
|
4996
|
+
title: /* @__PURE__ */ jsx42(Text, { style: { color: theme.colors.text, fontSize: 16, lineHeight: 20, fontWeight: theme.typography.fontWeight.semibold }, children: "Submit your new changes" }),
|
|
4997
|
+
subtitle: /* @__PURE__ */ jsx42(Text, { style: { color: theme.colors.textMuted, fontSize: 12, lineHeight: 16, marginTop: 2 }, children: "Ask to merge this remix to the original app" }),
|
|
4998
|
+
right: /* @__PURE__ */ jsx42(Send2, { size: 16, color: "#03DAC6" })
|
|
4989
4999
|
}
|
|
4990
5000
|
) : null,
|
|
4991
|
-
onTestMr && incomingMergeRequests.length > 0 ? /* @__PURE__ */
|
|
5001
|
+
onTestMr && incomingMergeRequests.length > 0 ? /* @__PURE__ */ jsx42(
|
|
4992
5002
|
ReviewMergeRequestCarousel,
|
|
4993
5003
|
{
|
|
4994
5004
|
mergeRequests: incomingMergeRequests,
|
|
@@ -5002,7 +5012,7 @@ function PreviewCollaborateSection({
|
|
|
5002
5012
|
}
|
|
5003
5013
|
) : null,
|
|
5004
5014
|
outgoingMergeRequests.length > 0 ? /* @__PURE__ */ jsxs25(Fragment5, { children: [
|
|
5005
|
-
/* @__PURE__ */
|
|
5015
|
+
/* @__PURE__ */ jsx42(
|
|
5006
5016
|
Text,
|
|
5007
5017
|
{
|
|
5008
5018
|
style: {
|
|
@@ -5018,7 +5028,7 @@ function PreviewCollaborateSection({
|
|
|
5018
5028
|
children: "History"
|
|
5019
5029
|
}
|
|
5020
5030
|
),
|
|
5021
|
-
outgoingMergeRequests.map((mr) => /* @__PURE__ */
|
|
5031
|
+
outgoingMergeRequests.map((mr) => /* @__PURE__ */ jsx42(View32, { style: { marginBottom: theme.spacing.sm }, children: /* @__PURE__ */ jsx42(MergeRequestStatusCard, { mergeRequest: toMergeRequestSummary(mr) }) }, mr.id))
|
|
5022
5032
|
] }) : null
|
|
5023
5033
|
] });
|
|
5024
5034
|
}
|
|
@@ -5309,7 +5319,7 @@ function usePreviewPanelData(params) {
|
|
|
5309
5319
|
}
|
|
5310
5320
|
|
|
5311
5321
|
// src/studio/ui/PreviewPanel.tsx
|
|
5312
|
-
import { jsx as
|
|
5322
|
+
import { jsx as jsx43, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
5313
5323
|
function PreviewPanel({
|
|
5314
5324
|
app,
|
|
5315
5325
|
loading,
|
|
@@ -5340,16 +5350,16 @@ function PreviewPanel({
|
|
|
5340
5350
|
onOpenComments,
|
|
5341
5351
|
commentCountOverride
|
|
5342
5352
|
});
|
|
5343
|
-
const header = /* @__PURE__ */
|
|
5353
|
+
const header = /* @__PURE__ */ jsx43(PreviewPanelHeader, { isOwner, onClose, onNavigateHome, onGoToChat });
|
|
5344
5354
|
if (loading || !app) {
|
|
5345
|
-
return /* @__PURE__ */
|
|
5346
|
-
/* @__PURE__ */
|
|
5347
|
-
/* @__PURE__ */
|
|
5348
|
-
/* @__PURE__ */
|
|
5355
|
+
return /* @__PURE__ */ jsx43(PreviewPage, { header, children: /* @__PURE__ */ jsxs26(View33, { style: { flex: 1, justifyContent: "center", alignItems: "center", padding: 24 }, children: [
|
|
5356
|
+
/* @__PURE__ */ jsx43(ActivityIndicator7, {}),
|
|
5357
|
+
/* @__PURE__ */ jsx43(View33, { style: { height: 12 } }),
|
|
5358
|
+
/* @__PURE__ */ jsx43(Text, { variant: "bodyMuted", children: "Loading app\u2026" })
|
|
5349
5359
|
] }) });
|
|
5350
5360
|
}
|
|
5351
5361
|
return /* @__PURE__ */ jsxs26(PreviewPage, { header, children: [
|
|
5352
|
-
/* @__PURE__ */
|
|
5362
|
+
/* @__PURE__ */ jsx43(
|
|
5353
5363
|
PreviewHeroSection,
|
|
5354
5364
|
{
|
|
5355
5365
|
appStatus: app.status,
|
|
@@ -5367,8 +5377,8 @@ function PreviewPanel({
|
|
|
5367
5377
|
}
|
|
5368
5378
|
}
|
|
5369
5379
|
),
|
|
5370
|
-
/* @__PURE__ */
|
|
5371
|
-
/* @__PURE__ */
|
|
5380
|
+
/* @__PURE__ */ jsx43(PreviewMetaSection, { app, isOwner, creator, downloadsCount: insights.downloads }),
|
|
5381
|
+
/* @__PURE__ */ jsx43(
|
|
5372
5382
|
PreviewCustomizeSection,
|
|
5373
5383
|
{
|
|
5374
5384
|
app,
|
|
@@ -5379,7 +5389,7 @@ function PreviewPanel({
|
|
|
5379
5389
|
onStartDraw
|
|
5380
5390
|
}
|
|
5381
5391
|
),
|
|
5382
|
-
/* @__PURE__ */
|
|
5392
|
+
/* @__PURE__ */ jsx43(
|
|
5383
5393
|
PreviewCollaborateSection,
|
|
5384
5394
|
{
|
|
5385
5395
|
canSubmitMergeRequest,
|
|
@@ -5415,7 +5425,7 @@ import { BottomSheetFlatList } from "@gorhom/bottom-sheet";
|
|
|
5415
5425
|
// src/components/chat/ChatMessageBubble.tsx
|
|
5416
5426
|
import { View as View34 } from "react-native";
|
|
5417
5427
|
import { CheckCheck as CheckCheck2, GitMerge as GitMerge2 } from "lucide-react-native";
|
|
5418
|
-
import { jsx as
|
|
5428
|
+
import { jsx as jsx44, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
5419
5429
|
function ChatMessageBubble({ message, renderContent, style }) {
|
|
5420
5430
|
var _a, _b;
|
|
5421
5431
|
const theme = useTheme();
|
|
@@ -5429,7 +5439,7 @@ function ChatMessageBubble({ message, renderContent, style }) {
|
|
|
5429
5439
|
const bubbleVariant = isHuman ? "surface" : "surfaceRaised";
|
|
5430
5440
|
const cornerStyle = isHuman ? { borderTopRightRadius: 0 } : { borderTopLeftRadius: 0 };
|
|
5431
5441
|
const bodyColor = metaStatus === "success" ? theme.colors.success : metaStatus === "error" ? theme.colors.danger : void 0;
|
|
5432
|
-
return /* @__PURE__ */
|
|
5442
|
+
return /* @__PURE__ */ jsx44(View34, { style: [align, style], children: /* @__PURE__ */ jsx44(
|
|
5433
5443
|
Surface,
|
|
5434
5444
|
{
|
|
5435
5445
|
variant: bubbleVariant,
|
|
@@ -5445,9 +5455,9 @@ function ChatMessageBubble({ message, renderContent, style }) {
|
|
|
5445
5455
|
cornerStyle
|
|
5446
5456
|
],
|
|
5447
5457
|
children: /* @__PURE__ */ jsxs27(View34, { style: { flexDirection: "row", alignItems: "center" }, children: [
|
|
5448
|
-
isMergeCompleted ? /* @__PURE__ */
|
|
5449
|
-
isMergeApproved ? /* @__PURE__ */
|
|
5450
|
-
/* @__PURE__ */
|
|
5458
|
+
isMergeCompleted ? /* @__PURE__ */ jsx44(CheckCheck2, { size: 16, color: theme.colors.success, style: { marginRight: theme.spacing.sm } }) : null,
|
|
5459
|
+
isMergeApproved ? /* @__PURE__ */ jsx44(GitMerge2, { size: 16, color: theme.colors.text, style: { marginRight: theme.spacing.sm } }) : null,
|
|
5460
|
+
/* @__PURE__ */ jsx44(View34, { style: { flexShrink: 1, minWidth: 0 }, children: renderContent ? renderContent(message) : /* @__PURE__ */ jsx44(MarkdownText, { markdown: message.content, variant: "chat", bodyColor }) })
|
|
5451
5461
|
] })
|
|
5452
5462
|
}
|
|
5453
5463
|
) });
|
|
@@ -5456,7 +5466,7 @@ function ChatMessageBubble({ message, renderContent, style }) {
|
|
|
5456
5466
|
// src/components/chat/TypingIndicator.tsx
|
|
5457
5467
|
import * as React31 from "react";
|
|
5458
5468
|
import { Animated as Animated10, View as View35 } from "react-native";
|
|
5459
|
-
import { jsx as
|
|
5469
|
+
import { jsx as jsx45 } from "react/jsx-runtime";
|
|
5460
5470
|
function TypingIndicator({ style }) {
|
|
5461
5471
|
const theme = useTheme();
|
|
5462
5472
|
const dotColor = theme.colors.textSubtle;
|
|
@@ -5479,7 +5489,7 @@ function TypingIndicator({ style }) {
|
|
|
5479
5489
|
loops.forEach((l) => l.stop());
|
|
5480
5490
|
};
|
|
5481
5491
|
}, [anims]);
|
|
5482
|
-
return /* @__PURE__ */
|
|
5492
|
+
return /* @__PURE__ */ jsx45(View35, { style: [{ flexDirection: "row", alignItems: "center" }, style], children: anims.map((a, i) => /* @__PURE__ */ jsx45(
|
|
5483
5493
|
Animated10.View,
|
|
5484
5494
|
{
|
|
5485
5495
|
style: {
|
|
@@ -5497,7 +5507,7 @@ function TypingIndicator({ style }) {
|
|
|
5497
5507
|
}
|
|
5498
5508
|
|
|
5499
5509
|
// src/components/chat/ChatMessageList.tsx
|
|
5500
|
-
import { jsx as
|
|
5510
|
+
import { jsx as jsx46 } from "react/jsx-runtime";
|
|
5501
5511
|
var ChatMessageList = React32.forwardRef(
|
|
5502
5512
|
({
|
|
5503
5513
|
messages,
|
|
@@ -5556,7 +5566,7 @@ var ChatMessageList = React32.forwardRef(
|
|
|
5556
5566
|
}
|
|
5557
5567
|
return void 0;
|
|
5558
5568
|
}, [showTypingIndicator, scrollToBottom]);
|
|
5559
|
-
return /* @__PURE__ */
|
|
5569
|
+
return /* @__PURE__ */ jsx46(
|
|
5560
5570
|
BottomSheetFlatList,
|
|
5561
5571
|
{
|
|
5562
5572
|
ref: listRef,
|
|
@@ -5573,8 +5583,8 @@ var ChatMessageList = React32.forwardRef(
|
|
|
5573
5583
|
},
|
|
5574
5584
|
contentStyle
|
|
5575
5585
|
],
|
|
5576
|
-
renderItem: ({ item, index }) => /* @__PURE__ */
|
|
5577
|
-
ListFooterComponent: showTypingIndicator ? /* @__PURE__ */
|
|
5586
|
+
renderItem: ({ item, index }) => /* @__PURE__ */ jsx46(View36, { style: { marginTop: index === 0 ? 0 : theme.spacing.sm }, children: /* @__PURE__ */ jsx46(ChatMessageBubble, { message: item, renderContent: renderMessageContent }) }),
|
|
5587
|
+
ListFooterComponent: showTypingIndicator ? /* @__PURE__ */ jsx46(View36, { style: { marginTop: theme.spacing.sm, alignSelf: "flex-start", paddingHorizontal: theme.spacing.lg }, children: /* @__PURE__ */ jsx46(TypingIndicator, {}) }) : null,
|
|
5578
5588
|
maintainVisibleContentPosition: { minIndexForVisible: 0, autoscrollToTopThreshold: nearBottomThreshold }
|
|
5579
5589
|
}
|
|
5580
5590
|
);
|
|
@@ -5583,7 +5593,7 @@ var ChatMessageList = React32.forwardRef(
|
|
|
5583
5593
|
ChatMessageList.displayName = "ChatMessageList";
|
|
5584
5594
|
|
|
5585
5595
|
// src/components/chat/ChatPage.tsx
|
|
5586
|
-
import { jsx as
|
|
5596
|
+
import { jsx as jsx47, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
5587
5597
|
function ChatPage({
|
|
5588
5598
|
header,
|
|
5589
5599
|
messages,
|
|
@@ -5599,10 +5609,10 @@ function ChatPage({
|
|
|
5599
5609
|
const theme = useTheme();
|
|
5600
5610
|
const [composerHeight, setComposerHeight] = React33.useState(0);
|
|
5601
5611
|
return /* @__PURE__ */ jsxs28(View37, { style: [{ flex: 1 }, style], children: [
|
|
5602
|
-
header ? /* @__PURE__ */
|
|
5603
|
-
topBanner ? /* @__PURE__ */
|
|
5612
|
+
header ? /* @__PURE__ */ jsx47(View37, { children: header }) : null,
|
|
5613
|
+
topBanner ? /* @__PURE__ */ jsx47(View37, { style: { paddingHorizontal: theme.spacing.lg, paddingTop: theme.spacing.sm }, children: topBanner }) : null,
|
|
5604
5614
|
/* @__PURE__ */ jsxs28(View37, { style: { flex: 1 }, children: [
|
|
5605
|
-
/* @__PURE__ */
|
|
5615
|
+
/* @__PURE__ */ jsx47(
|
|
5606
5616
|
ChatMessageList,
|
|
5607
5617
|
{
|
|
5608
5618
|
ref: listRef,
|
|
@@ -5615,7 +5625,7 @@ function ChatPage({
|
|
|
5615
5625
|
),
|
|
5616
5626
|
overlay
|
|
5617
5627
|
] }),
|
|
5618
|
-
/* @__PURE__ */
|
|
5628
|
+
/* @__PURE__ */ jsx47(
|
|
5619
5629
|
ChatComposer,
|
|
5620
5630
|
{
|
|
5621
5631
|
...composer,
|
|
@@ -5630,7 +5640,7 @@ function ChatPage({
|
|
|
5630
5640
|
import * as React34 from "react";
|
|
5631
5641
|
import { Pressable as Pressable12, View as View38 } from "react-native";
|
|
5632
5642
|
import Animated11, { Easing as Easing2, useAnimatedStyle as useAnimatedStyle2, useSharedValue as useSharedValue2, withTiming as withTiming2 } from "react-native-reanimated";
|
|
5633
|
-
import { jsx as
|
|
5643
|
+
import { jsx as jsx48 } from "react/jsx-runtime";
|
|
5634
5644
|
function ScrollToBottomButton({ visible, onPress, children, style }) {
|
|
5635
5645
|
const theme = useTheme();
|
|
5636
5646
|
const progress = useSharedValue2(visible ? 1 : 0);
|
|
@@ -5644,7 +5654,7 @@ function ScrollToBottomButton({ visible, onPress, children, style }) {
|
|
|
5644
5654
|
}));
|
|
5645
5655
|
const bg = theme.scheme === "dark" ? "rgba(39,39,42,0.9)" : "rgba(244,244,245,0.95)";
|
|
5646
5656
|
const border = theme.scheme === "dark" ? withAlpha("#FFFFFF", 0.12) : withAlpha("#000000", 0.08);
|
|
5647
|
-
return /* @__PURE__ */
|
|
5657
|
+
return /* @__PURE__ */ jsx48(
|
|
5648
5658
|
Animated11.View,
|
|
5649
5659
|
{
|
|
5650
5660
|
pointerEvents: visible ? "auto" : "none",
|
|
@@ -5658,7 +5668,7 @@ function ScrollToBottomButton({ visible, onPress, children, style }) {
|
|
|
5658
5668
|
style,
|
|
5659
5669
|
animStyle
|
|
5660
5670
|
],
|
|
5661
|
-
children: /* @__PURE__ */
|
|
5671
|
+
children: /* @__PURE__ */ jsx48(
|
|
5662
5672
|
View38,
|
|
5663
5673
|
{
|
|
5664
5674
|
style: {
|
|
@@ -5677,7 +5687,7 @@ function ScrollToBottomButton({ visible, onPress, children, style }) {
|
|
|
5677
5687
|
elevation: 5,
|
|
5678
5688
|
opacity: pressed ? 0.85 : 1
|
|
5679
5689
|
},
|
|
5680
|
-
children: /* @__PURE__ */
|
|
5690
|
+
children: /* @__PURE__ */ jsx48(
|
|
5681
5691
|
Pressable12,
|
|
5682
5692
|
{
|
|
5683
5693
|
onPress,
|
|
@@ -5696,7 +5706,7 @@ function ScrollToBottomButton({ visible, onPress, children, style }) {
|
|
|
5696
5706
|
|
|
5697
5707
|
// src/components/chat/ChatHeader.tsx
|
|
5698
5708
|
import { StyleSheet as StyleSheet4 } from "react-native";
|
|
5699
|
-
import { jsx as
|
|
5709
|
+
import { jsx as jsx49 } from "react/jsx-runtime";
|
|
5700
5710
|
function ChatHeader({ left, right, center, style }) {
|
|
5701
5711
|
const flattenedStyle = StyleSheet4.flatten([
|
|
5702
5712
|
{
|
|
@@ -5704,7 +5714,7 @@ function ChatHeader({ left, right, center, style }) {
|
|
|
5704
5714
|
},
|
|
5705
5715
|
style
|
|
5706
5716
|
]);
|
|
5707
|
-
return /* @__PURE__ */
|
|
5717
|
+
return /* @__PURE__ */ jsx49(
|
|
5708
5718
|
StudioSheetHeader,
|
|
5709
5719
|
{
|
|
5710
5720
|
left,
|
|
@@ -5717,12 +5727,12 @@ function ChatHeader({ left, right, center, style }) {
|
|
|
5717
5727
|
|
|
5718
5728
|
// src/components/chat/ForkNoticeBanner.tsx
|
|
5719
5729
|
import { View as View40 } from "react-native";
|
|
5720
|
-
import { jsx as
|
|
5730
|
+
import { jsx as jsx50, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
5721
5731
|
function ForkNoticeBanner({ isOwner = true, title, description, style }) {
|
|
5722
5732
|
const theme = useTheme();
|
|
5723
5733
|
const resolvedTitle = title ?? (isOwner ? "Remixed app" : "Remix app");
|
|
5724
5734
|
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.");
|
|
5725
|
-
return /* @__PURE__ */
|
|
5735
|
+
return /* @__PURE__ */ jsx50(
|
|
5726
5736
|
Card,
|
|
5727
5737
|
{
|
|
5728
5738
|
variant: "surfaceRaised",
|
|
@@ -5738,7 +5748,7 @@ function ForkNoticeBanner({ isOwner = true, title, description, style }) {
|
|
|
5738
5748
|
style
|
|
5739
5749
|
],
|
|
5740
5750
|
children: /* @__PURE__ */ jsxs29(View40, { style: { minWidth: 0 }, children: [
|
|
5741
|
-
/* @__PURE__ */
|
|
5751
|
+
/* @__PURE__ */ jsx50(
|
|
5742
5752
|
Text,
|
|
5743
5753
|
{
|
|
5744
5754
|
style: {
|
|
@@ -5752,7 +5762,7 @@ function ForkNoticeBanner({ isOwner = true, title, description, style }) {
|
|
|
5752
5762
|
children: resolvedTitle
|
|
5753
5763
|
}
|
|
5754
5764
|
),
|
|
5755
|
-
/* @__PURE__ */
|
|
5765
|
+
/* @__PURE__ */ jsx50(
|
|
5756
5766
|
Text,
|
|
5757
5767
|
{
|
|
5758
5768
|
style: {
|
|
@@ -5770,7 +5780,7 @@ function ForkNoticeBanner({ isOwner = true, title, description, style }) {
|
|
|
5770
5780
|
}
|
|
5771
5781
|
|
|
5772
5782
|
// src/studio/ui/ChatPanel.tsx
|
|
5773
|
-
import { jsx as
|
|
5783
|
+
import { jsx as jsx51, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
5774
5784
|
function ChatPanel({
|
|
5775
5785
|
title = "Chat",
|
|
5776
5786
|
autoFocusComposer = false,
|
|
@@ -5808,21 +5818,21 @@ function ChatPanel({
|
|
|
5808
5818
|
var _a;
|
|
5809
5819
|
(_a = listRef.current) == null ? void 0 : _a.scrollToBottom({ animated: true });
|
|
5810
5820
|
}, []);
|
|
5811
|
-
const header = /* @__PURE__ */
|
|
5821
|
+
const header = /* @__PURE__ */ jsx51(
|
|
5812
5822
|
ChatHeader,
|
|
5813
5823
|
{
|
|
5814
5824
|
left: /* @__PURE__ */ jsxs30(View41, { style: { flexDirection: "row", alignItems: "center" }, children: [
|
|
5815
|
-
/* @__PURE__ */
|
|
5816
|
-
onNavigateHome ? /* @__PURE__ */
|
|
5825
|
+
/* @__PURE__ */ jsx51(StudioSheetHeaderIconButton, { onPress: onBack, accessibilityLabel: "Back", style: { marginRight: 8 }, children: /* @__PURE__ */ jsx51(IconBack, { size: 20, colorToken: "floatingContent" }) }),
|
|
5826
|
+
onNavigateHome ? /* @__PURE__ */ jsx51(StudioSheetHeaderIconButton, { onPress: onNavigateHome, accessibilityLabel: "Home", children: /* @__PURE__ */ jsx51(IconHome, { size: 20, colorToken: "floatingContent" }) }) : null
|
|
5817
5827
|
] }),
|
|
5818
5828
|
right: /* @__PURE__ */ jsxs30(View41, { style: { flexDirection: "row", alignItems: "center" }, children: [
|
|
5819
|
-
onStartDraw ? /* @__PURE__ */
|
|
5820
|
-
/* @__PURE__ */
|
|
5829
|
+
onStartDraw ? /* @__PURE__ */ jsx51(StudioSheetHeaderIconButton, { onPress: onStartDraw, accessibilityLabel: "Draw", intent: "danger", style: { marginRight: 8 }, children: /* @__PURE__ */ jsx51(IconDraw, { size: 20, colorToken: "onDanger" }) }) : null,
|
|
5830
|
+
/* @__PURE__ */ jsx51(StudioSheetHeaderIconButton, { onPress: onClose, accessibilityLabel: "Close", children: /* @__PURE__ */ jsx51(IconClose, { size: 20, colorToken: "floatingContent" }) })
|
|
5821
5831
|
] }),
|
|
5822
5832
|
center: null
|
|
5823
5833
|
}
|
|
5824
5834
|
);
|
|
5825
|
-
const topBanner = shouldForkOnEdit ? /* @__PURE__ */
|
|
5835
|
+
const topBanner = shouldForkOnEdit ? /* @__PURE__ */ jsx51(
|
|
5826
5836
|
ForkNoticeBanner,
|
|
5827
5837
|
{
|
|
5828
5838
|
isOwner: !shouldForkOnEdit,
|
|
@@ -5832,16 +5842,16 @@ function ChatPanel({
|
|
|
5832
5842
|
const showMessagesLoading = Boolean(loading) && messages.length === 0 || forking;
|
|
5833
5843
|
if (showMessagesLoading) {
|
|
5834
5844
|
return /* @__PURE__ */ jsxs30(View41, { style: { flex: 1 }, children: [
|
|
5835
|
-
/* @__PURE__ */
|
|
5836
|
-
topBanner ? /* @__PURE__ */
|
|
5845
|
+
/* @__PURE__ */ jsx51(View41, { children: header }),
|
|
5846
|
+
topBanner ? /* @__PURE__ */ jsx51(View41, { style: { paddingHorizontal: 16, paddingTop: 8 }, children: topBanner }) : null,
|
|
5837
5847
|
/* @__PURE__ */ jsxs30(View41, { style: { flex: 1, alignItems: "center", justifyContent: "center", paddingHorizontal: 24, paddingVertical: 12 }, children: [
|
|
5838
|
-
/* @__PURE__ */
|
|
5839
|
-
/* @__PURE__ */
|
|
5840
|
-
/* @__PURE__ */
|
|
5848
|
+
/* @__PURE__ */ jsx51(ActivityIndicator8, {}),
|
|
5849
|
+
/* @__PURE__ */ jsx51(View41, { style: { height: 12 } }),
|
|
5850
|
+
/* @__PURE__ */ jsx51(Text, { variant: "bodyMuted", children: forking ? "Creating your copy\u2026" : "Loading messages\u2026" })
|
|
5841
5851
|
] })
|
|
5842
5852
|
] });
|
|
5843
5853
|
}
|
|
5844
|
-
return /* @__PURE__ */
|
|
5854
|
+
return /* @__PURE__ */ jsx51(
|
|
5845
5855
|
ChatPage,
|
|
5846
5856
|
{
|
|
5847
5857
|
header,
|
|
@@ -5850,13 +5860,13 @@ function ChatPanel({
|
|
|
5850
5860
|
topBanner,
|
|
5851
5861
|
listRef,
|
|
5852
5862
|
onNearBottomChange: setNearBottom,
|
|
5853
|
-
overlay: /* @__PURE__ */
|
|
5863
|
+
overlay: /* @__PURE__ */ jsx51(
|
|
5854
5864
|
ScrollToBottomButton,
|
|
5855
5865
|
{
|
|
5856
5866
|
visible: !nearBottom,
|
|
5857
5867
|
onPress: handleScrollToBottom,
|
|
5858
5868
|
style: { bottom: 80 },
|
|
5859
|
-
children: /* @__PURE__ */
|
|
5869
|
+
children: /* @__PURE__ */ jsx51(IconArrowDown, { size: 20, colorToken: "floatingContent" })
|
|
5860
5870
|
}
|
|
5861
5871
|
),
|
|
5862
5872
|
composer: {
|
|
@@ -5883,7 +5893,7 @@ import {
|
|
|
5883
5893
|
Pressable as Pressable13,
|
|
5884
5894
|
View as View42
|
|
5885
5895
|
} from "react-native";
|
|
5886
|
-
import { jsx as
|
|
5896
|
+
import { jsx as jsx52, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
5887
5897
|
function Modal({
|
|
5888
5898
|
visible,
|
|
5889
5899
|
onRequestClose,
|
|
@@ -5892,7 +5902,7 @@ function Modal({
|
|
|
5892
5902
|
contentStyle
|
|
5893
5903
|
}) {
|
|
5894
5904
|
const theme = useTheme();
|
|
5895
|
-
return /* @__PURE__ */
|
|
5905
|
+
return /* @__PURE__ */ jsx52(
|
|
5896
5906
|
RNModal,
|
|
5897
5907
|
{
|
|
5898
5908
|
visible,
|
|
@@ -5900,7 +5910,7 @@ function Modal({
|
|
|
5900
5910
|
animationType: "fade",
|
|
5901
5911
|
onRequestClose,
|
|
5902
5912
|
children: /* @__PURE__ */ jsxs31(View42, { style: { flex: 1, backgroundColor: theme.colors.backdrop, justifyContent: "center", padding: theme.spacing.lg }, children: [
|
|
5903
|
-
/* @__PURE__ */
|
|
5913
|
+
/* @__PURE__ */ jsx52(
|
|
5904
5914
|
Pressable13,
|
|
5905
5915
|
{
|
|
5906
5916
|
accessibilityRole: "button",
|
|
@@ -5908,14 +5918,14 @@ function Modal({
|
|
|
5908
5918
|
style: { position: "absolute", inset: 0 }
|
|
5909
5919
|
}
|
|
5910
5920
|
),
|
|
5911
|
-
/* @__PURE__ */
|
|
5921
|
+
/* @__PURE__ */ jsx52(Card, { variant: "surfaceRaised", padded: true, style: [{ borderRadius: theme.radii.xl }, contentStyle], children })
|
|
5912
5922
|
] })
|
|
5913
5923
|
}
|
|
5914
5924
|
);
|
|
5915
5925
|
}
|
|
5916
5926
|
|
|
5917
5927
|
// src/components/dialogs/ConfirmMergeRequestDialog.tsx
|
|
5918
|
-
import { jsx as
|
|
5928
|
+
import { jsx as jsx53, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
5919
5929
|
function ConfirmMergeRequestDialog({
|
|
5920
5930
|
visible,
|
|
5921
5931
|
onOpenChange,
|
|
@@ -5956,7 +5966,7 @@ function ConfirmMergeRequestDialog({
|
|
|
5956
5966
|
backgroundColor: theme.colors.background
|
|
5957
5967
|
},
|
|
5958
5968
|
children: [
|
|
5959
|
-
/* @__PURE__ */
|
|
5969
|
+
/* @__PURE__ */ jsx53(View43, { children: /* @__PURE__ */ jsx53(
|
|
5960
5970
|
Text,
|
|
5961
5971
|
{
|
|
5962
5972
|
style: {
|
|
@@ -5969,7 +5979,7 @@ function ConfirmMergeRequestDialog({
|
|
|
5969
5979
|
}
|
|
5970
5980
|
) }),
|
|
5971
5981
|
/* @__PURE__ */ jsxs32(View43, { style: { marginTop: 16 }, children: [
|
|
5972
|
-
/* @__PURE__ */
|
|
5982
|
+
/* @__PURE__ */ jsx53(
|
|
5973
5983
|
View43,
|
|
5974
5984
|
{
|
|
5975
5985
|
style: [
|
|
@@ -5979,7 +5989,7 @@ function ConfirmMergeRequestDialog({
|
|
|
5979
5989
|
opacity: canConfirm ? 1 : 0.5
|
|
5980
5990
|
}
|
|
5981
5991
|
],
|
|
5982
|
-
children: /* @__PURE__ */
|
|
5992
|
+
children: /* @__PURE__ */ jsx53(
|
|
5983
5993
|
Pressable14,
|
|
5984
5994
|
{
|
|
5985
5995
|
accessibilityRole: "button",
|
|
@@ -5987,13 +5997,13 @@ function ConfirmMergeRequestDialog({
|
|
|
5987
5997
|
disabled: !canConfirm,
|
|
5988
5998
|
onPress: handleConfirm,
|
|
5989
5999
|
style: [fullWidthButtonBase, { flex: 1 }],
|
|
5990
|
-
children: /* @__PURE__ */
|
|
6000
|
+
children: /* @__PURE__ */ jsx53(Text, { style: { textAlign: "center", color: theme.colors.onPrimary }, children: "Approve Merge" })
|
|
5991
6001
|
}
|
|
5992
6002
|
)
|
|
5993
6003
|
}
|
|
5994
6004
|
),
|
|
5995
|
-
/* @__PURE__ */
|
|
5996
|
-
/* @__PURE__ */
|
|
6005
|
+
/* @__PURE__ */ jsx53(View43, { style: { height: 8 } }),
|
|
6006
|
+
/* @__PURE__ */ jsx53(
|
|
5997
6007
|
View43,
|
|
5998
6008
|
{
|
|
5999
6009
|
style: [
|
|
@@ -6005,7 +6015,7 @@ function ConfirmMergeRequestDialog({
|
|
|
6005
6015
|
opacity: isBuilding || !mergeRequest ? 0.5 : 1
|
|
6006
6016
|
}
|
|
6007
6017
|
],
|
|
6008
|
-
children: /* @__PURE__ */
|
|
6018
|
+
children: /* @__PURE__ */ jsx53(
|
|
6009
6019
|
Pressable14,
|
|
6010
6020
|
{
|
|
6011
6021
|
accessibilityRole: "button",
|
|
@@ -6013,13 +6023,13 @@ function ConfirmMergeRequestDialog({
|
|
|
6013
6023
|
disabled: isBuilding || !mergeRequest,
|
|
6014
6024
|
onPress: handleTestFirst,
|
|
6015
6025
|
style: [fullWidthButtonBase, { flex: 1 }],
|
|
6016
|
-
children: /* @__PURE__ */
|
|
6026
|
+
children: /* @__PURE__ */ jsx53(Text, { style: { textAlign: "center", color: theme.colors.text }, children: isBuilding ? "Preparing\u2026" : "Test edits first" })
|
|
6017
6027
|
}
|
|
6018
6028
|
)
|
|
6019
6029
|
}
|
|
6020
6030
|
),
|
|
6021
|
-
/* @__PURE__ */
|
|
6022
|
-
/* @__PURE__ */
|
|
6031
|
+
/* @__PURE__ */ jsx53(View43, { style: { height: 8 } }),
|
|
6032
|
+
/* @__PURE__ */ jsx53(
|
|
6023
6033
|
View43,
|
|
6024
6034
|
{
|
|
6025
6035
|
style: [
|
|
@@ -6030,14 +6040,14 @@ function ConfirmMergeRequestDialog({
|
|
|
6030
6040
|
borderColor: theme.colors.border
|
|
6031
6041
|
}
|
|
6032
6042
|
],
|
|
6033
|
-
children: /* @__PURE__ */
|
|
6043
|
+
children: /* @__PURE__ */ jsx53(
|
|
6034
6044
|
Pressable14,
|
|
6035
6045
|
{
|
|
6036
6046
|
accessibilityRole: "button",
|
|
6037
6047
|
accessibilityLabel: "Cancel",
|
|
6038
6048
|
onPress: close,
|
|
6039
6049
|
style: [fullWidthButtonBase, { flex: 1 }],
|
|
6040
|
-
children: /* @__PURE__ */
|
|
6050
|
+
children: /* @__PURE__ */ jsx53(Text, { style: { textAlign: "center", color: theme.colors.text }, children: "Cancel" })
|
|
6041
6051
|
}
|
|
6042
6052
|
)
|
|
6043
6053
|
}
|
|
@@ -6049,7 +6059,7 @@ function ConfirmMergeRequestDialog({
|
|
|
6049
6059
|
}
|
|
6050
6060
|
|
|
6051
6061
|
// src/studio/ui/ConfirmMergeFlow.tsx
|
|
6052
|
-
import { jsx as
|
|
6062
|
+
import { jsx as jsx54 } from "react/jsx-runtime";
|
|
6053
6063
|
function ConfirmMergeFlow({
|
|
6054
6064
|
visible,
|
|
6055
6065
|
onOpenChange,
|
|
@@ -6060,7 +6070,7 @@ function ConfirmMergeFlow({
|
|
|
6060
6070
|
onConfirm,
|
|
6061
6071
|
onTestFirst
|
|
6062
6072
|
}) {
|
|
6063
|
-
return /* @__PURE__ */
|
|
6073
|
+
return /* @__PURE__ */ jsx54(
|
|
6064
6074
|
ConfirmMergeRequestDialog,
|
|
6065
6075
|
{
|
|
6066
6076
|
visible,
|
|
@@ -6082,7 +6092,7 @@ function ConfirmMergeFlow({
|
|
|
6082
6092
|
}
|
|
6083
6093
|
|
|
6084
6094
|
// src/studio/ui/StudioOverlay.tsx
|
|
6085
|
-
import { Fragment as Fragment6, jsx as
|
|
6095
|
+
import { Fragment as Fragment6, jsx as jsx55, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
6086
6096
|
function StudioOverlay({
|
|
6087
6097
|
captureTargetRef,
|
|
6088
6098
|
app,
|
|
@@ -6171,13 +6181,13 @@ function StudioOverlay({
|
|
|
6171
6181
|
[closeSheet, onTestMr]
|
|
6172
6182
|
);
|
|
6173
6183
|
return /* @__PURE__ */ jsxs33(Fragment6, { children: [
|
|
6174
|
-
/* @__PURE__ */
|
|
6175
|
-
/* @__PURE__ */
|
|
6184
|
+
/* @__PURE__ */ jsx55(EdgeGlowFrame, { visible: isTesting, role: "accent", thickness: 40, intensity: 1 }),
|
|
6185
|
+
/* @__PURE__ */ jsx55(StudioBottomSheet, { open: sheetOpen, onOpenChange: setSheetOpen, children: /* @__PURE__ */ jsx55(
|
|
6176
6186
|
StudioSheetPager,
|
|
6177
6187
|
{
|
|
6178
6188
|
activePage,
|
|
6179
6189
|
width,
|
|
6180
|
-
preview: /* @__PURE__ */
|
|
6190
|
+
preview: /* @__PURE__ */ jsx55(
|
|
6181
6191
|
PreviewPanel,
|
|
6182
6192
|
{
|
|
6183
6193
|
app,
|
|
@@ -6203,7 +6213,7 @@ function StudioOverlay({
|
|
|
6203
6213
|
commentCountOverride: commentsCount ?? void 0
|
|
6204
6214
|
}
|
|
6205
6215
|
),
|
|
6206
|
-
chat: /* @__PURE__ */
|
|
6216
|
+
chat: /* @__PURE__ */ jsx55(
|
|
6207
6217
|
ChatPanel,
|
|
6208
6218
|
{
|
|
6209
6219
|
messages: chatMessages,
|
|
@@ -6226,7 +6236,7 @@ function StudioOverlay({
|
|
|
6226
6236
|
)
|
|
6227
6237
|
}
|
|
6228
6238
|
) }),
|
|
6229
|
-
/* @__PURE__ */
|
|
6239
|
+
/* @__PURE__ */ jsx55(
|
|
6230
6240
|
FloatingDraggableButton,
|
|
6231
6241
|
{
|
|
6232
6242
|
visible: !sheetOpen && !drawing,
|
|
@@ -6234,10 +6244,10 @@ function StudioOverlay({
|
|
|
6234
6244
|
badgeCount: incomingMergeRequests.length,
|
|
6235
6245
|
onPress: toggleSheet,
|
|
6236
6246
|
isLoading: (app == null ? void 0 : app.status) === "editing",
|
|
6237
|
-
children: /* @__PURE__ */
|
|
6247
|
+
children: /* @__PURE__ */ jsx55(View44, { style: { width: 28, height: 28, alignItems: "center", justifyContent: "center" }, children: /* @__PURE__ */ jsx55(MergeIcon, { width: 24, height: 24, color: theme.colors.floatingContent }) })
|
|
6238
6248
|
}
|
|
6239
6249
|
),
|
|
6240
|
-
/* @__PURE__ */
|
|
6250
|
+
/* @__PURE__ */ jsx55(
|
|
6241
6251
|
DrawModeOverlay,
|
|
6242
6252
|
{
|
|
6243
6253
|
visible: drawing,
|
|
@@ -6246,7 +6256,7 @@ function StudioOverlay({
|
|
|
6246
6256
|
onCapture: handleDrawCapture
|
|
6247
6257
|
}
|
|
6248
6258
|
),
|
|
6249
|
-
/* @__PURE__ */
|
|
6259
|
+
/* @__PURE__ */ jsx55(
|
|
6250
6260
|
ConfirmMergeFlow,
|
|
6251
6261
|
{
|
|
6252
6262
|
visible: Boolean(confirmMr),
|
|
@@ -6259,7 +6269,7 @@ function StudioOverlay({
|
|
|
6259
6269
|
onTestFirst: handleTestMr
|
|
6260
6270
|
}
|
|
6261
6271
|
),
|
|
6262
|
-
/* @__PURE__ */
|
|
6272
|
+
/* @__PURE__ */ jsx55(
|
|
6263
6273
|
AppCommentsSheet,
|
|
6264
6274
|
{
|
|
6265
6275
|
appId: commentsAppId,
|
|
@@ -6272,7 +6282,7 @@ function StudioOverlay({
|
|
|
6272
6282
|
}
|
|
6273
6283
|
|
|
6274
6284
|
// src/studio/ComergeStudio.tsx
|
|
6275
|
-
import { jsx as
|
|
6285
|
+
import { jsx as jsx56, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
6276
6286
|
function ComergeStudio({
|
|
6277
6287
|
appId,
|
|
6278
6288
|
appKey = "MicroMain",
|
|
@@ -6289,7 +6299,7 @@ function ComergeStudio({
|
|
|
6289
6299
|
setPendingRuntimeTargetAppId(null);
|
|
6290
6300
|
}, [appId]);
|
|
6291
6301
|
const captureTargetRef = React38.useRef(null);
|
|
6292
|
-
return /* @__PURE__ */
|
|
6302
|
+
return /* @__PURE__ */ jsx56(StudioBootstrap, { children: ({ userId }) => /* @__PURE__ */ jsx56(BottomSheetModalProvider, { children: /* @__PURE__ */ jsx56(
|
|
6293
6303
|
ComergeStudioInner,
|
|
6294
6304
|
{
|
|
6295
6305
|
userId,
|
|
@@ -6382,9 +6392,9 @@ function ComergeStudioInner({
|
|
|
6382
6392
|
const payloadType = typeof ((_a = last.payload) == null ? void 0 : _a.type) === "string" ? String(last.payload.type) : void 0;
|
|
6383
6393
|
return payloadType !== "outcome";
|
|
6384
6394
|
}, [thread.raw]);
|
|
6385
|
-
return /* @__PURE__ */
|
|
6386
|
-
/* @__PURE__ */
|
|
6387
|
-
/* @__PURE__ */
|
|
6395
|
+
return /* @__PURE__ */ jsx56(View45, { style: [{ flex: 1 }, style], children: /* @__PURE__ */ jsxs34(View45, { ref: captureTargetRef, style: { flex: 1 }, collapsable: false, children: [
|
|
6396
|
+
/* @__PURE__ */ jsx56(RuntimeRenderer, { appKey, bundlePath: bundle.bundlePath, renderToken: bundle.renderToken }),
|
|
6397
|
+
/* @__PURE__ */ jsx56(
|
|
6388
6398
|
StudioOverlay,
|
|
6389
6399
|
{
|
|
6390
6400
|
captureTargetRef,
|