@depict-ai/ui 2.1.16 → 2.1.18

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
@@ -76,7 +76,7 @@ $parcel$export(module.exports, "defaultColsAtSize", () => $33eed84f447aa0c0$expo
76
76
  $parcel$export(module.exports, "defaultCategoryTitlePlugin", () => $33eed84f447aa0c0$export$7bf543b9d9be2c22);
77
77
  $parcel$export(module.exports, "version", () => $aa1938dec50d6c12$export$83d89fbfd8236492);
78
78
  /*! Depict.ai search and product listing SDK */
79
- const $aa1938dec50d6c12$export$83d89fbfd8236492 = "2.1.16";
79
+ const $aa1938dec50d6c12$export$83d89fbfd8236492 = "2.1.18";
80
80
  const $a68b73fd7ba0853f$var$fallback_operator = "in";
81
81
  const $a68b73fd7ba0853f$var$fallback_token = "";
82
82
  const $a68b73fd7ba0853f$var$legacy_filter_prefix = "filter_";
@@ -1041,20 +1041,32 @@ function $6c2c739b113a8ddf$export$445d8d3f5f706a40(props, container_element) {
1041
1041
  return [container_element, $52FdA$solidjsweb.memo(view_more_button_container), $52FdA$solidjsweb.memo(view_less_button_container), style_element];
1042
1042
  }
1043
1043
  $52FdA$solidjsweb.delegateEvents(["click"]);
1044
+ const $236a257ee52e5414$var$_tmpl$ = /*#__PURE__*/$52FdA$solidjsweb.template(`<h2 class=recs-title>`);
1044
1045
  function $236a257ee52e5414$export$d41d19e89346fa2(_ref) {
1045
1046
  let {
1046
1047
  recommendations_resource_: recommendations_resource_,
1047
1048
  product_card_template_: product_card_template_,
1048
1049
  layout_options_: layout_options_,
1049
1050
  merchant_: merchant_,
1050
- market_: market_
1051
+ market_: market_,
1052
+ title_: title_
1051
1053
  } = _ref;
1052
1054
  const is_showing_something = $52FdA$solidjs.createMemo(() => {
1053
1055
  var _recommendations_reso;
1054
1056
  return recommendations_resource_.loading || ((_recommendations_reso = recommendations_resource_()) === null || _recommendations_reso === void 0 ? void 0 : _recommendations_reso.length);
1055
1057
  });
1058
+ const title = $52FdA$solidjs.createMemo(() => title_ === null || title_ === void 0 ? void 0 : title_()); // In case getter/accessor creates elements, don't create them twice
1056
1059
  const num_placeholders_ = () => 20;
1057
- const slider = $52FdA$solidjsweb.createComponent((0, $ad8ec7729fffeb9c$export$6649caad96ef8870), {
1060
+ const slider = [$52FdA$solidjsweb.createComponent((0, $52FdA$solidjs.Show), {
1061
+ get when() {
1062
+ return title();
1063
+ },
1064
+ get children() {
1065
+ const _el$ = $52FdA$solidjsweb.getNextElement($236a257ee52e5414$var$_tmpl$);
1066
+ $52FdA$solidjsweb.insert(_el$, title);
1067
+ return _el$;
1068
+ }
1069
+ }), $52FdA$solidjsweb.createComponent((0, $ad8ec7729fffeb9c$export$6649caad96ef8870), {
1058
1070
  arrow_height_: 25,
1059
1071
  arrow_width_: 12.5,
1060
1072
  disable_fading_: true,
@@ -1093,7 +1105,7 @@ function $236a257ee52e5414$export$d41d19e89346fa2(_ref) {
1093
1105
  }
1094
1106
  });
1095
1107
  }
1096
- });
1108
+ })];
1097
1109
  return $52FdA$solidjsweb.createComponent((0, $52FdA$solidjs.Show), {
1098
1110
  get when() {
1099
1111
  return is_showing_something();
@@ -1164,6 +1176,7 @@ function $2badc30d7c6610e1$export$9574e176201e5e8d(props) {
1164
1176
  recommendations_resource_: recommendations_resource_,
1165
1177
  market_: () => props.market,
1166
1178
  merchant_: () => props.merchant,
1179
+ title_: () => props.title,
1167
1180
  layout_options_: $52FdA$solidjs.createMemo(() => ({
1168
1181
  cols_at_size: $5401a6698b0c0658$export$6daf8749b65a1b77(props.cols_at_size),
1169
1182
  ...grid_spacing_override()
@@ -1175,7 +1188,8 @@ function $2badc30d7c6610e1$export$9574e176201e5e8d(props) {
1175
1188
  })();
1176
1189
  }, "RecommendationSlider failed");
1177
1190
  }
1178
- const $2c920813c92d6987$var$_tmpl$ = /*#__PURE__*/$52FdA$solidjsweb.template(`<div class=recommendation-grid><!$><!/><!$><!/>`);
1191
+ const $2c920813c92d6987$var$_tmpl$ = /*#__PURE__*/$52FdA$solidjsweb.template(`<h2 class=recs-title>`),
1192
+ $2c920813c92d6987$var$_tmpl$2 = /*#__PURE__*/$52FdA$solidjsweb.template(`<div class=recommendation-grid><!$><!/><!$><!/>`);
1179
1193
  function $2c920813c92d6987$export$7da560f849543dff(_ref) {
1180
1194
  let {
1181
1195
  recommendations_resource_: recommendations_resource_,
@@ -1183,21 +1197,32 @@ function $2c920813c92d6987$export$7da560f849543dff(_ref) {
1183
1197
  layout_options_: layout_options_,
1184
1198
  merchant_: merchant_,
1185
1199
  market_: market_,
1186
- rows_object_: rows_object_
1200
+ rows_object_: rows_object_,
1201
+ title_: title_
1187
1202
  } = _ref;
1188
1203
  const is_showing_something = $52FdA$solidjs.createMemo(() => {
1189
1204
  var _recommendations_reso;
1190
1205
  return recommendations_resource_.loading || ((_recommendations_reso = recommendations_resource_()) === null || _recommendations_reso === void 0 ? void 0 : _recommendations_reso.length);
1191
1206
  });
1207
+ const title = $52FdA$solidjs.createMemo(() => title_ === null || title_ === void 0 ? void 0 : title_()); // In case getter/accessor creates elements, don't create them twice
1192
1208
  const num_placeholders_ = () => 20;
1193
- const elements = (() => {
1194
- const _el$ = $52FdA$solidjsweb.getNextElement($2c920813c92d6987$var$_tmpl$),
1195
- _el$2 = _el$.firstChild,
1196
- [_el$3, _co$] = $52FdA$solidjsweb.getNextMarker(_el$2.nextSibling),
1197
- _el$4 = _el$3.nextSibling,
1198
- [_el$5, _co$2] = $52FdA$solidjsweb.getNextMarker(_el$4.nextSibling);
1199
- $52FdA$solidjsweb.insert(_el$, (0, $8edd3cf30d1fd8b4$export$a2cc176055f8f08), _el$3, _co$);
1200
- $52FdA$solidjsweb.insert(_el$, $52FdA$solidjsweb.createComponent((0, $6c2c739b113a8ddf$export$d21e32dfedac04be), $52FdA$solidjsweb.mergeProps({
1209
+ const elements = [$52FdA$solidjsweb.createComponent((0, $52FdA$solidjs.Show), {
1210
+ get when() {
1211
+ return title();
1212
+ },
1213
+ get children() {
1214
+ const _el$ = $52FdA$solidjsweb.getNextElement($2c920813c92d6987$var$_tmpl$);
1215
+ $52FdA$solidjsweb.insert(_el$, title);
1216
+ return _el$;
1217
+ }
1218
+ }), (() => {
1219
+ const _el$2 = $52FdA$solidjsweb.getNextElement($2c920813c92d6987$var$_tmpl$2),
1220
+ _el$3 = _el$2.firstChild,
1221
+ [_el$4, _co$] = $52FdA$solidjsweb.getNextMarker(_el$3.nextSibling),
1222
+ _el$5 = _el$4.nextSibling,
1223
+ [_el$6, _co$2] = $52FdA$solidjsweb.getNextMarker(_el$5.nextSibling);
1224
+ $52FdA$solidjsweb.insert(_el$2, (0, $8edd3cf30d1fd8b4$export$a2cc176055f8f08), _el$4, _co$);
1225
+ $52FdA$solidjsweb.insert(_el$2, $52FdA$solidjsweb.createComponent((0, $6c2c739b113a8ddf$export$d21e32dfedac04be), $52FdA$solidjsweb.mergeProps({
1201
1226
  get rows() {
1202
1227
  return rows_object_();
1203
1228
  },
@@ -1228,9 +1253,9 @@ function $2c920813c92d6987$export$7da560f849543dff(_ref) {
1228
1253
  }
1229
1254
  });
1230
1255
  }
1231
- })), _el$5, _co$2);
1232
- return _el$;
1233
- })();
1256
+ })), _el$6, _co$2);
1257
+ return _el$2;
1258
+ })()];
1234
1259
  return $52FdA$solidjsweb.createComponent((0, $52FdA$solidjs.Show), {
1235
1260
  get when() {
1236
1261
  return is_showing_something();
@@ -1289,6 +1314,7 @@ function $41227f10ad680afd$export$9756467d34d91cdb(props) {
1289
1314
  recommendations_resource_: recommendations_resource_,
1290
1315
  market_: () => props.market,
1291
1316
  merchant_: () => props.merchant,
1317
+ title_: () => props.title,
1292
1318
  layout_options_: $52FdA$solidjs.createMemo(() => ({
1293
1319
  cols_at_size: $5401a6698b0c0658$export$6daf8749b65a1b77(props.cols_at_size),
1294
1320
  ...grid_spacing_override()
@@ -4192,7 +4218,7 @@ function $5b88b077e48a4451$export$82eafebb825fc23f() {
4192
4218
  })();
4193
4219
  }
4194
4220
  const $8e7ac26c00243687$var$_tmpl$ = /*#__PURE__*/$52FdA$solidjsweb.template(`<div class=search-in-filters><input type=text class=query><!$><!/><button class=clear-filter-search>`);
4195
- const $8e7ac26c00243687$var$min_items_to_enable_filter_searching = 15; // For checkbox color and checkbox grid we 3x this
4221
+ const $8e7ac26c00243687$var$min_items_to_enable_filter_searching = 15; // For checkbox color and checkbox grid we 2x this
4196
4222
  function $8e7ac26c00243687$export$4b2c5292ffe0c5dd(filter_array_, section, i18n_) {
4197
4223
  const [filter_query_, set_filter_query_] = $52FdA$solidjs.createSignal();
4198
4224
  // Check if we have enough items to enable searching
@@ -4203,7 +4229,7 @@ function $8e7ac26c00243687$export$4b2c5292ffe0c5dd(filter_array_, section, i18n_
4203
4229
  const type = (_filter$meta = filter.meta) === null || _filter$meta === void 0 ? void 0 : _filter$meta.type;
4204
4230
  if (type === "range") continue;
4205
4231
  const length = filter.meta.values.length;
4206
- count += type === "checkbox-color" || type === "checkbox-grid" ? length / 3 : length; // For checkbox-color we have two columns, checkbox-grid three, so we can show search later
4232
+ count += type === "checkbox-color" || type === "checkbox-grid" ? length / 2 : length; // For checkbox-color we have two columns, checkbox-grid three, so we can show search later
4207
4233
  }
4208
4234
 
4209
4235
  return count >= $8e7ac26c00243687$var$min_items_to_enable_filter_searching;
package/ES10/index.d.ts CHANGED
@@ -7,7 +7,7 @@ import { CategorySuggestion, SearchSuggestionsResponse } from "@depict-ai/types/
7
7
  import { BaseSearchRequest } from "@depict-ai/types/api/BaseSearchRequest";
8
8
  import { SearchSuggestionsRequest } from "@depict-ai/types/api/SearchSuggestionsRequest";
9
9
  import { ProductListingRequestV2 } from "@depict-ai/types/api/ProductListingRequestV2";
10
- export const version = "2.1.16";
10
+ export const version = "2.1.18";
11
11
  /**
12
12
  * Use `javascript_media_query` but return a reactive accessor instead of taking a callback function
13
13
  */
@@ -242,6 +242,7 @@ type RecommendationSliderBaseProps<T extends Display> = {
242
242
  grid_spacing: SDKGridSpacing;
243
243
  cols_at_size: SDKColsAtSize;
244
244
  recommendations: Promise<T[]>;
245
+ title?: JSX.Element;
245
246
  };
246
247
  /**
247
248
  * Render a grid with provided recommendations. displayTransformers will not be applied for this since you yourself provide the displays. Options are reactive.
@@ -260,6 +261,7 @@ export function RecommendationSlider<T extends Display>(props: {
260
261
  type RecommendationGridBaseProps<T extends Display> = {
261
262
  grid_spacing: SDKGridSpacing;
262
263
  cols_at_size: SDKColsAtSize;
264
+ title?: JSX.Element;
263
265
  recommendations: Promise<T[]>;
264
266
  view_more_button?: {
265
267
  text: string;
package/ES10/index.js CHANGED
@@ -9,7 +9,7 @@ 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.16";
12
+ const $8db9a15135765c11$export$83d89fbfd8236492 = "2.1.18";
13
13
  const $2855bffe06ef7a03$var$fallback_operator = "in";
14
14
  const $2855bffe06ef7a03$var$fallback_token = "";
15
15
  const $2855bffe06ef7a03$var$legacy_filter_prefix = "filter_";
@@ -974,20 +974,32 @@ function $63f1f8dbcd07d3b0$export$445d8d3f5f706a40(props, container_element) {
974
974
  return [container_element, $8tj43$memo(view_more_button_container), $8tj43$memo(view_less_button_container), style_element];
975
975
  }
976
976
  $8tj43$delegateEvents(["click"]);
977
+ const $39ddb986053fb759$var$_tmpl$ = /*#__PURE__*/$8tj43$template(`<h2 class=recs-title>`);
977
978
  function $39ddb986053fb759$export$d41d19e89346fa2(_ref) {
978
979
  let {
979
980
  recommendations_resource_: recommendations_resource_,
980
981
  product_card_template_: product_card_template_,
981
982
  layout_options_: layout_options_,
982
983
  merchant_: merchant_,
983
- market_: market_
984
+ market_: market_,
985
+ title_: title_
984
986
  } = _ref;
985
987
  const is_showing_something = $8tj43$createMemo(() => {
986
988
  var _recommendations_reso;
987
989
  return recommendations_resource_.loading || ((_recommendations_reso = recommendations_resource_()) === null || _recommendations_reso === void 0 ? void 0 : _recommendations_reso.length);
988
990
  });
991
+ const title = $8tj43$createMemo(() => title_ === null || title_ === void 0 ? void 0 : title_()); // In case getter/accessor creates elements, don't create them twice
989
992
  const num_placeholders_ = () => 20;
990
- const slider = $8tj43$createComponent((0, $002f09d00aac50b2$export$6649caad96ef8870), {
993
+ const slider = [$8tj43$createComponent((0, $8tj43$Show), {
994
+ get when() {
995
+ return title();
996
+ },
997
+ get children() {
998
+ const _el$ = $8tj43$getNextElement($39ddb986053fb759$var$_tmpl$);
999
+ $8tj43$insert(_el$, title);
1000
+ return _el$;
1001
+ }
1002
+ }), $8tj43$createComponent((0, $002f09d00aac50b2$export$6649caad96ef8870), {
991
1003
  arrow_height_: 25,
992
1004
  arrow_width_: 12.5,
993
1005
  disable_fading_: true,
@@ -1026,7 +1038,7 @@ function $39ddb986053fb759$export$d41d19e89346fa2(_ref) {
1026
1038
  }
1027
1039
  });
1028
1040
  }
1029
- });
1041
+ })];
1030
1042
  return $8tj43$createComponent((0, $8tj43$Show), {
1031
1043
  get when() {
1032
1044
  return is_showing_something();
@@ -1097,6 +1109,7 @@ function $d5d7e58c5c9d8db0$export$9574e176201e5e8d(props) {
1097
1109
  recommendations_resource_: recommendations_resource_,
1098
1110
  market_: () => props.market,
1099
1111
  merchant_: () => props.merchant,
1112
+ title_: () => props.title,
1100
1113
  layout_options_: $8tj43$createMemo(() => ({
1101
1114
  cols_at_size: $a9c7ba6087881ac2$export$6daf8749b65a1b77(props.cols_at_size),
1102
1115
  ...grid_spacing_override()
@@ -1108,7 +1121,8 @@ function $d5d7e58c5c9d8db0$export$9574e176201e5e8d(props) {
1108
1121
  })();
1109
1122
  }, "RecommendationSlider failed");
1110
1123
  }
1111
- const $e3efeb558d952696$var$_tmpl$ = /*#__PURE__*/$8tj43$template(`<div class=recommendation-grid><!$><!/><!$><!/>`);
1124
+ const $e3efeb558d952696$var$_tmpl$ = /*#__PURE__*/$8tj43$template(`<h2 class=recs-title>`),
1125
+ $e3efeb558d952696$var$_tmpl$2 = /*#__PURE__*/$8tj43$template(`<div class=recommendation-grid><!$><!/><!$><!/>`);
1112
1126
  function $e3efeb558d952696$export$7da560f849543dff(_ref) {
1113
1127
  let {
1114
1128
  recommendations_resource_: recommendations_resource_,
@@ -1116,21 +1130,32 @@ function $e3efeb558d952696$export$7da560f849543dff(_ref) {
1116
1130
  layout_options_: layout_options_,
1117
1131
  merchant_: merchant_,
1118
1132
  market_: market_,
1119
- rows_object_: rows_object_
1133
+ rows_object_: rows_object_,
1134
+ title_: title_
1120
1135
  } = _ref;
1121
1136
  const is_showing_something = $8tj43$createMemo(() => {
1122
1137
  var _recommendations_reso;
1123
1138
  return recommendations_resource_.loading || ((_recommendations_reso = recommendations_resource_()) === null || _recommendations_reso === void 0 ? void 0 : _recommendations_reso.length);
1124
1139
  });
1140
+ const title = $8tj43$createMemo(() => title_ === null || title_ === void 0 ? void 0 : title_()); // In case getter/accessor creates elements, don't create them twice
1125
1141
  const num_placeholders_ = () => 20;
1126
- const elements = (() => {
1127
- const _el$ = $8tj43$getNextElement($e3efeb558d952696$var$_tmpl$),
1128
- _el$2 = _el$.firstChild,
1129
- [_el$3, _co$] = $8tj43$getNextMarker(_el$2.nextSibling),
1130
- _el$4 = _el$3.nextSibling,
1131
- [_el$5, _co$2] = $8tj43$getNextMarker(_el$4.nextSibling);
1132
- $8tj43$insert(_el$, (0, $ca55612a53dbbdd2$export$a2cc176055f8f08), _el$3, _co$);
1133
- $8tj43$insert(_el$, $8tj43$createComponent((0, $63f1f8dbcd07d3b0$export$d21e32dfedac04be), $8tj43$mergeProps1({
1142
+ const elements = [$8tj43$createComponent((0, $8tj43$Show), {
1143
+ get when() {
1144
+ return title();
1145
+ },
1146
+ get children() {
1147
+ const _el$ = $8tj43$getNextElement($e3efeb558d952696$var$_tmpl$);
1148
+ $8tj43$insert(_el$, title);
1149
+ return _el$;
1150
+ }
1151
+ }), (() => {
1152
+ const _el$2 = $8tj43$getNextElement($e3efeb558d952696$var$_tmpl$2),
1153
+ _el$3 = _el$2.firstChild,
1154
+ [_el$4, _co$] = $8tj43$getNextMarker(_el$3.nextSibling),
1155
+ _el$5 = _el$4.nextSibling,
1156
+ [_el$6, _co$2] = $8tj43$getNextMarker(_el$5.nextSibling);
1157
+ $8tj43$insert(_el$2, (0, $ca55612a53dbbdd2$export$a2cc176055f8f08), _el$4, _co$);
1158
+ $8tj43$insert(_el$2, $8tj43$createComponent((0, $63f1f8dbcd07d3b0$export$d21e32dfedac04be), $8tj43$mergeProps1({
1134
1159
  get rows() {
1135
1160
  return rows_object_();
1136
1161
  },
@@ -1161,9 +1186,9 @@ function $e3efeb558d952696$export$7da560f849543dff(_ref) {
1161
1186
  }
1162
1187
  });
1163
1188
  }
1164
- })), _el$5, _co$2);
1165
- return _el$;
1166
- })();
1189
+ })), _el$6, _co$2);
1190
+ return _el$2;
1191
+ })()];
1167
1192
  return $8tj43$createComponent((0, $8tj43$Show), {
1168
1193
  get when() {
1169
1194
  return is_showing_something();
@@ -1222,6 +1247,7 @@ function $b432b11321ad4c97$export$9756467d34d91cdb(props) {
1222
1247
  recommendations_resource_: recommendations_resource_,
1223
1248
  market_: () => props.market,
1224
1249
  merchant_: () => props.merchant,
1250
+ title_: () => props.title,
1225
1251
  layout_options_: $8tj43$createMemo(() => ({
1226
1252
  cols_at_size: $a9c7ba6087881ac2$export$6daf8749b65a1b77(props.cols_at_size),
1227
1253
  ...grid_spacing_override()
@@ -4125,7 +4151,7 @@ function $ef0f18a578b32578$export$82eafebb825fc23f() {
4125
4151
  })();
4126
4152
  }
4127
4153
  const $e354b2f9ce33cb75$var$_tmpl$ = /*#__PURE__*/$8tj43$template(`<div class=search-in-filters><input type=text class=query><!$><!/><button class=clear-filter-search>`);
4128
- const $e354b2f9ce33cb75$var$min_items_to_enable_filter_searching = 15; // For checkbox color and checkbox grid we 3x this
4154
+ const $e354b2f9ce33cb75$var$min_items_to_enable_filter_searching = 15; // For checkbox color and checkbox grid we 2x this
4129
4155
  function $e354b2f9ce33cb75$export$4b2c5292ffe0c5dd(filter_array_, section, i18n_) {
4130
4156
  const [filter_query_, set_filter_query_] = $8tj43$createSignal();
4131
4157
  // Check if we have enough items to enable searching
@@ -4136,7 +4162,7 @@ function $e354b2f9ce33cb75$export$4b2c5292ffe0c5dd(filter_array_, section, i18n_
4136
4162
  const type = (_filter$meta = filter.meta) === null || _filter$meta === void 0 ? void 0 : _filter$meta.type;
4137
4163
  if (type === "range") continue;
4138
4164
  const length = filter.meta.values.length;
4139
- count += type === "checkbox-color" || type === "checkbox-grid" ? length / 3 : length; // For checkbox-color we have two columns, checkbox-grid three, so we can show search later
4165
+ count += type === "checkbox-color" || type === "checkbox-grid" ? length / 2 : length; // For checkbox-color we have two columns, checkbox-grid three, so we can show search later
4140
4166
  }
4141
4167
 
4142
4168
  return count >= $e354b2f9ce33cb75$var$min_items_to_enable_filter_searching;
package/latest/index.cjs CHANGED
@@ -70,7 +70,7 @@ $parcel$export(module.exports, "defaultColsAtSize", () => $a3280f0aad997933$expo
70
70
  $parcel$export(module.exports, "defaultCategoryTitlePlugin", () => $a3280f0aad997933$export$7bf543b9d9be2c22);
71
71
  $parcel$export(module.exports, "version", () => $b757f75811f3261f$export$83d89fbfd8236492);
72
72
  /*! Depict.ai search and product listing SDK */
73
- const $b757f75811f3261f$export$83d89fbfd8236492 = "2.1.16";
73
+ const $b757f75811f3261f$export$83d89fbfd8236492 = "2.1.18";
74
74
  const $1ab22f2cd39b3061$var$fallback_operator = "in";
75
75
  const $1ab22f2cd39b3061$var$fallback_token = "";
76
76
  const $1ab22f2cd39b3061$var$legacy_filter_prefix = "filter_";
@@ -982,16 +982,28 @@ function $f48d0fbb00835aaa$export$445d8d3f5f706a40(props, container_element, ins
982
982
  return [container_element, $gVhhF$solidjsweb.memo(view_more_button_container), $gVhhF$solidjsweb.memo(view_less_button_container), style_element];
983
983
  }
984
984
  $gVhhF$solidjsweb.delegateEvents(["click"]);
985
+ const $363ce4d1d71041aa$var$_tmpl$ = /*#__PURE__*/$gVhhF$solidjsweb.template(`<h2 class=recs-title>`);
985
986
  function $363ce4d1d71041aa$export$d41d19e89346fa2({
986
987
  recommendations_resource_: recommendations_resource_,
987
988
  product_card_template_: product_card_template_,
988
989
  layout_options_: layout_options_,
989
990
  merchant_: merchant_,
990
- market_: market_
991
+ market_: market_,
992
+ title_: title_
991
993
  }) {
992
994
  const is_showing_something = $gVhhF$solidjs.createMemo(() => recommendations_resource_.loading || recommendations_resource_()?.length);
995
+ const title = $gVhhF$solidjs.createMemo(() => title_?.()); // In case getter/accessor creates elements, don't create them twice
993
996
  const num_placeholders_ = () => 20;
994
- const slider = $gVhhF$solidjsweb.createComponent((0, $a0e53f99354809d9$export$6649caad96ef8870), {
997
+ const slider = [$gVhhF$solidjsweb.createComponent((0, $gVhhF$solidjs.Show), {
998
+ get when() {
999
+ return title();
1000
+ },
1001
+ get children() {
1002
+ const _el$ = $gVhhF$solidjsweb.getNextElement($363ce4d1d71041aa$var$_tmpl$);
1003
+ $gVhhF$solidjsweb.insert(_el$, title);
1004
+ return _el$;
1005
+ }
1006
+ }), $gVhhF$solidjsweb.createComponent((0, $a0e53f99354809d9$export$6649caad96ef8870), {
995
1007
  arrow_height_: 25,
996
1008
  arrow_width_: 12.5,
997
1009
  disable_fading_: true,
@@ -1030,7 +1042,7 @@ function $363ce4d1d71041aa$export$d41d19e89346fa2({
1030
1042
  }
1031
1043
  });
1032
1044
  }
1033
- });
1045
+ })];
1034
1046
  return $gVhhF$solidjsweb.createComponent((0, $gVhhF$solidjs.Show), {
1035
1047
  get when() {
1036
1048
  return is_showing_something();
@@ -1098,6 +1110,7 @@ function $72f96c4782db0b1b$export$9574e176201e5e8d(props) {
1098
1110
  recommendations_resource_: recommendations_resource_,
1099
1111
  market_: () => props.market,
1100
1112
  merchant_: () => props.merchant,
1113
+ title_: () => props.title,
1101
1114
  layout_options_: $gVhhF$solidjs.createMemo(() => ({
1102
1115
  cols_at_size: $4e04be41243c3d80$export$6daf8749b65a1b77(props.cols_at_size),
1103
1116
  ...grid_spacing_override()
@@ -1109,25 +1122,37 @@ function $72f96c4782db0b1b$export$9574e176201e5e8d(props) {
1109
1122
  })();
1110
1123
  }, "RecommendationSlider failed");
1111
1124
  }
1112
- const $b8e79813f4f7ebe4$var$_tmpl$ = /*#__PURE__*/$gVhhF$solidjsweb.template(`<div class=recommendation-grid><!$><!/><!$><!/>`);
1125
+ const $b8e79813f4f7ebe4$var$_tmpl$ = /*#__PURE__*/$gVhhF$solidjsweb.template(`<h2 class=recs-title>`),
1126
+ $b8e79813f4f7ebe4$var$_tmpl$2 = /*#__PURE__*/$gVhhF$solidjsweb.template(`<div class=recommendation-grid><!$><!/><!$><!/>`);
1113
1127
  function $b8e79813f4f7ebe4$export$7da560f849543dff({
1114
1128
  recommendations_resource_: recommendations_resource_,
1115
1129
  product_card_template_: product_card_template_,
1116
1130
  layout_options_: layout_options_,
1117
1131
  merchant_: merchant_,
1118
1132
  market_: market_,
1119
- rows_object_: rows_object_
1133
+ rows_object_: rows_object_,
1134
+ title_: title_
1120
1135
  }) {
1121
1136
  const is_showing_something = $gVhhF$solidjs.createMemo(() => recommendations_resource_.loading || recommendations_resource_()?.length);
1137
+ const title = $gVhhF$solidjs.createMemo(() => title_?.()); // In case getter/accessor creates elements, don't create them twice
1122
1138
  const num_placeholders_ = () => 20;
1123
- const elements = (() => {
1124
- const _el$ = $gVhhF$solidjsweb.getNextElement($b8e79813f4f7ebe4$var$_tmpl$),
1125
- _el$2 = _el$.firstChild,
1126
- [_el$3, _co$] = $gVhhF$solidjsweb.getNextMarker(_el$2.nextSibling),
1127
- _el$4 = _el$3.nextSibling,
1128
- [_el$5, _co$2] = $gVhhF$solidjsweb.getNextMarker(_el$4.nextSibling);
1129
- $gVhhF$solidjsweb.insert(_el$, (0, $fc23d7668ae0011d$export$a2cc176055f8f08), _el$3, _co$);
1130
- $gVhhF$solidjsweb.insert(_el$, $gVhhF$solidjsweb.createComponent((0, $f48d0fbb00835aaa$export$d21e32dfedac04be), $gVhhF$solidjsweb.mergeProps({
1139
+ const elements = [$gVhhF$solidjsweb.createComponent((0, $gVhhF$solidjs.Show), {
1140
+ get when() {
1141
+ return title();
1142
+ },
1143
+ get children() {
1144
+ const _el$ = $gVhhF$solidjsweb.getNextElement($b8e79813f4f7ebe4$var$_tmpl$);
1145
+ $gVhhF$solidjsweb.insert(_el$, title);
1146
+ return _el$;
1147
+ }
1148
+ }), (() => {
1149
+ const _el$2 = $gVhhF$solidjsweb.getNextElement($b8e79813f4f7ebe4$var$_tmpl$2),
1150
+ _el$3 = _el$2.firstChild,
1151
+ [_el$4, _co$] = $gVhhF$solidjsweb.getNextMarker(_el$3.nextSibling),
1152
+ _el$5 = _el$4.nextSibling,
1153
+ [_el$6, _co$2] = $gVhhF$solidjsweb.getNextMarker(_el$5.nextSibling);
1154
+ $gVhhF$solidjsweb.insert(_el$2, (0, $fc23d7668ae0011d$export$a2cc176055f8f08), _el$4, _co$);
1155
+ $gVhhF$solidjsweb.insert(_el$2, $gVhhF$solidjsweb.createComponent((0, $f48d0fbb00835aaa$export$d21e32dfedac04be), $gVhhF$solidjsweb.mergeProps({
1131
1156
  get rows() {
1132
1157
  return rows_object_();
1133
1158
  },
@@ -1158,9 +1183,9 @@ function $b8e79813f4f7ebe4$export$7da560f849543dff({
1158
1183
  }
1159
1184
  });
1160
1185
  }
1161
- })), _el$5, _co$2);
1162
- return _el$;
1163
- })();
1186
+ })), _el$6, _co$2);
1187
+ return _el$2;
1188
+ })()];
1164
1189
  return $gVhhF$solidjsweb.createComponent((0, $gVhhF$solidjs.Show), {
1165
1190
  get when() {
1166
1191
  return is_showing_something();
@@ -1216,6 +1241,7 @@ function $1f8dbf7e28b3eff2$export$9756467d34d91cdb(props) {
1216
1241
  recommendations_resource_: recommendations_resource_,
1217
1242
  market_: () => props.market,
1218
1243
  merchant_: () => props.merchant,
1244
+ title_: () => props.title,
1219
1245
  layout_options_: $gVhhF$solidjs.createMemo(() => ({
1220
1246
  cols_at_size: $4e04be41243c3d80$export$6daf8749b65a1b77(props.cols_at_size),
1221
1247
  ...grid_spacing_override()
@@ -3959,7 +3985,7 @@ function $87d7574e1d89d69b$export$82eafebb825fc23f(props = {}) {
3959
3985
  })();
3960
3986
  }
3961
3987
  const $47d8681015b71901$var$_tmpl$ = /*#__PURE__*/$gVhhF$solidjsweb.template(`<div class=search-in-filters><input type=text class=query><!$><!/><button class=clear-filter-search>`);
3962
- const $47d8681015b71901$var$min_items_to_enable_filter_searching = 15; // For checkbox color and checkbox grid we 3x this
3988
+ const $47d8681015b71901$var$min_items_to_enable_filter_searching = 15; // For checkbox color and checkbox grid we 2x this
3963
3989
  function $47d8681015b71901$export$4b2c5292ffe0c5dd(filter_array_, section, i18n_) {
3964
3990
  const [filter_query_, set_filter_query_] = $gVhhF$solidjs.createSignal();
3965
3991
  // Check if we have enough items to enable searching
@@ -3969,7 +3995,7 @@ function $47d8681015b71901$export$4b2c5292ffe0c5dd(filter_array_, section, i18n_
3969
3995
  const type = filter.meta?.type;
3970
3996
  if (type === "range") continue;
3971
3997
  const length = filter.meta.values.length;
3972
- count += type === "checkbox-color" || type === "checkbox-grid" ? length / 3 : length; // For checkbox-color we have two columns, checkbox-grid three, so we can show search later
3998
+ count += type === "checkbox-color" || type === "checkbox-grid" ? length / 2 : length; // For checkbox-color we have two columns, checkbox-grid three, so we can show search later
3973
3999
  }
3974
4000
 
3975
4001
  return count >= $47d8681015b71901$var$min_items_to_enable_filter_searching;
package/latest/index.d.ts CHANGED
@@ -7,7 +7,7 @@ import { CategorySuggestion, SearchSuggestionsResponse } from "@depict-ai/types/
7
7
  import { BaseSearchRequest } from "@depict-ai/types/api/BaseSearchRequest";
8
8
  import { SearchSuggestionsRequest } from "@depict-ai/types/api/SearchSuggestionsRequest";
9
9
  import { ProductListingRequestV2 } from "@depict-ai/types/api/ProductListingRequestV2";
10
- export const version = "2.1.16";
10
+ export const version = "2.1.18";
11
11
  /**
12
12
  * Use `javascript_media_query` but return a reactive accessor instead of taking a callback function
13
13
  */
@@ -242,6 +242,7 @@ type RecommendationSliderBaseProps<T extends Display> = {
242
242
  grid_spacing: SDKGridSpacing;
243
243
  cols_at_size: SDKColsAtSize;
244
244
  recommendations: Promise<T[]>;
245
+ title?: JSX.Element;
245
246
  };
246
247
  /**
247
248
  * Render a grid with provided recommendations. displayTransformers will not be applied for this since you yourself provide the displays. Options are reactive.
@@ -260,6 +261,7 @@ export function RecommendationSlider<T extends Display>(props: {
260
261
  type RecommendationGridBaseProps<T extends Display> = {
261
262
  grid_spacing: SDKGridSpacing;
262
263
  cols_at_size: SDKColsAtSize;
264
+ title?: JSX.Element;
263
265
  recommendations: Promise<T[]>;
264
266
  view_more_button?: {
265
267
  text: string;
package/latest/index.js CHANGED
@@ -6,7 +6,7 @@ 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.16";
9
+ const $ec291e0010116877$export$83d89fbfd8236492 = "2.1.18";
10
10
  const $4147651646da990a$var$fallback_operator = "in";
11
11
  const $4147651646da990a$var$fallback_token = "";
12
12
  const $4147651646da990a$var$legacy_filter_prefix = "filter_";
@@ -918,16 +918,28 @@ function $c8d5ff4524619fcd$export$445d8d3f5f706a40(props, container_element, ins
918
918
  return [container_element, $9HbP8$memo(view_more_button_container), $9HbP8$memo(view_less_button_container), style_element];
919
919
  }
920
920
  $9HbP8$delegateEvents(["click"]);
921
+ const $c4492d24952ed731$var$_tmpl$ = /*#__PURE__*/$9HbP8$template(`<h2 class=recs-title>`);
921
922
  function $c4492d24952ed731$export$d41d19e89346fa2({
922
923
  recommendations_resource_: recommendations_resource_,
923
924
  product_card_template_: product_card_template_,
924
925
  layout_options_: layout_options_,
925
926
  merchant_: merchant_,
926
- market_: market_
927
+ market_: market_,
928
+ title_: title_
927
929
  }) {
928
930
  const is_showing_something = $9HbP8$createMemo(() => recommendations_resource_.loading || recommendations_resource_()?.length);
931
+ const title = $9HbP8$createMemo(() => title_?.()); // In case getter/accessor creates elements, don't create them twice
929
932
  const num_placeholders_ = () => 20;
930
- const slider = $9HbP8$createComponent((0, $f32e14878e75af51$export$6649caad96ef8870), {
933
+ const slider = [$9HbP8$createComponent((0, $9HbP8$Show), {
934
+ get when() {
935
+ return title();
936
+ },
937
+ get children() {
938
+ const _el$ = $9HbP8$getNextElement($c4492d24952ed731$var$_tmpl$);
939
+ $9HbP8$insert(_el$, title);
940
+ return _el$;
941
+ }
942
+ }), $9HbP8$createComponent((0, $f32e14878e75af51$export$6649caad96ef8870), {
931
943
  arrow_height_: 25,
932
944
  arrow_width_: 12.5,
933
945
  disable_fading_: true,
@@ -966,7 +978,7 @@ function $c4492d24952ed731$export$d41d19e89346fa2({
966
978
  }
967
979
  });
968
980
  }
969
- });
981
+ })];
970
982
  return $9HbP8$createComponent((0, $9HbP8$Show), {
971
983
  get when() {
972
984
  return is_showing_something();
@@ -1034,6 +1046,7 @@ function $ee116da074deb002$export$9574e176201e5e8d(props) {
1034
1046
  recommendations_resource_: recommendations_resource_,
1035
1047
  market_: () => props.market,
1036
1048
  merchant_: () => props.merchant,
1049
+ title_: () => props.title,
1037
1050
  layout_options_: $9HbP8$createMemo(() => ({
1038
1051
  cols_at_size: $b5cccc8ee7d24677$export$6daf8749b65a1b77(props.cols_at_size),
1039
1052
  ...grid_spacing_override()
@@ -1045,25 +1058,37 @@ function $ee116da074deb002$export$9574e176201e5e8d(props) {
1045
1058
  })();
1046
1059
  }, "RecommendationSlider failed");
1047
1060
  }
1048
- const $3da8afe3ed57cf34$var$_tmpl$ = /*#__PURE__*/$9HbP8$template(`<div class=recommendation-grid><!$><!/><!$><!/>`);
1061
+ const $3da8afe3ed57cf34$var$_tmpl$ = /*#__PURE__*/$9HbP8$template(`<h2 class=recs-title>`),
1062
+ $3da8afe3ed57cf34$var$_tmpl$2 = /*#__PURE__*/$9HbP8$template(`<div class=recommendation-grid><!$><!/><!$><!/>`);
1049
1063
  function $3da8afe3ed57cf34$export$7da560f849543dff({
1050
1064
  recommendations_resource_: recommendations_resource_,
1051
1065
  product_card_template_: product_card_template_,
1052
1066
  layout_options_: layout_options_,
1053
1067
  merchant_: merchant_,
1054
1068
  market_: market_,
1055
- rows_object_: rows_object_
1069
+ rows_object_: rows_object_,
1070
+ title_: title_
1056
1071
  }) {
1057
1072
  const is_showing_something = $9HbP8$createMemo(() => recommendations_resource_.loading || recommendations_resource_()?.length);
1073
+ const title = $9HbP8$createMemo(() => title_?.()); // In case getter/accessor creates elements, don't create them twice
1058
1074
  const num_placeholders_ = () => 20;
1059
- const elements = (() => {
1060
- const _el$ = $9HbP8$getNextElement($3da8afe3ed57cf34$var$_tmpl$),
1061
- _el$2 = _el$.firstChild,
1062
- [_el$3, _co$] = $9HbP8$getNextMarker(_el$2.nextSibling),
1063
- _el$4 = _el$3.nextSibling,
1064
- [_el$5, _co$2] = $9HbP8$getNextMarker(_el$4.nextSibling);
1065
- $9HbP8$insert(_el$, (0, $a458486f22b22f63$export$a2cc176055f8f08), _el$3, _co$);
1066
- $9HbP8$insert(_el$, $9HbP8$createComponent((0, $c8d5ff4524619fcd$export$d21e32dfedac04be), $9HbP8$mergeProps1({
1075
+ const elements = [$9HbP8$createComponent((0, $9HbP8$Show), {
1076
+ get when() {
1077
+ return title();
1078
+ },
1079
+ get children() {
1080
+ const _el$ = $9HbP8$getNextElement($3da8afe3ed57cf34$var$_tmpl$);
1081
+ $9HbP8$insert(_el$, title);
1082
+ return _el$;
1083
+ }
1084
+ }), (() => {
1085
+ const _el$2 = $9HbP8$getNextElement($3da8afe3ed57cf34$var$_tmpl$2),
1086
+ _el$3 = _el$2.firstChild,
1087
+ [_el$4, _co$] = $9HbP8$getNextMarker(_el$3.nextSibling),
1088
+ _el$5 = _el$4.nextSibling,
1089
+ [_el$6, _co$2] = $9HbP8$getNextMarker(_el$5.nextSibling);
1090
+ $9HbP8$insert(_el$2, (0, $a458486f22b22f63$export$a2cc176055f8f08), _el$4, _co$);
1091
+ $9HbP8$insert(_el$2, $9HbP8$createComponent((0, $c8d5ff4524619fcd$export$d21e32dfedac04be), $9HbP8$mergeProps1({
1067
1092
  get rows() {
1068
1093
  return rows_object_();
1069
1094
  },
@@ -1094,9 +1119,9 @@ function $3da8afe3ed57cf34$export$7da560f849543dff({
1094
1119
  }
1095
1120
  });
1096
1121
  }
1097
- })), _el$5, _co$2);
1098
- return _el$;
1099
- })();
1122
+ })), _el$6, _co$2);
1123
+ return _el$2;
1124
+ })()];
1100
1125
  return $9HbP8$createComponent((0, $9HbP8$Show), {
1101
1126
  get when() {
1102
1127
  return is_showing_something();
@@ -1152,6 +1177,7 @@ function $9ea5383493360761$export$9756467d34d91cdb(props) {
1152
1177
  recommendations_resource_: recommendations_resource_,
1153
1178
  market_: () => props.market,
1154
1179
  merchant_: () => props.merchant,
1180
+ title_: () => props.title,
1155
1181
  layout_options_: $9HbP8$createMemo(() => ({
1156
1182
  cols_at_size: $b5cccc8ee7d24677$export$6daf8749b65a1b77(props.cols_at_size),
1157
1183
  ...grid_spacing_override()
@@ -3895,7 +3921,7 @@ function $16f0ed5ea30d8d9c$export$82eafebb825fc23f(props = {}) {
3895
3921
  })();
3896
3922
  }
3897
3923
  const $e01b34f289b61435$var$_tmpl$ = /*#__PURE__*/$9HbP8$template(`<div class=search-in-filters><input type=text class=query><!$><!/><button class=clear-filter-search>`);
3898
- const $e01b34f289b61435$var$min_items_to_enable_filter_searching = 15; // For checkbox color and checkbox grid we 3x this
3924
+ const $e01b34f289b61435$var$min_items_to_enable_filter_searching = 15; // For checkbox color and checkbox grid we 2x this
3899
3925
  function $e01b34f289b61435$export$4b2c5292ffe0c5dd(filter_array_, section, i18n_) {
3900
3926
  const [filter_query_, set_filter_query_] = $9HbP8$createSignal();
3901
3927
  // Check if we have enough items to enable searching
@@ -3905,7 +3931,7 @@ function $e01b34f289b61435$export$4b2c5292ffe0c5dd(filter_array_, section, i18n_
3905
3931
  const type = filter.meta?.type;
3906
3932
  if (type === "range") continue;
3907
3933
  const length = filter.meta.values.length;
3908
- count += type === "checkbox-color" || type === "checkbox-grid" ? length / 3 : length; // For checkbox-color we have two columns, checkbox-grid three, so we can show search later
3934
+ count += type === "checkbox-color" || type === "checkbox-grid" ? length / 2 : length; // For checkbox-color we have two columns, checkbox-grid three, so we can show search later
3909
3935
  }
3910
3936
 
3911
3937
  return count >= $e01b34f289b61435$var$min_items_to_enable_filter_searching;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@depict-ai/ui",
3
- "version": "2.1.16",
3
+ "version": "2.1.18",
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": "^1.2.9",
239
+ "@depict-ai/plp-styling": "^1.2.14",
240
240
  "@depict-ai/types": "^1.0.39",
241
241
  "@depict-ai/utilishared": "^1.0.48",
242
242
  "solid-js": "^1.8.1"
@@ -76,7 +76,7 @@ $parcel$export(module.exports, "defaultColsAtSize", () => $33eed84f447aa0c0$expo
76
76
  $parcel$export(module.exports, "defaultCategoryTitlePlugin", () => $33eed84f447aa0c0$export$7bf543b9d9be2c22);
77
77
  $parcel$export(module.exports, "version", () => $aa1938dec50d6c12$export$83d89fbfd8236492);
78
78
  /*! Depict.ai search and product listing SDK */
79
- const $aa1938dec50d6c12$export$83d89fbfd8236492 = "2.1.16";
79
+ const $aa1938dec50d6c12$export$83d89fbfd8236492 = "2.1.18";
80
80
  const $a68b73fd7ba0853f$var$fallback_operator = "in";
81
81
  const $a68b73fd7ba0853f$var$fallback_token = "";
82
82
  const $a68b73fd7ba0853f$var$legacy_filter_prefix = "filter_";
@@ -970,20 +970,30 @@ function $6c2c739b113a8ddf$export$445d8d3f5f706a40(props, container_element) {
970
970
  if (insert_after_container) container_element.after(style_element);
971
971
  return [container_element, view_more_button_container(), view_less_button_container(), style_element];
972
972
  }
973
+ const $236a257ee52e5414$var$_tmpl$ = ["<h2", ' class="recs-title">', "</h2>"];
973
974
  function $236a257ee52e5414$export$d41d19e89346fa2(_ref) {
974
975
  let {
975
976
  recommendations_resource_: recommendations_resource_,
976
977
  product_card_template_: product_card_template_,
977
978
  layout_options_: layout_options_,
978
979
  merchant_: merchant_,
979
- market_: market_
980
+ market_: market_,
981
+ title_: title_
980
982
  } = _ref;
981
983
  const is_showing_something = $3hooq$solidjs.createMemo(() => {
982
984
  var _recommendations_reso;
983
985
  return recommendations_resource_.loading || ((_recommendations_reso = recommendations_resource_()) === null || _recommendations_reso === void 0 ? void 0 : _recommendations_reso.length);
984
986
  });
987
+ const title = $3hooq$solidjs.createMemo(() => title_ === null || title_ === void 0 ? void 0 : title_()); // In case getter/accessor creates elements, don't create them twice
985
988
  const num_placeholders_ = () => 20;
986
- const slider = $3hooq$solidjsweb.createComponent((0, $ad8ec7729fffeb9c$export$6649caad96ef8870), {
989
+ const slider = [$3hooq$solidjsweb.createComponent((0, $3hooq$solidjs.Show), {
990
+ get when() {
991
+ return title();
992
+ },
993
+ get children() {
994
+ return $3hooq$solidjsweb.ssr($236a257ee52e5414$var$_tmpl$, $3hooq$solidjsweb.ssrHydrationKey(), $3hooq$solidjsweb.escape(title()));
995
+ }
996
+ }), $3hooq$solidjsweb.createComponent((0, $ad8ec7729fffeb9c$export$6649caad96ef8870), {
987
997
  arrow_height_: 25,
988
998
  arrow_width_: 12.5,
989
999
  disable_fading_: true,
@@ -1022,7 +1032,7 @@ function $236a257ee52e5414$export$d41d19e89346fa2(_ref) {
1022
1032
  }
1023
1033
  });
1024
1034
  }
1025
- });
1035
+ })];
1026
1036
  return $3hooq$solidjsweb.createComponent((0, $3hooq$solidjs.Show), {
1027
1037
  get when() {
1028
1038
  return is_showing_something();
@@ -1091,6 +1101,7 @@ function $2badc30d7c6610e1$export$9574e176201e5e8d(props) {
1091
1101
  recommendations_resource_: recommendations_resource_,
1092
1102
  market_: () => props.market,
1093
1103
  merchant_: () => props.merchant,
1104
+ title_: () => props.title,
1094
1105
  layout_options_: $3hooq$solidjs.createMemo(() => ({
1095
1106
  cols_at_size: $5401a6698b0c0658$export$6daf8749b65a1b77(props.cols_at_size),
1096
1107
  ...grid_spacing_override()
@@ -1100,7 +1111,8 @@ function $2badc30d7c6610e1$export$9574e176201e5e8d(props) {
1100
1111
  })));
1101
1112
  }, "RecommendationSlider failed");
1102
1113
  }
1103
- const $2c920813c92d6987$var$_tmpl$ = ["<div", ' class="recommendation-grid"><!--$-->', "<!--/--><!--$-->", "<!--/--></div>"];
1114
+ const $2c920813c92d6987$var$_tmpl$ = ["<h2", ' class="recs-title">', "</h2>"],
1115
+ $2c920813c92d6987$var$_tmpl$2 = ["<div", ' class="recommendation-grid"><!--$-->', "<!--/--><!--$-->", "<!--/--></div>"];
1104
1116
  function $2c920813c92d6987$export$7da560f849543dff(_ref) {
1105
1117
  let {
1106
1118
  recommendations_resource_: recommendations_resource_,
@@ -1108,14 +1120,23 @@ function $2c920813c92d6987$export$7da560f849543dff(_ref) {
1108
1120
  layout_options_: layout_options_,
1109
1121
  merchant_: merchant_,
1110
1122
  market_: market_,
1111
- rows_object_: rows_object_
1123
+ rows_object_: rows_object_,
1124
+ title_: title_
1112
1125
  } = _ref;
1113
1126
  const is_showing_something = $3hooq$solidjs.createMemo(() => {
1114
1127
  var _recommendations_reso;
1115
1128
  return recommendations_resource_.loading || ((_recommendations_reso = recommendations_resource_()) === null || _recommendations_reso === void 0 ? void 0 : _recommendations_reso.length);
1116
1129
  });
1130
+ const title = $3hooq$solidjs.createMemo(() => title_ === null || title_ === void 0 ? void 0 : title_()); // In case getter/accessor creates elements, don't create them twice
1117
1131
  const num_placeholders_ = () => 20;
1118
- const elements = $3hooq$solidjsweb.ssr($2c920813c92d6987$var$_tmpl$, $3hooq$solidjsweb.ssrHydrationKey(), $3hooq$solidjsweb.escape($8edd3cf30d1fd8b4$export$a2cc176055f8f08()), $3hooq$solidjsweb.escape($3hooq$solidjsweb.createComponent((0, $6c2c739b113a8ddf$export$d21e32dfedac04be), $3hooq$solidjsweb.mergeProps({
1132
+ const elements = [$3hooq$solidjsweb.createComponent((0, $3hooq$solidjs.Show), {
1133
+ get when() {
1134
+ return title();
1135
+ },
1136
+ get children() {
1137
+ return $3hooq$solidjsweb.ssr($2c920813c92d6987$var$_tmpl$, $3hooq$solidjsweb.ssrHydrationKey(), $3hooq$solidjsweb.escape(title()));
1138
+ }
1139
+ }), $3hooq$solidjsweb.ssr($2c920813c92d6987$var$_tmpl$2, $3hooq$solidjsweb.ssrHydrationKey(), $3hooq$solidjsweb.escape($8edd3cf30d1fd8b4$export$a2cc176055f8f08()), $3hooq$solidjsweb.escape($3hooq$solidjsweb.createComponent((0, $6c2c739b113a8ddf$export$d21e32dfedac04be), $3hooq$solidjsweb.mergeProps({
1119
1140
  get rows() {
1120
1141
  return rows_object_();
1121
1142
  },
@@ -1146,7 +1167,7 @@ function $2c920813c92d6987$export$7da560f849543dff(_ref) {
1146
1167
  }
1147
1168
  });
1148
1169
  }
1149
- }))));
1170
+ }))))];
1150
1171
  return $3hooq$solidjsweb.createComponent((0, $3hooq$solidjs.Show), {
1151
1172
  get when() {
1152
1173
  return is_showing_something();
@@ -1199,6 +1220,7 @@ function $41227f10ad680afd$export$9756467d34d91cdb(props) {
1199
1220
  recommendations_resource_: recommendations_resource_,
1200
1221
  market_: () => props.market,
1201
1222
  merchant_: () => props.merchant,
1223
+ title_: () => props.title,
1202
1224
  layout_options_: $3hooq$solidjs.createMemo(() => ({
1203
1225
  cols_at_size: $5401a6698b0c0658$export$6daf8749b65a1b77(props.cols_at_size),
1204
1226
  ...grid_spacing_override()
@@ -3352,7 +3374,7 @@ function $5b88b077e48a4451$export$82eafebb825fc23f() {
3352
3374
  }, props), () => $3hooq$solidjsweb.ssr($5b88b077e48a4451$var$_tmpl$), true);
3353
3375
  }
3354
3376
  const $8e7ac26c00243687$var$_tmpl$ = ["<div", ' class="search-in-filters"><input type="text" class="query"', "><!--$-->", '<!--/--><button style="', '" class="clear-filter-search">', "</button></div>"];
3355
- const $8e7ac26c00243687$var$min_items_to_enable_filter_searching = 15; // For checkbox color and checkbox grid we 3x this
3377
+ const $8e7ac26c00243687$var$min_items_to_enable_filter_searching = 15; // For checkbox color and checkbox grid we 2x this
3356
3378
  function $8e7ac26c00243687$export$4b2c5292ffe0c5dd(filter_array_, section, i18n_) {
3357
3379
  const [filter_query_, set_filter_query_] = $3hooq$solidjs.createSignal();
3358
3380
  // Check if we have enough items to enable searching
@@ -3363,7 +3385,7 @@ function $8e7ac26c00243687$export$4b2c5292ffe0c5dd(filter_array_, section, i18n_
3363
3385
  const type = (_filter$meta = filter.meta) === null || _filter$meta === void 0 ? void 0 : _filter$meta.type;
3364
3386
  if (type === "range") continue;
3365
3387
  const length = filter.meta.values.length;
3366
- count += type === "checkbox-color" || type === "checkbox-grid" ? length / 3 : length; // For checkbox-color we have two columns, checkbox-grid three, so we can show search later
3388
+ count += type === "checkbox-color" || type === "checkbox-grid" ? length / 2 : length; // For checkbox-color we have two columns, checkbox-grid three, so we can show search later
3367
3389
  }
3368
3390
 
3369
3391
  return count >= $8e7ac26c00243687$var$min_items_to_enable_filter_searching;
@@ -7,7 +7,7 @@ import { CategorySuggestion, SearchSuggestionsResponse } from "@depict-ai/types/
7
7
  import { BaseSearchRequest } from "@depict-ai/types/api/BaseSearchRequest";
8
8
  import { SearchSuggestionsRequest } from "@depict-ai/types/api/SearchSuggestionsRequest";
9
9
  import { ProductListingRequestV2 } from "@depict-ai/types/api/ProductListingRequestV2";
10
- export const version = "2.1.16";
10
+ export const version = "2.1.18";
11
11
  /**
12
12
  * Use `javascript_media_query` but return a reactive accessor instead of taking a callback function
13
13
  */
@@ -242,6 +242,7 @@ type RecommendationSliderBaseProps<T extends Display> = {
242
242
  grid_spacing: SDKGridSpacing;
243
243
  cols_at_size: SDKColsAtSize;
244
244
  recommendations: Promise<T[]>;
245
+ title?: JSX.Element;
245
246
  };
246
247
  /**
247
248
  * Render a grid with provided recommendations. displayTransformers will not be applied for this since you yourself provide the displays. Options are reactive.
@@ -260,6 +261,7 @@ export function RecommendationSlider<T extends Display>(props: {
260
261
  type RecommendationGridBaseProps<T extends Display> = {
261
262
  grid_spacing: SDKGridSpacing;
262
263
  cols_at_size: SDKColsAtSize;
264
+ title?: JSX.Element;
263
265
  recommendations: Promise<T[]>;
264
266
  view_more_button?: {
265
267
  text: string;
@@ -9,7 +9,7 @@ import { createStore as $b8hua$createStore, reconcile as $b8hua$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.16";
12
+ const $8db9a15135765c11$export$83d89fbfd8236492 = "2.1.18";
13
13
  const $2855bffe06ef7a03$var$fallback_operator = "in";
14
14
  const $2855bffe06ef7a03$var$fallback_token = "";
15
15
  const $2855bffe06ef7a03$var$legacy_filter_prefix = "filter_";
@@ -903,20 +903,30 @@ function $63f1f8dbcd07d3b0$export$445d8d3f5f706a40(props, container_element) {
903
903
  if (insert_after_container) container_element.after(style_element);
904
904
  return [container_element, view_more_button_container(), view_less_button_container(), style_element];
905
905
  }
906
+ const $39ddb986053fb759$var$_tmpl$ = ["<h2", ' class="recs-title">', "</h2>"];
906
907
  function $39ddb986053fb759$export$d41d19e89346fa2(_ref) {
907
908
  let {
908
909
  recommendations_resource_: recommendations_resource_,
909
910
  product_card_template_: product_card_template_,
910
911
  layout_options_: layout_options_,
911
912
  merchant_: merchant_,
912
- market_: market_
913
+ market_: market_,
914
+ title_: title_
913
915
  } = _ref;
914
916
  const is_showing_something = $b8hua$createMemo(() => {
915
917
  var _recommendations_reso;
916
918
  return recommendations_resource_.loading || ((_recommendations_reso = recommendations_resource_()) === null || _recommendations_reso === void 0 ? void 0 : _recommendations_reso.length);
917
919
  });
920
+ const title = $b8hua$createMemo(() => title_ === null || title_ === void 0 ? void 0 : title_()); // In case getter/accessor creates elements, don't create them twice
918
921
  const num_placeholders_ = () => 20;
919
- const slider = $b8hua$createComponent((0, $002f09d00aac50b2$export$6649caad96ef8870), {
922
+ const slider = [$b8hua$createComponent((0, $b8hua$Show), {
923
+ get when() {
924
+ return title();
925
+ },
926
+ get children() {
927
+ return $b8hua$ssr($39ddb986053fb759$var$_tmpl$, $b8hua$ssrHydrationKey(), $b8hua$escape(title()));
928
+ }
929
+ }), $b8hua$createComponent((0, $002f09d00aac50b2$export$6649caad96ef8870), {
920
930
  arrow_height_: 25,
921
931
  arrow_width_: 12.5,
922
932
  disable_fading_: true,
@@ -955,7 +965,7 @@ function $39ddb986053fb759$export$d41d19e89346fa2(_ref) {
955
965
  }
956
966
  });
957
967
  }
958
- });
968
+ })];
959
969
  return $b8hua$createComponent((0, $b8hua$Show), {
960
970
  get when() {
961
971
  return is_showing_something();
@@ -1024,6 +1034,7 @@ function $d5d7e58c5c9d8db0$export$9574e176201e5e8d(props) {
1024
1034
  recommendations_resource_: recommendations_resource_,
1025
1035
  market_: () => props.market,
1026
1036
  merchant_: () => props.merchant,
1037
+ title_: () => props.title,
1027
1038
  layout_options_: $b8hua$createMemo(() => ({
1028
1039
  cols_at_size: $a9c7ba6087881ac2$export$6daf8749b65a1b77(props.cols_at_size),
1029
1040
  ...grid_spacing_override()
@@ -1033,7 +1044,8 @@ function $d5d7e58c5c9d8db0$export$9574e176201e5e8d(props) {
1033
1044
  })));
1034
1045
  }, "RecommendationSlider failed");
1035
1046
  }
1036
- const $e3efeb558d952696$var$_tmpl$ = ["<div", ' class="recommendation-grid"><!--$-->', "<!--/--><!--$-->", "<!--/--></div>"];
1047
+ const $e3efeb558d952696$var$_tmpl$ = ["<h2", ' class="recs-title">', "</h2>"],
1048
+ $e3efeb558d952696$var$_tmpl$2 = ["<div", ' class="recommendation-grid"><!--$-->', "<!--/--><!--$-->", "<!--/--></div>"];
1037
1049
  function $e3efeb558d952696$export$7da560f849543dff(_ref) {
1038
1050
  let {
1039
1051
  recommendations_resource_: recommendations_resource_,
@@ -1041,14 +1053,23 @@ function $e3efeb558d952696$export$7da560f849543dff(_ref) {
1041
1053
  layout_options_: layout_options_,
1042
1054
  merchant_: merchant_,
1043
1055
  market_: market_,
1044
- rows_object_: rows_object_
1056
+ rows_object_: rows_object_,
1057
+ title_: title_
1045
1058
  } = _ref;
1046
1059
  const is_showing_something = $b8hua$createMemo(() => {
1047
1060
  var _recommendations_reso;
1048
1061
  return recommendations_resource_.loading || ((_recommendations_reso = recommendations_resource_()) === null || _recommendations_reso === void 0 ? void 0 : _recommendations_reso.length);
1049
1062
  });
1063
+ const title = $b8hua$createMemo(() => title_ === null || title_ === void 0 ? void 0 : title_()); // In case getter/accessor creates elements, don't create them twice
1050
1064
  const num_placeholders_ = () => 20;
1051
- const elements = $b8hua$ssr($e3efeb558d952696$var$_tmpl$, $b8hua$ssrHydrationKey(), $b8hua$escape($ca55612a53dbbdd2$export$a2cc176055f8f08()), $b8hua$escape($b8hua$createComponent((0, $63f1f8dbcd07d3b0$export$d21e32dfedac04be), $b8hua$mergeProps1({
1065
+ const elements = [$b8hua$createComponent((0, $b8hua$Show), {
1066
+ get when() {
1067
+ return title();
1068
+ },
1069
+ get children() {
1070
+ return $b8hua$ssr($e3efeb558d952696$var$_tmpl$, $b8hua$ssrHydrationKey(), $b8hua$escape(title()));
1071
+ }
1072
+ }), $b8hua$ssr($e3efeb558d952696$var$_tmpl$2, $b8hua$ssrHydrationKey(), $b8hua$escape($ca55612a53dbbdd2$export$a2cc176055f8f08()), $b8hua$escape($b8hua$createComponent((0, $63f1f8dbcd07d3b0$export$d21e32dfedac04be), $b8hua$mergeProps1({
1052
1073
  get rows() {
1053
1074
  return rows_object_();
1054
1075
  },
@@ -1079,7 +1100,7 @@ function $e3efeb558d952696$export$7da560f849543dff(_ref) {
1079
1100
  }
1080
1101
  });
1081
1102
  }
1082
- }))));
1103
+ }))))];
1083
1104
  return $b8hua$createComponent((0, $b8hua$Show), {
1084
1105
  get when() {
1085
1106
  return is_showing_something();
@@ -1132,6 +1153,7 @@ function $b432b11321ad4c97$export$9756467d34d91cdb(props) {
1132
1153
  recommendations_resource_: recommendations_resource_,
1133
1154
  market_: () => props.market,
1134
1155
  merchant_: () => props.merchant,
1156
+ title_: () => props.title,
1135
1157
  layout_options_: $b8hua$createMemo(() => ({
1136
1158
  cols_at_size: $a9c7ba6087881ac2$export$6daf8749b65a1b77(props.cols_at_size),
1137
1159
  ...grid_spacing_override()
@@ -3285,7 +3307,7 @@ function $ef0f18a578b32578$export$82eafebb825fc23f() {
3285
3307
  }, props), () => $b8hua$ssr($ef0f18a578b32578$var$_tmpl$), true);
3286
3308
  }
3287
3309
  const $e354b2f9ce33cb75$var$_tmpl$ = ["<div", ' class="search-in-filters"><input type="text" class="query"', "><!--$-->", '<!--/--><button style="', '" class="clear-filter-search">', "</button></div>"];
3288
- const $e354b2f9ce33cb75$var$min_items_to_enable_filter_searching = 15; // For checkbox color and checkbox grid we 3x this
3310
+ const $e354b2f9ce33cb75$var$min_items_to_enable_filter_searching = 15; // For checkbox color and checkbox grid we 2x this
3289
3311
  function $e354b2f9ce33cb75$export$4b2c5292ffe0c5dd(filter_array_, section, i18n_) {
3290
3312
  const [filter_query_, set_filter_query_] = $b8hua$createSignal();
3291
3313
  // Check if we have enough items to enable searching
@@ -3296,7 +3318,7 @@ function $e354b2f9ce33cb75$export$4b2c5292ffe0c5dd(filter_array_, section, i18n_
3296
3318
  const type = (_filter$meta = filter.meta) === null || _filter$meta === void 0 ? void 0 : _filter$meta.type;
3297
3319
  if (type === "range") continue;
3298
3320
  const length = filter.meta.values.length;
3299
- count += type === "checkbox-color" || type === "checkbox-grid" ? length / 3 : length; // For checkbox-color we have two columns, checkbox-grid three, so we can show search later
3321
+ count += type === "checkbox-color" || type === "checkbox-grid" ? length / 2 : length; // For checkbox-color we have two columns, checkbox-grid three, so we can show search later
3300
3322
  }
3301
3323
 
3302
3324
  return count >= $e354b2f9ce33cb75$var$min_items_to_enable_filter_searching;
@@ -70,7 +70,7 @@ $parcel$export(module.exports, "defaultColsAtSize", () => $a3280f0aad997933$expo
70
70
  $parcel$export(module.exports, "defaultCategoryTitlePlugin", () => $a3280f0aad997933$export$7bf543b9d9be2c22);
71
71
  $parcel$export(module.exports, "version", () => $b757f75811f3261f$export$83d89fbfd8236492);
72
72
  /*! Depict.ai search and product listing SDK */
73
- const $b757f75811f3261f$export$83d89fbfd8236492 = "2.1.16";
73
+ const $b757f75811f3261f$export$83d89fbfd8236492 = "2.1.18";
74
74
  const $1ab22f2cd39b3061$var$fallback_operator = "in";
75
75
  const $1ab22f2cd39b3061$var$fallback_token = "";
76
76
  const $1ab22f2cd39b3061$var$legacy_filter_prefix = "filter_";
@@ -922,16 +922,26 @@ function $f48d0fbb00835aaa$export$445d8d3f5f706a40(props, container_element, ins
922
922
  if (insert_after_container) container_element.after(style_element);
923
923
  return [container_element, view_more_button_container(), view_less_button_container(), style_element];
924
924
  }
925
+ const $363ce4d1d71041aa$var$_tmpl$ = ["<h2", ' class="recs-title">', "</h2>"];
925
926
  function $363ce4d1d71041aa$export$d41d19e89346fa2({
926
927
  recommendations_resource_: recommendations_resource_,
927
928
  product_card_template_: product_card_template_,
928
929
  layout_options_: layout_options_,
929
930
  merchant_: merchant_,
930
- market_: market_
931
+ market_: market_,
932
+ title_: title_
931
933
  }) {
932
934
  const is_showing_something = $5vyXB$solidjs.createMemo(() => recommendations_resource_.loading || recommendations_resource_()?.length);
935
+ const title = $5vyXB$solidjs.createMemo(() => title_?.()); // In case getter/accessor creates elements, don't create them twice
933
936
  const num_placeholders_ = () => 20;
934
- const slider = $5vyXB$solidjsweb.createComponent((0, $a0e53f99354809d9$export$6649caad96ef8870), {
937
+ const slider = [$5vyXB$solidjsweb.createComponent((0, $5vyXB$solidjs.Show), {
938
+ get when() {
939
+ return title();
940
+ },
941
+ get children() {
942
+ return $5vyXB$solidjsweb.ssr($363ce4d1d71041aa$var$_tmpl$, $5vyXB$solidjsweb.ssrHydrationKey(), $5vyXB$solidjsweb.escape(title()));
943
+ }
944
+ }), $5vyXB$solidjsweb.createComponent((0, $a0e53f99354809d9$export$6649caad96ef8870), {
935
945
  arrow_height_: 25,
936
946
  arrow_width_: 12.5,
937
947
  disable_fading_: true,
@@ -970,7 +980,7 @@ function $363ce4d1d71041aa$export$d41d19e89346fa2({
970
980
  }
971
981
  });
972
982
  }
973
- });
983
+ })];
974
984
  return $5vyXB$solidjsweb.createComponent((0, $5vyXB$solidjs.Show), {
975
985
  get when() {
976
986
  return is_showing_something();
@@ -1036,6 +1046,7 @@ function $72f96c4782db0b1b$export$9574e176201e5e8d(props) {
1036
1046
  recommendations_resource_: recommendations_resource_,
1037
1047
  market_: () => props.market,
1038
1048
  merchant_: () => props.merchant,
1049
+ title_: () => props.title,
1039
1050
  layout_options_: $5vyXB$solidjs.createMemo(() => ({
1040
1051
  cols_at_size: $4e04be41243c3d80$export$6daf8749b65a1b77(props.cols_at_size),
1041
1052
  ...grid_spacing_override()
@@ -1045,18 +1056,28 @@ function $72f96c4782db0b1b$export$9574e176201e5e8d(props) {
1045
1056
  })));
1046
1057
  }, "RecommendationSlider failed");
1047
1058
  }
1048
- const $b8e79813f4f7ebe4$var$_tmpl$ = ["<div", ' class="recommendation-grid"><!--$-->', "<!--/--><!--$-->", "<!--/--></div>"];
1059
+ const $b8e79813f4f7ebe4$var$_tmpl$ = ["<h2", ' class="recs-title">', "</h2>"],
1060
+ $b8e79813f4f7ebe4$var$_tmpl$2 = ["<div", ' class="recommendation-grid"><!--$-->', "<!--/--><!--$-->", "<!--/--></div>"];
1049
1061
  function $b8e79813f4f7ebe4$export$7da560f849543dff({
1050
1062
  recommendations_resource_: recommendations_resource_,
1051
1063
  product_card_template_: product_card_template_,
1052
1064
  layout_options_: layout_options_,
1053
1065
  merchant_: merchant_,
1054
1066
  market_: market_,
1055
- rows_object_: rows_object_
1067
+ rows_object_: rows_object_,
1068
+ title_: title_
1056
1069
  }) {
1057
1070
  const is_showing_something = $5vyXB$solidjs.createMemo(() => recommendations_resource_.loading || recommendations_resource_()?.length);
1071
+ const title = $5vyXB$solidjs.createMemo(() => title_?.()); // In case getter/accessor creates elements, don't create them twice
1058
1072
  const num_placeholders_ = () => 20;
1059
- const elements = $5vyXB$solidjsweb.ssr($b8e79813f4f7ebe4$var$_tmpl$, $5vyXB$solidjsweb.ssrHydrationKey(), $5vyXB$solidjsweb.escape($fc23d7668ae0011d$export$a2cc176055f8f08()), $5vyXB$solidjsweb.escape($5vyXB$solidjsweb.createComponent((0, $f48d0fbb00835aaa$export$d21e32dfedac04be), $5vyXB$solidjsweb.mergeProps({
1073
+ const elements = [$5vyXB$solidjsweb.createComponent((0, $5vyXB$solidjs.Show), {
1074
+ get when() {
1075
+ return title();
1076
+ },
1077
+ get children() {
1078
+ return $5vyXB$solidjsweb.ssr($b8e79813f4f7ebe4$var$_tmpl$, $5vyXB$solidjsweb.ssrHydrationKey(), $5vyXB$solidjsweb.escape(title()));
1079
+ }
1080
+ }), $5vyXB$solidjsweb.ssr($b8e79813f4f7ebe4$var$_tmpl$2, $5vyXB$solidjsweb.ssrHydrationKey(), $5vyXB$solidjsweb.escape($fc23d7668ae0011d$export$a2cc176055f8f08()), $5vyXB$solidjsweb.escape($5vyXB$solidjsweb.createComponent((0, $f48d0fbb00835aaa$export$d21e32dfedac04be), $5vyXB$solidjsweb.mergeProps({
1060
1081
  get rows() {
1061
1082
  return rows_object_();
1062
1083
  },
@@ -1087,7 +1108,7 @@ function $b8e79813f4f7ebe4$export$7da560f849543dff({
1087
1108
  }
1088
1109
  });
1089
1110
  }
1090
- }))));
1111
+ }))))];
1091
1112
  return $5vyXB$solidjsweb.createComponent((0, $5vyXB$solidjs.Show), {
1092
1113
  get when() {
1093
1114
  return is_showing_something();
@@ -1137,6 +1158,7 @@ function $1f8dbf7e28b3eff2$export$9756467d34d91cdb(props) {
1137
1158
  recommendations_resource_: recommendations_resource_,
1138
1159
  market_: () => props.market,
1139
1160
  merchant_: () => props.merchant,
1161
+ title_: () => props.title,
1140
1162
  layout_options_: $5vyXB$solidjs.createMemo(() => ({
1141
1163
  cols_at_size: $4e04be41243c3d80$export$6daf8749b65a1b77(props.cols_at_size),
1142
1164
  ...grid_spacing_override()
@@ -3155,7 +3177,7 @@ function $87d7574e1d89d69b$export$82eafebb825fc23f(props = {}) {
3155
3177
  }, props), () => $5vyXB$solidjsweb.ssr($87d7574e1d89d69b$var$_tmpl$), true);
3156
3178
  }
3157
3179
  const $47d8681015b71901$var$_tmpl$ = ["<div", ' class="search-in-filters"><input type="text" class="query"', "><!--$-->", '<!--/--><button style="', '" class="clear-filter-search">', "</button></div>"];
3158
- const $47d8681015b71901$var$min_items_to_enable_filter_searching = 15; // For checkbox color and checkbox grid we 3x this
3180
+ const $47d8681015b71901$var$min_items_to_enable_filter_searching = 15; // For checkbox color and checkbox grid we 2x this
3159
3181
  function $47d8681015b71901$export$4b2c5292ffe0c5dd(filter_array_, section, i18n_) {
3160
3182
  const [filter_query_, set_filter_query_] = $5vyXB$solidjs.createSignal();
3161
3183
  // Check if we have enough items to enable searching
@@ -3165,7 +3187,7 @@ function $47d8681015b71901$export$4b2c5292ffe0c5dd(filter_array_, section, i18n_
3165
3187
  const type = filter.meta?.type;
3166
3188
  if (type === "range") continue;
3167
3189
  const length = filter.meta.values.length;
3168
- count += type === "checkbox-color" || type === "checkbox-grid" ? length / 3 : length; // For checkbox-color we have two columns, checkbox-grid three, so we can show search later
3190
+ count += type === "checkbox-color" || type === "checkbox-grid" ? length / 2 : length; // For checkbox-color we have two columns, checkbox-grid three, so we can show search later
3169
3191
  }
3170
3192
 
3171
3193
  return count >= $47d8681015b71901$var$min_items_to_enable_filter_searching;
@@ -7,7 +7,7 @@ import { CategorySuggestion, SearchSuggestionsResponse } from "@depict-ai/types/
7
7
  import { BaseSearchRequest } from "@depict-ai/types/api/BaseSearchRequest";
8
8
  import { SearchSuggestionsRequest } from "@depict-ai/types/api/SearchSuggestionsRequest";
9
9
  import { ProductListingRequestV2 } from "@depict-ai/types/api/ProductListingRequestV2";
10
- export const version = "2.1.16";
10
+ export const version = "2.1.18";
11
11
  /**
12
12
  * Use `javascript_media_query` but return a reactive accessor instead of taking a callback function
13
13
  */
@@ -242,6 +242,7 @@ type RecommendationSliderBaseProps<T extends Display> = {
242
242
  grid_spacing: SDKGridSpacing;
243
243
  cols_at_size: SDKColsAtSize;
244
244
  recommendations: Promise<T[]>;
245
+ title?: JSX.Element;
245
246
  };
246
247
  /**
247
248
  * Render a grid with provided recommendations. displayTransformers will not be applied for this since you yourself provide the displays. Options are reactive.
@@ -260,6 +261,7 @@ export function RecommendationSlider<T extends Display>(props: {
260
261
  type RecommendationGridBaseProps<T extends Display> = {
261
262
  grid_spacing: SDKGridSpacing;
262
263
  cols_at_size: SDKColsAtSize;
264
+ title?: JSX.Element;
263
265
  recommendations: Promise<T[]>;
264
266
  view_more_button?: {
265
267
  text: string;
@@ -6,7 +6,7 @@ import { createStore as $i7OB2$createStore, reconcile as $i7OB2$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.16";
9
+ const $ec291e0010116877$export$83d89fbfd8236492 = "2.1.18";
10
10
  const $4147651646da990a$var$fallback_operator = "in";
11
11
  const $4147651646da990a$var$fallback_token = "";
12
12
  const $4147651646da990a$var$legacy_filter_prefix = "filter_";
@@ -858,16 +858,26 @@ function $c8d5ff4524619fcd$export$445d8d3f5f706a40(props, container_element, ins
858
858
  if (insert_after_container) container_element.after(style_element);
859
859
  return [container_element, view_more_button_container(), view_less_button_container(), style_element];
860
860
  }
861
+ const $c4492d24952ed731$var$_tmpl$ = ["<h2", ' class="recs-title">', "</h2>"];
861
862
  function $c4492d24952ed731$export$d41d19e89346fa2({
862
863
  recommendations_resource_: recommendations_resource_,
863
864
  product_card_template_: product_card_template_,
864
865
  layout_options_: layout_options_,
865
866
  merchant_: merchant_,
866
- market_: market_
867
+ market_: market_,
868
+ title_: title_
867
869
  }) {
868
870
  const is_showing_something = $i7OB2$createMemo(() => recommendations_resource_.loading || recommendations_resource_()?.length);
871
+ const title = $i7OB2$createMemo(() => title_?.()); // In case getter/accessor creates elements, don't create them twice
869
872
  const num_placeholders_ = () => 20;
870
- const slider = $i7OB2$createComponent((0, $f32e14878e75af51$export$6649caad96ef8870), {
873
+ const slider = [$i7OB2$createComponent((0, $i7OB2$Show), {
874
+ get when() {
875
+ return title();
876
+ },
877
+ get children() {
878
+ return $i7OB2$ssr($c4492d24952ed731$var$_tmpl$, $i7OB2$ssrHydrationKey(), $i7OB2$escape(title()));
879
+ }
880
+ }), $i7OB2$createComponent((0, $f32e14878e75af51$export$6649caad96ef8870), {
871
881
  arrow_height_: 25,
872
882
  arrow_width_: 12.5,
873
883
  disable_fading_: true,
@@ -906,7 +916,7 @@ function $c4492d24952ed731$export$d41d19e89346fa2({
906
916
  }
907
917
  });
908
918
  }
909
- });
919
+ })];
910
920
  return $i7OB2$createComponent((0, $i7OB2$Show), {
911
921
  get when() {
912
922
  return is_showing_something();
@@ -972,6 +982,7 @@ function $ee116da074deb002$export$9574e176201e5e8d(props) {
972
982
  recommendations_resource_: recommendations_resource_,
973
983
  market_: () => props.market,
974
984
  merchant_: () => props.merchant,
985
+ title_: () => props.title,
975
986
  layout_options_: $i7OB2$createMemo(() => ({
976
987
  cols_at_size: $b5cccc8ee7d24677$export$6daf8749b65a1b77(props.cols_at_size),
977
988
  ...grid_spacing_override()
@@ -981,18 +992,28 @@ function $ee116da074deb002$export$9574e176201e5e8d(props) {
981
992
  })));
982
993
  }, "RecommendationSlider failed");
983
994
  }
984
- const $3da8afe3ed57cf34$var$_tmpl$ = ["<div", ' class="recommendation-grid"><!--$-->', "<!--/--><!--$-->", "<!--/--></div>"];
995
+ const $3da8afe3ed57cf34$var$_tmpl$ = ["<h2", ' class="recs-title">', "</h2>"],
996
+ $3da8afe3ed57cf34$var$_tmpl$2 = ["<div", ' class="recommendation-grid"><!--$-->', "<!--/--><!--$-->", "<!--/--></div>"];
985
997
  function $3da8afe3ed57cf34$export$7da560f849543dff({
986
998
  recommendations_resource_: recommendations_resource_,
987
999
  product_card_template_: product_card_template_,
988
1000
  layout_options_: layout_options_,
989
1001
  merchant_: merchant_,
990
1002
  market_: market_,
991
- rows_object_: rows_object_
1003
+ rows_object_: rows_object_,
1004
+ title_: title_
992
1005
  }) {
993
1006
  const is_showing_something = $i7OB2$createMemo(() => recommendations_resource_.loading || recommendations_resource_()?.length);
1007
+ const title = $i7OB2$createMemo(() => title_?.()); // In case getter/accessor creates elements, don't create them twice
994
1008
  const num_placeholders_ = () => 20;
995
- const elements = $i7OB2$ssr($3da8afe3ed57cf34$var$_tmpl$, $i7OB2$ssrHydrationKey(), $i7OB2$escape($a458486f22b22f63$export$a2cc176055f8f08()), $i7OB2$escape($i7OB2$createComponent((0, $c8d5ff4524619fcd$export$d21e32dfedac04be), $i7OB2$mergeProps1({
1009
+ const elements = [$i7OB2$createComponent((0, $i7OB2$Show), {
1010
+ get when() {
1011
+ return title();
1012
+ },
1013
+ get children() {
1014
+ return $i7OB2$ssr($3da8afe3ed57cf34$var$_tmpl$, $i7OB2$ssrHydrationKey(), $i7OB2$escape(title()));
1015
+ }
1016
+ }), $i7OB2$ssr($3da8afe3ed57cf34$var$_tmpl$2, $i7OB2$ssrHydrationKey(), $i7OB2$escape($a458486f22b22f63$export$a2cc176055f8f08()), $i7OB2$escape($i7OB2$createComponent((0, $c8d5ff4524619fcd$export$d21e32dfedac04be), $i7OB2$mergeProps1({
996
1017
  get rows() {
997
1018
  return rows_object_();
998
1019
  },
@@ -1023,7 +1044,7 @@ function $3da8afe3ed57cf34$export$7da560f849543dff({
1023
1044
  }
1024
1045
  });
1025
1046
  }
1026
- }))));
1047
+ }))))];
1027
1048
  return $i7OB2$createComponent((0, $i7OB2$Show), {
1028
1049
  get when() {
1029
1050
  return is_showing_something();
@@ -1073,6 +1094,7 @@ function $9ea5383493360761$export$9756467d34d91cdb(props) {
1073
1094
  recommendations_resource_: recommendations_resource_,
1074
1095
  market_: () => props.market,
1075
1096
  merchant_: () => props.merchant,
1097
+ title_: () => props.title,
1076
1098
  layout_options_: $i7OB2$createMemo(() => ({
1077
1099
  cols_at_size: $b5cccc8ee7d24677$export$6daf8749b65a1b77(props.cols_at_size),
1078
1100
  ...grid_spacing_override()
@@ -3091,7 +3113,7 @@ function $16f0ed5ea30d8d9c$export$82eafebb825fc23f(props = {}) {
3091
3113
  }, props), () => $i7OB2$ssr($16f0ed5ea30d8d9c$var$_tmpl$), true);
3092
3114
  }
3093
3115
  const $e01b34f289b61435$var$_tmpl$ = ["<div", ' class="search-in-filters"><input type="text" class="query"', "><!--$-->", '<!--/--><button style="', '" class="clear-filter-search">', "</button></div>"];
3094
- const $e01b34f289b61435$var$min_items_to_enable_filter_searching = 15; // For checkbox color and checkbox grid we 3x this
3116
+ const $e01b34f289b61435$var$min_items_to_enable_filter_searching = 15; // For checkbox color and checkbox grid we 2x this
3095
3117
  function $e01b34f289b61435$export$4b2c5292ffe0c5dd(filter_array_, section, i18n_) {
3096
3118
  const [filter_query_, set_filter_query_] = $i7OB2$createSignal();
3097
3119
  // Check if we have enough items to enable searching
@@ -3101,7 +3123,7 @@ function $e01b34f289b61435$export$4b2c5292ffe0c5dd(filter_array_, section, i18n_
3101
3123
  const type = filter.meta?.type;
3102
3124
  if (type === "range") continue;
3103
3125
  const length = filter.meta.values.length;
3104
- count += type === "checkbox-color" || type === "checkbox-grid" ? length / 3 : length; // For checkbox-color we have two columns, checkbox-grid three, so we can show search later
3126
+ count += type === "checkbox-color" || type === "checkbox-grid" ? length / 2 : length; // For checkbox-color we have two columns, checkbox-grid three, so we can show search later
3105
3127
  }
3106
3128
 
3107
3129
  return count >= $e01b34f289b61435$var$min_items_to_enable_filter_searching;