feat(editor): add the studio panels - #24
Merged
Merged
Conversation
A scene filmstrip, a stage you select on by clicking, an inspector and a track timeline of what happens when — the arrangement every editing tool has converged on, and worth being unoriginal about. Every panel changes a lesson by dispatching an operation, so undo, history and audit work for edits nobody has written yet. The operation layer now acts on a workspace — the document *and* its locale bundles. Words live in bundles because structure and language are orthogonal (R4), which made text editing the one thing undo could not take back. With two histories, undo after "rename the heading, then reorder the scenes" walks back through them in an order that belongs to neither. Operations that only touch structure stay written against the document and are lifted by `documentOp`. The package now has two entry points: `/ops` is pure and pulls in no renderer, for a server applying edits headlessly. The default entry adds the panels. - clip model derived from the compiled timeline, packed into rows - palette built from the painter registry, so a kit's element is creatable - typing coalesces into one undo step - new ops: text.set/clear, narration.setScript/restore/remove, meta.setTitle, meta.setTheme, scene.setBeats, element.setFlow Found while testing the panels: the new-scene fallback named a template that does not exist in the built-in set, so adding a scene laid out nothing. It now takes whatever the deployment registered first. Signed-off-by: khachuongvn <khachuong.vn@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The editor, on the operation layer: a scene filmstrip, a stage you select on by clicking, an inspector, and a track timeline of what happens when.
Ported from the arrangement in Bingoo's own editor — scene-centric, so the timeline and preview show the scene being worked on in that scene's own time. A whole-lesson timeline sounds more useful and is not: twelve minutes compresses a four-second reveal into three pixels.
The operation layer now acts on a workspace
The document and its locale bundles. Words live in bundles because structure and language are orthogonal (R4) — which made text editing, the commonest edit there is, the one thing undo could not take back.
With two histories, undo after "rename the heading, then reorder the scenes" walks back through them in an order that belongs to neither. Operations that only touch structure are still written against the document alone and lifted by
documentOp, so they cannot alter a bundle by accident.The package gained a second entry point:
@bingoo.ai/explainer-editor/opsis pure and pulls in no renderer, for a server applying edits or a script running a migration.What is dynamic
fraction-baris creatable without a line changing here.Found while testing
The new-scene fallback named a template that is not in the built-in set, so adding a scene laid out nothing. It now takes whatever the deployment registered first. This is the class of bug the R1 rule exists to prevent, and it was written by hand into the very PR that enforces it.
Tests
332 across six packages, 63 in this one. The studio tests render the real component and drive it the way a person does — click an element on the stage, type, undo — because the operation layer previously had a full suite of passing tests while the editor showed nothing you could click.