Repository navigation
release: version packages - #56
Merged
Merged
Conversation
github-actions
Bot
force-pushed
the
changeset-release/master
branch
from
November 5, 2026 06:25
ef0bf38 to
cc28fbf
Compare
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.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to master, this PR will be updated.
Releases
@ritojs/kit@4.2.0
Minor Changes
suspend()hands its reader to another view (its canvas off the page, its page buffers let go, no painting, turns, keys or layouts answered, while its annotations, search and stored position stay and its layout calls still lay the reader out),resume()takes it back as laid out then, andsuspendedsays which.useRitoScrollView(controller, { active, paged, scroll })in@ritojs/reactruns the switch: the reader laid out scrolled and shown from where the pages were, then paged again from where the view was read. A scroll view has its windows as soon as it is made, so it can be moved before it is mounted, and through every new layout it stays on the window the reader reads, which a chapter laid out alone and the whole book number differently (switching to scrolled used to land at the book's start once the whole book was laid out).tapevent carrieshighlight(the highlight'sidand itsboundsin screen coordinates), and the newhighlightHoverevent tells the one under a resting mouse each time it changes or the strip moves it, null once the mouse leaves or presses, so an app opens an annotation's editor on a tap and shows its tooltip on hover in a scrolled view as a page view'sannotationClickandannotationHoverlet it.pageLengthsays how far a page moves its strip, as PageDown and PageUp move it (the view's length along the axis less two lines), so an app's own page commands — a menu's Previous and Next Page — move it as the keys do.spread: 'scrolled'lays each chapter out as one continuous strip read through windows the size of the viewport, one window a spread, down the screen, or leftwards for a book whose spine'spage-progression-directionisrtl(its vertical-rl chapters run leftwards as strips; a chapter whose text runs across the book's axis is paginated, each page one window).getScrollLayout()gives the windows end to end (axis, window length, each chapter's first spread, window count and extent), a located page'sblockOffsetsays where the locator's line starts in its window, and a target the size of a window paints that window alone. The kit'screateScrollController(reader, canvas, { physics, input })shows the windows end to end on one canvas at whole device pixels, keeps each window's picture while it is near, tells the reader which window is under the reading line, reports where the reader reads at rest and what a tap is on, and moves bydefaultScrollPhysicsor anyScrollPhysicsan app gives; an app drives it itself withgrab,follow,release,scrollTo,scrollBy,scrollToSpreadandscrollToLocator. The view selects text with a mouse drag or a touch held still across windows (word and paragraph presses, scrolling on near the ends) and moves the selection's focus with Shift chords, following it off screen, draws the selection over each window and finds it again in a new layout (selectionevent,selectionRects,clearSelection), andsetHighlightsdraws an app's search matches or annotations as page rects over the same windows (viewRectsmaps page rects onto the view,canvasis what it draws on); witha11yit mirrors the text on screen for screen readers once the strip rests. Itsscrollevent says how far through the book the strip is (progress, with the view's own length asviewport).useRitoScrollReaderin@ritojs/reactowns a scrolled reader and its view for a component (containerRef,load,unload, andprogress,positionandselectionas state), andScrollSelectionHandlesdraws its selection handles for touch input; the kit view gives the handles (selectionHandles,beginSelectionHandleDrag) in the page controller's shapes.geometrygainswidth: it is the segment across its line,width0 on a horizontal line andheight0 down a vertical one, and the kit projects it with that shape.ReaderTextCaret.writingMode(ReaderWritingMode) is the mode of the caret's line, and the kit's keyboard selection reads an arrow key on avertical-rlfocus as the key a quarter turn from it, as the browser does (down moves along the line, left to the next line). The React selection handles hang their knobs off the right and left ends of a caret across a vertical line, as they hang them over and under one across a horizontal line.Patch Changes
@ritojs/react@4.2.0
Minor Changes
suspend()hands its reader to another view (its canvas off the page, its page buffers let go, no painting, turns, keys or layouts answered, while its annotations, search and stored position stay and its layout calls still lay the reader out),resume()takes it back as laid out then, andsuspendedsays which.useRitoScrollView(controller, { active, paged, scroll })in@ritojs/reactruns the switch: the reader laid out scrolled and shown from where the pages were, then paged again from where the view was read. A scroll view has its windows as soon as it is made, so it can be moved before it is mounted, and through every new layout it stays on the window the reader reads, which a chapter laid out alone and the whole book number differently (switching to scrolled used to land at the book's start once the whole book was laid out).useScrollSelectionHandles(controller)gives a scrolled view's selection ends where the view shows them, following the strip as it moves, withfocusEdgenaming the focus: what a toolbar over a scrolled selection stands on, asuseSelection'sfocusRectis for pages.ScrollSelectionHandlesis built on it.spread: 'scrolled'lays each chapter out as one continuous strip read through windows the size of the viewport, one window a spread, down the screen, or leftwards for a book whose spine'spage-progression-directionisrtl(its vertical-rl chapters run leftwards as strips; a chapter whose text runs across the book's axis is paginated, each page one window).getScrollLayout()gives the windows end to end (axis, window length, each chapter's first spread, window count and extent), a located page'sblockOffsetsays where the locator's line starts in its window, and a target the size of a window paints that window alone. The kit'screateScrollController(reader, canvas, { physics, input })shows the windows end to end on one canvas at whole device pixels, keeps each window's picture while it is near, tells the reader which window is under the reading line, reports where the reader reads at rest and what a tap is on, and moves bydefaultScrollPhysicsor anyScrollPhysicsan app gives; an app drives it itself withgrab,follow,release,scrollTo,scrollBy,scrollToSpreadandscrollToLocator. The view selects text with a mouse drag or a touch held still across windows (word and paragraph presses, scrolling on near the ends) and moves the selection's focus with Shift chords, following it off screen, draws the selection over each window and finds it again in a new layout (selectionevent,selectionRects,clearSelection), andsetHighlightsdraws an app's search matches or annotations as page rects over the same windows (viewRectsmaps page rects onto the view,canvasis what it draws on); witha11yit mirrors the text on screen for screen readers once the strip rests. Itsscrollevent says how far through the book the strip is (progress, with the view's own length asviewport).useRitoScrollReaderin@ritojs/reactowns a scrolled reader and its view for a component (containerRef,load,unload, andprogress,positionandselectionas state), andScrollSelectionHandlesdraws its selection handles for touch input; the kit view gives the handles (selectionHandles,beginSelectionHandleDrag) in the page controller's shapes.geometrygainswidth: it is the segment across its line,width0 on a horizontal line andheight0 down a vertical one, and the kit projects it with that shape.ReaderTextCaret.writingMode(ReaderWritingMode) is the mode of the caret's line, and the kit's keyboard selection reads an arrow key on avertical-rlfocus as the key a quarter turn from it, as the browser does (down moves along the line, left to the next line). The React selection handles hang their knobs off the right and left ends of a caret across a vertical line, as they hang them over and under one across a horizontal line.Patch Changes
useAnnotationsstarts from the records the controller already holds: those its annotation storage loaded before the hook listened were told by no event, so a book opened again listed no annotations until the next change (a scrolled view, which draws them from that list, showed none).@ritojs/core@4.2.0
Minor Changes
spread: 'scrolled'lays each chapter out as one continuous strip read through windows the size of the viewport, one window a spread, down the screen, or leftwards for a book whose spine'spage-progression-directionisrtl(its vertical-rl chapters run leftwards as strips; a chapter whose text runs across the book's axis is paginated, each page one window).getScrollLayout()gives the windows end to end (axis, window length, each chapter's first spread, window count and extent), a located page'sblockOffsetsays where the locator's line starts in its window, and a target the size of a window paints that window alone. The kit'screateScrollController(reader, canvas, { physics, input })shows the windows end to end on one canvas at whole device pixels, keeps each window's picture while it is near, tells the reader which window is under the reading line, reports where the reader reads at rest and what a tap is on, and moves bydefaultScrollPhysicsor anyScrollPhysicsan app gives; an app drives it itself withgrab,follow,release,scrollTo,scrollBy,scrollToSpreadandscrollToLocator. The view selects text with a mouse drag or a touch held still across windows (word and paragraph presses, scrolling on near the ends) and moves the selection's focus with Shift chords, following it off screen, draws the selection over each window and finds it again in a new layout (selectionevent,selectionRects,clearSelection), andsetHighlightsdraws an app's search matches or annotations as page rects over the same windows (viewRectsmaps page rects onto the view,canvasis what it draws on); witha11yit mirrors the text on screen for screen readers once the strip rests. Itsscrollevent says how far through the book the strip is (progress, with the view's own length asviewport).useRitoScrollReaderin@ritojs/reactowns a scrolled reader and its view for a component (containerRef,load,unload, andprogress,positionandselectionas state), andScrollSelectionHandlesdraws its selection handles for touch input; the kit view gives the handles (selectionHandles,beginSelectionHandleDrag) in the page controller's shapes.text-emphasis-style,text-emphasis-color,text-emphasis-positionand thetext-emphasisshorthand (with their-webkit-spellings, and the-epub-spellings of all but the position) reach the engine; a character that takes a mark gets one, set in its face at half its size, outside its em box on the side the position names (a vertical line's right unless it says left), an upright mark centred on it down the column. Marks over a line push it down by what the room under the previous line's text does not absorb, marks under one grow its box, and the next line rises into that growth by the room above its own text.geometrygainswidth: it is the segment across its line,width0 on a horizontal line andheight0 down a vertical one, and the kit projects it with that shape.ReaderTextCaret.writingMode(ReaderWritingMode) is the mode of the caret's line, and the kit's keyboard selection reads an arrow key on avertical-rlfocus as the key a quarter turn from it, as the browser does (down moves along the line, left to the next line). The React selection handles hang their knobs off the right and left ends of a caret across a vertical line, as they hang them over and under one across a horizontal line.text-orientation(with its-webkit-and-epub-spellings) reaches the engine; andtext-combine-upright: allsets its text as one horizontal string within an em of the column, in the face's half-, third- or quarter-width forms or scaled when the string is wider than 1.1em. An inline box whose writing mode differs from its parent's lays out as an inline-block across the parent's lines, and a block's minimum and maximum block size (min-height/max-height, ormin-width/max-widthin a vertical flow) bound it. An artifact's font references carryfeatures(reader protocol 9): a reference with features is the same bytes as a face, registered under a family of its own with those OpenType features on (vert, the vertical forms;hwid,twidandqwid, the narrower forms a combined string takes), which the browser reader registers as itsfont-feature-settingsdescriptor.Patch Changes
vertical-align: middlecentres on its line as Chromium places it: its box moves by half its ascent less its descent, less half its parent's x-height, so its middle sits half the parent's x-height above the parent's baseline, down a vertical line too. calibre's centred plate pages, a page-wide spacer and a full-height block both aligned middle, now stand where Chromium draws them.min-width: 1.6emdown a vertical page stack 25.59375px apart instead of 25.6, so their excess no longer piles up over a page and moves where the next page's lines start.<div>after an over-wide plate no longer hangs off the bottom of the plate's page.altattribute lays out as Chromium's 16px broken-image icon, as one with alt text does; only an emptyaltcollapses. A missing image in a short line no longer leaves every line after it a pixel high.lang) andline-breakvalue select, as Chromium's ICU does: Chinese text, and Japanese and Korean text underline-break: normalorloose, reads the curly double quotes as brackets and may start a line with 〜 or ゠ (Japanese breaks only by default otherwise);loosealso breaks before iteration marks and centered punctuation and between inseparables; a quotation mark breaks only between East Asian characters; and a number keeps its prefix and postfix together only as a number does.word-break: break-allandkeep-alladd and withhold breaks per text item as Blink does, andline-break: anywhereapplies only to its own text. A line broken before spaces ends after them (a space followed by an ideographic space ends the line after the space), and a no-break space never hangs past the line's end.-webkit-line-breakand-epub-word-break(and-epub-text-transformand-epub-caption-side) reach the engine as the properties Chromium aliases them to.<br>-broken paragraph no longer has its text shaped again for every wrapped line that ends in a closing bracket or quote before a<br>; what is laid out is unchanged.object-fitand snapped to whole CSS pixels, as an image in a horizontal line does: a plate centred down a column no longer lands a pixel off.object-fit: containis placed in its unsnapped box and the placed rect snaps to whole pixels, as Chromium snaps it: a thin rule image scaled into a fractional box now rasters on the one row the browser draws it on instead of smearing across two. A raster placed under a pixel tall or wide keeps one pixel where its start rounds, as the browser keeps it, instead of reaching the hosts as an empty image they reject; only one thinner than four LayoutUnits paints nothing.〝〞〟) and any other fullwidth bracket trim like「」, a fullwidth opener after a narrow one ((「) and a fullwidth closer before a narrow one (」)) trim, the middle dots·and‧make their neighbours trim as・does, and each of these closers can trim at a line end.display: inline-block; margin: 8px 0sits 8px clear of the text above and below it).display: inline-blocklays out as Chromium's atomic inline whatever its tag: it takes its ownwidthandheight(a percentage across a vertical line resolving against the page when the line's own size is open, as Chromium's orthogonal fallback does), an empty one still stands on its line at its size, and one holding blocks lays them out inside it. calibre's centred-plate pages now land on the page Chromium shows them on, with the plate centred across it.text<br><inline-block>takes the wider of the two lines instead of their sum, and an inline box opening there brings its padding along.display: inline-table) moves to the next page whole when it does not fit what is left of the page, as Chromium fragments an atomic inline, instead of breaking between its rows like a block table.<br>breaks the line underline-break: anywhereand after a preserved space, a paragraph shaped as one run longer than 64 KiB lays out instead of failing, a ligature is measured by its own glyphs in any run, a line rewound to the start of an item keeps an inline image that comes before it, an ideographic space (or another space separator) that overflows a line hangs past its end where the line may break after it, as Chromium hangs it, and a short ruby (a base of at most four glyphs under an annotation of at most eight) moves to the next line whole instead of breaking inside its base, as Chromium keeps it.<link>no longer takes every stylesheet the package lists (a book's unlinked note and plate pages keep their default paragraphs and image layout where its stylesheet indents and frames the other chapters).<ruby>with the first, as Chromium paints a box's text; plain text keeps its fractional place.@ritojs/pack@4.2.0
No changes in this release.