@uniformdev/canvas-next-rsc-client 19.92.3 → 19.93.1-alpha.40

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/dist/index.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { ManifestV2, ContextOptions } from '@uniformdev/context';
1
+ import { ManifestV2, PersonalizationEvent, TestEvent, ContextOptions } from '@uniformdev/context';
2
2
  import * as react_jsx_runtime from 'react/jsx-runtime';
3
3
  import { PureContextualEditingComponentWrapperProps } from '@uniformdev/canvas-react/core';
4
4
  import * as react from 'react';
@@ -18,6 +18,16 @@ type ClientContextComponentProps = {
18
18
  };
19
19
  type ClientContextComponent = (props: ClientContextComponentProps) => JSX.Element | null;
20
20
 
21
+ declare const ClientContextPersonalizationTransfer: ({ event, ts, }: {
22
+ event: PersonalizationEvent;
23
+ ts: number;
24
+ }) => null;
25
+
26
+ declare const ClientContextTestTransfer: ({ event, ts }: {
27
+ event: TestEvent;
28
+ ts: number;
29
+ }) => null;
30
+
21
31
  declare const ClientContextualEditingComponentWrapper: (props: PropsWithChildren<PureContextualEditingComponentWrapperProps>) => react_jsx_runtime.JSX.Element;
22
32
 
23
33
  declare const ClientContextUpdate: () => react_jsx_runtime.JSX.Element;
@@ -56,4 +66,4 @@ declare const useUniformContext: () => {
56
66
  context: AppDirectoryContext | undefined;
57
67
  };
58
68
 
59
- export { type ClientContextComponent, type ClientContextComponentProps, ClientContextUpdate, ClientContextualEditingComponentWrapper, ContextUpdateTransferClient, type CreateClientUniformContextOptions, DefaultUniformClientContext, PersonalizeClient, type PersonalizeClientProps, TestClient, UniformScript, createClientUniformContext, useInitUniformContext, useUniformContext };
69
+ export { type ClientContextComponent, type ClientContextComponentProps, ClientContextPersonalizationTransfer, ClientContextTestTransfer, ClientContextUpdate, ClientContextualEditingComponentWrapper, ContextUpdateTransferClient, type CreateClientUniformContextOptions, DefaultUniformClientContext, PersonalizeClient, type PersonalizeClientProps, TestClient, UniformScript, createClientUniformContext, useInitUniformContext, useUniformContext };
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { ManifestV2, ContextOptions } from '@uniformdev/context';
1
+ import { ManifestV2, PersonalizationEvent, TestEvent, ContextOptions } from '@uniformdev/context';
2
2
  import * as react_jsx_runtime from 'react/jsx-runtime';
3
3
  import { PureContextualEditingComponentWrapperProps } from '@uniformdev/canvas-react/core';
4
4
  import * as react from 'react';
@@ -18,6 +18,16 @@ type ClientContextComponentProps = {
18
18
  };
19
19
  type ClientContextComponent = (props: ClientContextComponentProps) => JSX.Element | null;
20
20
 
21
+ declare const ClientContextPersonalizationTransfer: ({ event, ts, }: {
22
+ event: PersonalizationEvent;
23
+ ts: number;
24
+ }) => null;
25
+
26
+ declare const ClientContextTestTransfer: ({ event, ts }: {
27
+ event: TestEvent;
28
+ ts: number;
29
+ }) => null;
30
+
21
31
  declare const ClientContextualEditingComponentWrapper: (props: PropsWithChildren<PureContextualEditingComponentWrapperProps>) => react_jsx_runtime.JSX.Element;
22
32
 
23
33
  declare const ClientContextUpdate: () => react_jsx_runtime.JSX.Element;
@@ -56,4 +66,4 @@ declare const useUniformContext: () => {
56
66
  context: AppDirectoryContext | undefined;
57
67
  };
58
68
 
59
- export { type ClientContextComponent, type ClientContextComponentProps, ClientContextUpdate, ClientContextualEditingComponentWrapper, ContextUpdateTransferClient, type CreateClientUniformContextOptions, DefaultUniformClientContext, PersonalizeClient, type PersonalizeClientProps, TestClient, UniformScript, createClientUniformContext, useInitUniformContext, useUniformContext };
69
+ export { type ClientContextComponent, type ClientContextComponentProps, ClientContextPersonalizationTransfer, ClientContextTestTransfer, ClientContextUpdate, ClientContextualEditingComponentWrapper, ContextUpdateTransferClient, type CreateClientUniformContextOptions, DefaultUniformClientContext, PersonalizeClient, type PersonalizeClientProps, TestClient, UniformScript, createClientUniformContext, useInitUniformContext, useUniformContext };
package/dist/index.esm.js CHANGED
@@ -233,6 +233,63 @@ var require_rfdc = __commonJS({
233
233
  }
234
234
  });
235
235
 
236
+ // src/components/ClientContextPersonalizationTransfer.tsx
237
+ import { useEffect as useEffect2, useState as useState2 } from "react";
238
+
239
+ // src/hooks/useUniformContext.ts
240
+ import { useEffect, useState } from "react";
241
+ var useUniformContext = () => {
242
+ const [context, setContext] = useState(
243
+ typeof window !== "undefined" ? window.__UNIFORM_CONTEXT__ : void 0
244
+ );
245
+ useEffect(() => {
246
+ const listener = () => {
247
+ setContext(window.__UNIFORM_CONTEXT__);
248
+ };
249
+ window.addEventListener("uniform.context.loaded", listener);
250
+ return () => {
251
+ window.removeEventListener("uniform.context.loaded", listener);
252
+ };
253
+ }, []);
254
+ return {
255
+ context
256
+ };
257
+ };
258
+
259
+ // src/components/ClientContextPersonalizationTransfer.tsx
260
+ var ClientContextPersonalizationTransfer = ({
261
+ event,
262
+ ts
263
+ }) => {
264
+ const { context } = useUniformContext();
265
+ const [lastLogged, setLastLogged] = useState2(void 0);
266
+ useEffect2(() => {
267
+ const shouldBeLogged = !ts || lastLogged !== ts;
268
+ const hasContext = typeof context !== "undefined";
269
+ if (shouldBeLogged && hasContext) {
270
+ setLastLogged(ts);
271
+ context.internal_processPersonalizationEvent(event);
272
+ }
273
+ }, [context, event, lastLogged, ts]);
274
+ return null;
275
+ };
276
+
277
+ // src/components/ClientContextTestTransfer.tsx
278
+ import { useEffect as useEffect3, useState as useState3 } from "react";
279
+ var ClientContextTestTransfer = ({ event, ts }) => {
280
+ const { context } = useUniformContext();
281
+ const [lastLogged, setLastLogged] = useState3(void 0);
282
+ useEffect3(() => {
283
+ const shouldBeLogged = !ts || lastLogged !== ts;
284
+ const hasContext = typeof context !== "undefined";
285
+ if (shouldBeLogged && hasContext && event.variantId) {
286
+ setLastLogged(ts);
287
+ context.internal_processTestEvent(event);
288
+ }
289
+ }, [context, event, lastLogged, ts]);
290
+ return null;
291
+ };
292
+
236
293
  // src/components/ClientContextualEditingComponentWrapper.tsx
237
294
  import { IN_CONTEXT_EDITOR_QUERY_STRING_PARAM } from "@uniformdev/canvas";
238
295
  import {
@@ -258,29 +315,7 @@ var ClientContextualEditingComponentWrapperInner = ({
258
315
 
259
316
  // src/components/ClientContextUpdate.tsx
260
317
  import { useParams, useSearchParams as useSearchParams2 } from "next/navigation";
261
- import { Suspense as Suspense2, useEffect as useEffect2 } from "react";
262
-
263
- // src/hooks/useUniformContext.ts
264
- import { useEffect, useState } from "react";
265
- var useUniformContext = () => {
266
- const [context, setContext] = useState(
267
- typeof window !== "undefined" ? window.__UNIFORM_CONTEXT__ : void 0
268
- );
269
- useEffect(() => {
270
- const listener = () => {
271
- setContext(window.__UNIFORM_CONTEXT__);
272
- };
273
- window.addEventListener("uniform.context.loaded", listener);
274
- return () => {
275
- window.removeEventListener("uniform.context.loaded", listener);
276
- };
277
- }, []);
278
- return {
279
- context
280
- };
281
- };
282
-
283
- // src/components/ClientContextUpdate.tsx
318
+ import { Suspense as Suspense2, useEffect as useEffect4 } from "react";
284
319
  import { Fragment as Fragment2, jsx as jsx2 } from "react/jsx-runtime";
285
320
  var ClientContextUpdate = () => {
286
321
  return /* @__PURE__ */ jsx2(Suspense2, { children: /* @__PURE__ */ jsx2(ClientContextUpdateInner, {}) });
@@ -289,7 +324,7 @@ var ClientContextUpdateInner = () => {
289
324
  const params = useParams();
290
325
  const searchParams = useSearchParams2();
291
326
  const { context } = useUniformContext();
292
- useEffect2(() => {
327
+ useEffect4(() => {
293
328
  if (!context || typeof window === "undefined") {
294
329
  return;
295
330
  }
@@ -303,14 +338,14 @@ var ClientContextUpdateInner = () => {
303
338
  };
304
339
 
305
340
  // src/components/ContextUpdateTransferClient.tsx
306
- import { useEffect as useEffect3, useState as useState2 } from "react";
341
+ import { useEffect as useEffect5, useState as useState4 } from "react";
307
342
  var ContextUpdateTransferClient = ({
308
343
  update,
309
344
  ts
310
345
  }) => {
311
346
  const { context } = useUniformContext();
312
- const [lastLogged, setLastLogged] = useState2(void 0);
313
- useEffect3(() => {
347
+ const [lastLogged, setLastLogged] = useState4(void 0);
348
+ useEffect5(() => {
314
349
  const shouldBeLogged = (!ts || lastLogged !== ts) && Object.keys(update).length > 0;
315
350
  const hasContext = typeof context !== "undefined";
316
351
  if (shouldBeLogged && hasContext) {
@@ -826,10 +861,8 @@ function enableContextDevTools(options) {
826
861
  context.events.on("personalizationResult", onPersonalizationResult);
827
862
  context.events.on("testResult", onTestResult);
828
863
  context.events.on("scoresUpdated", onContextDataUpdated);
829
- context.storage.events.on("*", onContextDataUpdated);
830
864
  return () => {
831
865
  context.events.off("scoresUpdated", onContextDataUpdated);
832
- context.storage.events.off("*", onContextDataUpdated);
833
866
  context.events.off("personalizationResult", onPersonalizationResult);
834
867
  context.events.off("testResult", onTestResult);
835
868
  };
@@ -874,10 +907,10 @@ var createClientUniformContext = (options) => {
874
907
  };
875
908
 
876
909
  // src/hooks/useInitUniformContext.ts
877
- import { useEffect as useEffect4, useState as useState3 } from "react";
910
+ import { useEffect as useEffect6, useState as useState5 } from "react";
878
911
  var useInitUniformContext = (callback) => {
879
- const [called, setCalled] = useState3(false);
880
- useEffect4(() => {
912
+ const [called, setCalled] = useState5(false);
913
+ useEffect6(() => {
881
914
  if (typeof window === "undefined" || called || typeof window.__UNIFORM_CONTEXT__ !== "undefined") {
882
915
  return;
883
916
  }
@@ -913,12 +946,12 @@ var DefaultUniformClientContext = ({ manifest, disableDevTools }) => {
913
946
  // src/components/PersonalizeClient.ts
914
947
  import { CANVAS_PERSONALIZE_SLOT } from "@uniformdev/canvas";
915
948
  import { runPersonalization } from "@uniformdev/canvas-next-rsc-shared";
916
- import { createElement, Fragment as Fragment3, useEffect as useEffect5, useState as useState4 } from "react";
949
+ import { createElement, Fragment as Fragment3, useEffect as useEffect7, useState as useState6 } from "react";
917
950
  var PersonalizeClient = (props) => {
918
951
  const { slots } = props;
919
952
  const { context } = useUniformContext();
920
- const [indexesToShow, setIndexesToShow] = useState4(props.indexes);
921
- useEffect5(() => {
953
+ const [indexesToShow, setIndexesToShow] = useState6(props.indexes);
954
+ useEffect7(() => {
922
955
  const result = runPersonalization({
923
956
  ...props,
924
957
  contextInstance: context
@@ -935,13 +968,13 @@ var PersonalizeClient = (props) => {
935
968
  // src/components/TestClient.ts
936
969
  import { CANVAS_TEST_SLOT } from "@uniformdev/canvas";
937
970
  import { runTest } from "@uniformdev/canvas-next-rsc-shared";
938
- import { createElement as createElement2, Fragment as Fragment4, useEffect as useEffect6, useState as useState5 } from "react";
971
+ import { createElement as createElement2, Fragment as Fragment4, useEffect as useEffect8, useState as useState7 } from "react";
939
972
  var TestClient = (props) => {
940
973
  var _a;
941
974
  const { slots } = props;
942
975
  const { context } = useUniformContext();
943
- const [index, setIndex] = useState5(0);
944
- useEffect6(() => {
976
+ const [index, setIndex] = useState7(0);
977
+ useEffect8(() => {
945
978
  const result = runTest({
946
979
  ...props,
947
980
  contextInstance: context
@@ -961,7 +994,7 @@ import {
961
994
  isAllowedReferrer
962
995
  } from "@uniformdev/canvas";
963
996
  import { useRouter as useRouter2, useSearchParams as useSearchParams3 } from "next/navigation";
964
- import { useEffect as useEffect7, useMemo, useRef } from "react";
997
+ import { useEffect as useEffect9, useMemo, useRef } from "react";
965
998
  import { Fragment as Fragment5, jsx as jsx3 } from "react/jsx-runtime";
966
999
  var UniformScript = () => {
967
1000
  const router = useRouter2();
@@ -979,7 +1012,7 @@ var UniformScript = () => {
979
1012
  });
980
1013
  return instance;
981
1014
  }, []);
982
- useEffect7(() => {
1015
+ useEffect9(() => {
983
1016
  if (!channel) {
984
1017
  return;
985
1018
  }
@@ -996,7 +1029,7 @@ var UniformScript = () => {
996
1029
  unsubscribeFromEditorUpdates();
997
1030
  };
998
1031
  }, [channel, router]);
999
- useEffect7(() => {
1032
+ useEffect9(() => {
1000
1033
  if (typeof window === "undefined") {
1001
1034
  return;
1002
1035
  }
@@ -1017,7 +1050,7 @@ var UniformScript = () => {
1017
1050
  existing.remove();
1018
1051
  }
1019
1052
  }, [enabled]);
1020
- useEffect7(() => {
1053
+ useEffect9(() => {
1021
1054
  const handleBlurChange = () => {
1022
1055
  if (needsToRefreshRef.current) {
1023
1056
  router.refresh();
@@ -1032,6 +1065,8 @@ var UniformScript = () => {
1032
1065
  return /* @__PURE__ */ jsx3(Fragment5, {});
1033
1066
  };
1034
1067
  export {
1068
+ ClientContextPersonalizationTransfer,
1069
+ ClientContextTestTransfer,
1035
1070
  ClientContextUpdate,
1036
1071
  ClientContextualEditingComponentWrapper,
1037
1072
  ContextUpdateTransferClient,
package/dist/index.js CHANGED
@@ -242,6 +242,8 @@ var require_rfdc = __commonJS({
242
242
  // src/index.ts
243
243
  var src_exports = {};
244
244
  __export(src_exports, {
245
+ ClientContextPersonalizationTransfer: () => ClientContextPersonalizationTransfer,
246
+ ClientContextTestTransfer: () => ClientContextTestTransfer,
245
247
  ClientContextUpdate: () => ClientContextUpdate,
246
248
  ClientContextualEditingComponentWrapper: () => ClientContextualEditingComponentWrapper,
247
249
  ContextUpdateTransferClient: () => ContextUpdateTransferClient,
@@ -255,14 +257,71 @@ __export(src_exports, {
255
257
  });
256
258
  module.exports = __toCommonJS(src_exports);
257
259
 
260
+ // src/components/ClientContextPersonalizationTransfer.tsx
261
+ var import_react2 = require("react");
262
+
263
+ // src/hooks/useUniformContext.ts
264
+ var import_react = require("react");
265
+ var useUniformContext = () => {
266
+ const [context, setContext] = (0, import_react.useState)(
267
+ typeof window !== "undefined" ? window.__UNIFORM_CONTEXT__ : void 0
268
+ );
269
+ (0, import_react.useEffect)(() => {
270
+ const listener = () => {
271
+ setContext(window.__UNIFORM_CONTEXT__);
272
+ };
273
+ window.addEventListener("uniform.context.loaded", listener);
274
+ return () => {
275
+ window.removeEventListener("uniform.context.loaded", listener);
276
+ };
277
+ }, []);
278
+ return {
279
+ context
280
+ };
281
+ };
282
+
283
+ // src/components/ClientContextPersonalizationTransfer.tsx
284
+ var ClientContextPersonalizationTransfer = ({
285
+ event,
286
+ ts
287
+ }) => {
288
+ const { context } = useUniformContext();
289
+ const [lastLogged, setLastLogged] = (0, import_react2.useState)(void 0);
290
+ (0, import_react2.useEffect)(() => {
291
+ const shouldBeLogged = !ts || lastLogged !== ts;
292
+ const hasContext = typeof context !== "undefined";
293
+ if (shouldBeLogged && hasContext) {
294
+ setLastLogged(ts);
295
+ context.internal_processPersonalizationEvent(event);
296
+ }
297
+ }, [context, event, lastLogged, ts]);
298
+ return null;
299
+ };
300
+
301
+ // src/components/ClientContextTestTransfer.tsx
302
+ var import_react3 = require("react");
303
+ var ClientContextTestTransfer = ({ event, ts }) => {
304
+ const { context } = useUniformContext();
305
+ const [lastLogged, setLastLogged] = (0, import_react3.useState)(void 0);
306
+ (0, import_react3.useEffect)(() => {
307
+ const shouldBeLogged = !ts || lastLogged !== ts;
308
+ const hasContext = typeof context !== "undefined";
309
+ if (shouldBeLogged && hasContext && event.variantId) {
310
+ setLastLogged(ts);
311
+ context.internal_processTestEvent(event);
312
+ }
313
+ }, [context, event, lastLogged, ts]);
314
+ return null;
315
+ };
316
+
258
317
  // src/components/ClientContextualEditingComponentWrapper.tsx
259
318
  var import_canvas = require("@uniformdev/canvas");
260
319
  var import_core = require("@uniformdev/canvas-react/core");
261
320
  var import_navigation = require("next/navigation");
262
- var import_react = require("react");
321
+ var import_react4 = require("react");
263
322
  var import_jsx_runtime = require("react/jsx-runtime");
264
323
  var ClientContextualEditingComponentWrapper = (props) => {
265
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react.Suspense, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ClientContextualEditingComponentWrapperInner, { ...props }) });
324
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react4.Suspense, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ClientContextualEditingComponentWrapperInner, { ...props }) });
266
325
  };
267
326
  var ClientContextualEditingComponentWrapperInner = ({
268
327
  children,
@@ -278,38 +337,16 @@ var ClientContextualEditingComponentWrapperInner = ({
278
337
 
279
338
  // src/components/ClientContextUpdate.tsx
280
339
  var import_navigation2 = require("next/navigation");
281
- var import_react3 = require("react");
282
-
283
- // src/hooks/useUniformContext.ts
284
- var import_react2 = require("react");
285
- var useUniformContext = () => {
286
- const [context, setContext] = (0, import_react2.useState)(
287
- typeof window !== "undefined" ? window.__UNIFORM_CONTEXT__ : void 0
288
- );
289
- (0, import_react2.useEffect)(() => {
290
- const listener = () => {
291
- setContext(window.__UNIFORM_CONTEXT__);
292
- };
293
- window.addEventListener("uniform.context.loaded", listener);
294
- return () => {
295
- window.removeEventListener("uniform.context.loaded", listener);
296
- };
297
- }, []);
298
- return {
299
- context
300
- };
301
- };
302
-
303
- // src/components/ClientContextUpdate.tsx
340
+ var import_react5 = require("react");
304
341
  var import_jsx_runtime2 = require("react/jsx-runtime");
305
342
  var ClientContextUpdate = () => {
306
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react3.Suspense, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(ClientContextUpdateInner, {}) });
343
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react5.Suspense, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(ClientContextUpdateInner, {}) });
307
344
  };
308
345
  var ClientContextUpdateInner = () => {
309
346
  const params = (0, import_navigation2.useParams)();
310
347
  const searchParams = (0, import_navigation2.useSearchParams)();
311
348
  const { context } = useUniformContext();
312
- (0, import_react3.useEffect)(() => {
349
+ (0, import_react5.useEffect)(() => {
313
350
  if (!context || typeof window === "undefined") {
314
351
  return;
315
352
  }
@@ -323,14 +360,14 @@ var ClientContextUpdateInner = () => {
323
360
  };
324
361
 
325
362
  // src/components/ContextUpdateTransferClient.tsx
326
- var import_react4 = require("react");
363
+ var import_react6 = require("react");
327
364
  var ContextUpdateTransferClient = ({
328
365
  update,
329
366
  ts
330
367
  }) => {
331
368
  const { context } = useUniformContext();
332
- const [lastLogged, setLastLogged] = (0, import_react4.useState)(void 0);
333
- (0, import_react4.useEffect)(() => {
369
+ const [lastLogged, setLastLogged] = (0, import_react6.useState)(void 0);
370
+ (0, import_react6.useEffect)(() => {
334
371
  const shouldBeLogged = (!ts || lastLogged !== ts) && Object.keys(update).length > 0;
335
372
  const hasContext = typeof context !== "undefined";
336
373
  if (shouldBeLogged && hasContext) {
@@ -846,10 +883,8 @@ function enableContextDevTools(options) {
846
883
  context.events.on("personalizationResult", onPersonalizationResult);
847
884
  context.events.on("testResult", onTestResult);
848
885
  context.events.on("scoresUpdated", onContextDataUpdated);
849
- context.storage.events.on("*", onContextDataUpdated);
850
886
  return () => {
851
887
  context.events.off("scoresUpdated", onContextDataUpdated);
852
- context.storage.events.off("*", onContextDataUpdated);
853
888
  context.events.off("personalizationResult", onPersonalizationResult);
854
889
  context.events.off("testResult", onTestResult);
855
890
  };
@@ -894,10 +929,10 @@ var createClientUniformContext = (options) => {
894
929
  };
895
930
 
896
931
  // src/hooks/useInitUniformContext.ts
897
- var import_react5 = require("react");
932
+ var import_react7 = require("react");
898
933
  var useInitUniformContext = (callback) => {
899
- const [called, setCalled] = (0, import_react5.useState)(false);
900
- (0, import_react5.useEffect)(() => {
934
+ const [called, setCalled] = (0, import_react7.useState)(false);
935
+ (0, import_react7.useEffect)(() => {
901
936
  if (typeof window === "undefined" || called || typeof window.__UNIFORM_CONTEXT__ !== "undefined") {
902
937
  return;
903
938
  }
@@ -933,12 +968,12 @@ var DefaultUniformClientContext = ({ manifest, disableDevTools }) => {
933
968
  // src/components/PersonalizeClient.ts
934
969
  var import_canvas2 = require("@uniformdev/canvas");
935
970
  var import_canvas_next_rsc_shared2 = require("@uniformdev/canvas-next-rsc-shared");
936
- var import_react6 = require("react");
971
+ var import_react8 = require("react");
937
972
  var PersonalizeClient = (props) => {
938
973
  const { slots } = props;
939
974
  const { context } = useUniformContext();
940
- const [indexesToShow, setIndexesToShow] = (0, import_react6.useState)(props.indexes);
941
- (0, import_react6.useEffect)(() => {
975
+ const [indexesToShow, setIndexesToShow] = (0, import_react8.useState)(props.indexes);
976
+ (0, import_react8.useEffect)(() => {
942
977
  const result = (0, import_canvas_next_rsc_shared2.runPersonalization)({
943
978
  ...props,
944
979
  contextInstance: context
@@ -949,19 +984,19 @@ var PersonalizeClient = (props) => {
949
984
  var _a;
950
985
  return (_a = slots[import_canvas2.CANVAS_PERSONALIZE_SLOT]) == null ? void 0 : _a.items[key];
951
986
  });
952
- return (0, import_react6.createElement)(import_react6.Fragment, void 0, slotsToShow);
987
+ return (0, import_react8.createElement)(import_react8.Fragment, void 0, slotsToShow);
953
988
  };
954
989
 
955
990
  // src/components/TestClient.ts
956
991
  var import_canvas3 = require("@uniformdev/canvas");
957
992
  var import_canvas_next_rsc_shared3 = require("@uniformdev/canvas-next-rsc-shared");
958
- var import_react7 = require("react");
993
+ var import_react9 = require("react");
959
994
  var TestClient = (props) => {
960
995
  var _a;
961
996
  const { slots } = props;
962
997
  const { context } = useUniformContext();
963
- const [index, setIndex] = (0, import_react7.useState)(0);
964
- (0, import_react7.useEffect)(() => {
998
+ const [index, setIndex] = (0, import_react9.useState)(0);
999
+ (0, import_react9.useEffect)(() => {
965
1000
  const result = (0, import_canvas_next_rsc_shared3.runTest)({
966
1001
  ...props,
967
1002
  contextInstance: context
@@ -971,20 +1006,20 @@ var TestClient = (props) => {
971
1006
  if (typeof index !== "number") {
972
1007
  return null;
973
1008
  }
974
- return (0, import_react7.createElement)(import_react7.Fragment, void 0, (_a = slots == null ? void 0 : slots[import_canvas3.CANVAS_TEST_SLOT]) == null ? void 0 : _a.items[index]);
1009
+ return (0, import_react9.createElement)(import_react9.Fragment, void 0, (_a = slots == null ? void 0 : slots[import_canvas3.CANVAS_TEST_SLOT]) == null ? void 0 : _a.items[index]);
975
1010
  };
976
1011
 
977
1012
  // src/components/UniformScriptClient.tsx
978
1013
  var import_canvas4 = require("@uniformdev/canvas");
979
1014
  var import_navigation4 = require("next/navigation");
980
- var import_react8 = require("react");
1015
+ var import_react10 = require("react");
981
1016
  var import_jsx_runtime3 = require("react/jsx-runtime");
982
1017
  var UniformScript = () => {
983
1018
  const router = (0, import_navigation4.useRouter)();
984
1019
  const params = (0, import_navigation4.useSearchParams)();
985
- const needsToRefreshRef = (0, import_react8.useRef)(false);
1020
+ const needsToRefreshRef = (0, import_react10.useRef)(false);
986
1021
  const enabled = params.get(import_canvas4.IN_CONTEXT_EDITOR_QUERY_STRING_PARAM) === "true";
987
- const channel = (0, import_react8.useMemo)(() => {
1022
+ const channel = (0, import_react10.useMemo)(() => {
988
1023
  var _a;
989
1024
  if (typeof window === "undefined") {
990
1025
  return;
@@ -995,7 +1030,7 @@ var UniformScript = () => {
995
1030
  });
996
1031
  return instance;
997
1032
  }, []);
998
- (0, import_react8.useEffect)(() => {
1033
+ (0, import_react10.useEffect)(() => {
999
1034
  if (!channel) {
1000
1035
  return;
1001
1036
  }
@@ -1012,7 +1047,7 @@ var UniformScript = () => {
1012
1047
  unsubscribeFromEditorUpdates();
1013
1048
  };
1014
1049
  }, [channel, router]);
1015
- (0, import_react8.useEffect)(() => {
1050
+ (0, import_react10.useEffect)(() => {
1016
1051
  if (typeof window === "undefined") {
1017
1052
  return;
1018
1053
  }
@@ -1033,7 +1068,7 @@ var UniformScript = () => {
1033
1068
  existing.remove();
1034
1069
  }
1035
1070
  }, [enabled]);
1036
- (0, import_react8.useEffect)(() => {
1071
+ (0, import_react10.useEffect)(() => {
1037
1072
  const handleBlurChange = () => {
1038
1073
  if (needsToRefreshRef.current) {
1039
1074
  router.refresh();
@@ -1049,6 +1084,8 @@ var UniformScript = () => {
1049
1084
  };
1050
1085
  // Annotate the CommonJS export names for ESM import in node:
1051
1086
  0 && (module.exports = {
1087
+ ClientContextPersonalizationTransfer,
1088
+ ClientContextTestTransfer,
1052
1089
  ClientContextUpdate,
1053
1090
  ClientContextualEditingComponentWrapper,
1054
1091
  ContextUpdateTransferClient,
package/dist/index.mjs CHANGED
@@ -233,6 +233,63 @@ var require_rfdc = __commonJS({
233
233
  }
234
234
  });
235
235
 
236
+ // src/components/ClientContextPersonalizationTransfer.tsx
237
+ import { useEffect as useEffect2, useState as useState2 } from "react";
238
+
239
+ // src/hooks/useUniformContext.ts
240
+ import { useEffect, useState } from "react";
241
+ var useUniformContext = () => {
242
+ const [context, setContext] = useState(
243
+ typeof window !== "undefined" ? window.__UNIFORM_CONTEXT__ : void 0
244
+ );
245
+ useEffect(() => {
246
+ const listener = () => {
247
+ setContext(window.__UNIFORM_CONTEXT__);
248
+ };
249
+ window.addEventListener("uniform.context.loaded", listener);
250
+ return () => {
251
+ window.removeEventListener("uniform.context.loaded", listener);
252
+ };
253
+ }, []);
254
+ return {
255
+ context
256
+ };
257
+ };
258
+
259
+ // src/components/ClientContextPersonalizationTransfer.tsx
260
+ var ClientContextPersonalizationTransfer = ({
261
+ event,
262
+ ts
263
+ }) => {
264
+ const { context } = useUniformContext();
265
+ const [lastLogged, setLastLogged] = useState2(void 0);
266
+ useEffect2(() => {
267
+ const shouldBeLogged = !ts || lastLogged !== ts;
268
+ const hasContext = typeof context !== "undefined";
269
+ if (shouldBeLogged && hasContext) {
270
+ setLastLogged(ts);
271
+ context.internal_processPersonalizationEvent(event);
272
+ }
273
+ }, [context, event, lastLogged, ts]);
274
+ return null;
275
+ };
276
+
277
+ // src/components/ClientContextTestTransfer.tsx
278
+ import { useEffect as useEffect3, useState as useState3 } from "react";
279
+ var ClientContextTestTransfer = ({ event, ts }) => {
280
+ const { context } = useUniformContext();
281
+ const [lastLogged, setLastLogged] = useState3(void 0);
282
+ useEffect3(() => {
283
+ const shouldBeLogged = !ts || lastLogged !== ts;
284
+ const hasContext = typeof context !== "undefined";
285
+ if (shouldBeLogged && hasContext && event.variantId) {
286
+ setLastLogged(ts);
287
+ context.internal_processTestEvent(event);
288
+ }
289
+ }, [context, event, lastLogged, ts]);
290
+ return null;
291
+ };
292
+
236
293
  // src/components/ClientContextualEditingComponentWrapper.tsx
237
294
  import { IN_CONTEXT_EDITOR_QUERY_STRING_PARAM } from "@uniformdev/canvas";
238
295
  import {
@@ -258,29 +315,7 @@ var ClientContextualEditingComponentWrapperInner = ({
258
315
 
259
316
  // src/components/ClientContextUpdate.tsx
260
317
  import { useParams, useSearchParams as useSearchParams2 } from "next/navigation";
261
- import { Suspense as Suspense2, useEffect as useEffect2 } from "react";
262
-
263
- // src/hooks/useUniformContext.ts
264
- import { useEffect, useState } from "react";
265
- var useUniformContext = () => {
266
- const [context, setContext] = useState(
267
- typeof window !== "undefined" ? window.__UNIFORM_CONTEXT__ : void 0
268
- );
269
- useEffect(() => {
270
- const listener = () => {
271
- setContext(window.__UNIFORM_CONTEXT__);
272
- };
273
- window.addEventListener("uniform.context.loaded", listener);
274
- return () => {
275
- window.removeEventListener("uniform.context.loaded", listener);
276
- };
277
- }, []);
278
- return {
279
- context
280
- };
281
- };
282
-
283
- // src/components/ClientContextUpdate.tsx
318
+ import { Suspense as Suspense2, useEffect as useEffect4 } from "react";
284
319
  import { Fragment as Fragment2, jsx as jsx2 } from "react/jsx-runtime";
285
320
  var ClientContextUpdate = () => {
286
321
  return /* @__PURE__ */ jsx2(Suspense2, { children: /* @__PURE__ */ jsx2(ClientContextUpdateInner, {}) });
@@ -289,7 +324,7 @@ var ClientContextUpdateInner = () => {
289
324
  const params = useParams();
290
325
  const searchParams = useSearchParams2();
291
326
  const { context } = useUniformContext();
292
- useEffect2(() => {
327
+ useEffect4(() => {
293
328
  if (!context || typeof window === "undefined") {
294
329
  return;
295
330
  }
@@ -303,14 +338,14 @@ var ClientContextUpdateInner = () => {
303
338
  };
304
339
 
305
340
  // src/components/ContextUpdateTransferClient.tsx
306
- import { useEffect as useEffect3, useState as useState2 } from "react";
341
+ import { useEffect as useEffect5, useState as useState4 } from "react";
307
342
  var ContextUpdateTransferClient = ({
308
343
  update,
309
344
  ts
310
345
  }) => {
311
346
  const { context } = useUniformContext();
312
- const [lastLogged, setLastLogged] = useState2(void 0);
313
- useEffect3(() => {
347
+ const [lastLogged, setLastLogged] = useState4(void 0);
348
+ useEffect5(() => {
314
349
  const shouldBeLogged = (!ts || lastLogged !== ts) && Object.keys(update).length > 0;
315
350
  const hasContext = typeof context !== "undefined";
316
351
  if (shouldBeLogged && hasContext) {
@@ -826,10 +861,8 @@ function enableContextDevTools(options) {
826
861
  context.events.on("personalizationResult", onPersonalizationResult);
827
862
  context.events.on("testResult", onTestResult);
828
863
  context.events.on("scoresUpdated", onContextDataUpdated);
829
- context.storage.events.on("*", onContextDataUpdated);
830
864
  return () => {
831
865
  context.events.off("scoresUpdated", onContextDataUpdated);
832
- context.storage.events.off("*", onContextDataUpdated);
833
866
  context.events.off("personalizationResult", onPersonalizationResult);
834
867
  context.events.off("testResult", onTestResult);
835
868
  };
@@ -874,10 +907,10 @@ var createClientUniformContext = (options) => {
874
907
  };
875
908
 
876
909
  // src/hooks/useInitUniformContext.ts
877
- import { useEffect as useEffect4, useState as useState3 } from "react";
910
+ import { useEffect as useEffect6, useState as useState5 } from "react";
878
911
  var useInitUniformContext = (callback) => {
879
- const [called, setCalled] = useState3(false);
880
- useEffect4(() => {
912
+ const [called, setCalled] = useState5(false);
913
+ useEffect6(() => {
881
914
  if (typeof window === "undefined" || called || typeof window.__UNIFORM_CONTEXT__ !== "undefined") {
882
915
  return;
883
916
  }
@@ -913,12 +946,12 @@ var DefaultUniformClientContext = ({ manifest, disableDevTools }) => {
913
946
  // src/components/PersonalizeClient.ts
914
947
  import { CANVAS_PERSONALIZE_SLOT } from "@uniformdev/canvas";
915
948
  import { runPersonalization } from "@uniformdev/canvas-next-rsc-shared";
916
- import { createElement, Fragment as Fragment3, useEffect as useEffect5, useState as useState4 } from "react";
949
+ import { createElement, Fragment as Fragment3, useEffect as useEffect7, useState as useState6 } from "react";
917
950
  var PersonalizeClient = (props) => {
918
951
  const { slots } = props;
919
952
  const { context } = useUniformContext();
920
- const [indexesToShow, setIndexesToShow] = useState4(props.indexes);
921
- useEffect5(() => {
953
+ const [indexesToShow, setIndexesToShow] = useState6(props.indexes);
954
+ useEffect7(() => {
922
955
  const result = runPersonalization({
923
956
  ...props,
924
957
  contextInstance: context
@@ -935,13 +968,13 @@ var PersonalizeClient = (props) => {
935
968
  // src/components/TestClient.ts
936
969
  import { CANVAS_TEST_SLOT } from "@uniformdev/canvas";
937
970
  import { runTest } from "@uniformdev/canvas-next-rsc-shared";
938
- import { createElement as createElement2, Fragment as Fragment4, useEffect as useEffect6, useState as useState5 } from "react";
971
+ import { createElement as createElement2, Fragment as Fragment4, useEffect as useEffect8, useState as useState7 } from "react";
939
972
  var TestClient = (props) => {
940
973
  var _a;
941
974
  const { slots } = props;
942
975
  const { context } = useUniformContext();
943
- const [index, setIndex] = useState5(0);
944
- useEffect6(() => {
976
+ const [index, setIndex] = useState7(0);
977
+ useEffect8(() => {
945
978
  const result = runTest({
946
979
  ...props,
947
980
  contextInstance: context
@@ -961,7 +994,7 @@ import {
961
994
  isAllowedReferrer
962
995
  } from "@uniformdev/canvas";
963
996
  import { useRouter as useRouter2, useSearchParams as useSearchParams3 } from "next/navigation";
964
- import { useEffect as useEffect7, useMemo, useRef } from "react";
997
+ import { useEffect as useEffect9, useMemo, useRef } from "react";
965
998
  import { Fragment as Fragment5, jsx as jsx3 } from "react/jsx-runtime";
966
999
  var UniformScript = () => {
967
1000
  const router = useRouter2();
@@ -979,7 +1012,7 @@ var UniformScript = () => {
979
1012
  });
980
1013
  return instance;
981
1014
  }, []);
982
- useEffect7(() => {
1015
+ useEffect9(() => {
983
1016
  if (!channel) {
984
1017
  return;
985
1018
  }
@@ -996,7 +1029,7 @@ var UniformScript = () => {
996
1029
  unsubscribeFromEditorUpdates();
997
1030
  };
998
1031
  }, [channel, router]);
999
- useEffect7(() => {
1032
+ useEffect9(() => {
1000
1033
  if (typeof window === "undefined") {
1001
1034
  return;
1002
1035
  }
@@ -1017,7 +1050,7 @@ var UniformScript = () => {
1017
1050
  existing.remove();
1018
1051
  }
1019
1052
  }, [enabled]);
1020
- useEffect7(() => {
1053
+ useEffect9(() => {
1021
1054
  const handleBlurChange = () => {
1022
1055
  if (needsToRefreshRef.current) {
1023
1056
  router.refresh();
@@ -1032,6 +1065,8 @@ var UniformScript = () => {
1032
1065
  return /* @__PURE__ */ jsx3(Fragment5, {});
1033
1066
  };
1034
1067
  export {
1068
+ ClientContextPersonalizationTransfer,
1069
+ ClientContextTestTransfer,
1035
1070
  ClientContextUpdate,
1036
1071
  ClientContextualEditingComponentWrapper,
1037
1072
  ContextUpdateTransferClient,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uniformdev/canvas-next-rsc-client",
3
- "version": "19.92.3",
3
+ "version": "19.93.1-alpha.40+6fc526bf8b",
4
4
  "license": "SEE LICENSE IN LICENSE.txt",
5
5
  "scripts": {
6
6
  "build": "tsup",
@@ -27,14 +27,14 @@
27
27
  "@types/node": "^20.0.0",
28
28
  "@types/react": "18.2.40",
29
29
  "eslint": "8.54.0",
30
- "next": "^13.4.12",
30
+ "next": "^14.0.0",
31
31
  "react": "18.2.0",
32
32
  "react-dom": "18.2.0"
33
33
  },
34
34
  "dependencies": {
35
- "@uniformdev/canvas": "19.92.3",
36
- "@uniformdev/canvas-next-rsc-shared": "^19.92.3",
37
- "@uniformdev/canvas-react": "^19.92.3"
35
+ "@uniformdev/canvas": "19.93.1-alpha.40+6fc526bf8b",
36
+ "@uniformdev/canvas-next-rsc-shared": "^19.93.1-alpha.40+6fc526bf8b",
37
+ "@uniformdev/canvas-react": "^19.93.1-alpha.40+6fc526bf8b"
38
38
  },
39
39
  "engines": {
40
40
  "node": ">=16.14.0"
@@ -47,5 +47,5 @@
47
47
  "publishConfig": {
48
48
  "access": "public"
49
49
  },
50
- "gitHead": "7eeadbc2ffc4a2808ddbe8ef9258ae46504cec91"
50
+ "gitHead": "6fc526bf8be2c940317c2876080ee9072608356b"
51
51
  }