@rathnasgala2/schemas 3.8.0 → 3.10.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/THIRD_PARTY_LICENSES.json +1 -1
- package/diagnostics/diagnostic-map.json +277 -9
- package/docs/catalogs/schema-inventory.json +6 -6
- package/examples/valid/appearance/rules.json +105 -1
- package/examples/valid/build-input/rules.json +105 -1
- package/examples/valid/problem/rules.json +35 -0
- package/examples/valid/theme-contract/rules.json +276 -2
- package/fixtures/boundary/appearance/rules.json +105 -12
- package/fixtures/boundary/build-input/rules.json +105 -12
- package/fixtures/boundary/problem/rules.json +83 -0
- package/fixtures/boundary/theme-contract/rules.json +386 -2
- package/fixtures/invalid/appearance/REQUEST_FIELD_UNKNOWN/cases.json +33 -0
- package/fixtures/invalid/appearance/SCHEMA_OBJECT_TOO_LARGE/cases.json +0 -13
- package/fixtures/invalid/appearance/SCHEMA_PATTERN_INVALID/cases.json +68 -0
- package/fixtures/invalid/appearance/SCHEMA_REQUIRED_FIELD_MISSING/cases.json +66 -0
- package/fixtures/invalid/appearance/SCHEMA_TYPE_INVALID/cases.json +99 -0
- package/fixtures/invalid/build-input/REQUEST_FIELD_UNKNOWN/cases.json +33 -0
- package/fixtures/invalid/build-input/SCHEMA_PATTERN_INVALID/cases.json +66 -0
- package/fixtures/invalid/build-input/SCHEMA_REQUIRED_FIELD_MISSING/cases.json +66 -0
- package/fixtures/invalid/build-input/SCHEMA_TYPE_INVALID/cases.json +99 -0
- package/fixtures/invalid/problem/SCHEMA_ARRAY_TOO_LONG/cases.json +13 -0
- package/fixtures/invalid/problem/SCHEMA_ENUM_INVALID/cases.json +11 -0
- package/fixtures/invalid/problem/SCHEMA_STRING_TOO_LONG/cases.json +11 -0
- package/fixtures/invalid/problem/SCHEMA_STRING_TOO_SHORT/cases.json +11 -0
- package/fixtures/invalid/problem/SCHEMA_TYPE_INVALID/cases.json +29 -0
- package/fixtures/invalid/theme-contract/REQUEST_FIELD_UNKNOWN/cases.json +33 -0
- package/fixtures/invalid/theme-contract/SCHEMA_ARRAY_TOO_LONG/cases.json +165 -0
- package/fixtures/invalid/theme-contract/SCHEMA_CONSTANT_INVALID/cases.json +11 -11
- package/fixtures/invalid/theme-contract/SCHEMA_ENUM_INVALID/cases.json +88 -0
- package/fixtures/invalid/theme-contract/SCHEMA_REQUIRED_FIELD_MISSING/cases.json +93 -0
- package/fixtures/invalid/theme-contract/SCHEMA_TYPE_INVALID/cases.json +51 -0
- package/fixtures/manifest.json +2137 -37
- package/fixtures/unknown-field/appearance/rules.json +54 -1
- package/fixtures/unknown-field/build-input/rules.json +54 -1
- package/fixtures/unknown-field/problem/rules.json +8 -0
- package/fixtures/unknown-field/theme-contract/rules.json +70 -1
- package/generated/browser/validator-core.mjs +3 -3
- package/generated/typescript/contracts/appearance.d.ts +14 -1
- package/generated/typescript/contracts/build-input.d.ts +14 -1
- package/generated/typescript/contracts/problem.d.ts +9 -0
- package/generated/typescript/contracts/theme-contract.d.ts +51 -0
- package/openapi/http-catalog.json +2 -2
- package/openapi/openapi.yaml +97 -3
- package/package.json +10 -1
- package/parity/palette/golden-vectors.json +883 -0
- package/parity/palette/stress-corpus.json +521 -0
- package/parity/palette/theme-default.fixture.json +698 -0
- package/sbom.cdx.json +23 -23
- package/schemas/appearance.schema.json +30 -3
- package/schemas/build-input.schema.json +30 -3
- package/schemas/problem.schema.json +21 -1
- package/schemas/theme-contract.schema.json +185 -1
- package/src/palette.js +919 -0
- package/types/palette.d.ts +305 -0
- package/fixtures/invalid/build-input/SCHEMA_OBJECT_TOO_LARGE/cases.json +0 -15
package/sbom.cdx.json
CHANGED
|
@@ -97,8 +97,8 @@
|
|
|
97
97
|
"type": "library",
|
|
98
98
|
"name": "schemas",
|
|
99
99
|
"group": "@rathnasgala2",
|
|
100
|
-
"version": "3.
|
|
101
|
-
"bom-ref": "@rathnasgala2/schemas@3.
|
|
100
|
+
"version": "3.10.0",
|
|
101
|
+
"bom-ref": "@rathnasgala2/schemas@3.10.0",
|
|
102
102
|
"description": "Executable JSON Schema and OpenAPI contracts for Galascribe",
|
|
103
103
|
"licenses": [
|
|
104
104
|
{
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
110
|
],
|
|
111
|
-
"purl": "pkg:npm/%40rathnasgala2/schemas@3.
|
|
111
|
+
"purl": "pkg:npm/%40rathnasgala2/schemas@3.10.0?vcs_url=git%2Bhttps%3A%2F%2Fgithub.com%2Frathnasgala2%2Fschema.git",
|
|
112
112
|
"externalReferences": [
|
|
113
113
|
{
|
|
114
114
|
"url": "https://github.com/rathnasgala2/schema/issues",
|
|
@@ -153,7 +153,7 @@
|
|
|
153
153
|
"type": "library",
|
|
154
154
|
"name": "ajv-formats",
|
|
155
155
|
"version": "3.0.1",
|
|
156
|
-
"bom-ref": "@rathnasgala2/schemas@3.
|
|
156
|
+
"bom-ref": "@rathnasgala2/schemas@3.10.0|ajv-formats@3.0.1",
|
|
157
157
|
"licenses": [
|
|
158
158
|
{
|
|
159
159
|
"license": {
|
|
@@ -187,7 +187,7 @@
|
|
|
187
187
|
"type": "library",
|
|
188
188
|
"name": "ajv",
|
|
189
189
|
"version": "8.20.0",
|
|
190
|
-
"bom-ref": "@rathnasgala2/schemas@3.
|
|
190
|
+
"bom-ref": "@rathnasgala2/schemas@3.10.0|ajv@8.20.0",
|
|
191
191
|
"licenses": [
|
|
192
192
|
{
|
|
193
193
|
"license": {
|
|
@@ -221,7 +221,7 @@
|
|
|
221
221
|
"type": "library",
|
|
222
222
|
"name": "fast-deep-equal",
|
|
223
223
|
"version": "3.1.3",
|
|
224
|
-
"bom-ref": "@rathnasgala2/schemas@3.
|
|
224
|
+
"bom-ref": "@rathnasgala2/schemas@3.10.0|fast-deep-equal@3.1.3",
|
|
225
225
|
"licenses": [
|
|
226
226
|
{
|
|
227
227
|
"license": {
|
|
@@ -255,7 +255,7 @@
|
|
|
255
255
|
"type": "library",
|
|
256
256
|
"name": "fast-uri",
|
|
257
257
|
"version": "3.1.8",
|
|
258
|
-
"bom-ref": "@rathnasgala2/schemas@3.
|
|
258
|
+
"bom-ref": "@rathnasgala2/schemas@3.10.0|fast-uri@3.1.8",
|
|
259
259
|
"licenses": [
|
|
260
260
|
{
|
|
261
261
|
"license": {
|
|
@@ -289,7 +289,7 @@
|
|
|
289
289
|
"type": "library",
|
|
290
290
|
"name": "json-schema-traverse",
|
|
291
291
|
"version": "1.0.0",
|
|
292
|
-
"bom-ref": "@rathnasgala2/schemas@3.
|
|
292
|
+
"bom-ref": "@rathnasgala2/schemas@3.10.0|json-schema-traverse@1.0.0",
|
|
293
293
|
"licenses": [
|
|
294
294
|
{
|
|
295
295
|
"license": {
|
|
@@ -323,7 +323,7 @@
|
|
|
323
323
|
"type": "library",
|
|
324
324
|
"name": "require-from-string",
|
|
325
325
|
"version": "2.0.2",
|
|
326
|
-
"bom-ref": "@rathnasgala2/schemas@3.
|
|
326
|
+
"bom-ref": "@rathnasgala2/schemas@3.10.0|require-from-string@2.0.2",
|
|
327
327
|
"licenses": [
|
|
328
328
|
{
|
|
329
329
|
"license": {
|
|
@@ -1064,10 +1064,10 @@
|
|
|
1064
1064
|
],
|
|
1065
1065
|
"dependencies": [
|
|
1066
1066
|
{
|
|
1067
|
-
"ref": "@rathnasgala2/schemas@3.
|
|
1067
|
+
"ref": "@rathnasgala2/schemas@3.10.0",
|
|
1068
1068
|
"dependsOn": [
|
|
1069
|
-
"@rathnasgala2/schemas@3.
|
|
1070
|
-
"@rathnasgala2/schemas@3.
|
|
1069
|
+
"@rathnasgala2/schemas@3.10.0|ajv-formats@3.0.1",
|
|
1070
|
+
"@rathnasgala2/schemas@3.10.0|ajv@8.20.0",
|
|
1071
1071
|
"pkg:npm/semver@7.8.5",
|
|
1072
1072
|
"urn:gala:source-data:iana-ipv4-special-registry",
|
|
1073
1073
|
"urn:gala:source-data:iana-ipv6-special-registry",
|
|
@@ -1089,31 +1089,31 @@
|
|
|
1089
1089
|
]
|
|
1090
1090
|
},
|
|
1091
1091
|
{
|
|
1092
|
-
"ref": "@rathnasgala2/schemas@3.
|
|
1092
|
+
"ref": "@rathnasgala2/schemas@3.10.0|ajv-formats@3.0.1",
|
|
1093
1093
|
"dependsOn": [
|
|
1094
|
-
"@rathnasgala2/schemas@3.
|
|
1094
|
+
"@rathnasgala2/schemas@3.10.0|ajv@8.20.0"
|
|
1095
1095
|
]
|
|
1096
1096
|
},
|
|
1097
1097
|
{
|
|
1098
|
-
"ref": "@rathnasgala2/schemas@3.
|
|
1098
|
+
"ref": "@rathnasgala2/schemas@3.10.0|ajv@8.20.0",
|
|
1099
1099
|
"dependsOn": [
|
|
1100
|
-
"@rathnasgala2/schemas@3.
|
|
1101
|
-
"@rathnasgala2/schemas@3.
|
|
1102
|
-
"@rathnasgala2/schemas@3.
|
|
1103
|
-
"@rathnasgala2/schemas@3.
|
|
1100
|
+
"@rathnasgala2/schemas@3.10.0|fast-deep-equal@3.1.3",
|
|
1101
|
+
"@rathnasgala2/schemas@3.10.0|fast-uri@3.1.8",
|
|
1102
|
+
"@rathnasgala2/schemas@3.10.0|json-schema-traverse@1.0.0",
|
|
1103
|
+
"@rathnasgala2/schemas@3.10.0|require-from-string@2.0.2"
|
|
1104
1104
|
]
|
|
1105
1105
|
},
|
|
1106
1106
|
{
|
|
1107
|
-
"ref": "@rathnasgala2/schemas@3.
|
|
1107
|
+
"ref": "@rathnasgala2/schemas@3.10.0|fast-deep-equal@3.1.3"
|
|
1108
1108
|
},
|
|
1109
1109
|
{
|
|
1110
|
-
"ref": "@rathnasgala2/schemas@3.
|
|
1110
|
+
"ref": "@rathnasgala2/schemas@3.10.0|fast-uri@3.1.8"
|
|
1111
1111
|
},
|
|
1112
1112
|
{
|
|
1113
|
-
"ref": "@rathnasgala2/schemas@3.
|
|
1113
|
+
"ref": "@rathnasgala2/schemas@3.10.0|json-schema-traverse@1.0.0"
|
|
1114
1114
|
},
|
|
1115
1115
|
{
|
|
1116
|
-
"ref": "@rathnasgala2/schemas@3.
|
|
1116
|
+
"ref": "@rathnasgala2/schemas@3.10.0|require-from-string@2.0.2"
|
|
1117
1117
|
},
|
|
1118
1118
|
{
|
|
1119
1119
|
"ref": "pkg:npm/semver@7.8.5"
|
|
@@ -211,10 +211,37 @@
|
|
|
211
211
|
"semanticTokens": {
|
|
212
212
|
"type": "object",
|
|
213
213
|
"required": [],
|
|
214
|
-
"properties": {
|
|
214
|
+
"properties": {
|
|
215
|
+
"accent": {
|
|
216
|
+
"type": "object",
|
|
217
|
+
"required": ["light", "dark"],
|
|
218
|
+
"properties": {
|
|
219
|
+
"light": { "type": "string", "pattern": "^#[0-9a-f]{6}$" },
|
|
220
|
+
"dark": { "type": "string", "pattern": "^#[0-9a-f]{6}$" }
|
|
221
|
+
},
|
|
222
|
+
"additionalProperties": false
|
|
223
|
+
},
|
|
224
|
+
"canvas": {
|
|
225
|
+
"type": "object",
|
|
226
|
+
"required": ["light", "dark"],
|
|
227
|
+
"properties": {
|
|
228
|
+
"light": { "type": "string", "pattern": "^#[0-9a-f]{6}$" },
|
|
229
|
+
"dark": { "type": "string", "pattern": "^#[0-9a-f]{6}$" }
|
|
230
|
+
},
|
|
231
|
+
"additionalProperties": false
|
|
232
|
+
},
|
|
233
|
+
"text": {
|
|
234
|
+
"type": "object",
|
|
235
|
+
"required": ["light", "dark"],
|
|
236
|
+
"properties": {
|
|
237
|
+
"light": { "type": "string", "pattern": "^#[0-9a-f]{6}$" },
|
|
238
|
+
"dark": { "type": "string", "pattern": "^#[0-9a-f]{6}$" }
|
|
239
|
+
},
|
|
240
|
+
"additionalProperties": false
|
|
241
|
+
}
|
|
242
|
+
},
|
|
215
243
|
"additionalProperties": false,
|
|
216
|
-
"
|
|
217
|
-
"$comment": "Fail closed: only the documented empty object is accepted until the semantic-token catalog is accepted."
|
|
244
|
+
"description": "SCHEMA-3.10.0: the author's publication palette. Each role (accent, canvas, text) is optional; when present it carries both light and dark as opaque lowercase #rrggbb. An absent role uses the theme's default; `{}` selects the theme's default palette entirely."
|
|
218
245
|
},
|
|
219
246
|
"attribution": {
|
|
220
247
|
"type": "object",
|
|
@@ -721,10 +721,37 @@
|
|
|
721
721
|
"semanticTokens": {
|
|
722
722
|
"type": "object",
|
|
723
723
|
"required": [],
|
|
724
|
-
"properties": {
|
|
724
|
+
"properties": {
|
|
725
|
+
"accent": {
|
|
726
|
+
"type": "object",
|
|
727
|
+
"required": ["light", "dark"],
|
|
728
|
+
"properties": {
|
|
729
|
+
"light": { "type": "string", "pattern": "^#[0-9a-f]{6}$" },
|
|
730
|
+
"dark": { "type": "string", "pattern": "^#[0-9a-f]{6}$" }
|
|
731
|
+
},
|
|
732
|
+
"additionalProperties": false
|
|
733
|
+
},
|
|
734
|
+
"canvas": {
|
|
735
|
+
"type": "object",
|
|
736
|
+
"required": ["light", "dark"],
|
|
737
|
+
"properties": {
|
|
738
|
+
"light": { "type": "string", "pattern": "^#[0-9a-f]{6}$" },
|
|
739
|
+
"dark": { "type": "string", "pattern": "^#[0-9a-f]{6}$" }
|
|
740
|
+
},
|
|
741
|
+
"additionalProperties": false
|
|
742
|
+
},
|
|
743
|
+
"text": {
|
|
744
|
+
"type": "object",
|
|
745
|
+
"required": ["light", "dark"],
|
|
746
|
+
"properties": {
|
|
747
|
+
"light": { "type": "string", "pattern": "^#[0-9a-f]{6}$" },
|
|
748
|
+
"dark": { "type": "string", "pattern": "^#[0-9a-f]{6}$" }
|
|
749
|
+
},
|
|
750
|
+
"additionalProperties": false
|
|
751
|
+
}
|
|
752
|
+
},
|
|
725
753
|
"additionalProperties": false,
|
|
726
|
-
"
|
|
727
|
-
"$comment": "Fail closed: only the documented empty object is accepted until the semantic-token catalog is accepted."
|
|
754
|
+
"description": "SCHEMA-3.10.0: the author's publication palette. Each role (accent, canvas, text) is optional; when present it carries both light and dark as opaque lowercase #rrggbb. An absent role uses the theme's default; `{}` selects the theme's default palette entirely."
|
|
728
755
|
},
|
|
729
756
|
"appearanceNormalized": {
|
|
730
757
|
"type": "object",
|
|
@@ -186,7 +186,27 @@
|
|
|
186
186
|
"required": ["pointer", "code"],
|
|
187
187
|
"properties": {
|
|
188
188
|
"pointer": { "type": "string", "minLength": 1, "maxLength": 1024 },
|
|
189
|
-
"code": { "$ref": "#/$defs/problemCode" }
|
|
189
|
+
"code": { "$ref": "#/$defs/problemCode" },
|
|
190
|
+
"reason": {
|
|
191
|
+
"type": "string",
|
|
192
|
+
"enum": [
|
|
193
|
+
"AUTHOR_EDITED",
|
|
194
|
+
"BRANCH_PROTECTION",
|
|
195
|
+
"REPOSITORY_ARCHIVED",
|
|
196
|
+
"INSTALLATION_SUSPENDED",
|
|
197
|
+
"WORKFLOWS_PERMISSION_MISSING",
|
|
198
|
+
"AUTHORIZATION_LOST",
|
|
199
|
+
"FORBIDDEN"
|
|
200
|
+
],
|
|
201
|
+
"description": "SCHEMA-3.9.0, optional: why a REPOSITORY_NEEDS_UPDATE error needs the author. AUTHOR_EDITED: a managed file was changed in a way only the author may resolve. BRANCH_PROTECTION: GitHub refused Galascribe's own commit. REPOSITORY_ARCHIVED: the repository is archived. INSTALLATION_SUSPENDED: the GitHub App installation is suspended. WORKFLOWS_PERMISSION_MISSING: the installation has not accepted the workflows permission. AUTHORIZATION_LOST: Galascribe lost its GitHub authorization. FORBIDDEN: GitHub refused for another permission reason. Absent from older servers and for other codes; a client shows a generic sentence for a value it does not know."
|
|
202
|
+
},
|
|
203
|
+
"paths": {
|
|
204
|
+
"type": "array",
|
|
205
|
+
"items": { "type": "string", "minLength": 1, "maxLength": 512 },
|
|
206
|
+
"minItems": 0,
|
|
207
|
+
"maxItems": 50,
|
|
208
|
+
"description": "SCHEMA-3.9.0, optional: the managed repository file paths the error is about, as the App lists them. Absent from older servers."
|
|
209
|
+
}
|
|
190
210
|
},
|
|
191
211
|
"additionalProperties": false
|
|
192
212
|
}
|
|
@@ -1370,6 +1370,21 @@
|
|
|
1370
1370
|
"minItems": 116,
|
|
1371
1371
|
"maxItems": 116
|
|
1372
1372
|
},
|
|
1373
|
+
"palette": {
|
|
1374
|
+
"type": "object",
|
|
1375
|
+
"required": ["profile", "follow"],
|
|
1376
|
+
"properties": {
|
|
1377
|
+
"profile": { "const": "gala-palette-follow-v1" },
|
|
1378
|
+
"follow": {
|
|
1379
|
+
"type": "array",
|
|
1380
|
+
"items": { "$ref": "#/$defs/paletteFollow" },
|
|
1381
|
+
"minItems": 0,
|
|
1382
|
+
"maxItems": 40
|
|
1383
|
+
}
|
|
1384
|
+
},
|
|
1385
|
+
"additionalProperties": false,
|
|
1386
|
+
"description": "SCHEMA-3.10.0, optional: which palette seed each colour of each palette-drivable token follows. Optional here so contract-3 archive validation is unchanged; the template requires it."
|
|
1387
|
+
},
|
|
1373
1388
|
"modes": { "const": ["dark", "light", "system"] },
|
|
1374
1389
|
"assets": {
|
|
1375
1390
|
"type": "array",
|
|
@@ -2011,6 +2026,175 @@
|
|
|
2011
2026
|
],
|
|
2012
2027
|
"$comment": "Every value is checked against its type's allow-list grammar; keyword tokens carry a per-key enum on their tokens position. Only color, paint, border, shadow tokens may differ between light and dark; every other type must be byte-equal in both modes (enforced by the semantic validator). Font-family components are each limited to 64 ASCII bytes."
|
|
2013
2028
|
},
|
|
2029
|
+
"paletteFollow": {
|
|
2030
|
+
"type": "object",
|
|
2031
|
+
"required": ["key", "light", "dark"],
|
|
2032
|
+
"properties": {
|
|
2033
|
+
"key": {
|
|
2034
|
+
"enum": [
|
|
2035
|
+
"border-button",
|
|
2036
|
+
"border-card",
|
|
2037
|
+
"border-chip",
|
|
2038
|
+
"border-media-divider",
|
|
2039
|
+
"border-quote",
|
|
2040
|
+
"border-row-divider",
|
|
2041
|
+
"border-section-rule",
|
|
2042
|
+
"color-accent",
|
|
2043
|
+
"color-accent-2",
|
|
2044
|
+
"color-border",
|
|
2045
|
+
"color-btn-panel",
|
|
2046
|
+
"color-btn-panel-text",
|
|
2047
|
+
"color-btn-text",
|
|
2048
|
+
"color-canvas",
|
|
2049
|
+
"color-chip-text",
|
|
2050
|
+
"color-focus",
|
|
2051
|
+
"color-footer",
|
|
2052
|
+
"color-header",
|
|
2053
|
+
"color-icon-accent",
|
|
2054
|
+
"color-link",
|
|
2055
|
+
"color-link-underline",
|
|
2056
|
+
"color-link-underline-hover",
|
|
2057
|
+
"color-link-visited",
|
|
2058
|
+
"color-on-accent",
|
|
2059
|
+
"color-panel-muted",
|
|
2060
|
+
"color-panel-text",
|
|
2061
|
+
"color-selection",
|
|
2062
|
+
"color-surface",
|
|
2063
|
+
"color-surface-raised",
|
|
2064
|
+
"color-text",
|
|
2065
|
+
"color-text-faint",
|
|
2066
|
+
"color-text-muted",
|
|
2067
|
+
"color-toc-active",
|
|
2068
|
+
"color-toc-active-text",
|
|
2069
|
+
"paint-button",
|
|
2070
|
+
"paint-chip",
|
|
2071
|
+
"paint-page-decor",
|
|
2072
|
+
"paint-panel",
|
|
2073
|
+
"shadow-avatar-ring",
|
|
2074
|
+
"shadow-button"
|
|
2075
|
+
]
|
|
2076
|
+
},
|
|
2077
|
+
"light": {
|
|
2078
|
+
"type": "array",
|
|
2079
|
+
"items": { "enum": ["accent", "canvas", "text", null] },
|
|
2080
|
+
"minItems": 0,
|
|
2081
|
+
"maxItems": 15
|
|
2082
|
+
},
|
|
2083
|
+
"dark": {
|
|
2084
|
+
"type": "array",
|
|
2085
|
+
"items": { "enum": ["accent", "canvas", "text", null] },
|
|
2086
|
+
"minItems": 0,
|
|
2087
|
+
"maxItems": 15
|
|
2088
|
+
}
|
|
2089
|
+
},
|
|
2090
|
+
"additionalProperties": false,
|
|
2091
|
+
"allOf": [
|
|
2092
|
+
{
|
|
2093
|
+
"if": {
|
|
2094
|
+
"properties": {
|
|
2095
|
+
"key": {
|
|
2096
|
+
"enum": [
|
|
2097
|
+
"color-accent",
|
|
2098
|
+
"color-accent-2",
|
|
2099
|
+
"color-border",
|
|
2100
|
+
"color-btn-panel",
|
|
2101
|
+
"color-btn-panel-text",
|
|
2102
|
+
"color-btn-text",
|
|
2103
|
+
"color-canvas",
|
|
2104
|
+
"color-chip-text",
|
|
2105
|
+
"color-focus",
|
|
2106
|
+
"color-footer",
|
|
2107
|
+
"color-header",
|
|
2108
|
+
"color-icon-accent",
|
|
2109
|
+
"color-link",
|
|
2110
|
+
"color-link-underline",
|
|
2111
|
+
"color-link-underline-hover",
|
|
2112
|
+
"color-link-visited",
|
|
2113
|
+
"color-on-accent",
|
|
2114
|
+
"color-panel-muted",
|
|
2115
|
+
"color-panel-text",
|
|
2116
|
+
"color-selection",
|
|
2117
|
+
"color-surface",
|
|
2118
|
+
"color-surface-raised",
|
|
2119
|
+
"color-text",
|
|
2120
|
+
"color-text-faint",
|
|
2121
|
+
"color-text-muted",
|
|
2122
|
+
"color-toc-active",
|
|
2123
|
+
"color-toc-active-text"
|
|
2124
|
+
]
|
|
2125
|
+
}
|
|
2126
|
+
},
|
|
2127
|
+
"required": ["key"]
|
|
2128
|
+
},
|
|
2129
|
+
"then": {
|
|
2130
|
+
"properties": {
|
|
2131
|
+
"light": { "maxItems": 1 },
|
|
2132
|
+
"dark": { "maxItems": 1 }
|
|
2133
|
+
}
|
|
2134
|
+
}
|
|
2135
|
+
},
|
|
2136
|
+
{
|
|
2137
|
+
"if": {
|
|
2138
|
+
"properties": {
|
|
2139
|
+
"key": {
|
|
2140
|
+
"enum": [
|
|
2141
|
+
"border-button",
|
|
2142
|
+
"border-card",
|
|
2143
|
+
"border-chip",
|
|
2144
|
+
"border-media-divider",
|
|
2145
|
+
"border-quote",
|
|
2146
|
+
"border-row-divider",
|
|
2147
|
+
"border-section-rule"
|
|
2148
|
+
]
|
|
2149
|
+
}
|
|
2150
|
+
},
|
|
2151
|
+
"required": ["key"]
|
|
2152
|
+
},
|
|
2153
|
+
"then": {
|
|
2154
|
+
"properties": {
|
|
2155
|
+
"light": { "maxItems": 1 },
|
|
2156
|
+
"dark": { "maxItems": 1 }
|
|
2157
|
+
}
|
|
2158
|
+
}
|
|
2159
|
+
},
|
|
2160
|
+
{
|
|
2161
|
+
"if": {
|
|
2162
|
+
"properties": {
|
|
2163
|
+
"key": { "enum": ["shadow-avatar-ring", "shadow-button"] }
|
|
2164
|
+
},
|
|
2165
|
+
"required": ["key"]
|
|
2166
|
+
},
|
|
2167
|
+
"then": {
|
|
2168
|
+
"properties": {
|
|
2169
|
+
"light": { "maxItems": 3 },
|
|
2170
|
+
"dark": { "maxItems": 3 }
|
|
2171
|
+
}
|
|
2172
|
+
}
|
|
2173
|
+
},
|
|
2174
|
+
{
|
|
2175
|
+
"if": {
|
|
2176
|
+
"properties": {
|
|
2177
|
+
"key": {
|
|
2178
|
+
"enum": [
|
|
2179
|
+
"paint-button",
|
|
2180
|
+
"paint-chip",
|
|
2181
|
+
"paint-page-decor",
|
|
2182
|
+
"paint-panel"
|
|
2183
|
+
]
|
|
2184
|
+
}
|
|
2185
|
+
},
|
|
2186
|
+
"required": ["key"]
|
|
2187
|
+
},
|
|
2188
|
+
"then": {
|
|
2189
|
+
"properties": {
|
|
2190
|
+
"light": { "maxItems": 15 },
|
|
2191
|
+
"dark": { "maxItems": 15 }
|
|
2192
|
+
}
|
|
2193
|
+
}
|
|
2194
|
+
}
|
|
2195
|
+
],
|
|
2196
|
+
"$comment": "The semantic validator requires each list length to equal the number of colours in the matching mode value of the named token, and each key to appear at most once."
|
|
2197
|
+
},
|
|
2014
2198
|
"passiveAsset": {
|
|
2015
2199
|
"type": "object",
|
|
2016
2200
|
"required": ["path", "mediaType", "byteLength", "sha256", "license"],
|
|
@@ -2125,7 +2309,7 @@
|
|
|
2125
2309
|
"required": ["contractVersion"]
|
|
2126
2310
|
},
|
|
2127
2311
|
"then": {
|
|
2128
|
-
"properties": { "templateRange": { "
|
|
2312
|
+
"properties": { "templateRange": { "enum": ["^4.0.0", "^4.1.0"] } },
|
|
2129
2313
|
"required": ["composition"],
|
|
2130
2314
|
"allOf": [
|
|
2131
2315
|
{
|