@port60/template-kit 0.20.4 → 1.0.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 (58) hide show
  1. package/README.md +42 -3
  2. package/bin/cli.mjs +10 -0
  3. package/package.json +4 -2
  4. package/src/commands/content.mjs +4 -3
  5. package/src/commands/create.mjs +11 -3
  6. package/src/commands/dev.mjs +9 -3
  7. package/src/commands/model.mjs +3 -3
  8. package/src/commands/packageCmd.mjs +1 -1
  9. package/src/commands/publish.mjs +1 -1
  10. package/src/commands/refresh.mjs +8 -3
  11. package/src/commands/release.mjs +22 -0
  12. package/src/commands/setupPreviews.mjs +19 -0
  13. package/src/commands/validate.mjs +1 -1
  14. package/src/lib/agentsMd.mjs +108 -155
  15. package/src/lib/designer-bridge.js +26 -0
  16. package/src/lib/designerPalette.mjs +62 -0
  17. package/src/lib/galleryPosters.mjs +105 -0
  18. package/src/lib/previewOptions.mjs +1 -1
  19. package/src/lib/releaseBundle.mjs +141 -0
  20. package/src/vendor/contract/v1/context.json +1 -1
  21. package/src/vendor/contract/v1/manifest.schema.json +6 -0
  22. package/src/vendor/contract/v2/behaviours.json +346 -0
  23. package/src/vendor/contract/v2/content-bounds.json +117 -0
  24. package/src/vendor/contract/v2/content-model.json +766 -0
  25. package/src/vendor/contract/v2/context.json +1569 -0
  26. package/src/vendor/contract/v2/dialect.json +105 -0
  27. package/src/vendor/contract/v2/fonts.json +910 -0
  28. package/src/vendor/contract/v2/imagery.json +32 -0
  29. package/src/vendor/contract/v2/islands.json +263 -0
  30. package/src/vendor/contract/v2/layout.json +28 -0
  31. package/src/vendor/contract/v2/manifest.schema.json +388 -0
  32. package/src/vendor/contract/v2/sections.json +947 -0
  33. package/src/vendor/contract/v2/site.schema.json +1353 -0
  34. package/src/vendor/contract/v2/tokens.json +101 -0
  35. package/src/vendor/contract/v2.lock.json +6931 -0
  36. package/src/vendor/engine/content-footprint.mjs +76 -1
  37. package/src/vendor/engine/majors.mjs +42 -0
  38. package/src/vendor/validator/gift-aid-logo.svg +6 -0
  39. package/src/vendor/validator/model-reference-v2.mjs +95 -0
  40. package/src/vendor/validator/platform-base.css +359 -2
  41. package/src/vendor/validator/preview-v1.mjs +691 -0
  42. package/src/vendor/validator/preview-v2.mjs +654 -0
  43. package/src/vendor/validator/preview.mjs +8 -688
  44. package/src/vendor/validator/site-context-v2.mjs +113 -0
  45. package/src/vendor/validator/validate-v1.mjs +666 -0
  46. package/src/vendor/validator/validate-v2.mjs +642 -0
  47. package/src/vendor/validator/validate.mjs +21 -621
  48. package/starter/assets/theme.css +3 -0
  49. package/starter/layout.liquid +15 -18
  50. package/starter/manifest.json +6 -4
  51. package/starter/preview/config.json +4 -0
  52. package/starter/preview/media/README.md +9 -0
  53. package/starter/sections/campaigns.liquid +5 -4
  54. package/starter/sections/cta.liquid +2 -2
  55. package/starter/sections/hero.liquid +9 -2
  56. package/starter/sections/homeHero.liquid +28 -24
  57. package/starter/sections/people.liquid +7 -6
  58. package/starter/sections/values.liquid +3 -3
@@ -0,0 +1,1353 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://developers.port60.com/schemas/site-v2.json",
4
+ "title": "Port60 public site object v2",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "brand",
9
+ "nav",
10
+ "socials",
11
+ "locale",
12
+ "actions",
13
+ "page",
14
+ "content"
15
+ ],
16
+ "properties": {
17
+ "brand": {
18
+ "type": "object",
19
+ "additionalProperties": false,
20
+ "required": [
21
+ "name"
22
+ ],
23
+ "properties": {
24
+ "name": {
25
+ "type": "string"
26
+ },
27
+ "tagline": {
28
+ "type": "string"
29
+ },
30
+ "logoUrl": {
31
+ "type": [
32
+ "string",
33
+ "null"
34
+ ]
35
+ },
36
+ "logoType": {
37
+ "type": "string"
38
+ },
39
+ "footerLogoUrl": {
40
+ "type": [
41
+ "string",
42
+ "null"
43
+ ]
44
+ }
45
+ }
46
+ },
47
+ "nav": {
48
+ "type": "object",
49
+ "additionalProperties": false,
50
+ "required": [
51
+ "header",
52
+ "footer"
53
+ ],
54
+ "properties": {
55
+ "header": {
56
+ "type": "array",
57
+ "items": {
58
+ "$ref": "#/definitions/navNode"
59
+ }
60
+ },
61
+ "footer": {
62
+ "type": "array",
63
+ "items": {
64
+ "$ref": "#/definitions/footerNode"
65
+ }
66
+ }
67
+ }
68
+ },
69
+ "socials": {
70
+ "type": "array",
71
+ "items": {
72
+ "type": "object",
73
+ "additionalProperties": false,
74
+ "required": [
75
+ "platform",
76
+ "url",
77
+ "iconSvg"
78
+ ],
79
+ "properties": {
80
+ "platform": {
81
+ "type": "string"
82
+ },
83
+ "url": {
84
+ "type": "string"
85
+ },
86
+ "iconSvg": {
87
+ "type": "string"
88
+ },
89
+ "label": {
90
+ "type": "string"
91
+ }
92
+ }
93
+ }
94
+ },
95
+ "locale": {
96
+ "type": "object",
97
+ "additionalProperties": false,
98
+ "required": [
99
+ "code",
100
+ "languages"
101
+ ],
102
+ "properties": {
103
+ "code": {
104
+ "type": "string"
105
+ },
106
+ "dir": {
107
+ "enum": [
108
+ "ltr",
109
+ "rtl"
110
+ ]
111
+ },
112
+ "direction": {
113
+ "enum": [
114
+ "ltr",
115
+ "rtl"
116
+ ]
117
+ },
118
+ "languages": {
119
+ "type": "array",
120
+ "items": {
121
+ "type": "object"
122
+ }
123
+ }
124
+ }
125
+ },
126
+ "actions": {
127
+ "type": "object",
128
+ "additionalProperties": false,
129
+ "required": [
130
+ "header",
131
+ "hero",
132
+ "widget"
133
+ ],
134
+ "properties": {
135
+ "header": {
136
+ "anyOf": [
137
+ {
138
+ "type": "object",
139
+ "additionalProperties": false,
140
+ "required": [
141
+ "kind",
142
+ "label",
143
+ "href"
144
+ ],
145
+ "properties": {
146
+ "kind": {
147
+ "enum": [
148
+ "donate",
149
+ "volunteer"
150
+ ]
151
+ },
152
+ "label": {
153
+ "type": "string"
154
+ },
155
+ "href": {
156
+ "type": "string"
157
+ }
158
+ }
159
+ },
160
+ {
161
+ "type": "null"
162
+ }
163
+ ]
164
+ },
165
+ "hero": {
166
+ "anyOf": [
167
+ {
168
+ "type": "object",
169
+ "additionalProperties": false,
170
+ "required": [
171
+ "kind",
172
+ "label",
173
+ "href"
174
+ ],
175
+ "properties": {
176
+ "kind": {
177
+ "enum": [
178
+ "donate",
179
+ "volunteer"
180
+ ]
181
+ },
182
+ "label": {
183
+ "type": "string"
184
+ },
185
+ "href": {
186
+ "type": "string"
187
+ }
188
+ }
189
+ },
190
+ {
191
+ "type": "null"
192
+ }
193
+ ]
194
+ },
195
+ "widget": {
196
+ "enum": [
197
+ "donate",
198
+ "volunteer",
199
+ "none"
200
+ ]
201
+ }
202
+ }
203
+ },
204
+ "page": {
205
+ "type": "object",
206
+ "additionalProperties": false,
207
+ "required": [
208
+ "key",
209
+ "path",
210
+ "sections"
211
+ ],
212
+ "properties": {
213
+ "key": {
214
+ "type": "string"
215
+ },
216
+ "path": {
217
+ "type": "string"
218
+ },
219
+ "sections": {
220
+ "type": "array",
221
+ "items": {
222
+ "type": "object",
223
+ "additionalProperties": false,
224
+ "required": [
225
+ "key",
226
+ "type",
227
+ "content"
228
+ ],
229
+ "properties": {
230
+ "key": {
231
+ "type": "string"
232
+ },
233
+ "type": {
234
+ "enum": [
235
+ "hero",
236
+ "values",
237
+ "cta",
238
+ "homeHero",
239
+ "impact",
240
+ "events",
241
+ "articles",
242
+ "campaigns",
243
+ "emergency",
244
+ "stats",
245
+ "appealGrid",
246
+ "services",
247
+ "documents",
248
+ "people",
249
+ "impactMap",
250
+ "courses"
251
+ ]
252
+ },
253
+ "content": {
254
+ "type": "object"
255
+ }
256
+ }
257
+ }
258
+ }
259
+ }
260
+ },
261
+ "content": {
262
+ "type": "object",
263
+ "additionalProperties": false,
264
+ "required": [
265
+ "services",
266
+ "events",
267
+ "articles",
268
+ "campaigns",
269
+ "causes",
270
+ "courses",
271
+ "documents",
272
+ "schedules"
273
+ ],
274
+ "properties": {
275
+ "services": {
276
+ "type": "object",
277
+ "additionalProperties": false,
278
+ "required": [
279
+ "label",
280
+ "href",
281
+ "items",
282
+ "pagination"
283
+ ],
284
+ "properties": {
285
+ "label": {
286
+ "type": "string",
287
+ "minLength": 1,
288
+ "maxLength": 60
289
+ },
290
+ "href": {
291
+ "type": "string"
292
+ },
293
+ "items": {
294
+ "type": "array",
295
+ "maxItems": 24,
296
+ "items": {
297
+ "type": "object",
298
+ "additionalProperties": false,
299
+ "required": [],
300
+ "properties": {
301
+ "id": {
302
+ "type": "string"
303
+ },
304
+ "title": {
305
+ "type": "string",
306
+ "maxLength": 200
307
+ },
308
+ "slug": {
309
+ "type": "string"
310
+ },
311
+ "summary": {
312
+ "type": [
313
+ "string",
314
+ "null"
315
+ ],
316
+ "maxLength": 500
317
+ },
318
+ "imageUrl": {
319
+ "type": [
320
+ "string",
321
+ "null"
322
+ ]
323
+ },
324
+ "href": {
325
+ "type": "string"
326
+ }
327
+ }
328
+ }
329
+ },
330
+ "pagination": {
331
+ "anyOf": [
332
+ {
333
+ "type": "object",
334
+ "additionalProperties": false,
335
+ "required": [
336
+ "page",
337
+ "size",
338
+ "totalElements",
339
+ "totalPages",
340
+ "nextHref",
341
+ "previousHref"
342
+ ],
343
+ "properties": {
344
+ "page": {
345
+ "type": "integer",
346
+ "minimum": 0
347
+ },
348
+ "size": {
349
+ "type": "integer",
350
+ "minimum": 1
351
+ },
352
+ "totalElements": {
353
+ "type": "integer",
354
+ "minimum": 0
355
+ },
356
+ "totalPages": {
357
+ "type": "integer",
358
+ "minimum": 0
359
+ },
360
+ "nextHref": {
361
+ "type": [
362
+ "string",
363
+ "null"
364
+ ]
365
+ },
366
+ "previousHref": {
367
+ "type": [
368
+ "string",
369
+ "null"
370
+ ]
371
+ }
372
+ }
373
+ },
374
+ {
375
+ "type": "null"
376
+ }
377
+ ]
378
+ }
379
+ }
380
+ },
381
+ "events": {
382
+ "type": "object",
383
+ "additionalProperties": false,
384
+ "required": [
385
+ "label",
386
+ "href",
387
+ "items",
388
+ "pagination"
389
+ ],
390
+ "properties": {
391
+ "label": {
392
+ "type": "string",
393
+ "minLength": 1,
394
+ "maxLength": 60
395
+ },
396
+ "href": {
397
+ "type": "string"
398
+ },
399
+ "items": {
400
+ "type": "array",
401
+ "maxItems": 12,
402
+ "items": {
403
+ "type": "object",
404
+ "additionalProperties": false,
405
+ "required": [],
406
+ "properties": {
407
+ "id": {
408
+ "type": "string"
409
+ },
410
+ "name": {
411
+ "type": "string",
412
+ "maxLength": 200
413
+ },
414
+ "description": {
415
+ "type": [
416
+ "string",
417
+ "null"
418
+ ],
419
+ "maxLength": 200
420
+ },
421
+ "registrationMode": {
422
+ "type": "string"
423
+ },
424
+ "startsAt": {
425
+ "type": "string"
426
+ },
427
+ "endsAt": {
428
+ "type": [
429
+ "string",
430
+ "null"
431
+ ]
432
+ },
433
+ "venueName": {
434
+ "type": [
435
+ "string",
436
+ "null"
437
+ ],
438
+ "maxLength": 200
439
+ },
440
+ "online": {
441
+ "type": "boolean"
442
+ },
443
+ "imageUrl": {
444
+ "type": [
445
+ "string",
446
+ "null"
447
+ ]
448
+ },
449
+ "onSale": {
450
+ "type": "boolean"
451
+ },
452
+ "soldOut": {
453
+ "type": "boolean"
454
+ },
455
+ "priceFrom": {
456
+ "type": [
457
+ "number",
458
+ "null"
459
+ ]
460
+ },
461
+ "currency": {
462
+ "type": [
463
+ "string",
464
+ "null"
465
+ ]
466
+ },
467
+ "detailHref": {
468
+ "type": "string"
469
+ }
470
+ }
471
+ }
472
+ },
473
+ "pagination": {
474
+ "anyOf": [
475
+ {
476
+ "type": "object",
477
+ "additionalProperties": false,
478
+ "required": [
479
+ "page",
480
+ "size",
481
+ "totalElements",
482
+ "totalPages",
483
+ "nextHref",
484
+ "previousHref"
485
+ ],
486
+ "properties": {
487
+ "page": {
488
+ "type": "integer",
489
+ "minimum": 0
490
+ },
491
+ "size": {
492
+ "type": "integer",
493
+ "minimum": 1
494
+ },
495
+ "totalElements": {
496
+ "type": "integer",
497
+ "minimum": 0
498
+ },
499
+ "totalPages": {
500
+ "type": "integer",
501
+ "minimum": 0
502
+ },
503
+ "nextHref": {
504
+ "type": [
505
+ "string",
506
+ "null"
507
+ ]
508
+ },
509
+ "previousHref": {
510
+ "type": [
511
+ "string",
512
+ "null"
513
+ ]
514
+ }
515
+ }
516
+ },
517
+ {
518
+ "type": "null"
519
+ }
520
+ ]
521
+ }
522
+ }
523
+ },
524
+ "articles": {
525
+ "type": "object",
526
+ "additionalProperties": false,
527
+ "required": [
528
+ "label",
529
+ "href",
530
+ "items",
531
+ "pagination"
532
+ ],
533
+ "properties": {
534
+ "label": {
535
+ "type": "string",
536
+ "minLength": 1,
537
+ "maxLength": 60
538
+ },
539
+ "href": {
540
+ "type": "string"
541
+ },
542
+ "items": {
543
+ "type": "array",
544
+ "maxItems": 12,
545
+ "items": {
546
+ "type": "object",
547
+ "additionalProperties": false,
548
+ "required": [],
549
+ "properties": {
550
+ "id": {
551
+ "type": "string"
552
+ },
553
+ "title": {
554
+ "type": "string",
555
+ "maxLength": 200
556
+ },
557
+ "slug": {
558
+ "type": "string"
559
+ },
560
+ "excerpt": {
561
+ "type": [
562
+ "string",
563
+ "null"
564
+ ],
565
+ "maxLength": 500
566
+ },
567
+ "imageUrl": {
568
+ "type": [
569
+ "string",
570
+ "null"
571
+ ]
572
+ },
573
+ "authorName": {
574
+ "type": [
575
+ "string",
576
+ "null"
577
+ ],
578
+ "maxLength": 120
579
+ },
580
+ "authorRole": {
581
+ "type": [
582
+ "string",
583
+ "null"
584
+ ],
585
+ "maxLength": 120
586
+ },
587
+ "categories": {
588
+ "type": "array",
589
+ "items": {
590
+ "type": "string"
591
+ }
592
+ },
593
+ "publishedAt": {
594
+ "type": "string"
595
+ },
596
+ "readingMinutes": {
597
+ "type": [
598
+ "number",
599
+ "null"
600
+ ]
601
+ },
602
+ "href": {
603
+ "type": "string"
604
+ }
605
+ }
606
+ }
607
+ },
608
+ "pagination": {
609
+ "anyOf": [
610
+ {
611
+ "type": "object",
612
+ "additionalProperties": false,
613
+ "required": [
614
+ "page",
615
+ "size",
616
+ "totalElements",
617
+ "totalPages",
618
+ "nextHref",
619
+ "previousHref"
620
+ ],
621
+ "properties": {
622
+ "page": {
623
+ "type": "integer",
624
+ "minimum": 0
625
+ },
626
+ "size": {
627
+ "type": "integer",
628
+ "minimum": 1
629
+ },
630
+ "totalElements": {
631
+ "type": "integer",
632
+ "minimum": 0
633
+ },
634
+ "totalPages": {
635
+ "type": "integer",
636
+ "minimum": 0
637
+ },
638
+ "nextHref": {
639
+ "type": [
640
+ "string",
641
+ "null"
642
+ ]
643
+ },
644
+ "previousHref": {
645
+ "type": [
646
+ "string",
647
+ "null"
648
+ ]
649
+ }
650
+ }
651
+ },
652
+ {
653
+ "type": "null"
654
+ }
655
+ ]
656
+ }
657
+ }
658
+ },
659
+ "campaigns": {
660
+ "type": "object",
661
+ "additionalProperties": false,
662
+ "required": [
663
+ "label",
664
+ "href",
665
+ "items",
666
+ "pagination"
667
+ ],
668
+ "properties": {
669
+ "label": {
670
+ "type": "string",
671
+ "minLength": 1,
672
+ "maxLength": 60
673
+ },
674
+ "href": {
675
+ "type": "string"
676
+ },
677
+ "items": {
678
+ "type": "array",
679
+ "maxItems": 12,
680
+ "items": {
681
+ "type": "object",
682
+ "additionalProperties": false,
683
+ "required": [],
684
+ "properties": {
685
+ "id": {
686
+ "type": "string"
687
+ },
688
+ "title": {
689
+ "type": "string",
690
+ "maxLength": 200
691
+ },
692
+ "href": {
693
+ "type": "string"
694
+ },
695
+ "summary": {
696
+ "type": [
697
+ "string",
698
+ "null"
699
+ ],
700
+ "maxLength": 500
701
+ },
702
+ "imageUrl": {
703
+ "type": [
704
+ "string",
705
+ "null"
706
+ ]
707
+ },
708
+ "slug": {
709
+ "type": "string"
710
+ }
711
+ }
712
+ }
713
+ },
714
+ "pagination": {
715
+ "anyOf": [
716
+ {
717
+ "type": "object",
718
+ "additionalProperties": false,
719
+ "required": [
720
+ "page",
721
+ "size",
722
+ "totalElements",
723
+ "totalPages",
724
+ "nextHref",
725
+ "previousHref"
726
+ ],
727
+ "properties": {
728
+ "page": {
729
+ "type": "integer",
730
+ "minimum": 0
731
+ },
732
+ "size": {
733
+ "type": "integer",
734
+ "minimum": 1
735
+ },
736
+ "totalElements": {
737
+ "type": "integer",
738
+ "minimum": 0
739
+ },
740
+ "totalPages": {
741
+ "type": "integer",
742
+ "minimum": 0
743
+ },
744
+ "nextHref": {
745
+ "type": [
746
+ "string",
747
+ "null"
748
+ ]
749
+ },
750
+ "previousHref": {
751
+ "type": [
752
+ "string",
753
+ "null"
754
+ ]
755
+ }
756
+ }
757
+ },
758
+ {
759
+ "type": "null"
760
+ }
761
+ ]
762
+ }
763
+ }
764
+ },
765
+ "causes": {
766
+ "type": "object",
767
+ "additionalProperties": false,
768
+ "required": [
769
+ "label",
770
+ "href",
771
+ "items",
772
+ "pagination"
773
+ ],
774
+ "properties": {
775
+ "label": {
776
+ "type": "string",
777
+ "minLength": 1,
778
+ "maxLength": 60
779
+ },
780
+ "href": {
781
+ "type": "string"
782
+ },
783
+ "items": {
784
+ "type": "array",
785
+ "maxItems": 12,
786
+ "items": {
787
+ "type": "object",
788
+ "additionalProperties": false,
789
+ "required": [],
790
+ "properties": {
791
+ "id": {
792
+ "type": "string"
793
+ },
794
+ "title": {
795
+ "type": "string",
796
+ "maxLength": 200
797
+ },
798
+ "slug": {
799
+ "type": "string"
800
+ },
801
+ "description": {
802
+ "type": [
803
+ "string",
804
+ "null"
805
+ ],
806
+ "maxLength": 500
807
+ },
808
+ "imageUrl": {
809
+ "type": [
810
+ "string",
811
+ "null"
812
+ ]
813
+ },
814
+ "targetAmount": {
815
+ "type": [
816
+ "number",
817
+ "null"
818
+ ]
819
+ },
820
+ "raisedAmount": {
821
+ "type": [
822
+ "number",
823
+ "null"
824
+ ]
825
+ },
826
+ "progressPercentage": {
827
+ "type": [
828
+ "number",
829
+ "null"
830
+ ]
831
+ },
832
+ "href": {
833
+ "type": "string"
834
+ },
835
+ "paymentOptions": {
836
+ "type": [
837
+ "object",
838
+ "null"
839
+ ]
840
+ }
841
+ }
842
+ }
843
+ },
844
+ "pagination": {
845
+ "anyOf": [
846
+ {
847
+ "type": "object",
848
+ "additionalProperties": false,
849
+ "required": [
850
+ "page",
851
+ "size",
852
+ "totalElements",
853
+ "totalPages",
854
+ "nextHref",
855
+ "previousHref"
856
+ ],
857
+ "properties": {
858
+ "page": {
859
+ "type": "integer",
860
+ "minimum": 0
861
+ },
862
+ "size": {
863
+ "type": "integer",
864
+ "minimum": 1
865
+ },
866
+ "totalElements": {
867
+ "type": "integer",
868
+ "minimum": 0
869
+ },
870
+ "totalPages": {
871
+ "type": "integer",
872
+ "minimum": 0
873
+ },
874
+ "nextHref": {
875
+ "type": [
876
+ "string",
877
+ "null"
878
+ ]
879
+ },
880
+ "previousHref": {
881
+ "type": [
882
+ "string",
883
+ "null"
884
+ ]
885
+ }
886
+ }
887
+ },
888
+ {
889
+ "type": "null"
890
+ }
891
+ ]
892
+ }
893
+ }
894
+ },
895
+ "courses": {
896
+ "type": "object",
897
+ "additionalProperties": false,
898
+ "required": [
899
+ "label",
900
+ "href",
901
+ "items",
902
+ "pagination"
903
+ ],
904
+ "properties": {
905
+ "label": {
906
+ "type": "string",
907
+ "minLength": 1,
908
+ "maxLength": 60
909
+ },
910
+ "href": {
911
+ "type": "string"
912
+ },
913
+ "items": {
914
+ "type": "array",
915
+ "maxItems": 12,
916
+ "items": {
917
+ "type": "object",
918
+ "additionalProperties": false,
919
+ "required": [],
920
+ "properties": {
921
+ "id": {
922
+ "type": "string"
923
+ },
924
+ "title": {
925
+ "type": "string",
926
+ "maxLength": 200
927
+ },
928
+ "description": {
929
+ "type": [
930
+ "string",
931
+ "null"
932
+ ],
933
+ "maxLength": 500
934
+ },
935
+ "imageUrl": {
936
+ "type": [
937
+ "string",
938
+ "null"
939
+ ]
940
+ },
941
+ "venue": {
942
+ "type": [
943
+ "string",
944
+ "null"
945
+ ],
946
+ "maxLength": 200
947
+ },
948
+ "audience": {
949
+ "type": "string"
950
+ },
951
+ "priceFrom": {
952
+ "type": [
953
+ "number",
954
+ "null"
955
+ ]
956
+ },
957
+ "currency": {
958
+ "type": [
959
+ "string",
960
+ "null"
961
+ ]
962
+ },
963
+ "soldOut": {
964
+ "type": "boolean"
965
+ },
966
+ "href": {
967
+ "type": "string"
968
+ }
969
+ }
970
+ }
971
+ },
972
+ "pagination": {
973
+ "anyOf": [
974
+ {
975
+ "type": "object",
976
+ "additionalProperties": false,
977
+ "required": [
978
+ "page",
979
+ "size",
980
+ "totalElements",
981
+ "totalPages",
982
+ "nextHref",
983
+ "previousHref"
984
+ ],
985
+ "properties": {
986
+ "page": {
987
+ "type": "integer",
988
+ "minimum": 0
989
+ },
990
+ "size": {
991
+ "type": "integer",
992
+ "minimum": 1
993
+ },
994
+ "totalElements": {
995
+ "type": "integer",
996
+ "minimum": 0
997
+ },
998
+ "totalPages": {
999
+ "type": "integer",
1000
+ "minimum": 0
1001
+ },
1002
+ "nextHref": {
1003
+ "type": [
1004
+ "string",
1005
+ "null"
1006
+ ]
1007
+ },
1008
+ "previousHref": {
1009
+ "type": [
1010
+ "string",
1011
+ "null"
1012
+ ]
1013
+ }
1014
+ }
1015
+ },
1016
+ {
1017
+ "type": "null"
1018
+ }
1019
+ ]
1020
+ }
1021
+ }
1022
+ },
1023
+ "documents": {
1024
+ "type": "object",
1025
+ "additionalProperties": false,
1026
+ "required": [
1027
+ "label",
1028
+ "href",
1029
+ "items",
1030
+ "pagination"
1031
+ ],
1032
+ "properties": {
1033
+ "label": {
1034
+ "type": "string",
1035
+ "minLength": 1,
1036
+ "maxLength": 60
1037
+ },
1038
+ "href": {
1039
+ "type": [
1040
+ "string",
1041
+ "null"
1042
+ ]
1043
+ },
1044
+ "items": {
1045
+ "type": "array",
1046
+ "maxItems": 24,
1047
+ "items": {
1048
+ "type": "object",
1049
+ "additionalProperties": false,
1050
+ "required": [],
1051
+ "properties": {
1052
+ "id": {
1053
+ "type": "string"
1054
+ },
1055
+ "title": {
1056
+ "type": "string",
1057
+ "maxLength": 200
1058
+ },
1059
+ "folder": {
1060
+ "type": [
1061
+ "string",
1062
+ "null"
1063
+ ]
1064
+ },
1065
+ "url": {
1066
+ "type": "string"
1067
+ },
1068
+ "contentType": {
1069
+ "type": [
1070
+ "string",
1071
+ "null"
1072
+ ]
1073
+ },
1074
+ "bytes": {
1075
+ "type": [
1076
+ "number",
1077
+ "null"
1078
+ ]
1079
+ },
1080
+ "publishedAt": {
1081
+ "type": [
1082
+ "string",
1083
+ "null"
1084
+ ]
1085
+ }
1086
+ }
1087
+ }
1088
+ },
1089
+ "pagination": {
1090
+ "anyOf": [
1091
+ {
1092
+ "type": "object",
1093
+ "additionalProperties": false,
1094
+ "required": [
1095
+ "page",
1096
+ "size",
1097
+ "totalElements",
1098
+ "totalPages",
1099
+ "nextHref",
1100
+ "previousHref"
1101
+ ],
1102
+ "properties": {
1103
+ "page": {
1104
+ "type": "integer",
1105
+ "minimum": 0
1106
+ },
1107
+ "size": {
1108
+ "type": "integer",
1109
+ "minimum": 1
1110
+ },
1111
+ "totalElements": {
1112
+ "type": "integer",
1113
+ "minimum": 0
1114
+ },
1115
+ "totalPages": {
1116
+ "type": "integer",
1117
+ "minimum": 0
1118
+ },
1119
+ "nextHref": {
1120
+ "type": [
1121
+ "string",
1122
+ "null"
1123
+ ]
1124
+ },
1125
+ "previousHref": {
1126
+ "type": [
1127
+ "string",
1128
+ "null"
1129
+ ]
1130
+ }
1131
+ }
1132
+ },
1133
+ {
1134
+ "type": "null"
1135
+ }
1136
+ ]
1137
+ }
1138
+ }
1139
+ },
1140
+ "schedules": {
1141
+ "type": "array",
1142
+ "maxItems": 4,
1143
+ "items": {
1144
+ "type": "object",
1145
+ "additionalProperties": false,
1146
+ "required": [],
1147
+ "properties": {
1148
+ "type": {
1149
+ "type": "string"
1150
+ },
1151
+ "content": {
1152
+ "type": "object"
1153
+ }
1154
+ }
1155
+ }
1156
+ }
1157
+ }
1158
+ }
1159
+ },
1160
+ "definitions": {
1161
+ "navNode": {
1162
+ "type": "object",
1163
+ "additionalProperties": false,
1164
+ "required": [
1165
+ "kind",
1166
+ "label",
1167
+ "href"
1168
+ ],
1169
+ "properties": {
1170
+ "kind": {
1171
+ "enum": [
1172
+ "group",
1173
+ "link"
1174
+ ]
1175
+ },
1176
+ "label": {
1177
+ "type": "string"
1178
+ },
1179
+ "href": {
1180
+ "type": [
1181
+ "string",
1182
+ "null"
1183
+ ]
1184
+ },
1185
+ "external": {
1186
+ "type": "boolean"
1187
+ },
1188
+ "key": {
1189
+ "type": "string"
1190
+ },
1191
+ "group": {
1192
+ "type": "string"
1193
+ },
1194
+ "description": {
1195
+ "type": "string"
1196
+ },
1197
+ "imageUrl": {
1198
+ "type": [
1199
+ "string",
1200
+ "null"
1201
+ ]
1202
+ },
1203
+ "children": {
1204
+ "type": "array",
1205
+ "items": {
1206
+ "$ref": "#/definitions/navNode"
1207
+ }
1208
+ },
1209
+ "megaMenu": {
1210
+ "type": "object",
1211
+ "additionalProperties": false,
1212
+ "required": [
1213
+ "promo"
1214
+ ],
1215
+ "properties": {
1216
+ "promo": {
1217
+ "type": "object",
1218
+ "additionalProperties": false,
1219
+ "required": [
1220
+ "title"
1221
+ ],
1222
+ "properties": {
1223
+ "title": {
1224
+ "type": "string"
1225
+ },
1226
+ "text": {
1227
+ "type": "string"
1228
+ },
1229
+ "href": {
1230
+ "type": [
1231
+ "string",
1232
+ "null"
1233
+ ]
1234
+ },
1235
+ "label": {
1236
+ "type": "string"
1237
+ },
1238
+ "imageUrl": {
1239
+ "type": [
1240
+ "string",
1241
+ "null"
1242
+ ]
1243
+ }
1244
+ }
1245
+ }
1246
+ }
1247
+ }
1248
+ },
1249
+ "allOf": [
1250
+ {
1251
+ "if": {
1252
+ "properties": {
1253
+ "kind": {
1254
+ "const": "group"
1255
+ }
1256
+ }
1257
+ },
1258
+ "then": {
1259
+ "properties": {
1260
+ "href": {
1261
+ "type": "null"
1262
+ }
1263
+ }
1264
+ },
1265
+ "else": {
1266
+ "properties": {
1267
+ "href": {
1268
+ "type": "string",
1269
+ "minLength": 1
1270
+ }
1271
+ }
1272
+ }
1273
+ }
1274
+ ]
1275
+ },
1276
+ "footerNode": {
1277
+ "type": "object",
1278
+ "additionalProperties": false,
1279
+ "required": [
1280
+ "kind",
1281
+ "label",
1282
+ "href"
1283
+ ],
1284
+ "properties": {
1285
+ "kind": {
1286
+ "enum": [
1287
+ "group",
1288
+ "link"
1289
+ ]
1290
+ },
1291
+ "label": {
1292
+ "type": "string"
1293
+ },
1294
+ "href": {
1295
+ "type": [
1296
+ "string",
1297
+ "null"
1298
+ ]
1299
+ },
1300
+ "external": {
1301
+ "type": "boolean"
1302
+ },
1303
+ "key": {
1304
+ "type": "string"
1305
+ },
1306
+ "group": {
1307
+ "type": "string"
1308
+ },
1309
+ "description": {
1310
+ "type": "string"
1311
+ },
1312
+ "imageUrl": {
1313
+ "type": [
1314
+ "string",
1315
+ "null"
1316
+ ]
1317
+ },
1318
+ "children": {
1319
+ "type": "array",
1320
+ "items": {
1321
+ "$ref": "#/definitions/footerNode"
1322
+ }
1323
+ }
1324
+ },
1325
+ "allOf": [
1326
+ {
1327
+ "if": {
1328
+ "properties": {
1329
+ "kind": {
1330
+ "const": "group"
1331
+ }
1332
+ }
1333
+ },
1334
+ "then": {
1335
+ "properties": {
1336
+ "href": {
1337
+ "type": "null"
1338
+ }
1339
+ }
1340
+ },
1341
+ "else": {
1342
+ "properties": {
1343
+ "href": {
1344
+ "type": "string",
1345
+ "minLength": 1
1346
+ }
1347
+ }
1348
+ }
1349
+ }
1350
+ ]
1351
+ }
1352
+ }
1353
+ }