@depict-ai/react-ui 4.8.6 → 4.9.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
@@ -43,7 +43,7 @@ $parcel$export(module.exports, "version", () => $efbdd2dab4314170$export$83d89fb
43
43
  $parcel$export(module.exports, "Navigation", () => $0d3a2413fdeb34b9$export$b8a61e5c71402559);
44
44
  /*! Depict.ai search and product listing react SDK wrapper */ // This is where the actual source of your React stuff should live
45
45
  // Note, if you add an export here, also add one in src-server/main.ts
46
- const $efbdd2dab4314170$export$83d89fbfd8236492 = "4.8.6";
46
+ const $efbdd2dab4314170$export$83d89fbfd8236492 = "4.9.0";
47
47
  const $ef516b1f92253963$export$8e769ad4338a911e = {
48
48
  usedLocale: $2kiy7$solidjs.createSignal((0, $2kiy7$depictaiuilocales.defaultLocale)),
49
49
  search_instances: new Map(),
@@ -95,6 +95,7 @@ function $f8d878722c3bc07d$export$f6e64e17bd69eeef(_ref) {
95
95
  // Update store when props change
96
96
  write_store($2kiy7$solidjsstore.reconcile(props));
97
97
  $2kiy7$react.useEffect(() => {
98
+ let gotDisposed = false;
98
99
  const wrapper_element = wrapper_element_ref.current;
99
100
  // If someone only rendered a solid component on the client that *could* be hydrated (no childNodes) then we fall back to `render` to avoid solid complaining about not being able to hydrate or crashing because the result of generateHydrationScript hasn't run at all
100
101
  // This can happen for HMR or when SSR capable components are only rendered on the client
@@ -113,8 +114,16 @@ function $f8d878722c3bc07d$export$f6e64e17bd69eeef(_ref) {
113
114
  // Do nothing
114
115
  }
115
116
  });
116
- const dispose = render_function(() => solid_component(store, set_portals), wrapper_element);
117
- return dispose;
117
+ const dispose = render_function(() => solid_component(store, newPortals => !gotDisposed && set_portals(newPortals)), wrapper_element);
118
+ return () => {
119
+ // Try being stupid react strict mode re-running effect proof https://legacy.reactjs.org/docs/strict-mode.html#ensuring-reusable-state
120
+ // And https://github.com/facebook/react/issues/24502
121
+ dispose();
122
+ // Nuke absolutely everything when this effect gets torn down so that we don't have any stale state or portals
123
+ gotDisposed = true;
124
+ wrapper_element.replaceChildren();
125
+ set_portals([]);
126
+ };
118
127
  }, []);
119
128
  return /*#__PURE__*/$2kiy7$react.createElement((0, $2kiy7$react.Fragment), null, /*#__PURE__*/$2kiy7$react.createElement(wrapper_type, {
120
129
  ref: wrapper_element_ref,
package/ES10/index.d.ts CHANGED
@@ -3,7 +3,7 @@ import React, { PropsWithChildren, FC, ReactNode, ReactPortal, ReactElement } fr
3
3
  import { BaseCategoryProviderConfig, BaseProviderConfig, BaseSearchProviderConfig, ModernDisplayWithPageUrl, BaseProductListingConfig, BaseSearchPageConfig, BaseCategoryPageConfig, CategoryTitle, embedded_num_products, ListingQuery, ImagePlaceholder as _ImagePlaceholder1, TextPlaceholder as _TextPlaceholder1, SDKColsAtSize, SDKGridSpacing, ExclusiveId, fetchDepictRecommendations, FilterWithData } from "@depict-ai/ui/ES10";
4
4
  import { Locale } from "@depict-ai/ui/locales/ES10";
5
5
  import { Display, ModernDisplay } from "@depict-ai/utilishared/ES10";
6
- export const version = "4.8.6";
6
+ export const version = "4.9.0";
7
7
  interface UsePerformanceClientReturn {
8
8
  dpc: DPC;
9
9
  }
@@ -374,13 +374,7 @@ interface RecommendationGridConfig<T extends Display> extends RecommendationConf
374
374
  };
375
375
  }
376
376
  declare function SolidRecommendationGridWrapper<T extends Display>(props: RecommendationGridConfig<T>, set_portals: (portals: ReactPortal[]) => void): HTMLDivElement;
377
- interface RecommendationSliderConfig<T extends Display> extends RecommendationConfig<T> {
378
- viewMoreButton?: {
379
- text: string;
380
- startRows?: number;
381
- rowsPerClick?: number;
382
- };
383
- }
377
+ interface RecommendationSliderConfig<T extends Display> extends RecommendationConfig<T> {}
384
378
  /**
385
379
  * Renders a slider of the provided products
386
380
  * @param recommendations a promise resolving to an array of displays to render
package/ES10/index.js CHANGED
@@ -15,7 +15,7 @@ import { renderToString as $jb2Oo$renderToString } from "react-dom/server";
15
15
  // Note, if you add an export here, also add one in src-server/main.ts
16
16
  import { register_es_version } from "../multi_import_deduplicator.mjs";
17
17
  register_es_version("react-ui", "ES10");
18
- const $9bd9bb8700ab2ada$export$83d89fbfd8236492 = "4.8.6";
18
+ const $9bd9bb8700ab2ada$export$83d89fbfd8236492 = "4.9.0";
19
19
  const $8c691d7f86317052$export$8e769ad4338a911e = {
20
20
  usedLocale: $jb2Oo$createSignal((0, $jb2Oo$defaultLocale)),
21
21
  search_instances: new Map(),
@@ -67,6 +67,7 @@ function $ac53b4e3251b31d0$export$f6e64e17bd69eeef(_ref) {
67
67
  // Update store when props change
68
68
  write_store($jb2Oo$reconcile(props));
69
69
  $jb2Oo$useEffect(() => {
70
+ let gotDisposed = false;
70
71
  const wrapper_element = wrapper_element_ref.current;
71
72
  // If someone only rendered a solid component on the client that *could* be hydrated (no childNodes) then we fall back to `render` to avoid solid complaining about not being able to hydrate or crashing because the result of generateHydrationScript hasn't run at all
72
73
  // This can happen for HMR or when SSR capable components are only rendered on the client
@@ -85,8 +86,16 @@ function $ac53b4e3251b31d0$export$f6e64e17bd69eeef(_ref) {
85
86
  // Do nothing
86
87
  }
87
88
  });
88
- const dispose = render_function(() => solid_component(store, set_portals), wrapper_element);
89
- return dispose;
89
+ const dispose = render_function(() => solid_component(store, newPortals => !gotDisposed && set_portals(newPortals)), wrapper_element);
90
+ return () => {
91
+ // Try being stupid react strict mode re-running effect proof https://legacy.reactjs.org/docs/strict-mode.html#ensuring-reusable-state
92
+ // And https://github.com/facebook/react/issues/24502
93
+ dispose();
94
+ // Nuke absolutely everything when this effect gets torn down so that we don't have any stale state or portals
95
+ gotDisposed = true;
96
+ wrapper_element.replaceChildren();
97
+ set_portals([]);
98
+ };
90
99
  }, []);
91
100
  return /*#__PURE__*/$jb2Oo$createElement((0, $jb2Oo$Fragment), null, /*#__PURE__*/$jb2Oo$createElement(wrapper_type, {
92
101
  ref: wrapper_element_ref,
package/latest/index.cjs CHANGED
@@ -43,7 +43,7 @@ $parcel$export(module.exports, "version", () => $db7b67857900028b$export$83d89fb
43
43
  $parcel$export(module.exports, "Navigation", () => $b742053c966024b4$export$b8a61e5c71402559);
44
44
  /*! Depict.ai search and product listing react SDK wrapper */ // This is where the actual source of your React stuff should live
45
45
  // Note, if you add an export here, also add one in src-server/main.ts
46
- const $db7b67857900028b$export$83d89fbfd8236492 = "4.8.6";
46
+ const $db7b67857900028b$export$83d89fbfd8236492 = "4.9.0";
47
47
  const $0b7cd4fb39fc3502$export$8e769ad4338a911e = {
48
48
  usedLocale: $2IzJs$solidjs.createSignal((0, $2IzJs$depictaiuilocales.defaultLocale)),
49
49
  search_instances: new Map(),
@@ -88,6 +88,7 @@ function $69121eedef466fe9$export$f6e64e17bd69eeef({
88
88
  // Update store when props change
89
89
  write_store($2IzJs$solidjsstore.reconcile(props));
90
90
  $2IzJs$react.useEffect(() => {
91
+ let gotDisposed = false;
91
92
  const wrapper_element = wrapper_element_ref.current;
92
93
  // If someone only rendered a solid component on the client that *could* be hydrated (no childNodes) then we fall back to `render` to avoid solid complaining about not being able to hydrate or crashing because the result of generateHydrationScript hasn't run at all
93
94
  // This can happen for HMR or when SSR capable components are only rendered on the client
@@ -105,8 +106,16 @@ function $69121eedef466fe9$export$f6e64e17bd69eeef({
105
106
  // Do nothing
106
107
  }
107
108
  });
108
- const dispose = render_function(() => solid_component(store, set_portals), wrapper_element);
109
- return dispose;
109
+ const dispose = render_function(() => solid_component(store, newPortals => !gotDisposed && set_portals(newPortals)), wrapper_element);
110
+ return () => {
111
+ // Try being stupid react strict mode re-running effect proof https://legacy.reactjs.org/docs/strict-mode.html#ensuring-reusable-state
112
+ // And https://github.com/facebook/react/issues/24502
113
+ dispose();
114
+ // Nuke absolutely everything when this effect gets torn down so that we don't have any stale state or portals
115
+ gotDisposed = true;
116
+ wrapper_element.replaceChildren();
117
+ set_portals([]);
118
+ };
110
119
  }, []);
111
120
  return /*#__PURE__*/$2IzJs$react.createElement((0, $2IzJs$react.Fragment), null, /*#__PURE__*/$2IzJs$react.createElement(wrapper_type, {
112
121
  ref: wrapper_element_ref,
package/latest/index.d.ts CHANGED
@@ -3,7 +3,7 @@ import React, { PropsWithChildren, FC, ReactNode, ReactPortal, ReactElement } fr
3
3
  import { BaseCategoryProviderConfig, BaseProviderConfig, BaseSearchProviderConfig, ModernDisplayWithPageUrl, BaseProductListingConfig, BaseSearchPageConfig, BaseCategoryPageConfig, CategoryTitle, embedded_num_products, ListingQuery, ImagePlaceholder as _ImagePlaceholder1, TextPlaceholder as _TextPlaceholder1, SDKColsAtSize, SDKGridSpacing, ExclusiveId, fetchDepictRecommendations, FilterWithData } from "@depict-ai/ui/latest";
4
4
  import { Locale } from "@depict-ai/ui/locales/latest";
5
5
  import { Display, ModernDisplay } from "@depict-ai/utilishared/latest";
6
- export const version = "4.8.6";
6
+ export const version = "4.9.0";
7
7
  interface UsePerformanceClientReturn {
8
8
  dpc: DPC;
9
9
  }
@@ -374,13 +374,7 @@ interface RecommendationGridConfig<T extends Display> extends RecommendationConf
374
374
  };
375
375
  }
376
376
  declare function SolidRecommendationGridWrapper<T extends Display>(props: RecommendationGridConfig<T>, set_portals: (portals: ReactPortal[]) => void): HTMLDivElement;
377
- interface RecommendationSliderConfig<T extends Display> extends RecommendationConfig<T> {
378
- viewMoreButton?: {
379
- text: string;
380
- startRows?: number;
381
- rowsPerClick?: number;
382
- };
383
- }
377
+ interface RecommendationSliderConfig<T extends Display> extends RecommendationConfig<T> {}
384
378
  /**
385
379
  * Renders a slider of the provided products
386
380
  * @param recommendations a promise resolving to an array of displays to render
package/latest/index.js CHANGED
@@ -15,7 +15,7 @@ import { renderToString as $2GFvs$renderToString } from "react-dom/server";
15
15
  // Note, if you add an export here, also add one in src-server/main.ts
16
16
  import { register_es_version } from "../multi_import_deduplicator.mjs";
17
17
  register_es_version("react-ui", "latest");
18
- const $c9c4d066f9a5b51b$export$83d89fbfd8236492 = "4.8.6";
18
+ const $c9c4d066f9a5b51b$export$83d89fbfd8236492 = "4.9.0";
19
19
  const $42858f023ef23dab$export$8e769ad4338a911e = {
20
20
  usedLocale: $2GFvs$createSignal((0, $2GFvs$defaultLocale)),
21
21
  search_instances: new Map(),
@@ -60,6 +60,7 @@ function $2c98aada448e4f4d$export$f6e64e17bd69eeef({
60
60
  // Update store when props change
61
61
  write_store($2GFvs$reconcile(props));
62
62
  $2GFvs$useEffect(() => {
63
+ let gotDisposed = false;
63
64
  const wrapper_element = wrapper_element_ref.current;
64
65
  // If someone only rendered a solid component on the client that *could* be hydrated (no childNodes) then we fall back to `render` to avoid solid complaining about not being able to hydrate or crashing because the result of generateHydrationScript hasn't run at all
65
66
  // This can happen for HMR or when SSR capable components are only rendered on the client
@@ -77,8 +78,16 @@ function $2c98aada448e4f4d$export$f6e64e17bd69eeef({
77
78
  // Do nothing
78
79
  }
79
80
  });
80
- const dispose = render_function(() => solid_component(store, set_portals), wrapper_element);
81
- return dispose;
81
+ const dispose = render_function(() => solid_component(store, newPortals => !gotDisposed && set_portals(newPortals)), wrapper_element);
82
+ return () => {
83
+ // Try being stupid react strict mode re-running effect proof https://legacy.reactjs.org/docs/strict-mode.html#ensuring-reusable-state
84
+ // And https://github.com/facebook/react/issues/24502
85
+ dispose();
86
+ // Nuke absolutely everything when this effect gets torn down so that we don't have any stale state or portals
87
+ gotDisposed = true;
88
+ wrapper_element.replaceChildren();
89
+ set_portals([]);
90
+ };
82
91
  }, []);
83
92
  return /*#__PURE__*/$2GFvs$createElement((0, $2GFvs$Fragment), null, /*#__PURE__*/$2GFvs$createElement(wrapper_type, {
84
93
  ref: wrapper_element_ref,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@depict-ai/react-ui",
3
- "version": "4.8.6",
3
+ "version": "4.9.0",
4
4
  "packageManager": "yarn@3.2.2",
5
5
  "source": "src/index.ts",
6
6
  "types": "ES10/index.d.ts",
@@ -135,10 +135,10 @@
135
135
  "@babel/plugin-transform-typescript": "^7.22.9",
136
136
  "@babel/runtime": "latest",
137
137
  "@babel/runtime-corejs3": "latest",
138
- "@depict-ai/dpc": "^2.4.4",
139
- "@depict-ai/plp-styling": "^4.4.13",
140
- "@depict-ai/ui": "^4.8.15",
141
- "@depict-ai/utilishared": "^2.4.5",
138
+ "@depict-ai/dpc": "^2.5.0",
139
+ "@depict-ai/plp-styling": "^4.5.0",
140
+ "@depict-ai/ui": "^4.9.0",
141
+ "@depict-ai/utilishared": "^2.5.0",
142
142
  "solid-js": "^1.8.16"
143
143
  },
144
144
  "peerDependencies": {
@@ -150,7 +150,7 @@
150
150
  "@babel/core": "latest",
151
151
  "@babel/preset-env": "latest",
152
152
  "@babel/preset-typescript": "latest",
153
- "@depict-ai/plp-styling": "^4.4.13",
153
+ "@depict-ai/plp-styling": "^4.5.0",
154
154
  "@jest/globals": "^29.3.1",
155
155
  "@parcel/babel-preset-env": "^2.10.3",
156
156
  "@parcel/transformer-sass": "^2.10.3",
@@ -204,7 +204,7 @@ function $3b36cc844440a979$export$e46079a2793e9ec7(props, set_portals) {
204
204
  }
205
205
  });
206
206
  }
207
- const $efbdd2dab4314170$export$83d89fbfd8236492 = "4.8.6";
207
+ const $efbdd2dab4314170$export$83d89fbfd8236492 = "4.9.0";
208
208
  function $202459d454907b31$export$9fac37a9c21c2f3b(props) {
209
209
  return props.children;
210
210
  }
@@ -3,7 +3,7 @@ import React, { PropsWithChildren, FC, ReactNode, ReactPortal, ReactElement } fr
3
3
  import { BaseCategoryProviderConfig, BaseProviderConfig, BaseSearchProviderConfig, ModernDisplayWithPageUrl, BaseProductListingConfig, BaseSearchPageConfig, BaseCategoryPageConfig, CategoryTitle, embedded_num_products, ListingQuery, ImagePlaceholder as _ImagePlaceholder1, TextPlaceholder as _TextPlaceholder1, SDKColsAtSize, SDKGridSpacing, ExclusiveId, fetchDepictRecommendations, FilterWithData } from "@depict-ai/ui/ES10";
4
4
  import { Locale } from "@depict-ai/ui/locales/ES10";
5
5
  import { Display, ModernDisplay } from "@depict-ai/utilishared/ES10";
6
- export const version = "4.8.6";
6
+ export const version = "4.9.0";
7
7
  interface UsePerformanceClientReturn {
8
8
  dpc: DPC;
9
9
  }
@@ -374,13 +374,7 @@ interface RecommendationGridConfig<T extends Display> extends RecommendationConf
374
374
  };
375
375
  }
376
376
  declare function SolidRecommendationGridWrapper<T extends Display>(props: RecommendationGridConfig<T>, set_portals: (portals: ReactPortal[]) => void): HTMLDivElement;
377
- interface RecommendationSliderConfig<T extends Display> extends RecommendationConfig<T> {
378
- viewMoreButton?: {
379
- text: string;
380
- startRows?: number;
381
- rowsPerClick?: number;
382
- };
383
- }
377
+ interface RecommendationSliderConfig<T extends Display> extends RecommendationConfig<T> {}
384
378
  /**
385
379
  * Renders a slider of the provided products
386
380
  * @param recommendations a promise resolving to an array of displays to render
@@ -179,7 +179,7 @@ function $cd68097a7ee08669$export$e46079a2793e9ec7(props, set_portals) {
179
179
  }
180
180
  });
181
181
  }
182
- const $9bd9bb8700ab2ada$export$83d89fbfd8236492 = "4.8.6";
182
+ const $9bd9bb8700ab2ada$export$83d89fbfd8236492 = "4.9.0";
183
183
  function $5c4add0a8fe94894$export$9fac37a9c21c2f3b(props) {
184
184
  return props.children;
185
185
  }
@@ -193,7 +193,7 @@ function $c6b960f2a07285c8$export$e46079a2793e9ec7(props, set_portals) {
193
193
  }
194
194
  });
195
195
  }
196
- const $db7b67857900028b$export$83d89fbfd8236492 = "4.8.6";
196
+ const $db7b67857900028b$export$83d89fbfd8236492 = "4.9.0";
197
197
  function $41e7e5d85b5e0d49$export$9fac37a9c21c2f3b(props) {
198
198
  return props.children;
199
199
  }
@@ -3,7 +3,7 @@ import React, { PropsWithChildren, FC, ReactNode, ReactPortal, ReactElement } fr
3
3
  import { BaseCategoryProviderConfig, BaseProviderConfig, BaseSearchProviderConfig, ModernDisplayWithPageUrl, BaseProductListingConfig, BaseSearchPageConfig, BaseCategoryPageConfig, CategoryTitle, embedded_num_products, ListingQuery, ImagePlaceholder as _ImagePlaceholder1, TextPlaceholder as _TextPlaceholder1, SDKColsAtSize, SDKGridSpacing, ExclusiveId, fetchDepictRecommendations, FilterWithData } from "@depict-ai/ui/latest";
4
4
  import { Locale } from "@depict-ai/ui/locales/latest";
5
5
  import { Display, ModernDisplay } from "@depict-ai/utilishared/latest";
6
- export const version = "4.8.6";
6
+ export const version = "4.9.0";
7
7
  interface UsePerformanceClientReturn {
8
8
  dpc: DPC;
9
9
  }
@@ -374,13 +374,7 @@ interface RecommendationGridConfig<T extends Display> extends RecommendationConf
374
374
  };
375
375
  }
376
376
  declare function SolidRecommendationGridWrapper<T extends Display>(props: RecommendationGridConfig<T>, set_portals: (portals: ReactPortal[]) => void): HTMLDivElement;
377
- interface RecommendationSliderConfig<T extends Display> extends RecommendationConfig<T> {
378
- viewMoreButton?: {
379
- text: string;
380
- startRows?: number;
381
- rowsPerClick?: number;
382
- };
383
- }
377
+ interface RecommendationSliderConfig<T extends Display> extends RecommendationConfig<T> {}
384
378
  /**
385
379
  * Renders a slider of the provided products
386
380
  * @param recommendations a promise resolving to an array of displays to render
@@ -168,7 +168,7 @@ function $4d5c3f13a5ae62a7$export$e46079a2793e9ec7(props, set_portals) {
168
168
  }
169
169
  });
170
170
  }
171
- const $c9c4d066f9a5b51b$export$83d89fbfd8236492 = "4.8.6";
171
+ const $c9c4d066f9a5b51b$export$83d89fbfd8236492 = "4.9.0";
172
172
  function $2b1fdeb83610500f$export$9fac37a9c21c2f3b(props) {
173
173
  return props.children;
174
174
  }