@depict-ai/ui 4.3.11 → 4.3.13

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.
@@ -94,7 +94,7 @@ $parcel$export(module.exports, "BreadCrumbs", () => $1f4925833f07df29$export$5b7
94
94
  $parcel$export(module.exports, "QuickLinks", () => $1f4925833f07df29$export$de035477d6fef996);
95
95
  $parcel$export(module.exports, "CategoryPage", () => $14f289047713d67a$export$e2bf8ce7779e827e);
96
96
  /*! Depict.ai search and product listing SDK */
97
- const $b757f75811f3261f$export$83d89fbfd8236492 = "4.3.11";
97
+ const $b757f75811f3261f$export$83d89fbfd8236492 = "4.3.13";
98
98
  const $4e04be41243c3d80$var$transform_elements = sorted_cols_at_size => {
99
99
  const cols_at_size = [];
100
100
  for (let i = 0; i < sorted_cols_at_size.length; i++) {
@@ -670,7 +670,8 @@ function $363ce4d1d71041aa$export$d41d19e89346fa2({
670
670
  recommendations_resource_: recommendations_resource_,
671
671
  product_card_template_: product_card_template_,
672
672
  layout_options_: layout_options_,
673
- title_: title_
673
+ title_: title_,
674
+ NoResultsFallback_: NoResultsFallback_
674
675
  }) {
675
676
  const is_showing_something = $5vyXB$solidjs.createMemo(() => recommendations_resource_.loading || recommendations_resource_()?.length);
676
677
  const title = $5vyXB$solidjs.createMemo(() => title_?.()); // In case getter/accessor creates elements, don't create them twice
@@ -726,6 +727,9 @@ function $363ce4d1d71041aa$export$d41d19e89346fa2({
726
727
  get when() {
727
728
  return is_showing_something();
728
729
  },
730
+ get fallback() {
731
+ return NoResultsFallback_?.();
732
+ },
729
733
  children: slider
730
734
  });
731
735
  }
@@ -1655,7 +1659,8 @@ function $b8e79813f4f7ebe4$export$7da560f849543dff({
1655
1659
  layout_options_: layout_options_,
1656
1660
  title_: title_,
1657
1661
  max_rows_: max_rows_,
1658
- view_more_button_: view_more_button_
1662
+ view_more_button_: view_more_button_,
1663
+ NoResultsFallback_: NoResultsFallback_
1659
1664
  }) {
1660
1665
  const rows_object_ = $5vyXB$solidjs.createMemo(() => {
1661
1666
  const view_more_button = view_more_button_?.();
@@ -1717,6 +1722,9 @@ function $b8e79813f4f7ebe4$export$7da560f849543dff({
1717
1722
  get when() {
1718
1723
  return is_showing_something();
1719
1724
  },
1725
+ get fallback() {
1726
+ return NoResultsFallback_?.();
1727
+ },
1720
1728
  children: elements
1721
1729
  });
1722
1730
  }
@@ -1784,7 +1792,8 @@ function $a3bbfa5fdaa39f3a$export$2c9f9bf2092486aa(props) {
1784
1792
  layout_options_: $5vyXB$solidjs.createMemo(() => ({
1785
1793
  cols_at_size: $4e04be41243c3d80$export$6daf8749b65a1b77(props.columnsAtSize_),
1786
1794
  ...grid_spacing_override()
1787
- }))
1795
+ })),
1796
+ NoResultsFallback_: () => props.NoResultsFallback_
1788
1797
  };
1789
1798
  $5vyXB$solidjs.createEffect(() => {
1790
1799
  const {
@@ -5477,39 +5486,12 @@ function $0b7222ba8a8bb72f$var$set_range_with_sanitation(min_, max_, current_ran
5477
5486
  new_value[index] = value_as_number;
5478
5487
  current_range_signal[1](new_value);
5479
5488
  }
5480
- var $7567511a7c3e4bd7$var$_tmpl$ = ["<div", ' class="morphing-sign" role="img"', "><span></span><span></span></div>"];
5489
+ var $7567511a7c3e4bd7$var$_tmpl$ = ["<div", ' class="', '" role="img"', "><span></span><span></span></div>"];
5481
5490
  function $7567511a7c3e4bd7$export$e5c2828934226505({
5482
5491
  expanded_: expanded_,
5483
5492
  i18n_: i18n_
5484
5493
  }) {
5485
- let first_span;
5486
- let second_span;
5487
- const animation_options = {
5488
- fill: "forwards",
5489
- duration: 200
5490
- };
5491
- const outer_div = $5vyXB$solidjsweb.ssr($7567511a7c3e4bd7$var$_tmpl$, $5vyXB$solidjsweb.ssrHydrationKey(), $5vyXB$solidjsweb.ssrAttribute("aria-label", expanded_() ? $5vyXB$solidjsweb.escape(i18n_.morphing_sign_expanded_aria_label_(), true) : $5vyXB$solidjsweb.escape(i18n_.morphing_sign_collapsed_aria_label_(), true), false));
5492
- const [is_in_dom, set_is_in_dom] = $5vyXB$solidjs.createSignal(false);
5493
- (0, $5vyXB$depictaiutilishared.observer).wait_for_element(outer_div).then($5vyXB$depictaiutilishared.catchify(() => set_is_in_dom(true)));
5494
- $5vyXB$solidjs.createEffect(() => {
5495
- if (!is_in_dom())
5496
- // wait for us to being in DOM as animations don't work otherwise
5497
- return;
5498
- try {
5499
- const expanded = expanded_();
5500
- for (const span of [first_span, second_span]) span.animate([{
5501
- transform: `rotate(${expanded ? 90 : "0"}deg)`
5502
- }], animation_options);
5503
- const percentage_value = `${expanded ? 50 : 25}%`;
5504
- second_span.animate([{
5505
- left: percentage_value,
5506
- right: percentage_value
5507
- }], animation_options);
5508
- } catch (e) {
5509
- $5vyXB$depictaiutilishared.dlog("partial keyframes probably not supported", e);
5510
- }
5511
- });
5512
- return outer_div;
5494
+ return $5vyXB$solidjsweb.ssr($7567511a7c3e4bd7$var$_tmpl$, $5vyXB$solidjsweb.ssrHydrationKey(), `morphing-sign ${expanded_() ? "expanded" : ""}`, $5vyXB$solidjsweb.ssrAttribute("aria-label", expanded_() ? $5vyXB$solidjsweb.escape(i18n_.morphing_sign_expanded_aria_label_(), true) : $5vyXB$solidjsweb.escape(i18n_.morphing_sign_collapsed_aria_label_(), true), false));
5513
5495
  }
5514
5496
  var $5ea5a82e398f6f44$var$_tmpl$ = ["<span", ' class="highlighted-part">', "</span>"];
5515
5497
  const $5ea5a82e398f6f44$var$dont_cut_in_between_less_than_characters = 30;
@@ -7028,12 +7010,14 @@ function $70482f04605572e2$export$b288c38ae3fddb56({
7028
7010
  const data_objs_in_remote = Object.fromEntries(remote_meta.values.map((value, index) => [JSON.stringify(value), {
7029
7011
  value_: value,
7030
7012
  count_: remote_meta.counts?.[index],
7031
- name_: remote_meta.names?.[index]
7013
+ name_: remote_meta.names?.[index],
7014
+ swatches_: remote_meta.swatches?.[index]
7032
7015
  }]));
7033
7016
  const data_objs_in_local = Object.fromEntries(local_meta.values.map((value, index) => [JSON.stringify(value), {
7034
7017
  value_: value,
7035
7018
  count_: 0,
7036
- name_: local_meta.names?.[index]
7019
+ name_: local_meta.names?.[index],
7020
+ swatches_: local_meta.swatches?.[index]
7037
7021
  }]));
7038
7022
  const new_data = [...Object.keys(data_objs_in_local).filter(key => {
7039
7023
  // put data entries that are selected and don't exist in new remote state first
@@ -7068,7 +7052,12 @@ function $70482f04605572e2$export$b288c38ae3fddb56({
7068
7052
  }) => name_),
7069
7053
  counts: new_data.map(({
7070
7054
  count_: count_
7071
- }) => count_)
7055
+ }) => count_),
7056
+ ...("swatches" in remote_filter && {
7057
+ swatches: new_data.map(({
7058
+ swatches_: swatches_
7059
+ }) => swatches_)
7060
+ })
7072
7061
  }
7073
7062
  };
7074
7063
  new_local_filter_state.push(result);
@@ -7117,6 +7106,7 @@ function $70482f04605572e2$var$modify_only_local_filter(local_filter_object, sel
7117
7106
  }
7118
7107
  new_meta.values = values.filter((_, index) => !indexes_to_remove.has(index));
7119
7108
  if (new_meta.names) new_meta.names = new_meta.names.filter((_, index) => !indexes_to_remove.has(index));
7109
+ if ("swatches" in new_meta) new_meta.swatches = new_meta.swatches?.filter((_, index) => !indexes_to_remove.has(index));
7120
7110
  if (new_meta.counts)
7121
7111
  // remove counts that are too much, they're all zero anyway if they exist
7122
7112
  new_meta.counts.length -= indexes_to_remove.size;
@@ -10192,7 +10182,7 @@ function $76227de40be817e5$export$f631859cab12b342({
10192
10182
  function $8781fcec27b20709$export$9ff751cd77687edc({
10193
10183
  search_results_: search_results_,
10194
10184
  router_: router_,
10195
- queries_without_content_results_: queries_without_content_results_,
10185
+ setNumberContentResultsPerQuery_: setNumberContentResultsPerQuery_,
10196
10186
  get_search_query_: get_search_query_
10197
10187
  }) {
10198
10188
  const content_results = $5vyXB$solidjs.createMemo(() => search_results_()?.content_search_links);
@@ -10208,7 +10198,11 @@ function $8781fcec27b20709$export$9ff751cd77687edc({
10208
10198
  });
10209
10199
  $5vyXB$solidjs.createEffect(() => {
10210
10200
  const results = content_results();
10211
- if (Array.isArray(results) && results.length === 0) queries_without_content_results_.add($5vyXB$solidjs.untrack(get_search_query_));
10201
+ const numberResults = Array.isArray(results) ? results.length : 0;
10202
+ setNumberContentResultsPerQuery_(prev => {
10203
+ prev.set($5vyXB$solidjs.untrack(get_search_query_), numberResults);
10204
+ return prev;
10205
+ });
10212
10206
  });
10213
10207
  return $5vyXB$solidjsweb.createComponent((0, $5vyXB$solidjs.For), {
10214
10208
  get each() {
@@ -10225,7 +10219,8 @@ function $8781fcec27b20709$export$9ff751cd77687edc({
10225
10219
  }
10226
10220
  function $c2f92eb265a14529$export$4405d077f0a20494({
10227
10221
  content_results_rows_: [get_history_state_content_results_rows],
10228
- cols_at_size_: cols_at_size_
10222
+ cols_at_size_: cols_at_size_,
10223
+ overrideAmount_: overrideAmount_
10229
10224
  }) {
10230
10225
  const colsShowingNow = $17d06b3bcb035500$export$a79e666719b3647c(cols_at_size_);
10231
10226
  const largest_column = $5vyXB$solidjs.createMemo(() => {
@@ -10233,9 +10228,12 @@ function $c2f92eb265a14529$export$4405d077f0a20494({
10233
10228
  if (isNaN(largest_in_cols_at_size) || Math.abs(largest_in_cols_at_size) === Infinity) return 4; // fallback to something big so we always have the right amount of placeholders
10234
10229
  return largest_in_cols_at_size;
10235
10230
  });
10236
- const num_placeholders = $5vyXB$solidjs.createMemo(() =>
10237
- // Use how many columns we're actually showing, if available, so that we're showing exactly as many placeholders as we'd show content, so that the view more button doesn't appear/disappear and makes the layout shift
10238
- (get_history_state_content_results_rows() ?? (0, $3716b8caf7f959e2$export$70ceae36059a1036)) * (colsShowingNow() || largest_column()));
10231
+ const num_placeholders = $5vyXB$solidjs.createMemo(() => {
10232
+ const override = overrideAmount_();
10233
+ if (override !== undefined) return override;
10234
+ // Use how many columns we're actually showing, if available, so that we're showing exactly as many placeholders as we'd show content, so that the view more button doesn't appear/disappear and makes the layout shift
10235
+ return (get_history_state_content_results_rows() ?? (0, $3716b8caf7f959e2$export$70ceae36059a1036)) * (colsShowingNow() || largest_column());
10236
+ });
10239
10237
  return $5vyXB$solidjsweb.createComponent((0, $5vyXB$solidjs.Index), {
10240
10238
  get each() {
10241
10239
  return Array.from({
@@ -10265,15 +10263,13 @@ function $3716b8caf7f959e2$export$6d0c9c22f6652669({
10265
10263
  number_: num_results,
10266
10264
  i18n_: i18n_
10267
10265
  });
10268
- const queries_without_content_results_ = new (0, $5vyXB$depictaiutilishared.ListenableSet)();
10269
- const [check_query, set_check_query] = $5vyXB$solidjs.createSignal(false);
10270
- const placeholders_enabled = $5vyXB$solidjs.createMemo(() => {
10271
- // don't show placeholders when the user toggles filters
10272
- check_query();
10273
- return !queries_without_content_results_.has(get_search_query_());
10266
+ const [numberContentResultsPerQuery, setNumberContentResultsPerQuery_] = $5vyXB$solidjs.createSignal(new Map(), {
10267
+ equals: false
10274
10268
  });
10269
+ const contentResultsForCurrentQuery = $5vyXB$solidjs.createMemo(() => numberContentResultsPerQuery().get(get_search_query_()));
10270
+ // Don't show placeholder if we know there will not be any content results and someone is just toggling filters
10271
+ const placeholders_enabled = $5vyXB$solidjs.createMemo(() => contentResultsForCurrentQuery() !== 0);
10275
10272
  const rows_object = $3716b8caf7f959e2$var$make_state_saved_rows(content_results_rows_, i18n_);
10276
- for (const ev of ["add", "delete"]) queries_without_content_results_.addEventListener(ev, () => set_check_query(prev => !prev));
10277
10273
  return $5vyXB$solidjsweb.ssr($3716b8caf7f959e2$var$_tmpl$, $5vyXB$solidjsweb.ssrHydrationKey(), "display:" + (is_loading_() && placeholders_enabled() || content_results()?.length > 0 ? "" : "none"), $5vyXB$solidjsweb.escape($5vyXB$solidjsweb.createComponent((0, $65a0c4b1c2eb5d0b$export$9dd50d35b9d94fdf), {
10278
10274
  get_search_query_: get_search_query_,
10279
10275
  i18n_: i18n_,
@@ -10296,14 +10292,15 @@ function $3716b8caf7f959e2$export$6d0c9c22f6652669({
10296
10292
  content_results_rows_: content_results_rows_,
10297
10293
  get cols_at_size_() {
10298
10294
  return $5vyXB$solidjs.createMemo(() => layout_options_().cols_at_size);
10299
- }
10295
+ },
10296
+ overrideAmount_: contentResultsForCurrentQuery
10300
10297
  });
10301
10298
  },
10302
10299
  get children() {
10303
10300
  return $5vyXB$solidjsweb.createComponent((0, $8781fcec27b20709$export$9ff751cd77687edc), {
10304
10301
  router_: router_,
10305
10302
  search_results_: search_results_,
10306
- queries_without_content_results_: queries_without_content_results_,
10303
+ setNumberContentResultsPerQuery_: setNumberContentResultsPerQuery_,
10307
10304
  get_search_query_: get_search_query_
10308
10305
  });
10309
10306
  }
@@ -10,7 +10,7 @@ import { ProductListingRequestV3 } from "@depict-ai/types/api/ProductListingRequ
10
10
  import { GetListingRequest } from "@depict-ai/types/api/GetListingRequest";
11
11
  import { BaseSearchRequestV3 } from "@depict-ai/types/api/BaseSearchRequestV3";
12
12
  import { SearchFilter as _SearchFilter3 } from "@depict-ai/types/api/SearchRequestV2";
13
- export const version = "4.3.11";
13
+ export const version = "4.3.13";
14
14
  declare const LISTING_ID = "listingId";
15
15
  declare const EXTERNAL_ID = "externalId";
16
16
  type ScrollRestorationData = {
@@ -877,6 +877,7 @@ export function LooksSliderOrGrid(props: {
877
877
  FavoriteButton_?: (props: {
878
878
  display_: Accessor<ModernDisplay | null | undefined>;
879
879
  }) => JSX.Element;
880
+ NoResultsFallback_?: () => JSX.Element;
880
881
  displayTransformers_?: DisplayTransformers<ModernDisplay, ModernDisplayWithPageUrl<ModernDisplay>>;
881
882
  /**
882
883
  * If provided, will render as grid instead of slider
@@ -1,4 +1,4 @@
1
- import { add_to_version_info as $i7OB2$add_to_version_info, fetch_retry as $i7OB2$fetch_retry, base_url as $i7OB2$base_url, dwarn as $i7OB2$dwarn, slider_fractional_factory as $i7OB2$slider_fractional_factory, dlog as $i7OB2$dlog, camelCasifyObject as $i7OB2$camelCasifyObject, make_random_classname as $i7OB2$make_random_classname, n_col_styling_with_dist as $i7OB2$n_col_styling_with_dist, catchify as $i7OB2$catchify, 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, slider_fading_factory as $i7OB2$slider_fading_factory, Amazing_Slider as $i7OB2$Amazing_Slider, slider_snap_css as $i7OB2$slider_snap_css, observer as $i7OB2$observer, javascript_media_query as $i7OB2$javascript_media_query, queueMacroTask as $i7OB2$queueMacroTask, findMostFrequentItem as $i7OB2$findMostFrequentItem, standard_price_format as $i7OB2$standard_price_format, instant_exec_on_suspect_history_change as $i7OB2$instant_exec_on_suspect_history_change, deparallelize_no_drop as $i7OB2$deparallelize_no_drop, ContainedImage as $i7OB2$ContainedImage, make_asyncIterable_exiter as $i7OB2$make_asyncIterable_exiter, href_change_ipns as $i7OB2$href_change_ipns, base64_encode_unicode as $i7OB2$base64_encode_unicode, base64_decode_unicode as $i7OB2$base64_decode_unicode, use_href_accessor as $i7OB2$use_href_accessor, get_session_id as $i7OB2$get_session_id, add_version_query_params as $i7OB2$add_version_query_params, useExpandingContainer as $i7OB2$useExpandingContainer, hex_to_rgb as $i7OB2$hex_to_rgb, relative_luminance_from_rgb as $i7OB2$relative_luminance_from_rgb, snakeCasifyObject as $i7OB2$snakeCasifyObject, sort_obj as $i7OB2$sort_obj, make_url_with_query_params as $i7OB2$make_url_with_query_params, ListenableSet as $i7OB2$ListenableSet1, insert_surfaces as $i7OB2$insert_surfaces } from "@depict-ai/utilishared/latest";
1
+ import { add_to_version_info as $i7OB2$add_to_version_info, fetch_retry as $i7OB2$fetch_retry, base_url as $i7OB2$base_url, dwarn as $i7OB2$dwarn, slider_fractional_factory as $i7OB2$slider_fractional_factory, dlog as $i7OB2$dlog, camelCasifyObject as $i7OB2$camelCasifyObject, make_random_classname as $i7OB2$make_random_classname, n_col_styling_with_dist as $i7OB2$n_col_styling_with_dist, catchify as $i7OB2$catchify, 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, slider_fading_factory as $i7OB2$slider_fading_factory, Amazing_Slider as $i7OB2$Amazing_Slider, slider_snap_css as $i7OB2$slider_snap_css, observer as $i7OB2$observer, javascript_media_query as $i7OB2$javascript_media_query, queueMacroTask as $i7OB2$queueMacroTask, findMostFrequentItem as $i7OB2$findMostFrequentItem, standard_price_format as $i7OB2$standard_price_format, instant_exec_on_suspect_history_change as $i7OB2$instant_exec_on_suspect_history_change, deparallelize_no_drop as $i7OB2$deparallelize_no_drop, ContainedImage as $i7OB2$ContainedImage, make_asyncIterable_exiter as $i7OB2$make_asyncIterable_exiter, href_change_ipns as $i7OB2$href_change_ipns, base64_encode_unicode as $i7OB2$base64_encode_unicode, base64_decode_unicode as $i7OB2$base64_decode_unicode, use_href_accessor as $i7OB2$use_href_accessor, get_session_id as $i7OB2$get_session_id, add_version_query_params as $i7OB2$add_version_query_params, useExpandingContainer as $i7OB2$useExpandingContainer, hex_to_rgb as $i7OB2$hex_to_rgb, relative_luminance_from_rgb as $i7OB2$relative_luminance_from_rgb, snakeCasifyObject as $i7OB2$snakeCasifyObject, sort_obj as $i7OB2$sort_obj, make_url_with_query_params as $i7OB2$make_url_with_query_params, insert_surfaces as $i7OB2$insert_surfaces } from "@depict-ai/utilishared/latest";
2
2
  import { ssr as $i7OB2$ssr, ssrHydrationKey as $i7OB2$ssrHydrationKey, escape as $i7OB2$escape, ssrStyle as $i7OB2$ssrStyle, createComponent as $i7OB2$createComponent, mergeProps as $i7OB2$mergeProps, isServer as $i7OB2$isServer, ssrElement as $i7OB2$ssrElement, ssrClassList as $i7OB2$ssrClassList, insert as $i7OB2$insert, ssrAttribute as $i7OB2$ssrAttribute, spread as $i7OB2$spread, Dynamic as $i7OB2$Dynamic } from "solid-js/web";
3
3
  import { createSignal as $i7OB2$createSignal, createMemo as $i7OB2$createMemo, createResource as $i7OB2$createResource, createEffect as $i7OB2$createEffect, Show as $i7OB2$Show, mergeProps as $i7OB2$mergeProps1, Suspense as $i7OB2$Suspense, untrack as $i7OB2$untrack, createRenderEffect as $i7OB2$createRenderEffect, Index as $i7OB2$Index, createRoot as $i7OB2$createRoot, onCleanup as $i7OB2$onCleanup, For as $i7OB2$For, getOwner as $i7OB2$getOwner, runWithOwner as $i7OB2$runWithOwner, createContext as $i7OB2$createContext, useContext as $i7OB2$useContext, createUniqueId as $i7OB2$createUniqueId, createComputed as $i7OB2$createComputed, ErrorBoundary as $i7OB2$ErrorBoundary, splitProps as $i7OB2$splitProps, on as $i7OB2$on, batch as $i7OB2$batch, createSelector as $i7OB2$createSelector, children as $i7OB2$children, createReaction as $i7OB2$createReaction, mapArray as $i7OB2$mapArray } from "solid-js";
4
4
  import { ListenableSet as $i7OB2$ListenableSet, catchify as $i7OB2$catchify1, use_href_accessor as $i7OB2$use_href_accessor1, report as $i7OB2$report1 } from "@depict-ai/utilishared/latest";
@@ -7,7 +7,7 @@ import { createStore as $i7OB2$createStore, reconcile as $i7OB2$reconcile } from
7
7
  /*! Depict.ai search and product listing SDK */
8
8
  import { register_es_version } from "../../multi_import_deduplicator.mjs";
9
9
  register_es_version("ui", "latest");
10
- const $ec291e0010116877$export$83d89fbfd8236492 = "4.3.11";
10
+ const $ec291e0010116877$export$83d89fbfd8236492 = "4.3.13";
11
11
  const $b5cccc8ee7d24677$var$transform_elements = sorted_cols_at_size => {
12
12
  const cols_at_size = [];
13
13
  for (let i = 0; i < sorted_cols_at_size.length; i++) {
@@ -583,7 +583,8 @@ function $c4492d24952ed731$export$d41d19e89346fa2({
583
583
  recommendations_resource_: recommendations_resource_,
584
584
  product_card_template_: product_card_template_,
585
585
  layout_options_: layout_options_,
586
- title_: title_
586
+ title_: title_,
587
+ NoResultsFallback_: NoResultsFallback_
587
588
  }) {
588
589
  const is_showing_something = $i7OB2$createMemo(() => recommendations_resource_.loading || recommendations_resource_()?.length);
589
590
  const title = $i7OB2$createMemo(() => title_?.()); // In case getter/accessor creates elements, don't create them twice
@@ -639,6 +640,9 @@ function $c4492d24952ed731$export$d41d19e89346fa2({
639
640
  get when() {
640
641
  return is_showing_something();
641
642
  },
643
+ get fallback() {
644
+ return NoResultsFallback_?.();
645
+ },
642
646
  children: slider
643
647
  });
644
648
  }
@@ -1568,7 +1572,8 @@ function $3da8afe3ed57cf34$export$7da560f849543dff({
1568
1572
  layout_options_: layout_options_,
1569
1573
  title_: title_,
1570
1574
  max_rows_: max_rows_,
1571
- view_more_button_: view_more_button_
1575
+ view_more_button_: view_more_button_,
1576
+ NoResultsFallback_: NoResultsFallback_
1572
1577
  }) {
1573
1578
  const rows_object_ = $i7OB2$createMemo(() => {
1574
1579
  const view_more_button = view_more_button_?.();
@@ -1630,6 +1635,9 @@ function $3da8afe3ed57cf34$export$7da560f849543dff({
1630
1635
  get when() {
1631
1636
  return is_showing_something();
1632
1637
  },
1638
+ get fallback() {
1639
+ return NoResultsFallback_?.();
1640
+ },
1633
1641
  children: elements
1634
1642
  });
1635
1643
  }
@@ -1697,7 +1705,8 @@ function $07ef910e8ef6b783$export$2c9f9bf2092486aa(props) {
1697
1705
  layout_options_: $i7OB2$createMemo(() => ({
1698
1706
  cols_at_size: $b5cccc8ee7d24677$export$6daf8749b65a1b77(props.columnsAtSize_),
1699
1707
  ...grid_spacing_override()
1700
- }))
1708
+ })),
1709
+ NoResultsFallback_: () => props.NoResultsFallback_
1701
1710
  };
1702
1711
  $i7OB2$createEffect(() => {
1703
1712
  const {
@@ -5390,39 +5399,12 @@ function $a6b08770e164eced$var$set_range_with_sanitation(min_, max_, current_ran
5390
5399
  new_value[index] = value_as_number;
5391
5400
  current_range_signal[1](new_value);
5392
5401
  }
5393
- var $0b6bc2f8309efa8a$var$_tmpl$ = ["<div", ' class="morphing-sign" role="img"', "><span></span><span></span></div>"];
5402
+ var $0b6bc2f8309efa8a$var$_tmpl$ = ["<div", ' class="', '" role="img"', "><span></span><span></span></div>"];
5394
5403
  function $0b6bc2f8309efa8a$export$e5c2828934226505({
5395
5404
  expanded_: expanded_,
5396
5405
  i18n_: i18n_
5397
5406
  }) {
5398
- let first_span;
5399
- let second_span;
5400
- const animation_options = {
5401
- fill: "forwards",
5402
- duration: 200
5403
- };
5404
- const outer_div = $i7OB2$ssr($0b6bc2f8309efa8a$var$_tmpl$, $i7OB2$ssrHydrationKey(), $i7OB2$ssrAttribute("aria-label", expanded_() ? $i7OB2$escape(i18n_.morphing_sign_expanded_aria_label_(), true) : $i7OB2$escape(i18n_.morphing_sign_collapsed_aria_label_(), true), false));
5405
- const [is_in_dom, set_is_in_dom] = $i7OB2$createSignal(false);
5406
- (0, $i7OB2$observer).wait_for_element(outer_div).then($i7OB2$catchify(() => set_is_in_dom(true)));
5407
- $i7OB2$createEffect(() => {
5408
- if (!is_in_dom())
5409
- // wait for us to being in DOM as animations don't work otherwise
5410
- return;
5411
- try {
5412
- const expanded = expanded_();
5413
- for (const span of [first_span, second_span]) span.animate([{
5414
- transform: `rotate(${expanded ? 90 : "0"}deg)`
5415
- }], animation_options);
5416
- const percentage_value = `${expanded ? 50 : 25}%`;
5417
- second_span.animate([{
5418
- left: percentage_value,
5419
- right: percentage_value
5420
- }], animation_options);
5421
- } catch (e) {
5422
- $i7OB2$dlog("partial keyframes probably not supported", e);
5423
- }
5424
- });
5425
- return outer_div;
5407
+ return $i7OB2$ssr($0b6bc2f8309efa8a$var$_tmpl$, $i7OB2$ssrHydrationKey(), `morphing-sign ${expanded_() ? "expanded" : ""}`, $i7OB2$ssrAttribute("aria-label", expanded_() ? $i7OB2$escape(i18n_.morphing_sign_expanded_aria_label_(), true) : $i7OB2$escape(i18n_.morphing_sign_collapsed_aria_label_(), true), false));
5426
5408
  }
5427
5409
  var $522a690e0e2bd46d$var$_tmpl$ = ["<span", ' class="highlighted-part">', "</span>"];
5428
5410
  const $522a690e0e2bd46d$var$dont_cut_in_between_less_than_characters = 30;
@@ -6941,12 +6923,14 @@ function $5efb5894079b220e$export$b288c38ae3fddb56({
6941
6923
  const data_objs_in_remote = Object.fromEntries(remote_meta.values.map((value, index) => [JSON.stringify(value), {
6942
6924
  value_: value,
6943
6925
  count_: remote_meta.counts?.[index],
6944
- name_: remote_meta.names?.[index]
6926
+ name_: remote_meta.names?.[index],
6927
+ swatches_: remote_meta.swatches?.[index]
6945
6928
  }]));
6946
6929
  const data_objs_in_local = Object.fromEntries(local_meta.values.map((value, index) => [JSON.stringify(value), {
6947
6930
  value_: value,
6948
6931
  count_: 0,
6949
- name_: local_meta.names?.[index]
6932
+ name_: local_meta.names?.[index],
6933
+ swatches_: local_meta.swatches?.[index]
6950
6934
  }]));
6951
6935
  const new_data = [...Object.keys(data_objs_in_local).filter(key => {
6952
6936
  // put data entries that are selected and don't exist in new remote state first
@@ -6981,7 +6965,12 @@ function $5efb5894079b220e$export$b288c38ae3fddb56({
6981
6965
  }) => name_),
6982
6966
  counts: new_data.map(({
6983
6967
  count_: count_
6984
- }) => count_)
6968
+ }) => count_),
6969
+ ...("swatches" in remote_filter && {
6970
+ swatches: new_data.map(({
6971
+ swatches_: swatches_
6972
+ }) => swatches_)
6973
+ })
6985
6974
  }
6986
6975
  };
6987
6976
  new_local_filter_state.push(result);
@@ -7030,6 +7019,7 @@ function $5efb5894079b220e$var$modify_only_local_filter(local_filter_object, sel
7030
7019
  }
7031
7020
  new_meta.values = values.filter((_, index) => !indexes_to_remove.has(index));
7032
7021
  if (new_meta.names) new_meta.names = new_meta.names.filter((_, index) => !indexes_to_remove.has(index));
7022
+ if ("swatches" in new_meta) new_meta.swatches = new_meta.swatches?.filter((_, index) => !indexes_to_remove.has(index));
7033
7023
  if (new_meta.counts)
7034
7024
  // remove counts that are too much, they're all zero anyway if they exist
7035
7025
  new_meta.counts.length -= indexes_to_remove.size;
@@ -10105,7 +10095,7 @@ function $b2bf2cdcff8142d8$export$f631859cab12b342({
10105
10095
  function $b26bdbd081f63e3f$export$9ff751cd77687edc({
10106
10096
  search_results_: search_results_,
10107
10097
  router_: router_,
10108
- queries_without_content_results_: queries_without_content_results_,
10098
+ setNumberContentResultsPerQuery_: setNumberContentResultsPerQuery_,
10109
10099
  get_search_query_: get_search_query_
10110
10100
  }) {
10111
10101
  const content_results = $i7OB2$createMemo(() => search_results_()?.content_search_links);
@@ -10121,7 +10111,11 @@ function $b26bdbd081f63e3f$export$9ff751cd77687edc({
10121
10111
  });
10122
10112
  $i7OB2$createEffect(() => {
10123
10113
  const results = content_results();
10124
- if (Array.isArray(results) && results.length === 0) queries_without_content_results_.add($i7OB2$untrack(get_search_query_));
10114
+ const numberResults = Array.isArray(results) ? results.length : 0;
10115
+ setNumberContentResultsPerQuery_(prev => {
10116
+ prev.set($i7OB2$untrack(get_search_query_), numberResults);
10117
+ return prev;
10118
+ });
10125
10119
  });
10126
10120
  return $i7OB2$createComponent((0, $i7OB2$For), {
10127
10121
  get each() {
@@ -10138,7 +10132,8 @@ function $b26bdbd081f63e3f$export$9ff751cd77687edc({
10138
10132
  }
10139
10133
  function $9d5b3ed1fc91c672$export$4405d077f0a20494({
10140
10134
  content_results_rows_: [get_history_state_content_results_rows],
10141
- cols_at_size_: cols_at_size_
10135
+ cols_at_size_: cols_at_size_,
10136
+ overrideAmount_: overrideAmount_
10142
10137
  }) {
10143
10138
  const colsShowingNow = $77348875ac090fcd$export$a79e666719b3647c(cols_at_size_);
10144
10139
  const largest_column = $i7OB2$createMemo(() => {
@@ -10146,9 +10141,12 @@ function $9d5b3ed1fc91c672$export$4405d077f0a20494({
10146
10141
  if (isNaN(largest_in_cols_at_size) || Math.abs(largest_in_cols_at_size) === Infinity) return 4; // fallback to something big so we always have the right amount of placeholders
10147
10142
  return largest_in_cols_at_size;
10148
10143
  });
10149
- const num_placeholders = $i7OB2$createMemo(() =>
10150
- // Use how many columns we're actually showing, if available, so that we're showing exactly as many placeholders as we'd show content, so that the view more button doesn't appear/disappear and makes the layout shift
10151
- (get_history_state_content_results_rows() ?? (0, $49de9d31aeea1b5e$export$70ceae36059a1036)) * (colsShowingNow() || largest_column()));
10144
+ const num_placeholders = $i7OB2$createMemo(() => {
10145
+ const override = overrideAmount_();
10146
+ if (override !== undefined) return override;
10147
+ // Use how many columns we're actually showing, if available, so that we're showing exactly as many placeholders as we'd show content, so that the view more button doesn't appear/disappear and makes the layout shift
10148
+ return (get_history_state_content_results_rows() ?? (0, $49de9d31aeea1b5e$export$70ceae36059a1036)) * (colsShowingNow() || largest_column());
10149
+ });
10152
10150
  return $i7OB2$createComponent((0, $i7OB2$Index), {
10153
10151
  get each() {
10154
10152
  return Array.from({
@@ -10178,15 +10176,13 @@ function $49de9d31aeea1b5e$export$6d0c9c22f6652669({
10178
10176
  number_: num_results,
10179
10177
  i18n_: i18n_
10180
10178
  });
10181
- const queries_without_content_results_ = new (0, $i7OB2$ListenableSet1)();
10182
- const [check_query, set_check_query] = $i7OB2$createSignal(false);
10183
- const placeholders_enabled = $i7OB2$createMemo(() => {
10184
- // don't show placeholders when the user toggles filters
10185
- check_query();
10186
- return !queries_without_content_results_.has(get_search_query_());
10179
+ const [numberContentResultsPerQuery, setNumberContentResultsPerQuery_] = $i7OB2$createSignal(new Map(), {
10180
+ equals: false
10187
10181
  });
10182
+ const contentResultsForCurrentQuery = $i7OB2$createMemo(() => numberContentResultsPerQuery().get(get_search_query_()));
10183
+ // Don't show placeholder if we know there will not be any content results and someone is just toggling filters
10184
+ const placeholders_enabled = $i7OB2$createMemo(() => contentResultsForCurrentQuery() !== 0);
10188
10185
  const rows_object = $49de9d31aeea1b5e$var$make_state_saved_rows(content_results_rows_, i18n_);
10189
- for (const ev of ["add", "delete"]) queries_without_content_results_.addEventListener(ev, () => set_check_query(prev => !prev));
10190
10186
  return $i7OB2$ssr($49de9d31aeea1b5e$var$_tmpl$, $i7OB2$ssrHydrationKey(), "display:" + (is_loading_() && placeholders_enabled() || content_results()?.length > 0 ? "" : "none"), $i7OB2$escape($i7OB2$createComponent((0, $f8c929beb82c512b$export$9dd50d35b9d94fdf), {
10191
10187
  get_search_query_: get_search_query_,
10192
10188
  i18n_: i18n_,
@@ -10209,14 +10205,15 @@ function $49de9d31aeea1b5e$export$6d0c9c22f6652669({
10209
10205
  content_results_rows_: content_results_rows_,
10210
10206
  get cols_at_size_() {
10211
10207
  return $i7OB2$createMemo(() => layout_options_().cols_at_size);
10212
- }
10208
+ },
10209
+ overrideAmount_: contentResultsForCurrentQuery
10213
10210
  });
10214
10211
  },
10215
10212
  get children() {
10216
10213
  return $i7OB2$createComponent((0, $b26bdbd081f63e3f$export$9ff751cd77687edc), {
10217
10214
  router_: router_,
10218
10215
  search_results_: search_results_,
10219
- queries_without_content_results_: queries_without_content_results_,
10216
+ setNumberContentResultsPerQuery_: setNumberContentResultsPerQuery_,
10220
10217
  get_search_query_: get_search_query_
10221
10218
  });
10222
10219
  }