@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.
- package/dist/.vite/manifest.json +382 -0
- package/dist/assets/AgentPanel-CQejLbiX.js +2 -0
- package/dist/assets/AgentPanel-DJEphah0.css +1 -0
- package/dist/assets/AgentQuestionDialog-BqkD0kXF.js +1 -0
- package/dist/assets/CodeStudio-Dv4ihHpz.js +23 -0
- package/dist/assets/CommentsPanel-B4yhhT1T.js +1 -0
- package/dist/assets/ComponentLibraryRail-Ch_dsAru.js +1 -0
- package/dist/assets/ComponentStage-BRhRotyH.js +1 -0
- package/dist/assets/CurvePane-BjFVabKX.css +1 -0
- package/dist/assets/CurvePane-R22WzllJ.js +1 -0
- package/dist/assets/ExportDialog-CWLQWTmG.js +2 -0
- package/dist/assets/FontPicker-DWKaYL7F.js +1 -0
- package/dist/assets/FontPicker-v0IOIArM.css +1 -0
- package/dist/assets/GenerateDrawer-Bh3SqDKt.js +2 -0
- package/dist/assets/InsertDrawer-Ce1fod1L.js +1 -0
- package/dist/assets/LibraryBrowser-D9sEGz5w.js +2 -0
- package/dist/assets/MakeItYoursSection-CMO4319_.js +2 -0
- package/dist/assets/MaterialGraphCanvas-BFzl4wWR.js +23 -0
- package/dist/assets/MaterialGraphCanvas-BIUD59ik.css +1 -0
- package/dist/assets/MaterialWorkspace-CqTWqaRA.js +14 -0
- package/dist/assets/PreferencesDialog-CBf9_OoD.js +1 -0
- package/dist/assets/PresetsSection-CUEaoCVU.js +1 -0
- package/dist/assets/SoundHistory-BeS8EW1h.js +1 -0
- package/dist/assets/SoundMode-BmcZru3i.js +3 -0
- package/dist/assets/StockSounds-DdAUGRYK.js +1 -0
- package/dist/assets/TemplateFieldSection-CaeXpLFo.js +1 -0
- package/dist/assets/VersionHistoryPanel-CxG6XhNP.js +1 -0
- package/dist/assets/board-B88EPuLO.css +1 -0
- package/dist/assets/board-CL-he7SL.js +3 -0
- package/dist/assets/components-0oOSPN0l.js +1 -0
- package/dist/assets/googleFontRanges-gp32wJMo.js +1 -0
- package/dist/assets/googleFonts-BNon6M7X.js +1 -0
- package/dist/assets/iconsAndAliases-DL7gXP5j.js +1863 -0
- package/dist/assets/index-4F5NQmI8.css +1 -0
- package/dist/assets/index-BGHQGV5z.js +117 -0
- package/dist/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
- package/dist/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
- package/dist/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
- package/dist/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
- package/dist/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
- package/dist/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
- package/dist/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
- package/dist/assets/libraryModel-CpIwfFha.js +1 -0
- package/dist/assets/lucide-6iK64tTB.js +9319 -0
- package/dist/assets/motionStamp-CH-Hew4E.js +1 -0
- package/dist/assets/takeMeasure-Tdg0TxEi.js +1 -0
- package/dist/assets/webmcp-BsB9gxWC.js +2 -0
- package/dist/index.html +34 -3
- package/package.json +12 -9
- package/src/addFamilies.ts +66 -0
- package/src/api.ts +1631 -55
- package/src/app/App.tsx +977 -198
- package/src/app/lazyPanel.tsx +137 -0
- package/src/app/lazySurfaces.tsx +203 -0
- package/src/audio/index.tsx +41 -10
- package/src/audio/meter.ts +485 -0
- package/src/audio/meterMath.ts +273 -0
- package/src/audio/meterStore.ts +155 -0
- package/src/audio/offlineMix.ts +289 -0
- package/src/audio/preview.ts +928 -118
- package/src/bridge.ts +15 -5
- package/src/bridgeTypes.ts +1611 -36
- package/src/channels.ts +17 -32
- package/src/fonts/googleFonts.ts +4 -0
- package/src/hostApi.ts +174 -0
- package/src/icons.tsx +770 -0
- package/src/layerWords.ts +61 -0
- package/src/main.tsx +56 -4
- package/src/panels/ResizeHandle.tsx +33 -43
- package/src/panels/agent/AgentDots.tsx +36 -0
- package/src/panels/agent/AgentPanel.tsx +119 -43
- package/src/panels/agent/AgentQuestionDialog.tsx +202 -0
- package/src/panels/agent/agent.css +113 -97
- package/src/panels/agent/agentGate.ts +35 -0
- package/src/panels/code/CodeDefaultsPanel.tsx +345 -0
- package/src/panels/code/CodeStudio.tsx +373 -0
- package/src/panels/code/FileTree.tsx +265 -0
- package/src/panels/code/codeBufferGuard.ts +52 -0
- package/src/panels/code/codeParts.tsx +321 -0
- package/src/panels/comments/CommentComposer.tsx +239 -0
- package/src/panels/comments/CommentThread.tsx +346 -0
- package/src/panels/comments/CommentsPanel.tsx +336 -0
- package/src/panels/comments/InboxButton.tsx +131 -0
- package/src/panels/comments/MentionMenu.tsx +98 -0
- package/src/panels/comments/parts.tsx +171 -0
- package/src/panels/export/ExportDialog.tsx +919 -96
- package/src/panels/export/ExportScrim.tsx +57 -0
- package/src/panels/files/AssetsTab.tsx +656 -0
- package/src/panels/files/FilePanel.tsx +1466 -216
- package/src/panels/files/LayerMarks.tsx +40 -0
- package/src/panels/files/LeftColumn.tsx +37 -0
- package/src/panels/files/McpSection.tsx +690 -47
- package/src/panels/files/MissingAssetsNotice.tsx +60 -0
- package/src/panels/files/assetDrag.ts +79 -0
- package/src/panels/files/resourceParts.tsx +255 -0
- package/src/panels/fonts/FontPicker.tsx +762 -0
- package/src/panels/fonts/faceCache.ts +207 -0
- package/src/panels/fonts/fontPicker.css +271 -0
- package/src/panels/fonts/pickerModel.ts +265 -0
- package/src/panels/fonts/pickerRequest.ts +46 -0
- package/src/panels/header/AccountAvatar.tsx +76 -0
- package/src/panels/header/AgentChip.tsx +77 -0
- package/src/panels/header/AppMenu.tsx +213 -0
- package/src/panels/header/Header.tsx +564 -84
- package/src/panels/header/HistoryControls.tsx +31 -5
- package/src/panels/header/PresenceStack.tsx +329 -0
- package/src/panels/header/ProjectTitle.tsx +232 -0
- package/src/panels/header/ShareButton.tsx +59 -0
- package/src/panels/header/StatusBadges.tsx +358 -27
- package/src/panels/header/SyncDeletedDialog.tsx +88 -0
- package/src/panels/header/ZoomControls.tsx +46 -15
- package/src/panels/header/agentHandoff.ts +52 -0
- package/src/panels/header/leave.ts +26 -0
- package/src/panels/help/HelpSection.tsx +189 -163
- package/src/panels/insert/InsertDrawer.tsx +723 -0
- package/src/panels/insert/iconSet.ts +109 -0
- package/src/panels/inspector/ExposeDot.tsx +117 -0
- package/src/panels/inspector/FramingRows.tsx +314 -44
- package/src/panels/inspector/InspectorFooter.tsx +91 -0
- package/src/panels/inspector/InspectorHead.tsx +425 -0
- package/src/panels/inspector/InspectorPanel.tsx +408 -124
- package/src/panels/inspector/KeyframeDot.tsx +373 -0
- package/src/panels/inspector/KeyframeSection.tsx +257 -0
- package/src/panels/inspector/MarkerSection.tsx +55 -11
- package/src/panels/inspector/ParamRow.tsx +84 -53
- package/src/panels/inspector/RightColumn.tsx +152 -0
- package/src/panels/inspector/TimeSection.tsx +866 -0
- package/src/panels/inspector/animate/EaseControl.tsx +244 -0
- package/src/panels/inspector/animate/PresetsSection.tsx +135 -0
- package/src/panels/inspector/animate/ShotSection.tsx +562 -48
- package/src/panels/inspector/design/AlignRow.tsx +95 -31
- package/src/panels/inspector/design/AppearanceSection.tsx +118 -9
- package/src/panels/inspector/design/ClonerSection.tsx +323 -62
- package/src/panels/inspector/design/ComponentSection.tsx +50 -43
- package/src/panels/inspector/design/CornerSection.tsx +45 -14
- package/src/panels/inspector/design/DefinitionProps.tsx +315 -0
- package/src/panels/inspector/design/DefinitionSection.tsx +136 -0
- package/src/panels/inspector/design/DeviceSection.tsx +210 -0
- package/src/panels/inspector/design/FillSection.tsx +83 -51
- package/src/panels/inspector/design/FontField.tsx +196 -0
- package/src/panels/inspector/design/HtmlSection.tsx +23 -12
- package/src/panels/inspector/design/InstanceSection.tsx +373 -154
- package/src/panels/inspector/design/MaskSection.tsx +84 -0
- package/src/panels/inspector/design/MaterialSection.tsx +177 -0
- package/src/panels/inspector/design/MediaSection.tsx +273 -120
- package/src/panels/inspector/design/MeshSection.tsx +910 -82
- package/src/panels/inspector/design/PaintRows.tsx +550 -0
- package/src/panels/inspector/design/PlateStyleSection.tsx +177 -0
- package/src/panels/inspector/design/ShadowSection.tsx +221 -48
- package/src/panels/inspector/design/SplineFollowSection.tsx +235 -0
- package/src/panels/inspector/design/StrokeSection.tsx +228 -43
- package/src/panels/inspector/design/TemplateFieldSection.tsx +57 -0
- package/src/panels/inspector/design/TransformSection.tsx +244 -50
- package/src/panels/inspector/design/TypographySection.tsx +679 -110
- package/src/panels/inspector/layout.ts +295 -0
- package/src/panels/inspector/propValue.ts +199 -0
- package/src/panels/inspector/scene/CameraSection.tsx +232 -22
- package/src/panels/inspector/scene/EffectsSection.tsx +722 -71
- package/src/panels/inspector/scene/MakeItYoursSection.tsx +180 -0
- package/src/panels/inspector/scene/SceneDocSection.tsx +191 -0
- package/src/panels/inspector/scene/SceneSection.tsx +219 -44
- package/src/panels/inspector/scene/TransitionSection.tsx +523 -72
- package/src/panels/inspector/storyboard/StoryboardReferenceSection.tsx +593 -0
- package/src/panels/inspector/storyboard/VideoStill.tsx +120 -0
- package/src/panels/inspector/timeModel.ts +190 -0
- package/src/panels/inspector/useDocWrite.ts +438 -146
- package/src/panels/library/LibraryBrowser.tsx +435 -0
- package/src/panels/library/LibraryGrid.tsx +190 -0
- package/src/panels/library/LibraryPreviewPanel.tsx +349 -0
- package/src/panels/library/LibraryRail.tsx +84 -0
- package/src/panels/library/LibrarySoundPanel.tsx +293 -0
- package/src/panels/library/SoundHistory.tsx +245 -0
- package/src/panels/library/StockSounds.tsx +390 -0
- package/src/panels/library/libraryModel.ts +147 -0
- package/src/panels/library/stockSearch.ts +77 -0
- package/src/panels/maskMarks.tsx +117 -0
- package/src/panels/material/MaterialCommentNode.tsx +54 -0
- package/src/panels/material/MaterialGraphCanvas.tsx +861 -0
- package/src/panels/material/MaterialGraphMenu.tsx +45 -0
- package/src/panels/material/MaterialGroupNode.tsx +56 -0
- package/src/panels/material/MaterialLibrary.tsx +253 -0
- package/src/panels/material/MaterialNode.tsx +453 -0
- package/src/panels/material/MaterialNodePalette.tsx +349 -0
- package/src/panels/material/MaterialParameterControls.tsx +525 -0
- package/src/panels/material/MaterialRerouteNode.tsx +42 -0
- package/src/panels/material/MaterialWorkspace.tsx +501 -0
- package/src/panels/material/NodePreview.tsx +70 -0
- package/src/panels/material/flowModel.ts +441 -0
- package/src/panels/material/parameterValues.ts +231 -0
- package/src/panels/material/previewScheduler.ts +235 -0
- package/src/panels/material/reactFlow.css +6 -0
- package/src/panels/material/socketGlyph.ts +85 -0
- package/src/panels/material/viewportMemory.ts +58 -0
- package/src/panels/preferences/PreferencesDialog.tsx +215 -0
- package/src/panels/share/ShareComponentDialog.tsx +247 -0
- package/src/panels/stage/StageMenu.tsx +35 -5
- package/src/panels/stage/StagePanel.tsx +338 -23
- package/src/panels/stage/cellSlots.tsx +70 -0
- package/src/panels/storyboard/BoardCanvas.tsx +739 -0
- package/src/panels/storyboard/BoardCursors.tsx +158 -0
- package/src/panels/storyboard/BoardDropDialog.tsx +161 -0
- package/src/panels/storyboard/BoardPlan.tsx +42 -0
- package/src/panels/storyboard/ComponentSheet.tsx +187 -0
- package/src/panels/storyboard/ComponentStage.tsx +235 -0
- package/src/panels/storyboard/MiniSketch.tsx +173 -0
- package/src/panels/storyboard/PartPicker.tsx +64 -0
- package/src/panels/storyboard/PlanPanel.tsx +617 -0
- package/src/panels/storyboard/ReferencePreview.tsx +217 -0
- package/src/panels/storyboard/ShotBrief.tsx +360 -0
- package/src/panels/storyboard/ShotCard.tsx +251 -0
- package/src/panels/storyboard/StagePreview.tsx +348 -0
- package/src/panels/storyboard/StillThumbs.tsx +162 -0
- package/src/panels/storyboard/StoryboardView.tsx +79 -0
- package/src/panels/storyboard/board.css +1065 -0
- package/src/panels/storyboard/board.ts +12 -0
- package/src/panels/storyboard/boardClipboard.ts +111 -0
- package/src/panels/storyboard/boardOrder.ts +68 -0
- package/src/panels/storyboard/boardRows.tsx +425 -0
- package/src/panels/storyboard/liveCap.ts +90 -0
- package/src/panels/storyboard/plan.css +295 -0
- package/src/panels/storyboard/posterCache.ts +133 -0
- package/src/panels/storyboard/shotboard/ComponentPicker.tsx +373 -0
- package/src/panels/storyboard/shotboard/ImagePicker.tsx +145 -0
- package/src/panels/storyboard/shotboard/ShotBoard.tsx +292 -0
- package/src/panels/storyboard/shotboard/SketchCanvas.tsx +443 -0
- package/src/panels/storyboard/shotboard/SketchInspector.tsx +471 -0
- package/src/panels/storyboard/shotboard/SketchItem.tsx +240 -0
- package/src/panels/storyboard/shotboard/SketchLayers.tsx +130 -0
- package/src/panels/storyboard/shotboard/SketchPlay.tsx +108 -0
- package/src/panels/storyboard/shotboard/SketchStrip.tsx +178 -0
- package/src/panels/storyboard/shotboard/SketchToolFooter.tsx +99 -0
- package/src/panels/storyboard/shotboard/sketch.css +1392 -0
- package/src/panels/storyboard/shotboard/sketchModel.ts +219 -0
- package/src/panels/storyboard/storyboardDrop.ts +164 -0
- package/src/panels/studio/ComponentLibraryRail.tsx +346 -0
- package/src/panels/studio/ComponentSidePanel.tsx +355 -0
- package/src/panels/studio/ComponentStudio.tsx +243 -0
- package/src/panels/studio/ComponentsHome.tsx +318 -0
- package/src/panels/studio/ComponentsPreview.tsx +179 -0
- package/src/panels/studio/EveryUse.tsx +244 -0
- package/src/panels/studio/ThisUsePanel.tsx +679 -0
- package/src/panels/studio/componentParts.tsx +341 -0
- package/src/panels/studio/components.ts +6 -0
- package/src/panels/studio/newCodeComponent.ts +66 -0
- package/src/panels/timeline/AudioFxButton.tsx +290 -0
- package/src/panels/timeline/AudioLane.tsx +674 -85
- package/src/panels/timeline/BlockRow.tsx +154 -85
- package/src/panels/timeline/ChannelRow.tsx +378 -129
- package/src/panels/timeline/CurvePane.tsx +508 -0
- package/src/panels/timeline/Filmstrip.tsx +361 -0
- package/src/panels/timeline/GenerateDrawer.tsx +407 -0
- package/src/panels/timeline/KeyStretch.tsx +115 -0
- package/src/panels/timeline/LifespanRow.tsx +730 -47
- package/src/panels/timeline/MarkerLane.tsx +46 -8
- package/src/panels/timeline/PlayButton.tsx +91 -0
- package/src/panels/timeline/PropertyPicker.tsx +254 -0
- package/src/panels/timeline/ShotRow.tsx +400 -0
- package/src/panels/timeline/SoundMode.tsx +1406 -0
- package/src/panels/timeline/TimelineDock.tsx +2338 -272
- package/src/panels/timeline/TransportVolume.tsx +163 -0
- package/src/panels/timeline/beatRuler.ts +74 -0
- package/src/panels/timeline/curveModel.ts +500 -0
- package/src/panels/timeline/duckUnderVoice.ts +68 -0
- package/src/panels/timeline/keyframeMenu.ts +138 -0
- package/src/panels/timeline/labelWidth.ts +49 -0
- package/src/panels/timeline/marquee.ts +155 -0
- package/src/panels/timeline/model.ts +1860 -199
- package/src/panels/timeline/snap.ts +125 -43
- package/src/panels/timeline/staggerPreview.tsx +92 -0
- package/src/panels/timeline/takeMeasure.ts +72 -0
- package/src/panels/timeline/useLive.ts +48 -0
- package/src/panels/timeline/viewport.ts +234 -0
- package/src/panels/toolbar/BackChip.tsx +116 -0
- package/src/panels/toolbar/CameraViewBar.tsx +118 -49
- package/src/panels/toolbar/CanvasBar.tsx +117 -0
- package/src/panels/toolbar/InsertButton.tsx +38 -0
- package/src/panels/toolbar/IsolationTrail.tsx +156 -0
- package/src/panels/toolbar/PanelToggles.tsx +86 -0
- package/src/panels/toolbar/ShadingBar.tsx +119 -26
- package/src/panels/toolbar/ToolDockBar.tsx +329 -80
- package/src/panels/toolbar/ToolFooter.tsx +102 -0
- package/src/panels/toolbar/ViewModeBar.tsx +247 -38
- package/src/panels/toolbar/WorkPlaneBar.tsx +94 -0
- package/src/panels/toolbar/useAddRows.tsx +326 -0
- package/src/panels/toolbar/useDismiss.ts +122 -0
- package/src/panels/versions/VersionHistoryPanel.tsx +274 -0
- package/src/panels/versions/versionModel.ts +103 -0
- package/src/panels/virtualWindow.ts +271 -0
- package/src/shotTokens.css +151 -60
- package/src/stage/FrustumGizmo.tsx +504 -84
- package/src/stage/GridPlane.tsx +225 -16
- package/src/stage/NodePreviews.tsx +628 -0
- package/src/stage/PerfHud.tsx +437 -47
- package/src/stage/SplitRenderer.tsx +816 -169
- package/src/stage/StageApp.tsx +4274 -486
- package/src/stage/StageRootBoundary.tsx +114 -0
- package/src/stage/StageTools.tsx +651 -151
- package/src/stage/TransformGizmo.tsx +696 -0
- package/src/stage/adaptivePresentation.ts +145 -0
- package/src/stage/bridgeClient.ts +2522 -41
- package/src/stage/exportWorker.ts +9 -0
- package/src/stage/feed.ts +305 -14
- package/src/stage/fontPreview.ts +176 -0
- package/src/stage/frustumGeometry.ts +319 -1
- package/src/stage/furnitureTokens.ts +33 -0
- package/src/stage/gizmoMath.ts +508 -16
- package/src/stage/gpuTimer.ts +276 -0
- package/src/stage/instanceModules.ts +194 -33
- package/src/stage/interactions/move.ts +24 -5
- package/src/stage/isolation.ts +291 -33
- package/src/stage/jsSelfProfiler.ts +325 -0
- package/src/stage/main.tsx +116 -16
- package/src/stage/modalState.ts +222 -23
- package/src/stage/moduleEpoch.ts +60 -0
- package/src/stage/motionPathStage.ts +279 -0
- package/src/stage/motionPreview.ts +74 -0
- package/src/stage/overlays/Overlays.tsx +1112 -159
- package/src/stage/overlays/Rulers.tsx +495 -0
- package/src/stage/panes.ts +159 -10
- package/src/stage/project.ts +68 -3
- package/src/stage/renderScaleController.ts +730 -0
- package/src/stage/rulers.ts +129 -0
- package/src/stage/sceneExtent.ts +75 -0
- package/src/stage/shading.ts +20 -0
- package/src/stage/splineStage.ts +632 -0
- package/src/stage/stagePerformanceTelemetry.ts +717 -0
- package/src/stage/stageTheme.ts +36 -0
- package/src/stage/stageWarmup.ts +11 -0
- package/src/stage/textAutoSize.ts +124 -0
- package/src/stage/tier1Export.ts +641 -0
- package/src/stage/tokenColor.ts +14 -9
- package/src/stage/view.ts +56 -9
- package/src/stage/workingView.ts +277 -33
- package/src/state/accountPrefs.ts +261 -0
- package/src/state/agentActions.ts +173 -15
- package/src/state/agentActivity.ts +198 -0
- package/src/state/agentQuestion.ts +239 -0
- package/src/state/bootOpen.ts +42 -0
- package/src/state/cameraVerbs.ts +139 -0
- package/src/state/clientId.ts +6 -1
- package/src/state/comments.ts +1099 -0
- package/src/state/context.tsx +19 -1
- package/src/state/editorPrefs.ts +220 -0
- package/src/state/errorReports.ts +121 -0
- package/src/state/fieldWrite.ts +161 -0
- package/src/state/fontRecents.ts +70 -0
- package/src/state/fonts.ts +656 -0
- package/src/state/graphClipboard.ts +414 -0
- package/src/state/imageThumbs.ts +216 -0
- package/src/state/insert.ts +444 -67
- package/src/state/isolationTrail.ts +92 -0
- package/src/state/keyMoves.ts +134 -0
- package/src/state/keyframeClipboard.ts +177 -0
- package/src/state/keymap.ts +1153 -117
- package/src/state/layoutPrefs.ts +272 -0
- package/src/state/layouts.ts +205 -0
- package/src/state/measureMedia.ts +167 -0
- package/src/state/menu.ts +2341 -28
- package/src/state/motionStamp.ts +7 -0
- package/src/state/panelSize.ts +375 -5
- package/src/state/pendingChanges.ts +119 -0
- package/src/state/playHold.ts +78 -0
- package/src/state/playbackPreparation.ts +562 -0
- package/src/state/posterCapture.ts +242 -0
- package/src/state/presence.ts +254 -0
- package/src/state/projectComponents.ts +160 -0
- package/src/state/renderEvents.ts +298 -18
- package/src/state/runtimeErrors.ts +46 -0
- package/src/state/selection.ts +12 -0
- package/src/state/shortcuts.ts +1606 -0
- package/src/state/sketchGuide.ts +51 -0
- package/src/state/splineRefs.ts +87 -0
- package/src/state/stageHealth.ts +259 -0
- package/src/state/stageWatchdog.ts +47 -0
- package/src/state/stillStage.ts +330 -0
- package/src/state/stillThumbs.ts +474 -0
- package/src/state/store.ts +23591 -2982
- package/src/state/storyboardModel.ts +528 -0
- package/src/state/sync.ts +1257 -0
- package/src/state/syncCache.ts +159 -0
- package/src/state/triangles.ts +13 -0
- package/src/state/types.ts +1698 -55
- package/src/state/unsavedGuard.ts +49 -0
- package/src/state/viewMode.ts +200 -0
- package/src/state/webmcp.ts +1128 -0
- package/src/state/workspace.ts +1147 -0
- package/src/styles/assets-tab.css +304 -0
- package/src/styles/canvas.css +545 -0
- package/src/styles/comments.css +1435 -0
- package/src/styles/controls.css +162 -0
- package/src/styles/dialogs.css +390 -0
- package/src/styles/insert-drawer.css +586 -0
- package/src/styles/inspector-board.css +207 -0
- package/src/styles/inspector-object.css +486 -0
- package/src/styles/inspector-shot.css +252 -0
- package/src/styles/inspector.css +360 -0
- package/src/styles/left-column.css +1628 -0
- package/src/styles/library-preview.css +575 -0
- package/src/styles/library.css +512 -0
- package/src/styles/modes/code.css +569 -0
- package/src/styles/modes/component.css +1561 -0
- package/src/styles/modes/material.css +1201 -0
- package/src/styles/modes/storyboard.css +518 -0
- package/src/styles/share-component.css +49 -0
- package/src/styles/shell.css +653 -0
- package/src/styles/shot-brief.css +360 -0
- package/src/styles/states.css +76 -0
- package/src/styles/sync.css +380 -0
- package/src/styles/timeline-graph.css +384 -0
- package/src/styles/timeline-meters.css +89 -0
- package/src/styles/timeline-rows.css +1959 -0
- package/src/styles/timeline-sound.css +1003 -0
- package/src/styles/timeline.css +754 -0
- package/src/styles/tool-footer.css +525 -0
- package/src/styles/topbar.css +886 -0
- package/src/styles/versions.css +262 -0
- package/src/styles.css +72 -2921
- package/src/tools.ts +108 -23
- package/dist/assets/index-B7notge7.css +0 -1
- package/dist/assets/index-BBE6Ta9L.js +0 -52
- package/src/panels/files/icons.tsx +0 -118
- package/src/panels/header/DocSwitcher.tsx +0 -85
- package/src/panels/header/TransportBar.tsx +0 -86
- package/src/panels/inspector/animate/BlockTiming.tsx +0 -341
- package/src/panels/inspector/animate/DuringBlocks.tsx +0 -85
- package/src/panels/inspector/animate/InOutPresets.tsx +0 -57
- package/src/panels/inspector/animate/ResolvedChannels.tsx +0 -150
- package/src/panels/inspector/animate/useBlocks.ts +0 -43
- package/src/panels/material/MaterialPicker.tsx +0 -172
- package/src/panels/timeline/SceneStrip.tsx +0 -145
- package/src/panels/toolbar/AddMenu.tsx +0 -230
- package/src/stage/MoveGizmo.tsx +0 -411
package/src/stage/GridPlane.tsx
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
// The working pane's
|
|
1
|
+
// The working pane's ambient floor and active spline construction plane.
|
|
2
2
|
//
|
|
3
3
|
// Editor-only by exactly the three constructions FrustumGizmo's header states —
|
|
4
4
|
// `layers.set(EDITOR_LAYER)`, SplitRenderer's post pass pinned to bit 0, and no
|
|
5
5
|
// `SHOT_LAYER_KEY` userData — so it cannot reach the graded image, the camera
|
|
6
|
-
// pane or a pick. It reads
|
|
6
|
+
// pane or a pick. It reads editor-only resolved geometry and writes nothing.
|
|
7
7
|
//
|
|
8
8
|
// ── WHY IT SITS UNDER THE FRAME AND NOT THROUGH THE ORIGIN ──────────────
|
|
9
9
|
//
|
|
@@ -53,15 +53,26 @@
|
|
|
53
53
|
// so they cross the gridlines rather than fight them, and still a million
|
|
54
54
|
// below every layer, so the artwork covers both.
|
|
55
55
|
import { useEffect, useMemo } from "react";
|
|
56
|
-
import { BufferAttribute, BufferGeometry, LineSegments } from "three";
|
|
56
|
+
import { BufferAttribute, BufferGeometry, LineSegments, Matrix4, Vector3 } from "three";
|
|
57
57
|
import { LineBasicNodeMaterial } from "three/webgpu";
|
|
58
|
-
import {
|
|
58
|
+
import {
|
|
59
|
+
cameraPosition,
|
|
60
|
+
color,
|
|
61
|
+
length,
|
|
62
|
+
mix,
|
|
63
|
+
positionLocal,
|
|
64
|
+
positionWorld,
|
|
65
|
+
smoothstep,
|
|
66
|
+
uniform,
|
|
67
|
+
} from "three/tsl";
|
|
59
68
|
import { EDITOR_LAYER } from "./StageTools.js";
|
|
60
|
-
import { CLAY_BACKDROP } from "./SplitRenderer.js";
|
|
61
69
|
import { WORKING_FOV_DEG } from "./workingView.js";
|
|
62
70
|
import { GRID_CELLS, axisOrigin, axisPositions, gridFade, gridPositions, gridStep } from "./gizmoMath.js";
|
|
63
71
|
import { tokenColor } from "./tokenColor.js";
|
|
72
|
+
import type { StageTheme } from "./stageTheme.js";
|
|
64
73
|
import type { FrameSize } from "./view.js";
|
|
74
|
+
import type { ResolvedWorkPlane } from "../bridgeTypes.js";
|
|
75
|
+
import { workPlaneGridCenter } from "./splineStage.js";
|
|
65
76
|
|
|
66
77
|
/** Behind everything. The mirror of the frustum's +1_000_000, for the reason
|
|
67
78
|
* its own comment gives: with depth testing off, order is the only answer to
|
|
@@ -72,6 +83,12 @@ const GRID_RENDER_ORDER = -1_000_000;
|
|
|
72
83
|
* the grid lines rather than fighting them, and any layer covers both. */
|
|
73
84
|
const AXIS_RENDER_ORDER = GRID_RENDER_ORDER + 1;
|
|
74
85
|
|
|
86
|
+
/** The selected construction plane sits above the ambient floor and axes, but
|
|
87
|
+
* remains far below authored geometry. */
|
|
88
|
+
const WORK_PLANE_RENDER_ORDER = AXIS_RENDER_ORDER + 1;
|
|
89
|
+
const WORK_PLANE_AXIS_RENDER_ORDER = WORK_PLANE_RENDER_ORDER + 1;
|
|
90
|
+
const WORK_PLANE_CELLS = 24;
|
|
91
|
+
|
|
75
92
|
/**
|
|
76
93
|
* Half-length of each world axis.
|
|
77
94
|
*
|
|
@@ -83,7 +100,7 @@ const AXIS_RENDER_ORDER = GRID_RENDER_ORDER + 1;
|
|
|
83
100
|
*/
|
|
84
101
|
const AXIS_EXTENT = 100_000;
|
|
85
102
|
|
|
86
|
-
const GRID_FALLBACK = "#
|
|
103
|
+
const GRID_FALLBACK = "#2a2a2a";
|
|
87
104
|
|
|
88
105
|
/** World axis index -> token. The one mapping (`world = (x, -y, -z)`) is a sign
|
|
89
106
|
* flip, and a line through the origin is invariant under it, so the world axes
|
|
@@ -94,17 +111,82 @@ const AXES = [
|
|
|
94
111
|
{ axis: 2 as const, token: "--axis-z", fallback: "#3b82f6" },
|
|
95
112
|
];
|
|
96
113
|
|
|
114
|
+
const AXIS_PALETTE = {
|
|
115
|
+
x: { token: "--axis-x", fallback: "#ef4444" },
|
|
116
|
+
y: { token: "--axis-y", fallback: "#22c55e" },
|
|
117
|
+
z: { token: "--axis-z", fallback: "#3b82f6" },
|
|
118
|
+
} as const;
|
|
119
|
+
|
|
120
|
+
function workPlanePalette(
|
|
121
|
+
plane: ResolvedWorkPlane,
|
|
122
|
+
): readonly [keyof typeof AXIS_PALETTE, keyof typeof AXIS_PALETTE, keyof typeof AXIS_PALETTE] {
|
|
123
|
+
switch (plane.target.kind) {
|
|
124
|
+
case "xz":
|
|
125
|
+
return ["x", "z", "y"];
|
|
126
|
+
case "yz":
|
|
127
|
+
return ["y", "z", "x"];
|
|
128
|
+
case "xy":
|
|
129
|
+
return ["x", "y", "z"];
|
|
130
|
+
// View and Selection expose local construction U/V/N. Use the established
|
|
131
|
+
// local-axis convention rather than inventing a second palette.
|
|
132
|
+
case "view":
|
|
133
|
+
case "selection":
|
|
134
|
+
return ["x", "y", "z"];
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
function localPlaneGridPositions(step: number, cells: number): number[] {
|
|
139
|
+
const half = step * cells;
|
|
140
|
+
const out: number[] = [];
|
|
141
|
+
for (let index = -cells; index <= cells; index += 1) {
|
|
142
|
+
const at = index * step;
|
|
143
|
+
out.push(at, -half, 0, at, half, 0);
|
|
144
|
+
out.push(-half, at, 0, half, at, 0);
|
|
145
|
+
}
|
|
146
|
+
return out;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
function localPlaneAxisPositions(axis: 0 | 1 | 2, extent: number): number[] {
|
|
150
|
+
const a = [0, 0, 0];
|
|
151
|
+
const b = [0, 0, 0];
|
|
152
|
+
a[axis] = -extent;
|
|
153
|
+
b[axis] = extent;
|
|
154
|
+
return [...a, ...b];
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
function designVector(value: readonly [number, number, number]): Vector3 {
|
|
158
|
+
return new Vector3(value[0], -value[1], -value[2]);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
function designPoint(value: readonly [number, number, number]): Vector3 {
|
|
162
|
+
return designVector(value);
|
|
163
|
+
}
|
|
164
|
+
|
|
97
165
|
export function GridPlane({
|
|
166
|
+
theme,
|
|
98
167
|
frame,
|
|
99
168
|
target,
|
|
100
169
|
distance,
|
|
170
|
+
ortho,
|
|
171
|
+
showGround,
|
|
172
|
+
workPlane,
|
|
101
173
|
}: {
|
|
174
|
+
/** Resolved editor theme. It rebuilds only the token-backed GL materials. */
|
|
175
|
+
theme: StageTheme;
|
|
102
176
|
frame: FrameSize;
|
|
103
177
|
target: readonly [number, number, number];
|
|
104
178
|
/** The working camera's eye-to-target distance. Drives the spacing through
|
|
105
179
|
* `gridStep`'s ladder, so a dolly changes the geometry in jumps, and the
|
|
106
180
|
* fade band continuously, which is a uniform write and no rebuild. */
|
|
107
181
|
distance: number;
|
|
182
|
+
/** The working pane is on its ORTHOGRAPHIC rig (numpad-5). Changes what the
|
|
183
|
+
* fade below is measured FROM, and nothing else. */
|
|
184
|
+
ortho: boolean;
|
|
185
|
+
/** Ambient floor/axes. Definitions and isolation can suppress these while
|
|
186
|
+
* retaining the explicitly chosen spline construction plane. */
|
|
187
|
+
showGround: boolean;
|
|
188
|
+
/** Frozen draft plane, or the live plane before the first anchor. */
|
|
189
|
+
workPlane: ResolvedWorkPlane | null;
|
|
108
190
|
}) {
|
|
109
191
|
const step = gridStep(frame.height, distance, WORKING_FOV_DEG);
|
|
110
192
|
const height = -frame.height / 2;
|
|
@@ -135,10 +217,35 @@ export function GridPlane({
|
|
|
135
217
|
// disagreement.
|
|
136
218
|
const fadeStart = uniform(0);
|
|
137
219
|
const fadeEnd = uniform(1);
|
|
220
|
+
// ── AND WHY ORTHO MEASURES IT FROM SOMEWHERE ELSE ─────────────────────
|
|
221
|
+
//
|
|
222
|
+
// From the EYE is right for the perspective rig: the fade is standing in
|
|
223
|
+
// for a horizon, and a horizon is where distance from the viewer runs out.
|
|
224
|
+
//
|
|
225
|
+
// An orthographic view HAS no such point. Parallel edges stay parallel and
|
|
226
|
+
// nothing converges, so there is no horizon to stand in for — and the eye
|
|
227
|
+
// is not even a place: `StageTools` pushes the ortho camera back by
|
|
228
|
+
// `max(distance * 8, 10_000)` so every hit test starts in front of a
|
|
229
|
+
// positive near plane. That push-back is many times `fadeEnd`, so measured
|
|
230
|
+
// from THAT point every vertex of the floor is past the far end of the band
|
|
231
|
+
// and the whole grid resolves to exactly the backdrop colour. The floor
|
|
232
|
+
// vanished in ortho while the axes, which carry a flat colour, stayed —
|
|
233
|
+
// which is what the bug looked like from the outside.
|
|
234
|
+
//
|
|
235
|
+
// So ortho fades RADIALLY from the grid's own centre, in the floor plane.
|
|
236
|
+
// Object space is centred on the snapped target (see the follow effect), so
|
|
237
|
+
// `positionLocal.xz` IS that radius with no uniform to keep in step. The
|
|
238
|
+
// band needs no adjusting either: the ortho rig's half-height is
|
|
239
|
+
// `distance * tan(fov/2)`, so `gridSpan` is exactly its visible height and
|
|
240
|
+
// "1.5 to 6 spans" means the same thing in both projections.
|
|
138
241
|
material.colorNode = mix(
|
|
139
242
|
color(tokenColor("--grid", GRID_FALLBACK)),
|
|
140
|
-
color(
|
|
141
|
-
smoothstep(
|
|
243
|
+
color(tokenColor("--working-bg", "#141414")),
|
|
244
|
+
smoothstep(
|
|
245
|
+
fadeStart,
|
|
246
|
+
fadeEnd,
|
|
247
|
+
ortho ? length(positionLocal.xz) : length(positionWorld.sub(cameraPosition)),
|
|
248
|
+
),
|
|
142
249
|
);
|
|
143
250
|
material.depthTest = false;
|
|
144
251
|
material.depthWrite = false;
|
|
@@ -160,10 +267,15 @@ export function GridPlane({
|
|
|
160
267
|
// edit) or when the dolly crosses a ladder rung — never within a rung, so a
|
|
161
268
|
// continuous dolly does no geometry work. The buffer stays static and the
|
|
162
269
|
// OBJECT moves; see the follow effect below.
|
|
163
|
-
|
|
270
|
+
//
|
|
271
|
+
// `ortho` is in here because it picks a different NODE, and a node graph is
|
|
272
|
+
// fixed once the material is built. It is a numpad press, not a gesture, so
|
|
273
|
+
// rebuilding on it costs nothing a dolly would have to pay.
|
|
274
|
+
}, [step, height, ortho, theme]);
|
|
164
275
|
|
|
165
|
-
// The three world axes.
|
|
166
|
-
// the grid's spacing, and their extent is already
|
|
276
|
+
// The three world axes. Rebuilt only when appearance changes; their geometry
|
|
277
|
+
// has nothing to do with the grid's spacing, and their extent is already
|
|
278
|
+
// past every legal view.
|
|
167
279
|
//
|
|
168
280
|
// Three objects with three materials rather than one buffer with vertex
|
|
169
281
|
// colours: `MoveGizmo` states the same choice for the same reason, that a
|
|
@@ -193,9 +305,65 @@ export function GridPlane({
|
|
|
193
305
|
lines.matrixAutoUpdate = false;
|
|
194
306
|
return { axis, lines, geometry, material };
|
|
195
307
|
}),
|
|
196
|
-
[],
|
|
308
|
+
[theme],
|
|
197
309
|
);
|
|
198
310
|
|
|
311
|
+
// ── THE ACTIVE CONSTRUCTION PLANE ──────────────────────────────────────
|
|
312
|
+
//
|
|
313
|
+
// Unlike the ambient floor, this grid is the plane pointer rays intersect.
|
|
314
|
+
// Its basis and origin therefore come from the exact ResolvedWorkPlane the
|
|
315
|
+
// draft owns. Geometry is local XY and static within a spacing rung; orbit,
|
|
316
|
+
// selection motion and panning update one matrix instead of rebuilding a
|
|
317
|
+
// buffer on every frame.
|
|
318
|
+
const construction = useMemo(() => {
|
|
319
|
+
if (workPlane === null) return null;
|
|
320
|
+
const geometry = new BufferGeometry();
|
|
321
|
+
geometry.setAttribute(
|
|
322
|
+
"position",
|
|
323
|
+
new BufferAttribute(new Float32Array(localPlaneGridPositions(step, WORK_PLANE_CELLS)), 3),
|
|
324
|
+
);
|
|
325
|
+
const material = new LineBasicNodeMaterial();
|
|
326
|
+
material.color.copy(tokenColor("--grid", GRID_FALLBACK));
|
|
327
|
+
material.depthTest = false;
|
|
328
|
+
material.depthWrite = false;
|
|
329
|
+
material.toneMapped = false;
|
|
330
|
+
material.allowOverride = false;
|
|
331
|
+
const lines = new LineSegments(geometry, material);
|
|
332
|
+
lines.layers.set(EDITOR_LAYER);
|
|
333
|
+
lines.renderOrder = WORK_PLANE_RENDER_ORDER;
|
|
334
|
+
lines.frustumCulled = false;
|
|
335
|
+
lines.matrixAutoUpdate = false;
|
|
336
|
+
|
|
337
|
+
const extent = step * WORK_PLANE_CELLS;
|
|
338
|
+
const normalExtent = Math.max(step * 0.35, 1);
|
|
339
|
+
const palette = workPlanePalette(workPlane);
|
|
340
|
+
const axes = palette.map((axisName, index) => {
|
|
341
|
+
const axis = index as 0 | 1 | 2;
|
|
342
|
+
const axisGeometry = new BufferGeometry();
|
|
343
|
+
axisGeometry.setAttribute(
|
|
344
|
+
"position",
|
|
345
|
+
new BufferAttribute(
|
|
346
|
+
new Float32Array(localPlaneAxisPositions(axis, axis === 2 ? normalExtent : extent)),
|
|
347
|
+
3,
|
|
348
|
+
),
|
|
349
|
+
);
|
|
350
|
+
const axisMaterial = new LineBasicNodeMaterial();
|
|
351
|
+
const colorSpec = AXIS_PALETTE[axisName];
|
|
352
|
+
axisMaterial.color.copy(tokenColor(colorSpec.token, colorSpec.fallback));
|
|
353
|
+
axisMaterial.depthTest = false;
|
|
354
|
+
axisMaterial.depthWrite = false;
|
|
355
|
+
axisMaterial.toneMapped = false;
|
|
356
|
+
axisMaterial.allowOverride = false;
|
|
357
|
+
const axisLines = new LineSegments(axisGeometry, axisMaterial);
|
|
358
|
+
axisLines.layers.set(EDITOR_LAYER);
|
|
359
|
+
axisLines.renderOrder = WORK_PLANE_AXIS_RENDER_ORDER;
|
|
360
|
+
axisLines.frustumCulled = false;
|
|
361
|
+
axisLines.matrixAutoUpdate = false;
|
|
362
|
+
return { lines: axisLines, geometry: axisGeometry, material: axisMaterial };
|
|
363
|
+
});
|
|
364
|
+
return { lines, geometry, material, axes };
|
|
365
|
+
}, [step, theme, workPlane?.target.kind, workPlane === null]);
|
|
366
|
+
|
|
199
367
|
// ── THE GRID FOLLOWS THE AUTHOR ─────────────────────────────────────────
|
|
200
368
|
//
|
|
201
369
|
// It was 24 cells nailed to the world origin, so panning far enough left it
|
|
@@ -245,6 +413,26 @@ export function GridPlane({
|
|
|
245
413
|
}
|
|
246
414
|
}, [axes, target, height]);
|
|
247
415
|
|
|
416
|
+
useEffect(() => {
|
|
417
|
+
if (construction === null || workPlane === null) return;
|
|
418
|
+
const focusDesign: [number, number, number] = [target[0], -target[1], -target[2]];
|
|
419
|
+
const center = workPlaneGridCenter(workPlane, focusDesign, step);
|
|
420
|
+
const basis = new Matrix4().makeBasis(
|
|
421
|
+
designVector(workPlane.xAxis).normalize(),
|
|
422
|
+
designVector(workPlane.yAxis).normalize(),
|
|
423
|
+
designVector(workPlane.normal).normalize(),
|
|
424
|
+
);
|
|
425
|
+
const gridMatrix = basis.clone().setPosition(designPoint(center));
|
|
426
|
+
construction.lines.matrix.copy(gridMatrix);
|
|
427
|
+
construction.lines.matrixWorldNeedsUpdate = true;
|
|
428
|
+
|
|
429
|
+
const axisMatrix = basis.setPosition(designPoint(workPlane.origin));
|
|
430
|
+
for (const axis of construction.axes) {
|
|
431
|
+
axis.lines.matrix.copy(axisMatrix);
|
|
432
|
+
axis.lines.matrixWorldNeedsUpdate = true;
|
|
433
|
+
}
|
|
434
|
+
}, [construction, step, target, workPlane]);
|
|
435
|
+
|
|
248
436
|
useEffect(
|
|
249
437
|
() => () => {
|
|
250
438
|
grid.geometry.dispose();
|
|
@@ -263,12 +451,33 @@ export function GridPlane({
|
|
|
263
451
|
[axes],
|
|
264
452
|
);
|
|
265
453
|
|
|
454
|
+
useEffect(
|
|
455
|
+
() => () => {
|
|
456
|
+
if (construction === null) return;
|
|
457
|
+
construction.geometry.dispose();
|
|
458
|
+
construction.material.dispose();
|
|
459
|
+
for (const axis of construction.axes) {
|
|
460
|
+
axis.geometry.dispose();
|
|
461
|
+
axis.material.dispose();
|
|
462
|
+
}
|
|
463
|
+
},
|
|
464
|
+
[construction],
|
|
465
|
+
);
|
|
466
|
+
|
|
266
467
|
return (
|
|
267
468
|
<>
|
|
268
|
-
<primitive object={grid.lines} />
|
|
269
|
-
{
|
|
270
|
-
<primitive key={a.axis} object={a.lines} />
|
|
271
|
-
|
|
469
|
+
{showGround ? <primitive object={grid.lines} /> : null}
|
|
470
|
+
{showGround
|
|
471
|
+
? axes.map((a) => <primitive key={a.axis} object={a.lines} />)
|
|
472
|
+
: null}
|
|
473
|
+
{construction === null ? null : (
|
|
474
|
+
<>
|
|
475
|
+
<primitive object={construction.lines} />
|
|
476
|
+
{construction.axes.map((axis, index) => (
|
|
477
|
+
<primitive key={`work-plane-axis-${index}`} object={axis.lines} />
|
|
478
|
+
))}
|
|
479
|
+
</>
|
|
480
|
+
)}
|
|
272
481
|
</>
|
|
273
482
|
);
|
|
274
483
|
}
|