@braccato/core 1.12.2 → 1.12.3

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/README.md CHANGED
@@ -242,7 +242,8 @@ pair snaps at the halfway point instead of flowing.
242
242
 
243
243
  Given `songwriters`, the view ends with `A, B & C` after the last line. It sits dim through the song,
244
244
  and once the last line has ended it brightens and takes the scroll focus, the way Apple Music closes a
245
- song. Seeking back hands the focus to the lines again. Unsynced lyrics have no end, so their credits
245
+ song. The scroll never carries the last sung line out of view to do it, so a long list of writers
246
+ settles below that line rather than centred. Seeking back hands the focus to the lines again. Unsynced lyrics have no end, so their credits
246
247
  show at full strength from the start.
247
248
 
248
249
  | Custom property | Default | What it sets |
package/dist/README.md CHANGED
@@ -242,7 +242,8 @@ pair snaps at the halfway point instead of flowing.
242
242
 
243
243
  Given `songwriters`, the view ends with `A, B & C` after the last line. It sits dim through the song,
244
244
  and once the last line has ended it brightens and takes the scroll focus, the way Apple Music closes a
245
- song. Seeking back hands the focus to the lines again. Unsynced lyrics have no end, so their credits
245
+ song. The scroll never carries the last sung line out of view to do it, so a long list of writers
246
+ settles below that line rather than centred. Seeking back hands the focus to the lines again. Unsynced lyrics have no end, so their credits
246
247
  show at full strength from the start.
247
248
 
248
249
  | Custom property | Default | What it sets |
package/dist/engine.js CHANGED
@@ -2031,8 +2031,9 @@ export function tickView(engine, currentTime, options) {
2031
2031
  // Make sure top of last active lyric is visible.
2032
2032
  scrollPos = Math.min(scrollPos, lastActiveLyric.position);
2033
2033
  const credits = engine.cachedCreditsItem;
2034
- if (engine.creditsFocused && credits) {
2035
- scrollPos = credits.position + credits.height / 2 - scrollPosOffset;
2034
+ if (engine.creditsFocused && credits && lastSungLine) {
2035
+ // Tall credits would otherwise carry the last line out of view while it is still being sung.
2036
+ scrollPos = Math.min(credits.position + credits.height / 2 - scrollPosOffset, lastSungLine.position);
2036
2037
  }
2037
2038
  // Past either end the browser clamps the write and reports nothing, leaving the view aiming
2038
2039
  // at a position it never reached and re-aiming once per remaining line.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@braccato/core",
3
- "version": "1.12.2",
3
+ "version": "1.12.3",
4
4
  "description": "Synchronized lyrics renderer with word-by-word animations",
5
5
  "type": "module",
6
6
  "license": "MIT",