@ugfoundation/swaralipi-js 0.7.7 → 0.8.0

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 (50) hide show
  1. package/dist/{batch-6MCPHHKF.js → batch-NJMT3M5Z.js} +5 -5
  2. package/dist/{batch-6MCPHHKF.js.map → batch-NJMT3M5Z.js.map} +1 -1
  3. package/dist/{chunk-ALN4SWMS.js → chunk-4HMHTXDE.js} +15 -4
  4. package/dist/chunk-4HMHTXDE.js.map +1 -0
  5. package/dist/{chunk-QM4CXKW2.js → chunk-4HNT6OAT.js} +24 -3
  6. package/dist/chunk-4HNT6OAT.js.map +1 -0
  7. package/dist/{chunk-TKTQCUKD.js → chunk-4IVUPMRK.js} +27 -9
  8. package/dist/chunk-4IVUPMRK.js.map +1 -0
  9. package/dist/{chunk-QQC6WVLJ.js → chunk-YFVAVICF.js} +4 -4
  10. package/dist/{chunk-QQC6WVLJ.js.map → chunk-YFVAVICF.js.map} +1 -1
  11. package/dist/cli.cjs +13 -2
  12. package/dist/cli.cjs.map +1 -1
  13. package/dist/cli.js +3 -3
  14. package/dist/convert/index.cjs +12 -1
  15. package/dist/convert/index.cjs.map +1 -1
  16. package/dist/convert/index.d.cts +1 -1
  17. package/dist/convert/index.d.ts +1 -1
  18. package/dist/convert/index.js +3 -3
  19. package/dist/index.cjs +39 -1
  20. package/dist/index.cjs.map +1 -1
  21. package/dist/index.d.cts +2 -2
  22. package/dist/index.d.ts +2 -2
  23. package/dist/index.js +2 -2
  24. package/dist/{taals-CjzBuZ35.d.ts → lay-Csa4CD46.d.cts} +38 -1
  25. package/dist/{taals-CjzBuZ35.d.cts → lay-Ct9ky_EE.d.ts} +38 -1
  26. package/dist/player/index.cjs +276 -117
  27. package/dist/player/index.cjs.map +1 -1
  28. package/dist/player/index.d.cts +22 -9
  29. package/dist/player/index.d.ts +22 -9
  30. package/dist/player/index.js +230 -114
  31. package/dist/player/index.js.map +1 -1
  32. package/dist/{schedule-BpBYGXPL.d.cts → schedule-B_UaluBi.d.cts} +27 -3
  33. package/dist/{schedule-Tzk01FKj.d.ts → schedule-CdILTNsk.d.ts} +27 -3
  34. package/dist/{schema-DqBXPGkL.d.cts → schema-DGA_bNVZ.d.cts} +97 -1
  35. package/dist/{schema-DqBXPGkL.d.ts → schema-DGA_bNVZ.d.ts} +97 -1
  36. package/dist/spec/index.cjs +39 -1
  37. package/dist/spec/index.cjs.map +1 -1
  38. package/dist/spec/index.d.cts +16 -4
  39. package/dist/spec/index.d.ts +16 -4
  40. package/dist/spec/index.js +2 -2
  41. package/dist/viewer/index.cjs +114 -12
  42. package/dist/viewer/index.cjs.map +1 -1
  43. package/dist/viewer/index.d.cts +10 -5
  44. package/dist/viewer/index.d.ts +10 -5
  45. package/dist/viewer/index.js +43 -7
  46. package/dist/viewer/index.js.map +1 -1
  47. package/package.json +1 -1
  48. package/dist/chunk-ALN4SWMS.js.map +0 -1
  49. package/dist/chunk-QM4CXKW2.js.map +0 -1
  50. package/dist/chunk-TKTQCUKD.js.map +0 -1
@@ -1,8 +1,8 @@
1
- import { O as Octave, a as SvaraLetter, N as Note, M as Meta, S as Swaralipi, T as Taal } from '../schema-DqBXPGkL.cjs';
2
- import { D as DrumVoice, S as Schedule, P as PlayEvent } from '../schedule-BpBYGXPL.cjs';
1
+ import { O as Octave, a as SvaraLetter, N as Note, M as Meta, S as Swaralipi, T as Taal } from '../schema-DGA_bNVZ.cjs';
2
+ import { L as Lay } from '../lay-Csa4CD46.cjs';
3
+ import { D as DrumVoice, S as Schedule, P as PlayEvent } from '../schedule-B_UaluBi.cjs';
3
4
  import 'zod';
4
5
  import 'tone';
5
- import '../taals-CjzBuZ35.cjs';
6
6
 
7
7
  /** Akarmatrik/Bhatkhande grid languages, rendered synchronously by renderToHtml. */
8
8
  type GridLang = 'bn' | 'hi' | 'en';
@@ -27,6 +27,10 @@ declare const LABELS: Record<GridLang, {
27
27
  avartan: string;
28
28
  notationBy: string;
29
29
  }>;
30
+ /** লয় tier names, printed where a row changes tempo. bn/hi keep the Indian
31
+ * term; en names the tempo first (a reader of the English sheet may not know
32
+ * the word — the same call `LABELS.en` makes with "Cycles" over "Avartan"). */
33
+ declare const LAY_LABELS: Record<GridLang, Record<Lay, string>>;
30
34
  /** A composed notation cluster: the font's ASCII text plus any residual CSS
31
35
  * classes the font itself cannot express (only the bn ati-octave dot). */
32
36
  interface Cluster {
@@ -204,6 +208,7 @@ declare const ZOOM_STEP = 1.2;
204
208
  * --sw-matra minimum width of one matra column
205
209
  * --sw-header-min floor for the নাম/তাল/আবর্তন header (it must stay legible
206
210
  * when the notation is scaled down to fit a phone)
211
+ * --sw-lay-min same floor for the লয় (tempo tier) marker band
207
212
  * --sw-hl player-highlight background (P2.3)
208
213
  * --sw-rule header rule / muted line color
209
214
  *
@@ -231,7 +236,7 @@ declare const SWARALIPI_CSS: string;
231
236
  * - rows are un-clipped (no scrollbar on paper) and kept whole across page
232
237
  * breaks; part headings stay with their first row.
233
238
  */
234
- declare const SWARALIPI_PRINT_CSS = "\n@page { margin: 16mm; }\n@media print {\n .sw-sheet, .sw-staff { -webkit-print-color-adjust: exact; print-color-adjust: exact; color: #000; }\n .sw-scroll { overflow: visible !important; }\n .sw-row { break-inside: avoid; page-break-inside: avoid; }\n .sw-part-name, .sw-header { break-after: avoid-page; page-break-after: avoid; }\n .sw-hl { background: none !important; }\n /* Keep each engraved staff system whole across a page break (the abcjs line\n is a <div> wrapping the <svg>, so the break rule must sit on the div). */\n .sw-staff-lines > div { break-inside: avoid; page-break-inside: avoid; }\n .sw-staff-meta { break-after: avoid-page; page-break-after: avoid; }\n}\n";
239
+ declare const SWARALIPI_PRINT_CSS = "\n@page { margin: 16mm; }\n@media print {\n .sw-sheet, .sw-staff { -webkit-print-color-adjust: exact; print-color-adjust: exact; color: #000; }\n .sw-scroll { overflow: visible !important; }\n .sw-row { break-inside: avoid; page-break-inside: avoid; }\n .sw-part-name, .sw-header, .sw-lay { break-after: avoid-page; page-break-after: avoid; }\n .sw-hl { background: none !important; }\n /* Keep each engraved staff system whole across a page break (the abcjs line\n is a <div> wrapping the <svg>, so the break rule must sit on the div). */\n .sw-staff-lines > div { break-inside: avoid; page-break-inside: avoid; }\n .sw-staff-meta { break-after: avoid-page; page-break-after: avoid; }\n}\n";
235
240
  /** Staff-notation (abcjs) wrapper chrome: instrument/tempo header + a fluid
236
241
  * SVG. The engraving itself is drawn by abcjs; this only frames it. */
237
242
  declare const SWARALIPI_STAFF_CSS = "\n.sw-staff { color: currentColor; }\n.sw-staff-meta { display: flex; gap: 1.25em; align-items: baseline; margin: 0 0 .5em; font-size: .95em; opacity: .85; }\n.sw-staff-instrument { font-weight: 600; }\n.sw-staff-drums { opacity: .75; }\n.sw-staff-tempo { font-variant-numeric: tabular-nums; }\n/* abcjs (oneSvgPerLine) wraps the music into one <div><svg> per system; stack\n them as short, swaralipi-style lines. abcjs sets a fixed pixel height +\n overflow:hidden on each wrapper div \u2014 neutralise it so the viewBox'd SVG can\n scale to the container (and to the print page) instead of being clipped. */\n.sw-staff-lines > div { margin: 0 0 .35em; height: auto !important; overflow: visible !important; }\n/* Fill up to the engraved (staffwidth) size \u2014 shrink to fit a narrow container,\n but never stretch past natural width (abcToSvg pins per-SVG max-width in px),\n else a short last system balloons. */\n.sw-staff-lines svg { display: block; width: 100%; height: auto; }\n.sw-staff-missing { padding: 1em; border: 1px dashed currentColor; border-radius: 6px; opacity: .8; font-size: .9em; }\n.sw-staff-title { font-size: 1.15em; font-weight: 700; }\n.sw-staff-subtitle { opacity: .8; font-size: .95em; margin-top: .15em; }\n";
@@ -522,4 +527,4 @@ type Transliterator = (bengaliText: string) => string;
522
527
  */
523
528
  declare function loadLyricTransliterator(lang: ViewerLang): Promise<Transliterator | undefined>;
524
529
 
525
- export { type Arc, type Cell, type Cluster, type ComposeOptions, DEFAULT_NOTATOR, DEFAULT_WATERMARK, DIGITS, type GridLang, LABELS, type Layout, MARKS, MAX_ZOOM, MIN_ZOOM, NOTATION_FONT_URLS, type PrintOptions, type RenderOptions, SWARALIPI_CSS, SWARALIPI_PRINT_CSS, SWARALIPI_STAFF_CSS, type StaffOptions, type SwaralipiSheetElement, type TaalStaffOptions, type Transliterator, type ViewerLang, ZOOM_STEP, abcDuration, abcToSvg, alignRows, buildAbc, buildTaalAbc, cellMatra, composeCluster, defineSwaralipiSheet, docToAbc, fitSwaralipi, groupRowIntoCells, loadLyricTransliterator, localizeDigits, midiToAbc, printSwaralipi, renderMetaHeader, renderPrintDocument, renderStaffHtml, renderStaffPrintDocument, renderTaalStaffHtml, renderToHtml, resolveArcs };
530
+ export { type Arc, type Cell, type Cluster, type ComposeOptions, DEFAULT_NOTATOR, DEFAULT_WATERMARK, DIGITS, type GridLang, LABELS, LAY_LABELS, type Layout, MARKS, MAX_ZOOM, MIN_ZOOM, NOTATION_FONT_URLS, type PrintOptions, type RenderOptions, SWARALIPI_CSS, SWARALIPI_PRINT_CSS, SWARALIPI_STAFF_CSS, type StaffOptions, type SwaralipiSheetElement, type TaalStaffOptions, type Transliterator, type ViewerLang, ZOOM_STEP, abcDuration, abcToSvg, alignRows, buildAbc, buildTaalAbc, cellMatra, composeCluster, defineSwaralipiSheet, docToAbc, fitSwaralipi, groupRowIntoCells, loadLyricTransliterator, localizeDigits, midiToAbc, printSwaralipi, renderMetaHeader, renderPrintDocument, renderStaffHtml, renderStaffPrintDocument, renderTaalStaffHtml, renderToHtml, resolveArcs };
@@ -1,8 +1,8 @@
1
- import { O as Octave, a as SvaraLetter, N as Note, M as Meta, S as Swaralipi, T as Taal } from '../schema-DqBXPGkL.js';
2
- import { D as DrumVoice, S as Schedule, P as PlayEvent } from '../schedule-Tzk01FKj.js';
1
+ import { O as Octave, a as SvaraLetter, N as Note, M as Meta, S as Swaralipi, T as Taal } from '../schema-DGA_bNVZ.js';
2
+ import { L as Lay } from '../lay-Ct9ky_EE.js';
3
+ import { D as DrumVoice, S as Schedule, P as PlayEvent } from '../schedule-CdILTNsk.js';
3
4
  import 'zod';
4
5
  import 'tone';
5
- import '../taals-CjzBuZ35.js';
6
6
 
7
7
  /** Akarmatrik/Bhatkhande grid languages, rendered synchronously by renderToHtml. */
8
8
  type GridLang = 'bn' | 'hi' | 'en';
@@ -27,6 +27,10 @@ declare const LABELS: Record<GridLang, {
27
27
  avartan: string;
28
28
  notationBy: string;
29
29
  }>;
30
+ /** লয় tier names, printed where a row changes tempo. bn/hi keep the Indian
31
+ * term; en names the tempo first (a reader of the English sheet may not know
32
+ * the word — the same call `LABELS.en` makes with "Cycles" over "Avartan"). */
33
+ declare const LAY_LABELS: Record<GridLang, Record<Lay, string>>;
30
34
  /** A composed notation cluster: the font's ASCII text plus any residual CSS
31
35
  * classes the font itself cannot express (only the bn ati-octave dot). */
32
36
  interface Cluster {
@@ -204,6 +208,7 @@ declare const ZOOM_STEP = 1.2;
204
208
  * --sw-matra minimum width of one matra column
205
209
  * --sw-header-min floor for the নাম/তাল/আবর্তন header (it must stay legible
206
210
  * when the notation is scaled down to fit a phone)
211
+ * --sw-lay-min same floor for the লয় (tempo tier) marker band
207
212
  * --sw-hl player-highlight background (P2.3)
208
213
  * --sw-rule header rule / muted line color
209
214
  *
@@ -231,7 +236,7 @@ declare const SWARALIPI_CSS: string;
231
236
  * - rows are un-clipped (no scrollbar on paper) and kept whole across page
232
237
  * breaks; part headings stay with their first row.
233
238
  */
234
- declare const SWARALIPI_PRINT_CSS = "\n@page { margin: 16mm; }\n@media print {\n .sw-sheet, .sw-staff { -webkit-print-color-adjust: exact; print-color-adjust: exact; color: #000; }\n .sw-scroll { overflow: visible !important; }\n .sw-row { break-inside: avoid; page-break-inside: avoid; }\n .sw-part-name, .sw-header { break-after: avoid-page; page-break-after: avoid; }\n .sw-hl { background: none !important; }\n /* Keep each engraved staff system whole across a page break (the abcjs line\n is a <div> wrapping the <svg>, so the break rule must sit on the div). */\n .sw-staff-lines > div { break-inside: avoid; page-break-inside: avoid; }\n .sw-staff-meta { break-after: avoid-page; page-break-after: avoid; }\n}\n";
239
+ declare const SWARALIPI_PRINT_CSS = "\n@page { margin: 16mm; }\n@media print {\n .sw-sheet, .sw-staff { -webkit-print-color-adjust: exact; print-color-adjust: exact; color: #000; }\n .sw-scroll { overflow: visible !important; }\n .sw-row { break-inside: avoid; page-break-inside: avoid; }\n .sw-part-name, .sw-header, .sw-lay { break-after: avoid-page; page-break-after: avoid; }\n .sw-hl { background: none !important; }\n /* Keep each engraved staff system whole across a page break (the abcjs line\n is a <div> wrapping the <svg>, so the break rule must sit on the div). */\n .sw-staff-lines > div { break-inside: avoid; page-break-inside: avoid; }\n .sw-staff-meta { break-after: avoid-page; page-break-after: avoid; }\n}\n";
235
240
  /** Staff-notation (abcjs) wrapper chrome: instrument/tempo header + a fluid
236
241
  * SVG. The engraving itself is drawn by abcjs; this only frames it. */
237
242
  declare const SWARALIPI_STAFF_CSS = "\n.sw-staff { color: currentColor; }\n.sw-staff-meta { display: flex; gap: 1.25em; align-items: baseline; margin: 0 0 .5em; font-size: .95em; opacity: .85; }\n.sw-staff-instrument { font-weight: 600; }\n.sw-staff-drums { opacity: .75; }\n.sw-staff-tempo { font-variant-numeric: tabular-nums; }\n/* abcjs (oneSvgPerLine) wraps the music into one <div><svg> per system; stack\n them as short, swaralipi-style lines. abcjs sets a fixed pixel height +\n overflow:hidden on each wrapper div \u2014 neutralise it so the viewBox'd SVG can\n scale to the container (and to the print page) instead of being clipped. */\n.sw-staff-lines > div { margin: 0 0 .35em; height: auto !important; overflow: visible !important; }\n/* Fill up to the engraved (staffwidth) size \u2014 shrink to fit a narrow container,\n but never stretch past natural width (abcToSvg pins per-SVG max-width in px),\n else a short last system balloons. */\n.sw-staff-lines svg { display: block; width: 100%; height: auto; }\n.sw-staff-missing { padding: 1em; border: 1px dashed currentColor; border-radius: 6px; opacity: .8; font-size: .9em; }\n.sw-staff-title { font-size: 1.15em; font-weight: 700; }\n.sw-staff-subtitle { opacity: .8; font-size: .95em; margin-top: .15em; }\n";
@@ -522,4 +527,4 @@ type Transliterator = (bengaliText: string) => string;
522
527
  */
523
528
  declare function loadLyricTransliterator(lang: ViewerLang): Promise<Transliterator | undefined>;
524
529
 
525
- export { type Arc, type Cell, type Cluster, type ComposeOptions, DEFAULT_NOTATOR, DEFAULT_WATERMARK, DIGITS, type GridLang, LABELS, type Layout, MARKS, MAX_ZOOM, MIN_ZOOM, NOTATION_FONT_URLS, type PrintOptions, type RenderOptions, SWARALIPI_CSS, SWARALIPI_PRINT_CSS, SWARALIPI_STAFF_CSS, type StaffOptions, type SwaralipiSheetElement, type TaalStaffOptions, type Transliterator, type ViewerLang, ZOOM_STEP, abcDuration, abcToSvg, alignRows, buildAbc, buildTaalAbc, cellMatra, composeCluster, defineSwaralipiSheet, docToAbc, fitSwaralipi, groupRowIntoCells, loadLyricTransliterator, localizeDigits, midiToAbc, printSwaralipi, renderMetaHeader, renderPrintDocument, renderStaffHtml, renderStaffPrintDocument, renderTaalStaffHtml, renderToHtml, resolveArcs };
530
+ export { type Arc, type Cell, type Cluster, type ComposeOptions, DEFAULT_NOTATOR, DEFAULT_WATERMARK, DIGITS, type GridLang, LABELS, LAY_LABELS, type Layout, MARKS, MAX_ZOOM, MIN_ZOOM, NOTATION_FONT_URLS, type PrintOptions, type RenderOptions, SWARALIPI_CSS, SWARALIPI_PRINT_CSS, SWARALIPI_STAFF_CSS, type StaffOptions, type SwaralipiSheetElement, type TaalStaffOptions, type Transliterator, type ViewerLang, ZOOM_STEP, abcDuration, abcToSvg, alignRows, buildAbc, buildTaalAbc, cellMatra, composeCluster, defineSwaralipiSheet, docToAbc, fitSwaralipi, groupRowIntoCells, loadLyricTransliterator, localizeDigits, midiToAbc, printSwaralipi, renderMetaHeader, renderPrintDocument, renderStaffHtml, renderStaffPrintDocument, renderTaalStaffHtml, renderToHtml, resolveArcs };
@@ -1,5 +1,5 @@
1
- import { isArcRaw, glideTargets, buildSchedule, drumPattern } from '../chunk-TKTQCUKD.js';
2
- import { hasKomal, TAALS, graceNotes } from '../chunk-QM4CXKW2.js';
1
+ import { isArcRaw, glideTargets, buildSchedule, drumPattern } from '../chunk-4IVUPMRK.js';
2
+ import { hasKomal, TAALS, graceNotes } from '../chunk-4HNT6OAT.js';
3
3
 
4
4
  // src/viewer/glyphs.ts
5
5
  var SWARABITAN_SHUDDHA = {
@@ -44,6 +44,11 @@ var LABELS = {
44
44
  // one taal cycle is exactly what the number counts.
45
45
  en: { title: "Song", taal: "Taal", raag: "Raag", avartan: "Cycles", notationBy: "Notator" }
46
46
  };
47
+ var LAY_LABELS = {
48
+ bn: { drut: "\u09A6\u09CD\u09B0\u09C1\u09A4 \u09B2\u09AF\u09BC", madhya: "\u09AE\u09A7\u09CD\u09AF \u09B2\u09AF\u09BC", vilambit: "\u09AC\u09BF\u09B2\u09AE\u09CD\u09AC\u09BF\u09A4 \u09B2\u09AF\u09BC" },
49
+ hi: { drut: "\u0926\u094D\u0930\u0941\u0924 \u0932\u092F", madhya: "\u092E\u0927\u094D\u092F \u0932\u092F", vilambit: "\u0935\u093F\u0932\u0902\u092C\u093F\u0924 \u0932\u092F" },
50
+ en: { drut: "Fast (drut)", madhya: "Medium (madhya)", vilambit: "Slow (vilambit)" }
51
+ };
47
52
  function composeCluster(letter, opts) {
48
53
  const classes = [];
49
54
  if (opts.lang === "bn") {
@@ -478,11 +483,18 @@ function renderToHtml(doc, opts = {}) {
478
483
  if (opts.showHeader !== false) out.push(renderHeader(doc.meta, ctx));
479
484
  out.push(`<div class="sw-scroll"><div class="sw-block" style="${tracks}">`);
480
485
  let n = 0;
486
+ let lay;
481
487
  doc.parts.forEach((part, p) => {
482
488
  out.push('<section class="sw-part">');
483
489
  if (part.name !== void 0)
484
490
  out.push(`<h3 class="sw-part-name">${escapeHtml(ctx.tr(part.name))}</h3>`);
485
- part.rows.forEach((row, r) => out.push(renderRow(row, p, r, layout.offsets[n++], ctx)));
491
+ part.rows.forEach((row, r) => {
492
+ if (row.lay !== void 0 && row.lay !== lay) {
493
+ lay = row.lay;
494
+ out.push(`<div class="sw-lay" data-lay="${lay}">${escapeHtml(LAY_LABELS[ctx.lang][lay])}</div>`);
495
+ }
496
+ out.push(renderRow(row, p, r, layout.offsets[n++], ctx));
497
+ });
486
498
  out.push("</section>");
487
499
  });
488
500
  out.push("</div></div></div>");
@@ -574,6 +586,30 @@ ${FONT_FACES}
574
586
 
575
587
  .sw-part-name { font-size: 0.85em; font-weight: 600; margin: 1em 0 0.2em; opacity: 0.85; }
576
588
 
589
+ /* \u09B2\u09AF\u09BC marker: the line where the tempo tier turns over. A full-width rule
590
+ rather than a row label \u2014 the label track is what the notation columns are
591
+ measured against, and a six-em word in it would shove the whole sheet right. */
592
+ .sw-lay {
593
+ grid-column: 1 / -1;
594
+ display: flex;
595
+ align-items: center;
596
+ gap: 0.6em;
597
+ margin: 0.8em 0 0;
598
+ /* Floored like the header: fitSwaralipi shrinks the sheet to fit the
599
+ notation's columns, and this label has none to align. */
600
+ font-size: max(0.7em, var(--sw-lay-min, 0.72rem));
601
+ font-weight: 600;
602
+ letter-spacing: 0.09em;
603
+ opacity: 0.75;
604
+ break-after: avoid;
605
+ }
606
+ .sw-lay::after {
607
+ content: '';
608
+ flex: 1;
609
+ height: 1px;
610
+ background: var(--sw-rule, rgba(128, 128, 128, 0.35));
611
+ }
612
+
577
613
  /* ---- block grid: ONE column set for the whole sheet ----
578
614
  * NLTR emits a song as a single html table, which is why its lines align
579
615
  * down the page. Same here: .sw-block owns the tracks, every .sw-row
@@ -758,7 +794,7 @@ var SWARALIPI_PRINT_CSS = `
758
794
  .sw-sheet, .sw-staff { -webkit-print-color-adjust: exact; print-color-adjust: exact; color: #000; }
759
795
  .sw-scroll { overflow: visible !important; }
760
796
  .sw-row { break-inside: avoid; page-break-inside: avoid; }
761
- .sw-part-name, .sw-header { break-after: avoid-page; page-break-after: avoid; }
797
+ .sw-part-name, .sw-header, .sw-lay { break-after: avoid-page; page-break-after: avoid; }
762
798
  .sw-hl { background: none !important; }
763
799
  /* Keep each engraved staff system whole across a page break (the abcjs line
764
800
  is a <div> wrapping the <svg>, so the break rule must sit on the div). */
@@ -911,7 +947,7 @@ function resolveDrumTaal(doc) {
911
947
  return id !== void 0 && id in TAALS ? TAALS[id] : { numBeats: 4, sam: 0 };
912
948
  }
913
949
  function docToAbc(doc, opts = {}) {
914
- const schedule = buildSchedule(doc, { tonic: opts.tonic, baseOctave: opts.baseOctave });
950
+ const schedule = buildSchedule(doc, { tonic: opts.tonic, baseOctave: opts.baseOctave, lay: false });
915
951
  const bpm = opts.bpm ?? doc.meta.bpm ?? 90;
916
952
  const beatsPerBar = opts.beatsPerBar ?? doc.meta.taal?.numBeats ?? 4;
917
953
  const drums = opts.drums ? drumPattern(resolveDrumTaal(doc)) : void 0;
@@ -975,7 +1011,7 @@ async function abcToSvg(abc, opts = {}, notePaths) {
975
1011
  async function renderStaffHtml(doc, opts = {}) {
976
1012
  const bpm = opts.bpm ?? doc.meta.bpm ?? 90;
977
1013
  const abc = docToAbc(doc, { ...opts, bpm });
978
- const schedule = buildSchedule(doc, { tonic: opts.tonic, baseOctave: opts.baseOctave });
1014
+ const schedule = buildSchedule(doc, { tonic: opts.tonic, baseOctave: opts.baseOctave, lay: false });
979
1015
  const engraved = await abcToSvg(abc, opts, eventPaths(schedule));
980
1016
  const lines = engraved.includes("sw-staff-missing") ? engraved : `<div class="sw-staff-lines">${engraved}</div>`;
981
1017
  const header = opts.showHeader === false ? "" : renderMetaHeader(doc.meta, opts.headerLang ?? "en", opts.transliterate);
@@ -1382,6 +1418,6 @@ function defineSwaralipiSheet(tagName = "swaralipi-sheet") {
1382
1418
  return ctor;
1383
1419
  }
1384
1420
 
1385
- export { DEFAULT_NOTATOR, DEFAULT_WATERMARK, DIGITS, LABELS, MARKS, MAX_ZOOM, MIN_ZOOM, NOTATION_FONT_URLS, SWARALIPI_CSS, SWARALIPI_PRINT_CSS, SWARALIPI_STAFF_CSS, ZOOM_STEP, abcDuration, abcToSvg, alignRows, buildAbc, buildTaalAbc, cellMatra, composeCluster, defineSwaralipiSheet, docToAbc, fitSwaralipi, groupRowIntoCells, loadLyricTransliterator, localizeDigits, midiToAbc, printSwaralipi, renderMetaHeader, renderPrintDocument, renderStaffHtml, renderStaffPrintDocument, renderTaalStaffHtml, renderToHtml, resolveArcs };
1421
+ export { DEFAULT_NOTATOR, DEFAULT_WATERMARK, DIGITS, LABELS, LAY_LABELS, MARKS, MAX_ZOOM, MIN_ZOOM, NOTATION_FONT_URLS, SWARALIPI_CSS, SWARALIPI_PRINT_CSS, SWARALIPI_STAFF_CSS, ZOOM_STEP, abcDuration, abcToSvg, alignRows, buildAbc, buildTaalAbc, cellMatra, composeCluster, defineSwaralipiSheet, docToAbc, fitSwaralipi, groupRowIntoCells, loadLyricTransliterator, localizeDigits, midiToAbc, printSwaralipi, renderMetaHeader, renderPrintDocument, renderStaffHtml, renderStaffPrintDocument, renderTaalStaffHtml, renderToHtml, resolveArcs };
1386
1422
  //# sourceMappingURL=index.js.map
1387
1423
  //# sourceMappingURL=index.js.map