@prismicio/next 2.1.1-pr.120.3fae0cb → 2.1.1-pr.120.777302d
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/PrismicNextLink.d.cts +3 -3
- package/dist/{simulator/react-server/SliceSimulator.cjs → SliceSimulator.cjs} +3 -3
- package/dist/SliceSimulator.cjs.map +1 -0
- package/dist/{simulator/react-server/SliceSimulator.d.cts → SliceSimulator.d.cts} +2 -2
- package/dist/{simulator/SliceSimulatorWrapper.cjs → SliceSimulatorWrapper.cjs} +2 -2
- package/dist/SliceSimulatorWrapper.cjs.map +1 -0
- package/dist/{simulator/react-server/getSlices.cjs → getSlices.cjs} +2 -2
- package/dist/getSlices.cjs.map +1 -0
- package/dist/{simulator/react-server/getSlices.d.cts → getSlices.d.cts} +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.d.cts +4 -5
- package/dist/package.cjs +1 -1
- package/dist/pages/PrismicPreview.cjs.map +1 -1
- package/dist/{simulator → pages}/SliceSimulator.cjs +2 -4
- package/dist/pages/SliceSimulator.cjs.map +1 -0
- package/dist/{simulator → pages}/SliceSimulator.d.cts +1 -1
- package/dist/pages.cjs +2 -0
- package/dist/pages.d.cts +2 -1
- package/dist/types.d.cts +9 -1
- package/package.json +1 -5
- package/src/{simulator/react-server/SliceSimulator.tsx → SliceSimulator.tsx} +6 -9
- package/src/{simulator/SliceSimulatorWrapper.tsx → SliceSimulatorWrapper.tsx} +4 -4
- package/src/{simulator/react-server/getSlices.ts → getSlices.ts} +0 -2
- package/src/index.ts +5 -7
- package/src/pages/PrismicPreview.tsx +3 -3
- package/src/{simulator → pages}/SliceSimulator.tsx +3 -7
- package/src/pages/index.ts +6 -0
- package/src/types.ts +9 -0
- package/dist/react-server.cjs +0 -5
- package/dist/react-server.d.cts +0 -3
- package/dist/simulator/SliceSimulator.cjs.map +0 -1
- package/dist/simulator/SliceSimulatorWrapper.cjs.map +0 -1
- package/dist/simulator/getSlices.cjs +0 -16
- package/dist/simulator/getSlices.cjs.map +0 -1
- package/dist/simulator/getSlices.d.cts +0 -15
- package/dist/simulator/react-server/SliceSimulator.cjs.map +0 -1
- package/dist/simulator/react-server/getSlices.cjs.map +0 -1
- package/dist/simulator/types.d.cts +0 -15
- package/src/simulator/getSlices.ts +0 -19
- package/src/simulator/index.ts +0 -8
- package/src/simulator/react-server/index.ts +0 -4
- package/src/simulator/types.ts +0 -11
|
@@ -23,7 +23,7 @@ type PrismicNextLinkProps = Omit<ComponentProps<typeof Link>, "field" | "documen
|
|
|
23
23
|
});
|
|
24
24
|
declare const PrismicNextLink: react0.ForwardRefExoticComponent<(Omit<Omit<Omit<react0.AnchorHTMLAttributes<HTMLAnchorElement>, keyof next_link0.LinkProps<any>> & next_link0.LinkProps<any> & {
|
|
25
25
|
children?: React.ReactNode | undefined;
|
|
26
|
-
} & react0.RefAttributes<HTMLAnchorElement>, "
|
|
26
|
+
} & react0.RefAttributes<HTMLAnchorElement>, "href" | "rel" | "field" | "document"> & {
|
|
27
27
|
linkResolver?: LinkResolverFunction;
|
|
28
28
|
rel?: string | AsLinkAttrsConfig["rel"];
|
|
29
29
|
} & {
|
|
@@ -32,7 +32,7 @@ declare const PrismicNextLink: react0.ForwardRefExoticComponent<(Omit<Omit<Omit<
|
|
|
32
32
|
href?: never;
|
|
33
33
|
}, "ref"> | Omit<Omit<Omit<react0.AnchorHTMLAttributes<HTMLAnchorElement>, keyof next_link0.LinkProps<any>> & next_link0.LinkProps<any> & {
|
|
34
34
|
children?: React.ReactNode | undefined;
|
|
35
|
-
} & react0.RefAttributes<HTMLAnchorElement>, "
|
|
35
|
+
} & react0.RefAttributes<HTMLAnchorElement>, "href" | "rel" | "field" | "document"> & {
|
|
36
36
|
linkResolver?: LinkResolverFunction;
|
|
37
37
|
rel?: string | AsLinkAttrsConfig["rel"];
|
|
38
38
|
} & {
|
|
@@ -41,7 +41,7 @@ declare const PrismicNextLink: react0.ForwardRefExoticComponent<(Omit<Omit<Omit<
|
|
|
41
41
|
href?: never;
|
|
42
42
|
}, "ref"> | Omit<Omit<Omit<react0.AnchorHTMLAttributes<HTMLAnchorElement>, keyof next_link0.LinkProps<any>> & next_link0.LinkProps<any> & {
|
|
43
43
|
children?: React.ReactNode | undefined;
|
|
44
|
-
} & react0.RefAttributes<HTMLAnchorElement>, "
|
|
44
|
+
} & react0.RefAttributes<HTMLAnchorElement>, "href" | "rel" | "field" | "document"> & {
|
|
45
45
|
linkResolver?: LinkResolverFunction;
|
|
46
46
|
rel?: string | AsLinkAttrsConfig["rel"];
|
|
47
47
|
} & {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
const require_rolldown_runtime = require('
|
|
4
|
-
const require_SliceSimulatorWrapper = require('
|
|
3
|
+
const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
|
|
4
|
+
const require_SliceSimulatorWrapper = require('./SliceSimulatorWrapper.cjs');
|
|
5
5
|
const require_getSlices = require('./getSlices.cjs');
|
|
6
6
|
let next_navigation = require("next/navigation");
|
|
7
7
|
let react = require("react");
|
|
@@ -9,7 +9,7 @@ let react_jsx_runtime = require("react/jsx-runtime");
|
|
|
9
9
|
let _prismicio_simulator_kit = require("@prismicio/simulator/kit");
|
|
10
10
|
let lz_string = require("lz-string");
|
|
11
11
|
|
|
12
|
-
//#region src/
|
|
12
|
+
//#region src/SliceSimulator.tsx
|
|
13
13
|
const STATE_PARAMS_KEY = "state";
|
|
14
14
|
const simulatorManager = new _prismicio_simulator_kit.SimulatorManager();
|
|
15
15
|
const SliceSimulator = ({ children, background, zIndex, className }) => {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SliceSimulator.cjs","names":["SimulatorManager","getSlices","StateEventType","SliceSimulatorWrapper"],"sources":["../src/SliceSimulator.tsx"],"sourcesContent":["\"use client\";\n\nimport { SliceSimulatorWrapper } from \"./SliceSimulatorWrapper\";\nimport { getSlices } from \"./getSlices\";\nimport {\n\tSimulatorManager,\n\tStateEventType,\n\tgetDefaultMessage,\n} from \"@prismicio/simulator/kit\";\nimport type { SliceSimulatorProps as BaseSliceSimulatorProps } from \"@prismicio/simulator/kit\";\nimport { compressToEncodedURIComponent } from \"lz-string\";\nimport { useRouter } from \"next/navigation\";\nimport { useEffect, useState } from \"react\";\nimport type { FC } from \"react\";\n\nconst STATE_PARAMS_KEY = \"state\";\n\nconst simulatorManager = new SimulatorManager();\n\nexport type SliceSimulatorProps = Omit<BaseSliceSimulatorProps, \"state\"> & {\n\tchildren: React.ReactNode;\n\tclassName?: string;\n};\n\nexport const SliceSimulator: FC<SliceSimulatorProps> = ({\n\tchildren,\n\tbackground,\n\tzIndex,\n\tclassName,\n}) => {\n\tconst [message, setMessage] = useState(() => getDefaultMessage());\n\tconst router = useRouter();\n\n\tconst state =\n\t\ttypeof window !== \"undefined\"\n\t\t\t? new URL(window.location.href).searchParams.get(STATE_PARAMS_KEY)\n\t\t\t: undefined;\n\tconst hasSlices = getSlices(state).length > 0;\n\n\tuseEffect(() => {\n\t\tsimulatorManager.state.on(\n\t\t\tStateEventType.Slices,\n\t\t\t(newSlices) => {\n\t\t\t\tconst url = new URL(window.location.href);\n\t\t\t\turl.searchParams.set(\n\t\t\t\t\tSTATE_PARAMS_KEY,\n\t\t\t\t\tcompressToEncodedURIComponent(JSON.stringify(newSlices)),\n\t\t\t\t);\n\n\t\t\t\twindow.history.replaceState(null, \"\", url);\n\t\t\t\t// Wait until the next tick to prevent URL state race conditions.\n\t\t\t\tsetTimeout(() => router.refresh(), 0);\n\t\t\t},\n\t\t\t\"simulator-slices\",\n\t\t);\n\t\tsimulatorManager.state.on(\n\t\t\tStateEventType.Message,\n\t\t\t(newMessage) => setMessage(newMessage),\n\t\t\t\"simulator-message\",\n\t\t);\n\n\t\tsimulatorManager.init();\n\n\t\treturn () => {\n\t\t\tsimulatorManager.state.off(StateEventType.Slices, \"simulator-slices\");\n\n\t\t\tsimulatorManager.state.off(StateEventType.Message, \"simulator-message\");\n\t\t};\n\t\t// oxlint-disable-next-line exhaustive-deps\n\t}, []);\n\n\treturn (\n\t\t<SliceSimulatorWrapper\n\t\t\tmessage={message}\n\t\t\thasSlices={hasSlices}\n\t\t\tbackground={background}\n\t\t\tzIndex={zIndex}\n\t\t\tclassName={className}\n\t\t>\n\t\t\t{children}\n\t\t</SliceSimulatorWrapper>\n\t);\n};\n"],"mappings":";;;;;;;;;;;;AAeA,MAAM,mBAAmB;AAEzB,MAAM,mBAAmB,IAAIA,2CAAkB;AAO/C,MAAa,kBAA2C,EACvD,UACA,YACA,QACA,gBACK;CACL,MAAM,CAAC,SAAS,yFAAgD,CAAC;CACjE,MAAM,yCAAoB;CAM1B,MAAM,YAAYC,4BAHjB,OAAO,WAAW,cACf,IAAI,IAAI,OAAO,SAAS,KAAK,CAAC,aAAa,IAAI,iBAAiB,GAChE,OAC8B,CAAC,SAAS;AAE5C,4BAAgB;AACf,mBAAiB,MAAM,GACtBC,wCAAe,SACd,cAAc;GACd,MAAM,MAAM,IAAI,IAAI,OAAO,SAAS,KAAK;AACzC,OAAI,aAAa,IAChB,+DAC8B,KAAK,UAAU,UAAU,CAAC,CACxD;AAED,UAAO,QAAQ,aAAa,MAAM,IAAI,IAAI;AAE1C,oBAAiB,OAAO,SAAS,EAAE,EAAE;KAEtC,mBACA;AACD,mBAAiB,MAAM,GACtBA,wCAAe,UACd,eAAe,WAAW,WAAW,EACtC,oBACA;AAED,mBAAiB,MAAM;AAEvB,eAAa;AACZ,oBAAiB,MAAM,IAAIA,wCAAe,QAAQ,mBAAmB;AAErE,oBAAiB,MAAM,IAAIA,wCAAe,SAAS,oBAAoB;;IAGtE,EAAE,CAAC;AAEN,QACC,2CAACC;EACS;EACE;EACC;EACJ;EACG;EAEV;GACsB"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { FC } from "react";
|
|
2
2
|
import { SliceSimulatorProps } from "@prismicio/simulator/kit";
|
|
3
3
|
|
|
4
|
-
//#region src/
|
|
4
|
+
//#region src/SliceSimulator.d.ts
|
|
5
5
|
type SliceSimulatorProps$1 = Omit<SliceSimulatorProps, "state"> & {
|
|
6
6
|
children: React.ReactNode;
|
|
7
7
|
className?: string;
|
|
8
8
|
};
|
|
9
9
|
declare const SliceSimulator: FC<SliceSimulatorProps$1>;
|
|
10
10
|
//#endregion
|
|
11
|
-
export { SliceSimulator };
|
|
11
|
+
export { SliceSimulator, SliceSimulatorProps$1 as SliceSimulatorProps };
|
|
12
12
|
//# sourceMappingURL=SliceSimulator.d.cts.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
const require_rolldown_runtime = require('
|
|
1
|
+
const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
|
|
2
2
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
3
3
|
let _prismicio_simulator_kit = require("@prismicio/simulator/kit");
|
|
4
4
|
|
|
5
|
-
//#region src/
|
|
5
|
+
//#region src/SliceSimulatorWrapper.tsx
|
|
6
6
|
/**
|
|
7
7
|
* A wrapper for the slice simulator that isolates the given children from the
|
|
8
8
|
* page's layout.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SliceSimulatorWrapper.cjs","names":["simulatorClass","simulatorRootClass","onClickHandler","disableEventHandler"],"sources":["../src/SliceSimulatorWrapper.tsx"],"sourcesContent":["import type { SliceSimulatorProps } from \"./SliceSimulator\";\nimport {\n\tdisableEventHandler,\n\tgetDefaultProps,\n\tonClickHandler,\n\tsimulatorClass,\n\tsimulatorRootClass,\n} from \"@prismicio/simulator/kit\";\nimport type { FC, ReactNode } from \"react\";\n\ntype SliceSimulatorWrapperProps = {\n\tchildren: ReactNode;\n\tclassName?: string;\n\tmessage?: string;\n\thasSlices: boolean;\n} & Omit<SliceSimulatorProps, \"state\">;\n\n/**\n * A wrapper for the slice simulator that isolates the given children from the\n * page's layout.\n */\nexport const SliceSimulatorWrapper: FC<SliceSimulatorWrapperProps> = ({\n\tclassName,\n\tchildren,\n\tzIndex,\n\tbackground,\n\tmessage,\n\thasSlices,\n}) => {\n\tconst defaultProps = getDefaultProps();\n\n\treturn (\n\t\t<div\n\t\t\tclassName={[simulatorClass, className].filter(Boolean).join(\" \")}\n\t\t\tstyle={{\n\t\t\t\tzIndex:\n\t\t\t\t\ttypeof zIndex === \"undefined\"\n\t\t\t\t\t\t? defaultProps.zIndex\n\t\t\t\t\t\t: (zIndex ?? undefined),\n\t\t\t\tposition: \"fixed\",\n\t\t\t\ttop: 0,\n\t\t\t\tleft: 0,\n\t\t\t\twidth: \"100%\",\n\t\t\t\theight: \"100vh\",\n\t\t\t\toverflow: \"auto\",\n\t\t\t\tbackground:\n\t\t\t\t\ttypeof background === \"undefined\"\n\t\t\t\t\t\t? defaultProps.background\n\t\t\t\t\t\t: (background ?? undefined),\n\t\t\t}}\n\t\t>\n\t\t\t{message ? (\n\t\t\t\t<article dangerouslySetInnerHTML={{ __html: message }} />\n\t\t\t) : hasSlices ? (\n\t\t\t\t<div\n\t\t\t\t\tid=\"root\"\n\t\t\t\t\tclassName={simulatorRootClass}\n\t\t\t\t\tonClickCapture={onClickHandler as unknown as React.MouseEventHandler}\n\t\t\t\t\tonSubmitCapture={\n\t\t\t\t\t\tdisableEventHandler as unknown as React.FormEventHandler\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t) : null}\n\t\t</div>\n\t);\n};\n"],"mappings":";;;;;;;;;AAqBA,MAAa,yBAAyD,EACrE,WACA,UACA,QACA,YACA,SACA,gBACK;CACL,MAAM,8DAAgC;AAEtC,QACC,2CAAC;EACA,WAAW,CAACA,yCAAgB,UAAU,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI;EAChE,OAAO;GACN,QACC,OAAO,WAAW,cACf,aAAa,SACZ,UAAU;GACf,UAAU;GACV,KAAK;GACL,MAAM;GACN,OAAO;GACP,QAAQ;GACR,UAAU;GACV,YACC,OAAO,eAAe,cACnB,aAAa,aACZ,cAAc;GACnB;YAEA,UACA,2CAAC,aAAQ,yBAAyB,EAAE,QAAQ,SAAS,GAAI,GACtD,YACH,2CAAC;GACA,IAAG;GACH,WAAWC;GACX,gBAAgBC;GAChB,iBACCC;GAGA;IACI,GACH;GACC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
const require_rolldown_runtime = require('
|
|
1
|
+
const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
|
|
2
2
|
let _prismicio_simulator_kit = require("@prismicio/simulator/kit");
|
|
3
3
|
let lz_string = require("lz-string");
|
|
4
4
|
|
|
5
|
-
//#region src/
|
|
5
|
+
//#region src/getSlices.ts
|
|
6
6
|
const getSlices = (state) => {
|
|
7
7
|
return state ? JSON.parse((0, lz_string.decompressFromEncodedURIComponent)(state)) : (0, _prismicio_simulator_kit.getDefaultSlices)();
|
|
8
8
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getSlices.cjs","names":[],"sources":["../src/getSlices.ts"],"sourcesContent":["import { getDefaultSlices } from \"@prismicio/simulator/kit\";\nimport type { StateEvents, StateEventType } from \"@prismicio/simulator/kit\";\nimport { decompressFromEncodedURIComponent } from \"lz-string\";\n\nexport const getSlices = (\n\tstate: string | null | undefined,\n): StateEvents[StateEventType.Slices] => {\n\treturn state\n\t\t? JSON.parse(decompressFromEncodedURIComponent(state))\n\t\t: getDefaultSlices();\n};\n"],"mappings":";;;;;AAIA,MAAa,aACZ,UACwC;AACxC,QAAO,QACJ,KAAK,uDAAwC,MAAM,CAAC,mDAClC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { StateEventType, StateEvents } from "@prismicio/simulator/kit";
|
|
2
2
|
|
|
3
|
-
//#region src/
|
|
3
|
+
//#region src/getSlices.d.ts
|
|
4
4
|
declare const getSlices: (state: string | null | undefined) => StateEvents[StateEventType.Slices];
|
|
5
5
|
//#endregion
|
|
6
6
|
export { getSlices };
|
package/dist/index.cjs
CHANGED
|
@@ -5,8 +5,8 @@ const require_enableAutoPreviews = require('./enableAutoPreviews.cjs');
|
|
|
5
5
|
const require_redirectToPreviewURL = require('./redirectToPreviewURL.cjs');
|
|
6
6
|
const require_imgixLoader = require('./imgixLoader.cjs');
|
|
7
7
|
const require_PrismicNextImage = require('./PrismicNextImage.cjs');
|
|
8
|
-
const
|
|
9
|
-
const
|
|
8
|
+
const require_getSlices = require('./getSlices.cjs');
|
|
9
|
+
const require_SliceSimulator = require('./SliceSimulator.cjs');
|
|
10
10
|
const require_createLocaleRedirect = require('./createLocaleRedirect.cjs');
|
|
11
11
|
|
|
12
12
|
exports.PrismicNextImage = require_PrismicNextImage.PrismicNextImage;
|
package/dist/index.d.cts
CHANGED
|
@@ -2,12 +2,11 @@ import { exitPreview } from "./exitPreview.cjs";
|
|
|
2
2
|
import { PrismicPreview, PrismicPreviewProps } from "./PrismicPreview.cjs";
|
|
3
3
|
import { PrismicNextLink, PrismicNextLinkProps } from "./PrismicNextLink.cjs";
|
|
4
4
|
import { EnableAutoPreviewsConfig, enableAutoPreviews } from "./enableAutoPreviews.cjs";
|
|
5
|
-
import { CreateClientConfig } from "./types.cjs";
|
|
5
|
+
import { CreateClientConfig, SliceSimulatorParams } from "./types.cjs";
|
|
6
6
|
import { RedirectToPreviewURLConfig, redirectToPreviewURL } from "./redirectToPreviewURL.cjs";
|
|
7
7
|
import { PrismicNextImage, PrismicNextImageProps } from "./PrismicNextImage.cjs";
|
|
8
|
-
import { SliceSimulator, SliceSimulatorProps
|
|
9
|
-
import { getSlices } from "./
|
|
10
|
-
import { SliceSimulatorParams } from "./simulator/types.cjs";
|
|
8
|
+
import { SliceSimulator, SliceSimulatorProps } from "./SliceSimulator.cjs";
|
|
9
|
+
import { getSlices } from "./getSlices.cjs";
|
|
11
10
|
import { imgixLoader } from "./imgixLoader.cjs";
|
|
12
11
|
import { CreateLocaleRedirectConfig, createLocaleRedirect } from "./createLocaleRedirect.cjs";
|
|
13
|
-
export { type CreateClientConfig, type CreateLocaleRedirectConfig, type EnableAutoPreviewsConfig, PrismicNextImage, type PrismicNextImageProps, PrismicNextLink, type PrismicNextLinkProps, PrismicPreview, type PrismicPreviewProps, type RedirectToPreviewURLConfig, SliceSimulator, type SliceSimulatorParams, type SliceSimulatorProps,
|
|
12
|
+
export { type CreateClientConfig, type CreateLocaleRedirectConfig, type EnableAutoPreviewsConfig, PrismicNextImage, type PrismicNextImageProps, PrismicNextLink, type PrismicNextLinkProps, PrismicPreview, type PrismicPreviewProps, type RedirectToPreviewURLConfig, SliceSimulator, type SliceSimulatorParams, type SliceSimulatorProps, createLocaleRedirect, enableAutoPreviews, exitPreview, getSlices, imgixLoader, redirectToPreviewURL };
|
package/dist/package.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrismicPreview.cjs","names":["Script","prismicCookie"],"sources":["../../src/pages/PrismicPreview.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"PrismicPreview.cjs","names":["Script","prismicCookie"],"sources":["../../src/pages/PrismicPreview.tsx"],"sourcesContent":["import { getToolbarSrc, cookie as prismicCookie } from \"@prismicio/client\";\nimport { useRouter } from \"next/router\";\nimport Script from \"next/script\";\nimport type { FC } from \"react\";\nimport { type ReactNode, useEffect } from \"react\";\n\n/** Props for `<PrismicPreview>`. */\nexport type PrismicPreviewProps = {\n\t/**\n\t * The name of your Prismic repository. A Prismic Toolbar will be registered\n\t * using this repository.\n\t */\n\trepositoryName: string;\n\n\t/**\n\t * The URL of your app's Prismic preview endpoint (default: `/api/preview`).\n\t * This URL will be fetched on preview update events.\n\t */\n\tupdatePreviewURL?: string;\n\n\t/**\n\t * The URL of your app's exit preview endpoint (default: `/api/exit-preview`).\n\t * This URL will be fetched on preview exit events.\n\t */\n\texitPreviewURL?: string;\n\n\t/** Children to render adjacent to the Prismic Toolbar. */\n\tchildren?: ReactNode;\n};\n\n/**\n * React component that sets up Prismic Previews using the Prismic Toolbar. When\n * the Prismic Toolbar send events to the browser, such as on preview updates\n * and exiting, this component will automatically refresh the page with the\n * changes.\n *\n * This component can be wrapped around your app or added anywhere in your app's\n * tree. It must be rendered on every page.\n */\nexport const PrismicPreview: FC<PrismicPreviewProps> = (props) => {\n\tconst {\n\t\trepositoryName,\n\t\tupdatePreviewURL = \"/api/preview\",\n\t\texitPreviewURL = \"/api/exit-preview\",\n\t\tchildren,\n\t} = props;\n\n\tconst router = useRouter();\n\n\tconst toolbarSrc = getToolbarSrc(repositoryName);\n\n\tuseEffect(() => {\n\t\tconst controller = new AbortController();\n\n\t\twindow.addEventListener(\"prismicPreviewUpdate\", onUpdate, {\n\t\t\tsignal: controller.signal,\n\t\t});\n\t\twindow.addEventListener(\"prismicPreviewEnd\", onEnd, {\n\t\t\tsignal: controller.signal,\n\t\t});\n\n\t\t// Start the preview for preview share links. Previews from\n\t\t// share links do not go to the `updatePreviewURL` like a normal\n\t\t// preview.\n\t\t//\n\t\t// We check that the current URL is a descendant of the base\n\t\t// path to prevent infinite refrehes.\n\t\tif (\n\t\t\twindow.location.href.startsWith(\n\t\t\t\twindow.location.origin + router.basePath,\n\t\t\t) &&\n\t\t\tgetPreviewCookieRepositoryName() === repositoryName &&\n\t\t\t!router.isPreview\n\t\t) {\n\t\t\tstart();\n\t\t}\n\n\t\tfunction onEnd(event: Event) {\n\t\t\tevent.preventDefault();\n\t\t\tfetch(router.basePath + exitPreviewURL, { signal: controller.signal })\n\t\t\t\t.then((res) => {\n\t\t\t\t\tif (!res.ok) {\n\t\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t\t`[<PrismicPreview>] Failed to exit Preview Mode using the \"${exitPreviewURL}\" API endpoint. Does it exist?`,\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\trefresh();\n\t\t\t\t})\n\t\t\t\t.catch(() => {});\n\t\t}\n\n\t\tfunction onUpdate(event: Event) {\n\t\t\tevent.preventDefault();\n\t\t\tstart();\n\t\t}\n\n\t\tfunction start() {\n\t\t\t// We check `opaqueredirect` because we don't care if\n\t\t\t// the redirect was successful or not. As long as it\n\t\t\t// redirects, we know the endpoint exists and at least\n\t\t\t// attempted to set preview data.\n\t\t\tfetch(router.basePath + updatePreviewURL, {\n\t\t\t\tredirect: \"manual\",\n\t\t\t\tsignal: controller.signal,\n\t\t\t})\n\t\t\t\t.then((res) => {\n\t\t\t\t\tif (res.type !== \"opaqueredirect\") {\n\t\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t\t`[<PrismicPreview>] Failed to start or update the preview using \"${updatePreviewURL}\". Does it exist?`,\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\trefresh();\n\t\t\t\t})\n\t\t\t\t.catch(() => {});\n\t\t}\n\n\t\tfunction refresh() {\n\t\t\trouter.replace(router.asPath, undefined, { scroll: false });\n\t\t}\n\n\t\treturn () => controller.abort();\n\t}, [exitPreviewURL, updatePreviewURL, repositoryName, router]);\n\n\treturn (\n\t\t<>\n\t\t\t{children}\n\t\t\t<Script src={toolbarSrc} strategy=\"lazyOnload\" />\n\t\t</>\n\t);\n};\n\nfunction getPreviewCookieRepositoryName() {\n\tconst cookie = window.document.cookie\n\t\t.split(\"; \")\n\t\t.find((row) => row.startsWith(`${prismicCookie.preview}=`))\n\t\t?.split(\"=\")[1];\n\n\treturn (decodeURIComponent(cookie ?? \"\").match(/\"([^\"]+)\\.prismic\\.io\"/) ||\n\t\t[])[1];\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAuCA,MAAa,kBAA2C,UAAU;CACjE,MAAM,EACL,gBACA,mBAAmB,gBACnB,iBAAiB,qBACjB,aACG;CAEJ,MAAM,qCAAoB;CAE1B,MAAM,kDAA2B,eAAe;AAEhD,4BAAgB;EACf,MAAM,aAAa,IAAI,iBAAiB;AAExC,SAAO,iBAAiB,wBAAwB,UAAU,EACzD,QAAQ,WAAW,QACnB,CAAC;AACF,SAAO,iBAAiB,qBAAqB,OAAO,EACnD,QAAQ,WAAW,QACnB,CAAC;AAQF,MACC,OAAO,SAAS,KAAK,WACpB,OAAO,SAAS,SAAS,OAAO,SAChC,IACD,gCAAgC,KAAK,kBACrC,CAAC,OAAO,UAER,QAAO;EAGR,SAAS,MAAM,OAAc;AAC5B,SAAM,gBAAgB;AACtB,SAAM,OAAO,WAAW,gBAAgB,EAAE,QAAQ,WAAW,QAAQ,CAAC,CACpE,MAAM,QAAQ;AACd,QAAI,CAAC,IAAI,IAAI;AACZ,aAAQ,MACP,6DAA6D,eAAe,gCAC5E;AAED;;AAGD,aAAS;KACR,CACD,YAAY,GAAG;;EAGlB,SAAS,SAAS,OAAc;AAC/B,SAAM,gBAAgB;AACtB,UAAO;;EAGR,SAAS,QAAQ;AAKhB,SAAM,OAAO,WAAW,kBAAkB;IACzC,UAAU;IACV,QAAQ,WAAW;IACnB,CAAC,CACA,MAAM,QAAQ;AACd,QAAI,IAAI,SAAS,kBAAkB;AAClC,aAAQ,MACP,mEAAmE,iBAAiB,mBACpF;AAED;;AAGD,aAAS;KACR,CACD,YAAY,GAAG;;EAGlB,SAAS,UAAU;AAClB,UAAO,QAAQ,OAAO,QAAQ,QAAW,EAAE,QAAQ,OAAO,CAAC;;AAG5D,eAAa,WAAW,OAAO;IAC7B;EAAC;EAAgB;EAAkB;EAAgB;EAAO,CAAC;AAE9D,QACC,qFACE,UACD,2CAACA;EAAO,KAAK;EAAY,UAAS;GAAe,IAC/C;;AAIL,SAAS,iCAAiC;CACzC,MAAM,SAAS,OAAO,SAAS,OAC7B,MAAM,KAAK,CACX,MAAM,QAAQ,IAAI,WAAW,GAAGC,yBAAc,QAAQ,GAAG,CAAC,EACzD,MAAM,IAAI,CAAC;AAEd,SAAQ,mBAAmB,UAAU,GAAG,CAAC,MAAM,yBAAyB,IACvE,EAAE,EAAE"}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
1
|
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
|
|
4
|
-
const require_SliceSimulatorWrapper = require('
|
|
2
|
+
const require_SliceSimulatorWrapper = require('../SliceSimulatorWrapper.cjs');
|
|
5
3
|
let react = require("react");
|
|
6
4
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
7
5
|
let _prismicio_simulator_kit = require("@prismicio/simulator/kit");
|
|
8
6
|
|
|
9
|
-
//#region src/
|
|
7
|
+
//#region src/pages/SliceSimulator.tsx
|
|
10
8
|
const simulatorManager = new _prismicio_simulator_kit.SimulatorManager();
|
|
11
9
|
/**
|
|
12
10
|
* Simulate slices in isolation. The slice simulator enables live slice
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SliceSimulator.cjs","names":["SimulatorManager","StateEventType","SliceSimulatorWrapper"],"sources":["../../src/pages/SliceSimulator.tsx"],"sourcesContent":["import { SliceSimulatorWrapper } from \"../SliceSimulatorWrapper\";\nimport {\n\tSimulatorManager,\n\tStateEventType,\n\tgetDefaultMessage,\n\tgetDefaultSlices,\n} from \"@prismicio/simulator/kit\";\nimport type {\n\tSliceSimulatorProps as BaseSliceSimulatorProps,\n\tSliceSimulatorState,\n} from \"@prismicio/simulator/kit\";\nimport { useEffect, useState } from \"react\";\nimport type { ComponentType, FC } from \"react\";\n\nconst simulatorManager = new SimulatorManager();\n\nexport type SliceSimulatorSliceZoneProps = {\n\tslices: SliceSimulatorState[\"slices\"];\n};\n\nexport type SliceSimulatorProps = {\n\tclassName?: string;\n} & Omit<BaseSliceSimulatorProps, \"state\"> &\n\t(\n\t\t| {\n\t\t\t\t/**\n\t\t\t\t * React component to render simulated Slices.\n\t\t\t\t *\n\t\t\t\t * @example\n\t\t\t\t *\n\t\t\t\t * ```tsx\n\t\t\t\t * import { SliceSimulator } from \"@slicemachine/adapter-next/simulator\";\n\t\t\t\t * import { SliceZone } from \"@prismicio/react\";\n\t\t\t\t *\n\t\t\t\t * import { components } from \"../slices\";\n\t\t\t\t *\n\t\t\t\t * <SliceSimulator\n\t\t\t\t * \tsliceZone={({ slices }) => (\n\t\t\t\t * \t\t<SliceZone slices={slices} components={components} />\n\t\t\t\t * \t)}\n\t\t\t\t * />;\n\t\t\t\t * ```\n\t\t\t\t */\n\t\t\t\tsliceZone: ComponentType<SliceSimulatorSliceZoneProps>;\n\t\t }\n\t\t| {\n\t\t\t\tchildren: React.ReactNode;\n\t\t }\n\t);\n\n/**\n * Simulate slices in isolation. The slice simulator enables live slice\n * development in Slice Machine and live previews in the Page Builder.\n */\nexport const SliceSimulator: FC<SliceSimulatorProps> = ({\n\tbackground,\n\tzIndex,\n\tclassName,\n\t...restProps\n}) => {\n\tif (!(\"sliceZone\" in restProps)) {\n\t\tthrow new Error(\n\t\t\t\"A sliceZone prop must be provided when <SliceZone> is rendered in a Client Component. Add a sliceZone prop or convert your simulator to a Server Component with the getSlices helper.\",\n\t\t);\n\t}\n\n\tconst [slices, setSlices] = useState(() => getDefaultSlices());\n\tconst [message, setMessage] = useState(() => getDefaultMessage());\n\n\tuseEffect(() => {\n\t\tsimulatorManager.state.on(\n\t\t\tStateEventType.Slices,\n\t\t\t(_slices) => {\n\t\t\t\tsetSlices(_slices);\n\t\t\t},\n\t\t\t\"simulator-slices\",\n\t\t);\n\t\tsimulatorManager.state.on(\n\t\t\tStateEventType.Message,\n\t\t\t(_message) => {\n\t\t\t\tsetMessage(_message);\n\t\t\t},\n\t\t\t\"simulator-message\",\n\t\t);\n\n\t\tsimulatorManager.init();\n\n\t\treturn () => {\n\t\t\tsimulatorManager.state.off(StateEventType.Slices, \"simulator-slices\");\n\n\t\t\tsimulatorManager.state.off(StateEventType.Message, \"simulator-message\");\n\t\t};\n\t}, []);\n\n\tconst SliceZoneComp = restProps.sliceZone;\n\n\treturn (\n\t\t<SliceSimulatorWrapper\n\t\t\tmessage={message}\n\t\t\thasSlices={slices.length > 0}\n\t\t\tbackground={background}\n\t\t\tzIndex={zIndex}\n\t\t\tclassName={className}\n\t\t>\n\t\t\t<SliceZoneComp slices={slices} />\n\t\t</SliceSimulatorWrapper>\n\t);\n};\n"],"mappings":";;;;;;;AAcA,MAAM,mBAAmB,IAAIA,2CAAkB;;;;;AAwC/C,MAAa,kBAA2C,EACvD,YACA,QACA,WACA,GAAG,gBACE;AACL,KAAI,EAAE,eAAe,WACpB,OAAM,IAAI,MACT,wLACA;CAGF,MAAM,CAAC,QAAQ,uFAA8C,CAAC;CAC9D,MAAM,CAAC,SAAS,yFAAgD,CAAC;AAEjE,4BAAgB;AACf,mBAAiB,MAAM,GACtBC,wCAAe,SACd,YAAY;AACZ,aAAU,QAAQ;KAEnB,mBACA;AACD,mBAAiB,MAAM,GACtBA,wCAAe,UACd,aAAa;AACb,cAAW,SAAS;KAErB,oBACA;AAED,mBAAiB,MAAM;AAEvB,eAAa;AACZ,oBAAiB,MAAM,IAAIA,wCAAe,QAAQ,mBAAmB;AAErE,oBAAiB,MAAM,IAAIA,wCAAe,SAAS,oBAAoB;;IAEtE,EAAE,CAAC;CAEN,MAAM,gBAAgB,UAAU;AAEhC,QACC,2CAACC;EACS;EACT,WAAW,OAAO,SAAS;EACf;EACJ;EACG;YAEX,2CAAC,iBAAsB,SAAU;GACV"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ComponentType, FC } from "react";
|
|
2
2
|
import { SliceSimulatorProps, SliceSimulatorState } from "@prismicio/simulator/kit";
|
|
3
3
|
|
|
4
|
-
//#region src/
|
|
4
|
+
//#region src/pages/SliceSimulator.d.ts
|
|
5
5
|
type SliceSimulatorSliceZoneProps = {
|
|
6
6
|
slices: SliceSimulatorState["slices"];
|
|
7
7
|
};
|
package/dist/pages.cjs
CHANGED
|
@@ -2,6 +2,7 @@ const require_PrismicNextLink = require('./PrismicNextLink.cjs');
|
|
|
2
2
|
const require_imgixLoader = require('./imgixLoader.cjs');
|
|
3
3
|
const require_PrismicNextImage = require('./PrismicNextImage.cjs');
|
|
4
4
|
const require_createLocaleRedirect = require('./createLocaleRedirect.cjs');
|
|
5
|
+
const require_SliceSimulator = require('./pages/SliceSimulator.cjs');
|
|
5
6
|
const require_PrismicPreview = require('./pages/PrismicPreview.cjs');
|
|
6
7
|
const require_enableAutoPreviews = require('./pages/enableAutoPreviews.cjs');
|
|
7
8
|
const require_redirectToPreviewURL = require('./pages/redirectToPreviewURL.cjs');
|
|
@@ -11,6 +12,7 @@ const require_setPreviewData = require('./pages/setPreviewData.cjs');
|
|
|
11
12
|
exports.PrismicNextImage = require_PrismicNextImage.PrismicNextImage;
|
|
12
13
|
exports.PrismicNextLink = require_PrismicNextLink.PrismicNextLink;
|
|
13
14
|
exports.PrismicPreview = require_PrismicPreview.PrismicPreview;
|
|
15
|
+
exports.SliceSimulator = require_SliceSimulator.SliceSimulator;
|
|
14
16
|
exports.createLocaleRedirect = require_createLocaleRedirect.createLocaleRedirect;
|
|
15
17
|
exports.enableAutoPreviews = require_enableAutoPreviews.enableAutoPreviews;
|
|
16
18
|
exports.exitPreview = require_exitPreview.exitPreview;
|
package/dist/pages.d.cts
CHANGED
|
@@ -2,10 +2,11 @@ import { PrismicNextLink, PrismicNextLinkProps } from "./PrismicNextLink.cjs";
|
|
|
2
2
|
import { PrismicNextImage, PrismicNextImageProps } from "./PrismicNextImage.cjs";
|
|
3
3
|
import { imgixLoader } from "./imgixLoader.cjs";
|
|
4
4
|
import { CreateLocaleRedirectConfig, createLocaleRedirect } from "./createLocaleRedirect.cjs";
|
|
5
|
+
import { SliceSimulator, SliceSimulatorProps, SliceSimulatorSliceZoneProps } from "./pages/SliceSimulator.cjs";
|
|
5
6
|
import { PrismicPreview, PrismicPreviewProps } from "./pages/PrismicPreview.cjs";
|
|
6
7
|
import { CreateClientConfig } from "./pages/types.cjs";
|
|
7
8
|
import { EnableAutoPreviewsConfig, enableAutoPreviews } from "./pages/enableAutoPreviews.cjs";
|
|
8
9
|
import { RedirectToPreviewURLConfig, redirectToPreviewURL } from "./pages/redirectToPreviewURL.cjs";
|
|
9
10
|
import { ExitPreviewAPIRouteConfig, exitPreview } from "./pages/exitPreview.cjs";
|
|
10
11
|
import { SetPreviewDataConfig, setPreviewData } from "./pages/setPreviewData.cjs";
|
|
11
|
-
export { type CreateClientConfig, type CreateLocaleRedirectConfig, type EnableAutoPreviewsConfig, type ExitPreviewAPIRouteConfig, PrismicNextImage, type PrismicNextImageProps, PrismicNextLink, type PrismicNextLinkProps, PrismicPreview, type PrismicPreviewProps, type RedirectToPreviewURLConfig, type SetPreviewDataConfig, createLocaleRedirect, enableAutoPreviews, exitPreview, imgixLoader, redirectToPreviewURL, setPreviewData };
|
|
12
|
+
export { type CreateClientConfig, type CreateLocaleRedirectConfig, type EnableAutoPreviewsConfig, type ExitPreviewAPIRouteConfig, PrismicNextImage, type PrismicNextImageProps, PrismicNextLink, type PrismicNextLinkProps, PrismicPreview, type PrismicPreviewProps, type RedirectToPreviewURLConfig, type SetPreviewDataConfig, SliceSimulator, type SliceSimulatorProps, type SliceSimulatorSliceZoneProps, createLocaleRedirect, enableAutoPreviews, exitPreview, imgixLoader, redirectToPreviewURL, setPreviewData };
|
package/dist/types.d.cts
CHANGED
|
@@ -26,6 +26,14 @@ type NextRequestLike = {
|
|
|
26
26
|
};
|
|
27
27
|
};
|
|
28
28
|
};
|
|
29
|
+
/**
|
|
30
|
+
* Parameters provided to the Slice Simulator page.
|
|
31
|
+
*/
|
|
32
|
+
type SliceSimulatorParams = {
|
|
33
|
+
searchParams: Promise<{
|
|
34
|
+
state?: string;
|
|
35
|
+
}>;
|
|
36
|
+
};
|
|
29
37
|
//#endregion
|
|
30
|
-
export { CreateClientConfig, NextRequestLike };
|
|
38
|
+
export { CreateClientConfig, NextRequestLike, SliceSimulatorParams };
|
|
31
39
|
//# sourceMappingURL=types.d.cts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prismicio/next",
|
|
3
|
-
"version": "2.1.1-pr.120.
|
|
3
|
+
"version": "2.1.1-pr.120.777302d",
|
|
4
4
|
"description": "Helpers to integrate Prismic into Next.js apps",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript",
|
|
@@ -20,7 +20,6 @@
|
|
|
20
20
|
"exports": {
|
|
21
21
|
".": "./dist/index.cjs",
|
|
22
22
|
"./pages": "./dist/pages.cjs",
|
|
23
|
-
"./react-server": "./dist/react-server.cjs",
|
|
24
23
|
"./package.json": "./package.json"
|
|
25
24
|
},
|
|
26
25
|
"main": "./dist/index.cjs",
|
|
@@ -33,9 +32,6 @@
|
|
|
33
32
|
],
|
|
34
33
|
"pages": [
|
|
35
34
|
"./dist/pages/index.d.ts"
|
|
36
|
-
],
|
|
37
|
-
"react-server": [
|
|
38
|
-
"./dist/react-server/index.d.ts"
|
|
39
35
|
]
|
|
40
36
|
}
|
|
41
37
|
},
|
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
// This `<SliceSimulator>` is only accessible from Server Components.
|
|
2
|
-
|
|
3
1
|
"use client";
|
|
4
2
|
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
7
|
-
|
|
8
|
-
import { useRouter } from "next/navigation";
|
|
3
|
+
import { SliceSimulatorWrapper } from "./SliceSimulatorWrapper";
|
|
4
|
+
import { getSlices } from "./getSlices";
|
|
9
5
|
import {
|
|
10
6
|
SimulatorManager,
|
|
11
7
|
StateEventType,
|
|
@@ -13,9 +9,9 @@ import {
|
|
|
13
9
|
} from "@prismicio/simulator/kit";
|
|
14
10
|
import type { SliceSimulatorProps as BaseSliceSimulatorProps } from "@prismicio/simulator/kit";
|
|
15
11
|
import { compressToEncodedURIComponent } from "lz-string";
|
|
16
|
-
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
12
|
+
import { useRouter } from "next/navigation";
|
|
13
|
+
import { useEffect, useState } from "react";
|
|
14
|
+
import type { FC } from "react";
|
|
19
15
|
|
|
20
16
|
const STATE_PARAMS_KEY = "state";
|
|
21
17
|
|
|
@@ -70,6 +66,7 @@ export const SliceSimulator: FC<SliceSimulatorProps> = ({
|
|
|
70
66
|
|
|
71
67
|
simulatorManager.state.off(StateEventType.Message, "simulator-message");
|
|
72
68
|
};
|
|
69
|
+
// oxlint-disable-next-line exhaustive-deps
|
|
73
70
|
}, []);
|
|
74
71
|
|
|
75
72
|
return (
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { SliceSimulatorProps } from "./SliceSimulator";
|
|
2
2
|
import {
|
|
3
3
|
disableEventHandler,
|
|
4
4
|
getDefaultProps,
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
simulatorClass,
|
|
7
7
|
simulatorRootClass,
|
|
8
8
|
} from "@prismicio/simulator/kit";
|
|
9
|
-
import type {
|
|
9
|
+
import type { FC, ReactNode } from "react";
|
|
10
10
|
|
|
11
11
|
type SliceSimulatorWrapperProps = {
|
|
12
12
|
children: ReactNode;
|
|
@@ -36,7 +36,7 @@ export const SliceSimulatorWrapper: FC<SliceSimulatorWrapperProps> = ({
|
|
|
36
36
|
zIndex:
|
|
37
37
|
typeof zIndex === "undefined"
|
|
38
38
|
? defaultProps.zIndex
|
|
39
|
-
: zIndex ?? undefined,
|
|
39
|
+
: (zIndex ?? undefined),
|
|
40
40
|
position: "fixed",
|
|
41
41
|
top: 0,
|
|
42
42
|
left: 0,
|
|
@@ -46,7 +46,7 @@ export const SliceSimulatorWrapper: FC<SliceSimulatorWrapperProps> = ({
|
|
|
46
46
|
background:
|
|
47
47
|
typeof background === "undefined"
|
|
48
48
|
? defaultProps.background
|
|
49
|
-
: background ?? undefined,
|
|
49
|
+
: (background ?? undefined),
|
|
50
50
|
}}
|
|
51
51
|
>
|
|
52
52
|
{message ? (
|
package/src/index.ts
CHANGED
|
@@ -15,16 +15,14 @@ export type { RedirectToPreviewURLConfig } from "./redirectToPreviewURL";
|
|
|
15
15
|
export { PrismicNextImage } from "./PrismicNextImage";
|
|
16
16
|
export type { PrismicNextImageProps } from "./PrismicNextImage";
|
|
17
17
|
|
|
18
|
-
export { SliceSimulator
|
|
19
|
-
export type {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
SliceSimulatorParams,
|
|
23
|
-
} from "./simulator";
|
|
18
|
+
export { SliceSimulator } from "./SliceSimulator";
|
|
19
|
+
export type { SliceSimulatorProps } from "./SliceSimulator";
|
|
20
|
+
|
|
21
|
+
export { getSlices } from "./getSlices";
|
|
24
22
|
|
|
25
23
|
export { imgixLoader } from "./imgixLoader";
|
|
26
24
|
|
|
27
|
-
export type { CreateClientConfig } from "./types";
|
|
25
|
+
export type { CreateClientConfig, SliceSimulatorParams } from "./types";
|
|
28
26
|
|
|
29
27
|
export { createLocaleRedirect } from "./createLocaleRedirect";
|
|
30
28
|
export type { CreateLocaleRedirectConfig } from "./createLocaleRedirect";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { type ReactNode, useEffect } from "react";
|
|
1
|
+
import { getToolbarSrc, cookie as prismicCookie } from "@prismicio/client";
|
|
3
2
|
import { useRouter } from "next/router";
|
|
4
3
|
import Script from "next/script";
|
|
5
|
-
import {
|
|
4
|
+
import type { FC } from "react";
|
|
5
|
+
import { type ReactNode, useEffect } from "react";
|
|
6
6
|
|
|
7
7
|
/** Props for `<PrismicPreview>`. */
|
|
8
8
|
export type PrismicPreviewProps = {
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import { useEffect, useState } from "react";
|
|
4
|
-
import type { ComponentType, FC } from "react";
|
|
5
|
-
|
|
1
|
+
import { SliceSimulatorWrapper } from "../SliceSimulatorWrapper";
|
|
6
2
|
import {
|
|
7
3
|
SimulatorManager,
|
|
8
4
|
StateEventType,
|
|
@@ -13,8 +9,8 @@ import type {
|
|
|
13
9
|
SliceSimulatorProps as BaseSliceSimulatorProps,
|
|
14
10
|
SliceSimulatorState,
|
|
15
11
|
} from "@prismicio/simulator/kit";
|
|
16
|
-
|
|
17
|
-
import {
|
|
12
|
+
import { useEffect, useState } from "react";
|
|
13
|
+
import type { ComponentType, FC } from "react";
|
|
18
14
|
|
|
19
15
|
const simulatorManager = new SimulatorManager();
|
|
20
16
|
|
package/src/pages/index.ts
CHANGED
|
@@ -4,6 +4,12 @@ export { type PrismicNextLinkProps } from "../PrismicNextLink";
|
|
|
4
4
|
export { PrismicNextImage } from "../PrismicNextImage";
|
|
5
5
|
export { type PrismicNextImageProps } from "../PrismicNextImage";
|
|
6
6
|
|
|
7
|
+
export { SliceSimulator } from "./SliceSimulator";
|
|
8
|
+
export type {
|
|
9
|
+
SliceSimulatorProps,
|
|
10
|
+
SliceSimulatorSliceZoneProps,
|
|
11
|
+
} from "./SliceSimulator";
|
|
12
|
+
|
|
7
13
|
export { imgixLoader } from "../imgixLoader";
|
|
8
14
|
|
|
9
15
|
export { PrismicPreview } from "./PrismicPreview";
|
package/src/types.ts
CHANGED
package/dist/react-server.cjs
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
const require_getSlices = require('./simulator/react-server/getSlices.cjs');
|
|
2
|
-
const require_SliceSimulator = require('./simulator/react-server/SliceSimulator.cjs');
|
|
3
|
-
|
|
4
|
-
exports.SliceSimulator = require_SliceSimulator.SliceSimulator;
|
|
5
|
-
exports.getSlices = require_getSlices.getSlices;
|
package/dist/react-server.d.cts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SliceSimulator.cjs","names":["SimulatorManager","StateEventType","SliceSimulatorWrapper"],"sources":["../../src/simulator/SliceSimulator.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useState } from \"react\";\nimport type { ComponentType, FC } from \"react\";\n\nimport {\n\tSimulatorManager,\n\tStateEventType,\n\tgetDefaultMessage,\n\tgetDefaultSlices,\n} from \"@prismicio/simulator/kit\";\nimport type {\n\tSliceSimulatorProps as BaseSliceSimulatorProps,\n\tSliceSimulatorState,\n} from \"@prismicio/simulator/kit\";\n\nimport { SliceSimulatorWrapper } from \"./SliceSimulatorWrapper\";\n\nconst simulatorManager = new SimulatorManager();\n\nexport type SliceSimulatorSliceZoneProps = {\n\tslices: SliceSimulatorState[\"slices\"];\n};\n\nexport type SliceSimulatorProps = {\n\tclassName?: string;\n} & Omit<BaseSliceSimulatorProps, \"state\"> &\n\t(\n\t\t| {\n\t\t\t\t/**\n\t\t\t\t * React component to render simulated Slices.\n\t\t\t\t *\n\t\t\t\t * @example\n\t\t\t\t *\n\t\t\t\t * ```tsx\n\t\t\t\t * import { SliceSimulator } from \"@slicemachine/adapter-next/simulator\";\n\t\t\t\t * import { SliceZone } from \"@prismicio/react\";\n\t\t\t\t *\n\t\t\t\t * import { components } from \"../slices\";\n\t\t\t\t *\n\t\t\t\t * <SliceSimulator\n\t\t\t\t * \tsliceZone={({ slices }) => (\n\t\t\t\t * \t\t<SliceZone slices={slices} components={components} />\n\t\t\t\t * \t)}\n\t\t\t\t * />;\n\t\t\t\t * ```\n\t\t\t\t */\n\t\t\t\tsliceZone: ComponentType<SliceSimulatorSliceZoneProps>;\n\t\t }\n\t\t| {\n\t\t\t\tchildren: React.ReactNode;\n\t\t }\n\t);\n\n/**\n * Simulate slices in isolation. The slice simulator enables live slice\n * development in Slice Machine and live previews in the Page Builder.\n */\nexport const SliceSimulator: FC<SliceSimulatorProps> = ({\n\tbackground,\n\tzIndex,\n\tclassName,\n\t...restProps\n}) => {\n\tif (!(\"sliceZone\" in restProps)) {\n\t\tthrow new Error(\n\t\t\t\"A sliceZone prop must be provided when <SliceZone> is rendered in a Client Component. Add a sliceZone prop or convert your simulator to a Server Component with the getSlices helper.\",\n\t\t);\n\t}\n\n\tconst [slices, setSlices] = useState(() => getDefaultSlices());\n\tconst [message, setMessage] = useState(() => getDefaultMessage());\n\n\tuseEffect(() => {\n\t\tsimulatorManager.state.on(\n\t\t\tStateEventType.Slices,\n\t\t\t(_slices) => {\n\t\t\t\tsetSlices(_slices);\n\t\t\t},\n\t\t\t\"simulator-slices\",\n\t\t);\n\t\tsimulatorManager.state.on(\n\t\t\tStateEventType.Message,\n\t\t\t(_message) => {\n\t\t\t\tsetMessage(_message);\n\t\t\t},\n\t\t\t\"simulator-message\",\n\t\t);\n\n\t\tsimulatorManager.init();\n\n\t\treturn () => {\n\t\t\tsimulatorManager.state.off(StateEventType.Slices, \"simulator-slices\");\n\n\t\t\tsimulatorManager.state.off(StateEventType.Message, \"simulator-message\");\n\t\t};\n\t}, []);\n\n\tconst SliceZoneComp = restProps.sliceZone;\n\n\treturn (\n\t\t<SliceSimulatorWrapper\n\t\t\tmessage={message}\n\t\t\thasSlices={slices.length > 0}\n\t\t\tbackground={background}\n\t\t\tzIndex={zIndex}\n\t\t\tclassName={className}\n\t\t>\n\t\t\t<SliceZoneComp slices={slices} />\n\t\t</SliceSimulatorWrapper>\n\t);\n};\n"],"mappings":";;;;;;;;;AAkBA,MAAM,mBAAmB,IAAIA,2CAAkB;;;;;AAwC/C,MAAa,kBAA2C,EACvD,YACA,QACA,WACA,GAAG,gBACE;AACL,KAAI,EAAE,eAAe,WACpB,OAAM,IAAI,MACT,wLACA;CAGF,MAAM,CAAC,QAAQ,uFAA8C,CAAC;CAC9D,MAAM,CAAC,SAAS,yFAAgD,CAAC;AAEjE,4BAAgB;AACf,mBAAiB,MAAM,GACtBC,wCAAe,SACd,YAAY;AACZ,aAAU,QAAQ;KAEnB,mBACA;AACD,mBAAiB,MAAM,GACtBA,wCAAe,UACd,aAAa;AACb,cAAW,SAAS;KAErB,oBACA;AAED,mBAAiB,MAAM;AAEvB,eAAa;AACZ,oBAAiB,MAAM,IAAIA,wCAAe,QAAQ,mBAAmB;AAErE,oBAAiB,MAAM,IAAIA,wCAAe,SAAS,oBAAoB;;IAEtE,EAAE,CAAC;CAEN,MAAM,gBAAgB,UAAU;AAEhC,QACC,2CAACC;EACS;EACT,WAAW,OAAO,SAAS;EACf;EACJ;EACG;YAEX,2CAAC,iBAAsB,SAAU;GACV"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SliceSimulatorWrapper.cjs","names":["simulatorClass","simulatorRootClass","onClickHandler","disableEventHandler"],"sources":["../../src/simulator/SliceSimulatorWrapper.tsx"],"sourcesContent":["import type { FC, ReactNode } from \"react\";\nimport {\n\tdisableEventHandler,\n\tgetDefaultProps,\n\tonClickHandler,\n\tsimulatorClass,\n\tsimulatorRootClass,\n} from \"@prismicio/simulator/kit\";\nimport type { SliceSimulatorProps } from \"./SliceSimulator\";\n\ntype SliceSimulatorWrapperProps = {\n\tchildren: ReactNode;\n\tclassName?: string;\n\tmessage?: string;\n\thasSlices: boolean;\n} & Omit<SliceSimulatorProps, \"state\">;\n\n/**\n * A wrapper for the slice simulator that isolates the given children from the\n * page's layout.\n */\nexport const SliceSimulatorWrapper: FC<SliceSimulatorWrapperProps> = ({\n\tclassName,\n\tchildren,\n\tzIndex,\n\tbackground,\n\tmessage,\n\thasSlices,\n}) => {\n\tconst defaultProps = getDefaultProps();\n\n\treturn (\n\t\t<div\n\t\t\tclassName={[simulatorClass, className].filter(Boolean).join(\" \")}\n\t\t\tstyle={{\n\t\t\t\tzIndex:\n\t\t\t\t\ttypeof zIndex === \"undefined\"\n\t\t\t\t\t\t? defaultProps.zIndex\n\t\t\t\t\t\t: zIndex ?? undefined,\n\t\t\t\tposition: \"fixed\",\n\t\t\t\ttop: 0,\n\t\t\t\tleft: 0,\n\t\t\t\twidth: \"100%\",\n\t\t\t\theight: \"100vh\",\n\t\t\t\toverflow: \"auto\",\n\t\t\t\tbackground:\n\t\t\t\t\ttypeof background === \"undefined\"\n\t\t\t\t\t\t? defaultProps.background\n\t\t\t\t\t\t: background ?? undefined,\n\t\t\t}}\n\t\t>\n\t\t\t{message ? (\n\t\t\t\t<article dangerouslySetInnerHTML={{ __html: message }} />\n\t\t\t) : hasSlices ? (\n\t\t\t\t<div\n\t\t\t\t\tid=\"root\"\n\t\t\t\t\tclassName={simulatorRootClass}\n\t\t\t\t\tonClickCapture={onClickHandler as unknown as React.MouseEventHandler}\n\t\t\t\t\tonSubmitCapture={\n\t\t\t\t\t\tdisableEventHandler as unknown as React.FormEventHandler\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t) : null}\n\t\t</div>\n\t);\n};\n"],"mappings":";;;;;;;;;AAqBA,MAAa,yBAAyD,EACrE,WACA,UACA,QACA,YACA,SACA,gBACK;CACL,MAAM,8DAAgC;AAEtC,QACC,2CAAC;EACA,WAAW,CAACA,yCAAgB,UAAU,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI;EAChE,OAAO;GACN,QACC,OAAO,WAAW,cACf,aAAa,SACb,UAAU;GACd,UAAU;GACV,KAAK;GACL,MAAM;GACN,OAAO;GACP,QAAQ;GACR,UAAU;GACV,YACC,OAAO,eAAe,cACnB,aAAa,aACb,cAAc;GAClB;YAEA,UACA,2CAAC,aAAQ,yBAAyB,EAAE,QAAQ,SAAS,GAAI,GACtD,YACH,2CAAC;GACA,IAAG;GACH,WAAWC;GACX,gBAAgBC;GAChB,iBACCC;GAGA;IACI,GACH;GACC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
//#region src/simulator/getSlices.ts
|
|
3
|
-
/**
|
|
4
|
-
* Returns the simulator's slices from the page's `searchParams.state` value.
|
|
5
|
-
* The `state` value is set by `<SliceSimulator>`.
|
|
6
|
-
*
|
|
7
|
-
* **Note**: `getSlices` should only be used in the App Router with a Server
|
|
8
|
-
* Component.
|
|
9
|
-
*/
|
|
10
|
-
const getSlices = (state) => {
|
|
11
|
-
throw new Error("getSlices is designed only for Server Components. Convert your simulator page to a Server Component or remove the function from your Client Component.");
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
//#endregion
|
|
15
|
-
exports.getSlices = getSlices;
|
|
16
|
-
//# sourceMappingURL=getSlices.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getSlices.cjs","names":[],"sources":["../../src/simulator/getSlices.ts"],"sourcesContent":["import type { StateEvents, StateEventType } from \"@prismicio/simulator/kit\";\n\n/**\n * Returns the simulator's slices from the page's `searchParams.state` value.\n * The `state` value is set by `<SliceSimulator>`.\n *\n * **Note**: `getSlices` should only be used in the App Router with a Server\n * Component.\n */\nexport const getSlices = (\n\tstate: string | null | undefined,\n): StateEvents[StateEventType.Slices] => {\n\t// Prevent tsserver + eslint warnings about unused vars.\n\tstate;\n\n\tthrow new Error(\n\t\t\"getSlices is designed only for Server Components. Convert your simulator page to a Server Component or remove the function from your Client Component.\",\n\t);\n};\n"],"mappings":";;;;;;;;;AASA,MAAa,aACZ,UACwC;AAIxC,OAAM,IAAI,MACT,yJACA"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { StateEventType, StateEvents } from "@prismicio/simulator/kit";
|
|
2
|
-
|
|
3
|
-
//#region src/simulator/getSlices.d.ts
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Returns the simulator's slices from the page's `searchParams.state` value.
|
|
7
|
-
* The `state` value is set by `<SliceSimulator>`.
|
|
8
|
-
*
|
|
9
|
-
* **Note**: `getSlices` should only be used in the App Router with a Server
|
|
10
|
-
* Component.
|
|
11
|
-
*/
|
|
12
|
-
declare const getSlices: (state: string | null | undefined) => StateEvents[StateEventType.Slices];
|
|
13
|
-
//#endregion
|
|
14
|
-
export { getSlices };
|
|
15
|
-
//# sourceMappingURL=getSlices.d.cts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SliceSimulator.cjs","names":["SimulatorManager","getSlices","StateEventType","SliceSimulatorWrapper"],"sources":["../../../src/simulator/react-server/SliceSimulator.tsx"],"sourcesContent":["// This `<SliceSimulator>` is only accessible from Server Components.\n\n\"use client\";\n\nimport { useEffect, useState } from \"react\";\nimport type { FC } from \"react\";\n\nimport { useRouter } from \"next/navigation\";\nimport {\n\tSimulatorManager,\n\tStateEventType,\n\tgetDefaultMessage,\n} from \"@prismicio/simulator/kit\";\nimport type { SliceSimulatorProps as BaseSliceSimulatorProps } from \"@prismicio/simulator/kit\";\nimport { compressToEncodedURIComponent } from \"lz-string\";\n\nimport { SliceSimulatorWrapper } from \"../SliceSimulatorWrapper\";\nimport { getSlices } from \"./getSlices\";\n\nconst STATE_PARAMS_KEY = \"state\";\n\nconst simulatorManager = new SimulatorManager();\n\nexport type SliceSimulatorProps = Omit<BaseSliceSimulatorProps, \"state\"> & {\n\tchildren: React.ReactNode;\n\tclassName?: string;\n};\n\nexport const SliceSimulator: FC<SliceSimulatorProps> = ({\n\tchildren,\n\tbackground,\n\tzIndex,\n\tclassName,\n}) => {\n\tconst [message, setMessage] = useState(() => getDefaultMessage());\n\tconst router = useRouter();\n\n\tconst state =\n\t\ttypeof window !== \"undefined\"\n\t\t\t? new URL(window.location.href).searchParams.get(STATE_PARAMS_KEY)\n\t\t\t: undefined;\n\tconst hasSlices = getSlices(state).length > 0;\n\n\tuseEffect(() => {\n\t\tsimulatorManager.state.on(\n\t\t\tStateEventType.Slices,\n\t\t\t(newSlices) => {\n\t\t\t\tconst url = new URL(window.location.href);\n\t\t\t\turl.searchParams.set(\n\t\t\t\t\tSTATE_PARAMS_KEY,\n\t\t\t\t\tcompressToEncodedURIComponent(JSON.stringify(newSlices)),\n\t\t\t\t);\n\n\t\t\t\twindow.history.replaceState(null, \"\", url);\n\t\t\t\t// Wait until the next tick to prevent URL state race conditions.\n\t\t\t\tsetTimeout(() => router.refresh(), 0);\n\t\t\t},\n\t\t\t\"simulator-slices\",\n\t\t);\n\t\tsimulatorManager.state.on(\n\t\t\tStateEventType.Message,\n\t\t\t(newMessage) => setMessage(newMessage),\n\t\t\t\"simulator-message\",\n\t\t);\n\n\t\tsimulatorManager.init();\n\n\t\treturn () => {\n\t\t\tsimulatorManager.state.off(StateEventType.Slices, \"simulator-slices\");\n\n\t\t\tsimulatorManager.state.off(StateEventType.Message, \"simulator-message\");\n\t\t};\n\t}, []);\n\n\treturn (\n\t\t<SliceSimulatorWrapper\n\t\t\tmessage={message}\n\t\t\thasSlices={hasSlices}\n\t\t\tbackground={background}\n\t\t\tzIndex={zIndex}\n\t\t\tclassName={className}\n\t\t>\n\t\t\t{children}\n\t\t</SliceSimulatorWrapper>\n\t);\n};\n"],"mappings":";;;;;;;;;;;;AAmBA,MAAM,mBAAmB;AAEzB,MAAM,mBAAmB,IAAIA,2CAAkB;AAO/C,MAAa,kBAA2C,EACvD,UACA,YACA,QACA,gBACK;CACL,MAAM,CAAC,SAAS,yFAAgD,CAAC;CACjE,MAAM,yCAAoB;CAM1B,MAAM,YAAYC,4BAHjB,OAAO,WAAW,cACf,IAAI,IAAI,OAAO,SAAS,KAAK,CAAC,aAAa,IAAI,iBAAiB,GAChE,OAC8B,CAAC,SAAS;AAE5C,4BAAgB;AACf,mBAAiB,MAAM,GACtBC,wCAAe,SACd,cAAc;GACd,MAAM,MAAM,IAAI,IAAI,OAAO,SAAS,KAAK;AACzC,OAAI,aAAa,IAChB,+DAC8B,KAAK,UAAU,UAAU,CAAC,CACxD;AAED,UAAO,QAAQ,aAAa,MAAM,IAAI,IAAI;AAE1C,oBAAiB,OAAO,SAAS,EAAE,EAAE;KAEtC,mBACA;AACD,mBAAiB,MAAM,GACtBA,wCAAe,UACd,eAAe,WAAW,WAAW,EACtC,oBACA;AAED,mBAAiB,MAAM;AAEvB,eAAa;AACZ,oBAAiB,MAAM,IAAIA,wCAAe,QAAQ,mBAAmB;AAErE,oBAAiB,MAAM,IAAIA,wCAAe,SAAS,oBAAoB;;IAEtE,EAAE,CAAC;AAEN,QACC,2CAACC;EACS;EACE;EACC;EACJ;EACG;EAEV;GACsB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getSlices.cjs","names":[],"sources":["../../../src/simulator/react-server/getSlices.ts"],"sourcesContent":["// This `getSlices` is only accessible from Server Components.\n\nimport { getDefaultSlices } from \"@prismicio/simulator/kit\";\nimport type { StateEvents, StateEventType } from \"@prismicio/simulator/kit\";\nimport { decompressFromEncodedURIComponent } from \"lz-string\";\n\nexport const getSlices = (\n\tstate: string | null | undefined,\n): StateEvents[StateEventType.Slices] => {\n\treturn state\n\t\t? JSON.parse(decompressFromEncodedURIComponent(state))\n\t\t: getDefaultSlices();\n};\n"],"mappings":";;;;;AAMA,MAAa,aACZ,UACwC;AACxC,QAAO,QACJ,KAAK,uDAAwC,MAAM,CAAC,mDAClC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
//#region src/simulator/types.d.ts
|
|
2
|
-
/**
|
|
3
|
-
* Parameters provided to the Slice Simulator page.
|
|
4
|
-
*
|
|
5
|
-
* **Note**: `SliceSimulatorParams` should only be used in the App Router with a
|
|
6
|
-
* Server Component.
|
|
7
|
-
*/
|
|
8
|
-
type SliceSimulatorParams = {
|
|
9
|
-
searchParams: Promise<{
|
|
10
|
-
state?: string;
|
|
11
|
-
}>;
|
|
12
|
-
};
|
|
13
|
-
//#endregion
|
|
14
|
-
export { SliceSimulatorParams };
|
|
15
|
-
//# sourceMappingURL=types.d.cts.map
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { StateEvents, StateEventType } from "@prismicio/simulator/kit";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Returns the simulator's slices from the page's `searchParams.state` value.
|
|
5
|
-
* The `state` value is set by `<SliceSimulator>`.
|
|
6
|
-
*
|
|
7
|
-
* **Note**: `getSlices` should only be used in the App Router with a Server
|
|
8
|
-
* Component.
|
|
9
|
-
*/
|
|
10
|
-
export const getSlices = (
|
|
11
|
-
state: string | null | undefined,
|
|
12
|
-
): StateEvents[StateEventType.Slices] => {
|
|
13
|
-
// Prevent tsserver + eslint warnings about unused vars.
|
|
14
|
-
state;
|
|
15
|
-
|
|
16
|
-
throw new Error(
|
|
17
|
-
"getSlices is designed only for Server Components. Convert your simulator page to a Server Component or remove the function from your Client Component.",
|
|
18
|
-
);
|
|
19
|
-
};
|
package/src/simulator/index.ts
DELETED
package/src/simulator/types.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Parameters provided to the Slice Simulator page.
|
|
3
|
-
*
|
|
4
|
-
* **Note**: `SliceSimulatorParams` should only be used in the App Router with a
|
|
5
|
-
* Server Component.
|
|
6
|
-
*/
|
|
7
|
-
export type SliceSimulatorParams = {
|
|
8
|
-
searchParams: Promise<{
|
|
9
|
-
state?: string;
|
|
10
|
-
}>;
|
|
11
|
-
};
|