@depict-ai/ui 1.4.25 → 2.0.1

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.
@@ -60,7 +60,7 @@ $parcel$export(module.exports, "defaultColsAtSize", () => $a3280f0aad997933$expo
60
60
  $parcel$export(module.exports, "defaultCategoryTitlePlugin", () => $a3280f0aad997933$export$7bf543b9d9be2c22);
61
61
  $parcel$export(module.exports, "version", () => $b757f75811f3261f$export$83d89fbfd8236492);
62
62
  /*! Depict.ai search and product listing SDK */
63
- const $b757f75811f3261f$export$83d89fbfd8236492 = "1.4.25";
63
+ const $b757f75811f3261f$export$83d89fbfd8236492 = "2.0.1";
64
64
  const $4e04be41243c3d80$var$transform_elements = sorted_cols_at_size => {
65
65
  const cols_at_size = [];
66
66
  for (let i = 0; i < sorted_cols_at_size.length; i++) {
@@ -119,7 +119,9 @@ function $ab7c6c7911bae2f5$export$ff7109b9b2b206ba(sdk_cols_at_size, min_width_f
119
119
  }
120
120
  function $fc23d7668ae0011d$export$a2cc176055f8f08() {
121
121
  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.";
122
- return (0, $5vyXB$solidjsweb.isServer) ? `<!-- ${text} -->` : document.createComment(text);
122
+ return (0, $5vyXB$solidjsweb.isServer) ? {
123
+ t: `<!-- ${text} -->`
124
+ } : document.createComment(text);
123
125
  }
124
126
  function $5f7d55c710fd1bc2$export$2f0cbfbb4354bb52(elements) {
125
127
  // FYI this probably doesn't work on hugely deep nestings or large amount of elements
@@ -326,21 +328,32 @@ function $edafe91daf3091d7$export$b69d0d92862de18b(props) {
326
328
  }
327
329
  });
328
330
  }
329
- const $f48d0fbb00835aaa$var$_tmpl$ = ["<style", ' type="text/css">', "</style>"],
330
- $f48d0fbb00835aaa$var$_tmpl$2 = ["<div", ' class="', '">', "</div>"];
331
+ const $f48d0fbb00835aaa$var$_tmpl$ = ["<div", ' class="', '">', "</div>"],
332
+ $f48d0fbb00835aaa$var$_tmpl$2 = ["<style", ' type="text/css">', "</style>"];
331
333
  function $f48d0fbb00835aaa$export$d21e32dfedac04be(props) {
332
- const container_element_ = $5vyXB$solidjsweb.ssrElement("div", props.element_attributes, () => $5vyXB$solidjsweb.escape(props.children), true); // Don't want this in the error boundary below, it should only be for the actual layouting
334
+ const container_class = "x" + $5vyXB$solidjs.createUniqueId();
335
+ const container_element_ = $5vyXB$solidjsweb.ssrElement("div", () => ({
336
+ ...props.element_attributes,
337
+ "classList": {
338
+ [container_class]: true
339
+ }
340
+ }), () => $5vyXB$solidjsweb.escape(props.children), true); // Don't want this in the error boundary below, it should only be for the actual layouting
333
341
  return $5vyXB$solidjsweb.createComponent((0, $edafe91daf3091d7$export$b69d0d92862de18b), {
334
342
  get message_() {
335
343
  return "Failed calculating " + props.layout + " layout";
336
344
  },
337
345
  severity_: "error",
338
346
  get children() {
339
- return $f48d0fbb00835aaa$export$445d8d3f5f706a40(props, container_element_);
347
+ return $f48d0fbb00835aaa$export$445d8d3f5f706a40(props, container_element_, false, container_class);
340
348
  }
341
349
  });
342
350
  }
343
- function $f48d0fbb00835aaa$export$445d8d3f5f706a40(props, container_element, insert_after_container = false) {
351
+ function $f48d0fbb00835aaa$export$445d8d3f5f706a40(props, container_element, insert_after_container = false, container_class) {
352
+ if (!container_class) {
353
+ // only try to add if it wasn't provided, so that we have a code path without classList when doing SSR
354
+ container_class = $5vyXB$depictaiutilishared.make_random_classname();
355
+ container_element.classList.add(container_class);
356
+ }
344
357
  // Copy of Layout from utilishared but using solid-js signals instead of async iterable IPNS
345
358
  const show_all_rows = $5vyXB$solidjs.createMemo(() => props.rows === "all");
346
359
  const rows_or_empty_object = $5vyXB$solidjs.createMemo(() => show_all_rows() ? {} : props.rows);
@@ -355,28 +368,27 @@ function $f48d0fbb00835aaa$export$445d8d3f5f706a40(props, container_element, ins
355
368
  return !(!button || Array.isArray(button) && !button.length);
356
369
  });
357
370
  const [get_styling, set_styling] = $5vyXB$solidjs.createSignal();
358
- const container_class = $5vyXB$depictaiutilishared.make_random_classname();
359
371
  const selector_beginning = `.depict .${container_class}>`; // class so ppl can have id if needed
360
372
  const [get_children_count, set_children_count] = $5vyXB$solidjs.createSignal(0);
361
- const update_children_count = () => set_children_count(container_element.children.length);
373
+ const update_children_count = () => (0, $5vyXB$solidjsweb.isServer) ? 20 : set_children_count(container_element.children.length);
362
374
  const col_styling = $5vyXB$solidjs.createMemo(() => $5vyXB$depictaiutilishared.n_col_styling_with_dist(selector_beginning, props.grid_spacing, props.cols_at_size, props.layout, props.override_vertical_spacing));
363
375
  const default_currently_visible_signal = $5vyXB$solidjs.createSignal($5vyXB$solidjs.untrack(() => rows_or_empty_object().start_rows ?? 1)); // Keep this signal here, so it doesn't change when rows_or_empty_object and I think it's to be expected that the "internal default signal" stays the same
364
376
  const rows_visible_signal = $5vyXB$solidjs.createMemo(() => rows_or_empty_object().currently_visible || default_currently_visible_signal);
365
377
  const get_rows_visible = $5vyXB$solidjs.createMemo(() => rows_visible_signal()[0]());
366
378
  const set_rows_visible = $5vyXB$solidjs.createMemo(() => rows_visible_signal()[1]);
367
- const view_more_button_class = $5vyXB$depictaiutilishared.make_random_classname();
368
- const view_less_button_class = $5vyXB$depictaiutilishared.make_random_classname();
369
- const style_element = $5vyXB$solidjsweb.ssr($f48d0fbb00835aaa$var$_tmpl$, $5vyXB$solidjsweb.ssrHydrationKey(), get_styling);
370
- const view_more_button_container = $5vyXB$solidjs.createMemo(() => have_a_view_more_button() && $5vyXB$solidjsweb.ssr($f48d0fbb00835aaa$var$_tmpl$2, $5vyXB$solidjsweb.ssrHydrationKey(), `load-more-container ${$5vyXB$solidjsweb.escape(view_more_button_class, true)}`, $5vyXB$solidjsweb.escape(rows_or_empty_object().button)));
379
+ const view_more_button_class = "m" + $5vyXB$solidjs.createUniqueId();
380
+ const view_less_button_class = "l" + $5vyXB$solidjs.createUniqueId(); // https://github.com/solidjs/solid-docs/issues/263#issuecomment-1622388079
381
+ const view_more_button_container = $5vyXB$solidjs.createMemo(() => have_a_view_more_button() && $5vyXB$solidjsweb.ssr($f48d0fbb00835aaa$var$_tmpl$, $5vyXB$solidjsweb.ssrHydrationKey(), `load-more-container ${$5vyXB$solidjsweb.escape(view_more_button_class, true)}`, $5vyXB$solidjsweb.escape(rows_or_empty_object().button)));
371
382
  // 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
372
- const view_less_button_container = $5vyXB$solidjs.createMemo(() => have_a_view_less_button() && $5vyXB$solidjsweb.ssr($f48d0fbb00835aaa$var$_tmpl$2, $5vyXB$solidjsweb.ssrHydrationKey(), `load-less-container ${$5vyXB$solidjsweb.escape(view_less_button_class, true)}`, $5vyXB$solidjsweb.escape(rows_or_empty_object().view_less_button)));
373
- container_element.classList.add(container_class);
383
+ const view_less_button_container = $5vyXB$solidjs.createMemo(() => have_a_view_less_button() && $5vyXB$solidjsweb.ssr($f48d0fbb00835aaa$var$_tmpl$, $5vyXB$solidjsweb.ssrHydrationKey(), `load-less-container ${$5vyXB$solidjsweb.escape(view_less_button_class, true)}`, $5vyXB$solidjsweb.escape(rows_or_empty_object().view_less_button)));
384
+ const [force_style_update, set_force_style_update] = $5vyXB$solidjs.createSignal("");
374
385
  $5vyXB$solidjs.createComputed(() => {
375
386
  // Make sure we don't have more rows visible than max_rows (this could happen by max_rows being decreased)
376
387
  const rows_visible = get_rows_visible();
377
388
  const max_rows = rows_or_empty_object().max_rows;
378
389
  if (!isNaN(max_rows) && max_rows >= 0 && rows_visible > max_rows) set_rows_visible()(max_rows);
379
390
  });
391
+ $5vyXB$solidjs.createEffect(() => set_force_style_update(" ")); // force style update after hydration due to https://discord.com/channels/722131463138705510/722167424186843267/1151544212517552168
380
392
  $5vyXB$solidjs.createRenderEffect(() => {
381
393
  // Be careful to only read show_all_rows in here (ofc doesn't apply to nested effects)
382
394
  if (show_all_rows()) {
@@ -385,11 +397,13 @@ function $f48d0fbb00835aaa$export$445d8d3f5f706a40(props, container_element, ins
385
397
  return;
386
398
  }
387
399
  update_children_count();
388
- const mutation_observer = new MutationObserver($5vyXB$depictaiutilishared.catchify(update_children_count));
389
- mutation_observer.observe(container_element, {
390
- childList: true
391
- });
392
- $5vyXB$solidjs.onCleanup(() => mutation_observer.disconnect());
400
+ if (!(0, $5vyXB$solidjsweb.isServer)) {
401
+ const mutation_observer = new MutationObserver($5vyXB$depictaiutilishared.catchify(update_children_count));
402
+ mutation_observer.observe(container_element, {
403
+ childList: true
404
+ });
405
+ $5vyXB$solidjs.onCleanup(() => mutation_observer.disconnect());
406
+ }
393
407
  set_styling(
394
408
  // this is needed because solid will think that the memo-accessor is a setter function otherwise
395
409
  () => $5vyXB$solidjs.createMemo(() => {
@@ -400,7 +414,7 @@ function $f48d0fbb00835aaa$export$445d8d3f5f706a40(props, container_element, ins
400
414
  } = rows_or_empty_object();
401
415
  const rows_visible = get_rows_visible();
402
416
  const children_count = get_children_count();
403
- return col_styling() + props.cols_at_size.map(options => {
417
+ return force_style_update() + col_styling() + props.cols_at_size.map(options => {
404
418
  const [recs_per_row, min, max] = options;
405
419
  let should_hide_view_more_button;
406
420
  let visible_recs;
@@ -421,6 +435,7 @@ function $f48d0fbb00835aaa$export$445d8d3f5f706a40(props, container_element, ins
421
435
  }).join("");
422
436
  }));
423
437
  });
438
+ const style_element = $5vyXB$solidjsweb.ssr($f48d0fbb00835aaa$var$_tmpl$2, $5vyXB$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
424
439
  if (insert_after_container) container_element.after(style_element);
425
440
  return [container_element, view_more_button_container(), view_less_button_container(), style_element];
426
441
  }
@@ -434,12 +449,20 @@ function $a0e53f99354809d9$export$6649caad96ef8870({
434
449
  slider_ref_: slider_ref_,
435
450
  faded_opacity_ = 0.7,
436
451
  mutation_plugins_ = [],
437
- disable_fading_: disable_fading_
452
+ disable_fading_: disable_fading_,
453
+ arrow_width_: arrow_width_,
454
+ arrow_height_: arrow_height_
438
455
  }) {
439
456
  const slider = new (0, $5vyXB$depictaiutilishared.Amazing_Slider)({
440
457
  button_contents: {
441
- left: [$5vyXB$solidjsweb.ssr($a0e53f99354809d9$var$_tmpl$, $5vyXB$solidjsweb.ssrHydrationKey(), $5vyXB$solidjsweb.escape($5vyXB$solidjsweb.createComponent((0, $0f313083912e447a$export$8be2714ec7f169ee), {})))],
442
- right: [$5vyXB$solidjsweb.ssr($a0e53f99354809d9$var$_tmpl$, $5vyXB$solidjsweb.ssrHydrationKey(), $5vyXB$solidjsweb.escape($5vyXB$solidjsweb.createComponent((0, $0f313083912e447a$export$8be2714ec7f169ee), {})))]
458
+ left: [$5vyXB$solidjsweb.ssr($a0e53f99354809d9$var$_tmpl$, $5vyXB$solidjsweb.ssrHydrationKey(), $5vyXB$solidjsweb.escape($5vyXB$solidjsweb.createComponent((0, $0f313083912e447a$export$8be2714ec7f169ee), {
459
+ height_: arrow_height_,
460
+ width_: arrow_width_
461
+ })))],
462
+ right: [$5vyXB$solidjsweb.ssr($a0e53f99354809d9$var$_tmpl$, $5vyXB$solidjsweb.ssrHydrationKey(), $5vyXB$solidjsweb.escape($5vyXB$solidjsweb.createComponent((0, $0f313083912e447a$export$8be2714ec7f169ee), {
463
+ height_: arrow_height_,
464
+ width_: arrow_width_
465
+ })))]
443
466
  },
444
467
  constructor_plugins: [$5vyXB$depictaiutilishared.slider_snap_css().constructor_plugin],
445
468
  mutation_plugins: [...(disable_fading_ ? [] : [$5vyXB$depictaiutilishared.slider_fading_factory({
@@ -462,6 +485,8 @@ function $363ce4d1d71041aa$export$d41d19e89346fa2({
462
485
  const is_showing_something = $5vyXB$solidjs.createMemo(() => recommendations_resource_.loading || recommendations_resource_()?.length);
463
486
  const num_placeholders_ = () => 20;
464
487
  const slider = $5vyXB$solidjsweb.createComponent((0, $a0e53f99354809d9$export$6649caad96ef8870), {
488
+ arrow_height_: 25,
489
+ arrow_width_: 12.5,
465
490
  disable_fading_: true,
466
491
  slider_ref_: slider => {
467
492
  const {
@@ -506,30 +531,62 @@ function $363ce4d1d71041aa$export$d41d19e89346fa2({
506
531
  children: slider
507
532
  });
508
533
  }
534
+ function $95837413165cc2df$export$23fca46f3143581f(component, error_message) {
535
+ const component_in_error_boundary = do_with_elements => {
536
+ const error_boundary_wrapped = $edafe91daf3091d7$export$b69d0d92862de18b({
537
+ severity_: "error",
538
+ message_: error_message,
539
+ get children() {
540
+ const elements = component();
541
+ do_with_elements?.(elements);
542
+ return elements;
543
+ }
544
+ });
545
+ // This might return an accessor, in that case we need to "unwrap" it since our SDK consumers expect HTML elements or arrays thereof
546
+ if (typeof error_boundary_wrapped === "function")
547
+ // @ts-ignore
548
+ return error_boundary_wrapped();
549
+ // On the server it returns a string, so we just return that
550
+ return error_boundary_wrapped;
551
+ };
552
+ const owner = $5vyXB$solidjs.getOwner();
553
+ if (owner == null) return $5vyXB$solidjs.createRoot(dispose => {
554
+ // 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
555
+ return component_in_error_boundary(elements => {
556
+ const have_multiple = Array.isArray(elements);
557
+ if (have_multiple ? !elements?.length : !elements) return;
558
+ (0, $5vyXB$depictaiutilishared.observer).onremoved(have_multiple ? elements[0] : elements, dispose);
559
+ });
560
+ });else
561
+ // we're already in a root so cleanups are handled
562
+ return component_in_error_boundary();
563
+ }
509
564
  const $72f96c4782db0b1b$var$_tmpl$ = ["<div", ' class="depict recommendations">', "</div>"];
510
565
  function $72f96c4782db0b1b$export$9574e176201e5e8d(props) {
511
- const grid_spacing_override = $5vyXB$solidjs.createMemo(() => {
512
- const {
513
- grid_spacing: grid_spacing
514
- } = props; // can be reactive
515
- return typeof grid_spacing === "string" ? {
516
- grid_spacing: grid_spacing
517
- } : {
518
- override_vertical_spacing: grid_spacing.vertical,
519
- grid_spacing: grid_spacing.horizontal
520
- };
521
- });
522
- const [recommendations_resource_] = $5vyXB$solidjs.createResource(() => props.recommendations, recs => recs);
523
- return $5vyXB$solidjsweb.ssr($72f96c4782db0b1b$var$_tmpl$, $5vyXB$solidjsweb.ssrHydrationKey(), $5vyXB$solidjsweb.escape($363ce4d1d71041aa$export$d41d19e89346fa2({
524
- product_card_template_: (...args) => props.product_card_template(...args),
525
- recommendations_resource_: recommendations_resource_,
526
- market_: () => props.market,
527
- merchant_: () => props.merchant,
528
- layout_options_: $5vyXB$solidjs.createMemo(() => ({
529
- cols_at_size: $4e04be41243c3d80$export$6daf8749b65a1b77($ab7c6c7911bae2f5$export$ff7109b9b2b206ba(props.cols_at_size)),
530
- ...grid_spacing_override()
531
- }))
532
- })));
566
+ return $95837413165cc2df$export$23fca46f3143581f(() => {
567
+ const grid_spacing_override = $5vyXB$solidjs.createMemo(() => {
568
+ const {
569
+ grid_spacing: grid_spacing
570
+ } = props; // can be reactive
571
+ return typeof grid_spacing === "string" ? {
572
+ grid_spacing: grid_spacing
573
+ } : {
574
+ override_vertical_spacing: grid_spacing.vertical,
575
+ grid_spacing: grid_spacing.horizontal
576
+ };
577
+ });
578
+ const [recommendations_resource_] = $5vyXB$solidjs.createResource(() => props.recommendations, recs => recs);
579
+ return $5vyXB$solidjsweb.ssr($72f96c4782db0b1b$var$_tmpl$, $5vyXB$solidjsweb.ssrHydrationKey(), $5vyXB$solidjsweb.escape($363ce4d1d71041aa$export$d41d19e89346fa2({
580
+ product_card_template_: (...args) => props.product_card_template(...args),
581
+ recommendations_resource_: recommendations_resource_,
582
+ market_: () => props.market,
583
+ merchant_: () => props.merchant,
584
+ layout_options_: $5vyXB$solidjs.createMemo(() => ({
585
+ cols_at_size: $4e04be41243c3d80$export$6daf8749b65a1b77($ab7c6c7911bae2f5$export$ff7109b9b2b206ba(props.cols_at_size)),
586
+ ...grid_spacing_override()
587
+ }))
588
+ })));
589
+ }, "RecommendationSlider failed");
533
590
  }
534
591
  const $b8e79813f4f7ebe4$var$_tmpl$ = ["<div", ' class="recommendation-grid"><!--#-->', "<!--/--><!--#-->", "<!--/--></div>"];
535
592
  function $b8e79813f4f7ebe4$export$7da560f849543dff({
@@ -585,38 +642,49 @@ function $b8e79813f4f7ebe4$export$7da560f849543dff({
585
642
  const $1f8dbf7e28b3eff2$var$_tmpl$ = ["<button", ' class="show-more major" type="button">', "</button>"],
586
643
  $1f8dbf7e28b3eff2$var$_tmpl$2 = ["<div", ' class="depict plp recommendations">', "</div>"];
587
644
  function $1f8dbf7e28b3eff2$export$9756467d34d91cdb(props) {
588
- const rows_object_ = $5vyXB$solidjs.createMemo(() => {
589
- const view_more_button = props.view_more_button;
590
- if (!view_more_button) return "all";
591
- return {
592
- start_rows: view_more_button.start_rows,
593
- rows_per_click: view_more_button.rows_per_click,
594
- button: $5vyXB$solidjsweb.ssr($1f8dbf7e28b3eff2$var$_tmpl$, $5vyXB$solidjsweb.ssrHydrationKey(), $5vyXB$solidjsweb.escape(view_more_button.text))
595
- };
596
- });
597
- const grid_spacing_override = $5vyXB$solidjs.createMemo(() => {
598
- const {
599
- grid_spacing: grid_spacing
600
- } = props; // can be reactive
601
- return typeof grid_spacing === "string" ? {
602
- grid_spacing: grid_spacing
603
- } : {
604
- override_vertical_spacing: grid_spacing.vertical,
605
- grid_spacing: grid_spacing.horizontal
606
- };
607
- });
608
- const [recommendations_resource_] = $5vyXB$solidjs.createResource(() => props.recommendations, recs => recs);
609
- return $5vyXB$solidjsweb.ssr($1f8dbf7e28b3eff2$var$_tmpl$2, $5vyXB$solidjsweb.ssrHydrationKey(), $5vyXB$solidjsweb.escape($b8e79813f4f7ebe4$export$7da560f849543dff({
610
- rows_object_: rows_object_,
611
- product_card_template_: (...args) => props.product_card_template(...args),
612
- recommendations_resource_: recommendations_resource_,
613
- market_: () => props.market,
614
- merchant_: () => props.merchant,
615
- layout_options_: $5vyXB$solidjs.createMemo(() => ({
616
- cols_at_size: $4e04be41243c3d80$export$6daf8749b65a1b77($ab7c6c7911bae2f5$export$ff7109b9b2b206ba(props.cols_at_size)),
617
- ...grid_spacing_override()
618
- }))
619
- })));
645
+ return $95837413165cc2df$export$23fca46f3143581f(() => {
646
+ const rows_object_ = $5vyXB$solidjs.createMemo(() => {
647
+ const {
648
+ view_more_button: view_more_button,
649
+ max_rows: max_rows
650
+ } = props;
651
+ if (!view_more_button) {
652
+ if (max_rows) return {
653
+ max_rows: max_rows
654
+ };
655
+ return "all";
656
+ }
657
+ return {
658
+ max_rows: max_rows,
659
+ start_rows: view_more_button.start_rows,
660
+ rows_per_click: view_more_button.rows_per_click ?? 2,
661
+ button: $5vyXB$solidjsweb.ssr($1f8dbf7e28b3eff2$var$_tmpl$, $5vyXB$solidjsweb.ssrHydrationKey(), $5vyXB$solidjsweb.escape(view_more_button.text))
662
+ };
663
+ });
664
+ const grid_spacing_override = $5vyXB$solidjs.createMemo(() => {
665
+ const {
666
+ grid_spacing: grid_spacing
667
+ } = props; // can be reactive
668
+ return typeof grid_spacing === "string" ? {
669
+ grid_spacing: grid_spacing
670
+ } : {
671
+ override_vertical_spacing: grid_spacing.vertical,
672
+ grid_spacing: grid_spacing.horizontal
673
+ };
674
+ });
675
+ const [recommendations_resource_] = $5vyXB$solidjs.createResource(() => props.recommendations, recs => recs);
676
+ return $5vyXB$solidjsweb.ssr($1f8dbf7e28b3eff2$var$_tmpl$2, $5vyXB$solidjsweb.ssrHydrationKey(), $5vyXB$solidjsweb.escape($b8e79813f4f7ebe4$export$7da560f849543dff({
677
+ rows_object_: rows_object_,
678
+ product_card_template_: (...args) => props.product_card_template(...args),
679
+ recommendations_resource_: recommendations_resource_,
680
+ market_: () => props.market,
681
+ merchant_: () => props.merchant,
682
+ layout_options_: $5vyXB$solidjs.createMemo(() => ({
683
+ cols_at_size: $4e04be41243c3d80$export$6daf8749b65a1b77($ab7c6c7911bae2f5$export$ff7109b9b2b206ba(props.cols_at_size)),
684
+ ...grid_spacing_override()
685
+ }))
686
+ })));
687
+ }, "RecommendationGrid failed");
620
688
  }
621
689
  function $19950faaac026e09$export$e6fffe67d4cdd848(whatToWatch) {
622
690
  const [size, setSize] = $5vyXB$solidjs.createSignal(0);
@@ -994,16 +1062,16 @@ function $235a2771a44e28e9$export$fecbb157621501bd({
994
1062
  return outmost_element;
995
1063
  }
996
1064
  const $b3cf6ca8dc0e9998$var$_tmpl$ = ["<span", ' class="count">', "</span>"],
997
- $b3cf6ca8dc0e9998$var$_tmpl$2 = ["<label", ' class="', '"', '><div class="left"><input type="checkbox"', "", '><span class="custom-indicator"></span><span class="text line-clamp">', "</span></div><!--#-->", "<!--/--></label>"];
1065
+ $b3cf6ca8dc0e9998$var$_tmpl$2 = ["<label", ' class="', '"', '><div class="left"><input type="checkbox"', "", "", '><span class="custom-indicator"></span><span class="text line-clamp">', "</span></div><!--#-->", "<!--/--></label>"];
998
1066
  const $b3cf6ca8dc0e9998$export$48513f6b9f8ce62d = props => {
999
1067
  // 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
1000
1068
  const count = $5vyXB$solidjs.createMemo(() => props.count_);
1001
1069
  const label = $5vyXB$solidjs.createMemo(() => props.label_);
1002
1070
  const checked = $5vyXB$solidjs.createMemo(() => props.checked_);
1003
1071
  const value = $5vyXB$solidjs.createMemo(() => props.value_);
1004
- const is_count_zero = $5vyXB$solidjs.createMemo(() => props.is_count_zero_);
1072
+ const is_count_zero = $5vyXB$solidjs.createMemo(() => props.is_count_zero_ || count() === 0);
1005
1073
  const id = $5vyXB$depictaiutilishared.make_random_classname();
1006
- return (/* We can't use actual margin because ExpandingContainer gets messed up */$5vyXB$solidjsweb.ssr($b3cf6ca8dc0e9998$var$_tmpl$2, $5vyXB$solidjsweb.ssrHydrationKey(), `input-row ${is_count_zero() || count() === 0 ? "count-0" : ""}`, $5vyXB$solidjsweb.ssrAttribute("for", $5vyXB$solidjsweb.escape(id, true), false), $5vyXB$solidjsweb.ssrAttribute("name", $5vyXB$solidjsweb.escape(value(), true), false) + $5vyXB$solidjsweb.ssrAttribute("id", $5vyXB$solidjsweb.escape(id, true), false), $5vyXB$solidjsweb.ssrAttribute("checked", checked(), true), $5vyXB$solidjsweb.escape(label()) || $5vyXB$solidjsweb.escape(value()), $5vyXB$solidjsweb.escape($5vyXB$solidjsweb.createComponent((0, $5vyXB$solidjs.Show), {
1074
+ return (/* We can't use actual margin because ExpandingContainer gets messed up */$5vyXB$solidjsweb.ssr($b3cf6ca8dc0e9998$var$_tmpl$2, $5vyXB$solidjsweb.ssrHydrationKey(), `input-row ${is_count_zero() ? "count-0" : ""}`, $5vyXB$solidjsweb.ssrAttribute("for", $5vyXB$solidjsweb.escape(id, true), false), $5vyXB$solidjsweb.ssrAttribute("name", $5vyXB$solidjsweb.escape(value(), true), false) + $5vyXB$solidjsweb.ssrAttribute("id", $5vyXB$solidjsweb.escape(id, true), false), $5vyXB$solidjsweb.ssrAttribute("checked", checked(), true), $5vyXB$solidjsweb.ssrAttribute("disabled", !checked() && is_count_zero(), true), $5vyXB$solidjsweb.escape(label()) || $5vyXB$solidjsweb.escape(value()), $5vyXB$solidjsweb.escape($5vyXB$solidjsweb.createComponent((0, $5vyXB$solidjs.Show), {
1007
1075
  get when() {
1008
1076
  return count() != undefined;
1009
1077
  },
@@ -1380,7 +1448,7 @@ function $7567511a7c3e4bd7$export$e5c2828934226505({
1380
1448
  const $3bdc00a1353c1150$var$_tmpl$ = ["<form", ' class="', '"><!--#-->', "<!--/--><!--#-->", "<!--/--></form>"],
1381
1449
  $3bdc00a1353c1150$var$_tmpl$2 = ["<div", ' class="', '"><!--#-->', "<!--/--><!--#-->", "<!--/--></div>"],
1382
1450
  $3bdc00a1353c1150$var$_tmpl$3 = ["<details", "></details>"],
1383
- $3bdc00a1353c1150$var$_tmpl$4 = ["<summary", ' class="category-parent"><div class="summary"><span class="count">', "</span><!--#-->", "<!--/--></div></summary>"];
1451
+ $3bdc00a1353c1150$var$_tmpl$4 = ["<summary", ' class="category-parent"><div class="summary"><span class="', '">', "</span><!--#-->", "<!--/--></div></summary>"];
1384
1452
  const $3bdc00a1353c1150$var$max_visible_without_collapsing = 15;
1385
1453
  const $3bdc00a1353c1150$var$show_non_collapsible_when_collapsed = 4;
1386
1454
  function $3bdc00a1353c1150$export$a32086fa6616eafd({
@@ -1582,7 +1650,7 @@ function $3bdc00a1353c1150$var$render_stuff(data, existing_filter, i18n_) {
1582
1650
  return $5vyXB$solidjsweb.ssr($3bdc00a1353c1150$var$_tmpl$3, $5vyXB$solidjsweb.ssrHydrationKey());
1583
1651
  },
1584
1652
  get summary_() {
1585
- return $5vyXB$solidjsweb.ssr($3bdc00a1353c1150$var$_tmpl$4, $5vyXB$solidjsweb.ssrHydrationKey(), $5vyXB$solidjsweb.escape(value()?.count_), $5vyXB$solidjsweb.escape($5vyXB$solidjsweb.createComponent((0, $7567511a7c3e4bd7$export$e5c2828934226505), {
1653
+ return $5vyXB$solidjsweb.ssr($3bdc00a1353c1150$var$_tmpl$4, $5vyXB$solidjsweb.ssrHydrationKey(), `count ${value()?.count_ === 0 ? "count-0" : ""}`, $5vyXB$solidjsweb.escape(value()?.count_), $5vyXB$solidjsweb.escape($5vyXB$solidjsweb.createComponent((0, $7567511a7c3e4bd7$export$e5c2828934226505), {
1586
1654
  i18n_: i18n_,
1587
1655
  get expanded_() {
1588
1656
  return $5vyXB$solidjs.createMemo(() => value()?.is_expanded_?.ui_should_show_expanded_?.() ?? false);
@@ -1774,7 +1842,8 @@ function $3bdc00a1353c1150$var$expand_until_choice(data_structure) {
1774
1842
  });
1775
1843
  }
1776
1844
  const $0ef1681699140f1a$var$_tmpl$ = ["<div", ' class="checkbox-grid">', "</div>"],
1777
- $0ef1681699140f1a$var$_tmpl$2 = ["<button", ' class="', '">', "</button>"];
1845
+ $0ef1681699140f1a$var$_tmpl$2 = ["<span", ' class="count-wrapper"><span class="count">', "</span></span>"],
1846
+ $0ef1681699140f1a$var$_tmpl$3 = ["<button", "", ' class="', '"><!--#-->', "<!--/--><!--#-->", "<!--/--></button>"];
1778
1847
  const $0ef1681699140f1a$export$414f6a19d38e655c = ({
1779
1848
  filter_: filter_,
1780
1849
  selected_filters_: [get_selected_filters, set_selected_filters]
@@ -1803,7 +1872,14 @@ const $0ef1681699140f1a$export$414f6a19d38e655c = ({
1803
1872
  },
1804
1873
  children: value => {
1805
1874
  const is_selected = $5vyXB$solidjs.createMemo(() => existing_filter()?.data?.includes(value().value_));
1806
- return $5vyXB$solidjsweb.ssr($0ef1681699140f1a$var$_tmpl$2, $5vyXB$solidjsweb.ssrHydrationKey(), `${!is_selected() ? "minor" : ""} ${is_selected() ? "major" : ""} major-minor-transition`, $5vyXB$solidjsweb.escape(value().value_));
1875
+ return $5vyXB$solidjsweb.ssr($0ef1681699140f1a$var$_tmpl$3, $5vyXB$solidjsweb.ssrHydrationKey(), $5vyXB$solidjsweb.ssrAttribute("disabled", value().count_ === 0 && !is_selected(), true), `${!is_selected() ? "minor" : ""} ${is_selected() ? "major" : ""} major-minor-transition`, $5vyXB$solidjsweb.escape(value().value_), $5vyXB$solidjsweb.escape($5vyXB$solidjsweb.createComponent((0, $5vyXB$solidjs.Show), {
1876
+ get when() {
1877
+ return value().count_ != undefined;
1878
+ },
1879
+ get children() {
1880
+ return $5vyXB$solidjsweb.ssr($0ef1681699140f1a$var$_tmpl$2, $5vyXB$solidjsweb.ssrHydrationKey(), $5vyXB$solidjsweb.escape(value().count_));
1881
+ }
1882
+ })));
1807
1883
  }
1808
1884
  })));
1809
1885
  };
@@ -5067,35 +5143,6 @@ function $840d88a04b2d22a7$export$f7d2f673fc2f091d({
5067
5143
  }
5068
5144
  })))];
5069
5145
  }
5070
- function $95837413165cc2df$export$23fca46f3143581f(component, error_message) {
5071
- const component_in_error_boundary = do_with_elements => {
5072
- const error_boundary_wrapped = $edafe91daf3091d7$export$b69d0d92862de18b({
5073
- severity_: "error",
5074
- message_: error_message,
5075
- get children() {
5076
- const elements = component();
5077
- do_with_elements?.(elements);
5078
- return elements;
5079
- }
5080
- });
5081
- // This might return an accessor, in that case we need to "unwrap" it since our SDK consumers expect HTML elements or arrays thereof
5082
- if (typeof error_boundary_wrapped === "function")
5083
- // @ts-ignore
5084
- return error_boundary_wrapped();
5085
- // On the server it returns a string, so we just return that
5086
- return error_boundary_wrapped;
5087
- };
5088
- const owner = $5vyXB$solidjs.getOwner();
5089
- if (owner == null) return $5vyXB$solidjs.createRoot(dispose => {
5090
- // 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
5091
- return component_in_error_boundary(elements => {
5092
- if (!elements?.length) return;
5093
- (0, $5vyXB$depictaiutilishared.observer).onremoved(elements[0], dispose);
5094
- });
5095
- });else
5096
- // we're already in a root so cleanups are handled
5097
- return component_in_error_boundary();
5098
- }
5099
5146
  function $c79fd10a3ab7d6e0$export$477caf01aecaeb2a(options) {
5100
5147
  const router_ = options.router_;
5101
5148
  const search_query_url_param_name_ = "search_query_url_param_name_" in options ? options.search_query_url_param_name_ : undefined;
@@ -6391,7 +6438,7 @@ function $c0125412b4ea0c93$export$605674723bcc715c(props = {}) {
6391
6438
  const $6b65ba8af12c5a26$var$_tmpl$ = ["<a", ' class="', '"', ">", "</a>"],
6392
6439
  $6b65ba8af12c5a26$var$_tmpl$2 = ["<div", ' class="search-icon">', "</div>"],
6393
6440
  $6b65ba8af12c5a26$var$_tmpl$3 = ["<span", ' class="type">', "</span>"],
6394
- $6b65ba8af12c5a26$var$_tmpl$4 = ["<div", "><!--#-->", '<!--/--><span class="value">', "</span></div>"],
6441
+ $6b65ba8af12c5a26$var$_tmpl$4 = ["<div", ' class="with-parent-title"><!--#-->', '<!--/--><span class="value line-clamp">', "</span></div>"],
6395
6442
  $6b65ba8af12c5a26$var$_tmpl$5 = ["<div", ' class="with-icon"><!--#-->', "<!--/--><!--#-->", "<!--/--></div>"],
6396
6443
  $6b65ba8af12c5a26$var$_tmpl$6 = ["<h2", ' class="text">', "</h2>"],
6397
6444
  $6b65ba8af12c5a26$var$_tmpl$7 = ["<div", ' class="suggestion-container query"><!--#-->', "<!--/--><!--#-->", "<!--/--></div>"],
@@ -7504,7 +7551,9 @@ function $76227de40be817e5$export$f631859cab12b342({
7504
7551
  }
7505
7552
  function $8781fcec27b20709$export$9ff751cd77687edc({
7506
7553
  search_results_: search_results_,
7507
- router_: router_
7554
+ router_: router_,
7555
+ queries_without_content_results_: queries_without_content_results_,
7556
+ get_search_query_: get_search_query_
7508
7557
  }) {
7509
7558
  const content_results = $5vyXB$solidjs.createMemo(() => search_results_()?.content_search_links);
7510
7559
  const content_results_by_page_url = $5vyXB$solidjs.createMemo(() => {
@@ -7517,6 +7566,10 @@ function $8781fcec27b20709$export$9ff751cd77687edc({
7517
7566
  }
7518
7567
  return map;
7519
7568
  });
7569
+ $5vyXB$solidjs.createEffect(() => {
7570
+ const results = content_results();
7571
+ if (Array.isArray(results) && results.length === 0) queries_without_content_results_.add($5vyXB$solidjs.untrack(get_search_query_));
7572
+ });
7520
7573
  return $5vyXB$solidjsweb.createComponent((0, $5vyXB$solidjs.For), {
7521
7574
  get each() {
7522
7575
  return [...content_results_by_page_url().keys()];
@@ -7549,7 +7602,7 @@ function $c2f92eb265a14529$export$4405d077f0a20494({
7549
7602
  children: () => $5vyXB$solidjsweb.createComponent((0, $76227de40be817e5$export$f631859cab12b342), {})
7550
7603
  });
7551
7604
  }
7552
- const $3716b8caf7f959e2$var$_tmpl$ = ["<div", ' class="', '" style="', '"><!--#-->', "<!--/--><!--#-->", "<!--/--></div>"],
7605
+ const $3716b8caf7f959e2$var$_tmpl$ = ["<div", ' class="content-results" style="', '"><!--#-->', "<!--/--><!--#-->", "<!--/--></div>"],
7553
7606
  $3716b8caf7f959e2$var$_tmpl$2 = ["<button", ' class="view-more">', "</button>"],
7554
7607
  $3716b8caf7f959e2$var$_tmpl$3 = ["<button", ' class="view-less">', "</button>"];
7555
7608
  const $3716b8caf7f959e2$export$70ceae36059a1036 = 1;
@@ -7569,9 +7622,16 @@ function $3716b8caf7f959e2$export$6d0c9c22f6652669({
7569
7622
  number_: num_results,
7570
7623
  i18n_: i18n_
7571
7624
  });
7572
- const [is_showing_placeholders, set_is_showing_placeholders] = $5vyXB$solidjs.createSignal(false);
7625
+ const queries_without_content_results_ = new (0, $5vyXB$depictaiutilishared.ListenableSet)();
7626
+ const [check_query, set_check_query] = $5vyXB$solidjs.createSignal(false);
7627
+ const placeholders_enabled = $5vyXB$solidjs.createMemo(() => {
7628
+ // don't show placeholders when the user toggles filters
7629
+ check_query();
7630
+ return !queries_without_content_results_.has(get_search_query_());
7631
+ });
7573
7632
  const rows_object = $3716b8caf7f959e2$var$make_state_saved_rows(content_results_rows_, i18n_);
7574
- return $5vyXB$solidjsweb.ssr($3716b8caf7f959e2$var$_tmpl$, $5vyXB$solidjsweb.ssrHydrationKey(), `content-results ${is_showing_placeholders() ? "loading" : ""}`, "display:" + (is_loading_() || content_results()?.length > 0 ? "" : "none"), $5vyXB$solidjsweb.escape($5vyXB$solidjsweb.createComponent((0, $65a0c4b1c2eb5d0b$export$9dd50d35b9d94fdf), {
7633
+ for (const ev of ["add", "delete"]) queries_without_content_results_.addEventListener(ev, () => set_check_query(prev => !prev));
7634
+ return $5vyXB$solidjsweb.ssr($3716b8caf7f959e2$var$_tmpl$, $5vyXB$solidjsweb.ssrHydrationKey(), "display:" + (is_loading_() && placeholders_enabled() || content_results()?.length > 0 ? "" : "none"), $5vyXB$solidjsweb.escape($5vyXB$solidjsweb.createComponent((0, $65a0c4b1c2eb5d0b$export$9dd50d35b9d94fdf), {
7575
7635
  get_search_query_: get_search_query_,
7576
7636
  i18n_: i18n_,
7577
7637
  formatted_number_of_results_: formatted_number_of_results_,
@@ -7589,21 +7649,19 @@ function $3716b8caf7f959e2$export$6d0c9c22f6652669({
7589
7649
  get children() {
7590
7650
  return $5vyXB$solidjsweb.createComponent((0, $5vyXB$solidjs.Suspense), {
7591
7651
  get fallback() {
7592
- return (() => {
7593
- set_is_showing_placeholders(true);
7594
- $5vyXB$solidjs.onCleanup(() => set_is_showing_placeholders(false));
7595
- return $5vyXB$solidjsweb.createComponent((0, $c2f92eb265a14529$export$4405d077f0a20494), {
7596
- content_results_rows_: content_results_rows_,
7597
- get cols_at_size_() {
7598
- return $5vyXB$solidjs.createMemo(() => layout_options_().cols_at_size);
7599
- }
7600
- });
7601
- })();
7652
+ return $5vyXB$solidjsweb.createComponent((0, $c2f92eb265a14529$export$4405d077f0a20494), {
7653
+ content_results_rows_: content_results_rows_,
7654
+ get cols_at_size_() {
7655
+ return $5vyXB$solidjs.createMemo(() => layout_options_().cols_at_size);
7656
+ }
7657
+ });
7602
7658
  },
7603
7659
  get children() {
7604
7660
  return $5vyXB$solidjsweb.createComponent((0, $8781fcec27b20709$export$9ff751cd77687edc), {
7605
7661
  router_: router_,
7606
- search_results_: search_results_
7662
+ search_results_: search_results_,
7663
+ queries_without_content_results_: queries_without_content_results_,
7664
+ get_search_query_: get_search_query_
7607
7665
  });
7608
7666
  }
7609
7667
  });
@@ -7992,7 +8050,7 @@ const $2c61e4cd8229c49a$var$_tmpl$ = ["<div", ' class="depict plp search">', "</
7992
8050
  * 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.
7993
8051
  */
7994
8052
  const $2c61e4cd8229c49a$var$privately_shared_properties = /*@__PURE__*/new WeakMap();
7995
- const $2c61e4cd8229c49a$var$content_search_default = false;
8053
+ const $2c61e4cd8229c49a$var$content_search_default = true;
7996
8054
  const $2c61e4cd8229c49a$var$min_products_to_fetch_ = 20;
7997
8055
  const $2c61e4cd8229c49a$export$bde3eb976dfded9 = depict_search => $2c61e4cd8229c49a$var$privately_shared_properties.get(depict_search)?.search_query_updating_blocked_;
7998
8056
  class $2c61e4cd8229c49a$export$ac6237957a15b3f0 {