@gradial/aci 0.1.52-rc.2 → 0.1.52-rc.21

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 (123) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +4 -4
  3. package/dist/astro/preview.js +2 -17
  4. package/dist/audience-data-models.d.ts +289 -16
  5. package/dist/audience-data-models.js +99 -2
  6. package/dist/cli/compile-registry.d.mts +5 -1
  7. package/dist/cli/compile-registry.mjs +25 -10
  8. package/dist/cli/validate-content.d.mts +31 -1
  9. package/dist/cli/validate-content.mjs +50 -12
  10. package/dist/collect/aci.js +1 -1
  11. package/dist/collect/aci.js.sha256 +1 -1
  12. package/dist/collect/api.d.ts +3 -7
  13. package/dist/collect/api.js +2 -8
  14. package/dist/collect/batcher.d.ts +6 -5
  15. package/dist/collect/batcher.js +6 -5
  16. package/dist/collect/index.js +1 -1
  17. package/dist/content/provider.d.ts +1 -0
  18. package/dist/content/resolve-slots.d.ts +9 -2
  19. package/dist/content/resolve-slots.js +5 -3
  20. package/dist/content/types.d.ts +2 -0
  21. package/dist/edge/expression-capabilities.v1.d.ts +106 -0
  22. package/dist/edge/expression-capabilities.v1.js +165 -0
  23. package/dist/internal/domain/edge/compose.d.ts +24 -0
  24. package/dist/internal/domain/edge/compose.js +89 -0
  25. package/dist/internal/domain/edge/identity.js +1 -1
  26. package/dist/internal/domain/edge/index.d.ts +2 -0
  27. package/dist/internal/domain/edge/index.js +2 -0
  28. package/dist/internal/domain/edge/mimic_token.d.ts +13 -0
  29. package/dist/internal/domain/edge/mimic_token.js +58 -0
  30. package/dist/internal/domain/edge/personalization-core.d.ts +69 -5
  31. package/dist/internal/domain/edge/personalization-core.js +693 -58
  32. package/dist/internal/domain/edge/record/codec.d.ts +5 -2
  33. package/dist/internal/domain/edge/record/codec.js +85 -12
  34. package/dist/internal/domain/edge/resolve.js +38 -18
  35. package/dist/internal/domain/edge/testdata/flat_only_validator_v1.d.ts +10 -0
  36. package/dist/internal/domain/edge/testdata/flat_only_validator_v1.js +253 -0
  37. package/dist/internal/domain/edge/types.d.ts +52 -9
  38. package/dist/internal/domain/edge/types.js +3 -3
  39. package/dist/mimic/core.d.ts +2 -0
  40. package/dist/mimic/core.js +31 -0
  41. package/dist/next/error-seat-payload.js +1 -1
  42. package/dist/next/hosted-page-target.d.ts +7 -0
  43. package/dist/next/hosted-page-target.js +39 -0
  44. package/dist/next/index.d.ts +0 -1
  45. package/dist/next/index.js +0 -1
  46. package/dist/next/page.d.ts +29 -6
  47. package/dist/next/page.js +47 -25
  48. package/dist/next/server.js +28 -1
  49. package/dist/next/vercel-edge-projection-v1.d.ts +0 -9
  50. package/dist/next/vercel-edge-projection-v1.js +9 -539
  51. package/dist/preview/core.d.ts +1 -0
  52. package/dist/preview/core.js +27 -0
  53. package/dist/providers/s3.js +4 -3
  54. package/dist/react/VideoPlayer.d.ts +1 -1
  55. package/dist/react/index.d.ts +1 -1
  56. package/dist/types/block-ref.d.ts +2 -0
  57. package/dist/types/block-ref.js +1 -0
  58. package/package.json +16 -7
  59. package/src/cli/compile-registry.mjs +24 -10
  60. package/src/cli/validate-content.mjs +52 -13
  61. package/src/types/block-ref.test.ts +45 -0
  62. package/src/types/block-ref.ts +2 -0
  63. package/templates/astro/starter-content/src/fixtures/atomicBlocks.ts +7 -6
  64. package/templates/astro/starter-content/src/fixtures/composition.ts +3 -2
  65. package/templates/astro/starter-content/src/fixtures/sections.ts +2 -1
  66. package/templates/astro/template/package.json.tmpl +1 -1
  67. package/templates/astro/template/src/layouts/SiteLayout.astro +2 -2
  68. package/templates/common/.agents/skills/aci/SKILL.md +6 -0
  69. package/templates/common/.agents/skills/authoring/SKILL.md +11 -3
  70. package/templates/common/.agents/skills/authoring/references/block-slots.md +3 -0
  71. package/templates/common/.agents/skills/dam-delivery/SKILL.md +228 -0
  72. package/templates/common/.agents/skills/dam-delivery/references/parameter-contract.md +107 -0
  73. package/templates/common/.agents/skills/dam-delivery/references/permalink-grammar.md +131 -0
  74. package/templates/common/.content/pages/{home/_index.json → _index.json} +10 -0
  75. package/templates/common/.content/schemas/site.schema.json +1 -1
  76. package/templates/common/.nvmrc +1 -1
  77. package/templates/common/starter-content/.content/.rules-baseline.json +8 -0
  78. package/templates/common/starter-content/.content/config/site.json +1 -1
  79. package/templates/common/starter-content/.content/content-rules/no-public-resource-paths.json +6 -0
  80. package/templates/common/starter-content/.content/fragments/navbar/_index.json +23 -20
  81. package/templates/common/starter-content/.content/fragments/site-footer/_index.json +59 -56
  82. package/templates/common/starter-content/.content/pages/404/_index.json +1 -0
  83. package/templates/common/starter-content/.content/pages/about/_index.json +3 -0
  84. package/templates/common/starter-content/.content/pages/error/_index.json +1 -0
  85. package/templates/common/starter-content/.content/pages/home/_index.json +9 -0
  86. package/templates/common/starter-content/.content/patterns/components/button.json +55 -0
  87. package/templates/common/starter-content/.content/patterns/components/container.json +62 -0
  88. package/templates/common/starter-content/.content/patterns/components/feature_card.json +30 -0
  89. package/templates/common/starter-content/.content/patterns/components/feature_grid.json +57 -0
  90. package/templates/common/starter-content/.content/patterns/components/home_hero.json +142 -0
  91. package/templates/common/starter-content/.content/patterns/components/personalization_choice.json +42 -0
  92. package/templates/common/starter-content/.content/patterns/components/site-footer.json +203 -0
  93. package/templates/common/starter-content/.content/patterns/components/site-navigation.json +115 -0
  94. package/templates/common/starter-content/.content/patterns/components/stats_bar.json +45 -0
  95. package/templates/common/starter-content/.content/patterns/layouts/default.json +14 -0
  96. package/templates/common/starter-content/.content/schemas/site.schema.json +1 -1
  97. package/templates/nextjs/template/.aci.yaml +10 -0
  98. package/templates/nextjs/template/package.json.tmpl +4 -3
  99. package/templates/nextjs/template/src/app/_components/c15t-bridge.ts +30 -0
  100. package/templates/nextjs/template/src/app/_components/c15t-consent-ui.tsx +37 -0
  101. package/templates/nextjs/template/src/app/_components/consent-manager.css +63 -0
  102. package/templates/nextjs/template/src/app/_components/consent-manager.tsx +76 -0
  103. package/templates/nextjs/template/src/app/layout.tsx +2 -0
  104. package/dist/edge/personalization-core.d.ts +0 -11
  105. package/dist/edge/personalization-core.js +0 -269
  106. package/dist/next/collect-route.d.ts +0 -19
  107. package/dist/next/collect-route.js +0 -459
  108. package/dist/next/envelope-digest.d.ts +0 -21
  109. package/dist/next/envelope-digest.js +0 -58
  110. package/dist/next/middleware.d.ts +0 -40
  111. package/dist/next/middleware.js +0 -475
  112. package/dist/next/personalization-host.d.ts +0 -134
  113. package/dist/next/personalization-host.js +0 -270
  114. package/dist/next/root-layout.d.ts +0 -4
  115. package/dist/next/root-layout.js +0 -5
  116. package/dist/next/vercel-collect-sdk-route.d.ts +0 -27
  117. package/dist/next/vercel-collect-sdk-route.js +0 -181
  118. package/dist/next/vercel-personalization.d.ts +0 -4
  119. package/dist/next/vercel-personalization.js +0 -4
  120. package/dist/next/vercel-s3-personalization.d.ts +0 -79
  121. package/dist/next/vercel-s3-personalization.js +0 -570
  122. /package/templates/common/.content/overlays/audience/preference-blue/pages/{home/_index.json → _index.json} +0 -0
  123. /package/templates/common/.content/overlays/audience/preference-red/pages/{home/_index.json → _index.json} +0 -0
@@ -1,62 +1,65 @@
1
1
  {
2
2
  "$type": "fragment",
3
3
  "fragmentId": "site-footer",
4
- "component": "site-footer",
5
- "props": {
6
- "brandHref": "/",
7
- "brandLabel": "Meridian",
8
- "brandLogo": {
9
- "src": "/assets/meridian-logo.svg",
10
- "alt": "Meridian"
11
- },
12
- "columns": [
13
- {
14
- "id": "products",
15
- "title": "Products",
16
- "links": [
17
- { "id": "plans", "label": "Plans", "href": "/plans/" },
18
- { "id": "devices", "label": "Devices", "href": "/devices/" },
19
- { "id": "coverage", "label": "Coverage", "href": "/coverage/" }
20
- ]
4
+ "block": {
5
+ "$type": "component",
6
+ "component": "site-footer",
7
+ "props": {
8
+ "brandHref": "/",
9
+ "brandLabel": "Meridian",
10
+ "brandLogo": {
11
+ "src": "/assets/meridian-logo.svg",
12
+ "alt": "Meridian"
21
13
  },
22
- {
23
- "id": "solutions",
24
- "title": "Solutions",
25
- "links": [
26
- { "id": "business", "label": "Business", "href": "/business/" },
27
- { "id": "maritime", "label": "Maritime", "href": "/business/maritime/" },
28
- { "id": "aerospace", "label": "Aerospace", "href": "/business/aerospace/" }
29
- ]
30
- },
31
- {
32
- "id": "resources",
33
- "title": "Resources",
34
- "links": [
35
- { "id": "blog", "label": "Blog", "href": "/blog/" },
36
- { "id": "documentation", "label": "Documentation", "href": "/docs/" },
37
- { "id": "support", "label": "Support", "href": "/support/" }
38
- ]
39
- },
40
- {
41
- "id": "company",
42
- "title": "Company",
43
- "links": [
44
- { "id": "about", "label": "About us", "href": "/about/" },
45
- { "id": "careers", "label": "Careers", "href": "/careers/" },
46
- { "id": "contact", "label": "Contact", "href": "/contact/" }
47
- ]
48
- }
49
- ],
50
- "social": [
51
- { "id": "x", "label": "X", "href": "https://x.com/meridian", "icon": "X" },
52
- { "id": "linkedin", "label": "LinkedIn", "href": "https://www.linkedin.com/company/meridian", "icon": "in" },
53
- { "id": "youtube", "label": "YouTube", "href": "https://www.youtube.com/meridian", "icon": "YT" }
54
- ],
55
- "legalLinks": [
56
- { "id": "terms", "label": "Terms of Service", "href": "/terms/" },
57
- { "id": "privacy", "label": "Privacy Policy", "href": "/privacy/" },
58
- { "id": "security", "label": "Security", "href": "/security/" }
59
- ],
60
- "copyright": "Copyright (c) 2026 Meridian Satellite Networks, Inc. All rights reserved."
14
+ "columns": [
15
+ {
16
+ "id": "products",
17
+ "title": "Products",
18
+ "links": [
19
+ { "id": "plans", "label": "Plans", "href": "/plans/" },
20
+ { "id": "devices", "label": "Devices", "href": "/devices/" },
21
+ { "id": "coverage", "label": "Coverage", "href": "/coverage/" }
22
+ ]
23
+ },
24
+ {
25
+ "id": "solutions",
26
+ "title": "Solutions",
27
+ "links": [
28
+ { "id": "business", "label": "Business", "href": "/business/" },
29
+ { "id": "maritime", "label": "Maritime", "href": "/business/maritime/" },
30
+ { "id": "aerospace", "label": "Aerospace", "href": "/business/aerospace/" }
31
+ ]
32
+ },
33
+ {
34
+ "id": "resources",
35
+ "title": "Resources",
36
+ "links": [
37
+ { "id": "blog", "label": "Blog", "href": "/blog/" },
38
+ { "id": "documentation", "label": "Documentation", "href": "/docs/" },
39
+ { "id": "support", "label": "Support", "href": "/support/" }
40
+ ]
41
+ },
42
+ {
43
+ "id": "company",
44
+ "title": "Company",
45
+ "links": [
46
+ { "id": "about", "label": "About us", "href": "/about/" },
47
+ { "id": "careers", "label": "Careers", "href": "/careers/" },
48
+ { "id": "contact", "label": "Contact", "href": "/contact/" }
49
+ ]
50
+ }
51
+ ],
52
+ "social": [
53
+ { "id": "x", "label": "X", "href": "https://x.com/meridian", "icon": "X" },
54
+ { "id": "linkedin", "label": "LinkedIn", "href": "https://www.linkedin.com/company/meridian", "icon": "in" },
55
+ { "id": "youtube", "label": "YouTube", "href": "https://www.youtube.com/meridian", "icon": "YT" }
56
+ ],
57
+ "legalLinks": [
58
+ { "id": "terms", "label": "Terms of Service", "href": "/terms/" },
59
+ { "id": "privacy", "label": "Privacy Policy", "href": "/privacy/" },
60
+ { "id": "security", "label": "Security", "href": "/security/" }
61
+ ],
62
+ "copyright": "Copyright (c) 2026 Meridian Satellite Networks, Inc. All rights reserved."
63
+ }
61
64
  }
62
65
  }
@@ -11,6 +11,7 @@
11
11
  "regions": {
12
12
  "main": [
13
13
  {
14
+ "$type": "component",
14
15
  "id": "not-found-hero",
15
16
  "component": "home_hero",
16
17
  "props": {
@@ -11,6 +11,7 @@
11
11
  "regions": {
12
12
  "main": [
13
13
  {
14
+ "$type": "component",
14
15
  "id": "about-hero",
15
16
  "component": "home_hero",
16
17
  "props": {
@@ -27,12 +28,14 @@
27
28
  }
28
29
  },
29
30
  {
31
+ "$type": "component",
30
32
  "id": "about-actions",
31
33
  "component": "container",
32
34
  "props": {
33
35
  "className": "items-center justify-center text-center",
34
36
  "content": [
35
37
  {
38
+ "$type": "component",
36
39
  "id": "home-link",
37
40
  "component": "button",
38
41
  "props": {
@@ -11,6 +11,7 @@
11
11
  "regions": {
12
12
  "main": [
13
13
  {
14
+ "$type": "component",
14
15
  "id": "error-hero",
15
16
  "component": "home_hero",
16
17
  "props": {
@@ -11,6 +11,7 @@
11
11
  "regions": {
12
12
  "main": [
13
13
  {
14
+ "$type": "component",
14
15
  "id": "hero",
15
16
  "component": "home_hero",
16
17
  "props": {
@@ -27,6 +28,7 @@
27
28
  }
28
29
  },
29
30
  {
31
+ "$type": "component",
30
32
  "id": "why-meridian",
31
33
  "component": "feature_grid",
32
34
  "props": {
@@ -34,6 +36,7 @@
34
36
  "subtitle": "Engineered for the edges of the world.",
35
37
  "features": [
36
38
  {
39
+ "$type": "component",
37
40
  "id": "global-coverage",
38
41
  "component": "feature_card",
39
42
  "props": {
@@ -43,6 +46,7 @@
43
46
  }
44
47
  },
45
48
  {
49
+ "$type": "component",
46
50
  "id": "low-latency",
47
51
  "component": "feature_card",
48
52
  "props": {
@@ -52,6 +56,7 @@
52
56
  }
53
57
  },
54
58
  {
59
+ "$type": "component",
55
60
  "id": "easy-setup",
56
61
  "component": "feature_card",
57
62
  "props": {
@@ -64,6 +69,7 @@
64
69
  }
65
70
  },
66
71
  {
72
+ "$type": "component",
67
73
  "id": "stats",
68
74
  "component": "stats_bar",
69
75
  "props": {
@@ -92,6 +98,7 @@
92
98
  }
93
99
  },
94
100
  {
101
+ "$type": "component",
95
102
  "id": "cta",
96
103
  "component": "container",
97
104
  "props": {
@@ -99,6 +106,7 @@
99
106
  "className": "items-center justify-center text-center",
100
107
  "content": [
101
108
  {
109
+ "$type": "component",
102
110
  "id": "cta-primary",
103
111
  "component": "button",
104
112
  "props": {
@@ -110,6 +118,7 @@
110
118
  }
111
119
  },
112
120
  {
121
+ "$type": "component",
113
122
  "id": "cta-secondary",
114
123
  "component": "button",
115
124
  "props": {
@@ -0,0 +1,55 @@
1
+ {
2
+ "$type": "componentPattern",
3
+ "buildId": "codebuild_01a017ed-c52f-703a-a6b4-a0943c057d31",
4
+ "codeDigest": "sha256:119dd8414ca342ca67f4dd4703dcb504630220bbdca9130b1501ee7b25693134",
5
+ "name": "button",
6
+ "schema": {
7
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
8
+ "title": "button",
9
+ "type": "object",
10
+ "properties": {
11
+ "label": {
12
+ "type": "string",
13
+ "minLength": 1
14
+ },
15
+ "href": {
16
+ "type": "string",
17
+ "minLength": 1
18
+ },
19
+ "variant": {
20
+ "type": "string",
21
+ "enum": [
22
+ "primary",
23
+ "secondary",
24
+ "tertiary",
25
+ "outline",
26
+ "ghost"
27
+ ]
28
+ },
29
+ "newWindow": {
30
+ "type": "boolean"
31
+ },
32
+ "icon": {
33
+ "type": "string"
34
+ },
35
+ "iconPosition": {
36
+ "type": "string",
37
+ "enum": [
38
+ "before",
39
+ "after"
40
+ ]
41
+ },
42
+ "className": {
43
+ "type": "string"
44
+ }
45
+ },
46
+ "required": [
47
+ "label",
48
+ "href"
49
+ ],
50
+ "additionalProperties": false
51
+ },
52
+ "imageSlots": {},
53
+ "notes": "",
54
+ "skills": []
55
+ }
@@ -0,0 +1,62 @@
1
+ {
2
+ "$type": "componentPattern",
3
+ "buildId": "codebuild_01a017ed-c52f-703a-a6b4-a0943c057d31",
4
+ "codeDigest": "sha256:119dd8414ca342ca67f4dd4703dcb504630220bbdca9130b1501ee7b25693134",
5
+ "name": "container",
6
+ "schema": {
7
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
8
+ "title": "container",
9
+ "type": "object",
10
+ "properties": {
11
+ "theme": {
12
+ "type": "string",
13
+ "enum": [
14
+ "auto",
15
+ "light",
16
+ "dark"
17
+ ]
18
+ },
19
+ "className": {
20
+ "type": "string"
21
+ },
22
+ "content": {
23
+ "type": "array",
24
+ "items": {
25
+ "type": "object",
26
+ "properties": {
27
+ "$type": {
28
+ "type": "string",
29
+ "const": "component"
30
+ },
31
+ "id": {
32
+ "type": "string",
33
+ "minLength": 1
34
+ },
35
+ "component": {
36
+ "type": "string",
37
+ "minLength": 1
38
+ },
39
+ "props": {
40
+ "type": "object",
41
+ "propertyNames": {
42
+ "type": "string"
43
+ },
44
+ "additionalProperties": {}
45
+ }
46
+ },
47
+ "required": [
48
+ "$type",
49
+ "id",
50
+ "component",
51
+ "props"
52
+ ],
53
+ "additionalProperties": false
54
+ }
55
+ }
56
+ },
57
+ "additionalProperties": false
58
+ },
59
+ "imageSlots": {},
60
+ "notes": "",
61
+ "skills": []
62
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "$type": "componentPattern",
3
+ "buildId": "codebuild_01a017ed-c52f-703a-a6b4-a0943c057d31",
4
+ "codeDigest": "sha256:119dd8414ca342ca67f4dd4703dcb504630220bbdca9130b1501ee7b25693134",
5
+ "name": "feature_card",
6
+ "schema": {
7
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
8
+ "title": "feature_card",
9
+ "type": "object",
10
+ "properties": {
11
+ "icon": {
12
+ "type": "string"
13
+ },
14
+ "title": {
15
+ "type": "string",
16
+ "minLength": 1
17
+ },
18
+ "description": {
19
+ "type": "string"
20
+ }
21
+ },
22
+ "required": [
23
+ "title"
24
+ ],
25
+ "additionalProperties": false
26
+ },
27
+ "imageSlots": {},
28
+ "notes": "",
29
+ "skills": []
30
+ }
@@ -0,0 +1,57 @@
1
+ {
2
+ "$type": "componentPattern",
3
+ "buildId": "codebuild_01a017ed-c52f-703a-a6b4-a0943c057d31",
4
+ "codeDigest": "sha256:119dd8414ca342ca67f4dd4703dcb504630220bbdca9130b1501ee7b25693134",
5
+ "name": "feature_grid",
6
+ "schema": {
7
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
8
+ "title": "feature_grid",
9
+ "type": "object",
10
+ "properties": {
11
+ "title": {
12
+ "type": "string"
13
+ },
14
+ "subtitle": {
15
+ "type": "string"
16
+ },
17
+ "features": {
18
+ "type": "array",
19
+ "items": {
20
+ "type": "object",
21
+ "properties": {
22
+ "$type": {
23
+ "type": "string",
24
+ "const": "component"
25
+ },
26
+ "id": {
27
+ "type": "string",
28
+ "minLength": 1
29
+ },
30
+ "component": {
31
+ "type": "string",
32
+ "minLength": 1
33
+ },
34
+ "props": {
35
+ "type": "object",
36
+ "propertyNames": {
37
+ "type": "string"
38
+ },
39
+ "additionalProperties": {}
40
+ }
41
+ },
42
+ "required": [
43
+ "$type",
44
+ "id",
45
+ "component",
46
+ "props"
47
+ ],
48
+ "additionalProperties": false
49
+ }
50
+ }
51
+ },
52
+ "additionalProperties": false
53
+ },
54
+ "imageSlots": {},
55
+ "notes": "",
56
+ "skills": []
57
+ }
@@ -0,0 +1,142 @@
1
+ {
2
+ "$type": "componentPattern",
3
+ "buildId": "codebuild_01a017ed-c52f-703a-a6b4-a0943c057d31",
4
+ "codeDigest": "sha256:119dd8414ca342ca67f4dd4703dcb504630220bbdca9130b1501ee7b25693134",
5
+ "name": "home_hero",
6
+ "schema": {
7
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
8
+ "title": "home_hero",
9
+ "type": "object",
10
+ "properties": {
11
+ "eyebrow": {
12
+ "type": "string"
13
+ },
14
+ "headline": {
15
+ "type": "string",
16
+ "minLength": 1
17
+ },
18
+ "description": {
19
+ "type": "string"
20
+ },
21
+ "ctaLabel": {
22
+ "type": "string",
23
+ "minLength": 1
24
+ },
25
+ "ctaHref": {
26
+ "type": "string",
27
+ "minLength": 1
28
+ },
29
+ "image": {
30
+ "type": "object",
31
+ "properties": {
32
+ "$type": {
33
+ "type": "string",
34
+ "const": "gradial.image"
35
+ },
36
+ "assetId": {
37
+ "type": "string",
38
+ "minLength": 1
39
+ },
40
+ "versionId": {
41
+ "type": "string",
42
+ "minLength": 1
43
+ },
44
+ "alt": {
45
+ "type": "string"
46
+ },
47
+ "sources": {
48
+ "minItems": 1,
49
+ "type": "array",
50
+ "items": {
51
+ "type": "object",
52
+ "properties": {
53
+ "src": {
54
+ "type": "string",
55
+ "minLength": 1
56
+ },
57
+ "srcset": {
58
+ "type": "string",
59
+ "minLength": 1
60
+ },
61
+ "width": {
62
+ "type": "integer",
63
+ "minimum": 0,
64
+ "maximum": 9007199254740991
65
+ },
66
+ "height": {
67
+ "type": "integer",
68
+ "minimum": 0,
69
+ "maximum": 9007199254740991
70
+ },
71
+ "sizes": {
72
+ "type": "string",
73
+ "minLength": 1
74
+ },
75
+ "media": {
76
+ "type": "string",
77
+ "minLength": 1
78
+ },
79
+ "type": {
80
+ "type": "string",
81
+ "minLength": 1
82
+ }
83
+ },
84
+ "required": [
85
+ "src",
86
+ "type"
87
+ ],
88
+ "additionalProperties": false
89
+ }
90
+ }
91
+ },
92
+ "required": [
93
+ "$type",
94
+ "assetId",
95
+ "versionId",
96
+ "alt",
97
+ "sources"
98
+ ],
99
+ "additionalProperties": false
100
+ }
101
+ },
102
+ "required": [
103
+ "headline",
104
+ "ctaLabel",
105
+ "ctaHref",
106
+ "image"
107
+ ],
108
+ "additionalProperties": false
109
+ },
110
+ "imageSlots": {
111
+ "image": {
112
+ "outputs": [
113
+ {
114
+ "aspectRatio": "16:9",
115
+ "widths": [
116
+ 768,
117
+ 1280,
118
+ 1920
119
+ ],
120
+ "media": "(min-width: 768px)"
121
+ },
122
+ {
123
+ "aspectRatio": "3:4",
124
+ "widths": [
125
+ 480,
126
+ 720,
127
+ 960
128
+ ],
129
+ "media": "(max-width: 767px)"
130
+ }
131
+ ],
132
+ "formats": [
133
+ "image/avif",
134
+ "image/webp",
135
+ "image/jpeg"
136
+ ],
137
+ "sizes": "100vw"
138
+ }
139
+ },
140
+ "notes": "",
141
+ "skills": []
142
+ }
@@ -0,0 +1,42 @@
1
+ {
2
+ "$type": "componentPattern",
3
+ "buildId": "codebuild_01a017ed-c52f-703a-a6b4-a0943c057d31",
4
+ "codeDigest": "sha256:119dd8414ca342ca67f4dd4703dcb504630220bbdca9130b1501ee7b25693134",
5
+ "name": "personalization_choice",
6
+ "schema": {
7
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
8
+ "title": "personalization_choice",
9
+ "type": "object",
10
+ "properties": {
11
+ "title": {
12
+ "type": "string",
13
+ "minLength": 1
14
+ },
15
+ "description": {
16
+ "type": "string"
17
+ },
18
+ "redLabel": {
19
+ "type": "string",
20
+ "minLength": 1
21
+ },
22
+ "blueLabel": {
23
+ "type": "string",
24
+ "minLength": 1
25
+ },
26
+ "refreshLabel": {
27
+ "type": "string",
28
+ "minLength": 1
29
+ }
30
+ },
31
+ "required": [
32
+ "title",
33
+ "redLabel",
34
+ "blueLabel",
35
+ "refreshLabel"
36
+ ],
37
+ "additionalProperties": false
38
+ },
39
+ "imageSlots": {},
40
+ "notes": "",
41
+ "skills": []
42
+ }