@coveo/thermidor-schema 1.0.0-beta.3 → 1.0.0-beta.30
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/README.md +32 -5
- package/dist/generated/schemas.d.ts +3346 -400
- package/dist/generated/schemas.js +843 -238
- package/dist/generated/zod3/index.d.ts +3 -0
- package/dist/generated/zod3/index.js +5 -0
- package/dist/generated/zod3/schemas.d.ts +31378 -0
- package/dist/generated/zod3/schemas.js +1252 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/zod3-compat.d.ts +79 -0
- package/dist/zod3-compat.js +82 -0
- package/package.json +26 -20
- package/schema/base/catalog.schema.json +5 -4
- package/schema/base/component.schema.json +22 -33
- package/schema/{components/component-contracts.schema.json → component-contracts.schema.json} +14 -2
- package/schema/components/breadbox.schema.json +82 -0
- package/schema/components/bundle-display.schema.json +17 -13
- package/schema/components/cart.schema.json +147 -0
- package/schema/components/category-facet.schema.json +29 -15
- package/schema/components/commerce-search.schema.json +156 -15
- package/schema/components/comparison-table.schema.json +21 -13
- package/schema/components/date-facet.schema.json +33 -13
- package/schema/components/facet-manager.schema.json +12 -14
- package/schema/components/layout-stack.schema.json +18 -15
- package/schema/components/next-actions-bar.schema.json +40 -17
- package/schema/components/numeric-facet.schema.json +37 -15
- package/schema/components/page-size.schema.json +13 -15
- package/schema/components/pagination.schema.json +41 -14
- package/schema/components/product-carousel.schema.json +13 -13
- package/schema/components/product-list.schema.json +75 -14
- package/schema/components/product-research-card.schema.json +107 -0
- package/schema/components/product-summary.schema.json +15 -14
- package/schema/components/query-suggestions.schema.json +113 -0
- package/schema/components/query-summary.schema.json +23 -14
- package/schema/components/regular-facet.schema.json +33 -32
- package/schema/components/sort.schema.json +13 -13
- package/schema/definitions/action-item.schema.json +10 -13
- package/schema/definitions/badge-placement.schema.json +22 -0
- package/schema/definitions/badge.schema.json +27 -0
- package/schema/definitions/breadbox-date-range-facet.schema.json +56 -0
- package/schema/definitions/breadbox-deselect-date-range.schema.json +28 -0
- package/schema/definitions/breadbox-deselect-hierarchical-path.schema.json +28 -0
- package/schema/definitions/breadbox-deselect-numerical-range.schema.json +28 -0
- package/schema/definitions/breadbox-deselect-payload.schema.json +20 -0
- package/schema/definitions/breadbox-deselect-regular-value.schema.json +25 -0
- package/schema/definitions/breadbox-facet.schema.json +20 -0
- package/schema/definitions/breadbox-hierarchical-facet.schema.json +37 -0
- package/schema/definitions/breadbox-numerical-range-facet.schema.json +56 -0
- package/schema/definitions/breadbox-regular-facet.schema.json +59 -0
- package/schema/definitions/bundle-tier.schema.json +6 -1
- package/schema/definitions/child-list.schema.json +31 -0
- package/schema/definitions/comparison-product.schema.json +7 -2
- package/schema/definitions/component-id.schema.json +9 -0
- package/schema/definitions/data-binding.schema.json +16 -0
- package/schema/definitions/followup-action-item.schema.json +20 -0
- package/schema/definitions/product.schema.json +10 -6
- package/schema/definitions/search-action-item.schema.json +20 -0
- package/schema/definitions/search-option-action-item.schema.json +25 -0
- package/schema/definitions/child-ref.schema.json +0 -8
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://schema.thermidor.coveo.com/components/cart.schema.json",
|
|
4
|
+
"title": "Cart",
|
|
5
|
+
"description": "Represents a commerce cart or checkout surface. The backend owns cart state; semantic cart mutations and purchase completion are dispatched through this component.",
|
|
6
|
+
"allOf": [
|
|
7
|
+
{
|
|
8
|
+
"$ref": "https://schema.thermidor.coveo.com/base/component.schema.json"
|
|
9
|
+
}
|
|
10
|
+
],
|
|
11
|
+
"properties": {
|
|
12
|
+
"component": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"const": "Cart"
|
|
15
|
+
},
|
|
16
|
+
"id": {
|
|
17
|
+
"type": "string"
|
|
18
|
+
},
|
|
19
|
+
"state": {
|
|
20
|
+
"$ref": "#/$defs/CartState"
|
|
21
|
+
},
|
|
22
|
+
"actions": {
|
|
23
|
+
"type": "object",
|
|
24
|
+
"required": ["updateCart", "purchase"],
|
|
25
|
+
"properties": {
|
|
26
|
+
"updateCart": {
|
|
27
|
+
"$ref": "#/$defs/UpdateCartAction"
|
|
28
|
+
},
|
|
29
|
+
"purchase": {
|
|
30
|
+
"$ref": "#/$defs/PurchaseAction"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"additionalProperties": false
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"additionalProperties": false,
|
|
37
|
+
"$defs": {
|
|
38
|
+
"CartState": {
|
|
39
|
+
"title": "CartState",
|
|
40
|
+
"description": "Cart state is backend-owned. This initial contract intentionally carries no presentation fields; it provides the canonical action anchor for cart mutations and checkout completion.",
|
|
41
|
+
"type": "object",
|
|
42
|
+
"properties": {},
|
|
43
|
+
"additionalProperties": false
|
|
44
|
+
},
|
|
45
|
+
"UpdateCartAction": {
|
|
46
|
+
"title": "updateCart",
|
|
47
|
+
"description": "Applies a semantic item update to the cart and records the corresponding commerce cart event.",
|
|
48
|
+
"allOf": [
|
|
49
|
+
{
|
|
50
|
+
"$ref": "https://schema.thermidor.coveo.com/base/action.schema.json"
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
"properties": {
|
|
54
|
+
"payload": {
|
|
55
|
+
"type": "object",
|
|
56
|
+
"required": ["productId", "quantity", "operation"],
|
|
57
|
+
"properties": {
|
|
58
|
+
"productId": {
|
|
59
|
+
"type": "string",
|
|
60
|
+
"minLength": 1
|
|
61
|
+
},
|
|
62
|
+
"name": {
|
|
63
|
+
"type": "string"
|
|
64
|
+
},
|
|
65
|
+
"price": {
|
|
66
|
+
"type": ["number", "null"]
|
|
67
|
+
},
|
|
68
|
+
"quantity": {
|
|
69
|
+
"type": "integer",
|
|
70
|
+
"minimum": 1
|
|
71
|
+
},
|
|
72
|
+
"operation": {
|
|
73
|
+
"title": "CartUpdateOperation",
|
|
74
|
+
"type": "string",
|
|
75
|
+
"enum": ["add", "remove", "setQuantity"]
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
"additionalProperties": false
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
"PurchaseAction": {
|
|
83
|
+
"title": "purchase",
|
|
84
|
+
"description": "Records a completed commerce transaction.",
|
|
85
|
+
"allOf": [
|
|
86
|
+
{
|
|
87
|
+
"$ref": "https://schema.thermidor.coveo.com/base/action.schema.json"
|
|
88
|
+
}
|
|
89
|
+
],
|
|
90
|
+
"properties": {
|
|
91
|
+
"payload": {
|
|
92
|
+
"type": "object",
|
|
93
|
+
"required": ["products", "transaction"],
|
|
94
|
+
"properties": {
|
|
95
|
+
"products": {
|
|
96
|
+
"type": "array",
|
|
97
|
+
"items": {
|
|
98
|
+
"$ref": "#/$defs/PurchaseProduct"
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
"transaction": {
|
|
102
|
+
"$ref": "#/$defs/Transaction"
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
"additionalProperties": false
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
"PurchaseProduct": {
|
|
110
|
+
"title": "PurchaseProduct",
|
|
111
|
+
"type": "object",
|
|
112
|
+
"required": ["productId", "quantity"],
|
|
113
|
+
"properties": {
|
|
114
|
+
"productId": {
|
|
115
|
+
"type": "string",
|
|
116
|
+
"minLength": 1
|
|
117
|
+
},
|
|
118
|
+
"name": {
|
|
119
|
+
"type": "string"
|
|
120
|
+
},
|
|
121
|
+
"price": {
|
|
122
|
+
"type": ["number", "null"]
|
|
123
|
+
},
|
|
124
|
+
"quantity": {
|
|
125
|
+
"type": "integer",
|
|
126
|
+
"minimum": 1
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
"additionalProperties": false
|
|
130
|
+
},
|
|
131
|
+
"Transaction": {
|
|
132
|
+
"title": "Transaction",
|
|
133
|
+
"type": "object",
|
|
134
|
+
"required": ["id", "revenue"],
|
|
135
|
+
"properties": {
|
|
136
|
+
"id": {
|
|
137
|
+
"type": "string",
|
|
138
|
+
"minLength": 1
|
|
139
|
+
},
|
|
140
|
+
"revenue": {
|
|
141
|
+
"type": "number"
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
"additionalProperties": false
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
@@ -9,9 +9,36 @@
|
|
|
9
9
|
}
|
|
10
10
|
],
|
|
11
11
|
"properties": {
|
|
12
|
-
"
|
|
12
|
+
"component": {
|
|
13
13
|
"type": "string",
|
|
14
|
-
"const": "
|
|
14
|
+
"const": "CategoryFacet"
|
|
15
|
+
},
|
|
16
|
+
"id": {
|
|
17
|
+
"type": "string"
|
|
18
|
+
},
|
|
19
|
+
"field": {
|
|
20
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/data-binding.schema.json",
|
|
21
|
+
"description": "The index field the facet operates on, bound to /state/<id>/field."
|
|
22
|
+
},
|
|
23
|
+
"displayName": {
|
|
24
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/data-binding.schema.json",
|
|
25
|
+
"description": "The facet's human-readable label, bound to /state/<id>/displayName."
|
|
26
|
+
},
|
|
27
|
+
"values": {
|
|
28
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/data-binding.schema.json",
|
|
29
|
+
"description": "The category facet values, bound to /state/<id>/values."
|
|
30
|
+
},
|
|
31
|
+
"canShowMoreValues": {
|
|
32
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/data-binding.schema.json",
|
|
33
|
+
"description": "Whether more facet values can be shown, bound to /state/<id>/canShowMoreValues."
|
|
34
|
+
},
|
|
35
|
+
"canShowLessValues": {
|
|
36
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/data-binding.schema.json",
|
|
37
|
+
"description": "Whether fewer facet values can be shown, bound to /state/<id>/canShowLessValues."
|
|
38
|
+
},
|
|
39
|
+
"facetSearch": {
|
|
40
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/data-binding.schema.json",
|
|
41
|
+
"description": "The facet search state, bound to /state/<id>/facetSearch."
|
|
15
42
|
},
|
|
16
43
|
"state": {
|
|
17
44
|
"$ref": "#/$defs/CategoryFacetState"
|
|
@@ -51,17 +78,6 @@
|
|
|
51
78
|
}
|
|
52
79
|
},
|
|
53
80
|
"additionalProperties": false
|
|
54
|
-
},
|
|
55
|
-
"children": {
|
|
56
|
-
"type": "array",
|
|
57
|
-
"items": {
|
|
58
|
-
"$ref": "https://schema.thermidor.coveo.com/definitions/child-ref.schema.json"
|
|
59
|
-
},
|
|
60
|
-
"maxItems": 1000,
|
|
61
|
-
"default": []
|
|
62
|
-
},
|
|
63
|
-
"child": {
|
|
64
|
-
"$ref": "https://schema.thermidor.coveo.com/definitions/child-ref.schema.json"
|
|
65
81
|
}
|
|
66
82
|
},
|
|
67
83
|
"additionalProperties": false,
|
|
@@ -148,7 +164,6 @@
|
|
|
148
164
|
"properties": {
|
|
149
165
|
"query": {
|
|
150
166
|
"type": "string",
|
|
151
|
-
"maxLength": 256,
|
|
152
167
|
"description": "The current facet search query."
|
|
153
168
|
},
|
|
154
169
|
"canShowMoreResults": {
|
|
@@ -214,7 +229,6 @@
|
|
|
214
229
|
"properties": {
|
|
215
230
|
"query": {
|
|
216
231
|
"type": "string",
|
|
217
|
-
"maxLength": 256,
|
|
218
232
|
"description": "The facet search query string."
|
|
219
233
|
}
|
|
220
234
|
},
|
|
@@ -2,35 +2,47 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://schema.thermidor.coveo.com/components/commerce-search.schema.json",
|
|
4
4
|
"title": "CommerceSearch",
|
|
5
|
-
"description": "Surface-root component for a commerce search surface. Its
|
|
5
|
+
"description": "Surface-root component for a commerce search surface. Its component discriminant carries the surface intent; it owns the surface's top-level components via named child slots and dispatches search lifecycle actions (submitQuery, restoreState, overrideCorrection).",
|
|
6
6
|
"allOf": [
|
|
7
7
|
{
|
|
8
8
|
"$ref": "https://schema.thermidor.coveo.com/base/component.schema.json"
|
|
9
9
|
}
|
|
10
10
|
],
|
|
11
11
|
"properties": {
|
|
12
|
-
"
|
|
12
|
+
"id": {
|
|
13
|
+
"type": "string"
|
|
14
|
+
},
|
|
15
|
+
"component": {
|
|
13
16
|
"type": "string",
|
|
14
|
-
"const": "
|
|
17
|
+
"const": "CommerceSearch"
|
|
18
|
+
},
|
|
19
|
+
"sidebarChild": {
|
|
20
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/component-id.schema.json",
|
|
21
|
+
"description": "The sidebar named slot: a static ComponentId the renderer mounts by name via children(sidebarChild).",
|
|
22
|
+
"$comment": "Heterogeneous named-slot composition: CommerceSearch uses named ComponentId slots (sidebar, main) rather than a positional children[] array."
|
|
23
|
+
},
|
|
24
|
+
"mainChild": {
|
|
25
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/component-id.schema.json",
|
|
26
|
+
"description": "The main-area named slot: a static ComponentId the renderer mounts by name via children(mainChild)."
|
|
15
27
|
},
|
|
16
28
|
"state": {
|
|
17
29
|
"$ref": "#/$defs/CommerceSearchState"
|
|
18
30
|
},
|
|
19
31
|
"actions": {
|
|
20
32
|
"type": "object",
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
33
|
+
"required": ["submitQuery", "restoreState", "overrideCorrection"],
|
|
34
|
+
"properties": {
|
|
35
|
+
"submitQuery": {
|
|
36
|
+
"$ref": "#/$defs/SubmitQueryAction"
|
|
37
|
+
},
|
|
38
|
+
"restoreState": {
|
|
39
|
+
"$ref": "#/$defs/RestoreStateAction"
|
|
40
|
+
},
|
|
41
|
+
"overrideCorrection": {
|
|
42
|
+
"$ref": "#/$defs/OverrideCorrectionAction"
|
|
43
|
+
}
|
|
28
44
|
},
|
|
29
|
-
"
|
|
30
|
-
"default": []
|
|
31
|
-
},
|
|
32
|
-
"child": {
|
|
33
|
-
"$ref": "https://schema.thermidor.coveo.com/definitions/child-ref.schema.json"
|
|
45
|
+
"additionalProperties": false
|
|
34
46
|
}
|
|
35
47
|
},
|
|
36
48
|
"additionalProperties": false,
|
|
@@ -40,6 +52,135 @@
|
|
|
40
52
|
"description": "The commerce search surface state. Owned exclusively by the backend.",
|
|
41
53
|
"type": "object",
|
|
42
54
|
"additionalProperties": false
|
|
55
|
+
},
|
|
56
|
+
"SubmitQueryAction": {
|
|
57
|
+
"title": "submitQuery",
|
|
58
|
+
"description": "Submits a new search query.",
|
|
59
|
+
"allOf": [
|
|
60
|
+
{
|
|
61
|
+
"$ref": "https://schema.thermidor.coveo.com/base/action.schema.json"
|
|
62
|
+
}
|
|
63
|
+
],
|
|
64
|
+
"properties": {
|
|
65
|
+
"payload": {
|
|
66
|
+
"type": "object",
|
|
67
|
+
"required": ["query"],
|
|
68
|
+
"properties": {
|
|
69
|
+
"query": {
|
|
70
|
+
"type": "string",
|
|
71
|
+
"description": "The query string to submit."
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"additionalProperties": false
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
"RestoreStateAction": {
|
|
79
|
+
"title": "restoreState",
|
|
80
|
+
"description": "Restores a commerce-search surface from externally persisted search state.",
|
|
81
|
+
"allOf": [
|
|
82
|
+
{
|
|
83
|
+
"$ref": "https://schema.thermidor.coveo.com/base/action.schema.json"
|
|
84
|
+
}
|
|
85
|
+
],
|
|
86
|
+
"properties": {
|
|
87
|
+
"payload": {
|
|
88
|
+
"type": "object",
|
|
89
|
+
"required": ["query", "page", "pageSize"],
|
|
90
|
+
"properties": {
|
|
91
|
+
"query": {
|
|
92
|
+
"type": "string"
|
|
93
|
+
},
|
|
94
|
+
"page": {
|
|
95
|
+
"type": "integer",
|
|
96
|
+
"minimum": 0
|
|
97
|
+
},
|
|
98
|
+
"pageSize": {
|
|
99
|
+
"type": "integer",
|
|
100
|
+
"minimum": 1
|
|
101
|
+
},
|
|
102
|
+
"sortCriteria": {
|
|
103
|
+
"type": "string"
|
|
104
|
+
},
|
|
105
|
+
"facets": {
|
|
106
|
+
"type": "array",
|
|
107
|
+
"items": {
|
|
108
|
+
"$ref": "#/$defs/FacetRestore"
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
"pinnedProducts": {
|
|
112
|
+
"type": "array",
|
|
113
|
+
"items": {
|
|
114
|
+
"type": "string"
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
"additionalProperties": false
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
"OverrideCorrectionAction": {
|
|
123
|
+
"title": "overrideCorrection",
|
|
124
|
+
"description": "Re-runs a search with the shopper's original query instead of an automatic correction.",
|
|
125
|
+
"allOf": [
|
|
126
|
+
{
|
|
127
|
+
"$ref": "https://schema.thermidor.coveo.com/base/action.schema.json"
|
|
128
|
+
}
|
|
129
|
+
],
|
|
130
|
+
"properties": {
|
|
131
|
+
"payload": {
|
|
132
|
+
"type": "object",
|
|
133
|
+
"required": ["originalQuery"],
|
|
134
|
+
"properties": {
|
|
135
|
+
"originalQuery": {
|
|
136
|
+
"type": "string",
|
|
137
|
+
"minLength": 1
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
"additionalProperties": false
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
"FacetRestore": {
|
|
145
|
+
"title": "FacetRestore",
|
|
146
|
+
"type": "object",
|
|
147
|
+
"required": ["facetId"],
|
|
148
|
+
"properties": {
|
|
149
|
+
"facetId": {
|
|
150
|
+
"type": "string",
|
|
151
|
+
"minLength": 1
|
|
152
|
+
},
|
|
153
|
+
"values": {
|
|
154
|
+
"type": "array",
|
|
155
|
+
"items": {
|
|
156
|
+
"type": "string"
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
"numericRanges": {
|
|
160
|
+
"type": "array",
|
|
161
|
+
"items": {
|
|
162
|
+
"$ref": "#/$defs/NumericRangeRestore"
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
"additionalProperties": false
|
|
167
|
+
},
|
|
168
|
+
"NumericRangeRestore": {
|
|
169
|
+
"title": "NumericRangeRestore",
|
|
170
|
+
"type": "object",
|
|
171
|
+
"required": ["start", "end"],
|
|
172
|
+
"properties": {
|
|
173
|
+
"start": {
|
|
174
|
+
"type": "number"
|
|
175
|
+
},
|
|
176
|
+
"end": {
|
|
177
|
+
"type": "number"
|
|
178
|
+
},
|
|
179
|
+
"endInclusive": {
|
|
180
|
+
"type": "boolean"
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
"additionalProperties": false
|
|
43
184
|
}
|
|
44
185
|
}
|
|
45
186
|
}
|
|
@@ -9,9 +9,28 @@
|
|
|
9
9
|
}
|
|
10
10
|
],
|
|
11
11
|
"properties": {
|
|
12
|
-
"
|
|
12
|
+
"id": {
|
|
13
|
+
"type": "string"
|
|
14
|
+
},
|
|
15
|
+
"component": {
|
|
13
16
|
"type": "string",
|
|
14
|
-
"const": "
|
|
17
|
+
"const": "ComparisonTable"
|
|
18
|
+
},
|
|
19
|
+
"heading": {
|
|
20
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/data-binding.schema.json",
|
|
21
|
+
"description": "The table heading, bound to /state/<id>/heading."
|
|
22
|
+
},
|
|
23
|
+
"summary": {
|
|
24
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/data-binding.schema.json",
|
|
25
|
+
"description": "The AI summary text, bound to /state/<id>/summary."
|
|
26
|
+
},
|
|
27
|
+
"products": {
|
|
28
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/data-binding.schema.json",
|
|
29
|
+
"description": "The compared products, bound to /state/<id>/products."
|
|
30
|
+
},
|
|
31
|
+
"attributes": {
|
|
32
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/data-binding.schema.json",
|
|
33
|
+
"description": "The ordered attribute descriptors, bound to /state/<id>/attributes."
|
|
15
34
|
},
|
|
16
35
|
"state": {
|
|
17
36
|
"$ref": "#/$defs/ComparisonTableState"
|
|
@@ -20,17 +39,6 @@
|
|
|
20
39
|
"type": "object",
|
|
21
40
|
"properties": {},
|
|
22
41
|
"additionalProperties": false
|
|
23
|
-
},
|
|
24
|
-
"children": {
|
|
25
|
-
"type": "array",
|
|
26
|
-
"items": {
|
|
27
|
-
"$ref": "https://schema.thermidor.coveo.com/definitions/child-ref.schema.json"
|
|
28
|
-
},
|
|
29
|
-
"maxItems": 1000,
|
|
30
|
-
"default": []
|
|
31
|
-
},
|
|
32
|
-
"child": {
|
|
33
|
-
"$ref": "https://schema.thermidor.coveo.com/definitions/child-ref.schema.json"
|
|
34
42
|
}
|
|
35
43
|
},
|
|
36
44
|
"additionalProperties": false,
|
|
@@ -9,9 +9,40 @@
|
|
|
9
9
|
}
|
|
10
10
|
],
|
|
11
11
|
"properties": {
|
|
12
|
-
"
|
|
12
|
+
"component": {
|
|
13
13
|
"type": "string",
|
|
14
|
-
"const": "
|
|
14
|
+
"const": "DateFacet"
|
|
15
|
+
},
|
|
16
|
+
"id": {
|
|
17
|
+
"type": "string"
|
|
18
|
+
},
|
|
19
|
+
"field": {
|
|
20
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/data-binding.schema.json",
|
|
21
|
+
"description": "The commerce index field the facet operates on, bound to /state/<id>/field."
|
|
22
|
+
},
|
|
23
|
+
"displayName": {
|
|
24
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/data-binding.schema.json",
|
|
25
|
+
"description": "The facet's human-readable label, bound to /state/<id>/displayName."
|
|
26
|
+
},
|
|
27
|
+
"values": {
|
|
28
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/data-binding.schema.json",
|
|
29
|
+
"description": "The date-range facet values, bound to /state/<id>/values."
|
|
30
|
+
},
|
|
31
|
+
"customRange": {
|
|
32
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/data-binding.schema.json",
|
|
33
|
+
"description": "The custom range, bound to /state/<id>/customRange."
|
|
34
|
+
},
|
|
35
|
+
"hasActiveValues": {
|
|
36
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/data-binding.schema.json",
|
|
37
|
+
"description": "Whether at least one facet value is active, bound to /state/<id>/hasActiveValues."
|
|
38
|
+
},
|
|
39
|
+
"canShowMoreValues": {
|
|
40
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/data-binding.schema.json",
|
|
41
|
+
"description": "Whether more facet values can be shown, bound to /state/<id>/canShowMoreValues."
|
|
42
|
+
},
|
|
43
|
+
"canShowLessValues": {
|
|
44
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/data-binding.schema.json",
|
|
45
|
+
"description": "Whether fewer facet values can be shown, bound to /state/<id>/canShowLessValues."
|
|
15
46
|
},
|
|
16
47
|
"state": {
|
|
17
48
|
"$ref": "#/$defs/DateFacetState"
|
|
@@ -47,17 +78,6 @@
|
|
|
47
78
|
}
|
|
48
79
|
},
|
|
49
80
|
"additionalProperties": false
|
|
50
|
-
},
|
|
51
|
-
"children": {
|
|
52
|
-
"type": "array",
|
|
53
|
-
"items": {
|
|
54
|
-
"$ref": "https://schema.thermidor.coveo.com/definitions/child-ref.schema.json"
|
|
55
|
-
},
|
|
56
|
-
"maxItems": 1000,
|
|
57
|
-
"default": []
|
|
58
|
-
},
|
|
59
|
-
"child": {
|
|
60
|
-
"$ref": "https://schema.thermidor.coveo.com/definitions/child-ref.schema.json"
|
|
61
81
|
}
|
|
62
82
|
},
|
|
63
83
|
"additionalProperties": false,
|
|
@@ -2,16 +2,25 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://schema.thermidor.coveo.com/components/facet-manager.schema.json",
|
|
4
4
|
"title": "FacetManager",
|
|
5
|
-
"description": "Manages facet ordering and cross-facet concerns. Holds the backend-determined order of facet components as state
|
|
5
|
+
"description": "Manages facet ordering and cross-facet concerns. Holds the backend-determined order of facet components as state; each identifier's position (from 0) is its rendering rank.",
|
|
6
|
+
"$comment": "Ready to gain cross-facet actions (e.g. clear all facets, reorder) as needs arise.",
|
|
6
7
|
"allOf": [
|
|
7
8
|
{
|
|
8
9
|
"$ref": "https://schema.thermidor.coveo.com/base/component.schema.json"
|
|
9
10
|
}
|
|
10
11
|
],
|
|
11
12
|
"properties": {
|
|
12
|
-
"
|
|
13
|
+
"id": {
|
|
14
|
+
"type": "string"
|
|
15
|
+
},
|
|
16
|
+
"component": {
|
|
13
17
|
"type": "string",
|
|
14
|
-
"const": "
|
|
18
|
+
"const": "FacetManager"
|
|
19
|
+
},
|
|
20
|
+
"children": {
|
|
21
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/child-list.schema.json",
|
|
22
|
+
"description": "The backend-determined facet order: a ChildList of ComponentId references whose position (from 0) is each facet's rendering rank.",
|
|
23
|
+
"$comment": "Homogeneous ordered-list composition: child ids are static (binder passes through unresolved), mounted in order via children(id)."
|
|
15
24
|
},
|
|
16
25
|
"state": {
|
|
17
26
|
"$ref": "#/$defs/FacetManagerState"
|
|
@@ -20,17 +29,6 @@
|
|
|
20
29
|
"type": "object",
|
|
21
30
|
"properties": {},
|
|
22
31
|
"additionalProperties": false
|
|
23
|
-
},
|
|
24
|
-
"children": {
|
|
25
|
-
"type": "array",
|
|
26
|
-
"items": {
|
|
27
|
-
"$ref": "https://schema.thermidor.coveo.com/definitions/child-ref.schema.json"
|
|
28
|
-
},
|
|
29
|
-
"maxItems": 1000,
|
|
30
|
-
"default": []
|
|
31
|
-
},
|
|
32
|
-
"child": {
|
|
33
|
-
"$ref": "https://schema.thermidor.coveo.com/definitions/child-ref.schema.json"
|
|
34
32
|
}
|
|
35
33
|
},
|
|
36
34
|
"additionalProperties": false,
|
|
@@ -2,16 +2,30 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://schema.thermidor.coveo.com/components/layout-stack.schema.json",
|
|
4
4
|
"title": "LayoutStack",
|
|
5
|
-
"description": "Generic layout container that stacks its children along a single axis.
|
|
5
|
+
"description": "Generic layout container that stacks its children along a single axis. Carries no business data; its state is empty and the stacking direction travels as a presentation prop.",
|
|
6
|
+
"$comment": "Reused across surfaces to compose rows/columns from the A2-UI composition plane rather than hardcoding layout per parent renderer.",
|
|
6
7
|
"allOf": [
|
|
7
8
|
{
|
|
8
9
|
"$ref": "https://schema.thermidor.coveo.com/base/component.schema.json"
|
|
9
10
|
}
|
|
10
11
|
],
|
|
11
12
|
"properties": {
|
|
12
|
-
"
|
|
13
|
+
"id": {
|
|
14
|
+
"type": "string"
|
|
15
|
+
},
|
|
16
|
+
"component": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"const": "LayoutStack"
|
|
19
|
+
},
|
|
20
|
+
"direction": {
|
|
13
21
|
"type": "string",
|
|
14
|
-
"
|
|
22
|
+
"enum": ["column", "row"],
|
|
23
|
+
"description": "The axis along which children are stacked. A plain presentation value at the node top level, never server state."
|
|
24
|
+
},
|
|
25
|
+
"children": {
|
|
26
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/child-list.schema.json",
|
|
27
|
+
"description": "The ordered children, a ChildList of ComponentId references mounted in order via children(id).",
|
|
28
|
+
"$comment": "Homogeneous ordered-list composition: the ordered list is the semantics; child ids are static, passed through unresolved."
|
|
15
29
|
},
|
|
16
30
|
"state": {
|
|
17
31
|
"$ref": "#/$defs/LayoutStackState"
|
|
@@ -20,24 +34,13 @@
|
|
|
20
34
|
"type": "object",
|
|
21
35
|
"properties": {},
|
|
22
36
|
"additionalProperties": false
|
|
23
|
-
},
|
|
24
|
-
"children": {
|
|
25
|
-
"type": "array",
|
|
26
|
-
"items": {
|
|
27
|
-
"$ref": "https://schema.thermidor.coveo.com/definitions/child-ref.schema.json"
|
|
28
|
-
},
|
|
29
|
-
"maxItems": 1000,
|
|
30
|
-
"default": []
|
|
31
|
-
},
|
|
32
|
-
"child": {
|
|
33
|
-
"$ref": "https://schema.thermidor.coveo.com/definitions/child-ref.schema.json"
|
|
34
37
|
}
|
|
35
38
|
},
|
|
36
39
|
"additionalProperties": false,
|
|
37
40
|
"$defs": {
|
|
38
41
|
"LayoutStackState": {
|
|
39
42
|
"title": "LayoutStackState",
|
|
40
|
-
"description": "
|
|
43
|
+
"description": "Empty: a layout container holds no business data.",
|
|
41
44
|
"type": "object",
|
|
42
45
|
"required": [],
|
|
43
46
|
"properties": {},
|