@depict-ai/ui 1.4.25 → 2.0.0

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@depict-ai/ui",
3
- "version": "1.4.25",
3
+ "version": "2.0.0",
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",
@@ -222,23 +222,23 @@
222
222
  "@babel/preset-env": "latest",
223
223
  "@babel/preset-typescript": "latest",
224
224
  "@jest/globals": "^29.3.1",
225
- "@parcel/babel-preset-env": "latest",
226
- "@parcel/resolver-default": "^2.8.0",
225
+ "@parcel/babel-preset-env": "^2.9.3",
226
+ "@parcel/resolver-default": "^2.9.3",
227
227
  "@types/jest": "^29.2.4",
228
228
  "@types/node": "^18.11.11",
229
229
  "babel-preset-solid": "latest",
230
230
  "jest": "^29.3.1",
231
231
  "lodash": "^4.17.21",
232
- "parcel": "latest",
232
+ "parcel": "^2.9.3",
233
233
  "ts-jest": "^29.0.3"
234
234
  },
235
235
  "dependencies": {
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.1.4",
240
- "@depict-ai/types": "^1.0.38",
241
- "@depict-ai/utilishared": "^1.0.40",
239
+ "@depict-ai/plp-styling": "^1.2.0",
240
+ "@depict-ai/types": "^1.0.39",
241
+ "@depict-ai/utilishared": "^1.0.41",
242
242
  "solid-js": "^1.7.3"
243
243
  },
244
244
  "type": "module",
@@ -66,7 +66,7 @@ $parcel$export(module.exports, "defaultColsAtSize", () => $33eed84f447aa0c0$expo
66
66
  $parcel$export(module.exports, "defaultCategoryTitlePlugin", () => $33eed84f447aa0c0$export$7bf543b9d9be2c22);
67
67
  $parcel$export(module.exports, "version", () => $aa1938dec50d6c12$export$83d89fbfd8236492);
68
68
  /*! Depict.ai search and product listing SDK */
69
- const $aa1938dec50d6c12$export$83d89fbfd8236492 = "1.4.25";
69
+ const $aa1938dec50d6c12$export$83d89fbfd8236492 = "2.0.0";
70
70
  const $5401a6698b0c0658$var$transform_elements = sorted_cols_at_size => {
71
71
  const cols_at_size = [];
72
72
  for (let i = 0; i < sorted_cols_at_size.length; i++) {
@@ -140,7 +140,9 @@ function $b1ea8d47bcf03111$export$ff7109b9b2b206ba(sdk_cols_at_size) {
140
140
  }
141
141
  function $8edd3cf30d1fd8b4$export$a2cc176055f8f08() {
142
142
  const text = "Please try setting `colsAtSize` on the `SearchPage`/`CategoryPage` components to change the grid before setting it with CSS. If you do with CSS, set `ColsAtSize` to an empty array to ensure no declarations created by the SDK leak through.";
143
- return (0, $3hooq$solidjsweb.isServer) ? "<!-- ".concat(text, " -->") : document.createComment(text);
143
+ return (0, $3hooq$solidjsweb.isServer) ? {
144
+ t: "<!-- ".concat(text, " -->")
145
+ } : document.createComment(text);
144
146
  }
145
147
  function $e82d0d417fa613e8$export$2f0cbfbb4354bb52(elements) {
146
148
  // FYI this probably doesn't work on hugely deep nestings or large amount of elements
@@ -355,22 +357,34 @@ function $1b3cf201cdd38687$export$b69d0d92862de18b(props) {
355
357
  }
356
358
  });
357
359
  }
358
- const $6c2c739b113a8ddf$var$_tmpl$ = ["<style", ' type="text/css">', "</style>"],
359
- $6c2c739b113a8ddf$var$_tmpl$2 = ["<div", ' class="', '">', "</div>"];
360
+ const $6c2c739b113a8ddf$var$_tmpl$ = ["<div", ' class="', '">', "</div>"],
361
+ $6c2c739b113a8ddf$var$_tmpl$2 = ["<style", ' type="text/css">', "</style>"];
360
362
  function $6c2c739b113a8ddf$export$d21e32dfedac04be(props) {
361
- const container_element_ = $3hooq$solidjsweb.ssrElement("div", props.element_attributes, () => $3hooq$solidjsweb.escape(props.children), true); // Don't want this in the error boundary below, it should only be for the actual layouting
363
+ const container_class = "x" + $3hooq$solidjs.createUniqueId();
364
+ const container_element_ = $3hooq$solidjsweb.ssrElement("div", () => ({
365
+ ...props.element_attributes,
366
+ "classList": {
367
+ [container_class]: true
368
+ }
369
+ }), () => $3hooq$solidjsweb.escape(props.children), true); // Don't want this in the error boundary below, it should only be for the actual layouting
362
370
  return $3hooq$solidjsweb.createComponent((0, $1b3cf201cdd38687$export$b69d0d92862de18b), {
363
371
  get message_() {
364
372
  return "Failed calculating " + props.layout + " layout";
365
373
  },
366
374
  severity_: "error",
367
375
  get children() {
368
- return $6c2c739b113a8ddf$export$445d8d3f5f706a40(props, container_element_);
376
+ return $6c2c739b113a8ddf$export$445d8d3f5f706a40(props, container_element_, false, container_class);
369
377
  }
370
378
  });
371
379
  }
372
380
  function $6c2c739b113a8ddf$export$445d8d3f5f706a40(props, container_element) {
373
381
  let insert_after_container = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
382
+ let container_class = arguments.length > 3 ? arguments[3] : undefined;
383
+ if (!container_class) {
384
+ // only try to add if it wasn't provided, so that we have a code path without classList when doing SSR
385
+ container_class = $3hooq$depictaiutilishared.make_random_classname();
386
+ container_element.classList.add(container_class);
387
+ }
374
388
  // Copy of Layout from utilishared but using solid-js signals instead of async iterable IPNS
375
389
  const show_all_rows = $3hooq$solidjs.createMemo(() => props.rows === "all");
376
390
  const rows_or_empty_object = $3hooq$solidjs.createMemo(() => show_all_rows() ? {} : props.rows);
@@ -385,10 +399,9 @@ function $6c2c739b113a8ddf$export$445d8d3f5f706a40(props, container_element) {
385
399
  return !(!button || Array.isArray(button) && !button.length);
386
400
  });
387
401
  const [get_styling, set_styling] = $3hooq$solidjs.createSignal();
388
- const container_class = $3hooq$depictaiutilishared.make_random_classname();
389
402
  const selector_beginning = ".depict .".concat(container_class, ">"); // class so ppl can have id if needed
390
403
  const [get_children_count, set_children_count] = $3hooq$solidjs.createSignal(0);
391
- const update_children_count = () => set_children_count(container_element.children.length);
404
+ const update_children_count = () => (0, $3hooq$solidjsweb.isServer) ? 20 : set_children_count(container_element.children.length);
392
405
  const col_styling = $3hooq$solidjs.createMemo(() => $3hooq$depictaiutilishared.n_col_styling_with_dist(selector_beginning, props.grid_spacing, props.cols_at_size, props.layout, props.override_vertical_spacing));
393
406
  const default_currently_visible_signal = $3hooq$solidjs.createSignal($3hooq$solidjs.untrack(() => {
394
407
  var _rows_or_empty_object;
@@ -397,19 +410,19 @@ function $6c2c739b113a8ddf$export$445d8d3f5f706a40(props, container_element) {
397
410
  const rows_visible_signal = $3hooq$solidjs.createMemo(() => rows_or_empty_object().currently_visible || default_currently_visible_signal);
398
411
  const get_rows_visible = $3hooq$solidjs.createMemo(() => rows_visible_signal()[0]());
399
412
  const set_rows_visible = $3hooq$solidjs.createMemo(() => rows_visible_signal()[1]);
400
- const view_more_button_class = $3hooq$depictaiutilishared.make_random_classname();
401
- const view_less_button_class = $3hooq$depictaiutilishared.make_random_classname();
402
- const style_element = $3hooq$solidjsweb.ssr($6c2c739b113a8ddf$var$_tmpl$, $3hooq$solidjsweb.ssrHydrationKey(), get_styling);
403
- const view_more_button_container = $3hooq$solidjs.createMemo(() => have_a_view_more_button() && $3hooq$solidjsweb.ssr($6c2c739b113a8ddf$var$_tmpl$2, $3hooq$solidjsweb.ssrHydrationKey(), "load-more-container ".concat($3hooq$solidjsweb.escape(view_more_button_class, true)), $3hooq$solidjsweb.escape(rows_or_empty_object().button)));
413
+ const view_more_button_class = "m" + $3hooq$solidjs.createUniqueId();
414
+ const view_less_button_class = "l" + $3hooq$solidjs.createUniqueId(); // https://github.com/solidjs/solid-docs/issues/263#issuecomment-1622388079
415
+ const view_more_button_container = $3hooq$solidjs.createMemo(() => have_a_view_more_button() && $3hooq$solidjsweb.ssr($6c2c739b113a8ddf$var$_tmpl$, $3hooq$solidjsweb.ssrHydrationKey(), "load-more-container ".concat($3hooq$solidjsweb.escape(view_more_button_class, true)), $3hooq$solidjsweb.escape(rows_or_empty_object().button)));
404
416
  // We need to have duplicate buttons because which ones is shown depends on the number of rows visible and therefore on the viewport size and therefore on the css media queries
405
- const view_less_button_container = $3hooq$solidjs.createMemo(() => have_a_view_less_button() && $3hooq$solidjsweb.ssr($6c2c739b113a8ddf$var$_tmpl$2, $3hooq$solidjsweb.ssrHydrationKey(), "load-less-container ".concat($3hooq$solidjsweb.escape(view_less_button_class, true)), $3hooq$solidjsweb.escape(rows_or_empty_object().view_less_button)));
406
- container_element.classList.add(container_class);
417
+ const view_less_button_container = $3hooq$solidjs.createMemo(() => have_a_view_less_button() && $3hooq$solidjsweb.ssr($6c2c739b113a8ddf$var$_tmpl$, $3hooq$solidjsweb.ssrHydrationKey(), "load-less-container ".concat($3hooq$solidjsweb.escape(view_less_button_class, true)), $3hooq$solidjsweb.escape(rows_or_empty_object().view_less_button)));
418
+ const [force_style_update, set_force_style_update] = $3hooq$solidjs.createSignal("");
407
419
  $3hooq$solidjs.createComputed(() => {
408
420
  // Make sure we don't have more rows visible than max_rows (this could happen by max_rows being decreased)
409
421
  const rows_visible = get_rows_visible();
410
422
  const max_rows = rows_or_empty_object().max_rows;
411
423
  if (!isNaN(max_rows) && max_rows >= 0 && rows_visible > max_rows) set_rows_visible()(max_rows);
412
424
  });
425
+ $3hooq$solidjs.createEffect(() => set_force_style_update(" ")); // force style update after hydration due to https://discord.com/channels/722131463138705510/722167424186843267/1151544212517552168
413
426
  $3hooq$solidjs.createRenderEffect(() => {
414
427
  // Be careful to only read show_all_rows in here (ofc doesn't apply to nested effects)
415
428
  if (show_all_rows()) {
@@ -418,11 +431,13 @@ function $6c2c739b113a8ddf$export$445d8d3f5f706a40(props, container_element) {
418
431
  return;
419
432
  }
420
433
  update_children_count();
421
- const mutation_observer = new MutationObserver($3hooq$depictaiutilishared.catchify(update_children_count));
422
- mutation_observer.observe(container_element, {
423
- childList: true
424
- });
425
- $3hooq$solidjs.onCleanup(() => mutation_observer.disconnect());
434
+ if (!(0, $3hooq$solidjsweb.isServer)) {
435
+ const mutation_observer = new MutationObserver($3hooq$depictaiutilishared.catchify(update_children_count));
436
+ mutation_observer.observe(container_element, {
437
+ childList: true
438
+ });
439
+ $3hooq$solidjs.onCleanup(() => mutation_observer.disconnect());
440
+ }
426
441
  set_styling(
427
442
  // this is needed because solid will think that the memo-accessor is a setter function otherwise
428
443
  () => $3hooq$solidjs.createMemo(() => {
@@ -433,7 +448,7 @@ function $6c2c739b113a8ddf$export$445d8d3f5f706a40(props, container_element) {
433
448
  } = rows_or_empty_object();
434
449
  const rows_visible = get_rows_visible();
435
450
  const children_count = get_children_count();
436
- return col_styling() + props.cols_at_size.map(options => {
451
+ return force_style_update() + col_styling() + props.cols_at_size.map(options => {
437
452
  const [recs_per_row, min, max] = options;
438
453
  let should_hide_view_more_button;
439
454
  let visible_recs;
@@ -454,6 +469,7 @@ function $6c2c739b113a8ddf$export$445d8d3f5f706a40(props, container_element) {
454
469
  }).join("");
455
470
  }));
456
471
  });
472
+ const style_element = $3hooq$solidjsweb.ssr($6c2c739b113a8ddf$var$_tmpl$2, $3hooq$solidjsweb.ssrHydrationKey(), get_styling); // need to create this after set_styling has been called or else there will be no styling in the SSR'd output
457
473
  if (insert_after_container) container_element.after(style_element);
458
474
  return [container_element, view_more_button_container(), view_less_button_container(), style_element];
459
475
  }
@@ -470,12 +486,20 @@ function $ad8ec7729fffeb9c$export$6649caad96ef8870(_ref) {
470
486
  slider_ref_: slider_ref_,
471
487
  faded_opacity_ = 0.7,
472
488
  mutation_plugins_ = [],
473
- disable_fading_: disable_fading_
489
+ disable_fading_: disable_fading_,
490
+ arrow_width_: arrow_width_,
491
+ arrow_height_: arrow_height_
474
492
  } = _ref;
475
493
  const slider = new (0, $3hooq$depictaiutilishared.Amazing_Slider)({
476
494
  button_contents: {
477
- left: [$3hooq$solidjsweb.ssr($ad8ec7729fffeb9c$var$_tmpl$, $3hooq$solidjsweb.ssrHydrationKey(), $3hooq$solidjsweb.escape($3hooq$solidjsweb.createComponent((0, $9d19451330d04c3c$export$8be2714ec7f169ee), {})))],
478
- right: [$3hooq$solidjsweb.ssr($ad8ec7729fffeb9c$var$_tmpl$, $3hooq$solidjsweb.ssrHydrationKey(), $3hooq$solidjsweb.escape($3hooq$solidjsweb.createComponent((0, $9d19451330d04c3c$export$8be2714ec7f169ee), {})))]
495
+ left: [$3hooq$solidjsweb.ssr($ad8ec7729fffeb9c$var$_tmpl$, $3hooq$solidjsweb.ssrHydrationKey(), $3hooq$solidjsweb.escape($3hooq$solidjsweb.createComponent((0, $9d19451330d04c3c$export$8be2714ec7f169ee), {
496
+ height_: arrow_height_,
497
+ width_: arrow_width_
498
+ })))],
499
+ right: [$3hooq$solidjsweb.ssr($ad8ec7729fffeb9c$var$_tmpl$, $3hooq$solidjsweb.ssrHydrationKey(), $3hooq$solidjsweb.escape($3hooq$solidjsweb.createComponent((0, $9d19451330d04c3c$export$8be2714ec7f169ee), {
500
+ height_: arrow_height_,
501
+ width_: arrow_width_
502
+ })))]
479
503
  },
480
504
  constructor_plugins: [$3hooq$depictaiutilishared.slider_snap_css().constructor_plugin],
481
505
  mutation_plugins: [...(disable_fading_ ? [] : [$3hooq$depictaiutilishared.slider_fading_factory({
@@ -502,6 +526,8 @@ function $236a257ee52e5414$export$d41d19e89346fa2(_ref) {
502
526
  });
503
527
  const num_placeholders_ = () => 20;
504
528
  const slider = $3hooq$solidjsweb.createComponent((0, $ad8ec7729fffeb9c$export$6649caad96ef8870), {
529
+ arrow_height_: 25,
530
+ arrow_width_: 12.5,
505
531
  disable_fading_: true,
506
532
  slider_ref_: slider => {
507
533
  const {
@@ -546,32 +572,64 @@ function $236a257ee52e5414$export$d41d19e89346fa2(_ref) {
546
572
  children: slider
547
573
  });
548
574
  }
575
+ function $d05611ff6b8c8357$export$23fca46f3143581f(component, error_message) {
576
+ const component_in_error_boundary = do_with_elements => {
577
+ const error_boundary_wrapped = $1b3cf201cdd38687$export$b69d0d92862de18b({
578
+ severity_: "error",
579
+ message_: error_message,
580
+ get children() {
581
+ const elements = component();
582
+ do_with_elements === null || do_with_elements === void 0 || do_with_elements(elements);
583
+ return elements;
584
+ }
585
+ });
586
+ // This might return an accessor, in that case we need to "unwrap" it since our SDK consumers expect HTML elements or arrays thereof
587
+ if (typeof error_boundary_wrapped === "function")
588
+ // @ts-ignore
589
+ return error_boundary_wrapped();
590
+ // On the server it returns a string, so we just return that
591
+ return error_boundary_wrapped;
592
+ };
593
+ const owner = $3hooq$solidjs.getOwner();
594
+ if (owner == null) return $3hooq$solidjs.createRoot(dispose => {
595
+ // if we're not already run in a root, create a root and automatically dispose it when the first returned element is removed from the DOM
596
+ return component_in_error_boundary(elements => {
597
+ const have_multiple = Array.isArray(elements);
598
+ if (have_multiple ? !(elements !== null && elements !== void 0 && elements.length) : !elements) return;
599
+ (0, $3hooq$depictaiutilishared.observer).onremoved(have_multiple ? elements[0] : elements, dispose);
600
+ });
601
+ });else
602
+ // we're already in a root so cleanups are handled
603
+ return component_in_error_boundary();
604
+ }
549
605
  const $2badc30d7c6610e1$var$_tmpl$ = ["<div", ' class="depict recommendations">', "</div>"];
550
606
  function $2badc30d7c6610e1$export$9574e176201e5e8d(props) {
551
- const grid_spacing_override = $3hooq$solidjs.createMemo(() => {
552
- const {
553
- grid_spacing: grid_spacing
554
- } = props; // can be reactive
555
- return typeof grid_spacing === "string" ? {
556
- grid_spacing: grid_spacing
557
- } : {
558
- override_vertical_spacing: grid_spacing.vertical,
559
- grid_spacing: grid_spacing.horizontal
560
- };
561
- });
562
- const [recommendations_resource_] = $3hooq$solidjs.createResource(() => props.recommendations, recs => recs);
563
- return $3hooq$solidjsweb.ssr($2badc30d7c6610e1$var$_tmpl$, $3hooq$solidjsweb.ssrHydrationKey(), $3hooq$solidjsweb.escape($236a257ee52e5414$export$d41d19e89346fa2({
564
- product_card_template_: function () {
565
- return props.product_card_template(...arguments);
566
- },
567
- recommendations_resource_: recommendations_resource_,
568
- market_: () => props.market,
569
- merchant_: () => props.merchant,
570
- layout_options_: $3hooq$solidjs.createMemo(() => ({
571
- cols_at_size: $5401a6698b0c0658$export$6daf8749b65a1b77($b1ea8d47bcf03111$export$ff7109b9b2b206ba(props.cols_at_size)),
572
- ...grid_spacing_override()
573
- }))
574
- })));
607
+ return $d05611ff6b8c8357$export$23fca46f3143581f(() => {
608
+ const grid_spacing_override = $3hooq$solidjs.createMemo(() => {
609
+ const {
610
+ grid_spacing: grid_spacing
611
+ } = props; // can be reactive
612
+ return typeof grid_spacing === "string" ? {
613
+ grid_spacing: grid_spacing
614
+ } : {
615
+ override_vertical_spacing: grid_spacing.vertical,
616
+ grid_spacing: grid_spacing.horizontal
617
+ };
618
+ });
619
+ const [recommendations_resource_] = $3hooq$solidjs.createResource(() => props.recommendations, recs => recs);
620
+ return $3hooq$solidjsweb.ssr($2badc30d7c6610e1$var$_tmpl$, $3hooq$solidjsweb.ssrHydrationKey(), $3hooq$solidjsweb.escape($236a257ee52e5414$export$d41d19e89346fa2({
621
+ product_card_template_: function () {
622
+ return props.product_card_template(...arguments);
623
+ },
624
+ recommendations_resource_: recommendations_resource_,
625
+ market_: () => props.market,
626
+ merchant_: () => props.merchant,
627
+ layout_options_: $3hooq$solidjs.createMemo(() => ({
628
+ cols_at_size: $5401a6698b0c0658$export$6daf8749b65a1b77($b1ea8d47bcf03111$export$ff7109b9b2b206ba(props.cols_at_size)),
629
+ ...grid_spacing_override()
630
+ }))
631
+ })));
632
+ }, "RecommendationSlider failed");
575
633
  }
576
634
  const $2c920813c92d6987$var$_tmpl$ = ["<div", ' class="recommendation-grid"><!--#-->', "<!--/--><!--#-->", "<!--/--></div>"];
577
635
  function $2c920813c92d6987$export$7da560f849543dff(_ref) {
@@ -631,40 +689,43 @@ function $2c920813c92d6987$export$7da560f849543dff(_ref) {
631
689
  const $41227f10ad680afd$var$_tmpl$ = ["<button", ' class="show-more major" type="button">', "</button>"],
632
690
  $41227f10ad680afd$var$_tmpl$2 = ["<div", ' class="depict plp recommendations">', "</div>"];
633
691
  function $41227f10ad680afd$export$9756467d34d91cdb(props) {
634
- const rows_object_ = $3hooq$solidjs.createMemo(() => {
635
- const view_more_button = props.view_more_button;
636
- if (!view_more_button) return "all";
637
- return {
638
- start_rows: view_more_button.start_rows,
639
- rows_per_click: view_more_button.rows_per_click,
640
- button: $3hooq$solidjsweb.ssr($41227f10ad680afd$var$_tmpl$, $3hooq$solidjsweb.ssrHydrationKey(), $3hooq$solidjsweb.escape(view_more_button.text))
641
- };
642
- });
643
- const grid_spacing_override = $3hooq$solidjs.createMemo(() => {
644
- const {
645
- grid_spacing: grid_spacing
646
- } = props; // can be reactive
647
- return typeof grid_spacing === "string" ? {
648
- grid_spacing: grid_spacing
649
- } : {
650
- override_vertical_spacing: grid_spacing.vertical,
651
- grid_spacing: grid_spacing.horizontal
652
- };
653
- });
654
- const [recommendations_resource_] = $3hooq$solidjs.createResource(() => props.recommendations, recs => recs);
655
- return $3hooq$solidjsweb.ssr($41227f10ad680afd$var$_tmpl$2, $3hooq$solidjsweb.ssrHydrationKey(), $3hooq$solidjsweb.escape($2c920813c92d6987$export$7da560f849543dff({
656
- rows_object_: rows_object_,
657
- product_card_template_: function () {
658
- return props.product_card_template(...arguments);
659
- },
660
- recommendations_resource_: recommendations_resource_,
661
- market_: () => props.market,
662
- merchant_: () => props.merchant,
663
- layout_options_: $3hooq$solidjs.createMemo(() => ({
664
- cols_at_size: $5401a6698b0c0658$export$6daf8749b65a1b77($b1ea8d47bcf03111$export$ff7109b9b2b206ba(props.cols_at_size)),
665
- ...grid_spacing_override()
666
- }))
667
- })));
692
+ return $d05611ff6b8c8357$export$23fca46f3143581f(() => {
693
+ const rows_object_ = $3hooq$solidjs.createMemo(() => {
694
+ var _view_more_button$row;
695
+ const view_more_button = props.view_more_button;
696
+ if (!view_more_button) return "all";
697
+ return {
698
+ start_rows: view_more_button.start_rows,
699
+ rows_per_click: (_view_more_button$row = view_more_button.rows_per_click) !== null && _view_more_button$row !== void 0 ? _view_more_button$row : 2,
700
+ button: $3hooq$solidjsweb.ssr($41227f10ad680afd$var$_tmpl$, $3hooq$solidjsweb.ssrHydrationKey(), $3hooq$solidjsweb.escape(view_more_button.text))
701
+ };
702
+ });
703
+ const grid_spacing_override = $3hooq$solidjs.createMemo(() => {
704
+ const {
705
+ grid_spacing: grid_spacing
706
+ } = props; // can be reactive
707
+ return typeof grid_spacing === "string" ? {
708
+ grid_spacing: grid_spacing
709
+ } : {
710
+ override_vertical_spacing: grid_spacing.vertical,
711
+ grid_spacing: grid_spacing.horizontal
712
+ };
713
+ });
714
+ const [recommendations_resource_] = $3hooq$solidjs.createResource(() => props.recommendations, recs => recs);
715
+ return $3hooq$solidjsweb.ssr($41227f10ad680afd$var$_tmpl$2, $3hooq$solidjsweb.ssrHydrationKey(), $3hooq$solidjsweb.escape($2c920813c92d6987$export$7da560f849543dff({
716
+ rows_object_: rows_object_,
717
+ product_card_template_: function () {
718
+ return props.product_card_template(...arguments);
719
+ },
720
+ recommendations_resource_: recommendations_resource_,
721
+ market_: () => props.market,
722
+ merchant_: () => props.merchant,
723
+ layout_options_: $3hooq$solidjs.createMemo(() => ({
724
+ cols_at_size: $5401a6698b0c0658$export$6daf8749b65a1b77($b1ea8d47bcf03111$export$ff7109b9b2b206ba(props.cols_at_size)),
725
+ ...grid_spacing_override()
726
+ }))
727
+ })));
728
+ }, "RecommendationGrid failed");
668
729
  }
669
730
  function $858fdcf73148519f$export$e6fffe67d4cdd848(whatToWatch) {
670
731
  const [size, setSize] = $3hooq$solidjs.createSignal(0);
@@ -1059,16 +1120,16 @@ function $c5842bdb10e57229$export$fecbb157621501bd(_ref) {
1059
1120
  return outmost_element;
1060
1121
  }
1061
1122
  const $6b92e147c6e24046$var$_tmpl$ = ["<span", ' class="count">', "</span>"],
1062
- $6b92e147c6e24046$var$_tmpl$2 = ["<label", ' class="', '"', '><div class="left"><input type="checkbox"', "", '><span class="custom-indicator"></span><span class="text line-clamp">', "</span></div><!--#-->", "<!--/--></label>"];
1123
+ $6b92e147c6e24046$var$_tmpl$2 = ["<label", ' class="', '"', '><div class="left"><input type="checkbox"', "", "", '><span class="custom-indicator"></span><span class="text line-clamp">', "</span></div><!--#-->", "<!--/--></label>"];
1063
1124
  const $6b92e147c6e24046$export$48513f6b9f8ce62d = props => {
1064
1125
  // It seems like there's no diffing without memos here (since we often just have computations in the getters above that update to the same result often because their dependencies change with unrelated changes often), so put memos here to avoid unneeded DOM changes
1065
1126
  const count = $3hooq$solidjs.createMemo(() => props.count_);
1066
1127
  const label = $3hooq$solidjs.createMemo(() => props.label_);
1067
1128
  const checked = $3hooq$solidjs.createMemo(() => props.checked_);
1068
1129
  const value = $3hooq$solidjs.createMemo(() => props.value_);
1069
- const is_count_zero = $3hooq$solidjs.createMemo(() => props.is_count_zero_);
1130
+ const is_count_zero = $3hooq$solidjs.createMemo(() => props.is_count_zero_ || count() === 0);
1070
1131
  const id = $3hooq$depictaiutilishared.make_random_classname();
1071
- return (/* We can't use actual margin because ExpandingContainer gets messed up */$3hooq$solidjsweb.ssr($6b92e147c6e24046$var$_tmpl$2, $3hooq$solidjsweb.ssrHydrationKey(), "input-row ".concat(is_count_zero() || count() === 0 ? "count-0" : ""), $3hooq$solidjsweb.ssrAttribute("for", $3hooq$solidjsweb.escape(id, true), false), $3hooq$solidjsweb.ssrAttribute("name", $3hooq$solidjsweb.escape(value(), true), false) + $3hooq$solidjsweb.ssrAttribute("id", $3hooq$solidjsweb.escape(id, true), false), $3hooq$solidjsweb.ssrAttribute("checked", checked(), true), $3hooq$solidjsweb.escape(label()) || $3hooq$solidjsweb.escape(value()), $3hooq$solidjsweb.escape($3hooq$solidjsweb.createComponent((0, $3hooq$solidjs.Show), {
1132
+ return (/* We can't use actual margin because ExpandingContainer gets messed up */$3hooq$solidjsweb.ssr($6b92e147c6e24046$var$_tmpl$2, $3hooq$solidjsweb.ssrHydrationKey(), "input-row ".concat(is_count_zero() ? "count-0" : ""), $3hooq$solidjsweb.ssrAttribute("for", $3hooq$solidjsweb.escape(id, true), false), $3hooq$solidjsweb.ssrAttribute("name", $3hooq$solidjsweb.escape(value(), true), false) + $3hooq$solidjsweb.ssrAttribute("id", $3hooq$solidjsweb.escape(id, true), false), $3hooq$solidjsweb.ssrAttribute("checked", checked(), true), $3hooq$solidjsweb.ssrAttribute("disabled", !checked() && is_count_zero(), true), $3hooq$solidjsweb.escape(label()) || $3hooq$solidjsweb.escape(value()), $3hooq$solidjsweb.escape($3hooq$solidjsweb.createComponent((0, $3hooq$solidjs.Show), {
1072
1133
  get when() {
1073
1134
  return count() != undefined;
1074
1135
  },
@@ -1479,7 +1540,7 @@ function $ac040bdfeed58ee4$export$e5c2828934226505(_ref) {
1479
1540
  const $9c1d49181fb3002a$var$_tmpl$ = ["<form", ' class="', '"><!--#-->', "<!--/--><!--#-->", "<!--/--></form>"],
1480
1541
  $9c1d49181fb3002a$var$_tmpl$2 = ["<div", ' class="', '"><!--#-->', "<!--/--><!--#-->", "<!--/--></div>"],
1481
1542
  $9c1d49181fb3002a$var$_tmpl$3 = ["<details", "></details>"],
1482
- $9c1d49181fb3002a$var$_tmpl$4 = ["<summary", ' class="category-parent"><div class="summary"><span class="count">', "</span><!--#-->", "<!--/--></div></summary>"];
1543
+ $9c1d49181fb3002a$var$_tmpl$4 = ["<summary", ' class="category-parent"><div class="summary"><span class="', '">', "</span><!--#-->", "<!--/--></div></summary>"];
1483
1544
  const $9c1d49181fb3002a$var$max_visible_without_collapsing = 15;
1484
1545
  const $9c1d49181fb3002a$var$show_non_collapsible_when_collapsed = 4;
1485
1546
  function $9c1d49181fb3002a$export$a32086fa6616eafd(_ref) {
@@ -1699,13 +1760,13 @@ function $9c1d49181fb3002a$var$render_stuff(data, existing_filter, i18n_) {
1699
1760
  return $3hooq$solidjsweb.ssr($9c1d49181fb3002a$var$_tmpl$3, $3hooq$solidjsweb.ssrHydrationKey());
1700
1761
  },
1701
1762
  get summary_() {
1702
- var _value10;
1703
- return $3hooq$solidjsweb.ssr($9c1d49181fb3002a$var$_tmpl$4, $3hooq$solidjsweb.ssrHydrationKey(), $3hooq$solidjsweb.escape((_value10 = value()) === null || _value10 === void 0 ? void 0 : _value10.count_), $3hooq$solidjsweb.escape($3hooq$solidjsweb.createComponent((0, $ac040bdfeed58ee4$export$e5c2828934226505), {
1763
+ var _value10, _value11;
1764
+ return $3hooq$solidjsweb.ssr($9c1d49181fb3002a$var$_tmpl$4, $3hooq$solidjsweb.ssrHydrationKey(), "count ".concat(((_value10 = value()) === null || _value10 === void 0 ? void 0 : _value10.count_) === 0 ? "count-0" : ""), $3hooq$solidjsweb.escape((_value11 = value()) === null || _value11 === void 0 ? void 0 : _value11.count_), $3hooq$solidjsweb.escape($3hooq$solidjsweb.createComponent((0, $ac040bdfeed58ee4$export$e5c2828934226505), {
1704
1765
  i18n_: i18n_,
1705
1766
  get expanded_() {
1706
1767
  return $3hooq$solidjs.createMemo(() => {
1707
- var _value$is_expanded_$u, _value11, _value11$is_expanded_, _value11$is_expanded_2;
1708
- return (_value$is_expanded_$u = (_value11 = value()) === null || _value11 === void 0 ? void 0 : (_value11$is_expanded_ = _value11.is_expanded_) === null || _value11$is_expanded_ === void 0 ? void 0 : (_value11$is_expanded_2 = _value11$is_expanded_.ui_should_show_expanded_) === null || _value11$is_expanded_2 === void 0 ? void 0 : _value11$is_expanded_2.call(_value11$is_expanded_)) !== null && _value$is_expanded_$u !== void 0 ? _value$is_expanded_$u : false;
1768
+ var _value$is_expanded_$u, _value12, _value12$is_expanded_, _value12$is_expanded_2;
1769
+ return (_value$is_expanded_$u = (_value12 = value()) === null || _value12 === void 0 ? void 0 : (_value12$is_expanded_ = _value12.is_expanded_) === null || _value12$is_expanded_ === void 0 ? void 0 : (_value12$is_expanded_2 = _value12$is_expanded_.ui_should_show_expanded_) === null || _value12$is_expanded_2 === void 0 ? void 0 : _value12$is_expanded_2.call(_value12$is_expanded_)) !== null && _value$is_expanded_$u !== void 0 ? _value$is_expanded_$u : false;
1709
1770
  });
1710
1771
  }
1711
1772
  })));
@@ -1727,8 +1788,8 @@ function $9c1d49181fb3002a$var$render_stuff(data, existing_filter, i18n_) {
1727
1788
  },
1728
1789
  get children() {
1729
1790
  return $9c1d49181fb3002a$var$render_stuff($3hooq$solidjs.createMemo(() => {
1730
- var _value12;
1731
- return ((_value12 = value()) === null || _value12 === void 0 ? void 0 : _value12.children_) || {};
1791
+ var _value13;
1792
+ return ((_value13 = value()) === null || _value13 === void 0 ? void 0 : _value13.children_) || {};
1732
1793
  }), existing_filter, i18n_);
1733
1794
  }
1734
1795
  });
@@ -1912,7 +1973,8 @@ function $9c1d49181fb3002a$var$expand_until_choice(data_structure) {
1912
1973
  });
1913
1974
  }
1914
1975
  const $cd0e5524f9476f9b$var$_tmpl$ = ["<div", ' class="checkbox-grid">', "</div>"],
1915
- $cd0e5524f9476f9b$var$_tmpl$2 = ["<button", ' class="', '">', "</button>"];
1976
+ $cd0e5524f9476f9b$var$_tmpl$2 = ["<span", ' class="count-wrapper"><span class="count">', "</span></span>"],
1977
+ $cd0e5524f9476f9b$var$_tmpl$3 = ["<button", "", ' class="', '"><!--#-->', "<!--/--><!--#-->", "<!--/--></button>"];
1916
1978
  const $cd0e5524f9476f9b$export$414f6a19d38e655c = _ref => {
1917
1979
  let {
1918
1980
  filter_: filter_,
@@ -1951,7 +2013,14 @@ const $cd0e5524f9476f9b$export$414f6a19d38e655c = _ref => {
1951
2013
  var _existing_filter, _existing_filter$data;
1952
2014
  return (_existing_filter = existing_filter()) === null || _existing_filter === void 0 ? void 0 : (_existing_filter$data = _existing_filter.data) === null || _existing_filter$data === void 0 ? void 0 : _existing_filter$data.includes(value().value_);
1953
2015
  });
1954
- return $3hooq$solidjsweb.ssr($cd0e5524f9476f9b$var$_tmpl$2, $3hooq$solidjsweb.ssrHydrationKey(), "".concat(!is_selected() ? "minor" : "", " ").concat(is_selected() ? "major" : "", " major-minor-transition"), $3hooq$solidjsweb.escape(value().value_));
2016
+ return $3hooq$solidjsweb.ssr($cd0e5524f9476f9b$var$_tmpl$3, $3hooq$solidjsweb.ssrHydrationKey(), $3hooq$solidjsweb.ssrAttribute("disabled", value().count_ === 0 && !is_selected(), true), "".concat(!is_selected() ? "minor" : "", " ").concat(is_selected() ? "major" : "", " major-minor-transition"), $3hooq$solidjsweb.escape(value().value_), $3hooq$solidjsweb.escape($3hooq$solidjsweb.createComponent((0, $3hooq$solidjs.Show), {
2017
+ get when() {
2018
+ return value().count_ != undefined;
2019
+ },
2020
+ get children() {
2021
+ return $3hooq$solidjsweb.ssr($cd0e5524f9476f9b$var$_tmpl$2, $3hooq$solidjsweb.ssrHydrationKey(), $3hooq$solidjsweb.escape(value().count_));
2022
+ }
2023
+ })));
1955
2024
  }
1956
2025
  })));
1957
2026
  };
@@ -5494,35 +5563,6 @@ function $ede6c70ecdca46fe$export$f7d2f673fc2f091d(_ref) {
5494
5563
  }
5495
5564
  })))];
5496
5565
  }
5497
- function $d05611ff6b8c8357$export$23fca46f3143581f(component, error_message) {
5498
- const component_in_error_boundary = do_with_elements => {
5499
- const error_boundary_wrapped = $1b3cf201cdd38687$export$b69d0d92862de18b({
5500
- severity_: "error",
5501
- message_: error_message,
5502
- get children() {
5503
- const elements = component();
5504
- do_with_elements === null || do_with_elements === void 0 || do_with_elements(elements);
5505
- return elements;
5506
- }
5507
- });
5508
- // This might return an accessor, in that case we need to "unwrap" it since our SDK consumers expect HTML elements or arrays thereof
5509
- if (typeof error_boundary_wrapped === "function")
5510
- // @ts-ignore
5511
- return error_boundary_wrapped();
5512
- // On the server it returns a string, so we just return that
5513
- return error_boundary_wrapped;
5514
- };
5515
- const owner = $3hooq$solidjs.getOwner();
5516
- if (owner == null) return $3hooq$solidjs.createRoot(dispose => {
5517
- // if we're not already run in a root, create a root and automatically dispose it when the first returned element is removed from the DOM
5518
- return component_in_error_boundary(elements => {
5519
- if (!(elements !== null && elements !== void 0 && elements.length)) return;
5520
- (0, $3hooq$depictaiutilishared.observer).onremoved(elements[0], dispose);
5521
- });
5522
- });else
5523
- // we're already in a root so cleanups are handled
5524
- return component_in_error_boundary();
5525
- }
5526
5566
  function $5dd9d0d3ea82e2dd$export$477caf01aecaeb2a(options) {
5527
5567
  var _globalThis$location$, _globalThis$location;
5528
5568
  const router_ = options.router_;
@@ -6963,7 +7003,7 @@ function $3cf7b4db1e203c93$export$605674723bcc715c() {
6963
7003
  const $0677d509ad208e22$var$_tmpl$ = ["<a", ' class="', '"', ">", "</a>"],
6964
7004
  $0677d509ad208e22$var$_tmpl$2 = ["<div", ' class="search-icon">', "</div>"],
6965
7005
  $0677d509ad208e22$var$_tmpl$3 = ["<span", ' class="type">', "</span>"],
6966
- $0677d509ad208e22$var$_tmpl$4 = ["<div", "><!--#-->", '<!--/--><span class="value">', "</span></div>"],
7006
+ $0677d509ad208e22$var$_tmpl$4 = ["<div", ' class="with-parent-title"><!--#-->', '<!--/--><span class="value line-clamp">', "</span></div>"],
6967
7007
  $0677d509ad208e22$var$_tmpl$5 = ["<div", ' class="with-icon"><!--#-->', "<!--/--><!--#-->", "<!--/--></div>"],
6968
7008
  $0677d509ad208e22$var$_tmpl$6 = ["<h2", ' class="text">', "</h2>"],
6969
7009
  $0677d509ad208e22$var$_tmpl$7 = ["<div", ' class="suggestion-container query"><!--#-->', "<!--/--><!--#-->", "<!--/--></div>"],
@@ -8141,7 +8181,9 @@ function $f1fc9ea3e7632eba$export$f631859cab12b342(_ref) {
8141
8181
  function $bf4a8d57aa8dd1c8$export$9ff751cd77687edc(_ref) {
8142
8182
  let {
8143
8183
  search_results_: search_results_,
8144
- router_: router_
8184
+ router_: router_,
8185
+ queries_without_content_results_: queries_without_content_results_,
8186
+ get_search_query_: get_search_query_
8145
8187
  } = _ref;
8146
8188
  const content_results = $3hooq$solidjs.createMemo(() => {
8147
8189
  var _search_results_;
@@ -8157,6 +8199,10 @@ function $bf4a8d57aa8dd1c8$export$9ff751cd77687edc(_ref) {
8157
8199
  }
8158
8200
  return map;
8159
8201
  });
8202
+ $3hooq$solidjs.createEffect(() => {
8203
+ const results = content_results();
8204
+ if (Array.isArray(results) && results.length === 0) queries_without_content_results_.add($3hooq$solidjs.untrack(get_search_query_));
8205
+ });
8160
8206
  return $3hooq$solidjsweb.createComponent((0, $3hooq$solidjs.For), {
8161
8207
  get each() {
8162
8208
  return [...content_results_by_page_url().keys()];
@@ -8196,7 +8242,7 @@ function $05f255c0a94b9ca1$export$4405d077f0a20494(_ref) {
8196
8242
  children: () => $3hooq$solidjsweb.createComponent((0, $f1fc9ea3e7632eba$export$f631859cab12b342), {})
8197
8243
  });
8198
8244
  }
8199
- const $eab939d0b95b75ee$var$_tmpl$ = ["<div", ' class="', '" style="', '"><!--#-->', "<!--/--><!--#-->", "<!--/--></div>"],
8245
+ const $eab939d0b95b75ee$var$_tmpl$ = ["<div", ' class="content-results" style="', '"><!--#-->', "<!--/--><!--#-->", "<!--/--></div>"],
8200
8246
  $eab939d0b95b75ee$var$_tmpl$2 = ["<button", ' class="view-more">', "</button>"],
8201
8247
  $eab939d0b95b75ee$var$_tmpl$3 = ["<button", ' class="view-less">', "</button>"];
8202
8248
  const $eab939d0b95b75ee$export$70ceae36059a1036 = 1;
@@ -8224,9 +8270,16 @@ function $eab939d0b95b75ee$export$6d0c9c22f6652669(_ref) {
8224
8270
  number_: num_results,
8225
8271
  i18n_: i18n_
8226
8272
  });
8227
- const [is_showing_placeholders, set_is_showing_placeholders] = $3hooq$solidjs.createSignal(false);
8273
+ const queries_without_content_results_ = new (0, $3hooq$depictaiutilishared.ListenableSet)();
8274
+ const [check_query, set_check_query] = $3hooq$solidjs.createSignal(false);
8275
+ const placeholders_enabled = $3hooq$solidjs.createMemo(() => {
8276
+ // don't show placeholders when the user toggles filters
8277
+ check_query();
8278
+ return !queries_without_content_results_.has(get_search_query_());
8279
+ });
8228
8280
  const rows_object = $eab939d0b95b75ee$var$make_state_saved_rows(content_results_rows_, i18n_);
8229
- return $3hooq$solidjsweb.ssr($eab939d0b95b75ee$var$_tmpl$, $3hooq$solidjsweb.ssrHydrationKey(), "content-results ".concat(is_showing_placeholders() ? "loading" : ""), "display:" + (is_loading_() || ((_content_results2 = content_results()) === null || _content_results2 === void 0 ? void 0 : _content_results2.length) > 0 ? "" : "none"), $3hooq$solidjsweb.escape($3hooq$solidjsweb.createComponent((0, $9870a8a48ee126af$export$9dd50d35b9d94fdf), {
8281
+ for (const ev of ["add", "delete"]) queries_without_content_results_.addEventListener(ev, () => set_check_query(prev => !prev));
8282
+ return $3hooq$solidjsweb.ssr($eab939d0b95b75ee$var$_tmpl$, $3hooq$solidjsweb.ssrHydrationKey(), "display:" + (is_loading_() && placeholders_enabled() || ((_content_results2 = content_results()) === null || _content_results2 === void 0 ? void 0 : _content_results2.length) > 0 ? "" : "none"), $3hooq$solidjsweb.escape($3hooq$solidjsweb.createComponent((0, $9870a8a48ee126af$export$9dd50d35b9d94fdf), {
8230
8283
  get_search_query_: get_search_query_,
8231
8284
  i18n_: i18n_,
8232
8285
  formatted_number_of_results_: formatted_number_of_results_,
@@ -8244,21 +8297,19 @@ function $eab939d0b95b75ee$export$6d0c9c22f6652669(_ref) {
8244
8297
  get children() {
8245
8298
  return $3hooq$solidjsweb.createComponent((0, $3hooq$solidjs.Suspense), {
8246
8299
  get fallback() {
8247
- return (() => {
8248
- set_is_showing_placeholders(true);
8249
- $3hooq$solidjs.onCleanup(() => set_is_showing_placeholders(false));
8250
- return $3hooq$solidjsweb.createComponent((0, $05f255c0a94b9ca1$export$4405d077f0a20494), {
8251
- content_results_rows_: content_results_rows_,
8252
- get cols_at_size_() {
8253
- return $3hooq$solidjs.createMemo(() => layout_options_().cols_at_size);
8254
- }
8255
- });
8256
- })();
8300
+ return $3hooq$solidjsweb.createComponent((0, $05f255c0a94b9ca1$export$4405d077f0a20494), {
8301
+ content_results_rows_: content_results_rows_,
8302
+ get cols_at_size_() {
8303
+ return $3hooq$solidjs.createMemo(() => layout_options_().cols_at_size);
8304
+ }
8305
+ });
8257
8306
  },
8258
8307
  get children() {
8259
8308
  return $3hooq$solidjsweb.createComponent((0, $bf4a8d57aa8dd1c8$export$9ff751cd77687edc), {
8260
8309
  router_: router_,
8261
- search_results_: search_results_
8310
+ search_results_: search_results_,
8311
+ queries_without_content_results_: queries_without_content_results_,
8312
+ get_search_query_: get_search_query_
8262
8313
  });
8263
8314
  }
8264
8315
  });
@@ -8700,7 +8751,7 @@ function $ddd39c5f36f49703$var$_classApplyDescriptorGet(receiver, descriptor) {
8700
8751
  * Type for the private properties that are shared between the different exported search SDK wrapper functions. SDK users are not allowed to change/access these, they're an internal implementation detail.
8701
8752
  */
8702
8753
  const $ddd39c5f36f49703$var$privately_shared_properties = /*@__PURE__*/new WeakMap();
8703
- const $ddd39c5f36f49703$var$content_search_default = false;
8754
+ const $ddd39c5f36f49703$var$content_search_default = true;
8704
8755
  const $ddd39c5f36f49703$var$min_products_to_fetch_ = 20;
8705
8756
  const $ddd39c5f36f49703$export$bde3eb976dfded9 = depict_search => {
8706
8757
  var _privately_shared_pro;