@gmb/bitmark-parser-generator 5.36.0 → 5.37.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.
package/dist/index.js CHANGED
@@ -1564,6 +1564,8 @@ var propertyKeys = {
1564
1564
  property_trim: "@trim",
1565
1565
  property_unit: "@unit",
1566
1566
  property_unitAbbr: "@unitAbbr",
1567
+ property_unitAbbrPlural: "@unitAbbrPlural",
1568
+ property_unitPlural: "@unitPlural",
1567
1569
  property_vendorDashboardId: "@vendorDashboardId",
1568
1570
  property_vendorSurveyId: "@vendorSurveyId",
1569
1571
  property_vendorUrl: "@vendorUrl",
@@ -4377,12 +4379,22 @@ var CARDSETS = {
4377
4379
  },
4378
4380
  {
4379
4381
  key: ConfigKey.property_unit,
4380
- description: "Unit of measurement for the ingredient.",
4382
+ description: "Unit of measurement for the ingredient (singular).",
4383
+ format: TagFormat.plainText
4384
+ },
4385
+ {
4386
+ key: ConfigKey.property_unitPlural,
4387
+ description: "Unit of measurement for the ingredient (plural).",
4381
4388
  format: TagFormat.plainText
4382
4389
  },
4383
4390
  {
4384
4391
  key: ConfigKey.property_unitAbbr,
4385
- description: "Abbreviation for the unit of measurement.",
4392
+ description: "Abbreviation for the unit of measurement (singular).",
4393
+ format: TagFormat.plainText
4394
+ },
4395
+ {
4396
+ key: ConfigKey.property_unitAbbrPlural,
4397
+ description: "Abbreviation for the unit of measurement (plural).",
4386
4398
  format: TagFormat.plainText
4387
4399
  },
4388
4400
  {
@@ -4558,6 +4570,11 @@ var GROUPS = {
4558
4570
  description: "Translation source reference",
4559
4571
  format: TagFormat.plainText
4560
4572
  },
4573
+ {
4574
+ key: ConfigKey.property_isCollapsible,
4575
+ description: "If true, the bit is collapsible",
4576
+ format: TagFormat.boolean
4577
+ },
4561
4578
  {
4562
4579
  key: ConfigKey.property_spansPageBreak,
4563
4580
  description: "If true, the bit spans a page break",
@@ -7611,13 +7628,31 @@ var BITS = {
7611
7628
  },
7612
7629
  [BitType.smartStandardArticleNormativeCollapsible]: {
7613
7630
  since: "1.28.0",
7631
+ deprecated: "5.37.0",
7614
7632
  baseBitType: BitType.smartStandardArticleNormative,
7615
- description: "Smart standard normative article bit that is collapsible"
7633
+ description: "Smart standard normative article bit that is collapsible",
7634
+ tags: [
7635
+ {
7636
+ key: ConfigKey.property_isCollapsible,
7637
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
7638
+ format: TagFormat.boolean,
7639
+ defaultValue: "true"
7640
+ }
7641
+ ]
7616
7642
  },
7617
7643
  [BitType.smartStandardArticleNonNormativeCollapsible]: {
7618
7644
  since: "1.28.0",
7645
+ deprecated: "5.37.0",
7619
7646
  baseBitType: BitType.smartStandardArticleNonNormative,
7620
- description: "Smart standard non-normative article bit that is collapsible"
7647
+ description: "Smart standard non-normative article bit that is collapsible",
7648
+ tags: [
7649
+ {
7650
+ key: ConfigKey.property_isCollapsible,
7651
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
7652
+ format: TagFormat.boolean,
7653
+ defaultValue: "true"
7654
+ }
7655
+ ]
7621
7656
  },
7622
7657
  [BitType.statement]: {
7623
7658
  since: "1.3.0",
@@ -8736,12 +8771,6 @@ var BITS = {
8736
8771
  description: "The progress of the chapter, used for tracking reading progress",
8737
8772
  format: TagFormat.boolean,
8738
8773
  defaultValue: "true"
8739
- },
8740
- {
8741
- key: ConfigKey.property_isCollapsible,
8742
- description: "If true, the chapter is collapsible",
8743
- format: TagFormat.boolean,
8744
- defaultValue: "false"
8745
8774
  }
8746
8775
  ]
8747
8776
  },
@@ -9348,12 +9377,22 @@ var BITS = {
9348
9377
  chain: [
9349
9378
  {
9350
9379
  key: ConfigKey.property_unit,
9351
- description: "The unit of measurement for the ingredients",
9380
+ description: "The unit of measurement for the ingredients (singular)",
9381
+ format: TagFormat.plainText
9382
+ },
9383
+ {
9384
+ key: ConfigKey.property_unitPlural,
9385
+ description: "The unit of measurement for the ingredients (plural)",
9352
9386
  format: TagFormat.plainText
9353
9387
  },
9354
9388
  {
9355
9389
  key: ConfigKey.property_unitAbbr,
9356
- description: "The abbreviation for the unit of measurement",
9390
+ description: "The abbreviation for the unit of measurement (singular)",
9391
+ format: TagFormat.plainText
9392
+ },
9393
+ {
9394
+ key: ConfigKey.property_unitAbbrPlural,
9395
+ description: "The abbreviation for the unit of measurement (plural)",
9357
9396
  format: TagFormat.plainText
9358
9397
  },
9359
9398
  {
@@ -9632,13 +9671,31 @@ var BITS = {
9632
9671
  },
9633
9672
  [BitType.smartStandardExampleNormativeCollapsible]: {
9634
9673
  since: "1.28.0",
9674
+ deprecated: "5.37.0",
9635
9675
  baseBitType: BitType.smartStandardExampleNormative,
9636
- description: "Smart standard normative example collapsible bit, used to provide normative examples in smart standards that can be collapsed"
9676
+ description: "Smart standard normative example collapsible bit, used to provide normative examples in smart standards that can be collapsed",
9677
+ tags: [
9678
+ {
9679
+ key: ConfigKey.property_isCollapsible,
9680
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
9681
+ format: TagFormat.boolean,
9682
+ defaultValue: "true"
9683
+ }
9684
+ ]
9637
9685
  },
9638
9686
  [BitType.smartStandardExampleNonNormativeCollapsible]: {
9639
9687
  since: "1.28.0",
9688
+ deprecated: "5.37.0",
9640
9689
  baseBitType: BitType.smartStandardExampleNonNormative,
9641
- description: "Smart standard non-normative example collapsible bit, used to provide non-normative examples in smart standards that can be collapsed"
9690
+ description: "Smart standard non-normative example collapsible bit, used to provide non-normative examples in smart standards that can be collapsed",
9691
+ tags: [
9692
+ {
9693
+ key: ConfigKey.property_isCollapsible,
9694
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
9695
+ format: TagFormat.boolean,
9696
+ defaultValue: "true"
9697
+ }
9698
+ ]
9642
9699
  },
9643
9700
  [BitType.authorContentBitGenerator]: {
9644
9701
  since: "4.2.0",
@@ -9974,8 +10031,17 @@ var BITS = {
9974
10031
  },
9975
10032
  [BitType.smartStandardListCollapsible]: {
9976
10033
  since: "1.28.0",
10034
+ deprecated: "5.37.0",
9977
10035
  baseBitType: BitType.smartStandardList,
9978
- description: "Smart standard list collapsible bit, used to create collapsible smart standard lists in articles or books"
10036
+ description: "Smart standard list collapsible bit, used to create collapsible smart standard lists in articles or books",
10037
+ tags: [
10038
+ {
10039
+ key: ConfigKey.property_isCollapsible,
10040
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10041
+ format: TagFormat.boolean,
10042
+ defaultValue: "true"
10043
+ }
10044
+ ]
9979
10045
  },
9980
10046
  [BitType.message]: {
9981
10047
  since: "1.3.0",
@@ -10029,13 +10095,31 @@ var BITS = {
10029
10095
  },
10030
10096
  [BitType.smartStandardNoteNormativeCollapsible]: {
10031
10097
  since: "1.28.0",
10098
+ deprecated: "5.37.0",
10032
10099
  baseBitType: BitType.smartStandardNoteNormative,
10033
- description: "Smart standard normative note collapsible bit, used to provide normative notes in smart standards that can be collapsed"
10100
+ description: "Smart standard normative note collapsible bit, used to provide normative notes in smart standards that can be collapsed",
10101
+ tags: [
10102
+ {
10103
+ key: ConfigKey.property_isCollapsible,
10104
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10105
+ format: TagFormat.boolean,
10106
+ defaultValue: "true"
10107
+ }
10108
+ ]
10034
10109
  },
10035
10110
  [BitType.smartStandardNoteNonNormativeCollapsible]: {
10036
10111
  since: "1.28.0",
10112
+ deprecated: "5.37.0",
10037
10113
  baseBitType: BitType.smartStandardNoteNonNormative,
10038
- description: "Smart standard non-normative note collapsible bit, used to provide non-normative notes in smart standards that can be collapsed"
10114
+ description: "Smart standard non-normative note collapsible bit, used to provide non-normative notes in smart standards that can be collapsed",
10115
+ tags: [
10116
+ {
10117
+ key: ConfigKey.property_isCollapsible,
10118
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10119
+ format: TagFormat.boolean,
10120
+ defaultValue: "true"
10121
+ }
10122
+ ]
10039
10123
  },
10040
10124
  [BitType.noteAi]: {
10041
10125
  since: "1.3.0",
@@ -10148,13 +10232,31 @@ var BITS = {
10148
10232
  },
10149
10233
  [BitType.smartStandardRemarkNormativeCollapsible]: {
10150
10234
  since: "1.28.0",
10235
+ deprecated: "5.37.0",
10151
10236
  baseBitType: BitType.smartStandardRemarkNormative,
10152
- description: "Smart standard normative remark collapsible bit, used to provide normative remarks in smart standards that can be collapsed"
10237
+ description: "Smart standard normative remark collapsible bit, used to provide normative remarks in smart standards that can be collapsed",
10238
+ tags: [
10239
+ {
10240
+ key: ConfigKey.property_isCollapsible,
10241
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10242
+ format: TagFormat.boolean,
10243
+ defaultValue: "true"
10244
+ }
10245
+ ]
10153
10246
  },
10154
10247
  [BitType.smartStandardRemarkNonNormativeCollapsible]: {
10155
10248
  since: "1.28.0",
10249
+ deprecated: "5.37.0",
10156
10250
  baseBitType: BitType.smartStandardRemarkNonNormative,
10157
- description: "Smart standard non-normative remark collapsible bit, used to provide non-normative remarks in smart standards that can be collapsed"
10251
+ description: "Smart standard non-normative remark collapsible bit, used to provide non-normative remarks in smart standards that can be collapsed",
10252
+ tags: [
10253
+ {
10254
+ key: ConfigKey.property_isCollapsible,
10255
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10256
+ format: TagFormat.boolean,
10257
+ defaultValue: "true"
10258
+ }
10259
+ ]
10158
10260
  },
10159
10261
  [BitType.selfAssessment]: {
10160
10262
  since: "1.3.0",
@@ -10225,53 +10327,143 @@ var BITS = {
10225
10327
  },
10226
10328
  [BitType.collapsible]: {
10227
10329
  since: "1.21.0",
10330
+ deprecated: "5.37.0",
10228
10331
  baseBitType: BitType.article,
10229
- description: "Collapsible bit, used to create collapsible sections in articles or books"
10332
+ description: "Collapsible bit, used to create collapsible sections in articles or books",
10333
+ tags: [
10334
+ {
10335
+ key: ConfigKey.property_isCollapsible,
10336
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10337
+ format: TagFormat.boolean,
10338
+ defaultValue: "true"
10339
+ }
10340
+ ]
10230
10341
  },
10231
10342
  [BitType.sideNoteCollapsible]: {
10232
10343
  since: "1.21.0",
10233
- baseBitType: BitType.article,
10234
- description: "Side note collapsible bit, used to create collapsible side notes in articles or books"
10344
+ deprecated: "5.37.0",
10345
+ baseBitType: BitType.sideNote,
10346
+ description: "Side note collapsible bit, used to create collapsible side notes in articles or books",
10347
+ tags: [
10348
+ {
10349
+ key: ConfigKey.property_isCollapsible,
10350
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10351
+ format: TagFormat.boolean,
10352
+ defaultValue: "true"
10353
+ }
10354
+ ]
10235
10355
  },
10236
10356
  [BitType.infoCollapsible]: {
10237
10357
  since: "1.21.0",
10238
- baseBitType: BitType.article,
10239
- description: "Info collapsible bit, used to create collapsible informational sections in articles or books"
10358
+ deprecated: "5.37.0",
10359
+ baseBitType: BitType.info,
10360
+ description: "Info collapsible bit, used to create collapsible informational sections in articles or books",
10361
+ tags: [
10362
+ {
10363
+ key: ConfigKey.property_isCollapsible,
10364
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10365
+ format: TagFormat.boolean,
10366
+ defaultValue: "true"
10367
+ }
10368
+ ]
10240
10369
  },
10241
10370
  [BitType.remarkCollapsible]: {
10242
10371
  since: "1.21.0",
10243
- baseBitType: BitType.article,
10244
- description: "Remark collapsible bit, used to create collapsible remarks in articles or books"
10372
+ deprecated: "5.37.0",
10373
+ baseBitType: BitType.remark,
10374
+ description: "Remark collapsible bit, used to create collapsible remarks in articles or books",
10375
+ tags: [
10376
+ {
10377
+ key: ConfigKey.property_isCollapsible,
10378
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10379
+ format: TagFormat.boolean,
10380
+ defaultValue: "true"
10381
+ }
10382
+ ]
10245
10383
  },
10246
10384
  [BitType.warningCollapsible]: {
10247
10385
  since: "1.21.0",
10248
- baseBitType: BitType.article,
10249
- description: "Warning collapsible bit, used to create collapsible warnings in articles or books"
10386
+ deprecated: "5.37.0",
10387
+ baseBitType: BitType.warning,
10388
+ description: "Warning collapsible bit, used to create collapsible warnings in articles or books",
10389
+ tags: [
10390
+ {
10391
+ key: ConfigKey.property_isCollapsible,
10392
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10393
+ format: TagFormat.boolean,
10394
+ defaultValue: "true"
10395
+ }
10396
+ ]
10250
10397
  },
10251
10398
  [BitType.dangerCollapsible]: {
10252
10399
  since: "1.21.0",
10253
- baseBitType: BitType.article,
10254
- description: "Danger collapsible bit, used to create collapsible danger sections in articles or books"
10400
+ deprecated: "5.37.0",
10401
+ baseBitType: BitType.danger,
10402
+ description: "Danger collapsible bit, used to create collapsible danger sections in articles or books",
10403
+ tags: [
10404
+ {
10405
+ key: ConfigKey.property_isCollapsible,
10406
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10407
+ format: TagFormat.boolean,
10408
+ defaultValue: "true"
10409
+ }
10410
+ ]
10255
10411
  },
10256
10412
  [BitType.noteCollapsible]: {
10257
10413
  since: "1.21.0",
10258
- baseBitType: BitType.article,
10259
- description: "Note collapsible bit, used to create collapsible notes in articles or books"
10414
+ deprecated: "5.37.0",
10415
+ baseBitType: BitType.note,
10416
+ description: "Note collapsible bit, used to create collapsible notes in articles or books",
10417
+ tags: [
10418
+ {
10419
+ key: ConfigKey.property_isCollapsible,
10420
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10421
+ format: TagFormat.boolean,
10422
+ defaultValue: "true"
10423
+ }
10424
+ ]
10260
10425
  },
10261
10426
  [BitType.exampleCollapsible]: {
10262
10427
  since: "1.21.0",
10263
- baseBitType: BitType.article,
10264
- description: "Example collapsible bit, used to create collapsible examples in articles or books"
10428
+ deprecated: "5.37.0",
10429
+ baseBitType: BitType.example,
10430
+ description: "Example collapsible bit, used to create collapsible examples in articles or books",
10431
+ tags: [
10432
+ {
10433
+ key: ConfigKey.property_isCollapsible,
10434
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10435
+ format: TagFormat.boolean,
10436
+ defaultValue: "true"
10437
+ }
10438
+ ]
10265
10439
  },
10266
10440
  [BitType.hintCollapsible]: {
10267
10441
  since: "1.21.0",
10268
- baseBitType: BitType.article,
10269
- description: "Hint collapsible bit, used to create collapsible hints in articles or books"
10442
+ deprecated: "5.37.0",
10443
+ baseBitType: BitType.hint,
10444
+ description: "Hint collapsible bit, used to create collapsible hints in articles or books",
10445
+ tags: [
10446
+ {
10447
+ key: ConfigKey.property_isCollapsible,
10448
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10449
+ format: TagFormat.boolean,
10450
+ defaultValue: "true"
10451
+ }
10452
+ ]
10270
10453
  },
10271
10454
  [BitType.bugCollapsible]: {
10272
10455
  since: "1.21.0",
10273
- baseBitType: BitType.article,
10274
- description: "Bug collapsible bit, used to create collapsible bug reports in articles or books"
10456
+ deprecated: "5.37.0",
10457
+ baseBitType: BitType.bug,
10458
+ description: "Bug collapsible bit, used to create collapsible bug reports in articles or books",
10459
+ tags: [
10460
+ {
10461
+ key: ConfigKey.property_isCollapsible,
10462
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10463
+ format: TagFormat.boolean,
10464
+ defaultValue: "true"
10465
+ }
10466
+ ]
10275
10467
  },
10276
10468
  [BitType.platformPath]: {
10277
10469
  since: "3.14.1",
@@ -10493,8 +10685,17 @@ var BITS = {
10493
10685
  },
10494
10686
  [BitType.extractorPageCollapsible]: {
10495
10687
  since: "1.30.0",
10688
+ deprecated: "5.37.0",
10496
10689
  baseBitType: BitType.extractorPage,
10497
- description: "Collapsible extractor page bit, used to extract pages from images with collapsible functionality"
10690
+ description: "Collapsible extractor page bit, used to extract pages from images with collapsible functionality",
10691
+ tags: [
10692
+ {
10693
+ key: ConfigKey.property_isCollapsible,
10694
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10695
+ format: TagFormat.boolean,
10696
+ defaultValue: "true"
10697
+ }
10698
+ ]
10498
10699
  },
10499
10700
  [BitType.extractorPageWithBlocks]: {
10500
10701
  since: "1.5.21",
@@ -10503,8 +10704,17 @@ var BITS = {
10503
10704
  },
10504
10705
  [BitType.extractorPageWithBlocksCollapsible]: {
10505
10706
  since: "1.30.0",
10707
+ deprecated: "5.37.0",
10506
10708
  baseBitType: BitType.extractorPageWithBlocks,
10507
- description: "Collapsible extractor page with blocks bit, used to extract pages with blocks from images with collapsible functionality"
10709
+ description: "Collapsible extractor page with blocks bit, used to extract pages with blocks from images with collapsible functionality",
10710
+ tags: [
10711
+ {
10712
+ key: ConfigKey.property_isCollapsible,
10713
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10714
+ format: TagFormat.boolean,
10715
+ defaultValue: "true"
10716
+ }
10717
+ ]
10508
10718
  },
10509
10719
  [BitType.extractorConfiguration]: {
10510
10720
  since: "1.7.1",
@@ -10544,8 +10754,17 @@ var BITS = {
10544
10754
  },
10545
10755
  [BitType.extractorImageCollapsible]: {
10546
10756
  since: "4.3.0",
10757
+ deprecated: "5.37.0",
10547
10758
  baseBitType: BitType.extractorImage,
10548
- description: "Collapsible extractor images bit, used for images extracted from PDFs"
10759
+ description: "Collapsible extractor images bit, used for images extracted from PDFs",
10760
+ tags: [
10761
+ {
10762
+ key: ConfigKey.property_isCollapsible,
10763
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10764
+ format: TagFormat.boolean,
10765
+ defaultValue: "true"
10766
+ }
10767
+ ]
10549
10768
  },
10550
10769
  [BitType.extractorBlueprint]: {
10551
10770
  since: "5.12.0",
@@ -10682,8 +10901,17 @@ var BITS = {
10682
10901
  },
10683
10902
  [BitType.extractorPageNumberCollapsible]: {
10684
10903
  since: "1.30.0",
10904
+ deprecated: "5.37.0",
10685
10905
  baseBitType: BitType.extractorPageNumber,
10686
- description: "Collapsible extractor page number bit, used to define page numbers in extractor pages with collapsible functionality"
10906
+ description: "Collapsible extractor page number bit, used to define page numbers in extractor pages with collapsible functionality",
10907
+ tags: [
10908
+ {
10909
+ key: ConfigKey.property_isCollapsible,
10910
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10911
+ format: TagFormat.boolean,
10912
+ defaultValue: "true"
10913
+ }
10914
+ ]
10687
10915
  },
10688
10916
  [BitType.extractorPageHeader]: {
10689
10917
  since: "1.5.21",
@@ -10692,8 +10920,17 @@ var BITS = {
10692
10920
  },
10693
10921
  [BitType.extractorPageHeaderCollapsible]: {
10694
10922
  since: "1.30.0",
10923
+ deprecated: "5.37.0",
10695
10924
  baseBitType: BitType.extractorPageHeader,
10696
- description: "Collapsible extractor page header bit, used to define headers in extractor pages with collapsible functionality"
10925
+ description: "Collapsible extractor page header bit, used to define headers in extractor pages with collapsible functionality",
10926
+ tags: [
10927
+ {
10928
+ key: ConfigKey.property_isCollapsible,
10929
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10930
+ format: TagFormat.boolean,
10931
+ defaultValue: "true"
10932
+ }
10933
+ ]
10697
10934
  },
10698
10935
  [BitType.extractorPageFooter]: {
10699
10936
  since: "1.5.21",
@@ -10702,8 +10939,17 @@ var BITS = {
10702
10939
  },
10703
10940
  [BitType.extractorPageFooterCollapsible]: {
10704
10941
  since: "1.30.0",
10942
+ deprecated: "5.37.0",
10705
10943
  baseBitType: BitType.extractorPageFooter,
10706
- description: "Collapsible extractor page footer bit, used to define footers in extractor pages with collapsible functionality"
10944
+ description: "Collapsible extractor page footer bit, used to define footers in extractor pages with collapsible functionality",
10945
+ tags: [
10946
+ {
10947
+ key: ConfigKey.property_isCollapsible,
10948
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10949
+ format: TagFormat.boolean,
10950
+ defaultValue: "true"
10951
+ }
10952
+ ]
10707
10953
  },
10708
10954
  [BitType.pageOpenBook]: {
10709
10955
  since: "1.5.10",
@@ -10993,8 +11239,17 @@ var BITS = {
10993
11239
  },
10994
11240
  [BitType.definitionListCollapsible]: {
10995
11241
  since: "5.25.0",
11242
+ deprecated: "5.37.0",
10996
11243
  baseBitType: BitType.definitionList,
10997
- description: "Collapsible definition list bit, used to create collapsible lists of definitions in articles or books"
11244
+ description: "Collapsible definition list bit, used to create collapsible lists of definitions in articles or books",
11245
+ tags: [
11246
+ {
11247
+ key: ConfigKey.property_isCollapsible,
11248
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
11249
+ format: TagFormat.boolean,
11250
+ defaultValue: "true"
11251
+ }
11252
+ ]
10998
11253
  },
10999
11254
  [BitType.standardDefinitionListNormative]: {
11000
11255
  since: "5.24.0",
@@ -11218,13 +11473,31 @@ var BITS = {
11218
11473
  },
11219
11474
  [BitType.smartStandardImageFigureNormativeCollapsible]: {
11220
11475
  since: "1.28.0",
11476
+ deprecated: "5.37.0",
11221
11477
  baseBitType: BitType.smartStandardImageFigureNormative,
11222
- description: "Collapsible smart standard normative image figure bit, used to create collapsible smart standard normative image figures in articles or books"
11478
+ description: "Collapsible smart standard normative image figure bit, used to create collapsible smart standard normative image figures in articles or books",
11479
+ tags: [
11480
+ {
11481
+ key: ConfigKey.property_isCollapsible,
11482
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
11483
+ format: TagFormat.boolean,
11484
+ defaultValue: "true"
11485
+ }
11486
+ ]
11223
11487
  },
11224
11488
  [BitType.smartStandardImageFigureNonNormativeCollapsible]: {
11225
11489
  since: "1.28.0",
11490
+ deprecated: "5.37.0",
11226
11491
  baseBitType: BitType.smartStandardImageFigureNonNormative,
11227
- description: "Collapsible smart standard non-normative image figure bit, used to create collapsible smart standard non-normative image figures in articles or books"
11492
+ description: "Collapsible smart standard non-normative image figure bit, used to create collapsible smart standard non-normative image figures in articles or books",
11493
+ tags: [
11494
+ {
11495
+ key: ConfigKey.property_isCollapsible,
11496
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
11497
+ format: TagFormat.boolean,
11498
+ defaultValue: "true"
11499
+ }
11500
+ ]
11228
11501
  },
11229
11502
  [BitType.imageLandscape]: {
11230
11503
  since: "1.3.0",
@@ -11436,43 +11709,115 @@ var BITS = {
11436
11709
  },
11437
11710
  [BitType.smartStandardTableImageNormativeCollapsible]: {
11438
11711
  since: "1.28.0",
11712
+ deprecated: "5.37.0",
11439
11713
  baseBitType: BitType.smartStandardTableImageNormative,
11440
- description: "Collapsible smart standard normative table image bit, used to create collapsible smart standard normative images in tables in articles or books"
11714
+ description: "Collapsible smart standard normative table image bit, used to create collapsible smart standard normative images in tables in articles or books",
11715
+ tags: [
11716
+ {
11717
+ key: ConfigKey.property_isCollapsible,
11718
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
11719
+ format: TagFormat.boolean,
11720
+ defaultValue: "true"
11721
+ }
11722
+ ]
11441
11723
  },
11442
11724
  [BitType.smartStandardTableImageNonNormativeCollapsible]: {
11443
11725
  since: "1.28.0",
11726
+ deprecated: "5.37.0",
11444
11727
  baseBitType: BitType.smartStandardTableImageNonNormative,
11445
- description: "Collapsible smart standard non-normative table image bit, used to create collapsible smart standard non-normative images in tables in articles or books"
11728
+ description: "Collapsible smart standard non-normative table image bit, used to create collapsible smart standard non-normative images in tables in articles or books",
11729
+ tags: [
11730
+ {
11731
+ key: ConfigKey.property_isCollapsible,
11732
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
11733
+ format: TagFormat.boolean,
11734
+ defaultValue: "true"
11735
+ }
11736
+ ]
11446
11737
  },
11447
11738
  [BitType.smartStandardRemarkTableImageNormativeCollapsible]: {
11448
11739
  since: "1.28.0",
11740
+ deprecated: "5.37.0",
11449
11741
  baseBitType: BitType.smartStandardRemarkTableImageNormative,
11450
- description: "Collapsible smart standard normative remark table image bit, used to create collapsible smart standard normative remark images in tables in articles or books"
11742
+ description: "Collapsible smart standard normative remark table image bit, used to create collapsible smart standard normative remark images in tables in articles or books",
11743
+ tags: [
11744
+ {
11745
+ key: ConfigKey.property_isCollapsible,
11746
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
11747
+ format: TagFormat.boolean,
11748
+ defaultValue: "true"
11749
+ }
11750
+ ]
11451
11751
  },
11452
11752
  [BitType.smartStandardRemarkTableImageNonNormativeCollapsible]: {
11453
11753
  since: "1.28.0",
11754
+ deprecated: "5.37.0",
11454
11755
  baseBitType: BitType.smartStandardRemarkTableImageNonNormative,
11455
- description: "Collapsible smart standard non-normative remark table image bit, used to create collapsible smart standard non-normative remark images in tables in articles or books"
11756
+ description: "Collapsible smart standard non-normative remark table image bit, used to create collapsible smart standard non-normative remark images in tables in articles or books",
11757
+ tags: [
11758
+ {
11759
+ key: ConfigKey.property_isCollapsible,
11760
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
11761
+ format: TagFormat.boolean,
11762
+ defaultValue: "true"
11763
+ }
11764
+ ]
11456
11765
  },
11457
11766
  [BitType.smartStandardTableExtendedImageNormativeCollapsible]: {
11458
11767
  since: "1.28.0",
11768
+ deprecated: "5.37.0",
11459
11769
  baseBitType: BitType.smartStandardTableExtendedImageNormative,
11460
- description: "Collapsible smart standard normative extended table image bit, used to create collapsible smart standard normative extended images in tables in articles or books"
11770
+ description: "Collapsible smart standard normative extended table image bit, used to create collapsible smart standard normative extended images in tables in articles or books",
11771
+ tags: [
11772
+ {
11773
+ key: ConfigKey.property_isCollapsible,
11774
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
11775
+ format: TagFormat.boolean,
11776
+ defaultValue: "true"
11777
+ }
11778
+ ]
11461
11779
  },
11462
11780
  [BitType.smartStandardTableExtendedImageNonNormativeCollapsible]: {
11463
11781
  since: "1.28.0",
11782
+ deprecated: "5.37.0",
11464
11783
  baseBitType: BitType.smartStandardTableExtendedImageNonNormative,
11465
- description: "Collapsible smart standard non-normative extended table image bit, used to create collapsible smart standard non-normative extended images in tables in articles or books"
11784
+ description: "Collapsible smart standard non-normative extended table image bit, used to create collapsible smart standard non-normative extended images in tables in articles or books",
11785
+ tags: [
11786
+ {
11787
+ key: ConfigKey.property_isCollapsible,
11788
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
11789
+ format: TagFormat.boolean,
11790
+ defaultValue: "true"
11791
+ }
11792
+ ]
11466
11793
  },
11467
11794
  [BitType.smartStandardRemarkTableExtendedImageNormativeCollapsible]: {
11468
11795
  since: "1.28.0",
11796
+ deprecated: "5.37.0",
11469
11797
  baseBitType: BitType.smartStandardRemarkTableExtendedImageNormative,
11470
- description: "Collapsible smart standard normative remark extended table image bit, used to create collapsible smart standard normative remark extended images in tables in articles or books"
11798
+ description: "Collapsible smart standard normative remark extended table image bit, used to create collapsible smart standard normative remark extended images in tables in articles or books",
11799
+ tags: [
11800
+ {
11801
+ key: ConfigKey.property_isCollapsible,
11802
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
11803
+ format: TagFormat.boolean,
11804
+ defaultValue: "true"
11805
+ }
11806
+ ]
11471
11807
  },
11472
11808
  [BitType.smartStandardRemarkTableExtendedImageNonNormativeCollapsible]: {
11473
11809
  since: "1.28.0",
11810
+ deprecated: "5.37.0",
11474
11811
  baseBitType: BitType.smartStandardRemarkTableExtendedImageNonNormative,
11475
- description: "Collapsible smart standard non-normative remark extended table image bit, used to create collapsible smart standard non-normative remark extended images in tables in articles or books"
11812
+ description: "Collapsible smart standard non-normative remark extended table image bit, used to create collapsible smart standard non-normative remark extended images in tables in articles or books",
11813
+ tags: [
11814
+ {
11815
+ key: ConfigKey.property_isCollapsible,
11816
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
11817
+ format: TagFormat.boolean,
11818
+ defaultValue: "true"
11819
+ }
11820
+ ]
11476
11821
  },
11477
11822
  [BitType.imageLink]: {
11478
11823
  since: "1.3.0",
@@ -11953,8 +12298,17 @@ var BITS = {
11953
12298
  },
11954
12299
  [BitType.smartStandardListItemCollapsible]: {
11955
12300
  since: "1.28.0",
12301
+ deprecated: "5.37.0",
11956
12302
  baseBitType: BitType.smartStandardListItem,
11957
- description: "Collapsible smart standard list item bit, used to create collapsible smart standard list items in articles or books"
12303
+ description: "Collapsible smart standard list item bit, used to create collapsible smart standard list items in articles or books",
12304
+ tags: [
12305
+ {
12306
+ key: ConfigKey.property_isCollapsible,
12307
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
12308
+ format: TagFormat.boolean,
12309
+ defaultValue: "true"
12310
+ }
12311
+ ]
11958
12312
  },
11959
12313
  [BitType.mark]: {
11960
12314
  since: "1.3.0",
@@ -12287,8 +12641,17 @@ var BITS = {
12287
12641
  },
12288
12642
  [BitType.pageCollapsible]: {
12289
12643
  since: "1.30.0",
12644
+ deprecated: "5.37.0",
12290
12645
  baseBitType: BitType.page,
12291
- description: "Collapsible page bit, used to create collapsible sections in pages"
12646
+ description: "Collapsible page bit, used to create collapsible sections in pages",
12647
+ tags: [
12648
+ {
12649
+ key: ConfigKey.property_isCollapsible,
12650
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
12651
+ format: TagFormat.boolean,
12652
+ defaultValue: "true"
12653
+ }
12654
+ ]
12292
12655
  },
12293
12656
  [BitType.pageCoverImage]: {
12294
12657
  since: "1.22.0",
@@ -13263,43 +13626,115 @@ var BITS = {
13263
13626
  },
13264
13627
  [BitType.smartStandardTableNormativeCollapsible]: {
13265
13628
  since: "1.28.0",
13629
+ deprecated: "5.37.0",
13266
13630
  baseBitType: BitType.smartStandardTableNormative,
13267
- description: "Collapsible smart standard normative table bit, used to create collapsible smart standard normative tables in articles or books"
13631
+ description: "Collapsible smart standard normative table bit, used to create collapsible smart standard normative tables in articles or books",
13632
+ tags: [
13633
+ {
13634
+ key: ConfigKey.property_isCollapsible,
13635
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
13636
+ format: TagFormat.boolean,
13637
+ defaultValue: "true"
13638
+ }
13639
+ ]
13268
13640
  },
13269
13641
  [BitType.smartStandardTableNonNormativeCollapsible]: {
13270
13642
  since: "1.28.0",
13643
+ deprecated: "5.37.0",
13271
13644
  baseBitType: BitType.smartStandardTableNonNormative,
13272
- description: "Collapsible smart standard non-normative table bit, used to create collapsible smart standard non-normative tables in articles or books"
13645
+ description: "Collapsible smart standard non-normative table bit, used to create collapsible smart standard non-normative tables in articles or books",
13646
+ tags: [
13647
+ {
13648
+ key: ConfigKey.property_isCollapsible,
13649
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
13650
+ format: TagFormat.boolean,
13651
+ defaultValue: "true"
13652
+ }
13653
+ ]
13273
13654
  },
13274
13655
  [BitType.smartStandardRemarkTableNormativeCollapsible]: {
13275
13656
  since: "1.28.0",
13657
+ deprecated: "5.37.0",
13276
13658
  baseBitType: BitType.smartStandardRemarkTableNormative,
13277
- description: "Collapsible smart standard normative remark table bit, used to create collapsible smart standard normative remark tables in articles or books"
13659
+ description: "Collapsible smart standard normative remark table bit, used to create collapsible smart standard normative remark tables in articles or books",
13660
+ tags: [
13661
+ {
13662
+ key: ConfigKey.property_isCollapsible,
13663
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
13664
+ format: TagFormat.boolean,
13665
+ defaultValue: "true"
13666
+ }
13667
+ ]
13278
13668
  },
13279
13669
  [BitType.smartStandardRemarkTableNonNormativeCollapsible]: {
13280
13670
  since: "1.28.0",
13671
+ deprecated: "5.37.0",
13281
13672
  baseBitType: BitType.smartStandardRemarkTableNonNormative,
13282
- description: "Collapsible smart standard non-normative remark table bit, used to create collapsible smart standard non-normative remark tables in articles or books"
13673
+ description: "Collapsible smart standard non-normative remark table bit, used to create collapsible smart standard non-normative remark tables in articles or books",
13674
+ tags: [
13675
+ {
13676
+ key: ConfigKey.property_isCollapsible,
13677
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
13678
+ format: TagFormat.boolean,
13679
+ defaultValue: "true"
13680
+ }
13681
+ ]
13283
13682
  },
13284
13683
  [BitType.smartStandardTableExtendedNormativeCollapsible]: {
13285
13684
  since: "1.28.0",
13685
+ deprecated: "5.37.0",
13286
13686
  baseBitType: BitType.smartStandardTableExtendedNormative,
13287
- description: "Collapsible smart standard normative extended table bit, used to create collapsible smart standard normative extended tables in articles or books"
13687
+ description: "Collapsible smart standard normative extended table bit, used to create collapsible smart standard normative extended tables in articles or books",
13688
+ tags: [
13689
+ {
13690
+ key: ConfigKey.property_isCollapsible,
13691
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
13692
+ format: TagFormat.boolean,
13693
+ defaultValue: "true"
13694
+ }
13695
+ ]
13288
13696
  },
13289
13697
  [BitType.smartStandardTableExtendedNonNormativeCollapsible]: {
13290
13698
  since: "1.28.0",
13699
+ deprecated: "5.37.0",
13291
13700
  baseBitType: BitType.smartStandardTableExtendedNonNormative,
13292
- description: "Collapsible smart standard non-normative extended table bit, used to create collapsible smart standard non-normative extended tables in articles or books"
13701
+ description: "Collapsible smart standard non-normative extended table bit, used to create collapsible smart standard non-normative extended tables in articles or books",
13702
+ tags: [
13703
+ {
13704
+ key: ConfigKey.property_isCollapsible,
13705
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
13706
+ format: TagFormat.boolean,
13707
+ defaultValue: "true"
13708
+ }
13709
+ ]
13293
13710
  },
13294
13711
  [BitType.smartStandardRemarkTableExtendedNormativeCollapsible]: {
13295
13712
  since: "1.28.0",
13713
+ deprecated: "5.37.0",
13296
13714
  baseBitType: BitType.smartStandardRemarkTableExtendedNormative,
13297
- description: "Collapsible smart standard normative remark extended table bit, used to create collapsible smart standard normative remark extended tables in articles or books"
13715
+ description: "Collapsible smart standard normative remark extended table bit, used to create collapsible smart standard normative remark extended tables in articles or books",
13716
+ tags: [
13717
+ {
13718
+ key: ConfigKey.property_isCollapsible,
13719
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
13720
+ format: TagFormat.boolean,
13721
+ defaultValue: "true"
13722
+ }
13723
+ ]
13298
13724
  },
13299
13725
  [BitType.smartStandardRemarkTableExtendedNonNormativeCollapsible]: {
13300
13726
  since: "1.28.0",
13727
+ deprecated: "5.37.0",
13301
13728
  baseBitType: BitType.smartStandardRemarkTableExtendedNonNormative,
13302
- description: "Collapsible smart standard non-normative remark extended table bit, used to create collapsible smart standard non-normative remark extended tables in articles or books"
13729
+ description: "Collapsible smart standard non-normative remark extended table bit, used to create collapsible smart standard non-normative remark extended tables in articles or books",
13730
+ tags: [
13731
+ {
13732
+ key: ConfigKey.property_isCollapsible,
13733
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
13734
+ format: TagFormat.boolean,
13735
+ defaultValue: "true"
13736
+ }
13737
+ ]
13303
13738
  },
13304
13739
  [BitType.parameters]: {
13305
13740
  since: "1.18.0",
@@ -14011,11 +14446,13 @@ var BITS = {
14011
14446
  };
14012
14447
 
14013
14448
  // src/config/Config.ts
14449
+ var COLLAPSIBLE_BIT_TYPE_SUFFIX = "-collapsible";
14014
14450
  var Config = class {
14015
14451
  constructor() {
14016
14452
  __publicField(this, "bitLevelMin", 1);
14017
14453
  __publicField(this, "bitLevelMax", 7);
14018
14454
  __publicField(this, "bitCache", /* @__PURE__ */ new Map());
14455
+ __publicField(this, "migratedBitCache", /* @__PURE__ */ new Map());
14019
14456
  __publicField(this, "allResourcesCache");
14020
14457
  __publicField(this, "comboResourcesCache", /* @__PURE__ */ new Map());
14021
14458
  }
@@ -14031,6 +14468,29 @@ var Config = class {
14031
14468
  if (bitType?.startsWith("|")) bitType = bitType.substring(1);
14032
14469
  return Enum3(BitType).fromValue(bitType) ?? BitType._error;
14033
14470
  }
14471
+ /**
14472
+ * PLAN-017: Return the migration target for a deprecated `*-collapsible` bit type.
14473
+ *
14474
+ * Every `*-collapsible` bit type declares its non-collapsible cousin as its `baseBitType`, so the
14475
+ * target is read from the config rather than a hand-maintained table — a new `*-collapsible` bit
14476
+ * type is covered automatically.
14477
+ *
14478
+ * `BitType.collapsible` is the one exclusion: it has no non-collapsible cousin (its `baseBitType`
14479
+ * is `article`, which is not a migration target).
14480
+ *
14481
+ * @param bitType the bit type
14482
+ * @returns the bit type to migrate to, or undefined if the bit type does not migrate
14483
+ */
14484
+ getMigratedBitType(bitType) {
14485
+ const cached = this.migratedBitCache.get(bitType);
14486
+ if (cached !== void 0 || this.migratedBitCache.has(bitType)) return cached;
14487
+ let target;
14488
+ if (bitType !== BitType.collapsible && bitType.endsWith(COLLAPSIBLE_BIT_TYPE_SUFFIX)) {
14489
+ target = BITS[bitType]?.baseBitType;
14490
+ }
14491
+ this.migratedBitCache.set(bitType, target);
14492
+ return target;
14493
+ }
14034
14494
  /**
14035
14495
  * Check if a bit type is and instance of the given root bit type.
14036
14496
  *
@@ -14353,7 +14813,7 @@ var instance2 = new Config();
14353
14813
  // src/generated/package_info.ts
14354
14814
  var PACKAGE_INFO = {
14355
14815
  "name": "@gmb/bitmark-parser-generator",
14356
- "version": "5.36.0",
14816
+ "version": "5.37.0",
14357
14817
  "author": "Get More Brain Ltd",
14358
14818
  "license": "ISC",
14359
14819
  "description": "A bitmark parser and generator using Peggy.js"
@@ -15412,6 +15872,8 @@ var NodeType = {
15412
15872
  type: "type",
15413
15873
  unit: "unit",
15414
15874
  unitAbbr: "unitAbbr",
15875
+ unitAbbrPlural: "unitAbbrPlural",
15876
+ unitPlural: "unitPlural",
15415
15877
  url: "url",
15416
15878
  validationDate: "validationDate",
15417
15879
  validationDateValue: "validationDateValue",
@@ -28587,8 +29049,14 @@ var Builder = class extends BaseBuilder {
28587
29049
  */
28588
29050
  buildBit(data, options) {
28589
29051
  data = structuredClone(data);
29052
+ const migratedBitType = instance2.getMigratedBitType(data.bitType);
29053
+ if (migratedBitType) {
29054
+ data.bitType = migratedBitType;
29055
+ data.isCollapsible = data.isCollapsible ?? true;
29056
+ }
28590
29057
  const bitType = data.bitType;
28591
29058
  const bitConfig = instance2.getBitConfig(bitType);
29059
+ const isCollapsibleDefaultsTrue = bitConfig.tags[ConfigKey.property_isCollapsible]?.defaultValue === "true";
28592
29060
  const deprecatedTextFormat = Enum7(DeprecatedTextFormat).fromValue(data.textFormat);
28593
29061
  let textFormat = Enum7(TextFormat).fromValue(data.textFormat) ?? bitConfig.textFormatDefault;
28594
29062
  if (deprecatedTextFormat === DeprecatedTextFormat.bitmarkMinusMinus) {
@@ -29721,7 +30189,7 @@ var Builder = class extends BaseBuilder {
29721
30189
  isCollapsible: this.toAstProperty(
29722
30190
  bitType,
29723
30191
  ConfigKey.property_isCollapsible,
29724
- data.isCollapsible,
30192
+ data.isCollapsible ?? (isCollapsibleDefaultsTrue ? true : void 0),
29725
30193
  options
29726
30194
  ),
29727
30195
  anchor: data.anchor,
@@ -30490,7 +30958,9 @@ var Builder = class extends BaseBuilder {
30490
30958
  ingredient: this.handleJsonText(context, TextLocation.tag, data.ingredient),
30491
30959
  quantity: data.quantity ?? 0,
30492
30960
  unit: data.unit ?? "",
30961
+ unitPlural: data.unitPlural ?? "",
30493
30962
  unitAbbr: data.unitAbbr ?? "",
30963
+ unitAbbrPlural: data.unitAbbrPlural ?? "",
30494
30964
  decimalPlaces: data.decimalPlaces ?? 1,
30495
30965
  disableCalculation: data.disableCalculation ?? false,
30496
30966
  item: this.handleJsonText(context, TextLocation.tag, data.item),
@@ -31087,11 +31557,22 @@ var Builder = class extends BaseBuilder {
31087
31557
  */
31088
31558
  buildServings(_context, data) {
31089
31559
  if (!data) return void 0;
31090
- const { servings, unit, unitAbbr, decimalPlaces, disableCalculation, hint } = data;
31560
+ const {
31561
+ servings,
31562
+ unit,
31563
+ unitPlural,
31564
+ unitAbbr,
31565
+ unitAbbrPlural,
31566
+ decimalPlaces,
31567
+ disableCalculation,
31568
+ hint
31569
+ } = data;
31091
31570
  const node = {
31092
31571
  servings: servings ?? 0,
31093
31572
  unit: unit ?? "",
31573
+ unitPlural: unitPlural ?? "",
31094
31574
  unitAbbr: unitAbbr ?? "",
31575
+ unitAbbrPlural: unitAbbrPlural ?? "",
31095
31576
  decimalPlaces: decimalPlaces ?? 1,
31096
31577
  disableCalculation: disableCalculation ?? false,
31097
31578
  hint: hint ?? ""
@@ -32028,7 +32509,16 @@ var BitmarkGenerator = class extends AstWalkerGenerator {
32028
32509
  const nodeValue = node.value;
32029
32510
  const parent = this.getParentNode(route);
32030
32511
  if (parent?.key !== NodeType.bitsValue) return true;
32031
- const { servings, unit, unitAbbr, decimalPlaces, disableCalculation, hint } = nodeValue;
32512
+ const {
32513
+ servings,
32514
+ unit,
32515
+ unitPlural,
32516
+ unitAbbr,
32517
+ unitAbbrPlural,
32518
+ decimalPlaces,
32519
+ disableCalculation,
32520
+ hint
32521
+ } = nodeValue;
32032
32522
  this.writeProperty("servings", servings, route, {
32033
32523
  format: TagFormat.plainText
32034
32524
  });
@@ -32038,12 +32528,24 @@ var BitmarkGenerator = class extends AstWalkerGenerator {
32038
32528
  forceChain: true
32039
32529
  });
32040
32530
  }
32531
+ if (unitPlural != null) {
32532
+ this.writeProperty("unitPlural", unitPlural, route, {
32533
+ format: TagFormat.plainText,
32534
+ forceChain: true
32535
+ });
32536
+ }
32041
32537
  if (unitAbbr != null) {
32042
32538
  this.writeProperty("unitAbbr", unitAbbr, route, {
32043
32539
  format: TagFormat.plainText,
32044
32540
  forceChain: true
32045
32541
  });
32046
32542
  }
32543
+ if (unitAbbrPlural != null) {
32544
+ this.writeProperty("unitAbbrPlural", unitAbbrPlural, route, {
32545
+ format: TagFormat.plainText,
32546
+ forceChain: true
32547
+ });
32548
+ }
32047
32549
  if (decimalPlaces != null) {
32048
32550
  this.writeProperty("decimalPlaces", decimalPlaces, route, {
32049
32551
  format: TagFormat.plainText,
@@ -32890,10 +33392,18 @@ var BitmarkGenerator = class extends AstWalkerGenerator {
32890
33392
  this.writeProperty("unit", ingredient.unit, route, {
32891
33393
  format: TagFormat.plainText
32892
33394
  });
33395
+ if (ingredient.unitPlural != null)
33396
+ this.writeProperty("unitPlural", ingredient.unitPlural, route, {
33397
+ format: TagFormat.plainText
33398
+ });
32893
33399
  if (ingredient.unitAbbr != null)
32894
33400
  this.writeProperty("unitAbbr", ingredient.unitAbbr, route, {
32895
33401
  format: TagFormat.plainText
32896
33402
  });
33403
+ if (ingredient.unitAbbrPlural != null)
33404
+ this.writeProperty("unitAbbrPlural", ingredient.unitAbbrPlural, route, {
33405
+ format: TagFormat.plainText
33406
+ });
32897
33407
  if (ingredient.decimalPlaces != null)
32898
33408
  this.writeProperty("decimalPlaces", ingredient.decimalPlaces, route, {
32899
33409
  format: TagFormat.plainText
@@ -34672,6 +35182,25 @@ var JsonGenerator = class extends AstWalkerGenerator {
34672
35182
  }
34673
35183
  return false;
34674
35184
  }
35185
+ // bitmarkAst -> bits -> bitsValue -> isCollapsible
35186
+ /**
35187
+ * PLAN-016: `isCollapsible` is emitted only when true. `false` is the implied
35188
+ * default for every bit, so it is never written to the JSON — an absent key
35189
+ * means the bit's configured default (`true` for the deprecated
35190
+ * `*-collapsible` bit types, `false` everywhere else).
35191
+ *
35192
+ * Defining these handlers suppresses the generic property handlers that
35193
+ * `generatePropertyHandlers()` would otherwise install for this tag.
35194
+ */
35195
+ leaf_isCollapsible(node, route) {
35196
+ const parent = this.getParentNode(route);
35197
+ if (parent?.key !== NodeType.bitsValue) return false;
35198
+ if (node.value === true) this.bitJson.isCollapsible = true;
35199
+ return false;
35200
+ }
35201
+ enter_isCollapsible(node, route) {
35202
+ return this.leaf_isCollapsible(node, route);
35203
+ }
34675
35204
  // bitmarkAst -> bits -> bitsValue -> markConfig
34676
35205
  enter_markConfig(_node, _route) {
34677
35206
  return true;
@@ -35545,7 +36074,6 @@ var JsonGenerator = class extends AstWalkerGenerator {
35545
36074
  if (instance2.isOfBitType(bitType, BitType.chapter)) {
35546
36075
  if (bitJson.toc == null) bitJson.toc = true;
35547
36076
  if (bitJson.progress == null) bitJson.progress = true;
35548
- if (bitJson.isCollapsible == null) bitJson.isCollapsible = false;
35549
36077
  if (bitJson.level == null) bitJson.level = 1;
35550
36078
  if (bitJson.body == null) bitJson.body = this.bodyDefault;
35551
36079
  }
@@ -38524,7 +39052,9 @@ function parseIngredients(_context, _bitType, cardSet) {
38524
39052
  title: titleArray,
38525
39053
  __instructionString,
38526
39054
  unit,
39055
+ unitPlural,
38527
39056
  unitAbbr,
39057
+ unitAbbrPlural,
38528
39058
  decimalPlaces,
38529
39059
  disableCalculation,
38530
39060
  cardBodyStr,
@@ -38554,7 +39084,9 @@ function parseIngredients(_context, _bitType, cardSet) {
38554
39084
  ingredient: cardBodyStr,
38555
39085
  quantity,
38556
39086
  unit: unit ?? instance3.EMPTY_STRING,
39087
+ unitPlural,
38557
39088
  unitAbbr: unitAbbr ?? instance3.EMPTY_STRING,
39089
+ unitAbbrPlural,
38558
39090
  decimalPlaces: decimalPlaces ?? 1,
38559
39091
  disableCalculation,
38560
39092
  ...tags2
@@ -39225,12 +39757,22 @@ function servingsChainContentProcessor(context, _contentDepth, tagsConfig, conte
39225
39757
  if (context.DEBUG_CHAIN_CONTENT) context.debugPrint("servings content", content);
39226
39758
  const tags2 = context.bitContentProcessor(ContentDepth.Chain, tagsConfig, content.chain);
39227
39759
  if (context.DEBUG_CHAIN_TAGS) context.debugPrint("servings TAGS", tags2);
39228
- const { unit, unitAbbr, decimalPlaces, disableCalculation, __hintString } = tags2;
39760
+ const {
39761
+ unit,
39762
+ unitPlural,
39763
+ unitAbbr,
39764
+ unitAbbrPlural,
39765
+ decimalPlaces,
39766
+ disableCalculation,
39767
+ __hintString
39768
+ } = tags2;
39229
39769
  const servings = instance6.asNumber(content.value) ?? 1;
39230
39770
  const node = {
39231
39771
  servings,
39232
39772
  unit,
39773
+ unitPlural,
39233
39774
  unitAbbr,
39775
+ unitAbbrPlural,
39234
39776
  decimalPlaces: decimalPlaces ?? 1,
39235
39777
  disableCalculation,
39236
39778
  hint: __hintString