@depict-ai/ui 1.4.24 → 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/ES10/index.cjs CHANGED
@@ -1,7 +1,6 @@
1
1
  var $52FdA$depictaiutilishared = require("@depict-ai/utilishared/ES10");
2
2
  var $52FdA$solidjsweb = require("solid-js/web");
3
3
  var $52FdA$solidjs = require("solid-js");
4
- var $52FdA$depictaiutilisharedlatest = require("@depict-ai/utilishared/latest/ES10");
5
4
  var $52FdA$babelruntimehelpersclassPrivateFieldSet = require("@babel/runtime/helpers/classPrivateFieldSet");
6
5
  var $52FdA$babelruntimehelpersclassPrivateFieldGet = require("@babel/runtime/helpers/classPrivateFieldGet");
7
6
  var $52FdA$babelruntimehelpersdefineProperty = require("@babel/runtime/helpers/defineProperty");
@@ -67,7 +66,7 @@ $parcel$export(module.exports, "defaultColsAtSize", () => $33eed84f447aa0c0$expo
67
66
  $parcel$export(module.exports, "defaultCategoryTitlePlugin", () => $33eed84f447aa0c0$export$7bf543b9d9be2c22);
68
67
  $parcel$export(module.exports, "version", () => $aa1938dec50d6c12$export$83d89fbfd8236492);
69
68
  /*! Depict.ai search and product listing SDK */
70
- const $aa1938dec50d6c12$export$83d89fbfd8236492 = "1.4.24";
69
+ const $aa1938dec50d6c12$export$83d89fbfd8236492 = "2.0.0";
71
70
  const $5401a6698b0c0658$var$transform_elements = sorted_cols_at_size => {
72
71
  const cols_at_size = [];
73
72
  for (let i = 0; i < sorted_cols_at_size.length; i++) {
@@ -141,7 +140,9 @@ function $b1ea8d47bcf03111$export$ff7109b9b2b206ba(sdk_cols_at_size) {
141
140
  }
142
141
  function $8edd3cf30d1fd8b4$export$a2cc176055f8f08() {
143
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.";
144
- return (0, $52FdA$solidjsweb.isServer) ? "<!-- ".concat(text, " -->") : document.createComment(text);
143
+ return (0, $52FdA$solidjsweb.isServer) ? {
144
+ t: "<!-- ".concat(text, " -->")
145
+ } : document.createComment(text);
145
146
  }
146
147
  function $e82d0d417fa613e8$export$2f0cbfbb4354bb52(elements) {
147
148
  // FYI this probably doesn't work on hugely deep nestings or large amount of elements
@@ -367,9 +368,14 @@ function $1b3cf201cdd38687$export$b69d0d92862de18b(props) {
367
368
  const $6c2c739b113a8ddf$var$_tmpl$ = /*#__PURE__*/$52FdA$solidjsweb.template(`<div></div>`, 2),
368
369
  $6c2c739b113a8ddf$var$_tmpl$2 = /*#__PURE__*/$52FdA$solidjsweb.template(`<style type="text/css"></style>`, 2);
369
370
  function $6c2c739b113a8ddf$export$d21e32dfedac04be(props) {
371
+ const container_class = "x" + $52FdA$solidjs.createUniqueId();
370
372
  const container_element_ = (() => {
371
373
  const _el$ = $52FdA$solidjsweb.getNextElement($6c2c739b113a8ddf$var$_tmpl$);
372
- $52FdA$solidjsweb.spread(_el$, $52FdA$solidjsweb.mergeProps(() => props.element_attributes), false, true);
374
+ $52FdA$solidjsweb.spread(_el$, $52FdA$solidjsweb.mergeProps(() => props.element_attributes, {
375
+ "classList": {
376
+ [container_class]: true
377
+ }
378
+ }), false, true);
373
379
  $52FdA$solidjsweb.insert(_el$, () => props.children);
374
380
  $52FdA$solidjsweb.runHydrationEvents();
375
381
  return _el$;
@@ -380,12 +386,18 @@ function $6c2c739b113a8ddf$export$d21e32dfedac04be(props) {
380
386
  },
381
387
  severity_: "error",
382
388
  get children() {
383
- return $6c2c739b113a8ddf$export$445d8d3f5f706a40(props, container_element_);
389
+ return $6c2c739b113a8ddf$export$445d8d3f5f706a40(props, container_element_, false, container_class);
384
390
  }
385
391
  });
386
392
  }
387
393
  function $6c2c739b113a8ddf$export$445d8d3f5f706a40(props, container_element) {
388
394
  let insert_after_container = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
395
+ let container_class = arguments.length > 3 ? arguments[3] : undefined;
396
+ if (!container_class) {
397
+ // only try to add if it wasn't provided, so that we have a code path without classList when doing SSR
398
+ container_class = $52FdA$depictaiutilishared.make_random_classname();
399
+ container_element.classList.add(container_class);
400
+ }
389
401
  // Copy of Layout from utilishared but using solid-js signals instead of async iterable IPNS
390
402
  const show_all_rows = $52FdA$solidjs.createMemo(() => props.rows === "all");
391
403
  const rows_or_empty_object = $52FdA$solidjs.createMemo(() => show_all_rows() ? {} : props.rows);
@@ -400,10 +412,9 @@ function $6c2c739b113a8ddf$export$445d8d3f5f706a40(props, container_element) {
400
412
  return !(!button || Array.isArray(button) && !button.length);
401
413
  });
402
414
  const [get_styling, set_styling] = $52FdA$solidjs.createSignal();
403
- const container_class = $52FdA$depictaiutilishared.make_random_classname();
404
415
  const selector_beginning = ".depict .".concat(container_class, ">"); // class so ppl can have id if needed
405
416
  const [get_children_count, set_children_count] = $52FdA$solidjs.createSignal(0);
406
- const update_children_count = () => set_children_count(container_element.children.length);
417
+ const update_children_count = () => (0, $52FdA$solidjsweb.isServer) ? 20 : set_children_count(container_element.children.length);
407
418
  const col_styling = $52FdA$solidjs.createMemo(() => $52FdA$depictaiutilishared.n_col_styling_with_dist(selector_beginning, props.grid_spacing, props.cols_at_size, props.layout, props.override_vertical_spacing));
408
419
  const default_currently_visible_signal = $52FdA$solidjs.createSignal($52FdA$solidjs.untrack(() => {
409
420
  var _rows_or_empty_object;
@@ -412,43 +423,39 @@ function $6c2c739b113a8ddf$export$445d8d3f5f706a40(props, container_element) {
412
423
  const rows_visible_signal = $52FdA$solidjs.createMemo(() => rows_or_empty_object().currently_visible || default_currently_visible_signal);
413
424
  const get_rows_visible = $52FdA$solidjs.createMemo(() => rows_visible_signal()[0]());
414
425
  const set_rows_visible = $52FdA$solidjs.createMemo(() => rows_visible_signal()[1]);
415
- const view_more_button_class = $52FdA$depictaiutilishared.make_random_classname();
416
- const view_less_button_class = $52FdA$depictaiutilishared.make_random_classname();
417
- const style_element = (() => {
418
- const _el$2 = $52FdA$solidjsweb.getNextElement($6c2c739b113a8ddf$var$_tmpl$2);
419
- $52FdA$solidjsweb.insert(_el$2, get_styling);
420
- return _el$2;
421
- })();
426
+ const view_more_button_class = "m" + $52FdA$solidjs.createUniqueId();
427
+ const view_less_button_class = "l" + $52FdA$solidjs.createUniqueId(); // https://github.com/solidjs/solid-docs/issues/263#issuecomment-1622388079
422
428
  const view_more_button_container = $52FdA$solidjs.createMemo(() => have_a_view_more_button() && (() => {
423
- const _el$3 = $52FdA$solidjsweb.getNextElement($6c2c739b113a8ddf$var$_tmpl$);
424
- $52FdA$solidjsweb.addEventListener(_el$3, "click", $52FdA$depictaiutilishared.catchify(() => set_rows_visible()(prev => {
429
+ const _el$2 = $52FdA$solidjsweb.getNextElement($6c2c739b113a8ddf$var$_tmpl$);
430
+ $52FdA$solidjsweb.addEventListener(_el$2, "click", $52FdA$depictaiutilishared.catchify(() => set_rows_visible()(prev => {
425
431
  var _rows_or_empty_object2;
426
432
  return prev + ((_rows_or_empty_object2 = rows_or_empty_object().rows_per_click) !== null && _rows_or_empty_object2 !== void 0 ? _rows_or_empty_object2 : 1);
427
433
  })), true);
428
- $52FdA$solidjsweb.className(_el$3, "load-more-container ".concat(view_more_button_class));
429
- $52FdA$solidjsweb.insert(_el$3, () => rows_or_empty_object().button);
434
+ $52FdA$solidjsweb.className(_el$2, "load-more-container ".concat(view_more_button_class));
435
+ $52FdA$solidjsweb.insert(_el$2, () => rows_or_empty_object().button);
430
436
  $52FdA$solidjsweb.runHydrationEvents();
431
- return _el$3;
437
+ return _el$2;
432
438
  })());
433
439
  // 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
434
440
  const view_less_button_container = $52FdA$solidjs.createMemo(() => have_a_view_less_button() && (() => {
435
- const _el$4 = $52FdA$solidjsweb.getNextElement($6c2c739b113a8ddf$var$_tmpl$);
436
- $52FdA$solidjsweb.addEventListener(_el$4, "click", $52FdA$depictaiutilishared.catchify(() => set_rows_visible()(() => {
441
+ const _el$3 = $52FdA$solidjsweb.getNextElement($6c2c739b113a8ddf$var$_tmpl$);
442
+ $52FdA$solidjsweb.addEventListener(_el$3, "click", $52FdA$depictaiutilishared.catchify(() => set_rows_visible()(() => {
437
443
  var _rows_or_empty_object3;
438
444
  return (_rows_or_empty_object3 = rows_or_empty_object().start_rows) !== null && _rows_or_empty_object3 !== void 0 ? _rows_or_empty_object3 : 1;
439
445
  })), true);
440
- $52FdA$solidjsweb.className(_el$4, "load-less-container ".concat(view_less_button_class));
441
- $52FdA$solidjsweb.insert(_el$4, () => rows_or_empty_object().view_less_button);
446
+ $52FdA$solidjsweb.className(_el$3, "load-less-container ".concat(view_less_button_class));
447
+ $52FdA$solidjsweb.insert(_el$3, () => rows_or_empty_object().view_less_button);
442
448
  $52FdA$solidjsweb.runHydrationEvents();
443
- return _el$4;
449
+ return _el$3;
444
450
  })());
445
- container_element.classList.add(container_class);
451
+ const [force_style_update, set_force_style_update] = $52FdA$solidjs.createSignal("");
446
452
  $52FdA$solidjs.createComputed(() => {
447
453
  // Make sure we don't have more rows visible than max_rows (this could happen by max_rows being decreased)
448
454
  const rows_visible = get_rows_visible();
449
455
  const max_rows = rows_or_empty_object().max_rows;
450
456
  if (!isNaN(max_rows) && max_rows >= 0 && rows_visible > max_rows) set_rows_visible()(max_rows);
451
457
  });
458
+ $52FdA$solidjs.createEffect(() => set_force_style_update(" ")); // force style update after hydration due to https://discord.com/channels/722131463138705510/722167424186843267/1151544212517552168
452
459
  $52FdA$solidjs.createRenderEffect(() => {
453
460
  // Be careful to only read show_all_rows in here (ofc doesn't apply to nested effects)
454
461
  if (show_all_rows()) {
@@ -457,11 +464,13 @@ function $6c2c739b113a8ddf$export$445d8d3f5f706a40(props, container_element) {
457
464
  return;
458
465
  }
459
466
  update_children_count();
460
- const mutation_observer = new MutationObserver($52FdA$depictaiutilishared.catchify(update_children_count));
461
- mutation_observer.observe(container_element, {
462
- childList: true
463
- });
464
- $52FdA$solidjs.onCleanup(() => mutation_observer.disconnect());
467
+ if (!(0, $52FdA$solidjsweb.isServer)) {
468
+ const mutation_observer = new MutationObserver($52FdA$depictaiutilishared.catchify(update_children_count));
469
+ mutation_observer.observe(container_element, {
470
+ childList: true
471
+ });
472
+ $52FdA$solidjs.onCleanup(() => mutation_observer.disconnect());
473
+ }
465
474
  set_styling(
466
475
  // this is needed because solid will think that the memo-accessor is a setter function otherwise
467
476
  () => $52FdA$solidjs.createMemo(() => {
@@ -472,7 +481,7 @@ function $6c2c739b113a8ddf$export$445d8d3f5f706a40(props, container_element) {
472
481
  } = rows_or_empty_object();
473
482
  const rows_visible = get_rows_visible();
474
483
  const children_count = get_children_count();
475
- return col_styling() + props.cols_at_size.map(options => {
484
+ return force_style_update() + col_styling() + props.cols_at_size.map(options => {
476
485
  const [recs_per_row, min, max] = options;
477
486
  let should_hide_view_more_button;
478
487
  let visible_recs;
@@ -493,6 +502,11 @@ function $6c2c739b113a8ddf$export$445d8d3f5f706a40(props, container_element) {
493
502
  }).join("");
494
503
  }));
495
504
  });
505
+ const style_element = (() => {
506
+ const _el$4 = $52FdA$solidjsweb.getNextElement($6c2c739b113a8ddf$var$_tmpl$2);
507
+ $52FdA$solidjsweb.insert(_el$4, get_styling);
508
+ return _el$4;
509
+ })(); // need to create this after set_styling has been called or else there will be no styling in the SSR'd output
496
510
  if (insert_after_container) container_element.after(style_element);
497
511
  return [container_element, $52FdA$solidjsweb.memo(view_more_button_container), $52FdA$solidjsweb.memo(view_less_button_container), style_element];
498
512
  }
@@ -523,18 +537,26 @@ function $ad8ec7729fffeb9c$export$6649caad96ef8870(_ref) {
523
537
  slider_ref_: slider_ref_,
524
538
  faded_opacity_ = 0.7,
525
539
  mutation_plugins_ = [],
526
- disable_fading_: disable_fading_
540
+ disable_fading_: disable_fading_,
541
+ arrow_width_: arrow_width_,
542
+ arrow_height_: arrow_height_
527
543
  } = _ref;
528
544
  const slider = new (0, $52FdA$depictaiutilishared.Amazing_Slider)({
529
545
  button_contents: {
530
546
  left: [(() => {
531
547
  const _el$ = $52FdA$solidjsweb.getNextElement($ad8ec7729fffeb9c$var$_tmpl$);
532
- $52FdA$solidjsweb.insert(_el$, $52FdA$solidjsweb.createComponent((0, $9d19451330d04c3c$export$8be2714ec7f169ee), {}));
548
+ $52FdA$solidjsweb.insert(_el$, $52FdA$solidjsweb.createComponent((0, $9d19451330d04c3c$export$8be2714ec7f169ee), {
549
+ height_: arrow_height_,
550
+ width_: arrow_width_
551
+ }));
533
552
  return _el$;
534
553
  })()],
535
554
  right: [(() => {
536
555
  const _el$2 = $52FdA$solidjsweb.getNextElement($ad8ec7729fffeb9c$var$_tmpl$);
537
- $52FdA$solidjsweb.insert(_el$2, $52FdA$solidjsweb.createComponent((0, $9d19451330d04c3c$export$8be2714ec7f169ee), {}));
556
+ $52FdA$solidjsweb.insert(_el$2, $52FdA$solidjsweb.createComponent((0, $9d19451330d04c3c$export$8be2714ec7f169ee), {
557
+ height_: arrow_height_,
558
+ width_: arrow_width_
559
+ }));
538
560
  return _el$2;
539
561
  })()]
540
562
  },
@@ -563,6 +585,8 @@ function $236a257ee52e5414$export$d41d19e89346fa2(_ref) {
563
585
  });
564
586
  const num_placeholders_ = () => 20;
565
587
  const slider = $52FdA$solidjsweb.createComponent((0, $ad8ec7729fffeb9c$export$6649caad96ef8870), {
588
+ arrow_height_: 25,
589
+ arrow_width_: 12.5,
566
590
  disable_fading_: true,
567
591
  slider_ref_: slider => {
568
592
  const {
@@ -574,7 +598,7 @@ function $236a257ee52e5414$export$d41d19e89346fa2(_ref) {
574
598
  rows: "all",
575
599
  layout: "slider"
576
600
  }, layout_options_));
577
- $52FdA$depictaiutilisharedlatest.slider_fractional_factory(0, 0.75).constructor_plugin.call(slider, {}); // enable fractional scrolling
601
+ $52FdA$depictaiutilishared.slider_fractional_factory(0, 0.75).constructor_plugin.call(slider, {}); // enable fractional scrolling
578
602
  insert_here.before($8edd3cf30d1fd8b4$export$a2cc176055f8f08());
579
603
  },
580
604
  get children() {
@@ -607,36 +631,68 @@ function $236a257ee52e5414$export$d41d19e89346fa2(_ref) {
607
631
  children: slider
608
632
  });
609
633
  }
634
+ function $d05611ff6b8c8357$export$23fca46f3143581f(component, error_message) {
635
+ const component_in_error_boundary = do_with_elements => {
636
+ const error_boundary_wrapped = $1b3cf201cdd38687$export$b69d0d92862de18b({
637
+ severity_: "error",
638
+ message_: error_message,
639
+ get children() {
640
+ const elements = component();
641
+ do_with_elements === null || do_with_elements === void 0 || do_with_elements(elements);
642
+ return elements;
643
+ }
644
+ });
645
+ // This might return an accessor, in that case we need to "unwrap" it since our SDK consumers expect HTML elements or arrays thereof
646
+ if (typeof error_boundary_wrapped === "function")
647
+ // @ts-ignore
648
+ return error_boundary_wrapped();
649
+ // On the server it returns a string, so we just return that
650
+ return error_boundary_wrapped;
651
+ };
652
+ const owner = $52FdA$solidjs.getOwner();
653
+ if (owner == null) return $52FdA$solidjs.createRoot(dispose => {
654
+ // 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
655
+ return component_in_error_boundary(elements => {
656
+ const have_multiple = Array.isArray(elements);
657
+ if (have_multiple ? !(elements !== null && elements !== void 0 && elements.length) : !elements) return;
658
+ (0, $52FdA$depictaiutilishared.observer).onremoved(have_multiple ? elements[0] : elements, dispose);
659
+ });
660
+ });else
661
+ // we're already in a root so cleanups are handled
662
+ return component_in_error_boundary();
663
+ }
610
664
  const $2badc30d7c6610e1$var$_tmpl$ = /*#__PURE__*/$52FdA$solidjsweb.template(`<div class="depict recommendations"></div>`, 2);
611
665
  function $2badc30d7c6610e1$export$9574e176201e5e8d(props) {
612
- const grid_spacing_override = $52FdA$solidjs.createMemo(() => {
613
- const {
614
- grid_spacing: grid_spacing
615
- } = props; // can be reactive
616
- return typeof grid_spacing === "string" ? {
617
- grid_spacing: grid_spacing
618
- } : {
619
- override_vertical_spacing: grid_spacing.vertical,
620
- grid_spacing: grid_spacing.horizontal
621
- };
622
- });
623
- const [recommendations_resource_] = $52FdA$solidjs.createResource(() => props.recommendations, recs => recs);
624
- return (() => {
625
- const _el$ = $52FdA$solidjsweb.getNextElement($2badc30d7c6610e1$var$_tmpl$);
626
- $52FdA$solidjsweb.insert(_el$, () => $236a257ee52e5414$export$d41d19e89346fa2({
627
- product_card_template_: function () {
628
- return props.product_card_template(...arguments);
629
- },
630
- recommendations_resource_: recommendations_resource_,
631
- market_: () => props.market,
632
- merchant_: () => props.merchant,
633
- layout_options_: $52FdA$solidjs.createMemo(() => ({
634
- cols_at_size: $5401a6698b0c0658$export$6daf8749b65a1b77($b1ea8d47bcf03111$export$ff7109b9b2b206ba(props.cols_at_size)),
635
- ...grid_spacing_override()
636
- }))
637
- }));
638
- return _el$;
639
- })();
666
+ return $d05611ff6b8c8357$export$23fca46f3143581f(() => {
667
+ const grid_spacing_override = $52FdA$solidjs.createMemo(() => {
668
+ const {
669
+ grid_spacing: grid_spacing
670
+ } = props; // can be reactive
671
+ return typeof grid_spacing === "string" ? {
672
+ grid_spacing: grid_spacing
673
+ } : {
674
+ override_vertical_spacing: grid_spacing.vertical,
675
+ grid_spacing: grid_spacing.horizontal
676
+ };
677
+ });
678
+ const [recommendations_resource_] = $52FdA$solidjs.createResource(() => props.recommendations, recs => recs);
679
+ return (() => {
680
+ const _el$ = $52FdA$solidjsweb.getNextElement($2badc30d7c6610e1$var$_tmpl$);
681
+ $52FdA$solidjsweb.insert(_el$, () => $236a257ee52e5414$export$d41d19e89346fa2({
682
+ product_card_template_: function () {
683
+ return props.product_card_template(...arguments);
684
+ },
685
+ recommendations_resource_: recommendations_resource_,
686
+ market_: () => props.market,
687
+ merchant_: () => props.merchant,
688
+ layout_options_: $52FdA$solidjs.createMemo(() => ({
689
+ cols_at_size: $5401a6698b0c0658$export$6daf8749b65a1b77($b1ea8d47bcf03111$export$ff7109b9b2b206ba(props.cols_at_size)),
690
+ ...grid_spacing_override()
691
+ }))
692
+ }));
693
+ return _el$;
694
+ })();
695
+ }, "RecommendationSlider failed");
640
696
  }
641
697
  const $2c920813c92d6987$var$_tmpl$ = /*#__PURE__*/$52FdA$solidjsweb.template(`<div class="recommendation-grid"><!#><!/><!#><!/></div>`, 6);
642
698
  function $2c920813c92d6987$export$7da560f849543dff(_ref) {
@@ -703,48 +759,51 @@ function $2c920813c92d6987$export$7da560f849543dff(_ref) {
703
759
  const $41227f10ad680afd$var$_tmpl$ = /*#__PURE__*/$52FdA$solidjsweb.template(`<button class="show-more major" type="button"></button>`, 2),
704
760
  $41227f10ad680afd$var$_tmpl$2 = /*#__PURE__*/$52FdA$solidjsweb.template(`<div class="depict plp recommendations"></div>`, 2);
705
761
  function $41227f10ad680afd$export$9756467d34d91cdb(props) {
706
- const rows_object_ = $52FdA$solidjs.createMemo(() => {
707
- const view_more_button = props.view_more_button;
708
- if (!view_more_button) return "all";
709
- return {
710
- start_rows: view_more_button.start_rows,
711
- rows_per_click: view_more_button.rows_per_click,
712
- button: (() => {
713
- const _el$ = $52FdA$solidjsweb.getNextElement($41227f10ad680afd$var$_tmpl$);
714
- $52FdA$solidjsweb.insert(_el$, () => view_more_button.text);
715
- return _el$;
716
- })()
717
- };
718
- });
719
- const grid_spacing_override = $52FdA$solidjs.createMemo(() => {
720
- const {
721
- grid_spacing: grid_spacing
722
- } = props; // can be reactive
723
- return typeof grid_spacing === "string" ? {
724
- grid_spacing: grid_spacing
725
- } : {
726
- override_vertical_spacing: grid_spacing.vertical,
727
- grid_spacing: grid_spacing.horizontal
728
- };
729
- });
730
- const [recommendations_resource_] = $52FdA$solidjs.createResource(() => props.recommendations, recs => recs);
731
- return (() => {
732
- const _el$2 = $52FdA$solidjsweb.getNextElement($41227f10ad680afd$var$_tmpl$2);
733
- $52FdA$solidjsweb.insert(_el$2, () => $2c920813c92d6987$export$7da560f849543dff({
734
- rows_object_: rows_object_,
735
- product_card_template_: function () {
736
- return props.product_card_template(...arguments);
737
- },
738
- recommendations_resource_: recommendations_resource_,
739
- market_: () => props.market,
740
- merchant_: () => props.merchant,
741
- layout_options_: $52FdA$solidjs.createMemo(() => ({
742
- cols_at_size: $5401a6698b0c0658$export$6daf8749b65a1b77($b1ea8d47bcf03111$export$ff7109b9b2b206ba(props.cols_at_size)),
743
- ...grid_spacing_override()
744
- }))
745
- }));
746
- return _el$2;
747
- })();
762
+ return $d05611ff6b8c8357$export$23fca46f3143581f(() => {
763
+ const rows_object_ = $52FdA$solidjs.createMemo(() => {
764
+ var _view_more_button$row;
765
+ const view_more_button = props.view_more_button;
766
+ if (!view_more_button) return "all";
767
+ return {
768
+ start_rows: view_more_button.start_rows,
769
+ 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,
770
+ button: (() => {
771
+ const _el$ = $52FdA$solidjsweb.getNextElement($41227f10ad680afd$var$_tmpl$);
772
+ $52FdA$solidjsweb.insert(_el$, () => view_more_button.text);
773
+ return _el$;
774
+ })()
775
+ };
776
+ });
777
+ const grid_spacing_override = $52FdA$solidjs.createMemo(() => {
778
+ const {
779
+ grid_spacing: grid_spacing
780
+ } = props; // can be reactive
781
+ return typeof grid_spacing === "string" ? {
782
+ grid_spacing: grid_spacing
783
+ } : {
784
+ override_vertical_spacing: grid_spacing.vertical,
785
+ grid_spacing: grid_spacing.horizontal
786
+ };
787
+ });
788
+ const [recommendations_resource_] = $52FdA$solidjs.createResource(() => props.recommendations, recs => recs);
789
+ return (() => {
790
+ const _el$2 = $52FdA$solidjsweb.getNextElement($41227f10ad680afd$var$_tmpl$2);
791
+ $52FdA$solidjsweb.insert(_el$2, () => $2c920813c92d6987$export$7da560f849543dff({
792
+ rows_object_: rows_object_,
793
+ product_card_template_: function () {
794
+ return props.product_card_template(...arguments);
795
+ },
796
+ recommendations_resource_: recommendations_resource_,
797
+ market_: () => props.market,
798
+ merchant_: () => props.merchant,
799
+ layout_options_: $52FdA$solidjs.createMemo(() => ({
800
+ cols_at_size: $5401a6698b0c0658$export$6daf8749b65a1b77($b1ea8d47bcf03111$export$ff7109b9b2b206ba(props.cols_at_size)),
801
+ ...grid_spacing_override()
802
+ }))
803
+ }));
804
+ return _el$2;
805
+ })();
806
+ }, "RecommendationGrid failed");
748
807
  }
749
808
  const $858fdcf73148519f$var$_tmpl$ = /*#__PURE__*/$52FdA$solidjsweb.template(`<img>`, 1);
750
809
  function $858fdcf73148519f$export$e6fffe67d4cdd848(whatToWatch) {
@@ -1435,7 +1494,7 @@ const $6b92e147c6e24046$export$48513f6b9f8ce62d = props => {
1435
1494
  const label = $52FdA$solidjs.createMemo(() => props.label_);
1436
1495
  const checked = $52FdA$solidjs.createMemo(() => props.checked_);
1437
1496
  const value = $52FdA$solidjs.createMemo(() => props.value_);
1438
- const is_count_zero = $52FdA$solidjs.createMemo(() => props.is_count_zero_);
1497
+ const is_count_zero = $52FdA$solidjs.createMemo(() => props.is_count_zero_ || count() === 0);
1439
1498
  const id = $52FdA$depictaiutilishared.make_random_classname();
1440
1499
  return (/* We can't use actual margin because ExpandingContainer gets messed up */(() => {
1441
1500
  const _el$ = $52FdA$solidjsweb.getNextElement($6b92e147c6e24046$var$_tmpl$2),
@@ -1475,14 +1534,17 @@ const $6b92e147c6e24046$export$48513f6b9f8ce62d = props => {
1475
1534
  }
1476
1535
  }), _el$8, _co$);
1477
1536
  $52FdA$solidjsweb.effect(_p$ => {
1478
- const _v$ = !!(is_count_zero() || count() === 0),
1479
- _v$2 = value();
1537
+ const _v$ = !!is_count_zero(),
1538
+ _v$2 = value(),
1539
+ _v$3 = !checked() && is_count_zero();
1480
1540
  _v$ !== _p$._v$ && _el$.classList.toggle("count-0", _p$._v$ = _v$);
1481
1541
  _v$2 !== _p$._v$2 && $52FdA$solidjsweb.setAttribute(_el$3, "name", _p$._v$2 = _v$2);
1542
+ _v$3 !== _p$._v$3 && (_el$3.disabled = _p$._v$3 = _v$3);
1482
1543
  return _p$;
1483
1544
  }, {
1484
1545
  _v$: undefined,
1485
- _v$2: undefined
1546
+ _v$2: undefined,
1547
+ _v$3: undefined
1486
1548
  });
1487
1549
  $52FdA$solidjsweb.effect(() => _el$3.checked = checked());
1488
1550
  return _el$;
@@ -2385,6 +2447,10 @@ function $9c1d49181fb3002a$var$render_stuff(data, existing_filter, i18n_) {
2385
2447
  });
2386
2448
  }
2387
2449
  }), _el$16, _co$5);
2450
+ $52FdA$solidjsweb.effect(() => {
2451
+ var _value12;
2452
+ return _el$14.classList.toggle("count-0", !!(((_value12 = value()) === null || _value12 === void 0 ? void 0 : _value12.count_) === 0));
2453
+ });
2388
2454
  return _el$12;
2389
2455
  })();
2390
2456
  },
@@ -2405,8 +2471,8 @@ function $9c1d49181fb3002a$var$render_stuff(data, existing_filter, i18n_) {
2405
2471
  },
2406
2472
  get children() {
2407
2473
  return $9c1d49181fb3002a$var$render_stuff($52FdA$solidjs.createMemo(() => {
2408
- var _value12;
2409
- return ((_value12 = value()) === null || _value12 === void 0 ? void 0 : _value12.children_) || {};
2474
+ var _value13;
2475
+ return ((_value13 = value()) === null || _value13 === void 0 ? void 0 : _value13.children_) || {};
2410
2476
  }), existing_filter, i18n_);
2411
2477
  }
2412
2478
  });
@@ -2593,7 +2659,8 @@ function $9c1d49181fb3002a$var$expand_until_choice(data_structure) {
2593
2659
  });
2594
2660
  }
2595
2661
  const $cd0e5524f9476f9b$var$_tmpl$ = /*#__PURE__*/$52FdA$solidjsweb.template(`<div class="checkbox-grid"></div>`, 2),
2596
- $cd0e5524f9476f9b$var$_tmpl$2 = /*#__PURE__*/$52FdA$solidjsweb.template(`<button class="major-minor-transition"></button>`, 2);
2662
+ $cd0e5524f9476f9b$var$_tmpl$2 = /*#__PURE__*/$52FdA$solidjsweb.template(`<span class="count-wrapper"><span class="count"></span></span>`, 4),
2663
+ $cd0e5524f9476f9b$var$_tmpl$3 = /*#__PURE__*/$52FdA$solidjsweb.template(`<button class="major-minor-transition"><!#><!/><!#><!/></button>`, 6);
2597
2664
  const $cd0e5524f9476f9b$export$414f6a19d38e655c = _ref => {
2598
2665
  let {
2599
2666
  filter_: filter_,
@@ -2635,7 +2702,11 @@ const $cd0e5524f9476f9b$export$414f6a19d38e655c = _ref => {
2635
2702
  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_);
2636
2703
  });
2637
2704
  return (() => {
2638
- const _el$2 = $52FdA$solidjsweb.getNextElement($cd0e5524f9476f9b$var$_tmpl$2);
2705
+ const _el$2 = $52FdA$solidjsweb.getNextElement($cd0e5524f9476f9b$var$_tmpl$3),
2706
+ _el$5 = _el$2.firstChild,
2707
+ [_el$6, _co$] = $52FdA$solidjsweb.getNextMarker(_el$5.nextSibling),
2708
+ _el$7 = _el$6.nextSibling,
2709
+ [_el$8, _co$2] = $52FdA$solidjsweb.getNextMarker(_el$7.nextSibling);
2639
2710
  $52FdA$solidjsweb.addEventListener(_el$2, "click", $52FdA$depictaiutilishared.catchify(() => {
2640
2711
  const set_filter = existing_filter();
2641
2712
  const {
@@ -2656,16 +2727,30 @@ const $cd0e5524f9476f9b$export$414f6a19d38e655c = _ref => {
2656
2727
  const selected_filters = [...get_selected_filters().filter(f => f !== set_filter), ...(new_filter_object.data.length ? [new_filter_object] : [])];
2657
2728
  set_selected_filters(selected_filters);
2658
2729
  }), true);
2659
- $52FdA$solidjsweb.insert(_el$2, () => value().value_);
2730
+ $52FdA$solidjsweb.insert(_el$2, () => value().value_, _el$6, _co$);
2731
+ $52FdA$solidjsweb.insert(_el$2, $52FdA$solidjsweb.createComponent((0, $52FdA$solidjs.Show), {
2732
+ get when() {
2733
+ return value().count_ != undefined;
2734
+ },
2735
+ get children() {
2736
+ const _el$3 = $52FdA$solidjsweb.getNextElement($cd0e5524f9476f9b$var$_tmpl$2),
2737
+ _el$4 = _el$3.firstChild;
2738
+ $52FdA$solidjsweb.insert(_el$4, () => value().count_);
2739
+ return _el$3;
2740
+ }
2741
+ }), _el$8, _co$2);
2660
2742
  $52FdA$solidjsweb.effect(_p$ => {
2661
- const _v$ = !is_selected(),
2662
- _v$2 = !!is_selected();
2663
- _v$ !== _p$._v$ && _el$2.classList.toggle("minor", _p$._v$ = _v$);
2664
- _v$2 !== _p$._v$2 && _el$2.classList.toggle("major", _p$._v$2 = _v$2);
2743
+ const _v$ = value().count_ === 0 && !is_selected(),
2744
+ _v$2 = !is_selected(),
2745
+ _v$3 = !!is_selected();
2746
+ _v$ !== _p$._v$ && (_el$2.disabled = _p$._v$ = _v$);
2747
+ _v$2 !== _p$._v$2 && _el$2.classList.toggle("minor", _p$._v$2 = _v$2);
2748
+ _v$3 !== _p$._v$3 && _el$2.classList.toggle("major", _p$._v$3 = _v$3);
2665
2749
  return _p$;
2666
2750
  }, {
2667
2751
  _v$: undefined,
2668
- _v$2: undefined
2752
+ _v$2: undefined,
2753
+ _v$3: undefined
2669
2754
  });
2670
2755
  $52FdA$solidjsweb.runHydrationEvents();
2671
2756
  return _el$2;
@@ -6800,35 +6885,6 @@ function $ede6c70ecdca46fe$export$f7d2f673fc2f091d(_ref) {
6800
6885
  return _el$13;
6801
6886
  })()];
6802
6887
  }
6803
- function $d05611ff6b8c8357$export$23fca46f3143581f(component, error_message) {
6804
- const component_in_error_boundary = do_with_elements => {
6805
- const error_boundary_wrapped = $1b3cf201cdd38687$export$b69d0d92862de18b({
6806
- severity_: "error",
6807
- message_: error_message,
6808
- get children() {
6809
- const elements = component();
6810
- do_with_elements === null || do_with_elements === void 0 || do_with_elements(elements);
6811
- return elements;
6812
- }
6813
- });
6814
- // This might return an accessor, in that case we need to "unwrap" it since our SDK consumers expect HTML elements or arrays thereof
6815
- if (typeof error_boundary_wrapped === "function")
6816
- // @ts-ignore
6817
- return error_boundary_wrapped();
6818
- // On the server it returns a string, so we just return that
6819
- return error_boundary_wrapped;
6820
- };
6821
- const owner = $52FdA$solidjs.getOwner();
6822
- if (owner == null) return $52FdA$solidjs.createRoot(dispose => {
6823
- // 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
6824
- return component_in_error_boundary(elements => {
6825
- if (!(elements !== null && elements !== void 0 && elements.length)) return;
6826
- (0, $52FdA$depictaiutilishared.observer).onremoved(elements[0], dispose);
6827
- });
6828
- });else
6829
- // we're already in a root so cleanups are handled
6830
- return component_in_error_boundary();
6831
- }
6832
6888
  function $5dd9d0d3ea82e2dd$export$477caf01aecaeb2a(options) {
6833
6889
  var _globalThis$location$, _globalThis$location;
6834
6890
  const router_ = options.router_;
@@ -8623,7 +8679,7 @@ function $3cf7b4db1e203c93$export$605674723bcc715c() {
8623
8679
  const $0677d509ad208e22$var$_tmpl$ = /*#__PURE__*/$52FdA$solidjsweb.template(`<a class="suggestion"></a>`, 2),
8624
8680
  $0677d509ad208e22$var$_tmpl$2 = /*#__PURE__*/$52FdA$solidjsweb.template(`<div class="search-icon"></div>`, 2),
8625
8681
  $0677d509ad208e22$var$_tmpl$3 = /*#__PURE__*/$52FdA$solidjsweb.template(`<span class="type"></span>`, 2),
8626
- $0677d509ad208e22$var$_tmpl$4 = /*#__PURE__*/$52FdA$solidjsweb.template(`<div><!#><!/><span class="value"></span></div>`, 6),
8682
+ $0677d509ad208e22$var$_tmpl$4 = /*#__PURE__*/$52FdA$solidjsweb.template(`<div class="with-parent-title"><!#><!/><span class="value line-clamp"></span></div>`, 6),
8627
8683
  $0677d509ad208e22$var$_tmpl$5 = /*#__PURE__*/$52FdA$solidjsweb.template(`<div class="with-icon"><!#><!/><!#><!/></div>`, 6),
8628
8684
  $0677d509ad208e22$var$_tmpl$6 = /*#__PURE__*/$52FdA$solidjsweb.template(`<h2 class="text"></h2>`, 2),
8629
8685
  $0677d509ad208e22$var$_tmpl$7 = /*#__PURE__*/$52FdA$solidjsweb.template(`<div class="suggestion-container query"><!#><!/><!#><!/></div>`, 6),
@@ -10017,7 +10073,9 @@ function $f1fc9ea3e7632eba$export$f631859cab12b342(_ref) {
10017
10073
  function $bf4a8d57aa8dd1c8$export$9ff751cd77687edc(_ref) {
10018
10074
  let {
10019
10075
  search_results_: search_results_,
10020
- router_: router_
10076
+ router_: router_,
10077
+ queries_without_content_results_: queries_without_content_results_,
10078
+ get_search_query_: get_search_query_
10021
10079
  } = _ref;
10022
10080
  const content_results = $52FdA$solidjs.createMemo(() => {
10023
10081
  var _search_results_;
@@ -10033,6 +10091,10 @@ function $bf4a8d57aa8dd1c8$export$9ff751cd77687edc(_ref) {
10033
10091
  }
10034
10092
  return map;
10035
10093
  });
10094
+ $52FdA$solidjs.createEffect(() => {
10095
+ const results = content_results();
10096
+ if (Array.isArray(results) && results.length === 0) queries_without_content_results_.add($52FdA$solidjs.untrack(get_search_query_));
10097
+ });
10036
10098
  return $52FdA$solidjsweb.createComponent((0, $52FdA$solidjs.For), {
10037
10099
  get each() {
10038
10100
  return [...content_results_by_page_url().keys()];
@@ -10099,8 +10161,15 @@ function $eab939d0b95b75ee$export$6d0c9c22f6652669(_ref) {
10099
10161
  number_: num_results,
10100
10162
  i18n_: i18n_
10101
10163
  });
10102
- const [is_showing_placeholders, set_is_showing_placeholders] = $52FdA$solidjs.createSignal(false);
10164
+ const queries_without_content_results_ = new (0, $52FdA$depictaiutilishared.ListenableSet)();
10165
+ const [check_query, set_check_query] = $52FdA$solidjs.createSignal(false);
10166
+ const placeholders_enabled = $52FdA$solidjs.createMemo(() => {
10167
+ // don't show placeholders when the user toggles filters
10168
+ check_query();
10169
+ return !queries_without_content_results_.has(get_search_query_());
10170
+ });
10103
10171
  const rows_object = $eab939d0b95b75ee$var$make_state_saved_rows(content_results_rows_, i18n_);
10172
+ for (const ev of ["add", "delete"]) queries_without_content_results_.addEventListener(ev, () => set_check_query(prev => !prev));
10104
10173
  return (() => {
10105
10174
  const _el$ = $52FdA$solidjsweb.getNextElement($eab939d0b95b75ee$var$_tmpl$),
10106
10175
  _el$2 = _el$.firstChild,
@@ -10126,36 +10195,27 @@ function $eab939d0b95b75ee$export$6d0c9c22f6652669(_ref) {
10126
10195
  get children() {
10127
10196
  return $52FdA$solidjsweb.createComponent((0, $52FdA$solidjs.Suspense), {
10128
10197
  get fallback() {
10129
- return (() => {
10130
- set_is_showing_placeholders(true);
10131
- $52FdA$solidjs.onCleanup(() => set_is_showing_placeholders(false));
10132
- return $52FdA$solidjsweb.createComponent((0, $05f255c0a94b9ca1$export$4405d077f0a20494), {
10133
- content_results_rows_: content_results_rows_,
10134
- get cols_at_size_() {
10135
- return $52FdA$solidjs.createMemo(() => layout_options_().cols_at_size);
10136
- }
10137
- });
10138
- })();
10198
+ return $52FdA$solidjsweb.createComponent((0, $05f255c0a94b9ca1$export$4405d077f0a20494), {
10199
+ content_results_rows_: content_results_rows_,
10200
+ get cols_at_size_() {
10201
+ return $52FdA$solidjs.createMemo(() => layout_options_().cols_at_size);
10202
+ }
10203
+ });
10139
10204
  },
10140
10205
  get children() {
10141
10206
  return $52FdA$solidjsweb.createComponent((0, $bf4a8d57aa8dd1c8$export$9ff751cd77687edc), {
10142
10207
  router_: router_,
10143
- search_results_: search_results_
10208
+ search_results_: search_results_,
10209
+ queries_without_content_results_: queries_without_content_results_,
10210
+ get_search_query_: get_search_query_
10144
10211
  });
10145
10212
  }
10146
10213
  });
10147
10214
  }
10148
10215
  })), _el$5, _co$2);
10149
- $52FdA$solidjsweb.effect(_p$ => {
10216
+ $52FdA$solidjsweb.effect(() => {
10150
10217
  var _content_results2;
10151
- const _v$ = !!is_showing_placeholders(),
10152
- _v$2 = is_loading_() || ((_content_results2 = content_results()) === null || _content_results2 === void 0 ? void 0 : _content_results2.length) > 0 ? "" : "none";
10153
- _v$ !== _p$._v$ && _el$.classList.toggle("loading", _p$._v$ = _v$);
10154
- _v$2 !== _p$._v$2 && _el$.style.setProperty("display", _p$._v$2 = _v$2);
10155
- return _p$;
10156
- }, {
10157
- _v$: undefined,
10158
- _v$2: undefined
10218
+ return _el$.style.setProperty("display", is_loading_() && placeholders_enabled() || ((_content_results2 = content_results()) === null || _content_results2 === void 0 ? void 0 : _content_results2.length) > 0 ? "" : "none");
10159
10219
  });
10160
10220
  return _el$;
10161
10221
  })();
@@ -10644,7 +10704,7 @@ function $ddd39c5f36f49703$var$_classApplyDescriptorGet(receiver, descriptor) {
10644
10704
  * 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.
10645
10705
  */
10646
10706
  const $ddd39c5f36f49703$var$privately_shared_properties = /*@__PURE__*/new WeakMap();
10647
- const $ddd39c5f36f49703$var$content_search_default = false;
10707
+ const $ddd39c5f36f49703$var$content_search_default = true;
10648
10708
  const $ddd39c5f36f49703$var$min_products_to_fetch_ = 20;
10649
10709
  const $ddd39c5f36f49703$export$bde3eb976dfded9 = depict_search => {
10650
10710
  var _privately_shared_pro;