@coveo/thermidor-schema 1.0.0-beta.4 → 1.0.0-beta.41
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 +3668 -560
- package/dist/generated/schemas.js +912 -285
- package/dist/generated/zod3/index.d.ts +3 -0
- package/dist/generated/zod3/index.js +5 -0
- package/dist/generated/zod3/schemas.d.ts +32331 -0
- package/dist/generated/zod3/schemas.js +1282 -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 +28 -22
- 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} +23 -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 +30 -16
- package/schema/components/commerce-search.schema.json +111 -15
- package/schema/components/comparison-table.schema.json +21 -13
- package/schema/components/date-facet.schema.json +35 -15
- package/schema/components/facet-manager.schema.json +12 -14
- package/schema/components/instant-products.schema.json +85 -0
- package/schema/components/layout-stack.schema.json +19 -15
- package/schema/components/next-actions-bar.schema.json +44 -17
- package/schema/components/numeric-facet.schema.json +39 -17
- package/schema/components/page-size.schema.json +13 -15
- package/schema/components/pagination.schema.json +28 -27
- 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 +102 -0
- package/schema/components/query-summary.schema.json +70 -16
- package/schema/components/regular-facet.schema.json +40 -93
- package/schema/components/search-box.schema.json +47 -0
- package/schema/components/session-shell.schema.json +65 -0
- package/schema/components/sort.schema.json +22 -16
- 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 +32 -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/facet-value-state.schema.json +1 -1
- 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/sort-field.schema.json +26 -0
- package/schema/definitions/child-ref.schema.json +0 -8
- package/schema/definitions/selectable-facet-value-state.schema.json +0 -8
|
@@ -2,16 +2,28 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://schema.thermidor.coveo.com/components/product-summary.schema.json",
|
|
4
4
|
"title": "ProductSummary",
|
|
5
|
-
"description": "Renders a single commerce product as a compact summary row (thumbnail, name, short description, price) for a category slot. Read-only from the frontend
|
|
5
|
+
"description": "Renders a single commerce product as a compact summary row (thumbnail, name, short description, price) for a category slot. Read-only from the frontend.",
|
|
6
|
+
"$comment": "Compact-row presentation is expressed by this component type on the A2-UI plane, never as data in AG-UI state.",
|
|
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": "ProductSummary"
|
|
19
|
+
},
|
|
20
|
+
"categoryLabel": {
|
|
21
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/data-binding.schema.json",
|
|
22
|
+
"description": "The product category label, bound to /state/<id>/categoryLabel."
|
|
23
|
+
},
|
|
24
|
+
"product": {
|
|
25
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/data-binding.schema.json",
|
|
26
|
+
"description": "The single summarized product, bound to /state/<id>/product."
|
|
15
27
|
},
|
|
16
28
|
"state": {
|
|
17
29
|
"$ref": "#/$defs/ProductSummaryState"
|
|
@@ -20,17 +32,6 @@
|
|
|
20
32
|
"type": "object",
|
|
21
33
|
"properties": {},
|
|
22
34
|
"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
35
|
}
|
|
35
36
|
},
|
|
36
37
|
"additionalProperties": false,
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://schema.thermidor.coveo.com/components/query-suggestions.schema.json",
|
|
4
|
+
"title": "QuerySuggestions",
|
|
5
|
+
"description": "Requests and renders backend-provided query completions for the active search input.",
|
|
6
|
+
"allOf": [
|
|
7
|
+
{
|
|
8
|
+
"$ref": "https://schema.thermidor.coveo.com/base/component.schema.json"
|
|
9
|
+
}
|
|
10
|
+
],
|
|
11
|
+
"properties": {
|
|
12
|
+
"id": {
|
|
13
|
+
"type": "string"
|
|
14
|
+
},
|
|
15
|
+
"component": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"const": "QuerySuggestions"
|
|
18
|
+
},
|
|
19
|
+
"query": {
|
|
20
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/data-binding.schema.json",
|
|
21
|
+
"description": "The input query these suggestions were requested for, bound to /state/<id>/query."
|
|
22
|
+
},
|
|
23
|
+
"completions": {
|
|
24
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/data-binding.schema.json",
|
|
25
|
+
"description": "The query completions, bound to /state/<id>/completions."
|
|
26
|
+
},
|
|
27
|
+
"state": {
|
|
28
|
+
"$ref": "#/$defs/QuerySuggestionsState"
|
|
29
|
+
},
|
|
30
|
+
"actions": {
|
|
31
|
+
"type": "object",
|
|
32
|
+
"required": ["fetchSuggestions"],
|
|
33
|
+
"properties": {
|
|
34
|
+
"fetchSuggestions": {
|
|
35
|
+
"$ref": "#/$defs/FetchSuggestionsAction"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"additionalProperties": false
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"additionalProperties": false,
|
|
42
|
+
"$defs": {
|
|
43
|
+
"QuerySuggestionsState": {
|
|
44
|
+
"title": "QuerySuggestionsState",
|
|
45
|
+
"description": "The suggestion result for one query. Owned exclusively by the backend.",
|
|
46
|
+
"type": "object",
|
|
47
|
+
"required": ["query", "completions"],
|
|
48
|
+
"properties": {
|
|
49
|
+
"query": {
|
|
50
|
+
"type": "string",
|
|
51
|
+
"description": "The input query for which these suggestions were requested."
|
|
52
|
+
},
|
|
53
|
+
"completions": {
|
|
54
|
+
"type": "array",
|
|
55
|
+
"description": "Query completions returned by the commerce service.",
|
|
56
|
+
"items": {
|
|
57
|
+
"$ref": "#/$defs/QueryCompletion"
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"additionalProperties": false
|
|
62
|
+
},
|
|
63
|
+
"FetchSuggestionsAction": {
|
|
64
|
+
"title": "fetchSuggestions",
|
|
65
|
+
"description": "Fetches query completions for the current input.",
|
|
66
|
+
"allOf": [
|
|
67
|
+
{
|
|
68
|
+
"$ref": "https://schema.thermidor.coveo.com/base/action.schema.json"
|
|
69
|
+
}
|
|
70
|
+
],
|
|
71
|
+
"properties": {
|
|
72
|
+
"payload": {
|
|
73
|
+
"type": "object",
|
|
74
|
+
"required": ["query"],
|
|
75
|
+
"properties": {
|
|
76
|
+
"query": {
|
|
77
|
+
"type": "string"
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
"additionalProperties": false
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
"QueryCompletion": {
|
|
85
|
+
"title": "QueryCompletion",
|
|
86
|
+
"description": "One query completion returned by the commerce service.",
|
|
87
|
+
"type": "object",
|
|
88
|
+
"required": ["expression"],
|
|
89
|
+
"properties": {
|
|
90
|
+
"expression": {
|
|
91
|
+
"type": "string",
|
|
92
|
+
"description": "The suggested query text."
|
|
93
|
+
},
|
|
94
|
+
"score": {
|
|
95
|
+
"type": "number",
|
|
96
|
+
"description": "The relevance score returned by the commerce service, when available."
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
"additionalProperties": false
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
@@ -2,35 +2,53 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://schema.thermidor.coveo.com/components/query-summary.schema.json",
|
|
4
4
|
"title": "QuerySummary",
|
|
5
|
-
"description": "Summarizes the current result window for a search surface (e.g. 'Products 1-12 of 43 for Water Sports')
|
|
5
|
+
"description": "Summarizes the current result window for a search surface (e.g. 'Products 1-12 of 43 for Water Sports'), says when the backend replaced the shopper's query, and dispatches the action that searches the shopper's query instead when the backend allows it.",
|
|
6
|
+
"$comment": "Carries its own backend-computed aggregate instead of reading sibling state (search box, pagination, product-list), so it has no cross-component coupling.",
|
|
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": "QuerySummary"
|
|
19
|
+
},
|
|
20
|
+
"query": {
|
|
21
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/data-binding.schema.json",
|
|
22
|
+
"description": "The current query string, bound to /state/<id>/query."
|
|
23
|
+
},
|
|
24
|
+
"firstIndex": {
|
|
25
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/data-binding.schema.json",
|
|
26
|
+
"description": "The 1-based index of the first result on the page, bound to /state/<id>/firstIndex."
|
|
27
|
+
},
|
|
28
|
+
"lastIndex": {
|
|
29
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/data-binding.schema.json",
|
|
30
|
+
"description": "The 1-based index of the last result on the page, bound to /state/<id>/lastIndex."
|
|
31
|
+
},
|
|
32
|
+
"totalEntries": {
|
|
33
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/data-binding.schema.json",
|
|
34
|
+
"description": "The total number of results, bound to /state/<id>/totalEntries."
|
|
35
|
+
},
|
|
36
|
+
"correction": {
|
|
37
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/data-binding.schema.json",
|
|
38
|
+
"description": "The replacement of the shopper's query, bound to /state/<id>/correction."
|
|
15
39
|
},
|
|
16
40
|
"state": {
|
|
17
41
|
"$ref": "#/$defs/QuerySummaryState"
|
|
18
42
|
},
|
|
19
43
|
"actions": {
|
|
20
44
|
"type": "object",
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
"items": {
|
|
27
|
-
"$ref": "https://schema.thermidor.coveo.com/definitions/child-ref.schema.json"
|
|
45
|
+
"required": ["overrideCorrection"],
|
|
46
|
+
"properties": {
|
|
47
|
+
"overrideCorrection": {
|
|
48
|
+
"$ref": "#/$defs/OverrideCorrectionAction"
|
|
49
|
+
}
|
|
28
50
|
},
|
|
29
|
-
"
|
|
30
|
-
"default": []
|
|
31
|
-
},
|
|
32
|
-
"child": {
|
|
33
|
-
"$ref": "https://schema.thermidor.coveo.com/definitions/child-ref.schema.json"
|
|
51
|
+
"additionalProperties": false
|
|
34
52
|
}
|
|
35
53
|
},
|
|
36
54
|
"additionalProperties": false,
|
|
@@ -43,7 +61,7 @@
|
|
|
43
61
|
"properties": {
|
|
44
62
|
"query": {
|
|
45
63
|
"type": "string",
|
|
46
|
-
"description": "The
|
|
64
|
+
"description": "The query whose results are shown. May be empty when the surface has no active query."
|
|
47
65
|
},
|
|
48
66
|
"firstIndex": {
|
|
49
67
|
"type": "integer",
|
|
@@ -59,9 +77,45 @@
|
|
|
59
77
|
"type": "integer",
|
|
60
78
|
"minimum": 0,
|
|
61
79
|
"description": "The total number of results across all pages."
|
|
80
|
+
},
|
|
81
|
+
"correction": {
|
|
82
|
+
"$ref": "#/$defs/QueryCorrection"
|
|
62
83
|
}
|
|
63
84
|
},
|
|
64
85
|
"additionalProperties": false
|
|
86
|
+
},
|
|
87
|
+
"QueryCorrection": {
|
|
88
|
+
"title": "QueryCorrection",
|
|
89
|
+
"description": "Says that the backend searched another query than the shopper's. Absent when the shopper's query was searched as typed.",
|
|
90
|
+
"type": "object",
|
|
91
|
+
"required": ["originalQuery", "cause", "canOverride"],
|
|
92
|
+
"properties": {
|
|
93
|
+
"originalQuery": {
|
|
94
|
+
"type": "string",
|
|
95
|
+
"minLength": 1,
|
|
96
|
+
"description": "The query the shopper submitted."
|
|
97
|
+
},
|
|
98
|
+
"cause": {
|
|
99
|
+
"title": "QueryCorrectionCause",
|
|
100
|
+
"type": "string",
|
|
101
|
+
"enum": ["correction", "trigger"],
|
|
102
|
+
"description": "What replaced the shopper's query: an automatic query correction, or a query trigger."
|
|
103
|
+
},
|
|
104
|
+
"canOverride": {
|
|
105
|
+
"type": "boolean",
|
|
106
|
+
"description": "Whether overrideCorrection can search the original query instead. False when searching it would replace it again, as for an automatic correction the search service applies on every search."
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
"additionalProperties": false
|
|
110
|
+
},
|
|
111
|
+
"OverrideCorrectionAction": {
|
|
112
|
+
"title": "overrideCorrection",
|
|
113
|
+
"description": "Searches the shopper's original query instead of the query that replaced it, for this search only: a later query can be replaced again. The backend reads the original query from its state and applies the action only when the correction's canOverride is true.",
|
|
114
|
+
"allOf": [
|
|
115
|
+
{
|
|
116
|
+
"$ref": "https://schema.thermidor.coveo.com/base/action.schema.json"
|
|
117
|
+
}
|
|
118
|
+
]
|
|
65
119
|
}
|
|
66
120
|
}
|
|
67
121
|
}
|
|
@@ -9,9 +9,40 @@
|
|
|
9
9
|
}
|
|
10
10
|
],
|
|
11
11
|
"properties": {
|
|
12
|
-
"
|
|
12
|
+
"component": {
|
|
13
13
|
"type": "string",
|
|
14
|
-
"const": "
|
|
14
|
+
"const": "RegularFacet"
|
|
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 is built 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 facet values, bound to /state/<id>/values."
|
|
30
|
+
},
|
|
31
|
+
"hasActiveValues": {
|
|
32
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/data-binding.schema.json",
|
|
33
|
+
"description": "Whether at least one facet value is active, bound to /state/<id>/hasActiveValues."
|
|
34
|
+
},
|
|
35
|
+
"canShowMoreValues": {
|
|
36
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/data-binding.schema.json",
|
|
37
|
+
"description": "Whether more facet values can be shown, bound to /state/<id>/canShowMoreValues."
|
|
38
|
+
},
|
|
39
|
+
"canShowLessValues": {
|
|
40
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/data-binding.schema.json",
|
|
41
|
+
"description": "Whether fewer facet values can be shown, bound to /state/<id>/canShowLessValues."
|
|
42
|
+
},
|
|
43
|
+
"facetSearch": {
|
|
44
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/data-binding.schema.json",
|
|
45
|
+
"description": "The facet search state, bound to /state/<id>/facetSearch."
|
|
15
46
|
},
|
|
16
47
|
"state": {
|
|
17
48
|
"$ref": "#/$defs/RegularFacetState"
|
|
@@ -20,9 +51,7 @@
|
|
|
20
51
|
"type": "object",
|
|
21
52
|
"required": [
|
|
22
53
|
"toggleSelect",
|
|
23
|
-
"toggleExclude",
|
|
24
54
|
"toggleSingleSelect",
|
|
25
|
-
"toggleSingleExclude",
|
|
26
55
|
"clearAllActiveValues",
|
|
27
56
|
"search",
|
|
28
57
|
"showMoreSearchResults",
|
|
@@ -34,15 +63,9 @@
|
|
|
34
63
|
"toggleSelect": {
|
|
35
64
|
"$ref": "#/$defs/RegularFacetToggleSelectAction"
|
|
36
65
|
},
|
|
37
|
-
"toggleExclude": {
|
|
38
|
-
"$ref": "#/$defs/RegularFacetToggleExcludeAction"
|
|
39
|
-
},
|
|
40
66
|
"toggleSingleSelect": {
|
|
41
67
|
"$ref": "#/$defs/RegularFacetToggleSingleSelectAction"
|
|
42
68
|
},
|
|
43
|
-
"toggleSingleExclude": {
|
|
44
|
-
"$ref": "#/$defs/RegularFacetToggleSingleExcludeAction"
|
|
45
|
-
},
|
|
46
69
|
"clearAllActiveValues": {
|
|
47
70
|
"$ref": "#/$defs/RegularFacetClearAllActiveValuesAction"
|
|
48
71
|
},
|
|
@@ -63,17 +86,6 @@
|
|
|
63
86
|
}
|
|
64
87
|
},
|
|
65
88
|
"additionalProperties": false
|
|
66
|
-
},
|
|
67
|
-
"children": {
|
|
68
|
-
"type": "array",
|
|
69
|
-
"items": {
|
|
70
|
-
"$ref": "https://schema.thermidor.coveo.com/definitions/child-ref.schema.json"
|
|
71
|
-
},
|
|
72
|
-
"maxItems": 1000,
|
|
73
|
-
"default": []
|
|
74
|
-
},
|
|
75
|
-
"child": {
|
|
76
|
-
"$ref": "https://schema.thermidor.coveo.com/definitions/child-ref.schema.json"
|
|
77
89
|
}
|
|
78
90
|
},
|
|
79
91
|
"additionalProperties": false,
|
|
@@ -95,19 +107,14 @@
|
|
|
95
107
|
"field": {
|
|
96
108
|
"type": "string",
|
|
97
109
|
"minLength": 1,
|
|
98
|
-
"maxLength": 255,
|
|
99
110
|
"description": "The index field the facet is built on."
|
|
100
111
|
},
|
|
101
112
|
"displayName": {
|
|
102
113
|
"type": "string",
|
|
103
|
-
"minLength": 1,
|
|
104
|
-
"maxLength": 255,
|
|
105
114
|
"description": "Human-readable name for the facet."
|
|
106
115
|
},
|
|
107
116
|
"values": {
|
|
108
117
|
"type": "array",
|
|
109
|
-
"minItems": 0,
|
|
110
|
-
"maxItems": 1000,
|
|
111
118
|
"description": "The facet values available for selection.",
|
|
112
119
|
"items": {
|
|
113
120
|
"$ref": "#/$defs/RegularFacetValue"
|
|
@@ -115,7 +122,7 @@
|
|
|
115
122
|
},
|
|
116
123
|
"hasActiveValues": {
|
|
117
124
|
"type": "boolean",
|
|
118
|
-
"description": "Whether at least one facet value is
|
|
125
|
+
"description": "Whether at least one facet value is selected."
|
|
119
126
|
},
|
|
120
127
|
"canShowMoreValues": {
|
|
121
128
|
"type": "boolean",
|
|
@@ -141,13 +148,11 @@
|
|
|
141
148
|
"value": {
|
|
142
149
|
"type": "string",
|
|
143
150
|
"minLength": 1,
|
|
144
|
-
"maxLength": 1024,
|
|
145
151
|
"description": "The raw facet value."
|
|
146
152
|
},
|
|
147
153
|
"numberOfResults": {
|
|
148
154
|
"type": "integer",
|
|
149
155
|
"minimum": 0,
|
|
150
|
-
"maximum": 999999999,
|
|
151
156
|
"description": "The number of results matching this facet value."
|
|
152
157
|
},
|
|
153
158
|
"state": {
|
|
@@ -158,15 +163,13 @@
|
|
|
158
163
|
"additionalProperties": false
|
|
159
164
|
},
|
|
160
165
|
"RegularFacetSearch": {
|
|
161
|
-
"title": "
|
|
166
|
+
"title": "RegularFacetSearchState",
|
|
162
167
|
"description": "The facet search state for a regular facet.",
|
|
163
168
|
"type": "object",
|
|
164
169
|
"required": ["query", "canShowMoreResults", "results"],
|
|
165
170
|
"properties": {
|
|
166
171
|
"query": {
|
|
167
172
|
"type": "string",
|
|
168
|
-
"minLength": 0,
|
|
169
|
-
"maxLength": 1024,
|
|
170
173
|
"description": "The current facet search query."
|
|
171
174
|
},
|
|
172
175
|
"canShowMoreResults": {
|
|
@@ -175,8 +178,6 @@
|
|
|
175
178
|
},
|
|
176
179
|
"results": {
|
|
177
180
|
"type": "array",
|
|
178
|
-
"minItems": 0,
|
|
179
|
-
"maxItems": 1000,
|
|
180
181
|
"description": "The current facet search results.",
|
|
181
182
|
"items": {
|
|
182
183
|
"$ref": "#/$defs/RegularFacetSearchResult"
|
|
@@ -194,13 +195,11 @@
|
|
|
194
195
|
"value": {
|
|
195
196
|
"type": "string",
|
|
196
197
|
"minLength": 1,
|
|
197
|
-
"
|
|
198
|
-
"description": "The raw facet value. Pass this to toggleSelect/toggleExclude to act on it."
|
|
198
|
+
"description": "The raw facet value. Pass this to toggleSelect to act on it."
|
|
199
199
|
},
|
|
200
200
|
"numberOfResults": {
|
|
201
201
|
"type": "integer",
|
|
202
202
|
"minimum": 0,
|
|
203
|
-
"maximum": 999999999,
|
|
204
203
|
"description": "The number of results matching this facet search value."
|
|
205
204
|
}
|
|
206
205
|
},
|
|
@@ -222,7 +221,6 @@
|
|
|
222
221
|
"value": {
|
|
223
222
|
"type": "string",
|
|
224
223
|
"minLength": 1,
|
|
225
|
-
"maxLength": 1024,
|
|
226
224
|
"description": "The raw facet value to toggle selection for."
|
|
227
225
|
}
|
|
228
226
|
},
|
|
@@ -230,30 +228,6 @@
|
|
|
230
228
|
}
|
|
231
229
|
}
|
|
232
230
|
},
|
|
233
|
-
"RegularFacetToggleExcludeAction": {
|
|
234
|
-
"title": "regularFacetToggleExclude",
|
|
235
|
-
"description": "Toggles the excluded state of a facet value.",
|
|
236
|
-
"allOf": [
|
|
237
|
-
{
|
|
238
|
-
"$ref": "https://schema.thermidor.coveo.com/base/action.schema.json"
|
|
239
|
-
}
|
|
240
|
-
],
|
|
241
|
-
"properties": {
|
|
242
|
-
"payload": {
|
|
243
|
-
"type": "object",
|
|
244
|
-
"required": ["value"],
|
|
245
|
-
"properties": {
|
|
246
|
-
"value": {
|
|
247
|
-
"type": "string",
|
|
248
|
-
"minLength": 1,
|
|
249
|
-
"maxLength": 1024,
|
|
250
|
-
"description": "The raw facet value to toggle exclusion for."
|
|
251
|
-
}
|
|
252
|
-
},
|
|
253
|
-
"additionalProperties": false
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
},
|
|
257
231
|
"RegularFacetToggleSingleSelectAction": {
|
|
258
232
|
"title": "regularFacetToggleSingleSelect",
|
|
259
233
|
"description": "Toggles the selected state of a facet value, deselecting all other values (single-select behavior).",
|
|
@@ -270,7 +244,6 @@
|
|
|
270
244
|
"value": {
|
|
271
245
|
"type": "string",
|
|
272
246
|
"minLength": 1,
|
|
273
|
-
"maxLength": 1024,
|
|
274
247
|
"description": "The raw facet value to single-select."
|
|
275
248
|
}
|
|
276
249
|
},
|
|
@@ -278,33 +251,9 @@
|
|
|
278
251
|
}
|
|
279
252
|
}
|
|
280
253
|
},
|
|
281
|
-
"RegularFacetToggleSingleExcludeAction": {
|
|
282
|
-
"title": "regularFacetToggleSingleExclude",
|
|
283
|
-
"description": "Toggles the excluded state of a facet value, clearing all other selections/exclusions (single-exclude behavior).",
|
|
284
|
-
"allOf": [
|
|
285
|
-
{
|
|
286
|
-
"$ref": "https://schema.thermidor.coveo.com/base/action.schema.json"
|
|
287
|
-
}
|
|
288
|
-
],
|
|
289
|
-
"properties": {
|
|
290
|
-
"payload": {
|
|
291
|
-
"type": "object",
|
|
292
|
-
"required": ["value"],
|
|
293
|
-
"properties": {
|
|
294
|
-
"value": {
|
|
295
|
-
"type": "string",
|
|
296
|
-
"minLength": 1,
|
|
297
|
-
"maxLength": 1024,
|
|
298
|
-
"description": "The raw facet value to single-exclude."
|
|
299
|
-
}
|
|
300
|
-
},
|
|
301
|
-
"additionalProperties": false
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
},
|
|
305
254
|
"RegularFacetClearAllActiveValuesAction": {
|
|
306
255
|
"title": "regularFacetClearAllActiveValues",
|
|
307
|
-
"description": "Resets all facet values to the idle state, clearing every selection
|
|
256
|
+
"description": "Resets all facet values to the idle state, clearing every selection.",
|
|
308
257
|
"allOf": [
|
|
309
258
|
{
|
|
310
259
|
"$ref": "https://schema.thermidor.coveo.com/base/action.schema.json"
|
|
@@ -312,7 +261,7 @@
|
|
|
312
261
|
]
|
|
313
262
|
},
|
|
314
263
|
"RegularFacetSearchAction": {
|
|
315
|
-
"title": "
|
|
264
|
+
"title": "regularFacetSearch",
|
|
316
265
|
"description": "Runs a facet search with the given query.",
|
|
317
266
|
"allOf": [
|
|
318
267
|
{
|
|
@@ -326,8 +275,6 @@
|
|
|
326
275
|
"properties": {
|
|
327
276
|
"query": {
|
|
328
277
|
"type": "string",
|
|
329
|
-
"minLength": 0,
|
|
330
|
-
"maxLength": 1024,
|
|
331
278
|
"description": "The facet search query to run."
|
|
332
279
|
}
|
|
333
280
|
},
|
|
@@ -354,7 +301,7 @@
|
|
|
354
301
|
]
|
|
355
302
|
},
|
|
356
303
|
"RegularFacetShowMoreValuesAction": {
|
|
357
|
-
"title": "
|
|
304
|
+
"title": "regularFacetShowMoreValues",
|
|
358
305
|
"description": "Increases the number of facet values shown.",
|
|
359
306
|
"allOf": [
|
|
360
307
|
{
|
|
@@ -363,7 +310,7 @@
|
|
|
363
310
|
]
|
|
364
311
|
},
|
|
365
312
|
"RegularFacetShowLessValuesAction": {
|
|
366
|
-
"title": "
|
|
313
|
+
"title": "regularFacetShowLessValues",
|
|
367
314
|
"description": "Decreases the number of facet values shown.",
|
|
368
315
|
"allOf": [
|
|
369
316
|
{
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://schema.thermidor.coveo.com/components/search-box.schema.json",
|
|
4
|
+
"title": "SearchBox",
|
|
5
|
+
"description": "Draws the search input. What is typed and which suggestion is highlighted stay on the renderer side, which passes them to the search box's children; what submitting does is the application's.",
|
|
6
|
+
"allOf": [
|
|
7
|
+
{
|
|
8
|
+
"$ref": "https://schema.thermidor.coveo.com/base/component.schema.json"
|
|
9
|
+
}
|
|
10
|
+
],
|
|
11
|
+
"properties": {
|
|
12
|
+
"id": {
|
|
13
|
+
"type": "string"
|
|
14
|
+
},
|
|
15
|
+
"component": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"const": "SearchBox"
|
|
18
|
+
},
|
|
19
|
+
"suggestionsChild": {
|
|
20
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/component-id.schema.json",
|
|
21
|
+
"description": "The suggestions named slot: a static ComponentId of the QuerySuggestions node that draws the completions, mounted by name via children(suggestionsChild)."
|
|
22
|
+
},
|
|
23
|
+
"instantProductsChild": {
|
|
24
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/component-id.schema.json",
|
|
25
|
+
"description": "The instant products named slot: a static ComponentId of the InstantProducts node that draws the products for the highlighted query, mounted by name via children(instantProductsChild)."
|
|
26
|
+
},
|
|
27
|
+
"state": {
|
|
28
|
+
"$ref": "#/$defs/SearchBoxState"
|
|
29
|
+
},
|
|
30
|
+
"actions": {
|
|
31
|
+
"type": "object",
|
|
32
|
+
"properties": {},
|
|
33
|
+
"additionalProperties": false
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"additionalProperties": false,
|
|
37
|
+
"$defs": {
|
|
38
|
+
"SearchBoxState": {
|
|
39
|
+
"title": "SearchBoxState",
|
|
40
|
+
"description": "Empty: what is typed and the highlight stay on the renderer side.",
|
|
41
|
+
"type": "object",
|
|
42
|
+
"required": [],
|
|
43
|
+
"properties": {},
|
|
44
|
+
"additionalProperties": false
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://schema.thermidor.coveo.com/components/session-shell.schema.json",
|
|
4
|
+
"title": "SessionShell",
|
|
5
|
+
"description": "Root of the surface that lives for the whole session. Its children are the components that exist for the whole session; other surfaces stay independent of it. Dispatches initialize to open the session.",
|
|
6
|
+
"allOf": [
|
|
7
|
+
{
|
|
8
|
+
"$ref": "https://schema.thermidor.coveo.com/base/component.schema.json"
|
|
9
|
+
}
|
|
10
|
+
],
|
|
11
|
+
"properties": {
|
|
12
|
+
"id": {
|
|
13
|
+
"type": "string"
|
|
14
|
+
},
|
|
15
|
+
"component": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"const": "SessionShell"
|
|
18
|
+
},
|
|
19
|
+
"children": {
|
|
20
|
+
"$ref": "https://schema.thermidor.coveo.com/definitions/child-list.schema.json",
|
|
21
|
+
"description": "The components that exist for the whole session, a ChildList of ComponentId references mounted in order via children(id).",
|
|
22
|
+
"$comment": "Homogeneous ordered-list composition: the ordered list is the semantics; child ids are static, passed through unresolved."
|
|
23
|
+
},
|
|
24
|
+
"state": {
|
|
25
|
+
"$ref": "#/$defs/SessionShellState"
|
|
26
|
+
},
|
|
27
|
+
"actions": {
|
|
28
|
+
"type": "object",
|
|
29
|
+
"required": ["initialize"],
|
|
30
|
+
"properties": {
|
|
31
|
+
"initialize": {
|
|
32
|
+
"$ref": "#/$defs/InitializeAction"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"additionalProperties": false
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"additionalProperties": false,
|
|
39
|
+
"$defs": {
|
|
40
|
+
"SessionShellState": {
|
|
41
|
+
"title": "SessionShellState",
|
|
42
|
+
"description": "Empty: the shell holds no business data.",
|
|
43
|
+
"type": "object",
|
|
44
|
+
"required": [],
|
|
45
|
+
"properties": {},
|
|
46
|
+
"additionalProperties": false
|
|
47
|
+
},
|
|
48
|
+
"InitializeAction": {
|
|
49
|
+
"title": "initialize",
|
|
50
|
+
"description": "Opens the session. Sent before any component exists, with no surface id or source component, and only without a session token.",
|
|
51
|
+
"allOf": [
|
|
52
|
+
{
|
|
53
|
+
"$ref": "https://schema.thermidor.coveo.com/base/action.schema.json"
|
|
54
|
+
}
|
|
55
|
+
],
|
|
56
|
+
"properties": {
|
|
57
|
+
"payload": {
|
|
58
|
+
"type": "object",
|
|
59
|
+
"properties": {},
|
|
60
|
+
"additionalProperties": false
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|