@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,11 +1,12 @@
1
1
  import { add_to_version_info as $i7OB2$add_to_version_info, base64_encode_unicode as $i7OB2$base64_encode_unicode, base64_decode_unicode as $i7OB2$base64_decode_unicode, dlog as $i7OB2$dlog, queueMacroTask as $i7OB2$queueMacroTask, catchify as $i7OB2$catchify, is_safari as $i7OB2$is_safari, observer as $i7OB2$observer, Amazing_Slider as $i7OB2$Amazing_Slider, slider_snap_css as $i7OB2$slider_snap_css, slider_fading_factory as $i7OB2$slider_fading_factory, slider_fractional_factory as $i7OB2$slider_fractional_factory, camelCasifyObject as $i7OB2$camelCasifyObject, make_random_classname as $i7OB2$make_random_classname, n_col_styling_with_dist as $i7OB2$n_col_styling_with_dist, layout_get_visible_recs_without_partial_rows as $i7OB2$layout_get_visible_recs_without_partial_rows, layout_get_total_rec_amount_for_row as $i7OB2$layout_get_total_rec_amount_for_row, layout_media_query_header as $i7OB2$layout_media_query_header, report as $i7OB2$report, useExpandingContainer as $i7OB2$useExpandingContainer, standard_price_format as $i7OB2$standard_price_format, hex_to_rgb as $i7OB2$hex_to_rgb, relative_luminance_from_rgb as $i7OB2$relative_luminance_from_rgb, fetch_recs as $i7OB2$fetch_recs, snakeCasifyObject as $i7OB2$snakeCasifyObject, instant_exec_on_suspect_history_change as $i7OB2$instant_exec_on_suspect_history_change, base_url as $i7OB2$base_url, get_depict_id as $i7OB2$get_depict_id, get_user_id as $i7OB2$get_user_id, get_session_id as $i7OB2$get_session_id, sort_obj as $i7OB2$sort_obj, fetch_retry as $i7OB2$fetch_retry, add_version_query_params as $i7OB2$add_version_query_params, dwarn as $i7OB2$dwarn, make_url_with_query_params as $i7OB2$make_url_with_query_params, edit_current_page_meta_tags as $i7OB2$edit_current_page_meta_tags, javascript_media_query as $i7OB2$javascript_media_query, use_href_accessor as $i7OB2$use_href_accessor, make_asyncIterable_exiter as $i7OB2$make_asyncIterable_exiter, href_change_ipns as $i7OB2$href_change_ipns, ContainedImage as $i7OB2$ContainedImage, deparallelize_no_drop as $i7OB2$deparallelize_no_drop, ListenableSet as $i7OB2$ListenableSet, insert_surfaces as $i7OB2$insert_surfaces } from "@depict-ai/utilishared/latest";
2
- import { createComponent as $i7OB2$createComponent, ssr as $i7OB2$ssr, ssrHydrationKey as $i7OB2$ssrHydrationKey, ssrStyle as $i7OB2$ssrStyle, ssrElement as $i7OB2$ssrElement, escape as $i7OB2$escape, insert as $i7OB2$insert, ssrAttribute as $i7OB2$ssrAttribute, mergeProps as $i7OB2$mergeProps, isServer as $i7OB2$isServer, ssrClassList as $i7OB2$ssrClassList, Dynamic as $i7OB2$Dynamic } from "solid-js/web";
3
- import { createSignal as $i7OB2$createSignal, getOwner as $i7OB2$getOwner, createEffect as $i7OB2$createEffect, runWithOwner as $i7OB2$runWithOwner, onCleanup as $i7OB2$onCleanup, createMemo as $i7OB2$createMemo, createContext as $i7OB2$createContext, useContext as $i7OB2$useContext, createResource as $i7OB2$createResource, Suspense as $i7OB2$Suspense, Show as $i7OB2$Show, createRenderEffect as $i7OB2$createRenderEffect, createRoot as $i7OB2$createRoot, For as $i7OB2$For, createUniqueId as $i7OB2$createUniqueId, untrack as $i7OB2$untrack, createComputed as $i7OB2$createComputed, ErrorBoundary as $i7OB2$ErrorBoundary, Index as $i7OB2$Index, on as $i7OB2$on, batch as $i7OB2$batch, createReaction as $i7OB2$createReaction } from "solid-js";
2
+ import { createComponent as $i7OB2$createComponent, ssr as $i7OB2$ssr, ssrHydrationKey as $i7OB2$ssrHydrationKey, ssrStyle as $i7OB2$ssrStyle, ssrElement as $i7OB2$ssrElement, mergeProps as $i7OB2$mergeProps, escape as $i7OB2$escape, insert as $i7OB2$insert, ssrAttribute as $i7OB2$ssrAttribute, isServer as $i7OB2$isServer, ssrClassList as $i7OB2$ssrClassList, Dynamic as $i7OB2$Dynamic } from "solid-js/web";
3
+ import { createSignal as $i7OB2$createSignal, getOwner as $i7OB2$getOwner, createEffect as $i7OB2$createEffect, runWithOwner as $i7OB2$runWithOwner, onCleanup as $i7OB2$onCleanup, createMemo as $i7OB2$createMemo, createContext as $i7OB2$createContext, useContext as $i7OB2$useContext, createResource as $i7OB2$createResource, Suspense as $i7OB2$Suspense, Show as $i7OB2$Show, untrack as $i7OB2$untrack, createRenderEffect as $i7OB2$createRenderEffect, Index as $i7OB2$Index, createRoot as $i7OB2$createRoot, For as $i7OB2$For, createUniqueId as $i7OB2$createUniqueId, createComputed as $i7OB2$createComputed, ErrorBoundary as $i7OB2$ErrorBoundary, on as $i7OB2$on, batch as $i7OB2$batch, createReaction as $i7OB2$createReaction, mapArray as $i7OB2$mapArray, mergeProps as $i7OB2$mergeProps1 } from "solid-js";
4
+ import { createStore as $i7OB2$createStore, reconcile as $i7OB2$reconcile } from "solid-js/store";
4
5
 
5
6
  /*! Depict.ai search and product listing SDK */
6
7
  import { register_es_version } from "../../multi_import_deduplicator.mjs";
7
8
  register_es_version("ui", "latest");
8
- const $ec291e0010116877$export$83d89fbfd8236492 = "2.0.26";
9
+ const $ec291e0010116877$export$83d89fbfd8236492 = "2.1.1";
9
10
  const $4147651646da990a$var$fallback_operator = "in";
10
11
  const $4147651646da990a$var$fallback_token = "";
11
12
  const $4147651646da990a$var$legacy_filter_prefix = "filter_";
@@ -242,10 +243,10 @@ function $e8ffe11ed01df0fe$export$6e5611bc7e57e477(props) {
242
243
  srcset: srcset
243
244
  };
244
245
  });
245
- return $i7OB2$ssrElement("img", () => ({
246
- ...otherOptions,
247
- ...src_options(),
248
- "sizes": props.size() + "px"
246
+ return $i7OB2$ssrElement("img", $i7OB2$mergeProps(otherOptions, src_options, {
247
+ get sizes() {
248
+ return props.size() + "px";
249
+ }
249
250
  }), undefined, true);
250
251
  }
251
252
  function $e8ffe11ed01df0fe$var$make_srcset(url, resolutions) {
@@ -389,7 +390,7 @@ const $b5cccc8ee7d24677$export$6daf8749b65a1b77 = cols_at_size => {
389
390
  return $b5cccc8ee7d24677$var$transform_elements(sorted_cols_at_size);
390
391
  };
391
392
  function $a458486f22b22f63$export$a2cc176055f8f08() {
392
- 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.";
393
+ 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.";
393
394
  return (0, $i7OB2$isServer) ? {
394
395
  t: `<!-- ${text} -->`
395
396
  } : document.createComment(text);
@@ -410,12 +411,13 @@ let $6e41f1fde994db72$var$cached_placeholder_element;
410
411
  let $6e41f1fde994db72$var$rendering_cached_placeholder_element;
411
412
  function $6e41f1fde994db72$export$f33414a4df0afd3f({
412
413
  product_card_template_: product_card_template_,
413
- num_placeholders_: num_placeholders_
414
+ num_placeholders_: num_placeholders_,
415
+ content_blocks_: content_blocks_
414
416
  }) {
415
- const [get_elements, set_elements] = $i7OB2$createSignal([]);
416
- let existing_num = 0;
417
+ const [num_to_actually_show, set_num_to_actually_show] = $i7OB2$createSignal($i7OB2$untrack(num_placeholders_));
417
418
  if (0, $i7OB2$isServer)
418
419
  // want to render simple placeholders on server, effects don't run there
420
+ // FIXME when adding proper SSR: also SSR content blocks
419
421
  return $i7OB2$createMemo(() => Array.from({
420
422
  length: num_placeholders_()
421
423
  }).map(() => {
@@ -424,19 +426,30 @@ function $6e41f1fde994db72$export$f33414a4df0afd3f({
424
426
  if (typeof template_result?.then !== "function") return template_result;
425
427
  }));
426
428
  $i7OB2$createRenderEffect(() => {
429
+ const existing_num = num_to_actually_show();
427
430
  const to_add = num_placeholders_() - existing_num;
428
431
  if (to_add <= 0) return;
429
432
  // 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.
430
433
  // 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.
431
434
  // 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.
432
- set_elements(prev => [...prev, ...Array.from({
433
- length: to_add
434
- }).map(() => $6e41f1fde994db72$var$Placeholder({
435
- product_card_template_: product_card_template_
436
- }))]);
437
- existing_num += to_add;
435
+ // 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
436
+ // Functionality should be the same
437
+ set_num_to_actually_show(existing_num + to_add);
438
+ });
439
+ return $i7OB2$createComponent((0, $i7OB2$Index), {
440
+ get each() {
441
+ return Array.from({
442
+ length: num_to_actually_show()
443
+ });
444
+ },
445
+ children: (_item, index) => {
446
+ const possible_content_block = $i7OB2$createMemo(() => content_blocks_?.()?.()?.[index]);
447
+ // Show content block before product card, so it's *at* that index
448
+ return [possible_content_block, $6e41f1fde994db72$var$Placeholder({
449
+ product_card_template_: product_card_template_
450
+ })]; // https://github.com/solidjs/solid/releases/tag/v1.7.0
451
+ }
438
452
  });
439
- return get_elements; // https://github.com/solidjs/solid/releases/tag/v1.7.0
440
453
  }
441
454
  /**
442
455
  * Get one placeholder element. It will be cloned for each placeholder for ultimate performance even when solid-js isn't rendering the placeholders.
@@ -521,7 +534,8 @@ function $29ec7cddbe1d3484$export$43f0fb951fcb0c54({
521
534
  merchant_: merchant_,
522
535
  market_: market_,
523
536
  product_card_template_: product_card_template_,
524
- do_per_elements_: do_per_elements_
537
+ do_per_elements_: do_per_elements_,
538
+ content_blocks_: content_blocks_
525
539
  }) {
526
540
  return $i7OB2$createComponent((0, $i7OB2$For), {
527
541
  get each() {
@@ -529,6 +543,7 @@ function $29ec7cddbe1d3484$export$43f0fb951fcb0c54({
529
543
  },
530
544
  children: (product_id, index) => {
531
545
  const owner = $i7OB2$getOwner();
546
+ const possible_content_block = $i7OB2$createMemo(() => content_blocks_?.()?.()?.[index()]);
532
547
  const display_accessor = $i7OB2$createMemo(prev => {
533
548
  const new_display = displays_by_key_().get(product_id);
534
549
  if (prev && $29ec7cddbe1d3484$var$deep_equal(prev, new_display))
@@ -581,7 +596,9 @@ function $29ec7cddbe1d3484$export$43f0fb951fcb0c54({
581
596
  }
582
597
  do_per_elements_?.(elements, index);
583
598
  });
584
- return product_card_resource; // https://github.com/solidjs/solid/releases/tag/v1.7.0
599
+ return [
600
+ // Show content block before product card, so it's *at* that index
601
+ possible_content_block, product_card_resource]; // https://github.com/solidjs/solid/releases/tag/v1.7.0
585
602
  }
586
603
  });
587
604
  }
@@ -643,9 +660,8 @@ const $c8d5ff4524619fcd$var$_tmpl$ = ["<div", ' class="', '">', "</div>"],
643
660
  $c8d5ff4524619fcd$var$_tmpl$2 = ["<style", ' type="text/css">', "</style>"];
644
661
  function $c8d5ff4524619fcd$export$d21e32dfedac04be(props) {
645
662
  const container_class = "x" + $i7OB2$createUniqueId();
646
- const container_element_ = $i7OB2$ssrElement("div", () => ({
647
- ...props.element_attributes,
648
- "classList": {
663
+ const container_element_ = $i7OB2$ssrElement("div", $i7OB2$mergeProps(() => props.element_attributes, {
664
+ classList: {
649
665
  [container_class]: true
650
666
  }
651
667
  }), () => $i7OB2$escape(props.children), true); // Don't want this in the error boundary below, it should only be for the actual layouting
@@ -873,7 +889,7 @@ function $ee116da074deb002$export$9574e176201e5e8d(props) {
873
889
  })));
874
890
  }, "RecommendationSlider failed");
875
891
  }
876
- const $3da8afe3ed57cf34$var$_tmpl$ = ["<div", ' class="recommendation-grid"><!--#-->', "<!--/--><!--#-->", "<!--/--></div>"];
892
+ const $3da8afe3ed57cf34$var$_tmpl$ = ["<div", ' class="recommendation-grid"><!--$-->', "<!--/--><!--$-->", "<!--/--></div>"];
877
893
  function $3da8afe3ed57cf34$export$7da560f849543dff({
878
894
  recommendations_resource_: recommendations_resource_,
879
895
  product_card_template_: product_card_template_,
@@ -1094,12 +1110,11 @@ function $8c0f86cb3e266eeb$export$a71e92cfbb498adc(props) {
1094
1110
  }
1095
1111
  const $19976a74d273070d$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>';
1096
1112
  function $19976a74d273070d$export$3b621d86b1566b2(props = {}) {
1097
- return $i7OB2$ssrElement("svg", () => ({
1098
- ...props,
1099
- "xmlns": "http://www.w3.org/2000/svg",
1100
- "width": "21.064",
1101
- "height": "21.047",
1102
- "viewBox": "0 0 21.064 21.064"
1113
+ return $i7OB2$ssrElement("svg", $i7OB2$mergeProps(props, {
1114
+ xmlns: "http://www.w3.org/2000/svg",
1115
+ width: "21.064",
1116
+ height: "21.047",
1117
+ viewBox: "0 0 21.064 21.064"
1103
1118
  }), () => $i7OB2$ssr($19976a74d273070d$var$_tmpl$), true);
1104
1119
  }
1105
1120
 
@@ -1111,9 +1126,9 @@ function $91aa8ee9f431800d$export$325f75597868c4f0(stuff) {
1111
1126
  return stuff.toLowerCase();
1112
1127
  }
1113
1128
  const $1adfe60f3a14a1d7$var$_tmpl$ = ["<button", ' class="clear-all-filters minor">', "</button>"],
1114
- $1adfe60f3a14a1d7$var$_tmpl$2 = ["<div", ' class="inner"><span class="title"><!--#-->', "<!--/-->: </span><!--#-->", "<!--/--></div>"],
1115
- $1adfe60f3a14a1d7$var$_tmpl$3 = ["<button", ' class="clear-filter major"><!--#-->', "<!--/--><span><!--#-->", "<!--/--><!--#-->", "<!--/--><!--#-->", "<!--/--> – <!--#-->", "<!--/--><!--#-->", "<!--/--><!--#-->", "<!--/--></span></button>"],
1116
- $1adfe60f3a14a1d7$var$_tmpl$4 = ["<button", ' class="clear-filter major"><!--#-->', "<!--/--><span>", "</span></button>"];
1129
+ $1adfe60f3a14a1d7$var$_tmpl$2 = ["<div", ' class="inner"><span class="title"><!--$-->', "<!--/-->: </span><!--$-->", "<!--/--></div>"],
1130
+ $1adfe60f3a14a1d7$var$_tmpl$3 = ["<button", ' class="clear-filter major"><!--$-->', "<!--/--><span><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--> – <!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--></span></button>"],
1131
+ $1adfe60f3a14a1d7$var$_tmpl$4 = ["<button", ' class="clear-filter major"><!--$-->', "<!--/--><span>", "</span></button>"];
1117
1132
  function $1adfe60f3a14a1d7$export$fecbb157621501bd({
1118
1133
  number_of_rendered_selected_filters_items_: number_of_rendered_selected_filters_items_,
1119
1134
  i18n_: i18n_,
@@ -1215,25 +1230,23 @@ function $1adfe60f3a14a1d7$export$fecbb157621501bd({
1215
1230
  return matching_filter()?.op !== "inrange";
1216
1231
  },
1217
1232
  get fallback() {
1218
- return (() => {
1219
- number_of_rendered_selected_filters_items_[1](prev => prev + 1);
1220
- $i7OB2$onCleanup(() => number_of_rendered_selected_filters_items_[1](prev => prev - 1));
1221
- return $i7OB2$ssr($1adfe60f3a14a1d7$var$_tmpl$3, $i7OB2$ssrHydrationKey(), $i7OB2$escape($i7OB2$createComponent((0, $19976a74d273070d$export$3b621d86b1566b2), {})), $i7OB2$escape(price_formatting_().pre_), $i7OB2$escape($i7OB2$createComponent((0, $8c0f86cb3e266eeb$export$a71e92cfbb498adc), {
1222
- get price_() {
1223
- return filter().data[0];
1224
- },
1225
- get price_formatting_() {
1226
- return price_formatting_();
1227
- }
1228
- })), $i7OB2$escape(price_formatting_().post_), $i7OB2$escape(price_formatting_().pre_), $i7OB2$escape($i7OB2$createComponent((0, $8c0f86cb3e266eeb$export$a71e92cfbb498adc), {
1229
- get price_() {
1230
- return filter().data[1];
1231
- },
1232
- get price_formatting_() {
1233
- return price_formatting_();
1234
- }
1235
- })), $i7OB2$escape(price_formatting_().post_));
1236
- })();
1233
+ number_of_rendered_selected_filters_items_[1](prev => prev + 1);
1234
+ $i7OB2$onCleanup(() => number_of_rendered_selected_filters_items_[1](prev => prev - 1));
1235
+ return $i7OB2$ssr($1adfe60f3a14a1d7$var$_tmpl$3, $i7OB2$ssrHydrationKey(), $i7OB2$escape($i7OB2$createComponent((0, $19976a74d273070d$export$3b621d86b1566b2), {})), $i7OB2$escape(price_formatting_().pre_), $i7OB2$escape($i7OB2$createComponent((0, $8c0f86cb3e266eeb$export$a71e92cfbb498adc), {
1236
+ get price_() {
1237
+ return filter().data[0];
1238
+ },
1239
+ get price_formatting_() {
1240
+ return price_formatting_();
1241
+ }
1242
+ })), $i7OB2$escape(price_formatting_().post_), $i7OB2$escape(price_formatting_().pre_), $i7OB2$escape($i7OB2$createComponent((0, $8c0f86cb3e266eeb$export$a71e92cfbb498adc), {
1243
+ get price_() {
1244
+ return filter().data[1];
1245
+ },
1246
+ get price_formatting_() {
1247
+ return price_formatting_();
1248
+ }
1249
+ })), $i7OB2$escape(price_formatting_().post_));
1237
1250
  },
1238
1251
  get children() {
1239
1252
  return $i7OB2$createComponent((0, $i7OB2$Index), {
@@ -1314,7 +1327,7 @@ function $1adfe60f3a14a1d7$export$fecbb157621501bd({
1314
1327
  return outmost_element;
1315
1328
  }
1316
1329
  const $49b79728e7d9e2a1$var$_tmpl$ = ["<span", ' class="count">', "</span>"],
1317
- $49b79728e7d9e2a1$var$_tmpl$2 = ["<label", ' class="', '"', '><div class="left"><input type="checkbox"', "", "", '><span class="custom-indicator"></span><span class="text line-clamp">', "</span></div><!--#-->", "<!--/--></label>"];
1330
+ $49b79728e7d9e2a1$var$_tmpl$2 = ["<label", ' class="', '"', '><div class="left"><input type="checkbox"', "", "", '><span class="custom-indicator"></span><span class="text line-clamp">', "</span></div><!--$-->", "<!--/--></label>"];
1318
1331
  const $49b79728e7d9e2a1$export$48513f6b9f8ce62d = props => {
1319
1332
  // 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
1320
1333
  const count = $i7OB2$createMemo(() => props.count_);
@@ -1335,21 +1348,20 @@ const $49b79728e7d9e2a1$export$48513f6b9f8ce62d = props => {
1335
1348
  };
1336
1349
  const $f8a56ba74eedd0c6$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>';
1337
1350
  function $f8a56ba74eedd0c6$export$f21ab0717a89c77f(props) {
1338
- return $i7OB2$ssrElement("svg", () => ({
1339
- ...props,
1340
- "xmlns": "http://www.w3.org/2000/svg",
1341
- "width": "11",
1342
- "height": "12"
1351
+ return $i7OB2$ssrElement("svg", $i7OB2$mergeProps(props, {
1352
+ xmlns: "http://www.w3.org/2000/svg",
1353
+ width: "11",
1354
+ height: "12"
1343
1355
  }), () => $i7OB2$ssr($f8a56ba74eedd0c6$var$_tmpl$), true);
1344
1356
  }
1345
- const $67b173f9db427028$var$_tmpl$ = ["<button", ' type="button" class="', '"><!--#-->', "<!--/--><span>", "</span></button>"];
1357
+ const $67b173f9db427028$var$_tmpl$ = ["<button", ' type="button" class="', '"><!--$-->', "<!--/--><span>", "</span></button>"];
1346
1358
  function $67b173f9db427028$export$ca21a16d65b3dd8({
1347
1359
  show_extras_: [get_show_extras, set_show_extras],
1348
1360
  i18n_: i18n_
1349
1361
  }) {
1350
1362
  return $i7OB2$ssr($67b173f9db427028$var$_tmpl$, $i7OB2$ssrHydrationKey(), `expand-filter ${get_show_extras() ? "expanded" : ""}`, $i7OB2$escape($i7OB2$createComponent((0, $f8a56ba74eedd0c6$export$f21ab0717a89c77f), {})), get_show_extras() ? $i7OB2$escape(i18n_.view_less_()) : $i7OB2$escape(i18n_.view_more_()));
1351
1363
  }
1352
- const $a4601e6bea3ed1e6$var$_tmpl$ = ["<form", ' class="checkboxes"><!--#-->', "<!--/--><!--#-->", "<!--/--></form>"];
1364
+ const $a4601e6bea3ed1e6$var$_tmpl$ = ["<form", ' class="checkboxes"><!--$-->', "<!--/--><!--$-->", "<!--/--></form>"];
1353
1365
  const $a4601e6bea3ed1e6$var$max_visible_without_collapsing = 15;
1354
1366
  const $a4601e6bea3ed1e6$var$show_non_collapsible_when_collapsed = 4;
1355
1367
  function $a4601e6bea3ed1e6$export$dd948f91abc3a1c4({
@@ -1448,7 +1460,7 @@ function $a4601e6bea3ed1e6$export$dd948f91abc3a1c4({
1448
1460
  }
1449
1461
  const $eb8d9bf3b5700c26$var$_tmpl$ = ["<form", ' class="radios">', "</form>"],
1450
1462
  $eb8d9bf3b5700c26$var$_tmpl$2 = ["<span", ' class="count">', "</span>"],
1451
- $eb8d9bf3b5700c26$var$_tmpl$3 = ["<label", ' class="', '"', '><div class="left"><input type="radio"', "", '><span class="custom-indicator"></span><!--#-->', "<!--/--></div><!--#-->", "<!--/--></label>"];
1463
+ $eb8d9bf3b5700c26$var$_tmpl$3 = ["<label", ' class="', '"', '><div class="left"><input type="radio"', "", '><span class="custom-indicator"></span><!--$-->', "<!--/--></div><!--$-->", "<!--/--></label>"];
1452
1464
  function $eb8d9bf3b5700c26$export$430444115f70a734({
1453
1465
  selected_filters_: selected_filters_,
1454
1466
  filter_: filter_
@@ -1492,7 +1504,7 @@ function $eb8d9bf3b5700c26$export$430444115f70a734({
1492
1504
  }
1493
1505
  })));
1494
1506
  }
1495
- const $a6b08770e164eced$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>"],
1507
+ const $a6b08770e164eced$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>"],
1496
1508
  $a6b08770e164eced$var$_tmpl$2 = ["<div", ' class="slider"><div class="progress" style="', '"></div></div>'],
1497
1509
  $a6b08770e164eced$var$_tmpl$3 = ["<div", ' class="range-group"><input', ' type="range"', ' step="any"><input', ' type="range"', ' step="any"></div>'];
1498
1510
  function $a6b08770e164eced$export$e0d834a0ad870cda({
@@ -1717,10 +1729,10 @@ function $0b6bc2f8309efa8a$export$e5c2828934226505({
1717
1729
  });
1718
1730
  return outer_div;
1719
1731
  }
1720
- const $1c8cac76cb67e9af$var$_tmpl$ = ["<form", ' class="', '"><!--#-->', "<!--/--><!--#-->", "<!--/--></form>"],
1721
- $1c8cac76cb67e9af$var$_tmpl$2 = ["<div", ' class="', '"><!--#-->', "<!--/--><!--#-->", "<!--/--></div>"],
1732
+ const $1c8cac76cb67e9af$var$_tmpl$ = ["<form", ' class="', '"><!--$-->', "<!--/--><!--$-->", "<!--/--></form>"],
1733
+ $1c8cac76cb67e9af$var$_tmpl$2 = ["<div", ' class="', '"><!--$-->', "<!--/--><!--$-->", "<!--/--></div>"],
1722
1734
  $1c8cac76cb67e9af$var$_tmpl$3 = ["<details", "></details>"],
1723
- $1c8cac76cb67e9af$var$_tmpl$4 = ["<summary", ' class="category-parent"><div class="summary"><span class="', '">', "</span><!--#-->", "<!--/--></div></summary>"];
1735
+ $1c8cac76cb67e9af$var$_tmpl$4 = ["<summary", ' class="category-parent"><div class="summary"><span class="', '">', "</span><!--$-->", "<!--/--></div></summary>"];
1724
1736
  const $1c8cac76cb67e9af$var$max_visible_without_collapsing = 15;
1725
1737
  const $1c8cac76cb67e9af$var$show_non_collapsible_when_collapsed = 4;
1726
1738
  function $1c8cac76cb67e9af$export$a32086fa6616eafd({
@@ -2183,15 +2195,18 @@ const $93716a9ad0dea854$export$414f6a19d38e655c = ({
2183
2195
  const current_value = $91aa8ee9f431800d$export$325f75597868c4f0(value().value_);
2184
2196
  return !!data?.some(item => $91aa8ee9f431800d$export$325f75597868c4f0(item) === current_value);
2185
2197
  });
2186
- const MakeButton = attributes => $i7OB2$ssrElement("button", () => ({
2187
- ...attributes,
2188
- "disabled": value().count_ === 0 && !is_selected(),
2189
- "classList": {
2190
- minor: !is_selected(),
2191
- major: is_selected(),
2192
- "major-minor-transition": true
2198
+ const MakeButton = attributes => $i7OB2$ssrElement("button", $i7OB2$mergeProps(attributes, {
2199
+ get disabled() {
2200
+ return value().count_ === 0 && !is_selected();
2201
+ },
2202
+ get classList() {
2203
+ return {
2204
+ minor: !is_selected(),
2205
+ major: is_selected(),
2206
+ "major-minor-transition": true
2207
+ };
2193
2208
  }
2194
- }), () => ["<!--#-->", $i7OB2$escape(value().value_), "<!--/-->", "<!--#-->", $i7OB2$escape($i7OB2$createComponent((0, $i7OB2$Show), {
2209
+ }), () => ["<!--$-->", $i7OB2$escape(value().value_), "<!--/-->", "<!--$-->", $i7OB2$escape($i7OB2$createComponent((0, $i7OB2$Show), {
2195
2210
  get when() {
2196
2211
  return value().count_ != undefined;
2197
2212
  },
@@ -2279,7 +2294,7 @@ function $93716a9ad0dea854$var$adjust_sizes(container_width, sizes, set_cols_at_
2279
2294
  overrides: column_to_row_result
2280
2295
  }]]);
2281
2296
  }
2282
- const $e731d52d97444b7c$var$_tmpl$ = ["<form", ' class="checkbox-color"><!--#-->', "<!--/--><!--#-->", "<!--/--></form>"];
2297
+ const $e731d52d97444b7c$var$_tmpl$ = ["<form", ' class="checkbox-color"><!--$-->', "<!--/--><!--$-->", "<!--/--></form>"];
2283
2298
  const $e731d52d97444b7c$var$max_visible_without_collapsing = 30;
2284
2299
  const $e731d52d97444b7c$var$show_non_collapsible_when_collapsed = 8;
2285
2300
  function $e731d52d97444b7c$export$82ed4b28ecb67608({
@@ -2430,14 +2445,13 @@ var $12497d09ef87296e$export$2e2bcd8739ae039 = {
2430
2445
  };
2431
2446
  const $9bc34983fc5f7bdb$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>';
2432
2447
  function $9bc34983fc5f7bdb$export$f2ca6fc699ca1fb4(props = {}) {
2433
- return $i7OB2$ssrElement("svg", () => ({
2434
- "xmlns": "http://www.w3.org/2000/svg",
2435
- "width": "16.8",
2436
- "height": "14",
2437
- ...props
2438
- }), () => $i7OB2$ssr($9bc34983fc5f7bdb$var$_tmpl$), true);
2439
- }
2440
- const $a7b58cb3bcffd156$var$_tmpl$ = ["<span", ' class="show-selected" aria-hidden="true"><span>', "</span><!--#-->", "<!--/--></span>"];
2448
+ return $i7OB2$ssrElement("svg", $i7OB2$mergeProps({
2449
+ xmlns: "http://www.w3.org/2000/svg",
2450
+ width: "16.8",
2451
+ height: "14"
2452
+ }, props), () => $i7OB2$ssr($9bc34983fc5f7bdb$var$_tmpl$), true);
2453
+ }
2454
+ const $a7b58cb3bcffd156$var$_tmpl$ = ["<span", ' class="show-selected" aria-hidden="true"><span>', "</span><!--$-->", "<!--/--></span>"];
2441
2455
  function $a7b58cb3bcffd156$export$53c59af873b303c9({
2442
2456
  selected_filters_in_group_: selected_filters_in_group_,
2443
2457
  i18n_: {
@@ -2578,11 +2592,11 @@ function $d134eae24341b4a1$export$89c6019e4baa40b1(props) {
2578
2592
  });
2579
2593
  }
2580
2594
  const $fab07f52c9861732$var$_tmpl$ = ["<div", ' class="filter-collapsible">', "</div>"],
2581
- $fab07f52c9861732$var$_tmpl$2 = ["<button", ' class="clear-group"><!--#-->', "<!--/--><span>", "</span></button>"],
2582
- $fab07f52c9861732$var$_tmpl$3 = ["<div", ' class="view-more-clear"><!--#-->', "<!--/--><!--#-->", "<!--/--></div>"],
2583
- $fab07f52c9861732$var$_tmpl$4 = ["<div", ' class="filter-collapsible-body"><div class="filter-part">', "</div><!--#-->", "<!--/--></div>"],
2595
+ $fab07f52c9861732$var$_tmpl$2 = ["<button", ' class="clear-group"><!--$-->', "<!--/--><span>", "</span></button>"],
2596
+ $fab07f52c9861732$var$_tmpl$3 = ["<div", ' class="view-more-clear"><!--$-->', "<!--/--><!--$-->", "<!--/--></div>"],
2597
+ $fab07f52c9861732$var$_tmpl$4 = ["<div", ' class="filter-collapsible-body"><div class="filter-part">', "</div><!--$-->", "<!--/--></div>"],
2584
2598
  $fab07f52c9861732$var$_tmpl$5 = ["<details", ' class="filter-collapsible"', "></details>"],
2585
- $fab07f52c9861732$var$_tmpl$6 = ["<summary", ' class="filter-group-summary"><div class="summary"><span>', '</span><div class="selected-w-sign"><!--#-->', "<!--/--><!--#-->", "<!--/--></div></div></summary>"],
2599
+ $fab07f52c9861732$var$_tmpl$6 = ["<summary", ' class="filter-group-summary"><div class="summary"><span>', '</span><div class="selected-w-sign"><!--$-->', "<!--/--><!--$-->", "<!--/--></div></div></summary>"],
2586
2600
  $fab07f52c9861732$var$_tmpl$7 = ["<div", ' class="ungrouped">', "</div>"],
2587
2601
  $fab07f52c9861732$var$_tmpl$8 = ["<button", ' class="clear-all-filters major">', "</button>"];
2588
2602
  function $fab07f52c9861732$export$3f1a388cc0d8fed7(props) {
@@ -3423,7 +3437,7 @@ function $8f9120a1ca151e6a$export$205efb947c7ffd78(handler, passive = true) {
3423
3437
  $i7OB2$onCleanup(() => removeEventListener(event, catchified_handler));
3424
3438
  }
3425
3439
  }
3426
- const $6db49ca163afa2c3$var$_tmpl$ = ["<div", ' class="scroll-status" style="display:none"><span class="text"><b>', "</b> – <b>", "</b> <!--#-->", "<!--/--> <b>", "</b></span></div>"];
3440
+ const $6db49ca163afa2c3$var$_tmpl$ = ["<div", ' class="scroll-status" style="display:none"><span class="text"><b>', "</b> – <b>", "</b> <!--$-->", "<!--/--> <b>", "</b></span></div>"];
3427
3441
  function $6db49ca163afa2c3$export$83fd5de5504a7a67({
3428
3442
  formatted_number_of_results_: formatted_number_of_results_,
3429
3443
  first_result_in_viewport_: [get_first_result_in_viewport],
@@ -3543,7 +3557,7 @@ function $6db49ca163afa2c3$export$83fd5de5504a7a67({
3543
3557
  })), $i7OB2$escape(of_()), $i7OB2$escape(count_to_show()));
3544
3558
  }
3545
3559
  const $598245ecfe38f34b$var$_tmpl$ = ["<a", ' class="hint" href="javascript:void(0)">', "</a>"],
3546
- $598245ecfe38f34b$var$_tmpl$2 = ["<div", ' class="no-results"><div class="text">', "</div><!--#-->", "<!--/--></div>"];
3560
+ $598245ecfe38f34b$var$_tmpl$2 = ["<div", ' class="no-results"><div class="text">', "</div><!--$-->", "<!--/--></div>"];
3547
3561
  function $598245ecfe38f34b$export$ef6006467f04ee41({
3548
3562
  i18n_: i18n_,
3549
3563
  expanded_hierarchical_filters_: expanded_hierarchical_filters_,
@@ -3676,7 +3690,9 @@ function $0449e7d49398c077$export$a1fd619a4743ca08({
3676
3690
  min_products_to_fetch_: min_products_to_fetch_,
3677
3691
  query_base_: query_base_,
3678
3692
  depict_api_: depict_api_,
3679
- is_loading_: is_loading_
3693
+ is_loading_: is_loading_,
3694
+ content_blocks_: content_blocks_,
3695
+ set_number_loaded_displays_: set_number_loaded_displays_
3680
3696
  }) {
3681
3697
  // 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
3682
3698
  const target_to_index_map = new Map();
@@ -3720,11 +3736,13 @@ function $0449e7d49398c077$export$a1fd619a4743ca08({
3720
3736
  query_base_: query_base_,
3721
3737
  depict_api_: depict_api_
3722
3738
  });
3739
+ $i7OB2$createComputed(() => set_number_loaded_displays_(displays_by_key_().size));
3723
3740
  return $29ec7cddbe1d3484$export$43f0fb951fcb0c54({
3724
3741
  displays_by_key_: displays_by_key_,
3725
3742
  merchant_: merchant_,
3726
3743
  market_: market_,
3727
3744
  product_card_template_: product_card_template_,
3745
+ content_blocks_: content_blocks_,
3728
3746
  do_per_elements_: (elements, index_accessor) =>
3729
3747
  // Adds/removes elements from the "results in viewport" intersection observer above
3730
3748
  $i7OB2$createEffect(() => {
@@ -3746,7 +3764,317 @@ function $0449e7d49398c077$export$a1fd619a4743ca08({
3746
3764
  })
3747
3765
  });
3748
3766
  }
3749
- const $2d25e42846eac370$var$_tmpl$ = ["<div", ' class="', '"><!--#-->', "<!--/--><!--#-->", "<!--/--></div>"];
3767
+ const $6dee9211e57ac31a$var$_tmpl$ = ["<style", ' type="text/css">', "</style>"];
3768
+ const $6dee9211e57ac31a$export$c500183c31c2b22e = "--spans-columns";
3769
+ function $6dee9211e57ac31a$export$ab6b147eec64fea5(props) {
3770
+ const container_class = "x" + $i7OB2$createUniqueId();
3771
+ const container_element_ = $i7OB2$ssrElement("div", $i7OB2$mergeProps(() => props.element_attributes, {
3772
+ classList: {
3773
+ [container_class]: true
3774
+ }
3775
+ }), () => $i7OB2$escape(props.children), true); // Don't want this in the error boundary below, it should only be for the actual layouting
3776
+ return $i7OB2$createComponent((0, $b7436a6d1fd64e3b$export$b69d0d92862de18b), {
3777
+ message_: "Failed calculating css grid layout",
3778
+ severity_: "error",
3779
+ get children() {
3780
+ return $6dee9211e57ac31a$export$e2f22da34aaf310a(props, container_element_, false, container_class);
3781
+ }
3782
+ });
3783
+ }
3784
+ function $6dee9211e57ac31a$export$e2f22da34aaf310a(props, container_element, insert_after_container = false, container_class) {
3785
+ if (!container_class) {
3786
+ // only try to add if it wasn't provided, so that we have a code path without classList when doing SSR
3787
+ container_class = $i7OB2$make_random_classname();
3788
+ container_element.classList.add(container_class);
3789
+ }
3790
+ const container_selector = `.depict .${container_class}`; // class so ppl can have id if needed
3791
+ const col_styling = $i7OB2$createMemo(() => $6dee9211e57ac31a$var$generate_media_queried_declarations({
3792
+ container_selector_: container_selector,
3793
+ default_grid_spacing_text: props.grid_spacing,
3794
+ cols_at_size_: props.cols_at_size,
3795
+ override_vertical_spacing_: props.override_vertical_spacing,
3796
+ top_row_shortened_by_: props.top_row_shortened_by_()
3797
+ }));
3798
+ const base_styling = $i7OB2$createMemo(() => {
3799
+ return `${container_selector}{display:grid;}`;
3800
+ });
3801
+ const get_styling = $i7OB2$createMemo(() => base_styling() + col_styling());
3802
+ const style_element = $i7OB2$ssr($6dee9211e57ac31a$var$_tmpl$, $i7OB2$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
3803
+ if (insert_after_container) container_element.after(style_element);
3804
+ return [container_element, style_element];
3805
+ }
3806
+ function $6dee9211e57ac31a$var$generate_media_queried_declarations({
3807
+ container_selector_: container_selector_,
3808
+ default_grid_spacing_text: default_grid_spacing_text,
3809
+ cols_at_size_: cols_at_size_,
3810
+ override_vertical_spacing_: override_vertical_spacing_,
3811
+ top_row_shortened_by_: top_row_shortened_by_
3812
+ }) {
3813
+ return cols_at_size_.map(options => {
3814
+ const [n_cols, min, max, grid_spacing_for_size] = options;
3815
+ const spacing_to_use = grid_spacing_for_size || default_grid_spacing_text;
3816
+ // See comment in else block below
3817
+ const can_use_gap = $6dee9211e57ac31a$var$can_use_gap_for_unit(spacing_to_use) && (!override_vertical_spacing_ || $6dee9211e57ac31a$var$can_use_gap_for_unit(override_vertical_spacing_));
3818
+ let spacing_styling;
3819
+ let additional_styling = ""; // outside the media query
3820
+ if (can_use_gap) spacing_styling = `gap:${spacing_to_use};${override_vertical_spacing_ ? `row-gap:${override_vertical_spacing_};` : ``}`;else {
3821
+ // 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)
3822
+ // 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.
3823
+ // Logical thought: use margins for the vertical spacing. But margins in grids are apparently relative to the size of the individual items in grids.
3824
+ // 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.
3825
+ const width_multiplier = `var(${$6dee9211e57ac31a$export$c500183c31c2b22e}, 1)`; // How many cards wide the current item is (needed because content blocks)
3826
+ const one_item_width_exclusing_gaps = `calc(calc(100 / ${n_cols}) - calc(calc(${n_cols * 2 - 2} * calc(${$6dee9211e57ac31a$var$strip_percent_unit(spacing_to_use)} / 2)) / ${n_cols}))`; // Width of one item in percent of the whole
3827
+ // Equation from layout.tsx, also used in CheckboxGrid. Needs half spacing for some reason
3828
+ const this_item_width_meat = `calc(${one_item_width_exclusing_gaps} * ${width_multiplier})`; // Width of just the card
3829
+ const this_item_width_gaps = `calc(calc(${width_multiplier} - 1) * ${$6dee9211e57ac31a$var$strip_percent_unit(spacing_to_use)})`; // Width of the gaps
3830
+ const this_item_width = `calc(${this_item_width_meat} + ${this_item_width_gaps})`; // Width of this item including gaps
3831
+ // 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
3832
+ 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)
3833
+ spacing_styling = `column-gap:${spacing_to_use};`; // Still use gaps in the horizontal direction because that works flawlessly
3834
+ // Re-use old layout code to get the correct :nth-child declarations for the top margins
3835
+ additional_styling = $i7OB2$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_);
3836
+ }
3837
+ const media_query_body = `${container_selector_}{${spacing_styling}grid-template-columns:repeat(${n_cols},minmax(0,1fr));}`;
3838
+ return `${$i7OB2$layout_media_query_header(min, max)}{${media_query_body}}${additional_styling}`;
3839
+ }).join("");
3840
+ }
3841
+ function $6dee9211e57ac31a$var$can_use_gap_for_unit(spacing) {
3842
+ const trimmed_spacing = spacing.trim();
3843
+ return !trimmed_spacing.includes("%");
3844
+ }
3845
+ function $6dee9211e57ac31a$var$strip_percent_unit(css_value) {
3846
+ return css_value.replaceAll("%", "");
3847
+ }
3848
+ function $15aa76e6da02e5c2$export$cb5808ba002cdeed({
3849
+ layout_options_: layout_options_,
3850
+ sort_or_filter_open_: sort_or_filter_open_
3851
+ }) {
3852
+ return $i7OB2$createMemo(() => {
3853
+ const layout_options = layout_options_();
3854
+ // Add grid styling that changes when filters get opened/closed
3855
+ const when_filters_closed_cols = layout_options.cols_at_size;
3856
+ return sort_or_filter_open_() ? when_filters_closed_cols.map(row => {
3857
+ const [num_cols_default,,,, override_cols] = row;
3858
+ const cloned_row = [...row];
3859
+ // @ts-ignore
3860
+ cloned_row[0] = num_cols_default - 1;
3861
+ if (override_cols)
3862
+ // @ts-ignore
3863
+ cloned_row[4] = {
3864
+ overrides: Object.fromEntries(Object.entries(override_cols.overrides).map(([row, column]) => [row, column - 1]))
3865
+ };
3866
+ return cloned_row;
3867
+ }) : when_filters_closed_cols;
3868
+ });
3869
+ }
3870
+ function $bed740eef1769419$export$a79e666719b3647c(cols_at_size_) {
3871
+ const size_active = $i7OB2$createMemo(() => cols_at_size_().map(([n_cols, min_width, max_width]) => {
3872
+ const media_query = $i7OB2$layout_media_query_header(min_width, max_width).replaceAll("@media", "");
3873
+ const matches = $dc9262ef6f786812$export$d9f36cf74e24d595(media_query);
3874
+ return [matches, n_cols];
3875
+ }));
3876
+ const n_cols_currently_showing = $i7OB2$createMemo(() => {
3877
+ try {
3878
+ const [, n_cols_currently_showing] = size_active().find(([media_query]) => media_query());
3879
+ return n_cols_currently_showing;
3880
+ } catch (e) {
3881
+ $i7OB2$dwarn("No active size found in columnsAtSize - can't render content blocks");
3882
+ return null;
3883
+ }
3884
+ });
3885
+ return n_cols_currently_showing;
3886
+ }
3887
+ function $7f60f09116a3fe61$export$3f37af283f8fb843(props) {
3888
+ const style = $i7OB2$createMemo(() => {
3889
+ const {
3890
+ style: style,
3891
+ height: height,
3892
+ width: width,
3893
+ aspectRatio: aspectRatio
3894
+ } = props;
3895
+ const is_image = aspectRatio != undefined;
3896
+ const size_data = is_image ? {
3897
+ width: "100%",
3898
+ "padding-bottom": 1 / aspectRatio * 100 + "%"
3899
+ } : {
3900
+ width: width,
3901
+ height: height
3902
+ };
3903
+ return {
3904
+ display: "block",
3905
+ ...(style || {}),
3906
+ ...size_data
3907
+ };
3908
+ });
3909
+ return $i7OB2$createComponent((0, $d20eff0aadc28983$export$acb3eaade4b23afd), {
3910
+ get style() {
3911
+ return style();
3912
+ },
3913
+ get ["class"]() {
3914
+ return props.class;
3915
+ }
3916
+ });
3917
+ }
3918
+ const $e7a7eb102ddc0c79$var$_tmpl$ = ["<div", ' class="content-block-wrapper" style="', '">', "</div>"];
3919
+ function $e7a7eb102ddc0c79$export$791ef57e62e21c3f({
3920
+ content_blocks_: incoming_content_blocks,
3921
+ cols_at_size_: cols_at_size_,
3922
+ number_of_items_shown_: number_of_items_shown_,
3923
+ set_top_row_shortened_by_: set_top_row_shortened_by_
3924
+ }) {
3925
+ // these are by row
3926
+ const [content_blocks, set_content_blocks] = $i7OB2$createStore([]);
3927
+ const n_cols_currently_showing_ = $bed740eef1769419$export$a79e666719b3647c(cols_at_size_);
3928
+ const products_to_rows = products => {
3929
+ const cols_currently_showing = n_cols_currently_showing_();
3930
+ if (cols_currently_showing === null) return 0;
3931
+ return Math.ceil(products / cols_currently_showing);
3932
+ };
3933
+ const showing_rows = $i7OB2$createMemo(() => products_to_rows(number_of_items_shown_()));
3934
+ $i7OB2$createEffect(() => {
3935
+ const incoming_value = incoming_content_blocks();
3936
+ if (!incoming_value) {
3937
+ set_content_blocks([]);
3938
+ return;
3939
+ }
3940
+ const capped_value = incoming_value.slice(0, showing_rows()); // Don't show more content blocks than we have rows
3941
+ set_content_blocks($i7OB2$reconcile(capped_value, {
3942
+ key: "content"
3943
+ })); // key: Make moving blocks faster, see https://github.com/solidjs/solid/issues/1925#issuecomment-1769671596
3944
+ });
3945
+
3946
+ const get_wrapped_blocks_ = $e7a7eb102ddc0c79$var$wrap_blocks_in_div(content_blocks, n_cols_currently_showing_);
3947
+ $i7OB2$createComputed(() => {
3948
+ // 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
3949
+ const top_row_block = get_wrapped_blocks_()[0];
3950
+ const blocks_in_top_row_taken = top_row_block?.span_columns;
3951
+ if (blocks_in_top_row_taken == undefined) {
3952
+ // Fall back to zero if no content block in top row, since then no blocks in top row are taken
3953
+ set_top_row_shortened_by_(0);
3954
+ return;
3955
+ }
3956
+ set_top_row_shortened_by_(blocks_in_top_row_taken - 1); // minus one because the content block wrapper also is an element
3957
+ });
3958
+
3959
+ return $e7a7eb102ddc0c79$var$remap_blocks_to_index({
3960
+ get_wrapped_blocks_: get_wrapped_blocks_,
3961
+ n_cols_currently_showing_: n_cols_currently_showing_
3962
+ });
3963
+ }
3964
+ /**
3965
+ * Calculate where to put each of the finished wrapped content blocks. Also limit blocks' max width.
3966
+ * @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
3967
+ */
3968
+ function $e7a7eb102ddc0c79$var$remap_blocks_to_index({
3969
+ get_wrapped_blocks_: get_wrapped_blocks_,
3970
+ n_cols_currently_showing_: n_cols_currently_showing_
3971
+ }) {
3972
+ return $i7OB2$createMemo(() => {
3973
+ // This computation should be quite cheap since it just moves around things into an array
3974
+ const content_blocks_by_index = [];
3975
+ const constructed_block_arrays = new WeakSet();
3976
+ const wrapped_blocks = get_wrapped_blocks_();
3977
+ const cols_showing = n_cols_currently_showing_();
3978
+ // Need to keep track of products displaced by blocks above when mapping rows to indexes in the actual grid
3979
+ 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
3980
+ for (let i = 0; i < wrapped_blocks.length; i++) {
3981
+ // i = row to show at
3982
+ const block = wrapped_blocks[i];
3983
+ if (!block) continue; // Array can have holes/not defined places
3984
+ const index_of_first_item_in_row = i * cols_showing;
3985
+ const index_of_last_item_in_row = index_of_first_item_in_row + cols_showing;
3986
+ const {
3987
+ span_rows: span_rows,
3988
+ position: position,
3989
+ span_columns: span_columns
3990
+ } = block; // span columns is already capped in the block wrapping step (wrap_blocks_in_div)
3991
+ let target_index;
3992
+ 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));
3993
+ // Calculate displacement of us by content blocks above us
3994
+ let displacement_by_added_blocks = 0;
3995
+ for (let j = 0; j < i; j++) {
3996
+ const row = displaced_products[j];
3997
+ if (row === undefined) continue; // there were no blocks in this row
3998
+ let items_in_row;
3999
+ if (typeof row === "number") items_in_row = row;else {
4000
+ items_in_row = row.filter(item => item).length;
4001
+ displaced_products[j] = items_in_row;
4002
+ }
4003
+ displacement_by_added_blocks += items_in_row;
4004
+ }
4005
+ const index_of_us_in_row = target_index - index_of_first_item_in_row;
4006
+ for (let j = 0; j < index_of_us_in_row; j++) if (displaced_products[i]?.[j])
4007
+ // Add blocks in our *current* row to the displacement, but only the ones to our left
4008
+ displacement_by_added_blocks++;
4009
+ // Add block to output array at the correct index
4010
+ const final_target_index = target_index - displacement_by_added_blocks;
4011
+ const existing_block = content_blocks_by_index[final_target_index];
4012
+ const block_content = block.content;
4013
+ // 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
4014
+ if (existing_block) {
4015
+ if (constructed_block_arrays.has(existing_block))
4016
+ // Only push to arrays we have created to not create funky bugs when there's an array in JSX.Element
4017
+ existing_block.push(block_content);else {
4018
+ const array = [existing_block, block_content];
4019
+ constructed_block_arrays.add(array);
4020
+ content_blocks_by_index[final_target_index] = array;
4021
+ }
4022
+ } else content_blocks_by_index[final_target_index] = block_content;
4023
+ // Update displacement
4024
+ for (let j = 0; j < span_rows; j++) {
4025
+ const row = displaced_products[i + j] ||= [];
4026
+ for (let k = index_of_us_in_row; k < index_of_us_in_row + span_columns; k++) row[k] = true;
4027
+ }
4028
+ }
4029
+ return content_blocks_by_index;
4030
+ });
4031
+ }
4032
+ /**
4033
+ * 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.
4034
+ * Then renders the content and wraps it into a div with the correct styling.
4035
+ * Also caps span_columns to max available columns
4036
+ */
4037
+ function $e7a7eb102ddc0c79$var$wrap_blocks_in_div(rendered_content_blocks, max_span_columns) {
4038
+ const get_wrapped_blocks = $i7OB2$mapArray(() => rendered_content_blocks, block => {
4039
+ if (!block) return;
4040
+ const get_span_columns = () => Math.min(block.span_columns, max_span_columns() ?? Infinity);
4041
+ return $i7OB2$mergeProps1(block, {
4042
+ // Create content divs for the blocks with as much fine-grained diffing as possible?
4043
+ content: $i7OB2$ssr($e7a7eb102ddc0c79$var$_tmpl$, $i7OB2$ssrHydrationKey(), "grid-column:" + `span ${$i7OB2$escape(get_span_columns(), true)}` + (";grid-row:" + `span ${$i7OB2$escape(block.span_rows, true)}`) + (";spans_columns_variable_name:" + $i7OB2$escape(get_span_columns(), true)), $i7OB2$escape($i7OB2$createComponent($e7a7eb102ddc0c79$var$RenderContent, {
4044
+ get content() {
4045
+ return block.content;
4046
+ }
4047
+ }))),
4048
+ get span_columns() {
4049
+ // Cap max width of block to the number of columns available, for everyone downstream
4050
+ return get_span_columns();
4051
+ }
4052
+ });
4053
+ });
4054
+ return get_wrapped_blocks;
4055
+ }
4056
+ /**
4057
+ * 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.
4058
+ */
4059
+ function $e7a7eb102ddc0c79$var$RenderContent(props) {
4060
+ const [resource] = $i7OB2$createResource(() => props.content,
4061
+ // Could be reactive
4062
+ fn => fn());
4063
+ $i7OB2$createEffect(() => {
4064
+ if (resource.error) console.error("Error in content block rendering", resource.error);
4065
+ });
4066
+ // 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)
4067
+ return $i7OB2$createComponent((0, $i7OB2$Suspense), {
4068
+ get fallback() {
4069
+ return $i7OB2$createComponent((0, $7f60f09116a3fe61$export$3f37af283f8fb843), {
4070
+ width: "100%",
4071
+ height: "max(100%, 400px)"
4072
+ });
4073
+ },
4074
+ children: resource
4075
+ });
4076
+ }
4077
+ const $2d25e42846eac370$var$_tmpl$ = ["<div", ' class="', '"><!--$-->', "<!--/--><!--$-->", "<!--/--></div>"];
3750
4078
  function $2d25e42846eac370$export$3925f87b1545cfc6({
3751
4079
  plp_results_: plp_results_,
3752
4080
  depict_api_: depict_api_,
@@ -3761,7 +4089,8 @@ function $2d25e42846eac370$export$3925f87b1545cfc6({
3761
4089
  sort_or_filter_open_: sort_or_filter_open_,
3762
4090
  product_card_template_: product_card_template_,
3763
4091
  layout_options_: layout_options_,
3764
- id_currently_querying_for_: id_currently_querying_for_
4092
+ id_currently_querying_for_: id_currently_querying_for_,
4093
+ content_blocks_by_row_: content_blocks_by_row_
3765
4094
  }) {
3766
4095
  // 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
3767
4096
  const is_loading_ = $i7OB2$createMemo(() => plp_results_.loading || query_base_.loading);
@@ -3802,20 +4131,33 @@ function $2d25e42846eac370$export$3925f87b1545cfc6({
3802
4131
  let is_just_after_plp_results_update = false;
3803
4132
  let fallback_is_alive = false;
3804
4133
  const [get_should_have_placeholders_rendered, set_should_have_placeholders_rendered] = $i7OB2$createSignal(true);
4134
+ const [top_row_shortened_by_, set_top_row_shortened_by_] = $i7OB2$createSignal(0);
4135
+ const [product_card_suspense_is_in_fallback, set_product_card_suspense_is_in_fallback] = $i7OB2$createSignal(false);
4136
+ const [number_loaded_displays, set_number_loaded_displays_] = $i7OB2$createSignal(0);
4137
+ const modified_cols_at_size = $15aa76e6da02e5c2$export$cb5808ba002cdeed({
4138
+ layout_options_: layout_options_,
4139
+ sort_or_filter_open_: sort_or_filter_open_
4140
+ });
4141
+ const num_placeholders_ = $i7OB2$createMemo(() => {
4142
+ // 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
4143
+ return (0, $7747fe1a8c5652e3$export$6c9030e511152266) + (get_scroll_restoration_data().find(({
4144
+ for_id: for_id
4145
+ }) => for_id === id_currently_querying_for_())?.min_results_loaded ?? min_products_to_fetch_);
4146
+ });
4147
+ const number_of_items_shown_ = $i7OB2$createMemo(() => is_loading_() || product_card_suspense_is_in_fallback() ? num_placeholders_() : number_loaded_displays());
4148
+ const doesnt_have_content_blocks = $i7OB2$createMemo(() => !content_blocks_by_row_());
4149
+ const content_blocks_ = $i7OB2$createMemo(() => doesnt_have_content_blocks() ? () => [] : $e7a7eb102ddc0c79$export$791ef57e62e21c3f({
4150
+ content_blocks_: content_blocks_by_row_,
4151
+ cols_at_size_: modified_cols_at_size,
4152
+ number_of_items_shown_: number_of_items_shown_,
4153
+ set_top_row_shortened_by_: set_top_row_shortened_by_
4154
+ }));
3805
4155
  const rendered_placeholders = $i7OB2$createMemo(() => get_should_have_placeholders_rendered() ? $6e41f1fde994db72$export$f33414a4df0afd3f({
4156
+ content_blocks_: content_blocks_,
3806
4157
  product_card_template_: product_card_template_,
3807
- num_placeholders_: $i7OB2$createMemo(() => {
3808
- // 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
3809
- return (0, $7747fe1a8c5652e3$export$6c9030e511152266) + (get_scroll_restoration_data().find(({
3810
- for_id: for_id
3811
- }) => for_id === id_currently_querying_for_())?.min_results_loaded ?? min_products_to_fetch_);
3812
- })
4158
+ num_placeholders_: num_placeholders_
3813
4159
  }) : undefined);
3814
4160
  const [get_suspense_is_blocked, set_suspense_is_blocked] = $i7OB2$createSignal(false);
3815
- const modified_cols_at_size = $2d25e42846eac370$var$make_modified_cols_at_size({
3816
- layout_options_: layout_options_,
3817
- sort_or_filter_open_: sort_or_filter_open_
3818
- });
3819
4161
  const block_suspense_if_needed = () => {
3820
4162
  if (!is_just_after_plp_results_update) return;
3821
4163
  is_just_after_plp_results_update = false;
@@ -3845,18 +4187,18 @@ function $2d25e42846eac370$export$3925f87b1545cfc6({
3845
4187
  */
3846
4188
  const product_cards_when_data = $i7OB2$createComponent((0, $i7OB2$Suspense), {
3847
4189
  get fallback() {
3848
- return (() => {
3849
- fallback_is_alive = true;
3850
- $i7OB2$onCleanup(block_suspense_if_needed); // Block suspense after initial run every time after we fetch
3851
- return $i7OB2$createMemo(() => {
3852
- // 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
3853
- // In future we could have individual suspense's for each product card, but that's too much for now
3854
- if (get_suspense_is_blocked()) return suspense_contents;
3855
- set_should_have_placeholders_rendered(true); // just in case
3856
- $i7OB2$onCleanup(() => set_should_have_placeholders_rendered(false));
3857
- 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>
3858
- });
3859
- })();
4190
+ fallback_is_alive = true;
4191
+ $i7OB2$onCleanup(block_suspense_if_needed); // Block suspense after initial run every time after we fetch
4192
+ set_product_card_suspense_is_in_fallback(true); // Here for the content block code that needs to know how many items we're displaying
4193
+ $i7OB2$onCleanup(() => set_product_card_suspense_is_in_fallback(false));
4194
+ return $i7OB2$createMemo(() => {
4195
+ // 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
4196
+ // In future we could have individual suspense's for each product card, but that's too much for now
4197
+ if (get_suspense_is_blocked()) return suspense_contents;
4198
+ set_should_have_placeholders_rendered(true); // just in case
4199
+ $i7OB2$onCleanup(() => set_should_have_placeholders_rendered(false));
4200
+ 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>
4201
+ });
3860
4202
  },
3861
4203
 
3862
4204
  get children() {
@@ -3872,37 +4214,64 @@ function $2d25e42846eac370$export$3925f87b1545cfc6({
3872
4214
  min_products_to_fetch_: min_products_to_fetch_,
3873
4215
  query_base_: query_base_,
3874
4216
  depict_api_: depict_api_,
3875
- is_loading_: is_loading_
4217
+ is_loading_: is_loading_,
4218
+ content_blocks_: content_blocks_,
4219
+ set_number_loaded_displays_: set_number_loaded_displays_
3876
4220
  });
3877
4221
  $i7OB2$onCleanup(() => suspense_contents = undefined);
3878
4222
  return suspense_contents;
3879
4223
  })();
3880
4224
  }
3881
4225
  });
3882
- return [$a458486f22b22f63$export$a2cc176055f8f08(), $i7OB2$createComponent((0, $c8d5ff4524619fcd$export$d21e32dfedac04be), {
3883
- get cols_at_size() {
3884
- return modified_cols_at_size();
4226
+ /* 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 */
4227
+ const listing_contents = $i7OB2$createComponent((0, $i7OB2$Show), {
4228
+ get when() {
4229
+ return !is_loading_();
3885
4230
  },
3886
- get override_vertical_spacing() {
3887
- return layout_options_().override_vertical_spacing;
4231
+ get fallback() {
4232
+ return rendered_placeholders();
3888
4233
  },
3889
- get grid_spacing() {
3890
- return layout_options_().grid_spacing;
4234
+ children: product_cards_when_data
4235
+ });
4236
+ return [$a458486f22b22f63$export$a2cc176055f8f08(), $i7OB2$createComponent((0, $i7OB2$Show), {
4237
+ get when() {
4238
+ return doesnt_have_content_blocks();
3891
4239
  },
3892
- rows: "all",
3893
- layout: "grid",
3894
- element_attributes: {
3895
- class: "cards"
4240
+ get fallback() {
4241
+ return $i7OB2$createComponent((0, $6dee9211e57ac31a$export$ab6b147eec64fea5), {
4242
+ get cols_at_size() {
4243
+ return modified_cols_at_size();
4244
+ },
4245
+ get override_vertical_spacing() {
4246
+ return layout_options_().override_vertical_spacing;
4247
+ },
4248
+ get grid_spacing() {
4249
+ return layout_options_().grid_spacing;
4250
+ },
4251
+ element_attributes: {
4252
+ class: "cards css-grid"
4253
+ },
4254
+ top_row_shortened_by_: top_row_shortened_by_,
4255
+ children: listing_contents
4256
+ });
3896
4257
  },
3897
4258
  get children() {
3898
- return $i7OB2$createComponent((0, $i7OB2$Show), {
3899
- get when() {
3900
- return !is_loading_();
4259
+ return $i7OB2$createComponent((0, $c8d5ff4524619fcd$export$d21e32dfedac04be), {
4260
+ get cols_at_size() {
4261
+ return modified_cols_at_size();
4262
+ },
4263
+ get override_vertical_spacing() {
4264
+ return layout_options_().override_vertical_spacing;
4265
+ },
4266
+ get grid_spacing() {
4267
+ return layout_options_().grid_spacing;
3901
4268
  },
3902
- get fallback() {
3903
- return rendered_placeholders();
4269
+ rows: "all",
4270
+ layout: "grid",
4271
+ element_attributes: {
4272
+ class: "cards"
3904
4273
  },
3905
- children: product_cards_when_data
4274
+ children: listing_contents
3906
4275
  });
3907
4276
  }
3908
4277
  })];
@@ -3911,36 +4280,10 @@ function $2d25e42846eac370$export$3925f87b1545cfc6({
3911
4280
  }
3912
4281
  })), $i7OB2$escape(desktop_filter_elements_()));
3913
4282
  }
3914
- /**
3915
- * Changes cols_at_size depending on if filters are open or not so one card less is shown when the filters are open
3916
- * This function is special to the actual PLPResults.
3917
- */
3918
- function $2d25e42846eac370$var$make_modified_cols_at_size({
3919
- layout_options_: layout_options_,
3920
- sort_or_filter_open_: sort_or_filter_open_
3921
- }) {
3922
- return $i7OB2$createMemo(() => {
3923
- const layout_options = layout_options_();
3924
- // Add grid styling that changes when filters get opened/closed
3925
- const when_filters_closed_cols = layout_options.cols_at_size;
3926
- return sort_or_filter_open_() ? when_filters_closed_cols.map(row => {
3927
- const [num_cols_default,,,, override_cols] = row;
3928
- const cloned_row = [...row];
3929
- // @ts-ignore
3930
- cloned_row[0] = num_cols_default - 1;
3931
- if (override_cols)
3932
- // @ts-ignore
3933
- cloned_row[4] = {
3934
- overrides: Object.fromEntries(Object.entries(override_cols.overrides).map(([row, column]) => [row, column - 1]))
3935
- };
3936
- return cloned_row;
3937
- }) : when_filters_closed_cols;
3938
- });
3939
- }
3940
4283
  const $68a258a92b88f02f$var$_tmpl$ = ["<div", ' class="sorting-attributes">', "</div>"],
3941
4284
  $68a258a92b88f02f$var$_tmpl$2 = ["<div", ' class="sorting-direction">', "</div>"],
3942
- $68a258a92b88f02f$var$_tmpl$3 = ["<div", '><div class="input-row"><input type="radio"', '><span class="custom-indicator"></span><!--#-->', "<!--/--></div></div>"],
3943
- $68a258a92b88f02f$var$_tmpl$4 = ["<div", '><label class="input-row"><input type="radio"', "", '><span class="custom-indicator"></span><!--#-->', "<!--/--></label></div>"];
4285
+ $68a258a92b88f02f$var$_tmpl$3 = ["<div", '><div class="input-row"><input type="radio"', '><span class="custom-indicator"></span><!--$-->', "<!--/--></div></div>"],
4286
+ $68a258a92b88f02f$var$_tmpl$4 = ["<div", '><label class="input-row"><input type="radio"', "", '><span class="custom-indicator"></span><!--$-->', "<!--/--></label></div>"];
3944
4287
  function $68a258a92b88f02f$export$1f1775a58da589b5({
3945
4288
  available_sortings_: available_sortings_,
3946
4289
  current_sorting_: [get_current_sorting, set_current_sorting],
@@ -4034,23 +4377,21 @@ function $aea1edf92433e81e$export$fe334901e8bebd57() {
4034
4377
  const $e1bb71e65e01a3a0$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>',
4035
4378
  $e1bb71e65e01a3a0$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>';
4036
4379
  function $e1bb71e65e01a3a0$export$da32f7add8a22e86(props = {}) {
4037
- return $i7OB2$ssrElement("svg", () => ({
4038
- "xmlns": "http://www.w3.org/2000/svg",
4039
- "width": "14",
4040
- "height": "14",
4041
- "class": "sort-icon",
4042
- ...props
4043
- }), () => [$i7OB2$ssr($e1bb71e65e01a3a0$var$_tmpl$), $i7OB2$ssr($e1bb71e65e01a3a0$var$_tmpl$2)], true);
4380
+ return $i7OB2$ssrElement("svg", $i7OB2$mergeProps({
4381
+ xmlns: "http://www.w3.org/2000/svg",
4382
+ width: "14",
4383
+ height: "14",
4384
+ "class": "sort-icon"
4385
+ }, props), () => [$i7OB2$ssr($e1bb71e65e01a3a0$var$_tmpl$), $i7OB2$ssr($e1bb71e65e01a3a0$var$_tmpl$2)], true);
4044
4386
  }
4045
4387
  const $05fbe84eb34564ec$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>';
4046
4388
  function $05fbe84eb34564ec$export$d10e63059ddb9fd4(props = {}) {
4047
- return $i7OB2$ssrElement("svg", () => ({
4048
- "xmlns": "http://www.w3.org/2000/svg",
4049
- "width": "14",
4050
- "height": "14",
4051
- "class": "sort-icon",
4052
- ...props
4053
- }), () => $i7OB2$ssr($05fbe84eb34564ec$var$_tmpl$), true);
4389
+ return $i7OB2$ssrElement("svg", $i7OB2$mergeProps({
4390
+ xmlns: "http://www.w3.org/2000/svg",
4391
+ width: "14",
4392
+ height: "14",
4393
+ "class": "sort-icon"
4394
+ }, props), () => $i7OB2$ssr($05fbe84eb34564ec$var$_tmpl$), true);
4054
4395
  }
4055
4396
  const $b9bf7fce0ae60241$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>'];
4056
4397
  function $b9bf7fce0ae60241$export$28f6150e232898de() {
@@ -4065,9 +4406,9 @@ function $4cc1c021eee2a432$export$50f68cc9882e36a4(args_for_filtering) {
4065
4406
  return args_for_filtering.available_filters_()?.length === 0 && !args_for_filtering.selected_filters_[0]()?.length;
4066
4407
  }
4067
4408
  const $757dac7f7c6c5241$var$_tmpl$ = ["<button", ' class="clear minor">', "</button>"],
4068
- $757dac7f7c6c5241$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>"],
4409
+ $757dac7f7c6c5241$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>"],
4069
4410
  $757dac7f7c6c5241$var$_tmpl$3 = ["<details", ' class="sorting"></details>'],
4070
- $757dac7f7c6c5241$var$_tmpl$4 = ["<summary", ' class="sort-filter-summary"><div class="summary"><div class="left-els"><!--#-->', "<!--/--><span>", "</span></div><!--#-->", "<!--/--></div></summary>"],
4411
+ $757dac7f7c6c5241$var$_tmpl$4 = ["<summary", ' class="sort-filter-summary"><div class="summary"><div class="left-els"><!--$-->', "<!--/--><span>", "</span></div><!--$-->", "<!--/--></div></summary>"],
4071
4412
  $757dac7f7c6c5241$var$_tmpl$5 = ["<div", ' class="body">', "</div>"],
4072
4413
  $757dac7f7c6c5241$var$_tmpl$6 = ["<details", ' class="filters"></details>'],
4073
4414
  $757dac7f7c6c5241$var$_tmpl$7 = ["<b", ">", "</b>"];
@@ -4179,10 +4520,10 @@ function $11d594c749b76228$export$cb808a3c41736d8e() {
4179
4520
  }
4180
4521
  const $cdea4cf8c5c071ef$var$_tmpl$ = ["<div", ' class="filters"><div class="body">', "</div></div>"],
4181
4522
  $cdea4cf8c5c071ef$var$_tmpl$2 = ["<div", ' class="sorting"><div class="body">', "</div></div>"],
4182
- $cdea4cf8c5c071ef$var$_tmpl$3 = ["<div", ' class="sort-and-filter-buttons"><div class="outer"><div class="inner"><!--#-->', "<!--/--><!--#-->", "<!--/--><!--#-->", "<!--/--></div></div></div>"],
4523
+ $cdea4cf8c5c071ef$var$_tmpl$3 = ["<div", ' class="sort-and-filter-buttons"><div class="outer"><div class="inner"><!--$-->', "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--></div></div></div>"],
4183
4524
  $cdea4cf8c5c071ef$var$_tmpl$4 = ["<span", ' class="num-filters" style="', '">', "</span>"],
4184
- $cdea4cf8c5c071ef$var$_tmpl$5 = ["<div", ' class="open-filters-button-container" style="', '"><!--#-->', "<!--/--><button", ' class="', '" type="button"', ' style="', '"><!--#-->', "<!--/--><span>", "</span></button></div>"],
4185
- $cdea4cf8c5c071ef$var$_tmpl$6 = ["<button", ' class="', '"', ' style="', '"><span>', "</span><!--#-->", "<!--/--></button>"];
4525
+ $cdea4cf8c5c071ef$var$_tmpl$5 = ["<div", ' class="open-filters-button-container" style="', '"><!--$-->', "<!--/--><button", ' class="', '" type="button"', ' style="', '"><!--$-->', "<!--/--><span>", "</span></button></div>"],
4526
+ $cdea4cf8c5c071ef$var$_tmpl$6 = ["<button", ' class="', '"', ' style="', '"><span>', "</span><!--$-->", "<!--/--></button>"];
4186
4527
  function $cdea4cf8c5c071ef$export$d7841e452f2e59a8({
4187
4528
  current_sorting_: current_sorting_,
4188
4529
  set_extra_els_in_results_container_: set_extra_els_in_results_container_,
@@ -5093,10 +5434,10 @@ function $2ab89d64b7f1d5ef$export$d31a1a1a83ad9413(plp_results_, [get_selected_f
5093
5434
  set_selected_filters(new_filters);
5094
5435
  });
5095
5436
  }
5096
- const $df5d81d0fe61ff21$var$_tmpl$ = ["<div", ' class="product-count"><!--#-->', "<!--/--> <!--#-->", "<!--/--></div>"],
5437
+ const $df5d81d0fe61ff21$var$_tmpl$ = ["<div", ' class="product-count"><!--$-->', "<!--/--> <!--$-->", "<!--/--></div>"],
5097
5438
  $df5d81d0fe61ff21$var$_tmpl$2 = ["<div", "></div>"],
5098
- $df5d81d0fe61ff21$var$_tmpl$3 = ["<div", ' class="filter-results-for-one-row"><!--#-->', "<!--/--><!--#-->", "<!--/--></div>"],
5099
- $df5d81d0fe61ff21$var$_tmpl$4 = ["<div", ' class="depict plp category"><div class="listing-page"><!--#-->', "<!--/--><!--#-->", "<!--/--><!--#-->", "<!--/--><!--#-->", "<!--/--><!--#-->", "<!--/--><!--#-->", "<!--/--></div><!--#-->", "<!--/--><!--#-->", "<!--/--></div>"];
5439
+ $df5d81d0fe61ff21$var$_tmpl$3 = ["<div", ' class="filter-results-for-one-row"><!--$-->', "<!--/--><!--$-->", "<!--/--></div>"],
5440
+ $df5d81d0fe61ff21$var$_tmpl$4 = ["<div", ' class="depict plp category"><div class="listing-page"><!--$-->', "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--></div><!--$-->", "<!--/--><!--$-->", "<!--/--></div>"];
5100
5441
  function $df5d81d0fe61ff21$export$f7d2f673fc2f091d({
5101
5442
  depict_api_: depict_api_,
5102
5443
  query_id_: query_id_,
@@ -5124,7 +5465,8 @@ function $df5d81d0fe61ff21$export$f7d2f673fc2f091d({
5124
5465
  product_card_template_: product_card_template_,
5125
5466
  sideways_filter_clearing_flag_: sideways_filter_clearing_flag_,
5126
5467
  sorting_query_param_: sorting_query_param_,
5127
- filter_query_param_prefix_: filter_query_param_prefix_
5468
+ filter_query_param_prefix_: filter_query_param_prefix_,
5469
+ content_blocks_by_row_: content_blocks_by_row_
5128
5470
  }) {
5129
5471
  let results_for;
5130
5472
  let only_show_filters_opener_;
@@ -5372,6 +5714,7 @@ function $df5d81d0fe61ff21$export$f7d2f673fc2f091d({
5372
5714
  product_card_template_: product_card_template_,
5373
5715
  sort_or_filter_open_: sort_or_filter_open_,
5374
5716
  desktop_filter_elements_: desktop_filter_elements_,
5717
+ content_blocks_by_row_: content_blocks_by_row_,
5375
5718
  id_currently_querying_for_: query_id_,
5376
5719
  no_results_options_: {
5377
5720
  selected_filters_: selected_filters_,
@@ -5871,6 +6214,7 @@ function $961b5c64bef4662f$export$e2bf8ce7779e827e(props) {
5871
6214
  expanded_hierarchical_filters_: expanded_hierarchical_filters_,
5872
6215
  selected_filters_: selected_filters_,
5873
6216
  sideways_filter_clearing_flag_: sideways_filter_clearing_flag_,
6217
+ content_blocks_by_row_: () => props.content_blocks_by_row,
5874
6218
  scroll_restoration_data_: scroll_restoration_data_,
5875
6219
  layout_options_: $i7OB2$createMemo(() => ({
5876
6220
  cols_at_size: $b5cccc8ee7d24677$export$6daf8749b65a1b77(props.cols_at_size),
@@ -5934,7 +6278,7 @@ function $961b5c64bef4662f$var$get_shared_properties(depict_category) {
5934
6278
  if (!shared_properties) throw new Error("Can't connect to provided DepictCategory instance");
5935
6279
  return shared_properties;
5936
6280
  }
5937
- const $e4615ecd1849548f$var$_tmpl$ = ["<div", ' class="category-title"><h1 class="title">', '</h1><span class="explanation"> — <!--#-->', "<!--/--></span></div>"];
6281
+ const $e4615ecd1849548f$var$_tmpl$ = ["<div", ' class="category-title"><h1 class="title">', '</h1><span class="explanation"> — <!--$-->', "<!--/--></span></div>"];
5938
6282
  const $e4615ecd1849548f$export$b91cec6bdc6b32a1 = /*@__PURE__*/(() => {
5939
6283
  const actual_function = ({
5940
6284
  category_title_: category_title_,
@@ -5949,7 +6293,7 @@ const $e4615ecd1849548f$export$b91cec6bdc6b32a1 = /*@__PURE__*/(() => {
5949
6293
  actual_function[(0, $4fb3a1cf207a7d5c$export$5c28802497c8a83c)] = "simple";
5950
6294
  return actual_function;
5951
6295
  })();
5952
- const $a6e23a834336fc19$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>"];
6296
+ const $a6e23a834336fc19$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>"];
5953
6297
  const $a6e23a834336fc19$export$824dde41348efed1 = /*@__PURE__*/(() => {
5954
6298
  const actual_function = ({
5955
6299
  make_product_count_: make_product_count_,
@@ -6097,37 +6441,6 @@ async function $c9312089e8983364$var$download_categories(tenant, market, type) {
6097
6441
  return [];
6098
6442
  }
6099
6443
  }
6100
- function $7f60f09116a3fe61$export$3f37af283f8fb843(props) {
6101
- const style = $i7OB2$createMemo(() => {
6102
- const {
6103
- style: style,
6104
- height: height,
6105
- width: width,
6106
- aspectRatio: aspectRatio
6107
- } = props;
6108
- const is_image = aspectRatio != undefined;
6109
- const size_data = is_image ? {
6110
- width: "100%",
6111
- "padding-bottom": 1 / aspectRatio * 100 + "%"
6112
- } : {
6113
- width: width,
6114
- height: height
6115
- };
6116
- return {
6117
- display: "block",
6118
- ...(style || {}),
6119
- ...size_data
6120
- };
6121
- });
6122
- return $i7OB2$createComponent((0, $d20eff0aadc28983$export$acb3eaade4b23afd), {
6123
- get style() {
6124
- return style();
6125
- },
6126
- get ["class"]() {
6127
- return props.class;
6128
- }
6129
- });
6130
- }
6131
6444
  const $bb15dfb548a7666e$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>"];
6132
6445
  function $bb15dfb548a7666e$export$ee1733d9a8495996() {
6133
6446
  return $i7OB2$ssr($bb15dfb548a7666e$var$_tmpl$, $i7OB2$ssrHydrationKey(), $i7OB2$escape($i7OB2$createComponent((0, $7f60f09116a3fe61$export$3f37af283f8fb843), {
@@ -6138,7 +6451,7 @@ function $bb15dfb548a7666e$export$ee1733d9a8495996() {
6138
6451
  })));
6139
6452
  }
6140
6453
  const $897bd4a76f611b38$var$_tmpl$ = ["<span", ' class="parent-title">', "</span>"],
6141
- $897bd4a76f611b38$var$_tmpl$2 = ["<a", ' class="category-suggestion"', '><span class="title">', "</span><!--#-->", "<!--/--></a>"];
6454
+ $897bd4a76f611b38$var$_tmpl$2 = ["<a", ' class="category-suggestion"', '><span class="title">', "</span><!--$-->", "<!--/--></a>"];
6142
6455
  function $897bd4a76f611b38$export$d757d54550ebfb3d({
6143
6456
  category_suggestion_: category_suggestion_,
6144
6457
  router_: router_
@@ -6158,15 +6471,14 @@ function $22e59517c2ec94d3$export$1c641004b5485fed() {
6158
6471
  }
6159
6472
  const $16f0ed5ea30d8d9c$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>';
6160
6473
  function $16f0ed5ea30d8d9c$export$82eafebb825fc23f(props = {}) {
6161
- return $i7OB2$ssrElement("svg", () => ({
6162
- ...props,
6163
- "xmlns": "http://www.w3.org/2000/svg",
6164
- "width": "20",
6165
- "height": "22"
6474
+ return $i7OB2$ssrElement("svg", $i7OB2$mergeProps(props, {
6475
+ xmlns: "http://www.w3.org/2000/svg",
6476
+ width: "20",
6477
+ height: "22"
6166
6478
  }), () => $i7OB2$ssr($16f0ed5ea30d8d9c$var$_tmpl$), true);
6167
6479
  }
6168
6480
  const $5285d2814d0fac0c$var$_tmpl$ = ["<button", ' class="back" type="button"', ">", "</button>"],
6169
- $5285d2814d0fac0c$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>"];
6481
+ $5285d2814d0fac0c$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>"];
6170
6482
  function $5285d2814d0fac0c$export$b94867ecbd698f21({
6171
6483
  search_field_value_: search_field_value_,
6172
6484
  input_field_ref_: input_field_ref_,
@@ -6197,7 +6509,7 @@ function $5285d2814d0fac0c$export$b94867ecbd698f21({
6197
6509
  }
6198
6510
  })), `query ${!!on_back_ ? "has-adjacent-back-button" : ""}`, $i7OB2$ssrAttribute("aria-label", $i7OB2$escape(i18n_.search_field_field_aria_label_(), true), false) + $i7OB2$ssrAttribute("value", $i7OB2$escape(search_field_value_[0](), true), false) + $i7OB2$ssrAttribute("placeholder", $i7OB2$escape(i18n_.placeholder_text_(), true), false), $i7OB2$ssrAttribute("title", $i7OB2$escape(i18n_.clear_filters_query_sorting_after_submit_(), true), false), $i7OB2$ssrStyle($i7OB2$createMemo(() => search_field_value_[0]() ? "" : "display: none")()), $i7OB2$escape($i7OB2$createComponent((0, $19976a74d273070d$export$3b621d86b1566b2), {})), $i7OB2$ssrAttribute("aria-label", $i7OB2$escape(i18n_.search_submit_button_aria_label_(), true), false), $i7OB2$escape($i7OB2$createComponent((0, $16f0ed5ea30d8d9c$export$82eafebb825fc23f), {})));
6199
6511
  }
6200
- const $172e1b898d457050$var$_tmpl$ = ["<div", ' class="search-recs"><h3 class="search-recs-title">', "</h3><!--#-->", "<!--/--><!--#-->", "<!--/--></div>"],
6512
+ const $172e1b898d457050$var$_tmpl$ = ["<div", ' class="search-recs"><h3 class="search-recs-title">', "</h3><!--$-->", "<!--/--><!--$-->", "<!--/--></div>"],
6201
6513
  $172e1b898d457050$var$_tmpl$2 = ["<button", ' class="show-more major" type="button">', "</button>"];
6202
6514
  const $172e1b898d457050$export$1c8c715550dc689d = 2;
6203
6515
  function $172e1b898d457050$export$7de92c4c2205ebf3({
@@ -6424,8 +6736,8 @@ async function $bfd908d13d90934c$export$e16630ecb9644a1c({
6424
6736
  const $c97b1f0e44afb9d2$export$27b710c08412a7ad = obj => {
6425
6737
  return Object.fromEntries(Object.keys(obj).map(key => [key, obj[key]()]));
6426
6738
  };
6427
- const $e003be2a50d9e5bc$var$_tmpl$ = ["<span", ' class="orig price"><!--#-->', "<!--/--><!--#-->", "<!--/--><!--#-->", "<!--/--></span>"],
6428
- $e003be2a50d9e5bc$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>"],
6739
+ const $e003be2a50d9e5bc$var$_tmpl$ = ["<span", ' class="orig price"><!--$-->', "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--></span>"],
6740
+ $e003be2a50d9e5bc$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>"],
6429
6741
  $e003be2a50d9e5bc$var$_tmpl$3 = ["<div", ' class="tagline">', "</div>"];
6430
6742
  const $e003be2a50d9e5bc$export$b05c0ae390cf3e06 = (display_or_variant_container, {
6431
6743
  i18n: i18n
@@ -6598,7 +6910,7 @@ function $694b7f90501fea4c$export$5d2caaa6b530761c() {
6598
6910
  return $i7OB2$ssr($694b7f90501fea4c$var$_tmpl$, $i7OB2$ssrHydrationKey());
6599
6911
  }
6600
6912
  const $7ad3a93cbe6fa208$var$_tmpl$ = ["<div", ' class="previous-searches"><h2 class="text">', '</h2><div class="list">', "</div></div>"],
6601
- $7ad3a93cbe6fa208$var$_tmpl$2 = ["<a", ' class="', '"', '><div class="left"><!--#-->', '<!--/--><span class="line-clamp"', ">", '</span></div><button class="delete"', ">", "</button></a>"];
6913
+ $7ad3a93cbe6fa208$var$_tmpl$2 = ["<a", ' class="', '"', '><div class="left"><!--$-->', '<!--/--><span class="line-clamp"', ">", '</span></div><button class="delete"', ">", "</button></a>"];
6602
6914
  function $7ad3a93cbe6fa208$export$a146ac6fa8346a25({
6603
6915
  text_: text_,
6604
6916
  previous_searches_: previous_searches_,
@@ -6699,23 +7011,22 @@ function $f3213c0640246d58$export$ba17c5b7e6dda39f({
6699
7011
  }
6700
7012
  const $190927650b4840eb$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>';
6701
7013
  function $190927650b4840eb$export$605674723bcc715c(props = {}) {
6702
- return $i7OB2$ssrElement("svg", () => ({
6703
- "xmlns": "http://www.w3.org/2000/svg",
6704
- "width": "32",
6705
- "height": "32",
6706
- "viewBox": "0 0 256 256",
6707
- ...props
6708
- }), () => $i7OB2$ssr($190927650b4840eb$var$_tmpl$), true);
7014
+ return $i7OB2$ssrElement("svg", $i7OB2$mergeProps({
7015
+ xmlns: "http://www.w3.org/2000/svg",
7016
+ width: "32",
7017
+ height: "32",
7018
+ viewBox: "0 0 256 256"
7019
+ }, props), () => $i7OB2$ssr($190927650b4840eb$var$_tmpl$), true);
6709
7020
  }
6710
7021
  const $cea52f6b24092f05$var$_tmpl$ = ["<a", ' class="', '"', ">", "</a>"],
6711
7022
  $cea52f6b24092f05$var$_tmpl$2 = ["<div", ' class="search-icon">', "</div>"],
6712
7023
  $cea52f6b24092f05$var$_tmpl$3 = ["<span", ' class="type">', "</span>"],
6713
- $cea52f6b24092f05$var$_tmpl$4 = ["<div", ' class="with-parent-title"><!--#-->', '<!--/--><span class="value line-clamp">', "</span></div>"],
6714
- $cea52f6b24092f05$var$_tmpl$5 = ["<div", ' class="with-icon"><!--#-->', "<!--/--><!--#-->", "<!--/--></div>"],
7024
+ $cea52f6b24092f05$var$_tmpl$4 = ["<div", ' class="with-parent-title"><!--$-->', '<!--/--><span class="value line-clamp">', "</span></div>"],
7025
+ $cea52f6b24092f05$var$_tmpl$5 = ["<div", ' class="with-icon"><!--$-->', "<!--/--><!--$-->", "<!--/--></div>"],
6715
7026
  $cea52f6b24092f05$var$_tmpl$6 = ["<h2", ' class="text">', "</h2>"],
6716
- $cea52f6b24092f05$var$_tmpl$7 = ["<div", ' class="suggestion-container query"><!--#-->', "<!--/--><!--#-->", "<!--/--></div>"],
7027
+ $cea52f6b24092f05$var$_tmpl$7 = ["<div", ' class="suggestion-container query"><!--$-->', "<!--/--><!--$-->", "<!--/--></div>"],
6717
7028
  $cea52f6b24092f05$var$_tmpl$8 = ["<div", ' class="suggestion-container page">', "</div>"],
6718
- $cea52f6b24092f05$var$_tmpl$9 = ["<div", ' class="', '"><!--#-->', "<!--/--><!--#-->", "<!--/--><!--#-->", "<!--/--></div>"];
7029
+ $cea52f6b24092f05$var$_tmpl$9 = ["<div", ' class="', '"><!--$-->', "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--></div>"];
6719
7030
  function $cea52f6b24092f05$export$e872e2339fb04a7f({
6720
7031
  suggestion_memo_: suggestion_memo_,
6721
7032
  search_query_url_param_name_: search_query_url_param_name_,
@@ -7268,8 +7579,8 @@ function $19f1f3e588d63502$export$f021bdedd3ec901a(props) {
7268
7579
  }
7269
7580
  const $fabfda1230351b1a$var$_tmpl$ = ["<div", ' class="discover-more"><button class="major" type="button">', "</button></div>"],
7270
7581
  $fabfda1230351b1a$var$_tmpl$2 = ["<b", ">", "</b>"],
7271
- $fabfda1230351b1a$var$_tmpl$3 = ["<div", ' class="', '"><div class="', '"><!--#-->', '<!--/--><div class="padded"><!--#-->', "<!--/--><!--#-->", "<!--/--><!--#-->", "<!--/--></div><!--#-->", "<!--/--></div><!--#-->", "<!--/--></div>"],
7272
- $fabfda1230351b1a$var$_tmpl$4 = ["<div", ' class="', '"><div class="depict-search-modal-backdrop"></div><!--#-->', "<!--/--></div>"];
7582
+ $fabfda1230351b1a$var$_tmpl$3 = ["<div", ' class="', '"><div class="', '"><!--$-->', '<!--/--><div class="padded"><!--$-->', "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--></div><!--$-->", "<!--/--></div><!--$-->", "<!--/--></div>"],
7583
+ $fabfda1230351b1a$var$_tmpl$4 = ["<div", ' class="', '"><div class="depict-search-modal-backdrop"></div><!--$-->', "<!--/--></div>"];
7273
7584
  function $fabfda1230351b1a$export$1c593cbd6f1e10bc({
7274
7585
  search_field_value_: props_search_field_value,
7275
7586
  get_search_query_: get_search_query_,
@@ -7750,7 +8061,7 @@ function $522a690e0e2bd46d$var$segment_text(text, matched_strings) {
7750
8061
  return output;
7751
8062
  }
7752
8063
  const $b2bf2cdcff8142d8$var$_tmpl$ = ["<div", ' class="description line-clamp">', "</div>"],
7753
- $b2bf2cdcff8142d8$var$_tmpl$2 = ["<div", ' class="content-card"><div class="image">', '</div><div class="info"><!--#-->', "<!--/--><!--#-->", "<!--/--></div></div>"];
8064
+ $b2bf2cdcff8142d8$var$_tmpl$2 = ["<div", ' class="content-card"><div class="image">', '</div><div class="info"><!--$-->', "<!--/--><!--$-->", "<!--/--></div></div>"];
7754
8065
  function $b2bf2cdcff8142d8$export$f631859cab12b342({
7755
8066
  router_: router_,
7756
8067
  content_result_: content_result_
@@ -7877,7 +8188,7 @@ function $9d5b3ed1fc91c672$export$4405d077f0a20494({
7877
8188
  children: () => $i7OB2$createComponent((0, $b2bf2cdcff8142d8$export$f631859cab12b342), {})
7878
8189
  });
7879
8190
  }
7880
- const $49de9d31aeea1b5e$var$_tmpl$ = ["<div", ' class="content-results" style="', '"><!--#-->', "<!--/--><!--#-->", "<!--/--></div>"],
8191
+ const $49de9d31aeea1b5e$var$_tmpl$ = ["<div", ' class="content-results" style="', '"><!--$-->', "<!--/--><!--$-->", "<!--/--></div>"],
7881
8192
  $49de9d31aeea1b5e$var$_tmpl$2 = ["<button", ' class="view-more">', "</button>"],
7882
8193
  $49de9d31aeea1b5e$var$_tmpl$3 = ["<button", ' class="view-less">', "</button>"];
7883
8194
  const $49de9d31aeea1b5e$export$70ceae36059a1036 = 1;
@@ -7963,8 +8274,8 @@ function $49de9d31aeea1b5e$var$make_state_saved_rows(
7963
8274
  }));
7964
8275
  return rows;
7965
8276
  }
7966
- const $7097477c78a89208$var$_tmpl$ = ["<div", ' class="filter-results-for-one-row"><!--#-->', "<!--/--><!--#-->", "<!--/--></div>"],
7967
- $7097477c78a89208$var$_tmpl$2 = ["<div", ' class="depict plp search"><div class="listing-page"><!--#-->', "<!--/--><!--#-->", "<!--/--><!--#-->", "<!--/--><!--#-->", "<!--/--><!--#-->", "<!--/--><!--#-->", "<!--/--><!--#-->", "<!--/--></div><!--#-->", "<!--/--><!--#-->", "<!--/--></div>"];
8277
+ const $7097477c78a89208$var$_tmpl$ = ["<div", ' class="filter-results-for-one-row"><!--$-->', "<!--/--><!--$-->", "<!--/--></div>"],
8278
+ $7097477c78a89208$var$_tmpl$2 = ["<div", ' class="depict plp search"><div class="listing-page"><!--$-->', "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--></div><!--$-->", "<!--/--><!--$-->", "<!--/--></div>"];
7968
8279
  function $7097477c78a89208$export$a54ec244c8863715({
7969
8280
  depict_api_: depict_api_,
7970
8281
  search_field_value_: search_field_value_,
@@ -7997,7 +8308,8 @@ function $7097477c78a89208$export$a54ec244c8863715({
7997
8308
  router_: router_,
7998
8309
  content_results_rows_: content_results_rows_,
7999
8310
  content_layout_options_: content_layout_options_,
8000
- content_search_enabled_: content_search_enabled_
8311
+ content_search_enabled_: content_search_enabled_,
8312
+ content_blocks_by_row_: content_blocks_by_row_
8001
8313
  }) {
8002
8314
  const [get_sorting] = current_sorting_;
8003
8315
  const all_products_loaded_ = $i7OB2$createSignal(false);
@@ -8241,6 +8553,7 @@ function $7097477c78a89208$export$a54ec244c8863715({
8241
8553
  layout_options_: layout_options_,
8242
8554
  sort_or_filter_open_: sort_or_filter_open_,
8243
8555
  id_currently_querying_for_: get_search_query_,
8556
+ content_blocks_by_row_: content_blocks_by_row_,
8244
8557
  no_results_options_: {
8245
8558
  selected_filters_: selected_filters_,
8246
8559
  expanded_hierarchical_filters_: expanded_hierarchical_filters_,
@@ -8680,6 +8993,7 @@ function $806c97b931758897$export$f2dc7e4e4aa11abb(props) {
8680
8993
  search_sorting_open_: state_.sorting_open,
8681
8994
  expanded_filters_: state_.expanded_filters,
8682
8995
  content_results_rows_: state_.content_results_rows,
8996
+ content_blocks_by_row_: () => props.content_blocks_by_row,
8683
8997
  router_: shared_properties.router_,
8684
8998
  make_category_suggestion_card_: shared_properties.enable_category_suggestions_ ? category_suggestion_ => {
8685
8999
  return $897bd4a76f611b38$export$d757d54550ebfb3d({