@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,569 @@
1
+ /* Code Studio (C2) in the docked cells: the components list in the left column, the code pane and the live pane in the canvas cell, its verbs in the canvas bar. No bottom row: Components hides the timeline (`componentsHideTimeline`). */
2
+
3
+ /* ---- the canvas cell: the code pane, then the live pane ------------------ */
4
+ /* A row across the cell. It paints nothing and takes no pointer: the cell's
5
+ own rule, stated again because it is the HOLE'S ANCESTOR, and a box over
6
+ the hole that took the pointer would swallow every orbit meant for the
7
+ stage. The code pane and the live bar opt back in; the hole
8
+ (`.stage-window`, shell.css) stays out. */
9
+ .code-studio {
10
+ flex: 1 1 0;
11
+ display: flex;
12
+ min-width: 0;
13
+ min-height: 0;
14
+ pointer-events: none;
15
+ }
16
+
17
+ /* THE CODE PANE: the file bar, the file's strips, the editor (and the files
18
+ when asked for), then the status footer. Opaque, with the seam to the live
19
+ pane on its own border. */
20
+ .code-studio-column {
21
+ flex: 1 1 0;
22
+ min-width: 360px;
23
+ min-height: 0;
24
+ display: flex;
25
+ flex-direction: column;
26
+ border-right: 1px solid var(--line);
27
+ background: var(--surface-panel);
28
+ pointer-events: auto;
29
+ }
30
+
31
+ /* THE LIVE PANE, at the stored width (`--code-live-w`, which App writes from
32
+ `codeLiveWidth`, 420 by default): a bar, then the hole the stage renders
33
+ into. It never takes the code pane under its 360 minimum. */
34
+ .code-live {
35
+ position: relative;
36
+ flex: 0 1 var(--code-live-w, 420px);
37
+ min-width: 240px;
38
+ max-width: calc(100% - 360px);
39
+ min-height: 0;
40
+ display: flex;
41
+ flex-direction: column;
42
+ }
43
+
44
+ /* The seam's handle, on the code pane's right border: 8px of hit area over
45
+ the hairline, painting only on hover, like the material preview's. The one
46
+ thing over the hole's edge that takes a pointer. */
47
+ .code-live-resize {
48
+ position: absolute;
49
+ top: 0;
50
+ bottom: 0;
51
+ left: calc(-1 * var(--space-2) - 1px);
52
+ z-index: 3;
53
+ width: 8px;
54
+ cursor: col-resize;
55
+ touch-action: none;
56
+ pointer-events: auto;
57
+ background: transparent;
58
+ transition: background var(--dur-fast) var(--ease);
59
+ }
60
+
61
+ .code-live-resize:hover {
62
+ background: var(--accent-soft);
63
+ }
64
+
65
+ .code-live-bar {
66
+ flex: 0 0 var(--panel-head-h);
67
+ display: flex;
68
+ align-items: center;
69
+ justify-content: space-between;
70
+ padding: 0 var(--space-7);
71
+ border-bottom: 1px solid var(--line);
72
+ background: var(--surface-panel);
73
+ pointer-events: auto;
74
+ }
75
+
76
+ .code-live-title {
77
+ color: var(--ink-2);
78
+ font-size: var(--type-md);
79
+ }
80
+
81
+ .code-live-loop {
82
+ color: var(--ink-3);
83
+ font-family: var(--font-mono);
84
+ font-size: var(--type-sm);
85
+ font-variant-numeric: var(--numeric);
86
+ }
87
+
88
+ .code-studio-hole {
89
+ flex: 1 1 auto;
90
+ min-width: 0;
91
+ min-height: 0;
92
+ }
93
+
94
+ /* ---- the file bar ---------------------------------------------------------- */
95
+ .code-file-bar {
96
+ flex: 0 0 var(--panel-head-h);
97
+ display: flex;
98
+ align-items: center;
99
+ gap: var(--space-4);
100
+ min-width: 0;
101
+ padding: 0 var(--space-6);
102
+ border-bottom: 1px solid var(--line);
103
+ }
104
+
105
+ .code-files-toggle {
106
+ flex: none;
107
+ height: var(--control-h);
108
+ padding: 0 var(--space-4);
109
+ border: 0;
110
+ border-radius: var(--radius-sm);
111
+ background: transparent;
112
+ color: var(--ink-3);
113
+ font-size: var(--type-sm);
114
+ cursor: pointer;
115
+ }
116
+
117
+ .code-files-toggle:hover,
118
+ .code-files-toggle.is-on {
119
+ color: var(--ink-1);
120
+ background: var(--surface-secondary);
121
+ }
122
+
123
+ /* One buffer: its file tab. */
124
+ .code-file-tab {
125
+ flex: 0 1 auto;
126
+ min-width: 0;
127
+ padding: var(--space-2) var(--space-5);
128
+ border-radius: var(--radius-sm);
129
+ background: var(--surface-secondary);
130
+ color: var(--ink-1);
131
+ font-family: var(--font-mono);
132
+ font-size: var(--type-sm);
133
+ line-height: 16px;
134
+ white-space: nowrap;
135
+ overflow: hidden;
136
+ text-overflow: ellipsis;
137
+ }
138
+
139
+ .code-file-spacer {
140
+ flex: 1 1 auto;
141
+ }
142
+
143
+ .code-build {
144
+ flex: none;
145
+ display: inline-flex;
146
+ align-items: center;
147
+ gap: var(--space-3);
148
+ color: var(--ink-3);
149
+ font-size: var(--type-sm);
150
+ white-space: nowrap;
151
+ }
152
+
153
+ .code-build-dot {
154
+ width: 7px;
155
+ height: 7px;
156
+ border-radius: var(--radius-xs);
157
+ background: var(--success);
158
+ }
159
+
160
+ .code-build.is-failed {
161
+ color: var(--danger);
162
+ }
163
+
164
+ .code-build.is-failed .code-build-dot {
165
+ background: var(--danger);
166
+ }
167
+
168
+ /* ---- the body: the files (when asked for), then the editor ---------------- */
169
+ .code-studio-body {
170
+ flex: 1 1 auto;
171
+ min-height: 0;
172
+ display: flex;
173
+ }
174
+
175
+ /* The two "something needs you" strips, under the file bar, because both
176
+ describe the FILE rather than any one place in it. */
177
+ .code-studio-strip {
178
+ flex: none;
179
+ display: flex;
180
+ align-items: center;
181
+ gap: var(--space-4);
182
+ padding: var(--space-3) var(--space-4);
183
+ border-bottom: 1px solid var(--line);
184
+ background: var(--surface-secondary);
185
+ color: var(--ink-1);
186
+ font-size: var(--type-sm);
187
+ }
188
+
189
+ .code-studio-strip.is-error {
190
+ color: var(--danger);
191
+ }
192
+
193
+ /* The generated strip is a STATEMENT, not a failure: the file is fine, it is
194
+ simply not the author's to edit. Dim, not red like the error strip. */
195
+ .code-studio-strip.is-generated {
196
+ color: var(--ink-2);
197
+ }
198
+
199
+ /* FOLLOW MODE: an agent is writing this file, so it reads, it does not take
200
+ typing. A statement like the generated strip, with the one verb. */
201
+ .code-studio-strip.is-follow {
202
+ color: var(--ink-2);
203
+ }
204
+
205
+ .code-studio-strip.is-follow > .btn {
206
+ margin-left: auto;
207
+ }
208
+
209
+ .code-studio-pane {
210
+ flex: 1 1 auto;
211
+ min-width: 0;
212
+ min-height: 0;
213
+ display: flex;
214
+ }
215
+
216
+ /* CodeMirror sizes itself to its host, so the host has to be the one with a
217
+ height. Both are needed: the flex child min-height and the editor's own. */
218
+ .code-studio-pane .code-editor {
219
+ flex: 1 1 auto;
220
+ min-width: 0;
221
+ min-height: 0;
222
+ overflow: hidden;
223
+ }
224
+
225
+ .code-studio-empty {
226
+ flex: 1 1 auto;
227
+ margin: 0;
228
+ padding: var(--space-7) var(--space-6);
229
+ color: var(--ink-2);
230
+ font-size: var(--type-md);
231
+ }
232
+
233
+ /* ---- the status footer ------------------------------------------------------ */
234
+ /* The shipped 48 tool footer height, so it lines up with every other footer. */
235
+ .code-status {
236
+ flex: 0 0 var(--tool-footer-h);
237
+ display: flex;
238
+ align-items: center;
239
+ gap: var(--space-5);
240
+ min-width: 0;
241
+ padding: 0 var(--space-7);
242
+ border-top: 1px solid var(--line);
243
+ font-size: var(--type-sm);
244
+ white-space: nowrap;
245
+ }
246
+
247
+ .code-status-ok {
248
+ color: var(--success);
249
+ }
250
+
251
+ .code-status-errors {
252
+ color: var(--danger);
253
+ font-variant-numeric: var(--numeric);
254
+ }
255
+
256
+ .code-status-note {
257
+ min-width: 0;
258
+ overflow: hidden;
259
+ text-overflow: ellipsis;
260
+ color: var(--ink-3);
261
+ }
262
+
263
+ .code-status-verbs {
264
+ flex: none;
265
+ display: inline-flex;
266
+ align-items: center;
267
+ gap: var(--space-2);
268
+ color: var(--ink-3);
269
+ }
270
+
271
+ /* Remix and History: quiet words, ink on hover. The Studio-made footer
272
+ (ComponentSidePanel.tsx) wears the same verbs. */
273
+ .code-status-verb {
274
+ padding: 0;
275
+ border: 0;
276
+ background: transparent;
277
+ color: var(--ink-3);
278
+ font-size: var(--type-sm);
279
+ cursor: pointer;
280
+ }
281
+
282
+ .code-status-verb:hover:not(:disabled) {
283
+ color: var(--ink-1);
284
+ }
285
+
286
+ .code-status-verb:disabled {
287
+ cursor: default;
288
+ opacity: var(--opacity-disabled);
289
+ }
290
+
291
+ /* ---- the tab strip ---------------------------------------------------------- */
292
+ /* Two or more buffers: the tab strip (it takes the file tab's place in Code
293
+ Studio's file bar). The component does not render it below two.
294
+
295
+ NO SCROLLBAR: a classic one takes its height out of the fixed row and
296
+ squashes every tab. The strip still pans (trackpad, Shift+wheel), and the
297
+ active tab scrolls itself into view (`CodeTab`). */
298
+ .code-tabs {
299
+ flex: 0 0 var(--panel-head-h);
300
+ display: flex;
301
+ align-items: stretch;
302
+ overflow-x: auto;
303
+ scrollbar-width: none;
304
+ border-bottom: 1px solid var(--line);
305
+ background: var(--surface-secondary);
306
+ }
307
+
308
+ /* In the file bar the bar draws the edge and the ground. Two classes, so the
309
+ overrides are not ties with the strip's own rule. */
310
+ .code-file-bar > .code-tabs {
311
+ flex: 0 1 auto;
312
+ align-self: stretch;
313
+ min-width: 0;
314
+ border-bottom: 0;
315
+ background: transparent;
316
+ }
317
+
318
+ .code-tab {
319
+ display: flex;
320
+ align-items: center;
321
+ flex: 0 0 auto;
322
+ max-width: 180px;
323
+ border-right: 1px solid var(--line);
324
+ }
325
+
326
+ .code-tab[data-active] {
327
+ background: var(--surface-panel);
328
+ }
329
+
330
+ .code-file-bar .code-tab[data-active] {
331
+ background: var(--surface-secondary);
332
+ }
333
+
334
+ .code-tab-name {
335
+ display: flex;
336
+ align-items: center;
337
+ gap: var(--space-2);
338
+ height: 100%;
339
+ min-width: 0;
340
+ padding: 0 var(--space-2) 0 var(--space-5);
341
+ border: 0;
342
+ background: transparent;
343
+ color: var(--ink-2);
344
+ font-size: var(--type-md);
345
+ white-space: nowrap;
346
+ overflow: hidden;
347
+ text-overflow: ellipsis;
348
+ cursor: pointer;
349
+ }
350
+
351
+ .code-tab[data-active] .code-tab-name {
352
+ color: var(--ink-1);
353
+ }
354
+
355
+ .code-tab-dirty {
356
+ flex: 0 0 auto;
357
+ width: 5px;
358
+ height: 5px;
359
+ border-radius: var(--radius-full);
360
+ background: var(--ink-2);
361
+ }
362
+
363
+ .code-tab-close {
364
+ flex: 0 0 auto;
365
+ height: 100%;
366
+ padding: 0 var(--space-4) 0 var(--space-2);
367
+ border: 0;
368
+ background: transparent;
369
+ color: var(--ink-3);
370
+ font-size: var(--type-lg);
371
+ line-height: var(--leading-none);
372
+ cursor: pointer;
373
+ }
374
+
375
+ .code-tab-close:hover {
376
+ color: var(--ink-1);
377
+ }
378
+
379
+ /* ---- the canvas bar ------------------------------------------------------- */
380
+ /* The way back, the breadcrumb, then the verbs pushed right (the tab switch,
381
+ Save, the zoom). The slot lays the row out (`.canvas-bar-mode`,
382
+ canvas.css); these size its parts. */
383
+
384
+ /* THE WAY BACK, the stage bar's back chip as a bare chevron: accent ink,
385
+ because being inside something is a state and the way out of it is
386
+ signal. */
387
+ .code-back {
388
+ flex: none;
389
+ display: inline-flex;
390
+ align-items: center;
391
+ justify-content: center;
392
+ width: var(--control-h);
393
+ height: var(--control-h);
394
+ padding: 0;
395
+ border: 0;
396
+ border-radius: var(--control-radius);
397
+ background: transparent;
398
+ color: var(--accent-ink);
399
+ cursor: pointer;
400
+ transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
401
+ }
402
+
403
+ .code-back:hover {
404
+ color: var(--ink-1);
405
+ background: var(--fill-rest);
406
+ }
407
+
408
+ .code-back:focus-visible {
409
+ outline: none;
410
+ box-shadow: var(--focus-ring);
411
+ }
412
+
413
+ /* The shot lane's icons carry no size of their own (icons.tsx). */
414
+ .code-back svg {
415
+ width: 14px;
416
+ height: 14px;
417
+ }
418
+
419
+ /* THE SUBJECT, the breadcrumb's name (`.components-crumb`, component.css). */
420
+ .code-studio-name {
421
+ flex: 0 1 auto;
422
+ min-width: 0;
423
+ overflow: hidden;
424
+ text-overflow: ellipsis;
425
+ white-space: nowrap;
426
+ color: var(--ink-1);
427
+ font-size: var(--type-md);
428
+ font-weight: var(--weight-semibold);
429
+ }
430
+
431
+ /* Unsaved work in any buffer, as a dot rather than a word. */
432
+ .code-studio-dirty {
433
+ flex: none;
434
+ width: 6px;
435
+ height: 6px;
436
+ border-radius: var(--radius-full);
437
+ background: var(--accent);
438
+ }
439
+
440
+ /* ---- the files, docked in the code pane ------------------------------------ */
441
+ /* Shown by the file bar's Files toggle, beside the editor and inside the code
442
+ pane, so it never covers the stage. A head at the panel head height, then
443
+ the list, which is its one scroller (`.rail-scroll`). */
444
+ .code-tree {
445
+ flex: 0 0 200px;
446
+ min-width: 0;
447
+ min-height: 0;
448
+ border-right: 1px solid var(--line);
449
+ display: flex;
450
+ flex-direction: column;
451
+ }
452
+
453
+ .code-tree-head {
454
+ flex: none;
455
+ display: flex;
456
+ align-items: center;
457
+ gap: var(--space-2);
458
+ height: var(--panel-head-h);
459
+ padding: 0 var(--space-2) 0 var(--space-6);
460
+ border-bottom: 1px solid var(--line);
461
+ }
462
+
463
+ .code-tree-title {
464
+ flex: 1 1 auto;
465
+ color: var(--ink-2);
466
+ font-size: var(--type-sm);
467
+ font-weight: var(--weight-semibold);
468
+ letter-spacing: var(--tracking-caps);
469
+ text-transform: uppercase;
470
+ }
471
+
472
+ .code-tree-list {
473
+ margin: 0;
474
+ padding: 0;
475
+ list-style: none;
476
+ }
477
+
478
+ /* The root list is the scroller; two classes so its padding is not a tie
479
+ with `.rail-scroll`'s. */
480
+ .code-tree > .code-tree-list {
481
+ padding: var(--space-2) 0 var(--space-4);
482
+ }
483
+
484
+ .code-tree-empty,
485
+ .code-tree-truncated {
486
+ margin: 0;
487
+ padding: var(--space-5) var(--space-6);
488
+ color: var(--ink-2);
489
+ font-size: var(--type-sm);
490
+ line-height: var(--leading-body);
491
+ }
492
+
493
+ .code-tree-truncated {
494
+ flex: 0 0 auto;
495
+ border-top: 1px solid var(--line);
496
+ color: var(--warn);
497
+ }
498
+
499
+ .code-tree-row {
500
+ padding-left: calc(var(--space-3) + var(--depth, 0) * var(--tree-indent));
501
+ display: flex;
502
+ align-items: center;
503
+ gap: var(--space-2);
504
+ width: 100%;
505
+ /* The indent is inline, from the depth: the one thing about a row that a
506
+ stylesheet cannot know. */
507
+ padding-right: var(--space-4);
508
+ border: 0;
509
+ background: transparent;
510
+ color: var(--ink-2);
511
+ font-size: var(--type-md);
512
+ line-height: 22px;
513
+ text-align: left;
514
+ cursor: pointer;
515
+ }
516
+
517
+ .code-tree-row:hover {
518
+ background: var(--fill-rest);
519
+ color: var(--ink-1);
520
+ }
521
+
522
+ /* OPEN is ink, ACTIVE is a filled row. Two marks for two different questions
523
+ ("is there a buffer for this" and "is it the one on screen") and they
524
+ stack, because the active file is always open. */
525
+ .code-tree-row.is-file[data-open] {
526
+ color: var(--ink-1);
527
+ }
528
+
529
+ .code-tree-row.is-file[data-active] {
530
+ background: var(--fill-rest);
531
+ color: var(--ink-1);
532
+ }
533
+
534
+ .code-tree-caret {
535
+ flex: 0 0 auto;
536
+ width: 10px;
537
+ color: var(--ink-3);
538
+ font-size: var(--type-micro);
539
+ }
540
+
541
+ .code-tree-name {
542
+ flex: 1 1 auto;
543
+ min-width: 0;
544
+ overflow: hidden;
545
+ text-overflow: ellipsis;
546
+ white-space: nowrap;
547
+ }
548
+
549
+ .code-tree-mark {
550
+ flex: 0 0 auto;
551
+ font-size: var(--type-micro);
552
+ }
553
+
554
+ /* THE ACCENT IS SIGNAL-ONLY, and "this is the component in the preview" is
555
+ exactly that: it points at the one row the rest of the mode is about. */
556
+ .code-tree-mark.is-subject {
557
+ color: var(--accent-ink);
558
+ }
559
+
560
+ .code-tree-mark.is-generated {
561
+ color: var(--ink-3);
562
+ }
563
+
564
+ .code-tree-mark.is-dirty {
565
+ width: 5px;
566
+ height: 5px;
567
+ border-radius: var(--radius-full);
568
+ background: var(--ink-2);
569
+ }