@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/channels.ts
CHANGED
|
@@ -1,40 +1,25 @@
|
|
|
1
|
-
// The
|
|
2
|
-
// resolved-value formatter.
|
|
1
|
+
// The five transform paths a layer's channel row reads live, each with its
|
|
2
|
+
// label and its resolved-value formatter.
|
|
3
3
|
//
|
|
4
|
-
// This
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
// either place, which is how a delta model becomes folklore.
|
|
4
|
+
// This table IS `LayerState`, in the order resolve.ts writes it, and it is the
|
|
5
|
+
// chrome's ONE copy. The dock's channel rows read it: a tracked transform path
|
|
6
|
+
// lists first, in this order, with the value the stage draws beside its label.
|
|
7
|
+
// Every other tracked path is a row without a readout.
|
|
9
8
|
import { formatValue } from "@dailies-studio/ui";
|
|
10
|
-
import type {
|
|
11
|
-
|
|
12
|
-
/** The channel names, exactly as `LayerDelta` declares them. */
|
|
13
|
-
export type Channel = keyof Required<LayerDelta>;
|
|
9
|
+
import type { LayerState } from "@dailies-studio/shot/doc";
|
|
14
10
|
|
|
15
11
|
export interface ChannelSpec {
|
|
16
|
-
key: Channel;
|
|
17
12
|
label: string;
|
|
18
|
-
/** The
|
|
19
|
-
*
|
|
13
|
+
/** The value as the author sees it, from `resolveLayerAt`'s output, never a
|
|
14
|
+
* second fold. */
|
|
20
15
|
read(state: LayerState): string;
|
|
21
16
|
}
|
|
22
17
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
// Blur, reveal and stagger have no base at all: they exist only as block
|
|
32
|
-
// output, so the resolved value IS the fold.
|
|
33
|
-
{ key: "blurPx", label: "Blur", read: (s) => `${formatValue(s.blurPx, 0.1)} px` },
|
|
34
|
-
{ key: "reveal", label: "Reveal", read: (s) => `${formatValue(s.reveal * 100, 1)}%` },
|
|
35
|
-
{ key: "textPhase", label: "Stagger", read: (s) => `${formatValue(s.textPhase * 100, 1)}%` },
|
|
36
|
-
];
|
|
37
|
-
|
|
38
|
-
export const CHANNEL_BY_KEY: ReadonlyMap<Channel, ChannelSpec> = new Map(
|
|
39
|
-
CHANNELS.map((c) => [c.key, c]),
|
|
40
|
-
);
|
|
18
|
+
/** Keyed by track path. A `Map`, so the iteration order is the row order. */
|
|
19
|
+
export const TRANSFORM_CHANNELS: ReadonlyMap<string, ChannelSpec> = new Map<string, ChannelSpec>([
|
|
20
|
+
["transform.opacity", { label: "Opacity", read: (s) => formatValue(s.opacity, 0.01) }],
|
|
21
|
+
["transform.position", { label: "Position", read: (s) => s.position.map((v) => formatValue(v, 0.1)).join(", ") }],
|
|
22
|
+
["transform.size", { label: "Size", read: (s) => `${formatValue(s.size[0], 0.1)} × ${formatValue(s.size[1], 0.1)}` }],
|
|
23
|
+
["transform.tilt", { label: "Tilt", read: (s) => `${formatValue(s.tilt[0], 0.1)}°, ${formatValue(s.tilt[1], 0.1)}°` }],
|
|
24
|
+
["transform.rollDeg", { label: "Roll", read: (s) => `${formatValue(s.rollDeg, 0.1)}°` }],
|
|
25
|
+
]);
|
package/src/hostApi.ts
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
// The hosted editor's code host, as the chrome and the stage see it.
|
|
2
|
+
//
|
|
3
|
+
// Hosted, no Vite serves the project's modules. The boot script
|
|
4
|
+
// (packages/browser-host/src/boot.ts, served as /host/boot.js and stamped into
|
|
5
|
+
// /scene ahead of the chrome) compiles user code in a worker, publishes it to
|
|
6
|
+
// Cache Storage, and a Service Worker answers the stage's module requests from
|
|
7
|
+
// there. It installs `window.__dailiesHost` synchronously, before the chrome's
|
|
8
|
+
// own module runs. Locally there is no boot script, `__dailiesHost` is absent,
|
|
9
|
+
// and nothing here changes what the chrome does.
|
|
10
|
+
//
|
|
11
|
+
// Pure data and types, no value imports: the boot script bundles the two
|
|
12
|
+
// constants, and it must stay free of React and three.
|
|
13
|
+
import type { Doc3D, GlyphFaceRequest, MediaProbe, StageHealthReport, StageHealthRequest } from "@dailies-studio/shot/doc";
|
|
14
|
+
import type { StillCaptureOptions } from "./state/stillStage.js";
|
|
15
|
+
|
|
16
|
+
/** The BroadcastChannel a new module epoch travels on (stage/moduleEpoch.ts
|
|
17
|
+
* listens; the boot script posts). Not the bridge: the epoch is a
|
|
18
|
+
* same-origin fact about the served modules, not chrome-stage protocol. */
|
|
19
|
+
export const MODULE_EPOCH_CHANNEL = "dailies-module-epoch";
|
|
20
|
+
|
|
21
|
+
/** The epoch message shape's version. A message of any other version is
|
|
22
|
+
* ignored. */
|
|
23
|
+
export const MODULE_EPOCH_MESSAGE_VERSION = 1;
|
|
24
|
+
|
|
25
|
+
/** What the boot script posts on {@link MODULE_EPOCH_CHANNEL}: the stage
|
|
26
|
+
* imports its instance modules under `?v=<epoch>`. Epochs only grow. */
|
|
27
|
+
export interface ModuleEpochMessage {
|
|
28
|
+
readonly epoch: number;
|
|
29
|
+
readonly version: typeof MODULE_EPOCH_MESSAGE_VERSION;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/** One TypeScript diagnostic, as `POST /api/diagnostics` answers it (the
|
|
33
|
+
* extractor's FileDiagnostic; api.ts CodeDiagnostic is the same wire shape). */
|
|
34
|
+
export interface HostFileDiagnostic {
|
|
35
|
+
readonly category: "error" | "warning" | "suggestion" | "message";
|
|
36
|
+
readonly code: number;
|
|
37
|
+
readonly message: string;
|
|
38
|
+
readonly start: number;
|
|
39
|
+
readonly length: number;
|
|
40
|
+
readonly line: number;
|
|
41
|
+
readonly character: number;
|
|
42
|
+
readonly endLine: number;
|
|
43
|
+
readonly endCharacter: number;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/** Whether one contract key's default can be persisted into source. */
|
|
47
|
+
export type HostDefaultsKeyMeta = { readonly editable: true } | { readonly editable: false; readonly reason: string };
|
|
48
|
+
|
|
49
|
+
/** The edit a contract default makes, which the chrome writes through
|
|
50
|
+
* `PUT /api/files/:rel` with `baseHash`: what `POST
|
|
51
|
+
* /api/components/:id/defaults` does on the dev server, split at the write. */
|
|
52
|
+
export interface HostDefaultsEdit {
|
|
53
|
+
/** Project-relative path of the file the edit lands in. */
|
|
54
|
+
readonly file: string;
|
|
55
|
+
/** The sha256 of the text the edit was made over. */
|
|
56
|
+
readonly baseHash: string;
|
|
57
|
+
/** The file's text with the edit made. */
|
|
58
|
+
readonly content: string;
|
|
59
|
+
/** How many keys it splices; 0 writes nothing. */
|
|
60
|
+
readonly edits: number;
|
|
61
|
+
readonly results: Readonly<Record<string, { readonly status: "written" } | { readonly status: "refused"; readonly reason: string }>>;
|
|
62
|
+
/** The contract the edit was checked against. */
|
|
63
|
+
readonly contractHash: string;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/** A host call the dev server's route would refuse carries its status and
|
|
67
|
+
* body, so the chrome surfaces it as that route's error. */
|
|
68
|
+
export interface HostRefusalError extends Error {
|
|
69
|
+
readonly status?: number;
|
|
70
|
+
readonly body?: Readonly<Record<string, unknown>>;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export interface DailiesHost {
|
|
74
|
+
/** Settles once the stage may load: the Service Worker is active and the
|
|
75
|
+
* project's first compile is published. Rejects with the reason the host
|
|
76
|
+
* could not start; the chrome then loads the stage anyway, and each
|
|
77
|
+
* instance layer reports its own failure. The host keeps trying, and its
|
|
78
|
+
* first publish after that posts an epoch the stage re-imports under. */
|
|
79
|
+
readonly ready: Promise<void>;
|
|
80
|
+
/** The last published epoch, or null before the first publish. */
|
|
81
|
+
compileVersion(): ModuleEpochMessage | null;
|
|
82
|
+
/** After a sync (which compiles what changed): path -> why that module's
|
|
83
|
+
* current source does not build. A failing module keeps serving its last
|
|
84
|
+
* good build, so the stage alone never shows it. Optional: an older host
|
|
85
|
+
* has no such report. */
|
|
86
|
+
buildErrors?(): Promise<Readonly<Record<string, string>>>;
|
|
87
|
+
/** Calls `listener` after each new epoch; returns the unsubscribe. */
|
|
88
|
+
subscribe(listener: () => void): () => void;
|
|
89
|
+
/** The chrome calls this on every load of the stage iframe, before it
|
|
90
|
+
* connects the bridge. The host posts the current epoch again (the channel
|
|
91
|
+
* does not replay, and a fresh stage document has missed every earlier
|
|
92
|
+
* post) and checks that the Service Worker controls the stage document.
|
|
93
|
+
* False means the host is reloading the stage once to get it controlled:
|
|
94
|
+
* skip this load, the next one follows. */
|
|
95
|
+
stageLoaded(stage: Window): boolean;
|
|
96
|
+
/** `POST /api/diagnostics`, answered by the compile worker's extractor over
|
|
97
|
+
* the project it compiled, with `content` in place of the file's text when
|
|
98
|
+
* given (an unsaved buffer). Rejects with a HostRefusalError. */
|
|
99
|
+
diagnostics(path: string, content?: string): Promise<{ path: string; diagnostics: HostFileDiagnostic[] }>;
|
|
100
|
+
/** The edit `POST /api/components/:id/defaults` makes, computed after a
|
|
101
|
+
* sync so it is checked against the current contract and bytes. Rejects
|
|
102
|
+
* with a HostRefusalError where the route refuses (unknown id, builtin,
|
|
103
|
+
* bad body, contract drift). */
|
|
104
|
+
applyDefaults(
|
|
105
|
+
componentId: string,
|
|
106
|
+
body: { readonly contractHash: string; readonly values: Readonly<Record<string, unknown>> },
|
|
107
|
+
): Promise<HostDefaultsEdit>;
|
|
108
|
+
/** After a sync (which extracts what changed): the component's contract
|
|
109
|
+
* hash and which keys take a default, or null when the registry no longer
|
|
110
|
+
* holds it. */
|
|
111
|
+
componentDefaults(
|
|
112
|
+
componentId: string,
|
|
113
|
+
): Promise<{ readonly contractHash: string; readonly editableKeys: Readonly<Record<string, HostDefaultsKeyMeta>> } | null>;
|
|
114
|
+
/** Media the page itself canonicalises, measures and derives (plan B5). */
|
|
115
|
+
readonly media: DailiesHostMedia;
|
|
116
|
+
/** The client id the code host's change feed names (plan C5). The chrome
|
|
117
|
+
* takes it as its own (state/clientId.ts), so the tab an agent session is
|
|
118
|
+
* asked from is the tab whose code host answers the session's relayed
|
|
119
|
+
* browser tools. */
|
|
120
|
+
readonly clientId: string;
|
|
121
|
+
/** The chrome hands the host how it answers "what does your stage show,
|
|
122
|
+
* and is it broken" (state/stageHealth.ts), which the host's relayed
|
|
123
|
+
* `stage` call asks for an agent (browser-host relay.ts). */
|
|
124
|
+
provideStageHealth(answer: (request: StageHealthRequest) => Promise<StageHealthReport>): void;
|
|
125
|
+
/** One still of `doc` at master `frame`, drawn on the code host's own
|
|
126
|
+
* offscreen stage (state/stillStage.ts), the one agent stills are drawn
|
|
127
|
+
* on. It never calls `stageLoaded` and never touches the author's stage. */
|
|
128
|
+
captureStill(doc: Doc3D, frame: number, width: number, height: number, options?: StillCaptureOptions): Promise<Blob>;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* The hosted media host (browser-host media/host.ts).
|
|
133
|
+
*
|
|
134
|
+
* Locally the CLI's upload route transcodes audio with ffmpeg, measures video
|
|
135
|
+
* and derives every sidecar on disk. Hosted, the Worker stores bytes as they
|
|
136
|
+
* arrive and refuses audio that is not already the canonical WAV, so the page
|
|
137
|
+
* does that work in a media worker before and after the upload, and sends the
|
|
138
|
+
* sidecars to the Worker's derived lane.
|
|
139
|
+
*/
|
|
140
|
+
export interface DailiesHostMedia {
|
|
141
|
+
/** The file the hosted store accepts for this pick: audio decoded to the
|
|
142
|
+
* canonical 48 kHz stereo 16-bit WAV, named `<stem>.wav` (the CLI's own
|
|
143
|
+
* renaming); any other file unchanged. Rejects with the refusal, by name,
|
|
144
|
+
* for audio this browser cannot decode, that passes the asset ceiling, or
|
|
145
|
+
* that has more than two channels. */
|
|
146
|
+
prepareUpload(file: File): Promise<File>;
|
|
147
|
+
/** Call once the store accepted `file` as `stored`. A video's measurement
|
|
148
|
+
* (null for any other kind, or a container it cannot measure); the video's
|
|
149
|
+
* or the audio's sidecars are derived and sent in the background. */
|
|
150
|
+
uploaded(stored: string, file: File): Promise<MediaProbe | null>;
|
|
151
|
+
/** The open Project's stored asset paths, on open and after a save that
|
|
152
|
+
* registered new ones: every sidecar the derived lane lacks is derived and
|
|
153
|
+
* sent, in the background, once per page. */
|
|
154
|
+
backfill(paths: readonly string[]): void;
|
|
155
|
+
/** The open Project's glyph faces (`glyphFaceRequests`), on open and after
|
|
156
|
+
* every save, as the CLI bakes them after a save: each the derived lane
|
|
157
|
+
* lacks is baked and sent, in the background, once per page. */
|
|
158
|
+
faces(requests: readonly Pick<GlyphFaceRequest, "assetPath" | "weight">[]): void;
|
|
159
|
+
/** A stored recording's own sound as a canonical WAV file, `<stem>.audio.wav`
|
|
160
|
+
* as the CLI names it, to upload as an ordinary asset: hosted, it counts
|
|
161
|
+
* toward the Project's media quota (the plan's "Hosted vs local" row). */
|
|
162
|
+
extractSoundtrack(stored: string): Promise<File>;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
declare global {
|
|
166
|
+
interface Window {
|
|
167
|
+
__dailiesHost?: DailiesHost;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
/** The host, when this chrome runs hosted. */
|
|
172
|
+
export function dailiesHost(): DailiesHost | undefined {
|
|
173
|
+
return typeof window === "undefined" ? undefined : window.__dailiesHost;
|
|
174
|
+
}
|