chordsheetjs 14.2.1 → 14.3.1

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/lib/bundle.js CHANGED
@@ -33033,6 +33033,10 @@ var ChordSheetJS = (() => {
33033
33033
  $parcel$export(module.exports, "UltimateGuitarParser", () => $a5a21ced491ea51f$export$2e2bcd8739ae039);
33034
33034
  $parcel$export(module.exports, "templateHelpers", () => $f9c5006b26957916$export$2e2bcd8739ae039);
33035
33035
  $parcel$export(module.exports, "version", () => $ae92e002ce14f11a$export$2e2bcd8739ae039);
33036
+ $parcel$export(module.exports, "IMAGE", () => $d21c5c7a462f3c34$export$74f94c628b84d921);
33037
+ $parcel$export(module.exports, "defaultPangoRenderer", () => $1883202621c13add$export$6be9e661c5b42166);
33038
+ $parcel$export(module.exports, "pangoToHtml", () => $1883202621c13add$export$599bd3ab2aa4735e);
33039
+ $parcel$export(module.exports, "stripPangoMarkup", () => $1883202621c13add$export$3dd9b04564de283e);
33036
33040
  $parcel$export(module.exports, "BaseMeasurer", () => $0048d0bdc92a2f71$export$2027fef7414ae7df);
33037
33041
  $parcel$export(module.exports, "JsPdfMeasurer", () => $084c3084a14f9d9d$export$341872369d2a416a);
33038
33042
  $parcel$export(module.exports, "DomMeasurer", () => $35ce8f94943604d8$export$74d213ae39da8aef);
@@ -33043,6 +33047,7 @@ var ChordSheetJS = (() => {
33043
33047
  $parcel$export(module.exports, "INDETERMINATE", () => $dce48cb70c4120bb$export$c5a6fe907430212e);
33044
33048
  $parcel$export(module.exports, "LILYPOND", () => $dce48cb70c4120bb$export$6a5a2eab72b6e3d);
33045
33049
  $parcel$export(module.exports, "NONE", () => $dce48cb70c4120bb$export$c53d0f541b41b88e);
33050
+ $parcel$export(module.exports, "SVG", () => $dce48cb70c4120bb$export$13f4b12aafeba5d6);
33046
33051
  $parcel$export(module.exports, "NUMERIC", () => $dce48cb70c4120bb$export$4d318981b5a83836);
33047
33052
  $parcel$export(module.exports, "SOLFEGE", () => $dce48cb70c4120bb$export$539a6499f4711c57);
33048
33053
  $parcel$export(module.exports, "SYMBOL", () => $dce48cb70c4120bb$export$27c95a7104c1f7aa);
@@ -33343,6 +33348,7 @@ var ChordSheetJS = (() => {
33343
33348
  var $dce48cb70c4120bb$export$609cc0ea1637d6a0 = "part";
33344
33349
  var $dce48cb70c4120bb$export$6a5a2eab72b6e3d = "ly";
33345
33350
  var $dce48cb70c4120bb$export$92249c36c213e508 = "abc";
33351
+ var $dce48cb70c4120bb$export$13f4b12aafeba5d6 = "svg";
33346
33352
  var $dce48cb70c4120bb$export$5a2cf64ea612936a = "textblock";
33347
33353
  var $dce48cb70c4120bb$export$27c95a7104c1f7aa = "symbol";
33348
33354
  var $dce48cb70c4120bb$export$4d318981b5a83836 = "numeric";
@@ -33863,13 +33869,15 @@ var ChordSheetJS = (() => {
33863
33869
  * @param {string | null} lyrics The lyrics
33864
33870
  * @param {string | null} annotation The annotation
33865
33871
  * @param {Chord | null} chordObj Optional pre-parsed Chord object
33872
+ * @param {boolean} isRhythmSymbol Whether this pair represents a rhythm symbol
33866
33873
  */
33867
- constructor(chords = "", lyrics = null, annotation = null, chordObj = null) {
33874
+ constructor(chords = "", lyrics = null, annotation = null, chordObj = null, isRhythmSymbol = false) {
33868
33875
  this._chordObj = null;
33869
33876
  this.chords = chords || "";
33870
33877
  this.lyrics = lyrics || "";
33871
33878
  this.annotation = annotation || "";
33872
33879
  this._chordObj = chordObj;
33880
+ this.isRhythmSymbol = isRhythmSymbol;
33873
33881
  }
33874
33882
  /** Returns the Chord object if available, otherwise parses from string */
33875
33883
  get chord() {
@@ -33893,13 +33901,14 @@ var ChordSheetJS = (() => {
33893
33901
  * @returns {ChordLyricsPair}
33894
33902
  */
33895
33903
  clone() {
33896
- return new _$551a223fc13b5c10$var$ChordLyricsPair(this.chords, this.lyrics, this.annotation, this._chordObj?.clone() || null);
33904
+ const chordObj = this._chordObj?.clone() || null;
33905
+ return new _$551a223fc13b5c10$var$ChordLyricsPair(this.chords, this.lyrics, this.annotation, chordObj, this.isRhythmSymbol);
33897
33906
  }
33898
33907
  toString() {
33899
33908
  return `ChordLyricsPair(chords=${this.chords}, lyrics=${this.lyrics})`;
33900
33909
  }
33901
- set({ chords, lyrics, annotation, chordObj }) {
33902
- return new _$551a223fc13b5c10$var$ChordLyricsPair(chords ?? this.chords, lyrics ?? this.lyrics, annotation ?? this.annotation, chordObj ?? null);
33910
+ set({ chords, lyrics, annotation, chordObj, isRhythmSymbol }) {
33911
+ return new _$551a223fc13b5c10$var$ChordLyricsPair(chords ?? this.chords, lyrics ?? this.lyrics, annotation ?? this.annotation, chordObj ?? null, isRhythmSymbol ?? this.isRhythmSymbol);
33903
33912
  }
33904
33913
  setLyrics(lyrics) {
33905
33914
  return this.set({
@@ -38076,6 +38085,7 @@ ${error.stack}`);
38076
38085
  var $d21c5c7a462f3c34$export$98424633dc8c377f = "composer";
38077
38086
  var $d21c5c7a462f3c34$export$4ab8c75045d12480 = "copyright";
38078
38087
  var $d21c5c7a462f3c34$export$bacc88974c736870 = "duration";
38088
+ var $d21c5c7a462f3c34$export$74f94c628b84d921 = "image";
38079
38089
  var $d21c5c7a462f3c34$export$37c7b13f53af2469 = "end_of_abc";
38080
38090
  var $d21c5c7a462f3c34$export$1c874e9780385ecd = "end_of_bridge";
38081
38091
  var $d21c5c7a462f3c34$export$473c1a4819e5180b = "end_of_chorus";
@@ -38094,6 +38104,8 @@ ${error.stack}`);
38094
38104
  var $d21c5c7a462f3c34$export$b7e6dcd848b88f43 = "start_of_grid";
38095
38105
  var $d21c5c7a462f3c34$export$634ff7795b596e62 = "start_of_ly";
38096
38106
  var $d21c5c7a462f3c34$export$8dd1111100e0e88d = "start_of_tab";
38107
+ var $d21c5c7a462f3c34$export$f00bcf8e7b9de088 = "start_of_svg";
38108
+ var $d21c5c7a462f3c34$export$877835b3edffe4c3 = "end_of_svg";
38097
38109
  var $d21c5c7a462f3c34$export$4252eb8e075f7d7a = "start_of_textblock";
38098
38110
  var $d21c5c7a462f3c34$export$f1e557abc415d751 = "end_of_textblock";
38099
38111
  var $d21c5c7a462f3c34$export$deca399f8cd9b7dc = "start_of_verse";
@@ -38119,6 +38131,7 @@ ${error.stack}`);
38119
38131
  [(0, $d21c5c7a462f3c34$export$4f5168acae064e01)]: (0, $d21c5c7a462f3c34$export$8db6c706fc9142b2),
38120
38132
  [(0, $d21c5c7a462f3c34$export$b7e6dcd848b88f43)]: (0, $dce48cb70c4120bb$export$e2b0b9a5e613f348),
38121
38133
  [(0, $d21c5c7a462f3c34$export$634ff7795b596e62)]: (0, $dce48cb70c4120bb$export$6a5a2eab72b6e3d),
38134
+ [(0, $d21c5c7a462f3c34$export$f00bcf8e7b9de088)]: (0, $dce48cb70c4120bb$export$13f4b12aafeba5d6),
38122
38135
  [(0, $d21c5c7a462f3c34$export$8dd1111100e0e88d)]: (0, $dce48cb70c4120bb$export$f1c9dd0f5207dd5e),
38123
38136
  [(0, $d21c5c7a462f3c34$export$4252eb8e075f7d7a)]: (0, $dce48cb70c4120bb$export$5a2cf64ea612936a),
38124
38137
  [(0, $d21c5c7a462f3c34$export$deca399f8cd9b7dc)]: (0, $dce48cb70c4120bb$export$4b194284baed1659)
@@ -38129,6 +38142,7 @@ ${error.stack}`);
38129
38142
  [(0, $d21c5c7a462f3c34$export$473c1a4819e5180b)]: (0, $d21c5c7a462f3c34$export$8db6c706fc9142b2),
38130
38143
  [(0, $d21c5c7a462f3c34$export$4b28ac1ae75aff60)]: (0, $dce48cb70c4120bb$export$e2b0b9a5e613f348),
38131
38144
  [(0, $d21c5c7a462f3c34$export$e3f6cdbd95b1f8f)]: (0, $dce48cb70c4120bb$export$6a5a2eab72b6e3d),
38145
+ [(0, $d21c5c7a462f3c34$export$877835b3edffe4c3)]: (0, $dce48cb70c4120bb$export$13f4b12aafeba5d6),
38132
38146
  [(0, $d21c5c7a462f3c34$export$66a0ef3ffeab32b7)]: (0, $dce48cb70c4120bb$export$f1c9dd0f5207dd5e),
38133
38147
  [(0, $d21c5c7a462f3c34$export$f1e557abc415d751)]: (0, $dce48cb70c4120bb$export$5a2cf64ea612936a),
38134
38148
  [(0, $d21c5c7a462f3c34$export$640d294ab83f9040)]: (0, $dce48cb70c4120bb$export$4b194284baed1659)
@@ -38218,7 +38232,8 @@ ${error.stack}`);
38218
38232
  var $7251dad5f4a4c35f$var$START_OF_PART_SHORTER = "p";
38219
38233
  var $7251dad5f4a4c35f$var$END_OF_PART_SHORTER = "ep";
38220
38234
  var $7251dad5f4a4c35f$var$RENDERABLE_TAGS = [
38221
- (0, $d21c5c7a462f3c34$export$a29989082612d0d9)
38235
+ (0, $d21c5c7a462f3c34$export$a29989082612d0d9),
38236
+ (0, $d21c5c7a462f3c34$export$74f94c628b84d921)
38222
38237
  ];
38223
38238
  var $7251dad5f4a4c35f$export$57ecf0dc09effb3 = [
38224
38239
  (0, $d21c5c7a462f3c34$export$f1e53f710478ceb4),
@@ -38256,6 +38271,7 @@ ${error.stack}`);
38256
38271
  (0, $d21c5c7a462f3c34$export$4f5168acae064e01),
38257
38272
  (0, $d21c5c7a462f3c34$export$b7e6dcd848b88f43),
38258
38273
  (0, $d21c5c7a462f3c34$export$634ff7795b596e62),
38274
+ (0, $d21c5c7a462f3c34$export$f00bcf8e7b9de088),
38259
38275
  (0, $d21c5c7a462f3c34$export$8dd1111100e0e88d),
38260
38276
  (0, $d21c5c7a462f3c34$export$4252eb8e075f7d7a),
38261
38277
  (0, $d21c5c7a462f3c34$export$deca399f8cd9b7dc),
@@ -38362,6 +38378,12 @@ ${error.stack}`);
38362
38378
  isComment() {
38363
38379
  return this.name === (0, $d21c5c7a462f3c34$export$a29989082612d0d9) || this.name === $7251dad5f4a4c35f$var$COMMENT_SHORT;
38364
38380
  }
38381
+ /**
38382
+ * Checks whether the tag is an image tag ({image}).
38383
+ */
38384
+ isImage() {
38385
+ return this.name === (0, $d21c5c7a462f3c34$export$74f94c628b84d921);
38386
+ }
38365
38387
  set name(name) {
38366
38388
  this._name = $7251dad5f4a4c35f$var$translateTagNameAlias(name);
38367
38389
  this._originalName = name;
@@ -38423,13 +38445,21 @@ ${error.stack}`);
38423
38445
  return ($7251dad5f4a4c35f$var$DIRECTIVES_WITH_RENDERABLE_LABEL.includes(this.name) || this.isSectionStart()) && this.hasLabel();
38424
38446
  }
38425
38447
  /**
38426
- * Checks whether the tag is either a standard meta tag or a custom meta directive (`{x_some_name}`)
38448
+ * Checks whether the tag is a standard meta tag, a custom meta directive (`{x_some_name}`)
38449
+ * or a non-standard meta tag (`{meta: name value}`)
38427
38450
  * @returns {boolean}
38428
38451
  */
38429
38452
  isMetaTag() {
38430
38453
  return this._isMetaTag || $7251dad5f4a4c35f$var$CUSTOM_META_TAG_NAME_REGEX.test(this.name) || $7251dad5f4a4c35f$export$57ecf0dc09effb3.indexOf(this.name) !== -1;
38431
38454
  }
38432
38455
  /**
38456
+ * Checks whether this tag is a standard meta tag or a custom meta directive (`{x_some_name}`)
38457
+ * @returns {boolean}
38458
+ */
38459
+ isStandardOrCustomMetaTag() {
38460
+ return $7251dad5f4a4c35f$export$57ecf0dc09effb3.indexOf(this.name) !== -1 || $7251dad5f4a4c35f$var$CUSTOM_META_TAG_NAME_REGEX.test(this.name);
38461
+ }
38462
+ /**
38433
38463
  * Returns a clone of the tag.
38434
38464
  * @returns {Tag} The cloned tag
38435
38465
  */
@@ -38465,6 +38495,7 @@ ${error.stack}`);
38465
38495
  var $287d3e472e1fbd90$export$7d00225c1398f6c0 = {
38466
38496
  abc: $287d3e472e1fbd90$export$f152539e8297cacc,
38467
38497
  ly: $287d3e472e1fbd90$export$f152539e8297cacc,
38498
+ svg: $287d3e472e1fbd90$export$f152539e8297cacc,
38468
38499
  tab: $287d3e472e1fbd90$export$f152539e8297cacc,
38469
38500
  grid: $287d3e472e1fbd90$export$f152539e8297cacc
38470
38501
  };
@@ -38488,6 +38519,7 @@ ${error.stack}`);
38488
38519
  column: "column",
38489
38520
  comment: "comment",
38490
38521
  emptyLine: "empty-line",
38522
+ image: "image",
38491
38523
  label: "label",
38492
38524
  labelWrapper: "label-wrapper",
38493
38525
  line: "line",
@@ -38495,6 +38527,7 @@ ${error.stack}`);
38495
38527
  literalContents: "contents",
38496
38528
  lyrics: "lyrics",
38497
38529
  paragraph: "paragraph",
38530
+ rhythmSymbol: "rhythm-symbol",
38498
38531
  row: "row",
38499
38532
  subtitle: "subtitle",
38500
38533
  title: "title"
@@ -39199,6 +39232,7 @@ ${error.stack}`);
39199
39232
  formatMetadataSection(metadataLines) {
39200
39233
  return metadataLines.map((line) => {
39201
39234
  const tag = line.items[0];
39235
+ if (!tag.isStandardOrCustomMetaTag()) return `{meta: ${tag.originalName} ${tag.value}}`;
39202
39236
  return this.formatTag(tag);
39203
39237
  });
39204
39238
  }
@@ -41139,13 +41173,15 @@ Or set the song key before changing key:
41139
41173
  return serializedTag;
41140
41174
  }
41141
41175
  serializeChordLyricsPair(chordLyricsPair) {
41142
- return {
41176
+ const serialized = {
41143
41177
  type: $8b93ef43471b6ed2$var$CHORD_LYRICS_PAIR,
41144
41178
  chords: chordLyricsPair.chords,
41145
41179
  chord: null,
41146
41180
  lyrics: chordLyricsPair.lyrics,
41147
41181
  annotation: chordLyricsPair.annotation
41148
41182
  };
41183
+ if (chordLyricsPair.isRhythmSymbol) serialized.isRhythmSymbol = true;
41184
+ return serialized;
41149
41185
  }
41150
41186
  serializeTernary(ternary) {
41151
41187
  return {
@@ -41216,8 +41252,8 @@ Or set the song key before changing key:
41216
41252
  });
41217
41253
  }
41218
41254
  parseChordLyricsPair(astComponent) {
41219
- const { chord, chords, lyrics, annotation } = astComponent;
41220
- return new (0, $551a223fc13b5c10$export$2e2bcd8739ae039)(chord ? new (0, $177a605b8569b31c$export$2e2bcd8739ae039)(chord).toString() : chords, lyrics, annotation);
41255
+ const { chord, chords, lyrics, annotation, isRhythmSymbol } = astComponent;
41256
+ return new (0, $551a223fc13b5c10$export$2e2bcd8739ae039)(chord ? new (0, $177a605b8569b31c$export$2e2bcd8739ae039)(chord).toString() : chords, lyrics, annotation, null, isRhythmSymbol || false);
41221
41257
  }
41222
41258
  parseTag(astComponent) {
41223
41259
  const { name, value, location: { offset = null, line = null, column = null } = {}, chordDefinition, attributes, selector, isNegated } = astComponent;
@@ -41931,43 +41967,47 @@ Or set the song key before changing key:
41931
41967
  const peg$c143 = peg$literalExpectation("start_of_ly", false);
41932
41968
  const peg$c144 = "end_of_ly";
41933
41969
  const peg$c145 = peg$literalExpectation("end_of_ly", false);
41934
- const peg$c146 = "start_of_tab";
41935
- const peg$c147 = peg$literalExpectation("start_of_tab", false);
41936
- const peg$c148 = "sot";
41937
- const peg$c149 = peg$literalExpectation("sot", false);
41938
- const peg$c150 = "end_of_tab";
41939
- const peg$c151 = peg$literalExpectation("end_of_tab", false);
41940
- const peg$c152 = "eot";
41941
- const peg$c153 = peg$literalExpectation("eot", false);
41942
- const peg$c154 = "start_of_textblock";
41943
- const peg$c155 = peg$literalExpectation("start_of_textblock", false);
41944
- const peg$c156 = "end_of_textblock";
41945
- const peg$c157 = peg$literalExpectation("end_of_textblock", false);
41946
- const peg$c158 = peg$anyExpectation();
41947
- const peg$c159 = peg$otherExpectation("whitespace");
41948
- const peg$c160 = peg$otherExpectation("optional whitespace");
41949
- const peg$c161 = /^[ \t\n\r]/;
41950
- const peg$c162 = peg$classExpectation([
41970
+ const peg$c146 = "start_of_svg";
41971
+ const peg$c147 = peg$literalExpectation("start_of_svg", false);
41972
+ const peg$c148 = "end_of_svg";
41973
+ const peg$c149 = peg$literalExpectation("end_of_svg", false);
41974
+ const peg$c150 = "start_of_tab";
41975
+ const peg$c151 = peg$literalExpectation("start_of_tab", false);
41976
+ const peg$c152 = "sot";
41977
+ const peg$c153 = peg$literalExpectation("sot", false);
41978
+ const peg$c154 = "end_of_tab";
41979
+ const peg$c155 = peg$literalExpectation("end_of_tab", false);
41980
+ const peg$c156 = "eot";
41981
+ const peg$c157 = peg$literalExpectation("eot", false);
41982
+ const peg$c158 = "start_of_textblock";
41983
+ const peg$c159 = peg$literalExpectation("start_of_textblock", false);
41984
+ const peg$c160 = "end_of_textblock";
41985
+ const peg$c161 = peg$literalExpectation("end_of_textblock", false);
41986
+ const peg$c162 = peg$anyExpectation();
41987
+ const peg$c163 = peg$otherExpectation("whitespace");
41988
+ const peg$c164 = peg$otherExpectation("optional whitespace");
41989
+ const peg$c165 = /^[ \t\n\r]/;
41990
+ const peg$c166 = peg$classExpectation([
41951
41991
  " ",
41952
41992
  " ",
41953
41993
  "\n",
41954
41994
  "\r"
41955
41995
  ], false, false);
41956
- const peg$c163 = peg$otherExpectation("space");
41957
- const peg$c164 = /^[ \t]/;
41958
- const peg$c165 = peg$classExpectation([
41996
+ const peg$c167 = peg$otherExpectation("space");
41997
+ const peg$c168 = /^[ \t]/;
41998
+ const peg$c169 = peg$classExpectation([
41959
41999
  " ",
41960
42000
  " "
41961
42001
  ], false, false);
41962
- const peg$c166 = /^[\n\r]/;
41963
- const peg$c167 = peg$classExpectation([
42002
+ const peg$c170 = /^[\n\r]/;
42003
+ const peg$c171 = peg$classExpectation([
41964
42004
  "\n",
41965
42005
  "\r"
41966
42006
  ], false, false);
41967
- const peg$c168 = "\n";
41968
- const peg$c169 = peg$literalExpectation("\n", false);
41969
- const peg$c170 = "\r";
41970
- const peg$c171 = peg$literalExpectation("\r", false);
42007
+ const peg$c172 = "\n";
42008
+ const peg$c173 = peg$literalExpectation("\n", false);
42009
+ const peg$c174 = "\r";
42010
+ const peg$c175 = peg$literalExpectation("\r", false);
41971
42011
  let peg$currPos = 0;
41972
42012
  let peg$savedPos = 0;
41973
42013
  const peg$posDetailsCache = [
@@ -44156,8 +44196,11 @@ Or set the song key before changing key:
44156
44196
  if (s0 === peg$FAILED) {
44157
44197
  s0 = peg$parseLySection();
44158
44198
  if (s0 === peg$FAILED) {
44159
- s0 = peg$parseTabSection();
44160
- if (s0 === peg$FAILED) s0 = peg$parseTextblockSection();
44199
+ s0 = peg$parseSvgSection();
44200
+ if (s0 === peg$FAILED) {
44201
+ s0 = peg$parseTabSection();
44202
+ if (s0 === peg$FAILED) s0 = peg$parseTextblockSection();
44203
+ }
44161
44204
  }
44162
44205
  }
44163
44206
  }
@@ -44847,6 +44890,228 @@ Or set the song key before changing key:
44847
44890
  }
44848
44891
  return s0;
44849
44892
  }
44893
+ function peg$parseSvgSection() {
44894
+ let s0, s1, s22, s3, s4, s5, s6, s7;
44895
+ s0 = peg$currPos;
44896
+ s1 = peg$parseSvgStartTag();
44897
+ if (s1 !== peg$FAILED) {
44898
+ s22 = peg$parseNewLine();
44899
+ if (s22 !== peg$FAILED) {
44900
+ s3 = peg$currPos;
44901
+ s4 = [];
44902
+ s5 = peg$currPos;
44903
+ s6 = peg$currPos;
44904
+ peg$silentFails++;
44905
+ s7 = peg$parseSvgEndTag();
44906
+ peg$silentFails--;
44907
+ if (s7 === peg$FAILED) s6 = void 0;
44908
+ else {
44909
+ peg$currPos = s6;
44910
+ s6 = peg$FAILED;
44911
+ }
44912
+ if (s6 !== peg$FAILED) {
44913
+ s7 = peg$parseSectionCharacter();
44914
+ if (s7 !== peg$FAILED) {
44915
+ s6 = [
44916
+ s6,
44917
+ s7
44918
+ ];
44919
+ s5 = s6;
44920
+ } else {
44921
+ peg$currPos = s5;
44922
+ s5 = peg$FAILED;
44923
+ }
44924
+ } else {
44925
+ peg$currPos = s5;
44926
+ s5 = peg$FAILED;
44927
+ }
44928
+ while (s5 !== peg$FAILED) {
44929
+ s4.push(s5);
44930
+ s5 = peg$currPos;
44931
+ s6 = peg$currPos;
44932
+ peg$silentFails++;
44933
+ s7 = peg$parseSvgEndTag();
44934
+ peg$silentFails--;
44935
+ if (s7 === peg$FAILED) s6 = void 0;
44936
+ else {
44937
+ peg$currPos = s6;
44938
+ s6 = peg$FAILED;
44939
+ }
44940
+ if (s6 !== peg$FAILED) {
44941
+ s7 = peg$parseSectionCharacter();
44942
+ if (s7 !== peg$FAILED) {
44943
+ s6 = [
44944
+ s6,
44945
+ s7
44946
+ ];
44947
+ s5 = s6;
44948
+ } else {
44949
+ peg$currPos = s5;
44950
+ s5 = peg$FAILED;
44951
+ }
44952
+ } else {
44953
+ peg$currPos = s5;
44954
+ s5 = peg$FAILED;
44955
+ }
44956
+ }
44957
+ if (s4 !== peg$FAILED) s3 = input.substring(s3, peg$currPos);
44958
+ else s3 = s4;
44959
+ if (s3 !== peg$FAILED) {
44960
+ s4 = peg$parseSvgEndTag();
44961
+ if (s4 !== peg$FAILED) {
44962
+ peg$savedPos = s0;
44963
+ s1 = peg$c128(s1, s3, s4);
44964
+ s0 = s1;
44965
+ } else {
44966
+ peg$currPos = s0;
44967
+ s0 = peg$FAILED;
44968
+ }
44969
+ } else {
44970
+ peg$currPos = s0;
44971
+ s0 = peg$FAILED;
44972
+ }
44973
+ } else {
44974
+ peg$currPos = s0;
44975
+ s0 = peg$FAILED;
44976
+ }
44977
+ } else {
44978
+ peg$currPos = s0;
44979
+ s0 = peg$FAILED;
44980
+ }
44981
+ return s0;
44982
+ }
44983
+ function peg$parseSvgStartTag() {
44984
+ let s0, s1, s22, s3, s4, s5, s6, s7, s8;
44985
+ s0 = peg$currPos;
44986
+ if (input.charCodeAt(peg$currPos) === 123) {
44987
+ s1 = peg$c43;
44988
+ peg$currPos++;
44989
+ } else {
44990
+ s1 = peg$FAILED;
44991
+ if (peg$silentFails === 0) peg$fail(peg$c44);
44992
+ }
44993
+ if (s1 !== peg$FAILED) {
44994
+ s22 = peg$parse_();
44995
+ if (s22 !== peg$FAILED) {
44996
+ if (input.substr(peg$currPos, 12) === peg$c146) {
44997
+ s3 = peg$c146;
44998
+ peg$currPos += 12;
44999
+ } else {
45000
+ s3 = peg$FAILED;
45001
+ if (peg$silentFails === 0) peg$fail(peg$c147);
45002
+ }
45003
+ if (s3 !== peg$FAILED) {
45004
+ s4 = peg$parseTagSelector();
45005
+ if (s4 === peg$FAILED) s4 = null;
45006
+ if (s4 !== peg$FAILED) {
45007
+ s5 = peg$parse_();
45008
+ if (s5 !== peg$FAILED) {
45009
+ s6 = peg$parseTagColonWithValue();
45010
+ if (s6 === peg$FAILED) s6 = null;
45011
+ if (s6 !== peg$FAILED) {
45012
+ s7 = peg$parse_();
45013
+ if (s7 !== peg$FAILED) {
45014
+ if (input.charCodeAt(peg$currPos) === 125) {
45015
+ s8 = peg$c29;
45016
+ peg$currPos++;
45017
+ } else {
45018
+ s8 = peg$FAILED;
45019
+ if (peg$silentFails === 0) peg$fail(peg$c30);
45020
+ }
45021
+ if (s8 !== peg$FAILED) {
45022
+ peg$savedPos = s0;
45023
+ s1 = peg$c65(s3, s4, s6);
45024
+ s0 = s1;
45025
+ } else {
45026
+ peg$currPos = s0;
45027
+ s0 = peg$FAILED;
45028
+ }
45029
+ } else {
45030
+ peg$currPos = s0;
45031
+ s0 = peg$FAILED;
45032
+ }
45033
+ } else {
45034
+ peg$currPos = s0;
45035
+ s0 = peg$FAILED;
45036
+ }
45037
+ } else {
45038
+ peg$currPos = s0;
45039
+ s0 = peg$FAILED;
45040
+ }
45041
+ } else {
45042
+ peg$currPos = s0;
45043
+ s0 = peg$FAILED;
45044
+ }
45045
+ } else {
45046
+ peg$currPos = s0;
45047
+ s0 = peg$FAILED;
45048
+ }
45049
+ } else {
45050
+ peg$currPos = s0;
45051
+ s0 = peg$FAILED;
45052
+ }
45053
+ } else {
45054
+ peg$currPos = s0;
45055
+ s0 = peg$FAILED;
45056
+ }
45057
+ return s0;
45058
+ }
45059
+ function peg$parseSvgEndTag() {
45060
+ let s0, s1, s22, s3, s4, s5;
45061
+ s0 = peg$currPos;
45062
+ if (input.charCodeAt(peg$currPos) === 123) {
45063
+ s1 = peg$c43;
45064
+ peg$currPos++;
45065
+ } else {
45066
+ s1 = peg$FAILED;
45067
+ if (peg$silentFails === 0) peg$fail(peg$c44);
45068
+ }
45069
+ if (s1 !== peg$FAILED) {
45070
+ s22 = peg$parse_();
45071
+ if (s22 !== peg$FAILED) {
45072
+ if (input.substr(peg$currPos, 10) === peg$c148) {
45073
+ s3 = peg$c148;
45074
+ peg$currPos += 10;
45075
+ } else {
45076
+ s3 = peg$FAILED;
45077
+ if (peg$silentFails === 0) peg$fail(peg$c149);
45078
+ }
45079
+ if (s3 !== peg$FAILED) {
45080
+ s4 = peg$parse_();
45081
+ if (s4 !== peg$FAILED) {
45082
+ if (input.charCodeAt(peg$currPos) === 125) {
45083
+ s5 = peg$c29;
45084
+ peg$currPos++;
45085
+ } else {
45086
+ s5 = peg$FAILED;
45087
+ if (peg$silentFails === 0) peg$fail(peg$c30);
45088
+ }
45089
+ if (s5 !== peg$FAILED) {
45090
+ peg$savedPos = s0;
45091
+ s1 = peg$c133(s3);
45092
+ s0 = s1;
45093
+ } else {
45094
+ peg$currPos = s0;
45095
+ s0 = peg$FAILED;
45096
+ }
45097
+ } else {
45098
+ peg$currPos = s0;
45099
+ s0 = peg$FAILED;
45100
+ }
45101
+ } else {
45102
+ peg$currPos = s0;
45103
+ s0 = peg$FAILED;
45104
+ }
45105
+ } else {
45106
+ peg$currPos = s0;
45107
+ s0 = peg$FAILED;
45108
+ }
45109
+ } else {
45110
+ peg$currPos = s0;
45111
+ s0 = peg$FAILED;
45112
+ }
45113
+ return s0;
45114
+ }
44850
45115
  function peg$parseTabSection() {
44851
45116
  let s0, s1, s22, s3, s4, s5, s6, s7;
44852
45117
  s0 = peg$currPos;
@@ -44950,20 +45215,20 @@ Or set the song key before changing key:
44950
45215
  if (s1 !== peg$FAILED) {
44951
45216
  s22 = peg$parse_();
44952
45217
  if (s22 !== peg$FAILED) {
44953
- if (input.substr(peg$currPos, 12) === peg$c146) {
44954
- s3 = peg$c146;
45218
+ if (input.substr(peg$currPos, 12) === peg$c150) {
45219
+ s3 = peg$c150;
44955
45220
  peg$currPos += 12;
44956
45221
  } else {
44957
45222
  s3 = peg$FAILED;
44958
- if (peg$silentFails === 0) peg$fail(peg$c147);
45223
+ if (peg$silentFails === 0) peg$fail(peg$c151);
44959
45224
  }
44960
45225
  if (s3 === peg$FAILED) {
44961
- if (input.substr(peg$currPos, 3) === peg$c148) {
44962
- s3 = peg$c148;
45226
+ if (input.substr(peg$currPos, 3) === peg$c152) {
45227
+ s3 = peg$c152;
44963
45228
  peg$currPos += 3;
44964
45229
  } else {
44965
45230
  s3 = peg$FAILED;
44966
- if (peg$silentFails === 0) peg$fail(peg$c149);
45231
+ if (peg$silentFails === 0) peg$fail(peg$c153);
44967
45232
  }
44968
45233
  }
44969
45234
  if (s3 !== peg$FAILED) {
@@ -45035,20 +45300,20 @@ Or set the song key before changing key:
45035
45300
  if (s1 !== peg$FAILED) {
45036
45301
  s22 = peg$parse_();
45037
45302
  if (s22 !== peg$FAILED) {
45038
- if (input.substr(peg$currPos, 10) === peg$c150) {
45039
- s3 = peg$c150;
45303
+ if (input.substr(peg$currPos, 10) === peg$c154) {
45304
+ s3 = peg$c154;
45040
45305
  peg$currPos += 10;
45041
45306
  } else {
45042
45307
  s3 = peg$FAILED;
45043
- if (peg$silentFails === 0) peg$fail(peg$c151);
45308
+ if (peg$silentFails === 0) peg$fail(peg$c155);
45044
45309
  }
45045
45310
  if (s3 === peg$FAILED) {
45046
- if (input.substr(peg$currPos, 3) === peg$c152) {
45047
- s3 = peg$c152;
45311
+ if (input.substr(peg$currPos, 3) === peg$c156) {
45312
+ s3 = peg$c156;
45048
45313
  peg$currPos += 3;
45049
45314
  } else {
45050
45315
  s3 = peg$FAILED;
45051
- if (peg$silentFails === 0) peg$fail(peg$c153);
45316
+ if (peg$silentFails === 0) peg$fail(peg$c157);
45052
45317
  }
45053
45318
  }
45054
45319
  if (s3 !== peg$FAILED) {
@@ -45190,12 +45455,12 @@ Or set the song key before changing key:
45190
45455
  if (s1 !== peg$FAILED) {
45191
45456
  s22 = peg$parse_();
45192
45457
  if (s22 !== peg$FAILED) {
45193
- if (input.substr(peg$currPos, 18) === peg$c154) {
45194
- s3 = peg$c154;
45458
+ if (input.substr(peg$currPos, 18) === peg$c158) {
45459
+ s3 = peg$c158;
45195
45460
  peg$currPos += 18;
45196
45461
  } else {
45197
45462
  s3 = peg$FAILED;
45198
- if (peg$silentFails === 0) peg$fail(peg$c155);
45463
+ if (peg$silentFails === 0) peg$fail(peg$c159);
45199
45464
  }
45200
45465
  if (s3 !== peg$FAILED) {
45201
45466
  s4 = peg$parseTagSelector();
@@ -45266,12 +45531,12 @@ Or set the song key before changing key:
45266
45531
  if (s1 !== peg$FAILED) {
45267
45532
  s22 = peg$parse_();
45268
45533
  if (s22 !== peg$FAILED) {
45269
- if (input.substr(peg$currPos, 16) === peg$c156) {
45270
- s3 = peg$c156;
45534
+ if (input.substr(peg$currPos, 16) === peg$c160) {
45535
+ s3 = peg$c160;
45271
45536
  peg$currPos += 16;
45272
45537
  } else {
45273
45538
  s3 = peg$FAILED;
45274
- if (peg$silentFails === 0) peg$fail(peg$c157);
45539
+ if (peg$silentFails === 0) peg$fail(peg$c161);
45275
45540
  }
45276
45541
  if (s3 !== peg$FAILED) {
45277
45542
  s4 = peg$parse_();
@@ -45316,7 +45581,7 @@ Or set the song key before changing key:
45316
45581
  peg$currPos++;
45317
45582
  } else {
45318
45583
  s0 = peg$FAILED;
45319
- if (peg$silentFails === 0) peg$fail(peg$c158);
45584
+ if (peg$silentFails === 0) peg$fail(peg$c162);
45320
45585
  }
45321
45586
  return s0;
45322
45587
  }
@@ -45333,7 +45598,7 @@ Or set the song key before changing key:
45333
45598
  peg$silentFails--;
45334
45599
  if (s0 === peg$FAILED) {
45335
45600
  s1 = peg$FAILED;
45336
- if (peg$silentFails === 0) peg$fail(peg$c159);
45601
+ if (peg$silentFails === 0) peg$fail(peg$c163);
45337
45602
  }
45338
45603
  return s0;
45339
45604
  }
@@ -45349,18 +45614,18 @@ Or set the song key before changing key:
45349
45614
  peg$silentFails--;
45350
45615
  if (s0 === peg$FAILED) {
45351
45616
  s1 = peg$FAILED;
45352
- if (peg$silentFails === 0) peg$fail(peg$c160);
45617
+ if (peg$silentFails === 0) peg$fail(peg$c164);
45353
45618
  }
45354
45619
  return s0;
45355
45620
  }
45356
45621
  function peg$parseWhitespaceCharacter() {
45357
45622
  let s0;
45358
- if (peg$c161.test(input.charAt(peg$currPos))) {
45623
+ if (peg$c165.test(input.charAt(peg$currPos))) {
45359
45624
  s0 = input.charAt(peg$currPos);
45360
45625
  peg$currPos++;
45361
45626
  } else {
45362
45627
  s0 = peg$FAILED;
45363
- if (peg$silentFails === 0) peg$fail(peg$c162);
45628
+ if (peg$silentFails === 0) peg$fail(peg$c166);
45364
45629
  }
45365
45630
  return s0;
45366
45631
  }
@@ -45369,21 +45634,21 @@ Or set the song key before changing key:
45369
45634
  peg$silentFails++;
45370
45635
  s0 = peg$currPos;
45371
45636
  s1 = [];
45372
- if (peg$c164.test(input.charAt(peg$currPos))) {
45637
+ if (peg$c168.test(input.charAt(peg$currPos))) {
45373
45638
  s22 = input.charAt(peg$currPos);
45374
45639
  peg$currPos++;
45375
45640
  } else {
45376
45641
  s22 = peg$FAILED;
45377
- if (peg$silentFails === 0) peg$fail(peg$c165);
45642
+ if (peg$silentFails === 0) peg$fail(peg$c169);
45378
45643
  }
45379
45644
  if (s22 !== peg$FAILED) while (s22 !== peg$FAILED) {
45380
45645
  s1.push(s22);
45381
- if (peg$c164.test(input.charAt(peg$currPos))) {
45646
+ if (peg$c168.test(input.charAt(peg$currPos))) {
45382
45647
  s22 = input.charAt(peg$currPos);
45383
45648
  peg$currPos++;
45384
45649
  } else {
45385
45650
  s22 = peg$FAILED;
45386
- if (peg$silentFails === 0) peg$fail(peg$c165);
45651
+ if (peg$silentFails === 0) peg$fail(peg$c169);
45387
45652
  }
45388
45653
  }
45389
45654
  else s1 = peg$FAILED;
@@ -45392,18 +45657,18 @@ Or set the song key before changing key:
45392
45657
  peg$silentFails--;
45393
45658
  if (s0 === peg$FAILED) {
45394
45659
  s1 = peg$FAILED;
45395
- if (peg$silentFails === 0) peg$fail(peg$c163);
45660
+ if (peg$silentFails === 0) peg$fail(peg$c167);
45396
45661
  }
45397
45662
  return s0;
45398
45663
  }
45399
45664
  function peg$parseNewLine() {
45400
45665
  let s0;
45401
- if (peg$c166.test(input.charAt(peg$currPos))) {
45666
+ if (peg$c170.test(input.charAt(peg$currPos))) {
45402
45667
  s0 = input.charAt(peg$currPos);
45403
45668
  peg$currPos++;
45404
45669
  } else {
45405
45670
  s0 = peg$FAILED;
45406
- if (peg$silentFails === 0) peg$fail(peg$c167);
45671
+ if (peg$silentFails === 0) peg$fail(peg$c171);
45407
45672
  }
45408
45673
  if (s0 === peg$FAILED) s0 = peg$parseCarriageReturnLineFeed();
45409
45674
  return s0;
@@ -45433,22 +45698,22 @@ Or set the song key before changing key:
45433
45698
  function peg$parseLineFeed() {
45434
45699
  let s0;
45435
45700
  if (input.charCodeAt(peg$currPos) === 10) {
45436
- s0 = peg$c168;
45701
+ s0 = peg$c172;
45437
45702
  peg$currPos++;
45438
45703
  } else {
45439
45704
  s0 = peg$FAILED;
45440
- if (peg$silentFails === 0) peg$fail(peg$c169);
45705
+ if (peg$silentFails === 0) peg$fail(peg$c173);
45441
45706
  }
45442
45707
  return s0;
45443
45708
  }
45444
45709
  function peg$parseCarriageReturn() {
45445
45710
  let s0;
45446
45711
  if (input.charCodeAt(peg$currPos) === 13) {
45447
- s0 = peg$c170;
45712
+ s0 = peg$c174;
45448
45713
  peg$currPos++;
45449
45714
  } else {
45450
45715
  s0 = peg$FAILED;
45451
- if (peg$silentFails === 0) peg$fail(peg$c171);
45716
+ if (peg$silentFails === 0) peg$fail(peg$c175);
45452
45717
  }
45453
45718
  return s0;
45454
45719
  }
@@ -45616,6 +45881,107 @@ Or set the song key before changing key:
45616
45881
  }
45617
45882
  };
45618
45883
  var $e136d63bbe28a4e0$export$2e2bcd8739ae039 = $e136d63bbe28a4e0$var$ChordSheetParser;
45884
+ var $1883202621c13add$var$KNOWN_TAGS = "b|i|u|s|tt|big|small|sub|sup|span|strut|sym";
45885
+ var $1883202621c13add$var$PANGO_TAG_PATTERN = new RegExp(`<(?:\\/(?:${$1883202621c13add$var$KNOWN_TAGS})>|(?:${$1883202621c13add$var$KNOWN_TAGS})(?:\\s[^>]*)?\\/?>)`, "g");
45886
+ var $1883202621c13add$var$SYM_MAP = {
45887
+ sharp: "\u266F",
45888
+ flat: "\u266D",
45889
+ natural: "\u266E"
45890
+ };
45891
+ var $1883202621c13add$var$SPAN_ATTR_TO_CSS = {
45892
+ color: "color",
45893
+ foreground: "color",
45894
+ background: "background-color",
45895
+ font_family: "font-family",
45896
+ face: "font-family",
45897
+ size: "font-size",
45898
+ weight: "font-weight",
45899
+ style: "font-style"
45900
+ };
45901
+ var $1883202621c13add$var$PASSTHROUGH_TAGS = /* @__PURE__ */ new Set([
45902
+ "b",
45903
+ "i",
45904
+ "u",
45905
+ "s",
45906
+ "tt",
45907
+ "sub",
45908
+ "sup"
45909
+ ]);
45910
+ var $1883202621c13add$var$CONVERTED_TAGS = {
45911
+ big: "font-size: larger",
45912
+ small: "font-size: smaller"
45913
+ };
45914
+ var $1883202621c13add$var$PANGO_HTML_PATTERN = new RegExp(`<(${$1883202621c13add$var$KNOWN_TAGS})(\\s[^>]*)?\\/>|<(${$1883202621c13add$var$KNOWN_TAGS})(\\s[^>]*)?>|<\\/(${$1883202621c13add$var$KNOWN_TAGS})>`, "g");
45915
+ function $1883202621c13add$var$parseAttributes(attrString) {
45916
+ const attrs = {};
45917
+ const attrRegex = /(\w+)\s*=\s*"([^"]*)"/g;
45918
+ let result = attrRegex.exec(attrString);
45919
+ while (result !== null) {
45920
+ const [, key, value] = result;
45921
+ attrs[key] = value;
45922
+ result = attrRegex.exec(attrString);
45923
+ }
45924
+ return attrs;
45925
+ }
45926
+ function $1883202621c13add$var$spanAttrsToCss(attrs) {
45927
+ const properties = Object.entries($1883202621c13add$var$SPAN_ATTR_TO_CSS).filter(([pangoAttr]) => attrs[pangoAttr]).map(([pangoAttr, cssProperty]) => `${cssProperty}: ${attrs[pangoAttr]}`);
45928
+ if (attrs.underline && attrs.underline !== "none") properties.push("text-decoration: underline");
45929
+ if (attrs.strikethrough === "true") properties.push("text-decoration: line-through");
45930
+ return properties;
45931
+ }
45932
+ function $1883202621c13add$var$convertSpanOpen(attrString) {
45933
+ const attrs = $1883202621c13add$var$parseAttributes(attrString);
45934
+ if (attrs.href) return `<a href="${attrs.href}">`;
45935
+ const cssProperties = $1883202621c13add$var$spanAttrsToCss(attrs);
45936
+ if (cssProperties.length > 0) return `<span style="${cssProperties.join("; ")}">`;
45937
+ return "<span>";
45938
+ }
45939
+ function $1883202621c13add$var$handleSelfClosing(tag, attrString) {
45940
+ if (tag === "sym") {
45941
+ const attrs = $1883202621c13add$var$parseAttributes(attrString || "");
45942
+ return $1883202621c13add$var$SYM_MAP[attrs.name] || "";
45943
+ }
45944
+ return "";
45945
+ }
45946
+ function $1883202621c13add$var$handleOpenTag(tag, attrString, stack) {
45947
+ if ($1883202621c13add$var$PASSTHROUGH_TAGS.has(tag)) {
45948
+ stack.push(`</${tag}>`);
45949
+ return `<${tag}>`;
45950
+ }
45951
+ if ($1883202621c13add$var$CONVERTED_TAGS[tag]) {
45952
+ stack.push("</span>");
45953
+ return `<span style="${$1883202621c13add$var$CONVERTED_TAGS[tag]}">`;
45954
+ }
45955
+ if (tag === "span") {
45956
+ const html2 = $1883202621c13add$var$convertSpanOpen(attrString || "");
45957
+ stack.push(html2.startsWith("<a ") ? "</a>" : "</span>");
45958
+ return html2;
45959
+ }
45960
+ return null;
45961
+ }
45962
+ function $1883202621c13add$var$handleCloseTag(tag, stack) {
45963
+ if ($1883202621c13add$var$PASSTHROUGH_TAGS.has(tag)) {
45964
+ stack.pop();
45965
+ return `</${tag}>`;
45966
+ }
45967
+ if (tag === "big" || tag === "small" || tag === "span") return stack.pop() || `</${tag}>`;
45968
+ return null;
45969
+ }
45970
+ function $1883202621c13add$export$3dd9b04564de283e(text2) {
45971
+ return text2.replace($1883202621c13add$var$PANGO_TAG_PATTERN, "");
45972
+ }
45973
+ function $1883202621c13add$export$599bd3ab2aa4735e(text2) {
45974
+ const openTagStack = [];
45975
+ return text2.replace($1883202621c13add$var$PANGO_HTML_PATTERN, (match, scTag, scAttrs, openTag, openAttrs, closeTag) => {
45976
+ if (scTag) return $1883202621c13add$var$handleSelfClosing(scTag, scAttrs);
45977
+ if (openTag) return $1883202621c13add$var$handleOpenTag(openTag, openAttrs, openTagStack) ?? match;
45978
+ if (closeTag) return $1883202621c13add$var$handleCloseTag(closeTag, openTagStack) ?? match;
45979
+ return match;
45980
+ });
45981
+ }
45982
+ var $1883202621c13add$export$6be9e661c5b42166 = {
45983
+ convert: $1883202621c13add$export$599bd3ab2aa4735e
45984
+ };
45619
45985
  var $03e9fcfc02036874$var$MetadataProcessor = class {
45620
45986
  constructor(metadata, config) {
45621
45987
  this.metadata = metadata;
@@ -45738,6 +46104,9 @@ Or set the song key before changing key:
45738
46104
  function $f9c5006b26957916$export$17c9e635b932873b(item) {
45739
46105
  return item instanceof (0, $551a223fc13b5c10$export$2e2bcd8739ae039);
45740
46106
  }
46107
+ function $f9c5006b26957916$export$986cf1257ba88b40(item) {
46108
+ return item instanceof (0, $551a223fc13b5c10$export$2e2bcd8739ae039) && item.isRhythmSymbol;
46109
+ }
45741
46110
  function $f9c5006b26957916$export$3db5961874282581(line) {
45742
46111
  return line.items.some((item) => item.isRenderable());
45743
46112
  }
@@ -45750,6 +46119,15 @@ Or set the song key before changing key:
45750
46119
  function $f9c5006b26957916$export$3ab01370f5e64ac8(item) {
45751
46120
  return item.name === "comment";
45752
46121
  }
46122
+ function $f9c5006b26957916$export$fb85bc5d6d9ef19b(item) {
46123
+ return item.name === "image";
46124
+ }
46125
+ function $f9c5006b26957916$export$ffe18135619e1edf(item) {
46126
+ const src = item.attributes.src || item.value;
46127
+ const width = item.attributes.width ? ` width="${item.attributes.width}"` : "";
46128
+ const height = item.attributes.height ? ` height="${item.attributes.height}"` : "";
46129
+ return `<img src="${src}"${width}${height}>`;
46130
+ }
45753
46131
  function $f9c5006b26957916$export$1acacc9d015c61d9(item) {
45754
46132
  return item instanceof (0, $7251dad5f4a4c35f$export$2e2bcd8739ae039) && item.name === "column_break";
45755
46133
  }
@@ -45808,6 +46186,7 @@ Or set the song key before changing key:
45808
46186
  lineHasContents: $f9c5006b26957916$export$3db5961874282581,
45809
46187
  isTag: $f9c5006b26957916$export$3bf645f08efe3292,
45810
46188
  isComment: $f9c5006b26957916$export$3ab01370f5e64ac8,
46189
+ isImage: $f9c5006b26957916$export$fb85bc5d6d9ef19b,
45811
46190
  isColumnBreak: $f9c5006b26957916$export$1acacc9d015c61d9,
45812
46191
  stripHTML: $f9c5006b26957916$export$6ea1b0eb82ead3f,
45813
46192
  each: $f9c5006b26957916$export$79b2f7037acddd43,
@@ -45819,6 +46198,8 @@ Or set the song key before changing key:
45819
46198
  fontStyleTag: $f9c5006b26957916$export$ca030c9435779e4b,
45820
46199
  renderChord: $2ce1086ce25c9ac0$export$596ec52955da9472,
45821
46200
  hasChordContents: $28a2fcb6fb95a147$export$d332d76d125f0cbe,
46201
+ pangoToHtml: $1883202621c13add$export$599bd3ab2aa4735e,
46202
+ stripPangoMarkup: $1883202621c13add$export$3dd9b04564de283e,
45822
46203
  processMetadata: $f9c5006b26957916$export$5c964b66c4a8abfb
45823
46204
  };
45824
46205
  var $2d92af868d7c705a$var$ChordsOverWordsFormatter = class extends (0, $ed0d9ddbbe7224cd$export$2e2bcd8739ae039) {
@@ -45885,7 +46266,7 @@ Or set the song key before changing key:
45885
46266
  const content = chordLyricsPair.annotation || this.renderChord(chordLyricsPair, line);
45886
46267
  const { lyrics } = chordLyricsPair;
45887
46268
  const contentLength = (content || "").length;
45888
- const lyricsLength = (lyrics || "").length;
46269
+ const lyricsLength = (0, $1883202621c13add$export$3dd9b04564de283e)(lyrics || "").length;
45889
46270
  if (contentLength >= lyricsLength) return contentLength + 1;
45890
46271
  return Math.max(contentLength, lyricsLength);
45891
46272
  }
@@ -45924,7 +46305,7 @@ Or set the song key before changing key:
45924
46305
  return item.evaluate(metadata, this.configuration.metadata.separator);
45925
46306
  }
45926
46307
  formatChordLyricsPair(item, line) {
45927
- return (0, $28a2fcb6fb95a147$export$bc3bea8325045070)(item.lyrics || "", this.chordLyricsPairLength(item, line));
46308
+ return (0, $28a2fcb6fb95a147$export$bc3bea8325045070)((0, $1883202621c13add$export$3dd9b04564de283e)(item.lyrics || ""), this.chordLyricsPairLength(item, line));
45928
46309
  }
45929
46310
  constructor(...args) {
45930
46311
  super(...args), this.song = new (0, $c53141c05fae8382$export$2e2bcd8739ae039)();
@@ -46065,6 +46446,12 @@ Or set the song key before changing key:
46065
46446
  lyrics: null
46066
46447
  };
46067
46448
  case "symbol":
46449
+ return {
46450
+ type: "chordLyricsPair",
46451
+ chords: item.value,
46452
+ lyrics: null,
46453
+ isRhythmSymbol: true
46454
+ };
46068
46455
  case "noChord":
46069
46456
  return {
46070
46457
  type: "chordLyricsPair",
@@ -58347,7 +58734,9 @@ Or set the song key before changing key:
58347
58734
  }
58348
58735
  };
58349
58736
  var $df9247d334a0483e$export$2e2bcd8739ae039 = $df9247d334a0483e$var$ChordsOverWordsParser;
58350
- var $1408adfd7317f0b6$export$2e2bcd8739ae039 = ({ configuration, configuration: { key, cssClasses: c4 }, song, metadata, renderBlankLines = false, song: { title, subtitle }, bodyParagraphs }) => (0, $f9c5006b26957916$export$6ea1b0eb82ead3f)(`
58737
+ var $1408adfd7317f0b6$export$2e2bcd8739ae039 = ({ configuration, configuration: { key, cssClasses: c4 }, song, metadata, renderBlankLines = false, song: { title, subtitle }, bodyParagraphs }) => {
58738
+ const pango = configuration.pangoRenderer || (0, $1883202621c13add$export$6be9e661c5b42166);
58739
+ return (0, $f9c5006b26957916$export$6ea1b0eb82ead3f)(`
58351
58740
  ${(0, $f9c5006b26957916$export$a55877ca9db47377)(title, () => `<h1 class="${c4.title}">${title}</h1>`)}
58352
58741
  ${(0, $f9c5006b26957916$export$a55877ca9db47377)(subtitle, () => `<h2 class="${c4.subtitle}">${subtitle}</h2>`)}
58353
58742
 
@@ -58373,21 +58762,30 @@ Or set the song key before changing key:
58373
58762
  <div class="${c4.column}">
58374
58763
  ${(0, $f9c5006b26957916$export$a55877ca9db47377)(item.annotation).then(() => `
58375
58764
  <div class="${c4.annotation}"${(0, $f9c5006b26957916$export$ca030c9435779e4b)(line.chordFont)}>${item.annotation}</div>
58376
- `).else(() => `
58377
- <div class="${c4.chord}"${(0, $f9c5006b26957916$export$ca030c9435779e4b)(line.chordFont)}>
58765
+ `).else(() => {
58766
+ const cls = (0, $f9c5006b26957916$export$986cf1257ba88b40)(item) ? c4.rhythmSymbol : c4.chord;
58767
+ return `
58768
+ <div class="${cls}"${(0, $f9c5006b26957916$export$ca030c9435779e4b)(line.chordFont)}>
58378
58769
  ${(0, $2ce1086ce25c9ac0$export$596ec52955da9472)(item.chords, line, song, {
58379
- renderKey: key,
58380
- useUnicodeModifier: configuration.useUnicodeModifiers,
58381
- normalizeChords: configuration.normalizeChords,
58382
- decapo: configuration.decapo
58383
- })}
58770
+ renderKey: key,
58771
+ useUnicodeModifier: configuration.useUnicodeModifiers,
58772
+ normalizeChords: configuration.normalizeChords,
58773
+ decapo: configuration.decapo
58774
+ })}
58384
58775
  </div>
58385
- `)}
58386
- <div class="${c4.lyrics}"${(0, $f9c5006b26957916$export$ca030c9435779e4b)(line.textFont)}>${item.lyrics}</div>
58776
+ `;
58777
+ })}
58778
+ <div class="${c4.lyrics}"${(0, $f9c5006b26957916$export$ca030c9435779e4b)(line.textFont)}>
58779
+ ${pango.convert(item.lyrics || "")}
58780
+ </div>
58387
58781
  </div>
58388
58782
  `).elseWhen((0, $f9c5006b26957916$export$3bf645f08efe3292)(item), () => `
58389
58783
  ${(0, $f9c5006b26957916$export$a55877ca9db47377)((0, $f9c5006b26957916$export$3ab01370f5e64ac8)(item), () => `
58390
- <div class="${c4.comment}">${item.value}</div>
58784
+ <div class="${c4.comment}">${pango.convert(item.value || "")}</div>
58785
+ `)}
58786
+
58787
+ ${(0, $f9c5006b26957916$export$a55877ca9db47377)((0, $f9c5006b26957916$export$fb85bc5d6d9ef19b)(item), () => `
58788
+ <div class="${c4.image}">${(0, $f9c5006b26957916$export$ffe18135619e1edf)(item)}</div>
58391
58789
  `)}
58392
58790
 
58393
58791
  ${(0, $f9c5006b26957916$export$a55877ca9db47377)(item.hasRenderableLabel(), () => `
@@ -58410,6 +58808,7 @@ Or set the song key before changing key:
58410
58808
  `)}
58411
58809
  </div>
58412
58810
  `);
58811
+ };
58413
58812
  var $fb7c3e115538fcf2$var$HtmlFormatter = class extends (0, $ed0d9ddbbe7224cd$export$2e2bcd8739ae039) {
58414
58813
  /**
58415
58814
  * Get the default configuration for HTML formatter
@@ -58494,7 +58893,9 @@ Or set the song key before changing key:
58494
58893
  }
58495
58894
  };
58496
58895
  var $d9bea8c73e9a5034$export$2e2bcd8739ae039 = $d9bea8c73e9a5034$var$HtmlDivFormatter;
58497
- var $396f7048979e89c9$export$2e2bcd8739ae039 = ({ configuration, configuration: { key, cssClasses: c4 }, song, metadata, renderBlankLines = false, song: { title, subtitle, bodyLines }, bodyParagraphs }) => (0, $f9c5006b26957916$export$6ea1b0eb82ead3f)(`
58896
+ var $396f7048979e89c9$export$2e2bcd8739ae039 = ({ configuration, configuration: { key, cssClasses: c4 }, song, metadata, renderBlankLines = false, song: { title, subtitle, bodyLines }, bodyParagraphs }) => {
58897
+ const pango = configuration.pangoRenderer || (0, $1883202621c13add$export$6be9e661c5b42166);
58898
+ return (0, $f9c5006b26957916$export$6ea1b0eb82ead3f)(`
58498
58899
  ${(0, $f9c5006b26957916$export$a55877ca9db47377)(title, () => `<h1 class="${c4.title}">${title}</h1>`)}
58499
58900
  ${(0, $f9c5006b26957916$export$a55877ca9db47377)(subtitle, () => `<h2 class="${c4.subtitle}">${subtitle}</h2>`)}
58500
58901
 
@@ -58528,14 +58929,17 @@ Or set the song key before changing key:
58528
58929
  ${(0, $f9c5006b26957916$export$a55877ca9db47377)((0, $f9c5006b26957916$export$17c9e635b932873b)(item), () => `
58529
58930
  ${(0, $f9c5006b26957916$export$a55877ca9db47377)(item.annotation).then(() => `
58530
58931
  <td class="${c4.annotation}"${(0, $f9c5006b26957916$export$ca030c9435779e4b)(line.chordFont)}>${item.annotation}</td>
58531
- `).else(() => `
58532
- <td class="${c4.chord}"${(0, $f9c5006b26957916$export$ca030c9435779e4b)(line.chordFont)}>${(0, $2ce1086ce25c9ac0$export$596ec52955da9472)(item.chords, line, song, {
58533
- renderKey: key,
58534
- useUnicodeModifier: configuration.useUnicodeModifiers,
58535
- normalizeChords: configuration.normalizeChords,
58536
- decapo: configuration.decapo
58537
- })}</td>
58538
- `)}
58932
+ `).else(() => {
58933
+ const cls = (0, $f9c5006b26957916$export$986cf1257ba88b40)(item) ? c4.rhythmSymbol : c4.chord;
58934
+ return `
58935
+ <td class="${cls}"${(0, $f9c5006b26957916$export$ca030c9435779e4b)(line.chordFont)}>${(0, $2ce1086ce25c9ac0$export$596ec52955da9472)(item.chords, line, song, {
58936
+ renderKey: key,
58937
+ useUnicodeModifier: configuration.useUnicodeModifiers,
58938
+ normalizeChords: configuration.normalizeChords,
58939
+ decapo: configuration.decapo
58940
+ })}</td>
58941
+ `;
58942
+ })}
58539
58943
  `)}
58540
58944
  `)}
58541
58945
  </tr>
@@ -58544,10 +58948,18 @@ Or set the song key before changing key:
58544
58948
  <tr>
58545
58949
  ${(0, $f9c5006b26957916$export$79b2f7037acddd43)(line.items, (item) => `
58546
58950
  ${(0, $f9c5006b26957916$export$a55877ca9db47377)((0, $f9c5006b26957916$export$17c9e635b932873b)(item), () => `
58547
- <td class="${c4.lyrics}"${(0, $f9c5006b26957916$export$ca030c9435779e4b)(line.textFont)}>${item.lyrics}</td>
58951
+ <td class="${c4.lyrics}"${(0, $f9c5006b26957916$export$ca030c9435779e4b)(line.textFont)}>
58952
+ ${pango.convert(item.lyrics || "")}
58953
+ </td>
58548
58954
  `).elseWhen((0, $f9c5006b26957916$export$3bf645f08efe3292)(item), () => `
58549
58955
  ${(0, $f9c5006b26957916$export$a55877ca9db47377)((0, $f9c5006b26957916$export$3ab01370f5e64ac8)(item), () => `
58550
- <td class="${c4.comment}"${(0, $f9c5006b26957916$export$ca030c9435779e4b)(line.textFont)}>${item.value}</td>
58956
+ <td class="${c4.comment}"${(0, $f9c5006b26957916$export$ca030c9435779e4b)(line.textFont)}>
58957
+ ${pango.convert(item.value || "")}
58958
+ </td>
58959
+ `)}
58960
+
58961
+ ${(0, $f9c5006b26957916$export$a55877ca9db47377)((0, $f9c5006b26957916$export$fb85bc5d6d9ef19b)(item), () => `
58962
+ <td class="${c4.image}">${(0, $f9c5006b26957916$export$ffe18135619e1edf)(item)}</td>
58551
58963
  `)}
58552
58964
 
58553
58965
  ${(0, $f9c5006b26957916$export$a55877ca9db47377)(item.hasRenderableLabel(), () => `
@@ -58574,6 +58986,7 @@ Or set the song key before changing key:
58574
58986
  </div>
58575
58987
  `)}
58576
58988
  `);
58989
+ };
58577
58990
  function $57075975ee3e6c20$var$defaultCss(cssClasses) {
58578
58991
  const { annotation, chord, comment, labelWrapper, line, literal, literalContents, lyrics, paragraph, row, subtitle, title } = cssClasses;
58579
58992
  return {
@@ -59368,7 +59781,7 @@ Or set the song key before changing key:
59368
59781
  const content = chordLyricsPair.annotation || this.renderChords(chordLyricsPair, line);
59369
59782
  const { lyrics } = chordLyricsPair;
59370
59783
  const contentLength = (content || "").length;
59371
- const lyricsLength = (lyrics || "").length;
59784
+ const lyricsLength = (0, $1883202621c13add$export$3dd9b04564de283e)(lyrics || "").length;
59372
59785
  if (contentLength >= lyricsLength) return contentLength + 1;
59373
59786
  return Math.max(contentLength, lyricsLength);
59374
59787
  }
@@ -59398,7 +59811,7 @@ Or set the song key before changing key:
59398
59811
  }
59399
59812
  formatItemBottom(item, metadata, line) {
59400
59813
  if (item instanceof (0, $7251dad5f4a4c35f$export$2e2bcd8739ae039) && item.isRenderable()) return item.label;
59401
- if (item instanceof (0, $551a223fc13b5c10$export$2e2bcd8739ae039)) return (0, $28a2fcb6fb95a147$export$bc3bea8325045070)(item.lyrics || "", this.chordLyricsPairLength(item, line));
59814
+ if (item instanceof (0, $551a223fc13b5c10$export$2e2bcd8739ae039)) return (0, $28a2fcb6fb95a147$export$bc3bea8325045070)((0, $1883202621c13add$export$3dd9b04564de283e)(item.lyrics || ""), this.chordLyricsPairLength(item, line));
59402
59815
  if ("evaluate" in item) return (0, $f9c5006b26957916$export$fef61f332f2c0afc)(item, metadata, this.configuration);
59403
59816
  return "";
59404
59817
  }
@@ -69474,7 +69887,7 @@ AjwCRQJ5AAAAAAABAAAAANpTmfAAAAAA0e+yRgAAAADR77JG
69474
69887
  }
69475
69888
  };
69476
69889
  var $a5a21ced491ea51f$export$2e2bcd8739ae039 = $a5a21ced491ea51f$var$UltimateGuitarParser;
69477
- var $ae92e002ce14f11a$export$2e2bcd8739ae039 = "14.2.1";
69890
+ var $ae92e002ce14f11a$export$2e2bcd8739ae039 = "14.3.1";
69478
69891
  var $a3816b486f741c00$exports = {};
69479
69892
  var $892913528e7f60f9$export$2e2bcd8739ae039 = {
69480
69893
  CHORUS: $dce48cb70c4120bb$export$8db6c706fc9142b2,
@@ -69521,6 +69934,7 @@ AjwCRQJ5AAAAAAABAAAAANpTmfAAAAAA0e+yRgAAAADR77JG
69521
69934
  lineHasContents: $f9c5006b26957916$export$3db5961874282581,
69522
69935
  isTag: $f9c5006b26957916$export$3bf645f08efe3292,
69523
69936
  isComment: $f9c5006b26957916$export$3ab01370f5e64ac8,
69937
+ isImage: $f9c5006b26957916$export$fb85bc5d6d9ef19b,
69524
69938
  stripHTML: $f9c5006b26957916$export$6ea1b0eb82ead3f,
69525
69939
  each: $f9c5006b26957916$export$79b2f7037acddd43,
69526
69940
  when: $f9c5006b26957916$export$a55877ca9db47377,
@@ -69530,7 +69944,9 @@ AjwCRQJ5AAAAAAABAAAAANpTmfAAAAAA0e+yRgAAAADR77JG
69530
69944
  evaluate: $f9c5006b26957916$export$fef61f332f2c0afc,
69531
69945
  fontStyleTag: $f9c5006b26957916$export$ca030c9435779e4b,
69532
69946
  renderChord: $2ce1086ce25c9ac0$export$596ec52955da9472,
69533
- hasChordContents: $28a2fcb6fb95a147$export$d332d76d125f0cbe
69947
+ hasChordContents: $28a2fcb6fb95a147$export$d332d76d125f0cbe,
69948
+ pangoToHtml: $1883202621c13add$export$599bd3ab2aa4735e,
69949
+ stripPangoMarkup: $1883202621c13add$export$3dd9b04564de283e
69534
69950
  }
69535
69951
  };
69536
69952
  $parcel$exportWildcard(module.exports, $a3816b486f741c00$exports);