@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.cjs CHANGED
@@ -1629,6 +1629,8 @@ var propertyKeys = {
1629
1629
  property_trim: "@trim",
1630
1630
  property_unit: "@unit",
1631
1631
  property_unitAbbr: "@unitAbbr",
1632
+ property_unitAbbrPlural: "@unitAbbrPlural",
1633
+ property_unitPlural: "@unitPlural",
1632
1634
  property_vendorDashboardId: "@vendorDashboardId",
1633
1635
  property_vendorSurveyId: "@vendorSurveyId",
1634
1636
  property_vendorUrl: "@vendorUrl",
@@ -4442,12 +4444,22 @@ var CARDSETS = {
4442
4444
  },
4443
4445
  {
4444
4446
  key: ConfigKey.property_unit,
4445
- description: "Unit of measurement for the ingredient.",
4447
+ description: "Unit of measurement for the ingredient (singular).",
4448
+ format: TagFormat.plainText
4449
+ },
4450
+ {
4451
+ key: ConfigKey.property_unitPlural,
4452
+ description: "Unit of measurement for the ingredient (plural).",
4446
4453
  format: TagFormat.plainText
4447
4454
  },
4448
4455
  {
4449
4456
  key: ConfigKey.property_unitAbbr,
4450
- description: "Abbreviation for the unit of measurement.",
4457
+ description: "Abbreviation for the unit of measurement (singular).",
4458
+ format: TagFormat.plainText
4459
+ },
4460
+ {
4461
+ key: ConfigKey.property_unitAbbrPlural,
4462
+ description: "Abbreviation for the unit of measurement (plural).",
4451
4463
  format: TagFormat.plainText
4452
4464
  },
4453
4465
  {
@@ -4623,6 +4635,11 @@ var GROUPS = {
4623
4635
  description: "Translation source reference",
4624
4636
  format: TagFormat.plainText
4625
4637
  },
4638
+ {
4639
+ key: ConfigKey.property_isCollapsible,
4640
+ description: "If true, the bit is collapsible",
4641
+ format: TagFormat.boolean
4642
+ },
4626
4643
  {
4627
4644
  key: ConfigKey.property_spansPageBreak,
4628
4645
  description: "If true, the bit spans a page break",
@@ -7676,13 +7693,31 @@ var BITS = {
7676
7693
  },
7677
7694
  [BitType.smartStandardArticleNormativeCollapsible]: {
7678
7695
  since: "1.28.0",
7696
+ deprecated: "5.37.0",
7679
7697
  baseBitType: BitType.smartStandardArticleNormative,
7680
- description: "Smart standard normative article bit that is collapsible"
7698
+ description: "Smart standard 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
+ ]
7681
7707
  },
7682
7708
  [BitType.smartStandardArticleNonNormativeCollapsible]: {
7683
7709
  since: "1.28.0",
7710
+ deprecated: "5.37.0",
7684
7711
  baseBitType: BitType.smartStandardArticleNonNormative,
7685
- description: "Smart standard non-normative article bit that is collapsible"
7712
+ description: "Smart standard non-normative article bit that is collapsible",
7713
+ tags: [
7714
+ {
7715
+ key: ConfigKey.property_isCollapsible,
7716
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
7717
+ format: TagFormat.boolean,
7718
+ defaultValue: "true"
7719
+ }
7720
+ ]
7686
7721
  },
7687
7722
  [BitType.statement]: {
7688
7723
  since: "1.3.0",
@@ -8801,12 +8836,6 @@ var BITS = {
8801
8836
  description: "The progress of the chapter, used for tracking reading progress",
8802
8837
  format: TagFormat.boolean,
8803
8838
  defaultValue: "true"
8804
- },
8805
- {
8806
- key: ConfigKey.property_isCollapsible,
8807
- description: "If true, the chapter is collapsible",
8808
- format: TagFormat.boolean,
8809
- defaultValue: "false"
8810
8839
  }
8811
8840
  ]
8812
8841
  },
@@ -9413,12 +9442,22 @@ var BITS = {
9413
9442
  chain: [
9414
9443
  {
9415
9444
  key: ConfigKey.property_unit,
9416
- description: "The unit of measurement for the ingredients",
9445
+ description: "The unit of measurement for the ingredients (singular)",
9446
+ format: TagFormat.plainText
9447
+ },
9448
+ {
9449
+ key: ConfigKey.property_unitPlural,
9450
+ description: "The unit of measurement for the ingredients (plural)",
9417
9451
  format: TagFormat.plainText
9418
9452
  },
9419
9453
  {
9420
9454
  key: ConfigKey.property_unitAbbr,
9421
- description: "The abbreviation for the unit of measurement",
9455
+ description: "The abbreviation for the unit of measurement (singular)",
9456
+ format: TagFormat.plainText
9457
+ },
9458
+ {
9459
+ key: ConfigKey.property_unitAbbrPlural,
9460
+ description: "The abbreviation for the unit of measurement (plural)",
9422
9461
  format: TagFormat.plainText
9423
9462
  },
9424
9463
  {
@@ -9697,13 +9736,31 @@ var BITS = {
9697
9736
  },
9698
9737
  [BitType.smartStandardExampleNormativeCollapsible]: {
9699
9738
  since: "1.28.0",
9739
+ deprecated: "5.37.0",
9700
9740
  baseBitType: BitType.smartStandardExampleNormative,
9701
- description: "Smart standard normative example collapsible bit, used to provide normative examples in smart standards that can be collapsed"
9741
+ description: "Smart standard normative example collapsible bit, used to provide 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
+ ]
9702
9750
  },
9703
9751
  [BitType.smartStandardExampleNonNormativeCollapsible]: {
9704
9752
  since: "1.28.0",
9753
+ deprecated: "5.37.0",
9705
9754
  baseBitType: BitType.smartStandardExampleNonNormative,
9706
- description: "Smart standard non-normative example collapsible bit, used to provide non-normative examples in smart standards that can be collapsed"
9755
+ description: "Smart standard non-normative example collapsible bit, used to provide non-normative examples in smart standards that can be collapsed",
9756
+ tags: [
9757
+ {
9758
+ key: ConfigKey.property_isCollapsible,
9759
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
9760
+ format: TagFormat.boolean,
9761
+ defaultValue: "true"
9762
+ }
9763
+ ]
9707
9764
  },
9708
9765
  [BitType.authorContentBitGenerator]: {
9709
9766
  since: "4.2.0",
@@ -10039,8 +10096,17 @@ var BITS = {
10039
10096
  },
10040
10097
  [BitType.smartStandardListCollapsible]: {
10041
10098
  since: "1.28.0",
10099
+ deprecated: "5.37.0",
10042
10100
  baseBitType: BitType.smartStandardList,
10043
- description: "Smart standard list collapsible bit, used to create collapsible smart standard lists in articles or books"
10101
+ description: "Smart standard list collapsible bit, used to create collapsible smart standard lists in articles or books",
10102
+ tags: [
10103
+ {
10104
+ key: ConfigKey.property_isCollapsible,
10105
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10106
+ format: TagFormat.boolean,
10107
+ defaultValue: "true"
10108
+ }
10109
+ ]
10044
10110
  },
10045
10111
  [BitType.message]: {
10046
10112
  since: "1.3.0",
@@ -10094,13 +10160,31 @@ var BITS = {
10094
10160
  },
10095
10161
  [BitType.smartStandardNoteNormativeCollapsible]: {
10096
10162
  since: "1.28.0",
10163
+ deprecated: "5.37.0",
10097
10164
  baseBitType: BitType.smartStandardNoteNormative,
10098
- description: "Smart standard normative note collapsible bit, used to provide normative notes in smart standards that can be collapsed"
10165
+ description: "Smart standard normative note collapsible bit, used to provide 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
+ ]
10099
10174
  },
10100
10175
  [BitType.smartStandardNoteNonNormativeCollapsible]: {
10101
10176
  since: "1.28.0",
10177
+ deprecated: "5.37.0",
10102
10178
  baseBitType: BitType.smartStandardNoteNonNormative,
10103
- description: "Smart standard non-normative note collapsible bit, used to provide non-normative notes in smart standards that can be collapsed"
10179
+ description: "Smart standard non-normative note collapsible bit, used to provide non-normative notes in smart standards that can be collapsed",
10180
+ tags: [
10181
+ {
10182
+ key: ConfigKey.property_isCollapsible,
10183
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10184
+ format: TagFormat.boolean,
10185
+ defaultValue: "true"
10186
+ }
10187
+ ]
10104
10188
  },
10105
10189
  [BitType.noteAi]: {
10106
10190
  since: "1.3.0",
@@ -10213,13 +10297,31 @@ var BITS = {
10213
10297
  },
10214
10298
  [BitType.smartStandardRemarkNormativeCollapsible]: {
10215
10299
  since: "1.28.0",
10300
+ deprecated: "5.37.0",
10216
10301
  baseBitType: BitType.smartStandardRemarkNormative,
10217
- description: "Smart standard normative remark collapsible bit, used to provide normative remarks in smart standards that can be collapsed"
10302
+ description: "Smart standard normative remark collapsible bit, used to provide 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
+ ]
10218
10311
  },
10219
10312
  [BitType.smartStandardRemarkNonNormativeCollapsible]: {
10220
10313
  since: "1.28.0",
10314
+ deprecated: "5.37.0",
10221
10315
  baseBitType: BitType.smartStandardRemarkNonNormative,
10222
- description: "Smart standard non-normative remark collapsible bit, used to provide non-normative remarks in smart standards that can be collapsed"
10316
+ description: "Smart standard non-normative remark collapsible bit, used to provide non-normative remarks in smart standards that can be collapsed",
10317
+ tags: [
10318
+ {
10319
+ key: ConfigKey.property_isCollapsible,
10320
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10321
+ format: TagFormat.boolean,
10322
+ defaultValue: "true"
10323
+ }
10324
+ ]
10223
10325
  },
10224
10326
  [BitType.selfAssessment]: {
10225
10327
  since: "1.3.0",
@@ -10290,53 +10392,143 @@ var BITS = {
10290
10392
  },
10291
10393
  [BitType.collapsible]: {
10292
10394
  since: "1.21.0",
10395
+ deprecated: "5.37.0",
10293
10396
  baseBitType: BitType.article,
10294
- description: "Collapsible bit, used to create collapsible sections in articles or books"
10397
+ description: "Collapsible bit, used to create collapsible sections 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
+ ]
10295
10406
  },
10296
10407
  [BitType.sideNoteCollapsible]: {
10297
10408
  since: "1.21.0",
10298
- baseBitType: BitType.article,
10299
- description: "Side note collapsible bit, used to create collapsible side notes in articles or books"
10409
+ deprecated: "5.37.0",
10410
+ baseBitType: BitType.sideNote,
10411
+ description: "Side note collapsible bit, used to create collapsible side notes 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
+ ]
10300
10420
  },
10301
10421
  [BitType.infoCollapsible]: {
10302
10422
  since: "1.21.0",
10303
- baseBitType: BitType.article,
10304
- description: "Info collapsible bit, used to create collapsible informational sections in articles or books"
10423
+ deprecated: "5.37.0",
10424
+ baseBitType: BitType.info,
10425
+ description: "Info collapsible bit, used to create collapsible informational sections 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
+ ]
10305
10434
  },
10306
10435
  [BitType.remarkCollapsible]: {
10307
10436
  since: "1.21.0",
10308
- baseBitType: BitType.article,
10309
- description: "Remark collapsible bit, used to create collapsible remarks in articles or books"
10437
+ deprecated: "5.37.0",
10438
+ baseBitType: BitType.remark,
10439
+ description: "Remark collapsible bit, used to create collapsible remarks 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
+ ]
10310
10448
  },
10311
10449
  [BitType.warningCollapsible]: {
10312
10450
  since: "1.21.0",
10313
- baseBitType: BitType.article,
10314
- description: "Warning collapsible bit, used to create collapsible warnings in articles or books"
10451
+ deprecated: "5.37.0",
10452
+ baseBitType: BitType.warning,
10453
+ description: "Warning collapsible bit, used to create collapsible warnings 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
+ ]
10315
10462
  },
10316
10463
  [BitType.dangerCollapsible]: {
10317
10464
  since: "1.21.0",
10318
- baseBitType: BitType.article,
10319
- description: "Danger collapsible bit, used to create collapsible danger sections in articles or books"
10465
+ deprecated: "5.37.0",
10466
+ baseBitType: BitType.danger,
10467
+ description: "Danger collapsible bit, used to create collapsible danger sections 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
+ ]
10320
10476
  },
10321
10477
  [BitType.noteCollapsible]: {
10322
10478
  since: "1.21.0",
10323
- baseBitType: BitType.article,
10324
- description: "Note collapsible bit, used to create collapsible notes in articles or books"
10479
+ deprecated: "5.37.0",
10480
+ baseBitType: BitType.note,
10481
+ description: "Note collapsible bit, used to create collapsible notes 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
+ ]
10325
10490
  },
10326
10491
  [BitType.exampleCollapsible]: {
10327
10492
  since: "1.21.0",
10328
- baseBitType: BitType.article,
10329
- description: "Example collapsible bit, used to create collapsible examples in articles or books"
10493
+ deprecated: "5.37.0",
10494
+ baseBitType: BitType.example,
10495
+ description: "Example collapsible bit, used to create collapsible examples 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
+ ]
10330
10504
  },
10331
10505
  [BitType.hintCollapsible]: {
10332
10506
  since: "1.21.0",
10333
- baseBitType: BitType.article,
10334
- description: "Hint collapsible bit, used to create collapsible hints in articles or books"
10507
+ deprecated: "5.37.0",
10508
+ baseBitType: BitType.hint,
10509
+ description: "Hint collapsible bit, used to create collapsible hints 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
+ ]
10335
10518
  },
10336
10519
  [BitType.bugCollapsible]: {
10337
10520
  since: "1.21.0",
10338
- baseBitType: BitType.article,
10339
- description: "Bug collapsible bit, used to create collapsible bug reports in articles or books"
10521
+ deprecated: "5.37.0",
10522
+ baseBitType: BitType.bug,
10523
+ description: "Bug collapsible bit, used to create collapsible bug reports in articles or books",
10524
+ tags: [
10525
+ {
10526
+ key: ConfigKey.property_isCollapsible,
10527
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10528
+ format: TagFormat.boolean,
10529
+ defaultValue: "true"
10530
+ }
10531
+ ]
10340
10532
  },
10341
10533
  [BitType.platformPath]: {
10342
10534
  since: "3.14.1",
@@ -10558,8 +10750,17 @@ var BITS = {
10558
10750
  },
10559
10751
  [BitType.extractorPageCollapsible]: {
10560
10752
  since: "1.30.0",
10753
+ deprecated: "5.37.0",
10561
10754
  baseBitType: BitType.extractorPage,
10562
- description: "Collapsible extractor page bit, used to extract pages from images with collapsible functionality"
10755
+ description: "Collapsible extractor page bit, used to extract pages from images with collapsible functionality",
10756
+ tags: [
10757
+ {
10758
+ key: ConfigKey.property_isCollapsible,
10759
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10760
+ format: TagFormat.boolean,
10761
+ defaultValue: "true"
10762
+ }
10763
+ ]
10563
10764
  },
10564
10765
  [BitType.extractorPageWithBlocks]: {
10565
10766
  since: "1.5.21",
@@ -10568,8 +10769,17 @@ var BITS = {
10568
10769
  },
10569
10770
  [BitType.extractorPageWithBlocksCollapsible]: {
10570
10771
  since: "1.30.0",
10772
+ deprecated: "5.37.0",
10571
10773
  baseBitType: BitType.extractorPageWithBlocks,
10572
- description: "Collapsible extractor page with blocks bit, used to extract pages with blocks from images with collapsible functionality"
10774
+ description: "Collapsible extractor page with blocks bit, used to extract pages with blocks from images with collapsible functionality",
10775
+ tags: [
10776
+ {
10777
+ key: ConfigKey.property_isCollapsible,
10778
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10779
+ format: TagFormat.boolean,
10780
+ defaultValue: "true"
10781
+ }
10782
+ ]
10573
10783
  },
10574
10784
  [BitType.extractorConfiguration]: {
10575
10785
  since: "1.7.1",
@@ -10609,8 +10819,17 @@ var BITS = {
10609
10819
  },
10610
10820
  [BitType.extractorImageCollapsible]: {
10611
10821
  since: "4.3.0",
10822
+ deprecated: "5.37.0",
10612
10823
  baseBitType: BitType.extractorImage,
10613
- description: "Collapsible extractor images bit, used for images extracted from PDFs"
10824
+ description: "Collapsible extractor images bit, used for images extracted from PDFs",
10825
+ tags: [
10826
+ {
10827
+ key: ConfigKey.property_isCollapsible,
10828
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10829
+ format: TagFormat.boolean,
10830
+ defaultValue: "true"
10831
+ }
10832
+ ]
10614
10833
  },
10615
10834
  [BitType.extractorBlueprint]: {
10616
10835
  since: "5.12.0",
@@ -10747,8 +10966,17 @@ var BITS = {
10747
10966
  },
10748
10967
  [BitType.extractorPageNumberCollapsible]: {
10749
10968
  since: "1.30.0",
10969
+ deprecated: "5.37.0",
10750
10970
  baseBitType: BitType.extractorPageNumber,
10751
- description: "Collapsible extractor page number bit, used to define page numbers in extractor pages with collapsible functionality"
10971
+ description: "Collapsible extractor page number bit, used to define page numbers in extractor pages with collapsible functionality",
10972
+ tags: [
10973
+ {
10974
+ key: ConfigKey.property_isCollapsible,
10975
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10976
+ format: TagFormat.boolean,
10977
+ defaultValue: "true"
10978
+ }
10979
+ ]
10752
10980
  },
10753
10981
  [BitType.extractorPageHeader]: {
10754
10982
  since: "1.5.21",
@@ -10757,8 +10985,17 @@ var BITS = {
10757
10985
  },
10758
10986
  [BitType.extractorPageHeaderCollapsible]: {
10759
10987
  since: "1.30.0",
10988
+ deprecated: "5.37.0",
10760
10989
  baseBitType: BitType.extractorPageHeader,
10761
- description: "Collapsible extractor page header bit, used to define headers in extractor pages with collapsible functionality"
10990
+ description: "Collapsible extractor page header bit, used to define headers in extractor pages with collapsible functionality",
10991
+ tags: [
10992
+ {
10993
+ key: ConfigKey.property_isCollapsible,
10994
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
10995
+ format: TagFormat.boolean,
10996
+ defaultValue: "true"
10997
+ }
10998
+ ]
10762
10999
  },
10763
11000
  [BitType.extractorPageFooter]: {
10764
11001
  since: "1.5.21",
@@ -10767,8 +11004,17 @@ var BITS = {
10767
11004
  },
10768
11005
  [BitType.extractorPageFooterCollapsible]: {
10769
11006
  since: "1.30.0",
11007
+ deprecated: "5.37.0",
10770
11008
  baseBitType: BitType.extractorPageFooter,
10771
- description: "Collapsible extractor page footer bit, used to define footers in extractor pages with collapsible functionality"
11009
+ description: "Collapsible extractor page footer bit, used to define footers in extractor pages with collapsible functionality",
11010
+ tags: [
11011
+ {
11012
+ key: ConfigKey.property_isCollapsible,
11013
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
11014
+ format: TagFormat.boolean,
11015
+ defaultValue: "true"
11016
+ }
11017
+ ]
10772
11018
  },
10773
11019
  [BitType.pageOpenBook]: {
10774
11020
  since: "1.5.10",
@@ -11058,8 +11304,17 @@ var BITS = {
11058
11304
  },
11059
11305
  [BitType.definitionListCollapsible]: {
11060
11306
  since: "5.25.0",
11307
+ deprecated: "5.37.0",
11061
11308
  baseBitType: BitType.definitionList,
11062
- description: "Collapsible definition list bit, used to create collapsible lists of definitions in articles or books"
11309
+ description: "Collapsible definition list bit, used to create collapsible lists of definitions in articles or books",
11310
+ tags: [
11311
+ {
11312
+ key: ConfigKey.property_isCollapsible,
11313
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
11314
+ format: TagFormat.boolean,
11315
+ defaultValue: "true"
11316
+ }
11317
+ ]
11063
11318
  },
11064
11319
  [BitType.standardDefinitionListNormative]: {
11065
11320
  since: "5.24.0",
@@ -11283,13 +11538,31 @@ var BITS = {
11283
11538
  },
11284
11539
  [BitType.smartStandardImageFigureNormativeCollapsible]: {
11285
11540
  since: "1.28.0",
11541
+ deprecated: "5.37.0",
11286
11542
  baseBitType: BitType.smartStandardImageFigureNormative,
11287
- description: "Collapsible smart standard normative image figure bit, used to create collapsible smart standard normative image figures in articles or books"
11543
+ description: "Collapsible smart standard normative image figure bit, used to create collapsible smart standard 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
+ ]
11288
11552
  },
11289
11553
  [BitType.smartStandardImageFigureNonNormativeCollapsible]: {
11290
11554
  since: "1.28.0",
11555
+ deprecated: "5.37.0",
11291
11556
  baseBitType: BitType.smartStandardImageFigureNonNormative,
11292
- description: "Collapsible smart standard non-normative image figure bit, used to create collapsible smart standard non-normative image figures in articles or books"
11557
+ description: "Collapsible smart standard non-normative image figure bit, used to create collapsible smart standard non-normative image figures in articles or books",
11558
+ tags: [
11559
+ {
11560
+ key: ConfigKey.property_isCollapsible,
11561
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
11562
+ format: TagFormat.boolean,
11563
+ defaultValue: "true"
11564
+ }
11565
+ ]
11293
11566
  },
11294
11567
  [BitType.imageLandscape]: {
11295
11568
  since: "1.3.0",
@@ -11501,43 +11774,115 @@ var BITS = {
11501
11774
  },
11502
11775
  [BitType.smartStandardTableImageNormativeCollapsible]: {
11503
11776
  since: "1.28.0",
11777
+ deprecated: "5.37.0",
11504
11778
  baseBitType: BitType.smartStandardTableImageNormative,
11505
- description: "Collapsible smart standard normative table image bit, used to create collapsible smart standard normative images in tables in articles or books"
11779
+ description: "Collapsible smart standard normative table image bit, used to create collapsible smart standard 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
+ ]
11506
11788
  },
11507
11789
  [BitType.smartStandardTableImageNonNormativeCollapsible]: {
11508
11790
  since: "1.28.0",
11791
+ deprecated: "5.37.0",
11509
11792
  baseBitType: BitType.smartStandardTableImageNonNormative,
11510
- description: "Collapsible smart standard non-normative table image bit, used to create collapsible smart standard non-normative images in tables in articles or books"
11793
+ description: "Collapsible smart standard non-normative table image bit, used to create collapsible smart standard non-normative 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
+ ]
11511
11802
  },
11512
11803
  [BitType.smartStandardRemarkTableImageNormativeCollapsible]: {
11513
11804
  since: "1.28.0",
11805
+ deprecated: "5.37.0",
11514
11806
  baseBitType: BitType.smartStandardRemarkTableImageNormative,
11515
- description: "Collapsible smart standard normative remark table image bit, used to create collapsible smart standard normative remark images in tables in articles or books"
11807
+ description: "Collapsible smart standard normative remark table image bit, used to create collapsible smart standard 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
+ ]
11516
11816
  },
11517
11817
  [BitType.smartStandardRemarkTableImageNonNormativeCollapsible]: {
11518
11818
  since: "1.28.0",
11819
+ deprecated: "5.37.0",
11519
11820
  baseBitType: BitType.smartStandardRemarkTableImageNonNormative,
11520
- 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"
11821
+ 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",
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
+ ]
11521
11830
  },
11522
11831
  [BitType.smartStandardTableExtendedImageNormativeCollapsible]: {
11523
11832
  since: "1.28.0",
11833
+ deprecated: "5.37.0",
11524
11834
  baseBitType: BitType.smartStandardTableExtendedImageNormative,
11525
- description: "Collapsible smart standard normative extended table image bit, used to create collapsible smart standard normative extended images in tables in articles or books"
11835
+ description: "Collapsible smart standard normative extended table image bit, used to create collapsible smart standard 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
+ ]
11526
11844
  },
11527
11845
  [BitType.smartStandardTableExtendedImageNonNormativeCollapsible]: {
11528
11846
  since: "1.28.0",
11847
+ deprecated: "5.37.0",
11529
11848
  baseBitType: BitType.smartStandardTableExtendedImageNonNormative,
11530
- 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"
11849
+ 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",
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
+ ]
11531
11858
  },
11532
11859
  [BitType.smartStandardRemarkTableExtendedImageNormativeCollapsible]: {
11533
11860
  since: "1.28.0",
11861
+ deprecated: "5.37.0",
11534
11862
  baseBitType: BitType.smartStandardRemarkTableExtendedImageNormative,
11535
- 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"
11863
+ 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",
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
+ ]
11536
11872
  },
11537
11873
  [BitType.smartStandardRemarkTableExtendedImageNonNormativeCollapsible]: {
11538
11874
  since: "1.28.0",
11875
+ deprecated: "5.37.0",
11539
11876
  baseBitType: BitType.smartStandardRemarkTableExtendedImageNonNormative,
11540
- 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"
11877
+ 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",
11878
+ tags: [
11879
+ {
11880
+ key: ConfigKey.property_isCollapsible,
11881
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
11882
+ format: TagFormat.boolean,
11883
+ defaultValue: "true"
11884
+ }
11885
+ ]
11541
11886
  },
11542
11887
  [BitType.imageLink]: {
11543
11888
  since: "1.3.0",
@@ -12018,8 +12363,17 @@ var BITS = {
12018
12363
  },
12019
12364
  [BitType.smartStandardListItemCollapsible]: {
12020
12365
  since: "1.28.0",
12366
+ deprecated: "5.37.0",
12021
12367
  baseBitType: BitType.smartStandardListItem,
12022
- description: "Collapsible smart standard list item bit, used to create collapsible smart standard list items in articles or books"
12368
+ description: "Collapsible smart standard list item bit, used to create collapsible smart standard list items in articles or books",
12369
+ tags: [
12370
+ {
12371
+ key: ConfigKey.property_isCollapsible,
12372
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
12373
+ format: TagFormat.boolean,
12374
+ defaultValue: "true"
12375
+ }
12376
+ ]
12023
12377
  },
12024
12378
  [BitType.mark]: {
12025
12379
  since: "1.3.0",
@@ -12352,8 +12706,17 @@ var BITS = {
12352
12706
  },
12353
12707
  [BitType.pageCollapsible]: {
12354
12708
  since: "1.30.0",
12709
+ deprecated: "5.37.0",
12355
12710
  baseBitType: BitType.page,
12356
- description: "Collapsible page bit, used to create collapsible sections in pages"
12711
+ description: "Collapsible page bit, used to create collapsible sections in pages",
12712
+ tags: [
12713
+ {
12714
+ key: ConfigKey.property_isCollapsible,
12715
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
12716
+ format: TagFormat.boolean,
12717
+ defaultValue: "true"
12718
+ }
12719
+ ]
12357
12720
  },
12358
12721
  [BitType.pageCoverImage]: {
12359
12722
  since: "1.22.0",
@@ -13328,43 +13691,115 @@ var BITS = {
13328
13691
  },
13329
13692
  [BitType.smartStandardTableNormativeCollapsible]: {
13330
13693
  since: "1.28.0",
13694
+ deprecated: "5.37.0",
13331
13695
  baseBitType: BitType.smartStandardTableNormative,
13332
- description: "Collapsible smart standard normative table bit, used to create collapsible smart standard normative tables in articles or books"
13696
+ description: "Collapsible smart standard normative table bit, used to create collapsible smart standard 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
+ ]
13333
13705
  },
13334
13706
  [BitType.smartStandardTableNonNormativeCollapsible]: {
13335
13707
  since: "1.28.0",
13708
+ deprecated: "5.37.0",
13336
13709
  baseBitType: BitType.smartStandardTableNonNormative,
13337
- description: "Collapsible smart standard non-normative table bit, used to create collapsible smart standard non-normative tables in articles or books"
13710
+ description: "Collapsible smart standard non-normative table bit, used to create collapsible smart standard non-normative 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
+ ]
13338
13719
  },
13339
13720
  [BitType.smartStandardRemarkTableNormativeCollapsible]: {
13340
13721
  since: "1.28.0",
13722
+ deprecated: "5.37.0",
13341
13723
  baseBitType: BitType.smartStandardRemarkTableNormative,
13342
- description: "Collapsible smart standard normative remark table bit, used to create collapsible smart standard normative remark tables in articles or books"
13724
+ description: "Collapsible smart standard normative remark table bit, used to create collapsible smart standard 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
+ ]
13343
13733
  },
13344
13734
  [BitType.smartStandardRemarkTableNonNormativeCollapsible]: {
13345
13735
  since: "1.28.0",
13736
+ deprecated: "5.37.0",
13346
13737
  baseBitType: BitType.smartStandardRemarkTableNonNormative,
13347
- description: "Collapsible smart standard non-normative remark table bit, used to create collapsible smart standard non-normative remark tables in articles or books"
13738
+ description: "Collapsible smart standard non-normative remark table bit, used to create collapsible smart standard non-normative remark 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
+ ]
13348
13747
  },
13349
13748
  [BitType.smartStandardTableExtendedNormativeCollapsible]: {
13350
13749
  since: "1.28.0",
13750
+ deprecated: "5.37.0",
13351
13751
  baseBitType: BitType.smartStandardTableExtendedNormative,
13352
- description: "Collapsible smart standard normative extended table bit, used to create collapsible smart standard normative extended tables in articles or books"
13752
+ description: "Collapsible smart standard normative extended table bit, used to create collapsible smart standard 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
+ ]
13353
13761
  },
13354
13762
  [BitType.smartStandardTableExtendedNonNormativeCollapsible]: {
13355
13763
  since: "1.28.0",
13764
+ deprecated: "5.37.0",
13356
13765
  baseBitType: BitType.smartStandardTableExtendedNonNormative,
13357
- description: "Collapsible smart standard non-normative extended table bit, used to create collapsible smart standard non-normative extended tables in articles or books"
13766
+ description: "Collapsible smart standard non-normative extended table bit, used to create collapsible smart standard non-normative 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
+ ]
13358
13775
  },
13359
13776
  [BitType.smartStandardRemarkTableExtendedNormativeCollapsible]: {
13360
13777
  since: "1.28.0",
13778
+ deprecated: "5.37.0",
13361
13779
  baseBitType: BitType.smartStandardRemarkTableExtendedNormative,
13362
- description: "Collapsible smart standard normative remark extended table bit, used to create collapsible smart standard normative remark extended tables in articles or books"
13780
+ description: "Collapsible smart standard normative remark extended table bit, used to create collapsible smart standard 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
+ ]
13363
13789
  },
13364
13790
  [BitType.smartStandardRemarkTableExtendedNonNormativeCollapsible]: {
13365
13791
  since: "1.28.0",
13792
+ deprecated: "5.37.0",
13366
13793
  baseBitType: BitType.smartStandardRemarkTableExtendedNonNormative,
13367
- 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"
13794
+ 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",
13795
+ tags: [
13796
+ {
13797
+ key: ConfigKey.property_isCollapsible,
13798
+ description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
13799
+ format: TagFormat.boolean,
13800
+ defaultValue: "true"
13801
+ }
13802
+ ]
13368
13803
  },
13369
13804
  [BitType.parameters]: {
13370
13805
  since: "1.18.0",
@@ -14076,11 +14511,13 @@ var BITS = {
14076
14511
  };
14077
14512
 
14078
14513
  // src/config/Config.ts
14514
+ var COLLAPSIBLE_BIT_TYPE_SUFFIX = "-collapsible";
14079
14515
  var Config = class {
14080
14516
  constructor() {
14081
14517
  __publicField(this, "bitLevelMin", 1);
14082
14518
  __publicField(this, "bitLevelMax", 7);
14083
14519
  __publicField(this, "bitCache", /* @__PURE__ */ new Map());
14520
+ __publicField(this, "migratedBitCache", /* @__PURE__ */ new Map());
14084
14521
  __publicField(this, "allResourcesCache");
14085
14522
  __publicField(this, "comboResourcesCache", /* @__PURE__ */ new Map());
14086
14523
  }
@@ -14096,6 +14533,29 @@ var Config = class {
14096
14533
  if (bitType?.startsWith("|")) bitType = bitType.substring(1);
14097
14534
  return (0, import_superenum16.Enum)(BitType).fromValue(bitType) ?? BitType._error;
14098
14535
  }
14536
+ /**
14537
+ * PLAN-017: Return the migration target for a deprecated `*-collapsible` bit type.
14538
+ *
14539
+ * Every `*-collapsible` bit type declares its non-collapsible cousin as its `baseBitType`, so the
14540
+ * target is read from the config rather than a hand-maintained table — a new `*-collapsible` bit
14541
+ * type is covered automatically.
14542
+ *
14543
+ * `BitType.collapsible` is the one exclusion: it has no non-collapsible cousin (its `baseBitType`
14544
+ * is `article`, which is not a migration target).
14545
+ *
14546
+ * @param bitType the bit type
14547
+ * @returns the bit type to migrate to, or undefined if the bit type does not migrate
14548
+ */
14549
+ getMigratedBitType(bitType) {
14550
+ const cached = this.migratedBitCache.get(bitType);
14551
+ if (cached !== void 0 || this.migratedBitCache.has(bitType)) return cached;
14552
+ let target;
14553
+ if (bitType !== BitType.collapsible && bitType.endsWith(COLLAPSIBLE_BIT_TYPE_SUFFIX)) {
14554
+ target = BITS[bitType]?.baseBitType;
14555
+ }
14556
+ this.migratedBitCache.set(bitType, target);
14557
+ return target;
14558
+ }
14099
14559
  /**
14100
14560
  * Check if a bit type is and instance of the given root bit type.
14101
14561
  *
@@ -14418,7 +14878,7 @@ var instance2 = new Config();
14418
14878
  // src/generated/package_info.ts
14419
14879
  var PACKAGE_INFO = {
14420
14880
  "name": "@gmb/bitmark-parser-generator",
14421
- "version": "5.36.0",
14881
+ "version": "5.37.0",
14422
14882
  "author": "Get More Brain Ltd",
14423
14883
  "license": "ISC",
14424
14884
  "description": "A bitmark parser and generator using Peggy.js"
@@ -15477,6 +15937,8 @@ var NodeType = {
15477
15937
  type: "type",
15478
15938
  unit: "unit",
15479
15939
  unitAbbr: "unitAbbr",
15940
+ unitAbbrPlural: "unitAbbrPlural",
15941
+ unitPlural: "unitPlural",
15480
15942
  url: "url",
15481
15943
  validationDate: "validationDate",
15482
15944
  validationDateValue: "validationDateValue",
@@ -28652,8 +29114,14 @@ var Builder = class extends BaseBuilder {
28652
29114
  */
28653
29115
  buildBit(data, options) {
28654
29116
  data = structuredClone(data);
29117
+ const migratedBitType = instance2.getMigratedBitType(data.bitType);
29118
+ if (migratedBitType) {
29119
+ data.bitType = migratedBitType;
29120
+ data.isCollapsible = data.isCollapsible ?? true;
29121
+ }
28655
29122
  const bitType = data.bitType;
28656
29123
  const bitConfig = instance2.getBitConfig(bitType);
29124
+ const isCollapsibleDefaultsTrue = bitConfig.tags[ConfigKey.property_isCollapsible]?.defaultValue === "true";
28657
29125
  const deprecatedTextFormat = (0, import_superenum30.Enum)(DeprecatedTextFormat).fromValue(data.textFormat);
28658
29126
  let textFormat = (0, import_superenum30.Enum)(TextFormat).fromValue(data.textFormat) ?? bitConfig.textFormatDefault;
28659
29127
  if (deprecatedTextFormat === DeprecatedTextFormat.bitmarkMinusMinus) {
@@ -29786,7 +30254,7 @@ var Builder = class extends BaseBuilder {
29786
30254
  isCollapsible: this.toAstProperty(
29787
30255
  bitType,
29788
30256
  ConfigKey.property_isCollapsible,
29789
- data.isCollapsible,
30257
+ data.isCollapsible ?? (isCollapsibleDefaultsTrue ? true : void 0),
29790
30258
  options
29791
30259
  ),
29792
30260
  anchor: data.anchor,
@@ -30555,7 +31023,9 @@ var Builder = class extends BaseBuilder {
30555
31023
  ingredient: this.handleJsonText(context, TextLocation.tag, data.ingredient),
30556
31024
  quantity: data.quantity ?? 0,
30557
31025
  unit: data.unit ?? "",
31026
+ unitPlural: data.unitPlural ?? "",
30558
31027
  unitAbbr: data.unitAbbr ?? "",
31028
+ unitAbbrPlural: data.unitAbbrPlural ?? "",
30559
31029
  decimalPlaces: data.decimalPlaces ?? 1,
30560
31030
  disableCalculation: data.disableCalculation ?? false,
30561
31031
  item: this.handleJsonText(context, TextLocation.tag, data.item),
@@ -31152,11 +31622,22 @@ var Builder = class extends BaseBuilder {
31152
31622
  */
31153
31623
  buildServings(_context, data) {
31154
31624
  if (!data) return void 0;
31155
- const { servings, unit, unitAbbr, decimalPlaces, disableCalculation, hint } = data;
31625
+ const {
31626
+ servings,
31627
+ unit,
31628
+ unitPlural,
31629
+ unitAbbr,
31630
+ unitAbbrPlural,
31631
+ decimalPlaces,
31632
+ disableCalculation,
31633
+ hint
31634
+ } = data;
31156
31635
  const node = {
31157
31636
  servings: servings ?? 0,
31158
31637
  unit: unit ?? "",
31638
+ unitPlural: unitPlural ?? "",
31159
31639
  unitAbbr: unitAbbr ?? "",
31640
+ unitAbbrPlural: unitAbbrPlural ?? "",
31160
31641
  decimalPlaces: decimalPlaces ?? 1,
31161
31642
  disableCalculation: disableCalculation ?? false,
31162
31643
  hint: hint ?? ""
@@ -32093,7 +32574,16 @@ var BitmarkGenerator = class extends AstWalkerGenerator {
32093
32574
  const nodeValue = node.value;
32094
32575
  const parent = this.getParentNode(route);
32095
32576
  if (parent?.key !== NodeType.bitsValue) return true;
32096
- const { servings, unit, unitAbbr, decimalPlaces, disableCalculation, hint } = nodeValue;
32577
+ const {
32578
+ servings,
32579
+ unit,
32580
+ unitPlural,
32581
+ unitAbbr,
32582
+ unitAbbrPlural,
32583
+ decimalPlaces,
32584
+ disableCalculation,
32585
+ hint
32586
+ } = nodeValue;
32097
32587
  this.writeProperty("servings", servings, route, {
32098
32588
  format: TagFormat.plainText
32099
32589
  });
@@ -32103,12 +32593,24 @@ var BitmarkGenerator = class extends AstWalkerGenerator {
32103
32593
  forceChain: true
32104
32594
  });
32105
32595
  }
32596
+ if (unitPlural != null) {
32597
+ this.writeProperty("unitPlural", unitPlural, route, {
32598
+ format: TagFormat.plainText,
32599
+ forceChain: true
32600
+ });
32601
+ }
32106
32602
  if (unitAbbr != null) {
32107
32603
  this.writeProperty("unitAbbr", unitAbbr, route, {
32108
32604
  format: TagFormat.plainText,
32109
32605
  forceChain: true
32110
32606
  });
32111
32607
  }
32608
+ if (unitAbbrPlural != null) {
32609
+ this.writeProperty("unitAbbrPlural", unitAbbrPlural, route, {
32610
+ format: TagFormat.plainText,
32611
+ forceChain: true
32612
+ });
32613
+ }
32112
32614
  if (decimalPlaces != null) {
32113
32615
  this.writeProperty("decimalPlaces", decimalPlaces, route, {
32114
32616
  format: TagFormat.plainText,
@@ -32955,10 +33457,18 @@ var BitmarkGenerator = class extends AstWalkerGenerator {
32955
33457
  this.writeProperty("unit", ingredient.unit, route, {
32956
33458
  format: TagFormat.plainText
32957
33459
  });
33460
+ if (ingredient.unitPlural != null)
33461
+ this.writeProperty("unitPlural", ingredient.unitPlural, route, {
33462
+ format: TagFormat.plainText
33463
+ });
32958
33464
  if (ingredient.unitAbbr != null)
32959
33465
  this.writeProperty("unitAbbr", ingredient.unitAbbr, route, {
32960
33466
  format: TagFormat.plainText
32961
33467
  });
33468
+ if (ingredient.unitAbbrPlural != null)
33469
+ this.writeProperty("unitAbbrPlural", ingredient.unitAbbrPlural, route, {
33470
+ format: TagFormat.plainText
33471
+ });
32962
33472
  if (ingredient.decimalPlaces != null)
32963
33473
  this.writeProperty("decimalPlaces", ingredient.decimalPlaces, route, {
32964
33474
  format: TagFormat.plainText
@@ -34737,6 +35247,25 @@ var JsonGenerator = class extends AstWalkerGenerator {
34737
35247
  }
34738
35248
  return false;
34739
35249
  }
35250
+ // bitmarkAst -> bits -> bitsValue -> isCollapsible
35251
+ /**
35252
+ * PLAN-016: `isCollapsible` is emitted only when true. `false` is the implied
35253
+ * default for every bit, so it is never written to the JSON — an absent key
35254
+ * means the bit's configured default (`true` for the deprecated
35255
+ * `*-collapsible` bit types, `false` everywhere else).
35256
+ *
35257
+ * Defining these handlers suppresses the generic property handlers that
35258
+ * `generatePropertyHandlers()` would otherwise install for this tag.
35259
+ */
35260
+ leaf_isCollapsible(node, route) {
35261
+ const parent = this.getParentNode(route);
35262
+ if (parent?.key !== NodeType.bitsValue) return false;
35263
+ if (node.value === true) this.bitJson.isCollapsible = true;
35264
+ return false;
35265
+ }
35266
+ enter_isCollapsible(node, route) {
35267
+ return this.leaf_isCollapsible(node, route);
35268
+ }
34740
35269
  // bitmarkAst -> bits -> bitsValue -> markConfig
34741
35270
  enter_markConfig(_node, _route) {
34742
35271
  return true;
@@ -35610,7 +36139,6 @@ var JsonGenerator = class extends AstWalkerGenerator {
35610
36139
  if (instance2.isOfBitType(bitType, BitType.chapter)) {
35611
36140
  if (bitJson.toc == null) bitJson.toc = true;
35612
36141
  if (bitJson.progress == null) bitJson.progress = true;
35613
- if (bitJson.isCollapsible == null) bitJson.isCollapsible = false;
35614
36142
  if (bitJson.level == null) bitJson.level = 1;
35615
36143
  if (bitJson.body == null) bitJson.body = this.bodyDefault;
35616
36144
  }
@@ -38589,7 +39117,9 @@ function parseIngredients(_context, _bitType, cardSet) {
38589
39117
  title: titleArray,
38590
39118
  __instructionString,
38591
39119
  unit,
39120
+ unitPlural,
38592
39121
  unitAbbr,
39122
+ unitAbbrPlural,
38593
39123
  decimalPlaces,
38594
39124
  disableCalculation,
38595
39125
  cardBodyStr,
@@ -38619,7 +39149,9 @@ function parseIngredients(_context, _bitType, cardSet) {
38619
39149
  ingredient: cardBodyStr,
38620
39150
  quantity,
38621
39151
  unit: unit ?? instance3.EMPTY_STRING,
39152
+ unitPlural,
38622
39153
  unitAbbr: unitAbbr ?? instance3.EMPTY_STRING,
39154
+ unitAbbrPlural,
38623
39155
  decimalPlaces: decimalPlaces ?? 1,
38624
39156
  disableCalculation,
38625
39157
  ...tags2
@@ -39290,12 +39822,22 @@ function servingsChainContentProcessor(context, _contentDepth, tagsConfig, conte
39290
39822
  if (context.DEBUG_CHAIN_CONTENT) context.debugPrint("servings content", content);
39291
39823
  const tags2 = context.bitContentProcessor(ContentDepth.Chain, tagsConfig, content.chain);
39292
39824
  if (context.DEBUG_CHAIN_TAGS) context.debugPrint("servings TAGS", tags2);
39293
- const { unit, unitAbbr, decimalPlaces, disableCalculation, __hintString } = tags2;
39825
+ const {
39826
+ unit,
39827
+ unitPlural,
39828
+ unitAbbr,
39829
+ unitAbbrPlural,
39830
+ decimalPlaces,
39831
+ disableCalculation,
39832
+ __hintString
39833
+ } = tags2;
39294
39834
  const servings = instance6.asNumber(content.value) ?? 1;
39295
39835
  const node = {
39296
39836
  servings,
39297
39837
  unit,
39838
+ unitPlural,
39298
39839
  unitAbbr,
39840
+ unitAbbrPlural,
39299
39841
  decimalPlaces: decimalPlaces ?? 1,
39300
39842
  disableCalculation,
39301
39843
  hint: __hintString