@adminide-stack/yantra-mobile 12.0.121 → 12.0.123-alpha.0
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/apps/appArt.js +1 -1
- package/lib/features/apps/appArt.js.map +1 -1
- package/lib/features/apps/mobileAppCatalog.js +15 -11
- package/lib/features/apps/mobileAppCatalog.js.map +1 -1
- package/lib/features/canvas/CanvasAgentChatPane.js +82 -20
- package/lib/features/canvas/CanvasAgentChatPane.js.map +1 -1
- package/lib/features/canvas/CanvasBoardsGrid.js +291 -100
- package/lib/features/canvas/CanvasBoardsGrid.js.map +1 -1
- package/lib/features/canvas/CanvasEditToolsPanel.js +105 -12
- package/lib/features/canvas/CanvasEditToolsPanel.js.map +1 -1
- package/lib/features/canvas/CanvasExperience.js +266 -68
- package/lib/features/canvas/CanvasExperience.js.map +1 -1
- package/lib/features/canvas/CanvasGeneratePanel.js +204 -66
- package/lib/features/canvas/CanvasGeneratePanel.js.map +1 -1
- package/lib/features/canvas/CanvasLibrarySheet.js +31 -13
- package/lib/features/canvas/CanvasLibrarySheet.js.map +1 -1
- package/lib/features/canvas/CanvasModelPicker.js +176 -0
- package/lib/features/canvas/CanvasModelPicker.js.map +1 -0
- package/lib/features/canvas/CanvasTasksPanel.js +325 -29
- package/lib/features/canvas/CanvasTasksPanel.js.map +1 -1
- package/lib/features/canvas/CanvasTemplatesPanel.js +5 -4
- package/lib/features/canvas/CanvasTemplatesPanel.js.map +1 -1
- package/lib/features/canvas/CanvasToolDock.js +137 -61
- package/lib/features/canvas/CanvasToolDock.js.map +1 -1
- package/lib/features/canvas/FrameExtractorExperience.js +33 -2
- package/lib/features/canvas/FrameExtractorExperience.js.map +1 -1
- package/lib/features/canvas/GeneratorReferenceSlots.js +197 -0
- package/lib/features/canvas/GeneratorReferenceSlots.js.map +1 -0
- package/lib/features/canvas/NativeCanvasViewer.js +89 -11
- package/lib/features/canvas/NativeCanvasViewer.js.map +1 -1
- package/lib/features/canvas/PromoContextFields.js +55 -2
- package/lib/features/canvas/PromoContextFields.js.map +1 -1
- package/lib/features/canvas/SetStudioExperience.js +323 -13
- package/lib/features/canvas/SetStudioExperience.js.map +1 -1
- package/lib/features/canvas/VideoEditExperience.js +1 -53
- package/lib/features/canvas/VideoEditExperience.js.map +1 -1
- package/lib/features/canvas/VideoEditorExperience.js +697 -506
- package/lib/features/canvas/VideoEditorExperience.js.map +1 -1
- package/lib/features/canvas/VideoGeneratorExperience.js +22 -5
- package/lib/features/canvas/VideoGeneratorExperience.js.map +1 -1
- package/lib/features/canvas/canvasAgentChat.js +125 -11
- package/lib/features/canvas/canvasAgentChat.js.map +1 -1
- package/lib/features/canvas/canvasCore.js +117 -12
- package/lib/features/canvas/canvasCore.js.map +1 -1
- package/lib/features/canvas/canvasEditOps.js +148 -111
- package/lib/features/canvas/canvasEditOps.js.map +1 -1
- package/lib/features/canvas/canvasTaskSync.js +235 -0
- package/lib/features/canvas/canvasTaskSync.js.map +1 -0
- package/lib/features/canvas/canvasTasks.js +98 -11
- package/lib/features/canvas/canvasTasks.js.map +1 -1
- package/lib/features/canvas/createTiles.js +247 -0
- package/lib/features/canvas/createTiles.js.map +1 -0
- package/lib/features/canvas/deepLinks.js +83 -0
- package/lib/features/canvas/deepLinks.js.map +1 -0
- package/lib/features/canvas/frameExtract.js +13 -1
- package/lib/features/canvas/frameExtract.js.map +1 -1
- package/lib/features/canvas/generationModels.js +36 -8
- package/lib/features/canvas/generationModels.js.map +1 -1
- package/lib/features/canvas/generatorCommands.js +106 -0
- package/lib/features/canvas/generatorCommands.js.map +1 -0
- package/lib/features/canvas/generatorReferences.js +82 -0
- package/lib/features/canvas/generatorReferences.js.map +1 -0
- package/lib/features/canvas/homeWork.js +74 -0
- package/lib/features/canvas/homeWork.js.map +1 -0
- package/lib/features/canvas/linksRpc.js +130 -0
- package/lib/features/canvas/linksRpc.js.map +1 -0
- package/lib/features/canvas/mediaRecheck.js +176 -0
- package/lib/features/canvas/mediaRecheck.js.map +1 -0
- package/lib/features/canvas/mediaUrls.js +258 -0
- package/lib/features/canvas/mediaUrls.js.map +1 -0
- package/lib/features/canvas/nativeViewerRegistry.js.map +1 -1
- package/lib/features/canvas/promoProjectImport.js +80 -13
- package/lib/features/canvas/promoProjectImport.js.map +1 -1
- package/lib/features/canvas/promoVideo.js +106 -15
- package/lib/features/canvas/promoVideo.js.map +1 -1
- package/lib/features/canvas/reframe.js +228 -0
- package/lib/features/canvas/reframe.js.map +1 -0
- package/lib/features/canvas/serverTasks.js +697 -0
- package/lib/features/canvas/serverTasks.js.map +1 -0
- package/lib/features/canvas/set/SetViewportWebView.js +207 -28
- package/lib/features/canvas/set/SetViewportWebView.js.map +1 -1
- package/lib/features/canvas/set/agent/prompt.js +66 -0
- package/lib/features/canvas/set/agent/prompt.js.map +1 -0
- package/lib/features/canvas/set/agent/setOps.js +203 -0
- package/lib/features/canvas/set/agent/setOps.js.map +1 -0
- package/lib/features/canvas/set/agent/setTurn.js +128 -0
- package/lib/features/canvas/set/agent/setTurn.js.map +1 -0
- package/lib/features/canvas/set/agent/snapshot.js +43 -0
- package/lib/features/canvas/set/agent/snapshot.js.map +1 -0
- package/lib/features/canvas/set/agent/tools.js +580 -0
- package/lib/features/canvas/set/agent/tools.js.map +1 -0
- package/lib/features/canvas/set/setProject.js +43 -4
- package/lib/features/canvas/set/setProject.js.map +1 -1
- package/lib/features/canvas/set/supplyLibrary.js +397 -0
- package/lib/features/canvas/set/supplyLibrary.js.map +1 -0
- package/lib/features/canvas/storageLibrary.js +113 -52
- package/lib/features/canvas/storageLibrary.js.map +1 -1
- package/lib/features/canvas/studioCatalog.js +15 -2
- package/lib/features/canvas/studioCatalog.js.map +1 -1
- package/lib/features/canvas/studioLooks.js +1 -8
- package/lib/features/canvas/studioLooks.js.map +1 -1
- package/lib/features/canvas/useBoardMediaRefresh.js +66 -0
- package/lib/features/canvas/useBoardMediaRefresh.js.map +1 -0
- package/lib/features/canvas/useMediaSource.js +84 -0
- package/lib/features/canvas/useMediaSource.js.map +1 -0
- package/lib/features/canvas/video3d.js +11 -10
- package/lib/features/canvas/video3d.js.map +1 -1
- package/lib/features/canvas/videoEditor/BlurBoxOverlay.js +46 -0
- package/lib/features/canvas/videoEditor/BlurBoxOverlay.js.map +1 -0
- package/lib/features/canvas/videoEditor/ExportTaskCard.js +134 -0
- package/lib/features/canvas/videoEditor/ExportTaskCard.js.map +1 -0
- package/lib/features/canvas/videoEditor/agent/AgentCutPane.js +45 -7
- package/lib/features/canvas/videoEditor/agent/AgentCutPane.js.map +1 -1
- package/lib/features/canvas/videoEditor/agent/agentLoop.js +4 -2
- package/lib/features/canvas/videoEditor/agent/agentLoop.js.map +1 -1
- package/lib/features/canvas/videoEditor/agent/attachments.js +304 -0
- package/lib/features/canvas/videoEditor/agent/attachments.js.map +1 -0
- package/lib/features/canvas/videoEditor/agent/brainClient.js +3 -2
- package/lib/features/canvas/videoEditor/agent/brainClient.js.map +1 -1
- package/lib/features/canvas/videoEditor/agent/cutTools.js +207 -7
- package/lib/features/canvas/videoEditor/agent/cutTools.js.map +1 -1
- package/lib/features/canvas/videoEditor/blurBox.js +34 -0
- package/lib/features/canvas/videoEditor/blurBox.js.map +1 -0
- package/lib/features/canvas/videoEditor/compileTimeline.js +668 -0
- package/lib/features/canvas/videoEditor/compileTimeline.js.map +1 -0
- package/lib/features/canvas/videoEditor/editorModel.js +56 -22
- package/lib/features/canvas/videoEditor/editorModel.js.map +1 -1
- package/lib/features/canvas/videoEditor/exportPipeline.js +77 -0
- package/lib/features/canvas/videoEditor/exportPipeline.js.map +1 -0
- package/lib/features/canvas/videoEditor/exportRenderer.js +19 -12
- package/lib/features/canvas/videoEditor/exportRenderer.js.map +1 -1
- package/lib/features/canvas/videoEditor/exportTask.js +216 -0
- package/lib/features/canvas/videoEditor/exportTask.js.map +1 -0
- package/lib/features/canvas/videoEditor/formWidgets.js +142 -0
- package/lib/features/canvas/videoEditor/formWidgets.js.map +1 -0
- package/lib/features/canvas/videoEditor/produce/ProduceVideoSheet.js +195 -0
- package/lib/features/canvas/videoEditor/produce/ProduceVideoSheet.js.map +1 -0
- package/lib/features/canvas/videoEditor/produce/produceScenes.js +158 -0
- package/lib/features/canvas/videoEditor/produce/produceScenes.js.map +1 -0
- package/lib/features/canvas/videoEditor/remoteMediaClient.js +17 -5
- package/lib/features/canvas/videoEditor/remoteMediaClient.js.map +1 -1
- package/lib/features/canvas/videoEditor/renderTimeline.js +207 -0
- package/lib/features/canvas/videoEditor/renderTimeline.js.map +1 -0
- package/lib/features/canvas/videoEditor/renewLinks.js +64 -0
- package/lib/features/canvas/videoEditor/renewLinks.js.map +1 -0
- package/lib/features/canvas/videoEditor/sceneLayers.js +101 -0
- package/lib/features/canvas/videoEditor/sceneLayers.js.map +1 -0
- package/lib/features/canvas/videoEditor/tools/ToolsDrawer.js +283 -0
- package/lib/features/canvas/videoEditor/tools/ToolsDrawer.js.map +1 -0
- package/lib/features/canvas/videoEditor/tools/catalog.js +576 -0
- package/lib/features/canvas/videoEditor/tools/catalog.js.map +1 -0
- package/lib/features/canvas/videoEditor/videoProjectsStore.js +27 -3
- package/lib/features/canvas/videoEditor/videoProjectsStore.js.map +1 -1
- package/lib/features/webbuilder/WebBuilderExperience.js +29 -1
- package/lib/features/webbuilder/WebBuilderExperience.js.map +1 -1
- package/lib/features/webbuilder/buildFragments.js +8 -4
- package/lib/features/webbuilder/buildFragments.js.map +1 -1
- package/lib/features/webbuilder/codezenHandoff.js +108 -0
- package/lib/features/webbuilder/codezenHandoff.js.map +1 -0
- package/lib/features/webbuilder/workflow.js.map +1 -1
- package/lib/hooks/useChatApi.js +1 -2
- package/lib/hooks/useChatApi.js.map +1 -1
- package/lib/screens/CanvasBoard/index.js +12 -1
- package/lib/screens/CanvasBoard/index.js.map +1 -1
- package/lib/screens/Home/HomeScreen.js.map +1 -1
- package/lib/screens/Home/components/HomeSuggestions.js +3 -3
- package/lib/screens/Home/components/HomeSuggestions.js.map +1 -1
- package/lib/screens/WebBuilder/index.js +4 -2
- package/lib/screens/WebBuilder/index.js.map +1 -1
- package/lib/screens/WebBuilderNative/index.js +29 -2
- package/lib/screens/WebBuilderNative/index.js.map +1 -1
- package/lib/screens/WebBuilderNative/useWebBuilderHost.js +30 -6
- package/lib/screens/WebBuilderNative/useWebBuilderHost.js.map +1 -1
- package/package.json +4 -4
- /package/lib/assets/apps/{paper2poster.webp → poster.webp} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cutTools.js","sources":["../../../../../src/features/canvas/videoEditor/agent/cutTools.ts"],"sourcesContent":["/**\n * Cut-only agent tools mapped onto native EditorTimeline.\n */\nimport type { EditorTimeline } from '../editorModel';\nimport { moveClip, removeClip, updateClip } from '../editorModel';\nimport type { BrainTool } from './brainClient';\n\nexport interface AgentToolContext {\n getTimeline: () => EditorTimeline;\n setTimeline: (next: EditorTimeline) => void;\n}\n\nexport interface ToolOutcome {\n ok: boolean;\n label: string;\n detail?: string;\n content: string;\n}\n\nexport const CUT_AGENT_TOOLS: BrainTool[] = [\n {\n type: 'function',\n function: {\n name: 'get_timeline',\n description: 'List clips on the timeline with ids, sources, and durations.',\n parameters: { type: 'object', properties: {} },\n },\n },\n {\n type: 'function',\n function: {\n name: 'remove_scenes',\n description: 'Remove clips by id.',\n parameters: {\n type: 'object',\n properties: { ids: { type: 'array', items: { type: 'string' } } },\n required: ['ids'],\n },\n },\n },\n {\n type: 'function',\n function: {\n name: 'reorder_scenes',\n description: 'Move a clip earlier (-1) or later (1) by one slot.',\n parameters: {\n type: 'object',\n properties: {\n id: { type: 'string' },\n direction: { type: 'integer', enum: [-1, 1] },\n },\n required: ['id', 'direction'],\n },\n },\n },\n {\n type: 'function',\n function: {\n name: 'trim_scene',\n description: 'Set trimStartSec / trimEndSec on a clip (source seconds).',\n parameters: {\n type: 'object',\n properties: {\n id: { type: 'string' },\n trimStartSec: { type: 'number' },\n trimEndSec: { type: 'number' },\n },\n required: ['id'],\n },\n },\n },\n];\n\nexport async function executeCutTool(name: string, rawArgs: unknown, ctx: AgentToolContext): Promise<ToolOutcome> {\n const args = (rawArgs && typeof rawArgs === 'object' ? rawArgs : {}) as Record<string, unknown>;\n if (name === 'get_timeline') {\n const t = ctx.getTimeline();\n const rows = t.clips.map((c, i) => ({\n index: i,\n id: c.id,\n src: c.src?.slice(0, 80),\n durationSec: c.durationSec,\n trimStartSec: c.trimStartSec,\n trimEndSec: c.trimEndSec,\n }));\n return {\n ok: true,\n label: `Timeline · ${rows.length} clip(s)`,\n content: JSON.stringify(rows),\n };\n }\n if (name === 'remove_scenes') {\n const ids = Array.isArray(args.ids) ? args.ids.filter((x): x is string => typeof x === 'string') : [];\n let next = ctx.getTimeline();\n for (const id of ids) next = removeClip(next, id);\n ctx.setTimeline(next);\n return { ok: true, label: `Removed ${ids.length} clip(s)`, content: 'ok' };\n }\n if (name === 'reorder_scenes') {\n const id = typeof args.id === 'string' ? args.id : '';\n const direction = args.direction === -1 || args.direction === 1 ? args.direction : 1;\n ctx.setTimeline(moveClip(ctx.getTimeline(), id, direction));\n return { ok: true, label: `Moved ${id}`, content: 'ok' };\n }\n if (name === 'trim_scene') {\n const id = typeof args.id === 'string' ? args.id : '';\n const patch: { trimStartSec?: number; trimEndSec?: number | null } = {};\n if (typeof args.trimStartSec === 'number') patch.trimStartSec = args.trimStartSec;\n if (typeof args.trimEndSec === 'number') patch.trimEndSec = args.trimEndSec;\n ctx.setTimeline(updateClip(ctx.getTimeline(), id, patch));\n return { ok: true, label: `Trimmed ${id}`, content: 'ok' };\n }\n return { ok: false, label: name, content: `Unknown tool ${name}` };\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cutTools.js","sources":["../../../../../src/features/canvas/videoEditor/agent/cutTools.ts"],"sourcesContent":["/**\n * Agent tools mapped onto the native EditorTimeline (web agent/timelineOps +\n * tools): inspect, remove, reorder, trim, plus add_scene (a shot to film as\n * a colour scene), add_text (a title stamped to its scene) and film_scenes\n * (hands shots to the editor's Produce run).\n */\nimport type { EditorTimeline } from '../editorModel';\nimport { clipFromColor, moveClip, removeClip, textClipAt, updateClip } from '../editorModel';\nimport { sceneSpans } from '../sceneLayers';\nimport type { BrainTool } from './brainClient';\n\nexport interface AgentToolContext {\n getTimeline: () => EditorTimeline;\n setTimeline: (next: EditorTimeline) => void;\n /** Film these scenes with the AI video model in the background (Produce video); absent = unavailable. */\n film?: (sceneIds: string[]) => void;\n}\n\n/** web SHOT_SEC_RANGE: shorter reads as a flash, longer than one clip is slowed. */\nexport const SHOT_SEC_RANGE = { min: 2, max: 15, default: 6 } as const;\n\nexport interface ToolOutcome {\n ok: boolean;\n label: string;\n detail?: string;\n content: string;\n}\n\nexport const CUT_AGENT_TOOLS: BrainTool[] = [\n {\n type: 'function',\n function: {\n name: 'get_timeline',\n description: 'List clips on the timeline with ids, sources, and durations.',\n parameters: { type: 'object', properties: {} },\n },\n },\n {\n type: 'function',\n function: {\n name: 'remove_scenes',\n description: 'Remove clips by id.',\n parameters: {\n type: 'object',\n properties: { ids: { type: 'array', items: { type: 'string' } } },\n required: ['ids'],\n },\n },\n },\n {\n type: 'function',\n function: {\n name: 'reorder_scenes',\n description: 'Move a clip earlier (-1) or later (1) by one slot.',\n parameters: {\n type: 'object',\n properties: {\n id: { type: 'string' },\n direction: { type: 'integer', enum: [-1, 1] },\n },\n required: ['id', 'direction'],\n },\n },\n },\n {\n type: 'function',\n function: {\n name: 'trim_scene',\n description: 'Set trimStartSec / trimEndSec on a clip (source seconds).',\n parameters: {\n type: 'object',\n properties: {\n id: { type: 'string' },\n trimStartSec: { type: 'number' },\n trimEndSec: { type: 'number' },\n },\n required: ['id'],\n },\n },\n },\n {\n type: 'function',\n function: {\n name: 'add_scene',\n description:\n 'Add a scene for the AI video model to FILM: a colour scene carrying its shot (picture only - subject, setting, action, light, camera move; no on-screen text). Optional title is laid on it. Then call film_scenes. Returns the scene id.',\n parameters: {\n type: 'object',\n properties: {\n shot: { type: 'string' },\n seconds: { type: 'number', description: 'How long it plays (default 6, 2-15).' },\n title: { type: 'string', description: 'On-screen title for this scene.' },\n index: { type: 'integer', description: 'Position in the cut (default: the end).' },\n },\n required: ['shot'],\n },\n },\n },\n {\n type: 'function',\n function: {\n name: 'add_text',\n description: 'Lay a title on a scene (it moves with the scene). Times are seconds from the scene start.',\n parameters: {\n type: 'object',\n properties: {\n scene_id: { type: 'string' },\n text: { type: 'string' },\n at_sec: { type: 'number' },\n seconds: { type: 'number' },\n },\n required: ['scene_id', 'text'],\n },\n },\n },\n {\n type: 'function',\n function: {\n name: 'film_scenes',\n description:\n \"Film scenes that have a shot with the AI video model. Starts the filming and returns at once; each clip lands in its scene a few minutes later, keeping the scene's length and titles. Default: every colour scene with a shot.\",\n parameters: {\n type: 'object',\n properties: { scene_ids: { type: 'array', items: { type: 'string' } } },\n },\n },\n },\n];\n\nexport async function executeCutTool(name: string, rawArgs: unknown, ctx: AgentToolContext): Promise<ToolOutcome> {\n const args = (rawArgs && typeof rawArgs === 'object' ? rawArgs : {}) as Record<string, unknown>;\n if (name === 'get_timeline') {\n const t = ctx.getTimeline();\n const spans = sceneSpans(t.clips);\n const rows = t.clips.map((c, i) => ({\n index: i,\n id: c.id,\n kind: c.fillColor ? (c.shot ? 'shot to film' : 'colour scene') : c.type,\n ...(c.fillColor ? {} : { src: c.src?.slice(0, 80) }),\n ...(c.shot ? { shot: c.shot.slice(0, 160) } : {}),\n startSec: Math.round(spans[i].startSec * 10) / 10,\n durationSec: c.durationSec,\n trimStartSec: c.trimStartSec,\n trimEndSec: c.trimEndSec,\n titles: t.texts.filter((x) => x.sceneId === c.id).map((x) => x.text),\n }));\n return {\n ok: true,\n label: `Timeline · ${rows.length} clip(s)`,\n content: JSON.stringify(rows),\n };\n }\n if (name === 'remove_scenes') {\n const ids = Array.isArray(args.ids) ? args.ids.filter((x): x is string => typeof x === 'string') : [];\n let next = ctx.getTimeline();\n for (const id of ids) next = removeClip(next, id);\n ctx.setTimeline(next);\n return { ok: true, label: `Removed ${ids.length} clip(s)`, content: 'ok' };\n }\n if (name === 'reorder_scenes') {\n const id = typeof args.id === 'string' ? args.id : '';\n const direction = args.direction === -1 || args.direction === 1 ? args.direction : 1;\n ctx.setTimeline(moveClip(ctx.getTimeline(), id, direction));\n return { ok: true, label: `Moved ${id}`, content: 'ok' };\n }\n if (name === 'trim_scene') {\n const id = typeof args.id === 'string' ? args.id : '';\n const patch: { trimStartSec?: number; trimEndSec?: number | null } = {};\n if (typeof args.trimStartSec === 'number') patch.trimStartSec = args.trimStartSec;\n if (typeof args.trimEndSec === 'number') patch.trimEndSec = args.trimEndSec;\n ctx.setTimeline(updateClip(ctx.getTimeline(), id, patch));\n return { ok: true, label: `Trimmed ${id}`, content: 'ok' };\n }\n if (name === 'add_scene') {\n const shot = typeof args.shot === 'string' ? args.shot.trim() : '';\n if (!shot) return { ok: false, label: 'Add scene', content: 'error: a scene to film needs a shot' };\n const asked = typeof args.seconds === 'number' ? args.seconds : SHOT_SEC_RANGE.default;\n const seconds = Math.min(SHOT_SEC_RANGE.max, Math.max(SHOT_SEC_RANGE.min, asked));\n const t = ctx.getTimeline();\n const scene = { ...clipFromColor('#101014'), name: shot.slice(0, 32), shot, durationSec: seconds };\n const index =\n typeof args.index === 'number' && args.index >= 0 && args.index <= t.clips.length\n ? Math.floor(args.index)\n : t.clips.length;\n const clips = [...t.clips];\n clips.splice(index, 0, scene);\n let next: EditorTimeline = { ...t, clips };\n const title = typeof args.title === 'string' ? args.title.trim() : '';\n if (title) {\n const start = sceneSpans(clips).find((s) => s.id === scene.id)?.startSec ?? 0;\n const text = {\n ...textClipAt(start, { text: title, x: 0.5, y: 0.5 }),\n durationSec: Math.min(3, seconds),\n sceneId: scene.id,\n };\n next = { ...next, texts: [...next.texts, text] };\n }\n ctx.setTimeline(next);\n const note =\n seconds !== asked\n ? ` (a scene to film runs ${SHOT_SEC_RANGE.min}-${SHOT_SEC_RANGE.max}s, used ${seconds}s)`\n : '';\n return {\n ok: true,\n label: `Added scene · ${shot.slice(0, 32)}`,\n content: JSON.stringify({ scene_id: scene.id }) + note,\n };\n }\n if (name === 'add_text') {\n const t = ctx.getTimeline();\n const sceneId = typeof args.scene_id === 'string' ? args.scene_id : '';\n const span = sceneSpans(t.clips).find((s) => s.id === sceneId);\n const words = typeof args.text === 'string' ? args.text.trim() : '';\n if (!span || !words)\n return { ok: false, label: 'Add text', content: 'error: needs a scene_id from get_timeline and text' };\n const len = Math.max(0.5, span.endSec - span.startSec);\n const at = Math.min(len - 0.5, Math.max(0, typeof args.at_sec === 'number' ? args.at_sec : 0));\n const seconds = Math.min(len - at, Math.max(0.5, typeof args.seconds === 'number' ? args.seconds : len - at));\n const text = {\n ...textClipAt(span.startSec + at, { text: words, x: 0.5, y: 0.5 }),\n durationSec: seconds,\n sceneId,\n };\n ctx.setTimeline({ ...t, texts: [...t.texts, text] });\n return { ok: true, label: `Title · ${words.slice(0, 24)}`, content: JSON.stringify({ text_id: text.id }) };\n }\n if (name === 'film_scenes') {\n if (!ctx.film) return { ok: false, label: 'Film scenes', content: 'error: filming is not available here' };\n const t = ctx.getTimeline();\n const asked = Array.isArray(args.scene_ids)\n ? args.scene_ids.filter((x): x is string => typeof x === 'string')\n : [];\n const ids = (asked.length ? asked : t.clips.filter((c) => c.fillColor && c.shot).map((c) => c.id)).filter(\n (id) => t.clips.some((c) => c.id === id),\n );\n if (!ids.length) return { ok: false, label: 'Film scenes', content: 'error: no scene with a shot to film' };\n ctx.film(ids);\n return {\n ok: true,\n label: `Filming ${ids.length} scene${ids.length === 1 ? '' : 's'}`,\n content: `filming ${ids.length} scene(s); each lands in place in a few minutes`,\n };\n }\n return { ok: false, label: name, content: `Unknown tool ${name}` };\n}\n"],"names":["_a"],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defProps = Object.defineProperties;
|
|
3
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __spreadValues = (a, b) => {
|
|
9
|
+
for (var prop in b || (b = {}))
|
|
10
|
+
if (__hasOwnProp.call(b, prop))
|
|
11
|
+
__defNormalProp(a, prop, b[prop]);
|
|
12
|
+
if (__getOwnPropSymbols)
|
|
13
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
+
if (__propIsEnum.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
}
|
|
17
|
+
return a;
|
|
18
|
+
};
|
|
19
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
+
const MIN_BOX = 5;
|
|
21
|
+
const clamp = (v, lo, hi) => Math.min(hi, Math.max(lo, v));
|
|
22
|
+
const r1 = (v) => Math.round(v * 10) / 10;
|
|
23
|
+
function dragBlurBox(start, resize, dx, dy) {
|
|
24
|
+
if (!resize) {
|
|
25
|
+
return __spreadProps(__spreadValues({}, start), {
|
|
26
|
+
x: r1(clamp(start.x + dx, 0, 100 - start.width)),
|
|
27
|
+
y: r1(clamp(start.y + dy, 0, 100 - start.height))
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
return __spreadProps(__spreadValues({}, start), {
|
|
31
|
+
width: r1(clamp(start.width + dx, MIN_BOX, 100 - start.x)),
|
|
32
|
+
height: r1(clamp(start.height + dy, MIN_BOX, 100 - start.y))
|
|
33
|
+
});
|
|
34
|
+
}export{dragBlurBox};//# sourceMappingURL=blurBox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blurBox.js","sources":["../../../../src/features/canvas/videoEditor/blurBox.ts"],"sourcesContent":["/** Pure blur-box drag math for BlurBoxOverlay (frame %, kept inside the frame). */\nimport type { BlurBox } from './editorModel';\n\nconst MIN_BOX = 5;\nconst clamp = (v: number, lo: number, hi: number) => Math.min(hi, Math.max(lo, v));\nconst r1 = (v: number) => Math.round(v * 10) / 10;\n\n/** Move (resize=false) or resize from the bottom-right corner by a delta in frame %; stays inside the frame. Pure. */\nexport function dragBlurBox(start: BlurBox, resize: boolean, dx: number, dy: number): BlurBox {\n if (!resize) {\n return {\n ...start,\n x: r1(clamp(start.x + dx, 0, 100 - start.width)),\n y: r1(clamp(start.y + dy, 0, 100 - start.height)),\n };\n }\n return {\n ...start,\n width: r1(clamp(start.width + dx, MIN_BOX, 100 - start.x)),\n height: r1(clamp(start.height + dy, MIN_BOX, 100 - start.y)),\n };\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAEA,MAAM,OAAU,GAAA,CAAA;AAChB,MAAM,KAAQ,GAAA,CAAC,CAAW,EAAA,EAAA,EAAY,EAAe,KAAA,IAAA,CAAK,GAAI,CAAA,EAAA,EAAI,IAAK,CAAA,GAAA,CAAI,EAAI,EAAA,CAAC,CAAC,CAAA;AACjF,MAAM,KAAK,CAAC,CAAA,KAAc,KAAK,KAAM,CAAA,CAAA,GAAI,EAAE,CAAI,GAAA,EAAA;AAGxC,SAAS,WAAY,CAAA,KAAA,EAAgB,MAAiB,EAAA,EAAA,EAAY,EAAqB,EAAA;AAC5F,EAAA,IAAI,CAAC,MAAQ,EAAA;AACX,IAAA,OAAO,iCACF,KADE,CAAA,EAAA;AAAA,MAEL,CAAA,EAAG,EAAG,CAAA,KAAA,CAAM,KAAM,CAAA,CAAA,GAAI,IAAI,CAAG,EAAA,GAAA,GAAM,KAAM,CAAA,KAAK,CAAC,CAAA;AAAA,MAC/C,CAAA,EAAG,EAAG,CAAA,KAAA,CAAM,KAAM,CAAA,CAAA,GAAI,IAAI,CAAG,EAAA,GAAA,GAAM,KAAM,CAAA,MAAM,CAAC;AAAA,KAClD,CAAA;AAAA;AAEF,EAAA,OAAO,iCACF,KADE,CAAA,EAAA;AAAA,IAEL,KAAA,EAAO,EAAG,CAAA,KAAA,CAAM,KAAM,CAAA,KAAA,GAAQ,IAAI,OAAS,EAAA,GAAA,GAAM,KAAM,CAAA,CAAC,CAAC,CAAA;AAAA,IACzD,MAAA,EAAQ,EAAG,CAAA,KAAA,CAAM,KAAM,CAAA,MAAA,GAAS,IAAI,OAAS,EAAA,GAAA,GAAM,KAAM,CAAA,CAAC,CAAC;AAAA,GAC7D,CAAA;AACF"}
|