@fieldia/core 0.19.1 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/package.json +1 -1
  2. package/schema/page.schema.json +946 -210
  3. package/src/index.d.mts +2 -1
  4. package/src/index.d.ts +2 -1
  5. package/src/index.js +5 -1
  6. package/src/index.js.map +1 -1
  7. package/src/index.mjs +2 -1
  8. package/src/index.mjs.map +1 -1
  9. package/src/lib/expression/parser.js +4 -4
  10. package/src/lib/expression/parser.js.map +1 -1
  11. package/src/lib/expression/parser.mjs +5 -5
  12. package/src/lib/expression/parser.mjs.map +1 -1
  13. package/src/lib/expression/tokenizer.d.mts +12 -0
  14. package/src/lib/expression/tokenizer.d.ts +12 -0
  15. package/src/lib/expression/tokenizer.js +21 -12
  16. package/src/lib/expression/tokenizer.js.map +1 -1
  17. package/src/lib/expression/tokenizer.mjs +20 -12
  18. package/src/lib/expression/tokenizer.mjs.map +1 -1
  19. package/src/lib/format/field.d.mts +16 -0
  20. package/src/lib/format/field.d.ts +16 -0
  21. package/src/lib/format/field.js +11 -1
  22. package/src/lib/format/field.js.map +1 -1
  23. package/src/lib/format/field.mjs +11 -1
  24. package/src/lib/format/field.mjs.map +1 -1
  25. package/src/lib/format/head-checks.d.mts +40 -0
  26. package/src/lib/format/head-checks.d.ts +40 -0
  27. package/src/lib/format/head-checks.js +172 -0
  28. package/src/lib/format/head-checks.js.map +1 -0
  29. package/src/lib/format/head-checks.mjs +167 -0
  30. package/src/lib/format/head-checks.mjs.map +1 -0
  31. package/src/lib/format/layout.d.mts +6485 -1447
  32. package/src/lib/format/layout.d.ts +6485 -1447
  33. package/src/lib/format/layout.js +106 -2
  34. package/src/lib/format/layout.js.map +1 -1
  35. package/src/lib/format/layout.mjs +105 -1
  36. package/src/lib/format/layout.mjs.map +1 -1
  37. package/src/lib/format/layout.types.d.mts +7 -1
  38. package/src/lib/format/layout.types.d.ts +7 -1
  39. package/src/lib/format/page.d.mts +1502 -162
  40. package/src/lib/format/page.d.ts +1502 -162
  41. package/src/lib/format/page.js +3 -0
  42. package/src/lib/format/page.js.map +1 -1
  43. package/src/lib/format/page.mjs +3 -0
  44. package/src/lib/format/page.mjs.map +1 -1
  45. package/src/lib/format/pattern.d.mts +10 -0
  46. package/src/lib/format/pattern.d.ts +10 -0
  47. package/src/lib/format/pattern.js +33 -0
  48. package/src/lib/format/pattern.js.map +1 -0
  49. package/src/lib/format/pattern.mjs +30 -0
  50. package/src/lib/format/pattern.mjs.map +1 -0
  51. package/src/lib/format/picker-options.d.mts +22 -0
  52. package/src/lib/format/picker-options.d.ts +22 -0
  53. package/src/lib/format/picker-options.js +50 -0
  54. package/src/lib/format/picker-options.js.map +1 -0
  55. package/src/lib/format/picker-options.mjs +46 -0
  56. package/src/lib/format/picker-options.mjs.map +1 -0
  57. package/src/lib/format/references.d.mts +9 -0
  58. package/src/lib/format/references.d.ts +9 -0
  59. package/src/lib/format/references.js +96 -1
  60. package/src/lib/format/references.js.map +1 -1
  61. package/src/lib/format/references.mjs +96 -1
  62. package/src/lib/format/references.mjs.map +1 -1
  63. package/src/lib/format/section-checks.d.mts +10 -0
  64. package/src/lib/format/section-checks.d.ts +10 -0
  65. package/src/lib/format/section-checks.js +35 -0
  66. package/src/lib/format/section-checks.js.map +1 -0
  67. package/src/lib/format/section-checks.mjs +31 -0
  68. package/src/lib/format/section-checks.mjs.map +1 -0
  69. package/src/lib/format/translate.js +14 -4
  70. package/src/lib/format/translate.js.map +1 -1
  71. package/src/lib/format/translate.mjs +14 -4
  72. package/src/lib/format/translate.mjs.map +1 -1
  73. package/src/lib/record/check.d.mts +13 -3
  74. package/src/lib/record/check.d.ts +13 -3
  75. package/src/lib/record/check.js +87 -17
  76. package/src/lib/record/check.js.map +1 -1
  77. package/src/lib/record/check.mjs +85 -17
  78. package/src/lib/record/check.mjs.map +1 -1
  79. package/src/lib/record/filter.js +14 -2
  80. package/src/lib/record/filter.js.map +1 -1
  81. package/src/lib/record/filter.mjs +14 -2
  82. package/src/lib/record/filter.mjs.map +1 -1
  83. package/src/lib/record/form.d.mts +56 -2
  84. package/src/lib/record/form.d.ts +56 -2
  85. package/src/lib/record/form.js +293 -26
  86. package/src/lib/record/form.js.map +1 -1
  87. package/src/lib/record/form.mjs +295 -28
  88. package/src/lib/record/form.mjs.map +1 -1
  89. package/src/lib/record/input-rules.d.mts +277 -0
  90. package/src/lib/record/input-rules.d.ts +277 -0
  91. package/src/lib/record/input-rules.js +724 -0
  92. package/src/lib/record/input-rules.js.map +1 -0
  93. package/src/lib/record/input-rules.mjs +705 -0
  94. package/src/lib/record/input-rules.mjs.map +1 -0
  95. package/src/lib/record/inputs.d.mts +25 -0
  96. package/src/lib/record/inputs.d.ts +25 -0
  97. package/src/lib/record/inputs.js +135 -9
  98. package/src/lib/record/inputs.js.map +1 -1
  99. package/src/lib/record/inputs.mjs +131 -9
  100. package/src/lib/record/inputs.mjs.map +1 -1
  101. package/src/lib/record/locales/ar.js +13 -2
  102. package/src/lib/record/locales/ar.js.map +1 -1
  103. package/src/lib/record/locales/ar.mjs +13 -2
  104. package/src/lib/record/locales/ar.mjs.map +1 -1
  105. package/src/lib/record/locales/de.js +13 -2
  106. package/src/lib/record/locales/de.js.map +1 -1
  107. package/src/lib/record/locales/de.mjs +13 -2
  108. package/src/lib/record/locales/de.mjs.map +1 -1
  109. package/src/lib/record/locales/fr.js +13 -2
  110. package/src/lib/record/locales/fr.js.map +1 -1
  111. package/src/lib/record/locales/fr.mjs +13 -2
  112. package/src/lib/record/locales/fr.mjs.map +1 -1
  113. package/src/lib/record/memory-data-source.d.mts +7 -0
  114. package/src/lib/record/memory-data-source.d.ts +7 -0
  115. package/src/lib/record/memory-data-source.js +24 -2
  116. package/src/lib/record/memory-data-source.js.map +1 -1
  117. package/src/lib/record/memory-data-source.mjs +24 -2
  118. package/src/lib/record/memory-data-source.mjs.map +1 -1
  119. package/src/lib/record/messages.d.mts +22 -0
  120. package/src/lib/record/messages.d.ts +22 -0
  121. package/src/lib/record/messages.js +13 -2
  122. package/src/lib/record/messages.js.map +1 -1
  123. package/src/lib/record/messages.mjs +13 -2
  124. package/src/lib/record/messages.mjs.map +1 -1
  125. package/src/lib/record/rules.js +3 -1
  126. package/src/lib/record/rules.js.map +1 -1
  127. package/src/lib/record/rules.mjs +3 -1
  128. package/src/lib/record/rules.mjs.map +1 -1
  129. package/src/lib/record/run.d.mts +10 -2
  130. package/src/lib/record/run.d.ts +10 -2
  131. package/src/lib/record/run.js +8 -1
  132. package/src/lib/record/run.js.map +1 -1
  133. package/src/lib/record/run.mjs +8 -1
  134. package/src/lib/record/run.mjs.map +1 -1
  135. package/src/lib/record/search.d.mts +8 -1
  136. package/src/lib/record/search.d.ts +8 -1
  137. package/src/lib/record/search.js +28 -8
  138. package/src/lib/record/search.js.map +1 -1
  139. package/src/lib/record/search.mjs +28 -8
  140. package/src/lib/record/search.mjs.map +1 -1
  141. package/src/lib/record/structures.d.mts +8 -3
  142. package/src/lib/record/structures.d.ts +8 -3
  143. package/src/lib/record/structures.js +51 -7
  144. package/src/lib/record/structures.js.map +1 -1
  145. package/src/lib/record/structures.mjs +48 -6
  146. package/src/lib/record/structures.mjs.map +1 -1
  147. package/src/lib/record/values.d.mts +4 -0
  148. package/src/lib/record/values.d.ts +4 -0
  149. package/src/lib/record/values.js.map +1 -1
  150. package/src/lib/record/values.mjs.map +1 -1
  151. package/src/runtime.d.mts +7 -3
  152. package/src/runtime.d.ts +7 -3
  153. package/src/runtime.js +31 -1
  154. package/src/runtime.js.map +1 -1
  155. package/src/runtime.mjs +5 -2
  156. package/src/runtime.mjs.map +1 -1
@@ -140,6 +140,13 @@
140
140
  "helpShown": {
141
141
  "$ref": "#/$defs/HelpShown"
142
142
  },
143
+ "lockAt": {
144
+ "type": "string",
145
+ "enum": [
146
+ "label",
147
+ "value"
148
+ ]
149
+ },
143
150
  "readonlyShown": {
144
151
  "type": "string",
145
152
  "enum": [
@@ -147,6 +154,9 @@
147
154
  "box"
148
155
  ]
149
156
  },
157
+ "quietHints": {
158
+ "type": "boolean"
159
+ },
150
160
  "scheme": {
151
161
  "type": "string",
152
162
  "enum": [
@@ -302,6 +312,14 @@
302
312
  "outlined",
303
313
  "quiet"
304
314
  ]
315
+ },
316
+ "dateOrder": {
317
+ "type": "string",
318
+ "enum": [
319
+ "dmy",
320
+ "mdy",
321
+ "ymd"
322
+ ]
305
323
  }
306
324
  },
307
325
  "additionalProperties": false
@@ -387,6 +405,10 @@
387
405
  },
388
406
  "pattern": {
389
407
  "type": "string"
408
+ },
409
+ "patternHint": {
410
+ "type": "string",
411
+ "minLength": 1
390
412
  }
391
413
  },
392
414
  "required": [
@@ -1856,6 +1878,10 @@
1856
1878
  },
1857
1879
  "pattern": {
1858
1880
  "type": "string"
1881
+ },
1882
+ "patternHint": {
1883
+ "type": "string",
1884
+ "minLength": 1
1859
1885
  }
1860
1886
  },
1861
1887
  "required": [
@@ -2454,6 +2480,10 @@
2454
2480
  },
2455
2481
  "pattern": {
2456
2482
  "type": "string"
2483
+ },
2484
+ "patternHint": {
2485
+ "type": "string",
2486
+ "minLength": 1
2457
2487
  }
2458
2488
  },
2459
2489
  "required": [
@@ -3628,6 +3658,10 @@
3628
3658
  },
3629
3659
  "pattern": {
3630
3660
  "type": "string"
3661
+ },
3662
+ "patternHint": {
3663
+ "type": "string",
3664
+ "minLength": 1
3631
3665
  }
3632
3666
  },
3633
3667
  "required": [
@@ -4679,6 +4713,9 @@
4679
4713
  "type": "string",
4680
4714
  "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
4681
4715
  },
4716
+ "head": {
4717
+ "$ref": "#/$defs/SheetHead"
4718
+ },
4682
4719
  "title": {
4683
4720
  "type": "object",
4684
4721
  "properties": {
@@ -4860,6 +4897,32 @@
4860
4897
  "items": {
4861
4898
  "$ref": "#/$defs/ScreenWidth"
4862
4899
  }
4900
+ },
4901
+ "iconOnly": {
4902
+ "type": "boolean"
4903
+ },
4904
+ "pressed": {
4905
+ "$ref": "#/$defs/Modifier"
4906
+ },
4907
+ "pressedLabel": {
4908
+ "type": "string"
4909
+ },
4910
+ "menu": {
4911
+ "minItems": 1,
4912
+ "type": "array",
4913
+ "items": {
4914
+ "$ref": "#/$defs/MenuItem"
4915
+ }
4916
+ },
4917
+ "menuIcon": {
4918
+ "type": "string",
4919
+ "minLength": 1
4920
+ },
4921
+ "menuLabel": {
4922
+ "type": "string"
4923
+ },
4924
+ "primaryWhenChanged": {
4925
+ "type": "boolean"
4863
4926
  }
4864
4927
  },
4865
4928
  "required": [
@@ -5107,6 +5170,32 @@
5107
5170
  "items": {
5108
5171
  "$ref": "#/$defs/ScreenWidth"
5109
5172
  }
5173
+ },
5174
+ "iconOnly": {
5175
+ "type": "boolean"
5176
+ },
5177
+ "pressed": {
5178
+ "$ref": "#/$defs/Modifier"
5179
+ },
5180
+ "pressedLabel": {
5181
+ "type": "string"
5182
+ },
5183
+ "menu": {
5184
+ "minItems": 1,
5185
+ "type": "array",
5186
+ "items": {
5187
+ "$ref": "#/$defs/MenuItem"
5188
+ }
5189
+ },
5190
+ "menuIcon": {
5191
+ "type": "string",
5192
+ "minLength": 1
5193
+ },
5194
+ "menuLabel": {
5195
+ "type": "string"
5196
+ },
5197
+ "primaryWhenChanged": {
5198
+ "type": "boolean"
5110
5199
  }
5111
5200
  },
5112
5201
  "required": [
@@ -5341,6 +5430,32 @@
5341
5430
  "items": {
5342
5431
  "$ref": "#/$defs/ScreenWidth"
5343
5432
  }
5433
+ },
5434
+ "iconOnly": {
5435
+ "type": "boolean"
5436
+ },
5437
+ "pressed": {
5438
+ "$ref": "#/$defs/Modifier"
5439
+ },
5440
+ "pressedLabel": {
5441
+ "type": "string"
5442
+ },
5443
+ "menu": {
5444
+ "minItems": 1,
5445
+ "type": "array",
5446
+ "items": {
5447
+ "$ref": "#/$defs/MenuItem"
5448
+ }
5449
+ },
5450
+ "menuIcon": {
5451
+ "type": "string",
5452
+ "minLength": 1
5453
+ },
5454
+ "menuLabel": {
5455
+ "type": "string"
5456
+ },
5457
+ "primaryWhenChanged": {
5458
+ "type": "boolean"
5344
5459
  }
5345
5460
  },
5346
5461
  "required": [
@@ -5359,145 +5474,27 @@
5359
5474
  ],
5360
5475
  "additionalProperties": false
5361
5476
  },
5362
- "PlaceholderWhen": {
5363
- "type": "object",
5364
- "properties": {
5365
- "when": {
5366
- "$ref": "#/$defs/Modifier"
5367
- },
5368
- "text": {
5369
- "type": "string"
5370
- }
5371
- },
5372
- "required": [
5373
- "when",
5374
- "text"
5375
- ],
5376
- "additionalProperties": false
5377
- },
5378
- "Modifier": {
5379
- "anyOf": [
5380
- {
5381
- "type": "boolean"
5382
- },
5383
- {
5384
- "type": "string",
5385
- "minLength": 1
5386
- }
5387
- ]
5388
- },
5389
- "__schema1": {
5477
+ "SheetHead": {
5390
5478
  "type": "object",
5391
5479
  "properties": {
5392
- "type": {
5393
- "type": "string",
5394
- "const": "field"
5395
- },
5396
- "id": {
5397
- "type": "string",
5398
- "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
5399
- },
5400
- "field": {
5401
- "type": "string",
5402
- "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
5403
- },
5404
- "label": {
5405
- "type": "string"
5406
- },
5407
- "widget": {
5408
- "type": "string",
5409
- "minLength": 1
5410
- },
5411
- "options": {
5412
- "type": "object",
5413
- "properties": {
5414
- "clear": {
5415
- "type": "boolean"
5416
- }
5417
- },
5418
- "additionalProperties": {
5419
- "$ref": "#/$defs/JsonValue"
5420
- }
5421
- },
5422
- "placeholder": {
5423
- "type": "string"
5424
- },
5425
- "placeholderWhen": {
5426
- "minItems": 1,
5427
- "type": "array",
5428
- "items": {
5429
- "$ref": "#/$defs/PlaceholderWhen"
5430
- }
5431
- },
5432
- "help": {
5433
- "type": "string"
5434
- },
5435
- "colspan": {
5436
- "type": "integer",
5437
- "minimum": 1,
5438
- "maximum": 12
5439
- },
5440
- "columns": {
5441
- "minItems": 1,
5442
- "type": "array",
5443
- "items": {
5444
- "type": "string",
5445
- "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
5446
- }
5480
+ "kind": {
5481
+ "$ref": "#/$defs/SheetKind"
5447
5482
  },
5448
- "totals": {
5483
+ "meta": {
5449
5484
  "minItems": 1,
5450
5485
  "type": "array",
5451
5486
  "items": {
5452
- "type": "string",
5453
- "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
5454
- }
5455
- },
5456
- "optionalColumns": {
5457
- "type": "object",
5458
- "propertyNames": {
5459
- "type": "string",
5460
- "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
5461
- },
5462
- "additionalProperties": {
5463
- "type": "string",
5464
- "enum": [
5465
- "show",
5466
- "hide"
5487
+ "oneOf": [
5488
+ {
5489
+ "$ref": "#/$defs/__schema1"
5490
+ },
5491
+ {
5492
+ "$ref": "#/$defs/HeadLink"
5493
+ }
5467
5494
  ]
5468
5495
  }
5469
5496
  },
5470
- "order": {
5471
- "minItems": 1,
5472
- "type": "array",
5473
- "items": {
5474
- "$ref": "#/$defs/LineOrder"
5475
- }
5476
- },
5477
- "cells": {
5478
- "type": "object",
5479
- "propertyNames": {
5480
- "type": "string",
5481
- "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
5482
- },
5483
- "additionalProperties": {
5484
- "$ref": "#/$defs/CellRules"
5485
- }
5486
- },
5487
- "rowTones": {
5488
- "minItems": 1,
5489
- "type": "array",
5490
- "items": {
5491
- "$ref": "#/$defs/ToneWhen"
5492
- }
5493
- },
5494
- "rowBold": {
5495
- "$ref": "#/$defs/Modifier"
5496
- },
5497
- "lineDelete": {
5498
- "$ref": "#/$defs/Modifier"
5499
- },
5500
- "rowButtons": {
5497
+ "actions": {
5501
5498
  "minItems": 1,
5502
5499
  "type": "array",
5503
5500
  "items": {
@@ -5570,58 +5567,383 @@
5570
5567
  "items": {
5571
5568
  "$ref": "#/$defs/ScreenWidth"
5572
5569
  }
5573
- }
5574
- },
5575
- "required": [
5576
- "type",
5577
- "id",
5578
- "label"
5579
- ],
5580
- "additionalProperties": false
5581
- }
5582
- },
5583
- "selectedButtons": {
5584
- "minItems": 1,
5585
- "type": "array",
5586
- "items": {
5587
- "type": "object",
5588
- "properties": {
5589
- "type": {
5590
- "type": "string",
5591
- "const": "button"
5592
5570
  },
5593
- "id": {
5594
- "type": "string",
5595
- "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
5571
+ "iconOnly": {
5572
+ "type": "boolean"
5596
5573
  },
5597
- "label": {
5574
+ "pressed": {
5575
+ "$ref": "#/$defs/Modifier"
5576
+ },
5577
+ "pressedLabel": {
5598
5578
  "type": "string"
5599
5579
  },
5600
- "steps": {
5580
+ "menu": {
5601
5581
  "minItems": 1,
5602
5582
  "type": "array",
5603
5583
  "items": {
5604
- "$ref": "#/$defs/ActionStep"
5584
+ "$ref": "#/$defs/MenuItem"
5605
5585
  }
5606
5586
  },
5607
- "action": {
5587
+ "menuIcon": {
5608
5588
  "type": "string",
5609
5589
  "minLength": 1
5610
5590
  },
5611
- "params": {
5612
- "type": "object",
5613
- "propertyNames": {
5614
- "type": "string"
5615
- },
5616
- "additionalProperties": {
5617
- "$ref": "#/$defs/JsonValue"
5618
- }
5591
+ "menuLabel": {
5592
+ "type": "string"
5619
5593
  },
5620
- "style": {
5621
- "type": "string",
5622
- "enum": [
5623
- "primary",
5624
- "secondary",
5594
+ "primaryWhenChanged": {
5595
+ "type": "boolean"
5596
+ }
5597
+ },
5598
+ "required": [
5599
+ "type",
5600
+ "id",
5601
+ "label"
5602
+ ],
5603
+ "additionalProperties": false
5604
+ }
5605
+ },
5606
+ "band": {
5607
+ "$ref": "#/$defs/HeadBand"
5608
+ },
5609
+ "updated": {
5610
+ "type": "object",
5611
+ "properties": {
5612
+ "byField": {
5613
+ "type": "string",
5614
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
5615
+ },
5616
+ "atField": {
5617
+ "type": "string",
5618
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
5619
+ },
5620
+ "opens": {
5621
+ "type": "string",
5622
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
5623
+ }
5624
+ },
5625
+ "required": [
5626
+ "byField",
5627
+ "atField"
5628
+ ],
5629
+ "additionalProperties": false
5630
+ },
5631
+ "copyTitle": {
5632
+ "type": "boolean"
5633
+ }
5634
+ },
5635
+ "additionalProperties": false
5636
+ },
5637
+ "SheetKind": {
5638
+ "type": "object",
5639
+ "properties": {
5640
+ "field": {
5641
+ "type": "string",
5642
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
5643
+ },
5644
+ "label": {
5645
+ "type": "string"
5646
+ },
5647
+ "numberField": {
5648
+ "type": "string",
5649
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
5650
+ },
5651
+ "colour": {
5652
+ "type": "string",
5653
+ "pattern": "^#[0-9a-fA-F]{6}$"
5654
+ },
5655
+ "icon": {
5656
+ "type": "string",
5657
+ "minLength": 1
5658
+ },
5659
+ "looks": {
5660
+ "type": "object",
5661
+ "propertyNames": {
5662
+ "type": "string"
5663
+ },
5664
+ "additionalProperties": {
5665
+ "type": "object",
5666
+ "properties": {
5667
+ "colour": {
5668
+ "type": "string",
5669
+ "pattern": "^#[0-9a-fA-F]{6}$"
5670
+ },
5671
+ "icon": {
5672
+ "type": "string",
5673
+ "minLength": 1
5674
+ }
5675
+ },
5676
+ "required": [
5677
+ "colour"
5678
+ ],
5679
+ "additionalProperties": false
5680
+ }
5681
+ }
5682
+ },
5683
+ "additionalProperties": false
5684
+ },
5685
+ "__schema1": {
5686
+ "type": "object",
5687
+ "properties": {
5688
+ "type": {
5689
+ "type": "string",
5690
+ "const": "field"
5691
+ },
5692
+ "id": {
5693
+ "type": "string",
5694
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
5695
+ },
5696
+ "field": {
5697
+ "type": "string",
5698
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
5699
+ },
5700
+ "label": {
5701
+ "type": "string"
5702
+ },
5703
+ "widget": {
5704
+ "type": "string",
5705
+ "minLength": 1
5706
+ },
5707
+ "options": {
5708
+ "type": "object",
5709
+ "properties": {
5710
+ "clear": {
5711
+ "type": "boolean"
5712
+ }
5713
+ },
5714
+ "additionalProperties": {
5715
+ "$ref": "#/$defs/JsonValue"
5716
+ }
5717
+ },
5718
+ "placeholder": {
5719
+ "type": "string"
5720
+ },
5721
+ "placeholderWhen": {
5722
+ "minItems": 1,
5723
+ "type": "array",
5724
+ "items": {
5725
+ "$ref": "#/$defs/PlaceholderWhen"
5726
+ }
5727
+ },
5728
+ "help": {
5729
+ "type": "string"
5730
+ },
5731
+ "colspan": {
5732
+ "type": "integer",
5733
+ "minimum": 1,
5734
+ "maximum": 12
5735
+ },
5736
+ "columns": {
5737
+ "minItems": 1,
5738
+ "type": "array",
5739
+ "items": {
5740
+ "type": "string",
5741
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
5742
+ }
5743
+ },
5744
+ "totals": {
5745
+ "minItems": 1,
5746
+ "type": "array",
5747
+ "items": {
5748
+ "type": "string",
5749
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
5750
+ }
5751
+ },
5752
+ "optionalColumns": {
5753
+ "type": "object",
5754
+ "propertyNames": {
5755
+ "type": "string",
5756
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
5757
+ },
5758
+ "additionalProperties": {
5759
+ "type": "string",
5760
+ "enum": [
5761
+ "show",
5762
+ "hide"
5763
+ ]
5764
+ }
5765
+ },
5766
+ "order": {
5767
+ "minItems": 1,
5768
+ "type": "array",
5769
+ "items": {
5770
+ "$ref": "#/$defs/LineOrder"
5771
+ }
5772
+ },
5773
+ "cells": {
5774
+ "type": "object",
5775
+ "propertyNames": {
5776
+ "type": "string",
5777
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
5778
+ },
5779
+ "additionalProperties": {
5780
+ "$ref": "#/$defs/CellRules"
5781
+ }
5782
+ },
5783
+ "rowTones": {
5784
+ "minItems": 1,
5785
+ "type": "array",
5786
+ "items": {
5787
+ "$ref": "#/$defs/ToneWhen"
5788
+ }
5789
+ },
5790
+ "rowBold": {
5791
+ "$ref": "#/$defs/Modifier"
5792
+ },
5793
+ "lineDelete": {
5794
+ "$ref": "#/$defs/Modifier"
5795
+ },
5796
+ "rowButtons": {
5797
+ "minItems": 1,
5798
+ "type": "array",
5799
+ "items": {
5800
+ "type": "object",
5801
+ "properties": {
5802
+ "type": {
5803
+ "type": "string",
5804
+ "const": "button"
5805
+ },
5806
+ "id": {
5807
+ "type": "string",
5808
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
5809
+ },
5810
+ "label": {
5811
+ "type": "string"
5812
+ },
5813
+ "steps": {
5814
+ "minItems": 1,
5815
+ "type": "array",
5816
+ "items": {
5817
+ "$ref": "#/$defs/ActionStep"
5818
+ }
5819
+ },
5820
+ "action": {
5821
+ "type": "string",
5822
+ "minLength": 1
5823
+ },
5824
+ "params": {
5825
+ "type": "object",
5826
+ "propertyNames": {
5827
+ "type": "string"
5828
+ },
5829
+ "additionalProperties": {
5830
+ "$ref": "#/$defs/JsonValue"
5831
+ }
5832
+ },
5833
+ "style": {
5834
+ "type": "string",
5835
+ "enum": [
5836
+ "primary",
5837
+ "secondary",
5838
+ "danger",
5839
+ "link"
5840
+ ]
5841
+ },
5842
+ "confirm": {
5843
+ "type": "string"
5844
+ },
5845
+ "icon": {
5846
+ "type": "string"
5847
+ },
5848
+ "hotkey": {
5849
+ "type": "string",
5850
+ "pattern": "^(shift\\+)?[a-z0-9]$"
5851
+ },
5852
+ "colspan": {
5853
+ "type": "integer",
5854
+ "minimum": 1,
5855
+ "maximum": 12
5856
+ },
5857
+ "invisible": {
5858
+ "$ref": "#/$defs/Modifier"
5859
+ },
5860
+ "roles": {
5861
+ "$ref": "#/$defs/Roles"
5862
+ },
5863
+ "hideOn": {
5864
+ "minItems": 1,
5865
+ "type": "array",
5866
+ "items": {
5867
+ "$ref": "#/$defs/ScreenWidth"
5868
+ }
5869
+ },
5870
+ "iconOnly": {
5871
+ "type": "boolean"
5872
+ },
5873
+ "pressed": {
5874
+ "$ref": "#/$defs/Modifier"
5875
+ },
5876
+ "pressedLabel": {
5877
+ "type": "string"
5878
+ },
5879
+ "menu": {
5880
+ "minItems": 1,
5881
+ "type": "array",
5882
+ "items": {
5883
+ "$ref": "#/$defs/MenuItem"
5884
+ }
5885
+ },
5886
+ "menuIcon": {
5887
+ "type": "string",
5888
+ "minLength": 1
5889
+ },
5890
+ "menuLabel": {
5891
+ "type": "string"
5892
+ },
5893
+ "primaryWhenChanged": {
5894
+ "type": "boolean"
5895
+ }
5896
+ },
5897
+ "required": [
5898
+ "type",
5899
+ "id",
5900
+ "label"
5901
+ ],
5902
+ "additionalProperties": false
5903
+ }
5904
+ },
5905
+ "selectedButtons": {
5906
+ "minItems": 1,
5907
+ "type": "array",
5908
+ "items": {
5909
+ "type": "object",
5910
+ "properties": {
5911
+ "type": {
5912
+ "type": "string",
5913
+ "const": "button"
5914
+ },
5915
+ "id": {
5916
+ "type": "string",
5917
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
5918
+ },
5919
+ "label": {
5920
+ "type": "string"
5921
+ },
5922
+ "steps": {
5923
+ "minItems": 1,
5924
+ "type": "array",
5925
+ "items": {
5926
+ "$ref": "#/$defs/ActionStep"
5927
+ }
5928
+ },
5929
+ "action": {
5930
+ "type": "string",
5931
+ "minLength": 1
5932
+ },
5933
+ "params": {
5934
+ "type": "object",
5935
+ "propertyNames": {
5936
+ "type": "string"
5937
+ },
5938
+ "additionalProperties": {
5939
+ "$ref": "#/$defs/JsonValue"
5940
+ }
5941
+ },
5942
+ "style": {
5943
+ "type": "string",
5944
+ "enum": [
5945
+ "primary",
5946
+ "secondary",
5625
5947
  "danger",
5626
5948
  "link"
5627
5949
  ]
@@ -5653,6 +5975,32 @@
5653
5975
  "items": {
5654
5976
  "$ref": "#/$defs/ScreenWidth"
5655
5977
  }
5978
+ },
5979
+ "iconOnly": {
5980
+ "type": "boolean"
5981
+ },
5982
+ "pressed": {
5983
+ "$ref": "#/$defs/Modifier"
5984
+ },
5985
+ "pressedLabel": {
5986
+ "type": "string"
5987
+ },
5988
+ "menu": {
5989
+ "minItems": 1,
5990
+ "type": "array",
5991
+ "items": {
5992
+ "$ref": "#/$defs/MenuItem"
5993
+ }
5994
+ },
5995
+ "menuIcon": {
5996
+ "type": "string",
5997
+ "minLength": 1
5998
+ },
5999
+ "menuLabel": {
6000
+ "type": "string"
6001
+ },
6002
+ "primaryWhenChanged": {
6003
+ "type": "boolean"
5656
6004
  }
5657
6005
  },
5658
6006
  "required": [
@@ -5736,6 +6084,32 @@
5736
6084
  "items": {
5737
6085
  "$ref": "#/$defs/ScreenWidth"
5738
6086
  }
6087
+ },
6088
+ "iconOnly": {
6089
+ "type": "boolean"
6090
+ },
6091
+ "pressed": {
6092
+ "$ref": "#/$defs/Modifier"
6093
+ },
6094
+ "pressedLabel": {
6095
+ "type": "string"
6096
+ },
6097
+ "menu": {
6098
+ "minItems": 1,
6099
+ "type": "array",
6100
+ "items": {
6101
+ "$ref": "#/$defs/MenuItem"
6102
+ }
6103
+ },
6104
+ "menuIcon": {
6105
+ "type": "string",
6106
+ "minLength": 1
6107
+ },
6108
+ "menuLabel": {
6109
+ "type": "string"
6110
+ },
6111
+ "primaryWhenChanged": {
6112
+ "type": "boolean"
5739
6113
  }
5740
6114
  },
5741
6115
  "required": [
@@ -5833,6 +6207,10 @@
5833
6207
  "readonlyReason": {
5834
6208
  "type": "string",
5835
6209
  "minLength": 1
6210
+ },
6211
+ "hotkey": {
6212
+ "type": "string",
6213
+ "pattern": "^[a-z0-9]$"
5836
6214
  }
5837
6215
  },
5838
6216
  "required": [
@@ -5842,6 +6220,33 @@
5842
6220
  ],
5843
6221
  "additionalProperties": false
5844
6222
  },
6223
+ "PlaceholderWhen": {
6224
+ "type": "object",
6225
+ "properties": {
6226
+ "when": {
6227
+ "$ref": "#/$defs/Modifier"
6228
+ },
6229
+ "text": {
6230
+ "type": "string"
6231
+ }
6232
+ },
6233
+ "required": [
6234
+ "when",
6235
+ "text"
6236
+ ],
6237
+ "additionalProperties": false
6238
+ },
6239
+ "Modifier": {
6240
+ "anyOf": [
6241
+ {
6242
+ "type": "boolean"
6243
+ },
6244
+ {
6245
+ "type": "string",
6246
+ "minLength": 1
6247
+ }
6248
+ ]
6249
+ },
5845
6250
  "LineOrder": {
5846
6251
  "type": "object",
5847
6252
  "properties": {
@@ -6581,6 +6986,70 @@
6581
6986
  "wide"
6582
6987
  ]
6583
6988
  },
6989
+ "MenuItem": {
6990
+ "type": "object",
6991
+ "properties": {
6992
+ "id": {
6993
+ "type": "string",
6994
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
6995
+ },
6996
+ "label": {
6997
+ "type": "string"
6998
+ },
6999
+ "builtin": {
7000
+ "type": "string",
7001
+ "enum": [
7002
+ "archive",
7003
+ "unarchive",
7004
+ "duplicate",
7005
+ "delete"
7006
+ ]
7007
+ },
7008
+ "group": {
7009
+ "type": "string",
7010
+ "enum": [
7011
+ "actions",
7012
+ "print"
7013
+ ]
7014
+ },
7015
+ "steps": {
7016
+ "minItems": 1,
7017
+ "type": "array",
7018
+ "items": {
7019
+ "$ref": "#/$defs/ActionStep"
7020
+ }
7021
+ },
7022
+ "action": {
7023
+ "type": "string",
7024
+ "minLength": 1
7025
+ },
7026
+ "params": {
7027
+ "type": "object",
7028
+ "propertyNames": {
7029
+ "type": "string"
7030
+ },
7031
+ "additionalProperties": {
7032
+ "$ref": "#/$defs/JsonValue"
7033
+ }
7034
+ },
7035
+ "confirm": {
7036
+ "type": "string"
7037
+ },
7038
+ "icon": {
7039
+ "type": "string"
7040
+ },
7041
+ "invisible": {
7042
+ "$ref": "#/$defs/Modifier"
7043
+ },
7044
+ "roles": {
7045
+ "$ref": "#/$defs/Roles"
7046
+ }
7047
+ },
7048
+ "required": [
7049
+ "id"
7050
+ ],
7051
+ "additionalProperties": false
7052
+ },
6584
7053
  "LineForm": {
6585
7054
  "type": "object",
6586
7055
  "properties": {
@@ -6660,18 +7129,44 @@
6660
7129
  "minimum": 1,
6661
7130
  "maximum": 12
6662
7131
  },
6663
- "invisible": {
7132
+ "invisible": {
7133
+ "$ref": "#/$defs/Modifier"
7134
+ },
7135
+ "roles": {
7136
+ "$ref": "#/$defs/Roles"
7137
+ },
7138
+ "hideOn": {
7139
+ "minItems": 1,
7140
+ "type": "array",
7141
+ "items": {
7142
+ "$ref": "#/$defs/ScreenWidth"
7143
+ }
7144
+ },
7145
+ "iconOnly": {
7146
+ "type": "boolean"
7147
+ },
7148
+ "pressed": {
6664
7149
  "$ref": "#/$defs/Modifier"
6665
7150
  },
6666
- "roles": {
6667
- "$ref": "#/$defs/Roles"
7151
+ "pressedLabel": {
7152
+ "type": "string"
6668
7153
  },
6669
- "hideOn": {
7154
+ "menu": {
6670
7155
  "minItems": 1,
6671
7156
  "type": "array",
6672
7157
  "items": {
6673
- "$ref": "#/$defs/ScreenWidth"
7158
+ "$ref": "#/$defs/MenuItem"
6674
7159
  }
7160
+ },
7161
+ "menuIcon": {
7162
+ "type": "string",
7163
+ "minLength": 1
7164
+ },
7165
+ "menuLabel": {
7166
+ "type": "string"
7167
+ },
7168
+ "primaryWhenChanged": {
7169
+ "type": "boolean"
6675
7170
  }
6676
7171
  },
6677
7172
  "required": [
@@ -6701,7 +7196,8 @@
6701
7196
  "heading",
6702
7197
  "paragraph",
6703
7198
  "note",
6704
- "alert"
7199
+ "alert",
7200
+ "help"
6705
7201
  ]
6706
7202
  },
6707
7203
  "tone": {
@@ -6714,6 +7210,10 @@
6714
7210
  "muted"
6715
7211
  ]
6716
7212
  },
7213
+ "icon": {
7214
+ "type": "string",
7215
+ "minLength": 1
7216
+ },
6717
7217
  "colspan": {
6718
7218
  "type": "integer",
6719
7219
  "minimum": 1,
@@ -7112,6 +7612,30 @@
7112
7612
  "readonlyReason": {
7113
7613
  "type": "string",
7114
7614
  "minLength": 1
7615
+ },
7616
+ "tracks": {
7617
+ "minItems": 1,
7618
+ "maxItems": 12,
7619
+ "type": "array",
7620
+ "items": {
7621
+ "type": "string",
7622
+ "pattern": "^\\d+(\\.\\d+)?(px|%|fr)$"
7623
+ }
7624
+ },
7625
+ "gap": {
7626
+ "type": "integer",
7627
+ "minimum": 0,
7628
+ "maximum": 48
7629
+ },
7630
+ "foldAt": {
7631
+ "type": "string",
7632
+ "enum": [
7633
+ "start",
7634
+ "end"
7635
+ ]
7636
+ },
7637
+ "maximise": {
7638
+ "type": "boolean"
7115
7639
  }
7116
7640
  },
7117
7641
  "required": [
@@ -7156,6 +7680,10 @@
7156
7680
  "items": {
7157
7681
  "$ref": "#/$defs/TabNode"
7158
7682
  }
7683
+ },
7684
+ "place": {
7685
+ "type": "string",
7686
+ "const": "head"
7159
7687
  }
7160
7688
  },
7161
7689
  "required": [
@@ -7193,6 +7721,13 @@
7193
7721
  "items": {
7194
7722
  "$ref": "#/$defs/LayoutNode"
7195
7723
  }
7724
+ },
7725
+ "iconOnly": {
7726
+ "type": "boolean"
7727
+ },
7728
+ "count": {
7729
+ "type": "string",
7730
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
7196
7731
  }
7197
7732
  },
7198
7733
  "required": [
@@ -7717,31 +8252,31 @@
7717
8252
  },
7718
8253
  "additionalProperties": false
7719
8254
  },
7720
- "MenuItem": {
8255
+ "HeadLink": {
7721
8256
  "type": "object",
7722
8257
  "properties": {
8258
+ "type": {
8259
+ "type": "string",
8260
+ "const": "link"
8261
+ },
7723
8262
  "id": {
7724
8263
  "type": "string",
7725
8264
  "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
7726
8265
  },
7727
- "label": {
7728
- "type": "string"
8266
+ "icon": {
8267
+ "type": "string",
8268
+ "minLength": 1
7729
8269
  },
7730
- "builtin": {
8270
+ "field": {
7731
8271
  "type": "string",
7732
- "enum": [
7733
- "archive",
7734
- "unarchive",
7735
- "duplicate",
7736
- "delete"
7737
- ]
8272
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
7738
8273
  },
7739
- "group": {
8274
+ "words": {
8275
+ "$ref": "#/$defs/PluralWords"
8276
+ },
8277
+ "target": {
7740
8278
  "type": "string",
7741
- "enum": [
7742
- "actions",
7743
- "print"
7744
- ]
8279
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
7745
8280
  },
7746
8281
  "steps": {
7747
8282
  "minItems": 1,
@@ -7750,25 +8285,6 @@
7750
8285
  "$ref": "#/$defs/ActionStep"
7751
8286
  }
7752
8287
  },
7753
- "action": {
7754
- "type": "string",
7755
- "minLength": 1
7756
- },
7757
- "params": {
7758
- "type": "object",
7759
- "propertyNames": {
7760
- "type": "string"
7761
- },
7762
- "additionalProperties": {
7763
- "$ref": "#/$defs/JsonValue"
7764
- }
7765
- },
7766
- "confirm": {
7767
- "type": "string"
7768
- },
7769
- "icon": {
7770
- "type": "string"
7771
- },
7772
8288
  "invisible": {
7773
8289
  "$ref": "#/$defs/Modifier"
7774
8290
  },
@@ -7777,7 +8293,39 @@
7777
8293
  }
7778
8294
  },
7779
8295
  "required": [
7780
- "id"
8296
+ "type",
8297
+ "id",
8298
+ "field",
8299
+ "words"
8300
+ ],
8301
+ "additionalProperties": false
8302
+ },
8303
+ "HeadBand": {
8304
+ "type": "object",
8305
+ "properties": {
8306
+ "tracks": {
8307
+ "minItems": 1,
8308
+ "maxItems": 4,
8309
+ "type": "array",
8310
+ "items": {
8311
+ "type": "string",
8312
+ "pattern": "^\\d+(\\.\\d+)?(px|%|fr)$"
8313
+ }
8314
+ },
8315
+ "labelWidth": {
8316
+ "type": "integer",
8317
+ "minimum": 48,
8318
+ "maximum": 320
8319
+ },
8320
+ "children": {
8321
+ "type": "array",
8322
+ "items": {
8323
+ "$ref": "#/$defs/LayoutNode"
8324
+ }
8325
+ }
8326
+ },
8327
+ "required": [
8328
+ "children"
7781
8329
  ],
7782
8330
  "additionalProperties": false
7783
8331
  },
@@ -7871,6 +8419,32 @@
7871
8419
  "items": {
7872
8420
  "$ref": "#/$defs/ScreenWidth"
7873
8421
  }
8422
+ },
8423
+ "iconOnly": {
8424
+ "type": "boolean"
8425
+ },
8426
+ "pressed": {
8427
+ "$ref": "#/$defs/Modifier"
8428
+ },
8429
+ "pressedLabel": {
8430
+ "type": "string"
8431
+ },
8432
+ "menu": {
8433
+ "minItems": 1,
8434
+ "type": "array",
8435
+ "items": {
8436
+ "$ref": "#/$defs/MenuItem"
8437
+ }
8438
+ },
8439
+ "menuIcon": {
8440
+ "type": "string",
8441
+ "minLength": 1
8442
+ },
8443
+ "menuLabel": {
8444
+ "type": "string"
8445
+ },
8446
+ "primaryWhenChanged": {
8447
+ "type": "boolean"
7874
8448
  }
7875
8449
  },
7876
8450
  "required": [
@@ -8139,6 +8713,32 @@
8139
8713
  "items": {
8140
8714
  "$ref": "#/$defs/ScreenWidth"
8141
8715
  }
8716
+ },
8717
+ "iconOnly": {
8718
+ "type": "boolean"
8719
+ },
8720
+ "pressed": {
8721
+ "$ref": "#/$defs/Modifier"
8722
+ },
8723
+ "pressedLabel": {
8724
+ "type": "string"
8725
+ },
8726
+ "menu": {
8727
+ "minItems": 1,
8728
+ "type": "array",
8729
+ "items": {
8730
+ "$ref": "#/$defs/MenuItem"
8731
+ }
8732
+ },
8733
+ "menuIcon": {
8734
+ "type": "string",
8735
+ "minLength": 1
8736
+ },
8737
+ "menuLabel": {
8738
+ "type": "string"
8739
+ },
8740
+ "primaryWhenChanged": {
8741
+ "type": "boolean"
8142
8742
  }
8143
8743
  },
8144
8744
  "required": [
@@ -8151,6 +8751,52 @@
8151
8751
  },
8152
8752
  "map": {
8153
8753
  "$ref": "#/$defs/ListMap"
8754
+ },
8755
+ "cells": {
8756
+ "type": "object",
8757
+ "propertyNames": {
8758
+ "type": "string",
8759
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
8760
+ },
8761
+ "additionalProperties": {
8762
+ "$ref": "#/$defs/ListCell"
8763
+ }
8764
+ },
8765
+ "choose": {
8766
+ "type": "boolean"
8767
+ },
8768
+ "sortable": {
8769
+ "type": "boolean"
8770
+ },
8771
+ "search": {
8772
+ "type": "string",
8773
+ "enum": [
8774
+ "bar",
8775
+ "fields"
8776
+ ]
8777
+ },
8778
+ "filterFields": {
8779
+ "minItems": 1,
8780
+ "type": "array",
8781
+ "items": {
8782
+ "type": "string",
8783
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
8784
+ }
8785
+ },
8786
+ "filterLabels": {
8787
+ "type": "object",
8788
+ "propertyNames": {
8789
+ "type": "string",
8790
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
8791
+ },
8792
+ "additionalProperties": {
8793
+ "type": "string",
8794
+ "minLength": 1
8795
+ }
8796
+ },
8797
+ "parentField": {
8798
+ "type": "string",
8799
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
8154
8800
  }
8155
8801
  },
8156
8802
  "required": [
@@ -8289,6 +8935,96 @@
8289
8935
  },
8290
8936
  "additionalProperties": false
8291
8937
  },
8938
+ "ListCell": {
8939
+ "type": "object",
8940
+ "properties": {
8941
+ "widget": {
8942
+ "type": "string",
8943
+ "minLength": 1
8944
+ },
8945
+ "options": {
8946
+ "type": "object",
8947
+ "properties": {
8948
+ "clear": {
8949
+ "type": "boolean"
8950
+ }
8951
+ },
8952
+ "additionalProperties": {
8953
+ "$ref": "#/$defs/JsonValue"
8954
+ }
8955
+ },
8956
+ "lead": {
8957
+ "type": "object",
8958
+ "properties": {
8959
+ "field": {
8960
+ "type": "string",
8961
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
8962
+ },
8963
+ "looks": {
8964
+ "type": "object",
8965
+ "propertyNames": {
8966
+ "type": "string"
8967
+ },
8968
+ "additionalProperties": {
8969
+ "type": "object",
8970
+ "properties": {
8971
+ "icon": {
8972
+ "type": "string",
8973
+ "minLength": 1
8974
+ },
8975
+ "colour": {
8976
+ "type": "string",
8977
+ "pattern": "^#[0-9a-fA-F]{6}$"
8978
+ }
8979
+ },
8980
+ "required": [
8981
+ "icon"
8982
+ ],
8983
+ "additionalProperties": false
8984
+ }
8985
+ }
8986
+ },
8987
+ "required": [
8988
+ "field",
8989
+ "looks"
8990
+ ],
8991
+ "additionalProperties": false
8992
+ },
8993
+ "width": {
8994
+ "anyOf": [
8995
+ {
8996
+ "type": "integer",
8997
+ "minimum": 1,
8998
+ "maximum": 200
8999
+ },
9000
+ {
9001
+ "type": "string",
9002
+ "pattern": "^([89]|[1-9]\\d{1,2}|[1-3]\\d{3}|4000)px$"
9003
+ }
9004
+ ]
9005
+ },
9006
+ "align": {
9007
+ "type": "string",
9008
+ "enum": [
9009
+ "start",
9010
+ "end"
9011
+ ]
9012
+ },
9013
+ "rule": {
9014
+ "anyOf": [
9015
+ {
9016
+ "type": "boolean",
9017
+ "const": false
9018
+ },
9019
+ {
9020
+ "type": "string",
9021
+ "pattern": "^(\\d|[1-9]\\d|[1-3]\\d{2}|400)px$"
9022
+ }
9023
+ ]
9024
+ }
9025
+ },
9026
+ "additionalProperties": false
9027
+ },
8292
9028
  "PageEvents": {
8293
9029
  "type": "object",
8294
9030
  "properties": {