@depict-ai/ui 2.1.22 → 2.1.24

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/ES10/index.cjs CHANGED
@@ -78,25 +78,25 @@ $parcel$export(module.exports, "defaultColsAtSize", () => $33eed84f447aa0c0$expo
78
78
  $parcel$export(module.exports, "defaultCategoryTitlePlugin", () => $33eed84f447aa0c0$export$7bf543b9d9be2c22);
79
79
  $parcel$export(module.exports, "version", () => $aa1938dec50d6c12$export$83d89fbfd8236492);
80
80
  /*! Depict.ai search and product listing SDK */
81
- const $aa1938dec50d6c12$export$83d89fbfd8236492 = "2.1.22";
81
+ const $aa1938dec50d6c12$export$83d89fbfd8236492 = "2.1.24";
82
82
  const $a68b73fd7ba0853f$var$fallback_operator = "in";
83
83
  const $a68b73fd7ba0853f$var$fallback_token = "";
84
84
  const $a68b73fd7ba0853f$var$legacy_filter_prefix = "filter_";
85
85
  const $a68b73fd7ba0853f$var$operator_map = {
86
- "eq": "≡",
87
- "neq": "≠",
88
- "in": "∈",
89
- "nin": "∉",
90
- "leq": "≤",
91
- "geq": "≥",
86
+ "eq": "\u2261",
87
+ "neq": "\u2260",
88
+ "in": "\u2208",
89
+ "nin": "\u2209",
90
+ "leq": "\u2264",
91
+ "geq": "\u2265",
92
92
  "inrange": "\uD83D\uDD22"
93
93
  };
94
94
  const $a68b73fd7ba0853f$var$ascending_token = "\uD83D\uDCC8";
95
95
  const $a68b73fd7ba0853f$var$descending_token = "\uD83D\uDCC9";
96
96
  const $a68b73fd7ba0853f$var$range_delimiter = "-";
97
- const $a68b73fd7ba0853f$var$string_item_delimiter = "‚"; // This is not a comma but a comma-like character that browsers will render in the URL bar.
98
- const $a68b73fd7ba0853f$var$array_item_delimiter = "‣"; // FIXME: decide on a character. Could theoretically be a double string delimiter.
99
- const $a68b73fd7ba0853f$var$empty_item_replacement = "0️⃣";
97
+ const $a68b73fd7ba0853f$var$string_item_delimiter = "\u201A"; // This is not a comma but a comma-like character that browsers will render in the URL bar.
98
+ const $a68b73fd7ba0853f$var$array_item_delimiter = "\u2023"; // FIXME: decide on a character. Could theoretically be a double string delimiter.
99
+ const $a68b73fd7ba0853f$var$empty_item_replacement = "0\uFE0F\u20E3";
100
100
  const $a68b73fd7ba0853f$var$op_to_token = op => {
101
101
  if (op === $a68b73fd7ba0853f$var$fallback_operator) return $a68b73fd7ba0853f$var$fallback_token;
102
102
  return $a68b73fd7ba0853f$var$operator_map[op];
@@ -478,6 +478,9 @@ function $28535bb7671c63d1$export$e4b984597b71e989(props) {
478
478
  },
479
479
  get src() {
480
480
  return props.src;
481
+ },
482
+ get alt() {
483
+ return props.alt;
481
484
  }
482
485
  }));
483
486
  return container;
@@ -1656,7 +1659,7 @@ function $e2d74bb03cc5252e$export$325f75597868c4f0(stuff) {
1656
1659
  }
1657
1660
  const $c5842bdb10e57229$var$_tmpl$ = /*#__PURE__*/$52FdA$solidjsweb.template(`<button class="clear-all-filters minor">`),
1658
1661
  $c5842bdb10e57229$var$_tmpl$2 = /*#__PURE__*/$52FdA$solidjsweb.template(`<div class=inner><span class=title><!$><!/>: </span><!$><!/>`),
1659
- $c5842bdb10e57229$var$_tmpl$3 = /*#__PURE__*/$52FdA$solidjsweb.template(`<button class="clear-filter major"><!$><!/><span><!$><!/><!$><!/><!$><!/> – <!$><!/><!$><!/><!$><!/>`),
1662
+ $c5842bdb10e57229$var$_tmpl$3 = /*#__PURE__*/$52FdA$solidjsweb.template(`<button class="clear-filter major"><!$><!/><span><!$><!/><!$><!/><!$><!/> \u{2013} <!$><!/><!$><!/><!$><!/>`),
1660
1663
  $c5842bdb10e57229$var$_tmpl$4 = /*#__PURE__*/$52FdA$solidjsweb.template(`<button class="clear-filter major"><!$><!/><span>`);
1661
1664
  function $c5842bdb10e57229$export$fecbb157621501bd(_ref) {
1662
1665
  let {
@@ -2895,7 +2898,7 @@ function $99472afa7112c427$var$cut_text(segmented_text) {
2895
2898
  // identical split point, or split end before split start, can't do anything
2896
2899
  split_start_segment == split_end_segment && split_start_character >= split_end_character || split_start_segment > split_end_segment) return;
2897
2900
  const dots_segment = {
2898
- text_: " … ",
2901
+ text_: " \u2026 ",
2899
2902
  highlighted_: false
2900
2903
  };
2901
2904
  const split_and_dotted_values = segmented_text.flatMap((segment, i) => {
@@ -2989,7 +2992,7 @@ function $99472afa7112c427$var$cut_start(cut_left_of_index, segmented_text) {
2989
2992
  if (character === "," || is_space)
2990
2993
  // if we cut at a comma or psace, we add a … at the beginning
2991
2994
  segmented_text.unshift({
2992
- text_: "… ",
2995
+ text_: "\u2026 ",
2993
2996
  highlighted_: false
2994
2997
  });
2995
2998
  break outmost_loop;
@@ -4085,7 +4088,7 @@ function $958981128e559776$export$53c59af873b303c9(_ref) {
4085
4088
  get price_formatting_() {
4086
4089
  return price_formatting_();
4087
4090
  }
4088
- }), $52FdA$solidjsweb.memo(() => price_formatting_().post_), " – ", $52FdA$solidjsweb.memo(() => price_formatting_().pre_), $52FdA$solidjsweb.createComponent((0, $f38f2e64ebe2da86$export$a71e92cfbb498adc), {
4091
+ }), $52FdA$solidjsweb.memo(() => price_formatting_().post_), " \u2013 ", $52FdA$solidjsweb.memo(() => price_formatting_().pre_), $52FdA$solidjsweb.createComponent((0, $f38f2e64ebe2da86$export$a71e92cfbb498adc), {
4089
4092
  get price_() {
4090
4093
  return selected_filter.data[1];
4091
4094
  },
@@ -5139,7 +5142,7 @@ class $e270e9f953fcbc58$export$e015ed2f2950f2e3 {
5139
5142
  try {
5140
5143
  return await $e270e9f953fcbc58$var$_classPrivateMethodGet(this, $e270e9f953fcbc58$var$_run_url_creator_for_suggest, $e270e9f953fcbc58$var$_run_url_creator_for_suggest2).call(this, input_req.tenant, input_req.market, decoded_json);
5141
5144
  } catch (e) {
5142
- $52FdA$depictaiutilishared.dwarn("URL creator failed", e);
5145
+ $52FdA$depictaiutilishared.dwarn("displayTransformer failed", e);
5143
5146
  }
5144
5147
  }
5145
5148
  return {
@@ -5190,7 +5193,7 @@ function $e270e9f953fcbc58$var$_get_cache_obj_for_endpoint2(endpoint) {
5190
5193
  }
5191
5194
  function $e270e9f953fcbc58$var$_guard_url_creator_length2(expected, received) {
5192
5195
  if (expected.length !== received.length) {
5193
- const e = new Error("Page URL creator returned wrong number of page URLs, got " + received.length + ", expected " + expected.length);
5196
+ const e = new Error("displayTransformer returned wrong number of page URLs, got " + received.length + ", expected " + expected.length);
5194
5197
  queueMicrotask(() => {
5195
5198
  throw e;
5196
5199
  });
@@ -5311,7 +5314,7 @@ async function $e270e9f953fcbc58$var$_cached_post_request2(endpoint, input_req,
5311
5314
  const unmodified_result = await api_response.json();
5312
5315
  result = await $e270e9f953fcbc58$var$_classPrivateMethodGet(this, $e270e9f953fcbc58$var$_run_display_transformers_for_rest, $e270e9f953fcbc58$var$_run_display_transformers_for_rest2).call(this, input_req.tenant, input_req.market, unmodified_result);
5313
5316
  } catch (e) {
5314
- $52FdA$depictaiutilishared.dwarn("URL creator or json decoding failed", e);
5317
+ $52FdA$depictaiutilishared.dwarn("displayTransformer or json decoding failed", e);
5315
5318
  break return_successfully;
5316
5319
  }
5317
5320
  // Here result actually becomes O
@@ -5444,7 +5447,7 @@ function $1689794f03ba2554$export$205efb947c7ffd78(handler) {
5444
5447
  $52FdA$solidjs.onCleanup(() => removeEventListener(event, catchified_handler));
5445
5448
  }
5446
5449
  }
5447
- const $e03dec587b6e91e3$var$_tmpl$ = /*#__PURE__*/$52FdA$solidjsweb.template(`<div class=scroll-status style=display:none><span class=text><b></b> – <b></b> <!$><!/> <b>`);
5450
+ const $e03dec587b6e91e3$var$_tmpl$ = /*#__PURE__*/$52FdA$solidjsweb.template(`<div class=scroll-status style=display:none><span class=text><b></b> \u{2013} <b></b> <!$><!/> <b>`);
5448
5451
  function $e03dec587b6e91e3$export$83fd5de5504a7a67(_ref) {
5449
5452
  let {
5450
5453
  formatted_number_of_results_: formatted_number_of_results_,
@@ -9054,7 +9057,7 @@ function $9cbefc32b9dab36d$var$get_shared_properties(depict_category) {
9054
9057
  if (!shared_properties) throw new Error("Can't connect to provided DepictCategory instance");
9055
9058
  return shared_properties;
9056
9059
  }
9057
- const $dc0bcefcc3486ebd$var$_tmpl$ = /*#__PURE__*/$52FdA$solidjsweb.template(`<div class=category-title><h1 class=title></h1><span class=explanation> — <!$><!/>`);
9060
+ const $dc0bcefcc3486ebd$var$_tmpl$ = /*#__PURE__*/$52FdA$solidjsweb.template(`<div class=category-title><h1 class=title></h1><span class=explanation> \u{2014} <!$><!/>`);
9058
9061
  const $dc0bcefcc3486ebd$export$b91cec6bdc6b32a1 = /*@__PURE__*/(() => {
9059
9062
  const actual_function = _ref => {
9060
9063
  let {
@@ -9463,10 +9466,17 @@ function $c77adcdf5346b187$export$7de92c4c2205ebf3(_ref) {
9463
9466
  var _recommendations_reso;
9464
9467
  return !!((recommendations_resource.loading || (_recommendations_reso = recommendations_resource()) !== null && _recommendations_reso !== void 0 && _recommendations_reso.length) && all_products_loaded_());
9465
9468
  });
9466
- const num_placeholders_ = $52FdA$solidjs.createMemo(() => (0, $da887c42f8e8847a$export$6c9030e511152266) + get_showing_recommendation_rows() * Math.max(...layout_options_().cols_at_size.map(_ref2 => {
9467
- let [per_column] = _ref2;
9468
- return per_column;
9469
- })));
9469
+ const num_placeholders_ = $52FdA$solidjs.createMemo(() => {
9470
+ const possible_num_columns = layout_options_().cols_at_size.map(_ref2 => {
9471
+ let [per_column] = _ref2;
9472
+ return per_column;
9473
+ });
9474
+ if (!possible_num_columns.length)
9475
+ // Empty cols_at_size, for example artilleriet has that
9476
+ // Assume there will be 4 columns
9477
+ possible_num_columns.push(4);
9478
+ return (0, $da887c42f8e8847a$export$6c9030e511152266) + get_showing_recommendation_rows() * Math.max(...possible_num_columns);
9479
+ });
9470
9480
  // Don't tear down elements every time one updates the page - don't put them within <Show>
9471
9481
  const elements = (() => {
9472
9482
  const _el$ = $52FdA$solidjsweb.getNextElement($c77adcdf5346b187$var$_tmpl$),
package/ES10/index.d.ts CHANGED
@@ -7,7 +7,7 @@ import { LegacyCategorySuggestion, SearchSuggestionsResponse } from "@depict-ai/
7
7
  import { BaseSearchRequestV2 } from "@depict-ai/types/api/BaseSearchRequestV2";
8
8
  import { SearchSuggestionsRequestV2 } from "@depict-ai/types/api/SearchSuggestionsRequestV2";
9
9
  import { ProductListingRequestV2 } from "@depict-ai/types/api/ProductListingRequestV2";
10
- export const version = "2.1.22";
10
+ export const version = "2.1.24";
11
11
  /**
12
12
  * Use `javascript_media_query` but return a reactive accessor instead of taking a callback function
13
13
  */
@@ -183,11 +183,13 @@ export const shopifyContainedImageContextSymbol: unique symbol;
183
183
  * @property src image source
184
184
  * @property aspectRatio aspect ratio of the image
185
185
  * @property class extra class to add to the container
186
+ * @property alt alt text for the image
186
187
  */
187
188
  export function ShopifyContainedImage(props: {
188
189
  src: string;
189
190
  aspectRatio: number;
190
191
  class?: string;
192
+ alt?: string;
191
193
  }): HTMLDivElement;
192
194
  /** @jsxImportSource solid-js */
193
195
  export function GenericSliderArrowButton(props?: {
package/ES10/index.js CHANGED
@@ -9,25 +9,25 @@ import { createStore as $8tj43$createStore, reconcile as $8tj43$reconcile } from
9
9
  /*! Depict.ai search and product listing SDK */
10
10
  import { register_es_version } from "../multi_import_deduplicator.mjs";
11
11
  register_es_version("ui", "ES10");
12
- const $8db9a15135765c11$export$83d89fbfd8236492 = "2.1.22";
12
+ const $8db9a15135765c11$export$83d89fbfd8236492 = "2.1.24";
13
13
  const $2855bffe06ef7a03$var$fallback_operator = "in";
14
14
  const $2855bffe06ef7a03$var$fallback_token = "";
15
15
  const $2855bffe06ef7a03$var$legacy_filter_prefix = "filter_";
16
16
  const $2855bffe06ef7a03$var$operator_map = {
17
- "eq": "≡",
18
- "neq": "≠",
19
- "in": "∈",
20
- "nin": "∉",
21
- "leq": "≤",
22
- "geq": "≥",
17
+ "eq": "\u2261",
18
+ "neq": "\u2260",
19
+ "in": "\u2208",
20
+ "nin": "\u2209",
21
+ "leq": "\u2264",
22
+ "geq": "\u2265",
23
23
  "inrange": "\uD83D\uDD22"
24
24
  };
25
25
  const $2855bffe06ef7a03$var$ascending_token = "\uD83D\uDCC8";
26
26
  const $2855bffe06ef7a03$var$descending_token = "\uD83D\uDCC9";
27
27
  const $2855bffe06ef7a03$var$range_delimiter = "-";
28
- const $2855bffe06ef7a03$var$string_item_delimiter = "‚"; // This is not a comma but a comma-like character that browsers will render in the URL bar.
29
- const $2855bffe06ef7a03$var$array_item_delimiter = "‣"; // FIXME: decide on a character. Could theoretically be a double string delimiter.
30
- const $2855bffe06ef7a03$var$empty_item_replacement = "0️⃣";
28
+ const $2855bffe06ef7a03$var$string_item_delimiter = "\u201A"; // This is not a comma but a comma-like character that browsers will render in the URL bar.
29
+ const $2855bffe06ef7a03$var$array_item_delimiter = "\u2023"; // FIXME: decide on a character. Could theoretically be a double string delimiter.
30
+ const $2855bffe06ef7a03$var$empty_item_replacement = "0\uFE0F\u20E3";
31
31
  const $2855bffe06ef7a03$var$op_to_token = op => {
32
32
  if (op === $2855bffe06ef7a03$var$fallback_operator) return $2855bffe06ef7a03$var$fallback_token;
33
33
  return $2855bffe06ef7a03$var$operator_map[op];
@@ -409,6 +409,9 @@ function $4df489344a0f97c7$export$e4b984597b71e989(props) {
409
409
  },
410
410
  get src() {
411
411
  return props.src;
412
+ },
413
+ get alt() {
414
+ return props.alt;
412
415
  }
413
416
  }));
414
417
  return container;
@@ -1587,7 +1590,7 @@ function $af5d8e0b7d97a7f6$export$325f75597868c4f0(stuff) {
1587
1590
  }
1588
1591
  const $4711a82d08d2021b$var$_tmpl$ = /*#__PURE__*/$8tj43$template(`<button class="clear-all-filters minor">`),
1589
1592
  $4711a82d08d2021b$var$_tmpl$2 = /*#__PURE__*/$8tj43$template(`<div class=inner><span class=title><!$><!/>: </span><!$><!/>`),
1590
- $4711a82d08d2021b$var$_tmpl$3 = /*#__PURE__*/$8tj43$template(`<button class="clear-filter major"><!$><!/><span><!$><!/><!$><!/><!$><!/> – <!$><!/><!$><!/><!$><!/>`),
1593
+ $4711a82d08d2021b$var$_tmpl$3 = /*#__PURE__*/$8tj43$template(`<button class="clear-filter major"><!$><!/><span><!$><!/><!$><!/><!$><!/> \u{2013} <!$><!/><!$><!/><!$><!/>`),
1591
1594
  $4711a82d08d2021b$var$_tmpl$4 = /*#__PURE__*/$8tj43$template(`<button class="clear-filter major"><!$><!/><span>`);
1592
1595
  function $4711a82d08d2021b$export$fecbb157621501bd(_ref) {
1593
1596
  let {
@@ -2826,7 +2829,7 @@ function $f3a159279dc1a8fb$var$cut_text(segmented_text) {
2826
2829
  // identical split point, or split end before split start, can't do anything
2827
2830
  split_start_segment == split_end_segment && split_start_character >= split_end_character || split_start_segment > split_end_segment) return;
2828
2831
  const dots_segment = {
2829
- text_: " … ",
2832
+ text_: " \u2026 ",
2830
2833
  highlighted_: false
2831
2834
  };
2832
2835
  const split_and_dotted_values = segmented_text.flatMap((segment, i) => {
@@ -2920,7 +2923,7 @@ function $f3a159279dc1a8fb$var$cut_start(cut_left_of_index, segmented_text) {
2920
2923
  if (character === "," || is_space)
2921
2924
  // if we cut at a comma or psace, we add a … at the beginning
2922
2925
  segmented_text.unshift({
2923
- text_: "… ",
2926
+ text_: "\u2026 ",
2924
2927
  highlighted_: false
2925
2928
  });
2926
2929
  break outmost_loop;
@@ -4016,7 +4019,7 @@ function $d0ff304c14f50521$export$53c59af873b303c9(_ref) {
4016
4019
  get price_formatting_() {
4017
4020
  return price_formatting_();
4018
4021
  }
4019
- }), $8tj43$memo(() => price_formatting_().post_), " – ", $8tj43$memo(() => price_formatting_().pre_), $8tj43$createComponent((0, $60ec7a29849d81db$export$a71e92cfbb498adc), {
4022
+ }), $8tj43$memo(() => price_formatting_().post_), " \u2013 ", $8tj43$memo(() => price_formatting_().pre_), $8tj43$createComponent((0, $60ec7a29849d81db$export$a71e92cfbb498adc), {
4020
4023
  get price_() {
4021
4024
  return selected_filter.data[1];
4022
4025
  },
@@ -5070,7 +5073,7 @@ class $284849364a6ef73a$export$e015ed2f2950f2e3 {
5070
5073
  try {
5071
5074
  return await $284849364a6ef73a$var$_classPrivateMethodGet(this, $284849364a6ef73a$var$_run_url_creator_for_suggest, $284849364a6ef73a$var$_run_url_creator_for_suggest2).call(this, input_req.tenant, input_req.market, decoded_json);
5072
5075
  } catch (e) {
5073
- $8tj43$dwarn("URL creator failed", e);
5076
+ $8tj43$dwarn("displayTransformer failed", e);
5074
5077
  }
5075
5078
  }
5076
5079
  return {
@@ -5121,7 +5124,7 @@ function $284849364a6ef73a$var$_get_cache_obj_for_endpoint2(endpoint) {
5121
5124
  }
5122
5125
  function $284849364a6ef73a$var$_guard_url_creator_length2(expected, received) {
5123
5126
  if (expected.length !== received.length) {
5124
- const e = new Error("Page URL creator returned wrong number of page URLs, got " + received.length + ", expected " + expected.length);
5127
+ const e = new Error("displayTransformer returned wrong number of page URLs, got " + received.length + ", expected " + expected.length);
5125
5128
  queueMicrotask(() => {
5126
5129
  throw e;
5127
5130
  });
@@ -5242,7 +5245,7 @@ async function $284849364a6ef73a$var$_cached_post_request2(endpoint, input_req,
5242
5245
  const unmodified_result = await api_response.json();
5243
5246
  result = await $284849364a6ef73a$var$_classPrivateMethodGet(this, $284849364a6ef73a$var$_run_display_transformers_for_rest, $284849364a6ef73a$var$_run_display_transformers_for_rest2).call(this, input_req.tenant, input_req.market, unmodified_result);
5244
5247
  } catch (e) {
5245
- $8tj43$dwarn("URL creator or json decoding failed", e);
5248
+ $8tj43$dwarn("displayTransformer or json decoding failed", e);
5246
5249
  break return_successfully;
5247
5250
  }
5248
5251
  // Here result actually becomes O
@@ -5375,7 +5378,7 @@ function $33e7d1906c93db7d$export$205efb947c7ffd78(handler) {
5375
5378
  $8tj43$onCleanup(() => removeEventListener(event, catchified_handler));
5376
5379
  }
5377
5380
  }
5378
- const $b69740fc6de9f17e$var$_tmpl$ = /*#__PURE__*/$8tj43$template(`<div class=scroll-status style=display:none><span class=text><b></b> – <b></b> <!$><!/> <b>`);
5381
+ const $b69740fc6de9f17e$var$_tmpl$ = /*#__PURE__*/$8tj43$template(`<div class=scroll-status style=display:none><span class=text><b></b> \u{2013} <b></b> <!$><!/> <b>`);
5379
5382
  function $b69740fc6de9f17e$export$83fd5de5504a7a67(_ref) {
5380
5383
  let {
5381
5384
  formatted_number_of_results_: formatted_number_of_results_,
@@ -8985,7 +8988,7 @@ function $f5f54892fd0c7d9f$var$get_shared_properties(depict_category) {
8985
8988
  if (!shared_properties) throw new Error("Can't connect to provided DepictCategory instance");
8986
8989
  return shared_properties;
8987
8990
  }
8988
- const $fa332ea03168857c$var$_tmpl$ = /*#__PURE__*/$8tj43$template(`<div class=category-title><h1 class=title></h1><span class=explanation> — <!$><!/>`);
8991
+ const $fa332ea03168857c$var$_tmpl$ = /*#__PURE__*/$8tj43$template(`<div class=category-title><h1 class=title></h1><span class=explanation> \u{2014} <!$><!/>`);
8989
8992
  const $fa332ea03168857c$export$b91cec6bdc6b32a1 = /*@__PURE__*/(() => {
8990
8993
  const actual_function = _ref => {
8991
8994
  let {
@@ -9394,10 +9397,17 @@ function $8ef6232475d44150$export$7de92c4c2205ebf3(_ref) {
9394
9397
  var _recommendations_reso;
9395
9398
  return !!((recommendations_resource.loading || (_recommendations_reso = recommendations_resource()) !== null && _recommendations_reso !== void 0 && _recommendations_reso.length) && all_products_loaded_());
9396
9399
  });
9397
- const num_placeholders_ = $8tj43$createMemo(() => (0, $981356a8bf29ad72$export$6c9030e511152266) + get_showing_recommendation_rows() * Math.max(...layout_options_().cols_at_size.map(_ref2 => {
9398
- let [per_column] = _ref2;
9399
- return per_column;
9400
- })));
9400
+ const num_placeholders_ = $8tj43$createMemo(() => {
9401
+ const possible_num_columns = layout_options_().cols_at_size.map(_ref2 => {
9402
+ let [per_column] = _ref2;
9403
+ return per_column;
9404
+ });
9405
+ if (!possible_num_columns.length)
9406
+ // Empty cols_at_size, for example artilleriet has that
9407
+ // Assume there will be 4 columns
9408
+ possible_num_columns.push(4);
9409
+ return (0, $981356a8bf29ad72$export$6c9030e511152266) + get_showing_recommendation_rows() * Math.max(...possible_num_columns);
9410
+ });
9401
9411
  // Don't tear down elements every time one updates the page - don't put them within <Show>
9402
9412
  const elements = (() => {
9403
9413
  const _el$ = $8tj43$getNextElement($8ef6232475d44150$var$_tmpl$),
package/latest/index.cjs CHANGED
@@ -72,25 +72,25 @@ $parcel$export(module.exports, "defaultColsAtSize", () => $a3280f0aad997933$expo
72
72
  $parcel$export(module.exports, "defaultCategoryTitlePlugin", () => $a3280f0aad997933$export$7bf543b9d9be2c22);
73
73
  $parcel$export(module.exports, "version", () => $b757f75811f3261f$export$83d89fbfd8236492);
74
74
  /*! Depict.ai search and product listing SDK */
75
- const $b757f75811f3261f$export$83d89fbfd8236492 = "2.1.22";
75
+ const $b757f75811f3261f$export$83d89fbfd8236492 = "2.1.24";
76
76
  const $1ab22f2cd39b3061$var$fallback_operator = "in";
77
77
  const $1ab22f2cd39b3061$var$fallback_token = "";
78
78
  const $1ab22f2cd39b3061$var$legacy_filter_prefix = "filter_";
79
79
  const $1ab22f2cd39b3061$var$operator_map = {
80
- "eq": "≡",
81
- "neq": "≠",
82
- "in": "∈",
83
- "nin": "∉",
84
- "leq": "≤",
85
- "geq": "≥",
80
+ "eq": "\u2261",
81
+ "neq": "\u2260",
82
+ "in": "\u2208",
83
+ "nin": "\u2209",
84
+ "leq": "\u2264",
85
+ "geq": "\u2265",
86
86
  "inrange": "\uD83D\uDD22"
87
87
  };
88
88
  const $1ab22f2cd39b3061$var$ascending_token = "\uD83D\uDCC8";
89
89
  const $1ab22f2cd39b3061$var$descending_token = "\uD83D\uDCC9";
90
90
  const $1ab22f2cd39b3061$var$range_delimiter = "-";
91
- const $1ab22f2cd39b3061$var$string_item_delimiter = "‚"; // This is not a comma but a comma-like character that browsers will render in the URL bar.
92
- const $1ab22f2cd39b3061$var$array_item_delimiter = "‣"; // FIXME: decide on a character. Could theoretically be a double string delimiter.
93
- const $1ab22f2cd39b3061$var$empty_item_replacement = "0️⃣";
91
+ const $1ab22f2cd39b3061$var$string_item_delimiter = "\u201A"; // This is not a comma but a comma-like character that browsers will render in the URL bar.
92
+ const $1ab22f2cd39b3061$var$array_item_delimiter = "\u2023"; // FIXME: decide on a character. Could theoretically be a double string delimiter.
93
+ const $1ab22f2cd39b3061$var$empty_item_replacement = "0\uFE0F\u20E3";
94
94
  const $1ab22f2cd39b3061$var$op_to_token = op => {
95
95
  if (op === $1ab22f2cd39b3061$var$fallback_operator) return $1ab22f2cd39b3061$var$fallback_token;
96
96
  return $1ab22f2cd39b3061$var$operator_map[op];
@@ -461,6 +461,9 @@ function $a33065cfed827fc0$export$e4b984597b71e989(props) {
461
461
  },
462
462
  get src() {
463
463
  return props.src;
464
+ },
465
+ get alt() {
466
+ return props.alt;
464
467
  }
465
468
  }));
466
469
  return container;
@@ -1579,7 +1582,7 @@ function $daa394359b026187$export$325f75597868c4f0(stuff) {
1579
1582
  }
1580
1583
  const $235a2771a44e28e9$var$_tmpl$ = /*#__PURE__*/$gVhhF$solidjsweb.template(`<button class="clear-all-filters minor">`),
1581
1584
  $235a2771a44e28e9$var$_tmpl$2 = /*#__PURE__*/$gVhhF$solidjsweb.template(`<div class=inner><span class=title><!$><!/>: </span><!$><!/>`),
1582
- $235a2771a44e28e9$var$_tmpl$3 = /*#__PURE__*/$gVhhF$solidjsweb.template(`<button class="clear-filter major"><!$><!/><span><!$><!/><!$><!/><!$><!/> – <!$><!/><!$><!/><!$><!/>`),
1585
+ $235a2771a44e28e9$var$_tmpl$3 = /*#__PURE__*/$gVhhF$solidjsweb.template(`<button class="clear-filter major"><!$><!/><span><!$><!/><!$><!/><!$><!/> \u{2013} <!$><!/><!$><!/><!$><!/>`),
1583
1586
  $235a2771a44e28e9$var$_tmpl$4 = /*#__PURE__*/$gVhhF$solidjsweb.template(`<button class="clear-filter major"><!$><!/><span>`);
1584
1587
  function $235a2771a44e28e9$export$fecbb157621501bd({
1585
1588
  number_of_rendered_selected_filters_items_: number_of_rendered_selected_filters_items_,
@@ -2752,7 +2755,7 @@ function $5ea5a82e398f6f44$var$cut_text(segmented_text) {
2752
2755
  // identical split point, or split end before split start, can't do anything
2753
2756
  split_start_segment == split_end_segment && split_start_character >= split_end_character || split_start_segment > split_end_segment) return;
2754
2757
  const dots_segment = {
2755
- text_: " … ",
2758
+ text_: " \u2026 ",
2756
2759
  highlighted_: false
2757
2760
  };
2758
2761
  const split_and_dotted_values = segmented_text.flatMap((segment, i) => {
@@ -2844,7 +2847,7 @@ function $5ea5a82e398f6f44$var$cut_start(cut_left_of_index, segmented_text) {
2844
2847
  if (character === "," || is_space)
2845
2848
  // if we cut at a comma or psace, we add a … at the beginning
2846
2849
  segmented_text.unshift({
2847
- text_: "… ",
2850
+ text_: "\u2026 ",
2848
2851
  highlighted_: false
2849
2852
  });
2850
2853
  break outmost_loop;
@@ -3858,7 +3861,7 @@ function $b064919833b3e80b$export$53c59af873b303c9({
3858
3861
  get price_formatting_() {
3859
3862
  return price_formatting_();
3860
3863
  }
3861
- }), $gVhhF$solidjsweb.memo(() => price_formatting_().post_), " – ", $gVhhF$solidjsweb.memo(() => price_formatting_().pre_), $gVhhF$solidjsweb.createComponent((0, $d659702496cb72ea$export$a71e92cfbb498adc), {
3864
+ }), $gVhhF$solidjsweb.memo(() => price_formatting_().post_), " \u2013 ", $gVhhF$solidjsweb.memo(() => price_formatting_().pre_), $gVhhF$solidjsweb.createComponent((0, $d659702496cb72ea$export$a71e92cfbb498adc), {
3862
3865
  get price_() {
3863
3866
  return selected_filter.data[1];
3864
3867
  },
@@ -4773,7 +4776,7 @@ class $e1d6c0f3d89d531c$export$e015ed2f2950f2e3 {
4773
4776
  #get_session_id;
4774
4777
  #guard_url_creator_length(expected, received) {
4775
4778
  if (expected.length !== received.length) {
4776
- const e = new Error("Page URL creator returned wrong number of page URLs, got " + received.length + ", expected " + expected.length);
4779
+ const e = new Error("displayTransformer returned wrong number of page URLs, got " + received.length + ", expected " + expected.length);
4777
4780
  queueMicrotask(() => {
4778
4781
  throw e;
4779
4782
  });
@@ -4892,7 +4895,7 @@ class $e1d6c0f3d89d531c$export$e015ed2f2950f2e3 {
4892
4895
  const unmodified_result = await api_response.json();
4893
4896
  result = await this.#run_display_transformers_for_rest(input_req.tenant, input_req.market, unmodified_result);
4894
4897
  } catch (e) {
4895
- $gVhhF$depictaiutilishared.dwarn("URL creator or json decoding failed", e);
4898
+ $gVhhF$depictaiutilishared.dwarn("displayTransformer or json decoding failed", e);
4896
4899
  break return_successfully;
4897
4900
  }
4898
4901
  // Here result actually becomes O
@@ -4946,7 +4949,7 @@ class $e1d6c0f3d89d531c$export$e015ed2f2950f2e3 {
4946
4949
  try {
4947
4950
  return await this.#run_url_creator_for_suggest(input_req.tenant, input_req.market, decoded_json);
4948
4951
  } catch (e) {
4949
- $gVhhF$depictaiutilishared.dwarn("URL creator failed", e);
4952
+ $gVhhF$depictaiutilishared.dwarn("displayTransformer failed", e);
4950
4953
  }
4951
4954
  }
4952
4955
  return {
@@ -5079,7 +5082,7 @@ function $76b6ac05693f5c71$export$205efb947c7ffd78(handler, passive = true) {
5079
5082
  $gVhhF$solidjs.onCleanup(() => removeEventListener(event, catchified_handler));
5080
5083
  }
5081
5084
  }
5082
- const $401aee5f33dca9e2$var$_tmpl$ = /*#__PURE__*/$gVhhF$solidjsweb.template(`<div class=scroll-status style=display:none><span class=text><b></b> – <b></b> <!$><!/> <b>`);
5085
+ const $401aee5f33dca9e2$var$_tmpl$ = /*#__PURE__*/$gVhhF$solidjsweb.template(`<div class=scroll-status style=display:none><span class=text><b></b> \u{2013} <b></b> <!$><!/> <b>`);
5083
5086
  function $401aee5f33dca9e2$export$83fd5de5504a7a67({
5084
5087
  formatted_number_of_results_: formatted_number_of_results_,
5085
5088
  first_result_in_viewport_: [get_first_result_in_viewport],
@@ -8405,7 +8408,7 @@ function $48567ac5b39bac56$var$get_shared_properties(depict_category) {
8405
8408
  if (!shared_properties) throw new Error("Can't connect to provided DepictCategory instance");
8406
8409
  return shared_properties;
8407
8410
  }
8408
- const $0b23bfd073d9a4e8$var$_tmpl$ = /*#__PURE__*/$gVhhF$solidjsweb.template(`<div class=category-title><h1 class=title></h1><span class=explanation> — <!$><!/>`);
8411
+ const $0b23bfd073d9a4e8$var$_tmpl$ = /*#__PURE__*/$gVhhF$solidjsweb.template(`<div class=category-title><h1 class=title></h1><span class=explanation> \u{2014} <!$><!/>`);
8409
8412
  const $0b23bfd073d9a4e8$export$b91cec6bdc6b32a1 = /*@__PURE__*/(() => {
8410
8413
  const actual_function = ({
8411
8414
  category_title_: category_title_,
@@ -8802,7 +8805,14 @@ function $fb29c6201c369e39$export$7de92c4c2205ebf3({
8802
8805
  // only fetch/refetch if all products are loaded
8803
8806
  query => query && depict_api_.get_recommended(query).then(r => r.displays));
8804
8807
  const should_show = $gVhhF$solidjs.createMemo(() => !!((recommendations_resource.loading || recommendations_resource()?.length) && all_products_loaded_()));
8805
- const num_placeholders_ = $gVhhF$solidjs.createMemo(() => (0, $aec24316ed262dc0$export$6c9030e511152266) + get_showing_recommendation_rows() * Math.max(...layout_options_().cols_at_size.map(([per_column]) => per_column)));
8808
+ const num_placeholders_ = $gVhhF$solidjs.createMemo(() => {
8809
+ const possible_num_columns = layout_options_().cols_at_size.map(([per_column]) => per_column);
8810
+ if (!possible_num_columns.length)
8811
+ // Empty cols_at_size, for example artilleriet has that
8812
+ // Assume there will be 4 columns
8813
+ possible_num_columns.push(4);
8814
+ return (0, $aec24316ed262dc0$export$6c9030e511152266) + get_showing_recommendation_rows() * Math.max(...possible_num_columns);
8815
+ });
8806
8816
  // Don't tear down elements every time one updates the page - don't put them within <Show>
8807
8817
  const elements = (() => {
8808
8818
  const _el$ = $gVhhF$solidjsweb.getNextElement($fb29c6201c369e39$var$_tmpl$),
package/latest/index.d.ts CHANGED
@@ -7,7 +7,7 @@ import { LegacyCategorySuggestion, SearchSuggestionsResponse } from "@depict-ai/
7
7
  import { BaseSearchRequestV2 } from "@depict-ai/types/api/BaseSearchRequestV2";
8
8
  import { SearchSuggestionsRequestV2 } from "@depict-ai/types/api/SearchSuggestionsRequestV2";
9
9
  import { ProductListingRequestV2 } from "@depict-ai/types/api/ProductListingRequestV2";
10
- export const version = "2.1.22";
10
+ export const version = "2.1.24";
11
11
  /**
12
12
  * Use `javascript_media_query` but return a reactive accessor instead of taking a callback function
13
13
  */
@@ -183,11 +183,13 @@ export const shopifyContainedImageContextSymbol: unique symbol;
183
183
  * @property src image source
184
184
  * @property aspectRatio aspect ratio of the image
185
185
  * @property class extra class to add to the container
186
+ * @property alt alt text for the image
186
187
  */
187
188
  export function ShopifyContainedImage(props: {
188
189
  src: string;
189
190
  aspectRatio: number;
190
191
  class?: string;
192
+ alt?: string;
191
193
  }): HTMLDivElement;
192
194
  /** @jsxImportSource solid-js */
193
195
  export function GenericSliderArrowButton(props?: {
package/latest/index.js CHANGED
@@ -6,25 +6,25 @@ import { createStore as $9HbP8$createStore, reconcile as $9HbP8$reconcile } from
6
6
  /*! Depict.ai search and product listing SDK */
7
7
  import { register_es_version } from "../multi_import_deduplicator.mjs";
8
8
  register_es_version("ui", "latest");
9
- const $ec291e0010116877$export$83d89fbfd8236492 = "2.1.22";
9
+ const $ec291e0010116877$export$83d89fbfd8236492 = "2.1.24";
10
10
  const $4147651646da990a$var$fallback_operator = "in";
11
11
  const $4147651646da990a$var$fallback_token = "";
12
12
  const $4147651646da990a$var$legacy_filter_prefix = "filter_";
13
13
  const $4147651646da990a$var$operator_map = {
14
- "eq": "≡",
15
- "neq": "≠",
16
- "in": "∈",
17
- "nin": "∉",
18
- "leq": "≤",
19
- "geq": "≥",
14
+ "eq": "\u2261",
15
+ "neq": "\u2260",
16
+ "in": "\u2208",
17
+ "nin": "\u2209",
18
+ "leq": "\u2264",
19
+ "geq": "\u2265",
20
20
  "inrange": "\uD83D\uDD22"
21
21
  };
22
22
  const $4147651646da990a$var$ascending_token = "\uD83D\uDCC8";
23
23
  const $4147651646da990a$var$descending_token = "\uD83D\uDCC9";
24
24
  const $4147651646da990a$var$range_delimiter = "-";
25
- const $4147651646da990a$var$string_item_delimiter = "‚"; // This is not a comma but a comma-like character that browsers will render in the URL bar.
26
- const $4147651646da990a$var$array_item_delimiter = "‣"; // FIXME: decide on a character. Could theoretically be a double string delimiter.
27
- const $4147651646da990a$var$empty_item_replacement = "0️⃣";
25
+ const $4147651646da990a$var$string_item_delimiter = "\u201A"; // This is not a comma but a comma-like character that browsers will render in the URL bar.
26
+ const $4147651646da990a$var$array_item_delimiter = "\u2023"; // FIXME: decide on a character. Could theoretically be a double string delimiter.
27
+ const $4147651646da990a$var$empty_item_replacement = "0\uFE0F\u20E3";
28
28
  const $4147651646da990a$var$op_to_token = op => {
29
29
  if (op === $4147651646da990a$var$fallback_operator) return $4147651646da990a$var$fallback_token;
30
30
  return $4147651646da990a$var$operator_map[op];
@@ -395,6 +395,9 @@ function $660070e2a394b3c3$export$e4b984597b71e989(props) {
395
395
  },
396
396
  get src() {
397
397
  return props.src;
398
+ },
399
+ get alt() {
400
+ return props.alt;
398
401
  }
399
402
  }));
400
403
  return container;
@@ -1513,7 +1516,7 @@ function $91aa8ee9f431800d$export$325f75597868c4f0(stuff) {
1513
1516
  }
1514
1517
  const $1adfe60f3a14a1d7$var$_tmpl$ = /*#__PURE__*/$9HbP8$template(`<button class="clear-all-filters minor">`),
1515
1518
  $1adfe60f3a14a1d7$var$_tmpl$2 = /*#__PURE__*/$9HbP8$template(`<div class=inner><span class=title><!$><!/>: </span><!$><!/>`),
1516
- $1adfe60f3a14a1d7$var$_tmpl$3 = /*#__PURE__*/$9HbP8$template(`<button class="clear-filter major"><!$><!/><span><!$><!/><!$><!/><!$><!/> – <!$><!/><!$><!/><!$><!/>`),
1519
+ $1adfe60f3a14a1d7$var$_tmpl$3 = /*#__PURE__*/$9HbP8$template(`<button class="clear-filter major"><!$><!/><span><!$><!/><!$><!/><!$><!/> \u{2013} <!$><!/><!$><!/><!$><!/>`),
1517
1520
  $1adfe60f3a14a1d7$var$_tmpl$4 = /*#__PURE__*/$9HbP8$template(`<button class="clear-filter major"><!$><!/><span>`);
1518
1521
  function $1adfe60f3a14a1d7$export$fecbb157621501bd({
1519
1522
  number_of_rendered_selected_filters_items_: number_of_rendered_selected_filters_items_,
@@ -2686,7 +2689,7 @@ function $522a690e0e2bd46d$var$cut_text(segmented_text) {
2686
2689
  // identical split point, or split end before split start, can't do anything
2687
2690
  split_start_segment == split_end_segment && split_start_character >= split_end_character || split_start_segment > split_end_segment) return;
2688
2691
  const dots_segment = {
2689
- text_: " … ",
2692
+ text_: " \u2026 ",
2690
2693
  highlighted_: false
2691
2694
  };
2692
2695
  const split_and_dotted_values = segmented_text.flatMap((segment, i) => {
@@ -2778,7 +2781,7 @@ function $522a690e0e2bd46d$var$cut_start(cut_left_of_index, segmented_text) {
2778
2781
  if (character === "," || is_space)
2779
2782
  // if we cut at a comma or psace, we add a … at the beginning
2780
2783
  segmented_text.unshift({
2781
- text_: "… ",
2784
+ text_: "\u2026 ",
2782
2785
  highlighted_: false
2783
2786
  });
2784
2787
  break outmost_loop;
@@ -3792,7 +3795,7 @@ function $a7b58cb3bcffd156$export$53c59af873b303c9({
3792
3795
  get price_formatting_() {
3793
3796
  return price_formatting_();
3794
3797
  }
3795
- }), $9HbP8$memo(() => price_formatting_().post_), " – ", $9HbP8$memo(() => price_formatting_().pre_), $9HbP8$createComponent((0, $8c0f86cb3e266eeb$export$a71e92cfbb498adc), {
3798
+ }), $9HbP8$memo(() => price_formatting_().post_), " \u2013 ", $9HbP8$memo(() => price_formatting_().pre_), $9HbP8$createComponent((0, $8c0f86cb3e266eeb$export$a71e92cfbb498adc), {
3796
3799
  get price_() {
3797
3800
  return selected_filter.data[1];
3798
3801
  },
@@ -4707,7 +4710,7 @@ class $7fa23e2a0079eca4$export$e015ed2f2950f2e3 {
4707
4710
  #get_session_id;
4708
4711
  #guard_url_creator_length(expected, received) {
4709
4712
  if (expected.length !== received.length) {
4710
- const e = new Error("Page URL creator returned wrong number of page URLs, got " + received.length + ", expected " + expected.length);
4713
+ const e = new Error("displayTransformer returned wrong number of page URLs, got " + received.length + ", expected " + expected.length);
4711
4714
  queueMicrotask(() => {
4712
4715
  throw e;
4713
4716
  });
@@ -4826,7 +4829,7 @@ class $7fa23e2a0079eca4$export$e015ed2f2950f2e3 {
4826
4829
  const unmodified_result = await api_response.json();
4827
4830
  result = await this.#run_display_transformers_for_rest(input_req.tenant, input_req.market, unmodified_result);
4828
4831
  } catch (e) {
4829
- $9HbP8$dwarn("URL creator or json decoding failed", e);
4832
+ $9HbP8$dwarn("displayTransformer or json decoding failed", e);
4830
4833
  break return_successfully;
4831
4834
  }
4832
4835
  // Here result actually becomes O
@@ -4880,7 +4883,7 @@ class $7fa23e2a0079eca4$export$e015ed2f2950f2e3 {
4880
4883
  try {
4881
4884
  return await this.#run_url_creator_for_suggest(input_req.tenant, input_req.market, decoded_json);
4882
4885
  } catch (e) {
4883
- $9HbP8$dwarn("URL creator failed", e);
4886
+ $9HbP8$dwarn("displayTransformer failed", e);
4884
4887
  }
4885
4888
  }
4886
4889
  return {
@@ -5013,7 +5016,7 @@ function $8f9120a1ca151e6a$export$205efb947c7ffd78(handler, passive = true) {
5013
5016
  $9HbP8$onCleanup(() => removeEventListener(event, catchified_handler));
5014
5017
  }
5015
5018
  }
5016
- const $6db49ca163afa2c3$var$_tmpl$ = /*#__PURE__*/$9HbP8$template(`<div class=scroll-status style=display:none><span class=text><b></b> – <b></b> <!$><!/> <b>`);
5019
+ const $6db49ca163afa2c3$var$_tmpl$ = /*#__PURE__*/$9HbP8$template(`<div class=scroll-status style=display:none><span class=text><b></b> \u{2013} <b></b> <!$><!/> <b>`);
5017
5020
  function $6db49ca163afa2c3$export$83fd5de5504a7a67({
5018
5021
  formatted_number_of_results_: formatted_number_of_results_,
5019
5022
  first_result_in_viewport_: [get_first_result_in_viewport],
@@ -8339,7 +8342,7 @@ function $961b5c64bef4662f$var$get_shared_properties(depict_category) {
8339
8342
  if (!shared_properties) throw new Error("Can't connect to provided DepictCategory instance");
8340
8343
  return shared_properties;
8341
8344
  }
8342
- const $e4615ecd1849548f$var$_tmpl$ = /*#__PURE__*/$9HbP8$template(`<div class=category-title><h1 class=title></h1><span class=explanation> — <!$><!/>`);
8345
+ const $e4615ecd1849548f$var$_tmpl$ = /*#__PURE__*/$9HbP8$template(`<div class=category-title><h1 class=title></h1><span class=explanation> \u{2014} <!$><!/>`);
8343
8346
  const $e4615ecd1849548f$export$b91cec6bdc6b32a1 = /*@__PURE__*/(() => {
8344
8347
  const actual_function = ({
8345
8348
  category_title_: category_title_,
@@ -8736,7 +8739,14 @@ function $172e1b898d457050$export$7de92c4c2205ebf3({
8736
8739
  // only fetch/refetch if all products are loaded
8737
8740
  query => query && depict_api_.get_recommended(query).then(r => r.displays));
8738
8741
  const should_show = $9HbP8$createMemo(() => !!((recommendations_resource.loading || recommendations_resource()?.length) && all_products_loaded_()));
8739
- const num_placeholders_ = $9HbP8$createMemo(() => (0, $7747fe1a8c5652e3$export$6c9030e511152266) + get_showing_recommendation_rows() * Math.max(...layout_options_().cols_at_size.map(([per_column]) => per_column)));
8742
+ const num_placeholders_ = $9HbP8$createMemo(() => {
8743
+ const possible_num_columns = layout_options_().cols_at_size.map(([per_column]) => per_column);
8744
+ if (!possible_num_columns.length)
8745
+ // Empty cols_at_size, for example artilleriet has that
8746
+ // Assume there will be 4 columns
8747
+ possible_num_columns.push(4);
8748
+ return (0, $7747fe1a8c5652e3$export$6c9030e511152266) + get_showing_recommendation_rows() * Math.max(...possible_num_columns);
8749
+ });
8740
8750
  // Don't tear down elements every time one updates the page - don't put them within <Show>
8741
8751
  const elements = (() => {
8742
8752
  const _el$ = $9HbP8$getNextElement($172e1b898d457050$var$_tmpl$),