@depict-ai/ui 3.0.18 → 3.0.20

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.
@@ -77,7 +77,7 @@ $parcel$export(module.exports, "defaultColsAtSize", () => $a3280f0aad997933$expo
77
77
  $parcel$export(module.exports, "defaultCategoryTitlePlugin", () => $a3280f0aad997933$export$7bf543b9d9be2c22);
78
78
  $parcel$export(module.exports, "version", () => $b757f75811f3261f$export$83d89fbfd8236492);
79
79
  /*! Depict.ai search and product listing SDK */
80
- const $b757f75811f3261f$export$83d89fbfd8236492 = "3.0.18";
80
+ const $b757f75811f3261f$export$83d89fbfd8236492 = "3.0.20";
81
81
  const $0f313083912e447a$var$_tmpl$ = ["<svg", ' xmlns="http://www.w3.org/2000/svg"', ' viewBox="0 0 14 26"><path d="M2 24.656c-.078 0-.156-.016-.234-.047s-.133-.066-.187-.129c-.117-.117-.176-.258-.176-.422s.059-.305.176-.422l10.371-10.371L1.578 2.883c-.117-.117-.176-.258-.176-.422s.059-.305.176-.422.258-.176.422-.176.305.059.422.176l10.805 10.793a.59.59 0 0 1 .176.434c0 .172-.059.305-.176.422L2.422 24.48a.42.42 0 0 1-.199.129.54.54 0 0 1-.223.047zm0 0" fill="#0f0f0f"></path></svg>'];
82
82
  function $0f313083912e447a$export$8be2714ec7f169ee(props = {}) {
83
83
  return $5vyXB$solidjsweb.ssr($0f313083912e447a$var$_tmpl$, $5vyXB$solidjsweb.ssrHydrationKey(), $5vyXB$solidjsweb.ssrAttribute("width", $5vyXB$solidjsweb.escape(props.width_, true) ?? 14, false) + $5vyXB$solidjsweb.ssrAttribute("height", $5vyXB$solidjsweb.escape(props.height_, true) ?? 26, false));
@@ -1882,7 +1882,8 @@ function $363ce4d1d71041aa$export$d41d19e89346fa2({
1882
1882
  disable_fading_: true,
1883
1883
  slider_ref_: slider => {
1884
1884
  const {
1885
- insert_here: insert_here
1885
+ insert_here: insert_here,
1886
+ container: container
1886
1887
  } = slider;
1887
1888
  const Layout = props => $f48d0fbb00835aaa$export$445d8d3f5f706a40(props, insert_here, true);
1888
1889
  // Do like this, so we don't have to call mergeProps ourselves
@@ -1892,6 +1893,7 @@ function $363ce4d1d71041aa$export$d41d19e89346fa2({
1892
1893
  }, layout_options_));
1893
1894
  $5vyXB$depictaiutilishared.slider_fractional_factory(0, 0.75).constructor_plugin.call(slider, {}); // enable fractional scrolling
1894
1895
  insert_here.before($fc23d7668ae0011d$export$a2cc176055f8f08());
1896
+ container.classList.add("products");
1895
1897
  },
1896
1898
  get children() {
1897
1899
  return $5vyXB$solidjsweb.createComponent((0, $5vyXB$solidjs.Suspense), {
@@ -4874,7 +4876,8 @@ function $401aee5f33dca9e2$export$83fd5de5504a7a67({
4874
4876
  of_: of_
4875
4877
  },
4876
4878
  get_scroll_position_ = () => scrollY,
4877
- listen_to_scroll_on_: listen_to_scroll_on_
4879
+ listen_to_scroll_on_: listen_to_scroll_on_,
4880
+ velocity_too_fast_ = 1.5
4878
4881
  }) {
4879
4882
  if (0, $5vyXB$solidjsweb.isServer) return; // won't show in initial render and need scroll position
4880
4883
  const [first_to_show, set_first_to_show] = $5vyXB$solidjs.createSignal(0);
@@ -4882,6 +4885,7 @@ function $401aee5f33dca9e2$export$83fd5de5504a7a67({
4882
4885
  const [count_to_show, set_count_to_show] = $5vyXB$solidjs.createSignal("");
4883
4886
  const [permitted_to_show, set_permitted_to_show] = $5vyXB$solidjs.createSignal(false); // due to scroll speed
4884
4887
  const [show_triggered, set_show_triggered] = $5vyXB$solidjs.createSignal(false); // signal to just switch between true/false to trigger a new animation which will persist the indicator
4888
+ const [times_too_fast, set_times_too_fast] = $5vyXB$solidjs.createSignal(0);
4885
4889
  const modified_price_formatting_ = $5vyXB$solidjs.createMemo(() => ({
4886
4890
  ...price_formatting_(),
4887
4891
  places_after_comma_: 0
@@ -4891,25 +4895,27 @@ function $401aee5f33dca9e2$export$83fd5de5504a7a67({
4891
4895
  let last_pos_time = +new Date();
4892
4896
  let last_pos = get_scroll_position_();
4893
4897
  let unpermit_when_possible = false;
4894
- let times_too_fast = 0;
4895
4898
  const handle_scrollpos_change = () => {
4896
4899
  if (animation) set_show_triggered(prev => !prev); // make sure that once we've decided to show the indicator it doesn't disappear before we stop scrolling
4897
4900
  const distance_travelled = Math.abs(get_scroll_position_() - last_pos);
4898
4901
  const now = +new Date();
4899
4902
  const age_of_distance = now - last_pos_time;
4900
4903
  const velocity = distance_travelled / age_of_distance; // pixels per millisecond
4901
- if (velocity > 1.5) {
4902
- times_too_fast++;
4903
- setTimeout(() => times_too_fast--, 1000);
4904
+ if (velocity > velocity_too_fast_) {
4905
+ set_times_too_fast(prev => prev + 1);
4906
+ setTimeout(() => set_times_too_fast(prev => prev - 1), 1000);
4904
4907
  }
4905
- if (times_too_fast > 10) {
4906
- set_permitted_to_show(true);
4907
- unpermit_when_possible = false;
4908
- } else if (animation) unpermit_when_possible = true;else set_permitted_to_show(false);
4909
4908
  last_pos_time = now;
4910
4909
  last_pos = get_scroll_position_();
4911
4910
  };
4912
4911
  $76b6ac05693f5c71$export$205efb947c7ffd78(handle_scrollpos_change, undefined, listen_to_scroll_on_);
4912
+ $5vyXB$solidjs.createComputed(() => {
4913
+ // We need to set this reactively to ensure that it's forbidden to show even when times_too_fast has tapered off after a few seconds, see https://github.com/depict-org/depict/pull/82
4914
+ if (times_too_fast() > 10) {
4915
+ set_permitted_to_show(true);
4916
+ unpermit_when_possible = false;
4917
+ } else if (animation) unpermit_when_possible = true;else set_permitted_to_show(false);
4918
+ });
4913
4919
  $5vyXB$solidjs.createEffect(() => {
4914
4920
  show_triggered();
4915
4921
  const first = get_first_result_in_viewport();
@@ -5685,6 +5691,7 @@ function $fe76fb463cc60b89$export$3925f87b1545cfc6({
5685
5691
  }
5686
5692
  }));
5687
5693
  insert_here.classList.add("generated-spacing");
5694
+ container.classList.add("products");
5688
5695
  $5vyXB$solidjs.createEffect(
5689
5696
  // @ts-ignore
5690
5697
  $5vyXB$solidjs.on(query_base_, () => insert_here.scrollTo({
@@ -5698,13 +5705,13 @@ function $fe76fb463cc60b89$export$3925f87b1545cfc6({
5698
5705
  // Put scroll status into slider container, so it's centered relatively to the products
5699
5706
  const rendered_scroll_status = ConfiguredScrollStatus({
5700
5707
  get_scroll_position_: () => insert_here.scrollLeft,
5701
- listen_to_scroll_on_: insert_here
5708
+ listen_to_scroll_on_: insert_here,
5709
+ velocity_too_fast_: 3 // Require twice as hard scrolling to show ScrollStatus in slider since it's easier to scroll fast there
5702
5710
  });
5703
- const {
5704
- childNodes: childNodes
5705
- } = container;
5711
+
5712
+ const non_solid_nodes = [...container.childNodes];
5706
5713
  // We have to use `insert` over Element.append, because ConfiguredScrollStatus is in an ErrorBoundary and therefore returns a function. `insert` will wipe all children, therefore save them first and then tell insert that the element should contain these elements + whatever ScrollStatus returns
5707
- $5vyXB$solidjsweb.insert(container, $5vyXB$solidjs.createMemo(() => [...childNodes, rendered_scroll_status]));
5714
+ $5vyXB$solidjsweb.insert(container, $5vyXB$solidjs.createMemo(() => [...non_solid_nodes, rendered_scroll_status]));
5708
5715
  }
5709
5716
  },
5710
5717
  children: listing_contents
@@ -6886,7 +6893,7 @@ function $6a8e766e914723d8$export$d31a1a1a83ad9413(plp_results_, [get_selected_f
6886
6893
  const $840d88a04b2d22a7$var$_tmpl$ = ["<div", ' class="product-count"><!--$-->', "<!--/--> <!--$-->", "<!--/--></div>"],
6887
6894
  $840d88a04b2d22a7$var$_tmpl$2 = ["<div", "></div>"],
6888
6895
  $840d88a04b2d22a7$var$_tmpl$3 = ["<div", ' class="filter-results-for-one-row"><!--$-->', "<!--/--><!--$-->", "<!--/--></div>"],
6889
- $840d88a04b2d22a7$var$_tmpl$4 = ["<div", ' class="depict plp category"><div class="listing-page"><!--$-->', "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--></div><!--$-->", "<!--/--><!--$-->", "<!--/--></div>"];
6896
+ $840d88a04b2d22a7$var$_tmpl$4 = ["<div", ' class="depict plp category"><div class="listing-page"><!--$-->', "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--></div><!--$-->", "<!--/--></div>"];
6890
6897
  function $840d88a04b2d22a7$export$f7d2f673fc2f091d({
6891
6898
  depict_api_: depict_api_,
6892
6899
  id_to_query_for_: id_to_query_for_,
@@ -7207,22 +7214,22 @@ function $840d88a04b2d22a7$export$f7d2f673fc2f091d({
7207
7214
  }
7208
7215
  })), $5vyXB$solidjsweb.escape($5vyXB$solidjsweb.createComponent((0, $5vyXB$solidjs.Show), {
7209
7216
  get when() {
7210
- return layout_options_().layout === "grid";
7217
+ return !layout_options_().layout?.startsWith("slider");
7211
7218
  },
7212
7219
  get children() {
7213
- return $5vyXB$solidjsweb.createComponent(ConfiguredScrollStatus, {});
7214
- }
7215
- })), $5vyXB$solidjsweb.escape($5vyXB$solidjsweb.createComponent((0, $edafe91daf3091d7$export$b69d0d92862de18b), {
7216
- severity_: "error",
7217
- message_: "Floating buttons failed",
7218
- get children() {
7219
- return $2fb324fbcc7b4a7b$export$b23abd26de154ede({
7220
- search_filters_open_: category_filters_open_,
7221
- search_sorting_open_: category_sorting_open_,
7222
- current_sorting_: current_sorting_,
7223
- sort_and_filter_element_: sort_and_filter_element_,
7224
- i18n_: i18n_
7225
- });
7220
+ return [$5vyXB$solidjsweb.createComponent(ConfiguredScrollStatus, {}), $5vyXB$solidjsweb.createComponent((0, $edafe91daf3091d7$export$b69d0d92862de18b), {
7221
+ severity_: "error",
7222
+ message_: "Floating buttons failed",
7223
+ get children() {
7224
+ return $2fb324fbcc7b4a7b$export$b23abd26de154ede({
7225
+ search_filters_open_: category_filters_open_,
7226
+ search_sorting_open_: category_sorting_open_,
7227
+ current_sorting_: current_sorting_,
7228
+ sort_and_filter_element_: sort_and_filter_element_,
7229
+ i18n_: i18n_
7230
+ });
7231
+ }
7232
+ })];
7226
7233
  }
7227
7234
  })))];
7228
7235
  }
@@ -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 _SearchFilter2 } from "@depict-ai/types/api/SearchRequestV2";
13
- export const version = "3.0.18";
13
+ export const version = "3.0.20";
14
14
  export type SDKColsAtSize = [number, number?][];
15
15
  /**
16
16
  * Transform SDK ColsAtSize into valid Layout ColsAtSize
@@ -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 = "3.0.18";
10
+ const $ec291e0010116877$export$83d89fbfd8236492 = "3.0.20";
11
11
  const $fbbadcb080ad1d4a$var$_tmpl$ = ["<svg", ' xmlns="http://www.w3.org/2000/svg"', ' viewBox="0 0 14 26"><path d="M2 24.656c-.078 0-.156-.016-.234-.047s-.133-.066-.187-.129c-.117-.117-.176-.258-.176-.422s.059-.305.176-.422l10.371-10.371L1.578 2.883c-.117-.117-.176-.258-.176-.422s.059-.305.176-.422.258-.176.422-.176.305.059.422.176l10.805 10.793a.59.59 0 0 1 .176.434c0 .172-.059.305-.176.422L2.422 24.48a.42.42 0 0 1-.199.129.54.54 0 0 1-.223.047zm0 0" fill="#0f0f0f"></path></svg>'];
12
12
  function $fbbadcb080ad1d4a$export$8be2714ec7f169ee(props = {}) {
13
13
  return $i7OB2$ssr($fbbadcb080ad1d4a$var$_tmpl$, $i7OB2$ssrHydrationKey(), $i7OB2$ssrAttribute("width", $i7OB2$escape(props.width_, true) ?? 14, false) + $i7OB2$ssrAttribute("height", $i7OB2$escape(props.height_, true) ?? 26, false));
@@ -1812,7 +1812,8 @@ function $c4492d24952ed731$export$d41d19e89346fa2({
1812
1812
  disable_fading_: true,
1813
1813
  slider_ref_: slider => {
1814
1814
  const {
1815
- insert_here: insert_here
1815
+ insert_here: insert_here,
1816
+ container: container
1816
1817
  } = slider;
1817
1818
  const Layout = props => $c8d5ff4524619fcd$export$445d8d3f5f706a40(props, insert_here, true);
1818
1819
  // Do like this, so we don't have to call mergeProps ourselves
@@ -1822,6 +1823,7 @@ function $c4492d24952ed731$export$d41d19e89346fa2({
1822
1823
  }, layout_options_));
1823
1824
  $i7OB2$slider_fractional_factory(0, 0.75).constructor_plugin.call(slider, {}); // enable fractional scrolling
1824
1825
  insert_here.before($a458486f22b22f63$export$a2cc176055f8f08());
1826
+ container.classList.add("products");
1825
1827
  },
1826
1828
  get children() {
1827
1829
  return $i7OB2$createComponent((0, $i7OB2$Suspense), {
@@ -4804,7 +4806,8 @@ function $6db49ca163afa2c3$export$83fd5de5504a7a67({
4804
4806
  of_: of_
4805
4807
  },
4806
4808
  get_scroll_position_ = () => scrollY,
4807
- listen_to_scroll_on_: listen_to_scroll_on_
4809
+ listen_to_scroll_on_: listen_to_scroll_on_,
4810
+ velocity_too_fast_ = 1.5
4808
4811
  }) {
4809
4812
  if (0, $i7OB2$isServer) return; // won't show in initial render and need scroll position
4810
4813
  const [first_to_show, set_first_to_show] = $i7OB2$createSignal(0);
@@ -4812,6 +4815,7 @@ function $6db49ca163afa2c3$export$83fd5de5504a7a67({
4812
4815
  const [count_to_show, set_count_to_show] = $i7OB2$createSignal("");
4813
4816
  const [permitted_to_show, set_permitted_to_show] = $i7OB2$createSignal(false); // due to scroll speed
4814
4817
  const [show_triggered, set_show_triggered] = $i7OB2$createSignal(false); // signal to just switch between true/false to trigger a new animation which will persist the indicator
4818
+ const [times_too_fast, set_times_too_fast] = $i7OB2$createSignal(0);
4815
4819
  const modified_price_formatting_ = $i7OB2$createMemo(() => ({
4816
4820
  ...price_formatting_(),
4817
4821
  places_after_comma_: 0
@@ -4821,25 +4825,27 @@ function $6db49ca163afa2c3$export$83fd5de5504a7a67({
4821
4825
  let last_pos_time = +new Date();
4822
4826
  let last_pos = get_scroll_position_();
4823
4827
  let unpermit_when_possible = false;
4824
- let times_too_fast = 0;
4825
4828
  const handle_scrollpos_change = () => {
4826
4829
  if (animation) set_show_triggered(prev => !prev); // make sure that once we've decided to show the indicator it doesn't disappear before we stop scrolling
4827
4830
  const distance_travelled = Math.abs(get_scroll_position_() - last_pos);
4828
4831
  const now = +new Date();
4829
4832
  const age_of_distance = now - last_pos_time;
4830
4833
  const velocity = distance_travelled / age_of_distance; // pixels per millisecond
4831
- if (velocity > 1.5) {
4832
- times_too_fast++;
4833
- setTimeout(() => times_too_fast--, 1000);
4834
+ if (velocity > velocity_too_fast_) {
4835
+ set_times_too_fast(prev => prev + 1);
4836
+ setTimeout(() => set_times_too_fast(prev => prev - 1), 1000);
4834
4837
  }
4835
- if (times_too_fast > 10) {
4836
- set_permitted_to_show(true);
4837
- unpermit_when_possible = false;
4838
- } else if (animation) unpermit_when_possible = true;else set_permitted_to_show(false);
4839
4838
  last_pos_time = now;
4840
4839
  last_pos = get_scroll_position_();
4841
4840
  };
4842
4841
  $8f9120a1ca151e6a$export$205efb947c7ffd78(handle_scrollpos_change, undefined, listen_to_scroll_on_);
4842
+ $i7OB2$createComputed(() => {
4843
+ // We need to set this reactively to ensure that it's forbidden to show even when times_too_fast has tapered off after a few seconds, see https://github.com/depict-org/depict/pull/82
4844
+ if (times_too_fast() > 10) {
4845
+ set_permitted_to_show(true);
4846
+ unpermit_when_possible = false;
4847
+ } else if (animation) unpermit_when_possible = true;else set_permitted_to_show(false);
4848
+ });
4843
4849
  $i7OB2$createEffect(() => {
4844
4850
  show_triggered();
4845
4851
  const first = get_first_result_in_viewport();
@@ -5615,6 +5621,7 @@ function $2d25e42846eac370$export$3925f87b1545cfc6({
5615
5621
  }
5616
5622
  }));
5617
5623
  insert_here.classList.add("generated-spacing");
5624
+ container.classList.add("products");
5618
5625
  $i7OB2$createEffect(
5619
5626
  // @ts-ignore
5620
5627
  $i7OB2$on(query_base_, () => insert_here.scrollTo({
@@ -5628,13 +5635,13 @@ function $2d25e42846eac370$export$3925f87b1545cfc6({
5628
5635
  // Put scroll status into slider container, so it's centered relatively to the products
5629
5636
  const rendered_scroll_status = ConfiguredScrollStatus({
5630
5637
  get_scroll_position_: () => insert_here.scrollLeft,
5631
- listen_to_scroll_on_: insert_here
5638
+ listen_to_scroll_on_: insert_here,
5639
+ velocity_too_fast_: 3 // Require twice as hard scrolling to show ScrollStatus in slider since it's easier to scroll fast there
5632
5640
  });
5633
- const {
5634
- childNodes: childNodes
5635
- } = container;
5641
+
5642
+ const non_solid_nodes = [...container.childNodes];
5636
5643
  // We have to use `insert` over Element.append, because ConfiguredScrollStatus is in an ErrorBoundary and therefore returns a function. `insert` will wipe all children, therefore save them first and then tell insert that the element should contain these elements + whatever ScrollStatus returns
5637
- $i7OB2$insert(container, $i7OB2$createMemo(() => [...childNodes, rendered_scroll_status]));
5644
+ $i7OB2$insert(container, $i7OB2$createMemo(() => [...non_solid_nodes, rendered_scroll_status]));
5638
5645
  }
5639
5646
  },
5640
5647
  children: listing_contents
@@ -6816,7 +6823,7 @@ function $2ab89d64b7f1d5ef$export$d31a1a1a83ad9413(plp_results_, [get_selected_f
6816
6823
  const $df5d81d0fe61ff21$var$_tmpl$ = ["<div", ' class="product-count"><!--$-->', "<!--/--> <!--$-->", "<!--/--></div>"],
6817
6824
  $df5d81d0fe61ff21$var$_tmpl$2 = ["<div", "></div>"],
6818
6825
  $df5d81d0fe61ff21$var$_tmpl$3 = ["<div", ' class="filter-results-for-one-row"><!--$-->', "<!--/--><!--$-->", "<!--/--></div>"],
6819
- $df5d81d0fe61ff21$var$_tmpl$4 = ["<div", ' class="depict plp category"><div class="listing-page"><!--$-->', "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--></div><!--$-->", "<!--/--><!--$-->", "<!--/--></div>"];
6826
+ $df5d81d0fe61ff21$var$_tmpl$4 = ["<div", ' class="depict plp category"><div class="listing-page"><!--$-->', "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--><!--$-->", "<!--/--></div><!--$-->", "<!--/--></div>"];
6820
6827
  function $df5d81d0fe61ff21$export$f7d2f673fc2f091d({
6821
6828
  depict_api_: depict_api_,
6822
6829
  id_to_query_for_: id_to_query_for_,
@@ -7137,22 +7144,22 @@ function $df5d81d0fe61ff21$export$f7d2f673fc2f091d({
7137
7144
  }
7138
7145
  })), $i7OB2$escape($i7OB2$createComponent((0, $i7OB2$Show), {
7139
7146
  get when() {
7140
- return layout_options_().layout === "grid";
7147
+ return !layout_options_().layout?.startsWith("slider");
7141
7148
  },
7142
7149
  get children() {
7143
- return $i7OB2$createComponent(ConfiguredScrollStatus, {});
7144
- }
7145
- })), $i7OB2$escape($i7OB2$createComponent((0, $b7436a6d1fd64e3b$export$b69d0d92862de18b), {
7146
- severity_: "error",
7147
- message_: "Floating buttons failed",
7148
- get children() {
7149
- return $0b0380f75d729d63$export$b23abd26de154ede({
7150
- search_filters_open_: category_filters_open_,
7151
- search_sorting_open_: category_sorting_open_,
7152
- current_sorting_: current_sorting_,
7153
- sort_and_filter_element_: sort_and_filter_element_,
7154
- i18n_: i18n_
7155
- });
7150
+ return [$i7OB2$createComponent(ConfiguredScrollStatus, {}), $i7OB2$createComponent((0, $b7436a6d1fd64e3b$export$b69d0d92862de18b), {
7151
+ severity_: "error",
7152
+ message_: "Floating buttons failed",
7153
+ get children() {
7154
+ return $0b0380f75d729d63$export$b23abd26de154ede({
7155
+ search_filters_open_: category_filters_open_,
7156
+ search_sorting_open_: category_sorting_open_,
7157
+ current_sorting_: current_sorting_,
7158
+ sort_and_filter_element_: sort_and_filter_element_,
7159
+ i18n_: i18n_
7160
+ });
7161
+ }
7162
+ })];
7156
7163
  }
7157
7164
  })))];
7158
7165
  }