@depict-ai/react-ui 0.0.56 → 0.0.57
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 +130 -21
- package/dist/main.js +188 -83
- package/dist/module.js +180 -79
- package/dist/styles/components/PLP/Buttons.scss +3 -3
- package/dist/styles/components/PLP/MorphingSign.scss +2 -3
- package/dist/styles/components/PLP/ScrollStatus.scss +1 -1
- package/dist/styles/components/PLP/SlidableItems.scss +1 -1
- package/dist/styles/components/PLP/SortAndFilter/SortAndFilter.scss +35 -21
- package/dist/styles/components/PLP/SortAndFilter/SortAndFilterModal.scss +2 -4
- package/dist/styles/components/PLP/SortAndFilter/WhiteSortAndFilter.scss +2 -2
- package/dist/styles/components/PLP/index.scss +0 -2
- package/dist/styles/components/category/index.scss +3 -3
- package/dist/styles/components/search/Autocomplete.scss +97 -18
- package/dist/styles/components/search/CategorySuggestions.scss +8 -0
- package/dist/styles/components/search/InstantCard.scss +5 -0
- package/dist/styles/components/search/InstantResults.scss +2 -0
- package/dist/styles/components/search/PreviousSearches.scss +15 -3
- package/dist/styles/components/search/QueryInput.scss +19 -7
- package/dist/styles/components/search/SearchModal.scss +0 -1
- package/dist/styles/components/search/index.scss +3 -3
- package/dist/styles/default.css +1 -1
- package/dist/styles/helpers/custom_input.scss +38 -6
- package/dist/styles/helpers/supports-hover.scss +2 -0
- package/dist/styles/helpers/utils.scss +9 -1
- package/dist/styles/variables.scss +4 -2
- package/dist-server/index.d.ts +12 -2
- package/dist-server/main.js +25 -4
- package/dist-server/module.js +22 -4
- package/package.json +7 -4
package/dist/module.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {dlog as $TZSbU$dlog, href_change_ipns as $TZSbU$href_change_ipns, catchify as $TZSbU$catchify, observer as $TZSbU$observer, history_replacer as $TZSbU$history_replacer, queueMacroTask as $TZSbU$queueMacroTask, ContainedPlaceholderImage as $TZSbU$ContainedPlaceholderImage, Placeholder as $TZSbU$Placeholder} from "@depict-ai/utilishared";
|
|
2
|
-
import {add_to_version_info as $TZSbU$add_to_version_info, SearchField as $TZSbU$SearchField, DepictSearch as $TZSbU$DepictSearch, DepictCategory as $TZSbU$DepictCategory, get_search_query_updating_blocked_signal as $TZSbU$get_search_query_updating_blocked_signal, SearchPage as $TZSbU$SearchPage, CategoryPage as $TZSbU$CategoryPage,
|
|
3
|
-
import {untrack as $TZSbU$untrack, createComponent as $TZSbU$createComponent, Show as $TZSbU$Show, onCleanup as $TZSbU$onCleanup, createSignal as $TZSbU$createSignal, createComputed as $TZSbU$createComputed} from "solid-js";
|
|
2
|
+
import {add_to_version_info as $TZSbU$add_to_version_info, CategoryTitle as $43099132aad1ceb6$re_export$CategoryTitle, embedded_num_products as $43099132aad1ceb6$re_export$EmbeddedNumProducts, SearchField as $TZSbU$SearchField, DepictSearch as $TZSbU$DepictSearch, DepictCategory as $TZSbU$DepictCategory, get_search_query_updating_blocked_signal as $TZSbU$get_search_query_updating_blocked_signal, SearchPage as $TZSbU$SearchPage, CategoryPage as $TZSbU$CategoryPage, BreadCrumbs as $TZSbU$BreadCrumbs, QuickLinks as $TZSbU$QuickLinks, styles_to_valid_css_string as $TZSbU$styles_to_valid_css_string, align_field as $TZSbU$align_field} from "@depict-ai/ui";
|
|
3
|
+
import {untrack as $TZSbU$untrack, createComponent as $TZSbU$createComponent, Show as $TZSbU$Show, onCleanup as $TZSbU$onCleanup, createSignal as $TZSbU$createSignal, createRoot as $TZSbU$createRoot, createComputed as $TZSbU$createComputed} from "solid-js";
|
|
4
4
|
import {render as $TZSbU$render} from "solid-js/web";
|
|
5
|
-
import {useState as $TZSbU$useState, useRef as $TZSbU$useRef, useEffect as $TZSbU$useEffect, createElement as $TZSbU$createElement, Fragment as $TZSbU$Fragment} from "react";
|
|
5
|
+
import {useState as $TZSbU$useState, useRef as $TZSbU$useRef, useEffect as $TZSbU$useEffect, createElement as $TZSbU$createElement, Fragment as $TZSbU$Fragment, forwardRef as $TZSbU$forwardRef} from "react";
|
|
6
6
|
import {jsx as $TZSbU$jsx} from "react/jsx-runtime";
|
|
7
7
|
import {createPortal as $TZSbU$createPortal} from "react-dom";
|
|
8
8
|
import {en as $TZSbU$en} from "@depict-ai/ui/locales";
|
|
@@ -15,7 +15,7 @@ import {en as $TZSbU$en} from "@depict-ai/ui/locales";
|
|
|
15
15
|
const $42858f023ef23dab$export$8e769ad4338a911e = {
|
|
16
16
|
search: null,
|
|
17
17
|
category: null,
|
|
18
|
-
|
|
18
|
+
category_path: null,
|
|
19
19
|
search_page_path_: (0, $TZSbU$createSignal)(),
|
|
20
20
|
required_state_set_: (0, $TZSbU$createSignal)(false)
|
|
21
21
|
};
|
|
@@ -33,8 +33,11 @@ function $c83ba9ab79386687$export$74f3924c5027fe1d(cb) {
|
|
|
33
33
|
(async ()=>{
|
|
34
34
|
for await (const href of (0, $TZSbU$href_change_ipns))$c83ba9ab79386687$var$run_on_href_change?.(href);
|
|
35
35
|
})();
|
|
36
|
-
const $c83ba9ab79386687$export$
|
|
37
|
-
|
|
36
|
+
const $c83ba9ab79386687$export$775e6b3892b5ad52 = (url)=>url.pathname == (0, $TZSbU$untrack)((0, $42858f023ef23dab$export$8e769ad4338a911e).search_page_path_[0]); // might have changed therefore get it from globalState
|
|
37
|
+
const $c83ba9ab79386687$export$92a8f8b3c630fa0d = (url)=>{
|
|
38
|
+
return $c83ba9ab79386687$export$775e6b3892b5ad52(url) || url.pathname === (0, $42858f023ef23dab$export$8e769ad4338a911e).category_path;
|
|
39
|
+
};
|
|
40
|
+
function $c83ba9ab79386687$export$f6e64e17bd69eeef(solid_component, props, wrapper_type = "div", wrapper_style = {}, react_render_handler) {
|
|
38
41
|
const [portals, set_portals] = (0, $TZSbU$useState)([]);
|
|
39
42
|
const wrapper_element_ref = (0, $TZSbU$useRef)();
|
|
40
43
|
(0, $TZSbU$useEffect)(()=>{
|
|
@@ -42,17 +45,17 @@ function $c83ba9ab79386687$export$f6e64e17bd69eeef(solid_component, props, wrapp
|
|
|
42
45
|
const dispose = (0, $TZSbU$render)(()=>solid_component(props, set_portals), wrapper_element);
|
|
43
46
|
return dispose;
|
|
44
47
|
}, []);
|
|
45
|
-
|
|
48
|
+
react_render_handler?.(props);
|
|
46
49
|
return (0, $TZSbU$createElement)(wrapper_type, {
|
|
47
50
|
ref: wrapper_element_ref,
|
|
48
51
|
style: wrapper_style
|
|
49
52
|
}, portals);
|
|
50
53
|
}
|
|
51
|
-
function $c83ba9ab79386687$export$e5139bbbb9a05035(component) {
|
|
54
|
+
function $c83ba9ab79386687$export$e5139bbbb9a05035(component, is_set = (0, $42858f023ef23dab$export$8e769ad4338a911e).required_state_set_[0]) {
|
|
52
55
|
return (...args)=>{
|
|
53
56
|
return (0, $TZSbU$createComponent)((0, $TZSbU$Show), {
|
|
54
57
|
get when () {
|
|
55
|
-
return (
|
|
58
|
+
return is_set();
|
|
56
59
|
},
|
|
57
60
|
get children () {
|
|
58
61
|
return component(...args);
|
|
@@ -96,7 +99,7 @@ async function $c83ba9ab79386687$export$79c79419c1ef0081({ display: display , in
|
|
|
96
99
|
|
|
97
100
|
|
|
98
101
|
|
|
99
|
-
function $
|
|
102
|
+
function $02e2452814b6e7d6$export$4c0fa313cf50c4ad() {
|
|
100
103
|
return (0, $c83ba9ab79386687$export$f6e64e17bd69eeef)((0, $c83ba9ab79386687$export$e5139bbbb9a05035)(()=>(0, $TZSbU$SearchField)({
|
|
101
104
|
depict_search: (0, $42858f023ef23dab$export$8e769ad4338a911e).search
|
|
102
105
|
})), {});
|
|
@@ -160,9 +163,8 @@ function $8071251ee4e9ffa1$var$removeLotsOfPadding() {
|
|
|
160
163
|
|
|
161
164
|
|
|
162
165
|
|
|
163
|
-
|
|
164
166
|
const $7216ca4c8308a0f9$export$599d4515591ef232 = (href)=>{
|
|
165
|
-
const shallow = (0, $c83ba9ab79386687$export$
|
|
167
|
+
const shallow = (0, $c83ba9ab79386687$export$92a8f8b3c630fa0d)(location);
|
|
166
168
|
window.next.router.push(href, undefined, {
|
|
167
169
|
shallow: shallow,
|
|
168
170
|
scroll: true
|
|
@@ -170,7 +172,8 @@ const $7216ca4c8308a0f9$export$599d4515591ef232 = (href)=>{
|
|
|
170
172
|
};
|
|
171
173
|
|
|
172
174
|
|
|
173
|
-
|
|
175
|
+
|
|
176
|
+
function $5376eb2a386cd90d$export$9fac37a9c21c2f3b(props) {
|
|
174
177
|
const { children: children , navigateFunction: navigateFunction , market: market , merchant: merchant , locale: locale } = props;
|
|
175
178
|
const usedLocale = locale ?? (0, $TZSbU$en);
|
|
176
179
|
const { searchPagePath: searchPagePath , urlParamName: urlParamName , enableCategorySuggestions: enableCategorySuggestions } = props.search ?? {};
|
|
@@ -186,8 +189,7 @@ function $faf794495ff8b304$export$9fac37a9c21c2f3b(props) {
|
|
|
186
189
|
if (navigateFunction) navigateFunction(new_href);
|
|
187
190
|
else (0, $7216ca4c8308a0f9$export$599d4515591ef232)(new_href);
|
|
188
191
|
} : undefined;
|
|
189
|
-
if (!search) {
|
|
190
|
-
(0, $42858f023ef23dab$export$8e769ad4338a911e).search = new (0, $TZSbU$DepictSearch)({
|
|
192
|
+
if (!search) (0, $TZSbU$createRoot)(()=>(0, $42858f023ef23dab$export$8e769ad4338a911e).search = new (0, $TZSbU$DepictSearch)({
|
|
191
193
|
search_query_url_param_name: urlParamName,
|
|
192
194
|
market: market,
|
|
193
195
|
merchant: merchant,
|
|
@@ -196,24 +198,24 @@ function $faf794495ff8b304$export$9fac37a9c21c2f3b(props) {
|
|
|
196
198
|
localization: usedLocale,
|
|
197
199
|
url_transformer: (url)=>url.pathname = (0, $TZSbU$untrack)(get_search_page_path),
|
|
198
200
|
on_navigation: on_navigation
|
|
199
|
-
});
|
|
200
|
-
|
|
201
|
-
} else {
|
|
201
|
+
}));
|
|
202
|
+
else {
|
|
202
203
|
search.market = market;
|
|
203
204
|
search.merchant = merchant;
|
|
204
205
|
search.localization = usedLocale;
|
|
205
206
|
}
|
|
206
|
-
if (!category) (0, $42858f023ef23dab$export$8e769ad4338a911e).category = new (0, $TZSbU$DepictCategory)({
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
207
|
+
if (!category) (0, $TZSbU$createRoot)(()=>(0, $42858f023ef23dab$export$8e769ad4338a911e).category = new (0, $TZSbU$DepictCategory)({
|
|
208
|
+
market: market,
|
|
209
|
+
merchant: merchant,
|
|
210
|
+
localization: usedLocale,
|
|
211
|
+
on_navigation: on_navigation
|
|
212
|
+
}));
|
|
212
213
|
else {
|
|
213
214
|
category.market = market;
|
|
214
215
|
category.merchant = merchant;
|
|
215
216
|
category.localization = usedLocale;
|
|
216
217
|
}
|
|
218
|
+
(0, $8071251ee4e9ffa1$export$6453cbc34515a94d)((0, $c83ba9ab79386687$export$92a8f8b3c630fa0d));
|
|
217
219
|
(0, $42858f023ef23dab$export$8e769ad4338a911e).required_state_set_[1](true);
|
|
218
220
|
} catch (e) {
|
|
219
221
|
// Make sure to not break the users app if we throw
|
|
@@ -229,38 +231,32 @@ function $faf794495ff8b304$export$9fac37a9c21c2f3b(props) {
|
|
|
229
231
|
// Idea is to always give a nice "modal input in header" look with no more config than adding this component to the page header to where it can absolute-size
|
|
230
232
|
// and cover the entire height of the header. Then we know where to put the modal input top and bottom, and the left and right we just center.
|
|
231
233
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
return (0, $TZSbU$createElement)("div", {
|
|
234
|
+
const $4db0e2f013fc5124$export$3f4580d6398c5027 = /*#__PURE__*/ (0, $TZSbU$forwardRef)((_, ref)=>{
|
|
235
|
+
return /*#__PURE__*/ (0, $TZSbU$createElement)("div", {
|
|
235
236
|
className: "depict aligner",
|
|
236
|
-
|
|
237
|
+
style: {
|
|
238
|
+
height: "100%"
|
|
239
|
+
},
|
|
240
|
+
ref: ref
|
|
237
241
|
});
|
|
238
|
-
}
|
|
239
|
-
let $f41a371216eff80b$var$sheet;
|
|
240
|
-
function $f41a371216eff80b$export$a7f6cffb6b8ba11c() {
|
|
241
|
-
if (!(0, $42858f023ef23dab$export$8e769ad4338a911e).search) {
|
|
242
|
-
console.error("No active search in the app!");
|
|
243
|
-
return;
|
|
244
|
-
}
|
|
245
|
-
(0, $42858f023ef23dab$export$8e769ad4338a911e).search.modal_open = true;
|
|
246
|
-
}
|
|
242
|
+
});
|
|
247
243
|
|
|
248
244
|
|
|
249
245
|
|
|
250
246
|
|
|
251
247
|
|
|
252
248
|
|
|
253
|
-
function $
|
|
254
|
-
return (0, $c83ba9ab79386687$export$f6e64e17bd69eeef)((0, $c83ba9ab79386687$export$e5139bbbb9a05035)($
|
|
249
|
+
function $4a678f0c87b12e78$export$210723f5a54a7028(props) {
|
|
250
|
+
return (0, $c83ba9ab79386687$export$f6e64e17bd69eeef)((0, $c83ba9ab79386687$export$e5139bbbb9a05035)($4a678f0c87b12e78$var$SolidSearchPage), props);
|
|
255
251
|
}
|
|
256
|
-
function $
|
|
252
|
+
function $4a678f0c87b12e78$var$SolidSearchPage(props, set_portals) {
|
|
257
253
|
const depict_search = (0, $42858f023ef23dab$export$8e769ad4338a911e).search;
|
|
258
254
|
if (!depict_search) throw Error("No depict_search instance when rendering SearchPage. Did you forget to wrap your app in DepictProvider?");
|
|
259
255
|
const search_query_updating_blocked_signal = (0, $TZSbU$get_search_query_updating_blocked_signal)(depict_search);
|
|
260
256
|
if (!search_query_updating_blocked_signal) throw Error("No search_query_updating_blocked_signal when rendering SearchPage");
|
|
261
257
|
const [, set_search_query_updating_blocked_signal] = search_query_updating_blocked_signal;
|
|
262
258
|
const update_updating_blocked_signal = ()=>{
|
|
263
|
-
set_search_query_updating_blocked_signal(!(0, $c83ba9ab79386687$export$
|
|
259
|
+
set_search_query_updating_blocked_signal(!(0, $c83ba9ab79386687$export$775e6b3892b5ad52)(location));
|
|
264
260
|
};
|
|
265
261
|
// react is really slow with disposing components, we want to avoid a flash of another search query when you click on a product and navigate away
|
|
266
262
|
(0, $c83ba9ab79386687$export$74f3924c5027fe1d)(update_updating_blocked_signal); // if we navigate, re-check
|
|
@@ -303,51 +299,87 @@ function $9f8d5ef3c016c493$var$SolidSearchPage(props, set_portals) {
|
|
|
303
299
|
|
|
304
300
|
|
|
305
301
|
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
302
|
+
|
|
303
|
+
let $48d7f568740a317d$var$render_cb;
|
|
304
|
+
function $48d7f568740a317d$export$d87c61cecb2edf0d(props) {
|
|
305
|
+
return (0, $c83ba9ab79386687$export$f6e64e17bd69eeef)((0, $c83ba9ab79386687$export$e5139bbbb9a05035)($48d7f568740a317d$var$SolidCategoryPage), props, "div", {}, (props)=>$48d7f568740a317d$var$render_cb?.(props));
|
|
309
306
|
}
|
|
310
|
-
function $
|
|
307
|
+
function $48d7f568740a317d$var$SolidCategoryPage(props, set_portals) {
|
|
311
308
|
const depict_category = (0, $42858f023ef23dab$export$8e769ad4338a911e).category;
|
|
312
309
|
if (!depict_category) throw Error("No depict_category instance when rendering SearchPage. Did you forget to wrap your app in DepictProvider?");
|
|
313
|
-
|
|
314
|
-
$
|
|
310
|
+
const [category_state_set, set_category_state_set] = (0, $TZSbU$createSignal)(false);
|
|
311
|
+
$48d7f568740a317d$var$render_cb = (props)=>{
|
|
312
|
+
depict_category.category_id = props.categoryId;
|
|
313
|
+
(0, $42858f023ef23dab$export$8e769ad4338a911e).category_path = location.pathname;
|
|
314
|
+
if (props.categoryId) set_category_state_set(true);
|
|
315
|
+
};
|
|
316
|
+
$48d7f568740a317d$var$render_cb(props);
|
|
315
317
|
const component_portals = new Set();
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
318
|
+
const category = ()=>(0, $TZSbU$CategoryPage)({
|
|
319
|
+
depict_category: depict_category,
|
|
320
|
+
cols_at_size: props.columnsAtSize ?? [
|
|
321
|
+
[
|
|
322
|
+
4
|
|
323
|
+
],
|
|
324
|
+
[
|
|
325
|
+
3,
|
|
326
|
+
1024
|
|
327
|
+
],
|
|
328
|
+
[
|
|
329
|
+
2,
|
|
330
|
+
901
|
|
331
|
+
]
|
|
321
332
|
],
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
333
|
+
grid_spacing: props.gridSpacing ?? "2%",
|
|
334
|
+
get_product_id: ()=>"",
|
|
335
|
+
category_title: props.categoryTitlePlugin || (0, $43099132aad1ceb6$re_export$CategoryTitle),
|
|
336
|
+
show_breadcrumbs: props.showBreadcrumbs === undefined ? true : props.showBreadcrumbs,
|
|
337
|
+
show_quicklinks: props.showQuicklinks === undefined ? true : props.showQuicklinks,
|
|
338
|
+
product_card_template: (display, info)=>(0, $c83ba9ab79386687$export$79c79419c1ef0081)({
|
|
339
|
+
display: display,
|
|
340
|
+
info: info,
|
|
341
|
+
react_template: props.productCard,
|
|
342
|
+
component_portals: component_portals,
|
|
343
|
+
set_portals: set_portals
|
|
344
|
+
})
|
|
345
|
+
});
|
|
346
|
+
return (0, $c83ba9ab79386687$export$e5139bbbb9a05035)(category, category_state_set);
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
|
|
350
|
+
|
|
351
|
+
|
|
352
|
+
|
|
353
|
+
function $f866f7ed9f751af4$export$5646050d516e06bc() {
|
|
354
|
+
return (0, $c83ba9ab79386687$export$f6e64e17bd69eeef)((0, $c83ba9ab79386687$export$e5139bbbb9a05035)($f866f7ed9f751af4$var$vanilla_breadcrumbs), {});
|
|
355
|
+
}
|
|
356
|
+
function $f866f7ed9f751af4$var$vanilla_breadcrumbs() {
|
|
357
|
+
const depict_category = (0, $42858f023ef23dab$export$8e769ad4338a911e).category;
|
|
358
|
+
if (!depict_category) throw Error("No depict_category instance when rendering BreadCrumbs. Did you forget to wrap your app in DepictProvider?");
|
|
359
|
+
return (0, $TZSbU$BreadCrumbs)({
|
|
360
|
+
depict_category: depict_category
|
|
361
|
+
});
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
|
|
365
|
+
|
|
366
|
+
|
|
367
|
+
|
|
368
|
+
function $b68a14248b7ef667$export$466cdc317043f6cb() {
|
|
369
|
+
return (0, $c83ba9ab79386687$export$f6e64e17bd69eeef)((0, $c83ba9ab79386687$export$e5139bbbb9a05035)($b68a14248b7ef667$var$vanilla_quick_links), {});
|
|
370
|
+
}
|
|
371
|
+
function $b68a14248b7ef667$var$vanilla_quick_links() {
|
|
372
|
+
const depict_category = (0, $42858f023ef23dab$export$8e769ad4338a911e).category;
|
|
373
|
+
if (!depict_category) throw Error("No depict_category instance when rendering QuickLinks. Did you forget to wrap your app in DepictProvider?");
|
|
374
|
+
return (0, $TZSbU$QuickLinks)({
|
|
375
|
+
depict_category: depict_category
|
|
344
376
|
});
|
|
345
377
|
}
|
|
346
378
|
|
|
347
379
|
|
|
348
380
|
|
|
349
381
|
|
|
350
|
-
const $
|
|
382
|
+
const $f446a84f85ba06f6$export$3f37af283f8fb843 = ({ aspectRatio: aspectRatio })=>{
|
|
351
383
|
return (0, $c83ba9ab79386687$export$f6e64e17bd69eeef)(()=>(0, $TZSbU$ContainedPlaceholderImage)({
|
|
352
384
|
aspect_ratio: aspectRatio
|
|
353
385
|
}), {}, "div", {
|
|
@@ -358,7 +390,7 @@ const $c95f83f01e99fc18$export$3f37af283f8fb843 = ({ aspectRatio: aspectRatio }
|
|
|
358
390
|
|
|
359
391
|
|
|
360
392
|
|
|
361
|
-
const $
|
|
393
|
+
const $cbd250061abf11cb$export$89c6019e4baa40b1 = ({ width: width , height: height })=>{
|
|
362
394
|
return (0, $c83ba9ab79386687$export$f6e64e17bd69eeef)(()=>(0, $TZSbU$Placeholder)({
|
|
363
395
|
width: width,
|
|
364
396
|
height: height
|
|
@@ -368,13 +400,82 @@ const $8aa3ab31237c8dc9$export$89c6019e4baa40b1 = ({ width: width , height: heig
|
|
|
368
400
|
};
|
|
369
401
|
|
|
370
402
|
|
|
371
|
-
|
|
403
|
+
|
|
404
|
+
|
|
405
|
+
|
|
406
|
+
|
|
407
|
+
|
|
408
|
+
|
|
409
|
+
const $5e26376d86621891$export$d69d8daa20eae175 = (createOpenModalParams)=>{
|
|
410
|
+
const { globalState: globalState , location: location , alignerRef: alignerRef , document: document } = createOpenModalParams;
|
|
411
|
+
const openModal = ()=>{
|
|
412
|
+
const headerAligner = alignerRef?.current;
|
|
413
|
+
if (!globalState.search) throw new Error("No active search in the app!");
|
|
414
|
+
if (!headerAligner && location === "aligned") throw new Error("No active search header aligner on the page!");
|
|
415
|
+
const alignment_height = headerAligner?.clientHeight;
|
|
416
|
+
if (location !== "aligned" || isNaN(alignment_height)) {
|
|
417
|
+
// Open centered modal
|
|
418
|
+
globalState.search.modal_open = true;
|
|
419
|
+
return;
|
|
420
|
+
}
|
|
421
|
+
const style_element = document.createElement("style");
|
|
422
|
+
document.head.append(style_element);
|
|
423
|
+
const resize_observer = new ResizeObserver((0, $TZSbU$catchify)(()=>{
|
|
424
|
+
const styles = (0, $TZSbU$styles_to_valid_css_string)({
|
|
425
|
+
".depict.plp .depict-search-modal .query-input": {
|
|
426
|
+
"height": `${headerAligner?.clientHeight}px`
|
|
427
|
+
}
|
|
428
|
+
});
|
|
429
|
+
style_element.replaceChildren(styles);
|
|
430
|
+
}));
|
|
431
|
+
resize_observer.observe(headerAligner);
|
|
432
|
+
let dispose_aligner;
|
|
433
|
+
/**
|
|
434
|
+
* Setting position to fixed is important to make the modal work with align_field.
|
|
435
|
+
*/ const style_props_ = (0, $TZSbU$createSignal)({
|
|
436
|
+
position: "fixed"
|
|
437
|
+
});
|
|
438
|
+
(0, $TZSbU$createRoot)((dispose)=>{
|
|
439
|
+
dispose_aligner = ()=>{
|
|
440
|
+
resize_observer.disconnect();
|
|
441
|
+
style_element.remove();
|
|
442
|
+
dispose();
|
|
443
|
+
};
|
|
444
|
+
(0, $TZSbU$align_field)(style_props_, headerAligner, undefined, false, "top");
|
|
445
|
+
});
|
|
446
|
+
globalState.search.modal_open = [
|
|
447
|
+
{
|
|
448
|
+
style_props_: style_props_
|
|
449
|
+
},
|
|
450
|
+
dispose_aligner
|
|
451
|
+
];
|
|
452
|
+
};
|
|
453
|
+
return openModal;
|
|
454
|
+
};
|
|
455
|
+
|
|
456
|
+
|
|
457
|
+
function $cfa72c75e6cf6901$export$cc1e9aaf280afdcb(params) {
|
|
458
|
+
const open = (0, $5e26376d86621891$export$d69d8daa20eae175)({
|
|
459
|
+
globalState: $42858f023ef23dab$export$8e769ad4338a911e,
|
|
460
|
+
document: document,
|
|
461
|
+
...params
|
|
462
|
+
});
|
|
463
|
+
return {
|
|
464
|
+
open: open
|
|
465
|
+
};
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
|
|
469
|
+
|
|
470
|
+
|
|
471
|
+
|
|
472
|
+
const $c9c4d066f9a5b51b$export$83d89fbfd8236492 = "0.0.57";
|
|
372
473
|
|
|
373
474
|
|
|
374
475
|
|
|
375
476
|
|
|
376
477
|
const $a92aa2beb560b8af$export$804fac5697cfbe35 = (router)=>(href)=>{
|
|
377
|
-
const shallow = (0, $c83ba9ab79386687$export$
|
|
478
|
+
const shallow = (0, $c83ba9ab79386687$export$92a8f8b3c630fa0d)(location);
|
|
378
479
|
router.push(href, undefined, {
|
|
379
480
|
shallow: shallow,
|
|
380
481
|
scroll: true
|
|
@@ -410,4 +511,4 @@ const $43099132aad1ceb6$var$package_name = "@depict-ai/react-ui";
|
|
|
410
511
|
});
|
|
411
512
|
|
|
412
513
|
|
|
413
|
-
export {$
|
|
514
|
+
export {$b68a14248b7ef667$export$466cdc317043f6cb as QuickLinks, $f866f7ed9f751af4$export$5646050d516e06bc as BreadCrumbs, $4db0e2f013fc5124$export$3f4580d6398c5027 as DepictAligner, $5376eb2a386cd90d$export$9fac37a9c21c2f3b as DepictProvider, $48d7f568740a317d$export$d87c61cecb2edf0d as DepictCategoryPage, $4a678f0c87b12e78$export$210723f5a54a7028 as DepictSearchPage, $02e2452814b6e7d6$export$4c0fa313cf50c4ad as DepictSearchField, $f446a84f85ba06f6$export$3f37af283f8fb843 as ImagePlaceholder, $cbd250061abf11cb$export$89c6019e4baa40b1 as TextPlaceholder, $cfa72c75e6cf6901$export$cc1e9aaf280afdcb as useDepictSearchModal, $43099132aad1ceb6$re_export$CategoryTitle as CategoryTitle, $43099132aad1ceb6$re_export$EmbeddedNumProducts as EmbeddedNumProducts, $c9c4d066f9a5b51b$export$83d89fbfd8236492 as version, $97603d19204ec48d$export$b8a61e5c71402559 as Navigation};
|
|
@@ -25,7 +25,7 @@ $secondary-button-overrides: ();
|
|
|
25
25
|
@return map.merge($primary-button-properties, $primary-button-overrides);
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
/// Used to get the current properties of the
|
|
28
|
+
/// Used to get the current properties of the secondary button. (`Buttons.$secondary-button-overrides` merged into the default properties.) This is so that parts of the button styling can be re-used in other mixins in the state they were in as the mixins get called.
|
|
29
29
|
/// @example
|
|
30
30
|
/// filter: map.get(Buttons.get-secondary-button-properties(), "focus-visible-filter");
|
|
31
31
|
@function get-secondary-button-properties() {
|
|
@@ -46,7 +46,7 @@ $secondary-button-overrides: ();
|
|
|
46
46
|
///
|
|
47
47
|
/// *Please only provide options to this mixin if you want to create styling for just a specific button.*
|
|
48
48
|
///
|
|
49
|
-
/// This mixin and the SecondaryButton mixin are specialties
|
|
49
|
+
/// This mixin and the SecondaryButton mixin are currently specialties in how they get customised using maps. Everything that isn't customised using maps is subject to change in the future.
|
|
50
50
|
////
|
|
51
51
|
/// *For generally changing how the buttons look, override the $primary-button-overrides map with a custom map containing the properties you want to change.*
|
|
52
52
|
/// See the example below.
|
|
@@ -91,7 +91,7 @@ $secondary-button-overrides: ();
|
|
|
91
91
|
///
|
|
92
92
|
/// *Please only provide options to this mixin if you want to create styling for just a specific button.*
|
|
93
93
|
///
|
|
94
|
-
/// This mixin and the SecondaryButton mixin are specialties
|
|
94
|
+
/// This mixin and the SecondaryButton mixin are currently specialties in how they get customised using maps. Everything that isn't customised using maps is subject to change in the future.
|
|
95
95
|
////
|
|
96
96
|
/// *For generally changing how the buttons look, override the $secondary-button-overrides map with a custom map containing the properties you want to change.*
|
|
97
97
|
/// See the example below.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
/// ScrollStatus shows the user how many items are left to scroll through, if they scroll at a speed that indicates that they are no longer looking at each product but rather just trying to see how many there are.
|
|
4
4
|
///
|
|
5
|
-
///
|
|
5
|
+
/// If you too think that blurring the background would look great here, please take a minute to upvote this chrome bug: https://bugs.chromium.org/p/chromium/issues/detail?id=1382360
|
|
6
6
|
///
|
|
7
7
|
/// @param {Color} $scroll-status-background [rgba(100, 100, 100, 0.9)] - The background color of the scroll status. I recommend setting a slightly transparent color.
|
|
8
8
|
/// @param {Number with size unit} $border-radius [variables.$border-radius * 5] - The border-radius of the scroll status.
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
/// Styling for sliders used in the PLP.
|
|
52
|
-
/// Most of the times
|
|
52
|
+
/// Most of the times SlidableItems is used for items laid out horizontally that do not fit the screen width.
|
|
53
53
|
///
|
|
54
54
|
/// Examples are the QuickLinks (used to navigate sideways or downwards in the category tree) and the SelectedFilters (if not all selected filters fit on the screen).
|
|
55
55
|
/// @param {Color} $fade-to [variables.$brand-lighter-grey] - The color the slider buttons fade to, set this to the background color behind the slider.
|
|
@@ -9,8 +9,7 @@
|
|
|
9
9
|
@use "sass:map";
|
|
10
10
|
|
|
11
11
|
/// Mixin that styles the sorting and filtering menus.
|
|
12
|
-
///
|
|
13
|
-
/// You'll have to look at the code to see what the params do - I hope the names are somewhat descriptive.
|
|
12
|
+
/// The way this is configured is soon going to be subject to change, therefore the parameters are not argumented.
|
|
14
13
|
/// @param {Color} $mobile-top-level-collapse-color [variables.$brand-black] -
|
|
15
14
|
/// @param {Color} $mobile-top-level-collapse-background [#fff] -
|
|
16
15
|
/// @param {Color} $custom-input-checked-background [#fff] -
|
|
@@ -20,10 +19,10 @@
|
|
|
20
19
|
/// @param {Color} $checkbox-checked-background-color [variables.$brand-black] -
|
|
21
20
|
/// @param {Color} $checkbox-checkmark-color [#fff] -
|
|
22
21
|
/// @param {Number with size unit} $checkbox-border-radius [if(variables.$border-radius == 0, 0, if(variables.$border-radius == 0px, 0, 2px))] -
|
|
23
|
-
/// @param {Border} $checkbox-border [1px solid variables.$brand-
|
|
22
|
+
/// @param {Border} $checkbox-border [1px solid variables.$brand-dark-grey] -
|
|
24
23
|
/// @param {Number with size unit} $checkbox-top-offset [0px] -
|
|
25
24
|
/// @param {Number with size unit} $checkbox-left-offset [0px] -
|
|
26
|
-
/// @param {Border} $radio-border [1px solid variables.$brand-
|
|
25
|
+
/// @param {Border} $radio-border [1px solid variables.$brand-dark-grey] -
|
|
27
26
|
/// @param {Color} $radio-background-color [#fff] -
|
|
28
27
|
/// @param {Color} $radio-selected-dot-color [variables.$brand-black] -
|
|
29
28
|
/// @param {Number with size unit} $radio-selected-dot-size [14px] -
|
|
@@ -76,10 +75,10 @@
|
|
|
76
75
|
$checkbox-checkmark-color: #fff,
|
|
77
76
|
$checkbox-border-radius: if(variables.$border-radius == 0, 0, if(variables.$border-radius == 0px, 0, 2px)),
|
|
78
77
|
// if global border radius is 0 or 0px, don't round input fields in their default value
|
|
79
|
-
$checkbox-border: 1px solid variables.$brand-
|
|
78
|
+
$checkbox-border: 1px solid variables.$brand-dark-grey,
|
|
80
79
|
$checkbox-top-offset: 0px,
|
|
81
80
|
$checkbox-left-offset: 0px,
|
|
82
|
-
$radio-border: 1px solid variables.$brand-
|
|
81
|
+
$radio-border: 1px solid variables.$brand-dark-grey,
|
|
83
82
|
$radio-background-color: #fff,
|
|
84
83
|
$radio-selected-dot-color: variables.$brand-black,
|
|
85
84
|
$radio-selected-dot-size: 14px,
|
|
@@ -121,7 +120,8 @@
|
|
|
121
120
|
$sort-and-filter-modal-section-title-font-weight: false,
|
|
122
121
|
$sort-and-filter-modal-section-expanded-title-font-weight: $sort-and-filter-modal-section-title-font-weight
|
|
123
122
|
) {
|
|
124
|
-
$input-row-height-goal:
|
|
123
|
+
$input-row-height-goal: max(21px, 1em); // if text gets bigger we have to get bigger too to not cut off the text
|
|
124
|
+
// it was meant to be 20px but there was a bug so I'm setting it to 21px now so it doesn't change
|
|
125
125
|
$count-distance-to-right: 30px;
|
|
126
126
|
$largest-border-on-custom-input: max(
|
|
127
127
|
custom_input.get_border_width($checkbox-border),
|
|
@@ -209,7 +209,7 @@
|
|
|
209
209
|
align-items: center;
|
|
210
210
|
transition: opacity 250ms ease-in-out;
|
|
211
211
|
font-size: 12px;
|
|
212
|
-
z-index: calc(variables.$search-page-base-z-index + 1);
|
|
212
|
+
z-index: calc(#{variables.$search-page-base-z-index} + 1);
|
|
213
213
|
}
|
|
214
214
|
.open-filters-button-container {
|
|
215
215
|
position: relative;
|
|
@@ -249,7 +249,8 @@
|
|
|
249
249
|
$hovered-checkbox-checked-background-color,
|
|
250
250
|
$hovered-checkbox-border,
|
|
251
251
|
$hovered-radio-border,
|
|
252
|
-
$
|
|
252
|
+
$input-row-height-goal,
|
|
253
|
+
$largest-border-on-custom-input
|
|
253
254
|
);
|
|
254
255
|
}
|
|
255
256
|
.filters {
|
|
@@ -276,9 +277,7 @@
|
|
|
276
277
|
}
|
|
277
278
|
.text {
|
|
278
279
|
//line-height: 1.8; /** Fix for ÅÄÖ getting cut-off **/
|
|
279
|
-
line-height:
|
|
280
|
-
#{$input-row-height-goal} + #{$largest-border-on-custom-input}
|
|
281
|
-
); // Sorry ÅÄÖ, hope you survive this
|
|
280
|
+
line-height: $input-row-height-goal; // Sorry ÅÄÖ, hope you survive this
|
|
282
281
|
display: -webkit-box;
|
|
283
282
|
text-overflow: ellipsis;
|
|
284
283
|
white-space: pre-line;
|
|
@@ -581,7 +580,7 @@
|
|
|
581
580
|
}
|
|
582
581
|
& > .summary {
|
|
583
582
|
justify-content: flex-end;
|
|
584
|
-
$morphing-sign-width:
|
|
583
|
+
$morphing-sign-width: #{$input-row-height-goal};
|
|
585
584
|
.count {
|
|
586
585
|
margin-right: calc(#{$count-distance-to-right} - #{$morphing-sign-width});
|
|
587
586
|
}
|
|
@@ -742,6 +741,7 @@
|
|
|
742
741
|
}
|
|
743
742
|
}
|
|
744
743
|
}
|
|
744
|
+
@include CheckboxColor();
|
|
745
745
|
}
|
|
746
746
|
}
|
|
747
747
|
.sorting {
|
|
@@ -770,17 +770,31 @@
|
|
|
770
770
|
}
|
|
771
771
|
|
|
772
772
|
@mixin default_morphing_sign_in_expandable {
|
|
773
|
-
.morphing-sign
|
|
774
|
-
|
|
773
|
+
.morphing-sign {
|
|
774
|
+
span {
|
|
775
|
+
background: #333333;
|
|
775
776
|
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
777
|
+
&:first-child {
|
|
778
|
+
width: 5%;
|
|
779
|
+
left: 47.5%;
|
|
780
|
+
}
|
|
781
|
+
|
|
782
|
+
&:last-child {
|
|
783
|
+
height: 5%;
|
|
784
|
+
top: 47.5%;
|
|
785
|
+
}
|
|
779
786
|
}
|
|
787
|
+
}
|
|
788
|
+
}
|
|
789
|
+
|
|
790
|
+
@mixin CheckboxColor() {
|
|
791
|
+
.checkbox-color {
|
|
792
|
+
display: flex;
|
|
793
|
+
flex-wrap: wrap;
|
|
794
|
+
justify-content: space-between;
|
|
780
795
|
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
top: 47.5%;
|
|
796
|
+
.input-row {
|
|
797
|
+
width: calc(50% - 10px);
|
|
784
798
|
}
|
|
785
799
|
}
|
|
786
800
|
}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
@use "../../../variables";
|
|
2
2
|
@use "../../../helpers/utils";
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
* Mobile modal - taking arguments from SortAndFilter mixin
|
|
6
|
-
*/
|
|
4
|
+
/// Mobile modal - taking arguments from SortAndFilter mixin so see SortAndFilter docs for more info
|
|
7
5
|
@mixin SortAndFilterModal(
|
|
8
6
|
$mobile-top-level-collapse-color,
|
|
9
7
|
$mobile-top-level-collapse-background,
|
|
@@ -39,7 +37,7 @@
|
|
|
39
37
|
}
|
|
40
38
|
|
|
41
39
|
.filter-sort-modal {
|
|
42
|
-
z-index: calc(variables.$base-z-index + 2);
|
|
40
|
+
z-index: calc(#{variables.$base-z-index} + 2);
|
|
43
41
|
position: fixed;
|
|
44
42
|
top: 0;
|
|
45
43
|
left: 30px;
|
|
@@ -21,10 +21,10 @@
|
|
|
21
21
|
$checkbox-checkmark-color: #fff,
|
|
22
22
|
$checkbox-border-radius: if(variables.$border-radius == 0, 0, if(variables.$border-radius == 0px, 0, 2px)),
|
|
23
23
|
// if global border radius is 0 or 0px, don't round input fields in their default value
|
|
24
|
-
$checkbox-border: 1px solid variables.$brand-
|
|
24
|
+
$checkbox-border: 1px solid variables.$brand-dark-grey,
|
|
25
25
|
$checkbox-top-offset: 0px,
|
|
26
26
|
$checkbox-left-offset: 0px,
|
|
27
|
-
$radio-border: 1px solid variables.$brand-
|
|
27
|
+
$radio-border: 1px solid variables.$brand-dark-grey,
|
|
28
28
|
$radio-background-color: #fff,
|
|
29
29
|
$radio-selected-dot-color: variables.$brand-black,
|
|
30
30
|
$radio-selected-dot-size: 14px,
|
|
@@ -28,8 +28,6 @@
|
|
|
28
28
|
@forward "../../variables";
|
|
29
29
|
|
|
30
30
|
/// Load all PLP mixins with default values. PLP encompasses both Search and Category page, so you will always need to include the mixins that this includes somehow. If only minor theming is needed styles in variables.scss can be
|
|
31
|
-
///
|
|
32
|
-
///
|
|
33
31
|
/// reassigned: https://sass-lang.com/documentation/at-rules/use#reassigning-variables
|
|
34
32
|
/// If more control is needed use these mixins separately and pass custom params
|
|
35
33
|
|