Repository navigation
Conversation
Authors want to move a placed video, 3D model, lab (or anything else) to another page. edit.move takes it off one page and puts it on the other in a single edit, so it is one undo step and a patch save sends both pages. The object keeps its id (a host that tracks objects by id keeps tracking it); an id the target page already uses is refused, and freeIdOn gives the object a new one first. move.ts holds where it lands: placeAt for a drag, relocate (same place relative to the page, inside it) for Move to page. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…to page A drag that carries the selected object past its page's edge moves it onto the page under the pointer (above or below in the continuous view, the facing page in a spread); near the edge of the view the view scrolls, so mouse and finger reach pages not in view. The drag is shared by every page's surface and the pointer capture goes with the object. Dropped on another page it is kept wholly on that page. For far pages the sidebar has Move to page (a page picker with previous and next buttons, in English and Bengali), and Alt+Page Up / Page Down does the same from the keyboard. The selection follows the object, and author-mode pages no longer select text under a drag. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…uch input The e2e drags the 3D model onto the next page with the mouse (the view auto-scrolls), undoes and redoes, uses Move to page and Alt+Page Up/Down, moves a video, checks the saved .chalk and the patch save (two pages, no media), carries the model with a real finger on a phone, and reads the Bengali strings. Docs list the script and describe the feature. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ver to a twin id Codex review round 1: the selection was found again by id on the nearest page, so with the same id on two pages a move (or its undo) could select the other page's object, and after a move that renamed the id the undo lost the selection. The reader now records each move of this session (from, to) and follows the selection along them, from either end, until it finds the object; with no recorded path it is gone, as before. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…with a tool change Codex review round 2: after the selection followed an object, the stale selection stayed in state, so a later undo bringing another object with the same id back to that place selected the wrong one; the followed place now replaces it. And a drag cut short by switching tools (the surfaces unmount and miss pointerup) stayed live: it now ends when the tool or mode changes, and on a mouse move with no button down. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… one path Codex review round 3: after moves A to B to C and two undos the selection stayed on B, because follow took the newer B to C move, hit a dead end and never tried B to A. It now searches outward over every recorded move (nearest first, newer first among equals). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…moved Codex review round 4: following page/id places could land on another object that later took a place the moved one passed through. Each recorded move now keeps what the object was (sigOf: everything but its id and place), and a place reached through a move counts only when it holds that same object. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…oved with Codex review round 5: the search could cross from one object's moves to another's at a page both passed through (same id), and select the other. It now walks only the moves with the signature of the newest move that touches the selection. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…gainst its own move Codex review round 6: filtering the moves by the newest move's signature dropped the earlier moves of the same object when it was changed between them (moved, resized, moved), so undoing everything stranded the selection. Each move now goes on a line (the line of the move that ended where it starts); follow walks that line and checks each place it reaches against the signature of the move that leads there. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…reached first Codex review round 7: after A to B, a resize, B to A and three undos, the newer move's end (A, big) failed and marked A seen, so the older move (A, small) never checked it. A place is now checked against every move that leads to it; only the expansion is done once. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex review round 8: in the single-page layout an undone move left the selection on a page that was not drawn, so its keys (Delete, arrows) had no surface. When the selection follows its object to another page the view now reveals it there, in every layout. The e2e checks undo and redo of a Move to page. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s unmounted Codex review round 9: auto-scroll can take the page holding the pointer capture out of the drawn range; it unmounts with its handlers, and a release in the gutter then never ended the drag. The drag now also listens for pointerup and pointercancel on the window, once. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…on was set in (spec 1.7 §2.1)
An optional array of {kind, code, name, year}: kind board_exam | institution_exam (open), code 2-8 of A-Z0-9, name a string
or one per language, year an integer or null. checkQuestion reports the same paper listed twice. The spec says source may be
left out by a publisher that must not name the book it took a question from.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…n, year range, at most 100 entries Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
spec 1.7: question manifests say where a question appeared (provenance)
feat(reader): move an object to another page (drag across pages, Move to page, Alt+Page Up/Down)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
chore(release): 0.1.5
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.
Merges
mainintoprod, which runs the release workflow: checks, assembles the packages, publishes 0.1.5 of@chalk-format/{core,reader,pdf,library-server}to npm and tagsv0.1.5. The library server (Coolifychalk-library) redeploys fromprod.Carries #43 (move objects across pages), #48 (question provenance) and the bump in #49.
🤖 Generated with Claude Code