@adminide-stack/yantra-mobile 12.0.125-alpha.0 → 12.0.125
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/lib/features/canvas/AudioEditorExperience.js +207 -109
- package/lib/features/canvas/AudioEditorExperience.js.map +1 -1
- package/lib/features/canvas/CanvasAgentChatPane.js +87 -72
- package/lib/features/canvas/CanvasAgentChatPane.js.map +1 -1
- package/lib/features/canvas/CanvasBoardsGrid.js +494 -387
- package/lib/features/canvas/CanvasBoardsGrid.js.map +1 -1
- package/lib/features/canvas/CanvasChatResultCard.js +78 -59
- package/lib/features/canvas/CanvasChatResultCard.js.map +1 -1
- package/lib/features/canvas/CanvasEditToolsPanel.js +126 -84
- package/lib/features/canvas/CanvasEditToolsPanel.js.map +1 -1
- package/lib/features/canvas/CanvasExperience.js +108 -126
- package/lib/features/canvas/CanvasExperience.js.map +1 -1
- package/lib/features/canvas/CanvasGeneratePanel.js +178 -166
- package/lib/features/canvas/CanvasGeneratePanel.js.map +1 -1
- package/lib/features/canvas/CanvasLibrarySheet.js +119 -123
- package/lib/features/canvas/CanvasLibrarySheet.js.map +1 -1
- package/lib/features/canvas/CanvasLooksPanel.js +113 -89
- package/lib/features/canvas/CanvasLooksPanel.js.map +1 -1
- package/lib/features/canvas/CanvasModelPicker.js +79 -79
- package/lib/features/canvas/CanvasModelPicker.js.map +1 -1
- package/lib/features/canvas/CanvasTasksPanel.js +193 -128
- package/lib/features/canvas/CanvasTasksPanel.js.map +1 -1
- package/lib/features/canvas/CanvasTemplatesPanel.js +106 -94
- package/lib/features/canvas/CanvasTemplatesPanel.js.map +1 -1
- package/lib/features/canvas/CanvasToolDock.js +195 -127
- package/lib/features/canvas/CanvasToolDock.js.map +1 -1
- package/lib/features/canvas/FrameExtractorExperience.js +163 -100
- package/lib/features/canvas/FrameExtractorExperience.js.map +1 -1
- package/lib/features/canvas/GeneratorReferenceSlots.js +132 -69
- package/lib/features/canvas/GeneratorReferenceSlots.js.map +1 -1
- package/lib/features/canvas/ImageEditorExperience.js +278 -209
- package/lib/features/canvas/ImageEditorExperience.js.map +1 -1
- package/lib/features/canvas/InfluencerStudioExperience.js +167 -125
- package/lib/features/canvas/InfluencerStudioExperience.js.map +1 -1
- package/lib/features/canvas/MoodboardExperience.js +102 -85
- package/lib/features/canvas/MoodboardExperience.js.map +1 -1
- package/lib/features/canvas/NativeCanvasViewer.js +203 -192
- package/lib/features/canvas/NativeCanvasViewer.js.map +1 -1
- package/lib/features/canvas/PromoContextFields.js +125 -92
- package/lib/features/canvas/PromoContextFields.js.map +1 -1
- package/lib/features/canvas/SetStudioExperience.js +225 -143
- package/lib/features/canvas/SetStudioExperience.js.map +1 -1
- package/lib/features/canvas/VideoClipsExperience.js +126 -92
- package/lib/features/canvas/VideoClipsExperience.js.map +1 -1
- package/lib/features/canvas/VideoEditExperience.js +154 -142
- package/lib/features/canvas/VideoEditExperience.js.map +1 -1
- package/lib/features/canvas/VideoEditorExperience.js +551 -492
- package/lib/features/canvas/VideoEditorExperience.js.map +1 -1
- package/lib/features/canvas/VideoGeneratorExperience.js +284 -131
- package/lib/features/canvas/VideoGeneratorExperience.js.map +1 -1
- package/lib/features/canvas/canvasTasks.js +7 -3
- package/lib/features/canvas/canvasTasks.js.map +1 -1
- package/lib/features/canvas/canvasTheme.js +265 -0
- package/lib/features/canvas/canvasTheme.js.map +1 -0
- package/lib/features/canvas/canvasUi.js +381 -0
- package/lib/features/canvas/canvasUi.js.map +1 -0
- package/lib/features/canvas/recorder/CameraRecorderExperience.js +109 -52
- package/lib/features/canvas/recorder/CameraRecorderExperience.js.map +1 -1
- package/lib/features/canvas/serverTasks.js +1 -1
- package/lib/features/canvas/serverTasks.js.map +1 -1
- package/lib/features/canvas/set/SetViewportWebView.js +1 -1
- package/lib/features/canvas/set/SetViewportWebView.js.map +1 -1
- package/lib/features/canvas/videoEditor/BlurBoxOverlay.js +8 -7
- package/lib/features/canvas/videoEditor/BlurBoxOverlay.js.map +1 -1
- package/lib/features/canvas/videoEditor/ExportTaskCard.js +44 -41
- package/lib/features/canvas/videoEditor/ExportTaskCard.js.map +1 -1
- package/lib/features/canvas/videoEditor/agent/AgentCutPane.js +50 -45
- package/lib/features/canvas/videoEditor/agent/AgentCutPane.js.map +1 -1
- package/lib/features/canvas/videoEditor/exportTask.js +3 -2
- package/lib/features/canvas/videoEditor/exportTask.js.map +1 -1
- package/lib/features/canvas/videoEditor/formWidgets.js +116 -64
- package/lib/features/canvas/videoEditor/formWidgets.js.map +1 -1
- package/lib/features/canvas/videoEditor/produce/ProduceVideoSheet.js +77 -63
- package/lib/features/canvas/videoEditor/produce/ProduceVideoSheet.js.map +1 -1
- package/lib/features/canvas/videoEditor/tools/ToolsDrawer.js +95 -79
- package/lib/features/canvas/videoEditor/tools/ToolsDrawer.js.map +1 -1
- package/lib/features/design/DesignEditorExperience.js +241 -160
- package/lib/features/design/DesignEditorExperience.js.map +1 -1
- package/lib/features/design/DesignExperience.js +300 -143
- package/lib/features/design/DesignExperience.js.map +1 -1
- package/lib/features/webbuilder/WebBuilderExperience.js +1 -1
- package/lib/features/webbuilder/WebBuilderExperience.js.map +1 -1
- package/lib/features/webbuilder/buildFragments.js +3 -2
- package/lib/features/webbuilder/buildFragments.js.map +1 -1
- package/lib/features/webbuilder/components/PublishSheet.js +1 -1
- package/lib/features/webbuilder/components/PublishSheet.js.map +1 -1
- package/lib/features/webbuilder/webbuilderPrompts.js +2 -5
- package/lib/features/webbuilder/webbuilderPrompts.js.map +1 -1
- package/lib/screens/WebBuilderNative/sandboxProxyApi.js +120 -0
- package/lib/screens/WebBuilderNative/sandboxProxyApi.js.map +1 -0
- package/lib/screens/WebBuilderNative/useRestoredSandboxes.js.map +1 -1
- package/lib/screens/WebBuilderNative/useWebBuilderHost.js +26 -4
- package/lib/screens/WebBuilderNative/useWebBuilderHost.js.map +1 -1
- package/lib/screens/WebBuilderNative/webbuilderTransport.js +110 -7
- package/lib/screens/WebBuilderNative/webbuilderTransport.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CanvasModelPicker.js","sources":["../../../src/features/canvas/CanvasModelPicker.tsx"],"sourcesContent":["/**\n * Native twin of surface-kit `ModelPicker` — grouped Auto / Image / Video / Audio.\n */\nimport React from 'react';\nimport { Pressable, ScrollView, StyleSheet, Text, View, Platform } from 'react-native';\nimport { MaterialCommunityIcons } from '@expo/vector-icons';\nimport { groupCanvasChatModels, type CanvasChatModelOption } from './canvasAgentChat';\n\nexport function CanvasModelPicker({\n models,\n selectedId,\n onSelect,\n onClose,\n title = 'Select model',\n}: {\n title?: string;\n models: readonly CanvasChatModelOption[];\n selectedId?: string;\n onSelect: (id: string) => void;\n onClose: () => void;\n}) {\n const selected = models.find((m) => m.id === selectedId);\n const groups = groupCanvasChatModels(models);\n\n return (\n <View style={styles.scrim} pointerEvents=\"auto\">\n <Pressable style={StyleSheet.absoluteFill} onPress={onClose} accessibilityLabel=\"Close model picker\" />\n <View style={styles.sheet}>\n <View style={styles.head}>\n <MaterialCommunityIcons name=\"chip\" size={16} color=\"#64748b\" />\n <Text style={styles.headTitle}>{title}</Text>\n <Pressable\n onPress={onClose}\n hitSlop={10}\n accessibilityLabel=\"Close model picker\"\n style={styles.close}\n >\n <MaterialCommunityIcons name=\"close\" size={18} color=\"#64748b\" />\n </Pressable>\n </View>\n {selected ? (\n <View style={styles.selectedBar}>\n <Text style={styles.selectedKicker}>Selected</Text>\n <Text style={styles.selectedTitle} numberOfLines={1}>\n {selected.title}\n </Text>\n </View>\n ) : null}\n <ScrollView\n style={styles.list}\n contentContainerStyle={styles.listBody}\n keyboardShouldPersistTaps=\"handled\"\n >\n {groups.map(({ group, options }) => (\n <View key={group} style={styles.group}>\n <Text style={styles.groupLabel}>{group}</Text>\n {options.map((m) => {\n const active = m.id === selectedId;\n return (\n <Pressable\n key={m.id}\n onPress={() => {\n onSelect(m.id);\n onClose();\n }}\n style={[styles.row, active && styles.rowOn]}\n accessibilityRole=\"button\"\n accessibilityState={{ selected: active }}\n >\n <View style={styles.rowBody}>\n <View style={styles.rowTitleLine}>\n <Text style={styles.rowTitle} numberOfLines={1}>\n {m.title}\n </Text>\n {active ? (\n <MaterialCommunityIcons name=\"check\" size={16} color=\"#0f172a\" />\n ) : null}\n </View>\n <Text style={styles.rowId} numberOfLines={1}>\n {m.id}\n </Text>\n {m.description ? (\n <Text style={styles.rowDesc} numberOfLines={2}>\n {m.description}\n </Text>\n ) : null}\n </View>\n </Pressable>\n );\n })}\n </View>\n ))}\n </ScrollView>\n </View>\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n scrim: {\n ...StyleSheet.absoluteFillObject,\n zIndex: 40,\n elevation: 40,\n backgroundColor: 'rgba(0,0,0,0.4)',\n justifyContent: 'center',\n padding: 16,\n },\n sheet: {\n maxHeight: '80%',\n borderRadius: 16,\n backgroundColor: '#fff',\n borderWidth: StyleSheet.hairlineWidth,\n borderColor: '#e2e8f0',\n overflow: 'hidden',\n },\n head: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 8,\n paddingHorizontal: 16,\n paddingVertical: 12,\n borderBottomWidth: StyleSheet.hairlineWidth,\n borderBottomColor: '#e2e8f0',\n },\n headTitle: { flex: 1, fontSize: 14, fontWeight: '600', color: '#0f172a' },\n close: { padding: 4 },\n selectedBar: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 8,\n paddingHorizontal: 16,\n paddingVertical: 8,\n backgroundColor: '#f8fafc',\n borderBottomWidth: StyleSheet.hairlineWidth,\n borderBottomColor: '#e2e8f0',\n },\n selectedKicker: {\n fontSize: 11,\n fontWeight: '600',\n letterSpacing: 0.6,\n textTransform: 'uppercase',\n color: '#64748b',\n },\n selectedTitle: { flex: 1, fontSize: 14, fontWeight: '500', color: '#0f172a' },\n list: { maxHeight: 420 },\n listBody: { padding: 8, paddingBottom: 16 },\n group: { marginBottom: 8 },\n groupLabel: {\n paddingHorizontal: 8,\n paddingVertical: 4,\n fontSize: 11,\n fontWeight: '600',\n letterSpacing: 0.6,\n textTransform: 'uppercase',\n color: '#94a3b8',\n },\n row: { borderRadius: 10, paddingHorizontal: 12, paddingVertical: 8 },\n rowOn: { backgroundColor: '#f1f5f9' },\n rowBody: { minWidth: 0, flex: 1 },\n rowTitleLine: { flexDirection: 'row', alignItems: 'center', gap: 8 },\n rowTitle: { flex: 1, fontSize: 14, fontWeight: '600', color: '#0f172a' },\n rowId: {\n marginTop: 2,\n fontSize: 11,\n fontFamily: Platform.OS === 'ios' ? 'Menlo' : 'monospace',\n color: '#94a3b8',\n },\n rowDesc: { marginTop: 2, fontSize: 12, color: '#94a3b8' },\n});\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CanvasModelPicker.js","sources":["../../../src/features/canvas/CanvasModelPicker.tsx"],"sourcesContent":["/**\n * Native twin of surface-kit `ModelPicker` — grouped Auto / Image / Video / Audio.\n */\nimport React, { useMemo } from 'react';\nimport { ScrollView, StyleSheet, Text, View, Platform } from 'react-native';\nimport { MaterialCommunityIcons } from '@expo/vector-icons';\nimport { groupCanvasChatModels, type CanvasChatModelOption } from './canvasAgentChat';\nimport { useCanvasTheme, themedStyles, type CanvasPalette } from './canvasTheme';\nimport { Pressable, HIT, RADIUS, SPACE, TYPE, pressedStyle } from './canvasUi';\n\nexport function CanvasModelPicker({\n models,\n selectedId,\n onSelect,\n onClose,\n title = 'Select model',\n}: {\n title?: string;\n models: readonly CanvasChatModelOption[];\n selectedId?: string;\n onSelect: (id: string) => void;\n onClose: () => void;\n}) {\n const theme = useCanvasTheme();\n const styles = useMemo(() => makeStyles(theme), [theme]);\n const selected = models.find((m) => m.id === selectedId);\n const groups = groupCanvasChatModels(models);\n\n return (\n <View style={styles.scrim} pointerEvents=\"auto\">\n <Pressable style={StyleSheet.absoluteFill} onPress={onClose} accessibilityLabel=\"Close model picker\" />\n <View style={styles.sheet}>\n <View style={styles.head}>\n <Text style={styles.headTitle}>{title}</Text>\n <Pressable\n onPress={onClose}\n hitSlop={10}\n accessibilityLabel=\"Close model picker\"\n style={({ pressed }) => [styles.close, pressedStyle(pressed)]}\n >\n <MaterialCommunityIcons name=\"close\" size={18} color={theme.foreground} />\n </Pressable>\n </View>\n {selected ? (\n <View style={styles.selectedBar}>\n <Text style={styles.selectedKicker}>Selected</Text>\n <Text style={styles.selectedTitle} numberOfLines={1}>\n {selected.title}\n </Text>\n </View>\n ) : null}\n <ScrollView\n style={styles.list}\n contentContainerStyle={styles.listBody}\n keyboardShouldPersistTaps=\"handled\"\n >\n {groups.map(({ group, options }) => (\n <View key={group} style={styles.group}>\n <Text style={styles.groupLabel}>{group}</Text>\n {options.map((m) => {\n const active = m.id === selectedId;\n return (\n <Pressable\n key={m.id}\n onPress={() => {\n onSelect(m.id);\n onClose();\n }}\n style={({ pressed }) => [\n styles.row,\n active && styles.rowOn,\n pressedStyle(pressed),\n ]}\n accessibilityRole=\"button\"\n accessibilityState={{ selected: active }}\n >\n <View style={styles.rowBody}>\n <Text style={styles.rowTitle} numberOfLines={1}>\n {m.title}\n </Text>\n {m.description ? (\n <Text style={styles.rowDesc} numberOfLines={1}>\n {m.description}\n </Text>\n ) : (\n <Text style={styles.rowId} numberOfLines={1}>\n {m.id}\n </Text>\n )}\n </View>\n <View style={[styles.check, active && styles.checkOn]}>\n {active ? (\n <MaterialCommunityIcons\n name=\"check\"\n size={14}\n color={theme.background}\n />\n ) : null}\n </View>\n </Pressable>\n );\n })}\n </View>\n ))}\n </ScrollView>\n </View>\n </View>\n );\n}\n\nconst makeStyles = themedStyles((theme: CanvasPalette) =>\n StyleSheet.create({\n scrim: {\n ...StyleSheet.absoluteFillObject,\n zIndex: 40,\n elevation: 40,\n backgroundColor: 'rgba(0,0,0,0.45)',\n justifyContent: 'center',\n padding: SPACE.lg,\n },\n sheet: {\n maxHeight: '80%',\n borderRadius: RADIUS.xl,\n backgroundColor: theme.surface,\n overflow: 'hidden',\n },\n head: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: SPACE.sm,\n paddingLeft: SPACE.xl - 4,\n paddingRight: SPACE.sm,\n paddingTop: SPACE.md,\n paddingBottom: SPACE.xs,\n },\n headTitle: { ...TYPE.title, flex: 1, color: theme.foreground },\n close: {\n width: 36,\n height: 36,\n borderRadius: 18,\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: theme.card,\n },\n selectedBar: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: SPACE.xs + 2,\n paddingHorizontal: SPACE.xl - 4,\n paddingBottom: SPACE.sm,\n },\n selectedKicker: { ...TYPE.caption, color: theme.mutedForeground },\n selectedTitle: { ...TYPE.caption, flex: 1, fontWeight: '600', color: theme.foreground },\n list: { maxHeight: 440 },\n listBody: { paddingHorizontal: SPACE.sm, paddingBottom: SPACE.md },\n group: { marginTop: SPACE.sm },\n groupLabel: {\n ...TYPE.caption,\n paddingHorizontal: SPACE.md,\n paddingVertical: SPACE.xs + 2,\n color: theme.mutedForeground,\n },\n row: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: SPACE.md,\n minHeight: HIT + 12,\n borderRadius: RADIUS.md + 2,\n paddingHorizontal: SPACE.md,\n paddingVertical: SPACE.sm + 2,\n },\n rowOn: { backgroundColor: theme.card },\n rowBody: { minWidth: 0, flex: 1 },\n rowTitle: { ...TYPE.body, fontWeight: '600', color: theme.foreground },\n rowId: {\n marginTop: 2,\n fontSize: 11,\n fontFamily: Platform.OS === 'ios' ? 'Menlo' : 'monospace',\n color: theme.mutedForeground,\n },\n rowDesc: { ...TYPE.caption, fontWeight: '400', marginTop: 2, color: theme.mutedForeground },\n check: {\n width: 22,\n height: 22,\n borderRadius: 11,\n alignItems: 'center',\n justifyContent: 'center',\n },\n checkOn: { backgroundColor: theme.foreground },\n }),\n);\n"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {useState,useRef,useEffect,useCallback}from'react';import {
|
|
1
|
+
import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {useMemo,useState,useRef,useEffect,useCallback}from'react';import {View,Text,ScrollView,StyleSheet,Image}from'react-native';import {MaterialCommunityIcons}from'@expo/vector-icons';import {listCanvasTasks,hydrateCanvasTasks,subscribeCanvasTasks,dismissTask,markTaskDelivered,isTerminal,startPromoTask}from'./canvasTasks.js';import {useCanvasTasksHost,syncCanvasTasks,buildTaskRows,isRowRunningAt,SYNC_RUNNING_MS,SYNC_IDLE_MS,formatWorked,removeRemoteRow,claimRow,renderProgressPct,renderTimeLeft}from'./canvasTaskSync.js';import {isExportTask,DEADLINE_VERDICT_ERROR,jobBoardId,isStaleJob,jobDeadline,isDeadlineVerdict,serverProgressLine}from'./serverTasks.js';import {useCanvasTheme,themedStyles}from'./canvasTheme.js';import {Pressable,pressedStyle,RADIUS,SPACE,CoverPlaceholder,Skeleton,TYPE}from'./canvasUi.js';var __defProp = Object.defineProperty;
|
|
2
2
|
var __defProps = Object.defineProperties;
|
|
3
3
|
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
4
|
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
@@ -31,6 +31,8 @@ function CanvasTasksPanel({
|
|
|
31
31
|
onClose,
|
|
32
32
|
onPlaceResult
|
|
33
33
|
}) {
|
|
34
|
+
const theme = useCanvasTheme();
|
|
35
|
+
const styles = useMemo(() => makeStyles(theme), [theme]);
|
|
34
36
|
const host = useCanvasTasksHost();
|
|
35
37
|
const [local, setLocal] = useState(() => listCanvasTasks());
|
|
36
38
|
const [remote, setRemote] = useState([]);
|
|
@@ -140,9 +142,14 @@ function CanvasTasksPanel({
|
|
|
140
142
|
return /* @__PURE__ */ jsxs(View, { style: styles.root, children: [
|
|
141
143
|
/* @__PURE__ */ jsxs(View, { style: styles.head, children: [
|
|
142
144
|
/* @__PURE__ */ jsx(Text, { style: styles.title, children: "Tasks" }),
|
|
143
|
-
/* @__PURE__ */ jsx(Pressable, { onPress: onClose, hitSlop: 8,
|
|
145
|
+
/* @__PURE__ */ jsx(Pressable, { onPress: onClose, hitSlop: 8, style: ({
|
|
146
|
+
pressed
|
|
147
|
+
}) => [styles.close, pressedStyle(pressed)], accessibilityLabel: "Close tasks", children: /* @__PURE__ */ jsx(MaterialCommunityIcons, { name: "close", size: 18, color: theme.foreground }) })
|
|
144
148
|
] }),
|
|
145
|
-
/* @__PURE__ */ jsx(ScrollView, { contentContainerStyle: styles.list, children: rows.length === 0 ? /* @__PURE__ */
|
|
149
|
+
/* @__PURE__ */ jsx(ScrollView, { contentContainerStyle: styles.list, children: rows.length === 0 ? /* @__PURE__ */ jsxs(View, { style: styles.emptyBox, children: [
|
|
150
|
+
/* @__PURE__ */ jsx(View, { style: styles.emptyIcon, children: /* @__PURE__ */ jsx(MaterialCommunityIcons, { name: "progress-clock", size: 24, color: theme.mutedForeground }) }),
|
|
151
|
+
/* @__PURE__ */ jsx(Text, { style: styles.empty, children: "Nothing running. A marketing video, an export or a lip sync shows up here when you start one, here or on the web, and keeps going while you work on something else." })
|
|
152
|
+
] }) : rows.map((row) => /* @__PURE__ */ jsx(RowCard, { row, now, openBoardId: host.openBoardId, boardLabel: host.boardLabel, onPlace: () => void place(row), onOpenBoard: host.openBoard, onDismiss: () => dismiss(row), onRetry: retry(row) }, row.key)) })
|
|
146
153
|
] });
|
|
147
154
|
}
|
|
148
155
|
const isVisualResult = (r) => r.kind === "image" || r.kind === "video";
|
|
@@ -167,15 +174,15 @@ function viewOf(row, now) {
|
|
|
167
174
|
boardId: task.boardId,
|
|
168
175
|
media: ((_a = task.result) == null ? void 0 : _a.url) ? {
|
|
169
176
|
url: task.result.url,
|
|
170
|
-
kind:
|
|
177
|
+
kind: "video"
|
|
171
178
|
} : void 0,
|
|
172
179
|
delivered: Boolean(task.delivered),
|
|
173
|
-
elapsedMs: ((
|
|
180
|
+
elapsedMs: ((_b = task.endedAt) != null ? _b : now) - ((_c = task.startedAt) != null ? _c : task.createdAt)
|
|
174
181
|
}, isExport ? {
|
|
175
182
|
exportInfo: {
|
|
176
183
|
step: loose.step,
|
|
177
|
-
projectedMs: (
|
|
178
|
-
notice: (_f = loose.
|
|
184
|
+
projectedMs: (_d = loose.render) == null ? void 0 : _d.projectedMs,
|
|
185
|
+
notice: (_f = loose.notice) != null ? _f : (_e = loose.render) == null ? void 0 : _e.notice
|
|
179
186
|
}
|
|
180
187
|
} : {}), {
|
|
181
188
|
elsewhere: false
|
|
@@ -212,46 +219,61 @@ function RowCard({
|
|
|
212
219
|
onRetry
|
|
213
220
|
}) {
|
|
214
221
|
var _a;
|
|
222
|
+
const theme = useCanvasTheme();
|
|
223
|
+
const styles = useMemo(() => makeStyles(theme), [theme]);
|
|
215
224
|
const view = viewOf(row, now);
|
|
216
225
|
const worked = formatWorked(view.elapsedMs);
|
|
217
226
|
const onThisBoard = !view.boardId || view.boardId === openBoardId;
|
|
218
227
|
const board = view.boardId ? boardLabel == null ? void 0 : boardLabel(view.boardId) : void 0;
|
|
219
228
|
const icon = row.kind === "task" ? isExportTask(row.task) ? "movie-open-outline" : "bullhorn-outline" : row.job.lane === "lipsync" ? "account-voice" : row.job.lane === "promo" || row.job.lane === "promo-design" ? "bullhorn-outline" : "creation";
|
|
220
229
|
return /* @__PURE__ */ jsxs(View, { style: styles.card, testID: `task-card-${row.key}`, children: [
|
|
221
|
-
/* @__PURE__ */
|
|
222
|
-
|
|
223
|
-
/* @__PURE__ */
|
|
230
|
+
/* @__PURE__ */ jsx(View, { style: styles.cardLead, children: view.state === "succeeded" && view.media ? /* @__PURE__ */ jsx(ResultThumb, { url: view.media.url, kind: view.media.kind }) : /* @__PURE__ */ jsx(View, { style: [styles.thumb, styles.thumbGlyph], children: /* @__PURE__ */ jsx(MaterialCommunityIcons, { name: icon, size: 22, color: theme.mutedForeground }) }) }),
|
|
231
|
+
/* @__PURE__ */ jsxs(View, { style: styles.cardBody, children: [
|
|
232
|
+
/* @__PURE__ */ jsxs(View, { style: styles.cardHead, children: [
|
|
233
|
+
/* @__PURE__ */ jsx(Text, { style: styles.cardTitle, numberOfLines: 1, children: view.title }),
|
|
234
|
+
view.state !== "submitting" ? /* @__PURE__ */ jsx(Pressable, { onPress: onDismiss, hitSlop: 12, style: ({
|
|
235
|
+
pressed
|
|
236
|
+
}) => [styles.dismiss, pressedStyle(pressed)], accessibilityLabel: "Dismiss", children: /* @__PURE__ */ jsx(MaterialCommunityIcons, { name: "close", size: 16, color: theme.mutedForeground }) }) : null
|
|
237
|
+
] }),
|
|
224
238
|
/* @__PURE__ */ jsx(StateChip, { state: view.state, worked }),
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
view.
|
|
242
|
-
/* @__PURE__ */ jsx(View, { style: styles.actions, children: !view.media ? null : view.delivered && onThisBoard ? /* @__PURE__ */ jsx(Text, { style: styles.done, children: "On this board" }) : onThisBoard ? /* @__PURE__ */ jsx(Pressable, { onPress: onPlace, style:
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
239
|
+
!onThisBoard ? /* @__PURE__ */ jsxs(Text, { style: styles.line, children: [
|
|
240
|
+
"on ",
|
|
241
|
+
board ? `\u201C${board}\u201D` : "another board"
|
|
242
|
+
] }) : null,
|
|
243
|
+
view.elsewhere ? /* @__PURE__ */ jsx(Text, { style: styles.line, children: "Started on another device" }) : null,
|
|
244
|
+
view.state === "stale" ? /* @__PURE__ */ jsxs(View, { style: styles.staleBox, children: [
|
|
245
|
+
/* @__PURE__ */ jsx(Text, { style: styles.error, children: STALE_LINE }),
|
|
246
|
+
/* @__PURE__ */ jsxs(View, { style: styles.actions, children: [
|
|
247
|
+
onRetry ? /* @__PURE__ */ jsx(Pressable, { onPress: onRetry, style: ({
|
|
248
|
+
pressed
|
|
249
|
+
}) => [styles.primary, pressedStyle(pressed)], children: /* @__PURE__ */ jsx(Text, { style: styles.primaryLabel, children: "Run again" }) }) : null,
|
|
250
|
+
/* @__PURE__ */ jsx(Pressable, { onPress: onDismiss, style: ({
|
|
251
|
+
pressed
|
|
252
|
+
}) => [styles.ghost, pressedStyle(pressed)], children: /* @__PURE__ */ jsx(Text, { style: styles.ghostLabel, children: "Dismiss" }) })
|
|
253
|
+
] })
|
|
254
|
+
] }) : null,
|
|
255
|
+
view.state === "running" || view.state === "submitting" ? /* @__PURE__ */ jsx(Fragment, { children: view.exportInfo ? /* @__PURE__ */ jsx(ExportProgress, { info: view.exportInfo, elapsedMs: view.elapsedMs, line: view.line }) : view.line ? /* @__PURE__ */ jsx(Text, { style: styles.line, numberOfLines: 2, children: view.line }) : null }) : null,
|
|
256
|
+
view.state === "succeeded" ? /* @__PURE__ */ jsx(View, { style: styles.actions, children: !view.media ? null : view.delivered && onThisBoard ? /* @__PURE__ */ jsx(Text, { style: styles.done, children: "On this board" }) : onThisBoard ? /* @__PURE__ */ jsx(Pressable, { onPress: onPlace, style: ({
|
|
257
|
+
pressed
|
|
258
|
+
}) => [styles.primary, pressedStyle(pressed)], children: /* @__PURE__ */ jsx(Text, { style: styles.primaryLabel, children: "Place on board" }) }) : onOpenBoard && view.boardId ? /* @__PURE__ */ jsx(Pressable, { onPress: () => onOpenBoard(view.boardId), style: ({
|
|
259
|
+
pressed
|
|
260
|
+
}) => [styles.primary, pressedStyle(pressed)], children: /* @__PURE__ */ jsx(Text, { style: styles.primaryLabel, children: "Open board" }) }) : null }) : null,
|
|
261
|
+
view.state === "failed" ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
262
|
+
/* @__PURE__ */ jsx(Text, { style: styles.error, children: view.error || "The run could not finish." }),
|
|
263
|
+
((_a = view.exportInfo) == null ? void 0 : _a.notice) ? /* @__PURE__ */ jsx(Text, { style: styles.notice, children: view.exportInfo.notice }) : null,
|
|
264
|
+
onRetry ? /* @__PURE__ */ jsx(View, { style: styles.actions, children: /* @__PURE__ */ jsx(Pressable, { onPress: onRetry, style: ({
|
|
265
|
+
pressed
|
|
266
|
+
}) => [styles.primary, pressedStyle(pressed)], children: /* @__PURE__ */ jsx(Text, { style: styles.primaryLabel, children: "Run again" }) }) }) : null
|
|
267
|
+
] }) : null
|
|
268
|
+
] })
|
|
249
269
|
] });
|
|
250
270
|
}
|
|
251
271
|
function StateChip({
|
|
252
272
|
state,
|
|
253
273
|
worked
|
|
254
274
|
}) {
|
|
275
|
+
const theme = useCanvasTheme();
|
|
276
|
+
const styles = useMemo(() => makeStyles(theme), [theme]);
|
|
255
277
|
if (state === "stale") return /* @__PURE__ */ jsx(Text, { style: [styles.badge, styles.badgeFail], children: "Stopped responding" });
|
|
256
278
|
if (state === "succeeded") return /* @__PURE__ */ jsxs(Text, { style: [styles.badge, styles.badgeOk], children: [
|
|
257
279
|
"Ready \xB7 ",
|
|
@@ -268,6 +290,8 @@ function ExportProgress({
|
|
|
268
290
|
elapsedMs,
|
|
269
291
|
line
|
|
270
292
|
}) {
|
|
293
|
+
const theme = useCanvasTheme();
|
|
294
|
+
const styles = useMemo(() => makeStyles(theme), [theme]);
|
|
271
295
|
const pct = Math.round(renderProgressPct(info.step, info.projectedMs, elapsedMs));
|
|
272
296
|
return /* @__PURE__ */ jsxs(View, { style: styles.progressBox, children: [
|
|
273
297
|
/* @__PURE__ */ jsx(Text, { style: styles.line, numberOfLines: 1, children: info.step ? `Step ${info.step.index} of ${info.step.total} \xB7 ${info.step.label}` : line || "Rendering\u2026" }),
|
|
@@ -286,12 +310,21 @@ function ResultThumb({
|
|
|
286
310
|
url,
|
|
287
311
|
kind
|
|
288
312
|
}) {
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
313
|
+
const theme = useCanvasTheme();
|
|
314
|
+
const styles = useMemo(() => makeStyles(theme), [theme]);
|
|
315
|
+
const [state, setState] = useState("loading");
|
|
316
|
+
if (kind === "image") {
|
|
317
|
+
return /* @__PURE__ */ jsxs(View, { style: [styles.thumb, styles.thumbClip], children: [
|
|
318
|
+
state === "failed" ? /* @__PURE__ */ jsx(CoverPlaceholder, { seed: url, icon: "image-outline" }) : null,
|
|
319
|
+
state === "loading" ? /* @__PURE__ */ jsx(Skeleton, {}) : null,
|
|
320
|
+
state !== "failed" ? /* @__PURE__ */ jsx(Image, { source: {
|
|
321
|
+
uri: url
|
|
322
|
+
}, style: StyleSheet.absoluteFill, resizeMode: "cover", onLoad: () => setState("ok"), onError: () => setState("failed") }) : null
|
|
323
|
+
] });
|
|
324
|
+
}
|
|
325
|
+
return /* @__PURE__ */ jsx(View, { style: [styles.thumb, styles.thumbClip], children: /* @__PURE__ */ jsx(CoverPlaceholder, { seed: url, icon: "play" }) });
|
|
293
326
|
}
|
|
294
|
-
const
|
|
327
|
+
const makeStyles = themedStyles((theme) => StyleSheet.create({
|
|
295
328
|
root: {
|
|
296
329
|
flex: 1,
|
|
297
330
|
minHeight: 240
|
|
@@ -300,107 +333,138 @@ const styles = StyleSheet.create({
|
|
|
300
333
|
flexDirection: "row",
|
|
301
334
|
alignItems: "center",
|
|
302
335
|
justifyContent: "space-between",
|
|
303
|
-
|
|
304
|
-
|
|
336
|
+
paddingLeft: SPACE.lg,
|
|
337
|
+
paddingRight: SPACE.md,
|
|
338
|
+
paddingBottom: SPACE.md
|
|
305
339
|
},
|
|
306
|
-
title: {
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
340
|
+
title: __spreadProps(__spreadValues({}, TYPE.title), {
|
|
341
|
+
color: theme.foreground
|
|
342
|
+
}),
|
|
343
|
+
close: {
|
|
344
|
+
width: 36,
|
|
345
|
+
height: 36,
|
|
346
|
+
borderRadius: 18,
|
|
347
|
+
alignItems: "center",
|
|
348
|
+
justifyContent: "center",
|
|
349
|
+
backgroundColor: theme.card
|
|
310
350
|
},
|
|
311
351
|
list: {
|
|
312
|
-
paddingHorizontal:
|
|
313
|
-
paddingBottom:
|
|
314
|
-
gap:
|
|
352
|
+
paddingHorizontal: SPACE.lg,
|
|
353
|
+
paddingBottom: SPACE.xl,
|
|
354
|
+
gap: SPACE.sm
|
|
355
|
+
},
|
|
356
|
+
emptyBox: {
|
|
357
|
+
alignItems: "center",
|
|
358
|
+
paddingVertical: SPACE.xl + 4,
|
|
359
|
+
paddingHorizontal: SPACE.xl,
|
|
360
|
+
borderRadius: RADIUS.xl,
|
|
361
|
+
backgroundColor: theme.card
|
|
315
362
|
},
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
363
|
+
emptyIcon: {
|
|
364
|
+
width: 48,
|
|
365
|
+
height: 48,
|
|
366
|
+
borderRadius: 24,
|
|
367
|
+
alignItems: "center",
|
|
368
|
+
justifyContent: "center",
|
|
369
|
+
backgroundColor: theme.background,
|
|
370
|
+
marginBottom: SPACE.md
|
|
321
371
|
},
|
|
372
|
+
empty: __spreadProps(__spreadValues({}, TYPE.body), {
|
|
373
|
+
fontSize: 14,
|
|
374
|
+
lineHeight: 20,
|
|
375
|
+
color: theme.mutedForeground,
|
|
376
|
+
textAlign: "center"
|
|
377
|
+
}),
|
|
322
378
|
card: {
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
379
|
+
flexDirection: "row",
|
|
380
|
+
alignItems: "flex-start",
|
|
381
|
+
gap: SPACE.md,
|
|
382
|
+
borderRadius: RADIUS.lg,
|
|
383
|
+
padding: SPACE.md,
|
|
384
|
+
backgroundColor: theme.card
|
|
385
|
+
},
|
|
386
|
+
cardLead: {
|
|
387
|
+
width: 56
|
|
388
|
+
},
|
|
389
|
+
cardBody: {
|
|
390
|
+
flex: 1,
|
|
391
|
+
minWidth: 0,
|
|
392
|
+
gap: SPACE.xs
|
|
329
393
|
},
|
|
330
394
|
cardHead: {
|
|
331
395
|
flexDirection: "row",
|
|
332
396
|
alignItems: "center",
|
|
333
|
-
gap:
|
|
397
|
+
gap: SPACE.sm,
|
|
398
|
+
minHeight: 22
|
|
334
399
|
},
|
|
335
|
-
cardTitle: {
|
|
400
|
+
cardTitle: __spreadProps(__spreadValues({}, TYPE.label), {
|
|
401
|
+
fontSize: 15,
|
|
336
402
|
flex: 1,
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
backgroundColor: "#f1f5f9",
|
|
346
|
-
paddingHorizontal: 6,
|
|
347
|
-
paddingVertical: 2,
|
|
348
|
-
borderRadius: 6,
|
|
349
|
-
overflow: "hidden"
|
|
403
|
+
color: theme.foreground
|
|
404
|
+
}),
|
|
405
|
+
dismiss: {
|
|
406
|
+
width: 24,
|
|
407
|
+
height: 24,
|
|
408
|
+
alignItems: "center",
|
|
409
|
+
justifyContent: "center",
|
|
410
|
+
borderRadius: 12
|
|
350
411
|
},
|
|
412
|
+
badge: __spreadProps(__spreadValues({}, TYPE.caption), {
|
|
413
|
+
color: theme.mutedForeground
|
|
414
|
+
}),
|
|
351
415
|
badgeRun: {
|
|
352
|
-
color:
|
|
353
|
-
backgroundColor: "#ea580c"
|
|
416
|
+
color: theme.foreground
|
|
354
417
|
},
|
|
355
418
|
badgeOk: {
|
|
356
|
-
color:
|
|
357
|
-
backgroundColor: "#dcfce7"
|
|
419
|
+
color: theme.successText
|
|
358
420
|
},
|
|
359
421
|
badgeFail: {
|
|
360
|
-
color:
|
|
361
|
-
backgroundColor: "#fee2e2"
|
|
362
|
-
},
|
|
363
|
-
line: {
|
|
364
|
-
fontSize: 11,
|
|
365
|
-
color: "#64748b"
|
|
366
|
-
},
|
|
367
|
-
error: {
|
|
368
|
-
fontSize: 12,
|
|
369
|
-
color: "#b91c1c"
|
|
370
|
-
},
|
|
371
|
-
notice: {
|
|
372
|
-
fontSize: 11,
|
|
373
|
-
color: "#b45309"
|
|
422
|
+
color: theme.destructiveText
|
|
374
423
|
},
|
|
375
|
-
|
|
376
|
-
|
|
424
|
+
line: __spreadProps(__spreadValues({}, TYPE.caption), {
|
|
425
|
+
fontWeight: "400",
|
|
426
|
+
color: theme.mutedForeground
|
|
427
|
+
}),
|
|
428
|
+
error: __spreadProps(__spreadValues({}, TYPE.caption), {
|
|
429
|
+
fontWeight: "400",
|
|
430
|
+
color: theme.destructiveText
|
|
431
|
+
}),
|
|
432
|
+
notice: __spreadProps(__spreadValues({}, TYPE.caption), {
|
|
433
|
+
fontWeight: "400",
|
|
434
|
+
color: theme.warningText
|
|
435
|
+
}),
|
|
436
|
+
done: __spreadProps(__spreadValues({}, TYPE.caption), {
|
|
377
437
|
fontWeight: "600",
|
|
378
|
-
color:
|
|
379
|
-
paddingVertical:
|
|
380
|
-
},
|
|
438
|
+
color: theme.successText,
|
|
439
|
+
paddingVertical: SPACE.xs + 2
|
|
440
|
+
}),
|
|
381
441
|
staleBox: {
|
|
382
|
-
gap:
|
|
442
|
+
gap: SPACE.xs
|
|
383
443
|
},
|
|
384
444
|
progressBox: {
|
|
385
|
-
gap:
|
|
445
|
+
gap: SPACE.xs + 2,
|
|
446
|
+
marginTop: 2
|
|
386
447
|
},
|
|
387
448
|
bar: {
|
|
388
|
-
height:
|
|
389
|
-
borderRadius:
|
|
390
|
-
backgroundColor:
|
|
449
|
+
height: 4,
|
|
450
|
+
borderRadius: 2,
|
|
451
|
+
backgroundColor: theme.tint(0.08),
|
|
391
452
|
overflow: "hidden"
|
|
392
453
|
},
|
|
393
454
|
barFill: {
|
|
394
|
-
height:
|
|
395
|
-
borderRadius:
|
|
396
|
-
backgroundColor:
|
|
455
|
+
height: 4,
|
|
456
|
+
borderRadius: 2,
|
|
457
|
+
backgroundColor: theme.foreground
|
|
458
|
+
},
|
|
459
|
+
thumbClip: {
|
|
460
|
+
overflow: "hidden"
|
|
397
461
|
},
|
|
398
462
|
thumb: {
|
|
399
|
-
width:
|
|
400
|
-
|
|
401
|
-
borderRadius:
|
|
463
|
+
width: 56,
|
|
464
|
+
height: 56,
|
|
465
|
+
borderRadius: RADIUS.md,
|
|
402
466
|
overflow: "hidden",
|
|
403
|
-
backgroundColor:
|
|
467
|
+
backgroundColor: theme.background
|
|
404
468
|
},
|
|
405
469
|
thumbGlyph: {
|
|
406
470
|
alignItems: "center",
|
|
@@ -408,27 +472,28 @@ const styles = StyleSheet.create({
|
|
|
408
472
|
},
|
|
409
473
|
actions: {
|
|
410
474
|
flexDirection: "row",
|
|
411
|
-
|
|
412
|
-
|
|
475
|
+
flexWrap: "wrap",
|
|
476
|
+
gap: SPACE.sm - 2,
|
|
477
|
+
marginTop: SPACE.xs + 2
|
|
413
478
|
},
|
|
414
479
|
primary: {
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
primaryLabel: {
|
|
421
|
-
fontSize: 12,
|
|
422
|
-
fontWeight: "700",
|
|
423
|
-
color: "#fff7ed"
|
|
480
|
+
minHeight: 32,
|
|
481
|
+
justifyContent: "center",
|
|
482
|
+
paddingHorizontal: SPACE.md + 2,
|
|
483
|
+
borderRadius: RADIUS.pill,
|
|
484
|
+
backgroundColor: theme.foreground
|
|
424
485
|
},
|
|
486
|
+
primaryLabel: __spreadProps(__spreadValues({}, TYPE.label), {
|
|
487
|
+
color: theme.background
|
|
488
|
+
}),
|
|
425
489
|
ghost: {
|
|
426
|
-
|
|
427
|
-
|
|
490
|
+
minHeight: 32,
|
|
491
|
+
justifyContent: "center",
|
|
492
|
+
paddingHorizontal: SPACE.md + 2,
|
|
493
|
+
borderRadius: RADIUS.pill,
|
|
494
|
+
backgroundColor: theme.background
|
|
428
495
|
},
|
|
429
|
-
ghostLabel: {
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
}
|
|
434
|
-
});export{CanvasTasksPanel};//# sourceMappingURL=CanvasTasksPanel.js.map
|
|
496
|
+
ghostLabel: __spreadProps(__spreadValues({}, TYPE.label), {
|
|
497
|
+
color: theme.foreground
|
|
498
|
+
})
|
|
499
|
+
}));export{CanvasTasksPanel};//# sourceMappingURL=CanvasTasksPanel.js.map
|