@dailies-studio/shot-editor 0.1.0 → 0.2.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.
Files changed (432) hide show
  1. package/dist/.vite/manifest.json +382 -0
  2. package/dist/assets/AgentPanel-CQejLbiX.js +2 -0
  3. package/dist/assets/AgentPanel-DJEphah0.css +1 -0
  4. package/dist/assets/AgentQuestionDialog-BqkD0kXF.js +1 -0
  5. package/dist/assets/CodeStudio-Dv4ihHpz.js +23 -0
  6. package/dist/assets/CommentsPanel-B4yhhT1T.js +1 -0
  7. package/dist/assets/ComponentLibraryRail-Ch_dsAru.js +1 -0
  8. package/dist/assets/ComponentStage-BRhRotyH.js +1 -0
  9. package/dist/assets/CurvePane-BjFVabKX.css +1 -0
  10. package/dist/assets/CurvePane-R22WzllJ.js +1 -0
  11. package/dist/assets/ExportDialog-CWLQWTmG.js +2 -0
  12. package/dist/assets/FontPicker-DWKaYL7F.js +1 -0
  13. package/dist/assets/FontPicker-v0IOIArM.css +1 -0
  14. package/dist/assets/GenerateDrawer-Bh3SqDKt.js +2 -0
  15. package/dist/assets/InsertDrawer-Ce1fod1L.js +1 -0
  16. package/dist/assets/LibraryBrowser-D9sEGz5w.js +2 -0
  17. package/dist/assets/MakeItYoursSection-CMO4319_.js +2 -0
  18. package/dist/assets/MaterialGraphCanvas-BFzl4wWR.js +23 -0
  19. package/dist/assets/MaterialGraphCanvas-BIUD59ik.css +1 -0
  20. package/dist/assets/MaterialWorkspace-CqTWqaRA.js +14 -0
  21. package/dist/assets/PreferencesDialog-CBf9_OoD.js +1 -0
  22. package/dist/assets/PresetsSection-CUEaoCVU.js +1 -0
  23. package/dist/assets/SoundHistory-BeS8EW1h.js +1 -0
  24. package/dist/assets/SoundMode-BmcZru3i.js +3 -0
  25. package/dist/assets/StockSounds-DdAUGRYK.js +1 -0
  26. package/dist/assets/TemplateFieldSection-CaeXpLFo.js +1 -0
  27. package/dist/assets/VersionHistoryPanel-CxG6XhNP.js +1 -0
  28. package/dist/assets/board-B88EPuLO.css +1 -0
  29. package/dist/assets/board-CL-he7SL.js +3 -0
  30. package/dist/assets/components-0oOSPN0l.js +1 -0
  31. package/dist/assets/googleFontRanges-gp32wJMo.js +1 -0
  32. package/dist/assets/googleFonts-BNon6M7X.js +1 -0
  33. package/dist/assets/iconsAndAliases-DL7gXP5j.js +1863 -0
  34. package/dist/assets/index-4F5NQmI8.css +1 -0
  35. package/dist/assets/index-BGHQGV5z.js +117 -0
  36. package/dist/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
  37. package/dist/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
  38. package/dist/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
  39. package/dist/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
  40. package/dist/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
  41. package/dist/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
  42. package/dist/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
  43. package/dist/assets/libraryModel-CpIwfFha.js +1 -0
  44. package/dist/assets/lucide-6iK64tTB.js +9319 -0
  45. package/dist/assets/motionStamp-CH-Hew4E.js +1 -0
  46. package/dist/assets/takeMeasure-Tdg0TxEi.js +1 -0
  47. package/dist/assets/webmcp-BsB9gxWC.js +2 -0
  48. package/dist/index.html +34 -3
  49. package/package.json +12 -9
  50. package/src/addFamilies.ts +66 -0
  51. package/src/api.ts +1631 -55
  52. package/src/app/App.tsx +977 -198
  53. package/src/app/lazyPanel.tsx +137 -0
  54. package/src/app/lazySurfaces.tsx +203 -0
  55. package/src/audio/index.tsx +41 -10
  56. package/src/audio/meter.ts +485 -0
  57. package/src/audio/meterMath.ts +273 -0
  58. package/src/audio/meterStore.ts +155 -0
  59. package/src/audio/offlineMix.ts +289 -0
  60. package/src/audio/preview.ts +928 -118
  61. package/src/bridge.ts +15 -5
  62. package/src/bridgeTypes.ts +1611 -36
  63. package/src/channels.ts +17 -32
  64. package/src/fonts/googleFonts.ts +4 -0
  65. package/src/hostApi.ts +174 -0
  66. package/src/icons.tsx +770 -0
  67. package/src/layerWords.ts +61 -0
  68. package/src/main.tsx +56 -4
  69. package/src/panels/ResizeHandle.tsx +33 -43
  70. package/src/panels/agent/AgentDots.tsx +36 -0
  71. package/src/panels/agent/AgentPanel.tsx +119 -43
  72. package/src/panels/agent/AgentQuestionDialog.tsx +202 -0
  73. package/src/panels/agent/agent.css +113 -97
  74. package/src/panels/agent/agentGate.ts +35 -0
  75. package/src/panels/code/CodeDefaultsPanel.tsx +345 -0
  76. package/src/panels/code/CodeStudio.tsx +373 -0
  77. package/src/panels/code/FileTree.tsx +265 -0
  78. package/src/panels/code/codeBufferGuard.ts +52 -0
  79. package/src/panels/code/codeParts.tsx +321 -0
  80. package/src/panels/comments/CommentComposer.tsx +239 -0
  81. package/src/panels/comments/CommentThread.tsx +346 -0
  82. package/src/panels/comments/CommentsPanel.tsx +336 -0
  83. package/src/panels/comments/InboxButton.tsx +131 -0
  84. package/src/panels/comments/MentionMenu.tsx +98 -0
  85. package/src/panels/comments/parts.tsx +171 -0
  86. package/src/panels/export/ExportDialog.tsx +919 -96
  87. package/src/panels/export/ExportScrim.tsx +57 -0
  88. package/src/panels/files/AssetsTab.tsx +656 -0
  89. package/src/panels/files/FilePanel.tsx +1466 -216
  90. package/src/panels/files/LayerMarks.tsx +40 -0
  91. package/src/panels/files/LeftColumn.tsx +37 -0
  92. package/src/panels/files/McpSection.tsx +690 -47
  93. package/src/panels/files/MissingAssetsNotice.tsx +60 -0
  94. package/src/panels/files/assetDrag.ts +79 -0
  95. package/src/panels/files/resourceParts.tsx +255 -0
  96. package/src/panels/fonts/FontPicker.tsx +762 -0
  97. package/src/panels/fonts/faceCache.ts +207 -0
  98. package/src/panels/fonts/fontPicker.css +271 -0
  99. package/src/panels/fonts/pickerModel.ts +265 -0
  100. package/src/panels/fonts/pickerRequest.ts +46 -0
  101. package/src/panels/header/AccountAvatar.tsx +76 -0
  102. package/src/panels/header/AgentChip.tsx +77 -0
  103. package/src/panels/header/AppMenu.tsx +213 -0
  104. package/src/panels/header/Header.tsx +564 -84
  105. package/src/panels/header/HistoryControls.tsx +31 -5
  106. package/src/panels/header/PresenceStack.tsx +329 -0
  107. package/src/panels/header/ProjectTitle.tsx +232 -0
  108. package/src/panels/header/ShareButton.tsx +59 -0
  109. package/src/panels/header/StatusBadges.tsx +358 -27
  110. package/src/panels/header/SyncDeletedDialog.tsx +88 -0
  111. package/src/panels/header/ZoomControls.tsx +46 -15
  112. package/src/panels/header/agentHandoff.ts +52 -0
  113. package/src/panels/header/leave.ts +26 -0
  114. package/src/panels/help/HelpSection.tsx +189 -163
  115. package/src/panels/insert/InsertDrawer.tsx +723 -0
  116. package/src/panels/insert/iconSet.ts +109 -0
  117. package/src/panels/inspector/ExposeDot.tsx +117 -0
  118. package/src/panels/inspector/FramingRows.tsx +314 -44
  119. package/src/panels/inspector/InspectorFooter.tsx +91 -0
  120. package/src/panels/inspector/InspectorHead.tsx +425 -0
  121. package/src/panels/inspector/InspectorPanel.tsx +408 -124
  122. package/src/panels/inspector/KeyframeDot.tsx +373 -0
  123. package/src/panels/inspector/KeyframeSection.tsx +257 -0
  124. package/src/panels/inspector/MarkerSection.tsx +55 -11
  125. package/src/panels/inspector/ParamRow.tsx +84 -53
  126. package/src/panels/inspector/RightColumn.tsx +152 -0
  127. package/src/panels/inspector/TimeSection.tsx +866 -0
  128. package/src/panels/inspector/animate/EaseControl.tsx +244 -0
  129. package/src/panels/inspector/animate/PresetsSection.tsx +135 -0
  130. package/src/panels/inspector/animate/ShotSection.tsx +562 -48
  131. package/src/panels/inspector/design/AlignRow.tsx +95 -31
  132. package/src/panels/inspector/design/AppearanceSection.tsx +118 -9
  133. package/src/panels/inspector/design/ClonerSection.tsx +323 -62
  134. package/src/panels/inspector/design/ComponentSection.tsx +50 -43
  135. package/src/panels/inspector/design/CornerSection.tsx +45 -14
  136. package/src/panels/inspector/design/DefinitionProps.tsx +315 -0
  137. package/src/panels/inspector/design/DefinitionSection.tsx +136 -0
  138. package/src/panels/inspector/design/DeviceSection.tsx +210 -0
  139. package/src/panels/inspector/design/FillSection.tsx +83 -51
  140. package/src/panels/inspector/design/FontField.tsx +196 -0
  141. package/src/panels/inspector/design/HtmlSection.tsx +23 -12
  142. package/src/panels/inspector/design/InstanceSection.tsx +373 -154
  143. package/src/panels/inspector/design/MaskSection.tsx +84 -0
  144. package/src/panels/inspector/design/MaterialSection.tsx +177 -0
  145. package/src/panels/inspector/design/MediaSection.tsx +273 -120
  146. package/src/panels/inspector/design/MeshSection.tsx +910 -82
  147. package/src/panels/inspector/design/PaintRows.tsx +550 -0
  148. package/src/panels/inspector/design/PlateStyleSection.tsx +177 -0
  149. package/src/panels/inspector/design/ShadowSection.tsx +221 -48
  150. package/src/panels/inspector/design/SplineFollowSection.tsx +235 -0
  151. package/src/panels/inspector/design/StrokeSection.tsx +228 -43
  152. package/src/panels/inspector/design/TemplateFieldSection.tsx +57 -0
  153. package/src/panels/inspector/design/TransformSection.tsx +244 -50
  154. package/src/panels/inspector/design/TypographySection.tsx +679 -110
  155. package/src/panels/inspector/layout.ts +295 -0
  156. package/src/panels/inspector/propValue.ts +199 -0
  157. package/src/panels/inspector/scene/CameraSection.tsx +232 -22
  158. package/src/panels/inspector/scene/EffectsSection.tsx +722 -71
  159. package/src/panels/inspector/scene/MakeItYoursSection.tsx +180 -0
  160. package/src/panels/inspector/scene/SceneDocSection.tsx +191 -0
  161. package/src/panels/inspector/scene/SceneSection.tsx +219 -44
  162. package/src/panels/inspector/scene/TransitionSection.tsx +523 -72
  163. package/src/panels/inspector/storyboard/StoryboardReferenceSection.tsx +593 -0
  164. package/src/panels/inspector/storyboard/VideoStill.tsx +120 -0
  165. package/src/panels/inspector/timeModel.ts +190 -0
  166. package/src/panels/inspector/useDocWrite.ts +438 -146
  167. package/src/panels/library/LibraryBrowser.tsx +435 -0
  168. package/src/panels/library/LibraryGrid.tsx +190 -0
  169. package/src/panels/library/LibraryPreviewPanel.tsx +349 -0
  170. package/src/panels/library/LibraryRail.tsx +84 -0
  171. package/src/panels/library/LibrarySoundPanel.tsx +293 -0
  172. package/src/panels/library/SoundHistory.tsx +245 -0
  173. package/src/panels/library/StockSounds.tsx +390 -0
  174. package/src/panels/library/libraryModel.ts +147 -0
  175. package/src/panels/library/stockSearch.ts +77 -0
  176. package/src/panels/maskMarks.tsx +117 -0
  177. package/src/panels/material/MaterialCommentNode.tsx +54 -0
  178. package/src/panels/material/MaterialGraphCanvas.tsx +861 -0
  179. package/src/panels/material/MaterialGraphMenu.tsx +45 -0
  180. package/src/panels/material/MaterialGroupNode.tsx +56 -0
  181. package/src/panels/material/MaterialLibrary.tsx +253 -0
  182. package/src/panels/material/MaterialNode.tsx +453 -0
  183. package/src/panels/material/MaterialNodePalette.tsx +349 -0
  184. package/src/panels/material/MaterialParameterControls.tsx +525 -0
  185. package/src/panels/material/MaterialRerouteNode.tsx +42 -0
  186. package/src/panels/material/MaterialWorkspace.tsx +501 -0
  187. package/src/panels/material/NodePreview.tsx +70 -0
  188. package/src/panels/material/flowModel.ts +441 -0
  189. package/src/panels/material/parameterValues.ts +231 -0
  190. package/src/panels/material/previewScheduler.ts +235 -0
  191. package/src/panels/material/reactFlow.css +6 -0
  192. package/src/panels/material/socketGlyph.ts +85 -0
  193. package/src/panels/material/viewportMemory.ts +58 -0
  194. package/src/panels/preferences/PreferencesDialog.tsx +215 -0
  195. package/src/panels/share/ShareComponentDialog.tsx +247 -0
  196. package/src/panels/stage/StageMenu.tsx +35 -5
  197. package/src/panels/stage/StagePanel.tsx +338 -23
  198. package/src/panels/stage/cellSlots.tsx +70 -0
  199. package/src/panels/storyboard/BoardCanvas.tsx +739 -0
  200. package/src/panels/storyboard/BoardCursors.tsx +158 -0
  201. package/src/panels/storyboard/BoardDropDialog.tsx +161 -0
  202. package/src/panels/storyboard/BoardPlan.tsx +42 -0
  203. package/src/panels/storyboard/ComponentSheet.tsx +187 -0
  204. package/src/panels/storyboard/ComponentStage.tsx +235 -0
  205. package/src/panels/storyboard/MiniSketch.tsx +173 -0
  206. package/src/panels/storyboard/PartPicker.tsx +64 -0
  207. package/src/panels/storyboard/PlanPanel.tsx +617 -0
  208. package/src/panels/storyboard/ReferencePreview.tsx +217 -0
  209. package/src/panels/storyboard/ShotBrief.tsx +360 -0
  210. package/src/panels/storyboard/ShotCard.tsx +251 -0
  211. package/src/panels/storyboard/StagePreview.tsx +348 -0
  212. package/src/panels/storyboard/StillThumbs.tsx +162 -0
  213. package/src/panels/storyboard/StoryboardView.tsx +79 -0
  214. package/src/panels/storyboard/board.css +1065 -0
  215. package/src/panels/storyboard/board.ts +12 -0
  216. package/src/panels/storyboard/boardClipboard.ts +111 -0
  217. package/src/panels/storyboard/boardOrder.ts +68 -0
  218. package/src/panels/storyboard/boardRows.tsx +425 -0
  219. package/src/panels/storyboard/liveCap.ts +90 -0
  220. package/src/panels/storyboard/plan.css +295 -0
  221. package/src/panels/storyboard/posterCache.ts +133 -0
  222. package/src/panels/storyboard/shotboard/ComponentPicker.tsx +373 -0
  223. package/src/panels/storyboard/shotboard/ImagePicker.tsx +145 -0
  224. package/src/panels/storyboard/shotboard/ShotBoard.tsx +292 -0
  225. package/src/panels/storyboard/shotboard/SketchCanvas.tsx +443 -0
  226. package/src/panels/storyboard/shotboard/SketchInspector.tsx +471 -0
  227. package/src/panels/storyboard/shotboard/SketchItem.tsx +240 -0
  228. package/src/panels/storyboard/shotboard/SketchLayers.tsx +130 -0
  229. package/src/panels/storyboard/shotboard/SketchPlay.tsx +108 -0
  230. package/src/panels/storyboard/shotboard/SketchStrip.tsx +178 -0
  231. package/src/panels/storyboard/shotboard/SketchToolFooter.tsx +99 -0
  232. package/src/panels/storyboard/shotboard/sketch.css +1392 -0
  233. package/src/panels/storyboard/shotboard/sketchModel.ts +219 -0
  234. package/src/panels/storyboard/storyboardDrop.ts +164 -0
  235. package/src/panels/studio/ComponentLibraryRail.tsx +346 -0
  236. package/src/panels/studio/ComponentSidePanel.tsx +355 -0
  237. package/src/panels/studio/ComponentStudio.tsx +243 -0
  238. package/src/panels/studio/ComponentsHome.tsx +318 -0
  239. package/src/panels/studio/ComponentsPreview.tsx +179 -0
  240. package/src/panels/studio/EveryUse.tsx +244 -0
  241. package/src/panels/studio/ThisUsePanel.tsx +679 -0
  242. package/src/panels/studio/componentParts.tsx +341 -0
  243. package/src/panels/studio/components.ts +6 -0
  244. package/src/panels/studio/newCodeComponent.ts +66 -0
  245. package/src/panels/timeline/AudioFxButton.tsx +290 -0
  246. package/src/panels/timeline/AudioLane.tsx +674 -85
  247. package/src/panels/timeline/BlockRow.tsx +154 -85
  248. package/src/panels/timeline/ChannelRow.tsx +378 -129
  249. package/src/panels/timeline/CurvePane.tsx +508 -0
  250. package/src/panels/timeline/Filmstrip.tsx +361 -0
  251. package/src/panels/timeline/GenerateDrawer.tsx +407 -0
  252. package/src/panels/timeline/KeyStretch.tsx +115 -0
  253. package/src/panels/timeline/LifespanRow.tsx +730 -47
  254. package/src/panels/timeline/MarkerLane.tsx +46 -8
  255. package/src/panels/timeline/PlayButton.tsx +91 -0
  256. package/src/panels/timeline/PropertyPicker.tsx +254 -0
  257. package/src/panels/timeline/ShotRow.tsx +400 -0
  258. package/src/panels/timeline/SoundMode.tsx +1406 -0
  259. package/src/panels/timeline/TimelineDock.tsx +2338 -272
  260. package/src/panels/timeline/TransportVolume.tsx +163 -0
  261. package/src/panels/timeline/beatRuler.ts +74 -0
  262. package/src/panels/timeline/curveModel.ts +500 -0
  263. package/src/panels/timeline/duckUnderVoice.ts +68 -0
  264. package/src/panels/timeline/keyframeMenu.ts +138 -0
  265. package/src/panels/timeline/labelWidth.ts +49 -0
  266. package/src/panels/timeline/marquee.ts +155 -0
  267. package/src/panels/timeline/model.ts +1860 -199
  268. package/src/panels/timeline/snap.ts +125 -43
  269. package/src/panels/timeline/staggerPreview.tsx +92 -0
  270. package/src/panels/timeline/takeMeasure.ts +72 -0
  271. package/src/panels/timeline/useLive.ts +48 -0
  272. package/src/panels/timeline/viewport.ts +234 -0
  273. package/src/panels/toolbar/BackChip.tsx +116 -0
  274. package/src/panels/toolbar/CameraViewBar.tsx +118 -49
  275. package/src/panels/toolbar/CanvasBar.tsx +117 -0
  276. package/src/panels/toolbar/InsertButton.tsx +38 -0
  277. package/src/panels/toolbar/IsolationTrail.tsx +156 -0
  278. package/src/panels/toolbar/PanelToggles.tsx +86 -0
  279. package/src/panels/toolbar/ShadingBar.tsx +119 -26
  280. package/src/panels/toolbar/ToolDockBar.tsx +329 -80
  281. package/src/panels/toolbar/ToolFooter.tsx +102 -0
  282. package/src/panels/toolbar/ViewModeBar.tsx +247 -38
  283. package/src/panels/toolbar/WorkPlaneBar.tsx +94 -0
  284. package/src/panels/toolbar/useAddRows.tsx +326 -0
  285. package/src/panels/toolbar/useDismiss.ts +122 -0
  286. package/src/panels/versions/VersionHistoryPanel.tsx +274 -0
  287. package/src/panels/versions/versionModel.ts +103 -0
  288. package/src/panels/virtualWindow.ts +271 -0
  289. package/src/shotTokens.css +151 -60
  290. package/src/stage/FrustumGizmo.tsx +504 -84
  291. package/src/stage/GridPlane.tsx +225 -16
  292. package/src/stage/NodePreviews.tsx +628 -0
  293. package/src/stage/PerfHud.tsx +437 -47
  294. package/src/stage/SplitRenderer.tsx +816 -169
  295. package/src/stage/StageApp.tsx +4274 -486
  296. package/src/stage/StageRootBoundary.tsx +114 -0
  297. package/src/stage/StageTools.tsx +651 -151
  298. package/src/stage/TransformGizmo.tsx +696 -0
  299. package/src/stage/adaptivePresentation.ts +145 -0
  300. package/src/stage/bridgeClient.ts +2522 -41
  301. package/src/stage/exportWorker.ts +9 -0
  302. package/src/stage/feed.ts +305 -14
  303. package/src/stage/fontPreview.ts +176 -0
  304. package/src/stage/frustumGeometry.ts +319 -1
  305. package/src/stage/furnitureTokens.ts +33 -0
  306. package/src/stage/gizmoMath.ts +508 -16
  307. package/src/stage/gpuTimer.ts +276 -0
  308. package/src/stage/instanceModules.ts +194 -33
  309. package/src/stage/interactions/move.ts +24 -5
  310. package/src/stage/isolation.ts +291 -33
  311. package/src/stage/jsSelfProfiler.ts +325 -0
  312. package/src/stage/main.tsx +116 -16
  313. package/src/stage/modalState.ts +222 -23
  314. package/src/stage/moduleEpoch.ts +60 -0
  315. package/src/stage/motionPathStage.ts +279 -0
  316. package/src/stage/motionPreview.ts +74 -0
  317. package/src/stage/overlays/Overlays.tsx +1112 -159
  318. package/src/stage/overlays/Rulers.tsx +495 -0
  319. package/src/stage/panes.ts +159 -10
  320. package/src/stage/project.ts +68 -3
  321. package/src/stage/renderScaleController.ts +730 -0
  322. package/src/stage/rulers.ts +129 -0
  323. package/src/stage/sceneExtent.ts +75 -0
  324. package/src/stage/shading.ts +20 -0
  325. package/src/stage/splineStage.ts +632 -0
  326. package/src/stage/stagePerformanceTelemetry.ts +717 -0
  327. package/src/stage/stageTheme.ts +36 -0
  328. package/src/stage/stageWarmup.ts +11 -0
  329. package/src/stage/textAutoSize.ts +124 -0
  330. package/src/stage/tier1Export.ts +641 -0
  331. package/src/stage/tokenColor.ts +14 -9
  332. package/src/stage/view.ts +56 -9
  333. package/src/stage/workingView.ts +277 -33
  334. package/src/state/accountPrefs.ts +261 -0
  335. package/src/state/agentActions.ts +173 -15
  336. package/src/state/agentActivity.ts +198 -0
  337. package/src/state/agentQuestion.ts +239 -0
  338. package/src/state/bootOpen.ts +42 -0
  339. package/src/state/cameraVerbs.ts +139 -0
  340. package/src/state/clientId.ts +6 -1
  341. package/src/state/comments.ts +1099 -0
  342. package/src/state/context.tsx +19 -1
  343. package/src/state/editorPrefs.ts +220 -0
  344. package/src/state/errorReports.ts +121 -0
  345. package/src/state/fieldWrite.ts +161 -0
  346. package/src/state/fontRecents.ts +70 -0
  347. package/src/state/fonts.ts +656 -0
  348. package/src/state/graphClipboard.ts +414 -0
  349. package/src/state/imageThumbs.ts +216 -0
  350. package/src/state/insert.ts +444 -67
  351. package/src/state/isolationTrail.ts +92 -0
  352. package/src/state/keyMoves.ts +134 -0
  353. package/src/state/keyframeClipboard.ts +177 -0
  354. package/src/state/keymap.ts +1153 -117
  355. package/src/state/layoutPrefs.ts +272 -0
  356. package/src/state/layouts.ts +205 -0
  357. package/src/state/measureMedia.ts +167 -0
  358. package/src/state/menu.ts +2341 -28
  359. package/src/state/motionStamp.ts +7 -0
  360. package/src/state/panelSize.ts +375 -5
  361. package/src/state/pendingChanges.ts +119 -0
  362. package/src/state/playHold.ts +78 -0
  363. package/src/state/playbackPreparation.ts +562 -0
  364. package/src/state/posterCapture.ts +242 -0
  365. package/src/state/presence.ts +254 -0
  366. package/src/state/projectComponents.ts +160 -0
  367. package/src/state/renderEvents.ts +298 -18
  368. package/src/state/runtimeErrors.ts +46 -0
  369. package/src/state/selection.ts +12 -0
  370. package/src/state/shortcuts.ts +1606 -0
  371. package/src/state/sketchGuide.ts +51 -0
  372. package/src/state/splineRefs.ts +87 -0
  373. package/src/state/stageHealth.ts +259 -0
  374. package/src/state/stageWatchdog.ts +47 -0
  375. package/src/state/stillStage.ts +330 -0
  376. package/src/state/stillThumbs.ts +474 -0
  377. package/src/state/store.ts +23591 -2982
  378. package/src/state/storyboardModel.ts +528 -0
  379. package/src/state/sync.ts +1257 -0
  380. package/src/state/syncCache.ts +159 -0
  381. package/src/state/triangles.ts +13 -0
  382. package/src/state/types.ts +1698 -55
  383. package/src/state/unsavedGuard.ts +49 -0
  384. package/src/state/viewMode.ts +200 -0
  385. package/src/state/webmcp.ts +1128 -0
  386. package/src/state/workspace.ts +1147 -0
  387. package/src/styles/assets-tab.css +304 -0
  388. package/src/styles/canvas.css +545 -0
  389. package/src/styles/comments.css +1435 -0
  390. package/src/styles/controls.css +162 -0
  391. package/src/styles/dialogs.css +390 -0
  392. package/src/styles/insert-drawer.css +586 -0
  393. package/src/styles/inspector-board.css +207 -0
  394. package/src/styles/inspector-object.css +486 -0
  395. package/src/styles/inspector-shot.css +252 -0
  396. package/src/styles/inspector.css +360 -0
  397. package/src/styles/left-column.css +1628 -0
  398. package/src/styles/library-preview.css +575 -0
  399. package/src/styles/library.css +512 -0
  400. package/src/styles/modes/code.css +569 -0
  401. package/src/styles/modes/component.css +1561 -0
  402. package/src/styles/modes/material.css +1201 -0
  403. package/src/styles/modes/storyboard.css +518 -0
  404. package/src/styles/share-component.css +49 -0
  405. package/src/styles/shell.css +653 -0
  406. package/src/styles/shot-brief.css +360 -0
  407. package/src/styles/states.css +76 -0
  408. package/src/styles/sync.css +380 -0
  409. package/src/styles/timeline-graph.css +384 -0
  410. package/src/styles/timeline-meters.css +89 -0
  411. package/src/styles/timeline-rows.css +1959 -0
  412. package/src/styles/timeline-sound.css +1003 -0
  413. package/src/styles/timeline.css +754 -0
  414. package/src/styles/tool-footer.css +525 -0
  415. package/src/styles/topbar.css +886 -0
  416. package/src/styles/versions.css +262 -0
  417. package/src/styles.css +72 -2921
  418. package/src/tools.ts +108 -23
  419. package/dist/assets/index-B7notge7.css +0 -1
  420. package/dist/assets/index-BBE6Ta9L.js +0 -52
  421. package/src/panels/files/icons.tsx +0 -118
  422. package/src/panels/header/DocSwitcher.tsx +0 -85
  423. package/src/panels/header/TransportBar.tsx +0 -86
  424. package/src/panels/inspector/animate/BlockTiming.tsx +0 -341
  425. package/src/panels/inspector/animate/DuringBlocks.tsx +0 -85
  426. package/src/panels/inspector/animate/InOutPresets.tsx +0 -57
  427. package/src/panels/inspector/animate/ResolvedChannels.tsx +0 -150
  428. package/src/panels/inspector/animate/useBlocks.ts +0 -43
  429. package/src/panels/material/MaterialPicker.tsx +0 -172
  430. package/src/panels/timeline/SceneStrip.tsx +0 -145
  431. package/src/panels/toolbar/AddMenu.tsx +0 -230
  432. package/src/stage/MoveGizmo.tsx +0 -411
@@ -0,0 +1,382 @@
1
+ {
2
+ "../../node_modules/.pnpm/@fontsource-variable+inter@5.3.0/node_modules/@fontsource-variable/inter/files/inter-cyrillic-ext-wght-normal.woff2": {
3
+ "file": "assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2",
4
+ "src": "../../node_modules/.pnpm/@fontsource-variable+inter@5.3.0/node_modules/@fontsource-variable/inter/files/inter-cyrillic-ext-wght-normal.woff2"
5
+ },
6
+ "../../node_modules/.pnpm/@fontsource-variable+inter@5.3.0/node_modules/@fontsource-variable/inter/files/inter-cyrillic-wght-normal.woff2": {
7
+ "file": "assets/inter-cyrillic-wght-normal-DqGufNeO.woff2",
8
+ "src": "../../node_modules/.pnpm/@fontsource-variable+inter@5.3.0/node_modules/@fontsource-variable/inter/files/inter-cyrillic-wght-normal.woff2"
9
+ },
10
+ "../../node_modules/.pnpm/@fontsource-variable+inter@5.3.0/node_modules/@fontsource-variable/inter/files/inter-greek-ext-wght-normal.woff2": {
11
+ "file": "assets/inter-greek-ext-wght-normal-DlzME5K_.woff2",
12
+ "src": "../../node_modules/.pnpm/@fontsource-variable+inter@5.3.0/node_modules/@fontsource-variable/inter/files/inter-greek-ext-wght-normal.woff2"
13
+ },
14
+ "../../node_modules/.pnpm/@fontsource-variable+inter@5.3.0/node_modules/@fontsource-variable/inter/files/inter-greek-wght-normal.woff2": {
15
+ "file": "assets/inter-greek-wght-normal-CkhJZR-_.woff2",
16
+ "src": "../../node_modules/.pnpm/@fontsource-variable+inter@5.3.0/node_modules/@fontsource-variable/inter/files/inter-greek-wght-normal.woff2"
17
+ },
18
+ "../../node_modules/.pnpm/@fontsource-variable+inter@5.3.0/node_modules/@fontsource-variable/inter/files/inter-latin-ext-wght-normal.woff2": {
19
+ "file": "assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2",
20
+ "src": "../../node_modules/.pnpm/@fontsource-variable+inter@5.3.0/node_modules/@fontsource-variable/inter/files/inter-latin-ext-wght-normal.woff2"
21
+ },
22
+ "../../node_modules/.pnpm/@fontsource-variable+inter@5.3.0/node_modules/@fontsource-variable/inter/files/inter-latin-wght-normal.woff2": {
23
+ "file": "assets/inter-latin-wght-normal-Dx4kXJAl.woff2",
24
+ "src": "../../node_modules/.pnpm/@fontsource-variable+inter@5.3.0/node_modules/@fontsource-variable/inter/files/inter-latin-wght-normal.woff2"
25
+ },
26
+ "../../node_modules/.pnpm/@fontsource-variable+inter@5.3.0/node_modules/@fontsource-variable/inter/files/inter-vietnamese-wght-normal.woff2": {
27
+ "file": "assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2",
28
+ "src": "../../node_modules/.pnpm/@fontsource-variable+inter@5.3.0/node_modules/@fontsource-variable/inter/files/inter-vietnamese-wght-normal.woff2"
29
+ },
30
+ "../../node_modules/.pnpm/lucide@1.48.0/node_modules/lucide/dist/esm/iconsAndAliases.mjs?raw": {
31
+ "file": "assets/iconsAndAliases-DL7gXP5j.js",
32
+ "name": "iconsAndAliases",
33
+ "src": "../../node_modules/.pnpm/lucide@1.48.0/node_modules/lucide/dist/esm/iconsAndAliases.mjs?raw",
34
+ "isDynamicEntry": true
35
+ },
36
+ "../../node_modules/.pnpm/lucide@1.48.0/node_modules/lucide/dist/esm/lucide.mjs": {
37
+ "file": "assets/lucide-6iK64tTB.js",
38
+ "name": "lucide",
39
+ "src": "../../node_modules/.pnpm/lucide@1.48.0/node_modules/lucide/dist/esm/lucide.mjs",
40
+ "isDynamicEntry": true
41
+ },
42
+ "../shot/src/googleFontRanges.json": {
43
+ "file": "assets/googleFontRanges-gp32wJMo.js",
44
+ "name": "googleFontRanges",
45
+ "src": "../shot/src/googleFontRanges.json",
46
+ "isDynamicEntry": true
47
+ },
48
+ "../shot/src/googleFonts.json": {
49
+ "file": "assets/googleFonts-BNon6M7X.js",
50
+ "name": "googleFonts",
51
+ "src": "../shot/src/googleFonts.json",
52
+ "isDynamicEntry": true
53
+ },
54
+ "_ComponentLibraryRail-Ch_dsAru.js": {
55
+ "file": "assets/ComponentLibraryRail-Ch_dsAru.js",
56
+ "name": "ComponentLibraryRail",
57
+ "imports": [
58
+ "index.html"
59
+ ]
60
+ },
61
+ "_ComponentStage-BRhRotyH.js": {
62
+ "file": "assets/ComponentStage-BRhRotyH.js",
63
+ "name": "ComponentStage",
64
+ "imports": [
65
+ "index.html"
66
+ ]
67
+ },
68
+ "_LibraryBrowser-D9sEGz5w.js": {
69
+ "file": "assets/LibraryBrowser-D9sEGz5w.js",
70
+ "name": "LibraryBrowser",
71
+ "isDynamicEntry": true,
72
+ "imports": [
73
+ "index.html",
74
+ "_libraryModel-CpIwfFha.js",
75
+ "_ComponentStage-BRhRotyH.js"
76
+ ],
77
+ "dynamicImports": [
78
+ "src/panels/library/StockSounds.tsx",
79
+ "src/panels/library/SoundHistory.tsx"
80
+ ]
81
+ },
82
+ "_libraryModel-CpIwfFha.js": {
83
+ "file": "assets/libraryModel-CpIwfFha.js",
84
+ "name": "libraryModel",
85
+ "imports": [
86
+ "index.html"
87
+ ]
88
+ },
89
+ "_motionStamp-CH-Hew4E.js": {
90
+ "file": "assets/motionStamp-CH-Hew4E.js",
91
+ "name": "motionStamp",
92
+ "isDynamicEntry": true,
93
+ "imports": [
94
+ "index.html"
95
+ ]
96
+ },
97
+ "index.html": {
98
+ "file": "assets/index-BGHQGV5z.js",
99
+ "name": "index",
100
+ "src": "index.html",
101
+ "isEntry": true,
102
+ "dynamicImports": [
103
+ "../shot/src/googleFonts.json",
104
+ "../shot/src/googleFontRanges.json",
105
+ "_motionStamp-CH-Hew4E.js",
106
+ "src/panels/storyboard/board.ts",
107
+ "src/panels/studio/components.ts",
108
+ "src/panels/inspector/design/TemplateFieldSection.tsx",
109
+ "src/panels/inspector/scene/MakeItYoursSection.tsx",
110
+ "src/panels/inspector/animate/PresetsSection.tsx",
111
+ "_motionStamp-CH-Hew4E.js",
112
+ "src/panels/code/CodeStudio.tsx",
113
+ "src/panels/material/MaterialWorkspace.tsx",
114
+ "_LibraryBrowser-D9sEGz5w.js",
115
+ "src/panels/preferences/PreferencesDialog.tsx",
116
+ "src/panels/insert/InsertDrawer.tsx",
117
+ "src/panels/export/ExportDialog.tsx",
118
+ "src/panels/versions/VersionHistoryPanel.tsx",
119
+ "src/panels/agent/AgentQuestionDialog.tsx",
120
+ "src/panels/fonts/FontPicker.tsx",
121
+ "src/panels/agent/AgentPanel.tsx",
122
+ "src/panels/comments/CommentsPanel.tsx",
123
+ "src/panels/timeline/SoundMode.tsx",
124
+ "src/panels/timeline/CurvePane.tsx",
125
+ "src/panels/timeline/GenerateDrawer.tsx",
126
+ "src/state/webmcp.ts"
127
+ ],
128
+ "css": [
129
+ "assets/index-4F5NQmI8.css"
130
+ ],
131
+ "assets": [
132
+ "assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2",
133
+ "assets/inter-cyrillic-wght-normal-DqGufNeO.woff2",
134
+ "assets/inter-greek-ext-wght-normal-DlzME5K_.woff2",
135
+ "assets/inter-greek-wght-normal-CkhJZR-_.woff2",
136
+ "assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2",
137
+ "assets/inter-latin-wght-normal-Dx4kXJAl.woff2",
138
+ "assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2"
139
+ ]
140
+ },
141
+ "src/panels/agent/AgentPanel.tsx": {
142
+ "file": "assets/AgentPanel-CQejLbiX.js",
143
+ "name": "AgentPanel",
144
+ "src": "src/panels/agent/AgentPanel.tsx",
145
+ "isDynamicEntry": true,
146
+ "imports": [
147
+ "index.html"
148
+ ],
149
+ "css": [
150
+ "assets/AgentPanel-DJEphah0.css"
151
+ ]
152
+ },
153
+ "src/panels/agent/AgentQuestionDialog.tsx": {
154
+ "file": "assets/AgentQuestionDialog-BqkD0kXF.js",
155
+ "name": "AgentQuestionDialog",
156
+ "src": "src/panels/agent/AgentQuestionDialog.tsx",
157
+ "isDynamicEntry": true,
158
+ "imports": [
159
+ "index.html"
160
+ ]
161
+ },
162
+ "src/panels/code/CodeStudio.tsx": {
163
+ "file": "assets/CodeStudio-Dv4ihHpz.js",
164
+ "name": "CodeStudio",
165
+ "src": "src/panels/code/CodeStudio.tsx",
166
+ "isDynamicEntry": true,
167
+ "imports": [
168
+ "index.html",
169
+ "_ComponentLibraryRail-Ch_dsAru.js"
170
+ ]
171
+ },
172
+ "src/panels/comments/CommentsPanel.tsx": {
173
+ "file": "assets/CommentsPanel-B4yhhT1T.js",
174
+ "name": "CommentsPanel",
175
+ "src": "src/panels/comments/CommentsPanel.tsx",
176
+ "isDynamicEntry": true,
177
+ "imports": [
178
+ "index.html"
179
+ ]
180
+ },
181
+ "src/panels/export/ExportDialog.tsx": {
182
+ "file": "assets/ExportDialog-CWLQWTmG.js",
183
+ "name": "ExportDialog",
184
+ "src": "src/panels/export/ExportDialog.tsx",
185
+ "isDynamicEntry": true,
186
+ "imports": [
187
+ "index.html"
188
+ ]
189
+ },
190
+ "src/panels/fonts/FontPicker.tsx": {
191
+ "file": "assets/FontPicker-DWKaYL7F.js",
192
+ "name": "FontPicker",
193
+ "src": "src/panels/fonts/FontPicker.tsx",
194
+ "isDynamicEntry": true,
195
+ "imports": [
196
+ "index.html"
197
+ ],
198
+ "css": [
199
+ "assets/FontPicker-v0IOIArM.css"
200
+ ]
201
+ },
202
+ "src/panels/insert/InsertDrawer.tsx": {
203
+ "file": "assets/InsertDrawer-Ce1fod1L.js",
204
+ "name": "InsertDrawer",
205
+ "src": "src/panels/insert/InsertDrawer.tsx",
206
+ "isDynamicEntry": true,
207
+ "imports": [
208
+ "index.html"
209
+ ],
210
+ "dynamicImports": [
211
+ "../../node_modules/.pnpm/lucide@1.48.0/node_modules/lucide/dist/esm/iconsAndAliases.mjs?raw",
212
+ "../../node_modules/.pnpm/lucide@1.48.0/node_modules/lucide/dist/esm/lucide.mjs"
213
+ ]
214
+ },
215
+ "src/panels/inspector/animate/PresetsSection.tsx": {
216
+ "file": "assets/PresetsSection-CUEaoCVU.js",
217
+ "name": "PresetsSection",
218
+ "src": "src/panels/inspector/animate/PresetsSection.tsx",
219
+ "isDynamicEntry": true,
220
+ "imports": [
221
+ "index.html",
222
+ "_motionStamp-CH-Hew4E.js"
223
+ ]
224
+ },
225
+ "src/panels/inspector/design/TemplateFieldSection.tsx": {
226
+ "file": "assets/TemplateFieldSection-CaeXpLFo.js",
227
+ "name": "TemplateFieldSection",
228
+ "src": "src/panels/inspector/design/TemplateFieldSection.tsx",
229
+ "isDynamicEntry": true,
230
+ "imports": [
231
+ "index.html"
232
+ ]
233
+ },
234
+ "src/panels/inspector/scene/MakeItYoursSection.tsx": {
235
+ "file": "assets/MakeItYoursSection-CMO4319_.js",
236
+ "name": "MakeItYoursSection",
237
+ "src": "src/panels/inspector/scene/MakeItYoursSection.tsx",
238
+ "isDynamicEntry": true,
239
+ "imports": [
240
+ "index.html"
241
+ ]
242
+ },
243
+ "src/panels/library/SoundHistory.tsx": {
244
+ "file": "assets/SoundHistory-BeS8EW1h.js",
245
+ "name": "SoundHistory",
246
+ "src": "src/panels/library/SoundHistory.tsx",
247
+ "isDynamicEntry": true,
248
+ "imports": [
249
+ "index.html"
250
+ ]
251
+ },
252
+ "src/panels/library/StockSounds.tsx": {
253
+ "file": "assets/StockSounds-DdAUGRYK.js",
254
+ "name": "StockSounds",
255
+ "src": "src/panels/library/StockSounds.tsx",
256
+ "isDynamicEntry": true,
257
+ "imports": [
258
+ "index.html",
259
+ "_LibraryBrowser-D9sEGz5w.js",
260
+ "_libraryModel-CpIwfFha.js",
261
+ "_ComponentStage-BRhRotyH.js"
262
+ ]
263
+ },
264
+ "src/panels/material/MaterialGraphCanvas.tsx": {
265
+ "file": "assets/MaterialGraphCanvas-BFzl4wWR.js",
266
+ "name": "MaterialGraphCanvas",
267
+ "src": "src/panels/material/MaterialGraphCanvas.tsx",
268
+ "isDynamicEntry": true,
269
+ "imports": [
270
+ "index.html"
271
+ ],
272
+ "css": [
273
+ "assets/MaterialGraphCanvas-BIUD59ik.css"
274
+ ]
275
+ },
276
+ "src/panels/material/MaterialWorkspace.tsx": {
277
+ "file": "assets/MaterialWorkspace-CqTWqaRA.js",
278
+ "name": "MaterialWorkspace",
279
+ "src": "src/panels/material/MaterialWorkspace.tsx",
280
+ "isDynamicEntry": true,
281
+ "imports": [
282
+ "index.html"
283
+ ],
284
+ "dynamicImports": [
285
+ "src/panels/material/MaterialGraphCanvas.tsx"
286
+ ]
287
+ },
288
+ "src/panels/preferences/PreferencesDialog.tsx": {
289
+ "file": "assets/PreferencesDialog-CBf9_OoD.js",
290
+ "name": "PreferencesDialog",
291
+ "src": "src/panels/preferences/PreferencesDialog.tsx",
292
+ "isDynamicEntry": true,
293
+ "imports": [
294
+ "index.html"
295
+ ]
296
+ },
297
+ "src/panels/storyboard/board.ts": {
298
+ "file": "assets/board-CL-he7SL.js",
299
+ "name": "board",
300
+ "src": "src/panels/storyboard/board.ts",
301
+ "isDynamicEntry": true,
302
+ "imports": [
303
+ "index.html",
304
+ "_ComponentStage-BRhRotyH.js",
305
+ "_libraryModel-CpIwfFha.js"
306
+ ],
307
+ "css": [
308
+ "assets/board-B88EPuLO.css"
309
+ ]
310
+ },
311
+ "src/panels/studio/components.ts": {
312
+ "file": "assets/components-0oOSPN0l.js",
313
+ "name": "components",
314
+ "src": "src/panels/studio/components.ts",
315
+ "isDynamicEntry": true,
316
+ "imports": [
317
+ "_ComponentLibraryRail-Ch_dsAru.js",
318
+ "index.html",
319
+ "_ComponentStage-BRhRotyH.js"
320
+ ]
321
+ },
322
+ "src/panels/timeline/CurvePane.tsx": {
323
+ "file": "assets/CurvePane-R22WzllJ.js",
324
+ "name": "CurvePane",
325
+ "src": "src/panels/timeline/CurvePane.tsx",
326
+ "isDynamicEntry": true,
327
+ "imports": [
328
+ "index.html"
329
+ ],
330
+ "css": [
331
+ "assets/CurvePane-BjFVabKX.css"
332
+ ]
333
+ },
334
+ "src/panels/timeline/GenerateDrawer.tsx": {
335
+ "file": "assets/GenerateDrawer-Bh3SqDKt.js",
336
+ "name": "GenerateDrawer",
337
+ "src": "src/panels/timeline/GenerateDrawer.tsx",
338
+ "isDynamicEntry": true,
339
+ "imports": [
340
+ "index.html"
341
+ ],
342
+ "dynamicImports": [
343
+ "src/panels/timeline/takeMeasure.ts"
344
+ ]
345
+ },
346
+ "src/panels/timeline/SoundMode.tsx": {
347
+ "file": "assets/SoundMode-BmcZru3i.js",
348
+ "name": "SoundMode",
349
+ "src": "src/panels/timeline/SoundMode.tsx",
350
+ "isDynamicEntry": true,
351
+ "imports": [
352
+ "index.html"
353
+ ]
354
+ },
355
+ "src/panels/timeline/takeMeasure.ts": {
356
+ "file": "assets/takeMeasure-Tdg0TxEi.js",
357
+ "name": "takeMeasure",
358
+ "src": "src/panels/timeline/takeMeasure.ts",
359
+ "isDynamicEntry": true,
360
+ "imports": [
361
+ "index.html"
362
+ ]
363
+ },
364
+ "src/panels/versions/VersionHistoryPanel.tsx": {
365
+ "file": "assets/VersionHistoryPanel-CxG6XhNP.js",
366
+ "name": "VersionHistoryPanel",
367
+ "src": "src/panels/versions/VersionHistoryPanel.tsx",
368
+ "isDynamicEntry": true,
369
+ "imports": [
370
+ "index.html"
371
+ ]
372
+ },
373
+ "src/state/webmcp.ts": {
374
+ "file": "assets/webmcp-BsB9gxWC.js",
375
+ "name": "webmcp",
376
+ "src": "src/state/webmcp.ts",
377
+ "isDynamicEntry": true,
378
+ "imports": [
379
+ "index.html"
380
+ ]
381
+ }
382
+ }
@@ -0,0 +1,2 @@
1
+ import{q,u as le,A as S,B as T,v as n,N as ue,b7 as fe,L as pe,b8 as me,b9 as ge,ba as he,bb as oe,bc as xe,bd as je,D as ye,K as ve,be}from"./index-BGHQGV5z.js";const Ne={"claude-sonnet-5":"Sonnet 5","claude-opus-4-8":"Opus 4.8"};function Ce(t){return Ne[t]??t}function de(t){const e=q.c(6),s=le(),{item:l}=t;if(l.status==="pending"){let c;return e[0]!==l.id||e[1]!==s?(c=n.jsx("button",{type:"button",className:"btn agent-apply",onClick:()=>void be(s,l.id),children:"Apply"}),e[0]=l.id,e[1]=s,e[2]=c):c=e[2],c}const i=`agent-card-status is-${l.status}`,a=l.status==="applying"?"Applying…":l.status;let o;return e[3]!==i||e[4]!==a?(o=n.jsx("span",{className:i,children:a}),e[3]=i,e[4]=a,e[5]=o):o=e[5],o}function ke(t){const e=q.c(5);if(t.lines.length===0){let i;return e[0]===Symbol.for("react.memo_cache_sentinel")?(i=n.jsx("div",{className:"agent-card-note",children:"No shots reported."}),e[0]=i):i=e[0],i}let s;e[1]!==t.lines?(s=t.lines.map(we),e[1]=t.lines,e[2]=s):s=e[2];let l;return e[3]!==s?(l=n.jsx("pre",{className:"agent-tree",children:s}),e[3]=s,e[4]=l):l=e[4],l}function we(t,e){return n.jsx("div",{className:"agent-tree-line",children:t},e)}function Ae(t,e){const s=e.summary.changedShots;if(s===void 0||t.name!==e.docName)return[];const l=t.motionRequest?.sceneId??t.enteredScene;return l===null?[]:s.filter(i=>i!==l).map(i=>t.doc?.scenesById[i]?.name??i)}function Se(t){const e=q.c(71),{item:s}=t,l=le(),i=S($e),a=S(Pe),o=S(Ee);let c;e[0]!==s?(c=W=>Ae(W,s).join("\0"),e[0]=s,e[1]=c):c=e[1];const p=S(c),[u,d]=T.useState(!1),{summary:r}=s;let f;e[2]!==o||e[3]!==l?(f=()=>{const W=o===null?null:l.motionPromptFor(o);W!==null&&navigator.clipboard.writeText(W).then(()=>d(!0),()=>l.reportError("Could not copy the prompt. The browser refused clipboard access."))},e[2]=o,e[3]=l,e[4]=f):f=e[4];const g=f,b=i!==null&&i!==s.docName&&s.baseRev!==null,N=r.title??r.shotName,h=`agent-card agent-card-shot agent-card-${s.status}`;let C;e[5]!==s.intent?(C=n.jsx("span",{className:"agent-card-path",title:s.intent,children:s.intent}),e[5]=s.intent,e[6]=C):C=e[6];let x;e[7]!==s?(x=n.jsx(de,{item:s}),e[7]=s,e[8]=x):x=e[8];let j;e[9]!==C||e[10]!==x?(j=n.jsxs("div",{className:"agent-card-head",children:[C,x]}),e[9]=C,e[10]=x,e[11]=j):j=e[11];const w=`Project “${N}”`;let _;e[12]!==w||e[13]!==N?(_=n.jsx("span",{className:"agent-card-doc",title:w,children:N}),e[12]=w,e[13]=N,e[14]=_):_=e[14];let y;e[15]!==r.durationFrames||e[16]!==r.fps?(y=r.fps===void 0?`${r.durationFrames}f`:ye(r.durationFrames/r.fps),e[15]=r.durationFrames,e[16]=r.fps,e[17]=y):y=e[17];let v;e[18]!==y?(v=n.jsx("span",{className:"agent-card-count",children:y}),e[18]=y,e[19]=v):v=e[19];const A=r.sceneCount===1?"shot":"shots";let k;e[20]!==r.sceneCount||e[21]!==A?(k=n.jsxs("span",{className:"agent-card-count",children:[r.sceneCount," ",A]}),e[20]=r.sceneCount,e[21]=A,e[22]=k):k=e[22];const E=r.layerCount===1?"layer":"layers";let D;e[23]!==r.layerCount||e[24]!==E?(D=n.jsxs("span",{className:"agent-card-count",children:[r.layerCount," ",E]}),e[23]=r.layerCount,e[24]=E,e[25]=D):D=e[25];let P;e[26]!==r.shotCount?(P=r.shotCount>0&&n.jsxs("span",{className:"agent-card-count",children:[r.shotCount," ",r.shotCount===1?"camera move":"camera moves"]}),e[26]=r.shotCount,e[27]=P):P=e[27];let U;e[28]!==k||e[29]!==D||e[30]!==P||e[31]!==_||e[32]!==v?(U=n.jsxs("div",{className:"agent-card-meta",children:[_,v,k,D,P]}),e[28]=k,e[29]=D,e[30]=P,e[31]=_,e[32]=v,e[33]=U):U=e[33];let L;e[34]!==r.outline?(L=n.jsx(ke,{lines:r.outline}),e[34]=r.outline,e[35]=L):L=e[35];let $;e[36]!==s.status||e[37]!==p?($=p!==""&&s.status==="pending"&&n.jsxs("div",{className:"agent-card-note agent-card-warning",children:["Also changes ",p.split("\0").map(_e).join(", "),", not only the Shot you asked about."]}),e[36]=s.status,e[37]=p,e[38]=$):$=e[38];let B;e[39]!==u||e[40]!==g||e[41]!==o?(B=o!==null&&n.jsx("button",{type:"button",className:"btn agent-copy-prompt",onClick:g,children:u?"Copied":"Copy prompt"}),e[39]=u,e[40]=g,e[41]=o,e[42]=B):B=e[42];let F;e[43]!==s.error?(F=s.error!==null&&n.jsx("div",{className:"error-strip agent-card-error",children:s.error}),e[43]=s.error,e[44]=F):F=e[44];let K;e[45]!==s.status||e[46]!==s.warning?(K=s.status==="applied"&&s.warning!==null&&n.jsxs("div",{className:"agent-card-note agent-card-warning",children:["Applied with warnings. The Project was saved, but: ",s.warning]}),e[45]=s.status,e[46]=s.warning,e[47]=K):K=e[47];let M;e[48]!==s.error||e[49]!==s.status||e[50]!==s.warning?(M=s.status==="applied"&&s.error===null&&s.warning===null&&n.jsxs("div",{className:"agent-card-note",children:["Applied: the change is live in the editor. ",ve("edit.undo")," takes it back."]}),e[48]=s.error,e[49]=s.status,e[50]=s.warning,e[51]=M):M=e[51];let R;e[52]!==s.status?(R=s.status==="stale"&&n.jsx("div",{className:"agent-card-note",children:"The Project changed after this was proposed. Ask the agent again so it can re-read it and re-propose."}),e[52]=s.status,e[53]=R):R=e[53];let I;e[54]!==b||e[55]!==s.status||e[56]!==a||e[57]!==N?(I=b&&s.status==="pending"&&n.jsxs("div",{className:"agent-card-note",children:["Edits Project “",N,"”, not the open one. Applying writes it, but this editor stays on “",a,"”."]}),e[54]=b,e[55]=s.status,e[56]=a,e[57]=N,e[58]=I):I=e[58];let O;return e[59]!==U||e[60]!==L||e[61]!==$||e[62]!==B||e[63]!==F||e[64]!==h||e[65]!==K||e[66]!==M||e[67]!==R||e[68]!==I||e[69]!==j?(O=n.jsxs("div",{className:h,children:[j,U,L,$,B,F,K,M,R,I]}),e[59]=U,e[60]=L,e[61]=$,e[62]=B,e[63]=F,e[64]=h,e[65]=K,e[66]=M,e[67]=R,e[68]=I,e[69]=j,e[70]=O):O=e[70],O}function _e(t){return`“${t}”`}function Ee(t){return t.motionRequest?.partId??null}function Pe(t){return t.doc?.title??t.name}function $e(t){return t.name}function Ke(t){return t.startsWith("+++")||t.startsWith("---")||t.startsWith("@@")?"agent-diff-hunk":t.startsWith("+")?"agent-diff-add":t.startsWith("-")?"agent-diff-del":"agent-diff-ctx"}function Re(t){const e=q.c(24),{item:s}=t;let l,i,a,o;if(e[0]!==s){const r=s.diff.replace(/\n$/,"").split(`
2
+ `);a=`agent-card agent-card-${s.status}`;const f=s.proposalKind==="create"?`new file ${s.path}`:s.path;let g;e[5]!==s.path||e[6]!==f?(g=n.jsx("span",{className:"agent-card-path",title:s.path,children:f}),e[5]=s.path,e[6]=f,e[7]=g):g=e[7];const b=n.jsx(de,{item:s});e[8]!==g||e[9]!==b?(o=n.jsxs("div",{className:"agent-card-head",children:[g,b]}),e[8]=g,e[9]=b,e[10]=o):o=e[10],l="agent-diff",i=r.map(Ie),e[0]=s,e[1]=l,e[2]=i,e[3]=a,e[4]=o}else l=e[1],i=e[2],a=e[3],o=e[4];let c;e[11]!==l||e[12]!==i?(c=n.jsx("pre",{className:l,children:i}),e[11]=l,e[12]=i,e[13]=c):c=e[13];let p;e[14]!==s.error?(p=s.error!==null&&n.jsx("div",{className:"error-strip agent-card-error",children:s.error}),e[14]=s.error,e[15]=p):p=e[15];let u;e[16]!==s.status?(u=s.status==="stale"&&n.jsx("div",{className:"agent-card-note",children:"The file changed on disk after this was proposed. Ask the agent again to re-read and re-propose."}),e[16]=s.status,e[17]=u):u=e[17];let d;return e[18]!==a||e[19]!==o||e[20]!==c||e[21]!==p||e[22]!==u?(d=n.jsxs("div",{className:a,children:[o,c,p,u]}),e[18]=a,e[19]=o,e[20]=c,e[21]=p,e[22]=u,e[23]=d):d=e[23],d}function Ie(t,e){return n.jsx("div",{className:Ke(t),children:t},e)}function Te(t){const e=q.c(24),{item:s}=t;if(s.kind==="proposal"){if(s.proposalKind==="shot"){let o;return e[0]!==s?(o=n.jsx(Se,{item:s}),e[0]=s,e[1]=o):o=e[1],o}if(ge(s)){const o=`agent-card agent-card-${s.status}`;let c;e[2]!==s.intent?(c=n.jsx("span",{className:"agent-card-path",title:s.intent,children:s.intent}),e[2]=s.intent,e[3]=c):c=e[3];const p=`agent-card-status is-${s.status}`;let u;e[4]!==s.status||e[5]!==p?(u=n.jsx("span",{className:p,children:s.status}),e[4]=s.status,e[5]=p,e[6]=u):u=e[6];let d;e[7]!==c||e[8]!==u?(d=n.jsxs("div",{className:"agent-card-head",children:[c,u]}),e[7]=c,e[8]=u,e[9]=d):d=e[9];let r;e[10]!==s.docName||e[11]!==s.proposalKind?(r=n.jsxs("div",{className:"agent-card-note",children:["A ",s.proposalKind," document: “",s.docName,"”. Open that editor to review and apply it."]}),e[10]=s.docName,e[11]=s.proposalKind,e[12]=r):r=e[12];let f;return e[13]!==o||e[14]!==d||e[15]!==r?(f=n.jsxs("div",{className:o,children:[d,r]}),e[13]=o,e[14]=d,e[15]=r,e[16]=f):f=e[16],f}let a;return e[17]!==s?(a=n.jsx(Re,{item:s}),e[17]=s,e[18]=a):a=e[18],a}if(s.kind==="tool"){let a;return e[19]!==s.text?(a=n.jsx("div",{className:"agent-tool",children:s.text}),e[19]=s.text,e[20]=a):a=e[20],a}const l=`agent-msg agent-msg-${s.kind}`;let i;return e[21]!==s.text||e[22]!==l?(i=n.jsx("div",{className:l,children:s.text}),e[21]=s.text,e[22]=l,e[23]=i):i=e[23],i}function ce(t){const e=q.c(39),s=le(),l=S(Fe),i=S(De),[a,o]=T.useState(""),[c,p]=T.useState(!1);let u;e[0]===Symbol.for("react.memo_cache_sentinel")?(u=pe(),e[0]=u):u=e[0];const d=u;let r;e[1]!==a||e[2]!==t||e[3]!==c||e[4]!==s?(r=async()=>{a.trim()===""||c||(p(!0),await he(s,a.trim()),p(!1),s.getState().agentCredentials?.source==="stored"&&(o(""),t.onDone?.()))},e[1]=a,e[2]=t,e[3]=c,e[4]=s,e[5]=r):r=e[5];const f=r;let g;e[6]!==t.compact?(g=!t.compact&&n.jsxs("p",{className:"agent-setup-blurb",children:["The agent builds scenes through the studio's validated document API and needs an Anthropic API key."," ",d?n.jsx(n.Fragment,{children:"It is stored encrypted for this workspace, sent only to Anthropic, and never shown again. Every owner and admin here uses this key, and saving replaces the current one."}):n.jsxs(n.Fragment,{children:["Bring your own: it is stored in ",n.jsx("code",{children:".studio/agent/"})," (kept out of git) on this machine, sent only to Anthropic, and never shown again."]})]}),e[6]=t.compact,e[7]=g):g=e[7];let b;e[8]!==l?.source?(b=l?.source==="env"&&n.jsxs("p",{className:"agent-setup-blurb",children:["Using ",n.jsx("code",{children:"ANTHROPIC_API_KEY"})," from the environment. Paste a key to override it."]}),e[8]=l?.source,e[9]=b):b=e[9];let N;e[10]!==l||e[11]!==s?(N=l?.source==="stored"&&n.jsxs("p",{className:"agent-setup-blurb",children:[d?"Using this workspace's key":"Using your stored key"," (…",l.last4,")."," ",n.jsx("button",{type:"button",className:"btn is-danger",onClick:()=>void me(s),children:"Remove key"})]}),e[10]=l,e[11]=s,e[12]=N):N=e[12];let h;e[13]===Symbol.for("react.memo_cache_sentinel")?(h=E=>o(E.target.value),e[13]=h):h=e[13];let C;e[14]!==f?(C=E=>{E.key==="Enter"&&!E.nativeEvent.isComposing&&f()},e[14]=f,e[15]=C):C=e[15];let x;e[16]!==a||e[17]!==C?(x=n.jsx("input",{type:"password",className:"agent-key-input",placeholder:"sk-ant-…",value:a,autoComplete:"off",onChange:h,onKeyDown:C}),e[16]=a,e[17]=C,e[18]=x):x=e[18];let j;e[19]!==a||e[20]!==c?(j=a.trim()===""||c,e[19]=a,e[20]=c,e[21]=j):j=e[21];let w;e[22]!==f?(w=()=>void f(),e[22]=f,e[23]=w):w=e[23];const _=c?"Saving…":"Save key";let y;e[24]!==_||e[25]!==j||e[26]!==w?(y=n.jsx("button",{type:"button",className:"btn",disabled:j,onClick:w,children:_}),e[24]=_,e[25]=j,e[26]=w,e[27]=y):y=e[27];let v;e[28]!==y||e[29]!==x?(v=n.jsxs("div",{className:"agent-setup-row",children:[x,y]}),e[28]=y,e[29]=x,e[30]=v):v=e[30];let A;e[31]!==i?(A=i!==null&&n.jsx("div",{className:"error-strip",children:i}),e[31]=i,e[32]=A):A=e[32];let k;return e[33]!==v||e[34]!==A||e[35]!==g||e[36]!==b||e[37]!==N?(k=n.jsxs("div",{className:"agent-setup",children:[g,b,N,v,A]}),e[33]=v,e[34]=A,e[35]=g,e[36]=b,e[37]=N,e[38]=k):k=e[38],k}function De(t){return t.agentCredentialsError}function Fe(t){return t.agentCredentials}function Xe(){const t=q.c(87),e=le(),s=S(Qe),l=S(Je),i=S(Ge),a=S(ze),o=S(Ye),c=S(He),p=S(qe),u=S(Ue),[d,r]=T.useState(""),[f,g]=T.useState(!1),b=T.useRef(null),N=T.useRef(null),h=S(Me),C=T.useRef(!1);let x,j;t[0]!==h||t[1]!==e?(x=()=>{h!==null&&(r(h.text),C.current=!0,e.consumeAgentPrefill(h))},j=[h,e],t[0]=h,t[1]=e,t[2]=x,t[3]=j):(x=t[2],j=t[3]),T.useEffect(x,j);let w;t[4]===Symbol.for("react.memo_cache_sentinel")?(w=()=>{const m=N.current;C.current&&m!==null&&!m.disabled&&(C.current=!1,m.focus(),m.setSelectionRange(m.value.length,m.value.length))},t[4]=w):w=t[4];const _=s?.configured;let y;t[5]!==h||t[6]!==d||t[7]!==a||t[8]!==_?(y=[h,d,_,a],t[5]=h,t[6]=d,t[7]=a,t[8]=_,t[9]=y):y=t[9],T.useEffect(w,y);let v,A;t[10]!==e?(v=()=>{e.getState().agentCredentials===null&&oe(e)},A=[e],t[10]=e,t[11]=v,t[12]=A):(v=t[11],A=t[12]),T.useEffect(v,A);let k;t[13]===Symbol.for("react.memo_cache_sentinel")?(k=()=>{const m=b.current;m&&(m.scrollTop=m.scrollHeight)},t[13]=k):k=t[13];let E;t[14]!==i?(E=[i],t[14]=i,t[15]=E):E=t[15],T.useEffect(k,E);let D;t[16]!==s?.configured||t[17]!==d||t[18]!==a||t[19]!==e?(D=()=>{const m=d.trim();m===""||a||s?.configured!==!0||(r(""),xe(e,m))},t[16]=s?.configured,t[17]=d,t[18]=a,t[19]=e,t[20]=D):D=t[20];const P=D,U=Be,L=c??s?.model??"";let $;t[21]!==s||t[22]!==L||t[23]!==e?($=s!==null&&s.configured&&n.jsx(ue,{className:"agent-models",ariaLabel:"Model",value:L,options:s.models.map(Le),onChange:m=>e.setAgentModel(m===s.model?null:m)}),t[21]=s,t[22]=L,t[23]=e,t[24]=$):$=t[24];const B=`btn${f?" is-active":""}`;let F;t[25]===Symbol.for("react.memo_cache_sentinel")?(F=()=>g(We),t[25]=F):F=t[25];let K;t[26]!==B?(K=n.jsx("button",{type:"button",className:B,title:"API key (bring your own)",onClick:F,children:"Key"}),t[26]=B,t[27]=K):K=t[27];const M=i.length===0||a;let R;t[28]!==e?(R=()=>e.clearAgentTranscript(),t[28]=e,t[29]=R):R=t[29];let I;t[30]!==M||t[31]!==R?(I=n.jsx("button",{type:"button",className:"btn",disabled:M,title:"Start a new chat",onClick:R,children:"New"}),t[30]=M,t[31]=R,t[32]=I):I=t[32];let O;t[33]!==e?(O=n.jsx("button",{type:"button",className:"btn is-icon","aria-label":"Close agent panel",onClick:()=>e.setAgentOpen(!1),children:"×"}),t[33]=e,t[34]=O):O=t[34];let W;t[35]!==$||t[36]!==K||t[37]!==I||t[38]!==O?(W=n.jsxs("div",{className:"agent-title",children:[$,K,I,O]}),t[35]=$,t[36]=K,t[37]=I,t[38]=O,t[39]=W):W=t[39];let H;t[40]!==s||t[41]!==f?(H=s!==null&&!s.configured?n.jsx(ce,{compact:!1}):f?n.jsx(ce,{compact:!0,onDone:()=>g(!1)}):null,t[40]=s,t[41]=f,t[42]=H):H=t[42];let Y;t[43]!==s||t[44]!==l||t[45]!==e?(Y=s===null&&l!==null&&n.jsxs("div",{className:"error-strip agent-strip",children:[n.jsx("span",{className:"agent-strip-msg",children:l}),n.jsx("button",{type:"button",className:"btn",onClick:()=>void oe(e),children:"Retry"})]}),t[43]=s,t[44]=l,t[45]=e,t[46]=Y):Y=t[46];let z;t[47]!==i?(z=i.length===0?n.jsx("div",{className:"insp-empty",children:"Ask for a scene, for example “a product video: the screenshot pushes in while the headline fades up”. You get real layers at real depths; nothing lands until you apply it."}):i.map(Oe),t[47]=i,t[48]=z):z=t[48];let G;t[49]!==a?(G=a&&n.jsx("div",{className:"agent-msg agent-msg-info agent-thinking",children:"Working…"}),t[49]=a,t[50]=G):G=t[50];let J;t[51]!==z||t[52]!==G?(J=n.jsxs("div",{className:"agent-transcript",ref:b,children:[z,G]}),t[51]=z,t[52]=G,t[53]=J):J=t[53];let Q;t[54]!==o?(Q=o!==null&&n.jsx("div",{className:"error-strip agent-strip",children:o}),t[54]=o,t[55]=Q):Q=t[55];let V;t[56]!==p||t[57]!==a?(V=p!==null&&!a&&n.jsxs("div",{className:"agent-cost",children:["last turn ≈ $",p.toFixed(p<.1?3:2)]}),t[56]=p,t[57]=a,t[58]=V):V=t[58];let X;t[59]!==u?(X=u!==null&&n.jsxs("span",{className:"agent-pin",title:"Sent as context with your next ask",children:["◎ ",u]}),t[59]=u,t[60]=X):X=t[60];const re=s===null?"Waiting for the agent backend…":s.configured?"Ask the agent… (Enter to send, Shift+Enter for a new line)":"Add an API key above to start",ie=s===null||!s.configured;let ne;t[61]===Symbol.for("react.memo_cache_sentinel")?(ne=m=>r(m.target.value),t[61]=ne):ne=t[61];let Z;t[62]!==P?(Z=m=>{m.key==="Enter"&&!m.shiftKey&&!m.nativeEvent.isComposing&&(m.preventDefault(),P())},t[62]=P,t[63]=Z):Z=t[63];let ee;t[64]!==d||t[65]!==re||t[66]!==ie||t[67]!==Z?(ee=n.jsx("textarea",{ref:N,className:"agent-input",rows:2,placeholder:re,value:d,disabled:ie,onChange:ne,onKeyDown:Z}),t[64]=d,t[65]=re,t[66]=ie,t[67]=Z,t[68]=ee):ee=t[68];let te;t[69]!==s?.configured||t[70]!==d||t[71]!==a||t[72]!==e||t[73]!==P?(te=a?n.jsx("button",{type:"button",className:"btn is-danger",onClick:()=>void fe(e),children:"Stop"}):n.jsx("button",{type:"button",className:"btn agent-send",disabled:d.trim()===""||s?.configured!==!0,onClick:P,children:"Ask"}),t[69]=s?.configured,t[70]=d,t[71]=a,t[72]=e,t[73]=P,t[74]=te):te=t[74];let se;t[75]!==X||t[76]!==ee||t[77]!==te?(se=n.jsxs("div",{className:"agent-composer",children:[X,ee,te]}),t[75]=X,t[76]=ee,t[77]=te,t[78]=se):se=t[78];let ae;return t[79]!==W||t[80]!==H||t[81]!==Y||t[82]!==J||t[83]!==Q||t[84]!==V||t[85]!==se?(ae=n.jsx("div",{className:"agent-panel","data-testid":"agent-panel",onKeyDown:U,children:n.jsxs(je,{label:"Agent",children:[W,H,Y,J,Q,V,se]})}),t[79]=W,t[80]=H,t[81]=Y,t[82]=J,t[83]=Q,t[84]=V,t[85]=se,t[86]=ae):ae=t[86],ae}function Oe(t){return n.jsx(Te,{item:t},t.id)}function We(t){return!t}function Le(t){return{value:t,label:Ce(t),title:t}}function Be(t){t.stopPropagation()}function Me(t){return t.agentPrefill}function Ue(t){return t.doc?.title??t.name}function qe(t){return t.agentCostUsd}function He(t){return t.agentModel}function Ye(t){return t.agentError}function ze(t){return t.agentRunning}function Ge(t){return t.agentItems}function Je(t){return t.agentCredentialsError}function Qe(t){return t.agentCredentials}export{Xe as AgentPanel,Ae as strayShotsOf};
@@ -0,0 +1 @@
1
+ @layer component-sheets{.agent-panel{position:relative;display:flex;flex-direction:column;height:100%;min-width:0}.agent-title{display:flex;align-items:center;gap:var(--space-3)}.agent-panel .error-strip{flex:none;padding:var(--space-2) var(--space-4);background:var(--danger-bg);color:var(--danger-ink);font-size:var(--type-sm);line-height:var(--leading-body);overflow-wrap:anywhere}.agent-setup{padding:var(--space-4);border-bottom:1px solid var(--line);flex:none;display:flex;flex-direction:column;gap:var(--space-3)}.agent-setup-blurb{margin:0;color:var(--ink-2);font-size:var(--type-md);line-height:var(--leading-body)}.agent-setup-row{display:flex;gap:var(--space-2)}.agent-key-input{flex:1;min-width:0;background:var(--fill-rest);border:1px solid var(--line);border-radius:var(--radius-md);color:var(--ink-1);padding:var(--space-2) var(--space-3);font:var(--type-micro)/var(--leading-none) var(--font-mono)}.agent-transcript{flex:1;min-height:0;overflow-y:auto;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.agent-msg{border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--type-md);line-height:var(--leading-body);white-space:pre-wrap;overflow-wrap:anywhere}.agent-msg-user{background:var(--accent-soft);color:var(--ink-1);align-self:flex-end;max-width:90%}.agent-msg-assistant{background:var(--fill-rest);color:var(--ink-1)}.agent-msg-error{background:var(--fill-rest);color:var(--danger)}.agent-msg-info{color:var(--ink-3);font-style:italic}.agent-tool{color:var(--ink-3);font:var(--type-micro)/var(--leading-none) var(--font-mono);font-size:var(--type-sm);padding-left:var(--space-4)}.agent-tool:before{content:"⚙ "}.agent-thinking{animation:agent-pulse 1.2s ease-in-out infinite}@keyframes agent-pulse{50%{opacity:.4}}.agent-card{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-panel);overflow:hidden;flex:none}.agent-card-applied{border-color:var(--accent)}.agent-card-head{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--line);background:var(--fill-rest)}.agent-card-path{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-1)}.agent-card:not(.agent-card-canvas) .agent-card-path{font:var(--type-micro)/var(--leading-none) var(--font-mono)}.agent-card-status{flex:none;font-size:var(--type-sm);text-transform:uppercase;letter-spacing:var(--tracking-caps)}.agent-card-status.is-applied{color:var(--accent-ink)}.agent-card-status.is-stale,.agent-card-status.is-failed{color:var(--danger)}.agent-card-status.is-applying{color:var(--ink-2)}.agent-card-meta{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:var(--type-sm);color:var(--ink-3)}.agent-card-doc{color:var(--ink-2);font:var(--type-micro)/var(--leading-none) var(--font-mono);font-size:var(--type-sm)}.agent-card-count:before{content:"· "}.agent-tree{margin:0;padding:var(--space-2) 0;max-height:260px;overflow:auto;font:var(--type-micro)/var(--leading-none) var(--font-mono);font-size:var(--type-sm);line-height:var(--leading-body);color:var(--ink-2)}.agent-tree-line{padding:0 var(--space-4);white-space:pre}.agent-diff{margin:0;padding:var(--space-2) 0;max-height:260px;overflow:auto;font:var(--type-micro)/var(--leading-none) var(--font-mono);font-size:var(--type-sm);line-height:var(--leading-body)}.agent-diff>div{padding:0 var(--space-4);white-space:pre}.agent-diff-add{background:color-mix(in srgb,var(--success) 16%,transparent);color:color-mix(in srgb,var(--success) 60%,var(--ink-1))}.agent-diff-del{background:color-mix(in srgb,var(--danger) 14%,transparent);color:color-mix(in srgb,var(--danger) 60%,var(--ink-1))}.agent-diff-hunk{color:var(--ink-3)}.agent-diff-ctx{color:var(--ink-2)}.agent-card-note{padding:var(--space-2) var(--space-4);color:var(--ink-3);font-size:var(--type-sm)}.agent-card-error{margin:0;white-space:normal}.agent-card-warning{color:var(--warn);white-space:normal}.agent-copy-prompt{margin:0 var(--space-4) var(--space-2)}.agent-strip{flex:none;display:flex;align-items:center;gap:var(--space-4)}.agent-strip-msg{flex:1;min-width:0}.agent-cost{flex:none;padding:var(--space-1) var(--space-4);color:var(--ink-3);font-size:var(--type-sm);text-align:right}.agent-composer{display:flex;align-items:flex-end;gap:var(--space-2);padding:var(--space-4);border-top:1px solid var(--line);flex:none;flex-wrap:wrap}.agent-pin{flex:0 0 100%;color:var(--ink-3);font-size:var(--type-sm)}.agent-input{flex:1;min-width:0;resize:none;background:var(--fill-rest);border:1px solid var(--line);border-radius:var(--radius-md);color:var(--ink-1);padding:var(--space-3) var(--space-4);font:inherit;font-size:var(--type-md);line-height:var(--leading-body)}.agent-input:focus{outline:1px solid var(--accent)}}
@@ -0,0 +1 @@
1
+ import{q as A,u as C,B as N,A as v,v as o,V as _,P as R}from"./index-BGHQGV5z.js";const D=t=>t.versionPreview!==null?t.versionPreview.roleReadOnly:t.readOnly&&(t.syncStatus?.hold??null)===null&&t.syncDeleted===null;function L(t){const e=A.c(6),a=C(),n=v(J),s=v(I);let r,d;e[0]!==t||e[1]!==n||e[2]!==s||e[3]!==a?(r=()=>{if(t?.serverJob===void 0||n===null||n.id!==t.serverJob||n.phase==="running")return;if(n.phase!=="done"||n.out===void 0||s===null){a.agentQuestion.exportOnServer(null);return}const i=n.out;a.agentQuestion.reportVideo(t,s,{where:"project",path:i}).catch(u=>{a.reportError(`${i} was rendered, but telling the agent failed: ${u instanceof Error?u.message:String(u)}`)})},d=[t,n,s,a],e[0]=t,e[1]=n,e[2]=s,e[3]=a,e[4]=r,e[5]=d):(r=e[4],d=e[5]),N.useEffect(r,d)}function I(t){return t.name}function J(t){return t.renderJob}function z(){const t=A.c(3),e=C(),a=N.useSyncExternalStore(e.agentQuestion.subscribe,e.agentQuestion.getState),n=v(P);L(a.exportAsk);const s=a.question;if(!a.open||s===null||s.projectId!==n||s.status!=="open"&&a.error===null)return null;let r;return t[0]!==a||t[1]!==s?(r=o.jsx(T,{q:a,question:s},s.id),t[0]=a,t[1]=s,t[2]=r):r=t[2],r}function P(t){return t.doc?.id??null}function T(t){const e=A.c(41),{q:a,question:n}=t,s=C(),r=v(D),d=v(Y),i=v(V),[u,O]=N.useState(!1),[c,B]=N.useState("");let q;e[0]!==s.agentQuestion?(q=()=>s.agentQuestion.hide(),e[0]=s.agentQuestion,e[1]=q):q=e[1];const g=q,l=n.status!=="open",j=r||l||a.sending,S=!l&&d!==null&&d!==n.boardRev;let w;e[2]!==n.askedAt?(w=new Date(n.askedAt).toLocaleTimeString(void 0,{hour:"numeric",minute:"2-digit"}),e[2]=n.askedAt,e[3]=w):w=e[3];const E=w,Q=n.askedBy.member===null?n.askedBy.client:`${n.askedBy.client} for ${n.askedBy.member}`;let m;e[4]!==n.question?(m=o.jsx("span",{"data-testid":"agent-question-text",children:n.question}),e[4]=n.question,e[5]=m):m=e[5];let p;e[6]!==u||e[7]!==g||e[8]!==l||e[9]!==j||e[10]!==i||e[11]!==c||e[12]!==n.export||e[13]!==s?(p=l?o.jsx("button",{type:"button",className:"btn is-primary","data-testid":"agent-question-close",onClick:g,children:"Close"}):u?o.jsxs(o.Fragment,{children:[o.jsx("button",{type:"button",className:"btn","data-testid":"agent-question-back",onClick:()=>O(!1),children:"Back"}),o.jsx("button",{type:"button",className:"btn is-primary","data-testid":"agent-question-send",disabled:j||i===null||c.trim()==="",onClick:()=>{i!==null&&s.agentQuestion.answer(i,"changes",c.trim())},children:"Send changes"})]}):o.jsxs(o.Fragment,{children:[o.jsx("button",{type:"button",className:"btn","data-testid":"agent-question-board",onClick:()=>{g(),s.setStoryboardOpen(!0)},children:"Open storyboard"}),o.jsx("button",{type:"button",className:"btn","data-testid":"agent-question-changes",disabled:j,onClick:()=>O(!0),children:"Ask for changes"}),o.jsx("button",{type:"button",className:"btn is-primary","data-testid":"agent-question-yes",disabled:j||i===null,onClick:()=>{i!==null&&s.agentQuestion.answer(i,"yes").then($=>{$&&n.export!==void 0&&s.setExportOpen(!0)})},children:n.export===void 0?"Make the video":"Export the video"})]}),e[6]=u,e[7]=g,e[8]=l,e[9]=j,e[10]=i,e[11]=c,e[12]=n.export,e[13]=s,e[14]=p):p=e[14];let h;e[15]!==n.summary?(h=o.jsx("pre",{className:"agent-question-summary","data-testid":"agent-question-summary",children:n.summary}),e[15]=n.summary,e[16]=h):h=e[16];let f;e[17]!==E||e[18]!==Q?(f=o.jsxs("p",{className:"agent-question-who",children:["Asked by ",Q," at ",E]}),e[17]=E,e[18]=Q,e[19]=f):f=e[19];let b;e[20]!==S?(b=S?o.jsx("p",{className:"agent-question-stale","data-testid":"agent-question-stale",children:"The storyboard changed after this was asked. Your answer tells the agent to read it again."}):null,e[20]=S,e[21]=b):b=e[21];let x;e[22]!==u||e[23]!==l||e[24]!==c||e[25]!==r?(x=u&&!l?o.jsxs("label",{className:"dialog-field",children:[o.jsx("span",{className:"dialog-label",children:"What should change?"}),o.jsx("textarea",{className:"agent-question-note","data-testid":"agent-question-note",rows:4,maxLength:2048,value:c,disabled:r,onChange:$=>B($.target.value)})]}):null,e[22]=u,e[23]=l,e[24]=c,e[25]=r,e[26]=x):x=e[26];let y;e[27]!==l||e[28]!==a||e[29]!==n||e[30]!==r?(y=r?o.jsx("p",{className:"dialog-error",role:"alert",children:_}):a.error!==null?o.jsx("p",{className:"dialog-error",role:"alert","data-testid":"agent-question-error",children:l?`${F(n)} Your answer was not sent.`:a.error}):null,e[27]=l,e[28]=a,e[29]=n,e[30]=r,e[31]=y):y=e[31];let k;return e[32]!==g||e[33]!==m||e[34]!==p||e[35]!==h||e[36]!==f||e[37]!==b||e[38]!==x||e[39]!==y?(k=o.jsxs(R,{open:!0,size:"wide",className:"agent-question",title:m,onClose:g,actions:p,children:[h,f,b,x,y]}),e[32]=g,e[33]=m,e[34]=p,e[35]=h,e[36]=f,e[37]=b,e[38]=x,e[39]=y,e[40]=k):k=e[40],k}function V(t){return t.name}function Y(t){return t.rev}function F(t){if(t.status==="answered"&&t.answer!==void 0){const e=t.export===void 0?"make the video":"export the video";return`${t.answer.by.name} answered first: ${t.answer.choice==="yes"?e:"asked for changes"}.`}return"The agent closed this question."}export{z as AgentQuestionDialog,D as viewerOf};