@depict-ai/ui 4.3.10 → 4.3.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/latest/index.cjs CHANGED
@@ -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.10";
97
+ const $b757f75811f3261f$export$83d89fbfd8236492 = "4.3.12";
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++) {
@@ -731,7 +731,8 @@ function $363ce4d1d71041aa$export$d41d19e89346fa2({
731
731
  recommendations_resource_: recommendations_resource_,
732
732
  product_card_template_: product_card_template_,
733
733
  layout_options_: layout_options_,
734
- title_: title_
734
+ title_: title_,
735
+ NoResultsFallback_: NoResultsFallback_
735
736
  }) {
736
737
  const is_showing_something = $gVhhF$solidjs.createMemo(() => recommendations_resource_.loading || recommendations_resource_()?.length);
737
738
  const title = $gVhhF$solidjs.createMemo(() => title_?.()); // In case getter/accessor creates elements, don't create them twice
@@ -789,6 +790,9 @@ function $363ce4d1d71041aa$export$d41d19e89346fa2({
789
790
  get when() {
790
791
  return is_showing_something();
791
792
  },
793
+ get fallback() {
794
+ return NoResultsFallback_?.();
795
+ },
792
796
  children: slider
793
797
  });
794
798
  }
@@ -1315,6 +1319,7 @@ function $1ae437d7d388a66e$export$b73ed90f0ee50dc3({
1315
1319
  const enableLink = $gVhhF$solidjs.createMemo(() => userWantsExpanded() && !animationIsRunning());
1316
1320
  const href = $gVhhF$solidjs.createMemo(() => variantToUse()?.page_url);
1317
1321
  const FavoriteButton = FavoriteButton_; // Just to get rid of the type error - TS doesn't understand <Show>
1322
+ const title = $gVhhF$solidjs.createMemo(() => variantToUse()?.title);
1318
1323
  return (() => {
1319
1324
  var _el$ = $gVhhF$solidjsweb.getNextElement($1ae437d7d388a66e$var$_tmpl$4),
1320
1325
  _el$12 = _el$.firstChild,
@@ -1424,7 +1429,10 @@ function $1ae437d7d388a66e$export$b73ed90f0ee50dc3({
1424
1429
  disconnector();
1425
1430
  }));
1426
1431
  }, _el$3);
1427
- $gVhhF$solidjsweb.insert(_el$5, () => variantToUse()?.title ?? $gVhhF$solidjsweb.createComponent((0, $061ff5b4c3d36171$export$89c6019e4baa40b1), {
1432
+ $gVhhF$solidjsweb.spread(_el$5, $gVhhF$solidjsweb.mergeProps(() => title() && {
1433
+ title: title()
1434
+ }), false, true);
1435
+ $gVhhF$solidjsweb.insert(_el$5, () => title() ?? $gVhhF$solidjsweb.createComponent((0, $061ff5b4c3d36171$export$89c6019e4baa40b1), {
1428
1436
  height: "1em",
1429
1437
  width: "20ch"
1430
1438
  }));
@@ -1502,6 +1510,7 @@ function $1ae437d7d388a66e$export$b73ed90f0ee50dc3({
1502
1510
  }
1503
1511
  }), _el$11, _co$2);
1504
1512
  $gVhhF$solidjsweb.effect(() => _el$6.classList.toggle("sale", !!isOnSale()));
1513
+ $gVhhF$solidjsweb.runHydrationEvents();
1505
1514
  return _el$3;
1506
1515
  }
1507
1516
  }), _el$15, _co$4);
@@ -1865,7 +1874,8 @@ function $b8e79813f4f7ebe4$export$7da560f849543dff({
1865
1874
  layout_options_: layout_options_,
1866
1875
  title_: title_,
1867
1876
  max_rows_: max_rows_,
1868
- view_more_button_: view_more_button_
1877
+ view_more_button_: view_more_button_,
1878
+ NoResultsFallback_: NoResultsFallback_
1869
1879
  }) {
1870
1880
  const rows_object_ = $gVhhF$solidjs.createMemo(() => {
1871
1881
  const view_more_button = view_more_button_?.();
@@ -1942,6 +1952,9 @@ function $b8e79813f4f7ebe4$export$7da560f849543dff({
1942
1952
  get when() {
1943
1953
  return is_showing_something();
1944
1954
  },
1955
+ get fallback() {
1956
+ return NoResultsFallback_?.();
1957
+ },
1945
1958
  children: elements
1946
1959
  });
1947
1960
  }
@@ -2009,7 +2022,8 @@ function $a3bbfa5fdaa39f3a$export$2c9f9bf2092486aa(props) {
2009
2022
  layout_options_: $gVhhF$solidjs.createMemo(() => ({
2010
2023
  cols_at_size: $4e04be41243c3d80$export$6daf8749b65a1b77(props.columnsAtSize_),
2011
2024
  ...grid_spacing_override()
2012
- }))
2025
+ })),
2026
+ NoResultsFallback_: () => props.NoResultsFallback_
2013
2027
  };
2014
2028
  $gVhhF$solidjs.createEffect(() => {
2015
2029
  const {
@@ -7148,44 +7162,20 @@ function $7567511a7c3e4bd7$export$e5c2828934226505({
7148
7162
  expanded_: expanded_,
7149
7163
  i18n_: i18n_
7150
7164
  }) {
7151
- let first_span;
7152
- let second_span;
7153
- const animation_options = {
7154
- fill: "forwards",
7155
- duration: 200
7156
- };
7157
- const outer_div = (() => {
7158
- var _el$ = $gVhhF$solidjsweb.getNextElement($7567511a7c3e4bd7$var$_tmpl$),
7159
- _el$2 = _el$.firstChild,
7160
- _el$3 = _el$2.nextSibling;
7161
- var _ref$ = first_span;
7162
- typeof _ref$ === "function" ? $gVhhF$solidjsweb.use(_ref$, _el$2) : first_span = _el$2;
7163
- var _ref$2 = second_span;
7164
- typeof _ref$2 === "function" ? $gVhhF$solidjsweb.use(_ref$2, _el$3) : second_span = _el$3;
7165
- $gVhhF$solidjsweb.effect(() => $gVhhF$solidjsweb.setAttribute(_el$, "aria-label", expanded_() ? i18n_.morphing_sign_expanded_aria_label_() : i18n_.morphing_sign_collapsed_aria_label_()));
7165
+ return (() => {
7166
+ var _el$ = $gVhhF$solidjsweb.getNextElement($7567511a7c3e4bd7$var$_tmpl$);
7167
+ $gVhhF$solidjsweb.effect(_p$ => {
7168
+ var _v$ = !!expanded_(),
7169
+ _v$2 = expanded_() ? i18n_.morphing_sign_expanded_aria_label_() : i18n_.morphing_sign_collapsed_aria_label_();
7170
+ _v$ !== _p$.e && _el$.classList.toggle("expanded", _p$.e = _v$);
7171
+ _v$2 !== _p$.t && $gVhhF$solidjsweb.setAttribute(_el$, "aria-label", _p$.t = _v$2);
7172
+ return _p$;
7173
+ }, {
7174
+ e: undefined,
7175
+ t: undefined
7176
+ });
7166
7177
  return _el$;
7167
7178
  })();
7168
- const [is_in_dom, set_is_in_dom] = $gVhhF$solidjs.createSignal(false);
7169
- (0, $gVhhF$depictaiutilishared.observer).wait_for_element(outer_div).then($gVhhF$depictaiutilishared.catchify(() => set_is_in_dom(true)));
7170
- $gVhhF$solidjs.createEffect(() => {
7171
- if (!is_in_dom())
7172
- // wait for us to being in DOM as animations don't work otherwise
7173
- return;
7174
- try {
7175
- const expanded = expanded_();
7176
- for (const span of [first_span, second_span]) span.animate([{
7177
- transform: `rotate(${expanded ? 90 : "0"}deg)`
7178
- }], animation_options);
7179
- const percentage_value = `${expanded ? 50 : 25}%`;
7180
- second_span.animate([{
7181
- left: percentage_value,
7182
- right: percentage_value
7183
- }], animation_options);
7184
- } catch (e) {
7185
- $gVhhF$depictaiutilishared.dlog("partial keyframes probably not supported", e);
7186
- }
7187
- });
7188
- return outer_div;
7189
7179
  }
7190
7180
  var $5ea5a82e398f6f44$var$_tmpl$ = /*#__PURE__*/$gVhhF$solidjsweb.template(`<span class=highlighted-part>`);
7191
7181
  const $5ea5a82e398f6f44$var$dont_cut_in_between_less_than_characters = 30;
@@ -12526,7 +12516,7 @@ function $76227de40be817e5$export$f631859cab12b342({
12526
12516
  function $8781fcec27b20709$export$9ff751cd77687edc({
12527
12517
  search_results_: search_results_,
12528
12518
  router_: router_,
12529
- queries_without_content_results_: queries_without_content_results_,
12519
+ setNumberContentResultsPerQuery_: setNumberContentResultsPerQuery_,
12530
12520
  get_search_query_: get_search_query_
12531
12521
  }) {
12532
12522
  const content_results = $gVhhF$solidjs.createMemo(() => search_results_()?.content_search_links);
@@ -12542,7 +12532,11 @@ function $8781fcec27b20709$export$9ff751cd77687edc({
12542
12532
  });
12543
12533
  $gVhhF$solidjs.createEffect(() => {
12544
12534
  const results = content_results();
12545
- if (Array.isArray(results) && results.length === 0) queries_without_content_results_.add($gVhhF$solidjs.untrack(get_search_query_));
12535
+ const numberResults = Array.isArray(results) ? results.length : 0;
12536
+ setNumberContentResultsPerQuery_(prev => {
12537
+ prev.set($gVhhF$solidjs.untrack(get_search_query_), numberResults);
12538
+ return prev;
12539
+ });
12546
12540
  });
12547
12541
  return $gVhhF$solidjsweb.createComponent((0, $gVhhF$solidjs.For), {
12548
12542
  get each() {
@@ -12559,7 +12553,8 @@ function $8781fcec27b20709$export$9ff751cd77687edc({
12559
12553
  }
12560
12554
  function $c2f92eb265a14529$export$4405d077f0a20494({
12561
12555
  content_results_rows_: [get_history_state_content_results_rows],
12562
- cols_at_size_: cols_at_size_
12556
+ cols_at_size_: cols_at_size_,
12557
+ overrideAmount_: overrideAmount_
12563
12558
  }) {
12564
12559
  const colsShowingNow = $17d06b3bcb035500$export$a79e666719b3647c(cols_at_size_);
12565
12560
  const largest_column = $gVhhF$solidjs.createMemo(() => {
@@ -12567,9 +12562,12 @@ function $c2f92eb265a14529$export$4405d077f0a20494({
12567
12562
  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
12568
12563
  return largest_in_cols_at_size;
12569
12564
  });
12570
- const num_placeholders = $gVhhF$solidjs.createMemo(() =>
12571
- // 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
12572
- (get_history_state_content_results_rows() ?? (0, $3716b8caf7f959e2$export$70ceae36059a1036)) * (colsShowingNow() || largest_column()));
12565
+ const num_placeholders = $gVhhF$solidjs.createMemo(() => {
12566
+ const override = overrideAmount_();
12567
+ if (override !== undefined) return override;
12568
+ // 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
12569
+ return (get_history_state_content_results_rows() ?? (0, $3716b8caf7f959e2$export$70ceae36059a1036)) * (colsShowingNow() || largest_column());
12570
+ });
12573
12571
  return $gVhhF$solidjsweb.createComponent((0, $gVhhF$solidjs.Index), {
12574
12572
  get each() {
12575
12573
  return Array.from({
@@ -12599,15 +12597,13 @@ function $3716b8caf7f959e2$export$6d0c9c22f6652669({
12599
12597
  number_: num_results,
12600
12598
  i18n_: i18n_
12601
12599
  });
12602
- const queries_without_content_results_ = new (0, $gVhhF$depictaiutilishared.ListenableSet)();
12603
- const [check_query, set_check_query] = $gVhhF$solidjs.createSignal(false);
12604
- const placeholders_enabled = $gVhhF$solidjs.createMemo(() => {
12605
- // don't show placeholders when the user toggles filters
12606
- check_query();
12607
- return !queries_without_content_results_.has(get_search_query_());
12600
+ const [numberContentResultsPerQuery, setNumberContentResultsPerQuery_] = $gVhhF$solidjs.createSignal(new Map(), {
12601
+ equals: false
12608
12602
  });
12603
+ const contentResultsForCurrentQuery = $gVhhF$solidjs.createMemo(() => numberContentResultsPerQuery().get(get_search_query_()));
12604
+ // Don't show placeholder if we know there will not be any content results and someone is just toggling filters
12605
+ const placeholders_enabled = $gVhhF$solidjs.createMemo(() => contentResultsForCurrentQuery() !== 0);
12609
12606
  const rows_object = $3716b8caf7f959e2$var$make_state_saved_rows(content_results_rows_, i18n_);
12610
- for (const ev of ["add", "delete"]) queries_without_content_results_.addEventListener(ev, () => set_check_query(prev => !prev));
12611
12607
  return (() => {
12612
12608
  var _el$ = $gVhhF$solidjsweb.getNextElement($3716b8caf7f959e2$var$_tmpl$),
12613
12609
  _el$2 = _el$.firstChild,
@@ -12637,14 +12633,15 @@ function $3716b8caf7f959e2$export$6d0c9c22f6652669({
12637
12633
  content_results_rows_: content_results_rows_,
12638
12634
  get cols_at_size_() {
12639
12635
  return $gVhhF$solidjs.createMemo(() => layout_options_().cols_at_size);
12640
- }
12636
+ },
12637
+ overrideAmount_: contentResultsForCurrentQuery
12641
12638
  });
12642
12639
  },
12643
12640
  get children() {
12644
12641
  return $gVhhF$solidjsweb.createComponent((0, $8781fcec27b20709$export$9ff751cd77687edc), {
12645
12642
  router_: router_,
12646
12643
  search_results_: search_results_,
12647
- queries_without_content_results_: queries_without_content_results_,
12644
+ setNumberContentResultsPerQuery_: setNumberContentResultsPerQuery_,
12648
12645
  get_search_query_: get_search_query_
12649
12646
  });
12650
12647
  }
package/latest/index.d.ts CHANGED
@@ -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.10";
13
+ export const version = "4.3.12";
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
@@ -1398,7 +1399,7 @@ type OpenModalParams<OriginalDisplay extends Display, OutputDisplay extends Mode
1398
1399
  * Open the modal with support for alignment.
1399
1400
  * @returns {void}
1400
1401
  */
1401
- export const open_modal_with_alignment: <OriginalDisplay extends Display, OutputDisplay extends unknown>(openModalParams: OpenModalParams<OriginalDisplay, OutputDisplay>) => void;
1402
+ export const open_modal_with_alignment: <OriginalDisplay extends Display, OutputDisplay extends ModernDisplay>(openModalParams: OpenModalParams<OriginalDisplay, OutputDisplay>) => void;
1402
1403
  export function open_search_with_shift_slash(open_search: VoidFunction): () => void;
1403
1404
  export interface PageReplacer {
1404
1405
  readonly render_: () => Node_Array;
@@ -1476,5 +1477,5 @@ export function CategoryPage<OriginalDisplay extends Display, OutputDisplay exte
1476
1477
  content_blocks_by_row?: ContentBlocksByRow;
1477
1478
  layout?: PossibleLayout;
1478
1479
  filterModalParent_?: HTMLElement | ShadowRoot;
1479
- }): import("@depict-ai/utilishared").Node_Array;
1480
+ }): import("@depict-ai/utilishared/latest").Node_Array;
1480
1481
  export type { SearchFilter } from "@depict-ai/types/api/SearchRequestV3";
package/latest/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { add_to_version_info as $9HbP8$add_to_version_info, fetch_retry as $9HbP8$fetch_retry, base_url as $9HbP8$base_url, dwarn as $9HbP8$dwarn, slider_fractional_factory as $9HbP8$slider_fractional_factory, dlog as $9HbP8$dlog, camelCasifyObject as $9HbP8$camelCasifyObject, make_random_classname as $9HbP8$make_random_classname, n_col_styling_with_dist as $9HbP8$n_col_styling_with_dist, catchify as $9HbP8$catchify, layout_get_visible_recs_without_partial_rows as $9HbP8$layout_get_visible_recs_without_partial_rows, layout_get_total_rec_amount_for_row as $9HbP8$layout_get_total_rec_amount_for_row, layout_media_query_header as $9HbP8$layout_media_query_header, report as $9HbP8$report, slider_fading_factory as $9HbP8$slider_fading_factory, Amazing_Slider as $9HbP8$Amazing_Slider, slider_snap_css as $9HbP8$slider_snap_css, observer as $9HbP8$observer, javascript_media_query as $9HbP8$javascript_media_query, queueMacroTask as $9HbP8$queueMacroTask, findMostFrequentItem as $9HbP8$findMostFrequentItem, standard_price_format as $9HbP8$standard_price_format, instant_exec_on_suspect_history_change as $9HbP8$instant_exec_on_suspect_history_change, deparallelize_no_drop as $9HbP8$deparallelize_no_drop, ContainedImage as $9HbP8$ContainedImage, buildThresholdList as $9HbP8$buildThresholdList, make_asyncIterable_exiter as $9HbP8$make_asyncIterable_exiter, href_change_ipns as $9HbP8$href_change_ipns, base64_encode_unicode as $9HbP8$base64_encode_unicode, base64_decode_unicode as $9HbP8$base64_decode_unicode, use_href_accessor as $9HbP8$use_href_accessor, get_session_id as $9HbP8$get_session_id, add_version_query_params as $9HbP8$add_version_query_params, useExpandingContainer as $9HbP8$useExpandingContainer, hex_to_rgb as $9HbP8$hex_to_rgb, relative_luminance_from_rgb as $9HbP8$relative_luminance_from_rgb, snakeCasifyObject as $9HbP8$snakeCasifyObject, sort_obj as $9HbP8$sort_obj, make_url_with_query_params as $9HbP8$make_url_with_query_params, ListenableSet as $9HbP8$ListenableSet1, insert_surfaces as $9HbP8$insert_surfaces, is_debug as $9HbP8$is_debug } from "@depict-ai/utilishared/latest";
1
+ import { add_to_version_info as $9HbP8$add_to_version_info, fetch_retry as $9HbP8$fetch_retry, base_url as $9HbP8$base_url, dwarn as $9HbP8$dwarn, slider_fractional_factory as $9HbP8$slider_fractional_factory, dlog as $9HbP8$dlog, camelCasifyObject as $9HbP8$camelCasifyObject, make_random_classname as $9HbP8$make_random_classname, n_col_styling_with_dist as $9HbP8$n_col_styling_with_dist, catchify as $9HbP8$catchify, layout_get_visible_recs_without_partial_rows as $9HbP8$layout_get_visible_recs_without_partial_rows, layout_get_total_rec_amount_for_row as $9HbP8$layout_get_total_rec_amount_for_row, layout_media_query_header as $9HbP8$layout_media_query_header, report as $9HbP8$report, slider_fading_factory as $9HbP8$slider_fading_factory, Amazing_Slider as $9HbP8$Amazing_Slider, slider_snap_css as $9HbP8$slider_snap_css, observer as $9HbP8$observer, javascript_media_query as $9HbP8$javascript_media_query, queueMacroTask as $9HbP8$queueMacroTask, findMostFrequentItem as $9HbP8$findMostFrequentItem, standard_price_format as $9HbP8$standard_price_format, instant_exec_on_suspect_history_change as $9HbP8$instant_exec_on_suspect_history_change, deparallelize_no_drop as $9HbP8$deparallelize_no_drop, ContainedImage as $9HbP8$ContainedImage, buildThresholdList as $9HbP8$buildThresholdList, make_asyncIterable_exiter as $9HbP8$make_asyncIterable_exiter, href_change_ipns as $9HbP8$href_change_ipns, base64_encode_unicode as $9HbP8$base64_encode_unicode, base64_decode_unicode as $9HbP8$base64_decode_unicode, use_href_accessor as $9HbP8$use_href_accessor, get_session_id as $9HbP8$get_session_id, add_version_query_params as $9HbP8$add_version_query_params, useExpandingContainer as $9HbP8$useExpandingContainer, hex_to_rgb as $9HbP8$hex_to_rgb, relative_luminance_from_rgb as $9HbP8$relative_luminance_from_rgb, snakeCasifyObject as $9HbP8$snakeCasifyObject, sort_obj as $9HbP8$sort_obj, make_url_with_query_params as $9HbP8$make_url_with_query_params, insert_surfaces as $9HbP8$insert_surfaces, is_debug as $9HbP8$is_debug } from "@depict-ai/utilishared/latest";
2
2
  import { template as $9HbP8$template, getNextElement as $9HbP8$getNextElement, insert as $9HbP8$insert, createComponent as $9HbP8$createComponent, mergeProps as $9HbP8$mergeProps, effect as $9HbP8$effect, className as $9HbP8$className, isServer as $9HbP8$isServer, spread as $9HbP8$spread, runHydrationEvents as $9HbP8$runHydrationEvents, addEventListener as $9HbP8$addEventListener, memo as $9HbP8$memo, delegateEvents as $9HbP8$delegateEvents, getNextMarker as $9HbP8$getNextMarker, classList as $9HbP8$classList, setAttribute as $9HbP8$setAttribute, style as $9HbP8$style, use as $9HbP8$use, setProperty as $9HbP8$setProperty, Dynamic as $9HbP8$Dynamic } from "solid-js/web";
3
3
  import { createSignal as $9HbP8$createSignal, createMemo as $9HbP8$createMemo, createResource as $9HbP8$createResource, createEffect as $9HbP8$createEffect, Show as $9HbP8$Show, mergeProps as $9HbP8$mergeProps1, Suspense as $9HbP8$Suspense, untrack as $9HbP8$untrack, createRenderEffect as $9HbP8$createRenderEffect, Index as $9HbP8$Index, createRoot as $9HbP8$createRoot, onCleanup as $9HbP8$onCleanup, For as $9HbP8$For, getOwner as $9HbP8$getOwner, runWithOwner as $9HbP8$runWithOwner, createContext as $9HbP8$createContext, useContext as $9HbP8$useContext, createUniqueId as $9HbP8$createUniqueId, createComputed as $9HbP8$createComputed, ErrorBoundary as $9HbP8$ErrorBoundary, splitProps as $9HbP8$splitProps, on as $9HbP8$on, batch as $9HbP8$batch, createSelector as $9HbP8$createSelector, children as $9HbP8$children, createReaction as $9HbP8$createReaction, mapArray as $9HbP8$mapArray } from "solid-js";
4
4
  import { ListenableSet as $9HbP8$ListenableSet, catchify as $9HbP8$catchify1, use_href_accessor as $9HbP8$use_href_accessor1, report as $9HbP8$report1 } from "@depict-ai/utilishared/latest";
@@ -7,7 +7,7 @@ import { createStore as $9HbP8$createStore, reconcile as $9HbP8$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.10";
10
+ const $ec291e0010116877$export$83d89fbfd8236492 = "4.3.12";
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++) {
@@ -644,7 +644,8 @@ function $c4492d24952ed731$export$d41d19e89346fa2({
644
644
  recommendations_resource_: recommendations_resource_,
645
645
  product_card_template_: product_card_template_,
646
646
  layout_options_: layout_options_,
647
- title_: title_
647
+ title_: title_,
648
+ NoResultsFallback_: NoResultsFallback_
648
649
  }) {
649
650
  const is_showing_something = $9HbP8$createMemo(() => recommendations_resource_.loading || recommendations_resource_()?.length);
650
651
  const title = $9HbP8$createMemo(() => title_?.()); // In case getter/accessor creates elements, don't create them twice
@@ -702,6 +703,9 @@ function $c4492d24952ed731$export$d41d19e89346fa2({
702
703
  get when() {
703
704
  return is_showing_something();
704
705
  },
706
+ get fallback() {
707
+ return NoResultsFallback_?.();
708
+ },
705
709
  children: slider
706
710
  });
707
711
  }
@@ -1228,6 +1232,7 @@ function $5a6c386e1bde5665$export$b73ed90f0ee50dc3({
1228
1232
  const enableLink = $9HbP8$createMemo(() => userWantsExpanded() && !animationIsRunning());
1229
1233
  const href = $9HbP8$createMemo(() => variantToUse()?.page_url);
1230
1234
  const FavoriteButton = FavoriteButton_; // Just to get rid of the type error - TS doesn't understand <Show>
1235
+ const title = $9HbP8$createMemo(() => variantToUse()?.title);
1231
1236
  return (() => {
1232
1237
  var _el$ = $9HbP8$getNextElement($5a6c386e1bde5665$var$_tmpl$4),
1233
1238
  _el$12 = _el$.firstChild,
@@ -1337,7 +1342,10 @@ function $5a6c386e1bde5665$export$b73ed90f0ee50dc3({
1337
1342
  disconnector();
1338
1343
  }));
1339
1344
  }, _el$3);
1340
- $9HbP8$insert(_el$5, () => variantToUse()?.title ?? $9HbP8$createComponent((0, $d134eae24341b4a1$export$89c6019e4baa40b1), {
1345
+ $9HbP8$spread(_el$5, $9HbP8$mergeProps(() => title() && {
1346
+ title: title()
1347
+ }), false, true);
1348
+ $9HbP8$insert(_el$5, () => title() ?? $9HbP8$createComponent((0, $d134eae24341b4a1$export$89c6019e4baa40b1), {
1341
1349
  height: "1em",
1342
1350
  width: "20ch"
1343
1351
  }));
@@ -1415,6 +1423,7 @@ function $5a6c386e1bde5665$export$b73ed90f0ee50dc3({
1415
1423
  }
1416
1424
  }), _el$11, _co$2);
1417
1425
  $9HbP8$effect(() => _el$6.classList.toggle("sale", !!isOnSale()));
1426
+ $9HbP8$runHydrationEvents();
1418
1427
  return _el$3;
1419
1428
  }
1420
1429
  }), _el$15, _co$4);
@@ -1778,7 +1787,8 @@ function $3da8afe3ed57cf34$export$7da560f849543dff({
1778
1787
  layout_options_: layout_options_,
1779
1788
  title_: title_,
1780
1789
  max_rows_: max_rows_,
1781
- view_more_button_: view_more_button_
1790
+ view_more_button_: view_more_button_,
1791
+ NoResultsFallback_: NoResultsFallback_
1782
1792
  }) {
1783
1793
  const rows_object_ = $9HbP8$createMemo(() => {
1784
1794
  const view_more_button = view_more_button_?.();
@@ -1855,6 +1865,9 @@ function $3da8afe3ed57cf34$export$7da560f849543dff({
1855
1865
  get when() {
1856
1866
  return is_showing_something();
1857
1867
  },
1868
+ get fallback() {
1869
+ return NoResultsFallback_?.();
1870
+ },
1858
1871
  children: elements
1859
1872
  });
1860
1873
  }
@@ -1922,7 +1935,8 @@ function $07ef910e8ef6b783$export$2c9f9bf2092486aa(props) {
1922
1935
  layout_options_: $9HbP8$createMemo(() => ({
1923
1936
  cols_at_size: $b5cccc8ee7d24677$export$6daf8749b65a1b77(props.columnsAtSize_),
1924
1937
  ...grid_spacing_override()
1925
- }))
1938
+ })),
1939
+ NoResultsFallback_: () => props.NoResultsFallback_
1926
1940
  };
1927
1941
  $9HbP8$createEffect(() => {
1928
1942
  const {
@@ -7061,44 +7075,20 @@ function $0b6bc2f8309efa8a$export$e5c2828934226505({
7061
7075
  expanded_: expanded_,
7062
7076
  i18n_: i18n_
7063
7077
  }) {
7064
- let first_span;
7065
- let second_span;
7066
- const animation_options = {
7067
- fill: "forwards",
7068
- duration: 200
7069
- };
7070
- const outer_div = (() => {
7071
- var _el$ = $9HbP8$getNextElement($0b6bc2f8309efa8a$var$_tmpl$),
7072
- _el$2 = _el$.firstChild,
7073
- _el$3 = _el$2.nextSibling;
7074
- var _ref$ = first_span;
7075
- typeof _ref$ === "function" ? $9HbP8$use(_ref$, _el$2) : first_span = _el$2;
7076
- var _ref$2 = second_span;
7077
- typeof _ref$2 === "function" ? $9HbP8$use(_ref$2, _el$3) : second_span = _el$3;
7078
- $9HbP8$effect(() => $9HbP8$setAttribute(_el$, "aria-label", expanded_() ? i18n_.morphing_sign_expanded_aria_label_() : i18n_.morphing_sign_collapsed_aria_label_()));
7078
+ return (() => {
7079
+ var _el$ = $9HbP8$getNextElement($0b6bc2f8309efa8a$var$_tmpl$);
7080
+ $9HbP8$effect(_p$ => {
7081
+ var _v$ = !!expanded_(),
7082
+ _v$2 = expanded_() ? i18n_.morphing_sign_expanded_aria_label_() : i18n_.morphing_sign_collapsed_aria_label_();
7083
+ _v$ !== _p$.e && _el$.classList.toggle("expanded", _p$.e = _v$);
7084
+ _v$2 !== _p$.t && $9HbP8$setAttribute(_el$, "aria-label", _p$.t = _v$2);
7085
+ return _p$;
7086
+ }, {
7087
+ e: undefined,
7088
+ t: undefined
7089
+ });
7079
7090
  return _el$;
7080
7091
  })();
7081
- const [is_in_dom, set_is_in_dom] = $9HbP8$createSignal(false);
7082
- (0, $9HbP8$observer).wait_for_element(outer_div).then($9HbP8$catchify(() => set_is_in_dom(true)));
7083
- $9HbP8$createEffect(() => {
7084
- if (!is_in_dom())
7085
- // wait for us to being in DOM as animations don't work otherwise
7086
- return;
7087
- try {
7088
- const expanded = expanded_();
7089
- for (const span of [first_span, second_span]) span.animate([{
7090
- transform: `rotate(${expanded ? 90 : "0"}deg)`
7091
- }], animation_options);
7092
- const percentage_value = `${expanded ? 50 : 25}%`;
7093
- second_span.animate([{
7094
- left: percentage_value,
7095
- right: percentage_value
7096
- }], animation_options);
7097
- } catch (e) {
7098
- $9HbP8$dlog("partial keyframes probably not supported", e);
7099
- }
7100
- });
7101
- return outer_div;
7102
7092
  }
7103
7093
  var $522a690e0e2bd46d$var$_tmpl$ = /*#__PURE__*/$9HbP8$template(`<span class=highlighted-part>`);
7104
7094
  const $522a690e0e2bd46d$var$dont_cut_in_between_less_than_characters = 30;
@@ -12439,7 +12429,7 @@ function $b2bf2cdcff8142d8$export$f631859cab12b342({
12439
12429
  function $b26bdbd081f63e3f$export$9ff751cd77687edc({
12440
12430
  search_results_: search_results_,
12441
12431
  router_: router_,
12442
- queries_without_content_results_: queries_without_content_results_,
12432
+ setNumberContentResultsPerQuery_: setNumberContentResultsPerQuery_,
12443
12433
  get_search_query_: get_search_query_
12444
12434
  }) {
12445
12435
  const content_results = $9HbP8$createMemo(() => search_results_()?.content_search_links);
@@ -12455,7 +12445,11 @@ function $b26bdbd081f63e3f$export$9ff751cd77687edc({
12455
12445
  });
12456
12446
  $9HbP8$createEffect(() => {
12457
12447
  const results = content_results();
12458
- if (Array.isArray(results) && results.length === 0) queries_without_content_results_.add($9HbP8$untrack(get_search_query_));
12448
+ const numberResults = Array.isArray(results) ? results.length : 0;
12449
+ setNumberContentResultsPerQuery_(prev => {
12450
+ prev.set($9HbP8$untrack(get_search_query_), numberResults);
12451
+ return prev;
12452
+ });
12459
12453
  });
12460
12454
  return $9HbP8$createComponent((0, $9HbP8$For), {
12461
12455
  get each() {
@@ -12472,7 +12466,8 @@ function $b26bdbd081f63e3f$export$9ff751cd77687edc({
12472
12466
  }
12473
12467
  function $9d5b3ed1fc91c672$export$4405d077f0a20494({
12474
12468
  content_results_rows_: [get_history_state_content_results_rows],
12475
- cols_at_size_: cols_at_size_
12469
+ cols_at_size_: cols_at_size_,
12470
+ overrideAmount_: overrideAmount_
12476
12471
  }) {
12477
12472
  const colsShowingNow = $77348875ac090fcd$export$a79e666719b3647c(cols_at_size_);
12478
12473
  const largest_column = $9HbP8$createMemo(() => {
@@ -12480,9 +12475,12 @@ function $9d5b3ed1fc91c672$export$4405d077f0a20494({
12480
12475
  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
12481
12476
  return largest_in_cols_at_size;
12482
12477
  });
12483
- const num_placeholders = $9HbP8$createMemo(() =>
12484
- // 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
12485
- (get_history_state_content_results_rows() ?? (0, $49de9d31aeea1b5e$export$70ceae36059a1036)) * (colsShowingNow() || largest_column()));
12478
+ const num_placeholders = $9HbP8$createMemo(() => {
12479
+ const override = overrideAmount_();
12480
+ if (override !== undefined) return override;
12481
+ // 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
12482
+ return (get_history_state_content_results_rows() ?? (0, $49de9d31aeea1b5e$export$70ceae36059a1036)) * (colsShowingNow() || largest_column());
12483
+ });
12486
12484
  return $9HbP8$createComponent((0, $9HbP8$Index), {
12487
12485
  get each() {
12488
12486
  return Array.from({
@@ -12512,15 +12510,13 @@ function $49de9d31aeea1b5e$export$6d0c9c22f6652669({
12512
12510
  number_: num_results,
12513
12511
  i18n_: i18n_
12514
12512
  });
12515
- const queries_without_content_results_ = new (0, $9HbP8$ListenableSet1)();
12516
- const [check_query, set_check_query] = $9HbP8$createSignal(false);
12517
- const placeholders_enabled = $9HbP8$createMemo(() => {
12518
- // don't show placeholders when the user toggles filters
12519
- check_query();
12520
- return !queries_without_content_results_.has(get_search_query_());
12513
+ const [numberContentResultsPerQuery, setNumberContentResultsPerQuery_] = $9HbP8$createSignal(new Map(), {
12514
+ equals: false
12521
12515
  });
12516
+ const contentResultsForCurrentQuery = $9HbP8$createMemo(() => numberContentResultsPerQuery().get(get_search_query_()));
12517
+ // Don't show placeholder if we know there will not be any content results and someone is just toggling filters
12518
+ const placeholders_enabled = $9HbP8$createMemo(() => contentResultsForCurrentQuery() !== 0);
12522
12519
  const rows_object = $49de9d31aeea1b5e$var$make_state_saved_rows(content_results_rows_, i18n_);
12523
- for (const ev of ["add", "delete"]) queries_without_content_results_.addEventListener(ev, () => set_check_query(prev => !prev));
12524
12520
  return (() => {
12525
12521
  var _el$ = $9HbP8$getNextElement($49de9d31aeea1b5e$var$_tmpl$),
12526
12522
  _el$2 = _el$.firstChild,
@@ -12550,14 +12546,15 @@ function $49de9d31aeea1b5e$export$6d0c9c22f6652669({
12550
12546
  content_results_rows_: content_results_rows_,
12551
12547
  get cols_at_size_() {
12552
12548
  return $9HbP8$createMemo(() => layout_options_().cols_at_size);
12553
- }
12549
+ },
12550
+ overrideAmount_: contentResultsForCurrentQuery
12554
12551
  });
12555
12552
  },
12556
12553
  get children() {
12557
12554
  return $9HbP8$createComponent((0, $b26bdbd081f63e3f$export$9ff751cd77687edc), {
12558
12555
  router_: router_,
12559
12556
  search_results_: search_results_,
12560
- queries_without_content_results_: queries_without_content_results_,
12557
+ setNumberContentResultsPerQuery_: setNumberContentResultsPerQuery_,
12561
12558
  get_search_query_: get_search_query_
12562
12559
  });
12563
12560
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@depict-ai/ui",
3
- "version": "4.3.10",
3
+ "version": "4.3.12",
4
4
  "description": "Base package containing the actual UI of Depict UI along with translations, with a not-simplified API. We recommend using @depict-ai/js-ui or @depict-ai/react-ui instead.",
5
5
  "packageManager": "yarn@3.2.2",
6
6
  "sass": "styles.scss",
@@ -236,7 +236,7 @@
236
236
  "@babel/plugin-transform-typescript": "^7.22.9",
237
237
  "@babel/runtime": "latest",
238
238
  "@babel/runtime-corejs3": "^7.22.6",
239
- "@depict-ai/plp-styling": "^4.0.3",
239
+ "@depict-ai/plp-styling": "^4.0.4",
240
240
  "@depict-ai/types": "^5.1.2",
241
241
  "@depict-ai/utilishared": "^2.1.2",
242
242
  "solid-js": "^1.8.12"