@sudobility/music_drawing 0.0.22 → 0.0.24

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.
Files changed (63) hide show
  1. package/dist/canvas-renderer.d.ts +53 -0
  2. package/dist/canvas-renderer.d.ts.map +1 -1
  3. package/dist/canvas-renderer.js +123 -2
  4. package/dist/canvas-renderer.js.map +1 -1
  5. package/dist/hit-test.d.ts +101 -0
  6. package/dist/hit-test.d.ts.map +1 -0
  7. package/dist/hit-test.js +213 -0
  8. package/dist/hit-test.js.map +1 -0
  9. package/dist/index.d.ts +6 -0
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +6 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/layout.d.ts +15 -1
  14. package/dist/layout.d.ts.map +1 -1
  15. package/dist/layout.js +36 -3
  16. package/dist/layout.js.map +1 -1
  17. package/dist/measure-content.d.ts +3 -1
  18. package/dist/measure-content.d.ts.map +1 -1
  19. package/dist/measure-content.js +2 -2
  20. package/dist/measure-content.js.map +1 -1
  21. package/dist/note-colors.d.ts +55 -0
  22. package/dist/note-colors.d.ts.map +1 -0
  23. package/dist/note-colors.js +31 -0
  24. package/dist/note-colors.js.map +1 -0
  25. package/dist/note-drag.d.ts +29 -0
  26. package/dist/note-drag.d.ts.map +1 -0
  27. package/dist/note-drag.js +27 -0
  28. package/dist/note-drag.js.map +1 -0
  29. package/dist/playback-scroll.d.ts +40 -0
  30. package/dist/playback-scroll.d.ts.map +1 -0
  31. package/dist/playback-scroll.js +128 -0
  32. package/dist/playback-scroll.js.map +1 -0
  33. package/dist/playhead.d.ts +41 -7
  34. package/dist/playhead.d.ts.map +1 -1
  35. package/dist/playhead.js +153 -2
  36. package/dist/playhead.js.map +1 -1
  37. package/dist/render-theme.d.ts +30 -0
  38. package/dist/render-theme.d.ts.map +1 -0
  39. package/dist/render-theme.js +23 -0
  40. package/dist/render-theme.js.map +1 -0
  41. package/dist/skia/index.d.ts +1 -0
  42. package/dist/skia/index.d.ts.map +1 -1
  43. package/dist/skia/index.js +1 -0
  44. package/dist/skia/index.js.map +1 -1
  45. package/dist/skia/skia-api.d.ts +8 -0
  46. package/dist/skia/skia-api.d.ts.map +1 -1
  47. package/dist/skia/skia-context.d.ts +1 -0
  48. package/dist/skia/skia-context.d.ts.map +1 -1
  49. package/dist/skia/skia-context.js +104 -8
  50. package/dist/skia/skia-context.js.map +1 -1
  51. package/dist/stave-header.d.ts +29 -0
  52. package/dist/stave-header.d.ts.map +1 -0
  53. package/dist/stave-header.js +122 -0
  54. package/dist/stave-header.js.map +1 -0
  55. package/dist/test/fake-skia.d.ts +12 -1
  56. package/dist/test/fake-skia.d.ts.map +1 -1
  57. package/dist/test/fake-skia.js +8 -1
  58. package/dist/test/fake-skia.js.map +1 -1
  59. package/dist/track-gutter.d.ts +14 -0
  60. package/dist/track-gutter.d.ts.map +1 -0
  61. package/dist/track-gutter.js +37 -0
  62. package/dist/track-gutter.js.map +1 -0
  63. package/package.json +3 -3
@@ -12,6 +12,7 @@
12
12
  export { createSkiaContext2D } from './skia-context.js';
13
13
  export type { SkiaContextOptions } from './skia-context.js';
14
14
  export { parseCssFont } from './css-font.js';
15
+ export { familyCandidates } from './skia-context.js';
15
16
  export type { ParsedFont } from './css-font.js';
16
17
  export type { SkiaApi, SkiaCanvas, SkiaFont, SkiaFontMetrics, SkiaFontMgr, SkiaModule, SkiaPaint, SkiaPath, SkiaRect, SkiaTypeface, } from './skia-api.js';
17
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skia/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,YAAY,EACV,OAAO,EACP,UAAU,EACV,QAAQ,EACR,eAAe,EACf,WAAW,EACX,UAAU,EACV,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,YAAY,GACb,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skia/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,YAAY,EACV,OAAO,EACP,UAAU,EACV,QAAQ,EACR,eAAe,EACf,WAAW,EACX,UAAU,EACV,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,YAAY,GACb,MAAM,eAAe,CAAC"}
@@ -11,4 +11,5 @@
11
11
  */
12
12
  export { createSkiaContext2D } from './skia-context.js';
13
13
  export { parseCssFont } from './css-font.js';
14
+ export { familyCandidates } from './skia-context.js';
14
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/skia/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/skia/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -82,6 +82,14 @@ export type SkiaTypeface = unknown;
82
82
  export type SkiaFontMgr = {
83
83
  /** Returns a typeface, or null when nothing matches and no fallback applies. */
84
84
  matchFamilyStyle(name: string, style: unknown): SkiaTypeface | null;
85
+ /**
86
+ * The families this manager actually has, for the last-resort fallback.
87
+ *
88
+ * Optional because not every host exposes them, and because a manager that
89
+ * substitutes a default for an unknown family never needs them.
90
+ */
91
+ countFamilies?(): number;
92
+ getFamilyName?(index: number): string;
85
93
  };
86
94
  /** The `Skia` object itself: Skia's own factory namespace. */
87
95
  export type SkiaApi = {
@@ -1 +1 @@
1
- {"version":3,"file":"skia-api.d.ts","sourceRoot":"","sources":["../../src/skia/skia-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skia-api.d.ts","sourceRoot":"","sources":["../../src/skia/skia-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,iDAAiD;AACjD,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,gEAAgE;AAChE,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;IACpC,UAAU,IAAI,eAAe,CAAC;IAC9B,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACpC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/B,gDAAgD;IAChD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,YAAY,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IACvC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,IAAI,MAAM,CAAC;IACpB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACrC,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACtC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACtC,OAAO,CACL,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACT,OAAO,CAAC;IACX,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IAChE,6DAA6D;IAC7D,SAAS,CACP,IAAI,EAAE,QAAQ,EACd,mBAAmB,EAAE,MAAM,EAC3B,mBAAmB,EAAE,MAAM,EAC3B,WAAW,EAAE,OAAO,GACnB,OAAO,CAAC;IACX,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACjC,KAAK,IAAI,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,IAAI,MAAM,CAAC;IACf,OAAO,IAAI,IAAI,CAAC;IAChB,uEAAuE;IACvE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IACjD,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IACjD,QAAQ,CACN,IAAI,EAAE,MAAM,EACZ,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,QAAQ,GACb,IAAI,CAAC;CACT,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC;AAEnC,MAAM,MAAM,WAAW,GAAG;IACxB,gFAAgF;IAChF,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI,CAAC;IACpE;;;;;OAKG;IACH,aAAa,CAAC,IAAI,MAAM,CAAC;IACzB,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACvC,CAAC;AAEF,8DAA8D;AAC9D,MAAM,MAAM,OAAO,GAAG;IACpB,KAAK,IAAI,SAAS,CAAC;IACnB,IAAI,EAAE;QAAE,IAAI,IAAI,QAAQ,CAAA;KAAE,CAAC;IAC3B,IAAI,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IACvD,OAAO,EAAE;QAAE,MAAM,IAAI,WAAW,CAAA;KAAE,CAAC;IACnC,wEAAwE;IACxE,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9B,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC;IACxE,UAAU,EAAE;QAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;CACxE,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,SAAS,EAAE;QACT,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,UAAU,EAAE;QACV,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,SAAS,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,SAAS,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACvC,CAAC"}
@@ -38,6 +38,7 @@ export type SkiaContextOptions = {
38
38
  width: number;
39
39
  height: number;
40
40
  };
41
+ export declare function familyCandidates(family: string): readonly string[];
41
42
  /**
42
43
  * Wraps a Skia canvas as the 2D drawing context this package paints into.
43
44
  *
@@ -1 +1 @@
1
- {"version":3,"file":"skia-context.d.ts","sourceRoot":"","sources":["../../src/skia/skia-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,KAAK,EACV,gBAAgB,EAGjB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EACV,UAAU,EAEV,UAAU,EAGX,MAAM,eAAe,CAAC;AAwEvB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,oFAAoF;IACpF,IAAI,EAAE,UAAU,CAAC;IACjB,4FAA4F;IAC5F,MAAM,EAAE,UAAU,CAAC;IACnB;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAqaF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,kBAAkB,GAC1B,gBAAgB,CAElB"}
1
+ {"version":3,"file":"skia-context.d.ts","sourceRoot":"","sources":["../../src/skia/skia-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,KAAK,EACV,gBAAgB,EAGjB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EACV,UAAU,EAEV,UAAU,EAIX,MAAM,eAAe,CAAC;AAgFvB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,oFAAoF;IACpF,IAAI,EAAE,UAAU,CAAC;IACjB,4FAA4F;IAC5F,MAAM,EAAE,UAAU,CAAC;IACnB;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AA4dF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAKlE;AA8BD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,kBAAkB,GAC1B,gBAAgB,CAElB"}
@@ -1,6 +1,13 @@
1
1
  import { parseCssFont } from './css-font.js';
2
2
  /** CSS `font-weight: bold`, and the neutral weight, as Skia's enum spells them. */
3
3
  const BOLD_WEIGHT = 700;
4
+ /**
5
+ * The middle of Skia's width axis (1 ultra-condensed … 9 ultra-expanded).
6
+ *
7
+ * Stated rather than omitted: see `matchTypeface`. A style missing this can
8
+ * match nothing at all.
9
+ */
10
+ const NORMAL_WIDTH = 5;
4
11
  const NORMAL_WEIGHT = 400;
5
12
  /** The 2D default font, per the canvas spec. */
6
13
  const DEFAULT_FONT = '10px sans-serif';
@@ -45,6 +52,8 @@ class SkiaDrawingContext {
45
52
  this.stack = [];
46
53
  /** Canvas connects an arc to the current point; a fresh path has none. */
47
54
  this.hasCurrentPoint = false;
55
+ /** Resolved once per context: `undefined` not yet asked, `null` unavailable. */
56
+ this.families = undefined;
48
57
  this.skia = options.skia;
49
58
  this.target = options.canvas;
50
59
  this.canvas = { width: options.width, height: options.height };
@@ -312,18 +321,75 @@ class SkiaDrawingContext {
312
321
  this.fontCache.set(key, font);
313
322
  return font;
314
323
  }
324
+ /**
325
+ * The families this manager actually holds, lower-cased, resolved once.
326
+ *
327
+ * The list is the point. A matcher asked for a family it does not have can
328
+ * answer with a typeface that is **truthy and unusable** — measured on React
329
+ * Native: `matchFamilyStyle('sans-serif', …)` returned an object, a `Font`
330
+ * built on it reported five glyph ids for "Piano" and a total advance of
331
+ * zero, and every `fillText` in the renderer drew nothing. Asking the same
332
+ * manager for a name from its own list returned a typeface that measured
333
+ * correctly. So names are never guessed at the matcher any more; they are
334
+ * chosen from what it says it has.
335
+ */
336
+ familyList(manager) {
337
+ if (this.families !== undefined)
338
+ return this.families;
339
+ this.families = null;
340
+ const count = manager.countFamilies?.();
341
+ const nameAt = manager.getFamilyName;
342
+ if (typeof count === 'number' && count > 0 && nameAt) {
343
+ const names = [];
344
+ for (let index = 0; index < count; index += 1) {
345
+ const name = nameAt.call(manager, index);
346
+ if (typeof name === 'string' && name.length > 0)
347
+ names.push(name);
348
+ }
349
+ if (names.length > 0)
350
+ this.families = names;
351
+ }
352
+ return this.families;
353
+ }
315
354
  matchTypeface(family, bold, italic) {
355
+ /*
356
+ `width` is stated rather than left out: a style missing an axis can match
357
+ nothing at all on some matchers, and the cost of naming it is nil.
358
+ */
359
+ const style = {
360
+ weight: bold ? BOLD_WEIGHT : NORMAL_WEIGHT,
361
+ width: NORMAL_WIDTH,
362
+ slant: italic ? this.skia.FontSlant.Italic : this.skia.FontSlant.Upright,
363
+ };
316
364
  try {
317
- return this.skiaApi.FontMgr.System().matchFamilyStyle(family, {
318
- weight: bold ? BOLD_WEIGHT : NORMAL_WEIGHT,
319
- slant: italic
320
- ? this.skia.FontSlant.Italic
321
- : this.skia.FontSlant.Upright,
322
- });
365
+ const manager = this.skiaApi.FontMgr.System();
366
+ const available = this.familyList(manager);
367
+ /*
368
+ With a list, ask only for names on it: the requested family if the
369
+ manager has it, then the first of the usual faces it has, then simply
370
+ its first family. Without one — a host that does not enumerate — fall
371
+ back to guessing, which is what this did before and is better than
372
+ drawing nothing.
373
+ */
374
+ const wanted = available
375
+ ? familyCandidates(family)
376
+ .map(candidate => {
377
+ const lower = candidate.toLowerCase();
378
+ return available.find(name => name.toLowerCase() === lower);
379
+ })
380
+ .filter((name) => name !== undefined)
381
+ .concat(available[0] ? [available[0]] : [])
382
+ : familyCandidates(family);
383
+ for (const candidate of wanted) {
384
+ const typeface = manager.matchFamilyStyle(candidate, style);
385
+ if (typeface)
386
+ return typeface;
387
+ }
388
+ return null;
323
389
  }
324
390
  catch {
325
- // No system font manager, or no match at all: Skia's default face still
326
- // draws something legible, which beats losing the frame.
391
+ // No system font manager at all: Skia's default face still draws
392
+ // something legible, which beats losing the frame.
327
393
  return null;
328
394
  }
329
395
  }
@@ -349,6 +415,36 @@ class SkiaDrawingContext {
349
415
  };
350
416
  }
351
417
  }
418
+ /**
419
+ * The families to try, in order, for one CSS family name.
420
+ *
421
+ * `sans-serif`, `serif`, `monospace` and `system-ui` are CSS **generics**, not
422
+ * font names: no system font manager has a family called "sans-serif". Every
423
+ * label this renderer draws asks for one of them — the track gutter, the
424
+ * measure numbers, the state badges — so every one of them missed.
425
+ *
426
+ * On the web that is invisible, because CanvasKit substitutes a default face
427
+ * for an unmatched family. React Native Skia does not: an unmatched family
428
+ * yields `Font(undefined, size)`, a font with no typeface, and `drawText` then
429
+ * draws **nothing**. The noteheads and clefs are paths and were unaffected, so
430
+ * the score looked right and every word on it was simply absent.
431
+ *
432
+ * The concrete names are the platforms' own UI faces — iOS/macOS first, then
433
+ * Android — and the empty name last, which is how a font manager is asked for
434
+ * whatever it considers default.
435
+ */
436
+ const GENERIC_FAMILIES = {
437
+ 'sans-serif': ['Helvetica Neue', 'Helvetica', 'Arial', 'Roboto'],
438
+ 'system-ui': ['Helvetica Neue', 'Helvetica', 'Arial', 'Roboto'],
439
+ serif: ['Times New Roman', 'Georgia', 'Noto Serif'],
440
+ monospace: ['Menlo', 'Courier New', 'Roboto Mono'],
441
+ };
442
+ export function familyCandidates(family) {
443
+ const generic = GENERIC_FAMILIES[family.toLowerCase()];
444
+ // The name as written is always tried first: a real font called "Roboto"
445
+ // must not be routed through the generic list.
446
+ return generic ? [family, ...generic, ''] : [family, ''];
447
+ }
352
448
  const DEGREES_PER_RADIAN = 180 / Math.PI;
353
449
  const TAU = Math.PI * 2;
354
450
  function toDegrees(radians) {
@@ -1 +1 @@
1
- {"version":3,"file":"skia-context.js","sourceRoot":"","sources":["../../src/skia/skia-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skia-context.js","sourceRoot":"","sources":["../../src/skia/skia-context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { type Track } from '@sudobility/music_types';
2
+ /** What one stave will draw before its first note. */
3
+ export type StaveHeader = {
4
+ clef: string | null;
5
+ /** The VexFlow key spec, or null when none is drawn (a drum staff, or no change). */
6
+ key: string | null;
7
+ /** The VexFlow time spec, or null when none is drawn. */
8
+ time: string | null;
9
+ };
10
+ /** The extra width `header` costs, in logical units. Zero when it draws nothing. */
11
+ export declare function staveHeaderWidth(header: StaveHeader): number;
12
+ /**
13
+ * What `track`'s measure at `measureIndex` will draw before its first note.
14
+ *
15
+ * These four conditions are `buildMeasureContent`'s, and deliberately so: this
16
+ * exists only to price what that will draw, and any difference between the two
17
+ * is either wasted space or a squeezed bar.
18
+ */
19
+ export declare function staveHeaderFor(track: Track, measureIndex: number, isFirstInSystem: boolean): StaveHeader;
20
+ /**
21
+ * The header room a measure needs across every track drawn.
22
+ *
23
+ * The maximum, because `Stave.formatBegModifiers` aligns the whole column's
24
+ * note areas to the widest one — so a piano part in a heavily-signed key sets
25
+ * the indent for the flute beside it, and reserving only the flute's would
26
+ * squeeze both.
27
+ */
28
+ export declare function headerWidthForMeasure(tracks: readonly Track[], measureIndex: number, isFirstInSystem: boolean): number;
29
+ //# sourceMappingURL=stave-header.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stave-header.d.ts","sourceRoot":"","sources":["../src/stave-header.ts"],"names":[],"mappings":"AAoCA,OAAO,EAGL,KAAK,KAAK,EACX,MAAM,yBAAyB,CAAC;AAIjC,sDAAsD;AACtD,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,qFAAqF;IACrF,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,yDAAyD;IACzD,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,CAAC;AAkBF,oFAAoF;AACpF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAc5D;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,OAAO,GACvB,WAAW,CAyBb;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,KAAK,EAAE,EACxB,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,OAAO,GACvB,MAAM,CAQR"}
@@ -0,0 +1,122 @@
1
+ /**
2
+ * How much room a measure's stave spends before its first note.
3
+ *
4
+ * A stave draws its clef, key signature and time signature between the barline
5
+ * and the first notehead, and the layout has to reserve that room *before*
6
+ * anything is drawn — it is what decides how many measures fit on a line and
7
+ * how wide each one's note area ends up.
8
+ *
9
+ * This used to be one constant, `SYSTEM_HEADER_WIDTH = 90`, added to whichever
10
+ * measure began a system. It was wrong in two directions and both were
11
+ * visible:
12
+ *
13
+ * - **A key signature's width scales with its accidentals.** Measured: a bare
14
+ * clef and 4/4 costs 60 logical units, C major with them 60, and C# major —
15
+ * seven sharps — costs 147. So the constant over-reserved by 30 in the
16
+ * commonest key and under-reserved by 57 in the sharpest, squeezing the first
17
+ * bar of every system in any heavily-signed key.
18
+ * - **A change mid-system got nothing at all**, because the constant was tied
19
+ * to being first in a system rather than to what the bar actually draws. A
20
+ * seven-sharp key change at bar 2 collapsed that bar's note area from 180
21
+ * units to 103 — its notes crammed into little over half the room the bars
22
+ * either side had, for no reason a reader could see. The same held for a
23
+ * mid-system clef change and a mid-piece time-signature change.
24
+ *
25
+ * So it is measured instead, from VexFlow, using exactly the rules
26
+ * `buildMeasureContent` applies when it decides what to add to a stave. The
27
+ * two must agree — reserving room for a modifier that is not drawn wastes it,
28
+ * and drawing one there is no room for is the bug above — which is why the
29
+ * predicates are shared rather than restated, and why `stave-header.test.ts`
30
+ * pins the two against each other.
31
+ *
32
+ * Memoized on the modifiers themselves. A score has a handful of distinct
33
+ * (clef, key, time) combinations however many bars it has, and `computeLayout`
34
+ * runs on every render.
35
+ */
36
+ import { Stave } from 'vexflow';
37
+ import { clefChangesAt, effectiveClef, } from '@sudobility/music_types';
38
+ import { keySignatureToVexSpec } from './convert.js';
39
+ import { sameKeySignature, sameTimeSignature } from './measure-content.js';
40
+ /**
41
+ * The width a bare stave already spends, which is not part of any header.
42
+ *
43
+ * `Stave` insets its own note area slightly whatever it carries, so the cost of
44
+ * a header is the difference from this rather than the absolute note start.
45
+ * Read from VexFlow rather than written down, for the reason the rest of this
46
+ * file exists.
47
+ */
48
+ let bareWidth = null;
49
+ function bareNoteStartX() {
50
+ bareWidth ?? (bareWidth = new Stave(0, 0, 100).getNoteStartX());
51
+ return bareWidth;
52
+ }
53
+ const widthCache = new Map();
54
+ /** The extra width `header` costs, in logical units. Zero when it draws nothing. */
55
+ export function staveHeaderWidth(header) {
56
+ if (!header.clef && !header.key && !header.time)
57
+ return 0;
58
+ const cacheKey = `${header.clef ?? ''}|${header.key ?? ''}|${header.time ?? ''}`;
59
+ const cached = widthCache.get(cacheKey);
60
+ if (cached !== undefined)
61
+ return cached;
62
+ // Wide enough that the modifiers are never the thing constraining the stave.
63
+ const stave = new Stave(0, 0, 500);
64
+ if (header.clef)
65
+ stave.addClef(header.clef);
66
+ if (header.key)
67
+ stave.addKeySignature(header.key);
68
+ if (header.time)
69
+ stave.addTimeSignature(header.time);
70
+ const width = Math.max(0, stave.getNoteStartX() - bareNoteStartX());
71
+ widthCache.set(cacheKey, width);
72
+ return width;
73
+ }
74
+ /**
75
+ * What `track`'s measure at `measureIndex` will draw before its first note.
76
+ *
77
+ * These four conditions are `buildMeasureContent`'s, and deliberately so: this
78
+ * exists only to price what that will draw, and any difference between the two
79
+ * is either wasted space or a squeezed bar.
80
+ */
81
+ export function staveHeaderFor(track, measureIndex, isFirstInSystem) {
82
+ const measure = track.measures[measureIndex];
83
+ if (!measure)
84
+ return { clef: null, key: null, time: null };
85
+ const previous = track.measures[measureIndex - 1];
86
+ const clef = effectiveClef(track, measureIndex);
87
+ const isPercussion = clef === 'percussion';
88
+ const drawsClef = isFirstInSystem || clefChangesAt(track, measureIndex);
89
+ // A drum staff has no key: its lines are instruments, not pitches.
90
+ const drawsKey = !isPercussion &&
91
+ (isFirstInSystem ||
92
+ !previous ||
93
+ !sameKeySignature(previous.keySignature, measure.keySignature));
94
+ const drawsTime = !previous ||
95
+ !sameTimeSignature(previous.timeSignature, measure.timeSignature);
96
+ return {
97
+ clef: drawsClef ? clef : null,
98
+ key: drawsKey ? keySignatureToVexSpec(measure.keySignature) : null,
99
+ time: drawsTime
100
+ ? `${measure.timeSignature.numerator}/${measure.timeSignature.denominator}`
101
+ : null,
102
+ };
103
+ }
104
+ /**
105
+ * The header room a measure needs across every track drawn.
106
+ *
107
+ * The maximum, because `Stave.formatBegModifiers` aligns the whole column's
108
+ * note areas to the widest one — so a piano part in a heavily-signed key sets
109
+ * the indent for the flute beside it, and reserving only the flute's would
110
+ * squeeze both.
111
+ */
112
+ export function headerWidthForMeasure(tracks, measureIndex, isFirstInSystem) {
113
+ let widest = 0;
114
+ for (const track of tracks) {
115
+ const header = staveHeaderFor(track, measureIndex, isFirstInSystem);
116
+ const width = staveHeaderWidth(header);
117
+ if (width > widest)
118
+ widest = width;
119
+ }
120
+ return widest;
121
+ }
122
+ //# sourceMappingURL=stave-header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stave-header.js","sourceRoot":"","sources":["../src/stave-header.ts"],"names":[],"mappings":"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"}
@@ -77,5 +77,16 @@ export declare function mapPoint(matrix: number[], x: number, y: number): {
77
77
  x: number;
78
78
  y: number;
79
79
  };
80
- export declare function createFakeSkia(): FakeSkia;
80
+ /**
81
+ * Options for the fake, all defaulted.
82
+ *
83
+ * `families` makes the fake behave like React Native's real font manager,
84
+ * which **answers for families it does not hold** — see `matchTypeface`. Given
85
+ * a list, the fake enumerates it and reports which name was actually asked
86
+ * for, so a test can assert that the context never guesses.
87
+ */
88
+ export type FakeSkiaOptions = {
89
+ families?: readonly string[];
90
+ };
91
+ export declare function createFakeSkia(options?: FakeSkiaOptions): FakeSkia;
81
92
  //# sourceMappingURL=fake-skia.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fake-skia.d.ts","sourceRoot":"","sources":["../../src/test/fake-skia.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EACV,UAAU,EAGV,UAAU,EAGV,QAAQ,EACT,MAAM,qBAAqB,CAAC;AAE7B,4DAA4D;AAC5D,MAAM,MAAM,eAAe,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAElE,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAChB;IACE,EAAE,EAAE,UAAU,CAAC;IACf,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,KAAK,EAAE,cAAc,CAAC;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,GACD;IAAE,EAAE,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,GAC3E;IACE,EAAE,EAAE,UAAU,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,cAAc,CAAC;IACtB,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAEN,MAAM,MAAM,aAAa,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAE5E,qFAAqF;AACrF,MAAM,MAAM,eAAe,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAEjE,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG;IAClC,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,YAAY,EAAE,eAAe,EAAE,CAAC;CACjC,CAAC;AAUF;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,MAAM,EAAE,EAChB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAK1B;AAyBD,wBAAgB,cAAc,IAAI,QAAQ,CAoMzC"}
1
+ {"version":3,"file":"fake-skia.d.ts","sourceRoot":"","sources":["../../src/test/fake-skia.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EACV,UAAU,EAGV,UAAU,EAGV,QAAQ,EACT,MAAM,qBAAqB,CAAC;AAE7B,4DAA4D;AAC5D,MAAM,MAAM,eAAe,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAElE,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAChB;IACE,EAAE,EAAE,UAAU,CAAC;IACf,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,KAAK,EAAE,cAAc,CAAC;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,GACD;IAAE,EAAE,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,GAC3E;IACE,EAAE,EAAE,UAAU,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,cAAc,CAAC;IACtB,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAEN,MAAM,MAAM,aAAa,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAE5E,qFAAqF;AACrF,MAAM,MAAM,eAAe,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAEjE,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG;IAClC,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,YAAY,EAAE,eAAe,EAAE,CAAC;CACjC,CAAC;AAUF;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,MAAM,EAAE,EAChB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAK1B;AAyBD;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9B,CAAC;AAEF,wBAAgB,cAAc,CAAC,OAAO,GAAE,eAAoB,GAAG,QAAQ,CA4MtE"}
@@ -43,7 +43,7 @@ function multiply(m, n) {
43
43
  const ADVANCE_RATIO = 0.5;
44
44
  const ASCENT_RATIO = 0.7;
45
45
  const DESCENT_RATIO = 0.2;
46
- export function createFakeSkia() {
46
+ export function createFakeSkia(options = {}) {
47
47
  const draws = [];
48
48
  const fontRequests = [];
49
49
  let matrix = [...IDENTITY];
@@ -209,8 +209,15 @@ export function createFakeSkia() {
209
209
  matchFamilyStyle: (name, style) => {
210
210
  fontRequests.push({ family: name, style });
211
211
  const weight = style?.weight;
212
+ // Answers for anything, as the real one does.
212
213
  return { family: name, bold: (weight ?? 400) >= 600 };
213
214
  },
215
+ ...(options.families
216
+ ? {
217
+ countFamilies: () => options.families.length,
218
+ getFamilyName: (index) => options.families[index] ?? '',
219
+ }
220
+ : {}),
214
221
  }),
215
222
  },
216
223
  Color: color => color,
@@ -1 +1 @@
1
- {"version":3,"file":"fake-skia.js","sourceRoot":"","sources":["../../src/test/fake-skia.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fake-skia.js","sourceRoot":"","sources":["../../src/test/fake-skia.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { LayoutPlan } from './layout.js';
2
+ export type GutterPoint = {
3
+ x: number;
4
+ y: number;
5
+ };
6
+ /**
7
+ * The track whose gutter cell contains `point`, or `null` — outside the
8
+ * gutter's width, or in the gap between two staves.
9
+ *
10
+ * Walks every system, not just the topmost: the gutter repeats down the page,
11
+ * so a click can land on any of them.
12
+ */
13
+ export declare function trackIdAtGutterPoint(plan: LayoutPlan, zoom: number, scrollTop: number, point: GutterPoint): string | null;
14
+ //# sourceMappingURL=track-gutter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"track-gutter.d.ts","sourceRoot":"","sources":["../src/track-gutter.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,MAAM,WAAW,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,WAAW,GACjB,MAAM,GAAG,IAAI,CAmBf"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Hit-testing the canvas track-info gutter. Pure over `LayoutPlan` — no DOM, no
3
+ * store — so the coordinate maths is unit-testable.
4
+ *
5
+ * **Viewport coordinates, not content coordinates.** The renderer pins the
6
+ * gutter to the viewport's left edge (see `drawTrackInfoGutter`), because in
7
+ * continuous mode a gutter in content space would scroll out of view. Every
8
+ * other hit test in the editor works in content coordinates; this one is the
9
+ * exception, and passing it content coordinates would put the hit region in the
10
+ * right place only at scroll position zero.
11
+ */
12
+ import { TRACK_INFO_WIDTH } from './layout.js';
13
+ /**
14
+ * The track whose gutter cell contains `point`, or `null` — outside the
15
+ * gutter's width, or in the gap between two staves.
16
+ *
17
+ * Walks every system, not just the topmost: the gutter repeats down the page,
18
+ * so a click can land on any of them.
19
+ */
20
+ export function trackIdAtGutterPoint(plan, zoom, scrollTop, point) {
21
+ if (point.x < 0 || point.x > TRACK_INFO_WIDTH * zoom)
22
+ return null;
23
+ // Back into the plan's logical, unscrolled space.
24
+ const logicalY = (point.y + scrollTop) / zoom;
25
+ for (const system of plan.systems) {
26
+ const measureIndex = system.measureIndices[0];
27
+ for (const trackLayout of plan.trackLayouts) {
28
+ const box = trackLayout.measures.find(m => m.measureIndex === measureIndex)?.box;
29
+ if (!box)
30
+ continue;
31
+ if (logicalY >= box.y && logicalY < box.y + box.height)
32
+ return trackLayout.track.id;
33
+ }
34
+ }
35
+ return null;
36
+ }
37
+ //# sourceMappingURL=track-gutter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"track-gutter.js","sourceRoot":"","sources":["../src/track-gutter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAK/C;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAgB,EAChB,IAAY,EACZ,SAAiB,EACjB,KAAkB;IAElB,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,gBAAgB,GAAG,IAAI;QAAE,OAAO,IAAI,CAAC;IAElE,kDAAkD;IAClD,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC;IAE9C,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAC9C,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5C,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CACnC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,YAAY,CACrC,EAAE,GAAG,CAAC;YACP,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,IAAI,QAAQ,IAAI,GAAG,CAAC,CAAC,IAAI,QAAQ,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM;gBACpD,OAAO,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sudobility/music_drawing",
3
- "version": "0.0.22",
3
+ "version": "0.0.24",
4
4
  "description": "Canvas score rendering for Moosiac: layout, VexFlow drawing and the paint loop.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -44,11 +44,11 @@
44
44
  "vexflow": "^4.2.5"
45
45
  },
46
46
  "peerDependencies": {
47
- "@sudobility/music_types": "^0.13.13"
47
+ "@sudobility/music_types": "^0.13.15"
48
48
  },
49
49
  "devDependencies": {
50
50
  "@eslint/js": "^9.38.0",
51
- "@sudobility/music_types": "^0.13.13",
51
+ "@sudobility/music_types": "^0.13.15",
52
52
  "@sudobility/types": "^1.9.67",
53
53
  "@tonejs/midi": "^2.0.28",
54
54
  "@types/jsdom": "^30.0.0",