@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.
Files changed (96) hide show
  1. package/lib/features/canvas/AudioEditorExperience.js +207 -109
  2. package/lib/features/canvas/AudioEditorExperience.js.map +1 -1
  3. package/lib/features/canvas/CanvasAgentChatPane.js +87 -72
  4. package/lib/features/canvas/CanvasAgentChatPane.js.map +1 -1
  5. package/lib/features/canvas/CanvasBoardsGrid.js +494 -387
  6. package/lib/features/canvas/CanvasBoardsGrid.js.map +1 -1
  7. package/lib/features/canvas/CanvasChatResultCard.js +78 -59
  8. package/lib/features/canvas/CanvasChatResultCard.js.map +1 -1
  9. package/lib/features/canvas/CanvasEditToolsPanel.js +126 -84
  10. package/lib/features/canvas/CanvasEditToolsPanel.js.map +1 -1
  11. package/lib/features/canvas/CanvasExperience.js +108 -126
  12. package/lib/features/canvas/CanvasExperience.js.map +1 -1
  13. package/lib/features/canvas/CanvasGeneratePanel.js +178 -166
  14. package/lib/features/canvas/CanvasGeneratePanel.js.map +1 -1
  15. package/lib/features/canvas/CanvasLibrarySheet.js +119 -123
  16. package/lib/features/canvas/CanvasLibrarySheet.js.map +1 -1
  17. package/lib/features/canvas/CanvasLooksPanel.js +113 -89
  18. package/lib/features/canvas/CanvasLooksPanel.js.map +1 -1
  19. package/lib/features/canvas/CanvasModelPicker.js +79 -79
  20. package/lib/features/canvas/CanvasModelPicker.js.map +1 -1
  21. package/lib/features/canvas/CanvasTasksPanel.js +193 -128
  22. package/lib/features/canvas/CanvasTasksPanel.js.map +1 -1
  23. package/lib/features/canvas/CanvasTemplatesPanel.js +106 -94
  24. package/lib/features/canvas/CanvasTemplatesPanel.js.map +1 -1
  25. package/lib/features/canvas/CanvasToolDock.js +195 -127
  26. package/lib/features/canvas/CanvasToolDock.js.map +1 -1
  27. package/lib/features/canvas/FrameExtractorExperience.js +163 -100
  28. package/lib/features/canvas/FrameExtractorExperience.js.map +1 -1
  29. package/lib/features/canvas/GeneratorReferenceSlots.js +132 -69
  30. package/lib/features/canvas/GeneratorReferenceSlots.js.map +1 -1
  31. package/lib/features/canvas/ImageEditorExperience.js +278 -209
  32. package/lib/features/canvas/ImageEditorExperience.js.map +1 -1
  33. package/lib/features/canvas/InfluencerStudioExperience.js +167 -125
  34. package/lib/features/canvas/InfluencerStudioExperience.js.map +1 -1
  35. package/lib/features/canvas/MoodboardExperience.js +102 -85
  36. package/lib/features/canvas/MoodboardExperience.js.map +1 -1
  37. package/lib/features/canvas/NativeCanvasViewer.js +203 -192
  38. package/lib/features/canvas/NativeCanvasViewer.js.map +1 -1
  39. package/lib/features/canvas/PromoContextFields.js +125 -92
  40. package/lib/features/canvas/PromoContextFields.js.map +1 -1
  41. package/lib/features/canvas/SetStudioExperience.js +225 -143
  42. package/lib/features/canvas/SetStudioExperience.js.map +1 -1
  43. package/lib/features/canvas/VideoClipsExperience.js +126 -92
  44. package/lib/features/canvas/VideoClipsExperience.js.map +1 -1
  45. package/lib/features/canvas/VideoEditExperience.js +154 -142
  46. package/lib/features/canvas/VideoEditExperience.js.map +1 -1
  47. package/lib/features/canvas/VideoEditorExperience.js +551 -492
  48. package/lib/features/canvas/VideoEditorExperience.js.map +1 -1
  49. package/lib/features/canvas/VideoGeneratorExperience.js +284 -131
  50. package/lib/features/canvas/VideoGeneratorExperience.js.map +1 -1
  51. package/lib/features/canvas/canvasTasks.js +7 -3
  52. package/lib/features/canvas/canvasTasks.js.map +1 -1
  53. package/lib/features/canvas/canvasTheme.js +265 -0
  54. package/lib/features/canvas/canvasTheme.js.map +1 -0
  55. package/lib/features/canvas/canvasUi.js +381 -0
  56. package/lib/features/canvas/canvasUi.js.map +1 -0
  57. package/lib/features/canvas/recorder/CameraRecorderExperience.js +109 -52
  58. package/lib/features/canvas/recorder/CameraRecorderExperience.js.map +1 -1
  59. package/lib/features/canvas/serverTasks.js +1 -1
  60. package/lib/features/canvas/serverTasks.js.map +1 -1
  61. package/lib/features/canvas/set/SetViewportWebView.js +1 -1
  62. package/lib/features/canvas/set/SetViewportWebView.js.map +1 -1
  63. package/lib/features/canvas/videoEditor/BlurBoxOverlay.js +8 -7
  64. package/lib/features/canvas/videoEditor/BlurBoxOverlay.js.map +1 -1
  65. package/lib/features/canvas/videoEditor/ExportTaskCard.js +44 -41
  66. package/lib/features/canvas/videoEditor/ExportTaskCard.js.map +1 -1
  67. package/lib/features/canvas/videoEditor/agent/AgentCutPane.js +50 -45
  68. package/lib/features/canvas/videoEditor/agent/AgentCutPane.js.map +1 -1
  69. package/lib/features/canvas/videoEditor/exportTask.js +3 -2
  70. package/lib/features/canvas/videoEditor/exportTask.js.map +1 -1
  71. package/lib/features/canvas/videoEditor/formWidgets.js +116 -64
  72. package/lib/features/canvas/videoEditor/formWidgets.js.map +1 -1
  73. package/lib/features/canvas/videoEditor/produce/ProduceVideoSheet.js +77 -63
  74. package/lib/features/canvas/videoEditor/produce/ProduceVideoSheet.js.map +1 -1
  75. package/lib/features/canvas/videoEditor/tools/ToolsDrawer.js +95 -79
  76. package/lib/features/canvas/videoEditor/tools/ToolsDrawer.js.map +1 -1
  77. package/lib/features/design/DesignEditorExperience.js +241 -160
  78. package/lib/features/design/DesignEditorExperience.js.map +1 -1
  79. package/lib/features/design/DesignExperience.js +300 -143
  80. package/lib/features/design/DesignExperience.js.map +1 -1
  81. package/lib/features/webbuilder/WebBuilderExperience.js +1 -1
  82. package/lib/features/webbuilder/WebBuilderExperience.js.map +1 -1
  83. package/lib/features/webbuilder/buildFragments.js +3 -2
  84. package/lib/features/webbuilder/buildFragments.js.map +1 -1
  85. package/lib/features/webbuilder/components/PublishSheet.js +1 -1
  86. package/lib/features/webbuilder/components/PublishSheet.js.map +1 -1
  87. package/lib/features/webbuilder/webbuilderPrompts.js +2 -5
  88. package/lib/features/webbuilder/webbuilderPrompts.js.map +1 -1
  89. package/lib/screens/WebBuilderNative/sandboxProxyApi.js +120 -0
  90. package/lib/screens/WebBuilderNative/sandboxProxyApi.js.map +1 -0
  91. package/lib/screens/WebBuilderNative/useRestoredSandboxes.js.map +1 -1
  92. package/lib/screens/WebBuilderNative/useWebBuilderHost.js +26 -4
  93. package/lib/screens/WebBuilderNative/useWebBuilderHost.js.map +1 -1
  94. package/lib/screens/WebBuilderNative/webbuilderTransport.js +110 -7
  95. package/lib/screens/WebBuilderNative/webbuilderTransport.js.map +1 -1
  96. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"VideoEditExperience.js","sources":["../../../src/features/canvas/VideoEditExperience.tsx"],"sourcesContent":["/**\n * Native twin of web canvas \"Edit Video\" — category + op tabs over\n * `yantra-video-editing` (trim, crop, pad, rotate, concat, …). Apply is one\n * connector op; history is undo; Done writes the latest URL onto the board.\n */\nimport React, { useCallback, useMemo, useState } from 'react';\nimport { ActivityIndicator, Pressable, ScrollView, StyleSheet, Text, TextInput, View } from 'react-native';\nimport { MaterialCommunityIcons } from '@expo/vector-icons';\nimport type { CanvasItem } from './canvasCore';\nimport { getVideoPreviewRenderer } from './videoRenderer';\nimport { friendlyMediaError, resultUrl, type RunMediaAction } from './videoEditor/mediaActions';\nimport { Field, PickMulti, PickRow, Stepper } from './videoEditor/formWidgets';\nimport {\n INSTANT_HINT,\n VIDEO_EDIT_ACTIONS,\n VIDEO_EDIT_CATEGORIES,\n resultKind,\n type VideoEditCategory,\n type VideoEditOp,\n} from './videoEditor/videoEditOps';\n\nexport interface VideoEditExperienceProps {\n src: string;\n name?: string;\n /** Other board items — overlay, concat, add-audio, slideshow. */\n items?: readonly CanvasItem[];\n runAction?: RunMediaAction;\n onClose: () => void;\n onApplied: (url: string, kind: 'video' | 'image' | 'audio') => void;\n}\n\nexport function VideoEditExperience({\n src,\n name,\n items = [],\n runAction,\n onClose,\n onApplied,\n}: VideoEditExperienceProps) {\n const [history, setHistory] = useState<string[]>([src]);\n const [appliedKind, setAppliedKind] = useState<'video' | 'image' | 'audio'>('video');\n const [busy, setBusy] = useState<string | null>(null);\n const [notice, setNotice] = useState<string | null>(null);\n const [probe, setProbe] = useState<string | null>(null);\n const [playing, setPlaying] = useState(false);\n const [category, setCategory] = useState<VideoEditCategory>('basic');\n const [op, setOp] = useState<VideoEditOp>('trim');\n const [form, setForm] = useState(defaultForm);\n const current = history[history.length - 1];\n const edited = history.length > 1;\n const VideoPreview = getVideoPreviewRenderer();\n const ops = VIDEO_EDIT_CATEGORIES.find((c) => c.id === category)?.ops ?? [];\n\n const patch = useCallback(<K extends keyof EditForm>(key: K, value: EditForm[K]) => {\n setForm((prev) => ({ ...prev, [key]: value }));\n }, []);\n\n const apply = useCallback(() => {\n if (!runAction) {\n setNotice('Editing needs the host connector — not wired in this host.');\n return;\n }\n if (busy) return;\n const action = VIDEO_EDIT_ACTIONS[op];\n const params = paramsFor(op, form);\n setBusy(opLabel(op));\n setPlaying(false);\n setProbe(null);\n runAction('yantra-video-editing', action, { input_url: current, ...params })\n .then((result) => {\n if (op === 'probe') {\n setProbe(JSON.stringify(result.data ?? result, null, 2));\n return;\n }\n setHistory((h) => [...h, resultUrl(result, action)]);\n setAppliedKind(resultKind(op));\n setNotice(null);\n })\n .catch((err: unknown) => setNotice(friendlyMediaError(err, 'video edit')))\n .finally(() => setBusy(null));\n }, [busy, current, form, op, runAction]);\n\n const done = () => {\n if (edited) onApplied(current, appliedKind);\n else onClose();\n };\n\n const videos = useMemo(() => items.filter((i) => i.type === 'video' && i.src !== current), [items, current]);\n const images = useMemo(() => items.filter((i) => i.type === 'image'), [items]);\n const audios = useMemo(() => items.filter((i) => i.type === 'audio'), [items]);\n\n return (\n <View style={styles.root} testID=\"video-editor\">\n <View style={styles.header}>\n <Pressable onPress={onClose} hitSlop={10} accessibilityRole=\"button\" accessibilityLabel=\"Close editor\">\n <MaterialCommunityIcons name=\"close\" size={22} color=\"#F7F7FA\" />\n </Pressable>\n <Text style={styles.headerTitle} numberOfLines={1}>\n {name?.trim() || 'Edit video'}\n </Text>\n <View style={styles.headerActions}>\n <Pressable\n onPress={() => setHistory((h) => (h.length > 1 ? h.slice(0, -1) : h))}\n hitSlop={10}\n disabled={!edited || busy !== null}\n accessibilityRole=\"button\"\n accessibilityLabel=\"Undo\"\n style={!edited || busy ? styles.disabled : null}\n >\n <MaterialCommunityIcons name=\"undo-variant\" size={21} color=\"#F7F7FA\" />\n </Pressable>\n <Pressable onPress={done} hitSlop={10} accessibilityRole=\"button\" accessibilityLabel=\"Done\">\n <Text style={styles.done}>{edited ? 'Done' : 'Close'}</Text>\n </Pressable>\n </View>\n </View>\n\n <View style={styles.stage}>\n {VideoPreview ? (\n <VideoPreview\n src={current}\n playing={playing}\n rate={1}\n volume={1}\n muted={false}\n trimStartSec={0}\n trimEndSec={null}\n onTime={(sec, dur) => {\n if (dur > 0 && sec >= dur - 0.15) setPlaying(false);\n }}\n />\n ) : (\n <MaterialCommunityIcons name=\"video-outline\" size={56} color=\"#2A2440\" />\n )}\n <Pressable\n onPress={() => setPlaying((p) => !p)}\n style={styles.playBtn}\n accessibilityRole=\"button\"\n accessibilityLabel={playing ? 'Pause' : 'Play'}\n disabled={!VideoPreview}\n >\n <MaterialCommunityIcons name={playing ? 'pause' : 'play'} size={26} color=\"#0A0A0C\" />\n </Pressable>\n {busy ? (\n <View style={styles.busyVeil}>\n <ActivityIndicator color=\"#F7F7FA\" />\n <Text style={styles.busyLabel}>{busy}…</Text>\n </View>\n ) : null}\n </View>\n\n <View style={styles.panel}>\n <ScrollView\n horizontal\n showsHorizontalScrollIndicator={false}\n contentContainerStyle={styles.chipRow}\n style={styles.chipScroll}\n >\n {VIDEO_EDIT_CATEGORIES.map((cat) => {\n const active = category === cat.id;\n return (\n <Pressable\n key={cat.id}\n onPress={() => {\n setCategory(cat.id);\n setOp(cat.ops[0].op);\n setProbe(null);\n }}\n style={[styles.catChip, active && styles.catChipOn]}\n >\n <Text style={[styles.catLabel, active && styles.catLabelOn]}>{cat.label}</Text>\n </Pressable>\n );\n })}\n </ScrollView>\n <ScrollView\n horizontal\n showsHorizontalScrollIndicator={false}\n contentContainerStyle={styles.chipRow}\n style={styles.chipScroll}\n >\n {ops.map((entry) => {\n const active = op === entry.op;\n return (\n <Pressable\n key={entry.op}\n onPress={() => {\n setOp(entry.op);\n setProbe(null);\n }}\n style={[styles.opChip, active && styles.opChipOn]}\n >\n <Text style={[styles.opLabel, active && styles.opLabelOn]}>{entry.label}</Text>\n </Pressable>\n );\n })}\n </ScrollView>\n\n <ScrollView style={styles.controls} contentContainerStyle={styles.controlsInner}>\n <OpControls op={op} form={form} patch={patch} videos={videos} images={images} audios={audios} />\n {probe ? <Text style={styles.probe}>{probe}</Text> : null}\n </ScrollView>\n\n <Pressable\n onPress={apply}\n disabled={busy !== null}\n style={[styles.apply, busy && styles.disabled]}\n accessibilityRole=\"button\"\n accessibilityLabel=\"Apply edit\"\n >\n <Text style={styles.applyLabel}>Apply {opLabel(op)}</Text>\n </Pressable>\n </View>\n\n {notice ? (\n <View style={styles.notice}>\n <Text style={styles.noticeText}>{notice}</Text>\n <Pressable onPress={() => setNotice(null)} hitSlop={8}>\n <Text style={styles.noticeDismiss}>OK</Text>\n </Pressable>\n </View>\n ) : null}\n </View>\n );\n}\n\ninterface EditForm {\n trimStart: number;\n trimEnd: number;\n speed: number;\n codec: 'h264' | 'h265' | 'av1';\n resolution: '720p' | '1080p' | '4k';\n gifFps: number;\n gifWidth: number;\n thumbTime: number;\n fps: number;\n cropX: string;\n cropY: string;\n cropW: string;\n cropH: string;\n padW: string;\n padH: string;\n padColor: string;\n rotateDeg: number;\n flipH: boolean;\n flipV: boolean;\n fadeInMs: number;\n fadeOutMs: number;\n blur: number;\n denoise: 'light' | 'medium' | 'strong';\n stabilize: number;\n delogoX: number;\n delogoY: number;\n delogoW: number;\n delogoH: number;\n brightness: number;\n contrast: number;\n saturation: number;\n volume: number;\n lufs: number;\n delayMs: number;\n overlayText: string;\n overlayX: string;\n overlayY: string;\n overlaySize: number;\n overlayImage: string;\n pipUrl: string;\n subtitleUrl: string;\n chroma: string;\n chromaSim: number;\n loop: number;\n tags: string;\n extraUrls: string[];\n stackDir: 'h' | 'v';\n transitionUrl: string;\n transitionFx: string;\n transitionMs: number;\n addAudioUrl: string;\n extractFps: number;\n slideSec: number;\n sheetCols: number;\n sheetRows: number;\n}\n\nconst defaultForm = (): EditForm => ({\n trimStart: 0,\n trimEnd: 10,\n speed: 1.5,\n codec: 'h264',\n resolution: '720p',\n gifFps: 10,\n gifWidth: 360,\n thumbTime: 0,\n fps: 30,\n cropX: '0',\n cropY: '0',\n cropW: 'iw',\n cropH: 'ih',\n padW: '1280',\n padH: '720',\n padColor: 'black',\n rotateDeg: 90,\n flipH: false,\n flipV: false,\n fadeInMs: 500,\n fadeOutMs: 500,\n blur: 5,\n denoise: 'medium',\n stabilize: 30,\n delogoX: 0,\n delogoY: 0,\n delogoW: 100,\n delogoH: 50,\n brightness: 0,\n contrast: 1,\n saturation: 1,\n volume: 1,\n lufs: -16,\n delayMs: 0,\n overlayText: '',\n overlayX: '10',\n overlayY: '10',\n overlaySize: 24,\n overlayImage: '',\n pipUrl: '',\n subtitleUrl: '',\n chroma: '#00ff00',\n chromaSim: 0.1,\n loop: 2,\n tags: 'title=My Video',\n extraUrls: [],\n stackDir: 'h',\n transitionUrl: '',\n transitionFx: 'fade',\n transitionMs: 1000,\n addAudioUrl: '',\n extractFps: 1,\n slideSec: 2,\n sheetCols: 5,\n sheetRows: 5,\n});\n\nfunction paramsFor(op: VideoEditOp, f: EditForm): Record<string, unknown> {\n switch (op) {\n case 'trim':\n return { start_secs: f.trimStart, end_secs: f.trimEnd };\n case 'speed':\n return { factor: f.speed };\n case 'transcode':\n return { codec: f.codec, resolution: f.resolution };\n case 'gif':\n return { fps: f.gifFps, width: f.gifWidth };\n case 'thumbnail':\n return { time_secs: f.thumbTime };\n case 'fps':\n return { fps: f.fps };\n case 'crop':\n return { x: f.cropX, y: f.cropY, width: f.cropW, height: f.cropH };\n case 'pad':\n return { width: f.padW, height: f.padH, color: f.padColor };\n case 'rotate':\n return { degrees: f.rotateDeg, flip_h: f.flipH, flip_v: f.flipV };\n case 'fade':\n return { fade_in_ms: f.fadeInMs, fade_out_ms: f.fadeOutMs };\n case 'blur':\n return { radius: f.blur };\n case 'denoise':\n return { strength: f.denoise };\n case 'stabilize':\n return { smoothing: f.stabilize };\n case 'delogo':\n return { x: f.delogoX, y: f.delogoY, width: f.delogoW, height: f.delogoH };\n case 'color_adjust':\n return { brightness: f.brightness, contrast: f.contrast, saturation: f.saturation };\n case 'volume':\n return { level: f.volume };\n case 'audio_normalize':\n return { i: f.lufs };\n case 'audio_delay':\n return { delay_ms: f.delayMs };\n case 'overlay_text':\n return { text: f.overlayText, x: f.overlayX, y: f.overlayY, font_size: f.overlaySize };\n case 'overlay_image':\n return { overlay_image: f.overlayImage };\n case 'picture_in_picture':\n return { overlay: f.pipUrl };\n case 'burn_subtitles':\n return { subtitle_file: f.subtitleUrl };\n case 'chroma_key':\n return { color: f.chroma, similarity: f.chromaSim };\n case 'loop':\n return { count: f.loop };\n case 'metadata': {\n const tags: Record<string, string> = {};\n f.tags.split('\\n').forEach((line) => {\n const eq = line.indexOf('=');\n if (eq > 0) tags[line.slice(0, eq).trim()] = line.slice(eq + 1).trim();\n });\n return { tags };\n }\n case 'concat':\n return { input_urls: f.extraUrls };\n case 'stack':\n return { input_urls: f.extraUrls, direction: f.stackDir };\n case 'transition':\n return { input2_url: f.transitionUrl, effect: f.transitionFx, duration_ms: f.transitionMs };\n case 'add_audio':\n return { audio_input_url: f.addAudioUrl };\n case 'extract_frames':\n return { fps: f.extractFps };\n case 'slideshow':\n return { duration_per_image: f.slideSec };\n case 'contact_sheet':\n return { cols: f.sheetCols, rows: f.sheetRows };\n default:\n return {};\n }\n}\n\nfunction opLabel(op: VideoEditOp): string {\n for (const cat of VIDEO_EDIT_CATEGORIES) {\n const hit = cat.ops.find((o) => o.op === op);\n if (hit) return hit.label;\n }\n return op;\n}\n\nfunction OpControls({\n op,\n form,\n patch,\n videos,\n images,\n audios,\n}: {\n op: VideoEditOp;\n form: EditForm;\n patch: <K extends keyof EditForm>(key: K, value: EditForm[K]) => void;\n videos: readonly CanvasItem[];\n images: readonly CanvasItem[];\n audios: readonly CanvasItem[];\n}) {\n const hint = INSTANT_HINT[op];\n if (hint) return <Text style={styles.hint}>{hint}</Text>;\n\n if (op === 'trim') {\n return (\n <View style={styles.row}>\n <Stepper\n label=\"Start\"\n value={`${form.trimStart.toFixed(1)}s`}\n onLess={() => patch('trimStart', Math.max(0, form.trimStart - 0.5))}\n onMore={() => patch('trimStart', Math.min(form.trimEnd - 0.5, form.trimStart + 0.5))}\n />\n <Stepper\n label=\"End\"\n value={`${form.trimEnd.toFixed(1)}s`}\n onLess={() => patch('trimEnd', Math.max(form.trimStart + 0.5, form.trimEnd - 0.5))}\n onMore={() => patch('trimEnd', form.trimEnd + 0.5)}\n />\n </View>\n );\n }\n if (op === 'speed') {\n return (\n <View style={styles.row}>\n {[0.25, 0.5, 1.5, 2, 4].map((factor) => (\n <Pressable\n key={factor}\n onPress={() => patch('speed', factor)}\n style={[styles.choice, form.speed === factor && styles.choiceOn]}\n >\n <Text style={[styles.choiceLabel, form.speed === factor && styles.choiceLabelOn]}>\n {factor}×\n </Text>\n </Pressable>\n ))}\n </View>\n );\n }\n if (op === 'transcode') {\n return (\n <View style={styles.row}>\n {(['h264', 'h265', 'av1'] as const).map((codec) => (\n <Pressable\n key={codec}\n onPress={() => patch('codec', codec)}\n style={[styles.choice, form.codec === codec && styles.choiceOn]}\n >\n <Text style={[styles.choiceLabel, form.codec === codec && styles.choiceLabelOn]}>\n {codec.toUpperCase()}\n </Text>\n </Pressable>\n ))}\n {(['720p', '1080p', '4k'] as const).map((res) => (\n <Pressable\n key={res}\n onPress={() => patch('resolution', res)}\n style={[styles.choice, form.resolution === res && styles.choiceOn]}\n >\n <Text style={[styles.choiceLabel, form.resolution === res && styles.choiceLabelOn]}>{res}</Text>\n </Pressable>\n ))}\n </View>\n );\n }\n if (op === 'gif') {\n return (\n <View style={styles.row}>\n <Stepper\n label=\"FPS\"\n value={`${form.gifFps}`}\n onLess={() => patch('gifFps', Math.max(5, form.gifFps - 1))}\n onMore={() => patch('gifFps', Math.min(24, form.gifFps + 1))}\n />\n {[360, 480, 640].map((w) => (\n <Pressable\n key={w}\n onPress={() => patch('gifWidth', w)}\n style={[styles.choice, form.gifWidth === w && styles.choiceOn]}\n >\n <Text style={[styles.choiceLabel, form.gifWidth === w && styles.choiceLabelOn]}>{w}px</Text>\n </Pressable>\n ))}\n </View>\n );\n }\n if (op === 'thumbnail') {\n return (\n <Stepper\n label=\"At\"\n value={`${form.thumbTime.toFixed(1)}s`}\n onLess={() => patch('thumbTime', Math.max(0, form.thumbTime - 0.5))}\n onMore={() => patch('thumbTime', form.thumbTime + 0.5)}\n />\n );\n }\n if (op === 'fps') {\n return (\n <View style={styles.row}>\n {[24, 30, 60].map((n) => (\n <Pressable\n key={n}\n onPress={() => patch('fps', n)}\n style={[styles.choice, form.fps === n && styles.choiceOn]}\n >\n <Text style={[styles.choiceLabel, form.fps === n && styles.choiceLabelOn]}>{n} fps</Text>\n </Pressable>\n ))}\n </View>\n );\n }\n if (op === 'crop') {\n return (\n <View style={styles.grid}>\n <Field label=\"X\" value={form.cropX} onChange={(v) => patch('cropX', v)} />\n <Field label=\"Y\" value={form.cropY} onChange={(v) => patch('cropY', v)} />\n <Field label=\"Width\" value={form.cropW} onChange={(v) => patch('cropW', v)} />\n <Field label=\"Height\" value={form.cropH} onChange={(v) => patch('cropH', v)} />\n </View>\n );\n }\n if (op === 'pad') {\n return (\n <View style={styles.grid}>\n <Field label=\"Width\" value={form.padW} onChange={(v) => patch('padW', v)} />\n <Field label=\"Height\" value={form.padH} onChange={(v) => patch('padH', v)} />\n <Field label=\"Color\" value={form.padColor} onChange={(v) => patch('padColor', v)} />\n </View>\n );\n }\n if (op === 'rotate') {\n return (\n <View style={styles.row}>\n {[90, 180, 270].map((deg) => (\n <Pressable\n key={deg}\n onPress={() => patch('rotateDeg', deg)}\n style={[styles.choice, form.rotateDeg === deg && styles.choiceOn]}\n >\n <Text style={[styles.choiceLabel, form.rotateDeg === deg && styles.choiceLabelOn]}>{deg}°</Text>\n </Pressable>\n ))}\n <Pressable\n onPress={() => patch('flipH', !form.flipH)}\n style={[styles.choice, form.flipH && styles.choiceOn]}\n >\n <Text style={[styles.choiceLabel, form.flipH && styles.choiceLabelOn]}>Flip H</Text>\n </Pressable>\n <Pressable\n onPress={() => patch('flipV', !form.flipV)}\n style={[styles.choice, form.flipV && styles.choiceOn]}\n >\n <Text style={[styles.choiceLabel, form.flipV && styles.choiceLabelOn]}>Flip V</Text>\n </Pressable>\n </View>\n );\n }\n if (op === 'fade') {\n return (\n <View style={styles.row}>\n <Stepper\n label=\"In\"\n value={`${form.fadeInMs}ms`}\n onLess={() => patch('fadeInMs', Math.max(0, form.fadeInMs - 100))}\n onMore={() => patch('fadeInMs', form.fadeInMs + 100)}\n />\n <Stepper\n label=\"Out\"\n value={`${form.fadeOutMs}ms`}\n onLess={() => patch('fadeOutMs', Math.max(0, form.fadeOutMs - 100))}\n onMore={() => patch('fadeOutMs', form.fadeOutMs + 100)}\n />\n </View>\n );\n }\n if (op === 'blur') {\n return (\n <Stepper\n label=\"Radius\"\n value={`${form.blur}`}\n onLess={() => patch('blur', Math.max(1, form.blur - 1))}\n onMore={() => patch('blur', form.blur + 1)}\n />\n );\n }\n if (op === 'denoise') {\n return (\n <View style={styles.row}>\n {(['light', 'medium', 'strong'] as const).map((level) => (\n <Pressable\n key={level}\n onPress={() => patch('denoise', level)}\n style={[styles.choice, form.denoise === level && styles.choiceOn]}\n >\n <Text style={[styles.choiceLabel, form.denoise === level && styles.choiceLabelOn]}>\n {level}\n </Text>\n </Pressable>\n ))}\n </View>\n );\n }\n if (op === 'stabilize') {\n return (\n <Stepper\n label=\"Smooth\"\n value={`${form.stabilize}`}\n onLess={() => patch('stabilize', Math.max(1, form.stabilize - 5))}\n onMore={() => patch('stabilize', Math.min(60, form.stabilize + 5))}\n />\n );\n }\n if (op === 'delogo') {\n return (\n <View style={styles.grid}>\n <Stepper\n label=\"X\"\n value={`${form.delogoX}`}\n onLess={() => patch('delogoX', Math.max(0, form.delogoX - 8))}\n onMore={() => patch('delogoX', form.delogoX + 8)}\n />\n <Stepper\n label=\"Y\"\n value={`${form.delogoY}`}\n onLess={() => patch('delogoY', Math.max(0, form.delogoY - 8))}\n onMore={() => patch('delogoY', form.delogoY + 8)}\n />\n <Stepper\n label=\"W\"\n value={`${form.delogoW}`}\n onLess={() => patch('delogoW', Math.max(8, form.delogoW - 8))}\n onMore={() => patch('delogoW', form.delogoW + 8)}\n />\n <Stepper\n label=\"H\"\n value={`${form.delogoH}`}\n onLess={() => patch('delogoH', Math.max(8, form.delogoH - 8))}\n onMore={() => patch('delogoH', form.delogoH + 8)}\n />\n </View>\n );\n }\n if (op === 'color_adjust') {\n return (\n <View style={styles.row}>\n <Stepper\n label=\"Bright\"\n value={form.brightness.toFixed(1)}\n onLess={() => patch('brightness', Math.round((form.brightness - 0.1) * 10) / 10)}\n onMore={() => patch('brightness', Math.round((form.brightness + 0.1) * 10) / 10)}\n />\n <Stepper\n label=\"Contrast\"\n value={form.contrast.toFixed(1)}\n onLess={() => patch('contrast', Math.max(0, Math.round((form.contrast - 0.1) * 10) / 10))}\n onMore={() => patch('contrast', Math.round((form.contrast + 0.1) * 10) / 10)}\n />\n <Stepper\n label=\"Sat\"\n value={form.saturation.toFixed(1)}\n onLess={() => patch('saturation', Math.max(0, Math.round((form.saturation - 0.1) * 10) / 10))}\n onMore={() => patch('saturation', Math.round((form.saturation + 0.1) * 10) / 10)}\n />\n </View>\n );\n }\n if (op === 'volume') {\n return (\n <View style={styles.row}>\n {[0.25, 0.5, 1, 1.5, 2].map((level) => (\n <Pressable\n key={level}\n onPress={() => patch('volume', level)}\n style={[styles.choice, form.volume === level && styles.choiceOn]}\n >\n <Text style={[styles.choiceLabel, form.volume === level && styles.choiceLabelOn]}>\n {Math.round(level * 100)}%\n </Text>\n </Pressable>\n ))}\n </View>\n );\n }\n if (op === 'audio_normalize') {\n return (\n <Stepper\n label=\"LUFS\"\n value={`${form.lufs}`}\n onLess={() => patch('lufs', form.lufs - 1)}\n onMore={() => patch('lufs', form.lufs + 1)}\n />\n );\n }\n if (op === 'audio_delay') {\n return (\n <Stepper\n label=\"Delay\"\n value={`${form.delayMs}ms`}\n onLess={() => patch('delayMs', Math.max(0, form.delayMs - 50))}\n onMore={() => patch('delayMs', form.delayMs + 50)}\n />\n );\n }\n if (op === 'overlay_text') {\n return (\n <View>\n <Field label=\"Text\" value={form.overlayText} onChange={(v) => patch('overlayText', v)} />\n <View style={styles.row}>\n <Field label=\"X\" value={form.overlayX} onChange={(v) => patch('overlayX', v)} />\n <Field label=\"Y\" value={form.overlayY} onChange={(v) => patch('overlayY', v)} />\n <Stepper\n label=\"Size\"\n value={`${form.overlaySize}`}\n onLess={() => patch('overlaySize', Math.max(10, form.overlaySize - 2))}\n onMore={() => patch('overlaySize', form.overlaySize + 2)}\n />\n </View>\n </View>\n );\n }\n if (op === 'overlay_image') {\n return (\n <PickRow\n label=\"Overlay image\"\n items={images}\n selected={form.overlayImage}\n onSelect={(url) => patch('overlayImage', url)}\n empty=\"Add an image to the board first.\"\n />\n );\n }\n if (op === 'picture_in_picture') {\n return (\n <PickRow\n label=\"PiP clip\"\n items={[...videos, ...images]}\n selected={form.pipUrl}\n onSelect={(url) => patch('pipUrl', url)}\n empty=\"Add another clip or image to the board.\"\n />\n );\n }\n if (op === 'burn_subtitles') {\n return <Field label=\"Subtitle URL\" value={form.subtitleUrl} onChange={(v) => patch('subtitleUrl', v)} />;\n }\n if (op === 'chroma_key') {\n return (\n <View style={styles.row}>\n <Field label=\"Color\" value={form.chroma} onChange={(v) => patch('chroma', v)} />\n <Stepper\n label=\"Sim\"\n value={form.chromaSim.toFixed(2)}\n onLess={() => patch('chromaSim', Math.max(0, Math.round((form.chromaSim - 0.05) * 100) / 100))}\n onMore={() => patch('chromaSim', Math.round((form.chromaSim + 0.05) * 100) / 100)}\n />\n </View>\n );\n }\n if (op === 'loop') {\n return (\n <Stepper\n label=\"Count\"\n value={`${form.loop}`}\n onLess={() => patch('loop', Math.max(1, form.loop - 1))}\n onMore={() => patch('loop', form.loop + 1)}\n />\n );\n }\n if (op === 'metadata') {\n return <Field label=\"Tags (key=value)\" value={form.tags} onChange={(v) => patch('tags', v)} multiline />;\n }\n if (op === 'concat' || op === 'stack') {\n return (\n <View>\n {op === 'stack' ? (\n <View style={styles.row}>\n <Pressable\n onPress={() => patch('stackDir', 'h')}\n style={[styles.choice, form.stackDir === 'h' && styles.choiceOn]}\n >\n <Text style={[styles.choiceLabel, form.stackDir === 'h' && styles.choiceLabelOn]}>\n Horizontal\n </Text>\n </Pressable>\n <Pressable\n onPress={() => patch('stackDir', 'v')}\n style={[styles.choice, form.stackDir === 'v' && styles.choiceOn]}\n >\n <Text style={[styles.choiceLabel, form.stackDir === 'v' && styles.choiceLabelOn]}>\n Vertical\n </Text>\n </Pressable>\n </View>\n ) : null}\n <PickMulti\n items={videos}\n selected={form.extraUrls}\n onChange={(urls) => patch('extraUrls', urls)}\n empty=\"Add more videos to the board.\"\n />\n </View>\n );\n }\n if (op === 'slideshow') {\n return (\n <Stepper\n label=\"Each\"\n value={`${form.slideSec}s`}\n onLess={() => patch('slideSec', Math.max(0.5, form.slideSec - 0.5))}\n onMore={() => patch('slideSec', form.slideSec + 0.5)}\n />\n );\n }\n if (op === 'transition') {\n return (\n <View>\n <PickRow\n label=\"Second clip\"\n items={videos}\n selected={form.transitionUrl}\n onSelect={(url) => patch('transitionUrl', url)}\n empty=\"Add another video to the board.\"\n />\n <View style={styles.row}>\n {['fade', 'wipeleft', 'slideright', 'circlecrop'].map((fx) => (\n <Pressable\n key={fx}\n onPress={() => patch('transitionFx', fx)}\n style={[styles.choice, form.transitionFx === fx && styles.choiceOn]}\n >\n <Text style={[styles.choiceLabel, form.transitionFx === fx && styles.choiceLabelOn]}>\n {fx}\n </Text>\n </Pressable>\n ))}\n </View>\n <Stepper\n label=\"Ms\"\n value={`${form.transitionMs}`}\n onLess={() => patch('transitionMs', Math.max(200, form.transitionMs - 200))}\n onMore={() => patch('transitionMs', form.transitionMs + 200)}\n />\n </View>\n );\n }\n if (op === 'add_audio') {\n return (\n <PickRow\n label=\"Audio\"\n items={audios}\n selected={form.addAudioUrl}\n onSelect={(url) => patch('addAudioUrl', url)}\n empty=\"Add an audio item to the board.\"\n />\n );\n }\n if (op === 'extract_frames') {\n return (\n <Stepper\n label=\"FPS\"\n value={`${form.extractFps}`}\n onLess={() => patch('extractFps', Math.max(1, form.extractFps - 1))}\n onMore={() => patch('extractFps', form.extractFps + 1)}\n />\n );\n }\n if (op === 'contact_sheet') {\n return (\n <View style={styles.row}>\n <Stepper\n label=\"Cols\"\n value={`${form.sheetCols}`}\n onLess={() => patch('sheetCols', Math.max(1, form.sheetCols - 1))}\n onMore={() => patch('sheetCols', form.sheetCols + 1)}\n />\n <Stepper\n label=\"Rows\"\n value={`${form.sheetRows}`}\n onLess={() => patch('sheetRows', Math.max(1, form.sheetRows - 1))}\n onMore={() => patch('sheetRows', form.sheetRows + 1)}\n />\n </View>\n );\n }\n return <Text style={styles.hint}>Apply to run this edit.</Text>;\n}\n\nconst styles = StyleSheet.create({\n root: { flex: 1, backgroundColor: '#0A0A0C' },\n header: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n paddingHorizontal: 16,\n paddingVertical: 12,\n gap: 12,\n },\n headerTitle: { flex: 1, color: '#F7F7FA', fontSize: 15, fontWeight: '600', textAlign: 'center' },\n headerActions: { flexDirection: 'row', alignItems: 'center', gap: 16 },\n done: { color: '#8B7CFF', fontSize: 15, fontWeight: '600' },\n disabled: { opacity: 0.35 },\n stage: {\n flex: 1,\n marginHorizontal: 14,\n borderRadius: 18,\n backgroundColor: '#0F0F14',\n overflow: 'hidden',\n alignItems: 'center',\n justifyContent: 'center',\n },\n playBtn: {\n position: 'absolute',\n width: 52,\n height: 52,\n borderRadius: 26,\n backgroundColor: '#F7F7FA',\n alignItems: 'center',\n justifyContent: 'center',\n },\n busyVeil: {\n ...StyleSheet.absoluteFillObject,\n borderRadius: 18,\n alignItems: 'center',\n justifyContent: 'center',\n gap: 10,\n backgroundColor: 'rgba(10, 10, 12, 0.55)',\n },\n busyLabel: { color: '#E8E8EE', fontSize: 12.5 },\n panel: {\n maxHeight: '48%',\n borderTopWidth: StyleSheet.hairlineWidth,\n borderTopColor: 'rgba(255,255,255,0.08)',\n paddingBottom: 10,\n },\n chipScroll: { flexGrow: 0 },\n chipRow: { paddingHorizontal: 12, paddingTop: 8, gap: 6, flexDirection: 'row' },\n catChip: { paddingHorizontal: 10, paddingVertical: 6, borderRadius: 999, backgroundColor: '#1F1F24' },\n catChipOn: { backgroundColor: '#F7F7FA' },\n catLabel: { color: '#9A9AA5', fontSize: 11, fontWeight: '600' },\n catLabelOn: { color: '#0A0A0C' },\n opChip: { paddingHorizontal: 10, paddingVertical: 5, borderRadius: 999, backgroundColor: '#16161A' },\n opChipOn: { backgroundColor: '#8B7CFF' },\n opLabel: { color: '#C8C8D0', fontSize: 12, fontWeight: '500' },\n opLabelOn: { color: '#0A0A0C' },\n controls: { maxHeight: 140, marginTop: 6 },\n controlsInner: { paddingHorizontal: 14, paddingBottom: 8, gap: 8 },\n apply: {\n marginHorizontal: 14,\n marginTop: 4,\n height: 40,\n borderRadius: 10,\n backgroundColor: '#8B7CFF',\n alignItems: 'center',\n justifyContent: 'center',\n },\n applyLabel: { color: '#0A0A0C', fontSize: 14, fontWeight: '700' },\n row: { flexDirection: 'row', alignItems: 'center', gap: 8, flexWrap: 'wrap', paddingVertical: 4 },\n grid: { flexDirection: 'row', flexWrap: 'wrap', gap: 8 },\n hint: { color: '#9A9AA5', fontSize: 13, lineHeight: 18 },\n probe: { color: '#C8C8D0', fontSize: 11, fontFamily: 'Menlo', marginTop: 6 },\n choice: {\n paddingHorizontal: 12,\n paddingVertical: 8,\n borderRadius: 9,\n backgroundColor: '#1F1F24',\n maxWidth: 140,\n },\n choiceOn: { backgroundColor: '#8B7CFF' },\n choiceLabel: { color: '#F7F7FA', fontSize: 12.5, fontWeight: '500' },\n choiceLabelOn: { color: '#0A0A0C' },\n field: { minWidth: 88, flexGrow: 1 },\n fieldLabel: { color: '#9A9AA5', fontSize: 11, marginBottom: 4 },\n fieldInput: {\n color: '#F7F7FA',\n fontSize: 13,\n paddingHorizontal: 10,\n paddingVertical: 8,\n borderRadius: 9,\n backgroundColor: '#1F1F24',\n },\n fieldMulti: { minHeight: 56, textAlignVertical: 'top' },\n stepper: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 9,\n paddingHorizontal: 12,\n paddingVertical: 8,\n borderRadius: 9,\n backgroundColor: '#1F1F24',\n },\n stepperLabel: { color: '#9A9AA5', fontSize: 11.5 },\n stepperValue: {\n color: '#F7F7FA',\n fontSize: 12.5,\n fontVariant: ['tabular-nums'],\n minWidth: 44,\n textAlign: 'center',\n },\n notice: {\n position: 'absolute',\n left: 20,\n right: 20,\n bottom: 24,\n flexDirection: 'row',\n alignItems: 'center',\n gap: 12,\n paddingHorizontal: 14,\n paddingVertical: 11,\n borderRadius: 12,\n backgroundColor: 'rgba(248, 250, 252, 0.96)',\n },\n noticeText: { flex: 1, color: '#0f172a', fontSize: 13 },\n noticeDismiss: { color: '#6C5CE7', fontSize: 13, fontWeight: '600' },\n});\n"],"names":["_a"],"mappings":"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"}
1
+ {"version":3,"file":"VideoEditExperience.js","sources":["../../../src/features/canvas/VideoEditExperience.tsx"],"sourcesContent":["/**\n * Native twin of web canvas \"Edit Video\" — category + op tabs over\n * `yantra-video-editing` (trim, crop, pad, rotate, concat, …). Apply is one\n * connector op; history is undo; Done writes the latest URL onto the board.\n */\nimport React, { useCallback, useMemo, useState } from 'react';\nimport { ActivityIndicator, ScrollView, StyleSheet, Text, TextInput, View } from 'react-native';\nimport { MaterialCommunityIcons } from '@expo/vector-icons';\nimport type { CanvasItem } from './canvasCore';\nimport { getVideoPreviewRenderer } from './videoRenderer';\nimport { friendlyMediaError, resultUrl, type RunMediaAction } from './videoEditor/mediaActions';\nimport { Field, PickMulti, PickRow, Stepper } from './videoEditor/formWidgets';\nimport {\n INSTANT_HINT,\n VIDEO_EDIT_ACTIONS,\n VIDEO_EDIT_CATEGORIES,\n resultKind,\n type VideoEditCategory,\n type VideoEditOp,\n} from './videoEditor/videoEditOps';\nimport { useCanvasTheme, themedStyles, type CanvasPalette } from './canvasTheme';\nimport { Pressable, RADIUS, SPACE, TYPE, pressedStyle } from './canvasUi';\n\nexport interface VideoEditExperienceProps {\n src: string;\n name?: string;\n /** Other board items — overlay, concat, add-audio, slideshow. */\n items?: readonly CanvasItem[];\n runAction?: RunMediaAction;\n onClose: () => void;\n onApplied: (url: string, kind: 'video' | 'image' | 'audio') => void;\n}\n\nexport function VideoEditExperience({\n src,\n name,\n items = [],\n runAction,\n onClose,\n onApplied,\n}: VideoEditExperienceProps) {\n const theme = useCanvasTheme();\n const styles = useMemo(() => makeStyles(theme), [theme]);\n const [history, setHistory] = useState<string[]>([src]);\n const [appliedKind, setAppliedKind] = useState<'video' | 'image' | 'audio'>('video');\n const [busy, setBusy] = useState<string | null>(null);\n const [notice, setNotice] = useState<string | null>(null);\n const [probe, setProbe] = useState<string | null>(null);\n const [playing, setPlaying] = useState(false);\n const [category, setCategory] = useState<VideoEditCategory>('basic');\n const [op, setOp] = useState<VideoEditOp>('trim');\n const [form, setForm] = useState(defaultForm);\n const current = history[history.length - 1];\n const edited = history.length > 1;\n const VideoPreview = getVideoPreviewRenderer();\n const ops = VIDEO_EDIT_CATEGORIES.find((c) => c.id === category)?.ops ?? [];\n\n const patch = useCallback(<K extends keyof EditForm>(key: K, value: EditForm[K]) => {\n setForm((prev) => ({ ...prev, [key]: value }));\n }, []);\n\n const apply = useCallback(() => {\n if (!runAction) {\n setNotice('Editing needs the host connector, which this host has not wired.');\n return;\n }\n if (busy) return;\n const action = VIDEO_EDIT_ACTIONS[op];\n const params = paramsFor(op, form);\n setBusy(opLabel(op));\n setPlaying(false);\n setProbe(null);\n runAction('yantra-video-editing', action, { input_url: current, ...params })\n .then((result) => {\n if (op === 'probe') {\n setProbe(JSON.stringify(result.data ?? result, null, 2));\n return;\n }\n setHistory((h) => [...h, resultUrl(result, action)]);\n setAppliedKind(resultKind(op));\n setNotice(null);\n })\n .catch((err: unknown) => setNotice(friendlyMediaError(err, 'video edit')))\n .finally(() => setBusy(null));\n }, [busy, current, form, op, runAction]);\n\n const done = () => {\n if (edited) onApplied(current, appliedKind);\n else onClose();\n };\n\n const videos = useMemo(() => items.filter((i) => i.type === 'video' && i.src !== current), [items, current]);\n const images = useMemo(() => items.filter((i) => i.type === 'image'), [items]);\n const audios = useMemo(() => items.filter((i) => i.type === 'audio'), [items]);\n\n return (\n <View style={styles.root} testID=\"video-editor\">\n <View style={styles.header}>\n <Pressable onPress={onClose} hitSlop={10} accessibilityRole=\"button\" accessibilityLabel=\"Close editor\">\n <MaterialCommunityIcons name=\"close\" size={22} color={theme.edInk} />\n </Pressable>\n <Text style={styles.headerTitle} numberOfLines={1}>\n {name?.trim() || 'Edit video'}\n </Text>\n <View style={styles.headerActions}>\n <Pressable\n onPress={() => setHistory((h) => (h.length > 1 ? h.slice(0, -1) : h))}\n hitSlop={10}\n disabled={!edited || busy !== null}\n accessibilityRole=\"button\"\n accessibilityLabel=\"Undo\"\n style={!edited || busy ? styles.disabled : null}\n >\n <MaterialCommunityIcons name=\"undo-variant\" size={21} color={theme.edInk} />\n </Pressable>\n <Pressable\n onPress={done}\n hitSlop={10}\n accessibilityRole=\"button\"\n accessibilityLabel=\"Done\"\n style={({ pressed }) => [styles.doneBtn, pressedStyle(pressed)]}\n >\n <Text style={styles.done}>{edited ? 'Done' : 'Close'}</Text>\n </Pressable>\n </View>\n </View>\n\n <View style={styles.stage}>\n {VideoPreview ? (\n <VideoPreview\n src={current}\n playing={playing}\n rate={1}\n volume={1}\n muted={false}\n trimStartSec={0}\n trimEndSec={null}\n onTime={(sec, dur) => {\n if (dur > 0 && sec >= dur - 0.15) setPlaying(false);\n }}\n />\n ) : (\n <MaterialCommunityIcons name=\"video-outline\" size={56} color=\"#2A2440\" />\n )}\n <Pressable\n onPress={() => setPlaying((p) => !p)}\n style={styles.playBtn}\n accessibilityRole=\"button\"\n accessibilityLabel={playing ? 'Pause' : 'Play'}\n disabled={!VideoPreview}\n >\n <MaterialCommunityIcons name={playing ? 'pause' : 'play'} size={26} color=\"#0A0A0C\" />\n </Pressable>\n {busy ? (\n <View style={styles.busyVeil}>\n <ActivityIndicator color=\"#F7F7FA\" />\n <Text style={styles.busyLabel}>{busy}…</Text>\n </View>\n ) : null}\n </View>\n\n <View style={styles.panel}>\n <ScrollView\n horizontal\n showsHorizontalScrollIndicator={false}\n contentContainerStyle={styles.chipRow}\n style={styles.chipScroll}\n >\n {VIDEO_EDIT_CATEGORIES.map((cat) => {\n const active = category === cat.id;\n return (\n <Pressable\n key={cat.id}\n onPress={() => {\n setCategory(cat.id);\n setOp(cat.ops[0].op);\n setProbe(null);\n }}\n style={({ pressed }) => [\n styles.catChip,\n active && styles.catChipOn,\n pressedStyle(pressed),\n ]}\n >\n <Text style={[styles.catLabel, active && styles.catLabelOn]}>{cat.label}</Text>\n </Pressable>\n );\n })}\n </ScrollView>\n <ScrollView\n horizontal\n showsHorizontalScrollIndicator={false}\n contentContainerStyle={styles.chipRow}\n style={styles.chipScroll}\n >\n {ops.map((entry) => {\n const active = op === entry.op;\n return (\n <Pressable\n key={entry.op}\n onPress={() => {\n setOp(entry.op);\n setProbe(null);\n }}\n style={({ pressed }) => [\n styles.opChip,\n active && styles.opChipOn,\n pressedStyle(pressed),\n ]}\n >\n <Text style={[styles.opLabel, active && styles.opLabelOn]}>{entry.label}</Text>\n </Pressable>\n );\n })}\n </ScrollView>\n\n <ScrollView style={styles.controls} contentContainerStyle={styles.controlsInner}>\n <OpControls op={op} form={form} patch={patch} videos={videos} images={images} audios={audios} />\n {probe ? <Text style={styles.probe}>{probe}</Text> : null}\n </ScrollView>\n\n <Pressable\n onPress={apply}\n disabled={busy !== null}\n style={({ pressed }) => [styles.apply, busy && styles.disabled, pressedStyle(pressed)]}\n accessibilityRole=\"button\"\n accessibilityLabel=\"Apply edit\"\n >\n <Text style={styles.applyLabel}>Apply {opLabel(op)}</Text>\n </Pressable>\n </View>\n\n {notice ? (\n <View style={styles.notice}>\n <Text style={styles.noticeText}>{notice}</Text>\n <Pressable onPress={() => setNotice(null)} hitSlop={8}>\n <Text style={styles.noticeDismiss}>OK</Text>\n </Pressable>\n </View>\n ) : null}\n </View>\n );\n}\n\ninterface EditForm {\n trimStart: number;\n trimEnd: number;\n speed: number;\n codec: 'h264' | 'h265' | 'av1';\n resolution: '720p' | '1080p' | '4k';\n gifFps: number;\n gifWidth: number;\n thumbTime: number;\n fps: number;\n cropX: string;\n cropY: string;\n cropW: string;\n cropH: string;\n padW: string;\n padH: string;\n padColor: string;\n rotateDeg: number;\n flipH: boolean;\n flipV: boolean;\n fadeInMs: number;\n fadeOutMs: number;\n blur: number;\n denoise: 'light' | 'medium' | 'strong';\n stabilize: number;\n delogoX: number;\n delogoY: number;\n delogoW: number;\n delogoH: number;\n brightness: number;\n contrast: number;\n saturation: number;\n volume: number;\n lufs: number;\n delayMs: number;\n overlayText: string;\n overlayX: string;\n overlayY: string;\n overlaySize: number;\n overlayImage: string;\n pipUrl: string;\n subtitleUrl: string;\n chroma: string;\n chromaSim: number;\n loop: number;\n tags: string;\n extraUrls: string[];\n stackDir: 'h' | 'v';\n transitionUrl: string;\n transitionFx: string;\n transitionMs: number;\n addAudioUrl: string;\n extractFps: number;\n slideSec: number;\n sheetCols: number;\n sheetRows: number;\n}\n\nconst defaultForm = (): EditForm => ({\n trimStart: 0,\n trimEnd: 10,\n speed: 1.5,\n codec: 'h264',\n resolution: '720p',\n gifFps: 10,\n gifWidth: 360,\n thumbTime: 0,\n fps: 30,\n cropX: '0',\n cropY: '0',\n cropW: 'iw',\n cropH: 'ih',\n padW: '1280',\n padH: '720',\n padColor: 'black',\n rotateDeg: 90,\n flipH: false,\n flipV: false,\n fadeInMs: 500,\n fadeOutMs: 500,\n blur: 5,\n denoise: 'medium',\n stabilize: 30,\n delogoX: 0,\n delogoY: 0,\n delogoW: 100,\n delogoH: 50,\n brightness: 0,\n contrast: 1,\n saturation: 1,\n volume: 1,\n lufs: -16,\n delayMs: 0,\n overlayText: '',\n overlayX: '10',\n overlayY: '10',\n overlaySize: 24,\n overlayImage: '',\n pipUrl: '',\n subtitleUrl: '',\n chroma: '#00ff00',\n chromaSim: 0.1,\n loop: 2,\n tags: 'title=My Video',\n extraUrls: [],\n stackDir: 'h',\n transitionUrl: '',\n transitionFx: 'fade',\n transitionMs: 1000,\n addAudioUrl: '',\n extractFps: 1,\n slideSec: 2,\n sheetCols: 5,\n sheetRows: 5,\n});\n\nfunction paramsFor(op: VideoEditOp, f: EditForm): Record<string, unknown> {\n switch (op) {\n case 'trim':\n return { start_secs: f.trimStart, end_secs: f.trimEnd };\n case 'speed':\n return { factor: f.speed };\n case 'transcode':\n return { codec: f.codec, resolution: f.resolution };\n case 'gif':\n return { fps: f.gifFps, width: f.gifWidth };\n case 'thumbnail':\n return { time_secs: f.thumbTime };\n case 'fps':\n return { fps: f.fps };\n case 'crop':\n return { x: f.cropX, y: f.cropY, width: f.cropW, height: f.cropH };\n case 'pad':\n return { width: f.padW, height: f.padH, color: f.padColor };\n case 'rotate':\n return { degrees: f.rotateDeg, flip_h: f.flipH, flip_v: f.flipV };\n case 'fade':\n return { fade_in_ms: f.fadeInMs, fade_out_ms: f.fadeOutMs };\n case 'blur':\n return { radius: f.blur };\n case 'denoise':\n return { strength: f.denoise };\n case 'stabilize':\n return { smoothing: f.stabilize };\n case 'delogo':\n return { x: f.delogoX, y: f.delogoY, width: f.delogoW, height: f.delogoH };\n case 'color_adjust':\n return { brightness: f.brightness, contrast: f.contrast, saturation: f.saturation };\n case 'volume':\n return { level: f.volume };\n case 'audio_normalize':\n return { i: f.lufs };\n case 'audio_delay':\n return { delay_ms: f.delayMs };\n case 'overlay_text':\n return { text: f.overlayText, x: f.overlayX, y: f.overlayY, font_size: f.overlaySize };\n case 'overlay_image':\n return { overlay_image: f.overlayImage };\n case 'picture_in_picture':\n return { overlay: f.pipUrl };\n case 'burn_subtitles':\n return { subtitle_file: f.subtitleUrl };\n case 'chroma_key':\n return { color: f.chroma, similarity: f.chromaSim };\n case 'loop':\n return { count: f.loop };\n case 'metadata': {\n const tags: Record<string, string> = {};\n f.tags.split('\\n').forEach((line) => {\n const eq = line.indexOf('=');\n if (eq > 0) tags[line.slice(0, eq).trim()] = line.slice(eq + 1).trim();\n });\n return { tags };\n }\n case 'concat':\n return { input_urls: f.extraUrls };\n case 'stack':\n return { input_urls: f.extraUrls, direction: f.stackDir };\n case 'transition':\n return { input2_url: f.transitionUrl, effect: f.transitionFx, duration_ms: f.transitionMs };\n case 'add_audio':\n return { audio_input_url: f.addAudioUrl };\n case 'extract_frames':\n return { fps: f.extractFps };\n case 'slideshow':\n return { duration_per_image: f.slideSec };\n case 'contact_sheet':\n return { cols: f.sheetCols, rows: f.sheetRows };\n default:\n return {};\n }\n}\n\nfunction opLabel(op: VideoEditOp): string {\n for (const cat of VIDEO_EDIT_CATEGORIES) {\n const hit = cat.ops.find((o) => o.op === op);\n if (hit) return hit.label;\n }\n return op;\n}\n\nfunction OpControls({\n op,\n form,\n patch,\n videos,\n images,\n audios,\n}: {\n op: VideoEditOp;\n form: EditForm;\n patch: <K extends keyof EditForm>(key: K, value: EditForm[K]) => void;\n videos: readonly CanvasItem[];\n images: readonly CanvasItem[];\n audios: readonly CanvasItem[];\n}) {\n const theme = useCanvasTheme();\n const styles = useMemo(() => makeStyles(theme), [theme]);\n const hint = INSTANT_HINT[op];\n if (hint) return <Text style={styles.hint}>{hint}</Text>;\n\n if (op === 'trim') {\n return (\n <View style={styles.row}>\n <Stepper\n label=\"Start\"\n value={`${form.trimStart.toFixed(1)}s`}\n onLess={() => patch('trimStart', Math.max(0, form.trimStart - 0.5))}\n onMore={() => patch('trimStart', Math.min(form.trimEnd - 0.5, form.trimStart + 0.5))}\n />\n <Stepper\n label=\"End\"\n value={`${form.trimEnd.toFixed(1)}s`}\n onLess={() => patch('trimEnd', Math.max(form.trimStart + 0.5, form.trimEnd - 0.5))}\n onMore={() => patch('trimEnd', form.trimEnd + 0.5)}\n />\n </View>\n );\n }\n if (op === 'speed') {\n return (\n <View style={styles.row}>\n {[0.25, 0.5, 1.5, 2, 4].map((factor) => (\n <Pressable\n key={factor}\n onPress={() => patch('speed', factor)}\n style={[styles.choice, form.speed === factor && styles.choiceOn]}\n >\n <Text style={[styles.choiceLabel, form.speed === factor && styles.choiceLabelOn]}>\n {factor}×\n </Text>\n </Pressable>\n ))}\n </View>\n );\n }\n if (op === 'transcode') {\n return (\n <View style={styles.row}>\n {(['h264', 'h265', 'av1'] as const).map((codec) => (\n <Pressable\n key={codec}\n onPress={() => patch('codec', codec)}\n style={[styles.choice, form.codec === codec && styles.choiceOn]}\n >\n <Text style={[styles.choiceLabel, form.codec === codec && styles.choiceLabelOn]}>\n {codec.toUpperCase()}\n </Text>\n </Pressable>\n ))}\n {(['720p', '1080p', '4k'] as const).map((res) => (\n <Pressable\n key={res}\n onPress={() => patch('resolution', res)}\n style={[styles.choice, form.resolution === res && styles.choiceOn]}\n >\n <Text style={[styles.choiceLabel, form.resolution === res && styles.choiceLabelOn]}>{res}</Text>\n </Pressable>\n ))}\n </View>\n );\n }\n if (op === 'gif') {\n return (\n <View style={styles.row}>\n <Stepper\n label=\"FPS\"\n value={`${form.gifFps}`}\n onLess={() => patch('gifFps', Math.max(5, form.gifFps - 1))}\n onMore={() => patch('gifFps', Math.min(24, form.gifFps + 1))}\n />\n {[360, 480, 640].map((w) => (\n <Pressable\n key={w}\n onPress={() => patch('gifWidth', w)}\n style={[styles.choice, form.gifWidth === w && styles.choiceOn]}\n >\n <Text style={[styles.choiceLabel, form.gifWidth === w && styles.choiceLabelOn]}>{w}px</Text>\n </Pressable>\n ))}\n </View>\n );\n }\n if (op === 'thumbnail') {\n return (\n <Stepper\n label=\"At\"\n value={`${form.thumbTime.toFixed(1)}s`}\n onLess={() => patch('thumbTime', Math.max(0, form.thumbTime - 0.5))}\n onMore={() => patch('thumbTime', form.thumbTime + 0.5)}\n />\n );\n }\n if (op === 'fps') {\n return (\n <View style={styles.row}>\n {[24, 30, 60].map((n) => (\n <Pressable\n key={n}\n onPress={() => patch('fps', n)}\n style={[styles.choice, form.fps === n && styles.choiceOn]}\n >\n <Text style={[styles.choiceLabel, form.fps === n && styles.choiceLabelOn]}>{n} fps</Text>\n </Pressable>\n ))}\n </View>\n );\n }\n if (op === 'crop') {\n return (\n <View style={styles.grid}>\n <Field label=\"X\" value={form.cropX} onChange={(v) => patch('cropX', v)} />\n <Field label=\"Y\" value={form.cropY} onChange={(v) => patch('cropY', v)} />\n <Field label=\"Width\" value={form.cropW} onChange={(v) => patch('cropW', v)} />\n <Field label=\"Height\" value={form.cropH} onChange={(v) => patch('cropH', v)} />\n </View>\n );\n }\n if (op === 'pad') {\n return (\n <View style={styles.grid}>\n <Field label=\"Width\" value={form.padW} onChange={(v) => patch('padW', v)} />\n <Field label=\"Height\" value={form.padH} onChange={(v) => patch('padH', v)} />\n <Field label=\"Color\" value={form.padColor} onChange={(v) => patch('padColor', v)} />\n </View>\n );\n }\n if (op === 'rotate') {\n return (\n <View style={styles.row}>\n {[90, 180, 270].map((deg) => (\n <Pressable\n key={deg}\n onPress={() => patch('rotateDeg', deg)}\n style={[styles.choice, form.rotateDeg === deg && styles.choiceOn]}\n >\n <Text style={[styles.choiceLabel, form.rotateDeg === deg && styles.choiceLabelOn]}>{deg}°</Text>\n </Pressable>\n ))}\n <Pressable\n onPress={() => patch('flipH', !form.flipH)}\n style={[styles.choice, form.flipH && styles.choiceOn]}\n >\n <Text style={[styles.choiceLabel, form.flipH && styles.choiceLabelOn]}>Flip H</Text>\n </Pressable>\n <Pressable\n onPress={() => patch('flipV', !form.flipV)}\n style={[styles.choice, form.flipV && styles.choiceOn]}\n >\n <Text style={[styles.choiceLabel, form.flipV && styles.choiceLabelOn]}>Flip V</Text>\n </Pressable>\n </View>\n );\n }\n if (op === 'fade') {\n return (\n <View style={styles.row}>\n <Stepper\n label=\"In\"\n value={`${form.fadeInMs}ms`}\n onLess={() => patch('fadeInMs', Math.max(0, form.fadeInMs - 100))}\n onMore={() => patch('fadeInMs', form.fadeInMs + 100)}\n />\n <Stepper\n label=\"Out\"\n value={`${form.fadeOutMs}ms`}\n onLess={() => patch('fadeOutMs', Math.max(0, form.fadeOutMs - 100))}\n onMore={() => patch('fadeOutMs', form.fadeOutMs + 100)}\n />\n </View>\n );\n }\n if (op === 'blur') {\n return (\n <Stepper\n label=\"Radius\"\n value={`${form.blur}`}\n onLess={() => patch('blur', Math.max(1, form.blur - 1))}\n onMore={() => patch('blur', form.blur + 1)}\n />\n );\n }\n if (op === 'denoise') {\n return (\n <View style={styles.row}>\n {(['light', 'medium', 'strong'] as const).map((level) => (\n <Pressable\n key={level}\n onPress={() => patch('denoise', level)}\n style={[styles.choice, form.denoise === level && styles.choiceOn]}\n >\n <Text style={[styles.choiceLabel, form.denoise === level && styles.choiceLabelOn]}>\n {level}\n </Text>\n </Pressable>\n ))}\n </View>\n );\n }\n if (op === 'stabilize') {\n return (\n <Stepper\n label=\"Smooth\"\n value={`${form.stabilize}`}\n onLess={() => patch('stabilize', Math.max(1, form.stabilize - 5))}\n onMore={() => patch('stabilize', Math.min(60, form.stabilize + 5))}\n />\n );\n }\n if (op === 'delogo') {\n return (\n <View style={styles.grid}>\n <Stepper\n label=\"X\"\n value={`${form.delogoX}`}\n onLess={() => patch('delogoX', Math.max(0, form.delogoX - 8))}\n onMore={() => patch('delogoX', form.delogoX + 8)}\n />\n <Stepper\n label=\"Y\"\n value={`${form.delogoY}`}\n onLess={() => patch('delogoY', Math.max(0, form.delogoY - 8))}\n onMore={() => patch('delogoY', form.delogoY + 8)}\n />\n <Stepper\n label=\"W\"\n value={`${form.delogoW}`}\n onLess={() => patch('delogoW', Math.max(8, form.delogoW - 8))}\n onMore={() => patch('delogoW', form.delogoW + 8)}\n />\n <Stepper\n label=\"H\"\n value={`${form.delogoH}`}\n onLess={() => patch('delogoH', Math.max(8, form.delogoH - 8))}\n onMore={() => patch('delogoH', form.delogoH + 8)}\n />\n </View>\n );\n }\n if (op === 'color_adjust') {\n return (\n <View style={styles.row}>\n <Stepper\n label=\"Bright\"\n value={form.brightness.toFixed(1)}\n onLess={() => patch('brightness', Math.round((form.brightness - 0.1) * 10) / 10)}\n onMore={() => patch('brightness', Math.round((form.brightness + 0.1) * 10) / 10)}\n />\n <Stepper\n label=\"Contrast\"\n value={form.contrast.toFixed(1)}\n onLess={() => patch('contrast', Math.max(0, Math.round((form.contrast - 0.1) * 10) / 10))}\n onMore={() => patch('contrast', Math.round((form.contrast + 0.1) * 10) / 10)}\n />\n <Stepper\n label=\"Sat\"\n value={form.saturation.toFixed(1)}\n onLess={() => patch('saturation', Math.max(0, Math.round((form.saturation - 0.1) * 10) / 10))}\n onMore={() => patch('saturation', Math.round((form.saturation + 0.1) * 10) / 10)}\n />\n </View>\n );\n }\n if (op === 'volume') {\n return (\n <View style={styles.row}>\n {[0.25, 0.5, 1, 1.5, 2].map((level) => (\n <Pressable\n key={level}\n onPress={() => patch('volume', level)}\n style={[styles.choice, form.volume === level && styles.choiceOn]}\n >\n <Text style={[styles.choiceLabel, form.volume === level && styles.choiceLabelOn]}>\n {Math.round(level * 100)}%\n </Text>\n </Pressable>\n ))}\n </View>\n );\n }\n if (op === 'audio_normalize') {\n return (\n <Stepper\n label=\"LUFS\"\n value={`${form.lufs}`}\n onLess={() => patch('lufs', form.lufs - 1)}\n onMore={() => patch('lufs', form.lufs + 1)}\n />\n );\n }\n if (op === 'audio_delay') {\n return (\n <Stepper\n label=\"Delay\"\n value={`${form.delayMs}ms`}\n onLess={() => patch('delayMs', Math.max(0, form.delayMs - 50))}\n onMore={() => patch('delayMs', form.delayMs + 50)}\n />\n );\n }\n if (op === 'overlay_text') {\n return (\n <View>\n <Field label=\"Text\" value={form.overlayText} onChange={(v) => patch('overlayText', v)} />\n <View style={styles.row}>\n <Field label=\"X\" value={form.overlayX} onChange={(v) => patch('overlayX', v)} />\n <Field label=\"Y\" value={form.overlayY} onChange={(v) => patch('overlayY', v)} />\n <Stepper\n label=\"Size\"\n value={`${form.overlaySize}`}\n onLess={() => patch('overlaySize', Math.max(10, form.overlaySize - 2))}\n onMore={() => patch('overlaySize', form.overlaySize + 2)}\n />\n </View>\n </View>\n );\n }\n if (op === 'overlay_image') {\n return (\n <PickRow\n label=\"Overlay image\"\n items={images}\n selected={form.overlayImage}\n onSelect={(url) => patch('overlayImage', url)}\n empty=\"Add an image to the board first.\"\n />\n );\n }\n if (op === 'picture_in_picture') {\n return (\n <PickRow\n label=\"PiP clip\"\n items={[...videos, ...images]}\n selected={form.pipUrl}\n onSelect={(url) => patch('pipUrl', url)}\n empty=\"Add another clip or image to the board.\"\n />\n );\n }\n if (op === 'burn_subtitles') {\n return <Field label=\"Subtitle URL\" value={form.subtitleUrl} onChange={(v) => patch('subtitleUrl', v)} />;\n }\n if (op === 'chroma_key') {\n return (\n <View style={styles.row}>\n <Field label=\"Color\" value={form.chroma} onChange={(v) => patch('chroma', v)} />\n <Stepper\n label=\"Sim\"\n value={form.chromaSim.toFixed(2)}\n onLess={() => patch('chromaSim', Math.max(0, Math.round((form.chromaSim - 0.05) * 100) / 100))}\n onMore={() => patch('chromaSim', Math.round((form.chromaSim + 0.05) * 100) / 100)}\n />\n </View>\n );\n }\n if (op === 'loop') {\n return (\n <Stepper\n label=\"Count\"\n value={`${form.loop}`}\n onLess={() => patch('loop', Math.max(1, form.loop - 1))}\n onMore={() => patch('loop', form.loop + 1)}\n />\n );\n }\n if (op === 'metadata') {\n return <Field label=\"Tags (key=value)\" value={form.tags} onChange={(v) => patch('tags', v)} multiline />;\n }\n if (op === 'concat' || op === 'stack') {\n return (\n <View>\n {op === 'stack' ? (\n <View style={styles.row}>\n <Pressable\n onPress={() => patch('stackDir', 'h')}\n style={[styles.choice, form.stackDir === 'h' && styles.choiceOn]}\n >\n <Text style={[styles.choiceLabel, form.stackDir === 'h' && styles.choiceLabelOn]}>\n Horizontal\n </Text>\n </Pressable>\n <Pressable\n onPress={() => patch('stackDir', 'v')}\n style={[styles.choice, form.stackDir === 'v' && styles.choiceOn]}\n >\n <Text style={[styles.choiceLabel, form.stackDir === 'v' && styles.choiceLabelOn]}>\n Vertical\n </Text>\n </Pressable>\n </View>\n ) : null}\n <PickMulti\n items={videos}\n selected={form.extraUrls}\n onChange={(urls) => patch('extraUrls', urls)}\n empty=\"Add more videos to the board.\"\n />\n </View>\n );\n }\n if (op === 'slideshow') {\n return (\n <Stepper\n label=\"Each\"\n value={`${form.slideSec}s`}\n onLess={() => patch('slideSec', Math.max(0.5, form.slideSec - 0.5))}\n onMore={() => patch('slideSec', form.slideSec + 0.5)}\n />\n );\n }\n if (op === 'transition') {\n return (\n <View>\n <PickRow\n label=\"Second clip\"\n items={videos}\n selected={form.transitionUrl}\n onSelect={(url) => patch('transitionUrl', url)}\n empty=\"Add another video to the board.\"\n />\n <View style={styles.row}>\n {['fade', 'wipeleft', 'slideright', 'circlecrop'].map((fx) => (\n <Pressable\n key={fx}\n onPress={() => patch('transitionFx', fx)}\n style={[styles.choice, form.transitionFx === fx && styles.choiceOn]}\n >\n <Text style={[styles.choiceLabel, form.transitionFx === fx && styles.choiceLabelOn]}>\n {fx}\n </Text>\n </Pressable>\n ))}\n </View>\n <Stepper\n label=\"Ms\"\n value={`${form.transitionMs}`}\n onLess={() => patch('transitionMs', Math.max(200, form.transitionMs - 200))}\n onMore={() => patch('transitionMs', form.transitionMs + 200)}\n />\n </View>\n );\n }\n if (op === 'add_audio') {\n return (\n <PickRow\n label=\"Audio\"\n items={audios}\n selected={form.addAudioUrl}\n onSelect={(url) => patch('addAudioUrl', url)}\n empty=\"Add an audio item to the board.\"\n />\n );\n }\n if (op === 'extract_frames') {\n return (\n <Stepper\n label=\"FPS\"\n value={`${form.extractFps}`}\n onLess={() => patch('extractFps', Math.max(1, form.extractFps - 1))}\n onMore={() => patch('extractFps', form.extractFps + 1)}\n />\n );\n }\n if (op === 'contact_sheet') {\n return (\n <View style={styles.row}>\n <Stepper\n label=\"Cols\"\n value={`${form.sheetCols}`}\n onLess={() => patch('sheetCols', Math.max(1, form.sheetCols - 1))}\n onMore={() => patch('sheetCols', form.sheetCols + 1)}\n />\n <Stepper\n label=\"Rows\"\n value={`${form.sheetRows}`}\n onLess={() => patch('sheetRows', Math.max(1, form.sheetRows - 1))}\n onMore={() => patch('sheetRows', form.sheetRows + 1)}\n />\n </View>\n );\n }\n return <Text style={styles.hint}>Apply to run this edit.</Text>;\n}\n\nconst makeStyles = themedStyles((theme: CanvasPalette) =>\n StyleSheet.create({\n root: { flex: 1, backgroundColor: theme.edBg },\n header: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n paddingHorizontal: SPACE.lg,\n paddingVertical: SPACE.sm,\n minHeight: 56,\n gap: SPACE.md,\n },\n headerTitle: { ...TYPE.title, flex: 1, color: theme.edInk, textAlign: 'center' },\n headerActions: { flexDirection: 'row', alignItems: 'center', gap: SPACE.lg },\n doneBtn: {\n minHeight: 36,\n paddingHorizontal: SPACE.lg,\n borderRadius: RADIUS.pill,\n backgroundColor: theme.primary,\n alignItems: 'center',\n justifyContent: 'center',\n },\n done: { ...TYPE.label, color: theme.primaryForeground },\n disabled: { opacity: 0.35 },\n stage: {\n flex: 1,\n marginHorizontal: SPACE.md,\n borderRadius: RADIUS.lg,\n backgroundColor: '#0F0F14', // media stage stays dark\n overflow: 'hidden',\n alignItems: 'center',\n justifyContent: 'center',\n },\n playBtn: {\n position: 'absolute',\n width: 56,\n height: 56,\n borderRadius: RADIUS.pill,\n backgroundColor: '#F7F7FA',\n alignItems: 'center',\n justifyContent: 'center',\n },\n busyVeil: {\n ...StyleSheet.absoluteFillObject,\n borderRadius: RADIUS.lg,\n alignItems: 'center',\n justifyContent: 'center',\n gap: SPACE.sm,\n backgroundColor: 'rgba(10, 10, 12, 0.55)',\n },\n busyLabel: { ...TYPE.caption, color: '#E8E8EE' },\n panel: {\n maxHeight: '48%',\n marginTop: SPACE.md,\n paddingTop: SPACE.xs,\n paddingBottom: SPACE.md,\n borderTopLeftRadius: RADIUS.xl,\n borderTopRightRadius: RADIUS.xl,\n backgroundColor: theme.edPanel,\n },\n chipScroll: { flexGrow: 0 },\n chipRow: { paddingHorizontal: SPACE.md, paddingTop: SPACE.sm, gap: SPACE.sm, flexDirection: 'row' },\n catChip: {\n minHeight: 32,\n justifyContent: 'center',\n paddingHorizontal: SPACE.md,\n borderRadius: RADIUS.pill,\n backgroundColor: theme.edRaised,\n },\n catChipOn: { backgroundColor: theme.edInk },\n catLabel: { ...TYPE.label, color: theme.edInk2 },\n catLabelOn: { color: theme.edOnInk },\n opChip: {\n minHeight: 30,\n justifyContent: 'center',\n paddingHorizontal: SPACE.md,\n borderRadius: RADIUS.pill,\n backgroundColor: 'transparent',\n },\n opChipOn: { backgroundColor: theme.edAccentSoft },\n opLabel: { ...TYPE.caption, color: theme.edInk2 },\n opLabelOn: { color: theme.edAccent, fontWeight: '600' },\n controls: { maxHeight: 150, marginTop: SPACE.sm },\n controlsInner: { paddingHorizontal: SPACE.lg, paddingBottom: SPACE.sm, gap: SPACE.sm },\n apply: {\n marginHorizontal: SPACE.lg,\n marginTop: SPACE.sm,\n height: 44,\n borderRadius: RADIUS.md,\n backgroundColor: theme.edAccent,\n alignItems: 'center',\n justifyContent: 'center',\n },\n applyLabel: { ...TYPE.label, fontSize: 14, color: theme.edOnInk },\n row: { flexDirection: 'row', alignItems: 'center', gap: SPACE.sm, flexWrap: 'wrap', paddingVertical: SPACE.xs },\n grid: { flexDirection: 'row', flexWrap: 'wrap', gap: SPACE.sm },\n hint: { ...TYPE.label, fontWeight: '400', color: theme.edInk2 },\n probe: { color: theme.edInk2, fontSize: 11, fontFamily: 'Menlo', marginTop: SPACE.sm },\n choice: {\n minHeight: 34,\n justifyContent: 'center',\n paddingHorizontal: SPACE.md,\n borderRadius: RADIUS.pill,\n backgroundColor: theme.edRaised,\n maxWidth: 140,\n },\n choiceOn: { backgroundColor: theme.edInk },\n choiceLabel: { ...TYPE.caption, color: theme.edInk },\n choiceLabelOn: { color: theme.edOnInk, fontWeight: '600' },\n field: { minWidth: 88, flexGrow: 1 },\n fieldLabel: { ...TYPE.caption, color: theme.edInk2, marginBottom: SPACE.xs },\n fieldInput: {\n color: theme.edInk,\n fontSize: 14,\n paddingHorizontal: SPACE.md,\n paddingVertical: 10,\n borderRadius: RADIUS.md,\n backgroundColor: theme.edRaised,\n },\n fieldMulti: { minHeight: 64, textAlignVertical: 'top' },\n stepper: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: SPACE.sm,\n paddingHorizontal: SPACE.md,\n minHeight: 40,\n borderRadius: RADIUS.md,\n backgroundColor: theme.edRaised,\n },\n stepperLabel: { ...TYPE.caption, color: theme.edInk2 },\n stepperValue: {\n ...TYPE.label,\n color: theme.edInk,\n fontVariant: ['tabular-nums'],\n minWidth: 44,\n textAlign: 'center',\n },\n notice: {\n position: 'absolute',\n left: SPACE.lg,\n right: SPACE.lg,\n bottom: SPACE.xl,\n flexDirection: 'row',\n alignItems: 'center',\n gap: SPACE.md,\n paddingHorizontal: SPACE.lg,\n paddingVertical: SPACE.md,\n borderRadius: RADIUS.md,\n backgroundColor: theme.edInk,\n },\n noticeText: { ...TYPE.label, fontWeight: '400', flex: 1, color: theme.edOnInk },\n noticeDismiss: { ...TYPE.label, color: theme.edAccent },\n }),\n);\n"],"names":["_a"],"mappings":"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"}