@depict-ai/ui 2.0.26 → 2.1.1

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.
@@ -1,6 +1,7 @@
1
1
  var $5vyXB$depictaiutilishared = require("@depict-ai/utilishared/latest");
2
2
  var $5vyXB$solidjsweb = require("solid-js/web");
3
3
  var $5vyXB$solidjs = require("solid-js");
4
+ var $5vyXB$solidjsstore = require("solid-js/store");
4
5
  require("../../multi_import_deduplicator.cjs").register_es_version("ui", "latest");
5
6
  function $parcel$export(e, n, v, s) {
6
7
  Object.defineProperty(e, n, {
@@ -69,7 +70,7 @@ $parcel$export(module.exports, "defaultColsAtSize", () => $a3280f0aad997933$expo
69
70
  $parcel$export(module.exports, "defaultCategoryTitlePlugin", () => $a3280f0aad997933$export$7bf543b9d9be2c22);
70
71
  $parcel$export(module.exports, "version", () => $b757f75811f3261f$export$83d89fbfd8236492);
71
72
  /*! Depict.ai search and product listing SDK */
72
- const $b757f75811f3261f$export$83d89fbfd8236492 = "2.0.26";
73
+ const $b757f75811f3261f$export$83d89fbfd8236492 = "2.1.1";
73
74
  const $1ab22f2cd39b3061$var$fallback_operator = "in";
74
75
  const $1ab22f2cd39b3061$var$fallback_token = "";
75
76
  const $1ab22f2cd39b3061$var$legacy_filter_prefix = "filter_";
@@ -306,10 +307,10 @@ function $19950faaac026e09$export$6e5611bc7e57e477(props) {
306
307
  srcset: srcset
307
308
  };
308
309
  });
309
- return $5vyXB$solidjsweb.ssrElement("img", () => ({
310
- ...otherOptions,
311
- ...src_options(),
312
- "sizes": props.size() + "px"
310
+ return $5vyXB$solidjsweb.ssrElement("img", $5vyXB$solidjsweb.mergeProps(otherOptions, src_options, {
311
+ get sizes() {
312
+ return props.size() + "px";
313
+ }
313
314
  }), undefined, true);
314
315
  }
315
316
  function $19950faaac026e09$var$make_srcset(url, resolutions) {
@@ -453,7 +454,7 @@ const $4e04be41243c3d80$export$6daf8749b65a1b77 = cols_at_size => {
453
454
  return $4e04be41243c3d80$var$transform_elements(sorted_cols_at_size);
454
455
  };
455
456
  function $fc23d7668ae0011d$export$a2cc176055f8f08() {
456
- const text = "Please try setting `columnsAtSize` on the `SearchPage`/`CategoryPage` components to change the grid before setting it with CSS. If you do with CSS, set `columnsAtSize` to an empty array to ensure no declarations created by the SDK leak through.";
457
+ const text = "Please try setting `columnsAtSize`/`gridSpacing` on the `SearchPage`/`CategoryPage` components to change the grid before setting it with CSS. If you do with CSS, set `columnsAtSize` to an empty array to ensure no declarations created by the SDK leak through.";
457
458
  return (0, $5vyXB$solidjsweb.isServer) ? {
458
459
  t: `<!-- ${text} -->`
459
460
  } : document.createComment(text);
@@ -474,12 +475,13 @@ let $0caf87eaa19079da$var$cached_placeholder_element;
474
475
  let $0caf87eaa19079da$var$rendering_cached_placeholder_element;
475
476
  function $0caf87eaa19079da$export$f33414a4df0afd3f({
476
477
  product_card_template_: product_card_template_,
477
- num_placeholders_: num_placeholders_
478
+ num_placeholders_: num_placeholders_,
479
+ content_blocks_: content_blocks_
478
480
  }) {
479
- const [get_elements, set_elements] = $5vyXB$solidjs.createSignal([]);
480
- let existing_num = 0;
481
+ const [num_to_actually_show, set_num_to_actually_show] = $5vyXB$solidjs.createSignal($5vyXB$solidjs.untrack(num_placeholders_));
481
482
  if (0, $5vyXB$solidjsweb.isServer)
482
483
  // want to render simple placeholders on server, effects don't run there
484
+ // FIXME when adding proper SSR: also SSR content blocks
483
485
  return $5vyXB$solidjs.createMemo(() => Array.from({
484
486
  length: num_placeholders_()
485
487
  }).map(() => {
@@ -488,19 +490,30 @@ function $0caf87eaa19079da$export$f33414a4df0afd3f({
488
490
  if (typeof template_result?.then !== "function") return template_result;
489
491
  }));
490
492
  $5vyXB$solidjs.createRenderEffect(() => {
493
+ const existing_num = num_to_actually_show();
491
494
  const to_add = num_placeholders_() - existing_num;
492
495
  if (to_add <= 0) return;
493
496
  // Below comment is from when we used recommendation renderer and manual DOM manipulation for this, but I'm still scared to remove placeholders and mess up scroll restoration, so I'm keeping the way it worked. Otherwise, <Index> could be used which would be far more elegant.
494
497
  // We don't need to remove placeholders, only need to add. The reason for that is that chrome restores the scroll position once all tasks queued as reaction of the "popstate" events have been completed in the task queue. That means that we need to get the placeholders in fast, or we might lose scroll position if the previous site was shorter.
495
498
  // The query id and the amount might update in separate tasks because one comes from href_change_ipns and the other one from another "popstate" listener. Therefore, we need to be able to dynamically add more placeholders. I'm not entirely sure about this anymore though, since we have the scroll position on a per-id basis it might work anyway but THIS WORKS, and I've been working on this bug for 3 hours so let's just keep it this way.
496
- set_elements(prev => [...prev, ...Array.from({
497
- length: to_add
498
- }).map(() => $0caf87eaa19079da$var$Placeholder({
499
- product_card_template_: product_card_template_
500
- }))]);
501
- existing_num += to_add;
499
+ // Above comments were from when we added elements in this createRenderEffect. Now I changed it to just increment the number and render them from an <Index> instead, so I can add content blocks better
500
+ // Functionality should be the same
501
+ set_num_to_actually_show(existing_num + to_add);
502
+ });
503
+ return $5vyXB$solidjsweb.createComponent((0, $5vyXB$solidjs.Index), {
504
+ get each() {
505
+ return Array.from({
506
+ length: num_to_actually_show()
507
+ });
508
+ },
509
+ children: (_item, index) => {
510
+ const possible_content_block = $5vyXB$solidjs.createMemo(() => content_blocks_?.()?.()?.[index]);
511
+ // Show content block before product card, so it's *at* that index
512
+ return [possible_content_block, $0caf87eaa19079da$var$Placeholder({
513
+ product_card_template_: product_card_template_
514
+ })]; // https://github.com/solidjs/solid/releases/tag/v1.7.0
515
+ }
502
516
  });
503
- return get_elements; // https://github.com/solidjs/solid/releases/tag/v1.7.0
504
517
  }
505
518
  /**
506
519
  * Get one placeholder element. It will be cloned for each placeholder for ultimate performance even when solid-js isn't rendering the placeholders.
@@ -585,7 +598,8 @@ function $a73063cc642f3e5f$export$43f0fb951fcb0c54({
585
598
  merchant_: merchant_,
586
599
  market_: market_,
587
600
  product_card_template_: product_card_template_,
588
- do_per_elements_: do_per_elements_
601
+ do_per_elements_: do_per_elements_,
602
+ content_blocks_: content_blocks_
589
603
  }) {
590
604
  return $5vyXB$solidjsweb.createComponent((0, $5vyXB$solidjs.For), {
591
605
  get each() {
@@ -593,6 +607,7 @@ function $a73063cc642f3e5f$export$43f0fb951fcb0c54({
593
607
  },
594
608
  children: (product_id, index) => {
595
609
  const owner = $5vyXB$solidjs.getOwner();
610
+ const possible_content_block = $5vyXB$solidjs.createMemo(() => content_blocks_?.()?.()?.[index()]);
596
611
  const display_accessor = $5vyXB$solidjs.createMemo(prev => {
597
612
  const new_display = displays_by_key_().get(product_id);
598
613
  if (prev && $a73063cc642f3e5f$var$deep_equal(prev, new_display))
@@ -645,7 +660,9 @@ function $a73063cc642f3e5f$export$43f0fb951fcb0c54({
645
660
  }
646
661
  do_per_elements_?.(elements, index);
647
662
  });
648
- return product_card_resource; // https://github.com/solidjs/solid/releases/tag/v1.7.0
663
+ return [
664
+ // Show content block before product card, so it's *at* that index
665
+ possible_content_block, product_card_resource]; // https://github.com/solidjs/solid/releases/tag/v1.7.0
649
666
  }
650
667
  });
651
668
  }
@@ -707,9 +724,8 @@ const $f48d0fbb00835aaa$var$_tmpl$ = ["<div", ' class="', '">', "</div>"],
707
724
  $f48d0fbb00835aaa$var$_tmpl$2 = ["<style", ' type="text/css">', "</style>"];
708
725
  function $f48d0fbb00835aaa$export$d21e32dfedac04be(props) {
709
726
  const container_class = "x" + $5vyXB$solidjs.createUniqueId();
710
- const container_element_ = $5vyXB$solidjsweb.ssrElement("div", () => ({
711
- ...props.element_attributes,
712
- "classList": {
727
+ const container_element_ = $5vyXB$solidjsweb.ssrElement("div", $5vyXB$solidjsweb.mergeProps(() => props.element_attributes, {
728
+ classList: {
713
729
  [container_class]: true
714
730
  }
715
731
  }), () => $5vyXB$solidjsweb.escape(props.children), true); // Don't want this in the error boundary below, it should only be for the actual layouting
@@ -937,7 +953,7 @@ function $72f96c4782db0b1b$export$9574e176201e5e8d(props) {
937
953
  })));
938
954
  }, "RecommendationSlider failed");
939
955
  }
940
- const $b8e79813f4f7ebe4$var$_tmpl$ = ["<div", ' class="recommendation-grid"><!--#-->', "<!--/--><!--#-->", "<!--/--></div>"];
956
+ const $b8e79813f4f7ebe4$var$_tmpl$ = ["<div", ' class="recommendation-grid"><!--$-->', "<!--/--><!--$-->", "<!--/--></div>"];
941
957
  function $b8e79813f4f7ebe4$export$7da560f849543dff({
942
958
  recommendations_resource_: recommendations_resource_,
943
959
  product_card_template_: product_card_template_,
@@ -1158,12 +1174,11 @@ function $d659702496cb72ea$export$a71e92cfbb498adc(props) {
1158
1174
  }
1159
1175
  const $c77c68e559a1506c$var$_tmpl$ = '<path d="M11.669 10.531l9.156-9.156a.78.78 0 0 0 .237-.569c0-.221-.079-.412-.237-.569A.8.8 0 0 0 20.24 0a.77.77 0 0 0-.569.237l-9.14 9.14-9.14-9.14A.79.79 0 0 0 .807 0a.77.77 0 0 0-.569.237A.78.78 0 0 0 0 .807a.77.77 0 0 0 .237.569l9.156 9.156-9.156 9.14c-.159.157-.237.349-.237.569s.079.412.237.569c.085.085.174.148.268.19a1.095 1.095 0 0 0 .316.048.894.894 0 0 0 .285-.048.84.84 0 0 0 .285-.19l9.139-9.14 9.14 9.14a.894.894 0 0 0 .268.19 1.049 1.049 0 0 0 .301.048.941.941 0 0 0 .301-.048.84.84 0 0 0 .285-.19.78.78 0 0 0 .237-.569c0-.221-.079-.412-.237-.569z"></path>';
1160
1176
  function $c77c68e559a1506c$export$3b621d86b1566b2(props = {}) {
1161
- return $5vyXB$solidjsweb.ssrElement("svg", () => ({
1162
- ...props,
1163
- "xmlns": "http://www.w3.org/2000/svg",
1164
- "width": "21.064",
1165
- "height": "21.047",
1166
- "viewBox": "0 0 21.064 21.064"
1177
+ return $5vyXB$solidjsweb.ssrElement("svg", $5vyXB$solidjsweb.mergeProps(props, {
1178
+ xmlns: "http://www.w3.org/2000/svg",
1179
+ width: "21.064",
1180
+ height: "21.047",
1181
+ viewBox: "0 0 21.064 21.064"
1167
1182
  }), () => $5vyXB$solidjsweb.ssr($c77c68e559a1506c$var$_tmpl$), true);
1168
1183
  }
1169
1184
 
@@ -1175,9 +1190,9 @@ function $daa394359b026187$export$325f75597868c4f0(stuff) {
1175
1190
  return stuff.toLowerCase();
1176
1191
  }
1177
1192
  const $235a2771a44e28e9$var$_tmpl$ = ["<button", ' class="clear-all-filters minor">', "</button>"],
1178
- $235a2771a44e28e9$var$_tmpl$2 = ["<div", ' class="inner"><span class="title"><!--#-->', "<!--/-->: </span><!--#-->", "<!--/--></div>"],
1179
- $235a2771a44e28e9$var$_tmpl$3 = ["<button", ' class="clear-filter major"><!--#-->', "<!--/--><span><!--#-->", "<!--/--><!--#-->", "<!--/--><!--#-->", "<!--/--> – <!--#-->", "<!--/--><!--#-->", "<!--/--><!--#-->", "<!--/--></span></button>"],
1180
- $235a2771a44e28e9$var$_tmpl$4 = ["<button", ' class="clear-filter major"><!--#-->', "<!--/--><span>", "</span></button>"];
1193
+ $235a2771a44e28e9$var$_tmpl$2 = ["<div", ' class="inner"><span class="title"><!--$-->', "<!--/-->: </span><!--$-->", "<!--/--></div>"],
1194
+ $235a2771a44e28e9$var$_tmpl$3 = ["<button", ' class="clear-filter major"><!--$-->', "<!--/--><span><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--> – <!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--></span></button>"],
1195
+ $235a2771a44e28e9$var$_tmpl$4 = ["<button", ' class="clear-filter major"><!--$-->', "<!--/--><span>", "</span></button>"];
1181
1196
  function $235a2771a44e28e9$export$fecbb157621501bd({
1182
1197
  number_of_rendered_selected_filters_items_: number_of_rendered_selected_filters_items_,
1183
1198
  i18n_: i18n_,
@@ -1279,25 +1294,23 @@ function $235a2771a44e28e9$export$fecbb157621501bd({
1279
1294
  return matching_filter()?.op !== "inrange";
1280
1295
  },
1281
1296
  get fallback() {
1282
- return (() => {
1283
- number_of_rendered_selected_filters_items_[1](prev => prev + 1);
1284
- $5vyXB$solidjs.onCleanup(() => number_of_rendered_selected_filters_items_[1](prev => prev - 1));
1285
- return $5vyXB$solidjsweb.ssr($235a2771a44e28e9$var$_tmpl$3, $5vyXB$solidjsweb.ssrHydrationKey(), $5vyXB$solidjsweb.escape($5vyXB$solidjsweb.createComponent((0, $c77c68e559a1506c$export$3b621d86b1566b2), {})), $5vyXB$solidjsweb.escape(price_formatting_().pre_), $5vyXB$solidjsweb.escape($5vyXB$solidjsweb.createComponent((0, $d659702496cb72ea$export$a71e92cfbb498adc), {
1286
- get price_() {
1287
- return filter().data[0];
1288
- },
1289
- get price_formatting_() {
1290
- return price_formatting_();
1291
- }
1292
- })), $5vyXB$solidjsweb.escape(price_formatting_().post_), $5vyXB$solidjsweb.escape(price_formatting_().pre_), $5vyXB$solidjsweb.escape($5vyXB$solidjsweb.createComponent((0, $d659702496cb72ea$export$a71e92cfbb498adc), {
1293
- get price_() {
1294
- return filter().data[1];
1295
- },
1296
- get price_formatting_() {
1297
- return price_formatting_();
1298
- }
1299
- })), $5vyXB$solidjsweb.escape(price_formatting_().post_));
1300
- })();
1297
+ number_of_rendered_selected_filters_items_[1](prev => prev + 1);
1298
+ $5vyXB$solidjs.onCleanup(() => number_of_rendered_selected_filters_items_[1](prev => prev - 1));
1299
+ return $5vyXB$solidjsweb.ssr($235a2771a44e28e9$var$_tmpl$3, $5vyXB$solidjsweb.ssrHydrationKey(), $5vyXB$solidjsweb.escape($5vyXB$solidjsweb.createComponent((0, $c77c68e559a1506c$export$3b621d86b1566b2), {})), $5vyXB$solidjsweb.escape(price_formatting_().pre_), $5vyXB$solidjsweb.escape($5vyXB$solidjsweb.createComponent((0, $d659702496cb72ea$export$a71e92cfbb498adc), {
1300
+ get price_() {
1301
+ return filter().data[0];
1302
+ },
1303
+ get price_formatting_() {
1304
+ return price_formatting_();
1305
+ }
1306
+ })), $5vyXB$solidjsweb.escape(price_formatting_().post_), $5vyXB$solidjsweb.escape(price_formatting_().pre_), $5vyXB$solidjsweb.escape($5vyXB$solidjsweb.createComponent((0, $d659702496cb72ea$export$a71e92cfbb498adc), {
1307
+ get price_() {
1308
+ return filter().data[1];
1309
+ },
1310
+ get price_formatting_() {
1311
+ return price_formatting_();
1312
+ }
1313
+ })), $5vyXB$solidjsweb.escape(price_formatting_().post_));
1301
1314
  },
1302
1315
  get children() {
1303
1316
  return $5vyXB$solidjsweb.createComponent((0, $5vyXB$solidjs.Index), {
@@ -1378,7 +1391,7 @@ function $235a2771a44e28e9$export$fecbb157621501bd({
1378
1391
  return outmost_element;
1379
1392
  }
1380
1393
  const $1c63082b2da848ad$var$_tmpl$ = ["<span", ' class="count">', "</span>"],
1381
- $1c63082b2da848ad$var$_tmpl$2 = ["<label", ' class="', '"', '><div class="left"><input type="checkbox"', "", "", '><span class="custom-indicator"></span><span class="text line-clamp">', "</span></div><!--#-->", "<!--/--></label>"];
1394
+ $1c63082b2da848ad$var$_tmpl$2 = ["<label", ' class="', '"', '><div class="left"><input type="checkbox"', "", "", '><span class="custom-indicator"></span><span class="text line-clamp">', "</span></div><!--$-->", "<!--/--></label>"];
1382
1395
  const $1c63082b2da848ad$export$48513f6b9f8ce62d = props => {
1383
1396
  // It seems like there's no diffing without memos here (since we often just have computations in the getters above that update to the same result often because their dependencies change with unrelated changes often), so put memos here to avoid unneeded DOM changes
1384
1397
  const count = $5vyXB$solidjs.createMemo(() => props.count_);
@@ -1399,21 +1412,20 @@ const $1c63082b2da848ad$export$48513f6b9f8ce62d = props => {
1399
1412
  };
1400
1413
  const $cc43b6428000c4bf$var$_tmpl$ = '<path d="M10.173 5.548H5.5V.875c0-.075-.027-.14-.081-.193S5.301.601 5.226.601s-.14.027-.193.081-.081.118-.081.193v4.673H.274c-.075 0-.14.027-.193.081A.27.27 0 0 0 0 5.827c0 .075.027.14.081.193s.118.081.193.081h4.678v4.673c0 .075.027.14.081.193s.118.081.193.081.14-.027.193-.081.081-.118.081-.193V6.101h4.673a.27.27 0 0 0 .199-.081c.054-.054.08-.118.08-.193a.27.27 0 0 0-.279-.279z" fill="#000"></path>';
1401
1414
  function $cc43b6428000c4bf$export$f21ab0717a89c77f(props) {
1402
- return $5vyXB$solidjsweb.ssrElement("svg", () => ({
1403
- ...props,
1404
- "xmlns": "http://www.w3.org/2000/svg",
1405
- "width": "11",
1406
- "height": "12"
1415
+ return $5vyXB$solidjsweb.ssrElement("svg", $5vyXB$solidjsweb.mergeProps(props, {
1416
+ xmlns: "http://www.w3.org/2000/svg",
1417
+ width: "11",
1418
+ height: "12"
1407
1419
  }), () => $5vyXB$solidjsweb.ssr($cc43b6428000c4bf$var$_tmpl$), true);
1408
1420
  }
1409
- const $0fe1e7efdf4200d6$var$_tmpl$ = ["<button", ' type="button" class="', '"><!--#-->', "<!--/--><span>", "</span></button>"];
1421
+ const $0fe1e7efdf4200d6$var$_tmpl$ = ["<button", ' type="button" class="', '"><!--$-->', "<!--/--><span>", "</span></button>"];
1410
1422
  function $0fe1e7efdf4200d6$export$ca21a16d65b3dd8({
1411
1423
  show_extras_: [get_show_extras, set_show_extras],
1412
1424
  i18n_: i18n_
1413
1425
  }) {
1414
1426
  return $5vyXB$solidjsweb.ssr($0fe1e7efdf4200d6$var$_tmpl$, $5vyXB$solidjsweb.ssrHydrationKey(), `expand-filter ${get_show_extras() ? "expanded" : ""}`, $5vyXB$solidjsweb.escape($5vyXB$solidjsweb.createComponent((0, $cc43b6428000c4bf$export$f21ab0717a89c77f), {})), get_show_extras() ? $5vyXB$solidjsweb.escape(i18n_.view_less_()) : $5vyXB$solidjsweb.escape(i18n_.view_more_()));
1415
1427
  }
1416
- const $d94869c80e337a3d$var$_tmpl$ = ["<form", ' class="checkboxes"><!--#-->', "<!--/--><!--#-->", "<!--/--></form>"];
1428
+ const $d94869c80e337a3d$var$_tmpl$ = ["<form", ' class="checkboxes"><!--$-->', "<!--/--><!--$-->", "<!--/--></form>"];
1417
1429
  const $d94869c80e337a3d$var$max_visible_without_collapsing = 15;
1418
1430
  const $d94869c80e337a3d$var$show_non_collapsible_when_collapsed = 4;
1419
1431
  function $d94869c80e337a3d$export$dd948f91abc3a1c4({
@@ -1512,7 +1524,7 @@ function $d94869c80e337a3d$export$dd948f91abc3a1c4({
1512
1524
  }
1513
1525
  const $c1dc1554c1b94233$var$_tmpl$ = ["<form", ' class="radios">', "</form>"],
1514
1526
  $c1dc1554c1b94233$var$_tmpl$2 = ["<span", ' class="count">', "</span>"],
1515
- $c1dc1554c1b94233$var$_tmpl$3 = ["<label", ' class="', '"', '><div class="left"><input type="radio"', "", '><span class="custom-indicator"></span><!--#-->', "<!--/--></div><!--#-->", "<!--/--></label>"];
1527
+ $c1dc1554c1b94233$var$_tmpl$3 = ["<label", ' class="', '"', '><div class="left"><input type="radio"', "", '><span class="custom-indicator"></span><!--$-->', "<!--/--></div><!--$-->", "<!--/--></label>"];
1516
1528
  function $c1dc1554c1b94233$export$430444115f70a734({
1517
1529
  selected_filters_: selected_filters_,
1518
1530
  filter_: filter_
@@ -1556,7 +1568,7 @@ function $c1dc1554c1b94233$export$430444115f70a734({
1556
1568
  }
1557
1569
  })));
1558
1570
  }
1559
- const $0b7222ba8a8bb72f$var$_tmpl$ = ["<div", ' class="', '"><div class="input-group"><div class="field"><input', ' type="number"', '></div><div class="separator">-</div><div class="field"><input', ' type="number"', "></div></div><!--#-->", '<!--/--><div class="value-text"><span class="min"><!--#-->', "<!--/--><!--#-->", "<!--/--><!--#-->", '<!--/--></span><span class="max"><!--#-->', "<!--/--><!--#-->", "<!--/--><!--#-->", "<!--/--></span></div></div>"],
1571
+ const $0b7222ba8a8bb72f$var$_tmpl$ = ["<div", ' class="', '"><div class="input-group"><div class="field"><input', ' type="number"', '></div><div class="separator">-</div><div class="field"><input', ' type="number"', "></div></div><!--$-->", '<!--/--><div class="value-text"><span class="min"><!--$-->', "<!--/--><!--$-->", "<!--/--><!--$-->", '<!--/--></span><span class="max"><!--$-->', "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--></span></div></div>"],
1560
1572
  $0b7222ba8a8bb72f$var$_tmpl$2 = ["<div", ' class="slider"><div class="progress" style="', '"></div></div>'],
1561
1573
  $0b7222ba8a8bb72f$var$_tmpl$3 = ["<div", ' class="range-group"><input', ' type="range"', ' step="any"><input', ' type="range"', ' step="any"></div>'];
1562
1574
  function $0b7222ba8a8bb72f$export$e0d834a0ad870cda({
@@ -1781,10 +1793,10 @@ function $7567511a7c3e4bd7$export$e5c2828934226505({
1781
1793
  });
1782
1794
  return outer_div;
1783
1795
  }
1784
- const $3bdc00a1353c1150$var$_tmpl$ = ["<form", ' class="', '"><!--#-->', "<!--/--><!--#-->", "<!--/--></form>"],
1785
- $3bdc00a1353c1150$var$_tmpl$2 = ["<div", ' class="', '"><!--#-->', "<!--/--><!--#-->", "<!--/--></div>"],
1796
+ const $3bdc00a1353c1150$var$_tmpl$ = ["<form", ' class="', '"><!--$-->', "<!--/--><!--$-->", "<!--/--></form>"],
1797
+ $3bdc00a1353c1150$var$_tmpl$2 = ["<div", ' class="', '"><!--$-->', "<!--/--><!--$-->", "<!--/--></div>"],
1786
1798
  $3bdc00a1353c1150$var$_tmpl$3 = ["<details", "></details>"],
1787
- $3bdc00a1353c1150$var$_tmpl$4 = ["<summary", ' class="category-parent"><div class="summary"><span class="', '">', "</span><!--#-->", "<!--/--></div></summary>"];
1799
+ $3bdc00a1353c1150$var$_tmpl$4 = ["<summary", ' class="category-parent"><div class="summary"><span class="', '">', "</span><!--$-->", "<!--/--></div></summary>"];
1788
1800
  const $3bdc00a1353c1150$var$max_visible_without_collapsing = 15;
1789
1801
  const $3bdc00a1353c1150$var$show_non_collapsible_when_collapsed = 4;
1790
1802
  function $3bdc00a1353c1150$export$a32086fa6616eafd({
@@ -2247,15 +2259,18 @@ const $0ef1681699140f1a$export$414f6a19d38e655c = ({
2247
2259
  const current_value = $daa394359b026187$export$325f75597868c4f0(value().value_);
2248
2260
  return !!data?.some(item => $daa394359b026187$export$325f75597868c4f0(item) === current_value);
2249
2261
  });
2250
- const MakeButton = attributes => $5vyXB$solidjsweb.ssrElement("button", () => ({
2251
- ...attributes,
2252
- "disabled": value().count_ === 0 && !is_selected(),
2253
- "classList": {
2254
- minor: !is_selected(),
2255
- major: is_selected(),
2256
- "major-minor-transition": true
2262
+ const MakeButton = attributes => $5vyXB$solidjsweb.ssrElement("button", $5vyXB$solidjsweb.mergeProps(attributes, {
2263
+ get disabled() {
2264
+ return value().count_ === 0 && !is_selected();
2265
+ },
2266
+ get classList() {
2267
+ return {
2268
+ minor: !is_selected(),
2269
+ major: is_selected(),
2270
+ "major-minor-transition": true
2271
+ };
2257
2272
  }
2258
- }), () => ["<!--#-->", $5vyXB$solidjsweb.escape(value().value_), "<!--/-->", "<!--#-->", $5vyXB$solidjsweb.escape($5vyXB$solidjsweb.createComponent((0, $5vyXB$solidjs.Show), {
2273
+ }), () => ["<!--$-->", $5vyXB$solidjsweb.escape(value().value_), "<!--/-->", "<!--$-->", $5vyXB$solidjsweb.escape($5vyXB$solidjsweb.createComponent((0, $5vyXB$solidjs.Show), {
2259
2274
  get when() {
2260
2275
  return value().count_ != undefined;
2261
2276
  },
@@ -2343,7 +2358,7 @@ function $0ef1681699140f1a$var$adjust_sizes(container_width, sizes, set_cols_at_
2343
2358
  overrides: column_to_row_result
2344
2359
  }]]);
2345
2360
  }
2346
- const $b51a2b8b9355e66c$var$_tmpl$ = ["<form", ' class="checkbox-color"><!--#-->', "<!--/--><!--#-->", "<!--/--></form>"];
2361
+ const $b51a2b8b9355e66c$var$_tmpl$ = ["<form", ' class="checkbox-color"><!--$-->', "<!--/--><!--$-->", "<!--/--></form>"];
2347
2362
  const $b51a2b8b9355e66c$var$max_visible_without_collapsing = 30;
2348
2363
  const $b51a2b8b9355e66c$var$show_non_collapsible_when_collapsed = 8;
2349
2364
  function $b51a2b8b9355e66c$export$82ed4b28ecb67608({
@@ -2494,14 +2509,13 @@ var $a636ca15e3d3570d$export$2e2bcd8739ae039 = {
2494
2509
  };
2495
2510
  const $0f4656eaf6c22d1d$var$_tmpl$ = '<path d="M4.617 12.738a.48.48 0 0 1-.164-.027c-.051-.023-.094-.055-.129-.098L.125 8.414A.39.39 0 0 1 0 8.117c0-.113.039-.211.125-.293s.18-.125.293-.125.215.043.297.125l3.902 3.902L16.086.262c.082-.082.18-.125.297-.125s.211.043.293.125.125.184.125.301-.043.215-.125.297L4.914 12.613c-.039.043-.086.078-.141.098s-.102.027-.156.027zm0 0"></path>';
2496
2511
  function $0f4656eaf6c22d1d$export$f2ca6fc699ca1fb4(props = {}) {
2497
- return $5vyXB$solidjsweb.ssrElement("svg", () => ({
2498
- "xmlns": "http://www.w3.org/2000/svg",
2499
- "width": "16.8",
2500
- "height": "14",
2501
- ...props
2502
- }), () => $5vyXB$solidjsweb.ssr($0f4656eaf6c22d1d$var$_tmpl$), true);
2503
- }
2504
- const $b064919833b3e80b$var$_tmpl$ = ["<span", ' class="show-selected" aria-hidden="true"><span>', "</span><!--#-->", "<!--/--></span>"];
2512
+ return $5vyXB$solidjsweb.ssrElement("svg", $5vyXB$solidjsweb.mergeProps({
2513
+ xmlns: "http://www.w3.org/2000/svg",
2514
+ width: "16.8",
2515
+ height: "14"
2516
+ }, props), () => $5vyXB$solidjsweb.ssr($0f4656eaf6c22d1d$var$_tmpl$), true);
2517
+ }
2518
+ const $b064919833b3e80b$var$_tmpl$ = ["<span", ' class="show-selected" aria-hidden="true"><span>', "</span><!--$-->", "<!--/--></span>"];
2505
2519
  function $b064919833b3e80b$export$53c59af873b303c9({
2506
2520
  selected_filters_in_group_: selected_filters_in_group_,
2507
2521
  i18n_: {
@@ -2642,11 +2656,11 @@ function $061ff5b4c3d36171$export$89c6019e4baa40b1(props) {
2642
2656
  });
2643
2657
  }
2644
2658
  const $aff9a96d30ed3563$var$_tmpl$ = ["<div", ' class="filter-collapsible">', "</div>"],
2645
- $aff9a96d30ed3563$var$_tmpl$2 = ["<button", ' class="clear-group"><!--#-->', "<!--/--><span>", "</span></button>"],
2646
- $aff9a96d30ed3563$var$_tmpl$3 = ["<div", ' class="view-more-clear"><!--#-->', "<!--/--><!--#-->", "<!--/--></div>"],
2647
- $aff9a96d30ed3563$var$_tmpl$4 = ["<div", ' class="filter-collapsible-body"><div class="filter-part">', "</div><!--#-->", "<!--/--></div>"],
2659
+ $aff9a96d30ed3563$var$_tmpl$2 = ["<button", ' class="clear-group"><!--$-->', "<!--/--><span>", "</span></button>"],
2660
+ $aff9a96d30ed3563$var$_tmpl$3 = ["<div", ' class="view-more-clear"><!--$-->', "<!--/--><!--$-->", "<!--/--></div>"],
2661
+ $aff9a96d30ed3563$var$_tmpl$4 = ["<div", ' class="filter-collapsible-body"><div class="filter-part">', "</div><!--$-->", "<!--/--></div>"],
2648
2662
  $aff9a96d30ed3563$var$_tmpl$5 = ["<details", ' class="filter-collapsible"', "></details>"],
2649
- $aff9a96d30ed3563$var$_tmpl$6 = ["<summary", ' class="filter-group-summary"><div class="summary"><span>', '</span><div class="selected-w-sign"><!--#-->', "<!--/--><!--#-->", "<!--/--></div></div></summary>"],
2663
+ $aff9a96d30ed3563$var$_tmpl$6 = ["<summary", ' class="filter-group-summary"><div class="summary"><span>', '</span><div class="selected-w-sign"><!--$-->', "<!--/--><!--$-->", "<!--/--></div></div></summary>"],
2650
2664
  $aff9a96d30ed3563$var$_tmpl$7 = ["<div", ' class="ungrouped">', "</div>"],
2651
2665
  $aff9a96d30ed3563$var$_tmpl$8 = ["<button", ' class="clear-all-filters major">', "</button>"];
2652
2666
  function $aff9a96d30ed3563$export$3f1a388cc0d8fed7(props) {
@@ -3487,7 +3501,7 @@ function $76b6ac05693f5c71$export$205efb947c7ffd78(handler, passive = true) {
3487
3501
  $5vyXB$solidjs.onCleanup(() => removeEventListener(event, catchified_handler));
3488
3502
  }
3489
3503
  }
3490
- const $401aee5f33dca9e2$var$_tmpl$ = ["<div", ' class="scroll-status" style="display:none"><span class="text"><b>', "</b> – <b>", "</b> <!--#-->", "<!--/--> <b>", "</b></span></div>"];
3504
+ const $401aee5f33dca9e2$var$_tmpl$ = ["<div", ' class="scroll-status" style="display:none"><span class="text"><b>', "</b> – <b>", "</b> <!--$-->", "<!--/--> <b>", "</b></span></div>"];
3491
3505
  function $401aee5f33dca9e2$export$83fd5de5504a7a67({
3492
3506
  formatted_number_of_results_: formatted_number_of_results_,
3493
3507
  first_result_in_viewport_: [get_first_result_in_viewport],
@@ -3607,7 +3621,7 @@ function $401aee5f33dca9e2$export$83fd5de5504a7a67({
3607
3621
  })), $5vyXB$solidjsweb.escape(of_()), $5vyXB$solidjsweb.escape(count_to_show()));
3608
3622
  }
3609
3623
  const $0d0b172488865048$var$_tmpl$ = ["<a", ' class="hint" href="javascript:void(0)">', "</a>"],
3610
- $0d0b172488865048$var$_tmpl$2 = ["<div", ' class="no-results"><div class="text">', "</div><!--#-->", "<!--/--></div>"];
3624
+ $0d0b172488865048$var$_tmpl$2 = ["<div", ' class="no-results"><div class="text">', "</div><!--$-->", "<!--/--></div>"];
3611
3625
  function $0d0b172488865048$export$ef6006467f04ee41({
3612
3626
  i18n_: i18n_,
3613
3627
  expanded_hierarchical_filters_: expanded_hierarchical_filters_,
@@ -3740,7 +3754,9 @@ function $ac167f6af6a48fc3$export$a1fd619a4743ca08({
3740
3754
  min_products_to_fetch_: min_products_to_fetch_,
3741
3755
  query_base_: query_base_,
3742
3756
  depict_api_: depict_api_,
3743
- is_loading_: is_loading_
3757
+ is_loading_: is_loading_,
3758
+ content_blocks_: content_blocks_,
3759
+ set_number_loaded_displays_: set_number_loaded_displays_
3744
3760
  }) {
3745
3761
  // The following sets up an intersection observer to determine which results are in the viewport, used for the ScrollStatus indicator and knowing when to load more
3746
3762
  const target_to_index_map = new Map();
@@ -3784,11 +3800,13 @@ function $ac167f6af6a48fc3$export$a1fd619a4743ca08({
3784
3800
  query_base_: query_base_,
3785
3801
  depict_api_: depict_api_
3786
3802
  });
3803
+ $5vyXB$solidjs.createComputed(() => set_number_loaded_displays_(displays_by_key_().size));
3787
3804
  return $a73063cc642f3e5f$export$43f0fb951fcb0c54({
3788
3805
  displays_by_key_: displays_by_key_,
3789
3806
  merchant_: merchant_,
3790
3807
  market_: market_,
3791
3808
  product_card_template_: product_card_template_,
3809
+ content_blocks_: content_blocks_,
3792
3810
  do_per_elements_: (elements, index_accessor) =>
3793
3811
  // Adds/removes elements from the "results in viewport" intersection observer above
3794
3812
  $5vyXB$solidjs.createEffect(() => {
@@ -3810,7 +3828,317 @@ function $ac167f6af6a48fc3$export$a1fd619a4743ca08({
3810
3828
  })
3811
3829
  });
3812
3830
  }
3813
- const $fe76fb463cc60b89$var$_tmpl$ = ["<div", ' class="', '"><!--#-->', "<!--/--><!--#-->", "<!--/--></div>"];
3831
+ const $75777da1687ba3f6$var$_tmpl$ = ["<style", ' type="text/css">', "</style>"];
3832
+ const $75777da1687ba3f6$export$c500183c31c2b22e = "--spans-columns";
3833
+ function $75777da1687ba3f6$export$ab6b147eec64fea5(props) {
3834
+ const container_class = "x" + $5vyXB$solidjs.createUniqueId();
3835
+ const container_element_ = $5vyXB$solidjsweb.ssrElement("div", $5vyXB$solidjsweb.mergeProps(() => props.element_attributes, {
3836
+ classList: {
3837
+ [container_class]: true
3838
+ }
3839
+ }), () => $5vyXB$solidjsweb.escape(props.children), true); // Don't want this in the error boundary below, it should only be for the actual layouting
3840
+ return $5vyXB$solidjsweb.createComponent((0, $edafe91daf3091d7$export$b69d0d92862de18b), {
3841
+ message_: "Failed calculating css grid layout",
3842
+ severity_: "error",
3843
+ get children() {
3844
+ return $75777da1687ba3f6$export$e2f22da34aaf310a(props, container_element_, false, container_class);
3845
+ }
3846
+ });
3847
+ }
3848
+ function $75777da1687ba3f6$export$e2f22da34aaf310a(props, container_element, insert_after_container = false, container_class) {
3849
+ if (!container_class) {
3850
+ // only try to add if it wasn't provided, so that we have a code path without classList when doing SSR
3851
+ container_class = $5vyXB$depictaiutilishared.make_random_classname();
3852
+ container_element.classList.add(container_class);
3853
+ }
3854
+ const container_selector = `.depict .${container_class}`; // class so ppl can have id if needed
3855
+ const col_styling = $5vyXB$solidjs.createMemo(() => $75777da1687ba3f6$var$generate_media_queried_declarations({
3856
+ container_selector_: container_selector,
3857
+ default_grid_spacing_text: props.grid_spacing,
3858
+ cols_at_size_: props.cols_at_size,
3859
+ override_vertical_spacing_: props.override_vertical_spacing,
3860
+ top_row_shortened_by_: props.top_row_shortened_by_()
3861
+ }));
3862
+ const base_styling = $5vyXB$solidjs.createMemo(() => {
3863
+ return `${container_selector}{display:grid;}`;
3864
+ });
3865
+ const get_styling = $5vyXB$solidjs.createMemo(() => base_styling() + col_styling());
3866
+ const style_element = $5vyXB$solidjsweb.ssr($75777da1687ba3f6$var$_tmpl$, $5vyXB$solidjsweb.ssrHydrationKey(), get_styling); // need to create this after set_styling has been called or else there will be no styling in the SSR'd output
3867
+ if (insert_after_container) container_element.after(style_element);
3868
+ return [container_element, style_element];
3869
+ }
3870
+ function $75777da1687ba3f6$var$generate_media_queried_declarations({
3871
+ container_selector_: container_selector_,
3872
+ default_grid_spacing_text: default_grid_spacing_text,
3873
+ cols_at_size_: cols_at_size_,
3874
+ override_vertical_spacing_: override_vertical_spacing_,
3875
+ top_row_shortened_by_: top_row_shortened_by_
3876
+ }) {
3877
+ return cols_at_size_.map(options => {
3878
+ const [n_cols, min, max, grid_spacing_for_size] = options;
3879
+ const spacing_to_use = grid_spacing_for_size || default_grid_spacing_text;
3880
+ // See comment in else block below
3881
+ const can_use_gap = $75777da1687ba3f6$var$can_use_gap_for_unit(spacing_to_use) && (!override_vertical_spacing_ || $75777da1687ba3f6$var$can_use_gap_for_unit(override_vertical_spacing_));
3882
+ let spacing_styling;
3883
+ let additional_styling = ""; // outside the media query
3884
+ if (can_use_gap) spacing_styling = `gap:${spacing_to_use};${override_vertical_spacing_ ? `row-gap:${override_vertical_spacing_};` : ``}`;else {
3885
+ // When using percent units, which our default styling does (because convenient) and our interface relies on (hard to specify different gaps for different screen sizes)
3886
+ // row gaps in grids are relative to the whole height of the grid, maybe see also https://stackoverflow.com/a/53563865. The issue with that is that as we load more products, the gap grows. Also, it breaks existing integrations.
3887
+ // Logical thought: use margins for the vertical spacing. But margins in grids are apparently relative to the size of the individual items in grids.
3888
+ // Given that, and that content blocks can be of different width, we have to do some complicated calculations to convert the provided gap, which is in gap of the total container width, to a margin of the individual items.
3889
+ const width_multiplier = `var(${$75777da1687ba3f6$export$c500183c31c2b22e}, 1)`; // How many cards wide the current item is (needed because content blocks)
3890
+ const one_item_width_exclusing_gaps = `calc(calc(100 / ${n_cols}) - calc(calc(${n_cols * 2 - 2} * calc(${$75777da1687ba3f6$var$strip_percent_unit(spacing_to_use)} / 2)) / ${n_cols}))`; // Width of one item in percent of the whole
3891
+ // Equation from layout.tsx, also used in CheckboxGrid. Needs half spacing for some reason
3892
+ const this_item_width_meat = `calc(${one_item_width_exclusing_gaps} * ${width_multiplier})`; // Width of just the card
3893
+ const this_item_width_gaps = `calc(calc(${width_multiplier} - 1) * ${$75777da1687ba3f6$var$strip_percent_unit(spacing_to_use)})`; // Width of the gaps
3894
+ const this_item_width = `calc(${this_item_width_meat} + ${this_item_width_gaps})`; // Width of this item including gaps
3895
+ // this_item_width needs to be unitless, and since plain css can't do calc(40% / 5%) which would become unitless we need to strip all units in the calculations before
3896
+ const convert_top_spacing_to_item_width_percentage = spacing => `calc(calc(100 / ${this_item_width}) * ${spacing})`; // Now finally we can convert the desired spacing to a percentage of this individual item's width (including gaps that would be there but aren't because content blocks span them)
3897
+ spacing_styling = `column-gap:${spacing_to_use};`; // Still use gaps in the horizontal direction because that works flawlessly
3898
+ // Re-use old layout code to get the correct :nth-child declarations for the top margins
3899
+ additional_styling = $5vyXB$depictaiutilishared.n_col_styling_with_dist(container_selector_ + ">", convert_top_spacing_to_item_width_percentage(default_grid_spacing_text), [[n_cols, min, max, grid_spacing_for_size ? convert_top_spacing_to_item_width_percentage(grid_spacing_for_size) : null]], "grid", override_vertical_spacing_ ? convert_top_spacing_to_item_width_percentage(override_vertical_spacing_) : override_vertical_spacing_, top_row_shortened_by_);
3900
+ }
3901
+ const media_query_body = `${container_selector_}{${spacing_styling}grid-template-columns:repeat(${n_cols},minmax(0,1fr));}`;
3902
+ return `${$5vyXB$depictaiutilishared.layout_media_query_header(min, max)}{${media_query_body}}${additional_styling}`;
3903
+ }).join("");
3904
+ }
3905
+ function $75777da1687ba3f6$var$can_use_gap_for_unit(spacing) {
3906
+ const trimmed_spacing = spacing.trim();
3907
+ return !trimmed_spacing.includes("%");
3908
+ }
3909
+ function $75777da1687ba3f6$var$strip_percent_unit(css_value) {
3910
+ return css_value.replaceAll("%", "");
3911
+ }
3912
+ function $738c3a81fc46a340$export$cb5808ba002cdeed({
3913
+ layout_options_: layout_options_,
3914
+ sort_or_filter_open_: sort_or_filter_open_
3915
+ }) {
3916
+ return $5vyXB$solidjs.createMemo(() => {
3917
+ const layout_options = layout_options_();
3918
+ // Add grid styling that changes when filters get opened/closed
3919
+ const when_filters_closed_cols = layout_options.cols_at_size;
3920
+ return sort_or_filter_open_() ? when_filters_closed_cols.map(row => {
3921
+ const [num_cols_default,,,, override_cols] = row;
3922
+ const cloned_row = [...row];
3923
+ // @ts-ignore
3924
+ cloned_row[0] = num_cols_default - 1;
3925
+ if (override_cols)
3926
+ // @ts-ignore
3927
+ cloned_row[4] = {
3928
+ overrides: Object.fromEntries(Object.entries(override_cols.overrides).map(([row, column]) => [row, column - 1]))
3929
+ };
3930
+ return cloned_row;
3931
+ }) : when_filters_closed_cols;
3932
+ });
3933
+ }
3934
+ function $055384b985678603$export$a79e666719b3647c(cols_at_size_) {
3935
+ const size_active = $5vyXB$solidjs.createMemo(() => cols_at_size_().map(([n_cols, min_width, max_width]) => {
3936
+ const media_query = $5vyXB$depictaiutilishared.layout_media_query_header(min_width, max_width).replaceAll("@media", "");
3937
+ const matches = $b54e6192d0caa293$export$d9f36cf74e24d595(media_query);
3938
+ return [matches, n_cols];
3939
+ }));
3940
+ const n_cols_currently_showing = $5vyXB$solidjs.createMemo(() => {
3941
+ try {
3942
+ const [, n_cols_currently_showing] = size_active().find(([media_query]) => media_query());
3943
+ return n_cols_currently_showing;
3944
+ } catch (e) {
3945
+ $5vyXB$depictaiutilishared.dwarn("No active size found in columnsAtSize - can't render content blocks");
3946
+ return null;
3947
+ }
3948
+ });
3949
+ return n_cols_currently_showing;
3950
+ }
3951
+ function $3bc4a89b971a3af5$export$3f37af283f8fb843(props) {
3952
+ const style = $5vyXB$solidjs.createMemo(() => {
3953
+ const {
3954
+ style: style,
3955
+ height: height,
3956
+ width: width,
3957
+ aspectRatio: aspectRatio
3958
+ } = props;
3959
+ const is_image = aspectRatio != undefined;
3960
+ const size_data = is_image ? {
3961
+ width: "100%",
3962
+ "padding-bottom": 1 / aspectRatio * 100 + "%"
3963
+ } : {
3964
+ width: width,
3965
+ height: height
3966
+ };
3967
+ return {
3968
+ display: "block",
3969
+ ...(style || {}),
3970
+ ...size_data
3971
+ };
3972
+ });
3973
+ return $5vyXB$solidjsweb.createComponent((0, $9fe9883b1d8ecccc$export$acb3eaade4b23afd), {
3974
+ get style() {
3975
+ return style();
3976
+ },
3977
+ get ["class"]() {
3978
+ return props.class;
3979
+ }
3980
+ });
3981
+ }
3982
+ const $d92f338ba8f9da9b$var$_tmpl$ = ["<div", ' class="content-block-wrapper" style="', '">', "</div>"];
3983
+ function $d92f338ba8f9da9b$export$791ef57e62e21c3f({
3984
+ content_blocks_: incoming_content_blocks,
3985
+ cols_at_size_: cols_at_size_,
3986
+ number_of_items_shown_: number_of_items_shown_,
3987
+ set_top_row_shortened_by_: set_top_row_shortened_by_
3988
+ }) {
3989
+ // these are by row
3990
+ const [content_blocks, set_content_blocks] = $5vyXB$solidjsstore.createStore([]);
3991
+ const n_cols_currently_showing_ = $055384b985678603$export$a79e666719b3647c(cols_at_size_);
3992
+ const products_to_rows = products => {
3993
+ const cols_currently_showing = n_cols_currently_showing_();
3994
+ if (cols_currently_showing === null) return 0;
3995
+ return Math.ceil(products / cols_currently_showing);
3996
+ };
3997
+ const showing_rows = $5vyXB$solidjs.createMemo(() => products_to_rows(number_of_items_shown_()));
3998
+ $5vyXB$solidjs.createEffect(() => {
3999
+ const incoming_value = incoming_content_blocks();
4000
+ if (!incoming_value) {
4001
+ set_content_blocks([]);
4002
+ return;
4003
+ }
4004
+ const capped_value = incoming_value.slice(0, showing_rows()); // Don't show more content blocks than we have rows
4005
+ set_content_blocks($5vyXB$solidjsstore.reconcile(capped_value, {
4006
+ key: "content"
4007
+ })); // key: Make moving blocks faster, see https://github.com/solidjs/solid/issues/1925#issuecomment-1769671596
4008
+ });
4009
+
4010
+ const get_wrapped_blocks_ = $d92f338ba8f9da9b$var$wrap_blocks_in_div(content_blocks, n_cols_currently_showing_);
4011
+ $5vyXB$solidjs.createComputed(() => {
4012
+ // Update our styling if a content block forces some items that should be in the top row into a lower one, so we can generate margin-top declarations for them
4013
+ const top_row_block = get_wrapped_blocks_()[0];
4014
+ const blocks_in_top_row_taken = top_row_block?.span_columns;
4015
+ if (blocks_in_top_row_taken == undefined) {
4016
+ // Fall back to zero if no content block in top row, since then no blocks in top row are taken
4017
+ set_top_row_shortened_by_(0);
4018
+ return;
4019
+ }
4020
+ set_top_row_shortened_by_(blocks_in_top_row_taken - 1); // minus one because the content block wrapper also is an element
4021
+ });
4022
+
4023
+ return $d92f338ba8f9da9b$var$remap_blocks_to_index({
4024
+ get_wrapped_blocks_: get_wrapped_blocks_,
4025
+ n_cols_currently_showing_: n_cols_currently_showing_
4026
+ });
4027
+ }
4028
+ /**
4029
+ * Calculate where to put each of the finished wrapped content blocks. Also limit blocks' max width.
4030
+ * @returns an array where index is index of the blocks in the "displays array" and value is the content block (elements) to show at that index
4031
+ */
4032
+ function $d92f338ba8f9da9b$var$remap_blocks_to_index({
4033
+ get_wrapped_blocks_: get_wrapped_blocks_,
4034
+ n_cols_currently_showing_: n_cols_currently_showing_
4035
+ }) {
4036
+ return $5vyXB$solidjs.createMemo(() => {
4037
+ // This computation should be quite cheap since it just moves around things into an array
4038
+ const content_blocks_by_index = [];
4039
+ const constructed_block_arrays = new WeakSet();
4040
+ const wrapped_blocks = get_wrapped_blocks_();
4041
+ const cols_showing = n_cols_currently_showing_();
4042
+ // Need to keep track of products displaced by blocks above when mapping rows to indexes in the actual grid
4043
+ const displaced_products = []; // undefined = is product, true = is content block if number instead of tuple number indicates content blocks in that row. Index in first array is row, index in second array is column
4044
+ for (let i = 0; i < wrapped_blocks.length; i++) {
4045
+ // i = row to show at
4046
+ const block = wrapped_blocks[i];
4047
+ if (!block) continue; // Array can have holes/not defined places
4048
+ const index_of_first_item_in_row = i * cols_showing;
4049
+ const index_of_last_item_in_row = index_of_first_item_in_row + cols_showing;
4050
+ const {
4051
+ span_rows: span_rows,
4052
+ position: position,
4053
+ span_columns: span_columns
4054
+ } = block; // span columns is already capped in the block wrapping step (wrap_blocks_in_div)
4055
+ let target_index;
4056
+ if (position === "left") target_index = index_of_first_item_in_row;else if (position === "right") target_index = index_of_last_item_in_row - span_columns;else if (position === "center") target_index = index_of_first_item_in_row + Math.floor((cols_showing - span_columns) / 2);else throw new Error("Invalid position for content block - must be left, right or center: " + JSON.stringify(position));
4057
+ // Calculate displacement of us by content blocks above us
4058
+ let displacement_by_added_blocks = 0;
4059
+ for (let j = 0; j < i; j++) {
4060
+ const row = displaced_products[j];
4061
+ if (row === undefined) continue; // there were no blocks in this row
4062
+ let items_in_row;
4063
+ if (typeof row === "number") items_in_row = row;else {
4064
+ items_in_row = row.filter(item => item).length;
4065
+ displaced_products[j] = items_in_row;
4066
+ }
4067
+ displacement_by_added_blocks += items_in_row;
4068
+ }
4069
+ const index_of_us_in_row = target_index - index_of_first_item_in_row;
4070
+ for (let j = 0; j < index_of_us_in_row; j++) if (displaced_products[i]?.[j])
4071
+ // Add blocks in our *current* row to the displacement, but only the ones to our left
4072
+ displacement_by_added_blocks++;
4073
+ // Add block to output array at the correct index
4074
+ const final_target_index = target_index - displacement_by_added_blocks;
4075
+ const existing_block = content_blocks_by_index[final_target_index];
4076
+ const block_content = block.content;
4077
+ // If two blocks want to exist at the same location (can happen, for example if one block wants to be at the end of a row and the other one at the start of the next row) add an array with both
4078
+ if (existing_block) {
4079
+ if (constructed_block_arrays.has(existing_block))
4080
+ // Only push to arrays we have created to not create funky bugs when there's an array in JSX.Element
4081
+ existing_block.push(block_content);else {
4082
+ const array = [existing_block, block_content];
4083
+ constructed_block_arrays.add(array);
4084
+ content_blocks_by_index[final_target_index] = array;
4085
+ }
4086
+ } else content_blocks_by_index[final_target_index] = block_content;
4087
+ // Update displacement
4088
+ for (let j = 0; j < span_rows; j++) {
4089
+ const row = displaced_products[i + j] ||= [];
4090
+ for (let k = index_of_us_in_row; k < index_of_us_in_row + span_columns; k++) row[k] = true;
4091
+ }
4092
+ }
4093
+ return content_blocks_by_index;
4094
+ });
4095
+ }
4096
+ /**
4097
+ * Takes a store that contains an array from where index is number of row and value is the result of executing the content block rendering function.
4098
+ * Then renders the content and wraps it into a div with the correct styling.
4099
+ * Also caps span_columns to max available columns
4100
+ */
4101
+ function $d92f338ba8f9da9b$var$wrap_blocks_in_div(rendered_content_blocks, max_span_columns) {
4102
+ const get_wrapped_blocks = $5vyXB$solidjs.mapArray(() => rendered_content_blocks, block => {
4103
+ if (!block) return;
4104
+ const get_span_columns = () => Math.min(block.span_columns, max_span_columns() ?? Infinity);
4105
+ return $5vyXB$solidjs.mergeProps(block, {
4106
+ // Create content divs for the blocks with as much fine-grained diffing as possible?
4107
+ content: $5vyXB$solidjsweb.ssr($d92f338ba8f9da9b$var$_tmpl$, $5vyXB$solidjsweb.ssrHydrationKey(), "grid-column:" + `span ${$5vyXB$solidjsweb.escape(get_span_columns(), true)}` + (";grid-row:" + `span ${$5vyXB$solidjsweb.escape(block.span_rows, true)}`) + (";spans_columns_variable_name:" + $5vyXB$solidjsweb.escape(get_span_columns(), true)), $5vyXB$solidjsweb.escape($5vyXB$solidjsweb.createComponent($d92f338ba8f9da9b$var$RenderContent, {
4108
+ get content() {
4109
+ return block.content;
4110
+ }
4111
+ }))),
4112
+ get span_columns() {
4113
+ // Cap max width of block to the number of columns available, for everyone downstream
4114
+ return get_span_columns();
4115
+ }
4116
+ });
4117
+ });
4118
+ return get_wrapped_blocks;
4119
+ }
4120
+ /**
4121
+ * Basically adds support for async content block functions and shows a rudimentary placeholder if rendering is delayed. Required due to react having a rendering delay.
4122
+ */
4123
+ function $d92f338ba8f9da9b$var$RenderContent(props) {
4124
+ const [resource] = $5vyXB$solidjs.createResource(() => props.content,
4125
+ // Could be reactive
4126
+ fn => fn());
4127
+ $5vyXB$solidjs.createEffect(() => {
4128
+ if (resource.error) console.error("Error in content block rendering", resource.error);
4129
+ });
4130
+ // The suspense is for when there's an async content block (which we have to support due to react having a rendering delay) so that we can show some height while it's loading (should kinda never be visible)
4131
+ return $5vyXB$solidjsweb.createComponent((0, $5vyXB$solidjs.Suspense), {
4132
+ get fallback() {
4133
+ return $5vyXB$solidjsweb.createComponent((0, $3bc4a89b971a3af5$export$3f37af283f8fb843), {
4134
+ width: "100%",
4135
+ height: "max(100%, 400px)"
4136
+ });
4137
+ },
4138
+ children: resource
4139
+ });
4140
+ }
4141
+ const $fe76fb463cc60b89$var$_tmpl$ = ["<div", ' class="', '"><!--$-->', "<!--/--><!--$-->", "<!--/--></div>"];
3814
4142
  function $fe76fb463cc60b89$export$3925f87b1545cfc6({
3815
4143
  plp_results_: plp_results_,
3816
4144
  depict_api_: depict_api_,
@@ -3825,7 +4153,8 @@ function $fe76fb463cc60b89$export$3925f87b1545cfc6({
3825
4153
  sort_or_filter_open_: sort_or_filter_open_,
3826
4154
  product_card_template_: product_card_template_,
3827
4155
  layout_options_: layout_options_,
3828
- id_currently_querying_for_: id_currently_querying_for_
4156
+ id_currently_querying_for_: id_currently_querying_for_,
4157
+ content_blocks_by_row_: content_blocks_by_row_
3829
4158
  }) {
3830
4159
  // The plp_results_ resource will be delayed because we're using createBatchedMemo to not make triplicate API requests, but we need to show the placeholders before already to match Chrome and Firefox's "content has to be there, ready for scroll restoration, before all popstate tasks have been completed"-requirement
3831
4160
  const is_loading_ = $5vyXB$solidjs.createMemo(() => plp_results_.loading || query_base_.loading);
@@ -3866,20 +4195,33 @@ function $fe76fb463cc60b89$export$3925f87b1545cfc6({
3866
4195
  let is_just_after_plp_results_update = false;
3867
4196
  let fallback_is_alive = false;
3868
4197
  const [get_should_have_placeholders_rendered, set_should_have_placeholders_rendered] = $5vyXB$solidjs.createSignal(true);
4198
+ const [top_row_shortened_by_, set_top_row_shortened_by_] = $5vyXB$solidjs.createSignal(0);
4199
+ const [product_card_suspense_is_in_fallback, set_product_card_suspense_is_in_fallback] = $5vyXB$solidjs.createSignal(false);
4200
+ const [number_loaded_displays, set_number_loaded_displays_] = $5vyXB$solidjs.createSignal(0);
4201
+ const modified_cols_at_size = $738c3a81fc46a340$export$cb5808ba002cdeed({
4202
+ layout_options_: layout_options_,
4203
+ sort_or_filter_open_: sort_or_filter_open_
4204
+ });
4205
+ const num_placeholders_ = $5vyXB$solidjs.createMemo(() => {
4206
+ // Can't use the data out of request_base for the id because request_base is too late, we need the correct amount of placeholders before the browser has restored the scroll state after processing all popstate events
4207
+ return (0, $aec24316ed262dc0$export$6c9030e511152266) + (get_scroll_restoration_data().find(({
4208
+ for_id: for_id
4209
+ }) => for_id === id_currently_querying_for_())?.min_results_loaded ?? min_products_to_fetch_);
4210
+ });
4211
+ const number_of_items_shown_ = $5vyXB$solidjs.createMemo(() => is_loading_() || product_card_suspense_is_in_fallback() ? num_placeholders_() : number_loaded_displays());
4212
+ const doesnt_have_content_blocks = $5vyXB$solidjs.createMemo(() => !content_blocks_by_row_());
4213
+ const content_blocks_ = $5vyXB$solidjs.createMemo(() => doesnt_have_content_blocks() ? () => [] : $d92f338ba8f9da9b$export$791ef57e62e21c3f({
4214
+ content_blocks_: content_blocks_by_row_,
4215
+ cols_at_size_: modified_cols_at_size,
4216
+ number_of_items_shown_: number_of_items_shown_,
4217
+ set_top_row_shortened_by_: set_top_row_shortened_by_
4218
+ }));
3869
4219
  const rendered_placeholders = $5vyXB$solidjs.createMemo(() => get_should_have_placeholders_rendered() ? $0caf87eaa19079da$export$f33414a4df0afd3f({
4220
+ content_blocks_: content_blocks_,
3870
4221
  product_card_template_: product_card_template_,
3871
- num_placeholders_: $5vyXB$solidjs.createMemo(() => {
3872
- // Can't use the data out of request_base for the id because request_base is too late, we need the correct amount of placeholders before the browser has restored the scroll state after processing all popstate events
3873
- return (0, $aec24316ed262dc0$export$6c9030e511152266) + (get_scroll_restoration_data().find(({
3874
- for_id: for_id
3875
- }) => for_id === id_currently_querying_for_())?.min_results_loaded ?? min_products_to_fetch_);
3876
- })
4222
+ num_placeholders_: num_placeholders_
3877
4223
  }) : undefined);
3878
4224
  const [get_suspense_is_blocked, set_suspense_is_blocked] = $5vyXB$solidjs.createSignal(false);
3879
- const modified_cols_at_size = $fe76fb463cc60b89$var$make_modified_cols_at_size({
3880
- layout_options_: layout_options_,
3881
- sort_or_filter_open_: sort_or_filter_open_
3882
- });
3883
4225
  const block_suspense_if_needed = () => {
3884
4226
  if (!is_just_after_plp_results_update) return;
3885
4227
  is_just_after_plp_results_update = false;
@@ -3909,18 +4251,18 @@ function $fe76fb463cc60b89$export$3925f87b1545cfc6({
3909
4251
  */
3910
4252
  const product_cards_when_data = $5vyXB$solidjsweb.createComponent((0, $5vyXB$solidjs.Suspense), {
3911
4253
  get fallback() {
3912
- return (() => {
3913
- fallback_is_alive = true;
3914
- $5vyXB$solidjs.onCleanup(block_suspense_if_needed); // Block suspense after initial run every time after we fetch
3915
- return $5vyXB$solidjs.createMemo(() => {
3916
- // We need to be able to block the suspense since when async product cards are *rendering* we want to show the placeholders on initial load but not when loading more
3917
- // In future we could have individual suspense's for each product card, but that's too much for now
3918
- if (get_suspense_is_blocked()) return suspense_contents;
3919
- set_should_have_placeholders_rendered(true); // just in case
3920
- $5vyXB$solidjs.onCleanup(() => set_should_have_placeholders_rendered(false));
3921
- return rendered_placeholders; // I lifted the placeholders into the memo since we don't want to re-render them when switching from <Show> to <Suspense>
3922
- });
3923
- })();
4254
+ fallback_is_alive = true;
4255
+ $5vyXB$solidjs.onCleanup(block_suspense_if_needed); // Block suspense after initial run every time after we fetch
4256
+ set_product_card_suspense_is_in_fallback(true); // Here for the content block code that needs to know how many items we're displaying
4257
+ $5vyXB$solidjs.onCleanup(() => set_product_card_suspense_is_in_fallback(false));
4258
+ return $5vyXB$solidjs.createMemo(() => {
4259
+ // We need to be able to block the suspense since when async product cards are *rendering* we want to show the placeholders on initial load but not when loading more
4260
+ // In future we could have individual suspense's for each product card, but that's too much for now
4261
+ if (get_suspense_is_blocked()) return suspense_contents;
4262
+ set_should_have_placeholders_rendered(true); // just in case
4263
+ $5vyXB$solidjs.onCleanup(() => set_should_have_placeholders_rendered(false));
4264
+ return rendered_placeholders; // I lifted the placeholders into the memo since we don't want to re-render them when switching from <Show> to <Suspense>
4265
+ });
3924
4266
  },
3925
4267
 
3926
4268
  get children() {
@@ -3936,37 +4278,64 @@ function $fe76fb463cc60b89$export$3925f87b1545cfc6({
3936
4278
  min_products_to_fetch_: min_products_to_fetch_,
3937
4279
  query_base_: query_base_,
3938
4280
  depict_api_: depict_api_,
3939
- is_loading_: is_loading_
4281
+ is_loading_: is_loading_,
4282
+ content_blocks_: content_blocks_,
4283
+ set_number_loaded_displays_: set_number_loaded_displays_
3940
4284
  });
3941
4285
  $5vyXB$solidjs.onCleanup(() => suspense_contents = undefined);
3942
4286
  return suspense_contents;
3943
4287
  })();
3944
4288
  }
3945
4289
  });
3946
- return [$fc23d7668ae0011d$export$a2cc176055f8f08(), $5vyXB$solidjsweb.createComponent((0, $f48d0fbb00835aaa$export$d21e32dfedac04be), {
3947
- get cols_at_size() {
3948
- return modified_cols_at_size();
4290
+ /* This Show is so that we show placeholders while query_base is loading and because it's cumbersome to ensure that everything that directly accesses the plp_results_ resource is within the <Suspense> boundary */
4291
+ const listing_contents = $5vyXB$solidjsweb.createComponent((0, $5vyXB$solidjs.Show), {
4292
+ get when() {
4293
+ return !is_loading_();
3949
4294
  },
3950
- get override_vertical_spacing() {
3951
- return layout_options_().override_vertical_spacing;
4295
+ get fallback() {
4296
+ return rendered_placeholders();
3952
4297
  },
3953
- get grid_spacing() {
3954
- return layout_options_().grid_spacing;
4298
+ children: product_cards_when_data
4299
+ });
4300
+ return [$fc23d7668ae0011d$export$a2cc176055f8f08(), $5vyXB$solidjsweb.createComponent((0, $5vyXB$solidjs.Show), {
4301
+ get when() {
4302
+ return doesnt_have_content_blocks();
3955
4303
  },
3956
- rows: "all",
3957
- layout: "grid",
3958
- element_attributes: {
3959
- class: "cards"
4304
+ get fallback() {
4305
+ return $5vyXB$solidjsweb.createComponent((0, $75777da1687ba3f6$export$ab6b147eec64fea5), {
4306
+ get cols_at_size() {
4307
+ return modified_cols_at_size();
4308
+ },
4309
+ get override_vertical_spacing() {
4310
+ return layout_options_().override_vertical_spacing;
4311
+ },
4312
+ get grid_spacing() {
4313
+ return layout_options_().grid_spacing;
4314
+ },
4315
+ element_attributes: {
4316
+ class: "cards css-grid"
4317
+ },
4318
+ top_row_shortened_by_: top_row_shortened_by_,
4319
+ children: listing_contents
4320
+ });
3960
4321
  },
3961
4322
  get children() {
3962
- return $5vyXB$solidjsweb.createComponent((0, $5vyXB$solidjs.Show), {
3963
- get when() {
3964
- return !is_loading_();
4323
+ return $5vyXB$solidjsweb.createComponent((0, $f48d0fbb00835aaa$export$d21e32dfedac04be), {
4324
+ get cols_at_size() {
4325
+ return modified_cols_at_size();
4326
+ },
4327
+ get override_vertical_spacing() {
4328
+ return layout_options_().override_vertical_spacing;
4329
+ },
4330
+ get grid_spacing() {
4331
+ return layout_options_().grid_spacing;
3965
4332
  },
3966
- get fallback() {
3967
- return rendered_placeholders();
4333
+ rows: "all",
4334
+ layout: "grid",
4335
+ element_attributes: {
4336
+ class: "cards"
3968
4337
  },
3969
- children: product_cards_when_data
4338
+ children: listing_contents
3970
4339
  });
3971
4340
  }
3972
4341
  })];
@@ -3975,36 +4344,10 @@ function $fe76fb463cc60b89$export$3925f87b1545cfc6({
3975
4344
  }
3976
4345
  })), $5vyXB$solidjsweb.escape(desktop_filter_elements_()));
3977
4346
  }
3978
- /**
3979
- * Changes cols_at_size depending on if filters are open or not so one card less is shown when the filters are open
3980
- * This function is special to the actual PLPResults.
3981
- */
3982
- function $fe76fb463cc60b89$var$make_modified_cols_at_size({
3983
- layout_options_: layout_options_,
3984
- sort_or_filter_open_: sort_or_filter_open_
3985
- }) {
3986
- return $5vyXB$solidjs.createMemo(() => {
3987
- const layout_options = layout_options_();
3988
- // Add grid styling that changes when filters get opened/closed
3989
- const when_filters_closed_cols = layout_options.cols_at_size;
3990
- return sort_or_filter_open_() ? when_filters_closed_cols.map(row => {
3991
- const [num_cols_default,,,, override_cols] = row;
3992
- const cloned_row = [...row];
3993
- // @ts-ignore
3994
- cloned_row[0] = num_cols_default - 1;
3995
- if (override_cols)
3996
- // @ts-ignore
3997
- cloned_row[4] = {
3998
- overrides: Object.fromEntries(Object.entries(override_cols.overrides).map(([row, column]) => [row, column - 1]))
3999
- };
4000
- return cloned_row;
4001
- }) : when_filters_closed_cols;
4002
- });
4003
- }
4004
4347
  const $be89be42ce9ea60f$var$_tmpl$ = ["<div", ' class="sorting-attributes">', "</div>"],
4005
4348
  $be89be42ce9ea60f$var$_tmpl$2 = ["<div", ' class="sorting-direction">', "</div>"],
4006
- $be89be42ce9ea60f$var$_tmpl$3 = ["<div", '><div class="input-row"><input type="radio"', '><span class="custom-indicator"></span><!--#-->', "<!--/--></div></div>"],
4007
- $be89be42ce9ea60f$var$_tmpl$4 = ["<div", '><label class="input-row"><input type="radio"', "", '><span class="custom-indicator"></span><!--#-->', "<!--/--></label></div>"];
4349
+ $be89be42ce9ea60f$var$_tmpl$3 = ["<div", '><div class="input-row"><input type="radio"', '><span class="custom-indicator"></span><!--$-->', "<!--/--></div></div>"],
4350
+ $be89be42ce9ea60f$var$_tmpl$4 = ["<div", '><label class="input-row"><input type="radio"', "", '><span class="custom-indicator"></span><!--$-->', "<!--/--></label></div>"];
4008
4351
  function $be89be42ce9ea60f$export$1f1775a58da589b5({
4009
4352
  available_sortings_: available_sortings_,
4010
4353
  current_sorting_: [get_current_sorting, set_current_sorting],
@@ -4098,23 +4441,21 @@ function $ca1176b694a6ee2e$export$fe334901e8bebd57() {
4098
4441
  const $f958b5ac0e4a78da$var$_tmpl$ = '<path d="M6.199 10.254a.35.35 0 0 0-.496 0L3.5 12.453V.348a.35.35 0 0 0-.7 0v12.105L.598 10.254c-.137-.137-.359-.137-.492 0a.35.35 0 0 0 0 .492l2.797 2.801a.35.35 0 0 0 .496 0L6.2 10.746c.137-.137.137-.355 0-.492zM9.449 3.5H8.051a.35.35 0 0 1-.352-.352V1.75c0-.191.156-.352.352-.352h1.398c.195 0 .352.16.352.352v1.398a.35.35 0 0 1-.352.352zm-1.051-.699h.703v-.699h-.703zm0 0"></path>',
4099
4442
  $f958b5ac0e4a78da$var$_tmpl$2 = '<path d="M10.852 6.301H8.051a.35.35 0 0 1-.352-.352V4.551a.35.35 0 0 1 .352-.352h2.801a.35.35 0 0 1 .348.352v1.398a.35.35 0 0 1-.348.352zm-2.453-.699H10.5v-.703H8.398zm3.851 3.5H8.051c-.195 0-.352-.16-.352-.352V7.352A.35.35 0 0 1 8.051 7h4.199c.191 0 .352.156.352.352V8.75c0 .191-.16.352-.352.352zm-3.852-.703h3.5V7.7h-3.5zm5.25 3.499H8.051a.35.35 0 0 1-.352-.348v-1.402a.35.35 0 0 1 .352-.348h5.598a.35.35 0 0 1 .352.348v1.402a.35.35 0 0 1-.352.348zm-5.25-.699H13.3V10.5H8.398zm0 0"></path>';
4100
4443
  function $f958b5ac0e4a78da$export$da32f7add8a22e86(props = {}) {
4101
- return $5vyXB$solidjsweb.ssrElement("svg", () => ({
4102
- "xmlns": "http://www.w3.org/2000/svg",
4103
- "width": "14",
4104
- "height": "14",
4105
- "class": "sort-icon",
4106
- ...props
4107
- }), () => [$5vyXB$solidjsweb.ssr($f958b5ac0e4a78da$var$_tmpl$), $5vyXB$solidjsweb.ssr($f958b5ac0e4a78da$var$_tmpl$2)], true);
4444
+ return $5vyXB$solidjsweb.ssrElement("svg", $5vyXB$solidjsweb.mergeProps({
4445
+ xmlns: "http://www.w3.org/2000/svg",
4446
+ width: "14",
4447
+ height: "14",
4448
+ "class": "sort-icon"
4449
+ }, props), () => [$5vyXB$solidjsweb.ssr($f958b5ac0e4a78da$var$_tmpl$), $5vyXB$solidjsweb.ssr($f958b5ac0e4a78da$var$_tmpl$2)], true);
4108
4450
  }
4109
4451
  const $046db47e0326c715$var$_tmpl$ = '<path d="M6.199 10.254a.35.35 0 0 0-.496 0L3.5 12.453V.348a.35.35 0 0 0-.7 0v12.105L.598 10.254c-.137-.137-.359-.137-.492 0a.35.35 0 0 0 0 .492l2.797 2.801a.35.35 0 0 0 .496 0L6.2 10.746c.137-.137.137-.355 0-.492zm3.25 1.644H8.051a.35.35 0 0 1-.352-.348v-1.402a.35.35 0 0 1 .352-.348h1.398a.35.35 0 0 1 .352.348v1.402a.35.35 0 0 1-.352.348zm-1.051-.699h.703V10.5h-.703zm2.454-2.097H8.051c-.195 0-.352-.16-.352-.352V7.352A.35.35 0 0 1 8.051 7h2.801a.35.35 0 0 1 .348.352V8.75c0 .191-.156.352-.348.352zm-2.453-.703H10.5V7.7H8.398zm3.851-2.098H8.051a.35.35 0 0 1-.352-.352V4.551a.35.35 0 0 1 .352-.352h4.199c.191 0 .352.156.352.352v1.398c0 .195-.16.352-.352.352zm-3.852-.699h3.5v-.703h-3.5zm5.25-2.102H8.051a.35.35 0 0 1-.352-.352V1.75c0-.191.156-.352.352-.352h5.598c.195 0 .352.16.352.352v1.398a.35.35 0 0 1-.352.352zm-5.25-.699H13.3v-.699H8.398zm0 0"></path>';
4110
4452
  function $046db47e0326c715$export$d10e63059ddb9fd4(props = {}) {
4111
- return $5vyXB$solidjsweb.ssrElement("svg", () => ({
4112
- "xmlns": "http://www.w3.org/2000/svg",
4113
- "width": "14",
4114
- "height": "14",
4115
- "class": "sort-icon",
4116
- ...props
4117
- }), () => $5vyXB$solidjsweb.ssr($046db47e0326c715$var$_tmpl$), true);
4453
+ return $5vyXB$solidjsweb.ssrElement("svg", $5vyXB$solidjsweb.mergeProps({
4454
+ xmlns: "http://www.w3.org/2000/svg",
4455
+ width: "14",
4456
+ height: "14",
4457
+ "class": "sort-icon"
4458
+ }, props), () => $5vyXB$solidjsweb.ssr($046db47e0326c715$var$_tmpl$), true);
4118
4459
  }
4119
4460
  const $02215fefc955d01e$var$_tmpl$ = ["<svg", ' xmlns="http://www.w3.org/2000/svg" width="14" height="15" class="filter-icon"><path d="M1.75 14.697c-.096 0-.178-.034-.246-.103s-.103-.15-.103-.246V8.75c0-.096.034-.178.103-.246s.15-.103.246-.103.178.034.246.103.103.15.103.246v5.599c0 .096-.034.178-.103.246s-.15.103-.246.103zm0-9.796c-.096 0-.178-.034-.246-.103s-.103-.15-.103-.246v-3.5c0-.1.034-.185.103-.253s.15-.103.246-.103.178.034.246.103.103.153.103.253v3.5c0 .096-.034.178-.103.246s-.15.103-.246.103zm.697 2.796H1.053c-.292 0-.54-.103-.745-.308S0 6.938 0 6.651s.103-.54.308-.745.453-.308.745-.308h1.395c.292 0 .54.103.745.308s.308.453.308.745-.103.533-.308.738-.453.308-.745.308zM1.053 6.303c-.1 0-.185.034-.253.103s-.103.15-.103.246.034.178.103.246S.952 7 1.053 7h1.395c.1 0 .185-.034.253-.103s.103-.15.103-.246-.034-.178-.103-.246-.153-.103-.253-.103H1.053zm5.599 8.395c-.096 0-.178-.034-.246-.103s-.103-.15-.103-.246v-2.796c0-.1.034-.184.103-.253s.15-.102.246-.102.178.034.246.102.103.153.103.253v2.796c0 .096-.034.178-.103.246s-.15.103-.246.103zm0-7c-.096 0-.178-.034-.246-.103s-.103-.15-.103-.246V1.053c0-.1.034-.185.103-.253s.15-.103.246-.103.178.034.246.103S7 .952 7 1.053v6.296c0 .096-.034.178-.103.246s-.15.103-.246.103zm.697 2.803H5.947c-.287 0-.533-.102-.738-.308s-.308-.453-.308-.745.103-.533.308-.738.451-.308.738-.308h1.401c.292 0 .54.103.745.308s.308.451.308.738-.103.54-.308.745-.453.308-.745.308zM5.947 9.099c-.096 0-.178.034-.246.103s-.103.15-.103.246.034.185.103.253.15.103.246.103h1.401c.096 0 .178-.034.246-.103s.103-.153.103-.253-.034-.178-.103-.246-.15-.103-.246-.103H5.947zm5.605 5.599c-.1 0-.184-.034-.253-.103s-.102-.15-.102-.246v-7c0-.096.034-.178.102-.246S11.453 7 11.553 7s.178.034.246.103.103.15.103.246v7c0 .096-.034.178-.103.246s-.15.103-.246.103zm0-11.197c-.1 0-.184-.034-.253-.103s-.102-.15-.102-.246V1.053c0-.1.034-.185.102-.253s.153-.103.253-.103.178.034.246.103.103.153.103.253v2.099c0 .096-.034.178-.103.246s-.15.103-.246.103zm.697 2.803h-1.401c-.287 0-.533-.103-.738-.308s-.308-.453-.308-.745.103-.54.308-.745.451-.308.738-.308h1.401c.292 0 .54.103.745.308s.308.453.308.745-.102.54-.308.745-.453.308-.745.308zm-1.401-1.401c-.096 0-.178.034-.246.103s-.102.15-.102.246.034.178.102.246.15.103.246.103h1.401c.096 0 .178-.034.246-.103s.102-.15.102-.246-.034-.178-.102-.246-.15-.103-.246-.103h-1.401z"></path></svg>'];
4120
4461
  function $02215fefc955d01e$export$28f6150e232898de() {
@@ -4129,9 +4470,9 @@ function $7e91f9b0c6d56424$export$50f68cc9882e36a4(args_for_filtering) {
4129
4470
  return args_for_filtering.available_filters_()?.length === 0 && !args_for_filtering.selected_filters_[0]()?.length;
4130
4471
  }
4131
4472
  const $1872ceb56ede7a52$var$_tmpl$ = ["<button", ' class="clear minor">', "</button>"],
4132
- $1872ceb56ede7a52$var$_tmpl$2 = ["<div", ' class="depict plp" id="depict-filter-sort-mobile-modal-container"><div class="depict-filter-sort-modal-backdrop"></div><button class="dismiss-modal"', ">", '</button><div class="filter-sort-modal"><div class="body" style="', '"><!--#-->', "<!--/--><!--#-->", '<!--/--></div><div class="bottom-row"><!--#-->', '<!--/--><button class="show-results major">', "</button></div></div></div>"],
4473
+ $1872ceb56ede7a52$var$_tmpl$2 = ["<div", ' class="depict plp" id="depict-filter-sort-mobile-modal-container"><div class="depict-filter-sort-modal-backdrop"></div><button class="dismiss-modal"', ">", '</button><div class="filter-sort-modal"><div class="body" style="', '"><!--$-->', "<!--/--><!--$-->", '<!--/--></div><div class="bottom-row"><!--$-->', '<!--/--><button class="show-results major">', "</button></div></div></div>"],
4133
4474
  $1872ceb56ede7a52$var$_tmpl$3 = ["<details", ' class="sorting"></details>'],
4134
- $1872ceb56ede7a52$var$_tmpl$4 = ["<summary", ' class="sort-filter-summary"><div class="summary"><div class="left-els"><!--#-->', "<!--/--><span>", "</span></div><!--#-->", "<!--/--></div></summary>"],
4475
+ $1872ceb56ede7a52$var$_tmpl$4 = ["<summary", ' class="sort-filter-summary"><div class="summary"><div class="left-els"><!--$-->', "<!--/--><span>", "</span></div><!--$-->", "<!--/--></div></summary>"],
4135
4476
  $1872ceb56ede7a52$var$_tmpl$5 = ["<div", ' class="body">', "</div>"],
4136
4477
  $1872ceb56ede7a52$var$_tmpl$6 = ["<details", ' class="filters"></details>'],
4137
4478
  $1872ceb56ede7a52$var$_tmpl$7 = ["<b", ">", "</b>"];
@@ -4243,10 +4584,10 @@ function $f49857214f7675b1$export$cb808a3c41736d8e() {
4243
4584
  }
4244
4585
  const $f8f64d05c525825b$var$_tmpl$ = ["<div", ' class="filters"><div class="body">', "</div></div>"],
4245
4586
  $f8f64d05c525825b$var$_tmpl$2 = ["<div", ' class="sorting"><div class="body">', "</div></div>"],
4246
- $f8f64d05c525825b$var$_tmpl$3 = ["<div", ' class="sort-and-filter-buttons"><div class="outer"><div class="inner"><!--#-->', "<!--/--><!--#-->", "<!--/--><!--#-->", "<!--/--></div></div></div>"],
4587
+ $f8f64d05c525825b$var$_tmpl$3 = ["<div", ' class="sort-and-filter-buttons"><div class="outer"><div class="inner"><!--$-->', "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--></div></div></div>"],
4247
4588
  $f8f64d05c525825b$var$_tmpl$4 = ["<span", ' class="num-filters" style="', '">', "</span>"],
4248
- $f8f64d05c525825b$var$_tmpl$5 = ["<div", ' class="open-filters-button-container" style="', '"><!--#-->', "<!--/--><button", ' class="', '" type="button"', ' style="', '"><!--#-->', "<!--/--><span>", "</span></button></div>"],
4249
- $f8f64d05c525825b$var$_tmpl$6 = ["<button", ' class="', '"', ' style="', '"><span>', "</span><!--#-->", "<!--/--></button>"];
4589
+ $f8f64d05c525825b$var$_tmpl$5 = ["<div", ' class="open-filters-button-container" style="', '"><!--$-->', "<!--/--><button", ' class="', '" type="button"', ' style="', '"><!--$-->', "<!--/--><span>", "</span></button></div>"],
4590
+ $f8f64d05c525825b$var$_tmpl$6 = ["<button", ' class="', '"', ' style="', '"><span>', "</span><!--$-->", "<!--/--></button>"];
4250
4591
  function $f8f64d05c525825b$export$d7841e452f2e59a8({
4251
4592
  current_sorting_: current_sorting_,
4252
4593
  set_extra_els_in_results_container_: set_extra_els_in_results_container_,
@@ -5157,10 +5498,10 @@ function $6a8e766e914723d8$export$d31a1a1a83ad9413(plp_results_, [get_selected_f
5157
5498
  set_selected_filters(new_filters);
5158
5499
  });
5159
5500
  }
5160
- const $840d88a04b2d22a7$var$_tmpl$ = ["<div", ' class="product-count"><!--#-->', "<!--/--> <!--#-->", "<!--/--></div>"],
5501
+ const $840d88a04b2d22a7$var$_tmpl$ = ["<div", ' class="product-count"><!--$-->', "<!--/--> <!--$-->", "<!--/--></div>"],
5161
5502
  $840d88a04b2d22a7$var$_tmpl$2 = ["<div", "></div>"],
5162
- $840d88a04b2d22a7$var$_tmpl$3 = ["<div", ' class="filter-results-for-one-row"><!--#-->', "<!--/--><!--#-->", "<!--/--></div>"],
5163
- $840d88a04b2d22a7$var$_tmpl$4 = ["<div", ' class="depict plp category"><div class="listing-page"><!--#-->', "<!--/--><!--#-->", "<!--/--><!--#-->", "<!--/--><!--#-->", "<!--/--><!--#-->", "<!--/--><!--#-->", "<!--/--></div><!--#-->", "<!--/--><!--#-->", "<!--/--></div>"];
5503
+ $840d88a04b2d22a7$var$_tmpl$3 = ["<div", ' class="filter-results-for-one-row"><!--$-->', "<!--/--><!--$-->", "<!--/--></div>"],
5504
+ $840d88a04b2d22a7$var$_tmpl$4 = ["<div", ' class="depict plp category"><div class="listing-page"><!--$-->', "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--></div><!--$-->", "<!--/--><!--$-->", "<!--/--></div>"];
5164
5505
  function $840d88a04b2d22a7$export$f7d2f673fc2f091d({
5165
5506
  depict_api_: depict_api_,
5166
5507
  query_id_: query_id_,
@@ -5188,7 +5529,8 @@ function $840d88a04b2d22a7$export$f7d2f673fc2f091d({
5188
5529
  product_card_template_: product_card_template_,
5189
5530
  sideways_filter_clearing_flag_: sideways_filter_clearing_flag_,
5190
5531
  sorting_query_param_: sorting_query_param_,
5191
- filter_query_param_prefix_: filter_query_param_prefix_
5532
+ filter_query_param_prefix_: filter_query_param_prefix_,
5533
+ content_blocks_by_row_: content_blocks_by_row_
5192
5534
  }) {
5193
5535
  let results_for;
5194
5536
  let only_show_filters_opener_;
@@ -5436,6 +5778,7 @@ function $840d88a04b2d22a7$export$f7d2f673fc2f091d({
5436
5778
  product_card_template_: product_card_template_,
5437
5779
  sort_or_filter_open_: sort_or_filter_open_,
5438
5780
  desktop_filter_elements_: desktop_filter_elements_,
5781
+ content_blocks_by_row_: content_blocks_by_row_,
5439
5782
  id_currently_querying_for_: query_id_,
5440
5783
  no_results_options_: {
5441
5784
  selected_filters_: selected_filters_,
@@ -5935,6 +6278,7 @@ function $48567ac5b39bac56$export$e2bf8ce7779e827e(props) {
5935
6278
  expanded_hierarchical_filters_: expanded_hierarchical_filters_,
5936
6279
  selected_filters_: selected_filters_,
5937
6280
  sideways_filter_clearing_flag_: sideways_filter_clearing_flag_,
6281
+ content_blocks_by_row_: () => props.content_blocks_by_row,
5938
6282
  scroll_restoration_data_: scroll_restoration_data_,
5939
6283
  layout_options_: $5vyXB$solidjs.createMemo(() => ({
5940
6284
  cols_at_size: $4e04be41243c3d80$export$6daf8749b65a1b77(props.cols_at_size),
@@ -5998,7 +6342,7 @@ function $48567ac5b39bac56$var$get_shared_properties(depict_category) {
5998
6342
  if (!shared_properties) throw new Error("Can't connect to provided DepictCategory instance");
5999
6343
  return shared_properties;
6000
6344
  }
6001
- const $0b23bfd073d9a4e8$var$_tmpl$ = ["<div", ' class="category-title"><h1 class="title">', '</h1><span class="explanation"> — <!--#-->', "<!--/--></span></div>"];
6345
+ const $0b23bfd073d9a4e8$var$_tmpl$ = ["<div", ' class="category-title"><h1 class="title">', '</h1><span class="explanation"> — <!--$-->', "<!--/--></span></div>"];
6002
6346
  const $0b23bfd073d9a4e8$export$b91cec6bdc6b32a1 = /*@__PURE__*/(() => {
6003
6347
  const actual_function = ({
6004
6348
  category_title_: category_title_,
@@ -6013,7 +6357,7 @@ const $0b23bfd073d9a4e8$export$b91cec6bdc6b32a1 = /*@__PURE__*/(() => {
6013
6357
  actual_function[(0, $6b502b1b2155a0bc$export$5c28802497c8a83c)] = "simple";
6014
6358
  return actual_function;
6015
6359
  })();
6016
- const $85b747260aa175c9$var$_tmpl$ = ["<div", ' class="sort-and-filter-buttons fake" aria-hidden="true" style="position:absolute;z-index:-1;pointer-events:none;opacity:0"><div class="outer"><div class="inner"><!--#-->', "<!--/--><!--#-->", "<!--/--><!--#-->", "<!--/--></div></div></div>"];
6360
+ const $85b747260aa175c9$var$_tmpl$ = ["<div", ' class="sort-and-filter-buttons fake" aria-hidden="true" style="position:absolute;z-index:-1;pointer-events:none;opacity:0"><div class="outer"><div class="inner"><!--$-->', "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--></div></div></div>"];
6017
6361
  const $85b747260aa175c9$export$824dde41348efed1 = /*@__PURE__*/(() => {
6018
6362
  const actual_function = ({
6019
6363
  make_product_count_: make_product_count_,
@@ -6161,37 +6505,6 @@ async function $63b10c9f461e0ef6$var$download_categories(tenant, market, type) {
6161
6505
  return [];
6162
6506
  }
6163
6507
  }
6164
- function $3bc4a89b971a3af5$export$3f37af283f8fb843(props) {
6165
- const style = $5vyXB$solidjs.createMemo(() => {
6166
- const {
6167
- style: style,
6168
- height: height,
6169
- width: width,
6170
- aspectRatio: aspectRatio
6171
- } = props;
6172
- const is_image = aspectRatio != undefined;
6173
- const size_data = is_image ? {
6174
- width: "100%",
6175
- "padding-bottom": 1 / aspectRatio * 100 + "%"
6176
- } : {
6177
- width: width,
6178
- height: height
6179
- };
6180
- return {
6181
- display: "block",
6182
- ...(style || {}),
6183
- ...size_data
6184
- };
6185
- });
6186
- return $5vyXB$solidjsweb.createComponent((0, $9fe9883b1d8ecccc$export$acb3eaade4b23afd), {
6187
- get style() {
6188
- return style();
6189
- },
6190
- get ["class"]() {
6191
- return props.class;
6192
- }
6193
- });
6194
- }
6195
6508
  const $6f604560873e4f69$var$_tmpl$ = ["<div", ' class="instant-card"><div class="img-part">', '</div><div class="right-part"><div class="title-brand-tagline"><span class="title">', "</span></div></div></div>"];
6196
6509
  function $6f604560873e4f69$export$ee1733d9a8495996() {
6197
6510
  return $5vyXB$solidjsweb.ssr($6f604560873e4f69$var$_tmpl$, $5vyXB$solidjsweb.ssrHydrationKey(), $5vyXB$solidjsweb.escape($5vyXB$solidjsweb.createComponent((0, $3bc4a89b971a3af5$export$3f37af283f8fb843), {
@@ -6202,7 +6515,7 @@ function $6f604560873e4f69$export$ee1733d9a8495996() {
6202
6515
  })));
6203
6516
  }
6204
6517
  const $dae23104ba8bb78c$var$_tmpl$ = ["<span", ' class="parent-title">', "</span>"],
6205
- $dae23104ba8bb78c$var$_tmpl$2 = ["<a", ' class="category-suggestion"', '><span class="title">', "</span><!--#-->", "<!--/--></a>"];
6518
+ $dae23104ba8bb78c$var$_tmpl$2 = ["<a", ' class="category-suggestion"', '><span class="title">', "</span><!--$-->", "<!--/--></a>"];
6206
6519
  function $dae23104ba8bb78c$export$d757d54550ebfb3d({
6207
6520
  category_suggestion_: category_suggestion_,
6208
6521
  router_: router_
@@ -6222,15 +6535,14 @@ function $3df11fc61432d1fd$export$1c641004b5485fed() {
6222
6535
  }
6223
6536
  const $87d7574e1d89d69b$var$_tmpl$ = '<path d="M19.811 20.174l-6.234-6.809a7.96 7.96 0 0 0 .923-1.179c.274-.424.502-.865.687-1.323a8.04 8.04 0 0 0 .42-1.436 7.88 7.88 0 0 0 .144-1.507c0-.526-.051-1.042-.154-1.548-.096-.506-.243-.995-.441-1.466s-.441-.919-.728-1.343a8.28 8.28 0 0 0-.984-1.21 7.86 7.86 0 0 0-1.2-.984A7.56 7.56 0 0 0 10.89.651C10.418.453 9.929.302 9.423.2S8.401.046 7.875.046 6.833.097 6.327.2 5.332.453 4.86.651a7.56 7.56 0 0 0-1.354.718c-.431.287-.831.615-1.2.984a8.28 8.28 0 0 0-.984 1.21 7.73 7.73 0 0 0-.728 1.343c-.198.472-.349.96-.451 1.466A8.31 8.31 0 0 0 0 7.921a8.31 8.31 0 0 0 .144 1.548c.103.506.253.995.451 1.466a8.08 8.08 0 0 0 .728 1.354 7.86 7.86 0 0 0 .984 1.2 7.54 7.54 0 0 0 1.2.995c.431.287.882.53 1.354.728.472.191.96.338 1.466.441a8.31 8.31 0 0 0 1.548.144c.451 0 .896-.038 1.333-.113a7.83 7.83 0 0 0 1.282-.328 7.55 7.55 0 0 0 1.2-.533 8.08 8.08 0 0 0 1.107-.749l6.245 6.809a.45.45 0 0 0 .174.123.55.55 0 0 0 .205.041.61.61 0 0 0 .195-.031c.061-.021.116-.055.164-.102.109-.096.164-.219.164-.369.007-.144-.038-.267-.133-.369zM1.046 7.921c0-.937.178-1.818.533-2.646.362-.834.851-1.559 1.466-2.174.622-.615 1.347-1.101 2.174-1.456.827-.362 1.712-.543 2.656-.543s1.829.181 2.656.543c.827.355 1.548.841 2.164 1.456.622.615 1.111 1.34 1.466 2.174a6.52 6.52 0 0 1 .543 2.646c0 .943-.181 1.829-.543 2.656a6.89 6.89 0 0 1-1.466 2.174c-.615.615-1.336 1.104-2.164 1.466-.827.356-1.712.533-2.656.533s-1.829-.178-2.656-.533c-.827-.362-1.552-.851-2.174-1.466-.615-.622-1.104-1.347-1.466-2.174-.355-.827-.533-1.712-.533-2.656z"></path>';
6224
6537
  function $87d7574e1d89d69b$export$82eafebb825fc23f(props = {}) {
6225
- return $5vyXB$solidjsweb.ssrElement("svg", () => ({
6226
- ...props,
6227
- "xmlns": "http://www.w3.org/2000/svg",
6228
- "width": "20",
6229
- "height": "22"
6538
+ return $5vyXB$solidjsweb.ssrElement("svg", $5vyXB$solidjsweb.mergeProps(props, {
6539
+ xmlns: "http://www.w3.org/2000/svg",
6540
+ width: "20",
6541
+ height: "22"
6230
6542
  }), () => $5vyXB$solidjsweb.ssr($87d7574e1d89d69b$var$_tmpl$), true);
6231
6543
  }
6232
6544
  const $66b8b9a9613c141d$var$_tmpl$ = ["<button", ' class="back" type="button"', ">", "</button>"],
6233
- $66b8b9a9613c141d$var$_tmpl$2 = ["<div", ' class="search-field"><!--#-->', '<!--/--><div class="field"><input class="', '" tabindex="0"', '><button type="button" class="clear"', ' style="', '">', '</button></div><button class="submit major" type="button"', ">", "</button></div>"];
6545
+ $66b8b9a9613c141d$var$_tmpl$2 = ["<div", ' class="search-field"><!--$-->', '<!--/--><div class="field"><input class="', '" tabindex="0"', '><button type="button" class="clear"', ' style="', '">', '</button></div><button class="submit major" type="button"', ">", "</button></div>"];
6234
6546
  function $66b8b9a9613c141d$export$b94867ecbd698f21({
6235
6547
  search_field_value_: search_field_value_,
6236
6548
  input_field_ref_: input_field_ref_,
@@ -6261,7 +6573,7 @@ function $66b8b9a9613c141d$export$b94867ecbd698f21({
6261
6573
  }
6262
6574
  })), `query ${!!on_back_ ? "has-adjacent-back-button" : ""}`, $5vyXB$solidjsweb.ssrAttribute("aria-label", $5vyXB$solidjsweb.escape(i18n_.search_field_field_aria_label_(), true), false) + $5vyXB$solidjsweb.ssrAttribute("value", $5vyXB$solidjsweb.escape(search_field_value_[0](), true), false) + $5vyXB$solidjsweb.ssrAttribute("placeholder", $5vyXB$solidjsweb.escape(i18n_.placeholder_text_(), true), false), $5vyXB$solidjsweb.ssrAttribute("title", $5vyXB$solidjsweb.escape(i18n_.clear_filters_query_sorting_after_submit_(), true), false), $5vyXB$solidjsweb.ssrStyle($5vyXB$solidjs.createMemo(() => search_field_value_[0]() ? "" : "display: none")()), $5vyXB$solidjsweb.escape($5vyXB$solidjsweb.createComponent((0, $c77c68e559a1506c$export$3b621d86b1566b2), {})), $5vyXB$solidjsweb.ssrAttribute("aria-label", $5vyXB$solidjsweb.escape(i18n_.search_submit_button_aria_label_(), true), false), $5vyXB$solidjsweb.escape($5vyXB$solidjsweb.createComponent((0, $87d7574e1d89d69b$export$82eafebb825fc23f), {})));
6263
6575
  }
6264
- const $fb29c6201c369e39$var$_tmpl$ = ["<div", ' class="search-recs"><h3 class="search-recs-title">', "</h3><!--#-->", "<!--/--><!--#-->", "<!--/--></div>"],
6576
+ const $fb29c6201c369e39$var$_tmpl$ = ["<div", ' class="search-recs"><h3 class="search-recs-title">', "</h3><!--$-->", "<!--/--><!--$-->", "<!--/--></div>"],
6265
6577
  $fb29c6201c369e39$var$_tmpl$2 = ["<button", ' class="show-more major" type="button">', "</button>"];
6266
6578
  const $fb29c6201c369e39$export$1c8c715550dc689d = 2;
6267
6579
  function $fb29c6201c369e39$export$7de92c4c2205ebf3({
@@ -6488,8 +6800,8 @@ async function $f328bd45f8ede33c$export$e16630ecb9644a1c({
6488
6800
  const $639c124c22b6cbaa$export$27b710c08412a7ad = obj => {
6489
6801
  return Object.fromEntries(Object.keys(obj).map(key => [key, obj[key]()]));
6490
6802
  };
6491
- const $6ae613870d3380fc$var$_tmpl$ = ["<span", ' class="orig price"><!--#-->', "<!--/--><!--#-->", "<!--/--><!--#-->", "<!--/--></span>"],
6492
- $6ae613870d3380fc$var$_tmpl$2 = ["<a", ' class="instant-card"', '><div class="img-part">', '</div><div class="right-part"><div class="title-brand-tagline"><span class="brand">', '</span><span class="title line-clamp">', "</span><!--#-->", '<!--/--></div><div class="price-container"><!--#-->', '<!--/--><span class="', '"><!--#-->', "<!--/--><!--#-->", "<!--/--><!--#-->", "<!--/--></span></div></div></a>"],
6803
+ const $6ae613870d3380fc$var$_tmpl$ = ["<span", ' class="orig price"><!--$-->', "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--></span>"],
6804
+ $6ae613870d3380fc$var$_tmpl$2 = ["<a", ' class="instant-card"', '><div class="img-part">', '</div><div class="right-part"><div class="title-brand-tagline"><span class="brand">', '</span><span class="title line-clamp">', "</span><!--$-->", '<!--/--></div><div class="price-container"><!--$-->', '<!--/--><span class="', '"><!--$-->', "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--></span></div></div></a>"],
6493
6805
  $6ae613870d3380fc$var$_tmpl$3 = ["<div", ' class="tagline">', "</div>"];
6494
6806
  const $6ae613870d3380fc$export$b05c0ae390cf3e06 = (display_or_variant_container, {
6495
6807
  i18n: i18n
@@ -6662,7 +6974,7 @@ function $9e30168c4b1661d2$export$5d2caaa6b530761c() {
6662
6974
  return $5vyXB$solidjsweb.ssr($9e30168c4b1661d2$var$_tmpl$, $5vyXB$solidjsweb.ssrHydrationKey());
6663
6975
  }
6664
6976
  const $9a268bf73b31a717$var$_tmpl$ = ["<div", ' class="previous-searches"><h2 class="text">', '</h2><div class="list">', "</div></div>"],
6665
- $9a268bf73b31a717$var$_tmpl$2 = ["<a", ' class="', '"', '><div class="left"><!--#-->', '<!--/--><span class="line-clamp"', ">", '</span></div><button class="delete"', ">", "</button></a>"];
6977
+ $9a268bf73b31a717$var$_tmpl$2 = ["<a", ' class="', '"', '><div class="left"><!--$-->', '<!--/--><span class="line-clamp"', ">", '</span></div><button class="delete"', ">", "</button></a>"];
6666
6978
  function $9a268bf73b31a717$export$a146ac6fa8346a25({
6667
6979
  text_: text_,
6668
6980
  previous_searches_: previous_searches_,
@@ -6763,23 +7075,22 @@ function $d023ed916c84e75d$export$ba17c5b7e6dda39f({
6763
7075
  }
6764
7076
  const $c0125412b4ea0c93$var$_tmpl$ = '<path d="M56 26.455a13.71 13.71 0 0 0-9.578 3.967A13.71 13.71 0 0 0 42.455 40v176a13.71 13.71 0 0 0 3.967 9.578A13.71 13.71 0 0 0 56 229.545h144A13.71 13.71 0 0 0 213.545 216V88a2.456 2.456 0 0 1 0-.002c.001-1.452-.597-2.895-1.623-3.922l-55.998-55.998a5.61 5.61 0 0 0-3.922-1.623 2.456 2.456 0 0 1-.002 0zm0 11.09h88A2.456 2.456 0 0 1 146.455 40v48c0 2.903 2.642 5.545 5.545 5.545h48A2.456 2.456 0 0 1 202.455 96v120a2.456 2.456 0 0 1-2.455 2.455H56A2.456 2.456 0 0 1 53.545 216V40A2.456 2.456 0 0 1 56 37.545zm103.061 11.498a2.456 2.456 0 0 1 2.676.531l28.689 28.689a2.456 2.456 0 0 1-1.736 4.191H160A2.456 2.456 0 0 1 157.545 80V51.311a2.456 2.456 0 0 1 1.516-2.268zM96 130.455c-2.903 0-5.545 2.642-5.545 5.545s2.642 5.545 5.545 5.545h64c2.903 0 5.545-2.642 5.545-5.545s-2.642-5.545-5.545-5.545zm0 32c-2.903 0-5.545 2.642-5.545 5.545s2.642 5.545 5.545 5.545h64c2.903 0 5.545-2.642 5.545-5.545s-2.642-5.545-5.545-5.545z"></path>';
6765
7077
  function $c0125412b4ea0c93$export$605674723bcc715c(props = {}) {
6766
- return $5vyXB$solidjsweb.ssrElement("svg", () => ({
6767
- "xmlns": "http://www.w3.org/2000/svg",
6768
- "width": "32",
6769
- "height": "32",
6770
- "viewBox": "0 0 256 256",
6771
- ...props
6772
- }), () => $5vyXB$solidjsweb.ssr($c0125412b4ea0c93$var$_tmpl$), true);
7078
+ return $5vyXB$solidjsweb.ssrElement("svg", $5vyXB$solidjsweb.mergeProps({
7079
+ xmlns: "http://www.w3.org/2000/svg",
7080
+ width: "32",
7081
+ height: "32",
7082
+ viewBox: "0 0 256 256"
7083
+ }, props), () => $5vyXB$solidjsweb.ssr($c0125412b4ea0c93$var$_tmpl$), true);
6773
7084
  }
6774
7085
  const $6b65ba8af12c5a26$var$_tmpl$ = ["<a", ' class="', '"', ">", "</a>"],
6775
7086
  $6b65ba8af12c5a26$var$_tmpl$2 = ["<div", ' class="search-icon">', "</div>"],
6776
7087
  $6b65ba8af12c5a26$var$_tmpl$3 = ["<span", ' class="type">', "</span>"],
6777
- $6b65ba8af12c5a26$var$_tmpl$4 = ["<div", ' class="with-parent-title"><!--#-->', '<!--/--><span class="value line-clamp">', "</span></div>"],
6778
- $6b65ba8af12c5a26$var$_tmpl$5 = ["<div", ' class="with-icon"><!--#-->', "<!--/--><!--#-->", "<!--/--></div>"],
7088
+ $6b65ba8af12c5a26$var$_tmpl$4 = ["<div", ' class="with-parent-title"><!--$-->', '<!--/--><span class="value line-clamp">', "</span></div>"],
7089
+ $6b65ba8af12c5a26$var$_tmpl$5 = ["<div", ' class="with-icon"><!--$-->', "<!--/--><!--$-->", "<!--/--></div>"],
6779
7090
  $6b65ba8af12c5a26$var$_tmpl$6 = ["<h2", ' class="text">', "</h2>"],
6780
- $6b65ba8af12c5a26$var$_tmpl$7 = ["<div", ' class="suggestion-container query"><!--#-->', "<!--/--><!--#-->", "<!--/--></div>"],
7091
+ $6b65ba8af12c5a26$var$_tmpl$7 = ["<div", ' class="suggestion-container query"><!--$-->', "<!--/--><!--$-->", "<!--/--></div>"],
6781
7092
  $6b65ba8af12c5a26$var$_tmpl$8 = ["<div", ' class="suggestion-container page">', "</div>"],
6782
- $6b65ba8af12c5a26$var$_tmpl$9 = ["<div", ' class="', '"><!--#-->', "<!--/--><!--#-->", "<!--/--><!--#-->", "<!--/--></div>"];
7093
+ $6b65ba8af12c5a26$var$_tmpl$9 = ["<div", ' class="', '"><!--$-->', "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--></div>"];
6783
7094
  function $6b65ba8af12c5a26$export$e872e2339fb04a7f({
6784
7095
  suggestion_memo_: suggestion_memo_,
6785
7096
  search_query_url_param_name_: search_query_url_param_name_,
@@ -7332,8 +7643,8 @@ function $b776f25acdda22eb$export$f021bdedd3ec901a(props) {
7332
7643
  }
7333
7644
  const $f40a47a30a358305$var$_tmpl$ = ["<div", ' class="discover-more"><button class="major" type="button">', "</button></div>"],
7334
7645
  $f40a47a30a358305$var$_tmpl$2 = ["<b", ">", "</b>"],
7335
- $f40a47a30a358305$var$_tmpl$3 = ["<div", ' class="', '"><div class="', '"><!--#-->', '<!--/--><div class="padded"><!--#-->', "<!--/--><!--#-->", "<!--/--><!--#-->", "<!--/--></div><!--#-->", "<!--/--></div><!--#-->", "<!--/--></div>"],
7336
- $f40a47a30a358305$var$_tmpl$4 = ["<div", ' class="', '"><div class="depict-search-modal-backdrop"></div><!--#-->', "<!--/--></div>"];
7646
+ $f40a47a30a358305$var$_tmpl$3 = ["<div", ' class="', '"><div class="', '"><!--$-->', '<!--/--><div class="padded"><!--$-->', "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--></div><!--$-->", "<!--/--></div><!--$-->", "<!--/--></div>"],
7647
+ $f40a47a30a358305$var$_tmpl$4 = ["<div", ' class="', '"><div class="depict-search-modal-backdrop"></div><!--$-->', "<!--/--></div>"];
7337
7648
  function $f40a47a30a358305$export$1c593cbd6f1e10bc({
7338
7649
  search_field_value_: props_search_field_value,
7339
7650
  get_search_query_: get_search_query_,
@@ -7814,7 +8125,7 @@ function $5ea5a82e398f6f44$var$segment_text(text, matched_strings) {
7814
8125
  return output;
7815
8126
  }
7816
8127
  const $76227de40be817e5$var$_tmpl$ = ["<div", ' class="description line-clamp">', "</div>"],
7817
- $76227de40be817e5$var$_tmpl$2 = ["<div", ' class="content-card"><div class="image">', '</div><div class="info"><!--#-->', "<!--/--><!--#-->", "<!--/--></div></div>"];
8128
+ $76227de40be817e5$var$_tmpl$2 = ["<div", ' class="content-card"><div class="image">', '</div><div class="info"><!--$-->', "<!--/--><!--$-->", "<!--/--></div></div>"];
7818
8129
  function $76227de40be817e5$export$f631859cab12b342({
7819
8130
  router_: router_,
7820
8131
  content_result_: content_result_
@@ -7941,7 +8252,7 @@ function $c2f92eb265a14529$export$4405d077f0a20494({
7941
8252
  children: () => $5vyXB$solidjsweb.createComponent((0, $76227de40be817e5$export$f631859cab12b342), {})
7942
8253
  });
7943
8254
  }
7944
- const $3716b8caf7f959e2$var$_tmpl$ = ["<div", ' class="content-results" style="', '"><!--#-->', "<!--/--><!--#-->", "<!--/--></div>"],
8255
+ const $3716b8caf7f959e2$var$_tmpl$ = ["<div", ' class="content-results" style="', '"><!--$-->', "<!--/--><!--$-->", "<!--/--></div>"],
7945
8256
  $3716b8caf7f959e2$var$_tmpl$2 = ["<button", ' class="view-more">', "</button>"],
7946
8257
  $3716b8caf7f959e2$var$_tmpl$3 = ["<button", ' class="view-less">', "</button>"];
7947
8258
  const $3716b8caf7f959e2$export$70ceae36059a1036 = 1;
@@ -8027,8 +8338,8 @@ function $3716b8caf7f959e2$var$make_state_saved_rows(
8027
8338
  }));
8028
8339
  return rows;
8029
8340
  }
8030
- const $f1d7cb69f839a526$var$_tmpl$ = ["<div", ' class="filter-results-for-one-row"><!--#-->', "<!--/--><!--#-->", "<!--/--></div>"],
8031
- $f1d7cb69f839a526$var$_tmpl$2 = ["<div", ' class="depict plp search"><div class="listing-page"><!--#-->', "<!--/--><!--#-->", "<!--/--><!--#-->", "<!--/--><!--#-->", "<!--/--><!--#-->", "<!--/--><!--#-->", "<!--/--><!--#-->", "<!--/--></div><!--#-->", "<!--/--><!--#-->", "<!--/--></div>"];
8341
+ const $f1d7cb69f839a526$var$_tmpl$ = ["<div", ' class="filter-results-for-one-row"><!--$-->', "<!--/--><!--$-->", "<!--/--></div>"],
8342
+ $f1d7cb69f839a526$var$_tmpl$2 = ["<div", ' class="depict plp search"><div class="listing-page"><!--$-->', "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--></div><!--$-->", "<!--/--><!--$-->", "<!--/--></div>"];
8032
8343
  function $f1d7cb69f839a526$export$a54ec244c8863715({
8033
8344
  depict_api_: depict_api_,
8034
8345
  search_field_value_: search_field_value_,
@@ -8061,7 +8372,8 @@ function $f1d7cb69f839a526$export$a54ec244c8863715({
8061
8372
  router_: router_,
8062
8373
  content_results_rows_: content_results_rows_,
8063
8374
  content_layout_options_: content_layout_options_,
8064
- content_search_enabled_: content_search_enabled_
8375
+ content_search_enabled_: content_search_enabled_,
8376
+ content_blocks_by_row_: content_blocks_by_row_
8065
8377
  }) {
8066
8378
  const [get_sorting] = current_sorting_;
8067
8379
  const all_products_loaded_ = $5vyXB$solidjs.createSignal(false);
@@ -8305,6 +8617,7 @@ function $f1d7cb69f839a526$export$a54ec244c8863715({
8305
8617
  layout_options_: layout_options_,
8306
8618
  sort_or_filter_open_: sort_or_filter_open_,
8307
8619
  id_currently_querying_for_: get_search_query_,
8620
+ content_blocks_by_row_: content_blocks_by_row_,
8308
8621
  no_results_options_: {
8309
8622
  selected_filters_: selected_filters_,
8310
8623
  expanded_hierarchical_filters_: expanded_hierarchical_filters_,
@@ -8744,6 +9057,7 @@ function $2c61e4cd8229c49a$export$f2dc7e4e4aa11abb(props) {
8744
9057
  search_sorting_open_: state_.sorting_open,
8745
9058
  expanded_filters_: state_.expanded_filters,
8746
9059
  content_results_rows_: state_.content_results_rows,
9060
+ content_blocks_by_row_: () => props.content_blocks_by_row,
8747
9061
  router_: shared_properties.router_,
8748
9062
  make_category_suggestion_card_: shared_properties.enable_category_suggestions_ ? category_suggestion_ => {
8749
9063
  return $dae23104ba8bb78c$export$d757d54550ebfb3d({