@depict-ai/ui 0.0.53 → 0.0.54

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/dist/index.d.ts CHANGED
@@ -9,7 +9,7 @@ import { SearchSuggestionsRequest } from "@depict-ai/types/api/SearchSuggestions
9
9
  import { ProductListingRequest } from "@depict-ai/types/api/ProductListingRequest";
10
10
  import { ProductListingResponse, BaseCategoryDisplay } from "@depict-ai/types/api/ProductListingResponse";
11
11
  import { JSX as _JSX1 } from "solid-js/types/jsx";
12
- export const version = "0.0.53";
12
+ export const version = "0.0.54";
13
13
  type ExclusiveId = {
14
14
  categoryId: string;
15
15
  productId?: undefined;
@@ -349,6 +349,61 @@ interface SearchFieldParams {
349
349
  aligner_ref?: HTMLElement | null;
350
350
  }
351
351
  export function SearchField({ depict_search, modal_dispose_handler, click_handler, aligner_ref, }: SearchFieldParams): Node_Array;
352
+ export type DepictBaseConfig = {
353
+ /**
354
+ * The merchant to use for the search.
355
+ * @example "YOUR_MERCHANT", "stronger"
356
+ */
357
+ merchant: string;
358
+ /**
359
+ * The market to use for the search.
360
+ * @example "YOUR_MARKET", "no", "en-de"
361
+ */
362
+ market: string;
363
+ };
364
+ export type DepictSearchConfig = {
365
+ /**
366
+ * The path to the search page.
367
+ * @example "/search", "/sok"
368
+ */
369
+ searchPagePath: string;
370
+ /**
371
+ * The name of the url parameter that will be used for the search query.
372
+ * @example "q", "search_query"
373
+ * @default "search_query"
374
+ */
375
+ urlParamName?: string;
376
+ /**
377
+ * Whether to enable category suggestions in the search modal and search page.
378
+ * @default false
379
+ */
380
+ enableCategorySuggestions?: boolean;
381
+ };
382
+ export interface BaseSearchPageConfig extends BasePLPConfig {
383
+ /**
384
+ * Whether to show the search input field in the search page.
385
+ * @default true
386
+ */
387
+ includeInputField?: boolean;
388
+ }
389
+ export interface BasePLPConfig {
390
+ /**
391
+ * How many columns to show at each media size.
392
+ * @default
393
+ * [[2, 901], [3, 1024], [4]]
394
+ * @example
395
+ * [[2, 901], [3, 1024], [4]]
396
+ * means 2 columns at sizes up to 901px, 3 columns at sizes up to 1024px and after that 4 columns at any viewport size.
397
+ */
398
+ columnsAtSize?: SDKColsAtSize;
399
+ /**
400
+ * The spacing between products.
401
+ * @default "2%"
402
+ * @example
403
+ * "2%", "10px", "1rem", {horizontal: "1%", vertical: "5px"}
404
+ */
405
+ gridSpacing?: SDKGridSpacing;
406
+ }
352
407
  type CenteredLocation = {
353
408
  location?: "centered";
354
409
  };
package/dist/main.js CHANGED
@@ -33,7 +33,7 @@ $parcel$export(module.exports, "solid_format_price", () => $5fc9fc23df1591db$exp
33
33
  $parcel$export(module.exports, "connect_search_field_height_to_aligner_height", () => $246e3e89a097f014$export$828dcdd425fd3231);
34
34
  $parcel$export(module.exports, "PageReplacer", () => $37e96a5ebc768cc7$export$3ccaa27d81dd8556);
35
35
  $parcel$export(module.exports, "version", () => $ae93561d5649a847$export$83d89fbfd8236492);
36
- /*! Depict.ai search and product listing SDK */ const $ae93561d5649a847$export$83d89fbfd8236492 = "0.0.53";
36
+ /*! Depict.ai search and product listing SDK */ const $ae93561d5649a847$export$83d89fbfd8236492 = "0.0.54";
37
37
 
38
38
 
39
39
 
@@ -5074,7 +5074,7 @@ function $068a627cc18f7bb6$var$get_shared_properties(depict_category) {
5074
5074
 
5075
5075
 
5076
5076
 
5077
- const $853f821e60bd06ea$var$_tmpl$ = /*@__PURE__*/ (0, /*@__PURE__*/$46MJV$solidjsweb.template)(`<div class="category-title"><h2 class="title"></h2><span class="explanation"> — </span></div>`, 6);
5077
+ const $853f821e60bd06ea$var$_tmpl$ = /*@__PURE__*/ (0, /*@__PURE__*/$46MJV$solidjsweb.template)(`<div class="category-title"><h1 class="title"></h1><span class="explanation"> — </span></div>`, 6);
5078
5078
  const $853f821e60bd06ea$export$b91cec6bdc6b32a1 = /*@__PURE__*/ (()=>{
5079
5079
  const actual_function = ({ category_title_: category_title_ , product_count_: product_count_ })=>{
5080
5080
  return (()=>{
package/dist/module.js CHANGED
@@ -2,7 +2,7 @@ import {add_to_version_info as $g9l4l$add_to_version_info, fetch_recs as $g9l4l$
2
2
  import {template as $g9l4l$template, insert as $g9l4l$insert, effect as $g9l4l$effect, setAttribute as $g9l4l$setAttribute, createComponent as $g9l4l$createComponent, use as $g9l4l$use, addEventListener as $g9l4l$addEventListener, delegateEvents as $g9l4l$delegateEvents, spread as $g9l4l$spread, memo as $g9l4l$memo, style as $g9l4l$style, mergeProps as $g9l4l$mergeProps, classList as $g9l4l$classList, className as $g9l4l$className} from "solid-js/web";
3
3
  import {createSignal as $g9l4l$createSignal, onCleanup as $g9l4l$onCleanup, createComputed as $g9l4l$createComputed, createEffect as $g9l4l$createEffect, untrack as $g9l4l$untrack, batch as $g9l4l$batch, createResource as $g9l4l$createResource, createMemo as $g9l4l$createMemo, Show as $g9l4l$Show, createRenderEffect as $g9l4l$createRenderEffect, runWithOwner as $g9l4l$runWithOwner, createRoot as $g9l4l$createRoot, getOwner as $g9l4l$getOwner, on as $g9l4l$on, Index as $g9l4l$Index, For as $g9l4l$For, ErrorBoundary as $g9l4l$ErrorBoundary} from "solid-js";
4
4
 
5
- /*! Depict.ai search and product listing SDK */ const $18bf1d29fb889cca$export$83d89fbfd8236492 = "0.0.53";
5
+ /*! Depict.ai search and product listing SDK */ const $18bf1d29fb889cca$export$83d89fbfd8236492 = "0.0.54";
6
6
 
7
7
 
8
8
 
@@ -5043,7 +5043,7 @@ function $ec52ef1e6c117813$var$get_shared_properties(depict_category) {
5043
5043
 
5044
5044
 
5045
5045
 
5046
- const $6340962f8bafd049$var$_tmpl$ = /*@__PURE__*/ (0, /*@__PURE__*/$g9l4l$template)(`<div class="category-title"><h2 class="title"></h2><span class="explanation"> — </span></div>`, 6);
5046
+ const $6340962f8bafd049$var$_tmpl$ = /*@__PURE__*/ (0, /*@__PURE__*/$g9l4l$template)(`<div class="category-title"><h1 class="title"></h1><span class="explanation"> — </span></div>`, 6);
5047
5047
  const $6340962f8bafd049$export$b91cec6bdc6b32a1 = /*@__PURE__*/ (()=>{
5048
5048
  const actual_function = ({ category_title_: category_title_ , product_count_: product_count_ })=>{
5049
5049
  return (()=>{
@@ -0,0 +1,197 @@
1
+ /* tslint:disable */
2
+ /**
3
+ * This file was automatically generated by json-schema-to-typescript.
4
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
5
+ * and run json-schema-to-typescript to regenerate this file.
6
+ */
7
+
8
+ /**
9
+ * An enumeration.
10
+ */
11
+ export type SortingOrder = "asc" | "desc";
12
+
13
+ export interface BaseSearchRequest {
14
+ tenant: string;
15
+ market: string;
16
+ /**
17
+ * List of filters to apply to the results.
18
+ */
19
+ filters?: SearchFilter[];
20
+ /**
21
+ * Specifies the sorting method. By default, the results are ordered by relevance. To find the possible values for this field, query the endpoint and look at the `sorts` field.
22
+ */
23
+ sort?: SortModel;
24
+ /**
25
+ * User identifier
26
+ */
27
+ user_id?: string;
28
+ /**
29
+ * Session identifier
30
+ */
31
+ session_id?: string;
32
+ /**
33
+ * Populated for integrations performed by Depict.ai only. Depict.ai Session Id
34
+ */
35
+ dsid?: string;
36
+ /**
37
+ * Metadata that can be used to modify the behaviour of the search.
38
+ */
39
+ metadata?: {
40
+ [k: string]: string;
41
+ };
42
+ /**
43
+ * The search query.
44
+ */
45
+ query?: string;
46
+ }
47
+ export interface SearchFilter {
48
+ /**
49
+ * The field to filter by.
50
+ */
51
+ field: string;
52
+ /**
53
+ * The operation used for filtering. The filtering should be read as `field op data`, for example `brand in ["Nike", "Adidas"]`.
54
+ */
55
+ op: "eq" | "neq" | "in" | "nin" | "leq" | "geq" | "inrange";
56
+ /**
57
+ * Data for the filter.
58
+ */
59
+ data?:
60
+ | ("true" | "false")
61
+ | number
62
+ | number
63
+ | string
64
+ | [number, number]
65
+ | [number, number]
66
+ | [number, number]
67
+ | [number, number]
68
+ | (
69
+ | ("true" | "false")
70
+ | number
71
+ | number
72
+ | string
73
+ | [number, number]
74
+ | [number, number]
75
+ | [number, number]
76
+ | [number, number]
77
+ )[]
78
+ | (("true" | "false") | number | number | string)[][];
79
+ /**
80
+ * Metadata about the filter that can be used for rendering. For example, this could contain the possible values to filter by and their counts in the results.
81
+ */
82
+ meta?: RangeFilterMeta | ValuesFilterMeta | HierarchicalValuesFilterMeta;
83
+ /**
84
+ * ID of the filter. If multiple filters share the same ID, they should be grouped together in the UI.
85
+ */
86
+ id?: string;
87
+ }
88
+ export interface RangeFilterMeta {
89
+ /**
90
+ * Title of the group, where a group consists of all the filters that share an ID.
91
+ */
92
+ group_title?: string;
93
+ /**
94
+ * Whether the filter group should be expanded by default or not.
95
+ */
96
+ group_expanded?: boolean;
97
+ type?: "range";
98
+ /**
99
+ * The minimum value that can be selected in the range.
100
+ */
101
+ min: number;
102
+ /**
103
+ * The maximum value that can be selected in the range.
104
+ */
105
+ max: number;
106
+ /**
107
+ * The unit of the range values.
108
+ */
109
+ unit?: string;
110
+ /**
111
+ * The currency of the range values.
112
+ */
113
+ currency?: string;
114
+ }
115
+ export interface ValuesFilterMeta {
116
+ /**
117
+ * Title of the group, where a group consists of all the filters that share an ID.
118
+ */
119
+ group_title?: string;
120
+ /**
121
+ * Whether the filter group should be expanded by default or not.
122
+ */
123
+ group_expanded?: boolean;
124
+ /**
125
+ * Type of filter.
126
+ */
127
+ type?: "radio" | "checkbox" | "checkbox-grid";
128
+ /**
129
+ * Selectable values
130
+ */
131
+ values: (
132
+ | ("true" | "false")
133
+ | number
134
+ | number
135
+ | string
136
+ | [number, number]
137
+ | [number, number]
138
+ | [number, number]
139
+ | [number, number]
140
+ )[];
141
+ /**
142
+ * Counts for values
143
+ */
144
+ counts?: number[];
145
+ /**
146
+ * Names for values
147
+ */
148
+ names?: string[];
149
+ }
150
+ export interface HierarchicalValuesFilterMeta {
151
+ /**
152
+ * Title of the group, where a group consists of all the filters that share an ID.
153
+ */
154
+ group_title?: string;
155
+ /**
156
+ * Whether the filter group should be expanded by default or not.
157
+ */
158
+ group_expanded?: boolean;
159
+ type?: "checkbox-hierarchical";
160
+ /**
161
+ * Selectable hierarchical values
162
+ */
163
+ values: (("true" | "false") | number | number | string)[][];
164
+ /**
165
+ * Counts for values
166
+ */
167
+ counts?: number[];
168
+ /**
169
+ * Names for hierarchical values
170
+ */
171
+ names?: string[];
172
+ }
173
+ export interface SortModel {
174
+ /**
175
+ * The field to sort by.
176
+ */
177
+ field: string;
178
+ /**
179
+ * The order to sort by.
180
+ */
181
+ order: SortingOrder;
182
+ /**
183
+ * Metadata about the sort that can be used for rendering.
184
+ */
185
+ meta?: SortMeta;
186
+ }
187
+ export interface SortMeta {
188
+ title: string;
189
+ /**
190
+ * Selectable values
191
+ */
192
+ values?: SortingOrder[];
193
+ /**
194
+ * Names for orders
195
+ */
196
+ names?: string[];
197
+ }
@@ -0,0 +1,14 @@
1
+ /* tslint:disable */
2
+ /**
3
+ * This file was automatically generated by json-schema-to-typescript.
4
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
5
+ * and run json-schema-to-typescript to regenerate this file.
6
+ */
7
+
8
+ export interface ProductListingQueriesRequest {
9
+ tenant: string;
10
+ market: string;
11
+ metadata?: {
12
+ [k: string]: string;
13
+ };
14
+ }
@@ -0,0 +1,10 @@
1
+ /* tslint:disable */
2
+ /**
3
+ * This file was automatically generated by json-schema-to-typescript.
4
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
5
+ * and run json-schema-to-typescript to regenerate this file.
6
+ */
7
+
8
+ export interface ProductListingQueriesResponse {
9
+ query_ids?: string[];
10
+ }
@@ -0,0 +1,221 @@
1
+ /* tslint:disable */
2
+ /**
3
+ * This file was automatically generated by json-schema-to-typescript.
4
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
5
+ * and run json-schema-to-typescript to regenerate this file.
6
+ */
7
+
8
+ /**
9
+ * An enumeration.
10
+ */
11
+ export type SortingOrder = "asc" | "desc";
12
+
13
+ export interface ProductListingRequest {
14
+ /**
15
+ * Deprecated, do not use. Will be removed.
16
+ */
17
+ page?: number;
18
+ /**
19
+ * Deprecated, do not use. Will be removed.
20
+ */
21
+ hits_per_page?: number;
22
+ /**
23
+ * Used for cursor-based pagination. Set it to the cursor from the last response. If not set, will return the first results.
24
+ */
25
+ cursor?: string;
26
+ /**
27
+ * Maximum number of results per response.
28
+ */
29
+ limit?: number;
30
+ tenant: string;
31
+ market: string;
32
+ /**
33
+ * List of filters to apply to the results.
34
+ */
35
+ filters?: SearchFilter[];
36
+ /**
37
+ * Specifies the sorting method. By default, the results are ordered by relevance. To find the possible values for this field, query the endpoint and look at the `sorts` field.
38
+ */
39
+ sort?: SortModel;
40
+ /**
41
+ * User identifier
42
+ */
43
+ user_id?: string;
44
+ /**
45
+ * Session identifier
46
+ */
47
+ session_id?: string;
48
+ /**
49
+ * Populated for integrations performed by Depict.ai only. Depict.ai Session Id
50
+ */
51
+ dsid?: string;
52
+ /**
53
+ * Metadata that can be used to modify the behaviour of the search.
54
+ */
55
+ metadata?: {
56
+ [k: string]: string;
57
+ };
58
+ /**
59
+ * ID of the page to get products for. This is typically the slug, for example `hoodies-and-sweaters`.
60
+ */
61
+ query_id: string;
62
+ /**
63
+ * Disables rules to hide products.
64
+ */
65
+ show_hidden_products?: boolean;
66
+ /**
67
+ * Whether to return grouping IDs or not.
68
+ */
69
+ return_grouping_ids?: boolean;
70
+ }
71
+ export interface SearchFilter {
72
+ /**
73
+ * The field to filter by.
74
+ */
75
+ field: string;
76
+ /**
77
+ * The operation used for filtering. The filtering should be read as `field op data`, for example `brand in ["Nike", "Adidas"]`.
78
+ */
79
+ op: "eq" | "neq" | "in" | "nin" | "leq" | "geq" | "inrange";
80
+ /**
81
+ * Data for the filter.
82
+ */
83
+ data?:
84
+ | ("true" | "false")
85
+ | number
86
+ | number
87
+ | string
88
+ | [number, number]
89
+ | [number, number]
90
+ | [number, number]
91
+ | [number, number]
92
+ | (
93
+ | ("true" | "false")
94
+ | number
95
+ | number
96
+ | string
97
+ | [number, number]
98
+ | [number, number]
99
+ | [number, number]
100
+ | [number, number]
101
+ )[]
102
+ | (("true" | "false") | number | number | string)[][];
103
+ /**
104
+ * Metadata about the filter that can be used for rendering. For example, this could contain the possible values to filter by and their counts in the results.
105
+ */
106
+ meta?: RangeFilterMeta | ValuesFilterMeta | HierarchicalValuesFilterMeta;
107
+ /**
108
+ * ID of the filter. If multiple filters share the same ID, they should be grouped together in the UI.
109
+ */
110
+ id?: string;
111
+ }
112
+ export interface RangeFilterMeta {
113
+ /**
114
+ * Title of the group, where a group consists of all the filters that share an ID.
115
+ */
116
+ group_title?: string;
117
+ /**
118
+ * Whether the filter group should be expanded by default or not.
119
+ */
120
+ group_expanded?: boolean;
121
+ type?: "range";
122
+ /**
123
+ * The minimum value that can be selected in the range.
124
+ */
125
+ min: number;
126
+ /**
127
+ * The maximum value that can be selected in the range.
128
+ */
129
+ max: number;
130
+ /**
131
+ * The unit of the range values.
132
+ */
133
+ unit?: string;
134
+ /**
135
+ * The currency of the range values.
136
+ */
137
+ currency?: string;
138
+ }
139
+ export interface ValuesFilterMeta {
140
+ /**
141
+ * Title of the group, where a group consists of all the filters that share an ID.
142
+ */
143
+ group_title?: string;
144
+ /**
145
+ * Whether the filter group should be expanded by default or not.
146
+ */
147
+ group_expanded?: boolean;
148
+ /**
149
+ * Type of filter.
150
+ */
151
+ type?: "radio" | "checkbox" | "checkbox-grid";
152
+ /**
153
+ * Selectable values
154
+ */
155
+ values: (
156
+ | ("true" | "false")
157
+ | number
158
+ | number
159
+ | string
160
+ | [number, number]
161
+ | [number, number]
162
+ | [number, number]
163
+ | [number, number]
164
+ )[];
165
+ /**
166
+ * Counts for values
167
+ */
168
+ counts?: number[];
169
+ /**
170
+ * Names for values
171
+ */
172
+ names?: string[];
173
+ }
174
+ export interface HierarchicalValuesFilterMeta {
175
+ /**
176
+ * Title of the group, where a group consists of all the filters that share an ID.
177
+ */
178
+ group_title?: string;
179
+ /**
180
+ * Whether the filter group should be expanded by default or not.
181
+ */
182
+ group_expanded?: boolean;
183
+ type?: "checkbox-hierarchical";
184
+ /**
185
+ * Selectable hierarchical values
186
+ */
187
+ values: (("true" | "false") | number | number | string)[][];
188
+ /**
189
+ * Counts for values
190
+ */
191
+ counts?: number[];
192
+ /**
193
+ * Names for hierarchical values
194
+ */
195
+ names?: string[];
196
+ }
197
+ export interface SortModel {
198
+ /**
199
+ * The field to sort by.
200
+ */
201
+ field: string;
202
+ /**
203
+ * The order to sort by.
204
+ */
205
+ order: SortingOrder;
206
+ /**
207
+ * Metadata about the sort that can be used for rendering.
208
+ */
209
+ meta?: SortMeta;
210
+ }
211
+ export interface SortMeta {
212
+ title: string;
213
+ /**
214
+ * Selectable values
215
+ */
216
+ values?: SortingOrder[];
217
+ /**
218
+ * Names for orders
219
+ */
220
+ names?: string[];
221
+ }