@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.
@@ -1615,6 +1615,8 @@ var propertyKeys = {
1615
1615
  property_trim: "@trim",
1616
1616
  property_unit: "@unit",
1617
1617
  property_unitAbbr: "@unitAbbr",
1618
+ property_unitAbbrPlural: "@unitAbbrPlural",
1619
+ property_unitPlural: "@unitPlural",
1618
1620
  property_vendorDashboardId: "@vendorDashboardId",
1619
1621
  property_vendorSurveyId: "@vendorSurveyId",
1620
1622
  property_vendorUrl: "@vendorUrl",
@@ -4428,12 +4430,22 @@ var CARDSETS = {
4428
4430
  },
4429
4431
  {
4430
4432
  key: ConfigKey.property_unit,
4431
- description: "Unit of measurement for the ingredient.",
4433
+ description: "Unit of measurement for the ingredient (singular).",
4434
+ format: TagFormat.plainText
4435
+ },
4436
+ {
4437
+ key: ConfigKey.property_unitPlural,
4438
+ description: "Unit of measurement for the ingredient (plural).",
4432
4439
  format: TagFormat.plainText
4433
4440
  },
4434
4441
  {
4435
4442
  key: ConfigKey.property_unitAbbr,
4436
- description: "Abbreviation for the unit of measurement.",
4443
+ description: "Abbreviation for the unit of measurement (singular).",
4444
+ format: TagFormat.plainText
4445
+ },
4446
+ {
4447
+ key: ConfigKey.property_unitAbbrPlural,
4448
+ description: "Abbreviation for the unit of measurement (plural).",
4437
4449
  format: TagFormat.plainText
4438
4450
  },
4439
4451
  {
@@ -4609,6 +4621,11 @@ var GROUPS = {
4609
4621
  description: "Translation source reference",
4610
4622
  format: TagFormat.plainText
4611
4623
  },
4624
+ {
4625
+ key: ConfigKey.property_isCollapsible,
4626
+ description: "If true, the bit is collapsible",
4627
+ format: TagFormat.boolean
4628
+ },
4612
4629
  {
4613
4630
  key: ConfigKey.property_spansPageBreak,
4614
4631
  description: "If true, the bit spans a page break",
@@ -7662,13 +7679,31 @@ var BITS = {
7662
7679
  },
7663
7680
  [BitType2.smartStandardArticleNormativeCollapsible]: {
7664
7681
  since: "1.28.0",
7682
+ deprecated: "5.37.0",
7665
7683
  baseBitType: BitType2.smartStandardArticleNormative,
7666
- description: "Smart standard normative article bit that is collapsible"
7684
+ description: "Smart standard normative article bit that is collapsible",
7685
+ tags: [
7686
+ {
7687
+ key: ConfigKey.property_isCollapsible,
7688
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
7689
+ format: TagFormat.boolean,
7690
+ defaultValue: "true"
7691
+ }
7692
+ ]
7667
7693
  },
7668
7694
  [BitType2.smartStandardArticleNonNormativeCollapsible]: {
7669
7695
  since: "1.28.0",
7696
+ deprecated: "5.37.0",
7670
7697
  baseBitType: BitType2.smartStandardArticleNonNormative,
7671
- description: "Smart standard non-normative article bit that is collapsible"
7698
+ description: "Smart standard non-normative article bit that is collapsible",
7699
+ tags: [
7700
+ {
7701
+ key: ConfigKey.property_isCollapsible,
7702
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
7703
+ format: TagFormat.boolean,
7704
+ defaultValue: "true"
7705
+ }
7706
+ ]
7672
7707
  },
7673
7708
  [BitType2.statement]: {
7674
7709
  since: "1.3.0",
@@ -8787,12 +8822,6 @@ var BITS = {
8787
8822
  description: "The progress of the chapter, used for tracking reading progress",
8788
8823
  format: TagFormat.boolean,
8789
8824
  defaultValue: "true"
8790
- },
8791
- {
8792
- key: ConfigKey.property_isCollapsible,
8793
- description: "If true, the chapter is collapsible",
8794
- format: TagFormat.boolean,
8795
- defaultValue: "false"
8796
8825
  }
8797
8826
  ]
8798
8827
  },
@@ -9399,12 +9428,22 @@ var BITS = {
9399
9428
  chain: [
9400
9429
  {
9401
9430
  key: ConfigKey.property_unit,
9402
- description: "The unit of measurement for the ingredients",
9431
+ description: "The unit of measurement for the ingredients (singular)",
9432
+ format: TagFormat.plainText
9433
+ },
9434
+ {
9435
+ key: ConfigKey.property_unitPlural,
9436
+ description: "The unit of measurement for the ingredients (plural)",
9403
9437
  format: TagFormat.plainText
9404
9438
  },
9405
9439
  {
9406
9440
  key: ConfigKey.property_unitAbbr,
9407
- description: "The abbreviation for the unit of measurement",
9441
+ description: "The abbreviation for the unit of measurement (singular)",
9442
+ format: TagFormat.plainText
9443
+ },
9444
+ {
9445
+ key: ConfigKey.property_unitAbbrPlural,
9446
+ description: "The abbreviation for the unit of measurement (plural)",
9408
9447
  format: TagFormat.plainText
9409
9448
  },
9410
9449
  {
@@ -9683,13 +9722,31 @@ var BITS = {
9683
9722
  },
9684
9723
  [BitType2.smartStandardExampleNormativeCollapsible]: {
9685
9724
  since: "1.28.0",
9725
+ deprecated: "5.37.0",
9686
9726
  baseBitType: BitType2.smartStandardExampleNormative,
9687
- description: "Smart standard normative example collapsible bit, used to provide normative examples in smart standards that can be collapsed"
9727
+ description: "Smart standard normative example collapsible bit, used to provide normative examples in smart standards that can be collapsed",
9728
+ tags: [
9729
+ {
9730
+ key: ConfigKey.property_isCollapsible,
9731
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
9732
+ format: TagFormat.boolean,
9733
+ defaultValue: "true"
9734
+ }
9735
+ ]
9688
9736
  },
9689
9737
  [BitType2.smartStandardExampleNonNormativeCollapsible]: {
9690
9738
  since: "1.28.0",
9739
+ deprecated: "5.37.0",
9691
9740
  baseBitType: BitType2.smartStandardExampleNonNormative,
9692
- description: "Smart standard non-normative example collapsible bit, used to provide non-normative examples in smart standards that can be collapsed"
9741
+ description: "Smart standard non-normative example collapsible bit, used to provide non-normative examples in smart standards that can be collapsed",
9742
+ tags: [
9743
+ {
9744
+ key: ConfigKey.property_isCollapsible,
9745
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
9746
+ format: TagFormat.boolean,
9747
+ defaultValue: "true"
9748
+ }
9749
+ ]
9693
9750
  },
9694
9751
  [BitType2.authorContentBitGenerator]: {
9695
9752
  since: "4.2.0",
@@ -10025,8 +10082,17 @@ var BITS = {
10025
10082
  },
10026
10083
  [BitType2.smartStandardListCollapsible]: {
10027
10084
  since: "1.28.0",
10085
+ deprecated: "5.37.0",
10028
10086
  baseBitType: BitType2.smartStandardList,
10029
- description: "Smart standard list collapsible bit, used to create collapsible smart standard lists in articles or books"
10087
+ description: "Smart standard list collapsible bit, used to create collapsible smart standard lists in articles or books",
10088
+ tags: [
10089
+ {
10090
+ key: ConfigKey.property_isCollapsible,
10091
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10092
+ format: TagFormat.boolean,
10093
+ defaultValue: "true"
10094
+ }
10095
+ ]
10030
10096
  },
10031
10097
  [BitType2.message]: {
10032
10098
  since: "1.3.0",
@@ -10080,13 +10146,31 @@ var BITS = {
10080
10146
  },
10081
10147
  [BitType2.smartStandardNoteNormativeCollapsible]: {
10082
10148
  since: "1.28.0",
10149
+ deprecated: "5.37.0",
10083
10150
  baseBitType: BitType2.smartStandardNoteNormative,
10084
- description: "Smart standard normative note collapsible bit, used to provide normative notes in smart standards that can be collapsed"
10151
+ description: "Smart standard normative note collapsible bit, used to provide normative notes in smart standards that can be collapsed",
10152
+ tags: [
10153
+ {
10154
+ key: ConfigKey.property_isCollapsible,
10155
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10156
+ format: TagFormat.boolean,
10157
+ defaultValue: "true"
10158
+ }
10159
+ ]
10085
10160
  },
10086
10161
  [BitType2.smartStandardNoteNonNormativeCollapsible]: {
10087
10162
  since: "1.28.0",
10163
+ deprecated: "5.37.0",
10088
10164
  baseBitType: BitType2.smartStandardNoteNonNormative,
10089
- description: "Smart standard non-normative note collapsible bit, used to provide non-normative notes in smart standards that can be collapsed"
10165
+ description: "Smart standard non-normative note collapsible bit, used to provide non-normative notes in smart standards that can be collapsed",
10166
+ tags: [
10167
+ {
10168
+ key: ConfigKey.property_isCollapsible,
10169
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10170
+ format: TagFormat.boolean,
10171
+ defaultValue: "true"
10172
+ }
10173
+ ]
10090
10174
  },
10091
10175
  [BitType2.noteAi]: {
10092
10176
  since: "1.3.0",
@@ -10199,13 +10283,31 @@ var BITS = {
10199
10283
  },
10200
10284
  [BitType2.smartStandardRemarkNormativeCollapsible]: {
10201
10285
  since: "1.28.0",
10286
+ deprecated: "5.37.0",
10202
10287
  baseBitType: BitType2.smartStandardRemarkNormative,
10203
- description: "Smart standard normative remark collapsible bit, used to provide normative remarks in smart standards that can be collapsed"
10288
+ description: "Smart standard normative remark collapsible bit, used to provide normative remarks in smart standards that can be collapsed",
10289
+ tags: [
10290
+ {
10291
+ key: ConfigKey.property_isCollapsible,
10292
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10293
+ format: TagFormat.boolean,
10294
+ defaultValue: "true"
10295
+ }
10296
+ ]
10204
10297
  },
10205
10298
  [BitType2.smartStandardRemarkNonNormativeCollapsible]: {
10206
10299
  since: "1.28.0",
10300
+ deprecated: "5.37.0",
10207
10301
  baseBitType: BitType2.smartStandardRemarkNonNormative,
10208
- description: "Smart standard non-normative remark collapsible bit, used to provide non-normative remarks in smart standards that can be collapsed"
10302
+ description: "Smart standard non-normative remark collapsible bit, used to provide non-normative remarks in smart standards that can be collapsed",
10303
+ tags: [
10304
+ {
10305
+ key: ConfigKey.property_isCollapsible,
10306
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10307
+ format: TagFormat.boolean,
10308
+ defaultValue: "true"
10309
+ }
10310
+ ]
10209
10311
  },
10210
10312
  [BitType2.selfAssessment]: {
10211
10313
  since: "1.3.0",
@@ -10276,53 +10378,143 @@ var BITS = {
10276
10378
  },
10277
10379
  [BitType2.collapsible]: {
10278
10380
  since: "1.21.0",
10381
+ deprecated: "5.37.0",
10279
10382
  baseBitType: BitType2.article,
10280
- description: "Collapsible bit, used to create collapsible sections in articles or books"
10383
+ description: "Collapsible bit, used to create collapsible sections in articles or books",
10384
+ tags: [
10385
+ {
10386
+ key: ConfigKey.property_isCollapsible,
10387
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10388
+ format: TagFormat.boolean,
10389
+ defaultValue: "true"
10390
+ }
10391
+ ]
10281
10392
  },
10282
10393
  [BitType2.sideNoteCollapsible]: {
10283
10394
  since: "1.21.0",
10284
- baseBitType: BitType2.article,
10285
- description: "Side note collapsible bit, used to create collapsible side notes in articles or books"
10395
+ deprecated: "5.37.0",
10396
+ baseBitType: BitType2.sideNote,
10397
+ description: "Side note collapsible bit, used to create collapsible side notes in articles or books",
10398
+ tags: [
10399
+ {
10400
+ key: ConfigKey.property_isCollapsible,
10401
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10402
+ format: TagFormat.boolean,
10403
+ defaultValue: "true"
10404
+ }
10405
+ ]
10286
10406
  },
10287
10407
  [BitType2.infoCollapsible]: {
10288
10408
  since: "1.21.0",
10289
- baseBitType: BitType2.article,
10290
- description: "Info collapsible bit, used to create collapsible informational sections in articles or books"
10409
+ deprecated: "5.37.0",
10410
+ baseBitType: BitType2.info,
10411
+ description: "Info collapsible bit, used to create collapsible informational sections in articles or books",
10412
+ tags: [
10413
+ {
10414
+ key: ConfigKey.property_isCollapsible,
10415
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10416
+ format: TagFormat.boolean,
10417
+ defaultValue: "true"
10418
+ }
10419
+ ]
10291
10420
  },
10292
10421
  [BitType2.remarkCollapsible]: {
10293
10422
  since: "1.21.0",
10294
- baseBitType: BitType2.article,
10295
- description: "Remark collapsible bit, used to create collapsible remarks in articles or books"
10423
+ deprecated: "5.37.0",
10424
+ baseBitType: BitType2.remark,
10425
+ description: "Remark collapsible bit, used to create collapsible remarks in articles or books",
10426
+ tags: [
10427
+ {
10428
+ key: ConfigKey.property_isCollapsible,
10429
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10430
+ format: TagFormat.boolean,
10431
+ defaultValue: "true"
10432
+ }
10433
+ ]
10296
10434
  },
10297
10435
  [BitType2.warningCollapsible]: {
10298
10436
  since: "1.21.0",
10299
- baseBitType: BitType2.article,
10300
- description: "Warning collapsible bit, used to create collapsible warnings in articles or books"
10437
+ deprecated: "5.37.0",
10438
+ baseBitType: BitType2.warning,
10439
+ description: "Warning collapsible bit, used to create collapsible warnings in articles or books",
10440
+ tags: [
10441
+ {
10442
+ key: ConfigKey.property_isCollapsible,
10443
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10444
+ format: TagFormat.boolean,
10445
+ defaultValue: "true"
10446
+ }
10447
+ ]
10301
10448
  },
10302
10449
  [BitType2.dangerCollapsible]: {
10303
10450
  since: "1.21.0",
10304
- baseBitType: BitType2.article,
10305
- description: "Danger collapsible bit, used to create collapsible danger sections in articles or books"
10451
+ deprecated: "5.37.0",
10452
+ baseBitType: BitType2.danger,
10453
+ description: "Danger collapsible bit, used to create collapsible danger sections in articles or books",
10454
+ tags: [
10455
+ {
10456
+ key: ConfigKey.property_isCollapsible,
10457
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10458
+ format: TagFormat.boolean,
10459
+ defaultValue: "true"
10460
+ }
10461
+ ]
10306
10462
  },
10307
10463
  [BitType2.noteCollapsible]: {
10308
10464
  since: "1.21.0",
10309
- baseBitType: BitType2.article,
10310
- description: "Note collapsible bit, used to create collapsible notes in articles or books"
10465
+ deprecated: "5.37.0",
10466
+ baseBitType: BitType2.note,
10467
+ description: "Note collapsible bit, used to create collapsible notes in articles or books",
10468
+ tags: [
10469
+ {
10470
+ key: ConfigKey.property_isCollapsible,
10471
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10472
+ format: TagFormat.boolean,
10473
+ defaultValue: "true"
10474
+ }
10475
+ ]
10311
10476
  },
10312
10477
  [BitType2.exampleCollapsible]: {
10313
10478
  since: "1.21.0",
10314
- baseBitType: BitType2.article,
10315
- description: "Example collapsible bit, used to create collapsible examples in articles or books"
10479
+ deprecated: "5.37.0",
10480
+ baseBitType: BitType2.example,
10481
+ description: "Example collapsible bit, used to create collapsible examples in articles or books",
10482
+ tags: [
10483
+ {
10484
+ key: ConfigKey.property_isCollapsible,
10485
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10486
+ format: TagFormat.boolean,
10487
+ defaultValue: "true"
10488
+ }
10489
+ ]
10316
10490
  },
10317
10491
  [BitType2.hintCollapsible]: {
10318
10492
  since: "1.21.0",
10319
- baseBitType: BitType2.article,
10320
- description: "Hint collapsible bit, used to create collapsible hints in articles or books"
10493
+ deprecated: "5.37.0",
10494
+ baseBitType: BitType2.hint,
10495
+ description: "Hint collapsible bit, used to create collapsible hints in articles or books",
10496
+ tags: [
10497
+ {
10498
+ key: ConfigKey.property_isCollapsible,
10499
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10500
+ format: TagFormat.boolean,
10501
+ defaultValue: "true"
10502
+ }
10503
+ ]
10321
10504
  },
10322
10505
  [BitType2.bugCollapsible]: {
10323
10506
  since: "1.21.0",
10324
- baseBitType: BitType2.article,
10325
- description: "Bug collapsible bit, used to create collapsible bug reports in articles or books"
10507
+ deprecated: "5.37.0",
10508
+ baseBitType: BitType2.bug,
10509
+ description: "Bug collapsible bit, used to create collapsible bug reports in articles or books",
10510
+ tags: [
10511
+ {
10512
+ key: ConfigKey.property_isCollapsible,
10513
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10514
+ format: TagFormat.boolean,
10515
+ defaultValue: "true"
10516
+ }
10517
+ ]
10326
10518
  },
10327
10519
  [BitType2.platformPath]: {
10328
10520
  since: "3.14.1",
@@ -10544,8 +10736,17 @@ var BITS = {
10544
10736
  },
10545
10737
  [BitType2.extractorPageCollapsible]: {
10546
10738
  since: "1.30.0",
10739
+ deprecated: "5.37.0",
10547
10740
  baseBitType: BitType2.extractorPage,
10548
- description: "Collapsible extractor page bit, used to extract pages from images with collapsible functionality"
10741
+ description: "Collapsible extractor page bit, used to extract pages from images with collapsible functionality",
10742
+ tags: [
10743
+ {
10744
+ key: ConfigKey.property_isCollapsible,
10745
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10746
+ format: TagFormat.boolean,
10747
+ defaultValue: "true"
10748
+ }
10749
+ ]
10549
10750
  },
10550
10751
  [BitType2.extractorPageWithBlocks]: {
10551
10752
  since: "1.5.21",
@@ -10554,8 +10755,17 @@ var BITS = {
10554
10755
  },
10555
10756
  [BitType2.extractorPageWithBlocksCollapsible]: {
10556
10757
  since: "1.30.0",
10758
+ deprecated: "5.37.0",
10557
10759
  baseBitType: BitType2.extractorPageWithBlocks,
10558
- description: "Collapsible extractor page with blocks bit, used to extract pages with blocks from images with collapsible functionality"
10760
+ description: "Collapsible extractor page with blocks bit, used to extract pages with blocks from images with collapsible functionality",
10761
+ tags: [
10762
+ {
10763
+ key: ConfigKey.property_isCollapsible,
10764
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10765
+ format: TagFormat.boolean,
10766
+ defaultValue: "true"
10767
+ }
10768
+ ]
10559
10769
  },
10560
10770
  [BitType2.extractorConfiguration]: {
10561
10771
  since: "1.7.1",
@@ -10595,8 +10805,17 @@ var BITS = {
10595
10805
  },
10596
10806
  [BitType2.extractorImageCollapsible]: {
10597
10807
  since: "4.3.0",
10808
+ deprecated: "5.37.0",
10598
10809
  baseBitType: BitType2.extractorImage,
10599
- description: "Collapsible extractor images bit, used for images extracted from PDFs"
10810
+ description: "Collapsible extractor images bit, used for images extracted from PDFs",
10811
+ tags: [
10812
+ {
10813
+ key: ConfigKey.property_isCollapsible,
10814
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10815
+ format: TagFormat.boolean,
10816
+ defaultValue: "true"
10817
+ }
10818
+ ]
10600
10819
  },
10601
10820
  [BitType2.extractorBlueprint]: {
10602
10821
  since: "5.12.0",
@@ -10733,8 +10952,17 @@ var BITS = {
10733
10952
  },
10734
10953
  [BitType2.extractorPageNumberCollapsible]: {
10735
10954
  since: "1.30.0",
10955
+ deprecated: "5.37.0",
10736
10956
  baseBitType: BitType2.extractorPageNumber,
10737
- description: "Collapsible extractor page number bit, used to define page numbers in extractor pages with collapsible functionality"
10957
+ description: "Collapsible extractor page number bit, used to define page numbers in extractor pages with collapsible functionality",
10958
+ tags: [
10959
+ {
10960
+ key: ConfigKey.property_isCollapsible,
10961
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10962
+ format: TagFormat.boolean,
10963
+ defaultValue: "true"
10964
+ }
10965
+ ]
10738
10966
  },
10739
10967
  [BitType2.extractorPageHeader]: {
10740
10968
  since: "1.5.21",
@@ -10743,8 +10971,17 @@ var BITS = {
10743
10971
  },
10744
10972
  [BitType2.extractorPageHeaderCollapsible]: {
10745
10973
  since: "1.30.0",
10974
+ deprecated: "5.37.0",
10746
10975
  baseBitType: BitType2.extractorPageHeader,
10747
- description: "Collapsible extractor page header bit, used to define headers in extractor pages with collapsible functionality"
10976
+ description: "Collapsible extractor page header bit, used to define headers in extractor pages with collapsible functionality",
10977
+ tags: [
10978
+ {
10979
+ key: ConfigKey.property_isCollapsible,
10980
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10981
+ format: TagFormat.boolean,
10982
+ defaultValue: "true"
10983
+ }
10984
+ ]
10748
10985
  },
10749
10986
  [BitType2.extractorPageFooter]: {
10750
10987
  since: "1.5.21",
@@ -10753,8 +10990,17 @@ var BITS = {
10753
10990
  },
10754
10991
  [BitType2.extractorPageFooterCollapsible]: {
10755
10992
  since: "1.30.0",
10993
+ deprecated: "5.37.0",
10756
10994
  baseBitType: BitType2.extractorPageFooter,
10757
- description: "Collapsible extractor page footer bit, used to define footers in extractor pages with collapsible functionality"
10995
+ description: "Collapsible extractor page footer bit, used to define footers in extractor pages with collapsible functionality",
10996
+ tags: [
10997
+ {
10998
+ key: ConfigKey.property_isCollapsible,
10999
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
11000
+ format: TagFormat.boolean,
11001
+ defaultValue: "true"
11002
+ }
11003
+ ]
10758
11004
  },
10759
11005
  [BitType2.pageOpenBook]: {
10760
11006
  since: "1.5.10",
@@ -11044,8 +11290,17 @@ var BITS = {
11044
11290
  },
11045
11291
  [BitType2.definitionListCollapsible]: {
11046
11292
  since: "5.25.0",
11293
+ deprecated: "5.37.0",
11047
11294
  baseBitType: BitType2.definitionList,
11048
- description: "Collapsible definition list bit, used to create collapsible lists of definitions in articles or books"
11295
+ description: "Collapsible definition list bit, used to create collapsible lists of definitions in articles or books",
11296
+ tags: [
11297
+ {
11298
+ key: ConfigKey.property_isCollapsible,
11299
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
11300
+ format: TagFormat.boolean,
11301
+ defaultValue: "true"
11302
+ }
11303
+ ]
11049
11304
  },
11050
11305
  [BitType2.standardDefinitionListNormative]: {
11051
11306
  since: "5.24.0",
@@ -11269,13 +11524,31 @@ var BITS = {
11269
11524
  },
11270
11525
  [BitType2.smartStandardImageFigureNormativeCollapsible]: {
11271
11526
  since: "1.28.0",
11527
+ deprecated: "5.37.0",
11272
11528
  baseBitType: BitType2.smartStandardImageFigureNormative,
11273
- description: "Collapsible smart standard normative image figure bit, used to create collapsible smart standard normative image figures in articles or books"
11529
+ description: "Collapsible smart standard normative image figure bit, used to create collapsible smart standard normative image figures in articles or books",
11530
+ tags: [
11531
+ {
11532
+ key: ConfigKey.property_isCollapsible,
11533
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
11534
+ format: TagFormat.boolean,
11535
+ defaultValue: "true"
11536
+ }
11537
+ ]
11274
11538
  },
11275
11539
  [BitType2.smartStandardImageFigureNonNormativeCollapsible]: {
11276
11540
  since: "1.28.0",
11541
+ deprecated: "5.37.0",
11277
11542
  baseBitType: BitType2.smartStandardImageFigureNonNormative,
11278
- description: "Collapsible smart standard non-normative image figure bit, used to create collapsible smart standard non-normative image figures in articles or books"
11543
+ description: "Collapsible smart standard non-normative image figure bit, used to create collapsible smart standard non-normative image figures in articles or books",
11544
+ tags: [
11545
+ {
11546
+ key: ConfigKey.property_isCollapsible,
11547
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
11548
+ format: TagFormat.boolean,
11549
+ defaultValue: "true"
11550
+ }
11551
+ ]
11279
11552
  },
11280
11553
  [BitType2.imageLandscape]: {
11281
11554
  since: "1.3.0",
@@ -11487,43 +11760,115 @@ var BITS = {
11487
11760
  },
11488
11761
  [BitType2.smartStandardTableImageNormativeCollapsible]: {
11489
11762
  since: "1.28.0",
11763
+ deprecated: "5.37.0",
11490
11764
  baseBitType: BitType2.smartStandardTableImageNormative,
11491
- description: "Collapsible smart standard normative table image bit, used to create collapsible smart standard normative images in tables in articles or books"
11765
+ description: "Collapsible smart standard normative table image bit, used to create collapsible smart standard normative images in tables in articles or books",
11766
+ tags: [
11767
+ {
11768
+ key: ConfigKey.property_isCollapsible,
11769
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
11770
+ format: TagFormat.boolean,
11771
+ defaultValue: "true"
11772
+ }
11773
+ ]
11492
11774
  },
11493
11775
  [BitType2.smartStandardTableImageNonNormativeCollapsible]: {
11494
11776
  since: "1.28.0",
11777
+ deprecated: "5.37.0",
11495
11778
  baseBitType: BitType2.smartStandardTableImageNonNormative,
11496
- description: "Collapsible smart standard non-normative table image bit, used to create collapsible smart standard non-normative images in tables in articles or books"
11779
+ description: "Collapsible smart standard non-normative table image bit, used to create collapsible smart standard non-normative images in tables in articles or books",
11780
+ tags: [
11781
+ {
11782
+ key: ConfigKey.property_isCollapsible,
11783
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
11784
+ format: TagFormat.boolean,
11785
+ defaultValue: "true"
11786
+ }
11787
+ ]
11497
11788
  },
11498
11789
  [BitType2.smartStandardRemarkTableImageNormativeCollapsible]: {
11499
11790
  since: "1.28.0",
11791
+ deprecated: "5.37.0",
11500
11792
  baseBitType: BitType2.smartStandardRemarkTableImageNormative,
11501
- description: "Collapsible smart standard normative remark table image bit, used to create collapsible smart standard normative remark images in tables in articles or books"
11793
+ description: "Collapsible smart standard normative remark table image bit, used to create collapsible smart standard normative remark images in tables in articles or books",
11794
+ tags: [
11795
+ {
11796
+ key: ConfigKey.property_isCollapsible,
11797
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
11798
+ format: TagFormat.boolean,
11799
+ defaultValue: "true"
11800
+ }
11801
+ ]
11502
11802
  },
11503
11803
  [BitType2.smartStandardRemarkTableImageNonNormativeCollapsible]: {
11504
11804
  since: "1.28.0",
11805
+ deprecated: "5.37.0",
11505
11806
  baseBitType: BitType2.smartStandardRemarkTableImageNonNormative,
11506
- 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"
11807
+ 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",
11808
+ tags: [
11809
+ {
11810
+ key: ConfigKey.property_isCollapsible,
11811
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
11812
+ format: TagFormat.boolean,
11813
+ defaultValue: "true"
11814
+ }
11815
+ ]
11507
11816
  },
11508
11817
  [BitType2.smartStandardTableExtendedImageNormativeCollapsible]: {
11509
11818
  since: "1.28.0",
11819
+ deprecated: "5.37.0",
11510
11820
  baseBitType: BitType2.smartStandardTableExtendedImageNormative,
11511
- description: "Collapsible smart standard normative extended table image bit, used to create collapsible smart standard normative extended images in tables in articles or books"
11821
+ description: "Collapsible smart standard normative extended table image bit, used to create collapsible smart standard normative extended images in tables in articles or books",
11822
+ tags: [
11823
+ {
11824
+ key: ConfigKey.property_isCollapsible,
11825
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
11826
+ format: TagFormat.boolean,
11827
+ defaultValue: "true"
11828
+ }
11829
+ ]
11512
11830
  },
11513
11831
  [BitType2.smartStandardTableExtendedImageNonNormativeCollapsible]: {
11514
11832
  since: "1.28.0",
11833
+ deprecated: "5.37.0",
11515
11834
  baseBitType: BitType2.smartStandardTableExtendedImageNonNormative,
11516
- 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"
11835
+ 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",
11836
+ tags: [
11837
+ {
11838
+ key: ConfigKey.property_isCollapsible,
11839
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
11840
+ format: TagFormat.boolean,
11841
+ defaultValue: "true"
11842
+ }
11843
+ ]
11517
11844
  },
11518
11845
  [BitType2.smartStandardRemarkTableExtendedImageNormativeCollapsible]: {
11519
11846
  since: "1.28.0",
11847
+ deprecated: "5.37.0",
11520
11848
  baseBitType: BitType2.smartStandardRemarkTableExtendedImageNormative,
11521
- 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"
11849
+ 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",
11850
+ tags: [
11851
+ {
11852
+ key: ConfigKey.property_isCollapsible,
11853
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
11854
+ format: TagFormat.boolean,
11855
+ defaultValue: "true"
11856
+ }
11857
+ ]
11522
11858
  },
11523
11859
  [BitType2.smartStandardRemarkTableExtendedImageNonNormativeCollapsible]: {
11524
11860
  since: "1.28.0",
11861
+ deprecated: "5.37.0",
11525
11862
  baseBitType: BitType2.smartStandardRemarkTableExtendedImageNonNormative,
11526
- 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"
11863
+ 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",
11864
+ tags: [
11865
+ {
11866
+ key: ConfigKey.property_isCollapsible,
11867
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
11868
+ format: TagFormat.boolean,
11869
+ defaultValue: "true"
11870
+ }
11871
+ ]
11527
11872
  },
11528
11873
  [BitType2.imageLink]: {
11529
11874
  since: "1.3.0",
@@ -12004,8 +12349,17 @@ var BITS = {
12004
12349
  },
12005
12350
  [BitType2.smartStandardListItemCollapsible]: {
12006
12351
  since: "1.28.0",
12352
+ deprecated: "5.37.0",
12007
12353
  baseBitType: BitType2.smartStandardListItem,
12008
- description: "Collapsible smart standard list item bit, used to create collapsible smart standard list items in articles or books"
12354
+ description: "Collapsible smart standard list item bit, used to create collapsible smart standard list items in articles or books",
12355
+ tags: [
12356
+ {
12357
+ key: ConfigKey.property_isCollapsible,
12358
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
12359
+ format: TagFormat.boolean,
12360
+ defaultValue: "true"
12361
+ }
12362
+ ]
12009
12363
  },
12010
12364
  [BitType2.mark]: {
12011
12365
  since: "1.3.0",
@@ -12338,8 +12692,17 @@ var BITS = {
12338
12692
  },
12339
12693
  [BitType2.pageCollapsible]: {
12340
12694
  since: "1.30.0",
12695
+ deprecated: "5.37.0",
12341
12696
  baseBitType: BitType2.page,
12342
- description: "Collapsible page bit, used to create collapsible sections in pages"
12697
+ description: "Collapsible page bit, used to create collapsible sections in pages",
12698
+ tags: [
12699
+ {
12700
+ key: ConfigKey.property_isCollapsible,
12701
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
12702
+ format: TagFormat.boolean,
12703
+ defaultValue: "true"
12704
+ }
12705
+ ]
12343
12706
  },
12344
12707
  [BitType2.pageCoverImage]: {
12345
12708
  since: "1.22.0",
@@ -13314,43 +13677,115 @@ var BITS = {
13314
13677
  },
13315
13678
  [BitType2.smartStandardTableNormativeCollapsible]: {
13316
13679
  since: "1.28.0",
13680
+ deprecated: "5.37.0",
13317
13681
  baseBitType: BitType2.smartStandardTableNormative,
13318
- description: "Collapsible smart standard normative table bit, used to create collapsible smart standard normative tables in articles or books"
13682
+ description: "Collapsible smart standard normative table bit, used to create collapsible smart standard normative tables in articles or books",
13683
+ tags: [
13684
+ {
13685
+ key: ConfigKey.property_isCollapsible,
13686
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
13687
+ format: TagFormat.boolean,
13688
+ defaultValue: "true"
13689
+ }
13690
+ ]
13319
13691
  },
13320
13692
  [BitType2.smartStandardTableNonNormativeCollapsible]: {
13321
13693
  since: "1.28.0",
13694
+ deprecated: "5.37.0",
13322
13695
  baseBitType: BitType2.smartStandardTableNonNormative,
13323
- description: "Collapsible smart standard non-normative table bit, used to create collapsible smart standard non-normative tables in articles or books"
13696
+ description: "Collapsible smart standard non-normative table bit, used to create collapsible smart standard non-normative tables in articles or books",
13697
+ tags: [
13698
+ {
13699
+ key: ConfigKey.property_isCollapsible,
13700
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
13701
+ format: TagFormat.boolean,
13702
+ defaultValue: "true"
13703
+ }
13704
+ ]
13324
13705
  },
13325
13706
  [BitType2.smartStandardRemarkTableNormativeCollapsible]: {
13326
13707
  since: "1.28.0",
13708
+ deprecated: "5.37.0",
13327
13709
  baseBitType: BitType2.smartStandardRemarkTableNormative,
13328
- description: "Collapsible smart standard normative remark table bit, used to create collapsible smart standard normative remark tables in articles or books"
13710
+ description: "Collapsible smart standard normative remark table bit, used to create collapsible smart standard normative remark tables in articles or books",
13711
+ tags: [
13712
+ {
13713
+ key: ConfigKey.property_isCollapsible,
13714
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
13715
+ format: TagFormat.boolean,
13716
+ defaultValue: "true"
13717
+ }
13718
+ ]
13329
13719
  },
13330
13720
  [BitType2.smartStandardRemarkTableNonNormativeCollapsible]: {
13331
13721
  since: "1.28.0",
13722
+ deprecated: "5.37.0",
13332
13723
  baseBitType: BitType2.smartStandardRemarkTableNonNormative,
13333
- description: "Collapsible smart standard non-normative remark table bit, used to create collapsible smart standard non-normative remark tables in articles or books"
13724
+ description: "Collapsible smart standard non-normative remark table bit, used to create collapsible smart standard non-normative remark tables in articles or books",
13725
+ tags: [
13726
+ {
13727
+ key: ConfigKey.property_isCollapsible,
13728
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
13729
+ format: TagFormat.boolean,
13730
+ defaultValue: "true"
13731
+ }
13732
+ ]
13334
13733
  },
13335
13734
  [BitType2.smartStandardTableExtendedNormativeCollapsible]: {
13336
13735
  since: "1.28.0",
13736
+ deprecated: "5.37.0",
13337
13737
  baseBitType: BitType2.smartStandardTableExtendedNormative,
13338
- description: "Collapsible smart standard normative extended table bit, used to create collapsible smart standard normative extended tables in articles or books"
13738
+ description: "Collapsible smart standard normative extended table bit, used to create collapsible smart standard normative extended tables in articles or books",
13739
+ tags: [
13740
+ {
13741
+ key: ConfigKey.property_isCollapsible,
13742
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
13743
+ format: TagFormat.boolean,
13744
+ defaultValue: "true"
13745
+ }
13746
+ ]
13339
13747
  },
13340
13748
  [BitType2.smartStandardTableExtendedNonNormativeCollapsible]: {
13341
13749
  since: "1.28.0",
13750
+ deprecated: "5.37.0",
13342
13751
  baseBitType: BitType2.smartStandardTableExtendedNonNormative,
13343
- description: "Collapsible smart standard non-normative extended table bit, used to create collapsible smart standard non-normative extended tables in articles or books"
13752
+ description: "Collapsible smart standard non-normative extended table bit, used to create collapsible smart standard non-normative extended tables in articles or books",
13753
+ tags: [
13754
+ {
13755
+ key: ConfigKey.property_isCollapsible,
13756
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
13757
+ format: TagFormat.boolean,
13758
+ defaultValue: "true"
13759
+ }
13760
+ ]
13344
13761
  },
13345
13762
  [BitType2.smartStandardRemarkTableExtendedNormativeCollapsible]: {
13346
13763
  since: "1.28.0",
13764
+ deprecated: "5.37.0",
13347
13765
  baseBitType: BitType2.smartStandardRemarkTableExtendedNormative,
13348
- description: "Collapsible smart standard normative remark extended table bit, used to create collapsible smart standard normative remark extended tables in articles or books"
13766
+ description: "Collapsible smart standard normative remark extended table bit, used to create collapsible smart standard normative remark extended tables in articles or books",
13767
+ tags: [
13768
+ {
13769
+ key: ConfigKey.property_isCollapsible,
13770
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
13771
+ format: TagFormat.boolean,
13772
+ defaultValue: "true"
13773
+ }
13774
+ ]
13349
13775
  },
13350
13776
  [BitType2.smartStandardRemarkTableExtendedNonNormativeCollapsible]: {
13351
13777
  since: "1.28.0",
13778
+ deprecated: "5.37.0",
13352
13779
  baseBitType: BitType2.smartStandardRemarkTableExtendedNonNormative,
13353
- 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"
13780
+ 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",
13781
+ tags: [
13782
+ {
13783
+ key: ConfigKey.property_isCollapsible,
13784
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
13785
+ format: TagFormat.boolean,
13786
+ defaultValue: "true"
13787
+ }
13788
+ ]
13354
13789
  },
13355
13790
  [BitType2.parameters]: {
13356
13791
  since: "1.18.0",
@@ -14062,11 +14497,13 @@ var BITS = {
14062
14497
  };
14063
14498
 
14064
14499
  // src/config/Config.ts
14500
+ var COLLAPSIBLE_BIT_TYPE_SUFFIX = "-collapsible";
14065
14501
  var Config = class {
14066
14502
  constructor() {
14067
14503
  __publicField(this, "bitLevelMin", 1);
14068
14504
  __publicField(this, "bitLevelMax", 7);
14069
14505
  __publicField(this, "bitCache", /* @__PURE__ */ new Map());
14506
+ __publicField(this, "migratedBitCache", /* @__PURE__ */ new Map());
14070
14507
  __publicField(this, "allResourcesCache");
14071
14508
  __publicField(this, "comboResourcesCache", /* @__PURE__ */ new Map());
14072
14509
  }
@@ -14082,6 +14519,29 @@ var Config = class {
14082
14519
  if (bitType?.startsWith("|")) bitType = bitType.substring(1);
14083
14520
  return (0, import_superenum16.Enum)(BitType2).fromValue(bitType) ?? BitType2._error;
14084
14521
  }
14522
+ /**
14523
+ * PLAN-017: Return the migration target for a deprecated `*-collapsible` bit type.
14524
+ *
14525
+ * Every `*-collapsible` bit type declares its non-collapsible cousin as its `baseBitType`, so the
14526
+ * target is read from the config rather than a hand-maintained table — a new `*-collapsible` bit
14527
+ * type is covered automatically.
14528
+ *
14529
+ * `BitType.collapsible` is the one exclusion: it has no non-collapsible cousin (its `baseBitType`
14530
+ * is `article`, which is not a migration target).
14531
+ *
14532
+ * @param bitType the bit type
14533
+ * @returns the bit type to migrate to, or undefined if the bit type does not migrate
14534
+ */
14535
+ getMigratedBitType(bitType) {
14536
+ const cached = this.migratedBitCache.get(bitType);
14537
+ if (cached !== void 0 || this.migratedBitCache.has(bitType)) return cached;
14538
+ let target;
14539
+ if (bitType !== BitType2.collapsible && bitType.endsWith(COLLAPSIBLE_BIT_TYPE_SUFFIX)) {
14540
+ target = BITS[bitType]?.baseBitType;
14541
+ }
14542
+ this.migratedBitCache.set(bitType, target);
14543
+ return target;
14544
+ }
14085
14545
  /**
14086
14546
  * Check if a bit type is and instance of the given root bit type.
14087
14547
  *
@@ -14404,7 +14864,7 @@ var instance2 = new Config();
14404
14864
  // src/generated/package_info.ts
14405
14865
  var PACKAGE_INFO = {
14406
14866
  "name": "@gmb/bitmark-parser-generator",
14407
- "version": "5.36.0",
14867
+ "version": "5.37.0",
14408
14868
  "author": "Get More Brain Ltd",
14409
14869
  "license": "ISC",
14410
14870
  "description": "A bitmark parser and generator using Peggy.js"
@@ -15463,6 +15923,8 @@ var NodeType = {
15463
15923
  type: "type",
15464
15924
  unit: "unit",
15465
15925
  unitAbbr: "unitAbbr",
15926
+ unitAbbrPlural: "unitAbbrPlural",
15927
+ unitPlural: "unitPlural",
15466
15928
  url: "url",
15467
15929
  validationDate: "validationDate",
15468
15930
  validationDateValue: "validationDateValue",
@@ -28638,8 +29100,14 @@ var Builder = class extends BaseBuilder {
28638
29100
  */
28639
29101
  buildBit(data, options) {
28640
29102
  data = structuredClone(data);
29103
+ const migratedBitType = instance2.getMigratedBitType(data.bitType);
29104
+ if (migratedBitType) {
29105
+ data.bitType = migratedBitType;
29106
+ data.isCollapsible = data.isCollapsible ?? true;
29107
+ }
28641
29108
  const bitType = data.bitType;
28642
29109
  const bitConfig = instance2.getBitConfig(bitType);
29110
+ const isCollapsibleDefaultsTrue = bitConfig.tags[ConfigKey.property_isCollapsible]?.defaultValue === "true";
28643
29111
  const deprecatedTextFormat = (0, import_superenum30.Enum)(DeprecatedTextFormat).fromValue(data.textFormat);
28644
29112
  let textFormat = (0, import_superenum30.Enum)(TextFormat2).fromValue(data.textFormat) ?? bitConfig.textFormatDefault;
28645
29113
  if (deprecatedTextFormat === DeprecatedTextFormat.bitmarkMinusMinus) {
@@ -29772,7 +30240,7 @@ var Builder = class extends BaseBuilder {
29772
30240
  isCollapsible: this.toAstProperty(
29773
30241
  bitType,
29774
30242
  ConfigKey.property_isCollapsible,
29775
- data.isCollapsible,
30243
+ data.isCollapsible ?? (isCollapsibleDefaultsTrue ? true : void 0),
29776
30244
  options
29777
30245
  ),
29778
30246
  anchor: data.anchor,
@@ -30541,7 +31009,9 @@ var Builder = class extends BaseBuilder {
30541
31009
  ingredient: this.handleJsonText(context, TextLocation2.tag, data.ingredient),
30542
31010
  quantity: data.quantity ?? 0,
30543
31011
  unit: data.unit ?? "",
31012
+ unitPlural: data.unitPlural ?? "",
30544
31013
  unitAbbr: data.unitAbbr ?? "",
31014
+ unitAbbrPlural: data.unitAbbrPlural ?? "",
30545
31015
  decimalPlaces: data.decimalPlaces ?? 1,
30546
31016
  disableCalculation: data.disableCalculation ?? false,
30547
31017
  item: this.handleJsonText(context, TextLocation2.tag, data.item),
@@ -31138,11 +31608,22 @@ var Builder = class extends BaseBuilder {
31138
31608
  */
31139
31609
  buildServings(_context, data) {
31140
31610
  if (!data) return void 0;
31141
- const { servings, unit, unitAbbr, decimalPlaces, disableCalculation, hint } = data;
31611
+ const {
31612
+ servings,
31613
+ unit,
31614
+ unitPlural,
31615
+ unitAbbr,
31616
+ unitAbbrPlural,
31617
+ decimalPlaces,
31618
+ disableCalculation,
31619
+ hint
31620
+ } = data;
31142
31621
  const node = {
31143
31622
  servings: servings ?? 0,
31144
31623
  unit: unit ?? "",
31624
+ unitPlural: unitPlural ?? "",
31145
31625
  unitAbbr: unitAbbr ?? "",
31626
+ unitAbbrPlural: unitAbbrPlural ?? "",
31146
31627
  decimalPlaces: decimalPlaces ?? 1,
31147
31628
  disableCalculation: disableCalculation ?? false,
31148
31629
  hint: hint ?? ""
@@ -32079,7 +32560,16 @@ var BitmarkGenerator = class extends AstWalkerGenerator {
32079
32560
  const nodeValue = node.value;
32080
32561
  const parent = this.getParentNode(route);
32081
32562
  if (parent?.key !== NodeType.bitsValue) return true;
32082
- const { servings, unit, unitAbbr, decimalPlaces, disableCalculation, hint } = nodeValue;
32563
+ const {
32564
+ servings,
32565
+ unit,
32566
+ unitPlural,
32567
+ unitAbbr,
32568
+ unitAbbrPlural,
32569
+ decimalPlaces,
32570
+ disableCalculation,
32571
+ hint
32572
+ } = nodeValue;
32083
32573
  this.writeProperty("servings", servings, route, {
32084
32574
  format: TagFormat.plainText
32085
32575
  });
@@ -32089,12 +32579,24 @@ var BitmarkGenerator = class extends AstWalkerGenerator {
32089
32579
  forceChain: true
32090
32580
  });
32091
32581
  }
32582
+ if (unitPlural != null) {
32583
+ this.writeProperty("unitPlural", unitPlural, route, {
32584
+ format: TagFormat.plainText,
32585
+ forceChain: true
32586
+ });
32587
+ }
32092
32588
  if (unitAbbr != null) {
32093
32589
  this.writeProperty("unitAbbr", unitAbbr, route, {
32094
32590
  format: TagFormat.plainText,
32095
32591
  forceChain: true
32096
32592
  });
32097
32593
  }
32594
+ if (unitAbbrPlural != null) {
32595
+ this.writeProperty("unitAbbrPlural", unitAbbrPlural, route, {
32596
+ format: TagFormat.plainText,
32597
+ forceChain: true
32598
+ });
32599
+ }
32098
32600
  if (decimalPlaces != null) {
32099
32601
  this.writeProperty("decimalPlaces", decimalPlaces, route, {
32100
32602
  format: TagFormat.plainText,
@@ -32941,10 +33443,18 @@ var BitmarkGenerator = class extends AstWalkerGenerator {
32941
33443
  this.writeProperty("unit", ingredient.unit, route, {
32942
33444
  format: TagFormat.plainText
32943
33445
  });
33446
+ if (ingredient.unitPlural != null)
33447
+ this.writeProperty("unitPlural", ingredient.unitPlural, route, {
33448
+ format: TagFormat.plainText
33449
+ });
32944
33450
  if (ingredient.unitAbbr != null)
32945
33451
  this.writeProperty("unitAbbr", ingredient.unitAbbr, route, {
32946
33452
  format: TagFormat.plainText
32947
33453
  });
33454
+ if (ingredient.unitAbbrPlural != null)
33455
+ this.writeProperty("unitAbbrPlural", ingredient.unitAbbrPlural, route, {
33456
+ format: TagFormat.plainText
33457
+ });
32948
33458
  if (ingredient.decimalPlaces != null)
32949
33459
  this.writeProperty("decimalPlaces", ingredient.decimalPlaces, route, {
32950
33460
  format: TagFormat.plainText
@@ -34723,6 +35233,25 @@ var JsonGenerator = class extends AstWalkerGenerator {
34723
35233
  }
34724
35234
  return false;
34725
35235
  }
35236
+ // bitmarkAst -> bits -> bitsValue -> isCollapsible
35237
+ /**
35238
+ * PLAN-016: `isCollapsible` is emitted only when true. `false` is the implied
35239
+ * default for every bit, so it is never written to the JSON — an absent key
35240
+ * means the bit's configured default (`true` for the deprecated
35241
+ * `*-collapsible` bit types, `false` everywhere else).
35242
+ *
35243
+ * Defining these handlers suppresses the generic property handlers that
35244
+ * `generatePropertyHandlers()` would otherwise install for this tag.
35245
+ */
35246
+ leaf_isCollapsible(node, route) {
35247
+ const parent = this.getParentNode(route);
35248
+ if (parent?.key !== NodeType.bitsValue) return false;
35249
+ if (node.value === true) this.bitJson.isCollapsible = true;
35250
+ return false;
35251
+ }
35252
+ enter_isCollapsible(node, route) {
35253
+ return this.leaf_isCollapsible(node, route);
35254
+ }
34726
35255
  // bitmarkAst -> bits -> bitsValue -> markConfig
34727
35256
  enter_markConfig(_node, _route) {
34728
35257
  return true;
@@ -35596,7 +36125,6 @@ var JsonGenerator = class extends AstWalkerGenerator {
35596
36125
  if (instance2.isOfBitType(bitType, BitType2.chapter)) {
35597
36126
  if (bitJson.toc == null) bitJson.toc = true;
35598
36127
  if (bitJson.progress == null) bitJson.progress = true;
35599
- if (bitJson.isCollapsible == null) bitJson.isCollapsible = false;
35600
36128
  if (bitJson.level == null) bitJson.level = 1;
35601
36129
  if (bitJson.body == null) bitJson.body = this.bodyDefault;
35602
36130
  }
@@ -38557,7 +39085,9 @@ function parseIngredients(_context, _bitType, cardSet) {
38557
39085
  title: titleArray,
38558
39086
  __instructionString,
38559
39087
  unit,
39088
+ unitPlural,
38560
39089
  unitAbbr,
39090
+ unitAbbrPlural,
38561
39091
  decimalPlaces,
38562
39092
  disableCalculation,
38563
39093
  cardBodyStr,
@@ -38587,7 +39117,9 @@ function parseIngredients(_context, _bitType, cardSet) {
38587
39117
  ingredient: cardBodyStr,
38588
39118
  quantity,
38589
39119
  unit: unit ?? instance3.EMPTY_STRING,
39120
+ unitPlural,
38590
39121
  unitAbbr: unitAbbr ?? instance3.EMPTY_STRING,
39122
+ unitAbbrPlural,
38591
39123
  decimalPlaces: decimalPlaces ?? 1,
38592
39124
  disableCalculation,
38593
39125
  ...tags2
@@ -39258,12 +39790,22 @@ function servingsChainContentProcessor(context, _contentDepth, tagsConfig, conte
39258
39790
  if (context.DEBUG_CHAIN_CONTENT) context.debugPrint("servings content", content);
39259
39791
  const tags2 = context.bitContentProcessor(ContentDepth.Chain, tagsConfig, content.chain);
39260
39792
  if (context.DEBUG_CHAIN_TAGS) context.debugPrint("servings TAGS", tags2);
39261
- const { unit, unitAbbr, decimalPlaces, disableCalculation, __hintString } = tags2;
39793
+ const {
39794
+ unit,
39795
+ unitPlural,
39796
+ unitAbbr,
39797
+ unitAbbrPlural,
39798
+ decimalPlaces,
39799
+ disableCalculation,
39800
+ __hintString
39801
+ } = tags2;
39262
39802
  const servings = instance6.asNumber(content.value) ?? 1;
39263
39803
  const node = {
39264
39804
  servings,
39265
39805
  unit,
39806
+ unitPlural,
39266
39807
  unitAbbr,
39808
+ unitAbbrPlural,
39267
39809
  decimalPlaces: decimalPlaces ?? 1,
39268
39810
  disableCalculation,
39269
39811
  hint: __hintString